From 97c7b72adbeb23dc9f90b8eb3dc5bf45d9607055 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulf=20R=C3=BCegg?= Date: Mon, 2 May 2022 18:35:42 +0200 Subject: [PATCH] Added lib for 0.8.0 --- lib/elk-api.d.ts | 131 + lib/elk-api.js | 224 + lib/elk-worker.d.ts | 1 + lib/elk-worker.js | 100610 +++++++++++++++++++++++++++++++++++++++ lib/elk-worker.min.js | 6148 +++ lib/elk.bundled.d.ts | 13 + lib/elk.bundled.js | 6443 +++ lib/main.d.ts | 13 + lib/main.js | 67 + 9 files changed, 113650 insertions(+) create mode 100644 lib/elk-api.d.ts create mode 100644 lib/elk-api.js create mode 100644 lib/elk-worker.d.ts create mode 100644 lib/elk-worker.js create mode 100644 lib/elk-worker.min.js create mode 100644 lib/elk.bundled.d.ts create mode 100644 lib/elk.bundled.js create mode 100644 lib/main.d.ts create mode 100644 lib/main.js diff --git a/lib/elk-api.d.ts b/lib/elk-api.d.ts new file mode 100644 index 0000000..139ffbd --- /dev/null +++ b/lib/elk-api.d.ts @@ -0,0 +1,131 @@ +/******************************************************************************* + * 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 +} + +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..b60e8bd --- /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() { + 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.terminate) { + 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..3865658 --- /dev/null +++ b/lib/elk-worker.js @@ -0,0 +1,100610 @@ +'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 = {198:1, 47:1}, $intern_4 = {198:1, 47:1, 124:1}, $intern_5 = {224:1, 3:1}, $intern_6 = {47:1}, $intern_7 = {83:1}, $intern_8 = {20:1, 28:1, 14:1}, $intern_9 = 1964, $intern_10 = {20:1, 28:1, 14:1, 21:1}, $intern_11 = {83:1, 171:1, 161:1}, $intern_12 = {20:1, 28:1, 14:1, 21:1, 84:1}, $intern_13 = {20:1, 28:1, 14:1, 271:1, 21:1, 84:1}, $intern_14 = {47:1, 124:1}, $intern_15 = {344:1, 42:1}, $intern_16 = {3:1, 6:1, 4:1, 5:1}, $intern_17 = 16384, $intern_18 = {164:1}, $intern_19 = {38:1}, $intern_20 = {l:4194303, m:4194303, h:524287}, $intern_21 = {196:1}, $intern_22 = {245:1, 3:1, 35:1}, $intern_23 = {20:1}, $intern_24 = {20:1, 14:1}, $intern_25 = {3:1, 20:1, 28:1, 14:1}, $intern_26 = {152:1, 3:1, 20:1, 28:1, 14:1, 15:1, 54:1}, $intern_27 = {3:1, 4:1, 5:1, 165:1}, $intern_28 = {3:1, 83:1}, $intern_29 = {20:1, 14:1, 21:1}, $intern_30 = {3:1, 20:1, 28:1, 14:1, 21:1}, $intern_31 = {20:1, 14:1, 21:1, 84:1}, $intern_32 = 461845907, $intern_33 = -862048943, $intern_34 = {3:1, 6:1, 4:1, 5:1, 165:1}, $intern_35 = 1073741824, $intern_36 = {3:1, 6:1, 4:1, 9:1, 5:1}, $intern_37 = {20:1, 28:1, 52:1, 14:1, 15:1}, $intern_38 = {20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_39 = {45:1}, $intern_40 = {364:1}, $intern_41 = 1.0E-4, $intern_42 = -2147483648, $intern_43 = {3:1, 102:1, 60:1, 78:1}, $intern_44 = {195:1, 3:1, 4:1}, $intern_45 = 1000, $intern_46 = 65535, $intern_47 = 1900, $intern_48 = {48:1, 3:1, 4:1}, $intern_49 = {3:1, 4:1, 35:1, 199:1}, $intern_50 = 4194303, $intern_51 = 1048575, $intern_52 = 524288, $intern_53 = 4194304, $intern_54 = 17592186044416, $intern_55 = 1000000000, $intern_56 = -17592186044416, $intern_57 = {3:1, 102:1, 73:1, 60:1, 78:1}, $intern_58 = {3:1, 288:1, 78:1}, $intern_59 = Infinity, $intern_60 = -Infinity, $intern_61 = 4096, $intern_62 = {3:1, 4:1, 363:1}, $intern_63 = 65536, $intern_64 = 55296, $intern_65 = {104:1, 3:1, 4:1}, $intern_66 = 100000, $intern_67 = 0.3010299956639812, $intern_68 = 4294967295, $intern_69 = 4294967296, $intern_70 = {42:1}, $intern_71 = {3:1, 4:1, 20:1, 28:1, 52:1, 12:1, 14:1, 15:1, 54:1}, $intern_72 = {3:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_73 = {20:1, 14:1, 15:1}, $intern_74 = {3:1, 62:1}, $intern_75 = {182:1}, $intern_76 = {3:1, 4:1, 83:1}, $intern_77 = {3:1, 4:1, 20:1, 28:1, 14:1, 53: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, 28:1, 52:1, 14:1, 15:1, 54:1}, $intern_85 = {3:1, 35:1, 22:1, 297:1}, $intern_86 = {3:1, 4:1, 5:1, 841:1}, $intern_87 = {525:1, 670:1}, $intern_88 = {62:1}, $intern_89 = {169:1, 45:1}, $intern_90 = {130:1}, $intern_91 = {177:1, 3:1, 4:1}, $intern_92 = {212:1, 326:1}, $intern_93 = {3:1, 4:1, 5:1, 595:1}, $intern_94 = 0.01, $intern_95 = {3:1, 94:1, 134:1}, $intern_96 = {209:1}, $intern_97 = 1.5707963267948966, $intern_98 = 1.7976931348623157E308, $intern_99 = {3:1, 4:1, 5:1, 192:1}, $intern_100 = {3:1, 6:1, 4:1, 5:1, 106:1, 120:1}, $intern_101 = 0.001, $intern_102 = 1.600000023841858, $intern_103 = {3:1, 6:1, 4:1, 9:1, 5:1, 122:1}, $intern_104 = {3:1, 6:1, 4:1, 5:1, 141:1, 106:1, 120:1}, $intern_105 = {51:1}, $intern_106 = {3:1, 6:1, 4:1, 5:1, 474:1, 141:1, 106:1, 120:1}, $intern_107 = {3:1, 6:1, 4:1, 5:1, 141:1, 193:1, 203:1, 106:1, 120:1}, $intern_108 = {3:1, 6:1, 4:1, 5:1, 141:1, 1942:1, 203:1, 106:1, 120:1}, $intern_109 = {3:1, 4:1, 142:1, 207:1, 415:1}, $intern_110 = {3:1, 4:1, 116:1, 207:1, 415:1}, $intern_111 = {225:1}, $intern_112 = {3:1, 4:1, 5:1, 593:1}, $intern_113 = {126:1, 51:1}, $intern_114 = {403:1, 225:1}, $intern_115 = {831:1, 3:1, 4:1}, $intern_116 = {3:1, 4:1, 5:1, 839: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 = 6.283185307179586, $intern_124 = 4.9E-324, $intern_125 = {3:1, 4:1, 5:1, 106:1}, $intern_126 = 5.497787143782138, $intern_127 = 3.9269908169872414, $intern_128 = 2.356194490192345, $intern_129 = {331:1}, $intern_130 = {287:1}, $intern_131 = 0.05, $intern_132 = 1.2999999523162842, $intern_133 = {92:1, 90:1}, $intern_134 = 32768, $intern_135 = {105:1, 92:1, 90:1, 56:1, 49:1, 97:1}, $intern_136 = {190:1, 3:1, 4:1}, $intern_137 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1}, $intern_138 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 47:1, 15:1, 54:1, 67:1, 63:1, 58:1, 588:1}, $intern_139 = {416:1, 672:1}, $intern_140 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1}, $intern_141 = {365:1, 143:1}, $intern_142 = {3:1, 4:1, 5:1, 125:1}, $intern_143 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 58:1}, $intern_144 = {3:1, 6:1, 4:1, 5:1, 192:1}, $intern_145 = {3:1, 4:1, 5:1, 165:1, 366:1}, $intern_146 = {76:1}, $intern_147 = {3:1, 20:1, 14:1, 15:1, 58:1, 589:1, 76:1, 69:1, 95:1}, $intern_148 = 1024, $intern_149 = 8192, $intern_150 = 2048, $intern_151 = {3:1, 4:1, 5:1, 247:1}, $intern_152 = {3:1, 4:1, 5:1, 673:1}, $intern_153 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 69:1}, $intern_154 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 76:1, 69:1, 95:1}, $intern_155 = {3:1, 4:1, 5:1, 674:1}, $intern_156 = {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1, 76:1, 69:1, 95:1}, $intern_157 = {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 69:1}, $intern_158 = {47:1, 124:1, 278:1}, $intern_159 = {72:1, 332:1}, $intern_160 = 1315, $intern_161 = -32768, $intern_162 = {55:1}, $intern_163 = {3:1, 4:1, 5:1, 119:1}, $intern_164 = {92:1, 90:1, 591:1, 1934:1}, $intern_165 = 1114111, $intern_166 = {3:1, 117:1}, $intern_167 = {3:1, 4:1, 5:1, 367: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); +} + +function bootstrap(){ + prototypesByTypeId_0 = {}; + !Array.isArray && (Array.isArray = function(vArg){ + return Object.prototype.toString.call(vArg) === '[object Array]'; + } + ); + function now_0(){ + return (new Date).getTime(); + } + + !Date.now && (Date.now = now_0); +} + +$wnd.goog = $wnd.goog || {}; +$wnd.goog.global = $wnd.goog.global || $wnd; +bootstrap(); +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)?getHashCode_1(this$static):instanceOfDouble(this$static)?$hashCode_0(this$static):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , this$static)?1231:1237:hasJavaObjectVirtualDispatch(this$static)?this$static.hashCode_1():isJavaArray(this$static)?getHashCode_0(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 getHashCode_0(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(289, 1, {289:1, 2025: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', 289); +defineClass(1997, 1, $intern_1); +var Lcom_google_common_base_Optional_2_classLit = createForClass('com.google.common.base', 'Optional', 1997); +function $clinit_Absent(){ + $clinit_Absent = emptyMethod; + INSTANCE = new Absent; +} + +function Absent(){ +} + +defineClass(1169, 1997, $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', 1169); +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, 597)) { + 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){ + checkNotNull(part); + return instanceOf(part, 475)?castTo(part, 475):toString_40(part); +} + +function Joiner(){ + this.separator = castToString(checkNotNull(', ')); +} + +defineClass(628, 1, {}, Joiner); +var Lcom_google_common_base_Joiner_2_classLit = createForClass('com.google.common.base', 'Joiner', 628); +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_4(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_4(index_0), valueOf_4(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_4(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_4(index_0), valueOf_4(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_4(end), valueOf_4(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), 169).apply_1(t)) { + return false; + } + } + return true; +} + +function Predicates$AndPredicate(components){ + this.components = components; +} + +defineClass(582, 1, {169:1, 582:1, 3:1, 45: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, 582)) { + that = castTo(obj, 582); + return $equals_2(this.components, that.components); + } + return false; +} +; +_.hashCode_1 = function hashCode_2(){ + return hashCode_48(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', 582); +function Present(reference){ + this.reference = reference; +} + +defineClass(409, 1997, {409:1, 3:1}, Present); +_.equals_0 = function equals_2(object){ + var other; + if (instanceOf(object, 409)) { + other = castTo(object, 409); + 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', 409); +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; + try { + return o == null?'null':toString_40(o); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + 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(198, 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', 198); +defineClass(1977, 198, $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', 1977); +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(386, 1977, $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', 386); +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(699, 198, $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', 699); +function $containsEntry(this$static, key, value_0){ + var collection; + collection = castTo(this$static.asMap_0().get_3(key), 14); + 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(), 14); + 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), 14); + return !!collection && collection.remove_1(value_0); +} + +defineClass(1985, 1, {224: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(){ + 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', 1985); +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(), 14); + 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), 14); + !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), 14); + 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), 14); + 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), 14); + 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, 54)?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(), 14); + return map_2(valueCollection.spliterator_0(), new AbstractMapBasedMultimap$lambda$2$Type(key)); +} + +defineClass(726, 1985, $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', 726); +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(1630, 726, $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', 1630); +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(732, 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(), 42); + this.key = mapEntry.getKey(); + this.collection = castTo(mapEntry.getValue(), 14); + this.valueIterator = this.collection.iterator_0(); + } + return this.output(this.key, this.valueIterator.next_1()); +} +; +_.remove = function remove_2(){ + this.valueIterator.remove(); + this.collection.isEmpty() && this.keyIterator.remove(); + --this.this$01.totalSize; +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$Itr_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/Itr', 732); +function AbstractMapBasedMultimap$1(this$0){ + AbstractMapBasedMultimap$Itr.call(this, this$0); +} + +defineClass(1098, 732, $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', 1098); +function AbstractMapBasedMultimap$1methodref$spliterator$Type(){ +} + +defineClass(1099, 1, {}, AbstractMapBasedMultimap$1methodref$spliterator$Type); +_.apply_0 = function apply_2(arg0){ + return castTo(arg0, 14).spliterator_0(); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$1methodref$spliterator$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/1methodref$spliterator$Type', 1099); +function AbstractMapBasedMultimap$2(this$0){ + AbstractMapBasedMultimap$Itr.call(this, this$0); +} + +defineClass(1100, 732, $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', 1100); +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(), 42); + 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, 14)); + 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(), 42); + 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(), 42); + 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(), 42); + $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(1966, 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(), 42); + 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, 83)) { + return false; + } + otherMap = castTo(obj, 83); + 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(), 42); + 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_47(this.entrySet_0()); +} +; +_.isEmpty = function isEmpty_0(){ + return this.size_1() == 0; +} +; +_.keySet_0 = function keySet_0(){ + 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', 1966); +function $entrySet(this$static){ + var result; + result = this$static.entrySet; + return !result?(this$static.entrySet = this$static.createEntrySet()):result; +} + +defineClass(1986, 1966, $intern_7); +_.createKeySet = function createKeySet_0(){ + return new Maps$KeySet(this); +} +; +_.entrySet_0 = function entrySet(){ + return $entrySet(this); +} +; +_.keySet_0 = function keySet_1(){ + 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', 1986); +function $get_0(this$static, key){ + var collection, k; + collection = castTo(safeGet(this$static.submap, key), 14); + 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), 14); + 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(), 14))); +} + +function AbstractMapBasedMultimap$AsMap(this$0, submap){ + this.this$01_1 = this$0; + this.submap = submap; +} + +defineClass(389, 1986, $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_2(){ + 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', 389); +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_7(iter); + if ($advanceToFind(c, o, false)) { + $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(28, 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', 28); +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, 28, $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_47(this); +} +; +var Ljava_util_AbstractSet_2_classLit = createForClass('java.util', 'AbstractSet', $intern_9); +defineClass(1969, $intern_9, $intern_10); +var Lcom_google_common_collect_Sets$ImprovedAbstractSet_2_classLit = createForClass('com.google.common.collect', 'Sets/ImprovedAbstractSet', 1969); +function $contains(this$static, o){ + var entry, key, value_0; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + 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(1970, 1969, $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)) { + entry = castTo(o, 42); + 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', 1970); +function AbstractMapBasedMultimap$AsMap$AsMapEntries(this$1){ + this.this$11 = this$1; +} + +defineClass(1096, 1970, $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(o, 42); + $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', 1096); +function AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1097, 1, {}, AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type); +_.apply_0 = function apply_3(arg0){ + return $wrapEntry(this.$$outer_0, castTo(arg0, 42)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$AsMap$AsMapEntries$0methodref$wrapEntry$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type', 1097); +function AbstractMapBasedMultimap$AsMap$AsMapIterator(this$1){ + this.this$11 = this$1; + this.delegateIterator = this.this$11.submap.entrySet_0().iterator_0(); +} + +defineClass(730, 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(), 42) , this.collection = castTo(entry.getValue(), 14) , $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', 730); +function Maps$KeySet(map_0){ + this.map_0 = castTo(checkNotNull(map_0), 83); +} + +defineClass(532, 1969, $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', 532); +function AbstractMapBasedMultimap$KeySet(this$0, subMap){ + this.this$01 = this$0; + Maps$KeySet.call(this, subMap); +} + +defineClass(318, 532, $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), 14); + 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', 318); +function AbstractMapBasedMultimap$KeySet$1(this$1, val$entryIterator){ + this.this$11 = this$1; + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(731, 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(), 42); + return this.entry.getKey(); +} +; +_.remove = function remove_11(){ + var collection; + checkState_0(!!this.entry); + collection = castTo(this.entry.getValue(), 14); + 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', 731); +function AbstractMapBasedMultimap$SortedAsMap(this$0, submap){ + this.this$01_0 = this$0; + AbstractMapBasedMultimap$AsMap.call(this, this$0, submap); +} + +defineClass(491, 389, {83:1, 161:1}, AbstractMapBasedMultimap$SortedAsMap); +_.createKeySet = function createKeySet_1(){ + return this.createKeySet_0(); +} +; +_.keySet_0 = function keySet_3(){ + return this.keySet_1(); +} +; +_.createKeySet_0 = function createKeySet_2(){ + return new AbstractMapBasedMultimap$SortedKeySet(this.this$01_0, this.sortedMap()); +} +; +_.keySet_1 = function keySet_4(){ + var result; + return result = this.sortedKeySet , !result?(this.sortedKeySet = this.createKeySet_0()):result; +} +; +_.sortedMap = function sortedMap(){ + return castTo(this.submap, 161); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$SortedAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/SortedAsMap', 491); +function AbstractMapBasedMultimap$NavigableAsMap(this$0, submap){ + this.this$01 = this$0; + AbstractMapBasedMultimap$SortedAsMap.call(this, this$0, submap); +} + +defineClass(542, 491, $intern_11, AbstractMapBasedMultimap$NavigableAsMap); +_.createKeySet = function createKeySet_3(){ + return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171)); +} +; +_.createKeySet_0 = function createKeySet_4(){ + return new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171)); +} +; +_.keySet_0 = function keySet_5(){ + var result; + return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171))):result, 271); +} +; +_.keySet_1 = function keySet_6(){ + var result; + return result = this.sortedKeySet , castTo(!result?(this.sortedKeySet = new AbstractMapBasedMultimap$NavigableKeySet(this.this$01, castTo(castTo(this.submap, 161), 171))):result, 271); +} +; +_.sortedMap = function sortedMap_0(){ + return castTo(castTo(this.submap, 161), 171); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableAsMap_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableAsMap', 542); +function AbstractMapBasedMultimap$SortedKeySet(this$0, subMap){ + AbstractMapBasedMultimap$KeySet.call(this, this$0, subMap); +} + +defineClass(490, 318, $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', 490); +function AbstractMapBasedMultimap$NavigableKeySet(this$0, subMap){ + AbstractMapBasedMultimap$SortedKeySet.call(this, this$0, subMap); +} + +defineClass(388, 490, $intern_13, AbstractMapBasedMultimap$NavigableKeySet); +var Lcom_google_common_collect_AbstractMapBasedMultimap$NavigableKeySet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/NavigableKeySet', 388); +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), 14); + !!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(541, 28, $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', 541); +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(728, 541, {20:1, 28:1, 14: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', 728); +function AbstractMapBasedMultimap$RandomAccessWrappedList(this$0, key, delegate, ancestor){ + AbstractMapBasedMultimap$WrappedList.call(this, this$0, key, delegate, ancestor); +} + +defineClass(1095, 728, {20:1, 28:1, 14:1, 15:1, 54:1}, AbstractMapBasedMultimap$RandomAccessWrappedList); +var Lcom_google_common_collect_AbstractMapBasedMultimap$RandomAccessWrappedList_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/RandomAccessWrappedList', 1095); +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(620, 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', 620); +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(729, 620, $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, 124)).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, 124)).hasPrevious(); +} +; +_.nextIndex_0 = function nextIndex_1(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 124)).nextIndex_0(); +} +; +_.previous_0 = function previous_1(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 124)).previous_0(); +} +; +_.previousIndex = function previousIndex_0(){ + return ($validateIterator(this) , castTo(this.delegateIterator, 124)).previousIndex(); +} +; +_.set_1 = function set_3(value_0){ + ($validateIterator(this) , castTo(this.delegateIterator, 124)).set_1(value_0); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedList$WrappedListIterator_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedList/WrappedListIterator', 729); +function AbstractMapBasedMultimap$WrappedSortedSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); +} + +defineClass(727, 541, $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', 727); +function AbstractMapBasedMultimap$WrappedNavigableSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedSortedSet.call(this, this$0, key, delegate); +} + +defineClass(1094, 727, $intern_13, AbstractMapBasedMultimap$WrappedNavigableSet); +var Lcom_google_common_collect_AbstractMapBasedMultimap$WrappedNavigableSet_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/WrappedNavigableSet', 1094); +function AbstractMapBasedMultimap$WrappedSet(this$0, key, delegate){ + AbstractMapBasedMultimap$WrappedCollection.call(this, this$0, key, delegate, null); +} + +defineClass(1093, 541, $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', 1093); +function AbstractMapBasedMultimap$lambda$1$Type(){ +} + +defineClass(1102, 1, {}, AbstractMapBasedMultimap$lambda$1$Type); +_.apply_0 = function apply_4(arg0){ + return lambda$1(castTo(arg0, 42)); +} +; +var Lcom_google_common_collect_AbstractMapBasedMultimap$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'AbstractMapBasedMultimap/lambda$1$Type', 1102); +function AbstractMapBasedMultimap$lambda$2$Type(key_0){ + this.key_0 = key_0; +} + +defineClass(1101, 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', 1101); +var Ljava_util_Map$Entry_2_classLit = createForInterface('java.util', 'Map/Entry'); +defineClass(344, 1, $intern_15); +_.equals_0 = function equals_10(object){ + var that; + if (instanceOf(object, 42)) { + that = castTo(object, 42); + 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', 344); +defineClass(1987, 28, $intern_8); +_.clear_0 = function clear_8(){ + this.multimap_0().clear_0(); +} +; +_.contains = function contains_4(o){ + var entry; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + return $containsEntry(this.multimap_0(), entry.getKey(), entry.getValue()); + } + return false; +} +; +_.remove_1 = function remove_16(o){ + var entry; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + 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', 1987); +function AbstractMultimap$Entries(this$0){ + this.this$01 = this$0; +} + +defineClass(733, 1987, $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', 733); +function AbstractMultimap$EntrySet(this$0){ + AbstractMultimap$Entries.call(this, this$0); +} + +defineClass(734, 733, $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', 734); +function AbstractMultimap$Values(this$0){ + this.this$01 = this$0; +} + +defineClass(735, 28, $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', 735); +function lambda$0_1(entry_1){ + entry_1.val$backingEntry2.getKey(); + castTo(entry_1.val$backingEntry2.getValue(), 14).size_1(); + $add(); +} + +function lambda$1_1(action_0, entry_1){ + var count, elem, i; + elem = entry_1.val$backingEntry2.getKey(); + count = castTo(entry_1.val$backingEntry2.getValue(), 14).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(1988, 28, {834:1, 20:1, 28:1, 14: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$3$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, 543)?addAllImpl(castTo(elementsToAdd, 834)):!elementsToAdd.isEmpty() && addAll_7(this, elementsToAdd.iterator_0()); +} +; +_.contains = function contains_6(element){ + var values; + return values = castTo(safeGet($asMap(this.multimap), element), 14) , (!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', 1988); +defineClass(1990, 1969, $intern_10); +_.clear_0 = function clear_10(){ + $clear(this.this$01.multimap); +} +; +_.contains = function contains_7(o){ + var count, entry; + if (instanceOf(o, 492)) { + entry = castTo(o, 417); + if (castTo(entry.val$backingEntry2.getValue(), 14).size_1() <= 0) { + return false; + } + count = $count(this.this$01, entry.val$backingEntry2.getKey()); + return count == castTo(entry.val$backingEntry2.getValue(), 14).size_1(); + } + return false; +} +; +_.remove_1 = function remove_18(object){ + var element, entry, entryCount, multiset; + if (instanceOf(object, 492)) { + entry = castTo(object, 417); + element = entry.val$backingEntry2.getKey(); + entryCount = castTo(entry.val$backingEntry2.getValue(), 14).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', 1990); +function AbstractMultiset$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(1108, 1990, $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', 1108); +function AbstractSetMultimap(map_0){ + AbstractMapBasedMultimap.call(this, map_0); +} + +defineClass(619, 726, $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', 619); +function $values_0(this$static){ + var result; + return result = this$static.values , !result?(this$static.values = new AbstractMultimap$Values(this$static)):result; +} + +defineClass(1656, 619, $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), 84); +} +; +_.get_4 = function get_9(key){ + return castTo(castTo($get(this, key), 21), 84); +} +; +_.removeAll = function removeAll_4(key){ + return castTo(castTo($removeAll(this, key), 21), 84); +} +; +_.removeAll_1 = function removeAll_5(key){ + return castTo(castTo($removeAll(this, key), 21), 84); +} +; +_.unmodifiableCollectionSubclass = function unmodifiableCollectionSubclass_2(collection){ + return instanceOf(collection, 271)?unmodifiableNavigableSet(castTo(collection, 271)):($clinit_Collections() , new Collections$UnmodifiableSortedSet(castTo(collection, 84))); +} +; +_.asMap_0 = function asMap_2(){ + var result; + return result = this.asMap , !result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result; +} +; +_.wrapCollection = function wrapCollection_2(key, collection){ + return instanceOf(collection, 271)?new AbstractMapBasedMultimap$WrappedNavigableSet(this, key, castTo(collection, 271)):new AbstractMapBasedMultimap$WrappedSortedSet(this, key, castTo(collection, 84)); +} +; +var Lcom_google_common_collect_AbstractSortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedSetMultimap', 1656); +function AbstractSortedKeySortedSetMultimap(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1657, 1656, $intern_5); +_.asMap_0 = function asMap_3(){ + var result; + return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 161), 171); +} +; +_.keySet_0 = function keySet_7(){ + var result; + return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 84), 271); +} +; +_.createKeySet = function createKeySet_5(){ + return instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0); +} +; +var Lcom_google_common_collect_AbstractSortedKeySortedSetMultimap_2_classLit = createForClass('com.google.common.collect', 'AbstractSortedKeySortedSetMultimap', 1657); +defineClass(2009, 1, {1946:1}); +_.equals_0 = function equals_14(obj){ + return equalsImpl_4(this, obj); +} +; +_.hashCode_1 = function hashCode_13(){ + var result; + return hashCode_47((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', 2009); +function AbstractTable$CellSet(this$0){ + this.this$01 = this$0; +} + +defineClass(665, $intern_9, $intern_10, AbstractTable$CellSet); +_.clear_0 = function clear_11(){ + $clear_1(); +} +; +_.contains = function contains_8(o){ + var cell, row; + if (instanceOf(o, 468)) { + cell = castTo(o, 682); + row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 83); + 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, 468)) { + cell = castTo(o, 682); + row = castTo(safeGet($rowMap(this.this$01), $get_2(cell.this$01.rowList, cell.rowIndex)), 83); + 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', 665); +function AbstractTable$Values(this$0){ + this.this$01 = this$0; +} + +defineClass(1927, 28, $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', 1927); +function ArrayListMultimapGwtSerializationDependencies(map_0){ + AbstractMapBasedMultimap.call(this, map_0); +} + +defineClass(1631, 1630, $intern_5); +var Lcom_google_common_collect_ArrayListMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'ArrayListMultimapGwtSerializationDependencies', 1631); +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(513, 1631, $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', 513); +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), 19); + columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 19); + 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), 19); + checkArgument_2(!!rowIndex, 'Row %s not in %s', rowKey, this$static.rowList); + columnIndex = castTo($get_3(this$static.columnKeyToIndex, columnKey), 19); + 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(664, 2009, {664:1, 1946:1, 3:1}, ArrayTable); +var Lcom_google_common_collect_ArrayTable_2_classLit = createForClass('com.google.common.collect', 'ArrayTable', 664); +function ArrayTable$1(this$0, $anonymous0){ + this.this$01 = this$0; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(1923, 386, $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', 1923); +function ArrayTable$1methodref$getCell$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1924, 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', 1924); +defineClass(2010, 1, {682:1}); +_.equals_0 = function equals_15(obj){ + var other; + if (obj === this) { + return true; + } + if (instanceOf(obj, 468)) { + other = castTo(obj, 682); + 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_46(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', 2010); +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(468, 2010, {468:1, 682: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', 468); +function ArrayTable$2methodref$getValue$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1926, 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', 1926); +function ArrayTable$3(this$0, $anonymous0){ + this.this$01 = this$0; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(1925, 386, $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', 1925); +function $forEachEntry_0(this$static, action){ + this$static.entryIterator().forEachRemaining(action); +} + +defineClass(1978, 1966, $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', 1978); +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 $asList($keySet_0(this$static.keyIndex)).get_0(index_0); +} + +function ArrayTable$ArrayMap(keyIndex){ + this.keyIndex = keyIndex; +} + +defineClass(827, 1978, $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), 19); + 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_8(){ + return $keySet_0(this.keyIndex); +} +; +_.put = function put_0(key, value_0){ + var index_0; + index_0 = castTo($get_3(this.keyIndex, key), 19); + 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', 827); +function ArrayTable$ArrayMap$0methodref$getEntry$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1922, 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', 1922); +function ArrayTable$ArrayMap$1(this$1, val$index){ + this.this$11 = this$1; + this.val$index2 = val$index; +} + +defineClass(1920, 344, $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', 1920); +function ArrayTable$ArrayMap$2(this$1, $anonymous0){ + this.this$11 = this$1; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(1921, 386, $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', 1921); +function ArrayTable$Row(this$0, rowIndex){ + this.this$01 = this$0; + ArrayTable$ArrayMap.call(this, this$0.columnKeyToIndex); + this.rowIndex = rowIndex; +} + +defineClass(1919, 827, $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', 1919); +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(828, 827, $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, 83) , $put_1(); +} +; +_.setValue_0 = function setValue_2(index_0, newValue){ + return castTo(newValue, 83) , $setValue(); +} +; +_.getKeyRole = function getKeyRole_0(){ + return 'Row'; +} +; +var Lcom_google_common_collect_ArrayTable$RowMap_2_classLit = createForClass('com.google.common.collect', 'ArrayTable/RowMap', 828); +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$1FlatMapSpliterator(fromSpliterator, topCharacteristics, topSize, function_0); +} + +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(1119, 1, $intern_18, CollectSpliterators$1); +_.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', 1119); +function CollectSpliterators$1$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1120, 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', 1120); +function CollectSpliterators$1$lambda$1$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1121, 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', 1121); +function $lambda$0(this$static, function_1, fromElement_1){ + return this$static.prefix = castTo(function_1.apply_0(fromElement_1), 164); +} + +function CollectSpliterators$1FlatMapSpliterator(from, characteristics, estimatedSize, val$function){ + this.val$function6 = val$function; + this.prefix = null; + this.from = from; + this.characteristics = characteristics; + this.estimatedSize = estimatedSize; +} + +function lambda$1_0(function_0, action_1, fromElement_2){ + castTo(function_0.apply_0(fromElement_2), 164).forEachRemaining(action_1); +} + +defineClass(1122, 1, $intern_18, CollectSpliterators$1FlatMapSpliterator); +_.characteristics_0 = function characteristics_1(){ + return this.characteristics; +} +; +_.estimateSize_0 = function estimateSize_0(){ + !!this.prefix && (this.estimatedSize = max_1(this.estimatedSize, this.prefix.estimateSize_0())); + return max_1(this.estimatedSize, 0); +} +; +_.forEachRemaining = function forEachRemaining_5(action){ + if (this.prefix) { + this.prefix.forEachRemaining(action); + this.prefix = null; + } + this.from.forEachRemaining(new CollectSpliterators$1FlatMapSpliterator$lambda$1$Type(this.val$function6, action)); + this.estimatedSize = 0; +} +; +_.tryAdvance = function tryAdvance_0(action){ + while (true) { + if (!!this.prefix && this.prefix.tryAdvance(action)) { + neq(this.estimatedSize, $intern_20) && (this.estimatedSize = sub_2(this.estimatedSize, 1)); + return true; + } + else { + this.prefix = null; + } + if (!this.from.tryAdvance(new CollectSpliterators$1FlatMapSpliterator$lambda$0$Type(this, this.val$function6))) { + return false; + } + } +} +; +_.characteristics = 0; +_.estimatedSize = 0; +var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator', 1122); +function CollectSpliterators$1FlatMapSpliterator$lambda$0$Type($$outer_0, function_1){ + this.$$outer_0 = $$outer_0; + this.function_1 = function_1; +} + +defineClass(1123, 1, $intern_19, CollectSpliterators$1FlatMapSpliterator$lambda$0$Type); +_.accept = function accept_2(arg0){ + $lambda$0(this.$$outer_0, this.function_1, arg0); +} +; +var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type', 1123); +function CollectSpliterators$1FlatMapSpliterator$lambda$1$Type(function_0, action_1){ + this.function_0 = function_0; + this.action_1 = action_1; +} + +defineClass(1124, 1, $intern_19, CollectSpliterators$1FlatMapSpliterator$lambda$1$Type); +_.accept = function accept_3(arg0){ + lambda$1_0(this.function_0, this.action_1, arg0); +} +; +var Lcom_google_common_collect_CollectSpliterators$1FlatMapSpliterator$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type', 1124); +function CollectSpliterators$1WithCharacteristics(delegate, val$function, val$extraCharacteristics){ + this.val$function2 = val$function; + this.val$extraCharacteristics3 = val$extraCharacteristics; + this.delegate = delegate; +} + +defineClass(1116, 1, $intern_18, CollectSpliterators$1WithCharacteristics); +_.characteristics_0 = function characteristics_2(){ + return 16464 | this.val$extraCharacteristics3; +} +; +_.estimateSize_0 = function estimateSize_1(){ + return this.delegate.estimateSize_0(); +} +; +_.forEachRemaining = function forEachRemaining_6(action){ + this.delegate.forEachRemaining_0(new CollectSpliterators$1WithCharacteristics$lambda$1$Type(action, this.val$function2)); +} +; +_.tryAdvance = function tryAdvance_1(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', 1116); +function CollectSpliterators$1WithCharacteristics$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1117, 1, $intern_21, CollectSpliterators$1WithCharacteristics$lambda$0$Type); +_.accept_0 = function accept_4(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', 1117); +function CollectSpliterators$1WithCharacteristics$lambda$1$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1118, 1, $intern_21, CollectSpliterators$1WithCharacteristics$lambda$1$Type); +_.accept_0 = function accept_5(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', 1118); +function safeContains(collection, object){ + checkNotNull(collection); + try { + return collection.contains(object); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205) || instanceOf($e0, 173)) { + 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, 205) || instanceOf($e0, 173)) { + return false; + } + else + throw toJs($e0); + } +} + +function $equals_1(this$static, obj){ + var compareResult, that; + if (instanceOf(obj, 245)) { + that = castTo(obj, 245); + try { + compareResult = this$static.compareTo(that); + return compareResult == 0; + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 205)) + throw toJs($e0); + } + } + return false; +} + +function Cut(endpoint){ + this.endpoint = endpoint; +} + +defineClass(245, 1, $intern_22); +_.compareTo_0 = function compareTo_0(that){ + return this.compareTo(castTo(that, 245)); +} +; +_.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, 519) == instanceOf(that, 519)?0:instanceOf(this, 519)?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', 245); +function $clinit_Cut$AboveAll(){ + $clinit_Cut$AboveAll = emptyMethod; + INSTANCE_0 = new Cut$AboveAll; +} + +function Cut$AboveAll(){ + Cut.call(this, null); +} + +defineClass(1760, 245, $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', 1760); +function Cut$AboveValue(endpoint){ + Cut.call(this, castTo(checkNotNull(endpoint), 35)); +} + +defineClass(519, 245, {245:1, 519:1, 3:1, 35: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', 519); +function $clinit_Cut$BelowAll(){ + $clinit_Cut$BelowAll = emptyMethod; + INSTANCE_1 = new Cut$BelowAll; +} + +function Cut$BelowAll(){ + Cut.call(this, null); +} + +defineClass(1759, 245, $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', 1759); +function Cut$BelowValue(endpoint){ + Cut.call(this, castTo(checkNotNull(endpoint), 35)); +} + +defineClass(1761, 245, $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', 1761); +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(537, 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', 537); +function FluentIterable$2(val$inputs){ + this.val$inputs1 = val$inputs; + FluentIterable.call(this); +} + +defineClass(434, 537, $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', 434); +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(1045, 537, $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', 1045); +function FluentIterable$3$1($anonymous0, val$inputs){ + this.val$inputs3 = val$inputs; + AbstractIndexedListIterator.call(this, $anonymous0); +} + +defineClass(708, 386, $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', 708); +defineClass(1971, 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', 1971); +defineClass(1972, 1971, $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', 1972); +function $clinit_ImmutableCollection(){ + $clinit_ImmutableCollection = emptyMethod; + new ForwardingImmutableCollection(($clinit_Collections() , $clinit_Collections() , EMPTY_LIST)); +} + +function $asList(this$static){ + var list; + list = this$static.asList; + return !list?(this$static.asList = this$static.createAsList()):list; +} + +defineClass(1979, 28, $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); +} +; +_.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', 1979); +function ForwardingImmutableCollection(delegate){ + $clinit_ImmutableCollection(); + this.delegate = delegate; +} + +defineClass(712, 1979, $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', 712); +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(152, 1979, $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); +} +; +_.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', 152); +function $get_2(this$static, index_0){ + return this$static.delegateList_0().get_0(index_0); +} + +defineClass(2005, 152, $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', 2005); +function $clinit_ImmutableMap(){ + $clinit_ImmutableMap = emptyMethod; + EMPTY_0 = new RegularImmutableMap(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 42, 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)), 42); + return of(entry.getKey(), entry.getValue()); + default:entryArray = castTo($toArray_2(entries, initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 42, entries.array.length, 0, 1)), 165); + 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(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_Map$Entry_2_classLit, 1), $intern_27, 42, 0, [(checkEntryNotNull(k1, v1) , new ImmutableEntry(k1, v1)), (checkEntryNotNull(k2, v2) , new ImmutableEntry(k2, v2))])); +} + +defineClass(714, 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_9(){ + 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', 714); +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(715, 714, $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', 715); +defineClass(1973, 1972, $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', 1973); +function ForwardingImmutableMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1068, 1973, $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, 42) && castTo(object, 42).getKey() == null) { + return false; + } + try { + return $contains_3($entrySet_2(this.this$01.delegate), object); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 205)) { + 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_5($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', 1068); +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(1980, 1979, $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', 1980); +function ForwardingImmutableSet(delegate){ + $clinit_ImmutableCollection(); + this.delegate = ($clinit_Collections() , new Collections$UnmodifiableSet(delegate)); +} + +defineClass(703, 1980, $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_4(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', 703); +defineClass(1974, 1973, $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', 1974); +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, 317, newTableSize, 0, 1); + this$static.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, 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, 317, tableSize, 0, 1); + this.hashTableVToK = initUnidimensionalArray(Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit, $intern_34, 317, tableSize, 0, 1); + this.firstInKeyInsertionOrder = null; + this.lastInKeyInsertionOrder = null; + this.size_0 = 0; + this.mask = tableSize - 1; + this.modCount = 0; +} + +defineClass(533, 1978, $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_10(){ + 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', 533); +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(534, 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 = this.next_0; + 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); + } + checkState_0(!!this.toRemove); + $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', 534); +function HashBiMap$1(this$0, this$0_1){ + this.this$02 = this$0_1; + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1010, 534, $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', 1010); +function HashBiMap$1$MapEntry(this$1, entry){ + this.this$11 = this$1; + this.delegate = entry; +} + +defineClass(1011, 344, $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', 1011); +function ImmutableEntry(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(238, 344, {344:1, 238:1, 3:1, 42: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', 238); +function HashBiMap$BiEntry(key, keyHash, value_0, valueHash){ + ImmutableEntry.call(this, key, value_0); + this.keyHash = keyHash; + this.valueHash = valueHash; +} + +defineClass(317, 238, {344:1, 317:1, 238:1, 3:1, 42:1}, HashBiMap$BiEntry); +_.keyHash = 0; +_.valueHash = 0; +var Lcom_google_common_collect_HashBiMap$BiEntry_2_classLit = createForClass('com.google.common.collect', 'HashBiMap/BiEntry', 317); +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(610, 1978, $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_11(){ + 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', 610); +function HashBiMap$Inverse$1(this$1, this$0){ + this.this$11 = this$1; + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1007, 534, $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', 1007); +function HashBiMap$Inverse$1$InverseEntry(this$2, entry){ + this.this$21 = this$2; + this.delegate = entry; +} + +defineClass(1008, 344, $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', 1008); +function HashBiMap$Inverse$InverseKeySet(this$1){ + this.this$11 = this$1; + Maps$KeySet.call(this, this$1); +} + +defineClass(611, 532, $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', 611); +function HashBiMap$Inverse$InverseKeySet$1(this$0){ + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1006, 534, $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', 1006); +function HashBiMap$Inverse$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(1009, 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', 1009); +function HashBiMap$KeySet(this$0){ + this.this$01 = this$0; + Maps$KeySet.call(this, this$0); +} + +defineClass(609, 532, $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', 609); +function HashBiMap$KeySet$1(this$0){ + HashBiMap$Itr.call(this, this$0); +} + +defineClass(1005, 534, $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', 1005); +function HashMultimapGwtSerializationDependencies(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1092, 619, $intern_5); +var Lcom_google_common_collect_HashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'HashMultimapGwtSerializationDependencies', 1092); +function HashMultimap(){ + HashMultimapGwtSerializationDependencies.call(this, new HashMap_0(capacity_0(12))); + checkArgument(true); + this.expectedValuesPerKey = 2; +} + +defineClass(265, 1092, $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', 265); +function closedTableSize(expectedEntries){ + var tableSize; + expectedEntries = $wnd.Math.max(expectedEntries, 2); + tableSize = highestOneBit(expectedEntries); + if (expectedEntries > tableSize) { + tableSize <<= 1; + return tableSize > 0?tableSize:$intern_35; + } + return tableSize; +} + +function needsResizing(size_0, tableSize){ + return size_0 > tableSize && tableSize < $intern_35; +} + +defineClass(1998, 152, $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', 1998); +function ImmutableBiMap(delegate){ + this.delegate = ($clinit_Collections() , new Collections$UnmodifiableMap(delegate)); +} + +defineClass(1930, 715, $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', 1930); +defineClass(1976, 1, {}); +var Lcom_google_common_collect_ImmutableCollection$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableCollection/Builder', 1976); +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(1021, 703, $intern_30, ImmutableEnumSet); +var Lcom_google_common_collect_ImmutableEnumSet_2_classLit = createForClass('com.google.common.collect', 'ImmutableEnumSet', 1021); +function ImmutableList$1(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + AbstractIndexedListIterator_0.call(this, $anonymous0, $anonymous1); +} + +defineClass(968, 386, $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', 968); +function ImmutableList$Builder(capacity){ + this.contents = (checkNonnegative(capacity, 'initialArraySize') , new ArrayList_0(capacity)); +} + +defineClass(967, 1976, {}, ImmutableList$Builder); +var Lcom_google_common_collect_ImmutableList$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableList/Builder', 967); +function ImmutableMap$1(val$entryIterator){ + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(614, 198, $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(), 42).getKey(); +} +; +var Lcom_google_common_collect_ImmutableMap$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/1', 614); +function ImmutableMap$2methodref$getKey$Type(){ +} + +defineClass(1040, 1, {}, ImmutableMap$2methodref$getKey$Type); +_.apply_0 = function apply_9(arg0){ + return castTo(arg0, 42).getKey(); +} +; +var Lcom_google_common_collect_ImmutableMap$2methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/2methodref$getKey$Type', 1040); +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(1039, 1, {}, ImmutableMap$Builder); +var Lcom_google_common_collect_ImmutableMap$Builder_2_classLit = createForClass('com.google.common.collect', 'ImmutableMap/Builder', 1039); +defineClass(1999, 1980, $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_0(){ + 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($asList($entrySet_1(this.map_0)).get_0(i), 42).getKey()); + } +} +; +_.iterator_1 = function iterator_24(){ + var list; + return (list = this.asList , !list?(this.asList = new IndexedImmutableSet$1(this)):list).iterator_1(); +} +; +_.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', 1999); +function $get_6(this$static, index_0){ + return castTo($asList($entrySet_1(this$static.map_0)).get_0(index_0), 42).getKey(); +} + +function ImmutableMapKeySet(map_0){ + $clinit_ImmutableCollection(); + this.map_0 = map_0; +} + +defineClass(1179, 1999, $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', 1179); +function ImmutableMapKeySet$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(1180, 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', 1180); +function ImmutableMapValues(map_0){ + $clinit_ImmutableCollection(); + this.map_0 = map_0; +} + +defineClass(1177, 1979, $intern_25, ImmutableMapValues); +_.iterator_0 = function iterator_29(){ + return new ImmutableMapValues$1(this); +} +; +_.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', 1177); +function ImmutableMapValues$0methodref$getValue$Type(){ +} + +defineClass(1178, 1, {}, ImmutableMapValues$0methodref$getValue$Type); +_.apply_0 = function apply_10(arg0){ + return castTo(arg0, 42).getValue(); +} +; +var Lcom_google_common_collect_ImmutableMapValues$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/0methodref$getValue$Type', 1178); +function ImmutableMapValues$1(this$0){ + this.this$01 = this$0; + this.entryItr = $entrySet_1(this.this$01.map_0).iterator_1(); +} + +defineClass(626, 198, $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(), 42).getValue(); +} +; +var Lcom_google_common_collect_ImmutableMapValues$1_2_classLit = createForClass('com.google.common.collect', 'ImmutableMapValues/1', 626); +function IndexedImmutableSet$0methodref$get$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1181, 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', 1181); +function IndexedImmutableSet$1(this$0){ + $clinit_ImmutableList(); + this.this$01 = this$0; +} + +defineClass(752, 1998, $intern_26, IndexedImmutableSet$1); +_.delegateCollection = function delegateCollection(){ + return this.this$01; +} +; +_.get_0 = function get_20(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', 752); +function addAll_6(addTo, elementsToAdd){ + var c; + if (instanceOf(elementsToAdd, 14)) { + c = castTo(elementsToAdd, 14); + 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_21(iterable){ + checkNotNull(iterable); + return get_22(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, 14)) { + return castTo(iterable, 14).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(44, 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', 44); +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(1041, 537, $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', 1041); +function Iterables$4$lambda$0$Type(retainIfTrue_0, action_1){ + this.retainIfTrue_0 = retainIfTrue_0; + this.action_1 = action_1; +} + +defineClass(1042, 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', 1042); +function Iterables$5(val$fromIterable, val$function){ + this.val$fromIterable1 = val$fromIterable; + this.val$function2 = val$function; + FluentIterable.call(this); +} + +defineClass(1043, 537, $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', 1043); +function Iterables$5$lambda$0$Type(action_0, function_1){ + this.action_0 = action_0; + this.function_1 = function_1; +} + +defineClass(1044, 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', 1044); +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_18(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(), 42).getValue() == null) { + return true; + } + } + } + else { + while (iterator.entryItr.hasNext_0()) { + if (equals_Ljava_lang_Object__Z__devirtual$(element, castTo(iterator.entryItr.next_1(), 42).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_22(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, 198)) { + result = castTo(iterator, 198); + return result; + } + return new Iterators$1(iterator); +} + +function Iterators$1(val$iterator){ + this.val$iterator1 = val$iterator; +} + +defineClass(1070, 198, $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', 1070); +function Iterators$5(val$unfiltered, val$retainIfTrue){ + this.val$unfiltered1 = val$unfiltered; + this.val$retainIfTrue2 = val$retainIfTrue; +} + +defineClass(1071, 699, $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', 1071); +function TransformedIterator(backingIterator){ + this.backingIterator = castTo(checkNotNull(backingIterator), 47); +} + +defineClass(487, 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', 487); +function Iterators$6($anonymous0, val$function){ + this.val$function2 = val$function; + TransformedIterator.call(this, $anonymous0); +} + +defineClass(1072, 487, $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', 1072); +function Iterators$9(val$value){ + this.val$value1 = val$value; +} + +defineClass(717, 198, $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', 717); +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(1069, 386, $intern_4, Iterators$ArrayItr); +_.get_0 = function get_23(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', 1069); +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), 47); + } + else { + return null; + } + } + return this$static.topMetaIterator; +} + +function $hasNext_1(this$static){ + var topConcat; + while (!castTo(checkNotNull(this$static.iterator), 47).hasNext_0()) { + this$static.topMetaIterator = $getTopMetaIterator(this$static); + if (!this$static.topMetaIterator) { + return false; + } + this$static.iterator = castTo(this$static.topMetaIterator.next_1(), 47); + if (instanceOf(this$static.iterator, 39)) { + topConcat = castTo(this$static.iterator, 39); + 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), 47)); + } + } + 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), 47); +} + +defineClass(39, 1, {39:1, 47: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(){ + checkState_0(!!this.toRemove); + this.toRemove.remove(); + this.toRemove = null; +} +; +var Lcom_google_common_collect_Iterators$ConcatenatedIterator_2_classLit = createForClass('com.google.common.collect', 'Iterators/ConcatenatedIterator', 39); +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_1(!!result, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [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, 35: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 getHashCode_0(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_36, 538, 0, [INSTANCE_2]); +} + +defineClass(538, 22, {538:1, 3:1, 35:1, 22:1, 47: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', 538, 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_36, 538, 0, [INSTANCE_2]))); +} + +var $MAP; +function LinkedHashMultimapGwtSerializationDependencies(map_0){ + AbstractSetMultimap.call(this, map_0); +} + +defineClass(1833, 619, $intern_5); +var Lcom_google_common_collect_LinkedHashMultimapGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimapGwtSerializationDependencies', 1833); +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(1834, 1833, $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_12(){ + 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', 1834); +function LinkedHashMultimap$0methodref$getValue$Type(){ +} + +defineClass(1837, 1, {}, LinkedHashMultimap$0methodref$getValue$Type); +_.apply_0 = function apply_13(arg0){ + return castTo(arg0, 42).getValue(); +} +; +var Lcom_google_common_collect_LinkedHashMultimap$0methodref$getValue$Type_2_classLit = createForClass('com.google.common.collect', 'LinkedHashMultimap/0methodref$getValue$Type', 1837); +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 = this$static.nextEntry.successorInMultimap; + return result; +} + +function LinkedHashMultimap$1(this$0){ + this.this$01 = this$0; + this.nextEntry = this.this$01.multimapHeaderEntry.successorInMultimap; +} + +defineClass(823, 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', 823); +function LinkedHashMultimap$ValueEntry(key, value_0, smearedValueHash, nextInValueBucket){ + ImmutableEntry.call(this, key, value_0); + this.smearedValueHash = smearedValueHash; + this.nextInValueBucket = nextInValueBucket; +} + +defineClass(330, 238, {344:1, 238:1, 330:1, 2019:1, 3:1, 42:1}, LinkedHashMultimap$ValueEntry); +_.getSuccessorInValueSet = function getSuccessorInValueSet(){ + return this.successorInValueSet; +} +; +_.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', 330); +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, 330, 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, 330); + 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(entry.predecessorInValueSet, entry.successorInValueSet); + succeedsInMultimap(entry.predecessorInMultimap, entry.successorInMultimap); + --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, 330, tableSize, 0, 1); + this.hashTable = hashTable; +} + +defineClass(1835, 1969, {2019:1, 20:1, 28:1, 14: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(this.this$01.multimapHeaderEntry.predecessorInMultimap, 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, 330); + succeedsInMultimap(valueEntry.predecessorInMultimap, valueEntry.successorInMultimap); + } + 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, 330).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', 1835); +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(1836, 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, 330); + result = entry.value_0; + this.toRemove = entry; + this.nextEntry = entry.successorInValueSet; + 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', 1836); +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) { + this$static.tail.next_0 = node; + node.previous = this$static.tail; + this$static.tail = node; + keyList = castTo($get_10(this$static.keyToKeyList, key), 282); + 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($get_10(this$static.keyToKeyList, key), 282); + ++keyList.count; + node.previous = nextSibling.previous; + node.previousSibling = nextSibling.previousSibling; + node.next_0 = nextSibling; + node.nextSibling = nextSibling; + !nextSibling.previousSibling?(castTo($get_10(this$static.keyToKeyList, key), 282).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 oldValues; + oldValues = unmodifiableList(newArrayList_0(new LinkedListMultimap$ValueForKeyIterator(this$static, key))); + clear_20(new LinkedListMultimap$ValueForKeyIterator(this$static, key)); + 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($remove_6(this$static.keyToKeyList, node.key), 282); + keyList.count = 0; + ++this$static.modCount; + } + else { + keyList = castTo($get_10(this$static.keyToKeyList, node.key), 282); + --keyList.count; + !node.previousSibling?(keyList.head = node.nextSibling):(node.previousSibling.nextSibling = node.nextSibling); + !node.nextSibling?(keyList.tail = node.previousSibling):(node.nextSibling.previousSibling = node.previousSibling); + } + --this$static.size_0; +} + +function LinkedListMultimap(){ + this.keyToKeyList = new HashMap_0(capacity_0(12)); +} + +function checkElement(node){ + if (!node) { + throw toJs(new NoSuchElementException); + } +} + +defineClass(766, 1985, $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_24(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_25(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', 766); +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(52, 28, $intern_37); +_.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_48(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', 52); +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, 109)) { + 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, 109)) { + throw toJs(new IndexOutOfBoundsException_0("Can't remove element " + index_0)); + } + else + throw toJs($e0); + } +} + +defineClass(1963, 52, $intern_37); +_.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_26(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, 109)) { + 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', 1963); +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(636, 1963, $intern_37, 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), 282); + return !keyList?0:keyList.count; +} +; +var Lcom_google_common_collect_LinkedListMultimap$1_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/1', 636); +function LinkedListMultimap$1KeySetImpl(this$0){ + this.this$01 = this$0; +} + +defineClass(1296, 1969, $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', 1296); +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(1295, 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); + checkElement(this.next_0); + 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', 1295); +function LinkedListMultimap$KeyList(firstNode){ + this.head = firstNode; + this.tail = firstNode; + firstNode.previousSibling = null; + firstNode.nextSibling = null; + this.count = 1; +} + +defineClass(282, 1, {282:1}, LinkedListMultimap$KeyList); +_.count = 0; +var Lcom_google_common_collect_LinkedListMultimap$KeyList_2_classLit = createForClass('com.google.common.collect', 'LinkedListMultimap/KeyList', 282); +function LinkedListMultimap$Node(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(1294, 344, $intern_15, 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', 1294); +function $next_2(this$static){ + checkElement(this$static.next_0); + 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){ + checkElement(this$static.previous); + 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), 282); + 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), 282); + 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(560, 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', 560); +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, 54)) { + 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, 14)?new ArrayList_1(castTo(elements, 14)):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){ + return instanceOf(list, 152)?$reverse(castTo(list, 152)):instanceOf(list, 131)?castTo(list, 131).forwardList:instanceOf(list, 54)?new Lists$RandomAccessReverseList(list):new Lists$ReverseList(list); +} + +defineClass(1017, 52, $intern_37); +_.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_27(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', 1017); +defineClass(1018, 1017, $intern_38); +var Lcom_google_common_collect_Lists$RandomAccessListWrapper_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessListWrapper', 1018); +function Lists$1($anonymous0){ + this.backingList = castTo(checkNotNull($anonymous0), 15); +} + +defineClass(1020, 1018, $intern_38, 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', 1020); +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(131, 52, {131:1, 20:1, 28:1, 52:1, 14: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_28(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', 131); +function Lists$RandomAccessReverseList(forwardList){ + Lists$ReverseList.call(this, forwardList); +} + +defineClass(279, 131, {131:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1}, Lists$RandomAccessReverseList); +var Lcom_google_common_collect_Lists$RandomAccessReverseList_2_classLit = createForClass('com.google.common.collect', 'Lists/RandomAccessReverseList', 279); +function $next_3(this$static){ + if (!this$static.val$forwardIterator2.hasPrevious()) { + throw toJs(new NoSuchElementException); + } + this$static.canRemoveOrSet = true; + return this$static.val$forwardIterator2.previous_0(); +} + +function Lists$ReverseList$1(this$1, val$forwardIterator){ + this.this$11 = this$1; + this.val$forwardIterator2 = val$forwardIterator; +} + +defineClass(1019, 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(){ + return $next_3(this); +} +; +_.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', 1019); +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_35) { + 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, 83)) { + o = castTo(object, 83); + 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_4(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, 205) || instanceOf($e0, 173)) { + 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, 205) || instanceOf($e0, 173)) { + 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, 205) || instanceOf($e0, 173)) { + 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(), 42); + 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, 42).getKey(); +} + +function Maps$1($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(433, 487, $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', 433); +function Maps$2($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(698, 487, $intern_6, Maps$2); +_.transform_0 = function transform_5(entry){ + return castTo(entry, 42).getValue(); +} +; +var Lcom_google_common_collect_Maps$2_2_classLit = createForClass('com.google.common.collect', 'Maps/2', 698); +function Maps$3($anonymous0, val$function){ + this.val$function2 = val$function; + TransformedIterator.call(this, $anonymous0); +} + +defineClass(961, 487, $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', 961); +function Maps$IteratorBasedAbstractMap$1(this$1){ + this.this$11 = this$1; +} + +defineClass(958, 1970, $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', 958); +function Maps$KeySet$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(959, 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', 959); +function Maps$Values(map_0){ + this.map_0 = castTo(checkNotNull(map_0), 83); +} + +defineClass(957, 28, $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, 41)) { + for (entry$iterator = this.map_0.entrySet_0().iterator_0(); entry$iterator.hasNext_0();) { + entry = castTo(entry$iterator.next_1(), 42); + 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', 957); +function Maps$Values$lambda$0$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(960, 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', 960); +function equalsImpl_1(multimap, object){ + var that; + if (object === multimap) { + return true; + } + if (instanceOf(object, 224)) { + that = castTo(object, 224); + 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), 224); +} + +defineClass(736, 1986, $intern_7, Multimaps$AsMap); +_.get_3 = function get_29(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_13(){ + 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', 736); +function Multimaps$AsMap$EntrySet(this$1){ + this.this$11 = this$1; +} + +defineClass(1103, 1970, $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(o, 42); + $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', 1103); +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(1107, 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', 1107); +function $count(this$static, element){ + var values; + values = castTo(safeGet($asMap(this$static.multimap), element), 14); + 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), 14) , !values0?0:values0.size_1(); + } + values = castTo(safeGet($asMap(this$static.multimap), element), 14); + 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(543, 1988, {543:1, 834:1, 20:1, 28:1, 14: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', 543); +function Multimaps$Keys$0methodref$getKey$Type(){ +} + +defineClass(1105, 1, {}, Multimaps$Keys$0methodref$getKey$Type); +_.apply_0 = function apply_15(arg0){ + return castTo(arg0, 42).getKey(); +} +; +var Lcom_google_common_collect_Multimaps$Keys$0methodref$getKey$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/0methodref$getKey$Type', 1105); +function Multimaps$Keys$1($anonymous0){ + TransformedIterator.call(this, $anonymous0); +} + +defineClass(1104, 487, $intern_6, Multimaps$Keys$1); +_.transform_0 = function transform_7(backingEntry){ + return new Multimaps$Keys$1$1(castTo(backingEntry, 42)); +} +; +var Lcom_google_common_collect_Multimaps$Keys$1_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/1', 1104); +defineClass(1989, 1, {417:1}); +_.equals_0 = function equals_28(object){ + var that; + if (instanceOf(object, 492)) { + that = castTo(object, 417); + return castTo(this.val$backingEntry2.getValue(), 14).size_1() == castTo(that.val$backingEntry2.getValue(), 14).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(), 14).size_1(); +} +; +_.toString_0 = function toString_27(){ + var n, text_0; + text_0 = valueOf_7(this.val$backingEntry2.getKey()); + n = castTo(this.val$backingEntry2.getValue(), 14).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', 1989); +function Multimaps$Keys$1$1(val$backingEntry){ + this.val$backingEntry2 = val$backingEntry; +} + +defineClass(492, 1989, {492:1, 417: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', 492); +function Multimaps$Keys$lambda$1$Type(consumer_0){ + this.consumer_0 = consumer_0; +} + +defineClass(1106, 1, $intern_19, Multimaps$Keys$lambda$1$Type); +_.accept = function accept_12(arg0){ + this.consumer_0.accept(castTo(arg0, 42).getKey()); +} +; +var Lcom_google_common_collect_Multimaps$Keys$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multimaps/Keys/lambda$1$Type', 1106); +function Multiset$lambda$0$Type(){ +} + +defineClass(1109, 1, $intern_19, Multiset$lambda$0$Type); +_.accept = function accept_13(arg0){ + lambda$0_1(castTo(arg0, 417)); +} +; +var Lcom_google_common_collect_Multiset$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$0$Type', 1109); +function Multiset$lambda$1$Type(action_0){ + this.action_0 = action_0; +} + +defineClass(737, 1, $intern_19, Multiset$lambda$1$Type); +_.accept = function accept_14(arg0){ + lambda$1_1(this.action_0, castTo(arg0, 417)); +} +; +var Lcom_google_common_collect_Multiset$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Multiset/lambda$1$Type', 737); +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, 543)) { + that = castTo(object, 834); + 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(), 417); + if ($count(multiset, entry.val$backingEntry2.getKey()) != castTo(entry.val$backingEntry2.getValue(), 14).size_1()) { + return false; + } + } + return true; + } + return false; +} + +function lambda$3(entry_0){ + return new Spliterators$IteratorSpliterator(nCopies(castTo(entry_0.val$backingEntry2.getValue(), 14).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), 14); + if ((!values?0:values.size_1()) == oldCount) { + checkNonnegative(0, 'count'); + oldCount_0 = (values_0 = castTo(safeGet($asMap(self_0.multimap), element), 14) , !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(1110, 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', 1110); +function Multisets$lambda$3$Type(){ +} + +defineClass(738, 1, {}, Multisets$lambda$3$Type); +_.apply_0 = function apply_16(arg0){ + return lambda$3(castTo(arg0, 417)); +} +; +var Lcom_google_common_collect_Multisets$lambda$3$Type_2_classLit = createForClass('com.google.common.collect', 'Multisets/lambda$3$Type', 738); +defineClass(2007, 1, $intern_1); +var Lcom_google_common_collect_RangeGwtSerializationDependencies_2_classLit = createForClass('com.google.common.collect', 'RangeGwtSerializationDependencies', 2007); +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), 245); + this.upperBound = castTo(checkNotNull(upperBound), 245); + 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(514, 2007, {169:1, 514:1, 3:1, 45:1}, Range_0); +_.apply_1 = function apply_17(input_0){ + return $apply_1(this, castTo(input_0, 35)); +} +; +_.test_0 = function test_1(input_0){ + return $apply_1(this, castTo(input_0, 35)); +} +; +_.equals_0 = function equals_29(object){ + var other; + if (instanceOf(object, 514)) { + other = castTo(object, 514); + 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', 514); +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(778, 1998, $intern_26, RegularImmutableAsList_0); +_.listIterator_1 = function listIterator_10(index_0){ + return $listIterator(this.delegateList, index_0); +} +; +_.delegateCollection = function delegateCollection_0(){ + return this.delegate; +} +; +_.get_0 = function get_30(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', 778); +function RegularImmutableList(delegate){ + this.delegate = ($clinit_Collections() , instanceOf(delegate, 54)?new Collections$UnmodifiableRandomAccessList(delegate):new Collections$UnmodifiableList(delegate)); +} + +defineClass(646, 2005, $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', 646); +function RegularImmutableMap(entries){ + ForwardingImmutableMap.call(this, entries); +} + +defineClass(616, 715, $intern_28, RegularImmutableMap); +var Lcom_google_common_collect_RegularImmutableMap_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableMap', 616); +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(716, 703, $intern_30, RegularImmutableSet); +var EMPTY_2; +var Lcom_google_common_collect_RegularImmutableSet_2_classLit = createForClass('com.google.common.collect', 'RegularImmutableSet', 716); +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, 173) || instanceOf($e0, 205)) { + 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, 14)?new HashSet_1(castTo(elements, 14)):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, 607)) { + return set_0; + } + return new Sets$UnmodifiableNavigableSet(set_0); +} + +defineClass(1975, $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', 1975); +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_8(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(962, 1975, $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$5methodref$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$4methodref$contains$Type(this.val$set22)); +} +; +var Lcom_google_common_collect_Sets$2_2_classLit = createForClass('com.google.common.collect', 'Sets/2', 962); +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(700, 699, $intern_3, Sets$2$1); +_.computeNext = function computeNext_0(){ + var e; + while ($hasNext_4(this.itr)) { + e = $next_8(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', 700); +function Sets$2$4methodref$contains$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(963, 1, $intern_39, Sets$2$4methodref$contains$Type); +_.test_0 = function test_2(arg0){ + return this.$$outer_0.contains(arg0); +} +; +var Lcom_google_common_collect_Sets$2$4methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/4methodref$contains$Type', 963); +function Sets$2$5methodref$contains$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(964, 1, $intern_39, Sets$2$5methodref$contains$Type); +_.test_0 = function test_3(arg0){ + return this.$$outer_0.contains(arg0); +} +; +var Lcom_google_common_collect_Sets$2$5methodref$contains$Type_2_classLit = createForClass('com.google.common.collect', 'Sets/2/5methodref$contains$Type', 964); +function Sets$UnmodifiableNavigableSet(delegate){ + this.delegate = castTo(checkNotNull(delegate), 271); + this.unmodifiableDelegate = ($clinit_Collections() , new Collections$UnmodifiableSortedSet(delegate)); +} + +defineClass(607, 1974, {607:1, 3:1, 20:1, 14:1, 271:1, 21:1, 84: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', 607); +function SingletonImmutableBiMap(key, value_0){ + ImmutableBiMap.call(this, singletonMap(checkNotNull(key), checkNotNull(value_0))); + this.singleValue = value_0; +} + +defineClass(1931, 1930, $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', 1931); +function SingletonImmutableList(element){ + $clinit_ImmutableList(); + this.delegate = ($clinit_Collections() , new Collections$SingletonList(checkNotNull(element))); +} + +defineClass(647, 2005, $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', 647); +function SingletonImmutableSet(element){ + $clinit_ImmutableCollection(); + this.element = checkNotNull(element); +} + +defineClass(349, 1980, $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', 349); +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)), 670), 832); +} + +function lambda$1_2(streams_0){ + var stream, stream$array, stream$index, stream$max; + for (stream$array = streams_0 , stream$index = 0 , stream$max = stream$array.length; stream$index < stream$max; ++stream$index) { + stream = stream$array[stream$index]; + $close(stream); + } +} + +function Streams$lambda$0$Type(){ +} + +defineClass(1114, 1, {}, Streams$lambda$0$Type); +_.apply_0 = function apply_18(arg0){ + return castTo(arg0, 164); +} +; +var Lcom_google_common_collect_Streams$lambda$0$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$0$Type', 1114); +function Streams$lambda$1$Type(streams_0){ + this.streams_0 = streams_0; +} + +defineClass(1115, 1, $intern_40, Streams$lambda$1$Type); +_.run = function run_0(){ + lambda$1_2(this.streams_0); +} +; +var Lcom_google_common_collect_Streams$lambda$1$Type_2_classLit = createForClass('com.google.common.collect', 'Streams/lambda$1$Type', 1115); +function equalsImpl_4(table, obj){ + var result, result0, that; + if (obj === table) { + return true; + } + else if (instanceOf(obj, 664)) { + that = castTo(obj, 1946); + 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), 62), castTo(checkNotNull(valueComparator), 62)); +} + +defineClass(1658, 1657, $intern_5, TreeMultimap); +_.asMap_0 = function asMap_5(){ + var result; + return result = this.asMap , castTo(castTo(!result?(this.asMap = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$AsMap(this, this.map_0)):result, 161), 171); +} +; +_.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_14(){ + var result; + return result = this.keySet , castTo(castTo(!result?(this.keySet = instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableKeySet(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedKeySet(this, castTo(this.map_0, 161)):new AbstractMapBasedMultimap$KeySet(this, this.map_0)):result, 84), 271); +} +; +_.createAsMap = function createAsMap_1(){ + return instanceOf(this.map_0, 171)?new AbstractMapBasedMultimap$NavigableAsMap(this, castTo(this.map_0, 171)):instanceOf(this.map_0, 161)?new AbstractMapBasedMultimap$SortedAsMap(this, castTo(this.map_0, 161)):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', 1658); +function $clinit_DoubleMath(){ + $clinit_DoubleMath = emptyMethod; + $wnd.Math.log(2); +} + +function fuzzyCompare(a, b){ + $clinit_DoubleMath(); + return checkNonNegative($intern_41) , $wnd.Math.abs(a - b) <= $intern_41 || 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_41); + return $wnd.Math.abs(a - b) <= $intern_41 || 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_20, 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_42) < 0) { + return $intern_42; + } + return toInt_0(value_0); +} + +function $$init_0(this$static){ + this$static.stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_16, 310, 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, 78, 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; + $printStackTraceItems(this$static); + for (t$array = (this$static.suppressedExceptions == null && (this$static.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 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) + ; +} + +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(78, 1, {3:1, 78:1}); +_.createError = function createError(msg){ + return new Error(msg); +} +; +_.getBackingJsObject = function getBackingJsObject(){ + return this.backingJsObject; +} +; +_.getBackingSuppressed = function getBackingSuppressed(){ + return $toArray_7($map_0(stream_4((this.suppressedExceptions == null && (this.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_16, 78, 0, 0, 1)) , this.suppressedExceptions)), new Throwable$lambda$0$Type), new StreamImpl$0methodref$lambda$2$Type); +} +; +_.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', 78); +defineClass(102, 78, {3:1, 102:1, 78:1}); +var Ljava_lang_Exception_2_classLit = createForClass('java.lang', 'Exception', 102); +function RuntimeException(){ + Throwable.call(this); +} + +function RuntimeException_0(message){ + Throwable_0.call(this, message); +} + +defineClass(60, 102, $intern_43, RuntimeException, RuntimeException_0); +var Ljava_lang_RuntimeException_2_classLit = createForClass('java.lang', 'RuntimeException', 60); +defineClass(598, 60, $intern_43); +var Ljava_lang_JsException_2_classLit = createForClass('java.lang', 'JsException', 598); +defineClass(862, 598, $intern_43); +var Lcom_google_gwt_core_client_impl_JavaScriptExceptionBase_2_classLit = createForClass('com.google.gwt.core.client.impl', 'JavaScriptExceptionBase', 862); +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(477, 862, {477:1, 3:1, 102:1, 60:1, 78: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', 477); +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():getHashCode_0(this$static); +} + +var Lcom_google_gwt_core_client_JavaScriptObject_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptObject$', 0); +function now_1(){ + if (Date.now) { + return Date.now(); + } + return (new Date).getTime(); +} + +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(1947, 1, {}); +var Lcom_google_gwt_core_client_Scheduler_2_classLit = createForClass('com.google.gwt.core.client', 'Scheduler', 1947); +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 = now_1(); + 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, 78)) { + e = $e0; + $clinit_Impl(); + reportToBrowser(instanceOf(e, 477)?castTo(e, 477).getThrown():e); + } + else + throw toJs($e0); + } + } + return rescheduled; +} + +defineClass(889, 1947, {}, SchedulerImpl); +var INSTANCE_3; +var Lcom_google_gwt_core_client_impl_SchedulerImpl_2_classLit = createForClass('com.google.gwt.core.client.impl', 'SchedulerImpl', 889); +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(1959, 1, {}); +var Lcom_google_gwt_core_client_impl_StackTraceCreator$Collector_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/Collector', 1959); +function StackTraceCreator$CollectorLegacy(){ +} + +defineClass(863, 1959, {}, 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, 310, 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', 863); +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 = 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(toReturn.substr(index_0 + 1)); + toReturn = $trim(toReturn.substr(0, index_0)); + } + } + else { + closeParen = toReturn.indexOf(')', index_0); + location_0 = toReturn.substr(index_0 + 1, closeParen - (index_0 + 1)); + toReturn = $trim(toReturn.substr(0, index_0)); + } + index_0 = $indexOf_1(toReturn, fromCodePoint(46)); + index_0 != -1 && (toReturn = 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 = location_0.substr(0, endFileUrlIndex); + line = parseInt_0(location_0.substr(endFileUrlIndex + 1, lastColonIndex - (endFileUrlIndex + 1))); + col = parseInt_0(location_0.substr(lastColonIndex + 1)); + } + return this$static.createSte(fileName, toReturn, line, col); +} + +defineClass(1960, 1959, {}); +_.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, 310, 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', 1960); +function StackTraceCreator$CollectorModernNoSourceMap(){ +} + +defineClass(864, 1960, {}, 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', 864); +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 = buf.string.substr(0, 0)):0 > oldLength && (buf.string += valueOf_8(initUnidimensionalArray(C_classLit, $intern_44, 25, -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_45 - toInt_0(mod(neg_0(time), $intern_45)); + value_0 == $intern_45 && (value_0 = 0); + } + else { + value_0 = toInt_0(mod(time, $intern_45)); + } + if (count == 1) { + value_0 = $wnd.Math.min((value_0 + 50) / 100 | 0, 9); + $append_5(buf, 48 + value_0 & $intern_46); + } + 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_47 + $intern_47; + 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), 435))) { + if (!abut && i + 1 < len && $isNumeric(castTo($get_11(this$static.patternParts, i + 1), 435))) { + abut = true; + castTo($get_11(this$static.patternParts, i), 435).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(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_48, 25, 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), 435); + 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_47, 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_47 >= -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(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_47 + $intern_47 - 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(1049, 1, {}); +var Lcom_google_gwt_i18n_shared_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat', 1049); +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), 615)); + if (!dtf) { + dtf = new DateTimeFormat(pattern); + dtfi == defaultDtfi && $putStringValue(cache, pattern, dtf); + } + return dtf; +} + +defineClass(615, 1049, {615:1}, DateTimeFormat); +var cache; +var Lcom_google_gwt_i18n_client_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.client', 'DateTimeFormat', 615); +defineClass(2000, 1, {}); +var Lcom_google_gwt_i18n_shared_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DefaultDateTimeFormatInfo', 2000); +defineClass(2001, 2000, {}); +var Lcom_google_gwt_i18n_client_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'DefaultDateTimeFormatInfo', 2001); +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(1089, 1, {}, LocaleInfo); +var instance_0; +var Lcom_google_gwt_i18n_client_LocaleInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'LocaleInfo', 1089); +function $getISOTimeZoneString(this$static){ + var data_0, offset; + offset = -this$static.standardOffset; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 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_46; + data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_46; + data_0[4] = data_0[4] + (offset % 60 / 10 | 0) & $intern_46; + data_0[5] = data_0[5] + offset % 10 & $intern_46; + return valueOf_9(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_44, 25, 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_46; + data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_46; + data_0[3] = data_0[3] + (offset % 60 / 10 | 0) & $intern_46; + data_0[4] = data_0[4] + offset % 10 & $intern_46; + return valueOf_9(data_0, 0, data_0.length); +} + +function TimeZone(){ +} + +function composeGMTString(offset){ + var data_0; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 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_46; + data_0[5] = data_0[5] + (offset / 60 | 0) % 10 & $intern_46; + data_0[7] = data_0[7] + (offset % 60 / 10 | 0) & $intern_46; + data_0[8] = data_0[8] + offset % 10 & $intern_46; + return valueOf_9(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(1917, 1, {}, TimeZone); +_.standardOffset = 0; +var Lcom_google_gwt_i18n_client_TimeZone_2_classLit = createForClass('com.google.gwt.i18n.client', 'TimeZone', 1917); +function DateTimeFormatInfoImpl(){ +} + +defineClass(1257, 2001, {}, DateTimeFormatInfoImpl); +var Lcom_google_gwt_i18n_client_impl_cldr_DateTimeFormatInfoImpl_2_classLit = createForClass('com.google.gwt.i18n.client.impl.cldr', 'DateTimeFormatInfoImpl', 1257); +function DateTimeFormat$PatternPart(txt, cnt){ + this.text_0 = txt; + this.count = cnt; + this.abutStart = false; +} + +defineClass(435, 1, {435: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', 435); +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_47); + $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_47, 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(199, 1, $intern_49, Date_0, Date_1, Date_2); +_.compareTo_0 = function compareTo_4(other){ + return $compareTo_0(this, castTo(other, 199)); +} +; +_.equals_0 = function equals_30(obj){ + return instanceOf(obj, 199) && eq(fromDouble_0(this.jsdate.getTime()), fromDouble_0(castTo(obj, 199).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', 199); +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_42 && $setYear(date, this$static.year - $intern_47); + 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_47, 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_45), $intern_45), this$static.milliseconds)); + if (this$static.ambiguousYear) { + defaultCenturyStart = new Date_0; + $setYear(defaultCenturyStart, defaultCenturyStart.jsdate.getFullYear() - $intern_47 - 80); + lt(fromDouble_0(date.jsdate.getTime()), fromDouble_0(defaultCenturyStart.jsdate.getTime())) && $setYear(date, defaultCenturyStart.jsdate.getFullYear() - $intern_47 + 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_42) { + offset = date.jsdate.getTimezoneOffset(); + $setTime(date, add_20(fromDouble_0(date.jsdate.getTime()), (this$static.tzOffset - offset) * 60 * $intern_45)); + } + return true; +} + +function DateRecord(){ + Date_0.call(this); + this.era = -1; + this.ambiguousYear = false; + this.year = $intern_42; + 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_42; +} + +defineClass(1914, 199, $intern_49, 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', 1914); +defineClass(1965, 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', 1965); +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(216, 1965, {216:1}, JSONArray, JSONArray_0); +_.equals_0 = function equals_31(other){ + if (!instanceOf(other, 216)) { + return false; + } + return $equals_3(this.jsArray, castTo(other, 216).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', 216); +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(483, 1965, {483: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', 483); +function JSONException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(984, 60, $intern_43, JSONException); +var Lcom_google_gwt_json_client_JSONException_2_classLit = createForClass('com.google.gwt.json.client', 'JSONException', 984); +function $clinit_JSONNull(){ + $clinit_JSONNull = emptyMethod; + instance_1 = new JSONNull; +} + +function JSONNull(){ +} + +function unwrap_1(){ + return null; +} + +defineClass(1022, 1965, {}, 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', 1022); +function JSONNumber(value_0){ + this.value_0 = value_0; +} + +function unwrap_2(value_0){ + return value_0.value_0; +} + +defineClass(258, 1965, {258:1}, JSONNumber); +_.equals_0 = function equals_32(other){ + if (!instanceOf(other, 258)) { + return false; + } + return this.value_0 == castTo(other, 258).value_0; +} +; +_.getUnwrapper = function getUnwrapper_2(){ + return unwrap_2; +} +; +_.hashCode_1 = function hashCode_32(){ + return $hashCode_0(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', 258); +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(183, 1965, {183:1}, JSONObject, JSONObject_0); +_.equals_0 = function equals_33(other){ + if (!instanceOf(other, 183)) { + return false; + } + return $equals_3(this.jsObject, castTo(other, 183).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', 183); +function JSONObject$1(this$0, val$keys){ + this.this$01 = this$0; + this.val$keys2 = val$keys; +} + +defineClass(596, $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', 596); +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(204, 1965, {204:1}, JSONString); +_.equals_0 = function equals_34(other){ + if (!instanceOf(other, 204)) { + return false; + } + return $equals_5(this.value_0, castTo(other, 204).value_0); +} +; +_.getUnwrapper = function getUnwrapper_4(){ + return unwrap_4; +} +; +_.hashCode_1 = function hashCode_34(){ + return getHashCode_1(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', 204); +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_50; + a1 = value_0 >> 22 & $intern_50; + a2 = value_0 < 0?$intern_51: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_52 && 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_52 && 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_52 && 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_50; + neg1 = ~a.m + (neg0 == 0?1:0) & $intern_50; + neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_51; + 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_53 + a.h * $intern_54; +} + +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_50; + a.m = sum1 & $intern_50; + a.h = sum2 & $intern_51; + 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_50, sum1 & $intern_50, sum2 & $intern_51); +} + +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_54) { + a2 = round_int(value_0 / $intern_54); + value_0 -= a2 * $intern_54; + } + a1 = 0; + if (value_0 >= $intern_53) { + a1 = round_int(value_0 / $intern_53); + value_0 -= a1 * $intern_53; + } + 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_50; + 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_50; + c2 += c1 >> 22; + c1 &= $intern_50; + c2 &= $intern_51; + return create0(c0, c1, c2); +} + +function neg(a){ + var neg0, neg1, neg2; + neg0 = ~a.l + 1 & $intern_50; + neg1 = ~a.m + (neg0 == 0?1:0) & $intern_50; + neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_51; + return create0(neg0, neg1, neg2); +} + +function not(a){ + return create0(~a.l & $intern_50, ~a.m & $intern_50, ~a.h & $intern_51); +} + +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_50, res1 & $intern_50, res2 & $intern_51); +} + +function shr(a, n){ + var a2, negative, res0, res1, res2; + n &= 63; + a2 = a.h; + negative = (a2 & $intern_52) != 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_51:0; + res1 = a2 >> n - 22; + res0 = a.m >> n - 22 | a2 << 44 - n; + } + else { + res2 = negative?$intern_51:0; + res1 = negative?$intern_50:0; + res0 = a2 >> n - 44; + } + return create0(res0 & $intern_50, res1 & $intern_50, res2 & $intern_51); +} + +function shru(a, n){ + var a2, res0, res1, res2; + n &= 63; + a2 = a.h & $intern_51; + 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_50, res1 & $intern_50, res2 & $intern_51); +} + +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_50, sum1 & $intern_50, sum2 & $intern_51); +} + +function toDouble(a){ + if (compare_1(a, ($clinit_BigLongLib$Const() , ZERO)) < 0) { + return -toDoubleHelper(neg(a)); + } + return a.l + a.m * $intern_53 + a.h * $intern_54; +} + +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_52 && 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_55); + 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_50, $intern_50, 524287); + MIN_VALUE = create0(0, 0, $intern_52); + 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, 78)) { + 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_56 < result && result < $intern_54) { + 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_53; + } + if (a2 == $intern_51) { + return big_0.l + big_0.m * $intern_53 - $intern_54; + } + return big_0; +} + +function div(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a / b; + if ($intern_56 < result && result < $intern_54) { + 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_56 < value_0 && value_0 < $intern_54) { + 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_56 < result && result < $intern_54) { + 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_56 < result && result < $intern_54) { + 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_56 < result && result < $intern_54) { + 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_54; + a3 = $intern_51; + } + a1 = round_int(value_0 / $intern_53); + a0 = round_int(value_0 - a1 * $intern_53); + 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(1961, 1, {525:1}); +var Ljava_io_OutputStream_2_classLit = createForClass('java.io', 'OutputStream', 1961); +defineClass(1962, 1961, {525:1}); +var Ljava_io_FilterOutputStream_2_classLit = createForClass('java.io', 'FilterOutputStream', 1962); +function PrintStream(){ +} + +defineClass(865, 1962, {525:1}, PrintStream); +var Ljava_io_PrintStream_2_classLit = createForClass('java.io', 'PrintStream', 865); +function $replace0(this$static, start_0, end, toInsert){ + 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(419, 1, {475:1}); +_.toString_0 = function toString_41(){ + return this.string; +} +; +var Ljava_lang_AbstractStringBuilder_2_classLit = createForClass('java.lang', 'AbstractStringBuilder', 419); +function ArithmeticException(explanation){ + RuntimeException_0.call(this, explanation); +} + +defineClass(529, 60, $intern_43, ArithmeticException); +var Ljava_lang_ArithmeticException_2_classLit = createForClass('java.lang', 'ArithmeticException', 529); +function IndexOutOfBoundsException(){ + RuntimeException.call(this); +} + +function IndexOutOfBoundsException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(73, 60, $intern_57, IndexOutOfBoundsException, IndexOutOfBoundsException_0); +var Ljava_lang_IndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'IndexOutOfBoundsException', 73); +function ArrayIndexOutOfBoundsException(){ + IndexOutOfBoundsException.call(this); +} + +function ArrayIndexOutOfBoundsException_0(msg){ + IndexOutOfBoundsException_0.call(this, msg); +} + +defineClass(320, 73, {3:1, 320:1, 102:1, 73:1, 60:1, 78:1}, ArrayIndexOutOfBoundsException, ArrayIndexOutOfBoundsException_0); +var Ljava_lang_ArrayIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'ArrayIndexOutOfBoundsException', 320); +function ArrayStoreException(){ + RuntimeException.call(this); +} + +function ArrayStoreException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(528, 60, $intern_43, ArrayStoreException, ArrayStoreException_0); +var Ljava_lang_ArrayStoreException_2_classLit = createForClass('java.lang', 'ArrayStoreException', 528); +function Error_0(message){ + Throwable_0.call(this, message); +} + +function Error_1(message, cause){ + Throwable_1.call(this, message, cause); +} + +defineClass(288, 78, $intern_58, Error_0); +var Ljava_lang_Error_2_classLit = createForClass('java.lang', 'Error', 288); +function AssertionError(){ + Throwable.call(this); +} + +function AssertionError_0(message){ + Error_1.call(this, message == null?'null':toString_40(message), instanceOf(message, 78)?castTo(message, 78):null); +} + +defineClass(194, 288, $intern_58, AssertionError, AssertionError_0); +var Ljava_lang_AssertionError_2_classLit = createForClass('java.lang', 'AssertionError', 194); +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 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, 476:1, 35:1}; +var FALSE_0, TRUE_0; +var Ljava_lang_Boolean_2_classLit = createForClass('java.lang', 'Boolean', 476); +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 = 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 = 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(s.substr(0, head), 10); + s = s.substr(head); + length_0 -= head; + firstTime = false; + } + while (length_0 >= maxDigits) { + head = parseInt(s.substr(0, maxDigits), 10); + s = 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(236, 1, {3:1, 236:1}); +var floatRegex; +var Ljava_lang_Number_2_classLit = createForClass('java.lang', 'Number', 236); +function $compareTo_2(this$static, b){ + return this$static.value_0 - b.value_0; +} + +function Byte(value_0){ + this.value_0 = value_0; +} + +function valueOf_2(b){ + var rebase, result; + rebase = b + 128; + result = ($clinit_Byte$BoxedValues() , boxedValues)[rebase]; + !result && (result = boxedValues[rebase] = new Byte(b)); + return result; +} + +defineClass(217, 236, {3:1, 217:1, 35:1, 236:1}, Byte); +_.compareTo_0 = function compareTo_5(b){ + return $compareTo_2(this, castTo(b, 217)); +} +; +_.doubleValue = function doubleValue_0(){ + return this.value_0; +} +; +_.equals_0 = function equals_35(o){ + return instanceOf(o, 217) && castTo(o, 217).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', 217); +function $clinit_Byte$BoxedValues(){ + $clinit_Byte$BoxedValues = emptyMethod; + boxedValues = initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, 256, 0, 1); +} + +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_3(c){ + var result; + if (c < 128) { + result = ($clinit_Character$BoxedValues() , boxedValues_0)[c]; + !result && (result = boxedValues_0[c] = new Character(c)); + return result; + } + return new Character(c); +} + +defineClass(172, 1, {3:1, 172:1, 35:1}, Character); +_.compareTo_0 = function compareTo_6(c){ + return $compareTo_3(this, castTo(c, 172)); +} +; +_.equals_0 = function equals_36(o){ + return instanceOf(o, 172) && castTo(o, 172).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', 172); +function $clinit_Character$BoxedValues(){ + $clinit_Character$BoxedValues = emptyMethod; + boxedValues_0 = initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 172, 128, 0, 1); +} + +var boxedValues_0; +function ClassCastException(){ + RuntimeException.call(this); +} + +function ClassCastException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(205, 60, {3:1, 205:1, 102:1, 60:1, 78:1}, ClassCastException, ClassCastException_0); +var Ljava_lang_ClassCastException_2_classLit = createForClass('java.lang', 'ClassCastException', 205); +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_0(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, 35:1, 333:1, 236:1}; +var Ljava_lang_Double_2_classLit = createForClass('java.lang', 'Double', 333); +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_59; + } + else if (doubleValue < -3.4028234663852886E38) { + return $intern_60; + } + return doubleValue; +} + +defineClass(155, 236, {3:1, 35:1, 155:1, 236:1}, Float, Float_0); +_.compareTo_0 = function compareTo_7(b){ + return $compareTo_5(this, castTo(b, 155)); +} +; +_.doubleValue = function doubleValue_1(){ + return this.value_0; +} +; +_.equals_0 = function equals_37(o){ + return instanceOf(o, 155) && $equals_4(this.value_0, castTo(o, 155).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', 155); +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(32, 60, {3:1, 102:1, 32:1, 60:1, 78:1}, IllegalArgumentException, IllegalArgumentException_0, IllegalArgumentException_1); +var Ljava_lang_IllegalArgumentException_2_classLit = createForClass('java.lang', 'IllegalArgumentException', 32); +function IllegalStateException(){ + RuntimeException.call(this); +} + +function IllegalStateException_0(s){ + RuntimeException_0.call(this, s); +} + +defineClass(71, 60, $intern_43, IllegalStateException, IllegalStateException_0); +var Ljava_lang_IllegalStateException_2_classLit = createForClass('java.lang', 'IllegalStateException', 71); +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_42; + } + else if (i == 0) { + return 0; + } + else { + for (rtn = $intern_35; (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_61; + 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_4(i){ + var rebase, result; + if (i > -129 && i < 128) { + rebase = i + 128; + result = ($clinit_Integer$BoxedValues() , boxedValues_1)[rebase]; + !result && (result = boxedValues_1[rebase] = new Integer(i)); + return result; + } + return new Integer(i); +} + +defineClass(19, 236, {3:1, 35:1, 19:1, 236:1}, Integer); +_.compareTo_0 = function compareTo_8(b){ + return $compareTo_6(this, castTo(b, 19)); +} +; +_.doubleValue = function doubleValue_2(){ + return this.value_0; +} +; +_.equals_0 = function equals_38(o){ + return instanceOf(o, 19) && castTo(o, 19).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', 19); +function $clinit_Integer$BoxedValues(){ + $clinit_Integer$BoxedValues = emptyMethod; + boxedValues_1 = initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, 256, 0, 1); +} + +var boxedValues_1; +function $clinit_Integer$ReverseNibbles(){ + $clinit_Integer$ReverseNibbles = emptyMethod; + reverseNibbles = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 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 valueOf_5(i){ + var rebase, result; + if (compare_2(i, -129) > 0 && compare_2(i, 128) < 0) { + rebase = toInt_0(i) + 128; + result = ($clinit_Long$BoxedValues() , boxedValues_2)[rebase]; + !result && (result = boxedValues_2[rebase] = new Long(i)); + return result; + } + return new Long(i); +} + +defineClass(162, 236, {3:1, 35:1, 162:1, 236:1}, Long); +_.compareTo_0 = function compareTo_9(b){ + return $compareTo_7(this, castTo(b, 162)); +} +; +_.doubleValue = function doubleValue_3(){ + return toDouble_0(this.value_0); +} +; +_.equals_0 = function equals_39(o){ + return instanceOf(o, 162) && eq(castTo(o, 162).value_0, this.value_0); +} +; +_.hashCode_1 = function hashCode_39(){ + return toInt_0(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', 162); +function $clinit_Long$BoxedValues(){ + $clinit_Long$BoxedValues = emptyMethod; + boxedValues_2 = initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, 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(2038, 1, {}); +function NegativeArraySizeException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(1830, 60, $intern_43, NegativeArraySizeException); +var Ljava_lang_NegativeArraySizeException_2_classLit = createForClass('java.lang', 'NegativeArraySizeException', 1830); +function NullPointerException(){ + RuntimeException.call(this); +} + +function NullPointerException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(173, 598, {3:1, 102:1, 173:1, 60:1, 78:1}, NullPointerException, NullPointerException_0); +_.createError = function createError_0(msg){ + return new TypeError(msg); +} +; +var Ljava_lang_NullPointerException_2_classLit = createForClass('java.lang', 'NullPointerException', 173); +function $clinit_Number$__ParseLong(){ + $clinit_Number$__ParseLong = emptyMethod; + var i; + maxDigitsForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 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_48, 25, 37, 15, 1); + maxLengthForRadix = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 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_62, 25, 37, 14, 1); + for (i = 2; i <= 36; i++) { + maxDigitsRadixPower[i] = round_int($wnd.Math.pow(i, maxDigitsForRadix[i])); + maxValueForRadix[i] = div($intern_20, maxDigitsRadixPower[i]); + } +} + +var maxDigitsForRadix, maxDigitsRadixPower, maxLengthForRadix, maxValueForRadix; +function NumberFormatException(message){ + IllegalArgumentException_0.call(this, message); +} + +defineClass(127, 32, {3:1, 102:1, 32:1, 127:1, 60:1, 78:1}, NumberFormatException); +var Ljava_lang_NumberFormatException_2_classLit = createForClass('java.lang', 'NumberFormatException', 127); +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_6(s){ + var rebase, result; + if (s > -129 && s < 128) { + rebase = s + 128; + result = ($clinit_Short$BoxedValues() , boxedValues_3)[rebase]; + !result && (result = boxedValues_3[rebase] = new Short(s)); + return result; + } + return new Short(s); +} + +defineClass(184, 236, {3:1, 35:1, 236:1, 184:1}, Short); +_.compareTo_0 = function compareTo_10(b){ + return $compareTo_8(this, castTo(b, 184)); +} +; +_.doubleValue = function doubleValue_4(){ + return this.value_0; +} +; +_.equals_0 = function equals_40(o){ + return instanceOf(o, 184) && castTo(o, 184).value_0 == this.value_0; +} +; +_.hashCode_1 = function hashCode_40(){ + 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', 184); +function $clinit_Short$BoxedValues(){ + $clinit_Short$BoxedValues = emptyMethod; + boxedValues_3 = initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, 256, 0, 1); +} + +var boxedValues_3; +function StackTraceElement(methodName, fileName, lineNumber){ + this.className = 'Unknown'; + this.methodName = methodName; + this.fileName = fileName; + this.lineNumber = lineNumber; +} + +defineClass(310, 1, {3:1, 310:1}, StackTraceElement); +_.equals_0 = function equals_41(other){ + var st; + if (instanceOf(other, 310)) { + st = castTo(other, 310); + return this.lineNumber == st.lineNumber && this.methodName == st.methodName && this.className == st.className && this.fileName == st.fileName; + } + return false; +} +; +_.hashCode_1 = function hashCode_41(){ + return hashCode_46(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Object_2_classLit, 1), $intern_2, 1, 5, [valueOf_4(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', 310); +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 $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 $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] = trail.substr(0, matchIndex); + trail = $substring_1(trail, matchIndex + matchObj[0].length, trail.length); + compiled.lastIndex = 0; + if (lastTrail == trail) { + out[count] = trail.substr(0, 1); + trail = 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){ + return this$static.substr(beginIndex); +} + +function $substring_1(this$static, beginIndex, endIndex){ + return this$static.substr(beginIndex, endIndex - beginIndex); +} + +function $toCharArray(this$static){ + var charArr, n; + n = this$static.length; + charArr = initUnidimensionalArray(C_classLit, $intern_44, 25, 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?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_63) { + hiSurrogate = $intern_64 + (codePoint - $intern_63 >> 10 & 1023) & $intern_46; + loSurrogate = 56320 + (codePoint - $intern_63 & 1023) & $intern_46; + return String.fromCharCode(hiSurrogate) + ('' + String.fromCharCode(loSurrogate)); + } + else { + return String.fromCharCode(codePoint & $intern_46); + } +} + +function valueOf_7(x_0){ + return x_0 == null?'null':toString_40(x_0); +} + +function valueOf_8(x_0){ + return valueOf_9(x_0, 0, x_0.length); +} + +function valueOf_9(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, 475:1, 35: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){ + this$static.string = $substring_1(this$static.string, 0, start_0) + '' + $substring_0(this$static.string, 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(107, 419, {475:1}, StringBuffer, StringBuffer_0, StringBuffer_1); +var Ljava_lang_StringBuffer_2_classLit = createForClass('java.lang', 'StringBuffer', 107); +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_9(x_0, 0, x_0.length); + return this$static; +} + +function $append_13(this$static, x_0, len){ + this$static.string += valueOf_9(x_0, 0, len); + return this$static; +} + +function $insert_0(this$static, index_0, x_0){ + this$static.string = $substring_1(this$static.string, 0, index_0) + ('' + x_0) + $substring_0(this$static.string, index_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(100, 419, {475:1}, StringBuilder, StringBuilder_0, StringBuilder_1); +var Ljava_lang_StringBuilder_2_classLit = createForClass('java.lang', 'StringBuilder', 100); +function StringIndexOutOfBoundsException(message){ + IndexOutOfBoundsException_0.call(this, message); +} + +defineClass(687, 73, $intern_57, StringIndexOutOfBoundsException); +var Ljava_lang_StringIndexOutOfBoundsException_2_classLit = createForClass('java.lang', 'StringIndexOutOfBoundsException', 687); +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, destlen, srcArray, srcComp, srcType, srclen; + 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"); + srclen = src_0.length; + destlen = dest.length; + if (srcOfs < 0 || destOfs < 0 || len < 0 || srcOfs + len > srclen || destOfs + len > destlen) { + throw toJs(new IndexOutOfBoundsException); + } + 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 + len > 0 && copy_0(src_0, srcOfs, dest, destOfs, len, true); +} + +defineClass(2042, 1, {}); +var err_0; +function Throwable$lambda$0$Type(){ +} + +defineClass(843, 1, {}, Throwable$lambda$0$Type); +_.apply_0 = function apply_20(arg0){ + return castTo(arg0, 78).backingJsObject; +} +; +var Ljava_lang_Throwable$lambda$0$Type_2_classLit = createForClass('java.lang', 'Throwable/lambda$0$Type', 843); +function UnsupportedOperationException(){ + RuntimeException.call(this); +} + +function UnsupportedOperationException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(41, 60, {3:1, 102:1, 60:1, 78:1, 41:1}, UnsupportedOperationException, UnsupportedOperationException_0); +var Ljava_lang_UnsupportedOperationException_2_classLit = createForClass('java.lang', 'UnsupportedOperationException', 41); +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, 240, 11, 0, 1); + CH_ZEROS = initUnidimensionalArray(C_classLit, $intern_44, 25, 100, 15, 1); + DOUBLE_FIVE_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 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_48, 25, DOUBLE_FIVE_POW.length, 15, 1); + DOUBLE_TEN_POW = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [1, 10, 100, $intern_45, 10000, $intern_66, 1000000, 10000000, 100000000, $intern_55, 10000000000, 100000000000, 1000000000000, 10000000000000, 100000000000000, 1000000000000000, 10000000000000000]); + DOUBLE_TEN_POW_BIT_LENGTH = initUnidimensionalArray(I_classLit, $intern_48, 25, DOUBLE_TEN_POW.length, 15, 1); + ZERO_SCALED_BY = initUnidimensionalArray(Ljava_math_BigDecimal_2_classLit, $intern_16, 240, 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_67) + 1) - (val.precision > 0?val.precision:$wnd.Math.floor((val.bitLength - 1) * $intern_67) + 1); + if (diffPrecision > diffScale + 1) { + return thisSign; + } + else if (diffPrecision < diffScale - 1) { + return -thisSign; + } + else { + thisUnscaled = (!this$static.intVal && (this$static.intVal = valueOf_10(this$static.smallValue)) , this$static.intVal); + valUnscaled = (!val.intVal && (val.intVal = valueOf_10(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 = val.substr(begin, last - begin); + this$static.scale = this$static.scale - __parseAndValidateInt(scaleString, $intern_42, $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_4(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?or_0(shl_0(unscaledValue.digits[1], 32), and_0(unscaledValue.digits[0], $intern_68)):and_0(unscaledValue.digits[0], $intern_68) , toDouble_0(mul_0(unscaledValue.sign, 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_10(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_10(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, 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, 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_10(this$static.smallValue)) , this$static.intVal), 0); + if (this$static.scale == 0) { + return intString; + } + begin = (!this$static.intVal && (this$static.intVal = valueOf_10(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 { + result.string = $substring_1(result.string, 0, begin - 1) + '0.' + $substring_0(result.string, begin - 1); + $insert_0(result, begin + 1, valueOf_9(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 = valueOf_11(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(shr_0(value_0, 32)) , 64 - (high != 0?numberOfLeadingZeros_0(high):numberOfLeadingZeros_0(toInt_0(value_0)) + 32); +} + +defineClass(240, 236, {3:1, 35:1, 236:1, 240:1}, BigDecimal, BigDecimal_0); +_.compareTo_0 = function compareTo_11(val){ + return $compareTo_10(this, castTo(val, 240)); +} +; +_.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, 240)) { + x1 = castTo(x_0, 240); + return this.scale == x1.scale && $compareTo_10(this, x1) == 0; + } + return false; +} +; +_.hashCode_1 = function hashCode_42(){ + 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_1(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', 240); +function $clinit_BigInteger(){ + $clinit_BigInteger = emptyMethod; + var i; + ONE_0 = new BigInteger_0(1, 1); + TEN = new BigInteger_0(1, 10); + ZERO_0 = new BigInteger_0(0, 0); + MINUS_ONE = new BigInteger_0(-1, 1); + SMALL_VALUES = stampJavaTypeInfo(getClassLiteralForArray(Ljava_math_BigInteger_2_classLit, 1), $intern_16, 91, 0, [ZERO_0, ONE_0, new BigInteger_0(1, 2), new BigInteger_0(1, 3), new BigInteger_0(1, 4), new BigInteger_0(1, 5), new BigInteger_0(1, 6), new BigInteger_0(1, 7), new BigInteger_0(1, 8), new BigInteger_0(1, 9), TEN]); + TWO_POWS = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); + for (i = 0; i < TWO_POWS.length; i++) { + TWO_POWS[i] = valueOf_11(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, 91)) { + x1 = castTo(x_0, 91); + 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_1(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) { + return ZERO_0; + } + if (this$static.sign == 0) { + return ZERO_0; + } + return $clinit_Multiplication() , karatsuba(this$static, val); +} + +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, val){ + this.sign = sign; + if (val < $intern_69) { + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [val | 0]); + } + else { + this.numberLength = 2; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [val % $intern_69 | 0, val / $intern_69 | 0]); + } +} + +function BigInteger_0(sign, value_0){ + $clinit_BigInteger(); + this.sign = sign; + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [value_0]); +} + +function BigInteger_1(sign, numberLength, digits){ + $clinit_BigInteger(); + this.sign = sign; + this.numberLength = numberLength; + this.digits = digits; +} + +function BigInteger_2(sign, val){ + this.sign = sign; + if (eq(and_0(val, -4294967296), 0)) { + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [toInt_0(val)]); + } + else { + this.numberLength = 2; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [toInt_0(val), toInt_0(shr_0(val, 32))]); + } +} + +function BigInteger_3(digits){ + $clinit_BigInteger(); + if (digits.length == 0) { + this.sign = 0; + this.numberLength = 1; + this.digits = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [0]); + } + else { + this.sign = 1; + this.numberLength = digits.length; + this.digits = digits; + $cutOffLeadingZeroes(this); + } +} + +function BigInteger_4(val){ + $clinit_BigInteger(); + BigInteger_5.call(this, val); +} + +function BigInteger_5(val){ + checkCriticalNotNull(val); + if (val.length == 0) { + throw toJs(new NumberFormatException('Zero length BigInteger')); + } + setFromString(this, val); +} + +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_48, 25, 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_48, 25, 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(val.substr(substrStart, substrEnd - substrStart), $intern_42, $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_10(val){ + $clinit_BigInteger(); + if (val < 0) { + if (val != -1) { + return new BigInteger(-1, -val); + } + return MINUS_ONE; + } + else + return val <= 10?SMALL_VALUES[round_int(val)]:new BigInteger(1, val); +} + +function valueOf_11(val){ + $clinit_BigInteger(); + if (compare_2(val, 0) < 0) { + if (compare_2(val, -1) != 0) { + return new BigInteger_2(-1, neg_0(val)); + } + return MINUS_ONE; + } + else + return compare_2(val, 10) <= 0?SMALL_VALUES[toInt_0(val)]:new BigInteger_2(1, val); +} + +defineClass(91, 236, {3:1, 35:1, 236:1, 91:1}, BigInteger, BigInteger_0, BigInteger_1, BigInteger_2, BigInteger_3, BigInteger_4); +_.compareTo_0 = function compareTo_12(val){ + return $compareTo_11(this, castTo(val, 91)); +} +; +_.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_43(){ + return $hashCode_1(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', 91); +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_48, 25, 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_48, 25, 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_48, 25, 15, [$intern_42, 1162261467, $intern_35, 1220703125, 362797056, 1977326743, $intern_35, 387420489, $intern_55, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 1280000000, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729000000, 887503681, $intern_35, 1291467969, 1544804416, 1838265625, 60466176]); + digitFitInInt = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 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_55); + rem = mod(a, $intern_55); + } + 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_68)); +} + +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_42?'2147483648':'' + -scale; + return result10.string; + } + } + resLengthInChars = 18; + result = initUnidimensionalArray(C_classLit, $intern_44, 25, 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_46; + } + 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_9(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_9(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_9(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_9(result, currentChar + 1, resLengthInChars - currentChar - 1); + } + else { + result1.string += valueOf_9(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_44, 25, resLengthInChars + 1, 15, 1); + currentChar = resLengthInChars; + if (numberLength == 1) { + highDigit = digits[0]; + if (highDigit < 0) { + v = and_0(highDigit, $intern_68); + do { + prev = v; + v = div(v, 10); + result[--currentChar] = 48 + toInt_0(sub_2(prev, mul_0(v, 10))) & $intern_46; + } + while (compare_2(v, 0) != 0); + } + else { + v = highDigit; + do { + prev = v; + v = v / 10 | 0; + result[--currentChar] = 48 + (prev - v * 10) & $intern_46; + } + while (v != 0); + } + } + else { + temp = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_68)); + 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_46; + } + 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_9(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_9(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_9(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_9(result, currentChar + 1, resLengthInChars - currentChar - 1); + } + else { + result1.string += valueOf_9(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_68); + b = and_0(op2.digits[0], $intern_68); + if (op1Sign == op2Sign) { + res0 = add_20(a, b); + valueLo = toInt_0(res0); + valueHi = toInt_0(shru_0(res0, 32)); + return valueHi == 0?new BigInteger_0(op1Sign, valueLo):new BigInteger_1(op1Sign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [valueLo, valueHi])); + } + return valueOf_11(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_48, 25, 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_68), and_0(b[0], $intern_68)); + 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_68), and_0(b[i], $intern_68))); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + for (; i < aSize; i++) { + carry = add_20(carry, and_0(a[i], $intern_68)); + 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_68), and_0(b[i], $intern_68))); + res[i] = toInt_0(carry); + carry = shr_0(carry, 32); + } + for (; i < bSize; i++) { + carry = add_20(carry, and_0(b[i], $intern_68)); + 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_68), and_0(b[i], $intern_68))?-1:1; +} + +function inplaceAdd(a, aSize, addend){ + var carry, i; + carry = and_0(addend, $intern_68); + for (i = 0; compare_2(carry, 0) != 0 && i < aSize; i++) { + carry = add_20(carry, and_0(a[i], $intern_68)); + 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_68); + b = and_0(op2.digits[0], $intern_68); + op1Sign < 0 && (a = neg_0(a)); + op2Sign < 0 && (b = neg_0(b)); + return valueOf_11(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_48, 25, 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_68), and_0(b[i], $intern_68))); + res[i] = toInt_0(borrow); + borrow = shr_0(borrow, 32); + } + for (; i < aSize; i++) { + borrow = add_20(borrow, and_0(a[i], $intern_68)); + 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, 91, 32, 0, 1); + bigTenPows = initUnidimensionalArray(Ljava_math_BigInteger_2_classLit, $intern_16, 91, 32, 0, 1); + fivePow = 1; + for (i = 0; i <= 18; i++) { + bigFivePows[i] = valueOf_11(fivePow); + bigTenPows[i] = valueOf_11(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_68), and_0(b[j], $intern_68)), and_0(t[i + j], $intern_68)), and_0(toInt_0(carry), $intern_68)); + 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_68), and_0(factor, $intern_68)), and_0(toInt_0(carry), $intern_68)); + 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_68), and_0(b.digits[0], $intern_68)); + valueLo = toInt_0(val); + valueHi = toInt_0(shru_0(val, 32)); + return valueHi == 0?new BigInteger_0(resSign, valueLo):new BigInteger_1(resSign, 2, stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_48, 25, 15, [valueLo, valueHi])); + } + aDigits = a.digits; + bDigits = b.digits; + resDigits = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_3(square(acc.digits, acc.numberLength, initUnidimensionalArray(I_classLit, $intern_48, 25, 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_45) { + 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_68), and_0(a[j], $intern_68)), and_0(res[i0 + j], $intern_68)), and_0(toInt_0(carry), $intern_68)); + 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_68), and_0(a[i], $intern_68)), and_0(res[index_0], $intern_68)), and_0(toInt_0(carry), $intern_68)); + res[index_0] = toInt_0(carry); + carry = shru_0(carry, 32); + ++index_0; + carry = add_20(carry, and_0(res[index_0], $intern_68)); + 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(), 42); + 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); + structureChanged(this$static); +} + +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(488, 1966, $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_31(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); +} +; +var Ljava_util_AbstractHashMap_2_classLit = createForClass('java.util', 'AbstractHashMap', 488); +function $contains_0(this$static, o){ + if (instanceOf(o, 42)) { + return $containsEntry_0(this$static.this$01, castTo(o, 42)); + } + return false; +} + +function AbstractHashMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(261, $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, 42).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', 261); +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_4(this$static){ + var rv; + checkStructuralChange(this$static.this$01, this$static); + checkCriticalElement(this$static.hasNext); + this$static.last = this$static.current; + rv = castTo(this$static.current.next_1(), 42); + this$static.hasNext = $computeHasNext(this$static); + return rv; +} + +function $remove_7(this$static){ + checkCriticalState(!!this$static.last); + checkStructuralChange(this$static.this$01, this$static); + this$static.last.remove(); + this$static.last = null; + this$static.hasNext = $computeHasNext(this$static); + recordLastKnownStructure(this$static.this$01, this$static); +} + +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.$modCount = this$0.$modCount; +} + +defineClass(262, 1, $intern_6, AbstractHashMap$EntrySetIterator); +_.forEachRemaining = function forEachRemaining_16(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_19(){ + return $next_4(this); +} +; +_.hasNext_0 = function hasNext_18(){ + return this.hasNext; +} +; +_.remove = function remove_50(){ + $remove_7(this); +} +; +_.hasNext = false; +var Ljava_util_AbstractHashMap$EntrySetIterator_2_classLit = createForClass('java.util', 'AbstractHashMap/EntrySetIterator', 262); +function $hasNext_2(this$static){ + return this$static.i < this$static.this$01_0.size_1(); +} + +function $next_5(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(418, 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_5(this); +} +; +_.remove = function remove_51(){ + $remove_8(this); +} +; +_.i = 0; +_.last = -1; +var Ljava_util_AbstractList$IteratorImpl_2_classLit = createForClass('java.util', 'AbstractList/IteratorImpl', 418); +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(96, 418, $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', 96); +function AbstractList$SubList(wrapped, fromIndex, toIndex){ + checkCriticalPositionIndexes(fromIndex, toIndex, wrapped.size_1()); + this.wrapped = wrapped; + this.fromIndex = fromIndex; + this.size_0 = toIndex - fromIndex; +} + +defineClass(219, 52, $intern_37, 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_32(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', 219); +function AbstractMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(384, $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', 384); +function AbstractMap$1$1(val$outerIter){ + this.val$outerIter2 = val$outerIter; +} + +defineClass(691, 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(), 42) , entry.getKey(); +} +; +_.remove = function remove_55(){ + this.val$outerIter2.remove(); +} +; +var Ljava_util_AbstractMap$1$1_2_classLit = createForClass('java.util', 'AbstractMap/1/1', 691); +function AbstractMap$2(this$0){ + this.this$01 = this$0; +} + +defineClass(226, 28, $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', 226); +function AbstractMap$2$1(val$outerIter){ + this.val$outerIter2 = val$outerIter; +} + +defineClass(294, 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(), 42) , entry.getValue(); +} +; +_.remove = function remove_56(){ + this.val$outerIter2.remove(); +} +; +var Ljava_util_AbstractMap$2$1_2_classLit = createForClass('java.util', 'AbstractMap/2/1', 294); +function $setValue_0(this$static, value_0){ + var oldValue; + oldValue = this$static.value_0; + this$static.value_0 = value_0; + return oldValue; +} + +defineClass(484, 1, {484:1, 42:1}); +_.equals_0 = function equals_44(other){ + var entry; + if (!instanceOf(other, 42)) { + return false; + } + entry = castTo(other, 42); + 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_44(){ + return hashCode_54(this.key) ^ hashCode_54(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', 484); +function AbstractMap$SimpleEntry(key, value_0){ + this.key = key; + this.value_0 = value_0; +} + +defineClass(383, 484, {484:1, 383:1, 42:1}, AbstractMap$SimpleEntry); +var Ljava_util_AbstractMap$SimpleEntry_2_classLit = createForClass('java.util', 'AbstractMap/SimpleEntry', 383); +defineClass(1983, 1, $intern_70); +_.equals_0 = function equals_45(other){ + var entry; + if (!instanceOf(other, 42)) { + return false; + } + entry = castTo(other, 42); + return equals_57(this.getKey(), entry.getKey()) && equals_57(this.getValue(), entry.getValue()); +} +; +_.hashCode_1 = function hashCode_45(){ + return hashCode_54(this.getKey()) ^ hashCode_54(this.getValue()); +} +; +_.toString_0 = function toString_53(){ + return this.getKey() + '=' + this.getValue(); +} +; +var Ljava_util_AbstractMapEntry_2_classLit = createForClass('java.util', 'AbstractMapEntry', 1983); +function $containsEntry_1(this$static, entry){ + var key, lookupEntry; + key = entry.getKey(); + lookupEntry = $getEntry_1(this$static, key); + return !!lookupEntry && equals_57(lookupEntry.value_0, entry.getValue()); +} + +function $containsKey_4(this$static, k){ + var key; + key = k; + return !!$getEntry_1(this$static, key); +} + +function getKeyOrNSE(entry){ + if (!entry) { + throw toJs(new NoSuchElementException); + } + return entry.key; +} + +defineClass(1991, 1966, $intern_11); +_.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); +} +; +_.get_3 = function get_33(k){ + var key; + key = k; + return getEntryValueOrNull($getEntry_1(this, key)); +} +; +_.keySet_0 = function keySet_15(){ + return new AbstractNavigableMap$NavigableKeySet(this); +} +; +var Ljava_util_AbstractNavigableMap_2_classLit = createForClass('java.util', 'AbstractNavigableMap', 1991); +function AbstractNavigableMap$EntrySet(this$0){ + this.this$01_0 = this$0; +} + +defineClass(739, $intern_9, $intern_10, AbstractNavigableMap$EntrySet); +_.contains = function contains_31(o){ + return instanceOf(o, 42) && $containsEntry_1(this.this$01_0, castTo(o, 42)); +} +; +_.iterator_0 = function iterator_49(){ + return new TreeMap$EntryIterator(this.this$01_0); +} +; +_.remove_1 = function remove_57(o){ + var entry; + if (instanceOf(o, 42)) { + entry = castTo(o, 42); + return $removeEntry(this.this$01_0, entry); + } + return false; +} +; +_.size_1 = function size_42(){ + return this.this$01_0.size_0; +} +; +var Ljava_util_AbstractNavigableMap$EntrySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/EntrySet', 739); +function AbstractNavigableMap$NavigableKeySet(map_0){ + this.map_0 = map_0; +} + +defineClass(493, $intern_9, $intern_13, AbstractNavigableMap$NavigableKeySet); +_.spliterator_0 = function spliterator_26(){ + return new SortedSet$1(this); +} +; +_.clear_0 = function clear_34(){ + $clear_8(this.map_0); +} +; +_.contains = function contains_32(o){ + return $containsKey_4(this.map_0, o); +} +; +_.iterator_0 = function iterator_50(){ + var entryIterator; + return entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet(this.map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator); +} +; +_.remove_1 = function remove_58(o){ + if ($containsKey_4(this.map_0, o)) { + $remove_26(this.map_0, o); + return true; + } + return false; +} +; +_.size_1 = function size_43(){ + return this.map_0.size_0; +} +; +var Ljava_util_AbstractNavigableMap$NavigableKeySet_2_classLit = createForClass('java.util', 'AbstractNavigableMap/NavigableKeySet', 493); +function AbstractNavigableMap$NavigableKeySet$1(val$entryIterator){ + this.val$entryIterator2 = val$entryIterator; +} + +defineClass(494, 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; + return entry = $next_11(this.val$entryIterator2) , 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', 494); +defineClass(2003, 28, $intern_8); +_.add_2 = function add_26(o){ + return checkCriticalState_0($offer(this, o)) , 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', 2003); +function $$init_1(this$static){ + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 8, 5, 1); +} + +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_6(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(){ + $$init_1(this); +} + +function ArrayDeque_0(numElements){ + $$init_1(this); + setLength(this.array, highestOneBit($wnd.Math.max(8, numElements)) << 1); +} + +function checkConcurrentModification(expression){ + if (!expression) { + throw toJs(new ConcurrentModificationException); + } +} + +defineClass(302, 28, {4:1, 20:1, 28:1, 14: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', 302); +function $next_6(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(447, 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_6(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', 447); +function $$init_2(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){ + this$static.array[this$static.array.length] = 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){ + return clone_0(this$static.array, this$static.array.length); +} + +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 ArrayList(){ + $$init_2(this); +} + +function ArrayList_0(initialCapacity){ + $$init_2(this); + checkCriticalArgument_0(initialCapacity >= 0, 'Initial capacity must not be negative'); +} + +function ArrayList_1(c){ + $$init_2(this); + insertTo_0(this.array, 0, c.toArray()); +} + +defineClass(12, 52, $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(){ + this.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.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_34(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 $toArray_1(this); +} +; +_.toArray_0 = function toArray_12(out){ + return $toArray_2(this, out); +} +; +var Ljava_util_ArrayList_2_classLit = createForClass('java.util', 'ArrayList', 12); +function $hasNext_3(this$static){ + return this$static.i < this$static.this$01.array.length; +} + +function $next_7(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_7(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_48, 25, newLength, 15, 1), newLength); +} + +function copyOf_0(original, newLength){ + var copy, result; + checkCriticalArraySize(newLength); + return copy = (result = original.slice(0, newLength) , stampJavaTypeInfo_0(result, original)) , copy.length = newLength , copy; +} + +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, 177)?$add_9(joiner, toString_61(castTo(obj, 177))):instanceOf(obj, 190)?$add_9(joiner, toString_54(castTo(obj, 190))):instanceOf(obj, 195)?$add_9(joiner, toString_55(castTo(obj, 195))):instanceOf(obj, 2011)?$add_9(joiner, toString_60(castTo(obj, 2011))):instanceOf(obj, 48)?$add_9(joiner, toString_58(castTo(obj, 48))):instanceOf(obj, 363)?$add_9(joiner, toString_59(castTo(obj, 363))):instanceOf(obj, 831)?$add_9(joiner, toString_57(castTo(obj, 831))):instanceOf(obj, 104) && $add_9(joiner, toString_56(castTo(obj, 104))); + } + 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_46(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(2012, $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_3(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(154, 52, $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_35(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_3(this, initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, this.array.length, 5, 1)); +} +; +_.toArray_0 = function toArray_14(out){ + return $toArray_3(this, out); +} +; +var Ljava_util_Arrays$ArrayList_2_classLit = createForClass('java.util', 'Arrays/ArrayList', 154); +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_47(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_48(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) { + list.array[list.array.length] = o; + } + return new Collections$UnmodifiableRandomAccessList(list); +} + +function reverse_2(l){ + var t; + $clinit_Collections(); + var head, headElem, iBack, iFront, tail, tailElem; + if (instanceOf(l, 54)) { + 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, 54)?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(939, 52, $intern_72, Collections$EmptyList); +_.contains = function contains_36(object){ + return false; +} +; +_.get_0 = function get_36(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', 939); +function $clinit_Collections$EmptyListIterator(){ + $clinit_Collections$EmptyListIterator = emptyMethod; + INSTANCE_4 = new Collections$EmptyListIterator; +} + +function Collections$EmptyListIterator(){ +} + +defineClass(940, 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', 940); +function Collections$EmptyMap(){ +} + +defineClass(942, 1966, $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_37(key){ + return null; +} +; +_.keySet_0 = function keySet_16(){ + 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', 942); +function Collections$EmptySet(){ +} + +defineClass(941, $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', 941); +function Collections$SingletonList(element){ + this.element = element; +} + +defineClass(599, 52, {3:1, 20:1, 28:1, 52:1, 14:1, 15:1}, Collections$SingletonList); +_.contains = function contains_38(item_0){ + return equals_57(this.element, item_0); +} +; +_.get_0 = function get_38(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', 599); +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_4(this$static, a){ + return this$static.coll.toArray_0(a); +} + +function Collections$UnmodifiableCollection(coll){ + this.coll = coll; +} + +defineClass(371, 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_4(this, a); +} +; +_.toString_0 = function toString_62(){ + return toString_40(this.coll); +} +; +var Ljava_util_Collections$UnmodifiableCollection_2_classLit = createForClass('java.util', 'Collections/UnmodifiableCollection', 371); +function $remove_15(){ + throw toJs(new UnsupportedOperationException); +} + +function Collections$UnmodifiableCollectionIterator(it){ + this.it = it; +} + +defineClass(370, 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', 370); +function Collections$UnmodifiableList(list){ + Collections$UnmodifiableCollection.call(this, list); + this.list = list; +} + +defineClass(531, 371, $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_39(index_0){ + return this.list.get_0(index_0); +} +; +_.hashCode_1 = function hashCode_49(){ + 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', 531); +function Collections$UnmodifiableListIterator(lit){ + Collections$UnmodifiableCollectionIterator.call(this, lit); + this.lit = lit; +} + +defineClass(690, 370, $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', 690); +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(600, 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_40(key){ + return this.map_0.get_3(key); +} +; +_.hashCode_1 = function hashCode_50(){ + return hashCode__I__devirtual$(this.map_0); +} +; +_.isEmpty = function isEmpty_22(){ + return this.map_0.isEmpty(); +} +; +_.keySet_0 = function keySet_17(){ + 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', 600); +function Collections$UnmodifiableSet(set_0){ + Collections$UnmodifiableCollection.call(this, set_0); +} + +defineClass(382, 371, $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_51(){ + return hashCode__I__devirtual$(this.coll); +} +; +var Ljava_util_Collections$UnmodifiableSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSet', 382); +function $contains_3(this$static, o){ + return this$static.coll.contains(o); +} + +function $toArray_5(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], 42))); + } +} + +function Collections$UnmodifiableMap$UnmodifiableEntrySet(s){ + Collections$UnmodifiableSet.call(this, s); +} + +defineClass(943, 382, $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_5(this, a); +} +; +var Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableMap/UnmodifiableEntrySet', 943); +function Collections$UnmodifiableMap$UnmodifiableEntrySet$1(val$it){ + this.val$it2 = val$it; +} + +defineClass(944, 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(), 42)); +} +; +_.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', 944); +function Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(entry){ + this.entry = entry; +} + +defineClass(688, 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_52(){ + 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', 688); +function Collections$UnmodifiableRandomAccessList(list){ + Collections$UnmodifiableList.call(this, list); +} + +defineClass(601, 531, {20:1, 14:1, 15:1, 54:1}, Collections$UnmodifiableRandomAccessList); +var Ljava_util_Collections$UnmodifiableRandomAccessList_2_classLit = createForClass('java.util', 'Collections/UnmodifiableRandomAccessList', 601); +function Collections$UnmodifiableSortedSet(sortedSet){ + Collections$UnmodifiableSet.call(this, sortedSet); + this.sortedSet = sortedSet; +} + +defineClass(689, 382, $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_53(){ + return hashCode__I__devirtual$(this.sortedSet); +} +; +var Ljava_util_Collections$UnmodifiableSortedSet_2_classLit = createForClass('java.util', 'Collections/UnmodifiableSortedSet', 689); +function Comparator$lambda$0$Type(){ +} + +defineClass(846, 1, $intern_74, Comparator$lambda$0$Type); +_.compare_1 = function compare_8(a, b){ + var c; + return c = lambda$0_25(castTo(a, 11), castTo(b, 11)) , c != 0?c:lambda$1_12(castTo(a, 11), castTo(b, 11)); +} +; +_.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', 846); +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(751, 1, $intern_74, Comparators$NaturalOrderComparator); +_.compare_1 = function compare_9(a, b){ + return $compare(castTo(a, 35), castTo(b, 35)); +} +; +_.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', 751); +function $compare_0(a, b){ + return checkCriticalNotNull(b) , compareTo_Ljava_lang_Object__I__devirtual$(b, (checkCriticalNotNull(a) , a)); +} + +function Comparators$ReverseNaturalOrderComparator(){ +} + +defineClass(1176, 1, $intern_74, Comparators$ReverseNaturalOrderComparator); +_.compare_1 = function compare_10(a, b){ + return $compare_0(castTo(a, 35), castTo(b, 35)); +} +; +_.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', 1176); +function Comparators$ReversedComparator(comparator){ + this.comparator = comparator; +} + +defineClass(64, 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', 64); +function checkStructuralChange(host, iterator){ + if (iterator.$modCount != host.$modCount) { + throw toJs(new ConcurrentModificationException); + } +} + +function recordLastKnownStructure(host, iterator){ + iterator.$modCount = host.$modCount; +} + +function structureChanged(host){ + var modCount, modCountable; + modCountable = host; + modCount = modCountable.$modCount | 0; + modCountable.$modCount = modCount + 1; +} + +function ConcurrentModificationException(){ + RuntimeException.call(this); +} + +defineClass(166, 60, $intern_43, ConcurrentModificationException); +var Ljava_util_ConcurrentModificationException_2_classLit = createForClass('java.util', 'ConcurrentModificationException', 166); +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(1903, 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_60; +_.min_0 = $intern_59; +_.naiveSum = 0; +_.sum = 0; +_.sumError = 0; +var Ljava_util_DoubleSummaryStatistics_2_classLit = createForClass('java.util', 'DoubleSummaryStatistics', 1903); +function EmptyStackException(){ + RuntimeException.call(this); +} + +defineClass(1804, 60, $intern_43, EmptyStackException); +var Ljava_util_EmptyStackException_2_classLit = createForClass('java.util', 'EmptyStackException', 1804); +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 $set_2(this$static, 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)?$set_2(this$static, castTo(key, 22).ordinal, null):null; +} + +function $set_2(this$static, ordinal, value_0){ + var was; + was = this$static.values[ordinal]; + this$static.values[ordinal] = value_0; + return was; +} + +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(452, 1966, $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_8(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_41(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', 452); +function $contains_4(this$static, o){ + if (instanceOf(o, 42)) { + return $containsEntry_0(this$static.this$01, castTo(o, 42)); + } + return false; +} + +function EnumMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(1351, $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, 42).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', 1351); +function EnumMap$EntrySetIterator(this$0){ + this.this$01 = this$0; + this.it = new EnumSet$EnumSetImpl$IteratorImpl(this.this$01.keySet); +} + +defineClass(1352, 1, $intern_6, EnumMap$EntrySetIterator); +_.forEachRemaining = function forEachRemaining_26(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_29(){ + return this.key = $next_8(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', 1352); +function EnumMap$MapEntry(this$0, key){ + this.this$01 = this$0; + this.key = key; +} + +defineClass(1353, 1983, $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 $set_2(this.this$01, this.key.ordinal, value_0); +} +; +var Ljava_util_EnumMap$MapEntry_2_classLit = createForClass('java.util', 'EnumMap/MapEntry', 1353); +function allOf(elementType){ + var all, set_0; + all = castTo(elementType.enumConstantsFunc && elementType.enumConstantsFunc(), 9); + set_0 = castTo(clone_0(all, all.length), 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(174, $intern_9, {20:1, 28:1, 14:1, 174:1, 21:1}); +var Ljava_util_EnumSet_2_classLit = createForClass('java.util', 'EnumSet', 174); +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, this$static.set_0.length), 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(156, 174, {20:1, 28:1, 14:1, 174:1, 156: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', 156); +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_8(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(342, 1, $intern_6, EnumSet$EnumSetImpl$IteratorImpl); +_.forEachRemaining = function forEachRemaining_27(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_30(){ + return $next_8(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', 342); +function HashMap(){ + $reset(this); +} + +function HashMap_0(ignored){ + AbstractHashMap.call(this, ignored, 0); +} + +function HashMap_1(toBeCopied){ + $reset(this); + $putAll(this, toBeCopied); +} + +defineClass(43, 488, $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; + hashCode = hashCode__I__devirtual$(key); + return hashCode | 0; +} +; +var Ljava_util_HashMap_2_classLit = createForClass('java.util', 'HashMap', 43); +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(53, $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', 53); +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(1780, 1, $intern_21, 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_42; +_.min_0 = $intern_0; +_.sum = 0; +var Ljava_util_IntSummaryStatistics_2_classLit = createForClass('java.util', 'IntSummaryStatistics', 1780); +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?new Array:chain; +} + +function $getEntry_0(this$static, key){ + return $findEntryInChain(this$static, key, $getChainOrEmpty(this$static, key == null?0:this$static.host.getHashCode(key))); +} + +function $put_9(this$static, key, value_0){ + var chain, chain0, entry, hashCode; + hashCode = key == null?0:this$static.host.getHashCode(key); + chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?new Array: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; + structureChanged(this$static.host); + return null; +} + +function $remove_19(this$static, key){ + var chain, chain0, entry, hashCode, i; + hashCode = key == null?0:this$static.host.getHashCode(key); + chain0 = (chain = this$static.backingMap.get(hashCode) , chain == null?new Array: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; + structureChanged(this$static.host); + return entry.getValue(); + } + } + return null; +} + +function InternalHashCodeMap(host){ + this.backingMap = newJsMap(); + this.host = host; +} + +defineClass(1048, 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', 1048); +function InternalHashCodeMap$1(this$0){ + this.this$01 = this$0; + this.chains = this.this$01.backingMap.entries(); + this.chain = new Array; +} + +defineClass(711, 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', 711); +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; + structureChanged(this$static.host); + } + 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; + structureChanged(this$static.host); + } + return value_0; +} + +function InternalStringMap(host){ + this.backingMap = newJsMap(); + this.host = host; +} + +defineClass(1046, 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', 1046); +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(710, 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', 710); +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(1047, 1983, $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', 1047); +function $$init_3(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), 387); + 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), 387); + 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), 387); + if (entry) { + $remove_23(entry); + return entry.value_0; + } + return null; +} + +function LinkedHashMap(){ + HashMap.call(this); + $$init_3(this); + this.head.prev = this.head; + this.head.next_0 = this.head; +} + +function LinkedHashMap_0(ignored){ + AbstractHashMap.call(this, ignored, 0); + $$init_3(this); + this.head.prev = this.head; + this.head.next_0 = this.head; +} + +defineClass(228, 43, $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_42(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', 228); +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(387, 383, {484:1, 383:1, 387:1, 42:1}, LinkedHashMap$ChainEntry, LinkedHashMap$ChainEntry_0); +var Ljava_util_LinkedHashMap$ChainEntry_2_classLit = createForClass('java.util', 'LinkedHashMap/ChainEntry', 387); +function $contains_8(this$static, o){ + if (instanceOf(o, 42)) { + return $containsEntry_0(this$static.this$01, castTo(o, 42)); + } + return false; +} + +function LinkedHashMap$EntrySet(this$0){ + this.this$01 = this$0; +} + +defineClass(701, $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, 42).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', 701); +function $next_9(this$static){ + checkStructuralChange(this$static.this$11.this$01.map_0, this$static); + 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; + recordLastKnownStructure(this$1.this$01.map_0, this); +} + +defineClass(702, 1, $intern_6, LinkedHashMap$EntrySet$EntryIterator); +_.forEachRemaining = function forEachRemaining_30(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_33(){ + return $next_9(this); +} +; +_.hasNext_0 = function hasNext_32(){ + return this.next_0 != this.this$11.this$01.head; +} +; +_.remove = function remove_82(){ + checkCriticalState(!!this.last); + checkStructuralChange(this.this$11.this$01.map_0, this); + $remove_23(this.last); + $remove_6(this.this$11.this$01.map_0, this.last.key); + recordLastKnownStructure(this.this$11.this$01.map_0, this); + this.last = null; +} +; +var Ljava_util_LinkedHashMap$EntrySet$EntryIterator_2_classLit = createForClass('java.util', 'LinkedHashMap/EntrySet/EntryIterator', 702); +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(178, 53, $intern_77, LinkedHashSet, LinkedHashSet_0, LinkedHashSet_1); +var Ljava_util_LinkedHashSet_2_classLit = createForClass('java.util', 'LinkedHashSet', 178); +function $$init_4(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_4(this); + $reset_0(this); +} + +function LinkedList_0(c){ + $$init_4(this); + $reset_0(this); + $addAll(this, c); +} + +defineClass(68, 1963, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 68: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', 68); +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_10(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(969, 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_10(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', 969); +function LinkedList$Node(){ +} + +defineClass(608, 1, {}, LinkedList$Node); +var Ljava_util_LinkedList$Node_2_classLit = createForClass('java.util', 'LinkedList/Node', 608); +function $clinit_Locale(){ + $clinit_Locale = emptyMethod; + ROOT = new Locale$1; + defaultLocale = new Locale$4; +} + +defineClass(1958, 1, {}); +var ROOT, defaultLocale; +var Ljava_util_Locale_2_classLit = createForClass('java.util', 'Locale', 1958); +function Locale$1(){ +} + +defineClass(860, 1958, {}, Locale$1); +_.toString_0 = function toString_67(){ + return ''; +} +; +var Ljava_util_Locale$1_2_classLit = createForClass('java.util', 'Locale/1', 860); +function Locale$4(){ +} + +defineClass(861, 1958, {}, Locale$4); +_.toString_0 = function toString_68(){ + return 'unknown'; +} +; +var Ljava_util_Locale$4_2_classLit = createForClass('java.util', 'Locale/4', 861); +function NoSuchElementException(){ + RuntimeException.call(this); +} + +function NoSuchElementException_0(){ + RuntimeException_0.call(this, 'There is no more element.'); +} + +defineClass(109, 60, {3:1, 102:1, 60:1, 78:1, 109:1}, NoSuchElementException, NoSuchElementException_0); +var Ljava_util_NoSuchElementException_2_classLit = createForClass('java.util', 'NoSuchElementException', 109); +function equals_57(a, b){ + return maskUndefined(a) === maskUndefined(b) || a != null && equals_Ljava_lang_Object__Z__devirtual$(a, b); +} + +function hashCode_54(o){ + return o != null?hashCode__I__devirtual$(o):0; +} + +function requireNonNull(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 $map(this$static, mapper){ + checkCriticalNotNull(mapper); + if (this$static.ref != null) { + return ofNullable(mapper.apply_0(this$static.ref)); + } + return EMPTY_3; +} + +function $orElse(this$static){ + return this$static.ref != null?this$static.ref:null; +} + +function Optional(ref){ + $clinit_Optional(); + this.ref = ref; +} + +function ofNullable(value_0){ + return value_0 == null?EMPTY_3:new Optional(checkCriticalNotNull(value_0)); +} + +defineClass(405, 1, {405:1}, Optional); +_.equals_0 = function equals_58(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 405)) { + return false; + } + other = castTo(obj, 405); + return equals_57(this.ref, other.ref); +} +; +_.hashCode_1 = function hashCode_55(){ + return hashCode_54(this.ref); +} +; +_.toString_0 = function toString_69(){ + return this.ref != null?'Optional.of(' + valueOf_7(this.ref) + ')':'Optional.empty()'; +} +; +var EMPTY_3; +var Ljava_util_Optional_2_classLit = createForClass('java.util', 'Optional', 405); +function $clinit_OptionalDouble(){ + $clinit_OptionalDouble = emptyMethod; + EMPTY_4 = new OptionalDouble; +} + +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(463, 1, {463:1}, OptionalDouble, OptionalDouble_0); +_.equals_0 = function equals_59(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 463)) { + return false; + } + other = castTo(obj, 463); + return this.present == other.present && compare_4(this.ref, other.ref) == 0; +} +; +_.hashCode_1 = function hashCode_56(){ + 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', 463); +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(517, 1, {517:1}, OptionalInt, OptionalInt_0); +_.equals_0 = function equals_60(obj){ + var other; + if (obj === this) { + return true; + } + if (!instanceOf(obj, 517)) { + return false; + } + other = castTo(obj, 517); + return this.present == other.present && compare_5(this.ref, other.ref) == 0; +} +; +_.hashCode_1 = function hashCode_57(){ + 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', 517); +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(503, 2003, $intern_8, PriorityQueue); +_.addAll = function addAll_18(c){ + return $addAll_4(this, c); +} +; +_.clear_0 = function clear_46(){ + this.heap.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.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 $toArray_1(this.heap); +} +; +_.toArray_0 = function toArray_20(a){ + return $toArray_2(this.heap, a); +} +; +var Ljava_util_PriorityQueue_2_classLit = createForClass('java.util', 'PriorityQueue', 503); +function PriorityQueue$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1276, 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', 1276); +function $clinit_Random(){ + $clinit_Random = emptyMethod; + var i, i0, twoToTheXMinus24Tmp, twoToTheXMinus48Tmp; + twoToTheXMinus24 = initUnidimensionalArray(D_classLit, $intern_65, 25, 25, 15, 1); + twoToTheXMinus48 = initUnidimensionalArray(D_classLit, $intern_65, 25, 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 -= $intern_69); + 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(230, 1, {230:1}, Random, Random_0); +_.seedhi = 0; +_.seedlo = 0; +var twoToTheXMinus24, twoToTheXMinus48, uniqueSeed = 0; +var Ljava_util_Random_2_classLit = createForClass('java.util', 'Random', 230); +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_61) == 0?characteristics | 64 | $intern_17:characteristics; +} + +function Spliterators$IteratorSpliterator_0(it){ + this.it = (checkCriticalNotNull(it) , it); + this.characteristics = 0; + this.estimateSize = $intern_20; +} + +function Spliterators$IteratorSpliterator_1(it, size_0){ + this.it = (checkCriticalNotNull(it) , it); + this.characteristics = 16449; + this.estimateSize = size_0; +} + +defineClass(27, 1, $intern_18, Spliterators$IteratorSpliterator, Spliterators$IteratorSpliterator_0, Spliterators$IteratorSpliterator_1); +_.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', 27); +function SortedSet$1($anonymous0){ + Spliterators$IteratorSpliterator.call(this, $anonymous0, 21); +} + +defineClass(485, 27, $intern_18, SortedSet$1); +var Ljava_util_SortedSet$1_2_classLit = createForClass('java.util', 'SortedSet/1', 485); +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(602, 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', 602); +function Spliterator$OfDouble$1methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(603, 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', 603); +function Spliterator$OfInt$2methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(604, 1, $intern_21, Spliterator$OfInt$2methodref$accept$Type); +_.accept_0 = function accept_19(arg0){ + this.$$outer_0.accept(valueOf_4(arg0)); +} +; +var Ljava_util_Spliterator$OfInt$2methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/2methodref$accept$Type', 604); +function Spliterator$OfInt$3methodref$accept$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(605, 1, $intern_21, Spliterator$OfInt$3methodref$accept$Type); +_.accept_0 = function accept_20(arg0){ + this.$$outer_0.accept(valueOf_4(arg0)); +} +; +var Ljava_util_Spliterator$OfInt$3methodref$accept$Type_2_classLit = createForClass('java.util', 'Spliterator/OfInt/3methodref$accept$Type', 605); +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(617, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_34(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.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', 617); +function Spliterators$AbstractDoubleSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(721, 617, $intern_18); +_.forEachRemaining_0 = function forEachRemaining_35(consumer){ + $forEachRemaining_1(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_36(consumer){ + instanceOf(consumer, 182)?$forEachRemaining_1(this, castTo(consumer, 182)):$forEachRemaining_1(this, new Spliterator$OfDouble$1methodref$accept$Type(consumer)); +} +; +_.tryAdvance = function tryAdvance_3(consumer){ + return instanceOf(consumer, 182)?this.tryAdvance_0(castTo(consumer, 182)):this.tryAdvance_0(new Spliterator$OfDouble$0methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$AbstractDoubleSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractDoubleSpliterator', 721); +function Spliterators$AbstractIntSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(720, 617, $intern_18); +_.forEachRemaining_0 = function forEachRemaining_37(consumer){ + $forEachRemaining_1(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_38(consumer){ + instanceOf(consumer, 196)?$forEachRemaining_1(this, castTo(consumer, 196)):$forEachRemaining_1(this, new Spliterator$OfInt$3methodref$accept$Type(consumer)); +} +; +_.tryAdvance = function tryAdvance_4(consumer){ + return instanceOf(consumer, 196)?this.tryAdvance_0(castTo(consumer, 196)):this.tryAdvance_0(new Spliterator$OfInt$2methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$AbstractIntSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractIntSpliterator', 720); +function Spliterators$AbstractSpliterator(size_0, characteristics){ + Spliterators$BaseSpliterator.call(this, size_0, characteristics); +} + +defineClass(540, 617, $intern_18); +var Ljava_util_Spliterators$AbstractSpliterator_2_classLit = createForClass('java.util', 'Spliterators/AbstractSpliterator', 540); +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(692, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_39(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.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', 692); +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(946, 692, $intern_18, Spliterators$ArraySpliterator); +_.consume = function consume(consumer, index_0){ + $consume(this, castTo(consumer, 38), 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', 946); +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(693, 692, $intern_18, Spliterators$DoubleArraySpliterator); +_.consume = function consume_0(consumer, index_0){ + $consume_0(this, castTo(consumer, 182), index_0); +} +; +_.forEachRemaining_0 = function forEachRemaining_41(consumer){ + $forEachRemaining_2(this, consumer); +} +; +_.forEachRemaining = function forEachRemaining_42(consumer){ + instanceOf(consumer, 182)?$forEachRemaining_2(this, castTo(consumer, 182)):$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, 182)?$tryAdvance_0(this, castTo(consumer, 182)):$tryAdvance_0(this, new Spliterator$OfDouble$0methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$DoubleArraySpliterator_2_classLit = createForClass('java.util', 'Spliterators/DoubleArraySpliterator', 693); +function $clinit_Spliterators$EmptySpliterator(){ + $clinit_Spliterators$EmptySpliterator = emptyMethod; + $clinit_Spliterators$EmptySpliterator(); + OF_INT = new Spliterators$EmptySpliterator$OfInt; +} + +defineClass(1967, 1, $intern_18); +_.forEachRemaining = function forEachRemaining_43(consumer){ + $forEachRemaining_0(this, consumer); +} +; +_.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', 1967); +function $forEachRemaining_3(consumer){ + checkCriticalNotNull(consumer); +} + +function $tryAdvance_1(consumer){ + return checkCriticalNotNull(consumer) , false; +} + +function Spliterators$EmptySpliterator$OfInt(){ +} + +defineClass(945, 1967, $intern_18, Spliterators$EmptySpliterator$OfInt); +_.forEachRemaining_0 = function forEachRemaining_44(consumer){ + $forEachRemaining_3(consumer); +} +; +_.forEachRemaining = function forEachRemaining_45(consumer){ + instanceOf(consumer, 196)?$forEachRemaining_3(castTo(consumer, 196)):$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, 196)?$tryAdvance_1(castTo(consumer, 196)):$tryAdvance_1(new Spliterator$OfInt$2methodref$accept$Type(consumer)); +} +; +var Ljava_util_Spliterators$EmptySpliterator$OfInt_2_classLit = createForClass('java.util', 'Spliterators/EmptySpliterator/OfInt', 945); +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(580, 52, $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(){ + this.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.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_43(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 $toArray_1(this.arrayList); +} +; +_.toArray_0 = function toArray_22(a){ + return $toArray_2(this.arrayList, a); +} +; +_.toString_0 = function toString_72(){ + return $toString_2(this.arrayList); +} +; +var Ljava_util_Vector_2_classLit = createForClass('java.util', 'Vector', 580); +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(808, 580, $intern_84, Stack); +var Ljava_util_Stack_2_classLit = createForClass('java.util', 'Stack', 808); +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(206, 1, {206:1}, StringJoiner); +_.toString_0 = function toString_73(){ + return $toString_9(this); +} +; +var Ljava_util_StringJoiner_2_classLit = createForClass('java.util', 'StringJoiner', 206); +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 $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 $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 TreeMap(){ + TreeMap_0.call(this, null); +} + +function TreeMap_0(c){ + this.root = null; + this.cmp = ($clinit_Comparators() , !c?INTERNAL_NATURAL_ORDER:c); +} + +defineClass(544, 1991, {3:1, 83:1, 171:1, 161:1}, TreeMap, TreeMap_0); +_.clear_0 = function clear_48(){ + $clear_8(this); +} +; +_.entrySet_0 = function entrySet_8(){ + return new TreeMap$EntrySet(this); +} +; +_.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); +} +; +_.size_1 = function size_62(){ + return this.size_0; +} +; +_.size_0 = 0; +var Ljava_util_TreeMap_2_classLit = createForClass('java.util', 'TreeMap', 544); +function $next_11(this$static){ + return this$static.last = castTo($next_5(this$static.iter), 42); +} + +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)); +} + +function TreeMap$EntryIterator_0(this$0, type_0){ + var list; + this.this$01 = this$0; + list = new ArrayList; + $inOrderAdd(this$0, list, type_0, this$0.root, null, false, null, false); + this.iter = new AbstractList$ListIteratorImpl(list, 0); +} + +defineClass(390, 1, $intern_6, TreeMap$EntryIterator); +_.forEachRemaining = function forEachRemaining_46(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_36(){ + return $next_11(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', 390); +function TreeMap$EntrySet(this$0){ + this.this$01 = this$0; + AbstractNavigableMap$EntrySet.call(this, this$0); +} + +defineClass(436, 739, $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', 436); +function TreeMap$Node(key, value_0){ + AbstractMap$SimpleEntry.call(this, key, value_0); + this.child = initUnidimensionalArray(Ljava_util_TreeMap$Node_2_classLit, $intern_27, 437, 2, 0, 1); + this.isRed = true; +} + +defineClass(437, 383, {484:1, 383:1, 42:1, 437:1}, TreeMap$Node); +_.isRed = false; +var Ljava_util_TreeMap$Node_2_classLit = createForClass('java.util', 'TreeMap/Node', 437); +function TreeMap$State(){ +} + +defineClass(621, 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', 621); +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_12(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_36, 297, 0, [All, Head, Range_1, Tail]); +} + +defineClass(297, 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', 297, Ljava_lang_Enum_2_classLit, values_18, valueOf_12); +function TreeMap$SubMapType$1(){ + TreeMap$SubMapType.call(this, 'Head', 1); +} + +defineClass(1111, 297, $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', 1111, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); +function TreeMap$SubMapType$2(){ + TreeMap$SubMapType.call(this, 'Range', 2); +} + +defineClass(1112, 297, $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', 1112, Ljava_util_TreeMap$SubMapType_2_classLit, null, null); +function TreeMap$SubMapType$3(){ + TreeMap$SubMapType.call(this, 'Tail', 3); +} + +defineClass(1113, 297, $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', 1113, 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_36, 297, 0, [All, Head, Range_1, Tail]))); +} + +var $MAP_0; +function $add_10(this$static, o){ + return $put_12(this$static.map_0, o, ($clinit_Boolean() , FALSE_0)) == null; +} + +function $ceiling(this$static, e){ + return getEntryKeyOrNull($getNodeAfter(this$static.map_0, e, true)); +} + +function $floor(this$static, e){ + return getEntryKeyOrNull($getNodeBefore(this$static.map_0, e, true)); +} + +function $higher(this$static, e){ + return getEntryKeyOrNull($getNodeAfter(this$static.map_0, e, false)); +} + +function $lower(this$static, e){ + return getEntryKeyOrNull($getNodeBefore(this$static.map_0, e, false)); +} + +function $remove_28(this$static, o){ + return $remove_26(this$static.map_0, o) != null; +} + +function TreeSet(){ + this.map_0 = new TreeMap; +} + +function TreeSet_0(c){ + this.map_0 = new TreeMap_0(c); +} + +defineClass(208, $intern_9, {3:1, 20:1, 28:1, 14:1, 271:1, 21:1, 84:1, 208:1}, TreeSet, TreeSet_0); +_.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(){ + $clear_8(this.map_0); +} +; +_.contains = function contains_47(o){ + return $containsKey_4(this.map_0, o); +} +; +_.iterator_0 = function iterator_65(){ + var entryIterator; + return entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(this.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator); +} +; +_.remove_1 = function remove_89(o){ + return $remove_28(this, o); +} +; +_.size_1 = function size_63(){ + return this.map_0.size_0; +} +; +var Ljava_util_TreeSet_2_classLit = createForClass('java.util', 'TreeSet', 208); +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_3(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(965, 1, {}, BinaryOperator$lambda$0$Type); +_.apply_3 = function apply_21(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', 965); +function BinaryOperator$lambda$1$Type(comparator_0){ + this.comparator_0 = comparator_0; +} + +defineClass(966, 1, {}, BinaryOperator$lambda$1$Type); +_.apply_3 = function apply_22(arg0, arg1){ + return lambda$1_3(this.comparator_0, arg0, arg1); +} +; +var Ljava_util_function_BinaryOperator$lambda$1$Type_2_classLit = createForClass('java.util.function', 'BinaryOperator/lambda$1$Type', 966); +function Function$lambda$0$Type(){ +} + +defineClass(845, 1, {}, Function$lambda$0$Type); +_.apply_0 = function apply_23(t){ + return t; +} +; +var Ljava_util_function_Function$lambda$0$Type_2_classLit = createForClass('java.util.function', 'Function/lambda$0$Type', 845); +function Predicate$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(432, 1, $intern_39, 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', 432); +defineClass(572, 1, {572:1}); +var Ljava_util_logging_Handler_2_classLit = createForClass('java.util.logging', 'Handler', 572); +function $clinit_Level(){ + $clinit_Level = emptyMethod; + INFO = new Level$LevelInfo; +} + +defineClass(2006, 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', 2006); +function Level$LevelInfo(){ +} + +defineClass(1620, 2006, $intern_1, Level$LevelInfo); +_.getName = function getName_1(){ + return 'INFO'; +} +; +var Ljava_util_logging_Level$LevelInfo_2_classLit = createForClass('java.util.logging', 'Level/LevelInfo', 1620); +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), 512); + 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(1639, 1, {}, LogManager); +var singleton; +var Ljava_util_logging_LogManager_2_classLit = createForClass('java.util.logging', 'LogManager', 1639); +function LogRecord(msg){ + this.msg = msg; + $clinit_System(); + fromDouble_0(Date.now()); +} + +defineClass(1779, 1, $intern_1, LogRecord); +_.thrown = null; +var Ljava_util_logging_LogRecord_2_classLit = createForClass('java.util.logging', 'LogRecord', 1779); +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, 572, 0, 0, 1); + } + return castTo($toArray_2(this$static.handlers, initUnidimensionalArray(Ljava_util_logging_Handler_2_classLit, $intern_86, 572, this$static.handlers.array.length, 0, 1)), 841); +} + +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(512, 1, {512: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', 512); +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_45?'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(818, 572, {572:1}, SimpleConsoleLogHandler); +var Ljava_util_logging_SimpleConsoleLogHandler_2_classLit = createForClass('java.util.logging', 'SimpleConsoleLogHandler', 818); +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_13(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_36, 132, 0, [CONCURRENT, IDENTITY_FINISH, UNORDERED]); +} + +defineClass(132, 22, {3:1, 35:1, 22:1, 132:1}, Collector$Characteristics); +var CONCURRENT, IDENTITY_FINISH, UNORDERED; +var Ljava_util_stream_Collector$Characteristics_2_classLit = createForEnum('java.util.stream', 'Collector/Characteristics', 132, Ljava_lang_Enum_2_classLit, values_19, valueOf_13); +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_36, 132, 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(744, 1, {}, CollectorImpl); +var Ljava_util_stream_CollectorImpl_2_classLit = createForClass('java.util.stream', 'CollectorImpl', 744); +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_36, 132, 0, [])); +} + +function lambda$26(op_0, u_2){ + return setCheck(u_2, 0, $apply_2(u_2[0], valueOf_5(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_5(add_20(valueOf_5(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(), 42); + $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(), 42); + 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_36, 132, 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(1059, 1, {}, Collectors$10methodref$merge$Type); +_.apply_3 = function apply_24(arg0, arg1){ + return $merge_0(castTo(arg0, 206), castTo(arg1, 206)); +} +; +var Ljava_util_stream_Collectors$10methodref$merge$Type_2_classLit = createForClass('java.util.stream', 'Collectors/10methodref$merge$Type', 1059); +function Collectors$11methodref$toString$Type(){ +} + +defineClass(1060, 1, {}, Collectors$11methodref$toString$Type); +_.apply_0 = function apply_25(arg0){ + return $toString_9(castTo(arg0, 206)); +} +; +var Ljava_util_stream_Collectors$11methodref$toString$Type_2_classLit = createForClass('java.util.stream', 'Collectors/11methodref$toString$Type', 1060); +function Collectors$12methodref$test$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1061, 1, {}, Collectors$12methodref$test$Type); +_.apply_0 = function apply_26(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', 1061); +function Collectors$20methodref$add$Type(){ +} + +defineClass(251, 1, {}, Collectors$20methodref$add$Type); +_.accept_1 = function accept_21(arg0, arg1){ + castTo(arg0, 14).add_2(arg1); +} +; +var Ljava_util_stream_Collectors$20methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/20methodref$add$Type', 251); +function Collectors$21methodref$ctor$Type(){ +} + +defineClass(253, 1, {}, Collectors$21methodref$ctor$Type); +_.get_5 = function get_44(){ + return new ArrayList; +} +; +var Ljava_util_stream_Collectors$21methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/21methodref$ctor$Type', 253); +function Collectors$23methodref$ctor$Type(){ +} + +defineClass(345, 1, {}, Collectors$23methodref$ctor$Type); +_.get_5 = function get_45(){ + return new HashSet; +} +; +var Ljava_util_stream_Collectors$23methodref$ctor$Type_2_classLit = createForClass('java.util.stream', 'Collectors/23methodref$ctor$Type', 345); +function Collectors$24methodref$add$Type(){ +} + +defineClass(346, 1, {}, Collectors$24methodref$add$Type); +_.accept_1 = function accept_22(arg0, arg1){ + $add_6(castTo(arg0, 53), arg1); +} +; +var Ljava_util_stream_Collectors$24methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/24methodref$add$Type', 346); +function Collectors$4methodref$addAll$Type(){ +} + +defineClass(1054, 1, {}, Collectors$4methodref$addAll$Type); +_.apply_3 = function apply_27(arg0, arg1){ + return addAll_21(castTo(arg0, 15), castTo(arg1, 14)); +} +; +var Ljava_util_stream_Collectors$4methodref$addAll$Type_2_classLit = createForClass('java.util.stream', 'Collectors/4methodref$addAll$Type', 1054); +function Collectors$9methodref$add$Type(){ +} + +defineClass(1058, 1, {}, Collectors$9methodref$add$Type); +_.accept_1 = function accept_23(arg0, arg1){ + $add_9(castTo(arg0, 206), castTo(arg1, 475)); +} +; +var Ljava_util_stream_Collectors$9methodref$add$Type_2_classLit = createForClass('java.util.stream', 'Collectors/9methodref$add$Type', 1058); +function Collectors$lambda$15$Type(){ + this.delimiter_0 = ';,;'; + this.prefix_1 = ''; + this.suffix_2 = ''; +} + +defineClass(1057, 1, {}, Collectors$lambda$15$Type); +_.get_5 = function get_46(){ + 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', 1057); +function Collectors$lambda$22$Type(){ +} + +defineClass(1062, 1, {}, Collectors$lambda$22$Type); +_.get_5 = function get_47(){ + 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', 1062); +function Collectors$lambda$25$Type(identity_0){ + this.identity_0 = identity_0; +} + +defineClass(1063, 1, {}, Collectors$lambda$25$Type); +_.get_5 = function get_48(){ + 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', 1063); +function Collectors$lambda$26$Type(op_0){ + this.op_0 = op_0; +} + +defineClass(1064, 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', 1064); +function Collectors$lambda$27$Type(op_0){ + this.op_0 = op_0; +} + +defineClass(1065, 1, {}, Collectors$lambda$27$Type); +_.apply_3 = function apply_28(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', 1065); +function Collectors$lambda$28$Type(){ +} + +defineClass(1066, 1, {}, Collectors$lambda$28$Type); +_.apply_0 = function apply_29(arg0){ + return castToArray(arg0)[0]; +} +; +var Ljava_util_stream_Collectors$lambda$28$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$28$Type', 1066); +function $apply_2(arg0, arg1){ + return lambda$4(castTo(arg0, 162), castTo(arg1, 162)); +} + +function Collectors$lambda$4$Type(){ +} + +defineClass(713, 1, {}, Collectors$lambda$4$Type); +_.apply_3 = function apply_30(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', 713); +function Collectors$lambda$42$Type(){ +} + +defineClass(252, 1, {}, Collectors$lambda$42$Type); +_.apply_3 = function apply_31(arg0, arg1){ + return lambda$42(castTo(arg0, 14), castTo(arg1, 14)); +} +; +var Ljava_util_stream_Collectors$lambda$42$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$42$Type', 252); +function Collectors$lambda$50$Type(){ +} + +defineClass(347, 1, {}, Collectors$lambda$50$Type); +_.apply_3 = function apply_32(arg0, arg1){ + return lambda$50(castTo(arg0, 53), castTo(arg1, 53)); +} +; +var Ljava_util_stream_Collectors$lambda$50$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$50$Type', 347); +function Collectors$lambda$51$Type(){ +} + +defineClass(348, 1, {}, Collectors$lambda$51$Type); +_.apply_0 = function apply_33(arg0){ + return castTo(arg0, 53); +} +; +var Ljava_util_stream_Collectors$lambda$51$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$51$Type', 348); +function Collectors$lambda$7$Type(classifier_0){ + this.classifier_0 = classifier_0; +} + +defineClass(1053, 1, {}, Collectors$lambda$7$Type); +_.accept_1 = function accept_25(arg0, arg1){ + lambda$7(this.classifier_0, castTo(arg0, 83), arg1); +} +; +var Ljava_util_stream_Collectors$lambda$7$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$7$Type', 1053); +function Collectors$lambda$8$Type(){ +} + +defineClass(1055, 1, {}, Collectors$lambda$8$Type); +_.apply_3 = function apply_34(arg0, arg1){ + return mergeAll(castTo(arg0, 83), castTo(arg1, 83), new Collectors$4methodref$addAll$Type); +} +; +var Ljava_util_stream_Collectors$lambda$8$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$8$Type', 1055); +function Collectors$lambda$9$Type(downstream_1){ + this.downstream_1 = downstream_1; +} + +defineClass(1056, 1, {}, Collectors$lambda$9$Type); +_.apply_0 = function apply_35(arg0){ + return lambda$9(this.downstream_1, castTo(arg0, 83)); +} +; +var Ljava_util_stream_Collectors$lambda$9$Type_2_classLit = createForClass('java.util.stream', 'Collectors/lambda$9$Type', 1056); +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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + if (throwables.array.length != 0) { + e = (checkCriticalElementIndex(0, throwables.array.length) , castTo(throwables.array[0], 78)); + for (i = 1 , size_0 = throwables.array.length; i < size_0; ++i) { + suppressed = (checkCriticalElementIndex(i, throwables.array.length) , castTo(throwables.array[i], 78)); + suppressed != e && $addSuppressed(e, suppressed); + } + if (instanceOf(e, 60)) { + throw toJs(castTo(e, 60)); + } + if (instanceOf(e, 288)) { + throw toJs(castTo(e, 288)); + } + } +} + +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, 78)) { + e = $e0; + throwables_0.array[throwables_0.array.length] = e; + } + else + throw toJs($e0); + } +} + +defineClass(539, 1, {}); +_.close_0 = function close_0(){ + $close(this); +} +; +_.terminated = false; +var Ljava_util_stream_TerminatableStream_2_classLit = createForClass('java.util.stream', 'TerminatableStream', 539); +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_6(this$static){ + var entries; + $terminate(this$static); + entries = initUnidimensionalArray(D_classLit, $intern_65, 25, 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(811, 539, $intern_87, DoubleStreamImpl); +_.close_0 = function close_1(){ + $close(this); +} +; +var Ljava_util_stream_DoubleStreamImpl_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl', 811); +function $tryAdvance_2(this$static, action){ + var list; + if (!this$static.ordered) { + list = initUnidimensionalArray(D_classLit, $intern_65, 25, 0, 15, 1); + $forEachRemaining_1(this$static.this$01.spliterator, new DoubleStreamImpl$2$lambda$0$Type(list)); + list.sort(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(1783, 721, $intern_18, DoubleStreamImpl$2); +_.tryAdvance_0 = function tryAdvance_10(action){ + return $tryAdvance_2(this, castTo(action, 182)); +} +; +_.ordered = null; +var Ljava_util_stream_DoubleStreamImpl$2_2_classLit = createForClass('java.util.stream', 'DoubleStreamImpl/2', 1783); +function DoubleStreamImpl$2$lambda$0$Type(list_0){ + this.list_0 = list_0; +} + +defineClass(1784, 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', 1784); +function DoubleStreamImpl$lambda$0$Type(entries_0){ + this.entries_0 = entries_0; +} + +defineClass(1781, 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', 1781); +function DoubleStreamImpl$lambda$2$Type(acc_1){ + this.acc_1 = acc_1; +} + +defineClass(1782, 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', 1782); +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(1357, 720, $intern_18, IntStream$5); +_.tryAdvance_0 = function tryAdvance_11(action){ + return $tryAdvance_3(this, castTo(action, 196)); +} +; +_.next_0 = 0; +_.val$endInclusive5 = 0; +_.val$startInclusive4 = 0; +var Ljava_util_stream_IntStream$5_2_classLit = createForClass('java.util.stream', 'IntStream/5', 1357); +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(786, 539, $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', 786); +function IntStreamImpl$Empty(){ + TerminatableStream.call(this, null); +} + +defineClass(787, 539, $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', 787); +function IntStreamImpl$lambda$4$Type(acc_1){ + this.acc_1 = acc_1; +} + +defineClass(1462, 1, $intern_21, 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', 1462); +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_0(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 $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_7(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_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + return collected.toArray_0($apply_3(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(30, 539, {525:1, 670:1, 832:1}, StreamImpl); +_.close_0 = function close_4(){ + $close(this); +} +; +var NULL_CONSUMER; +var Ljava_util_stream_StreamImpl_2_classLit = createForClass('java.util.stream', 'StreamImpl', 30); +function $apply_3(arg0){ + return $clinit_StreamImpl() , initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, arg0, 5, 1); +} + +function StreamImpl$0methodref$lambda$2$Type(){ +} + +defineClass(844, 1, {}, StreamImpl$0methodref$lambda$2$Type); +_.apply_2 = function apply_36(arg0){ + return $apply_3(arg0); +} +; +var Ljava_util_stream_StreamImpl$0methodref$lambda$2$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/0methodref$lambda$2$Type', 844); +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_20, 0); +} + +defineClass(1083, 540, $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', 1083); +function StreamImpl$1$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1084, 1, $intern_19, StreamImpl$1$lambda$0$Type); +_.accept = function accept_30(arg0){ + $lambda$0_0(this.$$outer_0, castTo(arg0, 832)); +} +; +var Ljava_util_stream_StreamImpl$1$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/1/lambda$0$Type', 1084); +function StreamImpl$1methodref$add$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1085, 1, $intern_39, 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', 1085); +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(1086, 540, $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', 1086); +function StreamImpl$5$2methodref$add$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1087, 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', 1087); +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(722, 540, $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', 722); +function StreamImpl$FilterSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1078, 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', 1078); +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(1074, 721, $intern_18, StreamImpl$MapToDoubleSpliterator); +_.tryAdvance_0 = function tryAdvance_15(action){ + return $tryAdvance_4(this, castTo(action, 182)); +} +; +var Ljava_util_stream_StreamImpl$MapToDoubleSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToDoubleSpliterator', 1074); +function StreamImpl$MapToDoubleSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1077, 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', 1077); +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(1073, 720, $intern_18, StreamImpl$MapToIntSpliterator); +_.tryAdvance_0 = function tryAdvance_16(action){ + return $tryAdvance_5(this, castTo(action, 196)); +} +; +var Ljava_util_stream_StreamImpl$MapToIntSpliterator_2_classLit = createForClass('java.util.stream', 'StreamImpl/MapToIntSpliterator', 1073); +function StreamImpl$MapToIntSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1076, 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', 1076); +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(719, 540, $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', 719); +function StreamImpl$MapToObjSpliterator$lambda$0$Type($$outer_0, action_1){ + this.$$outer_0 = $$outer_0; + this.action_1 = action_1; +} + +defineClass(1075, 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', 1075); +function $accept_1(this$static, value_0){ + this$static.value_0 = value_0; +} + +function StreamImpl$ValueConsumer(){ +} + +defineClass(618, 1, $intern_19, StreamImpl$ValueConsumer); +_.accept = function accept_36(value_0){ + $accept_1(this, value_0); +} +; +var Ljava_util_stream_StreamImpl$ValueConsumer_2_classLit = createForClass('java.util.stream', 'StreamImpl/ValueConsumer', 618); +function StreamImpl$lambda$0$Type(){ +} + +defineClass(1079, 1, $intern_19, StreamImpl$lambda$0$Type); +_.accept = function accept_37(arg0){ + $clinit_StreamImpl(); +} +; +var Ljava_util_stream_StreamImpl$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$0$Type', 1079); +function StreamImpl$lambda$1$Type(){ +} + +defineClass(1080, 1, $intern_19, StreamImpl$lambda$1$Type); +_.accept = function accept_38(arg0){ + $clinit_StreamImpl(); +} +; +var Ljava_util_stream_StreamImpl$lambda$1$Type_2_classLit = createForClass('java.util.stream', 'StreamImpl/lambda$1$Type', 1080); +function StreamImpl$lambda$4$Type(collector_0){ + this.collector_0 = collector_0; +} + +defineClass(1081, 1, {}, StreamImpl$lambda$4$Type); +_.apply_3 = function apply_37(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', 1081); +function StreamImpl$lambda$5$Type(consumer_0, accumulator_1){ + this.consumer_0 = consumer_0; + this.accumulator_1 = accumulator_1; +} + +defineClass(1082, 1, $intern_19, StreamImpl$lambda$5$Type); +_.accept = function accept_39(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', 1082); +function TerminatableStream$lambda$0$Type(throwables_0){ + this.throwables_0 = throwables_0; +} + +defineClass(1088, 1, $intern_19, TerminatableStream$lambda$0$Type); +_.accept = function accept_40(arg0){ + lambda$0_3(this.throwables_0, castTo(arg0, 364)); +} +; +var Ljava_util_stream_TerminatableStream$lambda$0$Type_2_classLit = createForClass('java.util.stream', 'TerminatableStream/lambda$0$Type', 1088); +function clone_0(array, toIndex){ + var result; + result = array.slice(0, toIndex); + return stampJavaTypeInfo_0(result, array); +} + +function copy_0(src_0, srcOfs, dest, destOfs, len, overwrite){ + var batchEnd, batchStart, destArray, end, spliceArgs; + 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 removeFrom(array, index_0, deleteCount){ + array.splice(index_0, deleteCount); +} + +function setLength(array, length_0){ + array.length = length_0; +} + +defineClass(2040, 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, 78, 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(1913, 1, {}, ConsoleLogger); +var Ljavaemul_internal_ConsoleLogger_2_classLit = createForClass('javaemul.internal', 'ConsoleLogger', 1913); +function getIdentityHashCode(o){ + switch (typeof(o)) { + case 'string': + return getHashCode_1(o); + case 'number': + return round_int(o); + case 'boolean': + return $clinit_Boolean() , o?1231:1237; + default:return o == null?0:getHashCode_0(o); + } +} + +function checkCriticalArgument(expression){ + if (!expression) { + throw toJs(new IllegalArgumentException); + } +} + +function checkCriticalArgument_0(expression, errorMessage){ + if (!expression) { + throw toJs(new IllegalArgumentException_0(errorMessage)); + } +} + +function checkCriticalArgument_1(expression, errorMessageArgs){ + if (!expression) { + throw toJs(new IllegalArgumentException_0(format('Enum constant undefined: %s', errorMessageArgs))); + } +} + +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 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){ + if (!expression) { + throw toJs(new IllegalStateException_0('Unable to add element to queue')); + } +} + +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)); + } +} + +function format(template, args){ + var builder, i, placeholderStart, templateStart; + template = template == null?'null':(checkCriticalNotNull(template) , template); + builder = new StringBuilder_0; + templateStart = 0; + i = 0; + while (i < args.length) { + placeholderStart = template.indexOf('%s', templateStart); + if (placeholderStart == -1) { + break; + } + $append_11(builder, template.substr(templateStart, placeholderStart - templateStart)); + $append_10(builder, args[i++]); + templateStart = placeholderStart + 2; + } + $append_11(builder, template.substr(templateStart)); + 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; +} + +defineClass(2037, 1, {}); +function getHashCode_0(o){ + return o.$H || (o.$H = ++nextHashId); +} + +var nextHashId = 0; +function $clinit_StringHashCache(){ + $clinit_StringHashCache = emptyMethod; + back_0 = new Object_0; + front = new Object_0; +} + +function compute(str){ + var hashCode, i, n, nBatch; + hashCode = 0; + n = str.length; + nBatch = n - 4; + i = 0; + while (i < nBatch) { + hashCode = (checkCriticalStringElementIndex(i + 3, str.length) , str.charCodeAt(i + 3) + (checkCriticalStringElementIndex(i + 2, str.length) , 31 * (str.charCodeAt(i + 2) + (checkCriticalStringElementIndex(i + 1, str.length) , 31 * (str.charCodeAt(i + 1) + (checkCriticalStringElementIndex(i, str.length) , 31 * (str.charCodeAt(i) + 31 * hashCode))))))); + hashCode = hashCode | 0; + i += 4; + } + while (i < n) { + hashCode = hashCode * 31 + $charAt(str, i++); + } + hashCode = hashCode | 0; + return hashCode; +} + +function getHashCode_1(str){ + $clinit_StringHashCache(); + var hashCode, key, result; + key = ':' + str; + result = front[key]; + if (result != null) { + return round_int((checkCriticalNotNull(result) , result)); + } + result = back_0[key]; + hashCode = result == null?compute(str):round_int((checkCriticalNotNull(result) , result)); + increment_0(); + front[key] = hashCode; + return hashCode; +} + +function increment_0(){ + if (count_0 == 256) { + back_0 = front; + front = new Object_0; + count_0 = 0; + } + ++count_0; +} + +var back_0, count_0 = 0, front; +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_59, $intern_59); + bottomright = new KVector_1($intern_60, $intern_60); + for (v$iterator = new ArrayList$1(vertices); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(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_7(vertex$iterator), 8); + invalidTriangles.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (triangle$iterator0 = triangulation.map_0.keySet_0().iterator_0(); triangle$iterator0.hasNext_0();) { + triangle = castTo(triangle$iterator0.next_1(), 308); + c = triangle.circumcenter; + $distance_0(c, triangle.a); + fuzzyCompare($distance_0(triangle.circumcenter, vertex), $distance_0(triangle.circumcenter, triangle.a)) < 0 && (invalidTriangles.array[invalidTriangles.array.length] = triangle , true); + } + boundary.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (triangle$iterator = new ArrayList$1(invalidTriangles); triangle$iterator.i < triangle$iterator.this$01.array.length;) { + triangle = castTo($next_7(triangle$iterator), 308); + for (tEdge$iterator0 = new ArrayList$1(triangle.tEdges); tEdge$iterator0.i < tEdge$iterator0.this$01.array.length;) { + tEdge = castTo($next_7(tEdge$iterator0), 168); + onBoundary = true; + for (other$iterator = new ArrayList$1(invalidTriangles); other$iterator.i < other$iterator.this$01.array.length;) { + other = castTo($next_7(other$iterator), 308); + 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 && (boundary.array[boundary.array.length] = 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_7(tEdge$iterator), 168); + $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(), 168); + ($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(1767, 1, $intern_19, BowyerWatsonTriangulation$lambda$0$Type); +_.accept = function accept_41(arg0){ + castTo(arg0, 308); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$0$Type', 1767); +function BowyerWatsonTriangulation$lambda$1$Type(tEdges_0){ + this.tEdges_0 = tEdges_0; +} + +defineClass(1768, 1, $intern_19, BowyerWatsonTriangulation$lambda$1$Type); +_.accept = function accept_42(arg0){ + $addAll(this.tEdges_0, castTo(arg0, 308).tEdges); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$1$Type', 1768); +function BowyerWatsonTriangulation$lambda$2$Type(){ +} + +defineClass(1769, 1, $intern_19, BowyerWatsonTriangulation$lambda$2$Type); +_.accept = function accept_43(arg0){ + castTo(arg0, 168); +} +; +var Lorg_eclipse_elk_alg_common_BowyerWatsonTriangulation$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common', 'BowyerWatsonTriangulation/lambda$2$Type', 1769); +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(), 168); + $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(), 168); + if ($doubleValue(castToDouble(getEntryValueOrNull($getEntry_0(weight.hashCodeMap, edge)))) <= $intern_59) { + 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)), 221).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(1764, 1, $intern_88, NaiveMinST$lambda$0$Type); +_.compare_1 = function compare_12(arg0, arg1){ + return lambda$0_6(this.weight_0, castTo(arg0, 168), castTo(arg1, 168)); +} +; +_.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', 1764); +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(499, 1, {}, NodeMicroLayout); +var Lorg_eclipse_elk_alg_common_NodeMicroLayout_2_classLit = createForClass('org.eclipse.elk.alg.common', 'NodeMicroLayout', 499); +function TEdge(u, v){ + this.u = u; + this.v = v; +} + +defineClass(168, 1, {168:1}, TEdge); +_.equals_0 = function equals_62(obj){ + var other; + if (instanceOf(obj, 168)) { + other = castTo(obj, 168); + 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_58(){ + return hashCode_54(this.u) + hashCode_54(this.v); +} +; +var Lorg_eclipse_elk_alg_common_TEdge_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TEdge', 168); +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, 168, 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_0(this.b), this.a) , ac = $sub_0($clone_0(this.c), this.a) , bc = $sub_0($clone_0(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(308, 1, {308:1}, TTriangle); +_.equals_0 = function equals_63(obj){ + var other; + if (instanceOf(obj, 308)) { + other = castTo(obj, 308); + return $contains_9(this, other.a) && $contains_9(this, other.b) && $contains_9(this, other.c); + } + else { + return false; + } +} +; +_.hashCode_1 = function hashCode_59(){ + return hashCode_54(this.a) + hashCode_54(this.b) + hashCode_54(this.c); +} +; +var Lorg_eclipse_elk_alg_common_TTriangle_2_classLit = createForClass('org.eclipse.elk.alg.common', 'TTriangle', 308); +function Tree(n){ + this.node = n; + this.children = new ArrayList; +} + +defineClass(221, 1, {221:1}, Tree); +var Lorg_eclipse_elk_alg_common_Tree_2_classLit = createForClass('org.eclipse.elk.alg.common', 'Tree', 221); +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_7(p$iterator); + for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { + h = castTo($next_7(h$iterator), 679); + 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(1253, 1, {}, Scanline); +var Lorg_eclipse_elk_alg_common_compaction_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction', 'Scanline', 1253); +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(1691, 1, {}, CGraph); +var Lorg_eclipse_elk_alg_common_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGraph', 1691); +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(307, 1, {307:1}, CGroup); +_.delta = 0; +_.deltaNormalized = 0; +_.id_0 = 0; +_.outDegree = 0; +_.outDegreeReal = 0; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_common_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CGroup', 307); +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(814, 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', 814); +function CNode(){ + this.cGroupOffset = new KVector; + this.constraints = new ArrayList; +} + +defineClass(57, 1, {57: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 = getHashCode_0(this) >>> 0 , number.toString(16)); +} +; +_.id_0 = 0; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'CNode', 57); +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(813, 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', 813); +function eq_0(d1, d2){ + return $clinit_DoubleMath() , checkNonNegative($intern_41) , $wnd.Math.abs(d1 - d2) <= $intern_41 || d1 == d2 || isNaN(d1) && isNaN(d2); +} + +function gt_0(d1, d2){ + return $clinit_DoubleMath() , $clinit_DoubleMath() , checkNonNegative($intern_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || 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_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || 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_41) , ($wnd.Math.abs(d1 - d2) <= $intern_41 || 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(1524, 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', 1524); +function LongestPathCompaction(){ +} + +defineClass(1789, 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_59; + for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 57); + 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_7(group$iterator), 307); + 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)), 307); + 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(), 57); + 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(), 57); + for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 57); + $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_7(cNode$iterator), 57); + 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', 1789); +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_7(cNode$iterator), 57); + 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_7(group$iterator0), 307); + 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_7(group$iterator), 307); + for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { + cNode = castTo(cNode$iterator.next_1(), 57); + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 57); + 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_7(group$iterator), 307); + group.reference = null; + for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { + n = castTo(n$iterator0.next_1(), 57); + $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(), 57); + 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_7(g$iterator), 307); + 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_7(n$iterator), 57); + n.startPos = $intern_60; + } + 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(), 57); + 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, 57).constraints.add_2(castTo(p_0.second, 57)):castTo(p_0.second, 57).constraints.add_2(castTo(p_0.first, 57)); +} + +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_7(cNode$iterator), 57); + 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_7(cNode$iterator0), 57); + $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_7(cNode$iterator1), 57); + cNode.startPos = $intern_60; + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 57); + 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_7(cNode$iterator), 57); + 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_7(cNode$iterator), 57); + 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_7(n$iterator), 57); + !n.cGroup && $create($nodes(new CGroup$CGroupBuilder, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, 1), $intern_2, 57, 0, [n])), cGraph); + n.hitboxPreCompaction = new ElkRectangle_1(n.hitbox); + } +} + +defineClass(1689, 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', 1689); +function OneDimensionalCompactor$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1690, 1, $intern_19, OneDimensionalCompactor$lambda$0$Type); +_.accept = function accept_44(arg0){ + $lambda$0_5(this.$$outer_0, castTo(arg0, 46)); +} +; +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', 1690); +function QuadraticConstraintCalculation(){ +} + +defineClass(1790, 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_7(cNode$iterator), 57); + 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_7(cNode1$iterator), 57); + for (cNode2$iterator = new ArrayList$1(compactor.cGraph.cNodes); cNode2$iterator.i < cNode2$iterator.this$01.array.length;) { + cNode2 = castTo($next_7(cNode2$iterator), 57); + 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', 1790); +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_3(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_4(this$static){ + this$static.left = false; + this$static.right = false; + this$static.up = false; + this$static.down = false; +} + +function Quadruplet(){ + $set_4(this); +} + +defineClass(522, 1, {522: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', 522); +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_7(n$iterator), 57); + 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, 679, 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(802, 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', 802); +function $handle(this$static, p){ + var left, right; + p.low?$insert_2(this$static, p):(left = castTo($lower(this$static.intervals, p.node), 57) , !!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), 57) , !!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), 57)) || $overlap(p.node, castTo($ceiling(this$static.intervals, p.node), 57))) && ($clinit_System() , p.node + ' has overlap.'); + this$static.cand[p.node.id_0] = castTo($lower(this$static.intervals, p.node), 57); + right = castTo($higher(this$static.intervals, p.node), 57); + !!right && (this$static.cand[right.id_0] = p.node); +} + +function $reset_1(this$static){ + var index_0, n, n$iterator; + $clear_8(this$static.intervals.map_0); + this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_common_compaction_oned_CNode_2_classLit, $intern_2, 57, 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_7(n$iterator), 57); + 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), 62)); +} + +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(1717, 1, {679:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler); +_.handle = function handle(p){ + $handle(this, castTo(p, 464)); +} +; +var Lorg_eclipse_elk_alg_common_compaction_oned_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.compaction.oned', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1717); +function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type(){ +} + +defineClass(1718, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type); +_.compare_1 = function compare_13(arg0, arg1){ + return lambda$0_8(castTo(arg0, 57), castTo(arg1, 57)); +} +; +_.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', 1718); +function ScanlineConstraintCalculator$Timestamp(node, low){ + this.node = node; + this.low = low; +} + +defineClass(464, 1, {464: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', 464); +function ScanlineConstraintCalculator$lambda$0$Type(){ +} + +defineClass(1719, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type); +_.compare_1 = function compare_14(arg0, arg1){ + return lambda$0_7(castTo(arg0, 464), castTo(arg1, 464)); +} +; +_.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', 1719); +function ScanlineConstraintCalculator$lambda$1$Type(){ +} + +defineClass(1720, 1, $intern_89, ScanlineConstraintCalculator$lambda$1$Type); +_.apply_1 = function apply_38(arg0){ + return castTo(arg0, 57) , true; +} +; +_.equals_0 = function equals_66(other){ + return this === other; +} +; +_.test_0 = function test_6(input_0){ + return castTo(input_0, 57) , 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', 1720); +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_14(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_36, 429, 0, [NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST, CORNER_CASES_THAN_SINGLE_SIDE_LAST]); +} + +defineClass(429, 22, {3:1, 35:1, 22:1, 429: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', 429, Ljava_lang_Enum_2_classLit, values_20, valueOf_14); +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_36, 429, 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_15(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_36, 428, 0, [BY_SIZE, BY_SIZE_AND_SHAPE]); +} + +defineClass(428, 22, {3:1, 35:1, 22:1, 428: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', 428, Ljava_lang_Enum_2_classLit, values_21, valueOf_15); +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_36, 428, 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(852, 1, $intern_90, PolyominoOptions); +_.apply_4 = function apply_39(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', 852); +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_16(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_36, 250, 0, [SPIRAL, LINE_BY_LINE, MANHATTAN, JITTER, QUADRANTS_LINE_BY_LINE, QUADRANTS_MANHATTAN, QUADRANTS_JITTER, COMBINE_LINE_BY_LINE_MANHATTAN, COMBINE_JITTER_MANHATTAN]); +} + +defineClass(250, 22, {3:1, 35:1, 22:1, 250: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', 250, Ljava_lang_Enum_2_classLit, values_22, valueOf_16); +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_36, 250, 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(213, 1, {213: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', 213); +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(176, 1, {}, NEdge$NEdgeBuilder); +var Lorg_eclipse_elk_alg_common_networksimplex_NEdge$NEdgeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NEdge/NEdgeBuilder', 176); +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_7(src$iterator), 121); + $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_7(edge$iterator), 213); + 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, 25, 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_7(node$iterator), 121); + if (!mark[node.internalId]) { + ccRep.array[ccRep.array.length] = 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_7(n$iterator), 121); + 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(653, 1, {}, NGraph); +var Lorg_eclipse_elk_alg_common_networksimplex_NGraph_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NGraph', 653); +function $getConnectedEdges(this$static){ + if (this$static.incomingEdgesModCnt != this$static.incomingEdges.modCount || this$static.outgoingEdgesModCnt != this$static.outgoingEdges.modCount) { + this$static.allEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $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(121, 1, {121: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', 121); +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(794, 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_9(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; + this.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} +; +_.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_49(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_90(index_0){ + ++this.modCount; + return $remove_11(this.list, index_0); +} +; +_.remove_1 = function remove_91(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_64(){ + return this.list.array.length; +} +; +_.subList = function subList_9(fromIndex, toIndex){ + return new AbstractList$SubList(this.list, fromIndex, toIndex); +} +; +_.toArray = function toArray_23(){ + return $toArray_1(this.list); +} +; +_.toArray_0 = function toArray_24(a){ + return $toArray_2(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', 794); +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(269, 1, {}, NNode$NNodeBuilder); +var Lorg_eclipse_elk_alg_common_networksimplex_NNode$NNodeBuilder_2_classLit = createForClass('org.eclipse.elk.alg.common.networksimplex', 'NNode/NNodeBuilder', 269); +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_7(node$iterator), 121); + if (node.incomingEdges.list.array.length == node.outgoingEdges.list.array.length) { + newLayer = node.layer; + range = $minimalSpan(node); + for (i = node.layer - castTo(range.first, 19).value_0 + 1; i < node.layer + castTo(range.second, 19).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_7(node$iterator0), 121); + treeEdgeCount = 0; + node.unknownCutvalues.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (edge$iterator = new ArrayList$1($getConnectedEdges(node)); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 213); + if (edge.treeEdge) { + $add_3(node.unknownCutvalues, edge); + ++treeEdgeCount; + } + } + treeEdgeCount == 1 && (leafs.array[leafs.array.length] = node , true); + } + for (node$iterator = new ArrayList$1(leafs); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + while (node.unknownCutvalues.array.length == 1) { + toDetermine = castTo($next_7(new ArrayList$1(node.unknownCutvalues)), 213); + 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_7(edge$iterator), 213); + 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_7(edge$iterator), 213); + 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_7(node$iterator), 121); + $isInHead(this$static, node, leave) || (node.layer += delta); + } + this$static.postOrder = 1; + fill_3(this$static.edgeVisited); + $postorderTraversal(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)); + $cutvalues(this$static); +} + +function $execute_0(this$static, monitor){ + var e, iter, node, node$iterator, removeSubtrees; + $begin(monitor, 'Network simplex', 1); + if (this$static.graph_0.nodes.array.length < 1) { + $done_0(monitor); + return; + } + for (node$iterator = new ArrayList$1(this$static.graph_0.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 121); + 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; + $done_0(monitor); +} + +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_7(new ArrayList$1(this$static.graph_0.nodes)), 121)) < 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_7(node$iterator), 121); + node.treeNode && (node.layer += slack); + } + fill_3(this$static.edgeVisited); + } + fill_3(this$static.edgeVisited); + $postorderTraversal(this$static, castTo($next_7(new ArrayList$1(this$static.graph_0.nodes)), 121)); + $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_7(n$iterator), 121); + n.treeNode = false; + } + this$static.poID = initUnidimensionalArray(I_classLit, $intern_48, 25, numNodes, 15, 1); + this$static.lowestPoID = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_7(node$iterator), 121); + 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_7(edge$iterator), 213); + 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_65, 25, numEdges, 15, 1); + this$static.edgeVisited = initUnidimensionalArray(Z_classLit, $intern_91, 25, 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_48, 25, 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_7(node$iterator), 121); + 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)), 121); + for (edge$iterator = unmodifiableIterator(new ArrayList$1(node.outgoingEdges.list)); edge$iterator.hasNext_0();) { + edge = castTo(edge$iterator.next_1(), 213); + 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(), 213); + 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_7(edge$iterator), 213); + 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_7(edge$iterator), 213); + 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_4(minSpanIn), valueOf_4(minSpanOut)); +} + +function $normalize(this$static){ + var filling, highest, layerID, lowest, node, node$iterator, node$iterator0, nodeCntInLayer, nodeCntInLayer$array, nodeCntInLayer$index, nodeCntInLayer$max; + highest = $intern_42; + 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_7(node$iterator0), 121); + lowest = $wnd.Math.min(lowest, node.layer); + highest = $wnd.Math.max(highest, node.layer); + } + filling = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_7(node$iterator), 121); + 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_7(edge$iterator), 213); + 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), 46); + node = castTo(leafy.first, 121); + edge = castTo(leafy.second, 213); + 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_7(node$iterator), 121); + $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)), 121); + if ($getConnectedEdges(node).array.length == 0) { + continue; + } + edge = castTo($get_11($getConnectedEdges(node), 0), 213); + 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_7(edge$iterator), 213); + 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(1629, 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', 1629); +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_7(node$iterator), 680); + 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_36, 232, 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_36, 232, 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_36, 232, 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_36, 232, 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_0))) { + layoutDirection = castTo(graph.getProperty(($clinit_CoreOptions() , DIRECTION_0)), 103); + 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(1293, 1, $intern_19, NodeLabelAndSizeCalculator$lambda$0$Type); +_.accept = function accept_45(arg0){ + process(this.graph_0, castTo(arg0, 680), 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', 1293); +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_7(node$iterator), 680); + $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(), 838); + for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + 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(), 838); + for (label$iterator = new ArrayList$1(edge.getLabels()); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 181); + 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_7(label$iterator), 181); + 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_7(port$iterator), 837); + 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_7(label$iterator), 181); + 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)), 174).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_7(label$iterator), 181); + 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(558, 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', 558); +function $setContributesToMinimumHeight(this$static, contributesToMinimumHeight){ + this$static.contributesToMinimumHeight = contributesToMinimumHeight; +} + +function Cell(){ + this.padding = new ElkPadding; + this.cellRectangle = new ElkRectangle; +} + +defineClass(212, 1, {212: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', 212); +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(123, 212, {123:1, 212: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', 123); +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_17(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_36, 232, 0, [BEGIN, CENTER, END]); +} + +defineClass(232, 22, {3:1, 35:1, 22:1, 232: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', 232, Ljava_lang_Enum_2_classLit, values_23, valueOf_17); +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_36, 232, 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, 123)) { + if (castTo(cell, 123).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, 123)) { + if (castTo(cell, 123).minimumContentAreaSize.x_0 == 0) { + return 0; + } + } + return cell.getMinimumWidth(); +} + +defineClass(326, 212, $intern_92); +var Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerCell_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.cellsystem', 'ContainerCell', 326); +function $clinit_GridContainerCell(){ + $clinit_GridContainerCell = emptyMethod; + ROWS = ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 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_65, 25, 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_65, 25, 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], [595, 212], 0, [ROWS, COLUMNS], 2); + this.centerCellRect = new ElkRectangle; + this.tabular = tabular; + this.symmetrical = symmetrical; + this.gap = gap; +} + +defineClass(1472, 326, $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_36, 232, 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_36, 232, 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_36, 232, 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', 1472); +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_18(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_36, 461, 0, [LEFT, CENTER_0, RIGHT]); +} + +defineClass(461, 22, {3:1, 35:1, 22:1, 461: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', 461, Ljava_lang_Enum_2_classLit, values_24, valueOf_18); +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_36, 461, 0, [LEFT, CENTER_0, RIGHT]))); +} + +var $MAP_6; +function $$init_5(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_7(label$iterator), 181); + 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_7(label$iterator), 181); + 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(newHorizontalAlignment, 'Horizontal alignment cannot be null'); + this$static.horizontalAlignment = newHorizontalAlignment; + return this$static; +} + +function $setVerticalAlignment(this$static, newVerticalAlignment){ + requireNonNull(newVerticalAlignment, 'Vertical alignment cannot be null'); + this$static.verticalAlignment = newVerticalAlignment; + return this$static; +} + +function LabelCell(gap){ + Cell.call(this); + $$init_5(this); + this.gap = gap; + this.horizontalLayoutMode = true; +} + +function LabelCell_0(gap, nodeLabelLocation, horizontalLayoutMode){ + Cell.call(this); + $$init_5(this); + this.gap = gap; + this.horizontalLayoutMode = horizontalLayoutMode; + this.horizontalAlignment = nodeLabelLocation.horizontalAlignment; + this.verticalAlignment = nodeLabelLocation.verticalAlignment; +} + +function LabelCell_1(gap, horizontalLayoutMode){ + Cell.call(this); + $$init_5(this); + this.gap = gap; + this.horizontalLayoutMode = horizontalLayoutMode; +} + +defineClass(306, 212, {212:1, 306: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', 306); +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, 326) && castTo(childCell, 326).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, 326) && castTo(childCell, 326).layoutChildrenVertically(); + } +} + +function $minCellHeights(this$static, respectContributionFlag){ + var cellHeights; + cellHeights = stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 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_65, 25, 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, 212, ($clinit_ContainerArea() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_nodespacing_cellsystem_ContainerArea_2_classLit, 1), $intern_36, 232, 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(244, 326, {212:1, 326:1, 244: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', 244); +function StripContainerCell$lambda$0$Type(){ +} + +defineClass(1625, 1, $intern_39, StripContainerCell$lambda$0$Type); +_.test_0 = function test_7(arg0){ + return lambda$0_9(castTo(arg0, 212)); +} +; +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', 1625); +function StripContainerCell$lambda$1$Type(){ +} + +defineClass(1626, 1, {}, StripContainerCell$lambda$1$Type); +_.applyAsDouble = function applyAsDouble(arg0){ + return castTo(arg0, 212).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', 1626); +function StripContainerCell$lambda$2$Type(){ +} + +defineClass(1627, 1, $intern_39, StripContainerCell$lambda$2$Type); +_.test_0 = function test_8(arg0){ + return lambda$2(castTo(arg0, 212)); +} +; +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', 1627); +function StripContainerCell$lambda$3$Type(){ +} + +defineClass(1628, 1, {}, StripContainerCell$lambda$3$Type); +_.applyAsDouble = function applyAsDouble_0(arg0){ + return castTo(arg0, 212).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', 1628); +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_19(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_36, 462, 0, [TOP, CENTER_1, BOTTOM]); +} + +defineClass(462, 22, {3:1, 35:1, 22:1, 462: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', 462, Ljava_lang_Enum_2_classLit, values_25, valueOf_19); +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_36, 462, 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), 249)); + break; + case 3: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_SOUTH_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_SOUTH_0), 249)); + break; + case 2: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_EAST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_EAST_0), 249)); + break; + case 4: + this$static.node.hasProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_WEST_0)) && (alignment = castTo(this$static.node.getProperty(PORT_ALIGNMENT_WEST_0), 249)); + } + !alignment && (alignment = castTo(this$static.node.getProperty(($clinit_CoreOptions() , PORT_ALIGNMENT_DEFAULT)), 249)); + 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), 289)); + this.outsideNodeLabelContainers = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_core_options_PortSide_2_classLit), 289)); + this.nodeLabelCells = new EnumMap(castTo(checkNotNull(Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeLabelLocation_2_classLit), 289)); + this.node = node; + this.nodeSize = new KVector_2(node.getSize()); + this.treatAsCompoundNode = node.isCompoundNode() || $booleanValue(castToBoolean(node.getProperty(($clinit_CoreOptions() , INSIDE_SELF_LOOPS_ACTIVATE_0)))); + this.sizeConstraints = castTo(node.getProperty(($clinit_CoreOptions() , NODE_SIZE_CONSTRAINTS_6)), 21); + this.sizeOptions = castTo(node.getProperty(NODE_SIZE_OPTIONS_6), 21); + this.portConstraints = castTo(node.getProperty(PORT_CONSTRAINTS_1), 98); + 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), 116); + 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), 142); + 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(788, 1, {}, NodeContext); +_.labelCellSpacing = 0; +_.labelLabelSpacing = 0; +_.nodeLabelSpacing = 0; +_.portLabelSpacingHorizontal = 0; +_.portLabelSpacingVertical = 0; +_.portLabelsTreatAsGroup = false; +_.portPortSpacing = 0; +_.treatAsCompoundNode = false; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_NodeContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'NodeContext', 788); +function NodeContext$0methodref$comparePortSides$Type(){ +} + +defineClass(1470, 1, $intern_88, NodeContext$0methodref$comparePortSides$Type); +_.compare_1 = function compare_15(arg0, arg1){ + return comparePortSides(castTo(arg0, 61), castTo(arg1, 61)); +} +; +_.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', 1470); +function NodeContext$1methodref$comparePortContexts$Type(){ +} + +defineClass(1471, 1, $intern_88, NodeContext$1methodref$comparePortContexts$Type); +_.compare_1 = function compare_16(arg0, arg1){ + return comparePortContexts(castTo(arg0, 111), castTo(arg1, 111)); +} +; +_.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', 1471); +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_36, 93, 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_36, 93, 0, [V_TOP_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 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_36, 93, 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_36, 93, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 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_36, 93, 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_36, 93, 0, [H_LEFT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 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_36, 93, 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_36, 93, 0, [H_RIGHT_0, V_CENTER_0])), of_2(OUTSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 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_36, 93, 0, [V_TOP_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 0, [V_TOP_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 0, [V_TOP_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 0, [V_CENTER_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 0, [V_CENTER_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 0, [V_CENTER_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 0, [V_BOTTOM_0, H_LEFT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 0, [V_BOTTOM_0, H_CENTER_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_36, 93, 0, [V_BOTTOM_0, H_RIGHT_0])), of_2(INSIDE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_20(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_36, 159, 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(159, 22, {3:1, 35:1, 22:1, 159: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', 159, Ljava_lang_Enum_2_classLit, values_26, valueOf_20); +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(111, 1, {111:1}, PortContext); +_.labelsNextToPort = false; +var Lorg_eclipse_elk_alg_common_nodespacing_internal_PortContext_2_classLit = createForClass('org.eclipse.elk.alg.common.nodespacing.internal', 'PortContext', 111); +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)), 123).contributesToMinimumWidth = true; + castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 123).contributesToMinimumWidth = true; + freePortPlacement = nodeContext.portConstraints != ($clinit_PortConstraints() , FIXED_RATIO) && nodeContext.portConstraints != FIXED_POS; + $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 123), freePortPlacement); + $setContributesToMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 123), freePortPlacement); + $setContributesToMinimumHeight(nodeContext.nodeContainerMiddleRow, freePortPlacement); + if (nodeContext.sizeConstraints.contains(PORT_LABELS)) { + castTo($get_14(nodeContext.insidePortLabelCells, NORTH_3), 123).contributesToMinimumHeight = true; + castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 123).contributesToMinimumHeight = true; + castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 123).contributesToMinimumWidth = true; + castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 123).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), 306); + 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)), 123)) + nodeContext.labelCellSpacing; + bottomBorderOffset = nodeContext.nodeContainer.padding.bottom + $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, SOUTH_2), 123)) + nodeContext.labelCellSpacing; + eastCell = castTo($get_14(nodeContext.insidePortLabelCells, EAST_2), 123); + westCell = castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 123); + 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), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + rightmostPortBorder = $wnd.Math.max(rightmostPortBorder, portContext.portPosition.x_0 + portContext.port.getSize().x_0); + } + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 123); + 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), 123); + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + 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(), 111); + 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), 123); + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).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), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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), 84).iterator_0(); + while (portContextIterator.hasNext_0()) { + portContext = castTo(portContextIterator.next_1(), 111); + 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, leftmostPortContext, portContextIterator, portContexts, portLabelsOutside, rightmostPortContext, spaceEfficient, spaceEfficientPortLabels, uniformPortSpacing; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); + alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); + spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); + uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); + spaceEfficientPortLabels = !alwaysSameSide && (spaceEfficient || portContexts.size_1() == 2); + computeHorizontalPortMargins(nodeContext, portSide); + leftmostPortContext = null; + rightmostPortContext = null; + if (portLabelsOutside) { + portContextIterator = portContexts.iterator_0(); + leftmostPortContext = castTo(portContextIterator.next_1(), 111); + rightmostPortContext = leftmostPortContext; + while (portContextIterator.hasNext_0()) { + rightmostPortContext = castTo(portContextIterator.next_1(), 111); + } + 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(), 111); + 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(), 111); + 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), 123); + minCellSize = theAppropriateCell.minimumContentAreaSize; + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + !!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), 123).padding; + switch (portSide.ordinal) { + case 1: + padding.top_0 = nodeContext.portLabelSpacingVertical; + break; + case 3: + 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), 123).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), 244); + 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), 244); + 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(1475, 1, $intern_19, LabelPlacer$lambda$0$Type); +_.accept = function accept_46(arg0){ + $applyLabelLayout(castTo(arg0, 306)); +} +; +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', 1475); +function LabelPlacer$lambda$1$Type(){ +} + +defineClass(1476, 1, $intern_39, LabelPlacer$lambda$1$Type); +_.test_0 = function test_9(arg0){ + return !!castTo(arg0, 111).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', 1476); +function LabelPlacer$lambda$2$Type(){ +} + +defineClass(1477, 1, $intern_19, LabelPlacer$lambda$2$Type); +_.accept = function accept_47(arg0){ + $applyLabelLayout(castTo(arg0, 111).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', 1477); +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), 84); + if (portContexts.size_1() >= 2) { + firstPort = castTo(portContexts.iterator_0().next_1(), 111); + 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), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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(), 111); + 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), 174).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(1474, 1, $intern_19, NodeLabelAndSizeUtilities$lambda$0$Type); +_.accept = function accept_48(arg0){ + $clinit_NodeLabelAndSizeUtilities(); + $applyPortPosition(castTo(arg0, 111)); +} +; +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', 1474); +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), 306); + 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), 244); + 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(789, 1, $intern_19, NodeLabelCellCreator$lambda$0$Type); +_.accept = function accept_49(arg0){ + lambda$0_10(this.nodeContext_0, this.onlyInside_1, this.horizontalLayoutMode_2, castTo(arg0, 181)); +} +; +_.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', 789); +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 { + 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)), 244))); + height = $wnd.Math.max(height, $getMinimumHeight_1(castTo($get_14(nodeContext.outsideNodeLabelContainers, WEST_2), 244))); + } + 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)), 123))); + height = $wnd.Math.max(height, $getMinimumHeight(castTo($get_14(nodeContext.insidePortLabelCells, WEST_2), 123))); + } + } + } + $booleanValue(castToBoolean(nodeContext.node.getGraph().getProperty(($clinit_CoreOptions() , NODE_SIZE_FIXED_GRAPH_SIZE_0))))?(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 { + 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)), 244))); + width_0 = $wnd.Math.max(width_0, $getMinimumWidth_0(castTo($get_14(nodeContext.outsideNodeLabelContainers, SOUTH_2), 244))); + } + 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_0))))?(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_7(port$iterator), 837); + 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(1473, 1, $intern_19, PortContextCreator$lambda$0$Type); +_.accept = function accept_50(arg0){ + lambda$0_11(this.portContext_0, castTo(arg0, 181)); +} +; +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', 1473); +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), 84); + 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), 123); + labelContainerRect = insidePortLabelContainer.cellRectangle; + leftBorder = labelContainerRect.x_0 + maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [insidePortLabelContainer.padding.left, nodeContext.surroundingPortMargins.left, nodeContext.nodeLabelSpacing])); + rightBorder = labelContainerRect.x_0 + labelContainerRect.width_0 - maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [insidePortLabelContainer.padding.right, nodeContext.surroundingPortMargins.right, nodeContext.nodeLabelSpacing])); + overlapRemover = $withGap(createForDirection(overlapRemovalDirection), nodeContext.portLabelSpacingVertical); + startCoordinate = portSide == NORTH_3?$intern_60:$intern_59; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 111); + 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(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), 123).minimumContentAreaSize.y_0 = stripHeight); + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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), 84); + 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_59:$intern_60; + for (portContext$iterator0 = portContexts.iterator_0(); portContext$iterator0.hasNext_0();) { + portContext = castTo(portContext$iterator0.next_1(), 111); + 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(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(), 111); + 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), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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), 181).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), 181).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), 123).minimumContentAreaSize.y_0 = insideNorthOrSouthPortLabelAreaHeight); +} + +function simpleOutsidePortLabelPlacement(nodeContext, portSide){ + var labelHeight, padding, padding0, placeFirstPortDifferently, portContext, portContext$iterator, portContexts, portLabelCell, portLabelCellRect, portSize; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + placeFirstPortDifferently = isFirstOutsidePortLabelPlacedDifferently(nodeContext, portSide); + for (portContext$iterator = portContexts.iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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) { + 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) { + 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), 181).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + } + else if (placeFirstPortDifferently) { + 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), 181).getSize().y_0; + portLabelCellRect.y_0 = (portSize.y_0 - labelHeight) / 2; + $setVerticalAlignment(portLabelCell, ($clinit_VerticalLabelAlignment() , CENTER_1)); + } + else if (placeFirstPortDifferently) { + 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), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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), 84).isEmpty()) { + return; + } + insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 123); + 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), 84).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), 84).size_1() + 1); + currentXPos += spaceBetweenPorts; + } + else { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).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), 84).size_1() + 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + currentXPos += spaceBetweenPorts; + break; + case 1: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementWidth) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + } + } + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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), 84).isEmpty()) { + return; + } + insidePortLabelCell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 123); + 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), 84).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), 84).size_1() + 1); + currentYPos += spaceBetweenPorts; + } + else { + spaceBetweenPorts += (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).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), 84).size_1() + 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + currentYPos += spaceBetweenPorts; + break; + case 1: + additionalSpaceBetweenPorts = (availableSpace - calculatedPortPlacementHeight) / (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).size_1() - 1); + spaceBetweenPorts += $wnd.Math.max(0, additionalSpaceBetweenPorts); + } + } + for (portContext$iterator = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + bottommostPortBorder = $wnd.Math.max(bottommostPortBorder, portContext.portPosition.y_0 + portContext.port.getSize().y_0); + } + cell = castTo($get_14(nodeContext.insidePortLabelCells, portSide), 123); + 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), 123); + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + 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(), 111); + 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), 123); + if (castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84).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), 84).iterator_0(); portContext$iterator.hasNext_0();) { + portContext = castTo(portContext$iterator.next_1(), 111); + 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), 181).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), 84).iterator_0(); + while (portContextIterator.hasNext_0()) { + portContext = castTo(portContextIterator.next_1(), 111); + 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, bottommostPortContext, portContextIterator, portContexts, portLabelsOutside, spaceEfficient, spaceEfficientPortLabels, topmostPortContext, uniformPortSpacing; + portContexts = castTo(castTo($get(nodeContext.portContexts, portSide), 21), 84); + portLabelsOutside = nodeContext.portLabelsPlacement.contains(($clinit_PortLabelPlacement() , OUTSIDE_0)); + alwaysSameSide = nodeContext.portLabelsPlacement.contains(ALWAYS_SAME_SIDE); + spaceEfficient = nodeContext.portLabelsPlacement.contains(SPACE_EFFICIENT_0); + uniformPortSpacing = nodeContext.sizeOptions.contains(($clinit_SizeOptions() , UNIFORM_PORT_SPACING)); + spaceEfficientPortLabels = !alwaysSameSide && (spaceEfficient || portContexts.size_1() == 2); + computeVerticalPortMargins(nodeContext, portSide); + topmostPortContext = null; + bottommostPortContext = null; + if (portLabelsOutside) { + portContextIterator = portContexts.iterator_0(); + topmostPortContext = castTo(portContextIterator.next_1(), 111); + bottommostPortContext = topmostPortContext; + while (portContextIterator.hasNext_0()) { + bottommostPortContext = castTo(portContextIterator.next_1(), 111); + } + 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(), 111); + 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(), 111); + 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_7(currNode$iterator), 222); + 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_10(overlapNode$iterator), 222); + 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(1828, 1, {}, GreedyRectangleStripOverlapRemover); +var Lorg_eclipse_elk_alg_common_overlaps_GreedyRectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'GreedyRectangleStripOverlapRemover', 1828); +function GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type(){ +} + +defineClass(1829, 1, $intern_88, GreedyRectangleStripOverlapRemover$0methodref$compareByYCoordinate$Type); +_.compare_1 = function compare_17(arg0, arg1){ + return compareByYCoordinate(castTo(arg0, 222), castTo(arg1, 222)); +} +; +_.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', 1829); +function $computeOverlaps(this$static){ + var currNode, currNode$iterator, entry, entryIterator, intersectingNode, intersectingNode$iterator, intersectingNodes, intersectingRectangle, scanlinePos; + intersectingNodes = new TreeSet_0(castTo(checkNotNull(new RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type), 62)); + scanlinePos = $intern_60; + for (currNode$iterator = new ArrayList$1(this$static.rectangleNodes); currNode$iterator.i < currNode$iterator.this$01.array.length;) { + currNode = castTo($next_7(currNode$iterator), 222); + scanlinePos = currNode.rectangle.x_0; + while (intersectingNodes.map_0.size_0 != 0) { + intersectingRectangle = castTo(getKeyOrNSE($getFirstEntry(intersectingNodes.map_0)), 222); + if (intersectingRectangle.rectangle.x_0 + intersectingRectangle.rectangle.width_0 < scanlinePos) { + $remove_26(intersectingNodes.map_0, intersectingRectangle) != null; + } + else { + break; + } + } + for (intersectingNode$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(intersectingNodes.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(intersectingNode$iterator.val$entryIterator2.iter);) { + intersectingNode = (entry = $next_11(intersectingNode$iterator.val$entryIterator2) , castTo(entry.getKey(), 222)); + $add_7(intersectingNode.overlappingNodes, currNode); + $add_7(currNode.overlappingNodes, intersectingNode); + } + $put_12(intersectingNodes.map_0, 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(1785, 1, {}, RectangleStripOverlapRemover); +_.gapVertical = 5; +_.startCoordinate = 0; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover', 1785); +function RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type(){ +} + +defineClass(1786, 1, $intern_88, RectangleStripOverlapRemover$0methodref$compareLeftRectangleBorders$Type); +_.compare_1 = function compare_18(arg0, arg1){ + return compareLeftRectangleBorders(castTo(arg0, 222), castTo(arg1, 222)); +} +; +_.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', 1786); +function RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type(){ +} + +defineClass(1788, 1, $intern_88, RectangleStripOverlapRemover$1methodref$compareRightRectangleBorders$Type); +_.compare_1 = function compare_19(arg0, arg1){ + return compareRightRectangleBorders(castTo(arg0, 222), castTo(arg1, 222)); +} +; +_.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', 1788); +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_21(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_36, 407, 0, [UP, DOWN, LEFT_0, RIGHT_0]); +} + +defineClass(407, 22, {3:1, 35:1, 22:1, 407: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', 407, Ljava_lang_Enum_2_classLit, values_27, valueOf_21); +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_36, 407, 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(222, 1, {222:1}, RectangleStripOverlapRemover$RectangleNode); +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$RectangleNode_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/RectangleNode', 222); +function RectangleStripOverlapRemover$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1787, 1, $intern_19, RectangleStripOverlapRemover$lambda$1$Type); +_.accept = function accept_51(arg0){ + $exportRectangle(this.$$outer_0, castTo(arg0, 222)); +} +; +var Lorg_eclipse_elk_alg_common_overlaps_RectangleStripOverlapRemover$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.overlaps', 'RectangleStripOverlapRemover/lambda$1$Type', 1787); +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)), 428).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), 429).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), 250).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_7(poly$iterator), 167); + offX = 0; + offY = 0; + next = new Pair(valueOf_4(offX), valueOf_4(offY)); + while ($intersectsWithCenterBased_0(grid, poly, offX, offY)) { + next = castTo(successorBasedOnCost.apply_3(next, poly), 46); + offX = castTo(next.first, 19).value_0; + offY = castTo(next.second, 19).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_0(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_36, 132, 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_5(0), new Collectors$lambda$4$Type)), 162).value_0, 2), 0) && (numDir1 = 0); + dirSet = castTo($collect_1($map_0(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_36, 132, 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_5(0), new Collectors$lambda$4$Type)), 162).value_0, 2), 0) && (numDir2 = 0); + if (numDir1 < numDir2) { + return -1; + } + if (numDir1 == numDir2) { + return 0; + } + return 1; +} + +function PolyominoCompactor$CornerCasesGreaterThanRestComparator(){ +} + +defineClass(1303, 1, $intern_88, PolyominoCompactor$CornerCasesGreaterThanRestComparator); +_.compare_1 = function compare_20(o1, o2){ + return $compare_1(castTo(o1, 167), castTo(o2, 167)); +} +; +_.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', 1303); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type(){ +} + +defineClass(1306, 1, {}, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$0$Type); +_.apply_0 = function apply_40(arg0){ + return castTo(arg0, 324).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', 1306); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type(){ +} + +defineClass(1307, 1, $intern_39, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$1$Type); +_.test_0 = function test_10(arg0){ + return castTo(arg0, 323).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', 1307); +function PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type(){ +} + +defineClass(1308, 1, $intern_39, PolyominoCompactor$CornerCasesGreaterThanRestComparator$lambda$2$Type); +_.test_0 = function test_11(arg0){ + return castTo(arg0, 323).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', 1308); +function $compare_2(o1, o2){ + var detectDirections, dirSet, numDir1, numDir2; + detectDirections = new PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type; + dirSet = castTo($collect_1($map_0(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_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + numDir1 = dirSet.size_1(); + dirSet = castTo($collect_1($map_0(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_36, 132, 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(1301, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionDirectionsComparator); +_.compare_1 = function compare_21(o1, o2){ + return $compare_2(castTo(o1, 167), castTo(o2, 167)); +} +; +_.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', 1301); +function PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type(){ +} + +defineClass(1304, 1, {}, PolyominoCompactor$MinNumOfExtensionDirectionsComparator$lambda$0$Type); +_.apply_0 = function apply_41(arg0){ + return castTo(arg0, 324).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', 1304); +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(767, 1, $intern_88, PolyominoCompactor$MinNumOfExtensionsComparator); +_.compare_1 = function compare_22(o1, o2){ + return $compare_3(castTo(o1, 167), castTo(o2, 167)); +} +; +_.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', 767); +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(1299, 1, $intern_88, PolyominoCompactor$MinPerimeterComparator); +_.compare_1 = function compare_23(o1, o2){ + return $compare_4(castTo(o1, 321), castTo(o2, 321)); +} +; +_.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', 1299); +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(1300, 1, $intern_88, PolyominoCompactor$MinPerimeterComparatorWithShape); +_.compare_1 = function compare_24(o1, o2){ + return $compare_5(castTo(o1, 321), castTo(o2, 321)); +} +; +_.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', 1300); +function $compare_6(o1, o2){ + var detectDirections, dirSet, numDir1, numDir2; + detectDirections = new PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type; + dirSet = castTo($collect_1($map_0(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_36, 132, 0, [($clinit_Collector$Characteristics() , UNORDERED), IDENTITY_FINISH]))), 21); + numDir1 = dirSet.size_1(); + dirSet = castTo($collect_1($map_0(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_36, 132, 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(1302, 1, $intern_88, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator); +_.compare_1 = function compare_25(o1, o2){ + return $compare_6(castTo(o1, 167), castTo(o2, 167)); +} +; +_.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', 1302); +function PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type(){ +} + +defineClass(1305, 1, {}, PolyominoCompactor$SingleExtensionSideGreaterThanRestComparator$lambda$0$Type); +_.apply_0 = function apply_42(arg0){ + return castTo(arg0, 324).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', 1305); +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_48, 25, width_0, 15, 1); + southProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, width_0, 15, 1); + height = poly.ySize; + eastProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, height, 15, 1); + westProfile = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_5(poly, xi, yi, false, true); + } + } +} + +function $apply_4(this$static, coords, poly){ + return poly.polyominoExtensions.array.length > 0?$apply_9(this$static.externalFun, coords, poly):$apply_9(this$static.normalFun, coords, poly); +} + +function SuccessorCombination(normalFun, externalFun){ + this.normalFun = normalFun; + this.externalFun = externalFun; +} + +defineClass(777, 1, {}, SuccessorCombination); +_.apply_3 = function apply_43(coords, poly){ + return $apply_4(this, castTo(coords, 46), castTo(poly, 167)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorCombination_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorCombination', 777); +function $apply_5(coords){ + var cost, newX, newY, x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).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_4(newX), valueOf_4(newY)); +} + +function SuccessorJitter(){ +} + +defineClass(644, 1, {}, SuccessorJitter); +_.apply_3 = function apply_44(coords, poly){ + var lastArg; + return $apply_5((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorJitter_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorJitter', 644); +function $apply_6(coords){ + var x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).value_0; + if (x_0 >= 0) { + if (x_0 == y_0) { + return new Pair(valueOf_4(-x_0 - 1), valueOf_4(-x_0 - 1)); + } + if (x_0 == -y_0) { + return new Pair(valueOf_4(-x_0), valueOf_4(y_0 + 1)); + } + } + if ($wnd.Math.abs(x_0) > $wnd.Math.abs(y_0)) { + if (x_0 < 0) { + return new Pair(valueOf_4(-x_0), valueOf_4(y_0)); + } + return new Pair(valueOf_4(-x_0), valueOf_4(y_0 + 1)); + } + return new Pair(valueOf_4(x_0 + 1), valueOf_4(y_0)); +} + +function SuccessorLineByLine(){ +} + +defineClass(643, 1, {}, SuccessorLineByLine); +_.apply_3 = function apply_45(coords, poly){ + var lastArg; + return $apply_6((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorLineByLine_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorLineByLine', 643); +function $apply_7(coords){ + var newX, newY, x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).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_4(newX), valueOf_4(newY)); +} + +function SuccessorManhattan(){ +} + +defineClass(568, 1, {}, SuccessorManhattan); +_.apply_3 = function apply_46(coords, poly){ + var lastArg; + return $apply_7((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorManhattan_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorManhattan', 568); +function $apply_8(coords){ + var cost, x_0, y_0; + x_0 = castTo(coords.first, 19).value_0; + y_0 = castTo(coords.second, 19).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_4(x_0 + 1), valueOf_4(y_0)); + } + if (x_0 == cost && y_0 < cost) { + return new Pair(valueOf_4(x_0), valueOf_4(y_0 + 1)); + } + if (x_0 >= -cost && y_0 == cost) { + return new Pair(valueOf_4(x_0 - 1), valueOf_4(y_0)); + } + return new Pair(valueOf_4(x_0), valueOf_4(y_0 - 1)); +} + +function SuccessorMaxNormWindingInMathPosSense(){ +} + +defineClass(1355, 1, {}, SuccessorMaxNormWindingInMathPosSense); +_.apply_3 = function apply_47(coords, poly){ + var lastArg; + return $apply_8((lastArg = castTo(coords, 46) , castTo(poly, 167) , lastArg)); +} +; +var Lorg_eclipse_elk_alg_common_polyomino_SuccessorMaxNormWindingInMathPosSense_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino', 'SuccessorMaxNormWindingInMathPosSense', 1355); +function $apply_9(this$static, coords, poly){ + return $apply_10(this$static, castTo(coords, 46), castTo(poly, 167)); +} + +function $apply_10(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_0(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_36, 132, 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), 46); + newX = castTo(nextCoords.first, 19).value_0; + newY = castTo(nextCoords.second, 19).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_10(this$static, nextCoords, poly):nextCoords; +} + +function SuccessorQuadrantsGeneric(costFun){ + this.costFun = costFun; +} + +defineClass(400, 1, {}, SuccessorQuadrantsGeneric); +_.apply_3 = function apply_48(coords, poly){ + return $apply_9(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', 400); +function SuccessorQuadrantsGeneric$lambda$0$Type(){ +} + +defineClass(1356, 1, {}, SuccessorQuadrantsGeneric$lambda$0$Type); +_.apply_0 = function apply_49(arg0){ + return castTo(arg0, 324).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', 1356); +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_22(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_36, 323, 0, [NORTH, EAST, SOUTH, WEST]); +} + +defineClass(323, 22, {3:1, 35:1, 22:1, 323: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', 323, Ljava_lang_Enum_2_classLit, values_28, valueOf_22); +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_36, 323, 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, 320)) { + 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, 320)) { + 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, 320)) { + 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_5(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, 320)) { + 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(1297, 1, {}); +_.toString_0 = function toString_78(){ + var count, item_0, output, x_0, x0, y_0; + output = ' '; + count = valueOf_4(0); + for (x0 = 0; x0 < this.xSize; x0++) { + output += '' + count.value_0; + count = valueOf_4($incModTen(count.value_0)); + } + output += '\n'; + count = valueOf_4(0); + for (y_0 = 0; y_0 < this.ySize; y_0++) { + output += '' + count.value_0; + count = valueOf_4($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', 1297); +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_7(ext$iterator), 324); + 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_42; + minY = $intern_0; + maxY = $intern_42; + 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_4(minX), valueOf_4(minY), valueOf_4(width_0), valueOf_4(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_7(ext$iterator), 324); + 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, 73)) { + 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, 73)) { + 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, 73)) { + 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_62], [363, 25], 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_5(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, false, true); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + 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_5(this$static, x_0 + this$static.xCenter, y_0 + this$static.yCenter, true, false); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + 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_5(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_62], [363, 25], 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(321, 1297, {321: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', 321); +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(167, 321, {321:1, 167: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', 167); +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(134, 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', 134); +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_7(poly$iterator), 167); + 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), 167); + 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(1298, 134, $intern_95, Polyominoes); +var Lorg_eclipse_elk_alg_common_polyomino_structures_Polyominoes_2_classLit = createForClass('org.eclipse.elk.alg.common.polyomino.structures', 'Polyominoes', 1298); +function compact_0(tree, orthogonal){ + svg_0 = new SVGImage; + orthogonalCompaction = orthogonal; + root_0 = tree; + castTo(root_0.node, 65); + 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_7(child$iterator), 221); + compactionVector = $sub_0($clone_0(castTo(tree.node, 65).vertex), castTo(child.node, 65).vertex); + if (orthogonalCompaction) { + rt = castTo(tree.node, 65).rect; + rc = castTo(child.node, 65).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, 65), castTo(child.node, 65))); + } + 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, 65), compactionVector); + $forEach_1(child.children, new DepthFirstCompaction$lambda$1$Type(compactionVector)); + castTo(root_0.node, 65); + drawTree(root_0, svg_0, child); + } +} + +function drawTree(t, svgImage, mark){ + castTo(t.node, 65); + castTo(t.node, 65); + castTo(t.node, 65); + $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, 65), child, currentMinUnderlap, compactionVector)); + for (c$iterator = new ArrayList$1(tree.children); c$iterator.i < c$iterator.this$01.array.length;) { + c = castTo($next_7(c$iterator), 221); + c != child && (minUnderlap = $wnd.Math.min(minUnderlap, getMinUnderlap(c, child, minUnderlap, compactionVector))); + } + return minUnderlap; +} + +function lambda$1_4(compactionVector_0, c_1){ + $translate(castTo(c_1.node, 65), 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, 65) , castTo(t_2.node, 65) , castTo(c_3.node, 65) , castTo(c_3.node, 65).vertex.y_0):(castTo(t_2.node, 65) , castTo(t_2.node, 65) , castTo(c_3.node, 65) , castTo(c_3.node, 65).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_7(child$iterator), 221); + c = castTo(child.node, 65); + 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(1765, 1, $intern_19, DepthFirstCompaction$0methodref$compactTree$Type); +_.accept = function accept_52(arg0){ + compactTree(castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$0methodref$compactTree$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/0methodref$compactTree$Type', 1765); +function DepthFirstCompaction$lambda$1$Type(compactionVector_0){ + this.compactionVector_0 = compactionVector_0; +} + +defineClass(809, 1, $intern_19, DepthFirstCompaction$lambda$1$Type); +_.accept = function accept_53(arg0){ + lambda$1_4(this.compactionVector_0, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$1$Type', 809); +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(1766, 1, $intern_19, DepthFirstCompaction$lambda$2$Type); +_.accept = function accept_54(arg0){ + lambda$2_0(this.mark_0, this.svgImage_1, this.t_2, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_common_spore_DepthFirstCompaction$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'DepthFirstCompaction/lambda$2$Type', 1766); +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_59; + for (e1$iterator = new ArrayList$1(getRectEdges(this$static.rect)); e1$iterator.i < e1$iterator.this$01.array.length;) { + e1 = castTo($next_7(e1$iterator), 168); + for (e2$iterator = new ArrayList$1(getRectEdges(other.rect)); e2$iterator.i < e2$iterator.this$01.array.length;) { + e2 = castTo($next_7(e2$iterator), 168); + 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_0(this.originalVertex); + this.rect = new ElkRectangle_1(r); +} + +defineClass(65, 1, {65:1}, Node_0); +var Lorg_eclipse_elk_alg_common_spore_Node_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'Node', 65); +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_7(n$iterator), 65); + $add_3(points, new ScanlineOverlapCheck$Timestamp(n, true)); + $add_3(points, new ScanlineOverlapCheck$Timestamp(n, false)); + } + overlapsScanlineHandler = new ScanlineOverlapCheck$OverlapsScanlineHandler(this$static); + $clear_8(overlapsScanlineHandler.intervalsSortLeft.map_0); + execute(points, this$static.overlapsScanlineComparator, new Arrays$ArrayList(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_common_compaction_Scanline$EventHandler_2_classLit, 1), $intern_2, 679, 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(1249, 1, {}, ScanlineOverlapCheck); +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck', 1249); +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 entry, entryIterator, 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 = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(this$static.intervalsSortLeft.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(other$iterator.val$entryIterator2.iter);) { + other = (entry = $next_11(other$iterator.val$entryIterator2) , castTo(entry.getKey(), 65)); + 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), 62)); +} + +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(1250, 1, {679:1}, ScanlineOverlapCheck$OverlapsScanlineHandler); +_.handle = function handle_0(p){ + $handle_0(this, castTo(p, 441)); +} +; +var Lorg_eclipse_elk_alg_common_spore_ScanlineOverlapCheck$OverlapsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.common.spore', 'ScanlineOverlapCheck/OverlapsScanlineHandler', 1250); +function ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type(){ +} + +defineClass(1251, 1, $intern_88, ScanlineOverlapCheck$OverlapsScanlineHandler$lambda$0$Type); +_.compare_1 = function compare_26(arg0, arg1){ + return lambda$0_13(castTo(arg0, 65), castTo(arg1, 65)); +} +; +_.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', 1251); +function ScanlineOverlapCheck$Timestamp(node, low){ + this.node = node; + this.low = low; +} + +defineClass(441, 1, {441: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', 441); +function ScanlineOverlapCheck$lambda$0$Type(){ +} + +defineClass(1252, 1, $intern_88, ScanlineOverlapCheck$lambda$0$Type); +_.compare_1 = function compare_27(arg0, arg1){ + return lambda$0_12(castTo(arg0, 441), castTo(arg1, 441)); +} +; +_.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', 1252); +function SVGImage(){ +} + +defineClass(550, 1, {}, SVGImage); +var Lorg_eclipse_elk_alg_common_utils_SVGImage_2_classLit = createForClass('org.eclipse.elk.alg.common.utils', 'SVGImage', 550); +function UniqueTriple(f, s, t){ + this.first = f; + this.second = s; + this.third = t; +} + +defineClass(324, 1, {324: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', 324); +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(209, 1, $intern_96); +var Lorg_eclipse_elk_core_AbstractLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core', 'AbstractLayoutProvider', 209); +function DisCoLayoutProvider(){ +} + +defineClass(1131, 209, $intern_96, DisCoLayoutProvider); +_.layout = function layout(layoutGraph, progressMonitor){ + var lad, layoutProvider, requestedAlgorithm, transformer; + $begin(progressMonitor, '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), 209); + layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); + } + } + transformer = new ElkGraphTransformer(this.componentSpacing); + this.result = $importGraph(transformer, layoutGraph); + switch (castTo($getProperty_0(layoutGraph, ($clinit_DisCoMetaDataProvider() , COMPONENT_COMPACTION_STRATEGY)), 481).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(); + } + $applyLayout(transformer); + $setProperty_1(layoutGraph, DEBUG_DISCO_GRAPH_0, this.result); + $done_0(progressMonitor); +} +; +_.componentSpacing = 0; +var Lorg_eclipse_elk_alg_disco_DisCoLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoLayoutProvider', 1131); +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)), 116); + 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_7(poly$iterator), 562); + 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_0($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(), 561); + 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(), 561); + 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_7(poly$iterator), 562); + ++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(1243, 1, {}, DisCoPolyominoCompactor); +_.fill = false; +_.gridCellSizeX = 0; +_.gridCellSizeY = 0; +var Lorg_eclipse_elk_alg_disco_DisCoPolyominoCompactor_2_classLit = createForClass('org.eclipse.elk.alg.disco', 'DisCoPolyominoCompactor', 1243); +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(), 266); + 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(), 266); + 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_59; + maxX = $intern_60; + minY = $intern_59; + maxY = $intern_60; + for (elem$iterator = this$static.shapes.map_0.keySet_0().iterator_0(); elem$iterator.hasNext_0();) { + elem = castTo(elem$iterator.next_1(), 266); + 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_7(ext$iterator), 395); + 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(561, 1, {561:1}, DCComponent); +_.changed = true; +var Lorg_eclipse_elk_alg_disco_graph_DCComponent_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCComponent', 561); +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_23(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_36, 394, 0, [NORTH_0, EAST_0, SOUTH_0, WEST_0]); +} + +defineClass(394, 22, {3:1, 35:1, 22:1, 394: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', 394, Ljava_lang_Enum_2_classLit, values_29, valueOf_23); +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_36, 394, 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_59; + minY = $intern_59; + maxX = $intern_60; + maxY = $intern_60; + for (v$iterator = $listIterator_2(polyPath, 0); v$iterator.currentNode != v$iterator.this$01.tail;) { + v = castTo($next_10(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(266, 134, {3:1, 266:1, 94:1, 134:1}, DCElement); +var Lorg_eclipse_elk_alg_disco_graph_DCElement_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCElement', 266); +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(395, 1, {395:1}, DCExtension); +_.width_0 = 0; +var Lorg_eclipse_elk_alg_disco_graph_DCExtension_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCExtension', 395); +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_7(elements$iterator), 14); + component = new DCComponent; + $addElements(component, elements); + $add_6(this.components, component); + } +} + +function DCGraph_0(components){ + DCGraph.call(this, components); +} + +defineClass(755, 134, $intern_95, DCGraph_0); +var Lorg_eclipse_elk_alg_disco_graph_DCGraph_2_classLit = createForClass('org.eclipse.elk.alg.disco.graph', 'DCGraph', 755); +function $clinit_CompactionStrategy(){ + $clinit_CompactionStrategy = emptyMethod; + POLYOMINO = new CompactionStrategy; +} + +function CompactionStrategy(){ + Enum.call(this, 'POLYOMINO', 0); +} + +function valueOf_24(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_36, 481, 0, [POLYOMINO]); +} + +defineClass(481, 22, {3:1, 35:1, 22:1, 481:1}, CompactionStrategy); +var POLYOMINO; +var Lorg_eclipse_elk_alg_disco_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.disco.options', 'CompactionStrategy', 481, Ljava_lang_Enum_2_classLit, values_30, valueOf_24); +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_36, 481, 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(853, 1, $intern_90, DisCoMetaDataProvider); +_.apply_4 = function apply_50(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_11((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', 853); +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_11(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(997, 1, $intern_90, DisCoOptions); +_.apply_4 = function apply_51(registry){ + $apply_11(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', 997); +function DisCoOptions$DiscoFactory(){ +} + +defineClass(998, 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', 998); +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_0($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_7(extension$iterator), 395); + 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_4(yp), valueOf_4(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_4(xp), valueOf_4(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_0($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_5(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(), 266); + elem.extensions.array.length > 0 && $addExtensionsToPoly(this, elem); + } +} + +defineClass(562, 167, {321:1, 167:1, 562: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', 562); +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(), 79); + $add_6(incidentNodes, castTo(chooseNode.apply_0(edge), 33)); + } +} + +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), 33); + 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_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)])))), 83); + addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(($clinit_Boolean() , true)), 14), 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_36, 132, 0, [IDENTITY_FINISH]))), 15); + for (incomingEdge$iterator = connectedToParentPort.iterator_0(); incomingEdge$iterator.hasNext_0();) { + incomingEdge = castTo(incomingEdge$iterator.next_1(), 79); + 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_36, 132, 0, [IDENTITY_FINISH])))), 83); + addNodesToIncidenceSet(adjacentNodes, castTo(edges.get_3(true), 14), 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_36, 132, 0, [IDENTITY_FINISH]))), 15); + for (outgoingEdge$iterator = connectedToParentPort.iterator_0(); outgoingEdge$iterator.hasNext_0();) { + outgoingEdge = castTo(outgoingEdge$iterator.next_1(), 79); + 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(), 33); + $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_0($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_36, 132, 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), 33); + 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, 79)); +} + +function ElkGraphComponentsProcessor$lambda$0$Type(){ +} + +defineClass(1267, 1, $intern_39, 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', 1267); +function ElkGraphComponentsProcessor$lambda$1$Type(){ +} + +defineClass(1268, 1, {}, ElkGraphComponentsProcessor$lambda$1$Type); +_.apply_0 = function apply_52(arg0){ + return $clinit_ElkGraphComponentsProcessor() , getSourceNode(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$1$Type', 1268); +function ElkGraphComponentsProcessor$lambda$2$Type(){ +} + +defineClass(1269, 1, $intern_39, ElkGraphComponentsProcessor$lambda$2$Type); +_.test_0 = function test_13(arg0){ + return lambda$2_1(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$2$Type', 1269); +function ElkGraphComponentsProcessor$lambda$3$Type(){ +} + +defineClass(1270, 1, {}, ElkGraphComponentsProcessor$lambda$3$Type); +_.apply_0 = function apply_53(arg0){ + return $clinit_ElkGraphComponentsProcessor() , getTargetNode_0(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$3$Type', 1270); +function ElkGraphComponentsProcessor$lambda$4$Type(){ +} + +defineClass(1271, 1, $intern_39, ElkGraphComponentsProcessor$lambda$4$Type); +_.test_0 = function test_14(arg0){ + return lambda$4_1(castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$4$Type', 1271); +function ElkGraphComponentsProcessor$lambda$5$Type(portParent_0){ + this.portParent_0 = portParent_0; +} + +defineClass(1272, 1, $intern_39, ElkGraphComponentsProcessor$lambda$5$Type); +_.test_0 = function test_15(arg0){ + return lambda$5_0(this.portParent_0, castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$5$Type', 1272); +function ElkGraphComponentsProcessor$lambda$6$Type(portParent_0){ + this.portParent_0 = portParent_0; +} + +defineClass(1273, 1, {}, ElkGraphComponentsProcessor$lambda$6$Type); +_.apply_0 = function apply_54(arg0){ + return lambda$6(this.portParent_0, castTo(arg0, 79)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphComponentsProcessor$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphComponentsProcessor/lambda$6$Type', 1273); +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), 137); + $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), 118); + 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_4(inEntry$iterator); + edge = castTo(inEntry.getKey(), 79); + dir_0 = castTo(inEntry.getValue(), 395).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) { + adjustedPorts.array[adjustedPorts.array.length] = 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_4(outEntry$iterator); + edge = castTo(outEntry.getKey(), 79); + dir_0 = castTo(outEntry.getValue(), 395).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) { + adjustedPorts.array[adjustedPorts.array.length] = 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)?(cwMerged.array[cwMerged.array.length] = currentPoint , true):(cwMerged.array[cwMerged.array.length] = 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); + newComponent.array[newComponent.array.length] = 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), 137); + componentLabel = $importElkShape(this$static, label_0, true, 0, 0); + newComponent.array[newComponent.array.length] = 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(), 79); + componentEdge = castTo($get_10(this$static.elementMapping, edge), 266); + !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, 239) || instanceOf(element, 353) || instanceOf(element, 186))) { + 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); + newComponent.array[newComponent.array.length] = shape_0; + } + else { + outgoingExtension?(shape_0 = castTo($get_10(this$static.elementMapping, getSourceNode(edge)), 266)):(shape_0 = castTo($get_10(this$static.elementMapping, getTargetNode_0(edge)), 266)); + } + 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), 137); + componentLabel = $importElkShape(this$static, label_0, true, 0, 0); + newComponent.array[newComponent.array.length] = 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_7(component$iterator), 15); + subResult = new ArrayList; + result.array[result.array.length] = subResult; + edgeSet = new HashSet; + for (node$iterator = component.iterator_0(); node$iterator.hasNext_0();) { + node = castTo(node$iterator.next_1(), 33); + componentNode = $importElkShape(this$static, node, true, 0, 0); + subResult.array[subResult.array.length] = 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), 137); + componentLabel = $importElkShape(this$static, label_0, false, nodeX, nodeY); + subResult.array[subResult.array.length] = 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), 118); + componentPort = $importElkShape(this$static, port, false, nodeX, nodeY); + subResult.array[subResult.array.length] = 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), 137); + componentLabel = $importElkShape(this$static, label_0, false, portX, portY); + subResult.array[subResult.array.length] = 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(1240, 1, {}, ElkGraphTransformer); +_.componentSpacing = 0; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer', 1240); +function $accept_2(this$static, elem, poly){ + var applier, edgeSection, points, shape_0; + this$static.offset = poly.cp.offset; + if (instanceOf(elem, 351)) { + edgeSection = firstEdgeSection(castTo(elem, 79), 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), 74), applier); + } + else { + shape_0 = castTo(elem, 470); + 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(1241, 1, {}, ElkGraphTransformer$OffsetApplier); +_.accept_1 = function accept_55(elem, poly){ + $accept_2(this, castTo(elem, 160), castTo(poly, 266)); +} +; +var Lorg_eclipse_elk_alg_disco_transform_ElkGraphTransformer$OffsetApplier_2_classLit = createForClass('org.eclipse.elk.alg.disco.transform', 'ElkGraphTransformer/OffsetApplier', 1241); +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(1242, 1, $intern_19, ElkGraphTransformer$OffsetApplier$OffSetToChainApplier); +_.accept = function accept_56(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', 1242); +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_7(node$iterator), 144); + 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_7(edge$iterator), 281); + 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(), 281); + 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_7(node$iterator), 144); + $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_7(edge$iterator), 281); + for (bendpoint$iterator = new ArrayList$1(edge.bendpoints); bendpoint$iterator.i < bendpoint$iterator.this$01.array.length;) { + bendpoint = castTo($next_7(bendpoint$iterator), 559); + $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_7(label$iterator), 448); + $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), 231); + } + 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(), 231); + priority = 0; + minx = $intern_0; + miny = $intern_0; + maxx = $intern_42; + maxy = $intern_42; + for (node$iterator = new ArrayList$1(graph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + priority += castTo($getProperty(node, ($clinit_ForceOptions() , PRIORITY)), 19).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_4(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), 94)); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator1 = components.iterator_0(); graph$iterator1.hasNext_0();) { + graph = castTo(graph$iterator1.next_1(), 231); + size_0 = $sub_0($clone_0(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(), 231); + size_0 = $sub_0($clone_0(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, 25, 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_7(node$iterator0), 144); + 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_10(comp$iterator), 231); + id_0 = 0; + for (node$iterator = new ArrayList$1(comp.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + node.id_0 = id_0++; + } + } + } + return components; + } + return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit, 1), $intern_100, 231, 0, [graph])); +} + +function ComponentsProcessor(){ +} + +defineClass(753, 1, {}, ComponentsProcessor); +var Lorg_eclipse_elk_alg_force_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.force', 'ComponentsProcessor', 753); +function $compare_7(graph1, graph2){ + var prio, size1, size2; + prio = castTo($getProperty(graph2, ($clinit_ForceOptions() , PRIORITY)), 19).value_0 - castTo($getProperty(graph1, PRIORITY), 19).value_0; + if (prio == 0) { + size1 = $sub_0($clone_0(castTo($getProperty(graph1, ($clinit_InternalProperties_0() , BB_LOWRIGHT)), 8)), castTo($getProperty(graph1, BB_UPLEFT), 8)); + size2 = $sub_0($clone_0(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(1231, 1, $intern_88, ComponentsProcessor$1); +_.compare_1 = function compare_28(graph1, graph2){ + return $compare_7(castTo(graph1, 231), castTo(graph2, 231)); +} +; +_.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', 1231); +function $applyLayout_0(fgraph){ + var 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, v, v_0; + kgraph = castTo($getProperty(fgraph, ($clinit_InternalProperties_0() , ORIGIN)), 33); + minXPos = $intern_0; + minYPos = $intern_0; + maxXPos = $intern_42; + maxYPos = $intern_42; + for (node$iterator = new ArrayList$1(fgraph.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 144); + 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); + } + padding = castTo($getProperty_0(kgraph, ($clinit_ForceOptions() , PADDING_0)), 116); + 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_7(fnode$iterator), 144); + object = $getProperty(fnode, ORIGIN); + if (instanceOf(object, 239)) { + knode = castTo(object, 33); + nodePos = $add_19(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_7(fedge$iterator), 281); + kedge = castTo($getProperty(fedge, ORIGIN), 79); + kedgeSection = firstEdgeSection(kedge, true, true); + startLocation = (v = $sub_0($clone_0(fedge.target.position), fedge.source.position) , clipVector(v, fedge.source.size_0.x_0, fedge.source.size_0.y_0) , $add_19(v, fedge.source.position)); + $setStartLocation(kedgeSection, startLocation.x_0, startLocation.y_0); + endLocation = (v_0 = $sub_0($clone_0(fedge.source.position), fedge.target.position) , clipVector(v_0, fedge.target.size_0.x_0, fedge.target.size_0.y_0) , $add_19(v_0, fedge.target.position)); + $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_7(flabel$iterator), 448); + klabel = castTo($getProperty(flabel, ORIGIN), 137); + labelPos = $add_19(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); + resizeNode_1(kgraph, width_0, height, false, true); +} + +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), 33); + 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), 79); + !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), 82))) { + newEdge = new FEdge; + $copyProperties(newEdge, kedge); + $setProperty_0(newEdge, ($clinit_InternalProperties_0() , ORIGIN), kedge); + $setSource(newEdge, castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, knode)), 144)); + $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), 82))), 144)); + $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), 137); + 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), 33); + 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), 137).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)), 98); + portConstraints == ($clinit_PortConstraints() , UNDEFINED_4) && (portConstraints = FREE); + } +} + +function $layout(this$static, elkGraph, progressMonitor){ + var builder, comp, comp$iterator, components, fgraph; + $begin(progressMonitor, '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), 425)); + components = $split_1(this$static.componentsProcessor, fgraph); + for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 231); + $layout_0(this$static.forceModel, comp, $subTask(progressMonitor, 1 / components.size_1())); + } + fgraph = $recombine(components); + $applyLayout_0(fgraph); + $done_0(progressMonitor); +} + +function $setOptions(fgraph){ + var randomSeed, val; + randomSeed = castTo($getProperty(fgraph, ($clinit_ForceOptions() , RANDOM_SEED)), 19); + 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, 631) || (this$static.forceModel = new EadesModel); + break; + case 1: + instanceOf(this$static.forceModel, 632) || (this$static.forceModel = new FruchtermanReingoldModel); + } +} + +function ForceLayoutProvider(){ + this.componentsProcessor = new ComponentsProcessor; +} + +defineClass(740, 209, $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', 740); +function FParticle(){ + this.position = new KVector; + this.size_0 = new KVector; +} + +defineClass(356, 134, {3:1, 356:1, 94:1, 134:1}); +var Lorg_eclipse_elk_alg_force_graph_FParticle_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FParticle', 356); +function FBendpoint(edge){ + FParticle.call(this); + this.edge = edge; + $add_3(edge.bendpoints, this); +} + +defineClass(559, 356, {3:1, 559:1, 356:1, 94:1, 134: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_' + getHashCode_0(this); +} +; +var Lorg_eclipse_elk_alg_force_graph_FBendpoint_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FBendpoint', 559); +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_7(bendPoint$iterator), 559); + bendPoint.position.x_0 = pos.x_0; + bendPoint.position.y_0 = pos.y_0; + $add_19(pos, incr); + } + } +} + +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_' + getHashCode_0(this$static); +} + +function FEdge(){ + this.bendpoints = new ArrayList; + this.labels = new ArrayList; +} + +defineClass(281, 134, {3:1, 281:1, 94:1, 134: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', 281); +function $calcAdjacency(this$static){ + var edge, edge$iterator, n; + n = this$static.nodes.array.length; + this$static.adjacency = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 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_7(edge$iterator), 281); + this$static.adjacency[edge.source.id_0][edge.target.id_0] += castTo($getProperty(edge, ($clinit_ForceOptions() , PRIORITY)), 19).value_0; + } +} + +function $getConnection(this$static, particle1, particle2){ + var node1, node2; + if (instanceOf(particle1, 144) && !!particle2) { + node1 = castTo(particle1, 144); + node2 = particle2; + return this$static.adjacency[node1.id_0][node2.id_0] + this$static.adjacency[node2.id_0][node1.id_0]; + } + return 0; +} + +function FGraph(){ + this.nodes = new ArrayList; + this.edges = new ArrayList; + this.labels = new ArrayList; + this.bendPoints = new ArrayList; +} + +defineClass(231, 134, {3:1, 231:1, 94:1, 134:1}, FGraph); +var Lorg_eclipse_elk_alg_force_graph_FGraph_2_classLit = createForClass('org.eclipse.elk.alg.force.graph', 'FGraph', 231); +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_0(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_9(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(448, 356, {3:1, 448:1, 356:1, 94:1, 134: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', 448); +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.displacement = new KVector; + this.label_0 = label_0; +} + +defineClass(144, 356, {3:1, 144:1, 356:1, 94:1, 134: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', 144); +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)), 230); + $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_7(node$iterator), 144); + 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_7(edge$iterator), 281); + count = castTo($getProperty(edge, REPULSIVE_POWER_0), 19).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_7(edge$iterator), 281); + for (label$iterator = new ArrayList$1(edge.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 448); + $refreshPosition(label_0); + } + $distributeBendpoints(edge); + } +} + +function $layout_0(this$static, fgraph, monitor){ + var d, displacement, iterations, u, u$iterator, v, v$iterator, v$iterator0; + $begin(monitor, 'Component Layout', 1); + this$static.initialize(fgraph); + iterations = 0; + while (this$static.moreIterations(iterations)) { + for (v$iterator0 = new ArrayList$1(fgraph.nodes); v$iterator0.i < v$iterator0.this$01.array.length;) { + v = castTo($next_7(v$iterator0), 144); + 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), 356); + if (u != v) { + displacement = this$static.calcDisplacement(u, v); + !!displacement && $add_19(v.displacement, displacement); + } + } + } + for (v$iterator = new ArrayList$1(fgraph.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(v$iterator), 144); + d = v.displacement; + $bound(d, -this$static.dispBound, -this$static.dispBound, this$static.dispBound, this$static.dispBound); + $add_19(v.position, d); + $reset_5(d); + } + this$static.iterationDone(); + ++iterations; + } + $done_0(monitor); +} + +function avoidSamePosition(random, u, v){ + var pu, pv; + pu = u.position; + pv = v.position; + while (pu.x_0 - pv.x_0 == 0 && pu.y_0 - pv.y_0 == 0) { + 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(2002, 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', 2002); +function EadesModel(){ + this.maxIterations = castTo($getDefault(($clinit_ForceOptions() , ITERATIONS_0)), 19).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(631, 2002, {631:1}, EadesModel); +_.calcDisplacement = function calcDisplacement(forcer, forcee){ + var connection, d, displacement, force, length_0; + avoidSamePosition(this.random_0, forcer, forcee); + displacement = $sub_0($clone_0(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)), 19).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)), 19).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', 631); +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(632, 2002, {632: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_0(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)), 19).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), 19).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_7(v$iterator), 144); + 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', 632); +function $clinit_ForceMetaDataProvider(){ + $clinit_ForceMetaDataProvider = emptyMethod; + MODEL_DEFAULT = ($clinit_ForceModelStrategy() , FRUCHTERMAN_REINGOLD); + MODEL = new Property_1('org.eclipse.elk.force.model', MODEL_DEFAULT); + valueOf_4(1); + ITERATIONS = new Property_1('org.eclipse.elk.force.iterations', valueOf_4(300)); + valueOf_4(0); + REPULSIVE_POWER = new Property_1('org.eclipse.elk.force.repulsivePower', valueOf_4(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(848, 1, $intern_90, ForceMetaDataProvider); +_.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.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_4(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_4(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_12((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', 848); +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_25(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_36, 425, 0, [EADES, FRUCHTERMAN_REINGOLD]); +} + +defineClass(425, 22, {3:1, 35:1, 22:1, 425:1}, ForceModelStrategy); +var EADES, FRUCHTERMAN_REINGOLD; +var Lorg_eclipse_elk_alg_force_options_ForceModelStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.force.options', 'ForceModelStrategy', 425, Ljava_lang_Enum_2_classLit, values_31, valueOf_25); +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_36, 425, 0, [EADES, FRUCHTERMAN_REINGOLD]))); +} + +var $MAP_13; +function $clinit_ForceOptions(){ + $clinit_ForceOptions = emptyMethod; + PRIORITY = new Property_2(($clinit_CoreOptions() , PRIORITY_3), valueOf_4(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_4(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_7; + 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_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; +} + +function $apply_12(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_36, 237, 0, [EDGE_LABELS]))))); + $addOptionSupport(registry, 'org.eclipse.elk.force', 'org.eclipse.elk.priority', valueOf_4(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_4(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.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)); +} + +function ForceOptions(){ + $clinit_ForceOptions(); +} + +defineClass(987, 1, $intern_90, ForceOptions); +_.apply_4 = function apply_56(registry){ + $apply_12(registry); +} +; +var ASPECT_RATIO_0, EDGE_LABELS_INLINE, INTERACTIVE, ITERATIONS_0, MODEL_0, NODE_LABELS_PLACEMENT, NODE_SIZE_CONSTRAINTS, 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; +var Lorg_eclipse_elk_alg_force_options_ForceOptions_2_classLit = createForClass('org.eclipse.elk.alg.force.options', 'ForceOptions', 987); +function ForceOptions$ForceFactory(){ +} + +defineClass(988, 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', 988); +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_4($intern_0)); +} + +function StressMetaDataProvider(){ + $clinit_StressMetaDataProvider(); +} + +defineClass(849, 1, $intern_90, StressMetaDataProvider); +_.apply_4 = function apply_57(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_36, 175, 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_4($intern_0)), INT), Ljava_lang_Integer_2_classLit), of_1(PARENTS)))); + $apply_13((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', 849); +function $clinit_StressOptions(){ + $clinit_StressOptions = emptyMethod; + INTERACTIVE_0 = ($clinit_CoreOptions() , INTERACTIVE_7); + 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_13(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(991, 1, $intern_90, StressOptions); +_.apply_4 = function apply_58(registry){ + $apply_13(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', 991); +function StressOptions$StressFactory(){ +} + +defineClass(992, 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', 992); +function StressLayoutProvider(){ + this.componentsProcessor = new ComponentsProcessor; + this.stressMajorization = new StressMajorization; +} + +defineClass(1127, 209, $intern_96, StressLayoutProvider); +_.layout = function layout_1(layoutGraph, progressMonitor){ + var builder, components, fgraph, subGraph, subGraph$iterator; + $begin(progressMonitor, '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, $subTask(progressMonitor, 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(), 231); + 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); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider', 1127); +function StressLayoutProvider$lambda$0$Type(){ +} + +defineClass(1128, 1, $intern_19, StressLayoutProvider$lambda$0$Type); +_.accept = function accept_57(arg0){ + $refreshPosition(castTo(arg0, 448)); +} +; +var Lorg_eclipse_elk_alg_force_stress_StressLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.force.stress', 'StressLayoutProvider/lambda$0$Type', 1128); +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_7(v$iterator), 144); + 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], 144)); + for (j = i + 1; j < nodes.array.length; ++j) { + v = (checkCriticalElementIndex(j, nodes.array.length) , castTo(nodes.array[j], 144)); + 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, 25, 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_7(n$iterator), 144); + n.id_0 != source.id_0 && (dist[n.id_0] = $intern_0); + checkCriticalState_0($offer(nodes, n)); + } + while (nodes.heap.array.length != 0) { + u = castTo($poll_0(nodes), 144); + 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), 281); + 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)); + } + } + } +} + +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_59; + 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_7(u$iterator), 144); + 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)), 379); + this$static.iterationLimit = castTo($getProperty(this$static.graph_0, ITERATION_LIMIT_0), 19).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_7(edge$iterator), 281); + $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_65], [104, 25], 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_7(source$iterator), 144); + $dijkstra(this$static, source, this$static.apsp[source.id_0]); + } + this$static.w = initMultidimensionalArray(D_classLit, [$intern_16, $intern_65], [104, 25], 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_15(dist_0, n1_1, n2_2){ + return compare_4(dist_0[n1_1.id_0], dist_0[n2_2.id_0]); +} + +defineClass(989, 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', 989); +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_26(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_36, 379, 0, [XY, X, Y]); +} + +defineClass(379, 22, {3:1, 35:1, 22:1, 379: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', 379, Ljava_lang_Enum_2_classLit, values_32, valueOf_26); +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_36, 379, 0, [XY, X, Y]))); +} + +var $MAP_14; +function StressMajorization$lambda$0$Type(dist_0){ + this.dist_0 = dist_0; +} + +defineClass(990, 1, $intern_88, StressMajorization$lambda$0$Type); +_.compare_1 = function compare_29(arg0, arg1){ + return lambda$0_15(this.dist_0, castTo(arg0, 144), castTo(arg1, 144)); +} +; +_.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', 990); +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), 37); + for (node$iterator = new ArrayList$1(nextGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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)); + $begin(theMonitor, 'Layered layout', 2); + $process_1(this$static.compoundGraphPreprocessor, lgraph, $subTask(theMonitor, 1)); + $hierarchicalLayout(this$static, lgraph, $subTask(theMonitor, 1)); + $process_0(lgraph, $subTask(theMonitor, 1)); + $done_0(theMonitor); +} + +function $doLayout(this$static, lgraph, monitor){ + var comp, comp$iterator, compWork, components, theMonitor; + theMonitor = monitor; + !theMonitor && (theMonitor = $withMaxHierarchyLevels(new BasicProgressMonitor, 0)); + $begin(theMonitor, '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), 37), theMonitor); + } + else { + compWork = 1 / components.size_1(); + for (comp$iterator = components.iterator_0(); comp$iterator.hasNext_0();) { + comp = castTo(comp$iterator.next_1(), 37); + $layout_1(comp, $subTask(theMonitor, compWork)); + } + } + $combine(this$static.componentsProcessor, components, lgraph); + $resizeGraph(lgraph); + $done_0(theMonitor); +} + +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)), 314); + parentCms != ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP) && $forEach_0(graphs, new ElkLayered$lambda$0$Type); + rootType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), 292); + $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_6(g$iterator), 37); + $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)); + } + $begin(monitor, 'Recursive hierarchical layout', work); + slotIndex = 0; + rootProcessors = castTo(castTo($get_11(graphsAndAlgorithms, graphsAndAlgorithms.array.length - 1), 46).second, 47); + while (rootProcessors.hasNext_0()) { + for (graphAndAlgorithm$iterator = new ArrayList$1(graphsAndAlgorithms); graphAndAlgorithm$iterator.i < graphAndAlgorithm$iterator.this$01.array.length;) { + graphAndAlgorithm = castTo($next_7(graphAndAlgorithm$iterator), 46); + processors = castTo(graphAndAlgorithm.second, 47); + graph = castTo(graphAndAlgorithm.first, 37); + while (processors.hasNext_0()) { + processor = castTo(processors.next_1(), 51); + if (instanceOf(processor, 507)) { + if (!graph.parentNode) { + processor.process(graph, $subTask(monitor, 1)); + ++slotIndex; + break; + } + else { + break; + } + } + else { + processor.process(graph, $subTask(monitor, 1)); + ++slotIndex; + } + } + } + } + $done_0(monitor); +} + +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.taskName != null && !monitor.closed_0; + monitorWasAlreadyRunning || $begin(monitor, 'Component Layout', 1); + algorithm = castTo($getProperty(lgraph, ($clinit_InternalProperties_1() , PROCESSORS)), 15); + monitorProgress = 1 / algorithm.size_1(); + if (monitor.recordLogs) { + $log_2(monitor, '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(), 51); + gwtDoesntSupportPrintf = (slot < 10?'0':'') + slot++; + $log_2(monitor, ' 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(), 51); + processor.process(lgraph, $subTask(monitor, monitorProgress)); + ++slotIndex; + } + for (layer$iterator = new ArrayList$1(lgraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $addAll_2(lgraph.layerlessNodes, layer.nodes); + layer.nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + for (node$iterator = new ArrayList$1(lgraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, null); + } + lgraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + monitorWasAlreadyRunning || $done_0(monitor); +} + +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))) || $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_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61); + 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_16(child_0){ + var childCms; + childCms = castTo($getProperty(child_0, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_STRATEGY_0)), 314); + if (childCms == ($clinit_CrossingMinimizationStrategy() , LAYER_SWEEP)) { + throw toJs(new UnsupportedGraphException('The hierarchy aware processor ' + childCms + ' in child node ' + child_0 + ' is only allowed if the root node specifies the same hierarchical processor.')); + } +} + +function lambda$1_5(rootType_0, g_1){ + return $setProperty_0(g_1, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_GREEDY_SWITCH_HIERARCHICAL_TYPE_0), rootType_0); +} + +defineClass(1228, 1, {}, ElkLayered); +var Lorg_eclipse_elk_alg_layered_ElkLayered_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered', 1228); +function ElkLayered$lambda$0$Type(){ +} + +defineClass(1229, 1, $intern_19, ElkLayered$lambda$0$Type); +_.accept = function accept_58(arg0){ + lambda$0_16(castTo(arg0, 37)); +} +; +var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$0$Type', 1229); +function ElkLayered$lambda$1$Type(rootType_0){ + this.rootType_0 = rootType_0; +} + +defineClass(1230, 1, $intern_19, ElkLayered$lambda$1$Type); +_.accept = function accept_59(arg0){ + lambda$1_5(this.rootType_0, castTo(arg0, 37)); +} +; +var Lorg_eclipse_elk_alg_layered_ElkLayered$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'ElkLayered/lambda$1$Type', 1230); +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)), 98); + $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)), 334); + 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), 103).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), 292)):(greedySwitchType = castTo($getProperty(lgraph, CROSSING_MINIMIZATION_GREEDY_SWITCH_TYPE_0), 292)); + 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), 377).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), 103); + direction == ($clinit_Direction_0() , UNDEFINED_2) && $setProperty_0(lgraph, DIRECTION, getDirection_1(lgraph)); + randomSeed = castTo($getProperty(lgraph, RANDOM_SEED_0), 19); + 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), 246)); + $setPhase(this$static.algorithmAssembler, P2_LAYERING, castTo($getProperty(lgraph, LAYERING_STRATEGY_0), 246)); + $setPhase(this$static.algorithmAssembler, P3_NODE_ORDERING, castTo($getProperty(lgraph, CROSSING_MINIMIZATION_STRATEGY_0), 246)); + $setPhase(this$static.algorithmAssembler, P4_NODE_PLACEMENT, castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 246)); + $setPhase(this$static.algorithmAssembler, P5_EDGE_ROUTING, factoryFor(castTo($getProperty(lgraph, EDGE_ROUTING), 218))); + $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), 292); + 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), 19).value_0; + graphSize = lgraph.layerlessNodes.array.length; + return !interactiveCrossMin && greedySwitchType != ($clinit_GreedySwitchType() , OFF) && (activationThreshold == 0 || activationThreshold > graphSize); +} + +defineClass(1262, 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', 1262); +function GraphConfigurator$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(759, 1, $intern_19, GraphConfigurator$lambda$0$Type); +_.accept = function accept_60(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', 759); +function GraphConfigurator$lambda$1$Type(){ +} + +defineClass(760, 1, {}, GraphConfigurator$lambda$1$Type); +_.apply_0 = function apply_59(arg0){ + return $clinit_GraphConfigurator() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).nodes, 16)); +} +; +var Lorg_eclipse_elk_alg_layered_GraphConfigurator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'GraphConfigurator/lambda$1$Type', 760); +function GraphConfigurator$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(761, 1, $intern_19, GraphConfigurator$lambda$2$Type); +_.accept = function accept_61(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', 761); +function LayeredLayoutProvider(){ + this.elkLayered = new ElkLayered; +} + +defineClass(1126, 209, $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); + $applyLayout_2(new ElkGraphLayoutTransferrer, layeredGraph); +} +; +var Lorg_eclipse_elk_alg_layered_LayeredLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.layered', 'LayeredLayoutProvider', 1126); +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_27(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_36, 355, 0, [P1_CYCLE_BREAKING, P2_LAYERING, P3_NODE_ORDERING, P4_NODE_PLACEMENT, P5_EDGE_ROUTING]); +} + +defineClass(355, 22, {3:1, 35:1, 22:1, 355: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', 355, Ljava_lang_Enum_2_classLit, values_33, valueOf_27); +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_36, 355, 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_7(n$iterator), 81); + n.rect.x_0 = n.hitbox.x_0; + n.rect.y_0 = n.hitbox.y_0; + } + topLeft = new KVector_1($intern_59, $intern_59); + bottomRight = new KVector_1($intern_60, $intern_60); + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + 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(), 46); + cNode = castTo(placeholder.second, 81); + 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(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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.cGraph.cNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function $getOffset(this$static, c){ + var cOffset; + cOffset = $sub_0($clone_0(castTo($get_10(this$static.oldPosition, c), 8)), $getPosition(castTo($get_10(this$static.offsets, c), 460).rect)); + return cOffset; +} + +function $setLock(cNode, portSides){ + portSides.isEmpty() && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, ($clinit_PortSide() , SIDES_NORTH)) && $set_6(cNode.lock, true, true, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST) && $set_6(cNode.lock, false, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH) && $set_6(cNode.lock, true, true, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_WEST) && $set_6(cNode.lock, true, false, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST) && $set_6(cNode.lock, false, true, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH) && $set_6(cNode.lock, false, true, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_SOUTH_WEST) && $set_6(cNode.lock, true, false, false, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_WEST) && $set_6(cNode.lock, true, false, true, false); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_EAST_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_SOUTH_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_WEST) && $set_6(cNode.lock, true, true, true, true); + equals_Ljava_lang_Object__Z__devirtual$(portSides, SIDES_NORTH_EAST_SOUTH_WEST) && $set_6(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_7(comp$iterator), 840); + group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 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_7(rect$iterator), 110); + 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_7(ee$iterator), 594); + 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, 81, 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(1650, 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', 1650); +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(1651, 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', 1651); +defineClass(81, 1, {81:1}); +_.id_0 = 0; +_.reposition = true; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CNode', 81); +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(460, 81, {460:1, 81: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', 460); +function $clinit_OneDimensionalComponentsCompaction(){ + $clinit_OneDimensionalComponentsCompaction = emptyMethod; + LEFT_RIGHT = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [($clinit_Direction_0() , LEFT_6), RIGHT_6])); + UP_DOWN = newHashSet_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 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_7(p$iterator), 46); + $add_3(this$static.compactionGraph.cNodes, castTo(p.second, 81)); + $addCNode_0(castTo(p.first, 189), castTo(p.second, 81)); + } +} + +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(), 103); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $add_3(this$static.compactionGraph.cNodes, castTo(pair.second, 81)); + $add_3(this$static.compactionGraph.cGroups, castTo(pair.second, 81).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_7(g$iterator0), 189); + 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_7(g$iterator1), 189); + 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_7(g$iterator2), 189); + 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_7(g$iterator), 189); + 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_4(entry$iterator); + $add_3(allNodes, castTo(castTo(entry.getValue(), 46).second, 81)); + $isHorizontal(castTo(entry.getKey(), 594).getDirection())?$add_3(this$static.horizontalExternalExtensions, castTo(entry.getValue(), 46)):$add_3(this$static.verticalExternalExtensions, castTo(entry.getValue(), 46)); + } + $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_59, $intern_59); + this$static.bottomRight = new KVector_1($intern_60, $intern_60); + for (cNode$iterator = new ArrayList$1(allNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 81); + 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_41) && 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(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_7(p$iterator), 46); + $remove_12(this$static.compactionGraph.cNodes, p.second); + $removeCNode(castTo(p.first, 189), castTo(p.second, 81)); + } +} + +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(), 103); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $remove_12(this$static.compactionGraph.cNodes, pair.second); + $remove_12(this$static.compactionGraph.cGroups, castTo(pair.second, 81).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_4(entry$iterator); + ee = castTo(entry.getKey(), 594); + 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(), 46).second, 81); + group = castTo(castTo(entry.getValue(), 46).first, 189); + 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(), 103); + for (pair$iterator = castTo($get(this$static.transformer.externalPlaceholder, d), 21).iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + cNode = castTo(pair.second, 81); + parentComponentGroup = castTo(pair.first, 189); + 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_17(pair_0){ + $clinit_OneDimensionalComponentsCompaction(); + return $clinit_Boolean() , castTo(pair_0.first, 81).cGroup.outDegree != 0?true:false; +} + +function lambda$1_6(pair_0){ + $clinit_OneDimensionalComponentsCompaction(); + return $clinit_Boolean() , $get_19(castTo(pair_0.first, 81).lock, castTo(pair_0.second, 103)) || castTo(pair_0.first, 81).cGroup.outDegree != 0 && $get_19(castTo(pair_0.first, 81).lock, castTo(pair_0.second, 103))?true:false; +} + +defineClass(1622, 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', 1622); +function OneDimensionalComponentsCompaction$lambda$0$Type(){ +} + +defineClass(1623, 1, {}, OneDimensionalComponentsCompaction$lambda$0$Type); +_.apply_0 = function apply_60(arg0){ + return lambda$0_17(castTo(arg0, 46)); +} +; +_.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', 1623); +function OneDimensionalComponentsCompaction$lambda$1$Type(){ +} + +defineClass(1624, 1, {}, OneDimensionalComponentsCompaction$lambda$1$Type); +_.apply_0 = function apply_61(arg0){ + return lambda$1_6(castTo(arg0, 46)); +} +; +_.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', 1624); +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(1653, 1, {}, CGraph_0); +var Lorg_eclipse_elk_alg_layered_compaction_oned_CGraph_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGraph', 1653); +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(189, 1, {189:1}, CGroup_0); +_.delta = 0; +_.deltaNormalized = 0; +_.outDegree = 0; +_.reposition = true; +_.startPos = $intern_60; +var Lorg_eclipse_elk_alg_layered_compaction_oned_CGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned', 'CGroup', 189); +function ISpacingsHandler$1_0(){ +} + +defineClass(1652, 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', 1652); +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_7(cGroup$iterator), 189); + 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_7(cNode$iterator), 81); + 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_7(cNode$iterator), 81); + 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_7(group$iterator0), 189); + 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_7(group$iterator), 189); + for (cNode$iterator = group.cNodes.map_0.keySet_0().iterator_0(); cNode$iterator.hasNext_0();) { + cNode = castTo(cNode$iterator.next_1(), 81); + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 81); + 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_7(group$iterator), 189); + group.reference = null; + for (n$iterator0 = group.cNodes.map_0.keySet_0().iterator_0(); n$iterator0.hasNext_0();) { + n = castTo(n$iterator0.next_1(), 81); + $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(), 81); + 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_7(g$iterator), 189); + 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_7(n$iterator), 81); + n.startPos = $intern_60; + for (incN$iterator = n.constraints.iterator_0(); incN$iterator.hasNext_0();) { + incN = castTo(incN$iterator.next_1(), 81); + ++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_7(node$iterator), 81); + 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_7(cNode$iterator), 81); + 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_7(cNode$iterator0), 81); + $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_7(cNode$iterator1), 81); + cNode.startPos = $intern_60; + for (inc$iterator = cNode.constraints.iterator_0(); inc$iterator.hasNext_0();) { + inc = castTo(inc$iterator.next_1(), 81); + 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_7(cNode$iterator), 81); + 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_7(cNode$iterator), 81); + 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_7(n$iterator), 81); + if (!n.cGroup) { + group = new CGroup_0(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, 1), $intern_2, 81, 0, [n])); + $add_3(cGraph.cGroups, group); + } + } +} + +defineClass(1654, 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', 1654); +function OneDimensionalCompactor$lambda$0$Type_0(){ +} + +defineClass(1655, 1, {}, OneDimensionalCompactor$lambda$0$Type_0); +_.apply_0 = function apply_62(arg0){ + return $clinit_OneDimensionalCompactor_0() , $clinit_Boolean() , castTo(castTo(arg0, 46).first, 81).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', 1655); +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_6(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_6(this, false, false, false, false); +} + +defineClass(822, 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', 822); +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_59; + for (cNode$iterator0 = new ArrayList$1(compactor.cGraph.cNodes); cNode$iterator0.i < cNode$iterator0.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator0), 81); + 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_7(group$iterator), 189); + 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)), 189); + 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(), 81); + 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(), 81); + for (incNode$iterator = node.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 81); + $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_7(cNode$iterator), 81); + 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_7(n$iterator), 81); + 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_7(n$iterator), 81); + 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_7(n$iterator), 81); + $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, 368, 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_18(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(1824, 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', 1824); +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), 81) , right = castTo($higher(this$static.intervals, p.node), 81) , !!right && (this$static.cand[right.id_0] = p.node) , undefined):(left = castTo($lower(this$static.intervals, p.node), 81) , !!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), 81) , !!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; + $clear_8(this$static.intervals.map_0); + this$static.cand = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_compaction_oned_CNode_2_classLit, $intern_2, 81, 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_7(n$iterator), 81); + 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), 62)); +} + +function lambda$0_19(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(1825, 1, {368:1}, ScanlineConstraintCalculator$ConstraintsScanlineHandler_0); +_.handle = function handle_1(p){ + $handle_1(this, castTo(p, 466)); +} +; +var Lorg_eclipse_elk_alg_layered_compaction_oned_algs_ScanlineConstraintCalculator$ConstraintsScanlineHandler_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.oned.algs', 'ScanlineConstraintCalculator/ConstraintsScanlineHandler', 1825); +function ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0(){ +} + +defineClass(1826, 1, $intern_88, ScanlineConstraintCalculator$ConstraintsScanlineHandler$lambda$0$Type_0); +_.compare_1 = function compare_30(arg0, arg1){ + return lambda$0_19(castTo(arg0, 81), castTo(arg1, 81)); +} +; +_.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', 1826); +function ScanlineConstraintCalculator$Timestamp_0(node, low){ + this.node = node; + this.low = low; +} + +defineClass(466, 1, {466: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', 466); +function ScanlineConstraintCalculator$lambda$0$Type_0(){ +} + +defineClass(1827, 1, $intern_88, ScanlineConstraintCalculator$lambda$0$Type_0); +_.compare_1 = function compare_31(arg0, arg1){ + return lambda$0_18(castTo(arg0, 466), castTo(arg1, 466)); +} +; +_.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', 1827); +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(140, 1, {140: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, 140); + return equals_57(this.x_0, p2.x_0) && equals_57(this.y_0, p2.y_0); +} +; +_.hashCode_1 = function hashCode_60(){ + return hashCode_46(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', 140); +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_28(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_36, 406, 0, [Q1, Q4, Q2, Q3]); +} + +defineClass(406, 22, {3:1, 35:1, 22:1, 406: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', 406, Ljava_lang_Enum_2_classLit, values_34, valueOf_28); +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_36, 406, 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, 368, 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++), 140)); + 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++), 140)); + 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_20(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_7(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_0(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_7(p$iterator), 140); + (!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, 368, 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, 368, 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, 368, 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, 368, 0, [q3]))); + addConcaveCorners(q1.points, Q1); + addConcaveCorners(q2.points, Q2); + addConcaveCorners(q3.points, Q3); + addConcaveCorners(q4.points, Q4); + rch.hull.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $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(1641, 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', 1641); +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_59; + break; + case 3: + case 1: + this.compare = DBL_CMP; + this.maximalY = $intern_60; + } +} + +function lambda$0_21(d1_0, d2_1){ + $clinit_RectilinearConvexHull$MaximalElementsEventHandler(); + return compare_4((checkCriticalNotNull(d1_0) , d1_0), (checkCriticalNotNull(d2_1) , d2_1)); +} + +defineClass(574, 1, {368:1}, RectilinearConvexHull$MaximalElementsEventHandler); +_.handle = function handle_2(p){ + $handle_2(this, castTo(p, 140)); +} +; +_.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', 574); +function RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type(){ +} + +defineClass(1643, 1, $intern_88, RectilinearConvexHull$MaximalElementsEventHandler$lambda$0$Type); +_.compare_1 = function compare_32(arg0, arg1){ + return lambda$0_21(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', 1643); +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(1642, 1, {368:1}, RectilinearConvexHull$RectangleEventHandler); +_.handle = function handle_3(p){ + $handle_3(this, castTo(p, 140)); +} +; +_.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', 1642); +function RectilinearConvexHull$lambda$0$Type(){ +} + +defineClass(1644, 1, $intern_88, RectilinearConvexHull$lambda$0$Type); +_.compare_1 = function compare_33(arg0, arg1){ + return lambda$0_20(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.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', 1644); +function RectilinearConvexHull$lambda$1$Type(){ +} + +defineClass(1645, 1, $intern_88, RectilinearConvexHull$lambda$1$Type); +_.compare_1 = function compare_34(arg0, arg1){ + return lambda$1_7(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.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', 1645); +function RectilinearConvexHull$lambda$2$Type(){ +} + +defineClass(1646, 1, $intern_88, RectilinearConvexHull$lambda$2$Type); +_.compare_1 = function compare_35(arg0, arg1){ + return lambda$2_2(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.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', 1646); +function RectilinearConvexHull$lambda$3$Type(){ +} + +defineClass(1647, 1, $intern_88, RectilinearConvexHull$lambda$3$Type); +_.compare_1 = function compare_36(arg0, arg1){ + return lambda$3_0(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.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', 1647); +function RectilinearConvexHull$lambda$4$Type(){ +} + +defineClass(1648, 1, $intern_88, RectilinearConvexHull$lambda$4$Type); +_.compare_1 = function compare_37(arg0, arg1){ + return lambda$4_2(castTo(arg0, 140), castTo(arg1, 140)); +} +; +_.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', 1648); +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_7(p$iterator); + for (h$iterator = new ArrayList$1(this$static.eventHandlers); h$iterator.i < h$iterator.this$01.array.length;) { + h = castTo($next_7(h$iterator), 368); + 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(1649, 1, {}, Scanline_0); +var Lorg_eclipse_elk_alg_layered_compaction_recthull_Scanline_2_classLit = createForClass('org.eclipse.elk.alg.layered.compaction.recthull', 'Scanline', 1649); +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_7(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_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + !!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_7(label$iterator), 70); + $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(), 37); + $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_7(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_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + !!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_7(label$iterator), 70); + $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(), 37); + $offsetGraph(graph, offsetx, offsety); + } +} + +defineClass(2004, 1, {}); +var Lorg_eclipse_elk_alg_layered_components_AbstractGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'AbstractGraphPlacer', 2004); +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_6(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_6(this); + this.add_4(component); +} + +defineClass(325, 1, {325: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', 325); +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_65, 25, 15, [sizeNW.x_0, sizeW.x_0, sizeSW.x_0, sizeWNS.x_0])); + colMidWidth = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 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_65, 25, 15, [sizeNE.x_0, sizeE.x_0, sizeSE.x_0, sizeENS.x_0])); + rowTopHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 15, [sizeNW.y_0, sizeN.y_0, sizeNE.y_0, sizeNWE.y_0])); + rowMidHeight = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 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_65, 25, 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_65, 25, 15, [colLeftWidth + colMidWidth + colNsWidth + colRightWidth, sizeWE.x_0, sizeNWE.x_0, sizeSWE.x_0])); + componentSize.y_0 = maxd(stampJavaTypeInfo(getClassLiteralForArray(D_classLit, 1), $intern_65, 25, 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(), 37); + $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(), 37); + 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(), 37), ($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(), 37); + 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(), 37); + $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(765, 2004, {}, 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_7(group$iterator), 325); + 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + if (components.isEmpty()) { + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + firstComponent = castTo(components.get_0(0), 37); + $copyProperties(target, firstComponent); + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + 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_7(group$iterator0), 325); + 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(), 37); + $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(), 37); + $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_7(group$iterator), 325); + $moveGraphs(target, $values(group.components)); + } +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentGroupGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupGraphPlacer', 765); +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), 570); + if ($add_14(group, component)) { + return; + } + } + $add_3(this$static.componentGroups, new ModelOrderComponentGroup(component)); +} + +function ComponentGroupModelOrderGraphPlacer(){ + ComponentGroupGraphPlacer.call(this); +} + +defineClass(1292, 765, {}, 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + if (components.isEmpty()) { + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + firstComponent = castTo(components.get_0(0), 37); + $copyProperties(target, firstComponent); + for (component$iterator = components.iterator_0(); component$iterator.hasNext_0();) { + component = castTo(component$iterator.next_1(), 37); + $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_7(group$iterator0), 325); + if ($isHorizontal(castTo($getProperty(target, ($clinit_CoreOptions() , DIRECTION_0)), 103))) { + 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_0), 103))) { + 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, 570), componentSpacing); + $offsetGraphs($values(group.components), offset.x_0, offset.y_0); + if ($isHorizontal(castTo($getProperty(target, DIRECTION_0), 103))) { + 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_0), 103))) { + 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(), 37); + $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(), 37); + $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_7(group$iterator), 325); + $moveGraphs(target, $values(group.components)); + } +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentGroupModelOrderGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentGroupModelOrderGraphPlacer', 1292); +function $clinit_ComponentOrderingStrategy(){ + $clinit_ComponentOrderingStrategy = emptyMethod; + NONE = new ComponentOrderingStrategy('NONE', 0); + INSIDE_PORT_SIDE_GROUPS = new ComponentOrderingStrategy('INSIDE_PORT_SIDE_GROUPS', 1); + FORCE_MODEL_ORDER = new ComponentOrderingStrategy('FORCE_MODEL_ORDER', 2); +} + +function ComponentOrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_29(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_36, 424, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, FORCE_MODEL_ORDER]); +} + +defineClass(424, 22, {3:1, 35:1, 22:1, 424:1}, ComponentOrderingStrategy); +var FORCE_MODEL_ORDER, INSIDE_PORT_SIDE_GROUPS, NONE; +var Lorg_eclipse_elk_alg_layered_components_ComponentOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.components', 'ComponentOrderingStrategy', 424, Ljava_lang_Enum_2_classLit, values_35, valueOf_29); +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_36, 424, 0, [NONE, INSIDE_PORT_SIDE_GROUPS, FORCE_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_59, $intern_59); + this$static.graphBottomRight = new KVector_1($intern_60, $intern_60); + for (graph$iterator0 = graphs.iterator_0(); graph$iterator0.hasNext_0();) { + graph = castTo(graph$iterator0.next_1(), 37); + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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(), 37); + 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_7(cc$iterator0), 840); + 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_7(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)), 61)); + $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_7(cc$iterator), 840); + for (e$iterator = new ArrayList$1($getExternalEdges(cc)); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + 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_10(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(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_7(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), 17); + 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_10(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)), 61).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), 11); + $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_0(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_7(segment$iterator), 46); + 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_60; + 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_7(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), 17); + 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(), 61); + 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)); + extensions.array[extensions.array.length] = iuee; + } + } + $addAll_2(component.externalExtensions, extensions); + component.rectilinearConvexHull = $splitIntoRectangles(of_5(hullPoints)); + return component; +} + +function ComponentsCompactor(){ +} + +defineClass(650, 1, {}, ComponentsCompactor); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor', 650); +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 this$static.array[this$static.array.length] = 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_2(this); + this.topLeft = new KVector_1($intern_59, $intern_59); + this.bottomRight = new KVector_1($intern_60, $intern_60); +} + +defineClass(1467, 12, $intern_71, ComponentsCompactor$Hullpoints); +_.add_2 = function add_44(e){ + return $add_12(this, castTo(e, 140)); +} +; +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Hullpoints_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Hullpoints', 1467); +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_7(ee$iterator), 594); + $addAll_2(edges, castTo(ee.getRepresentative(), 14)); + } + 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_7(n$iterator), 10); + this.containsRegularNodes = this.containsRegularNodes | n.type_0 == ($clinit_LNode$NodeType() , NORMAL); + } +} + +defineClass(1464, 1, {840: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', 1464); +function ComponentsCompactor$InternalConnectedComponents(){ + this.components = new ArrayList; +} + +defineClass(1463, 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', 1463); +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)), 61); + } + 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)), 61); + } + else { + throw toJs(new IllegalArgumentException_0('Edge ' + edge + ' is not an external edge.')); + } +} + +defineClass(1466, 1, {594: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', 1466); +function ComponentsCompactor$InternalUnionExternalExtension(){ + this.edges = new HashSet; +} + +defineClass(1465, 1, {594: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', 1465); +function ComponentsCompactor$OuterSegments(){ + this.min_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); + this.max_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); + this.extent = initUnidimensionalArray(D_classLit, $intern_65, 25, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]).length, 15, 1); + fill_1(this.min_0, $intern_59); + fill_1(this.max_0, $intern_60); + fill_1(this.extent, $intern_60); +} + +defineClass(1469, 1, {}, ComponentsCompactor$OuterSegments); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$OuterSegments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/OuterSegments', 1469); +function ComponentsCompactor$Segments(){ + this.innerSegments = new ArrayList; +} + +defineClass(1468, 1, {}, ComponentsCompactor$Segments); +var Lorg_eclipse_elk_alg_layered_components_ComponentsCompactor$Segments_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsCompactor/Segments', 1468); +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)), 61)); + for (port1$iterator = new ArrayList$1(node.ports); port1$iterator.i < port1$iterator.this$01.array.length;) { + port1 = castTo($next_7(port1$iterator), 11); + 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), 11); + $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), 98); + 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_7(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_7(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() , FORCE_MODEL_ORDER))?(this$static.graphPlacer = this$static.componentGroupModelOrderGraphPlacer):(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, 37, 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.simpleRowGraphPlacer = new SimpleRowGraphPlacer; +} + +function lambda$0_22(g1_0, g2_1){ + var g1Order, g2Order; + g1Order = getMinimalModelOrder(g1_0); + g2Order = getMinimalModelOrder(g2_1); + return g1Order < g2Order?-1:g1Order > g2Order?1:0; +} + +defineClass(1263, 1, {}, ComponentsProcessor_0); +var Lorg_eclipse_elk_alg_layered_components_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'ComponentsProcessor', 1263); +function ComponentsProcessor$lambda$0$Type(){ +} + +defineClass(1264, 1, $intern_88, ComponentsProcessor$lambda$0$Type); +_.compare_1 = function compare_38(arg0, arg1){ + return lambda$0_22(castTo(arg0, 37), castTo(arg1, 37)); +} +; +_.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', 1264); +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_6(this); + this.componentOrder = new LinkedList; + $add_14(this, component); + $add_7(this.componentOrder, component); +} + +defineClass(570, 325, {325:1, 570: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', 570); +function SimpleRowGraphPlacer(){ +} + +defineClass(1290, 2004, {}, SimpleRowGraphPlacer); +_.combine = function combine_1(components, target){ + var broadestRow, compactor, componentSpacing, firstComponent, graph, graph$iterator, graph$iterator0, graph$iterator1, h, h$iterator, highestBox, maxRowWidth, node, node$iterator, offset, priority, size_0, source, totalArea, xpos, ypos; + if (components.size_1() == 1) { + source = castTo(components.get_0(0), 37); + if (source != target) { + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + target.size_0.x_0 = 0; + target.size_0.y_0 = 0; + return; + } + if (maskUndefined($getProperty(target, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_COMPONENTS_0))) === maskUndefined(($clinit_ComponentOrderingStrategy() , NONE))) { + for (graph$iterator0 = components.iterator_0(); graph$iterator0.hasNext_0();) { + graph = castTo(graph$iterator0.next_1(), 37); + priority = 0; + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + priority += castTo($getProperty(node, PRIORITY_0), 19).value_0; + } + graph.id_0 = priority; + } + $clinit_Collections(); + components.sort_0(new SimpleRowGraphPlacer$1); + } + firstComponent = castTo(components.get_0(0), 37); + target.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $copyProperties(target, firstComponent); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator1 = components.iterator_0(); graph$iterator1.hasNext_0();) { + graph = castTo(graph$iterator1.next_1(), 37); + 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, ASPECT_RATIO_1)))); + componentSpacing = $doubleValue(castToDouble($getProperty(target, SPACING_COMPONENT_COMPONENT_0))); + xpos = 0; + ypos = 0; + highestBox = 0; + broadestRow = componentSpacing; + for (graph$iterator = components.iterator_0(); graph$iterator.hasNext_0();) { + graph = castTo(graph$iterator.next_1(), 37); + 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; + 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(), 37); + $add_19($reset_5(h.offset), compactor.yetAnotherOffset); + } + $add_19($reset_5(target.size_0), compactor.compactedGraphSize); + } + $moveGraphs(target, components); +} +; +var Lorg_eclipse_elk_alg_layered_components_SimpleRowGraphPlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.components', 'SimpleRowGraphPlacer', 1290); +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(1291, 1, $intern_88, SimpleRowGraphPlacer$1); +_.compare_1 = function compare_39(graph1, graph2){ + return $compare_8(castTo(graph1, 37), castTo(graph2, 37)); +} +; +_.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', 1291); +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; + $begin(monitor, 'Compound graph postprocessor', 1); + addUnnecessaryBendpoints = $booleanValue(castToBoolean($getProperty(graph, ($clinit_LayeredOptions() , UNNECESSARY_BENDPOINTS_0)))); + crossHierarchyMap = castTo($getProperty(graph, ($clinit_InternalProperties_1() , CROSS_HIERARCHY_MAP)), 224); + dummyEdges = new HashSet; + for (origEdge$iterator = crossHierarchyMap.keySet_0().iterator_0(); origEdge$iterator.hasNext_0();) { + origEdge = castTo(origEdge$iterator.next_1(), 17); + 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], 243))); + targetPort = $getActualTarget(castTo($get_11(crossHierarchyEdges, crossHierarchyEdges.array.length - 1), 243)); + 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_7(chEdge$iterator), 243); + 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(), 17); + $setSource_0(dummyEdge, null); + $setTarget_0(dummyEdge, null); + } + $done_0(monitor); +} + +function clearJunctionPoints(origEdge, crossHierarchyEdges){ + var junctionPoints; + junctionPoints = castTo($getProperty(origEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + 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)), 74); + 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++), 70)); + 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(1261, 1, $intern_89, CompoundGraphPostprocessor$1); +_.apply_1 = function apply_63(chEdge){ + var jps; + return jps = castTo($getProperty(castTo(chEdge, 243).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74) , !!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, 243).newEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74) , !!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', 1261); +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_7(outgoingEdge$iterator), 17); + 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_7(incomingEdge$iterator), 17); + 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_7(externalPort2$iterator), 442); + 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)), 98), 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), 98), 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)), 98))?$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_7(crossHierarchyEdge$iterator), 243); + 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), 98)) && (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), 11)); + $setTarget_0(dummyEdge, oppositePort); + } + else { + $setSource_0(dummyEdge, oppositePort); + $setTarget_0(dummyEdge, castTo($get_11(dummyNode.ports, 0), 11)); + } + externalPort = new CompoundGraphPreprocessor$ExternalPort(origEdge, dummyEdge, dummyNode, castTo($getProperty(dummyNode, ($clinit_InternalProperties_1() , ORIGIN_0)), 11), 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(), 17); + 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++), 70)); + targetDummyEdgeIndex = -1; + switch (castTo($getProperty(currLabel, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272).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], 243)); + $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){ + $begin(monitor, '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); + $done_0(monitor); +} + +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_7(externalPort$iterator0), 442); + 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_7(outEdge$iterator), 17); + 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 && (createdExternalPorts.array[createdExternalPorts.array.length] = 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_7(inEdge$iterator), 17); + 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 && (createdExternalPorts.array[createdExternalPorts.array.length] = 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_7(externalPort$iterator), 442); + $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); + externalPort.exported && (exportedExternalPorts.array[exportedExternalPorts.array.length] = 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_7(lport$iterator), 11); + 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), 103), 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), 103), 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), 11)); + $setTarget_0(dummyEdge, castTo($get_11(targetExtPortDummy.ports, 0), 11)); + $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_7(childNode$iterator), 10); + for (childPort$iterator = new ArrayList$1(childNode.ports); childPort$iterator.i < childPort$iterator.this$01.array.length;) { + childPort = castTo($next_7(childPort$iterator), 11); + 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 && (createdExternalPorts.array[createdExternalPorts.array.length] = 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 && (createdExternalPorts.array[createdExternalPorts.array.length] = 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_7(externalPort$iterator), 442); + $indexOf_3(graph.layerlessNodes, externalPort.dummyNode, 0) != -1 || $add_3(graph.layerlessNodes, externalPort.dummyNode); + externalPort.exported && (exportedExternalPorts.array[exportedExternalPorts.array.length] = 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_4(e$iterator); + externalPort = castTo(e.getKey(), 11); + 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), 61)); + $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_7(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)), 98); + insidePortLabels = castTo($getProperty(node, PORT_LABELS_PLACEMENT_1), 174).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_7(port$iterator), 11); + 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), 103), 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), 11); + for (extPortLabel$iterator = new ArrayList$1(port.labels); extPortLabel$iterator.i < extPortLabel$iterator.this$01.array.length;) { + extPortLabel = castTo($next_7(extPortLabel$iterator), 70); + 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(1260, 1, $intern_105, CompoundGraphPreprocessor); +_.process = function process_0(graph, monitor){ + $process_1(this, castTo(graph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_compound_CompoundGraphPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.compound', 'CompoundGraphPreprocessor', 1260); +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(442, 1, {442: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', 442); +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)), 11); + } + 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)), 11); + } + return this$static.newEdge.target; +} + +function CrossHierarchyEdge(newEdge, graph, type_0){ + this.newEdge = newEdge; + this.graph_0 = graph; + this.type_0 = type_0; +} + +defineClass(243, 1, {243: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', 243); +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(763, 1, $intern_88, CrossHierarchyEdgeComparator); +_.compare_1 = function compare_40(edge1, edge2){ + return $compare_9(this, castTo(edge1, 243), castTo(edge2, 243)); +} +; +_.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', 763); +function $getDesignation(this$static){ + var identifier; + identifier = getOriginIdentifier(this$static); + if (identifier) { + return identifier; + } + return null; +} + +defineClass(299, 134, {3:1, 299:1, 94:1, 134:1}); +_.id_0 = 0; +var Lorg_eclipse_elk_alg_layered_graph_LGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphElement', 299); +function $getDesignation_0(this$static){ + if (this$static.labels.array.length != 0 && !!castTo($get_11(this$static.labels, 0), 70).text_0) { + return castTo($get_11(this$static.labels, 0), 70).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_7(label$iterator), 70); + labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272); + 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(17, 299, {3:1, 17:1, 299:1, 94:1, 134: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', 17); +function $toNodeArray(this$static){ + var layer, layerIndex, layerIter, lgraphArray; + lgraphArray = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_16, 193, 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++), 29)); + 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(37, 299, {3:1, 20:1, 37:1, 299:1, 94:1, 134: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', 37); +function $clinit_LGraphAdapters(){ + $clinit_LGraphAdapters = emptyMethod; + DEFAULT_PORTLIST_SORTER = new LGraphAdapters$PortComparator; +} + +var DEFAULT_PORTLIST_SORTER; +defineClass(657, 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', 657); +function LGraphAdapters$LEdgeAdapter(edge){ + this.element = edge; +} + +defineClass(577, 1, {838: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_7(l$iterator), 70); + $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', 577); +function LGraphAdapters$LGraphAdapter(element, transparentNorthSouthEdges, transparentCommentNodes, nodeFilter){ + this.element = element; + this.transparentNorthSouthEdges = transparentNorthSouthEdges; + this.transparentCommentNodes = transparentCommentNodes; + this.nodeFilter = nodeFilter; +} + +defineClass(656, 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_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(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', 656); +function LGraphAdapters$LLabelAdapter(element){ + this.element = element; +} + +defineClass(576, 657, {181:1}, LGraphAdapters$LLabelAdapter); +var Lorg_eclipse_elk_alg_layered_graph_LGraphAdapters$LLabelAdapter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LGraphAdapters/LLabelAdapter', 576); +function $sortPortList(this$static, comparator){ + $isOrderFixed(castTo($getProperty(castTo(this$static.element, 10), ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) && ($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(575, 657, {680: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_7(l$iterator), 70); + $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_7(p$iterator), 11); + $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', 575); +function LGraphAdapters$LPortAdapter(element, transparentNorthSouthEdges){ + this.element = element; + this.transparentNorthSouthEdges = transparentNorthSouthEdges; +} + +defineClass(1721, 657, {837:1}, LGraphAdapters$LPortAdapter); +_.getIncomingEdges = function getIncomingEdges_0(){ + var e, e$iterator, e$iterator0, portDummy; + if (this.transparentNorthSouthEdges && castTo(this.element, 11).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, 11).incomingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { + e = castTo($next_7(e$iterator0), 17); + $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + if (this.transparentNorthSouthEdges) { + portDummy = castTo($getProperty(castTo(this.element, 11), ($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), 17); + $add_3(this.incomingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + } + } + } + return this.incomingEdgeAdapters; +} +; +_.getLabels = function getLabels_1(){ + var l, l$iterator; + if (!this.labelAdapters) { + this.labelAdapters = newArrayListWithCapacity(castTo(this.element, 11).labels.array.length); + for (l$iterator = new ArrayList$1(castTo(this.element, 11).labels); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 70); + $add_3(this.labelAdapters, new LGraphAdapters$LLabelAdapter(l)); + } + } + return this.labelAdapters; +} +; +_.getOutgoingEdges = function getOutgoingEdges_0(){ + var e, e$iterator, e$iterator0, portDummy; + if (this.transparentNorthSouthEdges && castTo(this.element, 11).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, 11).outgoingEdges); e$iterator0.i < e$iterator0.this$01.array.length;) { + e = castTo($next_7(e$iterator0), 17); + $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + if (this.transparentNorthSouthEdges) { + portDummy = castTo($getProperty(castTo(this.element, 11), ($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), 17); + $add_3(this.outgoingEdgeAdapters, new LGraphAdapters$LEdgeAdapter(e)); + } + } + } + } + return this.outgoingEdgeAdapters; +} +; +_.getSide = function getSide(){ + return castTo(this.element, 11).side; +} +; +_.hasCompoundConnections = function hasCompoundConnections(){ + return $booleanValue(castToBoolean($getProperty(castTo(this.element, 11), ($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', 1721); +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)), 19); + index2 = castTo($getProperty(port2, PORT_INDEX), 19); + 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(1722, 1, $intern_88, LGraphAdapters$PortComparator); +_.compare_1 = function compare_41(port1, port2){ + return $compare_10(castTo(port1, 11), castTo(port2, 11)); +} +; +_.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', 1722); +function LGraphAdapters$lambda$0$Type(){ +} + +defineClass(803, 1, $intern_39, 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', 803); +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_9(anchor, castTo(propertyHolder.getProperty(PORT_ANCHOR), 8)); + explicitAnchor = true; + } + else { + $set_8(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_9(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), 19).value_0; + break; + case 3: + case 4: + informationAboutIt = -castTo(propertyHolder.getProperty(PORT_INDEX), 19).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), 98))) { + 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)), 103))) { + return 0; + } + maxWidth = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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)), 103); + 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)), 61).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), 94); + 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_7(node$iterator), 10); + $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (order = $wnd.Math.min(order, castTo($getProperty(node, MODEL_ORDER_0), 19).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_7(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_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $offset_2(edge.bendPoints, graphOffset); + junctionPoints = castTo($getProperty(edge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + !!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_7(label$iterator), 70); + $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_7(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_7(node$iterator), 10); + alignment = castTo($getProperty(node, ($clinit_LayeredOptions() , ALIGNMENT)), 248); + 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_7(port$iterator), 11); + 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_7(inport$iterator), 11); + 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_7(outport$iterator), 11); + 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_7(port$iterator), 11); + 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_7(label$iterator), 70); + 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_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); +} + +function toNodeArray(nodes){ + return castTo($toArray_2(nodes, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, nodes.array.length, 0, 1)), 193); +} + +function toPortArray(ports){ + return castTo($toArray_2(ports, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LPort_2_classLit, $intern_108, 11, ports.array.length, 0, 1)), 1942); +} + +function LShape(){ + this.pos = new KVector; + this.size_0 = new KVector; +} + +defineClass(392, 299, {3:1, 299:1, 392:1, 94:1, 134:1}); +var Lorg_eclipse_elk_alg_layered_graph_LShape_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LShape', 392); +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(70, 392, {3:1, 299:1, 70:1, 392:1, 94:1, 134: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', 70); +function $$init_7(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_7(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_7(this); +} + +function Spacing_0(top_0, right, bottom, left){ + $$init_7(this); + $set_7(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(207, 1, {3:1, 4:1, 207:1, 415:1}); +_.equals_0 = function equals_99(obj){ + var other; + if (instanceOf(obj, 207)) { + other = castTo(obj, 207); + 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_61(){ + var code1, code2; + code1 = $hashCode_0(this.left) << 16; + code1 |= $hashCode_0(this.bottom) & $intern_46; + code2 = $hashCode_0(this.right) << 16; + code2 |= $hashCode_0(this.top_0) & $intern_46; + 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(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, 127)) { + 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', 207); +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(142, 207, $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', 142); +function LMargin(){ + ElkMargin.call(this); +} + +defineClass(651, 142, $intern_109, LMargin); +var Lorg_eclipse_elk_alg_layered_graph_LMargin_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LMargin', 651); +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), 289)); + 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), 11); + if (port.side != currentSide) { + firstIndexForCurrentSide != currentIndex && $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_4(firstIndexForCurrentSide), valueOf_4(currentIndex))); + currentSide = port.side; + firstIndexForCurrentSide = currentIndex; + } + } + $put_7(this$static.portSideIndices, currentSide, new Pair(valueOf_4(firstIndexForCurrentSide), valueOf_4(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_7(port$iterator), 11); + $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), 70).text_0) { + return castTo($get_11(this$static.labels, 0), 70).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_7(port$iterator), 11); + $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)), 421).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_7(port$iterator), 11); + $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), 46); + return !indices?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):new AbstractList$SubList(this$static.ports, castTo(indices.first, 19).value_0, castTo(indices.second, 19).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, 169, 0, [castTo(checkNotNull(typePredicate), 169), castTo(checkNotNull(sidePredicate), 169)])))):($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, 392, {3:1, 299:1, 10:1, 392:1, 94:1, 134: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_30(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_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]); +} + +defineClass(267, 22, {3:1, 35:1, 22:1, 267: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', 267, Ljava_lang_Enum_2_classLit, values_36, valueOf_30); +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_36, 267, 0, [NORMAL, LONG_EDGE, EXTERNAL_PORT, NORTH_SOUTH_PORT, LABEL, BREAKING_POINT]))); +} + +var $MAP_18; +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(116, 207, $intern_110, ElkPadding, ElkPadding_0, ElkPadding_1); +var Lorg_eclipse_elk_core_math_ElkPadding_2_classLit = createForClass('org.eclipse.elk.core.math', 'ElkPadding', 116); +function LPadding(){ + ElkPadding.call(this); +} + +defineClass(764, 116, $intern_110, LPadding); +var Lorg_eclipse_elk_alg_layered_graph_LPadding_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPadding', 764); +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), 70).text_0) { + return castTo($get_11(this$static.labels, 0), 70).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(11, 392, {3:1, 299:1, 11:1, 392:1, 94:1, 134: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), 17).source != this) { + source = castTo($get_11(this.incomingEdges, 0), 17).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), 17).target != this) { + target = castTo($get_11(this.outgoingEdges, 0), 17).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', 11); +function LPort$1(this$0){ + this.this$01 = this$0; +} + +defineClass(397, 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', 397); +function LPort$1$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(1289, 1, $intern_6, LPort$1$1); +_.forEachRemaining = function forEachRemaining_47(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_37(){ + return castTo($next_7(this.val$edgesIter2), 17).source; +} +; +_.hasNext_0 = function hasNext_36(){ + return $hasNext_3(this.val$edgesIter2); +} +; +_.remove = function remove_92(){ + $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', 1289); +function LPort$2(this$0){ + this.this$01 = this$0; +} + +defineClass(358, 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', 358); +function LPort$2$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(762, 1, $intern_6, LPort$2$1); +_.forEachRemaining = function forEachRemaining_48(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_38(){ + return castTo($next_7(this.val$edgesIter2), 17).target; +} +; +_.hasNext_0 = function hasNext_37(){ + return $hasNext_3(this.val$edgesIter2); +} +; +_.remove = function remove_93(){ + $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', 762); +function LPort$CombineIter(firstIterable, secondIterable){ + this.firstIterable = firstIterable; + this.secondIterable = secondIterable; +} + +defineClass(1282, 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', 1282); +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(201, 1, $intern_6, LPort$CombineIter$1); +_.forEachRemaining = function forEachRemaining_49(consumer){ + $forEachRemaining(this, consumer); +} +; +_.remove = function remove_94(){ + $remove_21(); +} +; +_.hasNext_0 = function hasNext_38(){ + return $hasNext_6(this); +} +; +_.next_1 = function next_39(){ + return $hasNext_3(this.firstIterator)?$next_7(this.firstIterator):$next_7(this.secondIterator); +} +; +var Lorg_eclipse_elk_alg_layered_graph_LPort$CombineIter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph', 'LPort/CombineIter/1', 201); +function $apply_14(arg0){ + return $clinit_LPort() , castTo(arg0, 11).outgoingEdges.array.length != 0; +} + +function LPort$lambda$0$Type(){ +} + +defineClass(1283, 1, $intern_89, LPort$lambda$0$Type); +_.apply_1 = function apply_64(arg0){ + return $apply_14(arg0); +} +; +_.equals_0 = function equals_100(other){ + return this === other; +} +; +_.test_0 = function test_18(input_0){ + return $clinit_LPort() , castTo(input_0, 11).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', 1283); +function $apply_15(arg0){ + return $clinit_LPort() , castTo(arg0, 11).incomingEdges.array.length != 0; +} + +function LPort$lambda$1$Type(){ +} + +defineClass(1284, 1, $intern_89, LPort$lambda$1$Type); +_.apply_1 = function apply_65(arg0){ + return $apply_15(arg0); +} +; +_.equals_0 = function equals_101(other){ + return this === other; +} +; +_.test_0 = function test_19(input_0){ + return $clinit_LPort() , castTo(input_0, 11).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', 1284); +function LPort$lambda$2$Type(){ +} + +defineClass(1285, 1, $intern_89, LPort$lambda$2$Type); +_.apply_1 = function apply_66(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , NORTH_3); +} +; +_.equals_0 = function equals_102(other){ + return this === other; +} +; +_.test_0 = function test_20(input_0){ + return $clinit_LPort() , castTo(input_0, 11).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', 1285); +function LPort$lambda$3$Type(){ +} + +defineClass(1286, 1, $intern_89, LPort$lambda$3$Type); +_.apply_1 = function apply_67(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , EAST_2); +} +; +_.equals_0 = function equals_103(other){ + return this === other; +} +; +_.test_0 = function test_21(input_0){ + return $clinit_LPort() , castTo(input_0, 11).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', 1286); +function LPort$lambda$4$Type(){ +} + +defineClass(1287, 1, $intern_89, LPort$lambda$4$Type); +_.apply_1 = function apply_68(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , SOUTH_2); +} +; +_.equals_0 = function equals_104(other){ + return this === other; +} +; +_.test_0 = function test_22(input_0){ + return $clinit_LPort() , castTo(input_0, 11).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', 1287); +function LPort$lambda$5$Type(){ +} + +defineClass(1288, 1, $intern_89, LPort$lambda$5$Type); +_.apply_1 = function apply_69(arg0){ + return $clinit_LPort() , castTo(arg0, 11).side == ($clinit_PortSide() , WEST_2); +} +; +_.equals_0 = function equals_105(other){ + return this === other; +} +; +_.test_0 = function test_23(input_0){ + return $clinit_LPort() , castTo(input_0, 11).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', 1288); +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(29, 299, {3:1, 20:1, 299:1, 29:1, 94:1, 134: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', 29); +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)), 174); + 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), 79); + 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), 82)); + 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), 79); + 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), 82)); + 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), 118); + 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), 79); + 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), 82))):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), 82))); + 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), 160); + $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), 116); + 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)), 103); + portSide = castTo($getProperty_0(elkport, PORT_SIDE), 61); + portConstraints = castTo($getProperty(lgraph, PORT_CONSTRAINTS_0), 98); + 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), 82)); + 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), 82)); + 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), 79); + if ($isSelfloop(edge)) { + if ($booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO)))) { + return true; + } + } + } + } + return false; +} + +function $importFlatGraph(this$static, elkgraph, lgraph){ + var child, child$iterator, connectsSiblings, connectsToGraph, elkedge, elkedge$iterator, elkedge$iterator0, enableInsideSelfLoops, index_0, isInsideSelfLoop, isToBeLaidOut, source, target; + index_0 = 0; + for (child$iterator = new AbstractEList$EIterator((!elkgraph.children && (elkgraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph, 10, 11)) , elkgraph.children)); child$iterator.cursor != child$iterator.this$01_2.size_1();) { + child = castTo($doNext(child$iterator), 33); + if (!$booleanValue(castToBoolean($getProperty_0(child, ($clinit_LayeredOptions() , NO_LAYOUT))))) { + 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)) || $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))) && !$booleanValue(castToBoolean($getProperty_0(child, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0)))) { + $setProperty_1(child, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(index_0)); + ++index_0; + } + $transformNode(this$static, child, lgraph); + } + } + index_0 = 0; + for (elkedge$iterator0 = new AbstractEList$EIterator((!elkgraph.containedEdges && (elkgraph.containedEdges = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkEdge_2_classLit, elkgraph, 12, 3)) , elkgraph.containedEdges)); elkedge$iterator0.cursor != elkedge$iterator0.this$01_2.size_1();) { + elkedge = castTo($doNext(elkedge$iterator0), 79); + if (maskUndefined($getProperty_0(elkgraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0))) !== maskUndefined(($clinit_OrderingStrategy() , NONE_10)) || maskUndefined($getProperty_0(elkgraph, CYCLE_BREAKING_STRATEGY_0)) === maskUndefined(($clinit_CycleBreakingStrategy() , 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))) { + $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(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) == elkgraph && $getParent_2(source) == $getParent_2(target); + connectsToGraph = ($getParent_2(source) == elkgraph && target == elkgraph) ^ ($getParent_2(target) == elkgraph && source == elkgraph); + isToBeLaidOut && !isInsideSelfLoop && (connectsToGraph || connectsSiblings) && $transformEdge(this$static, elkedge, elkgraph, lgraph); + } + if ($getParent_2(elkgraph)) { + for (elkedge$iterator = new AbstractEList$EIterator($getContainedEdges($getParent_2(elkgraph))); elkedge$iterator.cursor != elkedge$iterator.this$01_2.size_1();) { + elkedge = castTo($doNext(elkedge$iterator), 79); + source = getSourceNode(elkedge); + if (source == elkgraph && $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, elkgraph, lgraph); + } + } + } +} + +function $importGraph_1(this$static, elkgraph){ + var elkport, elkport$iterator, graphProperties, topLevelGraph; + topLevelGraph = $createLGraph(elkgraph); + $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(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), 118); + $transformExternalPort(this$static, elkgraph, topLevelGraph, elkport); + } + } + castTo($getProperty_0(elkgraph, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).size_1() != 0 && $calculateMinimumGraphSize(elkgraph, topLevelGraph); + $booleanValue(castToBoolean($getProperty(topLevelGraph, PARTITIONING_ACTIVATE))) && graphProperties.add_2(PARTITIONS); + $hasProperty(topLevelGraph, SPACING_BASE_VALUE_0) && $apply_17(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, elkgraph, lgraph){ + var elkChildGraphNode, elkChildGraphNode$iterator, elkGraphNode, elkGraphQueue, elkedge, elkedge$iterator, 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)), 103); + index_0 = 0; + $addAll(elkGraphQueue, (!elkgraph.children && (elkgraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, elkgraph, 10, 11)) , elkgraph.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)), 33); + (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)) || $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))) && !$booleanValue(castToBoolean($getProperty_0(elknode, CONSIDER_MODEL_ORDER_NO_MODEL_ORDER_0))) && $setProperty_1(elknode, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(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)) || $equals_5(castToString($getProperty_0(elknode, ALGORITHM)), 'org.eclipse.elk.layered'); + nestedGraph = null; + if (usesElkLayered && hasHierarchyHandlingEnabled && (hasChildren || hasInsideSelfLoops)) { + nestedGraph = $createLGraph(elknode); + $setProperty_0(nestedGraph, DIRECTION, parentGraphDirection); + $hasProperty(nestedGraph, SPACING_BASE_VALUE_0) && $apply_17(new LayeredSpacings$LayeredSpacingsBuilder($doubleValue(castToDouble($getProperty(nestedGraph, SPACING_BASE_VALUE_0)))), nestedGraph); + if (castTo($getProperty_0(elknode, NODE_SIZE_CONSTRAINTS_1), 174).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, elkgraph, 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)), 33); + 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), 79); + $checkEdgeValidity(elkedge); + (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)) || $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))) && $setProperty_1(elkedge, ($clinit_InternalProperties_1() , MODEL_ORDER_0), valueOf_4(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), 82)); + 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), 82)); + 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, elkgraph, 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), 33); + usesElkLayered = !$hasProperty_0(elkChildGraphNode, ($clinit_CoreOptions() , ALGORITHM)) || $equals_5(castToString($getProperty_0(elkChildGraphNode, ALGORITHM)), 'org.eclipse.elk.layered'); + 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), 79); + 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), 82)); + 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), 79); + 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), 82)); + 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), 82); + elkTargetShape = castTo($get_20((!elkedge.targets && (elkedge.targets = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, elkedge, 5, 8)) , elkedge.targets), 0), 82); + 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), 202); + 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, 186)) { + sourceElem = castTo($get_10(this$static.nodeAndPortMap, elkSourceShape), 299); + if (instanceOf(sourceElem, 11)) { + sourceLPort = castTo(sourceElem, 11); + } + else if (instanceOf(sourceElem, 10)) { + sourceLNode = castTo(sourceElem, 10); + sourceLPort = castTo($get_11(sourceLNode.ports, 0), 11); + } + } + if (instanceOf(elkTargetShape, 186)) { + targetElem = castTo($get_10(this$static.nodeAndPortMap, elkTargetShape), 299); + if (instanceOf(targetElem, 11)) { + targetLPort = castTo(targetElem, 11); + } + else if (instanceOf(targetElem, 10)) { + targetLNode = castTo(targetElem, 10); + targetLPort = castTo($get_11(targetLNode.ports, 0), 11); + } + } + 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), 98))) { + 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), 98))) { + 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), 137); + 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), 272).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), 314); + nodePlaceStrat = castTo($getProperty(lgraph, NODE_PLACEMENT_STRATEGY_0), 315); + 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_10(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)), 98); + portSide = castTo($getProperty_0(elkport, PORT_SIDE), 61); + 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), 103), lgraph); + $setProperty_0(dummy, ($clinit_InternalProperties_1() , ORIGIN_0), elkport); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + $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), 174).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), 137); + 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, elklabel, elklabel$iterator, elkport, elkport$iterator, graphProperties, lnode, portConstraints; + 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)), 98); + portConstraints == ($clinit_PortConstraints() , UNDEFINED_4)?$setProperty_0(lnode, PORT_CONSTRAINTS_0, FREE):portConstraints != FREE && graphProperties.add_2(($clinit_GraphProperties() , NON_FREE_PORTS)); + direction = castTo($getProperty(lgraph, DIRECTION), 103); + 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), 118); + $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), 137); + !$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)), 61)); + $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_0($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_0($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), 137); + !$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(1341, 1, {}, ElkGraphImporter); +var Lorg_eclipse_elk_alg_layered_graph_transform_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.layered.graph.transform', 'ElkGraphImporter', 1341); +function ElkGraphImporter$0methodref$connectableShapeToNode$Type(){ +} + +defineClass(1345, 1, {}, ElkGraphImporter$0methodref$connectableShapeToNode$Type); +_.apply_0 = function apply_70(arg0){ + return connectableShapeToNode(castTo(arg0, 82)); +} +; +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', 1345); +function ElkGraphImporter$1methodref$connectableShapeToNode$Type(){ +} + +defineClass(1348, 1, {}, ElkGraphImporter$1methodref$connectableShapeToNode$Type); +_.apply_0 = function apply_71(arg0){ + return connectableShapeToNode(castTo(arg0, 82)); +} +; +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', 1348); +function ElkGraphImporter$lambda$0$Type(topLevelGraph_1){ + this.topLevelGraph_1 = topLevelGraph_1; +} + +defineClass(1342, 1, $intern_19, ElkGraphImporter$lambda$0$Type); +_.accept = function accept_62(arg0){ + $ensureDefinedPortSide(this.topLevelGraph_1, castTo(arg0, 118)); +} +; +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', 1342); +function ElkGraphImporter$lambda$1$Type(finalNestedGraph_1){ + this.finalNestedGraph_1 = finalNestedGraph_1; +} + +defineClass(1343, 1, $intern_19, ElkGraphImporter$lambda$1$Type); +_.accept = function accept_63(arg0){ + $ensureDefinedPortSide(this.finalNestedGraph_1, castTo(arg0, 118)); +} +; +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', 1343); +function ElkGraphImporter$lambda$2$Type(){ +} + +defineClass(1344, 1, {}, ElkGraphImporter$lambda$2$Type); +_.apply_0 = function apply_72(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator($getTargets(castTo(arg0, 79)), 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', 1344); +function ElkGraphImporter$lambda$4$Type(elkport_0){ + this.elkport_0 = elkport_0; +} + +defineClass(1346, 1, $intern_39, ElkGraphImporter$lambda$4$Type); +_.test_0 = function test_24(arg0){ + return lambda$4_3(this.elkport_0, castTo(arg0, 33)); +} +; +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', 1346); +function ElkGraphImporter$lambda$5$Type(){ +} + +defineClass(1347, 1, {}, ElkGraphImporter$lambda$5$Type); +_.apply_0 = function apply_73(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator($getSources(castTo(arg0, 79)), 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', 1347); +function ElkGraphImporter$lambda$7$Type(elkport_0){ + this.elkport_0 = elkport_0; +} + +defineClass(1349, 1, $intern_39, ElkGraphImporter$lambda$7$Type); +_.test_0 = function test_25(arg0){ + return lambda$7_0(this.elkport_0, castTo(arg0, 33)); +} +; +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', 1349); +function ElkGraphImporter$lambda$8$Type(){ +} + +defineClass(1350, 1, $intern_39, ElkGraphImporter$lambda$8$Type); +_.test_0 = function test_26(arg0){ + return lambda$8(castTo(arg0, 79)); +} +; +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', 1350); +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)), 79); + 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), 82)); + $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), 82)); + applyVectorChain(bendPoints, elkedgeSection); + for (llabel$iterator = new ArrayList$1(ledge.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { + llabel = castTo($next_7(llabel$iterator), 70); + elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); + $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)), 74); + 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, 239)) { + return; + } + parentElkNode = castTo(graphOrigin, 33); + 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)), 174); + if ($containsEnum(sizeOptions, ($clinit_SizeOptions() , COMPUTE_PADDING))) { + padding = castTo($getProperty_0(parentElkNode, PADDING_1), 116); + $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_7(lnode$iterator0), 10); + if (instanceOf($getProperty(lnode, ORIGIN_0), 239)) { + $applyNodeLayout(lnode, offset); + } + else if (instanceOf($getProperty(lnode, ORIGIN_0), 186) && !parentLNode) { + elkport = castTo($getProperty(lnode, ORIGIN_0), 118); + 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_7(port$iterator), 11); + $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_7(port$iterator), 11); + $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), 218); + for (ledge$iterator = new ArrayList$1(edgeList); ledge$iterator.i < ledge$iterator.this$01.array.length;) { + ledge = castTo($next_7(ledge$iterator), 17); + $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_7(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)), 33); + nodeID = castTo($getProperty(lnode, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_POSITION_ID_0)), 19).value_0; + layerID = castTo($getProperty(lnode, LAYERING_LAYER_ID_0), 19).value_0; + $setProperty_1(elknode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_4(nodeID)); + $setProperty_1(elknode, LAYERING_LAYER_ID_0, valueOf_4(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), 174).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), 197)):(nf = castTo($getProperty($getGraph(lnode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , 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_7(lport$iterator0), 11); + origin_0 = $getProperty(lport, ORIGIN_0); + if (instanceOf(origin_0, 186)) { + elkport = castTo(origin_0, 118); + $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), 174).size_1() != 0; + for (llabel$iterator0 = new ArrayList$1(lnode.labels); llabel$iterator0.i < llabel$iterator0.this$01.array.length;) { + llabel = castTo($next_7(llabel$iterator0), 70); + if (nodeHasLabelPlacement || castTo($getProperty(llabel, NODE_LABELS_PLACEMENT_1), 174).size_1() != 0) { + elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); + $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_7(lport$iterator), 11); + for (llabel$iterator = new ArrayList$1(lport.labels); llabel$iterator.i < llabel$iterator.this$01.array.length;) { + llabel = castTo($next_7(llabel$iterator), 70); + elklabel = castTo($getProperty(llabel, ORIGIN_0), 137); + $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)), 33); + sizeConstraintsIncludedPortLabels = castTo($getProperty_0(elknode, ($clinit_LayeredOptions() , NODE_SIZE_CONSTRAINTS_1)), 174).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))) || 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)), 37); + 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_23(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(1277, 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', 1277); +function ElkGraphLayoutTransferrer$lambda$0$Type(lnode_0){ + this.lnode_0 = lnode_0; +} + +defineClass(1278, 1, $intern_39, ElkGraphLayoutTransferrer$lambda$0$Type); +_.test_0 = function test_27(arg0){ + return lambda$0_23(this.lnode_0, castTo(arg0, 17)); +} +; +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', 1278); +function ElkGraphLayoutTransferrer$lambda$1$Type(edgeList_0){ + this.edgeList_0 = edgeList_0; +} + +defineClass(1279, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$1$Type); +_.accept = function accept_64(arg0){ + $clinit_ElkGraphLayoutTransferrer(); + $add_3(this.edgeList_0, castTo(arg0, 17)); +} +; +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', 1279); +function ElkGraphLayoutTransferrer$lambda$2$Type(parentLNode_0){ + this.parentLNode_0 = parentLNode_0; +} + +defineClass(1280, 1, $intern_39, ElkGraphLayoutTransferrer$lambda$2$Type); +_.test_0 = function test_28(arg0){ + return lambda$2_3(this.parentLNode_0, castTo(arg0, 17)); +} +; +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', 1280); +function ElkGraphLayoutTransferrer$lambda$3$Type(edgeList_0){ + this.edgeList_0 = edgeList_0; +} + +defineClass(1281, 1, $intern_19, ElkGraphLayoutTransferrer$lambda$3$Type); +_.accept = function accept_65(arg0){ + $clinit_ElkGraphLayoutTransferrer(); + $add_3(this.edgeList_0, castTo(arg0, 17)); +} +; +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', 1281); +function getIdentifier(element){ + var container, id_0, parentId; + id_0 = element.getIdentifier(); + if (id_0) { + container = element.eContainer_0(); + if (instanceOf(container, 160)) { + parentId = getIdentifier(castTo(container, 160)); + 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, 160)) { + return getIdentifier(castTo(origin_0, 160)); + } + return null; +} + +function $process_2(layeredGraph, monitor){ + $begin(monitor, '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); + $done_0(monitor); +} + +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(1484, 1, $intern_105, CommentNodeMarginCalculator); +_.process = function process_1(layeredGraph, monitor){ + $process_2(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentNodeMarginCalculator', 1484); +function CommentNodeMarginCalculator$lambda$0$Type(){ +} + +defineClass(1485, 1, {}, CommentNodeMarginCalculator$lambda$0$Type); +_.apply_0 = function apply_74(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1485); +function CommentNodeMarginCalculator$lambda$1$Type(){ +} + +defineClass(1486, 1, $intern_19, CommentNodeMarginCalculator$lambda$1$Type); +_.accept = function accept_66(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', 1486); +function $getBoxPort(commentBox){ + var edge, edge$iterator, edge$iterator0, nodePort, port, port$iterator; + nodePort = castTo($getProperty(commentBox, ($clinit_InternalProperties_1() , COMMENT_CONN_PORT)), 11); + for (port$iterator = new ArrayList$1(commentBox.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + $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_7(edge$iterator), 17); + $setSource_0(edge, nodePort); + return port; + } + } + return null; +} + +function $process_3(layeredGraph, monitor){ + var bottomBoxes, boxes, layer, layer$iterator, node, node$iterator, topBoxes; + $begin(monitor, 'Comment post-processing', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + boxes = new ArrayList; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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); + } + $done_0(monitor); +} + +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)), 11); + 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)), 11); + 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(1487, 1, $intern_105, CommentPostprocessor); +_.process = function process_2(layeredGraph, monitor){ + $process_3(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPostprocessor', 1487); +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; + $begin(monitor, 'Comment pre-processing', 1); + commentBoxCount = 0; + nodeIter = new ArrayList$1(layeredGraph.layerlessNodes); + while (nodeIter.i < nodeIter.this$01.array.length) { + node = castTo($next_7(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_7(port$iterator0), 11); + edgeCount += port.incomingEdges.array.length + port.outgoingEdges.array.length; + if (port.incomingEdges.array.length == 1) { + edge = castTo($get_11(port.incomingEdges, 0), 17); + oppositePort = edge.source; + } + if (port.outgoingEdges.array.length == 1) { + edge = castTo($get_11(port.outgoingEdges, 0), 17); + 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_7(port$iterator), 11); + for (outedge$iterator = new ArrayList$1(port.outgoingEdges); outedge$iterator.i < outedge$iterator.this$01.array.length;) { + outedge = castTo($next_7(outedge$iterator), 17); + outedge.target.outgoingEdges.array.length == 0 || (revEdges.array[revEdges.array.length] = outedge , true); + } + for (inedge$iterator = new ArrayList$1(port.incomingEdges); inedge$iterator.i < inedge$iterator.this$01.array.length;) { + inedge = castTo($next_7(inedge$iterator), 17); + inedge.source.incomingEdges.array.length == 0 || (revEdges.array[revEdges.array.length] = inedge , true); + } + } + for (re$iterator = new ArrayList$1(revEdges); re$iterator.i < re$iterator.this$01.array.length;) { + re = castTo($next_7(re$iterator), 17); + $reverse_0(re, true); + } + } + } + } + monitor.recordLogs && $log_2(monitor, 'Found ' + commentBoxCount + ' comment boxes'); + $done_0(monitor); +} + +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)), 98))) { + 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_7(port1$iterator), 11); + 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), 11); + 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_7(label$iterator), 70); + 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(1488, 1, $intern_105, CommentPreprocessor); +_.process = function process_3(layeredGraph, monitor){ + $process_5(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_CommentPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'CommentPreprocessor', 1488); +function $process_6(graph, progressMonitor){ + var currentNode, currentNode$iterator, layer, layer$iterator, layerIndex, posIndex; + $begin(progressMonitor, '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_7(layer$iterator), 29); + posIndex = 0; + for (currentNode$iterator = new ArrayList$1(layer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { + currentNode = castTo($next_7(currentNode$iterator), 10); + if (currentNode.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + $setProperty_0(currentNode, ($clinit_LayeredOptions() , LAYERING_LAYER_ID_0), valueOf_4(layerIndex)); + $setProperty_0(currentNode, CROSSING_MINIMIZATION_POSITION_ID_0, valueOf_4(posIndex)); + ++posIndex; + } + } + ++layerIndex; + } + $done_0(progressMonitor); +} + +function ConstraintsPostprocessor(){ +} + +defineClass(1489, 1, $intern_105, ConstraintsPostprocessor); +_.process = function process_4(graph, progressMonitor){ + $process_6(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_ConstraintsPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ConstraintsPostprocessor', 1489); +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)), 163); + 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)), 163); + 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_7(node$iterator), 10); + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + 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), 98)) && 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_7(port$iterator), 11); + 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_7(e$iterator0), 17); + lc = castTo($getProperty(e.target.owner, LAYERING_LAYER_CONSTRAINT_0), 163); + 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_7(e$iterator), 17); + lc = castTo($getProperty(e.source.owner, LAYERING_LAYER_CONSTRAINT_0), 163); + 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_7(node$iterator), 10); + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + 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 { + remainingNodes.array[remainingNodes.array.length] = node; + } + } + return remainingNodes; +} + +function $process_7(layeredGraph, monitor){ + var remainingNodes; + $begin(monitor, 'Edge and layer constraint edge reversal', 1); + remainingNodes = $handleOuterNodes(layeredGraph); + $handleInnerNodes(remainingNodes); + $done_0(monitor); +} + +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(1490, 1, $intern_105, EdgeAndLayerConstraintEdgeReverser); +_.process = function process_5(layeredGraph, monitor){ + $process_7(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EdgeAndLayerConstraintEdgeReverser_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EdgeAndLayerConstraintEdgeReverser', 1490); +function $process_8(layeredGraph, monitor){ + $begin(monitor, '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); + $done_0(monitor); +} + +function $processNode_1(node){ + var endLabelCells, labelCell, labelCell$iterator, labelCellRect, nodePos; + endLabelCells = castTo($getProperty(node, ($clinit_InternalProperties_1() , END_LABELS_0)), 83); + nodePos = node.pos; + for (labelCell$iterator = endLabelCells.values_0().iterator_0(); labelCell$iterator.hasNext_0();) { + labelCell = castTo(labelCell$iterator.next_1(), 306); + 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_8(node_0){ + return node_0.type_0 == ($clinit_LNode$NodeType() , NORMAL) && $hasProperty(node_0, ($clinit_InternalProperties_1() , END_LABELS_0)); +} + +defineClass(1491, 1, $intern_105, EndLabelPostprocessor); +_.process = function process_6(layeredGraph, monitor){ + $process_8(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPostprocessor', 1491); +function EndLabelPostprocessor$lambda$0$Type(){ +} + +defineClass(1492, 1, {}, EndLabelPostprocessor$lambda$0$Type); +_.apply_0 = function apply_75(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1492); +function EndLabelPostprocessor$lambda$1$Type(){ +} + +defineClass(1493, 1, $intern_39, EndLabelPostprocessor$lambda$1$Type); +_.test_0 = function test_29(arg0){ + return lambda$1_8(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', 1493); +function EndLabelPostprocessor$lambda$2$Type(){ +} + +defineClass(1494, 1, $intern_19, EndLabelPostprocessor$lambda$2$Type); +_.accept = function accept_67(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', 1494); +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_7(label$iterator), 70); + $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(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_7(port$iterator), 11); + 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), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 284) == ($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), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 284) == ($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), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 284) == ($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), 181).getProperty(($clinit_InternalProperties_1() , LABEL_SIDE)), 284) == ($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; + $begin(monitor, '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), 103)); + $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)); + $done_0(monitor); +} + +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, 306, portCount, 0, 1); + for (portIndex = 0; portIndex < portCount; portIndex++) { + port = castTo($get_11(node.ports, portIndex), 11); + 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), 11), 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(), 11); + 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_7(dummyPort$iterator), 11); + 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_7(incidentEdge$iterator.firstIterator):$next_7(incidentEdge$iterator.secondIterator), 17); + 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_10(label$iterator), 70); + $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(1495, 1, $intern_105, EndLabelPreprocessor); +_.process = function process_7(layeredGraph, monitor){ + $process_9(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor', 1495); +function EndLabelPreprocessor$lambda$0$Type(){ +} + +defineClass(1496, 1, {}, EndLabelPreprocessor$lambda$0$Type); +_.apply_0 = function apply_76(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1496); +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(1497, 1, $intern_19, EndLabelPreprocessor$lambda$1$Type); +_.accept = function accept_68(arg0){ + $lambda$1(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', 1497); +function EndLabelPreprocessor$lambda$2$Type(){ +} + +defineClass(1498, 1, $intern_39, EndLabelPreprocessor$lambda$2$Type); +_.test_0 = function test_30(arg0){ + return maskUndefined($getProperty(castTo(arg0, 70), ($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', 1498); +function EndLabelPreprocessor$lambda$3$Type(labels_0){ + this.labels_0 = labels_0; +} + +defineClass(1499, 1, $intern_19, EndLabelPreprocessor$lambda$3$Type); +_.accept = function accept_69(arg0){ + $add_7(this.labels_0, castTo(arg0, 70)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$3$Type', 1499); +function EndLabelPreprocessor$lambda$4$Type(){ +} + +defineClass(1500, 1, $intern_39, EndLabelPreprocessor$lambda$4$Type); +_.test_0 = function test_31(arg0){ + return maskUndefined($getProperty(castTo(arg0, 70), ($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', 1500); +function EndLabelPreprocessor$lambda$5$Type(labels_0){ + this.labels_0 = labels_0; +} + +defineClass(1501, 1, $intern_19, EndLabelPreprocessor$lambda$5$Type); +_.accept = function accept_70(arg0){ + $add_7(this.labels_0, castTo(arg0, 70)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelPreprocessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelPreprocessor/lambda$5$Type', 1501); +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_7(label$iterator), 181); + edge = castTo(label_0.getProperty(($clinit_InternalProperties_1() , END_LABEL_EDGE)), 17); + !!$getEntry_0(edgeToGroupMap.hashCodeMap, edge) || $put_6(edgeToGroupMap, edge, new EndLabelSorter$LabelGroup(edge)); + $add_3(castTo(getEntryValueOrNull($getEntry_0(edgeToGroupMap.hashCodeMap, edge)), 456).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_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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_7(port$iterator), 11); + 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_7(inEdge$iterator), 17); + 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_7(outEdge$iterator), 17); + 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){ + $begin(monitor, '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); + $done_0(monitor); +} + +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), 83); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + if ($needsSorting(port)) { + if (!initializeMethodCalled) { + $initialize_2($getGraph(node)); + initializeMethodCalled = true; + } + $sort_1(castTo(labelCellMap.get_3(port), 306)); + } + } + } +} + +function $sort_1(portLabelCell){ + var group, group$iterator, labelGroups, portLabelCellLabels; + labelGroups = $createLabelGroups(portLabelCell); + $sort(labelGroups, LABEL_GROUP_COMPARATOR); + portLabelCellLabels = portLabelCell.labels; + portLabelCellLabels.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (group$iterator = new ArrayList$1(labelGroups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 456); + $addAll_2(portLabelCellLabels, group.labels); + } +} + +function EndLabelSorter(){ + $clinit_EndLabelSorter(); +} + +defineClass(1550, 1, $intern_105, EndLabelSorter); +_.process = function process_8(layeredGraph, monitor){ + $process_10(castTo(layeredGraph, 37), monitor); +} +; +var LABEL_GROUP_COMPARATOR; +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter', 1550); +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(1551, 1, $intern_88, EndLabelSorter$1); +_.compare_1 = function compare_42(group1, group2){ + return $compare_11(castTo(group1, 456), castTo(group2, 456)); +} +; +_.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', 1551); +function EndLabelSorter$LabelGroup(edge){ + this.labels = new ArrayList; + $addAll_2(this.labels, this.labels); + this.edge = edge; +} + +defineClass(456, 1, {456:1}, EndLabelSorter$LabelGroup); +var Lorg_eclipse_elk_alg_layered_intermediate_EndLabelSorter$LabelGroup_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'EndLabelSorter/LabelGroup', 456); +function EndLabelSorter$lambda$0$Type(){ +} + +defineClass(1552, 1, {}, EndLabelSorter$lambda$0$Type); +_.apply_0 = function apply_77(arg0){ + return $clinit_EndLabelSorter() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1552); +function EndLabelSorter$lambda$1$Type(){ +} + +defineClass(1553, 1, $intern_39, EndLabelSorter$lambda$1$Type); +_.test_0 = function test_32(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', 1553); +function EndLabelSorter$lambda$2$Type(){ +} + +defineClass(1554, 1, $intern_19, EndLabelSorter$lambda$2$Type); +_.accept = function accept_71(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', 1554); +function EndLabelSorter$lambda$3$Type(){ +} + +defineClass(1555, 1, $intern_39, EndLabelSorter$lambda$3$Type); +_.test_0 = function test_33(arg0){ + return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 70), ($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', 1555); +function EndLabelSorter$lambda$4$Type(){ +} + +defineClass(1556, 1, $intern_39, EndLabelSorter$lambda$4$Type); +_.test_0 = function test_34(arg0){ + return $clinit_EndLabelSorter() , maskUndefined($getProperty(castTo(arg0, 70), ($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', 1556); +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), 17); + 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(), 17); + 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_0((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(), 17); + 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(), 17).bendPoints, halfway); + continue; + } + ei = castTo($get_10(segment.edgeInformation, edge), 459); + 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), 459); + 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), 459); + 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), 459); + 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_7(port$iterator), 11); + 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_7(port$iterator), 11); + 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_7(l$iterator), 29); + index_0 = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(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), 335); + this$static.compactionStrategy = castTo($getProperty(graph, COMPACTION_POST_COMPACTION_STRATEGY_0), 274); + $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_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + for (e$iterator0 = startEdges.iterator_0(); e$iterator0.hasNext_0();) { + e = castTo(e$iterator0.next_1(), 17); + 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(), 17); + survivingEdge = castTo($getProperty(e, ($clinit_InternalProperties_1() , SPLINE_SURVIVING_EDGE)), 17); + 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(1502, 1, $intern_105, FinalSplineBendpointsCalculator); +_.process = function process_9(graph, progressMonitor){ + $process_11(this, castTo(graph, 37)); +} +; +_.edgeEdgeSpacing = 0; +_.edgeNodeSpacing = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator', 1502); +function FinalSplineBendpointsCalculator$lambda$0$Type(){ +} + +defineClass(1503, 1, {}, FinalSplineBendpointsCalculator$lambda$0$Type); +_.apply_0 = function apply_78(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1503); +function FinalSplineBendpointsCalculator$lambda$1$Type(){ +} + +defineClass(1504, 1, {}, FinalSplineBendpointsCalculator$lambda$1$Type); +_.apply_0 = function apply_79(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', 1504); +function FinalSplineBendpointsCalculator$lambda$2$Type(){ +} + +defineClass(1505, 1, $intern_39, FinalSplineBendpointsCalculator$lambda$2$Type); +_.test_0 = function test_35(arg0){ + return !$isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$2$Type', 1505); +function FinalSplineBendpointsCalculator$lambda$3$Type(){ +} + +defineClass(1506, 1, $intern_39, FinalSplineBendpointsCalculator$lambda$3$Type); +_.test_0 = function test_36(arg0){ + return $hasProperty(castTo(arg0, 17), ($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', 1506); +function FinalSplineBendpointsCalculator$lambda$4$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1507, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$4$Type); +_.accept = function accept_72(arg0){ + $calculateControlPoints(this.$$outer_0, castTo(arg0, 128)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_FinalSplineBendpointsCalculator$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'FinalSplineBendpointsCalculator/lambda$4$Type', 1507); +function FinalSplineBendpointsCalculator$lambda$5$Type(){ +} + +defineClass(1508, 1, $intern_19, FinalSplineBendpointsCalculator$lambda$5$Type); +_.accept = function accept_73(arg0){ + reverse_2(castTo(arg0, 17).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', 1508); +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)), 207)); +} + +function $mirrorAllY(layeredGraph, nodes){ + $mirrorY(nodes, layeredGraph); + $mirrorY_1(layeredGraph.padding); + $mirrorY_1(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , NODE_LABELS_PADDING)), 207)); +} + +function $mirrorInLayerConstraintY(node){ + switch (castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303).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)), 163).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_7(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_7(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), 248).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_7(port$iterator), 11); + $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), 19); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_10(bendPoint$iterator), 8); + bendPoint.x_0 = offset - bendPoint.x_0; + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(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_7(label$iterator0), 70); + $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_7(label$iterator1), 70); + $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), 61))); + $mirrorLayerConstraintX(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $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_7(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_7(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), 248).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_7(port$iterator), 11); + $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), 19); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_10(bendPoint$iterator), 8); + bendPoint.y_0 = offset - bendPoint.y_0; + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(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_7(label$iterator0), 70); + $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_7(label$iterator1), 70); + $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), 61))); + $mirrorInLayerConstraintY(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $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; + $begin(monitor, '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_7(layer$iterator), 29); + $addAll_2(nodes, layer.nodes); + } + congruency = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , DIRECTION_CONGRUENCY_0)), 420); + if (congruency == ($clinit_DirectionCongruency() , READING_DIRECTION)) { + switch (castTo($getProperty(layeredGraph, DIRECTION), 103).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), 103).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), 103).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); + } + } + } + $done_0(monitor); +} + +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_7(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_7(port$iterator), 11); + $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)), 19); + !!index_0 && $setProperty_0(port, PORT_INDEX, valueOf_4(-index_0.value_0)); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + for (bendPoint$iterator = $listIterator_2(edge.bendPoints, 0); bendPoint$iterator.currentNode != bendPoint$iterator.this$01.tail;) { + bendPoint = castTo($next_10(bendPoint$iterator), 8); + $transpose_0(bendPoint); + } + junctionPoints = castTo($getProperty(edge, JUNCTION_POINTS), 74); + if (junctionPoints) { + for (jp$iterator = $listIterator_2(junctionPoints, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(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_7(label$iterator0), 70); + $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_7(label$iterator1), 70); + $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), 61))); + $transposeLayerConstraint(node); + } + for (label$iterator = new ArrayList$1(node.labels); label$iterator.i < label$iterator.this$01.array.length;) { + label_0 = castTo($next_7(label$iterator), 70); + $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)), 275); + !!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), 207)); +} + +function $transposeLayerConstraint(node){ + var inLayerConstraint, layerConstraint; + layerConstraint = castTo($getProperty(node, ($clinit_LayeredOptions() , LAYERING_LAYER_CONSTRAINT_0)), 163); + inLayerConstraint = castTo($getProperty(node, ($clinit_InternalProperties_1() , IN_LAYER_CONSTRAINT)), 303); + 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), 248).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(791, 1, $intern_105, GraphTransformer); +_.process = function process_10(layeredGraph, monitor){ + $process_12(this, castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_GraphTransformer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'GraphTransformer', 791); +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_31(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_36, 511, 0, [TO_INTERNAL_LTR, TO_INPUT_DIRECTION]); +} + +defineClass(511, 22, {3:1, 35:1, 22:1, 511: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', 511, Ljava_lang_Enum_2_classLit, values_37, valueOf_31); +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_36, 511, 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_7(childNode$iterator), 10); + origin_0 = $getProperty(childNode, ($clinit_InternalProperties_1() , ORIGIN_0)); + if (instanceOf(origin_0, 11)) { + port = castTo(origin_0, 11); + 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), 61)); + } + } + 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; + $begin(progressMonitor, '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_7(layer$iterator), 29); + $addAll_2(graph.layerlessNodes, layer.nodes); + layer.nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + for (node$iterator = new ArrayList$1(graph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, null); + } + graph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $resizeGraph_0(graph); + !!graph.parentNode && $graphLayoutToNode(graph.parentNode, graph); + $done_0(progressMonitor); +} + +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_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + extPortSide = castTo($getProperty(node, EXT_PORT_SIDE), 61); + 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(1509, 1, $intern_105, HierarchicalNodeResizingProcessor); +_.process = function process_11(graph, progressMonitor){ + $process_13(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalNodeResizingProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalNodeResizingProcessor', 1509); +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)), 61); + return portSide == ($clinit_PortSide() , NORTH_3) || portSide == SOUTH_2; + } + return false; +} + +function $process_14(layeredGraph, monitor){ + $begin(monitor, 'Hierarchical port constraint processing', 1); + $processEasternAndWesternPortDummies(layeredGraph); + $processNorthernAndSouthernPortDummies(layeredGraph); + $done_0(monitor); +} + +function $processEasternAndWesternPortDummies(layeredGraph){ + var layers; + if (!$isOrderFixed(castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + return; + } + layers = layeredGraph.layers; + $processEasternAndWesternPortDummies_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29))); + $processEasternAndWesternPortDummies_0(castTo($get_11(layers, layers.array.length - 1), 29)); +} + +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)), 61); + 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)), 98); + 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], 29)); + prevExtPortToDummyNodesMap = (checkCriticalElementIndex(currLayerIdx, extPortToDummyNodeMap.array.length) , castTo(extPortToDummyNodeMap.array[currLayerIdx], 83)); + nextExtPortToDummyNodesMap = new HashMap; + extPortToDummyNodeMap.array[extPortToDummyNodeMap.array.length] = nextExtPortToDummyNodesMap; + prevNewDummyNodes = (checkCriticalElementIndex(currLayerIdx, newDummyNodes.array.length) , castTo(newDummyNodes.array[currLayerIdx], 15)); + nextNewDummyNodes = new ArrayList; + newDummyNodes.array[newDummyNodes.array.length] = nextNewDummyNodes; + for (currentNode$iterator = new ArrayList$1(currentLayer.nodes); currentNode$iterator.i < currentNode$iterator.this$01.array.length;) { + currentNode = castTo($next_7(currentNode$iterator), 10); + if ($isNorthernOrSouthernDummy(currentNode)) { + originalExternalPortDummies.array[originalExternalPortDummies.array.length] = 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), 17); + 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), 11)); + } + 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), 17); + 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); + nextNewDummyNodes.array[nextNewDummyNodes.array.length] = nextLayerDummy; + } + $setTarget_0(edge, castTo($get_11(nextLayerDummy.ports, 0), 11)); + } + } + } + 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); + layers.array[layers.array.length] = layer; + } + else { + layer = (checkCriticalElementIndex(i - 1, layers.array.length) , castTo(layers.array[i - 1], 29)); + } + 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_7(originalDummy$iterator), 10); + $setLayer_0(originalDummy, null); + } + $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , EXT_PORT_REPLACED_DUMMIES), originalExternalPortDummies); +} + +function HierarchicalPortConstraintProcessor(){ +} + +defineClass(1510, 1, $intern_105, HierarchicalPortConstraintProcessor); +_.process = function process_12(layeredGraph, monitor){ + $process_14(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortConstraintProcessor', 1510); +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(1511, 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', 1511); +function $process_15(layeredGraph, monitor){ + var delta, edgeSpacing, layer, layer$iterator, node, node$iterator, northernDummies, side, southernDummies; + $begin(monitor, '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_7(layer$iterator), 29); + northernDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + southernDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + side = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + side == ($clinit_PortSide() , NORTH_3)?(northernDummies.array[northernDummies.array.length] = node , true):side == SOUTH_2 && (southernDummies.array[southernDummies.array.length] = node , true); + } + } + $setWidths(northernDummies, true, delta); + $setWidths(southernDummies, false, delta); + } + $done_0(monitor); +} + +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_7(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(), 11); + port.pos.x_0 = currentWidth; + } + currentWidth += step; + } +} + +function HierarchicalPortDummySizeProcessor(){ +} + +defineClass(1512, 1, $intern_105, HierarchicalPortDummySizeProcessor); +_.process = function process_13(layeredGraph, monitor){ + $process_15(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortDummySizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortDummySizeProcessor', 1512); +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), 11); + 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), 11); + 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_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + 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), 17); + 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_2(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 193); + 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_7(node$iterator0), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + 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_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + 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; + $begin(monitor, '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)), 98); + layers = layeredGraph.layers; + $fixCoordinates((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)), constraints, layeredGraph); + $fixCoordinates(castTo($get_11(layers, layers.array.length - 1), 29), constraints, layeredGraph); + layers_0 = layeredGraph.layers; + $correctSlantedEdgeSegments((checkCriticalElementIndex(0, layers_0.array.length) , castTo(layers_0.array[0], 29))); + $correctSlantedEdgeSegments(castTo($get_11(layers_0, layers_0.array.length - 1), 29)); + $done_0(monitor); +} + +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_7(layer$iterator), 29); + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(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_7(port$iterator), 11); + switch (port.side.ordinal) { + case 4: + nodeInPort = port; + break; + case 2: + nodeOutPort = port; + break; + default:nodeOriginPort = port; + } + } + nodeToOriginEdge = castTo($get_11(nodeOriginPort.outgoingEdges, 0), 17); + 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), 11); + edges = castTo($toArray_2(nodeInPort.incomingEdges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, 0, 0, 1)), 474); + 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); + nodesToRemove.array[nodesToRemove.array.length] = node; + } + } + for (node$iterator = new ArrayList$1(nodesToRemove); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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)), 61); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + 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)), 174).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_7(label$iterator), 70); + 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_7(label$iterator), 70); + 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); + restoredDummies.array[restoredDummies.array.length] = dummy; + } + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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), 61) , $setSide(outPort, extPortSide) , inPort = castTo($get_11(replacedDummy.ports, 0), 11) , 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_7(dummy$iterator), 10); + $setLayer_0(dummy, castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 29)); + } + return restoredDummies; +} + +function $restoreProperOrder(dummies, graph){ + var dummyArray; + if (dummies.array.length == 0) { + return; + } + dummyArray = castTo($toArray_2(dummies, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, dummies.array.length, 0, 1)), 193); + 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_7(hierarchicalPortDummy$iterator), 10); + portSide = castTo($getProperty(hierarchicalPortDummy, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + 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), 17); + $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), 17); + $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)), 98); + 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_7(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)), 61).ordinal) { + case 1: + dummy.pos.y_0 = northY; + northernDummies.array[northernDummies.array.length] = dummy; + break; + case 3: + dummy.pos.y_0 = southY; + southernDummies.array[southernDummies.array.length] = 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(1513, 1, $intern_105, HierarchicalPortOrthogonalEdgeRouter); +_.process = function process_14(layeredGraph, monitor){ + $process_16(this, castTo(layeredGraph, 37), monitor); +} +; +_.northernExtPortEdgeRoutingHeight = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortOrthogonalEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortOrthogonalEdgeRouter', 1513); +function $compare_13(a, b){ + return compare_4(a.pos.x_0, b.pos.x_0); +} + +function HierarchicalPortOrthogonalEdgeRouter$1(){ +} + +defineClass(1514, 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', 1514); +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(1515, 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', 1515); +function $fixCoordinates_0(layer, layeredGraph){ + var extPortSide, finalYCoordinate, graphHeight, node, node$iterator, portConstraints; + portConstraints = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + 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_7(node$iterator), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + continue; + } + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + 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; + $begin(monitor, 'Hierarchical port position processing', 1); + layers = layeredGraph.layers; + layers.array.length > 0 && $fixCoordinates_0((checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)), layeredGraph); + layers.array.length > 1 && $fixCoordinates_0(castTo($get_11(layers, layers.array.length - 1), 29), layeredGraph); + $done_0(monitor); +} + +function HierarchicalPortPositionProcessor(){ +} + +defineClass(1516, 1, $intern_105, HierarchicalPortPositionProcessor); +_.process = function process_15(layeredGraph, monitor){ + $process_17(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HierarchicalPortPositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HierarchicalPortPositionProcessor', 1516); +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), 17); + 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), 17); + 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(), 17); + 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(), 17); + 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), 29)); + 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(), 17); + 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)), 19).value_0; + this$static.treeHeightThreshold = castTo($getProperty(graph, HIGH_DEGREE_NODES_TREE_HEIGHT_0), 19).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++), 29)); + 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_7(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_7(highDegreeNode$iterator0), 46); + incRoots = castTo(highDegreeNode.second, 571).incTreeRoots; + if (!incRoots) { + continue; + } + for (incRoot$iterator = new ArrayList$1(incRoots); incRoot$iterator.i < incRoot$iterator.this$01.array.length;) { + incRoot = castTo($next_7(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_7(highDegreeNode$iterator), 46); + outRoots = castTo(highDegreeNode.second, 571).outTreeRoots; + if (!outRoots) { + continue; + } + for (outRoot$iterator = new ArrayList$1(outRoots); outRoot$iterator.i < outRoot$iterator.this$01.array.length;) { + outRoot = castTo($next_7(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++), 29)); + l.nodes.array.length == 0 && $remove_8(layerIt2); + } +} + +function HighDegreeNodeLayeringProcessor(){ + $clinit_HighDegreeNodeLayeringProcessor(); +} + +defineClass(1517, 1, $intern_105, HighDegreeNodeLayeringProcessor); +_.process = function process_16(graph, progressMonitor){ + $process_18(this, castTo(graph, 37)); +} +; +_.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', 1517); +function HighDegreeNodeLayeringProcessor$HighDegreeNodeInformation(){ +} + +defineClass(571, 1, {571: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', 571); +function HighDegreeNodeLayeringProcessor$lambda$0$Type(){ +} + +defineClass(1518, 1, {}, HighDegreeNodeLayeringProcessor$lambda$0$Type); +_.apply_0 = function apply_80(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', 1518); +function HighDegreeNodeLayeringProcessor$lambda$1$Type(){ +} + +defineClass(1519, 1, {}, HighDegreeNodeLayeringProcessor$lambda$1$Type); +_.apply_0 = function apply_81(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', 1519); +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), 11); + lastNodeSource = castTo($getProperty(lastNode, LONG_EDGE_SOURCE), 11); + currNodeTarget = castTo($getProperty(currNode, LONG_EDGE_TARGET), 11); + lastNodeTarget = castTo($getProperty(lastNode, LONG_EDGE_TARGET), 11); + sameSource = !!currNodeSource && currNodeSource == lastNodeSource; + sameTarget = !!currNodeTarget && currNodeTarget == lastNodeTarget; + if (!currHasLabelDummies && !lastHasLabelDummies) { + return new HyperedgeDummyMerger$MergeState(castTo($next_7(new ArrayList$1(currNode.ports)), 11).id_0 == castTo($next_7(new ArrayList$1(lastNode.ports)), 11).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), 11); + 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_7(p2$iterator), 11); + 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_36, 132, 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(), 11); + 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(), 11); + mergeTargetOutputPort = castTo($getPorts_1(mergeTarget, EAST_2).iterator_0().next_1(), 11); + for (port$iterator = new ArrayList$1(mergeSource.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + while (port.incomingEdges.array.length != 0) { + $setTarget_0(castTo($get_11(port.incomingEdges, 0), 17), mergeTargetInputPort); + } + while (port.outgoingEdges.array.length != 0) { + $setSource_0(castTo($get_11(port.outgoingEdges, 0), 17), 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; + $begin(monitor, '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++), 29)); + 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; + } + } + $done_0(monitor); +} + +function HyperedgeDummyMerger(){ +} + +defineClass(1525, 1, $intern_105, HyperedgeDummyMerger); +_.process = function process_17(layeredGraph, monitor){ + $process_19(this, castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HyperedgeDummyMerger_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HyperedgeDummyMerger', 1525); +function HyperedgeDummyMerger$MergeState(allowMerge, sameSource, sameTarget){ + this.allowMerge = allowMerge; + this.sameSource = sameSource; + this.sameTarget = sameTarget; +} + +defineClass(792, 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', 792); +function HyperedgeDummyMerger$lambda$0$Type(){ +} + +defineClass(1526, 1, {}, HyperedgeDummyMerger$lambda$0$Type); +_.apply_0 = function apply_82(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1526); +function HyperedgeDummyMerger$lambda$1$Type(){ +} + +defineClass(1527, 1, {}, HyperedgeDummyMerger$lambda$1$Type); +_.apply_0 = function apply_83(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', 1527); +function HyperedgeDummyMerger$lambda$2$Type(){ +} + +defineClass(1528, 1, $intern_19, HyperedgeDummyMerger$lambda$2$Type); +_.accept = function accept_74(arg0){ + castTo(arg0, 11).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', 1528); +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_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + bendx = firstPoint.x_0; + } + if (firstPoint.x_0 <= bendx) { + bendEdges.array[bendEdges.array.length] = 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_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + bendx = lastPoint.x_0; + } + if (lastPoint.x_0 >= bendx) { + bendEdges.array[bendEdges.array.length] = 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_7(edge$iterator), 17); + 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)), 74); + !!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; + $begin(monitor, 'Hypernodes processing', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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_7(port$iterator), 11); + 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); + } + } + } + $done_0(monitor); +} + +function HypernodesProcessor(){ +} + +defineClass(1529, 1, $intern_105, HypernodesProcessor); +_.process = function process_18(layeredGraph, monitor){ + $process_20(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_HypernodesProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'HypernodesProcessor', 1529); +function $process_21(layeredGraph, monitor){ + var bottomConstrainedNodes, constraint, i, layer, layer$iterator, node, node$iterator, nodes, topInsertionIndex; + $begin(monitor, '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_7(layer$iterator), 29); + 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)), 303); + 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) && $add_3(bottomConstrainedNodes, nodes[i]); + } + for (node$iterator = new ArrayList$1(bottomConstrainedNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, null); + $setLayer_0(node, layer); + } + } + $done_0(monitor); +} + +function InLayerConstraintProcessor(){ +} + +defineClass(1530, 1, $intern_105, InLayerConstraintProcessor); +_.process = function process_19(layeredGraph, monitor){ + $process_21(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InLayerConstraintProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InLayerConstraintProcessor', 1530); +function $process_22(layeredGraph, monitor){ + $begin(monitor, 'Node margin calculation', 1); + $process($excludeEdgeHeadTailLabels(new NodeMarginCalculator(($clinit_LGraphAdapters() , new LGraphAdapters$LGraphAdapter(layeredGraph, false, false, new LGraphAdapters$lambda$0$Type))))); + $done_0(monitor); +} + +function InnermostNodeMarginCalculator(){ +} + +defineClass(1531, 1, $intern_105, InnermostNodeMarginCalculator); +_.process = function process_20(layeredGraph, monitor){ + $process_22(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InnermostNodeMarginCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InnermostNodeMarginCalculator', 1531); +function $findNorthSouthPortXCoordinate(dummy){ + var e, e$iterator, margins, max_0, min_0, n, port; + port = castTo($get_11(dummy.ports, 0), 11); + 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_59; + for (e$iterator = new ArrayList$1(port.outgoingEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + n = e.target.owner; + margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 142); + 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_60; + for (e$iterator = new ArrayList$1(port.incomingEdges); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + n = e.source.owner; + margins = castTo($getProperty(n, ($clinit_LayeredOptions() , MARGINS)), 142); + 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), 17); + 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_7(node$iterator0), 10); + if (node.type_0 == ($clinit_LNode$NodeType() , NORMAL)) { + margins = castTo($getProperty(node, ($clinit_LayeredOptions() , MARGINS)), 142); + 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_7(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)), 163); + 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), 303); + 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_9(node_0, d_1){ + return node_0.pos.y_0 = (checkCriticalNotNull(d_1) , d_1); +} + +function lambda$3_1(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(1532, 1, $intern_105, InteractiveExternalPortPositioner); +_.process = function process_21(layeredGraph, progressMonitor){ + $process_23(this, castTo(layeredGraph, 37)); +} +; +_.maxX = $intern_60; +_.maxY = $intern_60; +_.minX = $intern_59; +_.minY = $intern_59; +var Lorg_eclipse_elk_alg_layered_intermediate_InteractiveExternalPortPositioner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InteractiveExternalPortPositioner', 1532); +function InteractiveExternalPortPositioner$lambda$0$Type(){ +} + +defineClass(1533, 1, {}, InteractiveExternalPortPositioner$lambda$0$Type); +_.apply_0 = function apply_84(arg0){ + return castTo(arg0, 17).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', 1533); +function InteractiveExternalPortPositioner$lambda$1$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1534, 1, {}, InteractiveExternalPortPositioner$lambda$1$Type); +_.apply_0 = function apply_85(arg0){ + return lambda$1_9(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', 1534); +function InteractiveExternalPortPositioner$lambda$2$Type(){ +} + +defineClass(1535, 1, {}, InteractiveExternalPortPositioner$lambda$2$Type); +_.apply_0 = function apply_86(arg0){ + return castTo(arg0, 17).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', 1535); +function InteractiveExternalPortPositioner$lambda$3$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1536, 1, {}, InteractiveExternalPortPositioner$lambda$3$Type); +_.apply_0 = function apply_87(arg0){ + return lambda$3_1(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', 1536); +function InteractiveExternalPortPositioner$lambda$4$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1537, 1, {}, InteractiveExternalPortPositioner$lambda$4$Type); +_.apply_0 = function apply_88(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', 1537); +function InteractiveExternalPortPositioner$lambda$5$Type(node_0){ + this.node_0 = node_0; +} + +defineClass(1538, 1, {}, InteractiveExternalPortPositioner$lambda$5$Type); +_.apply_0 = function apply_89(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', 1538); +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_32(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_36, 77, 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(77, 22, {3:1, 35:1, 22:1, 77:1, 234: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', 77, Ljava_lang_Enum_2_classLit, values_38, valueOf_32); +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)); + layerNodeList.array[layerNodeList.array.length] = 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++), 70)); + labelPlacement = castTo($getProperty(label_0, EDGE_LABELS_PLACEMENT), 272); + 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)); + layerNodeList.array[layerNodeList.array.length] = 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++), 70)); + 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; + $begin(monitor, '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++), 29)); + for (node$iterator0 = new ArrayList$1(unassignedNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 10); + $setLayer_0(node, previousLayer); + } + unassignedNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator1 = new ArrayList$1(currentLayer.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_7(node$iterator1), 10); + if (node.type_0 != ($clinit_LNode$NodeType() , NORMAL)) { + continue; + } + if (!$isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + 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(), 11); + edges = port.incomingEdges; + edgeArray = castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); + 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(), 11); + edges = port.outgoingEdges; + edgeArray = castTo($toArray_2(edges, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LEdge_2_classLit, $intern_106, 17, edges.array.length, 0, 1)), 474); + 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_7(node$iterator), 10); + $setLayer_0(node, currentLayer); + } + $done_0(monitor); +} + +function $setLongEdgeSourceAndTarget(longEdgeDummy, dummyInputPort, dummyOutputPort){ + var sourceNode, sourceNodeType, sourcePort, targetNode, targetNodeType, targetPort; + sourcePort = castTo($get_11(dummyInputPort.incomingEdges, 0), 17).source; + sourceNode = sourcePort.owner; + sourceNodeType = sourceNode.type_0; + targetPort = castTo($get_11(dummyOutputPort.outgoingEdges, 0), 17).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), 11)):$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), 11)):$setProperty_0(longEdgeDummy, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET), targetPort); +} + +function InvertedPortProcessor(){ +} + +defineClass(1539, 1, $intern_105, InvertedPortProcessor); +_.process = function process_22(layeredGraph, monitor){ + $process_24(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_InvertedPortProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'InvertedPortProcessor', 1539); +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_7(label$iterator), 70); + 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), 11); + 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)), 61).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), 70).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), 70).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)), 61).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), 70).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_7(label$iterator), 70); + 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; + $begin(monitor, '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_7(layer$iterator), 29); + $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)); + } + } + $done_0(monitor); +} + +function LabelAndNodeSizeProcessor(){ +} + +defineClass(1540, 1, $intern_105, LabelAndNodeSizeProcessor); +_.process = function process_23(layeredGraph, monitor){ + $process_25(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelAndNodeSizeProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelAndNodeSizeProcessor', 1540); +function LabelAndNodeSizeProcessor$lambda$0$Type(){ +} + +defineClass(1541, 1, $intern_39, LabelAndNodeSizeProcessor$lambda$0$Type); +_.test_0 = function test_37(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', 1541); +function LabelAndNodeSizeProcessor$lambda$1$Type(){ +} + +defineClass(1542, 1, $intern_39, LabelAndNodeSizeProcessor$lambda$1$Type); +_.test_0 = function test_38(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', 1542); +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(1543, 1, $intern_19, LabelAndNodeSizeProcessor$lambda$2$Type); +_.accept = function accept_75(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', 1543); +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_7(dummyPort$iterator), 11); + 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; + $begin(monitor, '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), 103); + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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), 17); + 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); + newDummyNodes.array[newDummyNodes.array.length] = 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++), 70)); + 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; + } + representedLabels.array[representedLabels.array.length] = 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); + $done_0(monitor); +} + +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(1544, 1, $intern_105, LabelDummyInserter); +_.process = function process_24(layeredGraph, monitor){ + $process_26(castTo(layeredGraph, 37), monitor); +} +; +var CENTER_LABEL; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyInserter', 1544); +function LabelDummyInserter$1(){ +} + +defineClass(1545, 1, $intern_89, LabelDummyInserter$1); +_.apply_1 = function apply_90(label_0){ + return maskUndefined($getProperty(castTo(label_0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT))) === maskUndefined(($clinit_EdgeLabelPlacement() , CENTER_5)); +} +; +_.equals_0 = function equals_118(other){ + return this === other; +} +; +_.test_0 = function test_39(input_0){ + return maskUndefined($getProperty(castTo(input_0, 70), ($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', 1545); +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(), 70); + 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 = instanceOf(effectiveLabels, 152)?$reverse(castTo(effectiveLabels, 152)):instanceOf(effectiveLabels, 131)?castTo(effectiveLabels, 131).forwardList:instanceOf(effectiveLabels, 54)?new Lists$RandomAccessReverseList(effectiveLabels):new Lists$ReverseList(effectiveLabels)); + for (label$iterator = effectiveLabels.iterator_0(); label$iterator.hasNext_0();) { + label_0 = castTo(label$iterator.next_1(), 70); + 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; + $begin(monitor, '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), 103); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + 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)), 17); + 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 - 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); + } + } + } + $done_0(monitor); +} + +function LabelDummyRemover(){ +} + +defineClass(1546, 1, $intern_105, LabelDummyRemover); +_.process = function process_25(layeredGraph, monitor){ + $process_27(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummyRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummyRemover', 1546); +function LabelDummyRemover$lambda$0$Type(){ +} + +defineClass(1547, 1, $intern_39, LabelDummyRemover$lambda$0$Type); +_.test_0 = function test_40(arg0){ + return $booleanValue(castToBoolean($getProperty(castTo(arg0, 70), ($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', 1547); +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_7(layer$iterator), 29); + 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(), 70); + $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++), 29)); + 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_7(layer$iterator), 29); + 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_65, 25, 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_7(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], 285)), $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))), 17).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))), 17).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], 285)); + 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], 285)); + 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_36, 227, 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_0($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))), 17); + outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(labelDummyInfo.labelDummy).val$inputs1.iterator_0(), new Iterables$10))), 17); + 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(), 285); + labelDummyInfo.leftmostLayerId == labelDummyInfo.rightmostLayerId?$assignLayer(this$static, labelDummyInfo, labelDummyInfo.leftmostLayerId):$assignToWiderLayer(this$static, labelDummyInfo) || (remainingLabels.array[remainingLabels.array.length] = 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; + $begin(monitor, 'Label dummy switching', 1); + defaultPlacementStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_LABELS_CENTER_LABEL_PLACEMENT_STRATEGY_0)), 227); + $assignIdsToLayers(layeredGraph); + labelDummyInfos = $gatherLabelDummyInfos(layeredGraph, defaultPlacementStrategy); + this$static.layerWidths = initUnidimensionalArray(D_classLit, $intern_65, 25, layeredGraph.layers.array.length, 15, 1); + for (strategy$array0 = ($clinit_CenterEdgeLabelPlacementStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_layered_options_CenterEdgeLabelPlacementStrategy_2_classLit, 1), $intern_36, 227, 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_36, 227, 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_36, 227, 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; + $done_0(monitor); +} + +function $processStrategy(this$static, labelDummyInfos){ + var labelDummyInfo, labelDummyInfo$iterator, reversed, reversed0, layers, lowerMedian; + if (labelDummyInfos.isEmpty()) { + return; + } + if (castTo(labelDummyInfos.get_0(0), 285).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(), 285); + 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(), 11); + outputPort1 = castTo($getPorts(labelDummy, OUTPUT).iterator_0().next_1(), 11); + inputPort2 = castTo($getPorts(longEdgeDummy, INPUT).iterator_0().next_1(), 11); + outputPort2 = castTo($getPorts(longEdgeDummy, OUTPUT).iterator_0().next_1(), 11); + 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_2(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(1358, 1, $intern_105, LabelDummySwitcher); +_.process = function process_26(layeredGraph, monitor){ + $process_28(this, castTo(layeredGraph, 37), monitor); +} +; +_.layerWidths = null; +var INCLUDE_LABEL; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher', 1358); +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))), 17).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))), 17).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(), 70); + 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), 227); + break; + } + } +} + +defineClass(285, 1, {285: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', 285); +function LabelDummySwitcher$lambda$0$Type(){ +} + +defineClass(1359, 1, {}, LabelDummySwitcher$lambda$0$Type); +_.apply_0 = function apply_91(arg0){ + return $clinit_LabelDummySwitcher() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1359); +function LabelDummySwitcher$lambda$1$Type(){ +} + +defineClass(1360, 1, $intern_39, LabelDummySwitcher$lambda$1$Type); +_.test_0 = function test_41(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', 1360); +function LabelDummySwitcher$lambda$2$Type(defaultPlacementStrategy_0){ + this.defaultPlacementStrategy_0 = defaultPlacementStrategy_0; +} + +defineClass(1361, 1, {}, LabelDummySwitcher$lambda$2$Type); +_.apply_0 = function apply_92(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', 1361); +function LabelDummySwitcher$lambda$3$Type(infos_0){ + this.infos_0 = infos_0; +} + +defineClass(1362, 1, $intern_19, LabelDummySwitcher$lambda$3$Type); +_.accept = function accept_76(arg0){ + lambda$3_2(this.infos_0, castTo(arg0, 285)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelDummySwitcher$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelDummySwitcher/lambda$3$Type', 1362); +function LabelDummySwitcher$lambda$4$Type(){ +} + +defineClass(1363, 1, $intern_88, LabelDummySwitcher$lambda$4$Type); +_.compare_1 = function compare_46(arg0, arg1){ + return lambda$4_5(castTo(arg0, 285), castTo(arg1, 285)); +} +; +_.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', 1363); +function $process_29(layeredGraph, monitor){ + $begin(monitor, 'Label management', 1); + throwClassCastExceptionUnlessNull($getProperty(layeredGraph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); + $done_0(monitor); +} + +function LabelManagementProcessor(){ +} + +defineClass(790, 1, $intern_105, LabelManagementProcessor); +_.process = function process_27(layeredGraph, monitor){ + $process_29(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelManagementProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelManagementProcessor', 790); +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_6(currentDummy$iterator), 10); + currLongEdgeSource = (endPort0 = castTo($getProperty(currentDummy, ($clinit_InternalProperties_1() , LONG_EDGE_SOURCE)), 11) , !endPort0?null:endPort0.owner); + currLongEdgeTarget = (endPort = castTo($getProperty(currentDummy, LONG_EDGE_TARGET), 11) , !endPort?null:endPort.owner); + if (prevLongEdgeSource != currLongEdgeSource || prevLongEdgeTarget != currLongEdgeTarget) { + $applyLabelSidesToLabelDummyRun(labelDummyRun, defaultSide); + prevLongEdgeSource = currLongEdgeSource; + prevLongEdgeTarget = currLongEdgeTarget; + } + labelDummyRun.array[labelDummyRun.array.length] = 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(), 70); + $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_7(label$iterator), 70); + $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 = $spliterator($filter(castTo($getProperty(labelDummy, ($clinit_InternalProperties_1() , REPRESENTED_LABELS)), 15).stream(), new Predicate$lambda$2$Type(new LabelSideSelector$lambda$0$Type))).tryAdvance(($clinit_StreamImpl() , NULL_CONSUMER))?side:($clinit_LabelSide() , INLINE); + $setProperty_0(labelDummy, LABEL_SIDE, effectiveSide); + if (effectiveSide != ($clinit_LabelSide() , BELOW)) { + originEdge = castTo($getProperty(labelDummy, ORIGIN_0), 17); + 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) { + labelDummy.size_0.y_0 -= $doubleValue(castToDouble($getProperty($getGraph(labelDummy), SPACING_EDGE_LABEL_0))); + portPos = (labelDummy.size_0.y_0 - $wnd.Math.ceil(thickness)) / 2; + } + for (port$iterator = new ArrayList$1(labelDummy.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + 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_7(dummyNode$iterator), 10); + $applyLabelSide_1(dummyNode, defaultSide); + } + } + labelDummyRun.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } +} + +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_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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))), 17) , outgoing = castTo($next_0(new Iterators$ConcatenatedIterator(transform_2($getOutgoingEdges(node).val$inputs1.iterator_0(), new Iterables$10))), 17) , !$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), 17); + 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)), 275); + $begin(monitor, '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)); + } + $done_0(monitor); +} + +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_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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), 17); + $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_7(layer$iterator), 29); + topGroup = true; + labelDummiesInQueue = 0; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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_7(port$iterator), 11); + 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_6(labelList$iterator), 15); + $applyLabelSide(labelList, defaultSide); + } + } +} + +function LabelSideSelector(){ +} + +defineClass(1548, 1, $intern_105, LabelSideSelector); +_.process = function process_28(layeredGraph, monitor){ + $process_30(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelSideSelector_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelSideSelector', 1548); +function LabelSideSelector$lambda$0$Type(){ +} + +defineClass(1549, 1, $intern_39, LabelSideSelector$lambda$0$Type); +_.test_0 = function test_42(arg0){ + return $booleanValue(castToBoolean($getProperty(castTo(arg0, 70), ($clinit_LayeredOptions() , EDGE_LABELS_INLINE_0)))); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LabelSideSelector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LabelSideSelector/lambda$0$Type', 1549); +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_7(layer$iterator), 29); + 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)), 163).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++), 29)).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), 17); + 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; + $begin(monitor, 'Layer constraint postprocessing', 1); + layers = layeredGraph.layers; + if (layers.array.length != 0) { + firstLayer = (checkCriticalElementIndex(0, layers.array.length) , castTo(layers.array[0], 29)); + lastLayer = castTo($get_11(layers, layers.array.length - 1), 29); + 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 || (layers.array[layers.array.length] = 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 || (layers.array[layers.array.length] = lastSeparateLayer , true); + } + $done_0(monitor); +} + +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)), 163).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), 17); + if (!!hiddenEdge.source && !!hiddenEdge.target) { + continue; + } + isOutgoing = !hiddenEdge.target; + originalOppositePort = castTo($getProperty(hiddenEdge, ORIGINAL_OPPOSITE_PORT), 11); + 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), 17); + 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), 17); + 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(1557, 1, $intern_105, LayerConstraintPostprocessor); +_.process = function process_29(layeredGraph, monitor){ + $process_31(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPostprocessor', 1557); +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)), 163); + 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), 17); + 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), 17); + 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), 17); + 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)), 163).ordinal) { + case 2: + case 4: + return true; + default:return false; + } +} + +function $process_32(layeredGraph, monitor){ + var hiddenNodes, lNode, nodeIterator; + $begin(monitor, '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); + hiddenNodes.array[hiddenNodes.array.length] = lNode; + $remove_8(nodeIterator); + } + } + hiddenNodes.array.length == 0 || $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , HIDDEN_NODES), hiddenNodes); + $done_0(monitor); +} + +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), 359), castTo($getProperty(hiddenNode, LAYERING_LAYER_CONSTRAINT_0), 163)); + $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(1558, 1, $intern_105, LayerConstraintPreprocessor); +_.process = function process_30(layeredGraph, monitor){ + $process_32(castTo(layeredGraph, 37), monitor); +} +; +var HIDDEN_NODE_CONNECTIONS; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerConstraintPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerConstraintPreprocessor', 1558); +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_33(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_36, 359, 0, [NONE_0, FIRST_SEPARATE, LAST_SEPARATE, BOTH]); +} + +defineClass(359, 22, {3:1, 35:1, 22:1, 359: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', 359, Ljava_lang_Enum_2_classLit, values_39, valueOf_33); +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_36, 359, 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; + $begin(monitor, 'Layer size calculation', 1); + minY = $intern_59; + maxY = $intern_60; + foundNodes = false; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + 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_7(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)), 142).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)), 142).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; + $done_0(monitor); +} + +function LayerSizeAndGraphHeightCalculator(){ +} + +defineClass(1559, 1, $intern_105, LayerSizeAndGraphHeightCalculator); +_.process = function process_31(layeredGraph, monitor){ + $process_33(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LayerSizeAndGraphHeightCalculator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LayerSizeAndGraphHeightCalculator', 1559); +function $process_34(layeredGraph, monitor){ + var addUnnecessaryBendpoints, layer, layer$iterator, node, nodeIterator; + $begin(monitor, '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_7(layer$iterator), 29); + 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); + } + } + } + $done_0(monitor); +} + +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(), 11).incomingEdges; + outputPortEdges = castTo($getPorts_1(longEdgeDummy, EAST_2).iterator_0().next_1(), 11).outgoingEdges; + edgeCount = inputPortEdges.array.length; + unnecessaryBendpoint = $getAbsoluteAnchor(castTo($get_11(longEdgeDummy.ports, 0), 11)); + while (edgeCount-- > 0) { + survivingEdge = (checkCriticalElementIndex(0, inputPortEdges.array.length) , castTo(inputPortEdges.array[0], 17)); + droppedEdge = (checkCriticalElementIndex(0, outputPortEdges.array.length) , castTo(outputPortEdges.array[0], 17)); + 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_10(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_7(label$iterator), 70); + survivingLabels.array[survivingLabels.array.length] = label_0; + } + survivingJunctionPoints = castTo($getProperty(survivingEdge, ($clinit_LayeredOptions() , JUNCTION_POINTS)), 74); + droppedJunctionsPoints = castTo($getProperty(droppedEdge, JUNCTION_POINTS), 74); + 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_10(jp$iterator), 8); + $add_7(survivingJunctionPoints, new KVector_2(jp)); + } + } + } +} + +defineClass(1560, 1, $intern_105, LongEdgeJoiner); +_.process = function process_32(layeredGraph, monitor){ + $process_34(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeJoiner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeJoiner', 1560); +function $process_35(layeredGraph, monitor){ + var edge, edge$iterator, layer, layerIter, nextLayer, node, node$iterator, port, port$iterator, targetLayer, targetPort, dummyNode; + $begin(monitor, 'Edge splitting', 1); + if (layeredGraph.layers.array.length <= 2) { + $done_0(monitor); + 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++), 29)); + 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++), 29)); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + 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)); + } + } + } + } + $done_0(monitor); +} + +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++), 70)); + labelPlacement = castTo($getProperty(label_0, ($clinit_LayeredOptions() , EDGE_LABELS_PLACEMENT)), 272); + 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), 11)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); + $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), 11)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); + $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), 11)); + $setProperty_0(dummyNode, LONG_EDGE_TARGET, castTo($getProperty(outEdgeTargetNode, LONG_EDGE_TARGET), 11)); + $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(1561, 1, $intern_105, LongEdgeSplitter); +_.process = function process_33(layeredGraph, monitor){ + $process_35(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_LongEdgeSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'LongEdgeSplitter', 1561); +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, 19, this$static.maxHeight, 0, 1)); + this$static.currentWidthPixel = newArrayList_1(initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, 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_7(layer$iterator0), 29); + layer.id_0 = layerID; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = nodeID; + ++nodeID; + } + --layerID; + } + this$static.layers = initUnidimensionalArray(I_classLit, $intern_48, 25, nodeID, 15, 1); + this$static.degreeDiff = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 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_7(layer$iterator), 29); + 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_7(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_4(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 $process_36(this$static, layeredGraph, progressMonitor){ + var donna, donna$iterator, funFunction, martha, martha$iterator, newMaxWidth, newMaxWidthPixel, promoteUntil, promoteUntilD, promoteUntilN; + $begin(progressMonitor, 'Node promotion heuristic', 1); + this$static.masterGraph = layeredGraph; + $precalculateAndSetInformation(this$static); + this$static.promotionStrategy = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_NODE_PROMOTION_STRATEGY_0)), 260); + promoteUntil = castTo($getProperty(this$static.masterGraph, LAYERING_NODE_PROMOTION_MAX_ITERATIONS_0), 19).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 = ($clinit_NodePromotionStrategy() , 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_7(martha$iterator), 19); + 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 = ($clinit_NodePromotionStrategy() , 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_7(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; + default:$promotionMagic(this$static, funFunction); + } + $setNewLayering(this$static, layeredGraph); + $done_0(progressMonitor); +} + +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_4(castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).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_4(1)); + $add_3(this$static.currentWidthPixel, nodeSize); + } + else { + dummiesReduced = this$static.degreeDiff[node.id_0][1]; + $set_1(this$static.currentWidth, nodeLayerPos, valueOf_4(castTo($get_11(this$static.currentWidth, nodeLayerPos), 19).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), 19).value_0 > this$static.maxWidth || castTo($get_11(this$static.currentWidth, nodeLayerPos - 1), 19).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), 17); + masterNode = edge.source.owner; + if (this$static.layers[masterNode.id_0] == nodeLayerPos) { + promotion = $promoteNode(this$static, masterNode); + dummydiff = dummydiff + castTo(promotion.first, 19).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_4(dummydiff), ($clinit_Boolean() , maxWidthNotExceeded?true:false)); +} + +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_7(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, 19).value_0 < 0 && apply_0) { + ++promotions; + layeringBackup = copyOf(this$static.layers, this$static.layers.length); + this$static.dummyNodeCount = this$static.dummyNodeCount + castTo(promotionPair.first, 19).value_0; + reducedDummies += dummyBackup - this$static.dummyNodeCount; + dummyBackup = this$static.dummyNodeCount + castTo(promotionPair.first, 19).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_4(reducedDummies), valueOf_4(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; + layList.array[layList.array.length] = laLaLayer; + } + for (node$iterator = new ArrayList$1(this$static.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $setLayer_0(node, castTo($get_11(layList, this$static.maxHeight - this$static.layers[node.id_0]), 29)); + } + layerIt = new ArrayList$1(layList); + while (layerIt.i < layerIt.this$01.array.length) { + possiblyEvilLayer = castTo($next_7(layerIt), 29); + possiblyEvilLayer.nodes.array.length == 0 && $remove_13(layerIt); + } + layeredGraph.layers.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_2(layeredGraph.layers, layList); +} + +function NodePromotion(){ +} + +function lambda$1_10(promoteUntilN_0, pair_1){ + return $clinit_Boolean() , castTo(pair_1.second, 19).value_0 < promoteUntilN_0?true:false; +} + +function lambda$2_5(promoteUntilD_0, pair_1){ + return $clinit_Boolean() , castTo(pair_1.first, 19).value_0 < promoteUntilD_0?true:false; +} + +defineClass(1562, 1, $intern_105, NodePromotion); +_.process = function process_34(layeredGraph, progressMonitor){ + $process_36(this, castTo(layeredGraph, 37), progressMonitor); +} +; +_.dummyNodeCount = 0; +_.dummySize = 0; +_.maxHeight = 0; +_.maxWidth = 0; +_.maxWidthPixel = 0; +_.nodeSizeAffix = 0; +var Lorg_eclipse_elk_alg_layered_intermediate_NodePromotion_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NodePromotion', 1562); +function NodePromotion$lambda$0$Type(){ +} + +defineClass(1563, 1, {}, NodePromotion$lambda$0$Type); +_.apply_0 = function apply_93(arg0){ + return castTo(arg0, 46) , $clinit_Boolean() , true; +} +; +_.equals_0 = function equals_120(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', 1563); +function NodePromotion$lambda$1$Type(promoteUntilN_0){ + this.promoteUntilN_0 = promoteUntilN_0; +} + +defineClass(1564, 1, {}, NodePromotion$lambda$1$Type); +_.apply_0 = function apply_94(arg0){ + return lambda$1_10(this.promoteUntilN_0, castTo(arg0, 46)); +} +; +_.equals_0 = function equals_121(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', 1564); +function NodePromotion$lambda$2$Type(promoteUntilD_0){ + this.promoteUntilD_0 = promoteUntilD_0; +} + +defineClass(1565, 1, {}, NodePromotion$lambda$2$Type); +_.apply_0 = function apply_95(arg0){ + return lambda$2_5(this.promoteUntilD_0, castTo(arg0, 46)); +} +; +_.equals_0 = function equals_122(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', 1565); +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; + $begin(monitor, 'Odd port side processing', 1); + routing = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + 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_7(port$iterator), 11); + port.incomingEdges.array.length == 0 || $processSplineInputPort(port); + port.outgoingEdges.array.length == 0 || $processSplineOutputPort(port); + } + } + else if (instanceOf($getProperty(node, ($clinit_InternalProperties_1() , ORIGIN_0)), 17)) { + selfLoop = castTo($getProperty(node, ORIGIN_0), 17); + inputPort = castTo($getPorts_1(node, ($clinit_PortSide() , WEST_2)).iterator_0().next_1(), 11); + outputPort = castTo($getPorts_1(node, EAST_2).iterator_0().next_1(), 11); + originInputPort = castTo($getProperty(inputPort, ORIGIN_0), 11); + originOutputPort = castTo($getProperty(outputPort, ORIGIN_0), 11); + $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_7(portIterator), 11); + previousPort = null; + while (portIterator.i < portIterator.this$01.array.length) { + previousPort = currentPort; + currentPort = castTo($next_7(portIterator), 11); + 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_7(port$iterator), 11); + port.incomingEdges.array.length == 0 || $processInputPort(port, sameOriginPort); + port.outgoingEdges.array.length == 0 || $processOutputPort(port, sameOriginPort); + } + } + $setLayer_0(node, null); + } + } + $done_0(monitor); +} + +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)), 11); + 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)), 74); + 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)), 11); + 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)), 74); + 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)), 11); + $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)), 11); + $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(1566, 1, $intern_105, NorthSouthPortPostprocessor); +_.process = function process_35(layeredGraph, monitor){ + $process_37(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPostprocessor', 1566); +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_4(crossingHint)); + dummyNodes.array[dummyNodes.array.length] = 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_10(port$iterator0), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + if (edge.source.owner == edge.target.owner) { + if (port.side == edge.target.side) { + sameSideSelfLoopEdges.array[sameSideSelfLoopEdges.array.length] = edge; + continue; + } + else if (port.side == ($clinit_PortSide() , NORTH_3) && edge.target.side == SOUTH_2) { + northSouthSelfLoopEdges.array[northSouthSelfLoopEdges.array.length] = edge; + continue; + } + } + } + } + for (edge$iterator1 = new ArrayList$1(northSouthSelfLoopEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { + edge = castTo($next_7(edge$iterator1), 17); + $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_7(edge$iterator), 17); + 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); + dummyNodes.array[dummyNodes.array.length] = dummy; + $setProperty_0(dummy, CROSSING_HINT, valueOf_4(2)); + } + for (port$iterator = $listIterator_2(ports, 0); port$iterator.currentNode != port$iterator.this$01.tail;) { + port = castTo($next_10(port$iterator), 11); + in_0 = port.incomingEdges.array.length > 0; + out = port.outgoingEdges.array.length > 0; + in_0 && out?(inOutPorts.array[inOutPorts.array.length] = port , true):in_0?(inPorts.array[inPorts.array.length] = port , true):out && (outPorts.array[outPorts.array.length] = port , true); + } + for (inPort$iterator = new ArrayList$1(inPorts); inPort$iterator.i < inPort$iterator.this$01.array.length;) { + inPort = castTo($next_7(inPort$iterator), 11); + $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_7(outPort$iterator), 11); + $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_7(inOutPort$iterator), 11); + $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); + southDummyNodes.array[southDummyNodes.array.length] = southDummy; + $setProperty_0(northDummy, CROSSING_HINT, valueOf_4(1)); + $setProperty_0(southDummy, CROSSING_HINT, valueOf_4(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; + $begin(monitor, '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_7(layer$iterator), 29); + 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)), 98)))) { + continue; + } + $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) || $sortPortList_0(node); + $setProperty_0(node, ($clinit_InternalProperties_1() , IN_LAYER_LAYOUT_UNIT), node); + northDummyNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + southDummyNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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_7(dummy$iterator0), 10); + $setLayer(dummy, insertPoint, layer); + ++pointer; + $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + originPort = castTo($getProperty(dummyPort, ORIGIN_0), 11); + $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(), 11); + $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_7(dummy$iterator), 10); + $setLayer(dummy, ++pointer, layer); + $setProperty_0(dummy, IN_LAYER_LAYOUT_UNIT, node); + dummyPort = castTo($get_11(dummy.ports, 0), 11); + originPort = castTo($getProperty(dummyPort, ORIGIN_0), 11); + $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); + } + } + $done_0(monitor); +} + +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_7(port$iterator), 11); + 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_24(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(1567, 1, $intern_105, NorthSouthPortPreprocessor); +_.process = function process_36(layeredGraph, monitor){ + $process_38(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_NorthSouthPortPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'NorthSouthPortPreprocessor', 1567); +function NorthSouthPortPreprocessor$lambda$0$Type(){ +} + +defineClass(1568, 1, $intern_88, NorthSouthPortPreprocessor$lambda$0$Type); +_.compare_1 = function compare_47(arg0, arg1){ + return lambda$0_24(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_123(other){ + return this === other; +} +; +_.reversed = function reversed_39(){ + 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', 1568); +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; + $begin(monitor, '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_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + idIterator = sortedPartitionIDs.iterator_0(); + firstId = castTo(idIterator.next_1(), 19); + while (idIterator.hasNext_0()) { + secondId = castTo(idIterator.next_1(), 19); + $connectNodes(castTo($get(partitionToNodesMap, firstId), 21), castTo($get(partitionToNodesMap, secondId), 21)); + firstId = secondId; + } + $done_0(monitor); +} + +function PartitionMidprocessor(){ +} + +function lambda$1_11(partitionToNodesMap_0, node_1){ + return $put(partitionToNodesMap_0, castTo($getProperty(node_1, ($clinit_LayeredOptions() , PARTITIONING_PARTITION)), 19), node_1); +} + +defineClass(1569, 1, $intern_105, PartitionMidprocessor); +_.process = function process_37(lGraph, monitor){ + $process_39(castTo(lGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionMidprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionMidprocessor', 1569); +function PartitionMidprocessor$lambda$0$Type(){ +} + +defineClass(1570, 1, $intern_39, 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', 1570); +function PartitionMidprocessor$lambda$1$Type(partitionToNodesMap_0){ + this.partitionToNodesMap_0 = partitionToNodesMap_0; +} + +defineClass(1571, 1, $intern_19, PartitionMidprocessor$lambda$1$Type); +_.accept = function accept_77(arg0){ + lambda$1_11(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', 1571); +function $process_40(lGraph, monitor){ + var layer, layer$iterator, node, node$iterator, port, ports; + $begin(monitor, 'Partition postprocessing', 1); + for (layer$iterator = new ArrayList$1(lGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + ports = new ArrayList$1(node.ports); + while (ports.i < ports.this$01.array.length) { + port = castTo($next_7(ports), 11); + $booleanValue(castToBoolean($getProperty(port, ($clinit_InternalProperties_1() , PARTITION_DUMMY)))) && $remove_13(ports); + } + } + } + $done_0(monitor); +} + +function PartitionPostprocessor(){ +} + +defineClass(1572, 1, $intern_105, PartitionPostprocessor); +_.process = function process_38(lGraph, monitor){ + $process_40(castTo(lGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPostprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPostprocessor', 1572); +function $mustBeReversed(lEdge){ + var sourcePartition, targetPartition; + if ($hasProperty(lEdge.target.owner, ($clinit_LayeredOptions() , PARTITIONING_PARTITION))) { + sourcePartition = castTo($getProperty(lEdge.source.owner, PARTITIONING_PARTITION), 19); + targetPartition = castTo($getProperty(lEdge.target.owner, PARTITIONING_PARTITION), 19); + return compare_5(sourcePartition.value_0, targetPartition.value_0) > 0; + } + else { + return false; + } +} + +function $process_41(lGraph, monitor){ + var edgesToBeReversed; + $begin(monitor, '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_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + $forEach_3(edgesToBeReversed.stream(), new PartitionPreprocessor$lambda$3$Type); + $done_0(monitor); +} + +function $reverse_1(lEdge){ + var priority; + $reverse_0(lEdge, true); + priority = $intern_45; + $hasProperty(lEdge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)) && (priority += castTo($getProperty(lEdge, PRIORITY_DIRECTION_0), 19).value_0); + $setProperty_0(lEdge, PRIORITY_DIRECTION_0, valueOf_4(priority)); +} + +function PartitionPreprocessor(){ +} + +defineClass(1573, 1, $intern_105, PartitionPreprocessor); +_.process = function process_39(lGraph, monitor){ + $process_41(castTo(lGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor', 1573); +function PartitionPreprocessor$lambda$0$Type(){ +} + +defineClass(1574, 1, $intern_39, 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', 1574); +function PartitionPreprocessor$lambda$1$Type(){ +} + +defineClass(1575, 1, {}, PartitionPreprocessor$lambda$1$Type); +_.apply_0 = function apply_96(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', 1575); +function PartitionPreprocessor$lambda$2$Type(){ +} + +defineClass(1576, 1, $intern_39, PartitionPreprocessor$lambda$2$Type); +_.test_0 = function test_45(arg0){ + return $mustBeReversed(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$2$Type', 1576); +function PartitionPreprocessor$lambda$3$Type(){ +} + +defineClass(1577, 1, $intern_19, PartitionPreprocessor$lambda$3$Type); +_.accept = function accept_78(arg0){ + $reverse_1(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PartitionPreprocessor$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PartitionPreprocessor/lambda$3$Type', 1577); +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_4(0), valueOf_4(0)); + } + currentSide = (checkCriticalElementIndex(0, ports.array.length) , castTo(ports.array[0], 11)).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], 11)).side; + } + highIdx = lowIdx; + while (highIdx < ports.array.length - 1 && currentSide.ordinal < hb) { + ++highIdx; + currentSide = (checkCriticalElementIndex(lowIdx, ports.array.length) , castTo(ports.array[lowIdx], 11)).side; + } + return new Pair(valueOf_4(lowIdx), valueOf_4(highIdx)); +} + +function $process_42(layeredGraph, monitor){ + var layer, layer$iterator, node, node$iterator, portConstraints, ports, pss; + $begin(monitor, 'Port order processing', 1); + pss = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , PORT_SORTING_STRATEGY_0)), 422); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + portConstraints = castTo($getProperty(node, PORT_CONSTRAINTS_0), 98); + 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); + } + } + $done_0(monitor); +} + +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], 11)); + $set_1(ports, lowIdx + i, (checkCriticalElementIndex(highIdx - i - 1, ports.array.length) , castTo(ports.array[highIdx - i - 1], 11))); + 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, 19).value_0, castTo(southIndices.second, 19).value_0); + westIndices = $findPortSideRange(ports, WEST_2); + $reverse_2(ports, castTo(westIndices.first, 19).value_0, castTo(westIndices.second, 19).value_0); +} + +function PortListSorter(){ + $clinit_PortListSorter(); +} + +function lambda$0_25(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_12(p1_0, p2_1){ + $clinit_PortListSorter(); + var index1, index2, indexDifference, ordinalDifference, portConstraints; + portConstraints = castTo($getProperty(p1_0.owner, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98); + 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), 19); + index2 = castTo($getProperty(p2_1, PORT_INDEX), 19); + 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(), 17); + $booleanValue(castToBoolean($getProperty(e, ($clinit_InternalProperties_1() , REVERSED)))) || ++realDegree; + } + return realDegree; +} + +defineClass(1578, 1, $intern_105, PortListSorter); +_.process = function process_40(layeredGraph, monitor){ + $process_42(castTo(layeredGraph, 37), 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', 1578); +function PortListSorter$lambda$0$Type(){ +} + +defineClass(1581, 1, $intern_88, PortListSorter$lambda$0$Type); +_.compare_1 = function compare_48(arg0, arg1){ + return lambda$0_25(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_124(other){ + return this === other; +} +; +_.reversed = function reversed_40(){ + 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', 1581); +function PortListSorter$lambda$1$Type(){ +} + +defineClass(1583, 1, $intern_88, PortListSorter$lambda$1$Type); +_.compare_1 = function compare_49(arg0, arg1){ + return lambda$1_12(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.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_PortListSorter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$1$Type', 1583); +function PortListSorter$lambda$2$Type(){ +} + +defineClass(1579, 1, {}, PortListSorter$lambda$2$Type); +_.apply_0 = function apply_97(arg0){ + return $clinit_PortListSorter() , castTo(arg0, 11).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', 1579); +function PortListSorter$lambda$3$Type(){ +} + +defineClass(1580, 1, {}, PortListSorter$lambda$3$Type); +_.apply_0 = function apply_98(arg0){ + return $clinit_PortListSorter() , castTo(arg0, 11).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', 1580); +function PortListSorter$lambda$4$Type(){ +} + +defineClass(1582, 1, $intern_88, PortListSorter$lambda$4$Type); +_.compare_1 = function compare_50(arg0, arg1){ + return lambda$4_6(castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.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$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortListSorter/lambda$4$Type', 1582); +function $process_43(layeredGraph, monitor){ + var layer, layer$iterator, node, node$iterator, node$iterator0; + $begin(monitor, 'Port side processing', 1); + for (node$iterator0 = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(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_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + $process_44(node); + } + } + $done_0(monitor); +} + +function $process_44(node){ + var port, port$iterator, portDummy; + if ($isSideFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98))) { + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + 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), 61)):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_7(port$iterator), 11); + portDummy = castTo($getProperty(port, ($clinit_InternalProperties_1() , PORT_DUMMY)), 10); + portDummy?$setSide(port, castTo($getProperty(portDummy, EXT_PORT_SIDE), 61)):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(1584, 1, $intern_105, PortSideProcessor); +_.process = function process_41(layeredGraph, monitor){ + $process_43(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_PortSideProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'PortSideProcessor', 1584); +function $process_45(layeredGraph, monitor){ + var edge, edge$array, edge$index, edge$max, edgeArray, layer, layer$iterator, node, node$iterator, port, port$iterator; + $begin(monitor, 'Restoring reversed edges', 1); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + 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); + } + } + } + } + $done_0(monitor); +} + +function ReversedEdgeRestorer(){ +} + +defineClass(1585, 1, $intern_105, ReversedEdgeRestorer); +_.process = function process_42(layeredGraph, monitor){ + $process_45(castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_ReversedEdgeRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'ReversedEdgeRestorer', 1585); +function $process_46(this$static, graph, progressMonitor){ + $begin(progressMonitor, 'Self-Loop ordering', 1); + $forEach_3($map_0($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)); + $done_0(progressMonitor); +} + +function $processNode_4(this$static, slHolder){ + if (slHolder.arePortsHidden) { + switch (castTo($getProperty(slHolder.lNode, ($clinit_InternalProperties_1() , ORIGINAL_PORT_CONSTRAINTS)), 98).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(1590, 1, $intern_105, SelfLoopPortRestorer); +_.process = function process_43(graph, progressMonitor){ + $process_46(this, castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer', 1590); +function SelfLoopPortRestorer$lambda$0$Type(){ +} + +defineClass(1591, 1, {}, SelfLoopPortRestorer$lambda$0$Type); +_.apply_0 = function apply_99(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1591); +function SelfLoopPortRestorer$lambda$1$Type(){ +} + +defineClass(1592, 1, $intern_39, 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', 1592); +function SelfLoopPortRestorer$lambda$2$Type(){ +} + +defineClass(1593, 1, $intern_39, 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', 1593); +function SelfLoopPortRestorer$lambda$3$Type(){ +} + +defineClass(1594, 1, {}, SelfLoopPortRestorer$lambda$3$Type); +_.apply_0 = function apply_100(arg0){ + return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 404); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$3$Type', 1594); +function SelfLoopPortRestorer$lambda$4$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1595, 1, $intern_19, SelfLoopPortRestorer$lambda$4$Type); +_.accept = function accept_79(arg0){ + $processNode_4(this.$$outer_0, castTo(arg0, 404)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$4$Type', 1595); +function SelfLoopPortRestorer$lambda$5$Type(){ +} + +defineClass(793, 1, $intern_19, SelfLoopPortRestorer$lambda$5$Type); +_.accept = function accept_80(arg0){ + $computePortsPerSide(castTo(arg0, 101)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPortRestorer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPortRestorer/lambda$5$Type', 793); +function $process_47(graph, progressMonitor){ + $begin(progressMonitor, '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); + $done_0(progressMonitor); +} + +function $processNode_5(lNode){ + var slHolder; + slHolder = castTo($getProperty(lNode, ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 404); + $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(1596, 1, $intern_105, SelfLoopPostProcessor); +_.process = function process_44(graph, progressMonitor){ + $process_47(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor', 1596); +function SelfLoopPostProcessor$lambda$0$Type(){ +} + +defineClass(1597, 1, {}, SelfLoopPostProcessor$lambda$0$Type); +_.apply_0 = function apply_101(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1597); +function SelfLoopPostProcessor$lambda$1$Type(){ +} + +defineClass(1598, 1, $intern_39, 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', 1598); +function SelfLoopPostProcessor$lambda$2$Type(){ +} + +defineClass(1599, 1, $intern_39, 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', 1599); +function SelfLoopPostProcessor$lambda$3$Type(){ +} + +defineClass(1600, 1, $intern_19, SelfLoopPostProcessor$lambda$3$Type); +_.accept = function accept_81(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', 1600); +function SelfLoopPostProcessor$lambda$4$Type(){ +} + +defineClass(1601, 1, {}, SelfLoopPostProcessor$lambda$4$Type); +_.apply_0 = function apply_102(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).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', 1601); +function SelfLoopPostProcessor$lambda$5$Type(lNode_1){ + this.lNode_1 = lNode_1; +} + +defineClass(1602, 1, $intern_19, SelfLoopPostProcessor$lambda$5$Type); +_.accept = function accept_82(arg0){ + $restoreEdge(this.lNode_1, castTo(arg0, 410)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$5$Type', 1602); +function SelfLoopPostProcessor$lambda$6$Type(){ +} + +defineClass(1603, 1, $intern_39, SelfLoopPostProcessor$lambda$6$Type); +_.test_0 = function test_50(arg0){ + return !!castTo(arg0, 101).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', 1603); +function SelfLoopPostProcessor$lambda$7$Type(lNode_0){ + this.lNode_0 = lNode_0; +} + +defineClass(1604, 1, $intern_19, SelfLoopPostProcessor$lambda$7$Type); +_.accept = function accept_83(arg0){ + lambda$7_1(this.lNode_0, castTo(arg0, 101)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPostProcessor$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPostProcessor/lambda$7$Type', 1604); +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)), 98)); + 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(), 42) , 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; + $begin(progressMonitor, '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_7(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_0($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); + } + } + $done_0(progressMonitor); +} + +function SelfLoopPreProcessor(){ +} + +defineClass(1586, 1, $intern_105, SelfLoopPreProcessor); +_.process = function process_45(graph, progressMonitor){ + $process_48(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor', 1586); +function SelfLoopPreProcessor$lambda$0$Type(){ +} + +defineClass(1587, 1, {}, SelfLoopPreProcessor$lambda$0$Type); +_.apply_0 = function apply_103(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).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', 1587); +function SelfLoopPreProcessor$lambda$1$Type(){ +} + +defineClass(1588, 1, {}, SelfLoopPreProcessor$lambda$1$Type); +_.apply_0 = function apply_104(arg0){ + return castTo(arg0, 410).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', 1588); +function SelfLoopPreProcessor$lambda$2$Type(){ +} + +defineClass(1589, 1, $intern_19, SelfLoopPreProcessor$lambda$2$Type); +_.accept = function accept_84(arg0){ + $lambda$2_0(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopPreProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopPreProcessor/lambda$2$Type', 1589); +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; + $begin(progressMonitor, 'Self-Loop routing', 1); + router = $routerForGraph(graph); + throwClassCastExceptionUnlessNull($getProperty(graph, ($clinit_LabelManagementOptions() , LABEL_MANAGER))); + $forEach_3($map_0($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)); + $done_0(progressMonitor); +} + +function $routerForGraph(graph){ + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218).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(1605, 1, $intern_105, SelfLoopRouter); +_.process = function process_46(graph, progressMonitor){ + $process_49(this, castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter', 1605); +function SelfLoopRouter$lambda$0$Type(){ +} + +defineClass(1606, 1, {}, SelfLoopRouter$lambda$0$Type); +_.apply_0 = function apply_105(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1606); +function SelfLoopRouter$lambda$1$Type(){ +} + +defineClass(1607, 1, $intern_39, 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', 1607); +function SelfLoopRouter$lambda$2$Type(){ +} + +defineClass(1608, 1, $intern_39, 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', 1608); +function SelfLoopRouter$lambda$3$Type(){ +} + +defineClass(1609, 1, {}, SelfLoopRouter$lambda$3$Type); +_.apply_0 = function apply_106(arg0){ + return castTo($getProperty(castTo(arg0, 10), ($clinit_InternalProperties_1() , SELF_LOOP_HOLDER)), 404); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$3$Type', 1609); +function SelfLoopRouter$lambda$4$Type($$outer_0, router_2){ + this.$$outer_0 = $$outer_0; + this.router_2 = router_2; +} + +defineClass(1610, 1, $intern_19, SelfLoopRouter$lambda$4$Type); +_.accept = function accept_85(arg0){ + $lambda$4(this.$$outer_0, this.router_2, castTo(arg0, 404)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SelfLoopRouter$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SelfLoopRouter/lambda$4$Type', 1610); +function $process_50(layeredGraph, progressMonitor){ + var addedConstraints, l, l$iterator, reduced; + $begin(progressMonitor, '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_7(l$iterator), 29); + 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)); + $done_0(progressMonitor); +} + +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_3(prev_0, cur_1){ + castTo($getProperty(prev_0, ($clinit_InternalProperties_1() , IN_LAYER_SUCCESSOR_CONSTRAINTS)), 15).add_2(cur_1); + return cur_1; +} + +defineClass(1611, 1, $intern_105, SemiInteractiveCrossMinProcessor); +_.process = function process_47(layeredGraph, progressMonitor){ + $process_50(castTo(layeredGraph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SemiInteractiveCrossMinProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor', 1611); +function SemiInteractiveCrossMinProcessor$lambda$0$Type(){ +} + +defineClass(1612, 1, $intern_39, 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', 1612); +function SemiInteractiveCrossMinProcessor$lambda$1$Type(){ +} + +defineClass(1613, 1, $intern_39, 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', 1613); +function SemiInteractiveCrossMinProcessor$lambda$2$Type(){ +} + +defineClass(1614, 1, $intern_88, SemiInteractiveCrossMinProcessor$lambda$2$Type); +_.compare_1 = function compare_51(arg0, arg1){ + return lambda$2_6(castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.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_SemiInteractiveCrossMinProcessor$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SemiInteractiveCrossMinProcessor/lambda$2$Type', 1614); +function SemiInteractiveCrossMinProcessor$lambda$3$Type(){ +} + +defineClass(1615, 1, {}, SemiInteractiveCrossMinProcessor$lambda$3$Type); +_.apply_3 = function apply_107(arg0, arg1){ + return lambda$3_3(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', 1615); +function $process_51(graph, progressMonitor){ + var layer, layer$iterator, layerIndex, node, node$iterator, previousLayer, previousLayerIndex; + $begin(progressMonitor, '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_7(layer$iterator), 29); + previousLayerIndex = layerIndex == 0?0:layerIndex - 1; + previousLayer = castTo($get_11(graph.layers, previousLayerIndex), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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, longEdgeTargetNodePreprocessing(node))); + $log_2(progressMonitor, 'Node ' + node + ' ports: ' + node.ports); + } + } + $clinit_Collections(); + $sort(layer.nodes, new ModelOrderNodeComparator(previousLayer, castTo($getProperty(graph, CONSIDER_MODEL_ORDER_STRATEGY_0), 338), castTo($getProperty(graph, CONSIDER_MODEL_ORDER_LONG_EDGE_STRATEGY_0), 378))); + $log_2(progressMonitor, 'Layer ' + layerIndex + ': ' + layer); + ++layerIndex; + } + $done_0(progressMonitor); +} + +function SortByInputModelProcessor(){ +} + +function getTargetNode(port){ + var edge, node; + node = null; + edge = castTo($get_11(port.outgoingEdges, 0), 17); + do { + node = edge.target.owner; + if ($hasProperty(node, ($clinit_InternalProperties_1() , LONG_EDGE_TARGET))) { + return castTo($getProperty(node, LONG_EDGE_TARGET), 11).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))), 17); + } + else if (node.type_0 != NORMAL) { + return null; + } + } + while (!!node && node.type_0 != ($clinit_LNode$NodeType() , NORMAL)); + return node; +} + +function lambda$1_13(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)), 19).value_0); + edge = castTo($get_11(p_1.outgoingEdges, 0), 17); + $booleanValue(castToBoolean($getProperty(edge, REVERSED))) || $put_6(targetNodeModelOrder_0, targetNode, valueOf_4($wnd.Math.min(castTo($getProperty(edge, MODEL_ORDER_0), 19).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), 83); + } + $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(1617, 1, $intern_105, SortByInputModelProcessor); +_.process = function process_48(graph, progressMonitor){ + $process_51(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor', 1617); +function SortByInputModelProcessor$lambda$0$Type(){ +} + +defineClass(1618, 1, $intern_39, SortByInputModelProcessor$lambda$0$Type); +_.test_0 = function test_55(arg0){ + return castTo(arg0, 11).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', 1618); +function SortByInputModelProcessor$lambda$1$Type(targetNodeModelOrder_0){ + this.targetNodeModelOrder_0 = targetNodeModelOrder_0; +} + +defineClass(1619, 1, $intern_19, SortByInputModelProcessor$lambda$1$Type); +_.accept = function accept_86(arg0){ + lambda$1_13(this.targetNodeModelOrder_0, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_SortByInputModelProcessor$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate', 'SortByInputModelProcessor/lambda$1$Type', 1619); +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(), 57)); + $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(), 57); + 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, 145)) { + 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_0(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_59; + } + 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_59; +} + +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_59; + } + 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_59; +} + +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), 218); +} + +defineClass(1692, 802, {}, 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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', 1692); +function EdgeAwareScanlineConstraintCalculation$lambda$0$Type(){ +} + +defineClass(1693, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$0$Type); +_.apply_1 = function apply_108(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +_.equals_0 = function equals_128(other){ + return this === other; +} +; +_.test_0 = function test_56(input_0){ + return instanceOf(castTo(input_0, 57).origin_0, 145); +} +; +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', 1693); +function EdgeAwareScanlineConstraintCalculation$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1694, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$1$Type); +_.applyAsDouble = function applyAsDouble_1(arg0){ + return $lambda$1_0(this.$$outer_0, castTo(arg0, 57)); +} +; +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', 1694); +function EdgeAwareScanlineConstraintCalculation$lambda$10$Type(n_1, spacing_2){ + this.n_1 = n_1; + this.spacing_2 = spacing_2; +} + +defineClass(1702, 1, $intern_40, 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', 1702); +function EdgeAwareScanlineConstraintCalculation$lambda$11$Type(){ +} + +defineClass(1704, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$11$Type); +_.apply_1 = function apply_109(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +_.equals_0 = function equals_129(other){ + return this === other; +} +; +_.test_0 = function test_57(input_0){ + return instanceOf(castTo(input_0, 57).origin_0, 145); +} +; +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', 1704); +function EdgeAwareScanlineConstraintCalculation$lambda$12$Type(){ +} + +defineClass(1705, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$12$Type); +_.accept = function accept_87(arg0){ + castTo(arg0, 364).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', 1705); +function EdgeAwareScanlineConstraintCalculation$lambda$13$Type(){ +} + +defineClass(1706, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$13$Type); +_.test_0 = function test_58(arg0){ + return instanceOf(castTo(arg0, 57).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', 1706); +function EdgeAwareScanlineConstraintCalculation$lambda$14$Type(schedule_1){ + this.schedule_1 = schedule_1; +} + +defineClass(1708, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$14$Type); +_.accept = function accept_88(arg0){ + $lambda$14(this.schedule_1, castTo(arg0, 57)); +} +; +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', 1708); +function EdgeAwareScanlineConstraintCalculation$lambda$15$Type(n_1, finalSpacing_2){ + this.n_1 = n_1; + this.finalSpacing_2 = finalSpacing_2; +} + +defineClass(1707, 1, $intern_40, 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', 1707); +function EdgeAwareScanlineConstraintCalculation$lambda$16$Type(){ +} + +defineClass(1709, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$16$Type); +_.apply_1 = function apply_110(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 10); +} +; +_.equals_0 = function equals_130(other){ + return this === other; +} +; +_.test_0 = function test_59(input_0){ + return instanceOf(castTo(input_0, 57).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', 1709); +function EdgeAwareScanlineConstraintCalculation$lambda$17$Type(){ +} + +defineClass(1710, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$17$Type); +_.accept = function accept_89(arg0){ + castTo(arg0, 364).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', 1710); +function EdgeAwareScanlineConstraintCalculation$lambda$18$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1711, 1, {}, EdgeAwareScanlineConstraintCalculation$lambda$18$Type); +_.applyAsDouble = function applyAsDouble_2(arg0){ + return $lambda$18(this.$$outer_0, castTo(arg0, 57)); +} +; +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', 1711); +function EdgeAwareScanlineConstraintCalculation$lambda$19$Type(){ +} + +defineClass(1712, 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', 1712); +function EdgeAwareScanlineConstraintCalculation$lambda$2$Type(){ +} + +defineClass(1695, 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', 1695); +function EdgeAwareScanlineConstraintCalculation$lambda$20$Type(minSpacing_1, schedule_3){ + this.minSpacing_1 = minSpacing_1; + this.schedule_3 = schedule_3; +} + +defineClass(1714, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$20$Type); +_.accept = function accept_90(arg0){ + $lambda$20(this.minSpacing_1, this.schedule_3, castTo(arg0, 307)); +} +; +_.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', 1714); +function EdgeAwareScanlineConstraintCalculation$lambda$21$Type(g_1, minSpacing_2){ + this.g_1 = g_1; + this.minSpacing_2 = minSpacing_2; +} + +defineClass(1713, 1, $intern_40, 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', 1713); +function EdgeAwareScanlineConstraintCalculation$lambda$22$Type(){ +} + +defineClass(1715, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$22$Type); +_.apply_1 = function apply_111(arg0){ + return castTo(arg0, 57) , true; +} +; +_.equals_0 = function equals_131(other){ + return this === other; +} +; +_.test_0 = function test_60(input_0){ + return castTo(input_0, 57) , 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', 1715); +function EdgeAwareScanlineConstraintCalculation$lambda$23$Type(){ +} + +defineClass(1716, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$23$Type); +_.accept = function accept_91(arg0){ + castTo(arg0, 364).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', 1716); +function EdgeAwareScanlineConstraintCalculation$lambda$3$Type(){ +} + +defineClass(1696, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$3$Type); +_.test_0 = function test_61(arg0){ + return instanceOf(castTo(arg0, 57).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', 1696); +function EdgeAwareScanlineConstraintCalculation$lambda$4$Type(minSpacing_1, schedule_3){ + this.minSpacing_1 = minSpacing_1; + this.schedule_3 = schedule_3; +} + +defineClass(1698, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$4$Type); +_.accept = function accept_92(arg0){ + $lambda$4_0(this.minSpacing_1, this.schedule_3, castTo(arg0, 57)); +} +; +_.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', 1698); +function EdgeAwareScanlineConstraintCalculation$lambda$5$Type(n_1, minSpacing_2){ + this.n_1 = n_1; + this.minSpacing_2 = minSpacing_2; +} + +defineClass(1697, 1, $intern_40, 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', 1697); +function EdgeAwareScanlineConstraintCalculation$lambda$6$Type(){ +} + +defineClass(1699, 1, $intern_89, EdgeAwareScanlineConstraintCalculation$lambda$6$Type); +_.apply_1 = function apply_112(arg0){ + return castTo(arg0, 57) , true; +} +; +_.equals_0 = function equals_132(other){ + return this === other; +} +; +_.test_0 = function test_62(input_0){ + return castTo(input_0, 57) , 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', 1699); +function EdgeAwareScanlineConstraintCalculation$lambda$7$Type(){ +} + +defineClass(1700, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$7$Type); +_.accept = function accept_93(arg0){ + castTo(arg0, 364).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', 1700); +function EdgeAwareScanlineConstraintCalculation$lambda$8$Type(){ +} + +defineClass(1701, 1, $intern_39, EdgeAwareScanlineConstraintCalculation$lambda$8$Type); +_.test_0 = function test_63(arg0){ + return instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +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', 1701); +function EdgeAwareScanlineConstraintCalculation$lambda$9$Type($$outer_0, schedule_1){ + this.$$outer_0 = $$outer_0; + this.schedule_1 = schedule_1; +} + +defineClass(1703, 1, $intern_19, EdgeAwareScanlineConstraintCalculation$lambda$9$Type); +_.accept = function accept_94(arg0){ + $lambda$9(this.$$outer_0, this.schedule_1, castTo(arg0, 57)); +} +; +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', 1703); +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)), 274); + if (strategy == ($clinit_GraphCompactionStrategy() , NONE_5)) { + return; + } + $begin(progressMonitor, 'Horizontal Compaction', 1); + this$static.lGraph = layeredGraph; + transformer = new LGraphToCGraphTransformer; + odc = new OneDimensionalCompactor((transformer.layeredGraph = layeredGraph , transformer.edgeRouting = castTo($getProperty(transformer.layeredGraph, EDGE_ROUTING), 218) , $init(transformer) , $transformNodes_0(transformer) , $transformEdges_0(transformer) , transformer.cGraph)); + $setSpacingsHandler(odc, this$static.specialSpacingsHandler); + switch (castTo($getProperty(layeredGraph, COMPACTION_POST_COMPACTION_CONSTRAINTS_0), 423).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); + $done_0(progressMonitor); +} + +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, 145)) { + return castTo(cNode.origin_0, 145); + } + 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_14(transformer_0, node_1, dir_2){ + $clinit_HorizontalGraphCompactor(); + return $get_18(castTo($get_10(transformer_0.lockMap, node_1), 522), dir_2); +} + +defineClass(1520, 1, $intern_105, HorizontalGraphCompactor); +_.process = function process_49(layeredGraph, progressMonitor){ + $process_52(this, castTo(layeredGraph, 37), 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', 1520); +function HorizontalGraphCompactor$1(this$0){ + this.this$01 = this$0; +} + +defineClass(1521, 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)), 304); + 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)), 304); + 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', 1521); +function HorizontalGraphCompactor$lambda$0$Type(){ +} + +defineClass(1522, 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', 1522); +function HorizontalGraphCompactor$lambda$1$Type(transformer_0){ + this.transformer_0 = transformer_0; +} + +defineClass(1523, 1, {}, HorizontalGraphCompactor$lambda$1$Type); +_.isLocked = function isLocked_0(arg0, arg1){ + return lambda$1_14(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', 1523); +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), 57); + 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), 57); + 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), 128); + 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), 128); + 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, 19).value_0; + nextSeg = castTo(needle.second, 128); + $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_4(e$iterator); + comment = castTo(e.getKey(), 10); + other = castTo(castTo(e.getValue(), 46).first, 10); + offset = castTo(castTo(e.getValue(), 46).second, 8); + $add_19($reset_5(comment.pos), $add_19($clone_0(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_7(cNode$iterator), 57); + lNode = getLNodeOrNull(cNode); + if (lNode) { + if (lNode.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + switch (castTo($getProperty(lNode, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61).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_0($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_59, $intern_59); + bottomRight = new KVector_1($intern_60, $intern_60); + for (cNode$iterator = new ArrayList$1(this$static.cGraph.cNodes); cNode$iterator.i < cNode$iterator.this$01.array.length;) { + cNode = castTo($next_7(cNode$iterator), 57); + 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(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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.cGraph.cNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + cNode = castTo($get_10(this$static.nodesMap, node), 57); + 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), 17); + bends = $listIterator_2(edge.bendPoints, 0); + first = true; + lastSegment = null; + if (bends.currentNode != bends.this$01.tail) { + bend1 = castTo($next_10(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; + verticalSegments.array[verticalSegments.array.length] = 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; + verticalSegments.array[verticalSegments.array.length] = vs; + } + while (bends.currentNode != bends.this$01.tail) { + bend2 = castTo($next_10(bends), 8); + if (!eq_0(bend1.y_0, bend2.y_0)) { + lastSegment = new VerticalSegment(bend1, bend2, null, edge); + verticalSegments.array[verticalSegments.array.length] = 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), 57); + 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), 17); + 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; + verticalSegments.array[verticalSegments.array.length] = 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; + verticalSegments.array[verticalSegments.array.length] = 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), 128); + if (i == spline.size_1() - 1 || !seg.isStraight) { + return new Pair(valueOf_4(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_7(l$iterator), 29); + 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_7(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_36, 103, 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), 57); + 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), 57); + $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), 57); + $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_7(vsIt), 145); + while (vsIt.i < vsIt.this$01.array.length) { + next = castTo($next_7(vsIt), 145); + 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)), 218); + switch (style.ordinal) { + case 2: + verticalSegments = $collectVerticalSegmentsOrthogonal(this$static); + break; + case 3: + verticalSegments = (verticalSegments_0 = new ArrayList , $forEach_3($filter($map_0($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_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if ($booleanValue(castToBoolean($getProperty(node, ($clinit_LayeredOptions() , COMMENT_BOX))))) { + if (!isEmpty_13($getConnectedEdges_0(node))) { + e = castTo(get_21($getConnectedEdges_0(node)), 17); + other = e.source.owner; + other == node && (other = e.target.owner); + p = new Pair(other, $sub_0($clone_0(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, 57, 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_3(nodeLock, true, ($clinit_Direction_0() , LEFT_6)):difference > 0 && $set_3(nodeLock, true, ($clinit_Direction_0() , RIGHT_6)); + node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && $set_4(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), 57).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_7(e$iterator), 17); + $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_3(vsLock, true, ($clinit_Direction_0() , LEFT_6)); + $set_3(vsLock, false, RIGHT_6); + } + else if (difference > 0) { + $set_3(vsLock, false, ($clinit_Direction_0() , LEFT_6)); + $set_3(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, 145); + $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(), 128); + 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(), 17)); + $add_3(vs.affectedBoundingBoxes, s.boundingBox); + verticalSegments_0.array[verticalSegments_0.array.length] = vs; + !!lastVs && $add_3(lastVs.constraints, vs); + lastVs = vs; + } +} + +defineClass(1663, 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', 1663); +function LGraphToCGraphTransformer$0methodref$nonNull$Type(){ +} + +defineClass(1671, 1, $intern_39, 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', 1671); +function LGraphToCGraphTransformer$lambda$0$Type(){ +} + +defineClass(1664, 1, {}, LGraphToCGraphTransformer$lambda$0$Type); +_.apply_0 = function apply_113(arg0){ + return $clinit_LGraphToCGraphTransformer() , toString_40($getProperty(castTo(castTo(arg0, 57).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', 1664); +function LGraphToCGraphTransformer$lambda$1$Type(){ +} + +defineClass(1665, 1, {}, LGraphToCGraphTransformer$lambda$1$Type); +_.apply_0 = function apply_114(arg0){ + return $clinit_LGraphToCGraphTransformer() , $toString_14(castTo(castTo(arg0, 57).origin_0, 145)); +} +; +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', 1665); +function LGraphToCGraphTransformer$lambda$10$Type(){ +} + +defineClass(1674, 1, $intern_39, LGraphToCGraphTransformer$lambda$10$Type); +_.test_0 = function test_65(arg0){ + return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 57).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', 1674); +function LGraphToCGraphTransformer$lambda$11$Type(){ +} + +defineClass(1675, 1, $intern_19, LGraphToCGraphTransformer$lambda$11$Type); +_.accept = function accept_95(arg0){ + lambda$11(castTo(arg0, 57)); +} +; +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', 1675); +function LGraphToCGraphTransformer$lambda$12$Type(){ +} + +defineClass(1676, 1, $intern_39, LGraphToCGraphTransformer$lambda$12$Type); +_.test_0 = function test_66(arg0){ + return $clinit_LGraphToCGraphTransformer() , instanceOf(castTo(arg0, 57).origin_0, 145); +} +; +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', 1676); +function LGraphToCGraphTransformer$lambda$13$Type(){ +} + +defineClass(1680, 1, $intern_19, LGraphToCGraphTransformer$lambda$13$Type); +_.accept = function accept_96(arg0){ + lambda$13(castTo(arg0, 57)); +} +; +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', 1680); +function LGraphToCGraphTransformer$lambda$14$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1677, 1, $intern_19, LGraphToCGraphTransformer$lambda$14$Type); +_.accept = function accept_97(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', 1677); +function LGraphToCGraphTransformer$lambda$15$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1678, 1, $intern_19, LGraphToCGraphTransformer$lambda$15$Type); +_.accept = function accept_98(arg0){ + lambda$15(this.deltaX_0, castTo(arg0, 110)); +} +; +_.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', 1678); +function LGraphToCGraphTransformer$lambda$16$Type(deltaX_0){ + this.deltaX_0 = deltaX_0; +} + +defineClass(1679, 1, $intern_19, LGraphToCGraphTransformer$lambda$16$Type); +_.accept = function accept_99(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', 1679); +function LGraphToCGraphTransformer$lambda$17$Type(){ +} + +defineClass(1681, 1, {}, LGraphToCGraphTransformer$lambda$17$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$17$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.compaction', 'LGraphToCGraphTransformer/lambda$17$Type', 1681); +function LGraphToCGraphTransformer$lambda$18$Type(){ +} + +defineClass(1682, 1, $intern_39, LGraphToCGraphTransformer$lambda$18$Type); +_.test_0 = function test_67(arg0){ + return $clinit_LGraphToCGraphTransformer() , $isSelfLoop(castTo(arg0, 17)); +} +; +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', 1682); +function LGraphToCGraphTransformer$lambda$19$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1683, 1, $intern_19, LGraphToCGraphTransformer$lambda$19$Type); +_.accept = function accept_100(arg0){ + $lambda$19(this.$$outer_0, castTo(arg0, 17)); +} +; +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', 1683); +function LGraphToCGraphTransformer$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1667, 1, $intern_19, LGraphToCGraphTransformer$lambda$2$Type); +_.accept = function accept_101(arg0){ + $lambda$2_1(this.$$outer_0, castTo(arg0, 145)); +} +; +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', 1667); +function LGraphToCGraphTransformer$lambda$20$Type(){ +} + +defineClass(1684, 1, {}, LGraphToCGraphTransformer$lambda$20$Type); +_.apply_0 = function apply_116(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1684); +function LGraphToCGraphTransformer$lambda$21$Type(){ +} + +defineClass(1685, 1, {}, LGraphToCGraphTransformer$lambda$21$Type); +_.apply_0 = function apply_117(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', 1685); +function LGraphToCGraphTransformer$lambda$22$Type(){ +} + +defineClass(1686, 1, {}, LGraphToCGraphTransformer$lambda$22$Type); +_.apply_0 = function apply_118(arg0){ + return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 17), ($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', 1686); +function LGraphToCGraphTransformer$lambda$23$Type(){ +} + +defineClass(1687, 1, $intern_39, 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', 1687); +function LGraphToCGraphTransformer$lambda$24$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1688, 1, $intern_19, LGraphToCGraphTransformer$lambda$24$Type); +_.accept = function accept_102(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', 1688); +function LGraphToCGraphTransformer$lambda$3$Type($$outer_0, vsNode_1){ + this.$$outer_0 = $$outer_0; + this.vsNode_1 = vsNode_1; +} + +defineClass(1666, 1, $intern_19, LGraphToCGraphTransformer$lambda$3$Type); +_.accept = function accept_103(arg0){ + $lambda$3(this.$$outer_0, this.vsNode_1, castTo(arg0, 145)); +} +; +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', 1666); +function LGraphToCGraphTransformer$lambda$4$Type(){ +} + +defineClass(1668, 1, {}, LGraphToCGraphTransformer$lambda$4$Type); +_.apply_0 = function apply_119(arg0){ + return $clinit_LGraphToCGraphTransformer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1668); +function LGraphToCGraphTransformer$lambda$5$Type(){ +} + +defineClass(1669, 1, {}, LGraphToCGraphTransformer$lambda$5$Type); +_.apply_0 = function apply_120(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', 1669); +function LGraphToCGraphTransformer$lambda$6$Type(){ +} + +defineClass(1670, 1, {}, LGraphToCGraphTransformer$lambda$6$Type); +_.apply_0 = function apply_121(arg0){ + return $clinit_LGraphToCGraphTransformer() , castTo($getProperty(castTo(arg0, 17), ($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', 1670); +function LGraphToCGraphTransformer$lambda$8$Type(verticalSegments_0){ + this.verticalSegments_0 = verticalSegments_0; +} + +defineClass(1672, 1, $intern_19, LGraphToCGraphTransformer$lambda$8$Type); +_.accept = function accept_104(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', 1672); +function LGraphToCGraphTransformer$lambda$9$Type($$outer_0, cNode_1){ + this.$$outer_0 = $$outer_0; + this.cNode_1 = cNode_1; +} + +defineClass(1673, 1, $intern_19, LGraphToCGraphTransformer$lambda$9$Type); +_.accept = function accept_105(arg0){ + $lambda$9_0(this.$$outer_0, this.cNode_1, castTo(arg0, 145)); +} +; +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', 1673); +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_7(n$iterator), 121); + 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_10(src$iterator), 121); + $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_7(cNode$iterator0), 57); + 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_7(e$iterator), 17); + $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_7(cNode$iterator), 57); + 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), 17); + 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), 57); + $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_14(($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(), 57); + 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_15(($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(), 57); + 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_7(cNode$iterator), 57); + for (incNode$iterator = cNode.constraints.iterator_0(); incNode$iterator.hasNext_0();) { + incNode = castTo(incNode$iterator.next_1(), 57); + 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, 145) && instanceOf(incNode.origin_0, 10) || instanceOf(incNode.origin_0, 145) && 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(1662, 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, 121, 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_7(cGroup$iterator), 307); + 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_7(cNode$iterator), 57); + 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', 1662); +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)), 74); + if (inJPs) { + for (jp$iterator = $listIterator_2(inJPs, 0); jp$iterator.currentNode != jp$iterator.this$01.tail;) { + jp = castTo($next_10(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(145, 1, {35:1, 145:1}, VerticalSegment); +_.compareTo_0 = function compareTo_13(o){ + return $compareTo_12(this, castTo(o, 145)); +} +; +_.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', 145); +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)), 663); + aL.currentIndex = 0; + aL.currentSize = aL.size_0; + aL.currentSize == 0 || $reset_3(castTo($get_11(aL.adjacencyList, aL.currentIndex), 286)); + 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(), 11); + $put_6(this$static.portPositions, port, valueOf_4(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(826, 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', 826); +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), 19).value_0; + lastIndex = this$static.adjacencyList.array.length - 1; + if (this$static.adjacencyList.array.length != 0 && castTo($get_11(this$static.adjacencyList, lastIndex), 286).position == adjacentPortPosition) { + ++castTo($get_11(this$static.adjacencyList, lastIndex), 286).cardinality; + ++castTo($get_11(this$static.adjacencyList, lastIndex), 286).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), 286).currentCardinality; +} + +function $currentAdjacency(this$static){ + return castTo($get_11(this$static.adjacencyList, this$static.currentIndex), 286); +} + +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(), 11); + 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_7(edge$iterator), 17); + 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), 286); + 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), 286))):--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(663, 1, {663: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', 663); +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(286, 1, {35:1, 286:1}, BetweenLayerEdgeTwoNodeCrossingsCounter$AdjacencyList$Adjacency); +_.compareTo_0 = function compareTo_14(o){ + return $compareTo_13(this, castTo(o, 286)); +} +; +_.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', 286); +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], [177, 25], 16, [freeLayer.length, freeLayer.length], 2); + this.crossingMatrix = initMultidimensionalArray(I_classLit, [$intern_16, $intern_48], [48, 25], 15, [freeLayer.length, freeLayer.length], 2); + this.inBetweenLayerCrossingCounter = new BetweenLayerEdgeTwoNodeCrossingsCounter(graph, freeLayerIndex); +} + +defineClass(1928, 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', 1928); +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(), 225); + 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(), 225); + 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(), 225); + i.initAtPortLevel(l, n, p, order); + } + port = (checkCriticalElementIndex(p, ports.array.length) , castTo(ports.array[p], 11)); + 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_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + for (i$iterator3 = initializables.iterator_0(); i$iterator3.hasNext_0();) { + i = castTo(i$iterator3.next_1(), 225); + i.initAtEdgeLevel(l, n, p, e++, edge, order); + } + } + } + } + } + for (i$iterator = initializables.iterator_0(); i$iterator.hasNext_0();) { + i = castTo(i$iterator.next_1(), 225); + 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(1803, 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_48, 25, 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', 1803); +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), 11)); + furtherWestPorts = $getPortSideView(furtherFromNormalNode, WEST_2); + this$static.lowerUpperCrossings = furtherWestPorts.isEmpty()?0:$getDegree(castTo(furtherWestPorts.get_0(0), 11)); + } + else { + closerWestPorts = $getPortSideView(closerToNormalNode, ($clinit_PortSide() , WEST_2)); + this$static.upperLowerCrossings = closerWestPorts.isEmpty()?0:$getDegree(castTo(closerWestPorts.get_0(0), 11)); + furtherEastPorts = $getPortSideView(furtherFromNormalNode, EAST_2); + this$static.lowerUpperCrossings = furtherEastPorts.isEmpty()?0:$getDegree(castTo(furtherEastPorts.get_0(0), 11)); + } +} + +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(), 11); + 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), 11); + origin_0 = castTo($getProperty(port, ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + 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), 19).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(), 11); + $put_6(this$static.portPositions, port, valueOf_4(portId++)); + } +} + +function NorthSouthEdgeNeighbouringNodeCrossingsCounter(nodes){ + this.layer = nodes; + this.portPositions = new HashMap; + $initializePortPositions(this); +} + +defineClass(1929, 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', 1929); +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, 19).value_0 + castTo(rightInlayer.first, 19).value_0 + this$static.northSouthCounter.upperLowerCrossings; + lowerUpperCrossings = $getCrossingMatrixEntry(this$static.crossingMatrixFiller, lowerNode, upperNode) + castTo(leftInlayer.second, 19).value_0 + castTo(rightInlayer.second, 19).value_0 + this$static.northSouthCounter.lowerUpperCrossings; + if (this$static.countCrossingsCausedByPortSwitch) { + upperPort = castTo($getProperty(upperNode, ORIGIN_0), 11); + lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 11); + crossingNumbers = $countCrossingsBetweenPortsInBothOrders(this$static.parentCrossCounter, upperPort, lowerPort); + upperLowerCrossings += castTo(crossingNumbers.first, 19).value_0; + lowerUpperCrossings += castTo(crossingNumbers.second, 19).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(), 11); + 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)), 11); + lowerPort = castTo($getProperty(lowerNode, ORIGIN_0), 11); + $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(1916, 1, {}, SwitchDecider); +_.countCrossingsCausedByPortSwitch = false; +var Lorg_eclipse_elk_alg_layered_intermediate_greedyswitch_SwitchDecider_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.greedyswitch', 'SwitchDecider', 1916); +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, 61, 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_7(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_48, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2])).length, 15, 1); + this.slHolder = slHolder; +} + +defineClass(101, 1, {101: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', 101); +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_7(newLLabel$iterator), 70); + $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_7(lLabel$iterator), 70); + 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_7(lLabel$iterator), 70); + 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)), 103); + this.labelLabelSpacing = $doubleValue(castToDouble(getIndividualOrInherited(lNode, SPACING_LABEL_LABEL))); +} + +defineClass(1915, 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', 1915); +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_34(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_36, 412, 0, [CENTER_2, LEFT_1, RIGHT_1, TOP_0]); +} + +defineClass(412, 22, {3:1, 35:1, 22:1, 412: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', 412, Ljava_lang_Enum_2_classLit, values_40, valueOf_34); +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_36, 412, 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(410, 1, {410:1}, SelfLoopEdge); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopEdge_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopEdge', 410); +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), 17); + $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(), 42) , 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(), 42) , 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_7(slEdge$iterator0), 410); + $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_7(slEdge$iterator), 410); + $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_48, 25, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 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(404, 1, {404:1}, SelfLoopHolder); +_.arePortsHidden = false; +var Lorg_eclipse_elk_alg_layered_intermediate_loops_SelfLoopHolder_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops', 'SelfLoopHolder', 404); +function SelfLoopHolder$lambda$0$Type(){ +} + +defineClass(1723, 1, $intern_39, SelfLoopHolder$lambda$0$Type); +_.test_0 = function test_69(arg0){ + return $isSelfLoop(castTo(arg0, 17)); +} +; +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', 1723); +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(1791, 1, $intern_39, SelfLoopPort$lambda$0$Type); +_.test_0 = function test_70(arg0){ + return $isSelfLoop(castTo(arg0, 17)); +} +; +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', 1791); +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_35(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_36, 362, 0, [ONE_SIDE, TWO_SIDES_CORNER, TWO_SIDES_OPPOSING, THREE_SIDES, FOUR_SIDES]); +} + +defineClass(362, 22, {3:1, 35:1, 22:1, 362: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', 362, Ljava_lang_Enum_2_classLit, values_41, valueOf_35); +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_36, 362, 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, 61, 0, [($clinit_PortSide() , NORTH_3), EAST_2, SOUTH_2]); + ESW = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2, SOUTH_2, WEST_2]); + SWN = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2, WEST_2, NORTH_3]); + WNE = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2, NORTH_3, EAST_2]); +} + +function $addAll_5(slPorts, lNode){ + $forEach_3($map_0(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], 11)); + if (condition.test_0(lPort)) { + target.array[target.array.length] = 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_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + 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, 61, 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_36, 360, 0, [START, MIDDLE, END_0])))); + for (side$array = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 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_36, 360, 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_7(dummyLPort$iterator), 11); + 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(), 101); + for (side$iterator = $keySet(slLoop.slPortsBySide).iterator_0(); side$iterator.hasNext_0();) { + side = castTo(side$iterator.next_1(), 61); + $addToTargetArea_0(this$static, slLoop, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); + } + } +} + +function $processOneSideLoops(this$static, ordering){ + var side, slLoop, slLoop$iterator, sortedPorts, splitIndex; + 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(), 101); + 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 1: + $addToTargetArea(this$static, sortedPorts, side, ($clinit_PortRestorer$PortSideArea() , MIDDLE), 1); + break; + 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(), 101); + 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(), 101); + 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(), 101); + 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $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)), 376)); + $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_4(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, 61, 2, 0, 1)), 122); + 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(1731, 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', 1731); +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_36(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_36, 360, 0, [START, MIDDLE, END_0]); +} + +defineClass(360, 22, {3:1, 35:1, 22:1, 360: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', 360, Ljava_lang_Enum_2_classLit, values_42, valueOf_36); +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_36, 360, 0, [START, MIDDLE, END_0]))); +} + +var $MAP_24; +function PortRestorer$lambda$0$Type(){ +} + +defineClass(1732, 1, {}, PortRestorer$lambda$0$Type); +_.apply_0 = function apply_122(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', 1732); +function PortRestorer$lambda$1$Type(){ +} + +defineClass(1733, 1, $intern_19, PortRestorer$lambda$1$Type); +_.accept = function accept_106(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', 1733); +function PortRestorer$lambda$10$Type(){ +} + +defineClass(1742, 1, $intern_39, PortRestorer$lambda$10$Type); +_.test_0 = function test_71(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).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', 1742); +function PortRestorer$lambda$11$Type(){ +} + +defineClass(1743, 1, {}, PortRestorer$lambda$11$Type); +_.apply_0 = function apply_123(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', 1743); +function PortRestorer$lambda$12$Type(lNode_0){ + this.lNode_0 = lNode_0; +} + +defineClass(1744, 1, $intern_19, PortRestorer$lambda$12$Type); +_.accept = function accept_107(arg0){ + lambda$12(this.lNode_0, castTo(arg0, 11)); +} +; +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', 1744); +function PortRestorer$lambda$2$Type(loops_0){ + this.loops_0 = loops_0; +} + +defineClass(1734, 1, $intern_19, PortRestorer$lambda$2$Type); +_.accept = function accept_108(arg0){ + lambda$2_7(this.loops_0, castTo(arg0, 101)); +} +; +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', 1734); +function PortRestorer$lambda$3$Type(){ +} + +defineClass(1735, 1, $intern_88, PortRestorer$lambda$3$Type); +_.compare_1 = function compare_52(arg0, arg1){ + return lambda$3_4(castTo(arg0, 113), castTo(arg1, 113)); +} +; +_.equals_0 = function equals_133(other){ + return this === other; +} +; +_.reversed = function reversed_44(){ + 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', 1735); +function PortRestorer$lambda$4$Type(){ +} + +defineClass(1736, 1, $intern_39, 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', 1736); +function PortRestorer$lambda$5$Type(){ +} + +defineClass(1737, 1, $intern_39, PortRestorer$lambda$5$Type); +_.test_0 = function test_73(arg0){ + return $lambda$5(castTo(arg0, 11)); +} +; +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', 1737); +function PortRestorer$lambda$6$Type(){ +} + +defineClass(1738, 1, $intern_39, PortRestorer$lambda$6$Type); +_.test_0 = function test_74(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).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', 1738); +function PortRestorer$lambda$7$Type(){ +} + +defineClass(1739, 1, $intern_39, PortRestorer$lambda$7$Type); +_.test_0 = function test_75(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).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', 1739); +function PortRestorer$lambda$8$Type(){ +} + +defineClass(1740, 1, $intern_39, PortRestorer$lambda$8$Type); +_.test_0 = function test_76(arg0){ + return $lambda$8(castTo(arg0, 11)); +} +; +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', 1740); +function PortRestorer$lambda$9$Type(){ +} + +defineClass(1741, 1, $intern_39, PortRestorer$lambda$9$Type); +_.test_0 = function test_77(arg0){ + return $clinit_PortRestorer() , castTo(arg0, 11).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', 1741); +function $assignPortSides(slHolder){ + switch (castTo($getProperty(slHolder.lNode, ($clinit_LayeredOptions() , EDGE_ROUTING_SELF_LOOP_DISTRIBUTION_0)), 375).ordinal) { + case 1: + $forEach_3($map_0($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_36, 270, 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_7(slLoop$iterator), 101); + 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_7(slLoop$iterator), 101); + 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_36, 132, 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_0(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_37(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_36, 270, 0, [NORTH_1, SOUTH_1, EAST_1, WEST_1, NORTH_WEST_CORNER, NORTH_EAST_CORNER, SOUTH_WEST_CORNER, SOUTH_EAST_CORNER]); +} + +defineClass(270, 22, {3:1, 35:1, 22:1, 270: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', 270, Ljava_lang_Enum_2_classLit, values_43, valueOf_37); +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_36, 270, 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(1724, 1, {}, PortSideAssigner$lambda$1$Type); +_.apply_0 = function apply_124(arg0){ + return $filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 101).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', 1724); +function PortSideAssigner$lambda$2$Type(){ +} + +defineClass(1725, 1, {}, PortSideAssigner$lambda$2$Type); +_.apply_0 = function apply_125(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', 1725); +function PortSideAssigner$lambda$3$Type(){ +} + +defineClass(1726, 1, $intern_19, PortSideAssigner$lambda$3$Type); +_.accept = function accept_109(arg0){ + $setSide(castTo(arg0, 11), ($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', 1726); +function PortSideAssigner$lambda$4$Type(){ +} + +defineClass(1727, 1, {}, PortSideAssigner$lambda$4$Type); +_.apply_0 = function apply_126(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', 1727); +function PortSideAssigner$lambda$5$Type(finalNewPortSide_0){ + this.finalNewPortSide_0 = finalNewPortSide_0; +} + +defineClass(1728, 1, $intern_19, PortSideAssigner$lambda$5$Type); +_.accept = function accept_110(arg0){ + lambda$5_2(this.finalNewPortSide_0, castTo(arg0, 11)); +} +; +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', 1728); +function PortSideAssigner$lambda$6$Type(){ +} + +defineClass(1729, 1, $intern_88, PortSideAssigner$lambda$6$Type); +_.compare_1 = function compare_53(arg0, arg1){ + return lambda$6_0(castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.equals_0 = function equals_134(other){ + return this === other; +} +; +_.reversed = function reversed_45(){ + 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', 1729); +function PortSideAssigner$lambda$7$Type(){ +} + +defineClass(1730, 1, $intern_88, PortSideAssigner$lambda$7$Type); +_.compare_1 = function compare_54(arg0, arg1){ + return lambda$7_2(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_PortSideAssigner$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.ordering', 'PortSideAssigner/lambda$7$Type', 1730); +function PortSideAssigner$lambda$8$Type(){ +} + +defineClass(804, 1, $intern_39, 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', 804); +defineClass(2008, 1, {}); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_AbstractSelfLoopRouter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'AbstractSelfLoopRouter', 2008); +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], 101)).slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { + lPort = castTo($next_7(lPort$iterator), 11); + 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], 101)); + rightSlLoop = (checkCriticalElementIndex(rightSlLoopIdx, slLoops.array.length) , castTo(slLoops.array[rightSlLoopIdx], 101)); + 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], 101)), 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)), 376); + 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_7(slLoop$iterator), 101); + slLabels = slLoop.slLabels; + if (!slLabels) { + continue; + } + switch (slLoop.selfLoopType.ordinal) { + case 0: + loopSide = castTo($next_8(new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides)), 61); + orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , NORTH_3)?(northernOneSidedSLLoops.array[northernOneSidedSLLoops.array.length] = slLoop , true):orderingStrategy == SEQUENCED && loopSide == ($clinit_PortSide() , SOUTH_2)?(southernOneSidedSLLoops.array[southernOneSidedSLLoops.array.length] = 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_7(slLoop$iterator), 101); + !!slLoop.slLabels && $computeCoordinates(slLoop); + } +} + +function lambda$0_26(slLoop1_0, slLoop2_1){ + return compare_5(slLoop1_0.leftmostPort.lPort.id_0, slLoop2_1.leftmostPort.lPort.id_0); +} + +function lambda$1_15(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(1749, 1, $intern_88, LabelPlacer$lambda$0$Type_0); +_.compare_1 = function compare_55(arg0, arg1){ + return lambda$0_26(castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.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_routing_LabelPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$0$Type', 1749); +function LabelPlacer$lambda$1$Type_0(){ +} + +defineClass(1750, 1, $intern_88, LabelPlacer$lambda$1$Type_0); +_.compare_1 = function compare_56(arg0, arg1){ + return lambda$1_15(castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.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_routing_LabelPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'LabelPlacer/lambda$1$Type', 1750); +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_0(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, 104, ($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 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, 61, 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_65, 25, 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_7(slLoop$iterator), 101); + 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_7(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_7(slLoop$iterator), 101); + for (slEdge$iterator = slLoop.slEdges.map_0.keySet_0().iterator_0(); slEdge$iterator.hasNext_0();) { + slEdge = castTo(slEdge$iterator.next_1(), 410); + 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_7(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(1792, 2008, {}, 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', 1792); +function OrthogonalSelfLoopRouter$lambda$0$Type(nodeSize_1, newNodeMargins_2){ + this.nodeSize_1 = nodeSize_1; + this.newNodeMargins_2 = newNodeMargins_2; +} + +defineClass(1794, 1, $intern_19, OrthogonalSelfLoopRouter$lambda$0$Type); +_.accept = function accept_111(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', 1794); +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_10(bpIterator), 8); + next = castTo($next_10(bpIterator), 8); + while (bpIterator.currentNode != bpIterator.this$01.tail) { + previous = corner; + corner = next; + next = castTo($next_10(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(1793, 1792, {}, PolylineSelfLoopRouter); +_.modifyBendPoints = function modifyBendPoints_0(slEdge, routingDirection, bendPoints){ + var lSourcePort, lTargetPort; + lSourcePort = slEdge.slSource.lPort; + $add_0(bendPoints, 0, $add_19($clone_0(lSourcePort.pos), lSourcePort.anchor)); + lTargetPort = slEdge.slTarget.lPort; + $add_7(bendPoints, $add_19($clone_0(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', 1793); +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], 11)).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, 61, 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_48, 25, 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], 11)); + 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_0(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_7(slLoop$iterator), 101); + 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, 61, 2, 0, 1)), 122); + 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_27(slPort1_0, slPort2_1){ + $clinit_RoutingDirector(); + return compare_5(slPort1_0.lPort.id_0, slPort2_1.lPort.id_0); +} + +defineClass(1745, 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', 1745); +function RoutingDirector$lambda$0$Type(){ +} + +defineClass(1746, 1, $intern_88, RoutingDirector$lambda$0$Type); +_.compare_1 = function compare_57(arg0, arg1){ + return lambda$0_27(castTo(arg0, 113), castTo(arg1, 113)); +} +; +_.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_RoutingDirector$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingDirector/lambda$0$Type', 1746); +function RoutingDirector$lambda$1$Type(){ +} + +defineClass(1747, 1, {}, RoutingDirector$lambda$1$Type); +_.apply_0 = function apply_127(arg0){ + return $clinit_RoutingDirector() , castTo(arg0, 101).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', 1747); +function RoutingDirector$lambda$2$Type(){ +} + +defineClass(1748, 1, $intern_19, RoutingDirector$lambda$2$Type); +_.accept = function accept_112(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', 1748); +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_7(slLoop$iterator), 101); + slot = castTo($get_10(this$static.slLoopToSegmentMap, slLoop), 112).routingSlot; + for (portSide$iterator = new EnumSet$EnumSetImpl$IteratorImpl(slLoop.occupiedPortSides); portSide$iterator.i < portSide$iterator.this$11.all.length;) { + portSide = castTo($next_8(portSide$iterator), 61); + $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_7(segment$iterator), 112); + $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)), 112); + nextRoutingSlot = segment.routingSlot + 1; + for (inDependency$iterator = new ArrayList$1(segment.incomingSegmentDependencies); inDependency$iterator.i < inDependency$iterator.this$01.array.length;) { + inDependency = castTo($next_7(inDependency$iterator), 129); + 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)), 230)); + $assignRawRoutingSlotsToSegments(this$static); + $assignRawRoutingSlotsToLoops(this$static, slHolder); + nextFreeRoutingSlotAtPort = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_7(slLoop$iterator), 101); + !!slLoop.slLabels && (slLoop.slLabels.id_0 = labelID++); + } + crossingMatrix = initMultidimensionalArray(Z_classLit, [$intern_16, $intern_91], [177, 25], 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], 101)); + if (slLoop1.slLabels) { + for (sl2Idx = sl1Idx + 1; sl2Idx < slLoops.array.length; sl2Idx++) { + slLoop2 = (checkCriticalElementIndex(sl2Idx, slLoops.array.length) , castTo(slLoops.array[sl2Idx], 101)); + 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_7(slLoop$iterator), 101); + loopActivity = initUnidimensionalArray(Z_classLit, $intern_91, 25, 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), 177); + crossings = 0; + for (slPort$iterator = new ArrayList$1(slUpperLoop.slPorts); slPort$iterator.i < slPort$iterator.this$01.array.length;) { + slPort = castTo($next_7(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_7(slLoop$iterator), 101); + 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), 101); + for (secondIdx = firstIdx + 1; secondIdx < slLoops.array.length; secondIdx++) { + $createDependencies(this$static, slLoop1, castTo($get_11(slHolder.slHyperLoops, secondIdx), 101), 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), 112); + segment2 = castTo($get_10(this$static.slLoopToSegmentMap, slLoop2), 112); + 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_36, 132, 0, [($clinit_Collector$Characteristics() , IDENTITY_FINISH)]))), 15); + minLPortIndex = $intern_0; + maxLPortIndex = $intern_42; + for (lPort$iterator = new ArrayList$1(slHolder.lNode.ports); lPort$iterator.i < lPort$iterator.this$01.array.length;) { + lPort = castTo($next_7(lPort$iterator), 11); + 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), 101), side, i); + } + } + else { + slotAssignedToLabel = initUnidimensionalArray(I_classLit, $intern_48, 25, 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(), 101); + activeAtPort = castTo($get_10(this$static.slLoopActivityOverPorts, slLoop), 177); + 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_4(slotAssignedToLabel[otherLabelIdx])); + } + while ($contains_6(slotsWithLabelConflicts, valueOf_4(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_28(side_0, slLoop_1){ + return $containsEnum(slLoop_1.occupiedPortSides, side_0); +} + +function lambda$1_16(side_0, sl1_1, sl2_2){ + return compare_5(sl1_1.routingSlot[side_0.ordinal], sl2_2.routingSlot[side_0.ordinal]); +} + +defineClass(1751, 1, {}, RoutingSlotAssigner); +var Lorg_eclipse_elk_alg_layered_intermediate_loops_routing_RoutingSlotAssigner_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner', 1751); +function RoutingSlotAssigner$lambda$0$Type(side_0){ + this.side_0 = side_0; +} + +defineClass(1752, 1, $intern_39, RoutingSlotAssigner$lambda$0$Type); +_.test_0 = function test_79(arg0){ + return lambda$0_28(this.side_0, castTo(arg0, 101)); +} +; +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', 1752); +function RoutingSlotAssigner$lambda$1$Type(side_0){ + this.side_0 = side_0; +} + +defineClass(1753, 1, $intern_88, RoutingSlotAssigner$lambda$1$Type); +_.compare_1 = function compare_58(arg0, arg1){ + return lambda$1_16(this.side_0, castTo(arg0, 101), castTo(arg1, 101)); +} +; +_.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_RoutingSlotAssigner$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.loops.routing', 'RoutingSlotAssigner/lambda$1$Type', 1753); +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(1795, 1792, {}, 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', 1795); +function $compare_15(this$static, n1, n2){ + var n1ModelOrder, n1ModelOrder0, n2ModelOrder, n2ModelOrder0, 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), 53), 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), 53), 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), 53), 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), 53), 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_0)) || !$hasProperty(n2, ($clinit_InternalProperties_1() , MODEL_ORDER_0))) { + p1SourcePort = castTo($orElse($map($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n1.ports, 16)), new ModelOrderNodeComparator$lambda$0$Type)), new ModelOrderNodeComparator$lambda$1$Type)), 11); + p2SourcePort = castTo($orElse($map($findFirst($filter(new StreamImpl(null, new Spliterators$IteratorSpliterator(n2.ports, 16)), new ModelOrderNodeComparator$lambda$2$Type)), new ModelOrderNodeComparator$lambda$3$Type)), 11); + 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_7(port$iterator), 11); + 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_0)) || !$hasProperty(n2, MODEL_ORDER_0)) { + 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_0)), 19).value_0; + n2ModelOrder = castTo($getProperty(n2, MODEL_ORDER_0), 19).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$4$Type))), 11); + if (sourcePort) { + edge = castTo($get_11(sourcePort.incomingEdges, 0), 17); + if (edge) { + return castTo($getProperty(edge, ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).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), 53); + smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 53); + biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 53); + smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 53); + 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), 53), bigger); + $addAll(castTo($get_10(this$static.smallerThan, verySmall), 53), 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), 53), smaller); + $addAll(castTo($get_10(this$static.biggerThan, veryBig), 53), 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_2(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(578, 1, $intern_88, ModelOrderNodeComparator, ModelOrderNodeComparator_1); +_.compare_1 = function compare_59(n1, n2){ + return $compare_15(this, castTo(n1, 10), castTo(n2, 10)); +} +; +_.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_preserveorder_ModelOrderNodeComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator', 578); +function ModelOrderNodeComparator$lambda$0$Type(){ +} + +defineClass(1754, 1, $intern_39, ModelOrderNodeComparator$lambda$0$Type); +_.test_0 = function test_80(arg0){ + return castTo(arg0, 11).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', 1754); +function ModelOrderNodeComparator$lambda$1$Type(){ +} + +defineClass(1755, 1, {}, ModelOrderNodeComparator$lambda$1$Type); +_.apply_0 = function apply_128(arg0){ + return castTo($get_11(castTo(arg0, 11).incomingEdges, 0), 17).source; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$1$Type', 1755); +function ModelOrderNodeComparator$lambda$2$Type(){ +} + +defineClass(1756, 1, $intern_39, ModelOrderNodeComparator$lambda$2$Type); +_.test_0 = function test_81(arg0){ + return castTo(arg0, 11).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$2$Type', 1756); +function ModelOrderNodeComparator$lambda$3$Type(){ +} + +defineClass(1757, 1, {}, ModelOrderNodeComparator$lambda$3$Type); +_.apply_0 = function apply_129(arg0){ + return castTo($get_11(castTo(arg0, 11).incomingEdges, 0), 17).source; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$3$Type', 1757); +function ModelOrderNodeComparator$lambda$4$Type(){ +} + +defineClass(1758, 1, $intern_39, ModelOrderNodeComparator$lambda$4$Type); +_.test_0 = function test_82(arg0){ + return castTo(arg0, 11).incomingEdges.array.length != 0; +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_preserveorder_ModelOrderNodeComparator$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderNodeComparator/lambda$4$Type', 1758); +function $compare_16(this$static, p1, p2){ + return $compare_17(this$static, castTo(p1, 11), castTo(p2, 11)); +} + +function $compare_17(this$static, p1, p2){ + var p1Node, p1Order, p1TargetNode, p2Node, p2Order, p2TargetNode, previousNode, previousNode$array, previousNode$index, previousNode$max; + if (p1.incomingEdges.array.length != 0 && p2.incomingEdges.array.length != 0) { + p1Node = castTo($get_11(p1.incomingEdges, 0), 17).source.owner; + p2Node = castTo($get_11(p2.incomingEdges, 0), 17).source.owner; + if (p1Node == p2Node) { + return compare_5(castTo($getProperty(castTo($get_11(p1.incomingEdges, 0), 17), ($clinit_InternalProperties_1() , MODEL_ORDER_0)), 19).value_0, castTo($getProperty(castTo($get_11(p2.incomingEdges, 0), 17), MODEL_ORDER_0), 19).value_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) { + return 1; + } + else if (previousNode == p2Node) { + 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); + p1Order = 0; + p2Order = 0; + $hasProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0) && (p1Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); + $hasProperty(castTo($get_11(p2.outgoingEdges, 0), 17), MODEL_ORDER_0) && (p2Order = castTo($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), MODEL_ORDER_0), 19).value_0); + if (!!p1TargetNode && p1TargetNode == p2TargetNode) { + if ($booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), REVERSED))) && !$booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 17), REVERSED)))) { + return 1; + } + else if (!$booleanValue(castToBoolean($getProperty(castTo($get_11(p1.outgoingEdges, 0), 17), REVERSED))) && $booleanValue(castToBoolean($getProperty(castTo($get_11(p2.outgoingEdges, 0), 17), REVERSED)))) { + return -1; + } + 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), 19).value_0); + this$static.targetNodeModelOrder.containsKey(p2TargetNode) && (p2Order = castTo(this$static.targetNodeModelOrder.get_3(p2TargetNode), 19).value_0); + } + return p1Order < p2Order?-1:p1Order > p2Order?1:0; + } + return p1.incomingEdges.array.length != 0 && p2.outgoingEdges.array.length != 0?1:-1; +} + +function ModelOrderPortComparator(previousLayer, targetNodeModelOrder){ + this.previousLayer = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode_2_classLit, $intern_107, 10, previousLayer.nodes.array.length, 0, 1); + $toArray_2(previousLayer.nodes, this.previousLayer); + this.targetNodeModelOrder = targetNodeModelOrder; +} + +function ModelOrderPortComparator_0(previousLayer, targetNodeModelOrder){ + this.previousLayer = previousLayer; + this.targetNodeModelOrder = targetNodeModelOrder; +} + +defineClass(805, 1, $intern_88, ModelOrderPortComparator, ModelOrderPortComparator_0); +_.compare_1 = function compare_60(p1, p2){ + return $compare_16(this, p1, p2); +} +; +_.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_preserveorder_ModelOrderPortComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.preserveorder', 'ModelOrderPortComparator', 805); +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(800, 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_4(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', 800); +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(), 19).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++), 29)); + for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(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), 17); + 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), 17); + 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(), 17); + 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); + startEndEdge = new LEdge; + $setSource_0(startEndEdge, outPortBp1); + $setTarget_0(startEndEdge, inPortBp2); + $setSource_0(originalEdge, outPortBp2); + bpi = new BreakingPointInserter$BPInfo(bpStartMarker, bpEndMarker, nodeStartEdge, startEndEdge, originalEdge); + $setProperty_0(bpStartMarker, ($clinit_InternalProperties_1() , 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), 305); + bpiPrev.next_0 = bpi; + bpi.prev = bpiPrev; + } + } + if (cutIt.hasNext_0()) { + cut = castTo(cutIt.next_1(), 19).value_0; + } + else { + break; + } + } + ++idx; + } + return valueOf_4(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_48, 25, 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_7(l$iterator), 29); + 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_7(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), 17); + 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_7(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), 17); + 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(), 19); + cut = new BreakingPointInserter$Cut(cutIdx.value_0); + ccuts.array[ccuts.array.length] = 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], 652))); + bestCut = null; + bestScore = $intern_59; + 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_12(rCut); + } + } + if (bestCut) { + $add_3(improvedCuts, valueOf_4(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; + $begin(progressMonitor, 'Breaking Point Insertion', 1); + gs = new GraphStats(graph); + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 336).ordinal) { + case 2: + icic = new ICutIndexCalculator$ManualCutIndexCalculator; + 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), 337).ordinal) { + case 2: + cuts = validifyIndexesLookingBack_0(gs, cuts); + break; + case 1: + cuts = validifyIndexesGreedily(gs, cuts); + } + } + if (cuts.isEmpty()) { + $done_0(progressMonitor); + return; + } + $applyCuts(graph, cuts); + $done_0(progressMonitor); +} + +function BreakingPointInserter(){ +} + +defineClass(1478, 1, $intern_105, BreakingPointInserter); +_.process = function process_50(graph, progressMonitor){ + $process_53(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointInserter_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointInserter', 1478); +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)), 305); + if (bpi) { + return bpi.end == n; + } + return false; +} + +function isStart(n){ + var bpi; + bpi = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + if (bpi) { + return bpi.start_0 == n; + } + return false; +} + +defineClass(305, 1, {305: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', 305); +function $next_12(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(652, 1, {652: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', 652); +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_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(newArrayList(l.nodes)); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (isStart(n)) { + info = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + 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(), 29); + nodes = newArrayList(layer.nodes); + forwards || new Lists$RandomAccessReverseList(nodes); + for (n$iterator = new ArrayList$1(nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + if (check.test_0(n)) { + bpNode = n; + bpInfo = castTo($getProperty(n, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + 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), 17); + 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), 17); + 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++), 29)); + newLayer = (checkCriticalElementIndex(idx, layers.array.length) , castTo(layers.array[idx], 29)); + 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_7(n$iterator0), 10); + $setLayer_0(n, newLayer); + } + if (reverse) { + for (n$iterator = $listIterator_1(new Lists$RandomAccessReverseList(nodesToMove), 0); n$iterator.val$forwardIterator2.hasPrevious();) { + n = castTo($next_3(n$iterator), 10); + for (e$iterator = new ArrayList$1(newArrayList($getIncomingEdges(n))); e$iterator.i < e$iterator.this$01.array.length;) { + e = castTo($next_7(e$iterator), 17); + $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), 305); + startInLayerEdge = castTo($get_11(dummyEdges, dummyEdges.array.length - 1), 17); + 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++), 29)); + l.nodes.array.length == 0 && $remove_8(it); + } +} + +function $process_54(graph, progressMonitor){ + var index_0, l, l$iterator, n, n$iterator; + $begin(progressMonitor, '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_7(l$iterator), 29); + index_0 = 0; + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(n$iterator), 10); + n.id_0 = index_0++; + } + } + $improveMultiCutIndexEdges(graph); + $improveUnneccesarilyLongEdges(graph, true); + $improveUnneccesarilyLongEdges(graph, false); + } + $done_0(progressMonitor); +} + +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(1479, 1, $intern_105, BreakingPointProcessor); +_.process = function process_51(graph, progressMonitor){ + $process_54(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointProcessor_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointProcessor', 1479); +function BreakingPointProcessor$0methodref$isEnd$Type(){ +} + +defineClass(1480, 1, $intern_39, BreakingPointProcessor$0methodref$isEnd$Type); +_.test_0 = function test_83(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', 1480); +function BreakingPointProcessor$1methodref$isStart$Type(){ +} + +defineClass(1481, 1, $intern_39, BreakingPointProcessor$1methodref$isStart$Type); +_.test_0 = function test_84(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', 1481); +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; + $begin(progressMonitor, 'Breaking Point Removing', 1); + this$static.edgeRouting = castTo($getProperty(graph, ($clinit_LayeredOptions() , EDGE_ROUTING)), 218); + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + for (node$iterator = new ArrayList$1(newArrayList(l.nodes)); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (isEnd(node)) { + bpi = castTo($getProperty(node, ($clinit_InternalProperties_1() , BREAKING_POINT_INFO)), 305); + !bpi.next_0 && $remove_30(this$static, bpi); + } + } + } + $done_0(progressMonitor); +} + +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, instanceOf(s2, 152)?$reverse(castTo(s2, 152)):instanceOf(s2, 131)?castTo(s2, 131).forwardList:instanceOf(s2, 54)?new Lists$RandomAccessReverseList(s2):new Lists$ReverseList(s2)); + $addAll_2(joinedSegments, s3); + joinedEdges = new ArrayList; + $addAll_2(joinedEdges, e1); + $addAll_2(joinedEdges, instanceOf(e2, 152)?$reverse(castTo(e2, 152)):instanceOf(e2, 131)?castTo(e2, 131).forwardList:instanceOf(e2, 54)?new Lists$RandomAccessReverseList(e2):new Lists$ReverseList(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)), 74); + junctionPointsTwo = castTo($getProperty(bpi.startEndEdge, JUNCTION_POINTS), 74); + junctionPointsThree = castTo($getProperty(bpi.originalEdge, JUNCTION_POINTS), 74); + 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(1482, 1, $intern_105, BreakingPointRemover); +_.process = function process_52(graph, progressMonitor){ + $process_55(this, castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_BreakingPointRemover_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'BreakingPointRemover', 1482); +function BreakingPointRemover$lambda$0$Type(){ +} + +defineClass(1483, 1, $intern_19, BreakingPointRemover$lambda$0$Type); +_.accept = function accept_113(arg0){ + castTo(arg0, 128).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', 1483); +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), 29); + 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); + createdEdges.array[createdEdges.array.length] = 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), 11)); + $setProperty_0(dummy, LONG_EDGE_TARGET, castTo($getProperty(inEdgeSourceNode, LONG_EDGE_TARGET), 11)); + } + 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_0(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_7(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), 17); + 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_7(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_0(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, 25, 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(), 19).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_7(layerIt); + i = 1; + while (layerIt.i < layerIt.this$01.array.length) { + layer = castTo($next_7(layerIt), 29); + 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_65, 25, n, 15, 1); + this$static.heights = initUnidimensionalArray(D_classLit, $intern_65, 25, n, 15, 1); + for (i = 0; i < n; i++) { + l = castTo($get_11(this$static.graph_0.layers, i), 29); + 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_7(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), 17); + 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)), 103); + 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_17(a_0, b_1){ + return (checkCriticalNotNull(a_0) , a_0) + (checkCriticalNotNull(b_1) , b_1); +} + +defineClass(796, 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', 796); +function GraphStats$0methodref$max$Type(){ +} + +defineClass(797, 1, {}, GraphStats$0methodref$max$Type); +_.apply_3 = function apply_130(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', 797); +function GraphStats$2methodref$max$Type(){ +} + +defineClass(798, 1, {}, GraphStats$2methodref$max$Type); +_.apply_3 = function apply_131(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', 798); +function GraphStats$lambda$1$Type(){ +} + +defineClass(1659, 1, {}, GraphStats$lambda$1$Type); +_.apply_3 = function apply_132(arg0, arg1){ + return lambda$1_17(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', 1659); +function GraphStats$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1660, 1, {}, GraphStats$lambda$2$Type); +_.apply_0 = function apply_133(arg0){ + return $determineLayerWidth(this.$$outer_0, castTo(arg0, 29)); +} +; +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', 1660); +function GraphStats$lambda$6$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1661, 1, {}, GraphStats$lambda$6$Type); +_.apply_0 = function apply_134(arg0){ + return $determineLayerHeight(this.$$outer_0, castTo(arg0, 29)); +} +; +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', 1661); +function ICutIndexCalculator$ManualCutIndexCalculator(){ +} + +defineClass(799, 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', 799); +function MSDCutIndexHeuristic(){ +} + +defineClass(801, 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_65, 25, 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)), 19).value_0; + bestMaxScale = $intern_60; + 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_60; + 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_4(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', 801); +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(), 19).value_0; + while (index_0 < gs.longestPath) { + if (index_0 == nextCut) { + newIndex = 0; + cutIt.hasNext_0()?(nextCut = castTo(cutIt.next_1(), 19).value_0):(nextCut = gs.longestPath + 1); + } + if (index_0 != newIndex) { + oldLayer = castTo($get_11(graph.layers, index_0), 29); + newLayer = castTo($get_11(graph.layers, newIndex), 29); + nodesToMove = newArrayList(oldLayer.nodes); + for (n$iterator = new ArrayList$1(nodesToMove); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(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_7(e$iterator), 17); + $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++), 29)); + l.nodes.array.length == 0 && $remove_8(it); + } +} + +function $process_56(graph, progressMonitor){ + var currentAR, cuts, gs, icic, sumWidth; + $begin(progressMonitor, 'Path-Like Graph Wrapping', 1); + if (graph.layers.array.length == 0) { + $done_0(progressMonitor); + 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) { + $done_0(progressMonitor); + return; + } + switch (castTo($getProperty(graph, ($clinit_LayeredOptions() , WRAPPING_CUTTING_STRATEGY_0)), 336).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), 337).ordinal) { + case 2: + cuts = validifyIndexesLookingBack_0(gs, cuts); + break; + case 1: + cuts = validifyIndexesGreedily(gs, cuts); + } + } + $performCuts(graph, gs, cuts); + $done_0(progressMonitor); +} + +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_4(castTo(cutIt.next_1(), 19).value_0 + offset); + while (cut.value_0 < gs.longestPath && !$isCutAllowed(gs, cut.value_0)) { + cut = valueOf_4(cut.value_0 + 1); + ++offset; + } + if (cut.value_0 >= gs.longestPath) { + break; + } + validCuts.array[validCuts.array.length] = 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), 19).value_0 + offset; + while ((checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 19)).value_0 < current) { + ++iIdx; + } + select = 0; + distLower = current - (checkCriticalElementIndex(iIdx, validCuts.array.length) , castTo(validCuts.array[iIdx], 19)).value_0; + distHigher = (checkCriticalElementIndex(iIdx + 1, validCuts.array.length) , castTo(validCuts.array[iIdx + 1], 19)).value_0 - current; + distLower > distHigher && ++select; + $add_3(finalCuts, (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19))); + offset += (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19)).value_0 - current; + ++cIdx; + while (cIdx < desiredCuts.size_1() && castTo(desiredCuts.get_0(cIdx), 19).value_0 + offset <= (checkCriticalElementIndex(iIdx + select, validCuts.array.length) , castTo(validCuts.array[iIdx + select], 19)).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_4($intern_42)); + for (i = 1; i < gs.longestPath; ++i) { + gs.cutsAllowed == null && $initCutAllowed(gs); + gs.cutsAllowed[i] && $add_3(validCuts, valueOf_4(i)); + } + if (validCuts.array.length == 1) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + $add_3(validCuts, valueOf_4($intern_0)); + return validifyIndexesLookingBack(desiredCuts, validCuts); +} + +defineClass(1616, 1, $intern_105, SingleEdgeGraphWrapper); +_.process = function process_53(graph, progressMonitor){ + $process_56(castTo(graph, 37), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_layered_intermediate_wrapping_SingleEdgeGraphWrapper_2_classLit = createForClass('org.eclipse.elk.alg.layered.intermediate.wrapping', 'SingleEdgeGraphWrapper', 1616); +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_38(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_36, 227, 0, [MEDIAN_LAYER, TAIL_LAYER, HEAD_LAYER, SPACE_EFFICIENT_LAYER, WIDEST_LAYER, CENTER_LAYER]); +} + +defineClass(227, 22, {3:1, 35:1, 22:1, 227: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', 227, Ljava_lang_Enum_2_classLit, values_44, valueOf_38); +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_36, 227, 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_39(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_36, 423, 0, [QUADRATIC, SCANLINE]); +} + +defineClass(423, 22, {3:1, 35:1, 22:1, 423:1}, ConstraintCalculationStrategy); +var QUADRATIC, SCANLINE; +var Lorg_eclipse_elk_alg_layered_options_ConstraintCalculationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'ConstraintCalculationStrategy', 423, Ljava_lang_Enum_2_classLit, values_45, valueOf_39); +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_36, 423, 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_40(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_36, 314, 0, [LAYER_SWEEP, INTERACTIVE_1, NONE_1]); +} + +defineClass(314, 22, {3:1, 35:1, 22:1, 314:1, 246:1, 234: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', 314, Ljava_lang_Enum_2_classLit, values_46, valueOf_40); +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_36, 314, 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_41(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_36, 336, 0, [ARD, MSD, MANUAL]); +} + +defineClass(336, 22, {3:1, 35:1, 22:1, 336:1}, CuttingStrategy); +var ARD, MANUAL, MSD; +var Lorg_eclipse_elk_alg_layered_options_CuttingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CuttingStrategy', 336, Ljava_lang_Enum_2_classLit, values_47, valueOf_41); +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_36, 336, 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 = new CycleBreakingStrategy('MODEL_ORDER', 3); +} + +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; + 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_42(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_36, 374, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, MODEL_ORDER]); +} + +defineClass(374, 22, {3:1, 35:1, 22:1, 374:1, 246:1, 234:1}, CycleBreakingStrategy); +_.create_1 = function create_9(){ + return $create_4(this); +} +; +_.create_2 = function create_8(){ + return $create_4(this); +} +; +var DEPTH_FIRST, GREEDY, INTERACTIVE_2, MODEL_ORDER; +var Lorg_eclipse_elk_alg_layered_options_CycleBreakingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'CycleBreakingStrategy', 374, Ljava_lang_Enum_2_classLit, values_48, valueOf_42); +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_36, 374, 0, [GREEDY, DEPTH_FIRST, INTERACTIVE_2, 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_43(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_36, 420, 0, [READING_DIRECTION, ROTATION]); +} + +defineClass(420, 22, {3:1, 35:1, 22:1, 420:1}, DirectionCongruency); +var READING_DIRECTION, ROTATION; +var Lorg_eclipse_elk_alg_layered_options_DirectionCongruency_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'DirectionCongruency', 420, Ljava_lang_Enum_2_classLit, values_49, valueOf_43); +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_36, 420, 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_44(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_36, 451, 0, [NONE_2, INCOMING_ONLY, OUTGOING_ONLY]); +} + +defineClass(451, 22, {3:1, 35:1, 22:1, 451: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', 451, Ljava_lang_Enum_2_classLit, values_50, valueOf_44); +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_36, 451, 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_45(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_36, 275, 0, [ALWAYS_UP, ALWAYS_DOWN, DIRECTION_UP, DIRECTION_DOWN, SMART_UP, SMART_DOWN]); +} + +defineClass(275, 22, {3:1, 35:1, 22:1, 275: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', 275, Ljava_lang_Enum_2_classLit, values_51, valueOf_45); +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_36, 275, 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_46(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_36, 479, 0, [NONE_3, IMPROVE_STRAIGHTNESS]); +} + +defineClass(479, 22, {3:1, 35:1, 22:1, 479: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', 479, Ljava_lang_Enum_2_classLit, values_52, valueOf_46); +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_36, 479, 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_47(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_36, 273, 0, [NONE_4, LEFTUP, RIGHTUP, LEFTDOWN, RIGHTDOWN, BALANCED]); +} + +defineClass(273, 22, {3:1, 35:1, 22:1, 273: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', 273, Ljava_lang_Enum_2_classLit, values_53, valueOf_47); +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_36, 273, 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_48(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_36, 274, 0, [NONE_5, LEFT_2, RIGHT_2, LEFT_RIGHT_CONSTRAINT_LOCKING, LEFT_RIGHT_CONNECTION_LOCKING, EDGE_LENGTH]); +} + +defineClass(274, 22, {3:1, 35:1, 22:1, 274: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', 274, Ljava_lang_Enum_2_classLit, values_54, valueOf_48); +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_36, 274, 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_49(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_36, 256, 0, [COMMENTS, EXTERNAL_PORTS, HYPEREDGES, HYPERNODES, NON_FREE_PORTS, NORTH_SOUTH_PORTS, SELF_LOOPS, CENTER_LABELS, END_LABELS, PARTITIONS]); +} + +defineClass(256, 22, {3:1, 35:1, 22:1, 256: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', 256, Ljava_lang_Enum_2_classLit, values_55, valueOf_49); +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_36, 256, 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_50(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_36, 292, 0, [ONE_SIDED, TWO_SIDED, OFF]); +} + +defineClass(292, 22, {3:1, 35:1, 22:1, 292: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', 292, Ljava_lang_Enum_2_classLit, values_56, valueOf_50); +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_36, 292, 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_51(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_36, 303, 0, [NONE_6, TOP_1, BOTTOM_0]); +} + +defineClass(303, 22, {3:1, 35:1, 22:1, 303: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', 303, Ljava_lang_Enum_2_classLit, values_57, valueOf_51); +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_36, 303, 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_52(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_36, 421, 0, [CENTER_3, TOP_LEFT]); +} + +defineClass(421, 22, {3:1, 35:1, 22:1, 421: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', 421, Ljava_lang_Enum_2_classLit, values_58, valueOf_52); +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_36, 421, 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_4(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_0 = 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_0, 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_53(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_36, 163, 0, [NONE_7, FIRST, FIRST_SEPARATE_0, LAST, LAST_SEPARATE_0]); +} + +defineClass(163, 22, {3:1, 35:1, 22:1, 163: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', 163, Ljava_lang_Enum_2_classLit, values_59, valueOf_53); +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_36, 163, 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_4(1); + THOROUGHNESS = new Property_1('org.eclipse.elk.layered.thoroughness', valueOf_4(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_4(-1); + LAYERING_LAYER_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.layering.layerChoiceConstraint', valueOf_4(-1)); + valueOf_4(-1); + LAYERING_LAYER_ID = new Property_1('org.eclipse.elk.layered.layering.layerId', valueOf_4(-1)); + valueOf_4(-1); + LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth', valueOf_4(4)); + valueOf_4(-1); + LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR = new Property_1('org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor', valueOf_4(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_4(0); + LAYERING_NODE_PROMOTION_MAX_ITERATIONS = new Property_1('org.eclipse.elk.layered.layering.nodePromotion.maxIterations', valueOf_4(0)); + LAYERING_COFFMAN_GRAHAM_LAYER_BOUND = new Property_1('org.eclipse.elk.layered.layering.coffmanGraham.layerBound', valueOf_4($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); + valueOf_4(-1); + CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint', valueOf_4(-1)); + valueOf_4(-1); + CROSSING_MINIMIZATION_POSITION_ID = new Property_1('org.eclipse.elk.layered.crossingMinimization.positionId', valueOf_4(-1)); + valueOf_4(0); + CROSSING_MINIMIZATION_GREEDY_SWITCH_ACTIVATION_THRESHOLD = new Property_1('org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold', valueOf_4(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_4(0); + PRIORITY_DIRECTION = new Property_1('org.eclipse.elk.layered.priority.direction', valueOf_4(0)); + valueOf_4(0); + PRIORITY_SHORTNESS = new Property_1('org.eclipse.elk.layered.priority.shortness', valueOf_4(0)); + valueOf_4(0); + PRIORITY_STRAIGHTNESS = new Property_1('org.eclipse.elk.layered.priority.straightness', valueOf_4(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_4(0); + HIGH_DEGREE_NODES_THRESHOLD = new Property_1('org.eclipse.elk.layered.highDegreeNodes.threshold', valueOf_4(16)); + valueOf_4(0); + HIGH_DEGREE_NODES_TREE_HEIGHT = new Property_1('org.eclipse.elk.layered.highDegreeNodes.treeHeight', valueOf_4(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_4(1); + valueOf_4(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_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(847, 1, $intern_90, LayeredMetaDataProvider); +_.apply_4 = function apply_135(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_4(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."), valueOf_4(-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.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_4(-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_4(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_4(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_4(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_4($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.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."), valueOf_4(-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.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_4(-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_4(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_4(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_4(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_4(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_4(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_4(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_36, 175, 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.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_16((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_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_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', 847); +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_0; + 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_4(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; + 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_4(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 = NODE_SIZE_FIXED_GRAPH_SIZE_0; + DIRECTION_DEFAULT = ($clinit_Direction_0() , UNDEFINED_2); + DIRECTION = new Property_2(DIRECTION_0, 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; + LAYERING_LAYER_CHOICE_CONSTRAINT_0 = LAYERING_LAYER_CHOICE_CONSTRAINT; + CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT_0 = CROSSING_MINIMIZATION_POSITION_CHOICE_CONSTRAINT; + INTERACTIVE_LAYOUT = INTERACTIVE_LAYOUT_1; + 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; + GENERATE_POSITION_AND_LAYER_IDS_0 = GENERATE_POSITION_AND_LAYER_IDS; +} + +function $apply_16(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_36, 237, 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_4(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.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_4(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)); + $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.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.generatePositionAndLayerIds', $getDefault(GENERATE_POSITION_AND_LAYER_IDS_0)); +} + +function LayeredOptions(){ + $clinit_LayeredOptions(); +} + +defineClass(985, 1, $intern_90, LayeredOptions); +_.apply_4 = function apply_136(registry){ + $apply_16(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_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_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, 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, 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', 985); +function LayeredOptions$LayeredFactory(){ +} + +defineClass(986, 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', 986); +function $clinit_ElkSpacings$AbstractSpacingsBuilder(){ + $clinit_ElkSpacings$AbstractSpacingsBuilder = emptyMethod; + ELK_OPTION_TARGET_FILTER = new ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type; +} + +function $apply_17(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_1(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(1371, 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', 1371); +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, 146, 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, 830, 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(779, 1371, {}, 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', 779); +function $clinit_LayeringStrategy(){ + $clinit_LayeringStrategy = emptyMethod; + NETWORK_SIMPLEX = new LayeringStrategy('NETWORK_SIMPLEX', 0); + LONGEST_PATH = new LayeringStrategy('LONGEST_PATH', 1); + COFFMAN_GRAHAM = new LayeringStrategy('COFFMAN_GRAHAM', 2); + INTERACTIVE_3 = new LayeringStrategy('INTERACTIVE', 3); + STRETCH_WIDTH = new LayeringStrategy('STRETCH_WIDTH', 4); + MIN_WIDTH = new LayeringStrategy('MIN_WIDTH', 5); +} + +function $create_5(this$static){ + switch (this$static.ordinal) { + case 0: + return new NetworkSimplexLayerer; + case 1: + return new LongestPathLayerer; + case 2: + return new CoffmanGrahamLayerer; + case 3: + return new InteractiveLayerer; + case 4: + return new StretchWidthLayerer; + case 5: + return new MinWidthLayerer; + 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_54(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_36, 313, 0, [NETWORK_SIMPLEX, LONGEST_PATH, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH]); +} + +defineClass(313, 22, {3:1, 35:1, 22:1, 313:1, 246:1, 234:1}, LayeringStrategy); +_.create_1 = function create_12(){ + return $create_5(this); +} +; +_.create_2 = function create_11(){ + return $create_5(this); +} +; +var COFFMAN_GRAHAM, INTERACTIVE_3, LONGEST_PATH, MIN_WIDTH, NETWORK_SIMPLEX, STRETCH_WIDTH; +var Lorg_eclipse_elk_alg_layered_options_LayeringStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'LayeringStrategy', 313, Ljava_lang_Enum_2_classLit, values_60, valueOf_54); +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_36, 313, 0, [NETWORK_SIMPLEX, LONGEST_PATH, COFFMAN_GRAHAM, INTERACTIVE_3, STRETCH_WIDTH, MIN_WIDTH]))); +} + +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_55(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_36, 378, 0, [DUMMY_NODE_OVER, DUMMY_NODE_UNDER, EQUAL]); +} + +defineClass(378, 22, {3:1, 35:1, 22:1, 378: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', 378, Ljava_lang_Enum_2_classLit, values_61, valueOf_55); +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_36, 378, 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), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)); + return nf; +} + +function valueOf_56(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_36, 197, 0, [NONE_8, PORT_POSITION, NODE_SIZE_WHERE_SPACE_PERMITS, NODE_SIZE]); +} + +defineClass(197, 22, {3:1, 35:1, 22:1, 197: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', 197, Ljava_lang_Enum_2_classLit, values_62, valueOf_56); +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_36, 197, 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_57(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_36, 315, 0, [SIMPLE, INTERACTIVE_4, LINEAR_SEGMENTS, BRANDES_KOEPF, NETWORK_SIMPLEX_0]); +} + +defineClass(315, 22, {3:1, 35:1, 22:1, 315:1, 246:1, 234: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', 315, Ljava_lang_Enum_2_classLit, values_63, valueOf_57); +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_36, 315, 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); +} + +function NodePromotionStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_58(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_36, 260, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY]); +} + +defineClass(260, 22, {3:1, 35:1, 22:1, 260:1}, NodePromotionStrategy); +var DUMMYNODE_PERCENTAGE, 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', 260, Ljava_lang_Enum_2_classLit, values_64, valueOf_58); +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_36, 260, 0, [NONE_9, NIKOLOV, NIKOLOV_PIXEL, NIKOLOV_IMPROVED, NIKOLOV_IMPROVED_PIXEL, DUMMYNODE_PERCENTAGE, NODECOUNT_PERCENTAGE, NO_BOUNDARY]))); +} + +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); +} + +function OrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_59(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_36, 338, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES]); +} + +defineClass(338, 22, {3:1, 35:1, 22:1, 338:1}, OrderingStrategy); +var NODES_AND_EDGES, NONE_10, PREFER_EDGES; +var Lorg_eclipse_elk_alg_layered_options_OrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'OrderingStrategy', 338, Ljava_lang_Enum_2_classLit, values_65, valueOf_59); +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_36, 338, 0, [NONE_10, NODES_AND_EDGES, PREFER_EDGES]))); +} + +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_60(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_36, 422, 0, [INPUT_ORDER, PORT_DEGREE]); +} + +defineClass(422, 22, {3:1, 35:1, 22:1, 422: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', 422, Ljava_lang_Enum_2_classLit, values_66, valueOf_60); +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_36, 422, 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_61(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_36, 453, 0, [UNDEFINED_0, INPUT, OUTPUT]); +} + +defineClass(453, 22, {3:1, 35:1, 22:1, 453: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', 453, Ljava_lang_Enum_2_classLit, values_67, valueOf_61); +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_36, 453, 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_62(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_36, 375, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]); +} + +defineClass(375, 22, {3:1, 35:1, 22:1, 375: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', 375, Ljava_lang_Enum_2_classLit, values_68, valueOf_62); +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_36, 375, 0, [EQUALLY, NORTH_2, NORTH_SOUTH]))); +} + +var $MAP_50; +function $clinit_SelfLoopOrderingStrategy(){ + $clinit_SelfLoopOrderingStrategy = emptyMethod; + STACKED = new SelfLoopOrderingStrategy('STACKED', 0); + SEQUENCED = new SelfLoopOrderingStrategy('SEQUENCED', 1); +} + +function SelfLoopOrderingStrategy(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_63(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_36, 376, 0, [STACKED, SEQUENCED]); +} + +defineClass(376, 22, {3:1, 35:1, 22:1, 376:1}, SelfLoopOrderingStrategy); +var SEQUENCED, STACKED; +var Lorg_eclipse_elk_alg_layered_options_SelfLoopOrderingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.layered.options', 'SelfLoopOrderingStrategy', 376, Ljava_lang_Enum_2_classLit, values_69, valueOf_63); +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_36, 376, 0, [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_36, 267, 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], [593, 146], 0, [n, n], 2); + this.nodeTypeSpacingOptionsVertical = initMultidimensionalArray(Lorg_eclipse_elk_graph_properties_IProperty_2_classLit, [$intern_16, $intern_112], [593, 146], 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), 94); + individualSpacings.hasProperty(property) && (result = individualSpacings.getProperty(property)); + } + result == null && (result = $getProperty($getGraph(node), property)); + return result; +} + +defineClass(304, 1, {304:1}, Spacings); +var Lorg_eclipse_elk_alg_layered_options_Spacings_2_classLit = createForClass('org.eclipse.elk.alg.layered.options', 'Spacings', 304); +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_64(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_36, 335, 0, [CONSERVATIVE, CONSERVATIVE_SOFT, SLOPPY]); +} + +defineClass(335, 22, {3:1, 35:1, 22:1, 335: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', 335, Ljava_lang_Enum_2_classLit, values_70, valueOf_64); +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_36, 335, 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_65(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_36, 337, 0, [NO, GREEDY_0, LOOK_BACK]); +} + +defineClass(337, 22, {3:1, 35:1, 22:1, 337: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', 337, Ljava_lang_Enum_2_classLit, values_71, valueOf_65); +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_36, 337, 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_66(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_36, 377, 0, [OFF_0, SINGLE_EDGE, MULTI_EDGE]); +} + +defineClass(377, 22, {3:1, 35:1, 22:1, 377: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', 377, Ljava_lang_Enum_2_classLit, values_72, valueOf_66); +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_36, 377, 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), 17); + 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; + $begin(monitor, '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, 25, nodeCount, 16, 1); + this$static.active = initUnidimensionalArray(Z_classLit, $intern_91, 25, 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_7(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_7(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_7(edge$iterator), 17); + $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; + $done_0(monitor); +} + +function DepthFirstCycleBreaker(){ + $clinit_DepthFirstCycleBreaker(); +} + +defineClass(1383, 1, $intern_113, DepthFirstCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION; +} +; +_.process = function process_54(graph, monitor){ + $process_57(this, castTo(graph, 37), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION; +var Lorg_eclipse_elk_alg_layered_p1cycles_DepthFirstCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'DepthFirstCycleBreaker', 1383); +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, random, shiftBase, sink, source, targetIx, unprocessedNodeCount; + $begin(monitor, 'Greedy cycle removal', 1); + nodes = layeredGraph.layerlessNodes; + unprocessedNodeCount = nodes.array.length; + this$static.indeg = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); + this$static.outdeg = initUnidimensionalArray(I_classLit, $intern_48, 25, unprocessedNodeCount, 15, 1); + this$static.mark = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_7(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_7(port$iterator), 11); + for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + if (edge.source.owner == node) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).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_7(edge$iterator), 17); + if (edge.target.owner == node) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).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; + random = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); + 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_42; + for (node$iterator1 = new ArrayList$1(nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_7(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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxOutflow = outflow; + } + maxNodes.array[maxNodes.array.length] = node; + } + } + } + maxNode = castTo($get_11(maxNodes, $nextInt(random, maxNodes.array.length)), 10); + 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_7(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); + $done_0(monitor); +} + +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_7(port$iterator), 11); + 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_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + connectedPort = edge.source == port?edge.target:edge.source; + endpoint = connectedPort.owner; + if (node == endpoint) { + continue; + } + priority = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_DIRECTION_0)), 19).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(1382, 1, $intern_113, GreedyCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_0(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_0; +} +; +_.process = function process_55(layeredGraph, monitor){ + $process_58(this, castTo(layeredGraph, 37), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_0; +var Lorg_eclipse_elk_alg_layered_p1cycles_GreedyCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'GreedyCycleBreaker', 1382); +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(), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + 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; + $begin(monitor, '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_7(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(), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + target = edge.target.owner; + if (target != source) { + targetx = $getInteractiveReferencePoint(target).x_0; + targetx < sourcex && (revEdges.array[revEdges.array.length] = edge , true); + } + } + } + } + for (edge$iterator1 = new ArrayList$1(revEdges); edge$iterator1.i < edge$iterator1.this$01.array.length;) { + edge = castTo($next_7(edge$iterator1), 17); + $reverse_0(edge, true); + } + revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator = new ArrayList$1(layeredGraph.layerlessNodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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_7(edge$iterator), 17); + $reverse_0(edge, true); + } + revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(monitor); +} + +function InteractiveCycleBreaker(){ + $clinit_InteractiveCycleBreaker(); +} + +defineClass(1384, 1, $intern_113, InteractiveCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_1(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_1; +} +; +_.process = function process_56(layeredGraph, monitor){ + $process_59(this, castTo(layeredGraph, 37), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_1; +var Lorg_eclipse_elk_alg_layered_p1cycles_InteractiveCycleBreaker_2_classLit = createForClass('org.eclipse.elk.alg.layered.p1cycles', 'InteractiveCycleBreaker', 1384); +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)), 163).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_0)) && (modelOrder += castTo($getProperty(node, MODEL_ORDER_0), 19).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; + $begin(monitor, '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_7(node$iterator), 10); + $hasProperty(node, ($clinit_InternalProperties_1() , MODEL_ORDER_0)) && (offset = $wnd.Math.max(offset, castTo($getProperty(node, MODEL_ORDER_0), 19).value_0 + 1)); + } + for (source$iterator = new ArrayList$1(layeredGraph.layerlessNodes); source$iterator.i < source$iterator.this$01.array.length;) { + source = castTo($next_7(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(), 11); + for (edge$iterator0 = new ArrayList$1(port.outgoingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + target = edge.target.owner; + modelOrderTarget = $computeConstraintModelOrder(this$static, target, offset); + modelOrderTarget < modelOrderSource && (revEdges.array[revEdges.array.length] = edge , true); + } + } + } + for (edge$iterator = new ArrayList$1(revEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $reverse_0(edge, true); + $setProperty_0(layeredGraph, ($clinit_InternalProperties_1() , CYCLIC), ($clinit_Boolean() , true)); + } + revEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(monitor); +} + +function ModelOrderCycleBreaker(){ + $clinit_ModelOrderCycleBreaker(); +} + +defineClass(1385, 1, $intern_113, ModelOrderCycleBreaker); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_2(graph){ + return castTo(graph, 37) , INTERMEDIATE_PROCESSING_CONFIGURATION_2; +} +; +_.process = function process_57(layeredGraph, monitor){ + $process_60(this, castTo(layeredGraph, 37), 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', 1385); +function $clinit_CoffmanGrahamLayerer(){ + $clinit_CoffmanGrahamLayerer = 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 $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), 17); + 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(), 19); + iv = castTo(itV.previous_0(), 19); + 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); + layers.array[layers.array.length] = 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), 17); + 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), 17); + 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_2(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_61(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; + $begin(progressMonitor, 'Coffman-Graham Layering', 1); + if (layeredGraph.layerlessNodes.array.length == 0) { + $done_0(progressMonitor); + return; + } + w = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_COFFMAN_GRAHAM_LAYER_BOUND_0)), 19).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_7(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), 17); + e.id_0 = edgeIndex++; + } + } + this$static.nodeMark = initUnidimensionalArray(Z_classLit, $intern_91, 25, index_0, 16, 1); + this$static.edgeMark = initUnidimensionalArray(Z_classLit, $intern_91, 25, edgeIndex, 16, 1); + this$static.inDeg = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); + this$static.outDeg = initUnidimensionalArray(I_classLit, $intern_48, 25, index_0, 15, 1); + this$static.topoOrd = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_7(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), 17); + this$static.edgeMark[e.id_0] || ++this$static.inDeg[v.id_0]; + } + this$static.inDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sources, v)) , 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), 17); + if (this$static.edgeMark[e.id_0]) { + continue; + } + tgt = e.target.owner; + --this$static.inDeg[tgt.id_0]; + $put(this$static.inTopo, tgt, valueOf_4(this$static.topoOrd[v.id_0])); + this$static.inDeg[tgt.id_0] == 0 && (checkCriticalState_0($offer(sources, tgt)) , 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_7(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), 17); + this$static.edgeMark[e.id_0] || ++this$static.outDeg[v.id_0]; + } + this$static.outDeg[v.id_0] == 0 && (checkCriticalState_0($offer(sinks, v)) , 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), 17); + 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)) , true); + } + } + for (j = layers.array.length - 1; j >= 0; --j) { + $add_3(layeredGraph.layers, (checkCriticalElementIndex(j, layers.array.length) , castTo(layers.array[j], 29))); + } + layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(progressMonitor); +} + +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_7(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), 17); + $dfs_4(this$static, start_0, out.target.owner); + } + } +} + +function CoffmanGrahamLayerer(){ + $clinit_CoffmanGrahamLayerer(); + this.inTopo = new ArrayListMultimap; +} + +defineClass(1388, 1, $intern_113, CoffmanGrahamLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_3(graph){ + return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_0; +} +; +_.process = function process_58(layeredGraph, progressMonitor){ + $process_61(this, castTo(layeredGraph, 37), progressMonitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_0; +var Lorg_eclipse_elk_alg_layered_p2layers_CoffmanGrahamLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer', 1388); +function CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1389, 1, $intern_88, CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type); +_.compare_1 = function compare_61(arg0, arg1){ + return $compareNodesInTopo(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 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_p2layers_CoffmanGrahamLayerer$0methodref$compareNodesInTopo$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type', 1389); +function CoffmanGrahamLayerer$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1390, 1, $intern_88, CoffmanGrahamLayerer$lambda$1$Type); +_.compare_1 = function compare_62(arg0, arg1){ + return $lambda$1_2(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_143(other){ + return this === other; +} +; +_.reversed = function reversed_54(){ + 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', 1390); +function $checkNode(this$static, node1, graph){ + var edge, edge$iterator, layer1, layer2, newIndex, newLayer, node2, port, port$iterator; + node1.id_0 = 1; + layer1 = node1.layer; + for (port$iterator = $getPorts(node1, ($clinit_PortType() , OUTPUT)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + 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), 29); + $setLayer_0(node2, newLayer); + } + $checkNode(this$static, node2, graph); + } + } + } + } +} + +function $process_62(this$static, layeredGraph, monitor){ + var currentSpans, foundSpan, layer, layerIterator, layers, maxx, minx, nextIndex, node, node$iterator, node$iterator0, node$iterator1, span_0, span$iterator, spanIter; + $begin(monitor, '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_7(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++), 569)); + 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_7(span$iterator), 569); + layer = new Layer(layeredGraph); + layer.id_0 = nextIndex++; + layers.array[layers.array.length] = layer; + for (node$iterator1 = new ArrayList$1(span_0.nodes); node$iterator1.i < node$iterator1.this$01.array.length;) { + node = castTo($next_7(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_7(node$iterator), 10); + node.id_0 == 0 && $checkNode(this$static, node, 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++), 29)).nodes.array.length == 0 && $remove_8(layerIterator); + } + layeredGraph.layerlessNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(monitor); +} + +function InteractiveLayerer(){ +} + +defineClass(1391, 1, $intern_113, InteractiveLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_4(graph){ + return castTo(graph, 37) , $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_59(layeredGraph, monitor){ + $process_62(this, castTo(layeredGraph, 37), monitor); +} +; +var Lorg_eclipse_elk_alg_layered_p2layers_InteractiveLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'InteractiveLayerer', 1391); +function InteractiveLayerer$LayerSpan(){ + this.nodes = new ArrayList; +} + +defineClass(569, 1, {569: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', 569); +function $clinit_LongestPathLayerer(){ + $clinit_LongestPathLayerer = 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 $process_63(this$static, thelayeredGraph, monitor){ + var index_0, node, node$iterator, node$iterator0, nodes; + $begin(monitor, 'Longest path layering', 1); + this$static.layeredGraph = thelayeredGraph; + nodes = this$static.layeredGraph.layerlessNodes; + this$static.nodeHeights = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_7(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_7(node$iterator), 10); + $visit(this$static, node); + } + nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.layeredGraph = null; + this$static.nodeHeights = null; + $done_0(monitor); +} + +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), 29)); + 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_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + 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(1387, 1, $intern_113, LongestPathLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_5(graph){ + return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_1; +} +; +_.process = function process_60(thelayeredGraph, monitor){ + $process_63(this, castTo(thelayeredGraph, 37), monitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_1; +var Lorg_eclipse_elk_alg_layered_p2layers_LongestPathLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'LongestPathLayerer', 1387); +function $clinit_MinWidthLayerer(){ + $clinit_MinWidthLayerer = emptyMethod; + UPPERBOUND_ON_WIDTH_RANGE = closed_0(valueOf_4(1), valueOf_4(4)); + COMPENSATOR_RANGE = closed_0(valueOf_4(1), valueOf_4(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; + currentLayer.array[currentLayer.array.length] = 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) { + layers.array[layers.array.length] = 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), 17); + 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_7(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), 17); + edge.source.owner == edge.target.owner || $add_6(outNodes, edge.target.owner); + } + successors.array[successors.array.length] = outNodes; + } + return successors; +} + +function $process_64(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; + $begin(progressMonitor, 'MinWidth layering', 1); + layers = layeredGraph.layers; + notInserted = layeredGraph.layerlessNodes; + upperBoundOnWidth = castTo($getProperty(layeredGraph, ($clinit_LayeredOptions() , LAYERING_MIN_WIDTH_UPPER_BOUND_ON_WIDTH_0)), 19).value_0; + compensator = castTo($getProperty(layeredGraph, LAYERING_MIN_WIDTH_UPPER_LAYER_ESTIMATION_SCALING_FACTOR_0), 19).value_0; + this$static.dummySize = $doubleValue(castToDouble($getProperty(layeredGraph, SPACING_EDGE_EDGE))); + this$static.minimumNodeSize = $intern_59; + for (node$iterator0 = new ArrayList$1(notInserted); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(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_48, 25, numOfNodes, 15, 1); + this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, numOfNodes, 15, 1); + this$static.normSize = initUnidimensionalArray(D_classLit, $intern_65, 25, 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_7(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_59; + 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(), 19).value_0; + ubwEnd = castTo(UPPERBOUND_ON_WIDTH_RANGE.upperBound.endpoint_0(), 19).value_0; + } + if (compensator < 0) { + cStart = castTo(COMPENSATOR_RANGE.lowerBound.endpoint_0(), 19).value_0; + cEnd = castTo(COMPENSATOR_RANGE.upperBound.endpoint_0(), 19).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); + } + layers.array[layers.array.length] = currentLayer; + } + reverse_2(layers); + notInserted.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $done_0(progressMonitor); +} + +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), 14))) { + return node; + } + } + return null; +} + +function MinWidthLayerer(){ + $clinit_MinWidthLayerer(); +} + +defineClass(1394, 1, $intern_113, MinWidthLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_6(graph){ + return castTo(graph, 37) , $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_61(layeredGraph, progressMonitor){ + $process_64(this, castTo(layeredGraph, 37), 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', 1394); +function $compare_18(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(1395, 1, $intern_88, MinWidthLayerer$MinOutgoingEdgesComparator); +_.compare_1 = function compare_63(o1, o2){ + return $compare_18(this, castTo(o1, 10), castTo(o2, 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_MinWidthLayerer$MinOutgoingEdgesComparator_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'MinWidthLayerer/MinOutgoingEdgesComparator', 1395); +function $clinit_NetworkSimplexLayerer(){ + $clinit_NetworkSimplexLayerer = 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 $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, 25, 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_7(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_7(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_7(port$iterator), 11); + 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_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + 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), 17); + 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)), 19).value_0)), 1), castTo($get_10(nodeMap, lEdge.source.owner), 121)), castTo($get_10(nodeMap, lEdge.target.owner), 121))); + } + } + return graph; +} + +function $process_65(this$static, theLayeredGraph, monitor){ + var connComp, connComp$iterator, connectedComponents, graph, iterLimit, l, l$iterator, lNode, layerIdx, layers, nNode, nNode$iterator, previousLayeringNodeCounts, theNodes, thoroughness; + $begin(monitor, 'Network simplex layering', 1); + this$static.layeredGraph = theLayeredGraph; + thoroughness = castTo($getProperty(theLayeredGraph, ($clinit_LayeredOptions() , THOROUGHNESS_0)), 19).value_0 * 4; + theNodes = this$static.layeredGraph.layerlessNodes; + if (theNodes.array.length < 1) { + $done_0(monitor); + 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_10(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), $subTask(monitor, 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_7(nNode$iterator), 121); + 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), 29)); + } + if (connectedComponents.size_0 > 1) { + previousLayeringNodeCounts = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_7(l$iterator), 29); + previousLayeringNodeCounts[layerIdx++] = l.nodes.array.length; + } + } + } + theNodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.componentNodes = null; + this$static.layeredGraph = null; + this$static.nodeVisited = null; + $done_0(monitor); +} + +function NetworkSimplexLayerer(){ + $clinit_NetworkSimplexLayerer(); +} + +defineClass(1386, 1, $intern_113, NetworkSimplexLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_7(graph){ + return castTo(graph, 37) , BASELINE_PROCESSING_CONFIGURATION_2; +} +; +_.process = function process_62(theLayeredGraph, monitor){ + $process_65(this, castTo(theLayeredGraph, 37), monitor); +} +; +var BASELINE_PROCESSING_CONFIGURATION_2; +var Lorg_eclipse_elk_alg_layered_p2layers_NetworkSimplexLayerer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'NetworkSimplexLayerer', 1386); +function $computeDegrees(this$static){ + var node, node$iterator; + this$static.inDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, this$static.sortedLayerlessNodes.array.length, 15, 1); + this$static.outDegree = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_7(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_65, 25, 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_7(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_7(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_7(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), 17); + $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_7(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), 17); + 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_4(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_7(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_66(this$static, layeredGraph, progressMonitor){ + var currentLayer; + $begin(progressMonitor, 'StretchWidth layering', 1); + if (layeredGraph.layerlessNodes.array.length == 0) { + $done_0(progressMonitor); + return; + } + this$static.currentGraph = layeredGraph; + this$static.widthCurrent = 0; + this$static.widthUp = 0; + this$static.minimumNodeSize = $intern_59; + this$static.maximumNodeSize = $intern_60; + 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + reverse_2(layeredGraph.layers); + $done_0(progressMonitor); +} + +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_7(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_7(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), 17); + 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(1392, 1, $intern_113, StretchWidthLayerer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_8(graph){ + return castTo(graph, 37) , $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_63(layeredGraph, progressMonitor){ + $process_66(this, castTo(layeredGraph, 37), 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', 1392); +function $compare_19(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(1393, 1, $intern_88, StretchWidthLayerer$1); +_.compare_1 = function compare_64(o1, o2){ + return $compare_19(castTo(o1, 10), castTo(o2, 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_StretchWidthLayerer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p2layers', 'StretchWidthLayerer/1', 1393); +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_7(inLayerPort$iterator), 11); + 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), 11); + 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_7(portDummyPort$iterator), 11); + 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $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)), 98))) { + $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(), 11); + 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_7(outgoingEdge$iterator), 17); + 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_7(incomingEdge$iterator), 17); + 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, 48, numLayers, 0, 2); +} + +defineClass(403, 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, 25, this.nPorts, 15, 1); + this.portBarycenter = initUnidimensionalArray(F_classLit, $intern_115, 25, this.nPorts, 15, 1); +} +; +_.initAtLayerLevel = function initAtLayerLevel_0(l, nodeOrder){ + this.nodePositions[l] = initUnidimensionalArray(I_classLit, $intern_48, 25, 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), 11).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', 403); +function AbstractBarycenterPortDistributor$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1632, 1, $intern_88, AbstractBarycenterPortDistributor$lambda$0$Type); +_.compare_1 = function compare_65(arg0, arg1){ + return $lambda$0_6(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_146(other){ + return this === other; +} +; +_.reversed = function reversed_57(){ + 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', 1632); +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_7(freePort$iterator), 11); + 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(), 11); + 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_7(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_7(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_7(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_7(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_7(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(816, 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, 660)):($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_7(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_7(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', 816); +function BarycenterHeuristic$BarycenterState(node){ + this.node = node; +} + +defineClass(658, 1, {658: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', 658); +function BarycenterHeuristic$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1801, 1, $intern_88, BarycenterHeuristic$lambda$0$Type); +_.compare_1 = function compare_66(arg0, arg1){ + return $lambda$0_7(this.$$outer_0, 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_p3order_BarycenterHeuristic$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'BarycenterHeuristic/lambda$0$Type', 1801); +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_7(group$iterator0), 233); + 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_7(group$iterator), 233); + 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_7(group$iterator), 233); + $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); + activeGroups.array[activeGroups.array.length] = group; + } + } + if (activeGroups) { + while (activeGroups.array.length != 0) { + group = castTo($remove_11(activeGroups, 0), 233); + 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_7(predecessor$iterator), 233); + 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(), 233); + successorIncomingList = (!successor.incomingConstraints && (successor.incomingConstraints = new ArrayList) , successor.incomingConstraints); + checkCriticalPositionIndex(0, successorIncomingList.array.length); + insertTo(successorIncomingList.array, 0, group); + successor.incomingConstraintsCount == successorIncomingList.array.length && (activeGroups.array[activeGroups.array.length] = 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++), 233)); + 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 || (nodeGroups.array[nodeGroups.array.length] = 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_7(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, 233), castTo(violatedConstraint.second, 233), groups); + } + nodes.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (group$iterator = new ArrayList$1(groups); group$iterator.i < group$iterator.this$01.array.length;) { + group = castTo($next_7(group$iterator), 233); + for (node$array = group.nodes , node$index = 0 , node$max = node$array.length; node$index < node$max; ++node$index) { + node = node$array[node$index]; + nodes.array[nodes.array.length] = 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, 2017, currentNodeOrder.length, 0, 2); + this.constraintGroups = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p3order_ForsterConstraintResolver$ConstraintGroup_2_classLit, $intern_16, 2018, currentNodeOrder.length, 0, 2); + this.layoutUnits = new LinkedHashMultimap; +} + +defineClass(815, 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, 2017:1}, 658, 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, 2018:1}, 233, 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', 815); +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(), 233); + 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(233, 1, {233: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', 233); +function ForsterConstraintResolver$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1796, 1, $intern_19, ForsterConstraintResolver$lambda$0$Type); +_.accept = function accept_114(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', 1796); +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), 214):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), 230); + 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, 225, 0, [this, this.crossingsCounter, this.layerSweepTypeDecider, this.portDistributor])); + if (crossMinType == ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , BARYCENTER)) { + constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); + initializables.array[initializables.array.length] = constraintResolver; + this.crossMinimizer = new BarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 403)); + } + else if (crossMinType == MODEL_ORDER_1) { + constraintResolver = new ForsterConstraintResolver(this.currentNodeOrder); + initializables.array[initializables.array.length] = constraintResolver; + this.crossMinimizer = new ModelOrderBarycenterHeuristic(constraintResolver, random, castTo(this.portDistributor, 403)); + } + else { + this.crossMinimizer = new GreedySwitchHeuristic(crossMinType, this); + } + $add_3(initializables, this.crossMinimizer); + init_0(initializables, this.currentNodeOrder); + this.useBottomUp = $useBottomUp(this.layerSweepTypeDecider); +} + +defineClass(214, 1, {214:1, 225: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_48, 25, 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', 214); +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)), 98))) { + 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 = instanceOf(ports, 152)?$reverse(castTo(ports, 152)):instanceOf(ports, 131)?castTo(ports, 131).forwardList:instanceOf(ports, 54)?new Lists$RandomAccessReverseList(ports):new Lists$ReverseList(ports)); + improved = false; + do { + continueSwitching = false; + for (i = 0; i < ports.size_1() - 1; i++) { + upperPort = castTo(ports.get_0(i), 11); + lowerPort = castTo(ports.get_0(i + 1), 11); + if ($switchingDecreasesCrossings(this$static, upperPort, lowerPort, useHierarchicalCrosscounter)) { + improved = true; + $switchPorts(this$static.crossingsCounter, castTo(ports.get_0(i), 11), castTo(ports.get_0(i + 1), 11)); + lower = castTo(ports.get_0(i + 1), 11); + ports.set_2(i + 1, castTo(ports.get_0(i), 11)); + 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, 19).value_0; + lowerUpperCrossings = castTo(originalNSwitchedCrossings.second, 19).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(1831, 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_48, 25, 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', 1831); +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)), 17); + bendpoints = castTo($getProperty(edge, ORIGINAL_BENDPOINTS), 74); + !bendpoints?(bendpoints = new KVectorChain):$booleanValue(castToBoolean($getProperty(edge, REVERSED))) && (bendpoints = reverse_3(bendpoints)); + source = castTo($getProperty(node, LONG_EDGE_SOURCE), 11); + 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), 11); + 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_10(pointIter), 8); + point2 = castTo($next_10(pointIter), 8); + while (point2.x_0 < horizPos && pointIter.currentNode != pointIter.this$01.tail) { + point1 = point2; + point2 = castTo($next_10(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), 11), ($clinit_InternalProperties_1() , ORIGIN_0)), 11); + 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_67(layeredGraph, monitor){ + var horizPos, layer, layer$iterator, layer$iterator0, layerIndex, nextIndex, node, node$iterator, node$iterator0, nodeCount, nodeOrder, port, port$iterator, portCount, portDistributor, pos; + $begin(monitor, '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_7(layer$iterator0), 29); + 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, 225, 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_7(layer$iterator), 29); + horizPos = 0; + nodeCount = 0; + for (node$iterator0 = new ArrayList$1(layer.nodes); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(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_7(port$iterator), 11); + port.id_0 = portCount++; + } + } + nodeCount > 0 && (horizPos /= nodeCount); + pos = initUnidimensionalArray(D_classLit, $intern_65, 25, 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_7(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; + } + $done_0(monitor); +} + +function InteractiveCrossingMinimizer(){ + $clinit_InteractiveCrossingMinimizer(); +} + +defineClass(1400, 1, $intern_113, InteractiveCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_9(graph){ + return $getLayoutProcessorConfiguration(castTo(graph, 37)); +} +; +_.process = function process_64(layeredGraph, monitor){ + $process_67(castTo(layeredGraph, 37), monitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_3; +var Lorg_eclipse_elk_alg_layered_p3order_InteractiveCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer', 1400); +function $compare_20(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(1401, 1, $intern_88, InteractiveCrossingMinimizer$1); +_.compare_1 = function compare_67(node1, node2){ + return $compare_20(this, castTo(node1, 10), castTo(node2, 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_p3order_InteractiveCrossingMinimizer$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'InteractiveCrossingMinimizer/1', 1401); +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), 19).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), 19).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), 214); + 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_7(childLGraph$iterator), 37); + child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 214); + 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), 214); + modelOrderInfluence = 0; + modelOrderStrategy = castTo($getProperty(currentGraph.lGraph, ($clinit_LayeredOptions() , CONSIDER_MODEL_ORDER_STRATEGY_0)), 338); + 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_7(childLGraph$iterator), 37); + child = castTo($get_11(this$static.graphInfoHolders, childLGraph.id_0), 214); + 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++) { + $compare_15(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], longEdgeTargetNodePreprocessing(lNode)); + for (i = 0; i < lNode.ports.array.length; i++) { + for (j = i + 1; j < lNode.ports.array.length; j++) { + $compare_16(comp, castTo($get_11(lNode.ports, i), 11), castTo($get_11(lNode.ports, j), 11)) > 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; + $booleanValue(castToBoolean($getProperty(rootGraph, ($clinit_LayeredOptions() , CROSSING_MINIMIZATION_FORCE_NODE_MODEL_ORDER_0)))) && (this$static.crossMinType = ($clinit_LayerSweepCrossingMinimizer$CrossMinType() , MODEL_ORDER_1)); + this$static.graphInfoHolders = new ArrayList; + this$static.random_0 = castTo($getProperty(rootGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); + 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, 37, 0, [rootGraph])); + i = 0; + while (i < graphs.array.length) { + graph = (checkCriticalElementIndex(i, graphs.array.length) , castTo(graphs.array[i], 37)); + 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_10(gData$iterator), 214); + 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, isForwardSweep, oldNumberOfCrossings; + isForwardSweep = $nextInternal(this$static.random_0, 1) != 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, isForwardSweep, oldNumberOfCrossings; + isForwardSweep = $nextInternal(this$static.random_0, 1) != 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_68(this$static, layeredGraph, progressMonitor){ + var emptyGraph, graphsToSweepOn, hierarchicalLayout, minimizingMethod, parent_0, singleNode; + $begin(progressMonitor, '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), 29).nodes.array.length == 1; + hierarchicalLayout = maskUndefined($getProperty(layeredGraph, ($clinit_LayeredOptions() , HIERARCHY_HANDLING))) === maskUndefined(($clinit_HierarchyHandling() , INCLUDE_CHILDREN)); + if (emptyGraph || singleNode && !hierarchicalLayout) { + $done_0(progressMonitor); + return; + } + graphsToSweepOn = $initialize_5(this$static, layeredGraph); + minimizingMethod = (parent_0 = castTo($get_7(graphsToSweepOn, 0), 214) , 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); + $done_0(progressMonitor); +} + +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(), 214); + $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(), 214); + $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(), 11); + $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]; + if (lastLayer[0].type_0 != ($clinit_LNode$NodeType() , EXTERNAL_PORT)) { + return; + } + j = $firstIndex(onRightMostLayer, lastLayer.length); + ports = parent_0.ports; + for (i = 0; i < ports.array.length; i++) { + port = (checkCriticalElementIndex(i, ports.array.length) , castTo(ports.array[i], 11)); + 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)), 11)); + 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), 214).useBottomUp && (improved = improved | (nestedLGraph = node.nestedGraph , nestedGraph = castTo($get_11(this$static.graphInfoHolders, nestedLGraph.id_0), 214) , 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_7(gD$iterator), 214); + bestSweep = gD.crossMinimizer.isDeterministic()?gD.currentlyBestNodeAndPortOrder:gD.bestNodeAndPortOrder; + !!bestSweep && $transferNodeAndPortOrdersToGraph_0(bestSweep, gD.lGraph); + } +} + +function LayerSweepCrossingMinimizer(cT){ + $clinit_LayerSweepCrossingMinimizer(); + this.crossMinType = cT; +} + +defineClass(507, 1, {507:1, 126:1, 51:1}, LayerSweepCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_10(graph){ + var configuration; + return castTo(graph, 37) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_4) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; +} +; +_.process = function process_65(layeredGraph, progressMonitor){ + $process_68(this, castTo(layeredGraph, 37), 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', 507); +function LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1397, 1, $intern_19, LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type); +_.accept = function accept_115(arg0){ + $compareDifferentRandomizedLayouts(this.$$outer_0, castTo(arg0, 214)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$0methodref$compareDifferentRandomizedLayouts$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type', 1397); +function LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1398, 1, $intern_19, LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type); +_.accept = function accept_116(arg0){ + $minimizeCrossingsNoCounter(this.$$outer_0, castTo(arg0, 214)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$1methodref$minimizeCrossingsNoCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type', 1398); +function LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1399, 1, $intern_19, LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type); +_.accept = function accept_117(arg0){ + $minimizeCrossingsWithCounter(this.$$outer_0, castTo(arg0, 214)); +} +; +var Lorg_eclipse_elk_alg_layered_p3order_LayerSweepCrossingMinimizer$2methodref$minimizeCrossingsWithCounter$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type', 1399); +function $clinit_LayerSweepCrossingMinimizer$CrossMinType(){ + $clinit_LayerSweepCrossingMinimizer$CrossMinType = emptyMethod; + BARYCENTER = new LayerSweepCrossingMinimizer$CrossMinType('BARYCENTER', 0); + MODEL_ORDER_1 = new LayerSweepCrossingMinimizer$CrossMinType('MODEL_ORDER', 1); + ONE_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('ONE_SIDED_GREEDY_SWITCH', 2); + TWO_SIDED_GREEDY_SWITCH_0 = new LayerSweepCrossingMinimizer$CrossMinType('TWO_SIDED_GREEDY_SWITCH', 3); +} + +function LayerSweepCrossingMinimizer$CrossMinType(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_67(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_36, 401, 0, [BARYCENTER, MODEL_ORDER_1, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]); +} + +defineClass(401, 22, {3:1, 35:1, 22:1, 401:1}, LayerSweepCrossingMinimizer$CrossMinType); +var BARYCENTER, MODEL_ORDER_1, 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', 401, Ljava_lang_Enum_2_classLit, values_73, valueOf_67); +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_36, 401, 0, [BARYCENTER, MODEL_ORDER_1, ONE_SIDED_GREEDY_SWITCH_0, TWO_SIDED_GREEDY_SWITCH_0]))); +} + +var $MAP_55; +function LayerSweepCrossingMinimizer$lambda$0$Type(){ +} + +defineClass(1396, 1, $intern_39, LayerSweepCrossingMinimizer$lambda$0$Type); +_.test_0 = function test_85(arg0){ + return $clinit_LayerSweepCrossingMinimizer() , castTo(arg0, 29).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', 1396); +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), 98)) || $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)) { + nsPortDummies.array[nsPortDummies.array.length] = 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)), 11).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), 17); + 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), 11); + 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_7(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), 17); + pathsToRandom += currentNode.randomInfluence; + pathsToHierarchical += currentNode.hierarchicalInfluence; + target = edge.target.owner; + $transferInfoTo(this$static, currentNode, target); + } + } + nsPortDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + allPaths = pathsToRandom + pathsToHierarchical; + normalized = allPaths == 0?$intern_59:(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, 1943, graphData.currentNodeOrder.length, 0, 2); +} + +defineClass(1798, 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, 1943:1}, 659, 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', 1798); +function LayerSweepTypeDecider$NodeInfo(){ +} + +defineClass(659, 1, {659: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', 659); +function LayerSweepTypeDecider$lambda$0$Type(){ +} + +defineClass(1799, 1, $intern_89, LayerSweepTypeDecider$lambda$0$Type); +_.apply_1 = function apply_137(arg0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 11).connectedEdges)); +} +; +_.equals_0 = function equals_149(other){ + return this === other; +} +; +_.test_0 = function test_86(input_0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 11).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', 1799); +function LayerSweepTypeDecider$lambda$1$Type(){ +} + +defineClass(1800, 1, $intern_89, LayerSweepTypeDecider$lambda$1$Type); +_.apply_1 = function apply_138(arg0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(arg0, 11).connectedEdges)); +} +; +_.equals_0 = function equals_150(other){ + return this === other; +} +; +_.test_0 = function test_87(input_0){ + return $hasNext_6(new LPort$CombineIter$1(castTo(input_0, 11).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', 1800); +function LayerTotalPortDistributor(numLayers){ + AbstractBarycenterPortDistributor.call(this, numLayers); +} + +defineClass(1832, 403, $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_7(port$iterator0), 11); + 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(), 11); + 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(), 11); + ++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', 1832); +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_0(this$static, n1, n2):value_0 > 0 && $updateBiggerAndSmallerAssociations_0(this$static, n2, n1); + return value_0; + } + else if (s1.barycenter != null) { + $updateBiggerAndSmallerAssociations_0(this$static, n1, n2); + return -1; + } + else if (s2.barycenter != null) { + $updateBiggerAndSmallerAssociations_0(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), 53), 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), 53), 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), 53), 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), 53), 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_0)) && $hasProperty(n2_1, MODEL_ORDER_0)) { + value_0 = compare_5(castTo($getProperty(n1_0, MODEL_ORDER_0), 19).value_0, castTo($getProperty(n2_1, MODEL_ORDER_0), 19).value_0); + value_0 < 0?$updateBiggerAndSmallerAssociations_0(this$static, n1_0, n2_1):value_0 > 0 && $updateBiggerAndSmallerAssociations_0(this$static, n2_1, n1_0); + return value_0; + } + return $compareBasedOnBarycenter(this$static, n1_0, n2_1); +} + +function $updateBiggerAndSmallerAssociations_0(this$static, bigger, smaller){ + var biggerNodeBiggerThan, biggerNodeSmallerThan, smallerNodeBiggerThan, smallerNodeSmallerThan, veryBig, veryBig$iterator, verySmall, verySmall$iterator; + biggerNodeBiggerThan = castTo($get_10(this$static.biggerThan, bigger), 53); + smallerNodeBiggerThan = castTo($get_10(this$static.biggerThan, smaller), 53); + biggerNodeSmallerThan = castTo($get_10(this$static.smallerThan, bigger), 53); + smallerNodeSmallerThan = castTo($get_10(this$static.smallerThan, smaller), 53); + 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), 53), bigger); + $addAll(castTo($get_10(this$static.smallerThan, verySmall), 53), 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), 53), smaller); + $addAll(castTo($get_10(this$static.biggerThan, veryBig), 53), 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(660, 816, {660:1, 225: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', 660); +function ModelOrderBarycenterHeuristic$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1802, 1, $intern_88, ModelOrderBarycenterHeuristic$lambda$0$Type); +_.compare_1 = function compare_68(arg0, arg1){ + return $lambda$0_8(this.$$outer_0, castTo(arg0, 10), castTo(arg1, 10)); +} +; +_.equals_0 = function equals_151(other){ + return this === other; +} +; +_.reversed = function reversed_60(){ + 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', 1802); +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_69(progressMonitor){ + $begin(progressMonitor, 'No crossing minimization', 1); + $done_0(progressMonitor); +} + +function NoCrossingMinimizer(){ + $clinit_NoCrossingMinimizer(); +} + +defineClass(1402, 1, $intern_113, NoCrossingMinimizer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_11(graph){ + var configuration; + return castTo(graph, 37) , configuration = createFrom_0(INTERMEDIATE_PROCESSING_CONFIGURATION_5) , $addBefore(configuration, ($clinit_LayeredPhases() , P3_NODE_ORDERING), ($clinit_IntermediateProcessorStrategy() , PORT_LIST_SORTER)) , configuration; +} +; +_.process = function process_66(graph, progressMonitor){ + $process_69((castTo(graph, 37) , progressMonitor)); +} +; +var INTERMEDIATE_PROCESSING_CONFIGURATION_5; +var Lorg_eclipse_elk_alg_layered_p3order_NoCrossingMinimizer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'NoCrossingMinimizer', 1402); +function NodeRelativePortDistributor(numLayers){ + AbstractBarycenterPortDistributor.call(this, numLayers); +} + +defineClass(795, 403, $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_7(port$iterator0), 11); + 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(), 11); + 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_7(port$iterator0), 11); + 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(), 11); + 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', 795); +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], 11)); + for (port$iterator = new ArrayList$1(origin_0.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + 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, 193, currentlyBestNodeOrder.length, 0, 2); + for (i = 0; i < result.length; i++) { + result[i] = castTo(copyOf_0(currentlyBestNodeOrder[i], currentlyBestNodeOrder[i].length), 193); + } + 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], 29)).nodes; + northSouthPortDummies.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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) && (northSouthPortDummies.array[northSouthPortDummies.array.length] = node , true); + $set_1(castTo($get_11(lGraph.layers, i), 29).nodes, j, node); + node.ports.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $addAll_2(node.ports, castTo(castTo($get_11(this$static.portOrders, i), 15).get_0(j), 14)); + $isOrderFixed(castTo($getProperty(node, ($clinit_LayeredOptions() , PORT_CONSTRAINTS_0)), 98)) || $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_7(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(806, 1, {}, SweepCopy, SweepCopy_0); +var Lorg_eclipse_elk_alg_layered_p3order_SweepCopy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order', 'SweepCopy', 806); +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_48, 25, graph.length, 15, 1); + this.hasNorthSouthPorts = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.length, 16, 1); + this.hasHyperEdgesEastOfIndex = initUnidimensionalArray(Z_classLit, $intern_91, 25, graph.length, 16, 1); + this.nPorts = 0; +} + +defineClass(1797, 1, $intern_111, AllCrossingsCounter); +_.initAtLayerLevel = function initAtLayerLevel_6(l, nodeOrder){ +} +; +_.initAfterTraversal = function initAfterTraversal_6(){ + var portPos; + portPos = initUnidimensionalArray(I_classLit, $intern_48, 25, 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), 11); + 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), 11); + 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', 1797); +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_48, 25, this$static.maxNum + 1, 15, 1); + this$static.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_48, 25, maxNum + 1, 15, 1); + this.numsPerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, maxNum, 15, 1); + this.size_0 = 0; +} + +defineClass(587, 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', 587); +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(), 11); + 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_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + if (!$isSelfLoop(edge)) { + $put_12(ports.map_0, 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, 11, 0, [upperPort, lowerPort]) , port$index = 0 , port$max = port$array.length; port$index < port$max; ++port$index) { + port = port$array[port$index]; + $put_12(ports.map_0, 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_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + 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_4(upperLowerCrossings), valueOf_4(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_7(port$iterator), 11); + $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_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + 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_4(endPosition)); + } + } + while (!$isEmpty(this$static.ends)) { + $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).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_4(upperLowerCrossings), valueOf_4(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_7(port$iterator), 11); + $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_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + 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_4(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), 19).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_7(port$iterator), 11); + $removeAll_3(this$static.indexTree, this$static.portPositions[port.id_0]); + targetsAndDegrees.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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)), 11); + $add_3(targetsAndDegrees, new Pair(dummyPort, valueOf_4(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_7(targetAndDegree$iterator), 46); + endPosition = $positionOf_0(this$static, castTo(targetAndDegree.first, 11)); + if (endPosition > this$static.portPositions[port.id_0]) { + crossings += $rank(this$static.indexTree, endPosition) * castTo(targetAndDegree.second, 19).value_0; + $addFirst(this$static.ends, valueOf_4(endPosition)); + } + } + while (!$isEmpty(this$static.ends)) { + $add_16(this$static.indexTree, castTo($removeFirst(this$static.ends), 19).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), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = 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_48, 25, 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(), 11); + 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), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = 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), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = p; + } + + break; + case 3: + if (!$getPortSideView(current, INDEXING_SIDE).isEmpty()) { + p = castTo($getPortSideView(current, INDEXING_SIDE).get_0(0), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = 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(), 11); + this$static.portPositions[p.id_0] = index_0++; + ports.array[ports.array.length] = 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_3(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(), 11); + 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(), 11); + 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_4(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_4(p_1.incomingEdges.array.length + p_1.outgoingEdges.array.length))); +} + +defineClass(524, 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', 524); +function CrossingsCounter$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1905, 1, $intern_88, CrossingsCounter$lambda$0$Type); +_.compare_1 = function compare_69(arg0, arg1){ + return $lambda$0_9(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_152(other){ + return this === other; +} +; +_.reversed = function reversed_61(){ + 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', 1905); +function CrossingsCounter$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1906, 1, $intern_88, CrossingsCounter$lambda$1$Type); +_.compare_1 = function compare_70(arg0, arg1){ + return $lambda$1_3(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_153(other){ + return this === other; +} +; +_.reversed = function reversed_62(){ + 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', 1906); +function CrossingsCounter$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1907, 1, $intern_88, CrossingsCounter$lambda$2$Type); +_.compare_1 = function compare_71(arg0, arg1){ + return $lambda$2_2(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.equals_0 = function equals_154(other){ + return this === other; +} +; +_.reversed = function reversed_63(){ + 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', 1907); +function CrossingsCounter$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1908, 1, $intern_88, CrossingsCounter$lambda$3$Type); +_.compare_1 = function compare_72(arg0, arg1){ + return $lambda$3_1(this.$$outer_0, castTo(arg0, 11), castTo(arg1, 11)); +} +; +_.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_counting_CrossingsCounter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'CrossingsCounter/lambda$3$Type', 1908); +function CrossingsCounter$lambda$4$Type(targetsAndDegrees_0){ + this.targetsAndDegrees_0 = targetsAndDegrees_0; +} + +defineClass(1909, 1, $intern_19, CrossingsCounter$lambda$4$Type); +_.accept = function accept_118(arg0){ + lambda$4_7(this.targetsAndDegrees_0, castTo(arg0, 11)); +} +; +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', 1909); +function CrossingsCounter$lambda$5$Type(port_0){ + this.port_0 = port_0; +} + +defineClass(1910, 1, $intern_39, CrossingsCounter$lambda$5$Type); +_.test_0 = function test_88(arg0){ + return lambda$5_4(this.port_0, castTo(arg0, 11)); +} +; +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', 1910); +function $accept_4(this$static, arg0){ + lambda$6_1(this$static.targetsAndDegrees_0, castTo(arg0, 11)); +} + +function CrossingsCounter$lambda$6$Type(targetsAndDegrees_0){ + this.targetsAndDegrees_0 = targetsAndDegrees_0; +} + +defineClass(1911, 1, $intern_19, CrossingsCounter$lambda$6$Type); +_.accept = function accept_119(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', 1911); +function CrossingsCounter$lambda$7$Type(stack_0, current_1){ + this.stack_0 = stack_0; + this.current_1 = current_1; +} + +defineClass(1912, 1, $intern_19, CrossingsCounter$lambda$7$Type); +_.accept = function accept_120(arg0){ + var lastArg; + $clinit_CrossingsCounter(); + $addFirst(this.stack_0, (lastArg = this.current_1 , castTo(arg0, 11) , 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', 1912); +function CrossingsCounter$lambda$8$Type(){ +} + +defineClass(825, 1, $intern_89, CrossingsCounter$lambda$8$Type); +_.apply_1 = function apply_139(arg0){ + return $clinit_CrossingsCounter() , $hasProperty(castTo(arg0, 11), ($clinit_InternalProperties_1() , PORT_DUMMY)); +} +; +_.equals_0 = function equals_156(other){ + return this === other; +} +; +_.test_0 = function test_89(input_0){ + return $clinit_CrossingsCounter() , $hasProperty(castTo(input_0, 11), ($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', 825); +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_7(port$iterator), 11); + portEdges = 0; + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + 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_7(port$iterator), 11); + 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_7(edge$iterator), 17); + 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), 11)); + portEdges = 0; + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + 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_7(sourcePort$iterator), 11); + for (edge$iterator = new ArrayList$1(sourcePort.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + targetPort = edge.target; + if (node.layer != targetPort.owner.layer) { + sourceHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, sourcePort)), 467); + targetHE = castTo(getEntryValueOrNull($getEntry_0(port2HyperedgeMap.hashCodeMap, targetPort)), 467); + 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_7(p$iterator), 11); + $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, 1945:1}, 467, hyperedgeSet.map_0.size_1(), 0, 1)), 1945); + 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_7(port$iterator), 11); + 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_48, 25, hyperedges.length, 15, 1); + compressDeltas = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_48, 25, 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, 361, 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, 361, 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(1904, 1, {}, HyperedgeCrossingsCounter); +var Lorg_eclipse_elk_alg_layered_p3order_counting_HyperedgeCrossingsCounter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p3order.counting', 'HyperedgeCrossingsCounter', 1904); +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(467, 1, {35:1, 467:1}, HyperedgeCrossingsCounter$Hyperedge); +_.compareTo_0 = function compareTo_15(other){ + return $compareTo_14(this, castTo(other, 467)); +} +; +_.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', 467); +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(361, 1, {35:1, 361:1}, HyperedgeCrossingsCounter$HyperedgeCorner); +_.compareTo_0 = function compareTo_16(other){ + return $compareTo_15(this, castTo(other, 361)); +} +; +_.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', 361); +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_68(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_36, 523, 0, [UPPER, LOWER]); +} + +defineClass(523, 22, {3:1, 35:1, 22:1, 523: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', 523, Ljava_lang_Enum_2_classLit, values_74, valueOf_68); +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_36, 523, 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_60; + 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_7(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_70(this$static, layeredGraph, monitor){ + var layer, layer$iterator; + $begin(monitor, 'Interactive node placement', 1); + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + $placeNodes(this$static, layer); + } + $done_0(monitor); +} + +function InteractiveNodePlacer(){ + $clinit_InteractiveNodePlacer(); +} + +defineClass(1404, 1, $intern_113, InteractiveNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_12(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS:null; +} +; +_.process = function process_67(layeredGraph, monitor){ + $process_70(this, castTo(layeredGraph, 37), monitor); +} +; +var HIERARCHY_PROCESSING_ADDITIONS; +var Lorg_eclipse_elk_alg_layered_p4nodes_InteractiveNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'InteractiveNodePlacer', 1404); +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_4(0)); + OUTPUT_PRIO = new Property_0('linearSegments.outputPrio', valueOf_4(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), 19).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_7(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_7(node$iterator), 10); + nodeDeflection = 0; + edgeWeightSum = 0; + inputPrio = incoming?castTo($getProperty(node, INPUT_PRIO), 19).value_0:$intern_42; + outputPrio = outgoing?castTo($getProperty(node, OUTPUT_PRIO), 19).value_0:$intern_42; + 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_7(port$iterator), 11); + 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_7(edge$iterator), 17); + otherPort = edge.target; + otherNode = otherPort.owner; + if (segment != this$static.linearSegments[otherNode.id_0]) { + otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 19).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 19).value_0); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).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_7(edge$iterator), 17); + otherPort = edge.source; + otherNode = otherPort.owner; + if (segment != this$static.linearSegments[otherNode.id_0]) { + otherPrio = $wnd.Math.max(castTo($getProperty(otherNode, INPUT_PRIO), 19).value_0, castTo($getProperty(otherNode, OUTPUT_PRIO), 19).value_0); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).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_7(layer$iterator), 29); + nodes = layer.nodes; + if (nodes.array.length == 0) { + continue; + } + nodeIter = new ArrayList$1(nodes); + indexInLayer = 0; + previousNode = null; + currentNode = castTo($next_7(nodeIter), 10); + currentSegment = null; + while (currentNode) { + currentSegment = castTo($get_11(segmentList, currentNode.id_0), 257); + 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), 257); + if (cycleSegment.lastLayer == currentSegment.lastLayer && cycleSegment.indexInLastLayer < currentSegment.indexInLastLayer) { + break; + } + else { + cycleSegment = null; + } + } + if (cycleSegment) { + if (previousNode) { + $set_1(incomingCountList, currentNode.id_0, valueOf_4(castTo($get_11(incomingCountList, currentNode.id_0), 19).value_0 - 1)); + castTo($get_11(outgoingList, previousNode.id_0), 15).remove_1(currentSegment); + } + currentSegment = $split_3(currentSegment, currentNode, nextLinearSegmentID++); + segmentList.array[segmentList.array.length] = currentSegment; + $add_3(outgoingList, new ArrayList); + if (previousNode) { + castTo($get_11(outgoingList, previousNode.id_0), 15).add_2(currentSegment); + $add_3(incomingCountList, valueOf_4(1)); + } + else { + $add_3(incomingCountList, valueOf_4(0)); + } + } + } + nextNode = null; + if (nodeIter.i < nodeIter.this$01.array.length) { + nextNode = castTo($next_7(nodeIter), 10); + nextSegment = castTo($get_11(segmentList, nextNode.id_0), 257); + castTo($get_11(outgoingList, currentNode.id_0), 15).add_2(nextSegment); + $set_1(incomingCountList, nextNode.id_0, valueOf_4(castTo($get_11(incomingCountList, nextNode.id_0), 19).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_48, 25, layeredGraph.layers.array.length, 15, 1); + recentNodeType = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_graph_LNode$NodeType_2_classLit, $intern_36, 267, 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_7(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_7(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_7(sourcePort$iterator), 11); + 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_7(targetPort$iterator.val$edgesIter2), 17).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_41 * nodeSpacing; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + nodeIter = new ArrayList$1(layer.nodes); + node1 = castTo($next_7(nodeIter), 10); + region1 = $region(this$static.linearSegments[node1.id_0]); + while (nodeIter.i < nodeIter.this$01.array.length) { + node2 = castTo($next_7(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_7(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_7(target$iterator), 11); + 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_7(edge$iterator), 17); + 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_7(source$iterator), 11); + 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_7(edge$iterator), 17); + 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_7(node$iterator), 10); + node.pos.y_0 += minDisplacement; + } + } + } +} + +function $process_71(this$static, layeredGraph, monitor){ + $begin(monitor, 'Linear segments node placement', 1); + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + $sortLinearSegments(this$static, layeredGraph); + $createUnbalancedPlacement(this$static, layeredGraph); + $balancePlacement(this$static, layeredGraph); + $postProcess(this$static); + this$static.linearSegments = null; + this$static.spacings = null; + $done_0(monitor); +} + +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_7(layer$iterator0), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.id_0 = -1; + inprio = $intern_42; + outprio = $intern_42; + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator0 = new ArrayList$1(port.incomingEdges); edge$iterator0.i < edge$iterator0.this$01.array.length;) { + edge = castTo($next_7(edge$iterator0), 17); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).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_7(edge$iterator), 17); + prio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + outprio = $wnd.Math.max(outprio, prio); + } + } + $setProperty_0(node, INPUT_PRIO, valueOf_4(inprio)); + $setProperty_0(node, OUTPUT_PRIO, valueOf_4(outprio)); + } + } + nextLinearSegmentID = 0; + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + if (node.id_0 < 0) { + segment = new LinearSegmentsNodePlacer$LinearSegment; + segment.id_0 = nextLinearSegmentID++; + $fillSegment(this$static, node, segment); + segmentList.array[segmentList.array.length] = 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_4(0)); + } + $createDependencyGraphEdges(layeredGraph, segmentList, outgoingList, incomingCountList); + segments = castTo($toArray_2(segmentList, initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 257, segmentList.array.length, 0, 1)), 839); + outgoing = castTo($toArray_2(outgoingList, initUnidimensionalArray(Ljava_util_List_2_classLit, $intern_99, 15, outgoingList.array.length, 0, 1)), 192); + incomingCount = initUnidimensionalArray(I_classLit, $intern_48, 25, incomingCountList.array.length, 15, 1); + for (i1 = 0; i1 < incomingCount.length; i1++) { + incomingCount[i1] = (checkCriticalElementIndex(i1, incomingCountList.array.length) , castTo(incomingCountList.array[i1], 19)).value_0; + } + nextRank = 0; + noIncoming = new ArrayList; + for (i2 = 0; i2 < segments.length; i2++) { + incomingCount[i2] == 0 && $add_3(noIncoming, segments[i2]); + } + newRanks = initUnidimensionalArray(I_classLit, $intern_48, 25, segments.length, 15, 1); + while (noIncoming.array.length != 0) { + segment = castTo($remove_11(noIncoming, 0), 257); + newRanks[segment.id_0] = nextRank++; + while (!outgoing[segment.id_0].isEmpty()) { + target = castTo(outgoing[segment.id_0].remove_2(0), 257); + --incomingCount[target.id_0]; + incomingCount[target.id_0] == 0 && (noIncoming.array[noIncoming.array.length] = target , true); + } + } + this$static.linearSegments = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_LinearSegmentsNodePlacer$LinearSegment_2_classLit, $intern_116, 257, 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_7(node$iterator), 10); + node.id_0 = rank; + } + } + return this$static.linearSegments; +} + +function LinearSegmentsNodePlacer(){ + $clinit_LinearSegmentsNodePlacer(); +} + +defineClass(1405, 1, $intern_113, LinearSegmentsNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_13(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_0:null; +} +; +_.process = function process_68(layeredGraph, monitor){ + $process_71(this, castTo(layeredGraph, 37), 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', 1405); +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(257, 1, {35:1, 257:1}, LinearSegmentsNodePlacer$LinearSegment); +_.compareTo_0 = function compareTo_17(other){ + return $compareTo_16(this, castTo(other, 257)); +} +; +_.equals_0 = function equals_157(object){ + var other; + if (instanceOf(object, 257)) { + other = castTo(object, 257); + return this.id_0 == other.id_0; + } + return false; +} +; +_.hashCode_1 = function hashCode_62(){ + 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', 257); +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_7(l$iterator), 29); + for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { + lNode = castTo($next_7(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), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , 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_7(p$iterator), 11); + if (($clinit_PortSide() , SIDES_EAST_WEST).contains(p.side)) { + nNode = castTo($get_10(this$static.portMap, p), 121); + 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_7(label$iterator), 70); + 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_7(l$iterator), 29); + $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); + path.array[path.array.length] = 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), 17); + 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], 17)).id_0]; + rightEdge = this$static.edgeReps[(checkCriticalElementIndex(1, path.array.length) , castTo(path.array[1], 17)).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_59; + 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_59; + 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_4(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), 121); + 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(), 11); + 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(), 11); + 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), 17); + 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 && (paths_1.array[paths_1.array.length] = 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_7(node$iterator0), 10); + for (port$iterator = $getPortSideView(node, ($clinit_PortSide() , EAST_2)).iterator_0(); port$iterator.hasNext_0();) { + port = castTo(port$iterator.next_1(), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.target.owner.layer != right) { + continue; + } + openEdges.array[openEdges.array.length] = 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(), 11); + for (edge$iterator = new ArrayList$1(port.incomingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + if (!$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer || $isSelfLoop(edge) || edge.source.owner.layer != left) { + continue; + } + openEdgesIt = new AbstractList$ListIteratorImpl(openEdges, openEdges.array.length); + last = (checkCriticalElement(openEdgesIt.i > 0) , castTo(openEdgesIt.this$01.get_0(openEdgesIt.last = --openEdgesIt.i), 17)); + 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), 17)); + } + 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)), 508); + tryAgain = $improveTwoPath(this$static, path, true); + tryAgain && $add_3(s.arrayList, path); + } + while (s.arrayList.array.length != 0) { + path = castTo($pop(s), 508); + $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_48, 25, 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, 25, 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_7(path$iterator), 508); + if (path.array.length <= 1) { + continue; + } + if (path.array.length == 2) { + $orderTwoPath(path); + isFlexibleNode((checkCriticalElementIndex(0, path.array.length) , castTo(path.array[0], 17)).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_7(pathIt), 17); + 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_7(l$iterator), 29); + for (lNode$iterator = new ArrayList$1(l.nodes); lNode$iterator.i < lNode$iterator.this$01.array.length;) { + lNode = castTo($next_7(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), 17); + 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_7(p$iterator), 11); + 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, 402, nodeIdx, 0, 1); + this$static.edgeReps = initUnidimensionalArray(Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit, $intern_2, 649, edgeIdx, 0, 1); + this$static.flexibleWhereSpacePermitsEdges.map_0.clear_0(); +} + +function $process_72(this$static, layeredGraph, progressMonitor){ + var edge, edge$iterator, iterLimit, pm, minLayer, maxLayer, usedLayers, globalSource, globalSink; + $begin(progressMonitor, 'Network simplex node placement', 1); + this$static.lGraph = layeredGraph; + this$static.spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + $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 = $subTask(progressMonitor, 1); + $begin(pm, 'Straight Edges Pre-Processing', 1); + $preferStraightEdges(this$static); + $done_0(pm); + } + $makeConnected(this$static.nGraph); + iterLimit = castTo($getProperty(layeredGraph, THOROUGHNESS_0), 19).value_0 * this$static.nGraph.nodes.array.length; + $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), $subTask(progressMonitor, 1)); + if (this$static.flexibleWhereSpacePermitsEdges.map_0.size_1() != 0) { + pm = $subTask(progressMonitor, 1); + $begin(pm, 'Flexible Where Space Processing', 1); + minLayer = castTo($get_17($min_0($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$13$Type), new NetworkSimplexPlacer$0methodref$compare$Type)), 19).value_0; + maxLayer = castTo($get_17($max_1($map_0(new StreamImpl(null, new Spliterators$IteratorSpliterator(this$static.nGraph.nodes, 16)), new NetworkSimplexPlacer$lambda$15$Type), new NetworkSimplexPlacer$1methodref$compare$Type)), 19).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(), 213); + edge.weight = 1; + } + $execute_0($withBalancing($withIterationLimit(forGraph(this$static.nGraph), iterLimit), false), $subTask(pm, 1)); + $done_0(pm); + } + if ($booleanValue(castToBoolean($getProperty(layeredGraph, NODE_PLACEMENT_FAVOR_STRAIGHT_EDGES_0)))) { + pm = $subTask(progressMonitor, 1); + $begin(pm, 'Straight Edges Post-Processing', 1); + $postProcessTwoPaths(this$static); + $done_0(pm); + } + $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(); + $done_0(progressMonitor); +} + +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)), 19).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), 121))); + right = $create_1($target($source($delta($weight(new NEdge$NEdgeBuilder, weight), tgtDelta), dummy), castTo($get_10(this$static.portMap, lEdge.target), 121))); + 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_7(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), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , 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), 142); + !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(), 11); + 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_7(p$iterator), 11); + 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)), 98); + 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), 197)):(nf = castTo($getProperty($getGraph(lNode), NODE_PLACEMENT_NETWORK_SIMPLEX_NODE_FLEXIBILITY_DEFAULT_0), 197)) , 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), 142); + !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_29(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(1407, 1, $intern_113, NetworkSimplexPlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_14(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_1:null; +} +; +_.process = function process_69(layeredGraph, progressMonitor){ + $process_72(this, castTo(layeredGraph, 37), 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', 1407); +function NetworkSimplexPlacer$0methodref$compare$Type(){ +} + +defineClass(1426, 1, $intern_88, NetworkSimplexPlacer$0methodref$compare$Type); +_.compare_1 = function compare_73(arg0, arg1){ + return compare_5(castTo(arg0, 19).value_0, castTo(arg1, 19).value_0); +} +; +_.equals_0 = function equals_158(other){ + return this === other; +} +; +_.reversed = function reversed_65(){ + 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', 1426); +function NetworkSimplexPlacer$1methodref$compare$Type(){ +} + +defineClass(1428, 1, $intern_88, NetworkSimplexPlacer$1methodref$compare$Type); +_.compare_1 = function compare_74(arg0, arg1){ + return compare_5(castTo(arg0, 19).value_0, castTo(arg1, 19).value_0); +} +; +_.equals_0 = function equals_159(other){ + return this === other; +} +; +_.reversed = function reversed_66(){ + 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', 1428); +function NetworkSimplexPlacer$EdgeRep(left, right){ + this.left = left; + this.right = right; +} + +defineClass(649, 1, {649:1}, NetworkSimplexPlacer$EdgeRep); +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$EdgeRep_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/EdgeRep', 649); +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(402, 1, {402: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', 402); +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], 17)).source.owner); + $clinit_NetworkSimplexPlacer(); + if (nf == ($clinit_NodeFlexibility() , NODE_SIZE_WHERE_SPACE_PERMITS) || nf == NODE_SIZE) { + return true; + } + return $anyMatch($map_0(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], 17)).source.owner.type_0 == ($clinit_LNode$NodeType() , LONG_EDGE)) { + return true; + } + return $anyMatch($map_0(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], 17)); + second = (checkCriticalElementIndex(1, this$static.array.length) , castTo(this$static.array[1], 17)); + if (first.target.owner != second.source.owner) { + this$static.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.array[this$static.array.length] = second; + this$static.array[this$static.array.length] = first; + } +} + +function NetworkSimplexPlacer$Path(){ + ArrayList.call(this); +} + +defineClass(508, 12, {3:1, 4:1, 20:1, 28:1, 52:1, 12:1, 14:1, 15:1, 54:1, 508:1}, NetworkSimplexPlacer$Path); +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$Path_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/Path', 508); +function NetworkSimplexPlacer$Path$lambda$0$Type(){ +} + +defineClass(1408, 1, {}, NetworkSimplexPlacer$Path$lambda$0$Type); +_.apply_0 = function apply_140(arg0){ + return castTo(arg0, 17).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', 1408); +function NetworkSimplexPlacer$Path$lambda$1$Type(){ +} + +defineClass(1409, 1, $intern_39, NetworkSimplexPlacer$Path$lambda$1$Type); +_.test_0 = function test_90(arg0){ + return castTo(arg0, 267) == ($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', 1409); +function NetworkSimplexPlacer$Path$lambda$2$Type(){ +} + +defineClass(1410, 1, {}, NetworkSimplexPlacer$Path$lambda$2$Type); +_.apply_0 = function apply_141(arg0){ + return castTo(arg0, 17).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', 1410); +function NetworkSimplexPlacer$Path$lambda$3$Type(p_0){ + this.p_0 = p_0; +} + +defineClass(1411, 1, $intern_39, NetworkSimplexPlacer$Path$lambda$3$Type); +_.test_0 = function test_91(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', 1411); +function NetworkSimplexPlacer$lambda$0$Type(){ +} + +defineClass(1412, 1, $intern_39, NetworkSimplexPlacer$lambda$0$Type); +_.test_0 = function test_92(arg0){ + return lambda$0_29(castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$0$Type', 1412); +function NetworkSimplexPlacer$lambda$1$Type($$outer_0, singleNode_1){ + this.$$outer_0 = $$outer_0; + this.singleNode_1 = singleNode_1; +} + +defineClass(1413, 1, $intern_19, NetworkSimplexPlacer$lambda$1$Type); +_.accept = function accept_121(arg0){ + $lambda$1_4(this.$$outer_0, this.singleNode_1, castTo(arg0, 11)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$1$Type', 1413); +function NetworkSimplexPlacer$lambda$10$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1422, 1, $intern_19, NetworkSimplexPlacer$lambda$10$Type); +_.accept = function accept_122(arg0){ + $lambda$10(this.$$outer_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$10$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$10$Type', 1422); +function NetworkSimplexPlacer$lambda$11$Type(){ +} + +defineClass(1423, 1, {}, NetworkSimplexPlacer$lambda$11$Type); +_.apply_0 = function apply_142(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1423); +function NetworkSimplexPlacer$lambda$12$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1424, 1, $intern_19, NetworkSimplexPlacer$lambda$12$Type); +_.accept = function accept_123(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', 1424); +function NetworkSimplexPlacer$lambda$13$Type(){ +} + +defineClass(1425, 1, {}, NetworkSimplexPlacer$lambda$13$Type); +_.apply_0 = function apply_143(arg0){ + return $clinit_NetworkSimplexPlacer() , valueOf_4(castTo(arg0, 121).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', 1425); +function NetworkSimplexPlacer$lambda$15$Type(){ +} + +defineClass(1427, 1, {}, NetworkSimplexPlacer$lambda$15$Type); +_.apply_0 = function apply_144(arg0){ + return $clinit_NetworkSimplexPlacer() , valueOf_4(castTo(arg0, 121).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', 1427); +function NetworkSimplexPlacer$lambda$17$Type(){ +} + +defineClass(1429, 1, $intern_39, NetworkSimplexPlacer$lambda$17$Type); +_.test_0 = function test_93(arg0){ + return $clinit_NetworkSimplexPlacer() , castTo(arg0, 402).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', 1429); +function NetworkSimplexPlacer$lambda$18$Type(){ +} + +defineClass(1430, 1, $intern_39, NetworkSimplexPlacer$lambda$18$Type); +_.test_0 = function test_94(arg0){ + return $clinit_NetworkSimplexPlacer() , castTo(arg0, 402).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', 1430); +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(1431, 1, $intern_19, NetworkSimplexPlacer$lambda$19$Type); +_.accept = function accept_124(arg0){ + lambda$19(this.minLayer_0, this.globalSource_1, this.usedLayers_2, this.globalSink_3, castTo(arg0, 402)); +} +; +_.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', 1431); +function NetworkSimplexPlacer$lambda$2$Type(){ +} + +defineClass(1414, 1, {}, NetworkSimplexPlacer$lambda$2$Type); +_.apply_0 = function apply_145(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1414); +function NetworkSimplexPlacer$lambda$20$Type(sizeDelta_0){ + this.sizeDelta_0 = sizeDelta_0; +} + +defineClass(1432, 1, $intern_19, NetworkSimplexPlacer$lambda$20$Type); +_.accept = function accept_125(arg0){ + lambda$20(this.sizeDelta_0, castTo(arg0, 11)); +} +; +_.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', 1432); +function NetworkSimplexPlacer$lambda$21$Type(){ +} + +defineClass(1433, 1, {}, NetworkSimplexPlacer$lambda$21$Type); +_.apply_0 = function apply_146(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1433); +function NetworkSimplexPlacer$lambda$22$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1434, 1, $intern_19, NetworkSimplexPlacer$lambda$22$Type); +_.accept = function accept_126(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', 1434); +function $test_0(arg0){ + return $clinit_NetworkSimplexPlacer() , $isFlexibleSizeWhereSpacePermits(castTo(arg0, 197)); +} + +function NetworkSimplexPlacer$lambda$23$Type(){ +} + +defineClass(1435, 1, $intern_39, NetworkSimplexPlacer$lambda$23$Type); +_.test_0 = function test_95(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', 1435); +function NetworkSimplexPlacer$lambda$24$Type(){ +} + +defineClass(1436, 1, {}, NetworkSimplexPlacer$lambda$24$Type); +_.apply_0 = function apply_147(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1436); +function NetworkSimplexPlacer$lambda$25$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1437, 1, $intern_39, NetworkSimplexPlacer$lambda$25$Type); +_.test_0 = function test_96(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', 1437); +function NetworkSimplexPlacer$lambda$26$Type($$outer_0, paths_1){ + this.$$outer_0 = $$outer_0; + this.paths_1 = paths_1; +} + +defineClass(1438, 1, $intern_19, NetworkSimplexPlacer$lambda$26$Type); +_.accept = function accept_127(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', 1438); +function NetworkSimplexPlacer$lambda$27$Type(){ +} + +defineClass(1439, 1, $intern_39, NetworkSimplexPlacer$lambda$27$Type); +_.test_0 = function test_97(arg0){ + return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$27$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$27$Type', 1439); +function NetworkSimplexPlacer$lambda$28$Type(){ +} + +defineClass(1440, 1, $intern_39, NetworkSimplexPlacer$lambda$28$Type); +_.test_0 = function test_98(arg0){ + return $clinit_NetworkSimplexPlacer() , !$isSelfLoop(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$28$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$28$Type', 1440); +function NetworkSimplexPlacer$lambda$29$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1441, 1, {}, NetworkSimplexPlacer$lambda$29$Type); +_.apply_3 = function apply_148(arg0, arg1){ + return $lambda$29(this.$$outer_0, castTo(arg0, 29), castTo(arg1, 29)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$29$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$29$Type', 1441); +function NetworkSimplexPlacer$lambda$3$Type(){ +} + +defineClass(1415, 1, {}, NetworkSimplexPlacer$lambda$3$Type); +_.apply_0 = function apply_149(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', 1415); +function NetworkSimplexPlacer$lambda$4$Type(){ +} + +defineClass(1416, 1, $intern_39, NetworkSimplexPlacer$lambda$4$Type); +_.test_0 = function test_99(arg0){ + return $clinit_NetworkSimplexPlacer() , isHandledEdge(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$4$Type', 1416); +function NetworkSimplexPlacer$lambda$5$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1417, 1, $intern_19, NetworkSimplexPlacer$lambda$5$Type); +_.accept = function accept_128(arg0){ + $transformEdge_0(this.$$outer_0, castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$5$Type', 1417); +function NetworkSimplexPlacer$lambda$6$Type(){ +} + +defineClass(1418, 1, {}, NetworkSimplexPlacer$lambda$6$Type); +_.apply_0 = function apply_150(arg0){ + return $clinit_NetworkSimplexPlacer() , new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 29).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', 1418); +function NetworkSimplexPlacer$lambda$7$Type(){ +} + +defineClass(1419, 1, $intern_39, NetworkSimplexPlacer$lambda$7$Type); +_.test_0 = function test_100(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', 1419); +function NetworkSimplexPlacer$lambda$8$Type(){ +} + +defineClass(1420, 1, {}, NetworkSimplexPlacer$lambda$8$Type); +_.apply_0 = function apply_151(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', 1420); +function NetworkSimplexPlacer$lambda$9$Type(){ +} + +defineClass(1421, 1, $intern_39, NetworkSimplexPlacer$lambda$9$Type); +_.test_0 = function test_101(arg0){ + return $clinit_NetworkSimplexPlacer() , $isInLayerEdge(castTo(arg0, 17)); +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_NetworkSimplexPlacer$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'NetworkSimplexPlacer/lambda$9$Type', 1421); +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_73(layeredGraph, monitor){ + var lastNode, layer, layer$iterator, layer$iterator0, layerSize, maxHeight, node, node$iterator, pos, spacings; + $begin(monitor, 'Simple node placement', 1); + spacings = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , SPACINGS)), 304); + maxHeight = 0; + for (layer$iterator0 = new ArrayList$1(layeredGraph.layers); layer$iterator0.i < layer$iterator0.this$01.array.length;) { + layer = castTo($next_7(layer$iterator0), 29); + 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_7(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_7(layer$iterator), 29); + 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_7(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; + } + } + $done_0(monitor); +} + +function SimpleNodePlacer(){ + $clinit_SimpleNodePlacer(); +} + +defineClass(1403, 1, $intern_113, SimpleNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_15(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_2:null; +} +; +_.process = function process_70(layeredGraph, monitor){ + $process_73(castTo(layeredGraph, 37), monitor); +} +; +var HIERARCHY_PROCESSING_ADDITIONS_2; +var Lorg_eclipse_elk_alg_layered_p4nodes_SimpleNodePlacer_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes', 'SimpleNodePlacer', 1403); +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_59; + max_0 = $intern_60; + for (layer$iterator = new ArrayList$1(this$static.layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (n$iterator = new ArrayList$1(layer.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(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)), 304); + 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, 333, 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, 333, 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, 333, nodeCount, 7, 1); + this.y_0 = initUnidimensionalArray(Ljava_lang_Double_2_classLit, $intern_16, 333, nodeCount, 7, 1); + this.su = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, nodeCount, 8, 1); + fill_2(this.su, ($clinit_Boolean() , false)); + this.od = initUnidimensionalArray(Ljava_lang_Boolean_2_classLit, $intern_16, 476, nodeCount, 8, 1); + fill_2(this.od, true); + this.vdir = vdir; + this.hdir = hdir; +} + +defineClass(180, 1, {180: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', 180); +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_69(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_36, 516, 0, [RIGHT_3, LEFT_3]); +} + +defineClass(516, 22, {3:1, 35:1, 22:1, 516: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', 516, Ljava_lang_Enum_2_classLit, values_75, valueOf_69); +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_36, 516, 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_70(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_36, 515, 0, [DOWN_0, UP_0]); +} + +defineClass(515, 22, {3:1, 35:1, 22:1, 515: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', 515, Ljava_lang_Enum_2_classLit, values_76, valueOf_70); +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_36, 515, 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(), 42) , 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_7(layer$iterator0), 29); + for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(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 = instanceOf(layers, 152)?$reverse(castTo(layers, 152)):instanceOf(layers, 131)?castTo(layers, 131).forwardList:instanceOf(layers, 54)?new Lists$RandomAccessReverseList(layers):new Lists$ReverseList(layers)); + for (layer$iterator = layers.iterator_0(); layer$iterator.hasNext_0();) { + layer = castTo(layer$iterator.next_1(), 29); + r = -1; + nodes = layer.nodes; + if (bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)) { + r = $intern_0; + nodes = instanceOf(nodes, 152)?$reverse(castTo(nodes, 152)):instanceOf(nodes, 131)?castTo(nodes, 131).forwardList:instanceOf(nodes, 54)?new Lists$RandomAccessReverseList(nodes):new Lists$ReverseList(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), 46); + 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), 46); + 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(1633, 1, {}, BKAligner); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKAligner_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKAligner', 1633); +function $getOrCreateClassNode(this$static, sinkNode){ + var node; + node = castTo($get_10(this$static.sinkNodes, sinkNode), 458); + 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_7(layer$iterator0), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + bal.sink[node.id_0] = node; + bal.shift_0[node.id_0] = bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_60:$intern_59; + } + } + $reset(this$static.sinkNodes); + layers = this$static.layeredGraph.layers; + bal.hdir == ($clinit_BKAlignedLayout$HDirection() , LEFT_3) && (layers = instanceOf(layers, 152)?$reverse(castTo(layers, 152)):instanceOf(layers, 131)?castTo(layers, 131).forwardList:instanceOf(layers, 54)?new Lists$RandomAccessReverseList(layers):new Lists$ReverseList(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(), 29); + nodes = layer.nodes; + bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0) && (nodes = instanceOf(nodes, 152)?$reverse(castTo(nodes, 152)):instanceOf(nodes, 131)?castTo(nodes, 131).forwardList:instanceOf(nodes, 54)?new Lists$RandomAccessReverseList(nodes):new Lists$ReverseList(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(), 29); + for (v$iterator = new ArrayList$1(layer.nodes); v$iterator.i < v$iterator.this$01.array.length;) { + v = castTo($next_7(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_60 || bal.vdir == DOWN_0 && sinkShift < $intern_59) && (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_60:$intern_59; + 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(), 42) , castTo(entry.getValue(), 458)); + 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)), 458); + 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_7(e$iterator), 654); + 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(), 42) , castTo(entry.getValue(), 458)); + 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)), 304); + 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(1636, 1, {}, BKCompactor); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_BKCompactor_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'BKCompactor', 1636); +function BKCompactor$ClassEdge(){ +} + +defineClass(654, 1, {654: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', 654); +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(458, 1, {458: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', 458); +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_7(layer$iterator), 29); + pos = $intern_60; + previous = null; + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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.recordLogs && $log_2(monitor, 'bk node placement breaks on ' + node + ' which should have been after ' + previous); + break; + } + } + if (!feasible) { + break; + } + } + monitor.recordLogs && $log_2(monitor, 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_65, 25, noOfLayouts, 15, 1); + min_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + max_0 = initUnidimensionalArray(D_classLit, $intern_65, 25, noOfLayouts, 15, 1); + minWidthLayout = 0; + for (i0 = 0; i0 < noOfLayouts; i0++) { + min_0[i0] = $intern_0; + max_0[i0] = $intern_42; + } + for (i1 = 0; i1 < noOfLayouts; i1++) { + bal = (checkCriticalElementIndex(i1, layouts.array.length) , castTo(layouts.array[i1], 180)); + 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_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(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_65, 25, noOfLayouts, 15, 1); + for (i2 = 0; i2 < noOfLayouts; i2++) { + (checkCriticalElementIndex(i2, layouts.array.length) , castTo(layouts.array[i2], 180)).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_65, 25, 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_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + for (i = 0; i < noOfLayouts; i++) { + calculatedYs[i] = $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 180)).y_0[node.id_0]) + $doubleValue((checkCriticalElementIndex(i, layouts.array.length) , castTo(layouts.array[i], 180)).innerShift[node.id_0]) + shift_0[i]; + } + calculatedYs.sort(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), 17); + 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_48, 25, 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_7(layer$iterator), 29); + 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++), 29)); + 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_7(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), 46).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(), 46); + 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, 17)); + } + } + ++l; + } + k_0 = k_1; + } + } + } +} + +function $process_74(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; + $begin(monitor, '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)), 273); + 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), 273).ordinal) { + case 3: + leftdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); + layouts.array[layouts.array.length] = leftdown; + break; + case 1: + leftup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , LEFT_3)); + layouts.array[layouts.array.length] = leftup; + break; + case 4: + rightdown = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , DOWN_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); + layouts.array[layouts.array.length] = rightdown; + break; + case 2: + rightup = new BKAlignedLayout(layeredGraph, this$static.ni.nodeCount, ($clinit_BKAlignedLayout$VDirection() , UP_0), ($clinit_BKAlignedLayout$HDirection() , RIGHT_3)); + layouts.array[layouts.array.length] = 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); + layouts.array[layouts.array.length] = rightdown; + layouts.array[layouts.array.length] = rightup; + layouts.array[layouts.array.length] = leftdown; + layouts.array[layouts.array.length] = 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_7(bal$iterator0), 180); + $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_7(bal$iterator1), 180); + $horizontalCompaction(compacter, bal); + } + if (monitor.recordLogs) { + for (bal$iterator2 = new ArrayList$1(layouts); bal$iterator2.i < bal$iterator2.this$01.array.length;) { + bal = castTo($next_7(bal$iterator2), 180); + $log_2(monitor, 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_7(bal$iterator2), 180); + $checkOrderConstraint(layeredGraph, bal, monitor) && (!chosenLayout || $layoutSize(chosenLayout) > $layoutSize(bal)) && (chosenLayout = bal); + } + } + !chosenLayout && (chosenLayout = (checkCriticalElementIndex(0, layouts.array.length) , castTo(layouts.array[0], 180))); + for (layer$iterator = new ArrayList$1(layeredGraph.layers); layer$iterator.i < layer$iterator.this$01.array.length;) { + layer = castTo($next_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 10); + node.pos.y_0 = $doubleValue(chosenLayout.y_0[node.id_0]) + $doubleValue(chosenLayout.innerShift[node.id_0]); + } + } + if (monitor.recordLogs) { + $log_2(monitor, 'Chosen node placement: ' + chosenLayout); + $log_2(monitor, 'Blocks: ' + getBlocks(chosenLayout)); + $log_2(monitor, 'Classes: ' + getClasses(chosenLayout, monitor)); + $log_2(monitor, 'Marked edges: ' + this$static.markedEdges); + } + for (bal$iterator = new ArrayList$1(layouts); bal$iterator.i < bal$iterator.this$01.array.length;) { + bal = castTo($next_7(bal$iterator), 180); + 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(); + $done_0(monitor); +} + +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_7(layer$iterator), 29); + for (node$iterator = new ArrayList$1(layer.nodes); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(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) { + $log_2(monitor, '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), 17); + if (edge.target.owner == target || edge.source.owner == target) { + return edge; + } + } + return null; +} + +defineClass(1406, 1, $intern_113, BKNodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_16(graph){ + return castTo($getProperty(castTo(graph, 37), ($clinit_InternalProperties_1() , GRAPH_PROPERTIES)), 21).contains(($clinit_GraphProperties() , EXTERNAL_PORTS))?HIERARCHY_PROCESSING_ADDITIONS_3:null; +} +; +_.process = function process_71(layeredGraph, monitor){ + $process_74(this, castTo(layeredGraph, 37), 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', 1406); +function $cleanup(this$static){ + this$static.layerIndex = null; + this$static.nodeIndex = null; + this$static.leftNeighbors.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.rightNeighbors.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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_7(layer$iterator), 29); + ni.nodeCount += layer.nodes.array.length; + } + lId = 0; + lIndex = 0; + ni.layerIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, graph.layers.array.length, 15, 1); + nId = 0; + nIndex = 0; + ni.nodeIndex = initUnidimensionalArray(I_classLit, $intern_48, 25, ni.nodeCount, 15, 1); + for (l$iterator = new ArrayList$1(graph.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l = castTo($next_7(l$iterator), 29); + 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_7(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_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(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), 17); + if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { + continue; + } + edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + if (edgePrio > maxPriority) { + maxPriority = edgePrio; + result.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + 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_7(l$iterator), 29); + for (n$iterator = new ArrayList$1(l.nodes); n$iterator.i < n$iterator.this$01.array.length;) { + n = castTo($next_7(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), 17); + if ($isSelfLoop(edge) || !$isSelfLoop(edge) && edge.source.owner.layer == edge.target.owner.layer) { + continue; + } + edgePrio = castTo($getProperty(edge, ($clinit_LayeredOptions() , PRIORITY_STRAIGHTNESS_0)), 19).value_0; + if (edgePrio > maxPriority) { + maxPriority = edgePrio; + result.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + 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(1634, 1, {}, NeighborhoodInformation); +_.nodeCount = 0; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_NeighborhoodInformation_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'NeighborhoodInformation', 1634); +function $compare_21(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(1635, 1, $intern_88, NeighborhoodInformation$NeighborComparator); +_.compare_1 = function compare_75(o1, o2){ + return $compare_21(this, castTo(o1, 46), castTo(o2, 46)); +} +; +_.equals_0 = function equals_160(other){ + return this === other; +} +; +_.reversed = function reversed_67(){ + 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', 1635); +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); + this$static.postProcessablesStack.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +function ThresholdStrategy(){ + this.blockFinished = new HashSet; + this.postProcessablesQueue = new LinkedList; + this.postProcessablesStack = new Stack; +} + +defineClass(807, 1, {}); +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy', 807); +function ThresholdStrategy$NullThresholdStrategy(){ + ThresholdStrategy.call(this); +} + +defineClass(1762, 807, {}, ThresholdStrategy$NullThresholdStrategy); +_.calculateThreshold = function calculateThreshold(oldThresh, blockRoot, currentNode){ + return this.bal.vdir == ($clinit_BKAlignedLayout$VDirection() , UP_0)?$intern_59:$intern_60; +} +; +_.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', 1762); +function ThresholdStrategy$Postprocessable(free, isRoot){ + this.free = free; + this.isRoot = isRoot; +} + +defineClass(579, 1, {579: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', 579); +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_59:$intern_60; + 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), 17); + 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_75(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(1763, 807, {}, 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), 579); + 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_75(this, pp); + moved || $push(this.postProcessablesStack, pp); + } + while (this.postProcessablesStack.arrayList.array.length != 0) { + $process_75(this, castTo($pop(this.postProcessablesStack), 579)); + } +} +; +var Lorg_eclipse_elk_alg_layered_p4nodes_bk_ThresholdStrategy$SimpleThresholdStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p4nodes.bk', 'ThresholdStrategy/SimpleThresholdStrategy', 1763); +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), 635); +} + +defineClass(635, 1, {635:1, 246:1, 234: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', 635); +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_76(layeredGraph, monitor){ + var edgeEdgeSpacing, edgeNodeSpacing, isLeftLayerExternal, isRightLayerExternal, layerIter, leftLayer, leftLayerNodes, nodeNodeSpacing, rightLayer, rightLayerNodes, routingGenerator, routingWidth, slotsCount, startPos, xpos; + $begin(monitor, '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++), 29)):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; + $done_0(monitor); +} + +function OrthogonalEdgeRouter(){ + $clinit_OrthogonalEdgeRouter(); +} + +defineClass(1457, 1, $intern_113, OrthogonalEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_17(graph){ + return $getLayoutProcessorConfiguration_0(castTo(graph, 37)); +} +; +_.process = function process_72(layeredGraph, monitor){ + $process_76(castTo(layeredGraph, 37), 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', 1457); +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)), 74); + 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_7(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), 17); + 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), 17); + if (!$isSelfLoop(e) && e.source.owner.layer == e.target.owner.layer) { + return true; + } + } + } + return false; +} + +function $process_77(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; + $begin(monitor, '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), 29)); + 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++), 29)); + 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_7(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), 17); + 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++), 29))); + 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; + $done_0(monitor); +} + +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_7(port$iterator), 11); + 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)), 11); + 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_7(e$iterator.firstIterator):$next_7(e$iterator.secondIterator), 17); + 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(1450, 1, $intern_113, PolylineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_18(graph){ + return $getLayoutProcessorConfiguration_1(castTo(graph, 37)); +} +; +_.process = function process_73(layeredGraph, monitor){ + $process_77(this, castTo(layeredGraph, 37), 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', 1450); +function $apply_18(node){ + var extPortSide; + extPortSide = castTo($getProperty(node, ($clinit_InternalProperties_1() , EXT_PORT_SIDE)), 61); + return node.type_0 == ($clinit_LNode$NodeType() , EXTERNAL_PORT) && (extPortSide == ($clinit_PortSide() , WEST_2) || extPortSide == EAST_2); +} + +function PolylineEdgeRouter$1(){ +} + +defineClass(1451, 1, $intern_89, PolylineEdgeRouter$1); +_.apply_1 = function apply_152(node){ + return $apply_18(castTo(node, 10)); +} +; +_.equals_0 = function equals_161(other){ + return this === other; +} +; +_.test_0 = function test_102(input_0){ + return $apply_18(castTo(input_0, 10)); +} +; +var Lorg_eclipse_elk_alg_layered_p5edges_PolylineEdgeRouter$1_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges', 'PolylineEdgeRouter/1', 1451); +function computeLinearOrderingMarks(segments, sources, sinks, criticalOnly, random){ + var entry, entryIterator, 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_0 != 0) { + while (sinks.size_0 != 0) { + sink = (checkCriticalElement(sinks.size_0 != 0) , castTo($removeNode_0(sinks, sinks.header.next_0), 112)); + $remove_26(unprocessed.map_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), 112)); + $remove_26(unprocessed.map_0, source) != null; + source.mark = nextSourceMark++; + updateNeighbors(source, sources, sinks, criticalOnly); + } + maxOutflow = $intern_42; + for (segment$iterator = (entryIterator = new TreeMap$EntryIterator((new TreeMap$EntrySet((new AbstractNavigableMap$NavigableKeySet(unprocessed.map_0)).map_0)).this$01_0) , new AbstractNavigableMap$NavigableKeySet$1(entryIterator)); $hasNext_2(segment$iterator.val$entryIterator2.iter);) { + segment = (entry = $next_11(segment$iterator.val$entryIterator2) , castTo(entry.getKey(), 112)); + if (!criticalOnly && segment.criticalOutDepWeight > 0 && segment.criticalInDepWeight <= 0) { + maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxSegments.array[maxSegments.array.length] = segment; + break; + } + outflow = segment.outDepWeight - segment.inDepWeight; + if (outflow >= maxOutflow) { + if (outflow > maxOutflow) { + maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxOutflow = outflow; + } + maxSegments.array[maxSegments.array.length] = segment; + } + } + if (maxSegments.array.length != 0) { + maxNode = castTo($get_11(maxSegments, $nextInt(random, maxSegments.array.length)), 112); + $remove_26(unprocessed.map_0, maxNode) != null; + maxNode.mark = nextSourceMark++; + updateNeighbors(maxNode, sources, sinks, criticalOnly); + maxSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + } + shiftBase = segments.array.length + 1; + for (node$iterator = new ArrayList$1(segments); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 112); + 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_7(source$iterator), 112); + for (outDependency$iterator = new ArrayList$1(source.outgoingSegmentDependencies); outDependency$iterator.i < outDependency$iterator.this$01.array.length;) { + outDependency = castTo($next_7(outDependency$iterator), 129); + (!criticalOnly || outDependency.type_0 == ($clinit_HyperEdgeSegmentDependency$DependencyType() , CRITICAL)) && source.mark > outDependency.target.mark && (result.array[result.array.length] = 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_7(segment$iterator), 112); + 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_7(dep$iterator0), 129); + 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_7(dep$iterator), 129); + 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(1808, 1, $intern_39, HyperEdgeCycleDetector$lambda$0$Type); +_.test_0 = function test_103(arg0){ + return castTo(arg0, 129).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', 1808); +function HyperEdgeCycleDetector$lambda$1$Type(){ +} + +defineClass(1809, 1, {}, HyperEdgeCycleDetector$lambda$1$Type); +_.applyAsInt = function applyAsInt(arg0){ + return castTo(arg0, 129).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', 1809); +function HyperEdgeCycleDetector$lambda$2$Type(){ +} + +defineClass(1810, 1, $intern_39, HyperEdgeCycleDetector$lambda$2$Type); +_.test_0 = function test_104(arg0){ + return castTo(arg0, 129).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', 1810); +function HyperEdgeCycleDetector$lambda$3$Type(){ +} + +defineClass(1811, 1, {}, HyperEdgeCycleDetector$lambda$3$Type); +_.applyAsInt = function applyAsInt_0(arg0){ + return castTo(arg0, 129).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', 1811); +function HyperEdgeCycleDetector$lambda$4$Type(){ +} + +defineClass(1812, 1, {}, HyperEdgeCycleDetector$lambda$4$Type); +_.applyAsInt = function applyAsInt_1(arg0){ + return castTo(arg0, 129).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', 1812); +function HyperEdgeCycleDetector$lambda$5$Type(){ +} + +defineClass(1813, 1, {}, HyperEdgeCycleDetector$lambda$5$Type); +_.applyAsInt = function applyAsInt_2(arg0){ + return castTo(arg0, 129).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', 1813); +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), 11); + 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), 129)); + } + while (this$static.outgoingSegmentDependencies.array.length != 0) { + $remove_31(castTo($get_11(this$static.outgoingSegmentDependencies, 0), 129)); + } + 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_10(listIter))); + if (next == value_0) { + return; + } + else if (next > value_0) { + $previous_0(listIter); + break; + } + } + $add_8(listIter, value_0); +} + +defineClass(112, 1, {35:1, 112:1}, HyperEdgeSegment); +_.compareTo_0 = function compareTo_18(other){ + return $compareTo_17(this, castTo(other, 112)); +} +; +_.equals_0 = function equals_162(object){ + var other; + if (instanceOf(object, 112)) { + other = castTo(object, 112); + return this.mark == other.mark; + } + return false; +} +; +_.hashCode_1 = function hashCode_63(){ + 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_7(portIter), 11); + 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', 112); +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(129, 1, {129: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', 129); +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_71(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_36, 520, 0, [REGULAR, CRITICAL]); +} + +defineClass(520, 22, {3:1, 35:1, 22:1, 520: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', 520, Ljava_lang_Enum_2_classLit, values_77, valueOf_71); +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_36, 520, 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, 112); + splitPartner = castTo(splitSegments.second, 112); + bestArea = (checkCriticalElementIndex(bestAreaIndex, freeAreas.array.length) , castTo(freeAreas.array[bestAreaIndex], 329)); + bestRating = $rateArea(segment, splitSegment, splitPartner, bestArea); + for (i = fromIndex + 1; i <= toIndex; i++) { + currArea = (checkCriticalElementIndex(i, freeAreas.array.length) , castTo(freeAreas.array[i], 329)); + currRating = $rateArea(segment, splitSegment, splitPartner, currArea); + if ($isBetter(currArea, currRating, bestArea, bestRating)) { + bestArea = currArea; + bestRating = currRating; + } + } + } + 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], 329)); + 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], 329))); + $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_7(dependency$iterator), 129); + 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_6($sorted($mapToDouble(concat_1(stampJavaTypeInfo(getClassLiteralForArray(Ljava_util_stream_Stream_2_classLit, 1), $intern_2, 832, 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_5(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_7(dependency$iterator0), 129); + 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_7(dependency$iterator), 129); + 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_7(otherSegment$iterator), 112); + 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], 329)); + $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_30(hes1_0, hes2_1){ + return compare_4(hes1_0.endPosition - hes1_0.startPosition, hes2_1.endPosition - hes2_1.startPosition); +} + +defineClass(1814, 1, {}, HyperEdgeSegmentSplitter); +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_HyperEdgeSegmentSplitter_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal', 'HyperEdgeSegmentSplitter', 1814); +function HyperEdgeSegmentSplitter$AreaRating(){ + this.dependencies = 0; + this.crossings = 0; +} + +defineClass(1815, 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', 1815); +function HyperEdgeSegmentSplitter$FreeArea(startPosition, endPosition){ + this.startPosition = startPosition; + this.endPosition = endPosition; + this.size_0 = endPosition - startPosition; +} + +defineClass(329, 1, {329: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', 329); +function HyperEdgeSegmentSplitter$lambda$0$Type(){ +} + +defineClass(1816, 1, $intern_88, HyperEdgeSegmentSplitter$lambda$0$Type); +_.compare_1 = function compare_76(arg0, arg1){ + return lambda$0_30(castTo(arg0, 112), castTo(arg1, 112)); +} +; +_.equals_0 = function equals_163(other){ + return this === other; +} +; +_.reversed = function reversed_68(){ + 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', 1816); +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(1817, 1, $intern_19, HyperEdgeSegmentSplitter$lambda$1$Type); +_.accept = function accept_129(arg0){ + $lambda$1_5(this.$$outer_0, this.segments_1, this.freeAreas_2, this.criticalConflictThreshold_3, castTo(arg0, 112)); +} +; +_.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', 1817); +function HyperEdgeSegmentSplitter$lambda$2$Type(){ +} + +defineClass(1818, 1, {}, HyperEdgeSegmentSplitter$lambda$2$Type); +_.apply_0 = function apply_153(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).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', 1818); +function HyperEdgeSegmentSplitter$lambda$3$Type(){ +} + +defineClass(1819, 1, {}, HyperEdgeSegmentSplitter$lambda$3$Type); +_.apply_0 = function apply_154(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).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', 1819); +function HyperEdgeSegmentSplitter$lambda$4$Type(){ +} + +defineClass(1820, 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', 1820); +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_10(iter1))); + pos2 = $doubleValue(castToDouble($next_10(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_10(iter1)))):pos2 <= pos1 && iter2.currentNode != iter2.this$01.tail?(pos2 = $doubleValue(castToDouble($next_10(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(), 11); + hyperEdge = castTo(getEntryValueOrNull($getEntry_0(portToHyperEdgeSegmentMap.hashCodeMap, port)), 112); + if (!hyperEdge) { + hyperEdge = new HyperEdgeSegment(this$static.routingStrategy); + hyperEdges.array[hyperEdges.array.length] = 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_36, 132, 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], 112)); + for (secondIdx = firstIdx + 1; secondIdx < edgeSegments.array.length; secondIdx++) { + criticalDependencyCount += $createDependencyIfNecessary(this$static, firstSegment, (checkCriticalElementIndex(secondIdx, edgeSegments.array.length) , castTo(edgeSegments.array[secondIdx], 112))); + } + } + random = castTo($getProperty(layeredGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230); + 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_7(node$iterator), 112); + 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_7(cycleDependency$iterator), 129); + 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_10(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_7(node$iterator0), 112); + $setInWeight(node, node.incomingSegmentDependencies.array.length); + $setOutWeight(node, node.outgoingSegmentDependencies.array.length); + node.inDepWeight == 0 && (sources.array[sources.array.length] = node , true); + node.outDepWeight == 0 && node.incomingConnectionCoordinates.size_0 == 0 && (rightwardTargets.array[rightwardTargets.array.length] = node , true); + } + maxRank = -1; + while (sources.array.length != 0) { + node = castTo($remove_11(sources, 0), 112); + for (dep$iterator = new ArrayList$1(node.outgoingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 129); + 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 && (sources.array[sources.array.length] = target , true); + } + } + if (maxRank > -1) { + for (node$iterator = new ArrayList$1(rightwardTargets); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 112); + node.routingSlot = maxRank; + } + while (rightwardTargets.array.length != 0) { + node = castTo($remove_11(rightwardTargets, 0), 112); + for (dep$iterator = new ArrayList$1(node.incomingSegmentDependencies); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 129); + 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 && (rightwardTargets.array[rightwardTargets.array.length] = source , true); + } + } + } +} + +defineClass(655, 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', 655); +function OrthogonalRoutingGenerator$lambda$0$Type(){ +} + +defineClass(1637, 1, {}, OrthogonalRoutingGenerator$lambda$0$Type); +_.apply_0 = function apply_155(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).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', 1637); +function OrthogonalRoutingGenerator$lambda$1$Type(){ +} + +defineClass(1638, 1, {}, OrthogonalRoutingGenerator$lambda$1$Type); +_.apply_0 = function apply_156(arg0){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(castTo(arg0, 112).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', 1638); +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)), 74); + 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(661, 1, {}); +var Lorg_eclipse_elk_alg_layered_p5edges_orthogonal_direction_BaseRoutingDirectionStrategy_2_classLit = createForClass('org.eclipse.elk.alg.layered.p5edges.orthogonal.direction', 'BaseRoutingDirectionStrategy', 661); +function NorthToSouthRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1806, 661, {}, 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_7(port$iterator), 11); + 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_7(edge$iterator), 17); + 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', 1806); +function SouthToNorthRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1807, 661, {}, 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_7(port$iterator), 11); + 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_7(edge$iterator), 17); + 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', 1807); +function WestToEastRoutingStrategy(){ + BaseRoutingDirectionStrategy.call(this); +} + +defineClass(1805, 661, {}, 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_7(port$iterator), 11); + 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_7(edge$iterator), 17); + 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', 1805); +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_7(iter); + while (iter.i < iter.this$01.array.length) { + $add_7(retVal, castTo($next_7(iter), 408).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++), 408)); + 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++), 408)); + $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_7(cp$iterator), 408); + $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_7(knotIter))); + } + for (kVector$iterator = $listIterator_2(kVectors, 0); kVector$iterator.currentNode != kVector$iterator.this$01.tail;) { + kVector = castTo($next_10(kVector$iterator), 8); + $add_3(polarCoordinate, castToDouble($next_7(knotIter))); + $add_3(this.controlPoints, new NubSpline$PolarCP_0(kVector, polarCoordinate)); + checkCriticalElementIndex(0, polarCoordinate.array.length); + polarCoordinate.array.splice(0, 1); + } + } +} + +defineClass(812, 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', 812); +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_0(firstCP.cp), secondFactor - newKnot); + bScaled = $scale($clone_0(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(408, 1, {408: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', 408); +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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.splineSegmentsLayer.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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_7(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(), 11); + $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_7(edge$iterator), 17); + 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_7(node$iterator), 10); + for (port$iterator = new ArrayList$1(node.ports); port$iterator.i < port$iterator.this$01.array.length;) { + port = castTo($next_7(port$iterator), 11); + for (edge$iterator = new ArrayList$1(port.outgoingEdges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 17); + $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(), 11); + $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_7(edge$iterator), 17); + 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_7(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), 17); + 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(), 11); + 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(), 11); + 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(), 11); + 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(), 11); + 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++), 128)); + 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++), 128)); + $createDependency(hyperEdge1, hyperEdge2); + } + } + breakCycles(this$static.splineSegmentsLayer, castTo($getProperty(this$static.lGraph, ($clinit_InternalProperties_1() , RANDOM_0)), 230)); + 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_7(edge$iterator), 17); + 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); + hyperEdges.array[hyperEdges.array.length] = 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(), 11); + 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_7(edge$iterator.firstIterator):$next_7(edge$iterator.secondIterator), 17); + 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)); + hyperEdges.array[hyperEdges.array.length] = seg; + for (pair$iterator = upEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $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)); + hyperEdges.array[hyperEdges.array.length] = seg; + for (pair$iterator = downEdges.map_0.keySet_0().iterator_0(); pair$iterator.hasNext_0();) { + pair = castTo(pair$iterator.next_1(), 46); + $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), 17)); +} + +function $getEdgeChain(this$static, start_0){ + var current, edgeChain; + edgeChain = new ArrayList; + current = start_0; + do { + edgeChain.array[edgeChain.array.length] = current; + current = castTo($get_10(this$static.successingEdge, current), 17); + } + 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), 128); + segment.sourcePort = current.source; + segment.targetPort = current.target; + segmentChain.array[segmentChain.array.length] = segment; + current = castTo($get_10(this$static.successingEdge, current), 17); + } + while (current); + initialSegment = (checkCriticalElementIndex(0, segmentChain.array.length) , castTo(segmentChain.array[0], 128)); + initialSegment.initialSegment = true; + initialSegment.sourceNode = castTo(initialSegment.edges.map_0.keySet_0().iterator_0().next_1(), 17).source.owner; + lastSegment = castTo($get_11(segmentChain, segmentChain.array.length - 1), 128); + lastSegment.lastSegment = true; + lastSegment.targetNode = castTo(lastSegment.edges.map_0.keySet_0().iterator_0().next_1(), 17).target.owner; + return segmentChain; +} + +function $lambda$2_3(this$static, seg_1, e_1){ + return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 17), seg_1); +} + +function $lambda$3_2(this$static, seg_1, e_1){ + return $put_6(this$static.edgeToSegmentMap, castTo(e_1.second, 17), seg_1); +} + +function $process_78(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; + $begin(monitor, 'Spline edge routing', 1); + if (layeredGraph.layers.array.length == 0) { + layeredGraph.size_0.x_0 = 0; + $done_0(monitor); + 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), 335); + 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this$static.allSplineSegments.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $reset(this$static.successingEdge); + firstLayer = castTo($get_11(layeredGraph.layers, 0), 29); + isLeftLayerExternal = all_0(firstLayer.nodes, ($clinit_PolylineEdgeRouter() , PRED_EXTERNAL_WEST_OR_EAST_PORT)); + lastLayer = castTo($get_11(layeredGraph.layers, layeredGraph.layers.array.length - 1), 29); + 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_7(layerIterator), 29):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_7(segment$iterator), 128); + 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_7(edge$iterator), 17); + 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; + $done_0(monitor); +} + +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_7(edge$iterator0), 128); + 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_7(dependency$iterator0), 268); + outweight += dependency.weight; + } + for (dependency$iterator = new ArrayList$1(edge.incoming); dependency$iterator.i < dependency$iterator.this$01.array.length;) { + dependency = castTo($next_7(dependency$iterator), 268); + 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), 128)); + 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), 128)); + unprocessed.map_0.remove_0(source) != null; + source.mark = nextLeft++; + updateNeighbors_0(source, sources, sinks); + } + maxOutflow = $intern_42; + for (edge$iterator1 = unprocessed.map_0.keySet_0().iterator_0(); edge$iterator1.hasNext_0();) { + edge = castTo(edge$iterator1.next_1(), 128); + outflow = edge.outweight - edge.inweight; + if (outflow >= maxOutflow) { + if (outflow > maxOutflow) { + maxEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + maxOutflow = outflow; + } + maxEdges.array[maxEdges.array.length] = edge; + } + } + if (maxEdges.array.length != 0) { + maxEdge = castTo($get_11(maxEdges, $nextInt(random, maxEdges.array.length)), 128); + unprocessed.map_0.remove_0(maxEdge) != null; + maxEdge.mark = nextLeft++; + updateNeighbors_0(maxEdge, sources, sinks); + maxEdges.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + } + shiftBase = edges.array.length + 1; + for (edge$iterator = new ArrayList$1(edges); edge$iterator.i < edge$iterator.this$01.array.length;) { + edge = castTo($next_7(edge$iterator), 128); + 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_7(source$iterator), 128); + 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++), 268)); + 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_7(edge$iterator0), 128); + 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), 128); + for (dep$iterator = new ArrayList$1(edge.outgoing); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 268); + 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_10(edge$iterator), 128); + edge.rank = maxRank; + } + while (rightwardTargets.size_0 != 0) { + edge = castTo($remove_4(rightwardTargets, 0), 128); + for (dep$iterator = new ArrayList$1(edge.incoming); dep$iterator.i < dep$iterator.this$01.array.length;) { + dep = castTo($next_7(dep$iterator), 268); + 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_7(dep$iterator0), 268); + 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_7(dep$iterator), 268); + 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(1452, 1, $intern_113, SplineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_19(graph){ + return $getLayoutProcessorConfiguration_2(castTo(graph, 37)); +} +; +_.process = function process_74(layeredGraph, monitor){ + $process_78(this, castTo(layeredGraph, 37), 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', 1452); +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(268, 1, {268: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', 268); +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_72(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_36, 455, 0, [LEFT_4, RIGHT_4]); +} + +defineClass(455, 22, {3:1, 35:1, 22:1, 455: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', 455, Ljava_lang_Enum_2_classLit, values_78, valueOf_72); +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_36, 455, 0, [LEFT_4, RIGHT_4]))); +} + +var $MAP_60; +function SplineEdgeRouter$lambda$0$Type(){ +} + +defineClass(1453, 1, $intern_39, SplineEdgeRouter$lambda$0$Type); +_.test_0 = function test_105(arg0){ + return $clinit_SplineEdgeRouter() , !castTo(arg0, 128).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', 1453); +function SplineEdgeRouter$lambda$1$Type(){ +} + +defineClass(1454, 1, {}, SplineEdgeRouter$lambda$1$Type); +_.applyAsInt = function applyAsInt_3(arg0){ + return $clinit_SplineEdgeRouter() , castTo(arg0, 128).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', 1454); +function SplineEdgeRouter$lambda$2$Type($$outer_0, seg_1){ + this.$$outer_0 = $$outer_0; + this.seg_1 = seg_1; +} + +defineClass(1455, 1, $intern_19, SplineEdgeRouter$lambda$2$Type); +_.accept = function accept_130(arg0){ + $lambda$2_3(this.$$outer_0, this.seg_1, castTo(arg0, 46)); +} +; +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', 1455); +function SplineEdgeRouter$lambda$3$Type($$outer_0, seg_1){ + this.$$outer_0 = $$outer_0; + this.seg_1 = seg_1; +} + +defineClass(1456, 1, $intern_19, SplineEdgeRouter$lambda$3$Type); +_.accept = function accept_131(arg0){ + $lambda$3_2(this.$$outer_0, this.seg_1, castTo(arg0, 46)); +} +; +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', 1456); +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_59; + yMaxPosOfTarget = $intern_60; + for (pair$iterator0 = edges.map_0.keySet_0().iterator_0(); pair$iterator0.hasNext_0();) { + pair = castTo(pair$iterator0.next_1(), 46); + side = castTo(pair.first, 455); + edge = castTo(pair.second, 17); + 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(), 46); + $addEdge_0(this, castTo(pair.second, 17)); + } + this.isStraight = false; +} + +defineClass(128, 1, {35:1, 128:1}, SplineSegment, SplineSegment_0); +_.compareTo_0 = function compareTo_19(other){ + return $compareTo_18(this, castTo(other, 128)); +} +; +_.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', 128); +function SplineSegment$EdgeInformation(){ +} + +defineClass(459, 1, {459: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', 459); +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 $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(), 188); + 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, 25, n, 16, 1); + for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + 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_10(edge$iterator), 188); + 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_10(node$iterator), 86); + $add_19(node.pos, graphOffset); + $add_7(destGraph.nodes, node); + } + for (edge$iterator = $listIterator_2(sourceGraph.edges, 0); edge$iterator.currentNode != edge$iterator.this$01.tail;) { + edge = castTo($next_10(edge$iterator), 188); + for (bendpoint$iterator = $listIterator_2(edge.bendPoints, 0); bendpoint$iterator.currentNode != bendpoint$iterator.this$01.tail;) { + bendpoint = castTo($next_10(bendpoint$iterator), 8); + $add_19(bendpoint, graphOffset); + } + $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) { + return checkCriticalElementIndex(0, components.array.length) , castTo(components.array[0], 135); + } + 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_7(graph$iterator0), 135); + priority = 0; + minx = $intern_0; + miny = $intern_0; + maxx = $intern_42; + maxy = $intern_42; + for (node$iterator = $listIterator_2(graph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + priority += castTo($getProperty(node, ($clinit_MrTreeOptions() , PRIORITY_1)), 19).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_4(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], 94))); + maxRowWidth = 0; + totalArea = 0; + for (graph$iterator1 = new ArrayList$1(components); graph$iterator1.i < graph$iterator1.this$01.array.length;) { + graph = castTo($next_7(graph$iterator1), 135); + size_0 = $sub_0($clone_0(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_7(graph$iterator), 135); + size_0 = $sub_0($clone_0(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_7(tGraph$iterator), 135); + 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(), 42); + if ($containsKey_3(propMerge, entry.getKey())) { + if (maskUndefined(castTo(entry.getKey(), 146).getDefault()) !== maskUndefined(entry.getValue())) { + if (debugMode && $containsKey_3(debug, entry.getKey())) { + $clinit_System(); + 'Found different values for property ' + castTo(entry.getKey(), 146).getId() + ' in components.'; + } + else { + $put_6(propMerge, castTo(entry.getKey(), 146), entry.getValue()); + $setProperty_0(result, castTo(entry.getKey(), 146), entry.getValue()); + debugMode && $put_6(debug, castTo(entry.getKey(), 146), entry.getValue()); + } + } + } + else { + $put_6(propMerge, castTo(entry.getKey(), 146), entry.getValue()); + $setProperty_0(result, castTo(entry.getKey(), 146), entry.getValue()); + } + } + } + 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_10(node$iterator0), 86); + comp = $dfs_5(this$static, node, null); + if (comp) { + $copyProperties(comp, graph); + components.array[components.array.length] = 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_7(comp$iterator), 135); + id_0 = 0; + for (node$iterator = $listIterator_2(comp.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + node.id_0 = id_0++; + } + } + } + return components; + } + return newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_graph_TGraph_2_classLit, 1), $intern_100, 135, 0, [graph])); +} + +function ComponentsProcessor_1(){ +} + +defineClass(1233, 1, {}, ComponentsProcessor_1); +var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor', 1233); +function $compare_22(graph1, graph2){ + var prio, size1, size2; + prio = castTo($getProperty(graph2, ($clinit_MrTreeOptions() , PRIORITY_1)), 19).value_0 - castTo($getProperty(graph1, PRIORITY_1), 19).value_0; + if (prio == 0) { + size1 = $sub_0($clone_0(castTo($getProperty(graph1, ($clinit_InternalProperties_2() , BB_LOWRIGHT_0)), 8)), castTo($getProperty(graph1, BB_UPLEFT_0), 8)); + size2 = $sub_0($clone_0(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(1234, 1, $intern_88, ComponentsProcessor$1_0); +_.compare_1 = function compare_77(graph1, graph2){ + return $compare_22(castTo(graph1, 135), castTo(graph2, 135)); +} +; +_.equals_0 = function equals_164(other){ + return this === other; +} +; +_.reversed = function reversed_69(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_mrtree_ComponentsProcessor$1_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'ComponentsProcessor/1', 1234); +function $applyLayout_4(tGraph){ + var bendPoints, edgeSection, elkedge, elkgraph, elknode, height, maxXPos, maxYPos, minXPos, minYPos, nodePos, object, offset, padding, pos, size_0, sourcePoint, tEdge, tEdge$iterator, tNode, tNode$iterator, tNode$iterator0, targetPoint, width_0; + elkgraph = castTo($getProperty(tGraph, ($clinit_InternalProperties_2() , ORIGIN_1)), 33); + minXPos = $intern_0; + minYPos = $intern_0; + maxXPos = $intern_42; + maxYPos = $intern_42; + for (tNode$iterator0 = $listIterator_2(tGraph.nodes, 0); tNode$iterator0.currentNode != tNode$iterator0.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator0), 86); + 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)), 116); + offset = new KVector_1(padding.left - minXPos, padding.top_0 - minYPos); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + object = $getProperty(tNode, ORIGIN_1); + if (instanceOf(object, 239)) { + elknode = castTo(object, 33); + nodePos = $add_19(tNode.pos, offset); + $setLocation_1(elknode, nodePos.x_0 - elknode.width_0 / 2, nodePos.y_0 - elknode.height / 2); + } + } + for (tEdge$iterator = $listIterator_2(tGraph.edges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + elkedge = castTo($getProperty(tEdge, ORIGIN_1), 79); + if (elkedge) { + bendPoints = tEdge.bendPoints; + sourcePoint = new KVector_2(tEdge.source.pos); + $addNode_0(bendPoints, sourcePoint, bendPoints.header, bendPoints.header.next_0); + targetPoint = new KVector_2(tEdge.target.pos); + $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); + edgeSection = firstEdgeSection(elkedge, true, true); + applyVectorChain(bendPoints, edgeSection); + } + } + width_0 = maxXPos - minXPos + (padding.left + padding.right); + height = maxYPos - minYPos + (padding.top_0 + padding.bottom); + resizeNode_1(elkgraph, width_0, height, false, false); +} + +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), 33); + 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), 79); + if (!$isHierarchical(elkedge) && !$isHierarchical(elkedge) && !$isSelfloop(elkedge)) { + source = castTo(getEntryValueOrNull($getEntry_0(elemMap.hashCodeMap, elknode)), 86); + 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), 82))), 86); + 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), 33); + 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), 137).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 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 $doLayout_0(this$static, tgraph, progressMonitor){ + $begin(progressMonitor, '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, $subTask(progressMonitor, 1)); + $done_0(progressMonitor); + return tgraph; +} + +function $layout_2(this$static, graph, themonitor){ + var i, monitor, processor, processor$iterator, slot; + monitor = themonitor; + !monitor && (monitor = new BasicProgressMonitor); + $begin(monitor, 'Layout', this$static.algorithm.array.length); + if ($booleanValue(castToBoolean($getProperty(graph, ($clinit_MrTreeOptions() , DEBUG_MODE_0))))) { + $clinit_System(); + for (i = 0; i < this$static.algorithm.array.length; i++) { + slot = (i < 10?'0':'') + i++; + ' Slot ' + slot + ': ' + $getName(getClass__Ljava_lang_Class___devirtual$(castTo($get_11(this$static.algorithm, i), 51))); + } + } + for (processor$iterator = new ArrayList$1(this$static.algorithm); processor$iterator.i < processor$iterator.this$01.array.length;) { + processor = castTo($next_7(processor$iterator), 51); + processor.process(graph, $subTask(monitor, 1)); + } + $done_0(monitor); +} + +function MrTree(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_mrtree_TreeLayoutPhases_2_classLit); +} + +defineClass(1232, 1, {}, MrTree); +var Lorg_eclipse_elk_alg_mrtree_MrTree_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'MrTree', 1232); +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_73(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_36, 393, 0, [P1_TREEIFICATION, P2_NODE_ORDERING, P3_NODE_PLACEMENT, P4_EDGE_ROUTING]); +} + +defineClass(393, 22, {3:1, 35:1, 22:1, 393:1, 246:1, 234: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', 393, Ljava_lang_Enum_2_classLit, values_79, valueOf_73); +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_36, 393, 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(1129, 209, $intern_96, TreeLayoutProvider); +_.layout = function layout_3(layoutGraph, progressMonitor){ + var builder, comp, comp$iterator, components, 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)); + 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); + components = $split_4(this.componentsProcessor, tGraph); + for (comp$iterator = new ArrayList$1(components); comp$iterator.i < comp$iterator.this$01.array.length;) { + comp = castTo($next_7(comp$iterator), 135); + $doLayout_0(this.klayTree, comp, $subTask(progressMonitor, 1 / components.array.length)); + } + tGraph = $pack(components); + $applyLayout_4(tGraph); +} +; +var Lorg_eclipse_elk_alg_mrtree_TreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree', 'TreeLayoutProvider', 1129); +function getLeftMost(currentlevel, depth){ + var cN, cN$iterator, d, nextLevel; + if (0 < (instanceOf(currentlevel, 14)?castTo(currentlevel, 14).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(), 86); + 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(), 86); + nextLevel = concatNoDefensiveCopy(stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Iterable_2_classLit, 1), $intern_2, 20, 0, [nextLevel, new TNode$2(cN)])); + } + if (0 < (instanceOf(nextLevel, 14)?castTo(nextLevel, 14).size_1():size_24(nextLevel.iterator_0()))) { + return getLeftMost(nextLevel, d); + } + } + } + return castTo(getNext(currentlevel.iterator_0()), 86); +} + +function TreeUtil$1(){ +} + +defineClass(1846, 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', 1846); +function TreeUtil$2(){ +} + +defineClass(1847, 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', 1847); +defineClass(502, 134, {3:1, 502:1, 94:1, 134:1}); +_.id_0 = 0; +var Lorg_eclipse_elk_alg_mrtree_graph_TGraphElement_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TGraphElement', 502); +function TEdge_0(source, target){ + new LinkedList; + this.bendPoints = new KVectorChain; + this.source = source; + this.target = target; +} + +defineClass(188, 502, {3:1, 188:1, 502:1, 94:1, 134: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', 188); +function TGraph(){ + this.nodes = new LinkedList; + this.edges = new LinkedList; + this.nodes = new LinkedList; + this.edges = new LinkedList; +} + +defineClass(135, 134, {3:1, 135:1, 94:1, 134: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_10(tNode$iterator), 86); + 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_10(tEdge$iterator), 188); + 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', 135); +defineClass(633, 502, {3:1, 502:1, 633:1, 94:1, 134:1}); +var Lorg_eclipse_elk_alg_mrtree_graph_TShape_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.graph', 'TShape', 633); +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_10(iEdge$iterator), 188); + $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), 188).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(86, 633, {3:1, 502:1, 86:1, 633:1, 94:1, 134: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', 86); +function TNode$2(this$0){ + this.this$01 = this$0; +} + +defineClass(255, 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', 255); +function TNode$2$1(val$edgesIter){ + this.val$edgesIter2 = val$edgesIter; +} + +defineClass(357, 1, $intern_6, TNode$2$1); +_.forEachRemaining = function forEachRemaining_50(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_40(){ + return castTo($next_10(this.val$edgesIter2), 188).target; +} +; +_.hasNext_0 = function hasNext_39(){ + return $hasNext_5(this.val$edgesIter2); +} +; +_.remove = function remove_95(){ + $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', 357); +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_10(tNode$iterator0), 86); + 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_10(tChild$iterator.val$edgesIter2), 188).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_10(tNode$iterator), 86); + 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), 19).value_0 + 1:1; + $putStringValue(locFanMap, key, valueOf_4(blockSize)); + } + } + for (locEntry$iterator = new AbstractHashMap$EntrySetIterator((new AbstractHashMap$EntrySet(locFanMap)).this$01); locEntry$iterator.hasNext;) { + locEntry = $next_4(locEntry$iterator); + gloValue = valueOf_4($get_10(this$static.gloDescMap, locEntry.getKey()) != null?castTo($get_10(this$static.gloDescMap, locEntry.getKey()), 19).value_0:0); + $putStringValue(this$static.gloDescMap, castToString(locEntry.getKey()), valueOf_4(castTo(locEntry.getValue(), 19).value_0 + gloValue.value_0)); + gloValue = castTo($get_10(this$static.gloFanMap, locEntry.getKey()), 19); + (!gloValue || gloValue.value_0 < castTo(locEntry.getValue(), 19).value_0) && $putStringValue(this$static.gloFanMap, castToString(locEntry.getKey()), castTo(locEntry.getValue(), 19)); + } + $calculateFan(this$static, nextLevel); + } +} + +function $process_79(this$static, tGraph, progressMonitor){ + var desc, fan, it, key, root, rootLevel, tNode, tNode$iterator; + $begin(progressMonitor, '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_10(it), 86); + $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_10(tNode$iterator), 86); + key = castToString($getProperty(tNode, ($clinit_InternalProperties_2() , ID))); + fan = $getStringValue(this$static.gloFanMap, key) != null?castTo($getStringValue(this$static.gloFanMap, key), 19).value_0:0; + $setProperty_0(tNode, FAN, valueOf_4(fan)); + desc = 1 + ($getStringValue(this$static.gloDescMap, key) != null?castTo($getStringValue(this$static.gloDescMap, key), 19).value_0:0); + $setProperty_0(tNode, DESCENDANTS, valueOf_4(desc)); + } + $done_0(progressMonitor); +} + +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(1839, 1, $intern_105, FanProcessor); +_.process = function process_75(tGraph, progressMonitor){ + $process_79(this, castTo(tGraph, 135), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_FanProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'FanProcessor', 1839); +function $clinit_IntermediateProcessorStrategy_0(){ + $clinit_IntermediateProcessorStrategy_0 = emptyMethod; + ROOT_PROC = new IntermediateProcessorStrategy_0('ROOT_PROC', 0); + FAN_PROC = new IntermediateProcessorStrategy_0('FAN_PROC', 1); + NEIGHBORS_PROC = new IntermediateProcessorStrategy_0('NEIGHBORS_PROC', 2); + LEVEL_HEIGHT = new IntermediateProcessorStrategy_0('LEVEL_HEIGHT', 3); + NODE_POSITION_PROC = new IntermediateProcessorStrategy_0('NODE_POSITION_PROC', 4); + DETREEIFYING_PROC = new IntermediateProcessorStrategy_0('DETREEIFYING_PROC', 5); +} + +function IntermediateProcessorStrategy_0(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_74(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_36, 327, 0, [ROOT_PROC, FAN_PROC, NEIGHBORS_PROC, LEVEL_HEIGHT, NODE_POSITION_PROC, DETREEIFYING_PROC]); +} + +defineClass(327, 22, {3:1, 35:1, 22:1, 327:1, 234: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 NeighborsProcessor; + case 3: + return new LevelHeightProcessor; + case 4: + return new NodePositionProcessor; + case 5: + 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 DETREEIFYING_PROC, FAN_PROC, LEVEL_HEIGHT, 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', 327, Ljava_lang_Enum_2_classLit, values_80, valueOf_74); +function $clinit_IntermediateProcessorStrategy$Map_0(){ + $clinit_IntermediateProcessorStrategy$Map_0 = emptyMethod; + $MAP_62 = createValueOfMap(($clinit_IntermediateProcessorStrategy_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 327, 0, [ROOT_PROC, FAN_PROC, NEIGHBORS_PROC, LEVEL_HEIGHT, NODE_POSITION_PROC, DETREEIFYING_PROC]))); +} + +var $MAP_62; +function $process_80(this$static, tGraph, progressMonitor){ + var it, root, tNode; + $begin(progressMonitor, '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_10(it), 86); + $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_100, 86, 0, [root])), progressMonitor); + $done_0(progressMonitor); +} + +function $setNeighbors(this$static, currentLevel, progressMonitor){ + var cN, cN$iterator, cN$iterator0, height, nextLevel, sT; + if (!isEmpty_13(currentLevel)) { + sT = $subTask(progressMonitor, (instanceOf(currentLevel, 14)?castTo(currentLevel, 14).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); + $begin(sT, 'Set neighbors in level', 1); + nextLevel = new LevelHeightProcessor$1; + height = 0; + for (cN$iterator0 = currentLevel.iterator_0(); cN$iterator0.hasNext_0();) { + cN = castTo(cN$iterator0.next_1(), 86); + 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(), 86); + $setProperty_0(cN, ($clinit_InternalProperties_2() , LEVELHEIGHT), height); + } + $done_0(sT); + $setNeighbors(this$static, nextLevel, progressMonitor); + } +} + +function LevelHeightProcessor(){ +} + +defineClass(1842, 1, $intern_105, LevelHeightProcessor); +_.process = function process_76(tGraph, progressMonitor){ + $process_80(this, castTo(tGraph, 135), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_LevelHeightProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'LevelHeightProcessor', 1842); +function LevelHeightProcessor$1(){ +} + +defineClass(1843, 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', 1843); +function $process_81(this$static, tGraph, progressMonitor){ + var it, root, tNode; + $begin(progressMonitor, '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_10(it), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + !!root && $setNeighbors_0(this$static, new TNode$2(root), progressMonitor); + $done_0(progressMonitor); +} + +function $setNeighbors_0(this$static, currentLevel, progressMonitor){ + var cN, cN$iterator, lN, nextLevel, sT; + if (!isEmpty_13(currentLevel)) { + sT = $subTask(progressMonitor, (instanceOf(currentLevel, 14)?castTo(currentLevel, 14).size_1():size_24(currentLevel.iterator_0())) / this$static.numberOfNodes | 0); + $begin(sT, '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(), 86); + 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; + } + $done_0(sT); + $setNeighbors_0(this$static, nextLevel, progressMonitor); + } +} + +function NeighborsProcessor(){ +} + +defineClass(1840, 1, $intern_105, NeighborsProcessor); +_.process = function process_77(tGraph, progressMonitor){ + $process_81(this, castTo(tGraph, 135), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_NeighborsProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NeighborsProcessor', 1840); +function NeighborsProcessor$1(){ +} + +defineClass(1841, 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', 1841); +function $process_82(this$static, tGraph, progressMonitor){ + var it, pos, root, tNode; + $begin(progressMonitor, '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_10(it), 86); + if ($booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0))))) { + root = tNode; + pos = tNode.pos; + pos.x_0 = castTo($getProperty(tNode, XCOOR), 19).value_0; + pos.y_0 = 0; + } + } + $setCoordinates(this$static, $getChildrenCopy(root), $subTask(progressMonitor, 1)); + $done_0(progressMonitor); +} + +function $setCoordinates(this$static, currentLevel, progressMonitor){ + 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_10(tNode$iterator), 86); + $addAll(nextLevel, $getChildrenCopy(tNode)); + pos = tNode.pos; + pos.x_0 = castTo($getProperty(tNode, ($clinit_InternalProperties_2() , XCOOR)), 19).value_0; + pos.y_0 = castTo($getProperty(tNode, YCOOR), 19).value_0; + } + $setCoordinates(this$static, nextLevel, $subTask(progressMonitor, nextLevel.size_0 / this$static.numberOfNodes | 0)); + } +} + +function NodePositionProcessor(){ +} + +defineClass(1844, 1, $intern_105, NodePositionProcessor); +_.process = function process_78(tGraph, progressMonitor){ + $process_82(this, castTo(tGraph, 135), progressMonitor); +} +; +_.numberOfNodes = 0; +var Lorg_eclipse_elk_alg_mrtree_intermediate_NodePositionProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'NodePositionProcessor', 1844); +function $process_83(this$static, tGraph){ + var node, node$iterator, root, superRoot, tRoot, tRoot$iterator, newEdge; + this$static.roots.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + for (node$iterator = $listIterator_2(tGraph.nodes, 0); node$iterator.currentNode != node$iterator.this$01.tail;) { + node = castTo($next_10(node$iterator), 86); + 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_7(tRoot$iterator), 86); + 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); + } +} + +function RootProcessor(){ + this.roots = new ArrayList; +} + +defineClass(1838, 1, $intern_105, RootProcessor); +_.process = function process_79(tGraph, progressMonitor){ + $process_83(this, castTo(tGraph, 135)); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_RootProcessor_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'RootProcessor', 1838); +function $process_84(tGraph){ + var edges, tEdge, tEdge$iterator; + 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(), 188); + $add_7(tEdge.source.outgoingEdges, tEdge); + $add_7(tEdge.target.incomingEdges, tEdge); + } +} + +function Untreeifyer(){ +} + +defineClass(1845, 1, $intern_105, Untreeifyer); +_.process = function process_80(tGraph, progressMonitor){ + $process_84(castTo(tGraph, 135)); +} +; +var Lorg_eclipse_elk_alg_mrtree_intermediate_Untreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.intermediate', 'Untreeifyer', 1845); +function $clinit_InternalProperties_2(){ + $clinit_InternalProperties_2 = emptyMethod; + ORIGIN_1 = new Property('origin'); + new Property('random'); + new Property_0('DEPTH', valueOf_4(0)); + FAN = new Property_0('FAN', valueOf_4(0)); + DESCENDANTS = new Property_0('DESCENDANTS', valueOf_4(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_4(0)); + REMOVABLE_EDGES = new Property_0('REMOVABLE_EDGES', new LinkedList); + XCOOR = new Property_0('XCOOR', valueOf_4(0)); + YCOOR = new Property_0('YCOOR', valueOf_4(0)); + LEVELHEIGHT = new Property_0('LEVELHEIGHT', 0); + ID = new Property_0('ID', ''); + POSITION_0 = new Property_0('POSITION', valueOf_4(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, DESCENDANTS, DUMMY, FAN, ID, LEFTNEIGHBOR, LEFTSIBLING, LEVELHEIGHT, MODIFIER, ORIGIN_1, POSITION_0, PRELIM, REMOVABLE_EDGES, RIGHTNEIGHBOR, RIGHTSIBLING, ROOT_0, XCOOR, YCOOR; +function $clinit_MrTreeMetaDataProvider(){ + $clinit_MrTreeMetaDataProvider = emptyMethod; + WEIGHTING_DEFAULT = ($clinit_OrderWeighting() , DESCENDANTS_0); + WEIGHTING = new Property_1('org.eclipse.elk.mrtree.weighting', WEIGHTING_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(850, 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.weighting'), ''), 'Weighting of Nodes'), 'Which weighting to use when computing a node order.'), WEIGHTING_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_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.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_19((new MrTreeOptions , registry)); +} +; +var SEARCH_ORDER, SEARCH_ORDER_DEFAULT, WEIGHTING, WEIGHTING_DEFAULT; +var Lorg_eclipse_elk_alg_mrtree_options_MrTreeMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeMetaDataProvider', 850); +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); + ASPECT_RATIO_2 = new Property_2(ASPECT_RATIO_5, $intern_102); + PRIORITY_1 = new Property_2(PRIORITY_3, valueOf_4(1)); + SEPARATE_CONNECTED_COMPONENTS_1 = new Property_2(SEPARATE_CONNECTED_COMPONENTS_2, ($clinit_Boolean() , true)); + DEBUG_MODE_0 = DEBUG_MODE_3; + NODE_SIZE_CONSTRAINTS_2 = NODE_SIZE_CONSTRAINTS_6; + 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; +} + +function $apply_19(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.aspectRatio', $intern_102); + $addOptionSupport(registry, 'org.eclipse.elk.mrtree', 'org.eclipse.elk.priority', valueOf_4(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.nodeSize.constraints', $getDefault(NODE_SIZE_CONSTRAINTS_2)); + $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)); +} + +function MrTreeOptions(){ + $clinit_MrTreeOptions(); +} + +defineClass(993, 1, $intern_90, MrTreeOptions); +_.apply_4 = function apply_158(registry){ + $apply_19(registry); +} +; +var ASPECT_RATIO_2, DEBUG_MODE_0, NODE_LABELS_PLACEMENT_2, NODE_SIZE_CONSTRAINTS_2, NODE_SIZE_MINIMUM_1, NODE_SIZE_OPTIONS_2, OMIT_NODE_MICRO_LAYOUT_1, PADDING_2, PADDING_DEFAULT_1, PORT_LABELS_PLACEMENT_2, PRIORITY_1, SEARCH_ORDER_0, SEPARATE_CONNECTED_COMPONENTS_1, SPACING_NODE_NODE_1, WEIGHTING_0; +var Lorg_eclipse_elk_alg_mrtree_options_MrTreeOptions_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.options', 'MrTreeOptions', 993); +function MrTreeOptions$MrtreeFactory(){ +} + +defineClass(994, 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', 994); +function $clinit_OrderWeighting(){ + $clinit_OrderWeighting = emptyMethod; + DESCENDANTS_0 = new OrderWeighting('DESCENDANTS', 0); + FAN_0 = new OrderWeighting('FAN', 1); +} + +function OrderWeighting(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_75(name_0){ + $clinit_OrderWeighting(); + return valueOf(($clinit_OrderWeighting$Map() , $MAP_63), name_0); +} + +function values_81(){ + $clinit_OrderWeighting(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_36, 480, 0, [DESCENDANTS_0, FAN_0]); +} + +defineClass(480, 22, {3:1, 35:1, 22:1, 480:1}, OrderWeighting); +var DESCENDANTS_0, FAN_0; +var Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'OrderWeighting', 480, Ljava_lang_Enum_2_classLit, values_81, valueOf_75); +function $clinit_OrderWeighting$Map(){ + $clinit_OrderWeighting$Map = emptyMethod; + $MAP_63 = createValueOfMap(($clinit_OrderWeighting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_OrderWeighting_2_classLit, 1), $intern_36, 480, 0, [DESCENDANTS_0, FAN_0]))); +} + +var $MAP_63; +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_76(name_0){ + $clinit_TreeifyingOrder(); + return valueOf(($clinit_TreeifyingOrder$Map() , $MAP_64), name_0); +} + +function values_82(){ + $clinit_TreeifyingOrder(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_36, 426, 0, [DFS, BFS]); +} + +defineClass(426, 22, {3:1, 35:1, 22:1, 426:1}, TreeifyingOrder); +var BFS, DFS; +var Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit = createForEnum('org.eclipse.elk.alg.mrtree.options', 'TreeifyingOrder', 426, Ljava_lang_Enum_2_classLit, values_82, valueOf_76); +function $clinit_TreeifyingOrder$Map(){ + $clinit_TreeifyingOrder$Map = emptyMethod; + $MAP_64 = createValueOfMap(($clinit_TreeifyingOrder() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_mrtree_options_TreeifyingOrder_2_classLit, 1), $intern_36, 426, 0, [DFS, BFS]))); +} + +var $MAP_64; +function $clinit_DFSTreeifyer(){ + $clinit_DFSTreeifyer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG = $addAfter(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P4_EDGE_ROUTING), ($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), 86)); + 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_10(tEdge$iterator), 188); + 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)), 426); + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + 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_10(tEdge$iterator), 188); + $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_10(tEdge$iterator), 188); + 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_48, 25, 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_10(node$iterator), 86); + node.id_0 = id_0++; + } +} + +function $process_85(this$static, tGraph, progressMonitor){ + $begin(progressMonitor, 'DFS Treeifying phase', 1); + $init_1(this$static, tGraph); + $collectEdges(this$static, tGraph); + this$static.eliminated = null; + this$static.visited = null; + $done_0(progressMonitor); +} + +function DFSTreeifyer(){ + $clinit_DFSTreeifyer(); +} + +defineClass(1458, 1, $intern_113, DFSTreeifyer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_20(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG; +} +; +_.process = function process_81(tGraph, progressMonitor){ + $process_85(this, castTo(tGraph, 135), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG; +var Lorg_eclipse_elk_alg_mrtree_p1treeify_DFSTreeifyer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p1treeify', 'DFSTreeifyer', 1458); +function $clinit_NodeOrderer(){ + $clinit_NodeOrderer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_0 = $add_17($add_17($before(new LayoutProcessorConfiguration, ($clinit_TreeLayoutPhases() , P2_NODE_ORDERING)), ($clinit_IntermediateProcessorStrategy_0() , ROOT_PROC)), FAN_PROC); +} + +function $orderLevel(this$static, currentLevel, progressMonitor){ + var children, fillGap, firstOcc, inners, it, leaves, notNull, pos, size_0, sortedOutEdges, tENode, tENode$iterator, tEdge, tEdge$iterator, tNode, tNode$iterator, tPNode, tPNode$iterator, tmp; + $begin(progressMonitor, 'Processor arrange level', 1); + pos = 0; + $clinit_Collections(); + $sort_0(currentLevel, new PropertyHolderComparator(($clinit_InternalProperties_2() , FAN))); + firstOcc = currentLevel.size_0; + it = $listIterator_2(currentLevel, currentLevel.size_0); + notNull = true; + while (notNull && it.currentNode.prev != it.this$01.header) { + tNode = castTo($previous_0(it), 86); + castTo($getProperty(tNode, FAN), 19).value_0 == 0?--firstOcc:(notNull = false); + } + tmp = new AbstractList$SubList(currentLevel, 0, firstOcc); + inners = new LinkedList_0(tmp); + tmp = new AbstractList$SubList(currentLevel, firstOcc, currentLevel.size_0); + 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_10(tENode$iterator), 86); + $setProperty_0(tENode, POSITION_0, valueOf_4(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_10(tPNode$iterator), 86); + $setProperty_0(tPNode, POSITION_0, valueOf_4(pos++)); + children = $getChildrenCopy(tPNode); + $orderLevel(this$static, children, $subTask(progressMonitor, 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_10(tNode$iterator), 86); + for (tEdge$iterator = $listIterator_2(tPNode.outgoingEdges, 0); tEdge$iterator.currentNode != tEdge$iterator.this$01.tail;) { + tEdge = castTo($next_10(tEdge$iterator), 188); + 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.currentNode.prev != it.this$01.header) { + tNode = castTo($previous_0(it), 86); + if (castTo($getProperty(tNode, FAN), 19).value_0 == 0) { + $setProperty_0(tNode, POSITION_0, valueOf_4(pos++)); + --fillGap; + $remove_24(it); + } + else { + notNull = false; + } + } + } + } + $done_0(progressMonitor); +} + +function $process_86(this$static, tGraph, progressMonitor){ + var it, root, roots, tNode; + $begin(progressMonitor, 'Processor arrange node', 1); + root = null; + roots = new LinkedList; + it = $listIterator_2(tGraph.nodes, 0); + while (!root && it.currentNode != it.this$01.tail) { + tNode = castTo($next_10(it), 86); + $booleanValue(castToBoolean($getProperty(tNode, ($clinit_InternalProperties_2() , ROOT_0)))) && (root = tNode); + } + $addNode_0(roots, root, roots.tail.prev, roots.tail); + $orderLevel(this$static, roots, $subTask(progressMonitor, 1)); + $done_0(progressMonitor); +} + +function NodeOrderer(){ + $clinit_NodeOrderer(); +} + +defineClass(1459, 1, $intern_113, NodeOrderer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_21(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_0; +} +; +_.process = function process_82(tGraph, progressMonitor){ + $process_86(this, castTo(tGraph, 135), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG_0; +var Lorg_eclipse_elk_alg_mrtree_p2order_NodeOrderer_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p2order', 'NodeOrderer', 1459); +function $clinit_NodePlacer(){ + $clinit_NodePlacer = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_1 = $addBefore($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, 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))), 86); + neighbor = leftmost?castTo($getProperty(leftmost, ($clinit_InternalProperties_2() , LEFTNEIGHBOR)), 86):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(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), 86); + } + 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), 86); + } + } + 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))), 86)); + neighbor = leftmost?castTo($getProperty(leftmost, LEFTNEIGHBOR), 86):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), 86); + if (cN.outgoingEdges.size_0 == 0) { + if (lS) { + p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(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_10(child$iterator.val$edgesIter2), 188).target; + $firstWalk(this$static, child); + } + lM = castTo(getNext((edgesIter1 = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter1))), 86); + rM = castTo(getLast_1((edgesIter = $listIterator_2((new TNode$2(cN)).this$01.outgoingEdges, 0) , new TNode$2$1(edgesIter))), 86); + midPoint = ($doubleValue(castToDouble($getProperty(rM, PRELIM))) + $doubleValue(castToDouble($getProperty(lM, PRELIM)))) / 2; + if (lS) { + p = $doubleValue(castToDouble($getProperty(lS, PRELIM))) + this$static.spacing + $meanNodeWidth(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(leftNode, rightNode){ + var nodeWidth; + nodeWidth = 0; + !!leftNode && (nodeWidth += leftNode.size_0.x_0 / 2); + !!rightNode && (nodeWidth += rightNode.size_0.x_0 / 2); + return nodeWidth; +} + +function $process_87(this$static, tGraph, progressMonitor){ + var root, roots, tNode, tNode$iterator; + $begin(progressMonitor, 'Processor order nodes', 2); + this$static.spacing = $doubleValue(castToDouble($getProperty(tGraph, ($clinit_MrTreeOptions() , SPACING_NODE_NODE_1)))); + roots = new LinkedList; + for (tNode$iterator = $listIterator_2(tGraph.nodes, 0); tNode$iterator.currentNode != tNode$iterator.this$01.tail;) { + tNode = castTo($next_10(tNode$iterator), 86); + $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, 86)); + $firstWalk(this$static, root); + !progressMonitor.closed_0 && $internalWorked(progressMonitor, 1); + $secondWalk(this$static, root, 0 - $doubleValue(castToDouble($getProperty(root, ($clinit_InternalProperties_2() , LEVELHEIGHT)))) / 2, 0); + !progressMonitor.closed_0 && $internalWorked(progressMonitor, 1); + $done_0(progressMonitor); +} + +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_4(toInt_0(fromDouble_0($wnd.Math.round(xTemp))))); + $setProperty_0(tNode, YCOOR, valueOf_4(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))), 86), 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), 86), yCoor, modsum); + } +} + +function NodePlacer(){ + $clinit_NodePlacer(); +} + +defineClass(1460, 1, $intern_113, NodePlacer); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_22(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_1; +} +; +_.process = function process_83(tGraph, progressMonitor){ + $process_87(this, castTo(tGraph, 135), 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', 1460); +function $clinit_EdgeRouter(){ + $clinit_EdgeRouter = emptyMethod; + INTERMEDIATE_PROCESSING_CONFIG_2 = new LayoutProcessorConfiguration; +} + +function $process_88(tGraph, progressMonitor){ + var tedge, tedge$iterator, tnode, tnode$iterator; + $begin(progressMonitor, 'Dull edge routing', 1); + for (tnode$iterator = $listIterator_2(tGraph.nodes, 0); tnode$iterator.currentNode != tnode$iterator.this$01.tail;) { + tnode = castTo($next_10(tnode$iterator), 86); + for (tedge$iterator = $listIterator_2(tnode.outgoingEdges, 0); tedge$iterator.currentNode != tedge$iterator.this$01.tail;) { + tedge = castTo($next_10(tedge$iterator), 188); + $reset_0(tedge.bendPoints); + } + } +} + +function EdgeRouter(){ + $clinit_EdgeRouter(); +} + +defineClass(1461, 1, $intern_113, EdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_23(graph){ + return castTo(graph, 135) , INTERMEDIATE_PROCESSING_CONFIG_2; +} +; +_.process = function process_84(tGraph, progressMonitor){ + $process_88(castTo(tGraph, 135), progressMonitor); +} +; +var INTERMEDIATE_PROCESSING_CONFIG_2; +var Lorg_eclipse_elk_alg_mrtree_p4route_EdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.mrtree.p4route', 'EdgeRouter', 1461); +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_77(name_0){ + $clinit_RadialLayoutPhases(); + return valueOf(($clinit_RadialLayoutPhases$Map() , $MAP_65), name_0); +} + +function values_83(){ + $clinit_RadialLayoutPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_36, 495, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]); +} + +defineClass(495, 22, {3:1, 35:1, 22:1, 495:1, 246:1, 234: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', 495, Ljava_lang_Enum_2_classLit, values_83, valueOf_77); +function $clinit_RadialLayoutPhases$Map(){ + $clinit_RadialLayoutPhases$Map = emptyMethod; + $MAP_65 = createValueOfMap(($clinit_RadialLayoutPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_RadialLayoutPhases_2_classLit, 1), $intern_36, 495, 0, [P1_NODE_PLACEMENT, P2_EDGE_ROUTING]))); +} + +var $MAP_65; +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_11)) && $addBefore(configuration, P2_EDGE_ROUTING, COMPACTION); + $addBefore(configuration, P2_EDGE_ROUTING, GRAPH_SIZE_CALCULATION); + $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(1130, 209, $intern_96, RadialLayoutProvider); +_.layout = function layout_4(layoutGraph, progressMonitor){ + var algorithm, builder, layoutRadius, processor, processor$iterator, root; + algorithm = $assembleAlgorithm(this, layoutGraph); + $begin(progressMonitor, '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_7(processor$iterator), 51); + processor.process(layoutGraph, $subTask(progressMonitor, 1)); + } + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_RadialLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.radial', 'RadialLayoutProvider', 1130); +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), 33); + 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), 33); + 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_7(node$iterator), 33); + 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(), 33); + 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_7(child$iterator), 33); + 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), 79); + if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 186)) { + 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), 82)); + 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), 79); + if (!instanceOf($get_20((!outgoingEdge.sources && (outgoingEdge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, outgoingEdge, 4, 7)) , outgoingEdge.sources), 0), 186)) { + 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), 82)); + children.map_0.containsKey(target) || (successors.array[successors.array.length] = 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_22(new Iterators$ConcatenatedIterator(transform_2(iterator.val$inputs1.iterator_0(), new Iterables$10))), 79)); + 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), 82)); + } +} + +function lambda$0_31(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_123); + arc1 += radialOffset_2; + arc1 > $intern_123 && (arc1 -= $intern_123); + 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_123); + arc2 += radialOffset_2; + arc2 > $intern_123 && (arc2 -= $intern_123); + 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(549, 1, $intern_88, RadialUtil$lambda$0$Type); +_.compare_1 = function compare_78(arg0, arg1){ + return lambda$0_31(this.nodeOffsetY_0, this.radialOffset_2, castTo(arg0, 33), castTo(arg1, 33)); +} +; +_.equals_0 = function equals_165(other){ + return this === other; +} +; +_.reversed = function reversed_70(){ + 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', 549); +function $process_89(graph, progressMonitor){ + var height, height0, margins, maxXPos, maxYPos, minXPos, minYPos, node, node$iterator, node$iterator0, offset, padding, posX, posY, width_0, width0; + $begin(progressMonitor, 'Calculate Graph Size', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + minXPos = $intern_98; + minYPos = $intern_98; + maxXPos = $intern_124; + maxYPos = $intern_124; + 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), 33); + posX = node.x_0; + posY = node.y_0; + width0 = node.width_0; + height0 = node.height; + margins = castTo($getProperty_0(node, ($clinit_CoreOptions() , MARGINS_0)), 142); + 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)), 116); + offset = new KVector_1(minXPos - padding.left, minYPos - padding.top_0); + 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), 33); + $setX_2(node, node.x_0 - offset.x_0); + $setY_3(node, node.y_0 - offset.y_0); + } + width_0 = maxXPos - minXPos + (padding.left + padding.right); + height = maxYPos - minYPos + (padding.top_0 + padding.bottom); + $setWidth_0(graph, width_0); + $setHeight_0(graph, height); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function CalculateGraphSize(){ +} + +defineClass(1374, 1, $intern_105, CalculateGraphSize); +_.process = function process_85(graph, progressMonitor){ + $process_89(castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_CalculateGraphSize_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate', 'CalculateGraphSize', 1374); +function $clinit_IntermediateProcessorStrategy_1(){ + $clinit_IntermediateProcessorStrategy_1 = emptyMethod; + OVERLAP_REMOVAL = new IntermediateProcessorStrategy_1('OVERLAP_REMOVAL', 0); + COMPACTION = new IntermediateProcessorStrategy_1('COMPACTION', 1); + GRAPH_SIZE_CALCULATION = new IntermediateProcessorStrategy_1('GRAPH_SIZE_CALCULATION', 2); +} + +function IntermediateProcessorStrategy_1(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function valueOf_78(name_0){ + $clinit_IntermediateProcessorStrategy_1(); + return valueOf(($clinit_IntermediateProcessorStrategy$Map_1() , $MAP_66), name_0); +} + +function values_84(){ + $clinit_IntermediateProcessorStrategy_1(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 443, 0, [OVERLAP_REMOVAL, COMPACTION, GRAPH_SIZE_CALCULATION]); +} + +defineClass(443, 22, {3:1, 35:1, 22:1, 443:1, 234: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 CalculateGraphSize; + 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, GRAPH_SIZE_CALCULATION, OVERLAP_REMOVAL; +var Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.intermediate', 'IntermediateProcessorStrategy', 443, Ljava_lang_Enum_2_classLit, values_84, valueOf_78); +function $clinit_IntermediateProcessorStrategy$Map_1(){ + $clinit_IntermediateProcessorStrategy$Map_1 = emptyMethod; + $MAP_66 = createValueOfMap(($clinit_IntermediateProcessorStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_intermediate_IntermediateProcessorStrategy_2_classLit, 1), $intern_36, 443, 0, [OVERLAP_REMOVAL, COMPACTION, GRAPH_SIZE_CALCULATION]))); +} + +var $MAP_66; +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(), 33); + 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 / 2; + width2 = node2.width_0 + this$static.spacing / 2; + height1 = node1.height + this$static.spacing / 2; + height2 = node2.height + this$static.spacing / 2; + 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), 33), castTo(nodes.get_0(i + 1), 33))):(overlapping = overlapping | $overlap_1(this$static, castTo(nodes.get_0(i), 33), castTo(nodes.get_0(0), 33))); + } + 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(645, 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', 645); +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_7(node$iterator), 33); + $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], 33))); + $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 33)); + 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], 33))); + $put(this$static.rightContour, node, castTo($get_11(successors, successors.array.length - 1), 33)); + } + } + } +} + +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(), 33); + 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), 33); + if ($contourOverlap(this$static, leftParent, firstNode, false)) { + return true; + } + lastNode = castTo(layerNodes.get_0(layerNodes.size_1() - 1), 33); + 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(), 33); + for (predecessor$iterator = predecessors.iterator_0(); predecessor$iterator.hasNext_0();) { + predecessor = castTo(predecessor$iterator.next_1(), 33); + if ($overlap_1(this$static, sortedNode, predecessor)) { + return true; + } + } + } + return false; +} + +function AnnulusWedgeCompaction(){ + this.leftContour = new HashMultimap; + this.rightContour = new HashMultimap; +} + +defineClass(1771, 645, {}, 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)), 33); + $setRoot(this, this.root); + this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); + stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 19); + !!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_125, 33, 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_125, 33, 0, [(checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 33))])); + rightParent = i < successors.array.length - 1?(checkCriticalElementIndex(i + 1, successors.array.length) , castTo(successors.array[i + 1], 33)):(checkCriticalElementIndex(0, successors.array.length) , castTo(successors.array[0], 33)); + leftParent = i == 0?castTo($get_11(successors, successors.array.length - 1), 33):(checkCriticalElementIndex(i - 1, successors.array.length) , castTo(successors.array[i - 1], 33)); + $contractWedge(this, (checkCriticalElementIndex(i, successors.array.length) , castTo(successors.array[i], 33) , rootList), leftParent, rightParent, nodeAsList); + } + } +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_AnnulusWedgeCompaction_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'AnnulusWedgeCompaction', 1771); +function $process_90(graph, progressMonitor){ + var compactor; + $begin(progressMonitor, 'General Compactor', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + compactor = $create_11(castTo($getProperty_0(graph, ($clinit_RadialOptions() , COMPACTOR_0)), 380)); + compactor.compact_0(graph); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function GeneralCompactor(){ +} + +defineClass(1373, 1, $intern_105, GeneralCompactor); +_.process = function process_86(graph, progressMonitor){ + $process_90(castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_compaction_GeneralCompactor_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.compaction', 'GeneralCompactor', 1373); +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], 33))); + $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_7(node$iterator), 33); + 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(1770, 645, {}, RadialCompaction); +_.compact_0 = function compact_3(graph){ + var firstLevelNodes, root, spacing, stepSize; + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + this.root_0 = root; + this.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); + stepSize = castTo($getProperty_0(graph, COMPACTION_STEP_SIZE_0), 19); + !!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', 1770); +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(1778, 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_7(node1$iterator), 33); + ++k; + for (i = k; i < nodes.array.length; i++) { + $isCrossing(this, node1, (checkCriticalElementIndex(i, nodes.array.length) , castTo(nodes.array[i], 33))) && (crossings += 1); + } + } + return crossings; +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_optimization_CrossingMinimizationPosition_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.optimization', 'CrossingMinimizationPosition', 1778); +function EdgeLengthOptimization(){ +} + +defineClass(1776, 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), 79); + 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), 82)); + 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', 1776); +function EdgeLengthPositionOptimization(){ +} + +defineClass(1777, 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), 79); + 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), 82)); + 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', 1777); +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_7(node$iterator), 33); + $add_3(oldPositions, new KVector_1(node.x_0, node.y_0)); + } + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + while ($overlapLayer(this$static, nodes)) { + $contractLayer(this$static, nodes, false); + } + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + movedX = 0; + movedY = 0; + firstNode = null; + if (nodes.array.length != 0) { + firstNode = (checkCriticalElementIndex(0, nodes.array.length) , castTo(nodes.array[0], 33)); + 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; + while (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(), 33); + 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.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + nextLevelNodes = getNextLevelNodeSet(new ArrayList_1(nextLevelNodes)); + ++index_0; + } + !!this$static.sorter && this$static.sorter.sort_1(new ArrayList_1(nextLevelNodes)); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + $extend(this$static, graph, new ArrayList_1(nextLevelNodes), progressMonitor); + } +} + +function $process_91(this$static, graph, progressMonitor){ + var root, spacing, successors; + $begin(progressMonitor, 'Remove overlaps', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + this$static.root_0 = root; + this$static.sorter = $create_13(castTo($getProperty_0(graph, ($clinit_RadialOptions() , SORTER_0)), 293)); + 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.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +function RadiusExtensionOverlapRemoval(){ +} + +defineClass(1372, 645, $intern_105, RadiusExtensionOverlapRemoval); +_.process = function process_87(graph, progressMonitor){ + $process_91(this, castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_intermediate_overlaps_RadiusExtensionOverlapRemoval_2_classLit = createForClass('org.eclipse.elk.alg.radial.intermediate.overlaps', 'RadiusExtensionOverlapRemoval', 1372); +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_79(name_0){ + $clinit_AnnulusWedgeCriteria(); + return valueOf(($clinit_AnnulusWedgeCriteria$Map() , $MAP_67), name_0); +} + +function values_85(){ + $clinit_AnnulusWedgeCriteria(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_36, 427, 0, [LEAF_NUMBER, NODE_SIZE_0]); +} + +defineClass(427, 22, {3:1, 35:1, 22:1, 427: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', 427, Ljava_lang_Enum_2_classLit, values_85, valueOf_79); +function $clinit_AnnulusWedgeCriteria$Map(){ + $clinit_AnnulusWedgeCriteria$Map = emptyMethod; + $MAP_67 = createValueOfMap(($clinit_AnnulusWedgeCriteria() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_AnnulusWedgeCriteria_2_classLit, 1), $intern_36, 427, 0, [LEAF_NUMBER, NODE_SIZE_0]))); +} + +var $MAP_67; +function $clinit_CompactionStrategy_0(){ + $clinit_CompactionStrategy_0 = emptyMethod; + NONE_11 = 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_80(name_0){ + $clinit_CompactionStrategy_0(); + return valueOf(($clinit_CompactionStrategy$Map_0() , $MAP_68), name_0); +} + +function values_86(){ + $clinit_CompactionStrategy_0(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_36, 380, 0, [NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION]); +} + +defineClass(380, 22, {3:1, 35:1, 22:1, 380:1}, CompactionStrategy_0); +var NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION; +var Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'CompactionStrategy', 380, Ljava_lang_Enum_2_classLit, values_86, valueOf_80); +function $clinit_CompactionStrategy$Map_0(){ + $clinit_CompactionStrategy$Map_0 = emptyMethod; + $MAP_68 = createValueOfMap(($clinit_CompactionStrategy_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_CompactionStrategy_2_classLit, 1), $intern_36, 380, 0, [NONE_11, RADIAL_COMPACTION, WEDGE_COMPACTION]))); +} + +var $MAP_68; +function $clinit_RadialMetaDataProvider(){ + $clinit_RadialMetaDataProvider = emptyMethod; + ORDER_ID = new Property_1('org.eclipse.elk.radial.orderId', valueOf_4(0)); + RADIUS = new Property_1('org.eclipse.elk.radial.radius', 0); + COMPACTOR_DEFAULT = ($clinit_CompactionStrategy_0() , NONE_11); + COMPACTOR = new Property_1('org.eclipse.elk.radial.compactor', COMPACTOR_DEFAULT); + valueOf_4(0); + COMPACTION_STEP_SIZE = new Property_1('org.eclipse.elk.radial.compactionStepSize', valueOf_4(1)); + SORTER_DEFAULT = ($clinit_SortingStrategy() , NONE_13); + 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_12); + OPTIMIZATION_CRITERIA = new Property_1('org.eclipse.elk.radial.optimizationCriteria', OPTIMIZATION_CRITERIA_DEFAULT); +} + +function RadialMetaDataProvider(){ + $clinit_RadialMetaDataProvider(); +} + +defineClass(851, 1, $intern_90, RadialMetaDataProvider); +_.apply_4 = function apply_159(registry){ + $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_4(0)), ($clinit_LayoutOptionData$Type() , INT)), Ljava_lang_Integer_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.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.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_4(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)))); + $apply_20((new RadialOptions , registry)); +} +; +var COMPACTION_STEP_SIZE, COMPACTOR, COMPACTOR_DEFAULT, OPTIMIZATION_CRITERIA, OPTIMIZATION_CRITERIA_DEFAULT, ORDER_ID, RADIUS, 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', 851); +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; + OPTIMIZATION_CRITERIA_0 = OPTIMIZATION_CRITERIA; + ORDER_ID_0 = ORDER_ID; + RADIUS_0 = RADIUS; + SORTER_0 = SORTER; + WEDGE_CRITERIA_0 = WEDGE_CRITERIA; +} + +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.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)); +} + +function RadialOptions(){ + $clinit_RadialOptions(); +} + +defineClass(995, 1, $intern_90, RadialOptions); +_.apply_4 = function apply_160(registry){ + $apply_20(registry); +} +; +var 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, 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', 995); +function RadialOptions$RadialFactory(){ +} + +defineClass(996, 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', 996); +function $clinit_RadialTranslationStrategy(){ + $clinit_RadialTranslationStrategy = emptyMethod; + NONE_12 = 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_81(name_0){ + $clinit_RadialTranslationStrategy(); + return valueOf(($clinit_RadialTranslationStrategy$Map() , $MAP_69), name_0); +} + +function values_87(){ + $clinit_RadialTranslationStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_36, 339, 0, [NONE_12, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]); +} + +defineClass(339, 22, {3:1, 35:1, 22:1, 339:1}, RadialTranslationStrategy); +var CROSSING_MINIMIZATION_BY_POSITION, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, NONE_12; +var Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'RadialTranslationStrategy', 339, Ljava_lang_Enum_2_classLit, values_87, valueOf_81); +function $clinit_RadialTranslationStrategy$Map(){ + $clinit_RadialTranslationStrategy$Map = emptyMethod; + $MAP_69 = createValueOfMap(($clinit_RadialTranslationStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_RadialTranslationStrategy_2_classLit, 1), $intern_36, 339, 0, [NONE_12, EDGE_LENGTH_0, EDGE_LENGTH_BY_POSITION, CROSSING_MINIMIZATION_BY_POSITION]))); +} + +var $MAP_69; +function $clinit_SortingStrategy(){ + $clinit_SortingStrategy = emptyMethod; + NONE_13 = 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_82(name_0){ + $clinit_SortingStrategy(); + return valueOf(($clinit_SortingStrategy$Map() , $MAP_70), name_0); +} + +function values_88(){ + $clinit_SortingStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_36, 293, 0, [NONE_13, POLAR_COORDINATE, ID_0]); +} + +defineClass(293, 22, {3:1, 35:1, 22:1, 293:1}, SortingStrategy); +var ID_0, NONE_13, POLAR_COORDINATE; +var Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.radial.options', 'SortingStrategy', 293, Ljava_lang_Enum_2_classLit, values_88, valueOf_82); +function $clinit_SortingStrategy$Map(){ + $clinit_SortingStrategy$Map = emptyMethod; + $MAP_70 = createValueOfMap(($clinit_SortingStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_radial_options_SortingStrategy_2_classLit, 1), $intern_36, 293, 0, [NONE_13, POLAR_COORDINATE, ID_0]))); +} + +var $MAP_70; +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_7(child$iterator), 33); + 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_92(this$static, graph, progressMonitor){ + $begin(progressMonitor, 'Eades radial', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + this$static.root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + this$static.radius = $doubleValue(castToDouble($getProperty_0(graph, ($clinit_RadialOptions() , RADIUS_0)))); + this$static.sorter = $create_13(castTo($getProperty_0(graph, SORTER_0), 293)); + this$static.annulusWedgeCriteria = $create_10(castTo($getProperty_0(graph, WEDGE_CRITERIA_0), 427)); + this$static.optimizer = $create_12(castTo($getProperty_0(graph, OPTIMIZATION_CRITERIA_0), 339)); + $translate_0(this$static); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +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_123, 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_123, optimalOffset); +} + +function EadesRadial(){ +} + +defineClass(1448, 1, $intern_113, EadesRadial); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_24(graph){ + return castTo(graph, 33) , null; +} +; +_.process = function process_88(graph, progressMonitor){ + $process_92(this, castTo(graph, 33), progressMonitor); +} +; +_.radius = 0; +var Lorg_eclipse_elk_alg_radial_p1position_EadesRadial_2_classLit = createForClass('org.eclipse.elk.alg.radial.p1position', 'EadesRadial', 1448); +function AnnulusWedgeByLeafs(){ +} + +defineClass(1774, 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', 1774); +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_7(child$iterator), 33); + childSpace += $calculateWedgeSpace(this$static, child); + } + return $wnd.Math.max(childSpace, nodeSize); +} + +function AnnulusWedgeByNodeSpace(){ +} + +defineClass(1775, 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', 1775); +function $process_93(this$static, graph, progressMonitor){ + var root; + $begin(progressMonitor, 'Straight Line Edge Routing', 1); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); + root = castTo($getProperty_0(graph, ($clinit_InternalProperties_3() , ROOT_NODE)), 33); + $routeEdges_1(this$static, root); + progressMonitor.recordLogs && !!graph && $logGraph(progressMonitor, copy_1(graph), ($clinit_LoggedGraph$Type() , ELK)); +} + +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), 79); + if (!instanceOf($get_20((!edge.sources && (edge.sources = new EObjectWithInverseResolvingEList$ManyInverse(Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit, edge, 4, 7)) , edge.sources), 0), 186)) { + 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), 82)); + 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(1449, 1, $intern_113, StraightLineEdgeRouter); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_25(graph){ + return castTo(graph, 33) , null; +} +; +_.process = function process_89(graph, progressMonitor){ + $process_93(this, castTo(graph, 33), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_radial_p2routing_StraightLineEdgeRouter_2_classLit = createForClass('org.eclipse.elk.alg.radial.p2routing', 'StraightLineEdgeRouter', 1449); +function $sort_2(this$static, nodes){ + nodes.sort_0(this$static.idSorter); +} + +function IDSorter(){ + this.idSorter = new IDSorter$lambda$0$Type; +} + +function lambda$0_32(node1_0, node2_1){ + var orderID1, orderID2; + orderID1 = castTo($getProperty_0(node1_0, ($clinit_RadialOptions() , ORDER_ID_0)), 19); + orderID2 = castTo($getProperty_0(node2_1, ORDER_ID_0), 19); + return compare_5(orderID1.value_0, orderID2.value_0); +} + +defineClass(810, 1, {}, IDSorter); +_.initialize_0 = function initialize_3(root){ +} +; +_.sort_1 = function sort_10(nodes){ + $sort_2(this, nodes); +} +; +var Lorg_eclipse_elk_alg_radial_sorting_IDSorter_2_classLit = createForClass('org.eclipse.elk.alg.radial.sorting', 'IDSorter', 810); +function IDSorter$lambda$0$Type(){ +} + +defineClass(1773, 1, $intern_88, IDSorter$lambda$0$Type); +_.compare_1 = function compare_79(arg0, arg1){ + return lambda$0_32(castTo(arg0, 33), castTo(arg1, 33)); +} +; +_.equals_0 = function equals_166(other){ + return this === other; +} +; +_.reversed = function reversed_71(){ + 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', 1773); +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_7(node$iterator), 33); + $setProperty_1(node, ($clinit_RadialOptions() , ORDER_ID_0), valueOf_4(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_123:0; + arc < 0.7853981633974483 || arc > $intern_126?$sort(nodeSuccessors, this$static.compLeft):arc <= $intern_126 && arc > $intern_127?$sort(nodeSuccessors, this$static.compTop):arc <= $intern_127 && arc > $intern_128?$sort(nodeSuccessors, this$static.compRight):arc <= $intern_128 && $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(1772, 1, {}, PolarCoordinateSorter); +_.initialize_0 = function initialize_4(root){ + $initialize_7(this, root); +} +; +_.sort_1 = function sort_11(nodes){ + var root; + if (!nodes.isEmpty()) { + if (!this.idSorter) { + root = findRootOfNode(castTo(nodes.get_0(0), 33)); + $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', 1772); +function RectPackingLayoutProvider(){ +} + +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), 33); + $setLocation_1(rect, rect.x_0 + padding.left, rect.y_0 + padding.top_0); + } +} + +function lambda$0_33(a_0, b_1){ + var positionA, positionB; + positionA = castTo($getProperty_0(a_0, ($clinit_RectPackingOptions() , DESIRED_POSITION_0)), 19).value_0; + positionB = castTo($getProperty_0(b_1, DESIRED_POSITION_0), 19).value_0; + return positionA == positionB?-1:positionA < positionB?-1:positionA > positionB?1:0; +} + +defineClass(1135, 209, $intern_96, RectPackingLayoutProvider); +_.layout = function layout_5(layoutGraph, progressMonitor){ + var aspectRatio, builder, compaction, drawing, elkNode, elkNode$iterator, elkNode$iterator0, elkNode$iterator1, elkNode$iterator2, expandNodes, expandToAspectRatio, firstIt, fixedNodes, goal, index_0, interactive, lastPlaceShift, maxWidth, minSize, nodeNodeSpacing, onlyFirstIteration, padding, position, rectangles, secondIt, targetWidth; + $begin(progressMonitor, 'Rectangle Packing', 1); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + aspectRatio = $doubleValue(castToDouble($getProperty_0(layoutGraph, ($clinit_RectPackingOptions() , ASPECT_RATIO_3)))); + goal = castTo($getProperty_0(layoutGraph, OPTIMIZATION_GOAL_0), 381); + lastPlaceShift = $booleanValue(castToBoolean($getProperty_0(layoutGraph, LAST_PLACE_SHIFT_0))); + onlyFirstIteration = $booleanValue(castToBoolean($getProperty_0(layoutGraph, ONLY_FIRST_ITERATION_0))); + expandNodes = $booleanValue(castToBoolean($getProperty_0(layoutGraph, EXPAND_NODES))); + padding = castTo($getProperty_0(layoutGraph, PADDING_3), 116); + nodeNodeSpacing = $doubleValue(castToDouble($getProperty_0(layoutGraph, SPACING_NODE_NODE_3))); + compaction = $booleanValue(castToBoolean($getProperty_0(layoutGraph, ROW_COMPACTION_0))); + expandToAspectRatio = $booleanValue(castToBoolean($getProperty_0(layoutGraph, EXPAND_TO_ASPECT_RATIO_0))); + interactive = $booleanValue(castToBoolean($getProperty_0(layoutGraph, INTERACTIVE_5))); + targetWidth = $doubleValue(castToDouble($getProperty_0(layoutGraph, TARGET_WIDTH_0))); + rectangles = (!layoutGraph.children && (layoutGraph.children = new EObjectContainmentWithInverseEList(Lorg_eclipse_elk_graph_ElkNode_2_classLit, layoutGraph, 10, 11)) , layoutGraph.children); + resetCoordinates(rectangles); + if (interactive) { + 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), 33); + $hasProperty_0(elkNode, DESIRED_POSITION_0) && (fixedNodes.array[fixedNodes.array.length] = elkNode , true); + } + for (elkNode$iterator1 = new ArrayList$1(fixedNodes); elkNode$iterator1.i < elkNode$iterator1.this$01.array.length;) { + elkNode = castTo($next_7(elkNode$iterator1), 33); + $remove_32(rectangles, elkNode); + } + $clinit_Collections(); + $sort(fixedNodes, new RectPackingLayoutProvider$lambda$0$Type); + for (elkNode$iterator2 = new ArrayList$1(fixedNodes); elkNode$iterator2.i < elkNode$iterator2.this$01.array.length;) { + elkNode = castTo($next_7(elkNode$iterator2), 33); + position = castTo($getProperty_0(elkNode, DESIRED_POSITION_0), 19).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), 33); + $setProperty_1(elkNode, CURRENT_POSITION_0, valueOf_4(index_0)); + ++index_0; + } + } + minSize = effectiveMinSizeConstraintFor(layoutGraph); + minSize.x_0 -= padding.left + padding.right; + minSize.y_0 -= padding.top_0 + padding.bottom; + maxWidth = minSize.x_0; + if (targetWidth < 0 || targetWidth < minSize.x_0) { + firstIt = new AreaApproximation(aspectRatio, goal, lastPlaceShift); + drawing = $approxBoundingBox(firstIt, rectangles, nodeNodeSpacing, padding); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + } + else { + drawing = new DrawingData(aspectRatio, targetWidth, 0, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); + } + minSize.x_0 += padding.left + padding.right; + minSize.y_0 += padding.top_0 + padding.bottom; + if (!onlyFirstIteration) { + resetCoordinates(rectangles); + secondIt = new RowFillingAndCompaction(aspectRatio, expandNodes, expandToAspectRatio, compaction, nodeNodeSpacing); + maxWidth = $wnd.Math.max(minSize.x_0, drawing.drawingWidth); + drawing = $start(secondIt, rectangles, maxWidth, minSize, progressMonitor, layoutGraph, padding); + } + applyPadding(rectangles, padding); + resizeNode_1(layoutGraph, drawing.drawingWidth + (padding.left + padding.right), drawing.drawingHeight + (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.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutProvider', 1135); +function RectPackingLayoutProvider$lambda$0$Type(){ +} + +defineClass(1136, 1, $intern_88, RectPackingLayoutProvider$lambda$0$Type); +_.compare_1 = function compare_80(arg0, arg1){ + return lambda$0_33(castTo(arg0, 33), castTo(arg1, 33)); +} +; +_.equals_0 = function equals_167(other){ + return this === other; +} +; +_.reversed = function reversed_72(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_alg_rectpacking_RectPackingLayoutProvider$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking', 'RectPackingLayoutProvider/lambda$0$Type', 1136); +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), 33); + $setX_2(firstRect, 0); + $setY_3(firstRect, 0); + placedRects = new ArrayList; + placedRects.array[placedRects.array.length] = 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), 33); + 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; + placedRects.array[placedRects.array.length] = 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, 220, 0, [opt1, opt2, opt3, opt4])); + filters = null; + switch (this$static.goal.ordinal) { + case 1: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new ScaleMeasureFilter, new AreaFilter, new AspectRatioFilter])); + break; + case 0: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 0, [new AspectRatioFilter, new AreaFilter, new ScaleMeasureFilter])); + break; + case 2: + filters = newArrayList_1(stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit, 1), $intern_2, 526, 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_7(filter$iterator), 526); + 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), 220); + } + if (candidates.array.length == 2) { + return $checkSpecialCases((checkCriticalElementIndex(0, candidates.array.length) , castTo(candidates.array[0], 220)), (checkCriticalElementIndex(1, candidates.array.length) , castTo(candidates.array[1], 220)), lastPlaced, toPlace); + } + return null; +} + +function AreaApproximation(aspectRatio, goal, lpShift){ + this.aspectRatio = aspectRatio; + this.goal = goal; + this.lpShift = lpShift; +} + +defineClass(1255, 1, {}, AreaApproximation); +_.aspectRatio = 0; +_.lpShift = false; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AreaApproximation_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AreaApproximation', 1255); +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_BestCandidateFilter_2_classLit = createForInterface('org.eclipse.elk.alg.rectpacking.firstiteration', 'BestCandidateFilter'); +function AreaFilter(){ +} + +defineClass(638, 1, {526:1}, AreaFilter); +_.filterList = function filterList(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, minArea, opt, opt$iterator, remainingCandidates; + remainingCandidates = new ArrayList; + minArea = $intern_59; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_7(opt$iterator), 220); + 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_7(candidate$iterator), 220); + (candidate.drawingWidth + (padding.left + padding.right)) * (candidate.drawingHeight + (padding.top_0 + padding.bottom)) == minArea && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AreaFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AreaFilter', 638); +function AspectRatioFilter(){ +} + +defineClass(639, 1, {526:1}, AspectRatioFilter); +_.filterList = function filterList_0(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, opt, opt$iterator, remainingCandidates, smallestDeviation; + remainingCandidates = new ArrayList; + smallestDeviation = $intern_59; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_7(opt$iterator), 220); + 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_7(candidate$iterator), 220); + $wnd.Math.abs((candidate.drawingWidth + (padding.left + padding.right)) / (candidate.drawingHeight + (padding.top_0 + padding.bottom)) - aspectRatio) == smallestDeviation && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_AspectRatioFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'AspectRatioFilter', 639); +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_7(placedRect$iterator), 33); + 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_7(placedRect$iterator), 33); + 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 ScaleMeasureFilter(){ +} + +defineClass(637, 1, {526:1}, ScaleMeasureFilter); +_.filterList = function filterList_1(candidates, aspectRatio, padding){ + var candidate, candidate$iterator, maxScale, opt, opt$iterator, remainingCandidates; + remainingCandidates = new ArrayList; + maxScale = $intern_60; + for (opt$iterator = new ArrayList$1(candidates); opt$iterator.i < opt$iterator.this$01.array.length;) { + opt = castTo($next_7(opt$iterator), 220); + 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_7(candidate$iterator), 220); + computeScaleMeasure(candidate.drawingWidth + (padding.left + padding.right), candidate.drawingHeight + (padding.top_0 + padding.bottom), candidate.dar) == maxScale && (remainingCandidates.array[remainingCandidates.array.length] = candidate , true); + } + return remainingCandidates; +} +; +var Lorg_eclipse_elk_alg_rectpacking_firstiteration_ScaleMeasureFilter_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.firstiteration', 'ScaleMeasureFilter', 637); +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_83(name_0){ + $clinit_OptimizationGoal(); + return valueOf(($clinit_OptimizationGoal$Map() , $MAP_71), name_0); +} + +function values_89(){ + $clinit_OptimizationGoal(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_36, 381, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]); +} + +defineClass(381, 22, {3:1, 35:1, 22:1, 381: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', 381, Ljava_lang_Enum_2_classLit, values_89, valueOf_83); +function $clinit_OptimizationGoal$Map(){ + $clinit_OptimizationGoal$Map = emptyMethod; + $MAP_71 = createValueOfMap(($clinit_OptimizationGoal() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_2_classLit, 1), $intern_36, 381, 0, [ASPECT_RATIO_DRIVEN, MAX_SCALE_DRIVEN, AREA_DRIVEN]))); +} + +var $MAP_71; +function $clinit_RectPackingMetaDataProvider(){ + $clinit_RectPackingMetaDataProvider = emptyMethod; + OPTIMIZATION_GOAL_DEFAULT = ($clinit_OptimizationGoal() , MAX_SCALE_DRIVEN); + OPTIMIZATION_GOAL = new Property_1('org.eclipse.elk.rectpacking.optimizationGoal', OPTIMIZATION_GOAL_DEFAULT); + LAST_PLACE_SHIFT = new Property_1('org.eclipse.elk.rectpacking.lastPlaceShift', ($clinit_Boolean() , true)); + valueOf_4(-1); + CURRENT_POSITION = new Property_1('org.eclipse.elk.rectpacking.currentPosition', valueOf_4(-1)); + valueOf_4(-1); + DESIRED_POSITION = new Property_1('org.eclipse.elk.rectpacking.desiredPosition', valueOf_4(-1)); + ONLY_FIRST_ITERATION = new Property_1('org.eclipse.elk.rectpacking.onlyFirstIteration', false); + ROW_COMPACTION = new Property_1('org.eclipse.elk.rectpacking.rowCompaction', true); + EXPAND_TO_ASPECT_RATIO = new Property_1('org.eclipse.elk.rectpacking.expandToAspectRatio', false); + TARGET_WIDTH = new Property_1('org.eclipse.elk.rectpacking.targetWidth', -1); +} + +function RectPackingMetaDataProvider(){ + $clinit_RectPackingMetaDataProvider(); +} + +defineClass(855, 1, $intern_90, RectPackingMetaDataProvider); +_.apply_4 = function apply_161(registry){ + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.optimizationGoal'), ''), '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.'), OPTIMIZATION_GOAL_DEFAULT), ($clinit_LayoutOptionData$Type() , ENUM)), Lorg_eclipse_elk_alg_rectpacking_options_OptimizationGoal_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.rectpacking.lastPlaceShift'), ''), '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.'), ($clinit_Boolean() , 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.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_4(-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_4(-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.onlyFirstIteration'), ''), 'Only Area Approximation'), 'If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place.'), 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.rowCompaction'), ''), 'Compact Rows'), 'Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows.'), 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.rectpacking.expandToAspectRatio'), ''), 'Fit Aspect Ratio'), 'Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion.'), false), BOOLEAN), Ljava_lang_Boolean_2_classLit), of_1(NODES)))); + $addDependency(registry, 'org.eclipse.elk.rectpacking.expandToAspectRatio', 'org.eclipse.elk.expandNodes', null); + $register_1(registry, new LayoutOptionData($targets($optionClass($type($defaultValue($description_1($name_2($group($id_1(new LayoutOptionData$Builder, 'org.eclipse.elk.rectpacking.targetWidth'), ''), '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(NODES)))); + $apply_21((new RectPackingOptions , registry)); +} +; +var CURRENT_POSITION, DESIRED_POSITION, EXPAND_TO_ASPECT_RATIO, LAST_PLACE_SHIFT, ONLY_FIRST_ITERATION, OPTIMIZATION_GOAL, OPTIMIZATION_GOAL_DEFAULT, ROW_COMPACTION, TARGET_WIDTH; +var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingMetaDataProvider_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingMetaDataProvider', 855); +function $clinit_RectPackingOptions(){ + $clinit_RectPackingOptions = emptyMethod; + ASPECT_RATIO_3 = new Property_2(($clinit_CoreOptions() , ASPECT_RATIO_5), 1.3); + EXPAND_NODES = EXPAND_NODES_1; + 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; + OPTIMIZATION_GOAL_0 = ($clinit_RectPackingMetaDataProvider() , OPTIMIZATION_GOAL); + LAST_PLACE_SHIFT_0 = LAST_PLACE_SHIFT; + ONLY_FIRST_ITERATION_0 = ONLY_FIRST_ITERATION; + ROW_COMPACTION_0 = ROW_COMPACTION; + EXPAND_TO_ASPECT_RATIO_0 = EXPAND_TO_ASPECT_RATIO; + INTERACTIVE_5 = INTERACTIVE_7; + INTERACTIVE_LAYOUT_0 = INTERACTIVE_LAYOUT_1; + DESIRED_POSITION_0 = DESIRED_POSITION; + CURRENT_POSITION_0 = CURRENT_POSITION; + TARGET_WIDTH_0 = TARGET_WIDTH; +} + +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.expandNodes', $getDefault(EXPAND_NODES)); + $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.optimizationGoal', $getDefault(OPTIMIZATION_GOAL_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.lastPlaceShift', $getDefault(LAST_PLACE_SHIFT_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.onlyFirstIteration', $getDefault(ONLY_FIRST_ITERATION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.rowCompaction', $getDefault(ROW_COMPACTION_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.rectpacking.expandToAspectRatio', $getDefault(EXPAND_TO_ASPECT_RATIO_0)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_5)); + $addOptionSupport(registry, 'org.eclipse.elk.rectpacking', 'org.eclipse.elk.interactiveLayout', $getDefault(INTERACTIVE_LAYOUT_0)); + $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.targetWidth', $getDefault(TARGET_WIDTH_0)); +} + +function RectPackingOptions(){ + $clinit_RectPackingOptions(); +} + +defineClass(1003, 1, $intern_90, RectPackingOptions); +_.apply_4 = function apply_162(registry){ + $apply_21(registry); +} +; +var ASPECT_RATIO_3, CONTENT_ALIGNMENT_0, CURRENT_POSITION_0, DESIRED_POSITION_0, EXPAND_NODES, EXPAND_TO_ASPECT_RATIO_0, INTERACTIVE_5, INTERACTIVE_LAYOUT_0, LAST_PLACE_SHIFT_0, NODE_LABELS_PLACEMENT_4, NODE_SIZE_CONSTRAINTS_4, NODE_SIZE_MINIMUM_3, NODE_SIZE_OPTIONS_4, OMIT_NODE_MICRO_LAYOUT_3, ONLY_FIRST_ITERATION_0, OPTIMIZATION_GOAL_0, PADDING_3, PADDING_DEFAULT_2, PORT_LABELS_PLACEMENT_4, ROW_COMPACTION_0, SPACING_NODE_NODE_3, TARGET_WIDTH_0; +var Lorg_eclipse_elk_alg_rectpacking_options_RectPackingOptions_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.options', 'RectPackingOptions', 1003); +function RectPackingOptions$RectpackingFactory(){ +} + +defineClass(1004, 1, {}, RectPackingOptions$RectpackingFactory); +_.create_0 = function create_26(){ + 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', 1004); +function absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing){ + var rect, somethingWasChanged; + somethingWasChanged = false; + rect = castTo($get_11(nextBlock.children, 0), 33); + 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), 33); + } + nextBlock.children.array.length == 0 && $removeBlock(nextBlock.parentRow, nextBlock); + somethingWasChanged && $updateDimension(block.stack_0); + return somethingWasChanged; +} + +function compact_4(rowIdx, rows_0, boundingWidth, nodeNodeSpacing){ + var block, blockId, blocks, currentStack, nextBlock, nextRowIndex, row, somethingWasChanged, wasFromNextRow, nextBlock_0; + somethingWasChanged = false; + nextRowIndex = rowIdx + 1; + row = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 200)); + blocks = row.children; + currentStack = null; + for (blockId = 0; blockId < row.children.array.length; blockId++) { + block = (checkCriticalElementIndex(blockId, blocks.array.length) , castTo(blocks.array[blockId], 187)); + if (block.fixed_0) { + continue; + } + if (block.children.array.length == 0) { + $clinit_System(); + $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), 187)):nextRowIndex < rows_0.array.length && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length != 0 && (nextBlock_0 = castTo($get_11((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children, 0), 187)) , nextBlock_0); + wasFromNextRow = false; + !!nextBlock && (wasFromNextRow = !equals_Ljava_lang_Object__Z__devirtual$(nextBlock.parentRow, row)); + if (nextBlock) { + if (nextBlock.children.array.length == 0) { + $removeBlock(row, nextBlock); + break; + } + else { + $placeRectsIn(block, boundingWidth - block.x_0); + $updateDimension(block.stack_0); + somethingWasChanged = somethingWasChanged | absorbBlocks(row, block, nextBlock, boundingWidth, nodeNodeSpacing); + } + if (nextBlock.children.array.length == 0) { + $removeBlock((checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)), nextBlock); + nextBlock = null; + while (rows_0.array.length > nextRowIndex && (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0) { + $remove_12(rows_0, (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , rows_0.array[nextRowIndex])); + } + } + if (!nextBlock) { + --blockId; + continue; + } + if (placeBelow(rows_0, row, block, nextBlock, wasFromNextRow, boundingWidth, nextRowIndex, nodeNodeSpacing)) { + somethingWasChanged = true; + continue; + } + if (wasFromNextRow) { + if (placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing)) { + somethingWasChanged = true; + 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 somethingWasChanged; +} + +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], 200)), nextBlock); + (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).children.array.length == 0 && $remove_11(rows_0, nextRowIndex); + } + } + } + return somethingWasChanged; +} + +function placeBeside(rows_0, row, block, nextBlock, boundingWidth, nextRowIndex, nodeNodeSpacing){ + var bounds, currentBlockMinWidth, lastRowOptimization, nextBlockHeight, somethingWasChanged, targetWidthOfNextBlock; + somethingWasChanged = false; + currentBlockMinWidth = $getWidthForFixedHeight(block.stack_0, row.y_0 + row.height - block.stack_0.y_0); + targetWidthOfNextBlock = boundingWidth - (block.stack_0.x_0 + currentBlockMinWidth - nodeNodeSpacing); + 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], 200)).width_0; + nextBlockHeight = (bounds = $placeRectsIn_1(nextBlock, targetWidthOfNextBlock, false) , bounds.height); + if (nextBlockHeight > row.height && !lastRowOptimization) { + return false; + } + if (lastRowOptimization || 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], 200)), nextBlock); + (checkCriticalElementIndex(nextRowIndex, rows_0.array.length) , castTo(rows_0.array[nextRowIndex], 200)).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 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), 33); + block = castTo($get_11(row.children, row.children.array.length - 1), 187); + potentialRowWidth = currentWidth + rect.width_0 + (castTo($get_11(row.children, 0), 187).children.array.length == 0?0:nodeNodeSpacing); + if (potentialRowWidth > boundingWidth) { + currentWidth = 0; + drawingHeight += row.height + nodeNodeSpacing; + rows_0.array[rows_0.array.length] = 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 || 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; + } + rows_0.array[rows_0.array.length] = 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), 211); + 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), 211) , 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), 211); + $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), 211), rect); + $adjustSizeAdd(block, rect); + return true; + } + } + return false; +} + +function expand(rows_0, drawingWidth, additionalHeight){ + var heightPerRow, index_0, row, row$iterator; + heightPerRow = additionalHeight / rows_0.array.length; + index_0 = 0; + for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 200); + $setY_1(row, row.y_0 + heightPerRow * index_0); + $expand_2(row, drawingWidth, heightPerRow); + ++index_0; + } +} + +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_7(stack$iterator), 444); + $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 $calculateDimensions(this$static, rows_0){ + 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_7(row$iterator), 200); + maxWidth = $wnd.Math.max(maxWidth, row.width_0); + newHeight += row.height + (index_0 > 0?this$static.nodeNodeSpacing:0); + ++index_0; + } + this$static.drawingHeight = newHeight; + this$static.drawingWidth = maxWidth; +} + +function $start(this$static, rectangles, maxWidth, minParentSize, progressMonitor, layoutGraph, padding){ + var additionalHeight, aspectRatio, block, block$iterator, currentRow, minHeight, previousRow, row, row$iterator, rowIdx, rows_0, stack_0, totalWidth; + rows_0 = place(rectangles, maxWidth, this$static.nodeNodeSpacing); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + if (this$static.compaction) { + for (rowIdx = 0; rowIdx < rows_0.array.length; rowIdx++) { + currentRow = (checkCriticalElementIndex(rowIdx, rows_0.array.length) , castTo(rows_0.array[rowIdx], 200)); + if (rowIdx != 0) { + previousRow = (checkCriticalElementIndex(rowIdx - 1, rows_0.array.length) , castTo(rows_0.array[rowIdx - 1], 200)); + $setY_1(currentRow, previousRow.y_0 + previousRow.height + this$static.nodeNodeSpacing); + } + compact_4(rowIdx, rows_0, maxWidth, this$static.nodeNodeSpacing); + $adjustWidthAndHeight(this$static, currentRow); + progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + } + } + else { + for (row$iterator = new ArrayList$1(rows_0); row$iterator.i < row$iterator.this$01.array.length;) { + row = castTo($next_7(row$iterator), 200); + for (block$iterator = new ArrayList$1(row.children); block$iterator.i < block$iterator.this$01.array.length;) { + block = castTo($next_7(block$iterator), 187); + stack_0 = new BlockStack(block.x_0, block.y_0, this$static.nodeNodeSpacing); + $addBlock(stack_0, block); + $add_3(row.stacks, stack_0); + } + } + } + $calculateDimensions(this$static, rows_0); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + totalWidth = $wnd.Math.max(this$static.drawingWidth, minParentSize.x_0 - (padding.left + padding.right)); + minHeight = $wnd.Math.max(this$static.drawingHeight, minParentSize.y_0 - (padding.top_0 + padding.bottom)); + additionalHeight = minHeight - this$static.drawingHeight; + if (this$static.expandNodes && this$static.expandToAspectRatio) { + aspectRatio = totalWidth / minHeight; + aspectRatio < this$static.aspectRatio?(totalWidth = minHeight * this$static.aspectRatio):(additionalHeight += totalWidth / this$static.aspectRatio - minHeight); + } + this$static.expandNodes && expand(rows_0, totalWidth, additionalHeight); + progressMonitor.recordLogs && progressMonitor.recordLogs && !!layoutGraph && $logGraph(progressMonitor, copy_1(layoutGraph), ($clinit_LoggedGraph$Type() , ELK)); + return new DrawingData(this$static.aspectRatio, totalWidth, this$static.drawingHeight + additionalHeight, ($clinit_DrawingDataDescriptor() , WHOLE_DRAWING)); +} + +function RowFillingAndCompaction(aspectRatio, expandNodes, expandToAspectRatio, compaction, nodeNodeSpacing){ + this.aspectRatio = aspectRatio; + this.expandNodes = expandNodes; + this.expandToAspectRatio = expandToAspectRatio; + this.compaction = compaction; + this.nodeNodeSpacing = nodeNodeSpacing; +} + +defineClass(1256, 1, {}, RowFillingAndCompaction); +_.aspectRatio = 0; +_.compaction = false; +_.drawingHeight = 0; +_.drawingWidth = 0; +_.expandNodes = false; +_.expandToAspectRatio = false; +_.nodeNodeSpacing = 0; +var Lorg_eclipse_elk_alg_rectpacking_seconditeration_RowFillingAndCompaction_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.seconditeration', 'RowFillingAndCompaction', 1256); +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), 211), 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_7(rect$iterator), 33); + $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), 211).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_7(row$iterator), 211); + 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_7(row$iterator), 211); + 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_59; + this$static.smallestRectWidth = $intern_59; + for (rect$iterator = new ArrayList$1(this$static.children); rect$iterator.i < rect$iterator.this$01.array.length;) { + rect = castTo($next_7(rect$iterator), 33); + 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_7(row$iterator), 211); + $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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $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_7(rect$iterator), 33); + 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), 211), 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_7(row$iterator), 211); + 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_7(row$iterator), 211); + $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(187, 1, {187:1}, Block); +_.averageHeight = 0; +_.fixed_0 = false; +_.height = 0; +_.maxHeight = 0; +_.minHeight = 0; +_.minWidth = 0; +_.nodeNodeSpacing = 0; +_.positionFixed = false; +_.smallestRectHeight = $intern_59; +_.smallestRectWidth = $intern_59; +_.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', 187); +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_7(rect$iterator), 33); + 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_7(rect$iterator), 33); + $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(211, 1, {211: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', 211); +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_7(block$iterator), 187); + $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_7(block$iterator), 187); + 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), 187), 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_7(block$iterator), 187); + 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_7(block$iterator), 187); + $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_7(block$iterator), 187); + $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_7(block$iterator), 187); + 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(444, 1, {444: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', 444); +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 && computeScaleMeasure(this.drawingWidth, this.drawingHeight, this.dar); +} + +defineClass(220, 1, {220:1}, DrawingData, DrawingData_0); +_.dar = 0; +_.drawingHeight = 0; +_.drawingWidth = 0; +_.nextXcoordinate = 0; +_.nextYcoordinate = 0; +var Lorg_eclipse_elk_alg_rectpacking_util_DrawingData_2_classLit = createForClass('org.eclipse.elk.alg.rectpacking.util', 'DrawingData', 220); +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_84(name_0){ + $clinit_DrawingDataDescriptor(); + return valueOf(($clinit_DrawingDataDescriptor$Map() , $MAP_72), name_0); +} + +function values_90(){ + $clinit_DrawingDataDescriptor(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_36, 354, 0, [CANDIDATE_POSITION_LAST_PLACED_RIGHT, CANDIDATE_POSITION_LAST_PLACED_BELOW, CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT, CANDIDATE_POSITION_WHOLE_DRAWING_BELOW, WHOLE_DRAWING]); +} + +defineClass(354, 22, {3:1, 35:1, 22:1, 354: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', 354, Ljava_lang_Enum_2_classLit, values_90, valueOf_84); +function $clinit_DrawingDataDescriptor$Map(){ + $clinit_DrawingDataDescriptor$Map = emptyMethod; + $MAP_72 = createValueOfMap(($clinit_DrawingDataDescriptor() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_rectpacking_util_DrawingDataDescriptor_2_classLit, 1), $intern_36, 354, 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_72; +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), 33); + $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_7(stack$iterator), 444); + 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_60; + index_0 = 0; + for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 187); + 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_124; + for (child$iterator = new ArrayList$1(this$static.children); child$iterator.i < child$iterator.this$01.array.length;) { + child = castTo($next_7(child$iterator), 187); + 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_7(stack$iterator), 444); + $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(200, 1, {200: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', 200); +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_59; + minY = $intern_59; + maxX = $intern_60; + maxY = $intern_60; + for (node$iterator = new ArrayList$1(g.vertices); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 65); + elkNode = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 46).second, 33); + $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)), 116); + 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), 79); + 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), 316); + treeConstructionStrategy = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_TREE_CONSTRUCTION), 430); + compactionStrategy = castTo($getProperty_0(this$static.elkGraph, COMPACTION_COMPACTION_STRATEGY), 482); + rootSelection = castTo($getProperty_0(this$static.elkGraph, PROCESSING_ORDER_ROOT_SELECTION), 431); + 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), 33); + 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)), 142); + 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), 65); + } + else { + for (node$iterator0 = new ArrayList$1(this$static.graph_0.vertices); node$iterator0.i < node$iterator0.this$01.array.length;) { + node = castTo($next_7(node$iterator0), 65); + id_0 = castTo(castTo($get_10(this$static.nodeMap, node.originalVertex), 46).second, 33).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_59; + for (node$iterator = new ArrayList$1(this$static.graph_0.vertices); node$iterator.i < node$iterator.this$01.array.length;) { + node = castTo($next_7(node$iterator), 65); + 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_6(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), 46).first, 65); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); + 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), 46).first, 65); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); + 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), 46).first, 65); + n2 = castTo(castTo($get_10(this$static.nodeMap, e_0.v), 46).first, 65); + 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_7(n$iterator), 65); + original = castTo($get_10(this$static.nodeMap, n.originalVertex), 46); + 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_0; + 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(756, 1, {}, ElkGraphImporter_0); +_.spacingNodeNode = 0; +var Lorg_eclipse_elk_alg_spore_ElkGraphImporter_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ElkGraphImporter', 756); +function ElkGraphImporter$lambda$0$Type_0(){ +} + +defineClass(1244, 1, {}, ElkGraphImporter$lambda$0$Type_0); +_.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', 1244); +function ElkGraphImporter$lambda$1$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1245, 1, {}, ElkGraphImporter$lambda$1$Type_0); +_.cost = function cost_1(arg0){ + return $lambda$1_6(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', 1245); +function ElkGraphImporter$lambda$2$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1246, 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', 1246); +function ElkGraphImporter$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1247, 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', 1247); +function ElkGraphImporter$lambda$4$Type_0($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1248, 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', 1248); +function OverlapRemovalLayoutProvider(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); +} + +function lambda$0_34(overlapEdges_0, n1_1, n2_2){ + return $add_6(overlapEdges_0, new TEdge(n1_1.originalVertex, n2_2.originalVertex)); +} + +defineClass(1132, 209, $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), 209); + layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 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)), 19).value_0; + $begin(progressMonitor, '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_7(processor$iterator), 51); + processor.process(graph, $subTask(progressMonitor, 1)); + } + $updateGraph(graphImporter, graph); + overlapsExisted = $booleanValue(castToBoolean($getProperty(graph, ($clinit_InternalProperties() , OVERLAPS_EXISTED)))); + ++iteration; + } + $applyPositions_0(graphImporter, graph); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_OverlapRemovalLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'OverlapRemovalLayoutProvider', 1132); +function $handle_4(this$static, arg0, arg1){ + lambda$0_34(this$static.overlapEdges_0, arg0, arg1); +} + +function OverlapRemovalLayoutProvider$lambda$0$Type(overlapEdges_0){ + this.overlapEdges_0 = overlapEdges_0; +} + +defineClass(1133, 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', 1133); +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_85(name_0){ + $clinit_SPOrEPhases(); + return valueOf(($clinit_SPOrEPhases$Map() , $MAP_73), name_0); +} + +function values_91(){ + $clinit_SPOrEPhases(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_36, 438, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]); +} + +defineClass(438, 22, {3:1, 35:1, 22:1, 438: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', 438, Ljava_lang_Enum_2_classLit, values_91, valueOf_85); +function $clinit_SPOrEPhases$Map(){ + $clinit_SPOrEPhases$Map = emptyMethod; + $MAP_73 = createValueOfMap(($clinit_SPOrEPhases() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit, 1), $intern_36, 438, 0, [P1_STRUCTURE, P2_PROCESSING_ORDER, P3_EXECUTION]))); +} + +var $MAP_73; +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); + $begin(progressMonitor, '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_7(processor$iterator), 51); + processor.process(graph, $subTask(progressMonitor, 1)); + } + } + $done_0(progressMonitor); +} + +function ShrinkTree(){ + this.algorithmAssembler = new AlgorithmAssembler(Lorg_eclipse_elk_alg_spore_SPOrEPhases_2_classLit); +} + +defineClass(1254, 1, {}, ShrinkTree); +var Lorg_eclipse_elk_alg_spore_ShrinkTree_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTree', 1254); +function ShrinkTreeLayoutProvider(){ + this.shrinktree = new ShrinkTree; +} + +defineClass(1134, 209, $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), 209); + layoutProvider.layout(layoutGraph, $subTask(progressMonitor, 1)); + } + } + graphImporter = new ElkGraphImporter_0; + graph = $importGraph_2(graphImporter, layoutGraph); + $shrink(this.shrinktree, graph, $subTask(progressMonitor, 1)); + $applyPositions_0(graphImporter, graph); +} +; +var Lorg_eclipse_elk_alg_spore_ShrinkTreeLayoutProvider_2_classLit = createForClass('org.eclipse.elk.alg.spore', 'ShrinkTreeLayoutProvider', 1134); +function Graph(costFun, treeStrategy, compStrategy){ + this.vertices = new ArrayList; + this.costFunction = costFun; + this.treeConstructionStrategy = treeStrategy; + this.compactionStrategy = compStrategy; +} + +defineClass(300, 134, {3:1, 300:1, 94:1, 134:1}, Graph); +_.orthogonalCompaction = false; +var Lorg_eclipse_elk_alg_spore_graph_Graph_2_classLit = createForClass('org.eclipse.elk.alg.spore.graph', 'Graph', 300); +function $clinit_CompactionStrategy_1(){ + $clinit_CompactionStrategy_1 = emptyMethod; + DEPTH_FIRST_0 = new CompactionStrategy_1; +} + +function $create_14(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_86(name_0){ + $clinit_CompactionStrategy_1(); + return valueOf(($clinit_CompactionStrategy$Map_1() , $MAP_74), name_0); +} + +function values_92(){ + $clinit_CompactionStrategy_1(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_36, 482, 0, [DEPTH_FIRST_0]); +} + +defineClass(482, 22, {3:1, 35:1, 22:1, 482:1, 246:1, 234:1}, CompactionStrategy_1); +_.create_1 = function create_28(){ + return $create_14(this); +} +; +_.create_2 = function create_27(){ + return $create_14(this); +} +; +var DEPTH_FIRST_0; +var Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'CompactionStrategy', 482, Ljava_lang_Enum_2_classLit, values_92, valueOf_86); +function $clinit_CompactionStrategy$Map_1(){ + $clinit_CompactionStrategy$Map_1 = emptyMethod; + $MAP_74 = createValueOfMap(($clinit_CompactionStrategy_1() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_CompactionStrategy_2_classLit, 1), $intern_36, 482, 0, [DEPTH_FIRST_0]))); +} + +var $MAP_74; +function $clinit_OverlapRemovalStrategy(){ + $clinit_OverlapRemovalStrategy = emptyMethod; + GROW_TREE = new OverlapRemovalStrategy; +} + +function OverlapRemovalStrategy(){ + Enum.call(this, 'GROW_TREE', 0); +} + +function valueOf_87(name_0){ + $clinit_OverlapRemovalStrategy(); + return valueOf(($clinit_OverlapRemovalStrategy$Map() , $MAP_75), name_0); +} + +function values_93(){ + $clinit_OverlapRemovalStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_36, 551, 0, [GROW_TREE]); +} + +defineClass(551, 22, {3:1, 35:1, 22:1, 551:1, 246:1, 234:1}, OverlapRemovalStrategy); +_.create_1 = function create_30(){ + return new GrowTreePhase; +} +; +_.create_2 = function create_29(){ + return new GrowTreePhase; +} +; +var GROW_TREE; +var Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'OverlapRemovalStrategy', 551, Ljava_lang_Enum_2_classLit, values_93, valueOf_87); +function $clinit_OverlapRemovalStrategy$Map(){ + $clinit_OverlapRemovalStrategy$Map = emptyMethod; + $MAP_75 = createValueOfMap(($clinit_OverlapRemovalStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_OverlapRemovalStrategy_2_classLit, 1), $intern_36, 551, 0, [GROW_TREE]))); +} + +var $MAP_75; +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_88(name_0){ + $clinit_RootSelection(); + return valueOf(($clinit_RootSelection$Map() , $MAP_76), name_0); +} + +function values_94(){ + $clinit_RootSelection(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_36, 431, 0, [FIXED_1, CENTER_NODE]); +} + +defineClass(431, 22, {3:1, 35:1, 22:1, 431: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', 431, Ljava_lang_Enum_2_classLit, values_94, valueOf_88); +function $clinit_RootSelection$Map(){ + $clinit_RootSelection$Map = emptyMethod; + $MAP_76 = createValueOfMap(($clinit_RootSelection() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_RootSelection_2_classLit, 1), $intern_36, 431, 0, [FIXED_1, CENTER_NODE]))); +} + +var $MAP_76; +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_89(name_0){ + $clinit_SpanningTreeCostFunction(); + return valueOf(($clinit_SpanningTreeCostFunction$Map() , $MAP_77), name_0); +} + +function values_95(){ + $clinit_SpanningTreeCostFunction(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_36, 316, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]); +} + +defineClass(316, 22, {3:1, 35:1, 22:1, 316: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', 316, Ljava_lang_Enum_2_classLit, values_95, valueOf_89); +function $clinit_SpanningTreeCostFunction$Map(){ + $clinit_SpanningTreeCostFunction$Map = emptyMethod; + $MAP_77 = createValueOfMap(($clinit_SpanningTreeCostFunction() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_SpanningTreeCostFunction_2_classLit, 1), $intern_36, 316, 0, [CENTER_DISTANCE, CIRCLE_UNDERLAP, RECTANGLE_UNDERLAP, INVERTED_OVERLAP, MINIMUM_ROOT_DISTANCE]))); +} + +var $MAP_77; +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(1001, 1, $intern_90, SporeCompactionOptions); +_.apply_4 = function apply_163(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', 1001); +function SporeCompactionOptions$SporeCompactionFactory(){ +} + +defineClass(1002, 1, {}, SporeCompactionOptions$SporeCompactionFactory); +_.create_0 = function create_31(){ + 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', 1002); +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_4(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(854, 1, $intern_90, SporeMetaDataProvider); +_.apply_4 = function apply_164(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_4(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', 854); +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(999, 1, $intern_90, SporeOverlapRemovalOptions); +_.apply_4 = function apply_165(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', 999); +function SporeOverlapRemovalOptions$SporeOverlapFactory(){ +} + +defineClass($intern_45, 1, {}, SporeOverlapRemovalOptions$SporeOverlapFactory); +_.create_0 = function create_32(){ + 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', $intern_45); +function $clinit_StructureExtractionStrategy(){ + $clinit_StructureExtractionStrategy = emptyMethod; + DELAUNAY_TRIANGULATION = new StructureExtractionStrategy; +} + +function $create_15(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_90(name_0){ + $clinit_StructureExtractionStrategy(); + return valueOf(($clinit_StructureExtractionStrategy$Map() , $MAP_78), name_0); +} + +function values_96(){ + $clinit_StructureExtractionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_36, 530, 0, [DELAUNAY_TRIANGULATION]); +} + +defineClass(530, 22, {3:1, 35:1, 22:1, 530:1, 246:1, 234:1}, StructureExtractionStrategy); +_.create_1 = function create_34(){ + return $create_15(this); +} +; +_.create_2 = function create_33(){ + return $create_15(this); +} +; +var DELAUNAY_TRIANGULATION; +var Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit = createForEnum('org.eclipse.elk.alg.spore.options', 'StructureExtractionStrategy', 530, Ljava_lang_Enum_2_classLit, values_96, valueOf_90); +function $clinit_StructureExtractionStrategy$Map(){ + $clinit_StructureExtractionStrategy$Map = emptyMethod; + $MAP_78 = createValueOfMap(($clinit_StructureExtractionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_StructureExtractionStrategy_2_classLit, 1), $intern_36, 530, 0, [DELAUNAY_TRIANGULATION]))); +} + +var $MAP_78; +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_16(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_91(name_0){ + $clinit_TreeConstructionStrategy(); + return valueOf(($clinit_TreeConstructionStrategy$Map() , $MAP_79), name_0); +} + +function values_97(){ + $clinit_TreeConstructionStrategy(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_36, 430, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]); +} + +defineClass(430, 22, {3:1, 35:1, 22:1, 430:1, 246:1, 234:1}, TreeConstructionStrategy); +_.create_1 = function create_36(){ + return $create_16(this); +} +; +_.create_2 = function create_35(){ + return $create_16(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', 430, Ljava_lang_Enum_2_classLit, values_97, valueOf_91); +function $clinit_TreeConstructionStrategy$Map(){ + $clinit_TreeConstructionStrategy$Map = emptyMethod; + $MAP_79 = createValueOfMap(($clinit_TreeConstructionStrategy() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_alg_spore_options_TreeConstructionStrategy_2_classLit, 1), $intern_36, 430, 0, [MINIMUM_SPANNING_TREE, MAXIMUM_SPANNING_TREE]))); +} + +var $MAP_79; +function $process_94(graph, progressMonitor){ + var vertices; + $begin(progressMonitor, '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)); + $done_0(progressMonitor); +} + +function DelaunayTriangulationPhase(){ +} + +defineClass(1442, 1, $intern_113, DelaunayTriangulationPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_26(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_90(graph, progressMonitor){ + $process_94(castTo(graph, 300), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p1structure_DelaunayTriangulationPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p1structure', 'DelaunayTriangulationPhase', 1442); +function DelaunayTriangulationPhase$lambda$0$Type(vertices_0){ + this.vertices_0 = vertices_0; +} + +defineClass(1443, 1, $intern_19, DelaunayTriangulationPhase$lambda$0$Type); +_.accept = function accept_132(arg0){ + $add_3(this.vertices_0, castTo(arg0, 65).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', 1443); +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_7(tTree$iterator), 221); + child = new Tree(castTo($get_10(this$static.nodeMap, tTree.node), 65)); + $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), 65)); + $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(782, 1, $intern_113, MinSTPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_27(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_91(graph, progressMonitor){ + this.process_0(castTo(graph, 300), progressMonitor); +} +; +_.process_0 = function process_92(graph, progressMonitor){ + var lastArg, root, tTree; + $begin(progressMonitor, 'Minimum spanning tree construction', 1); + graph.preferredRoot?(root = graph.preferredRoot.originalVertex):(root = castTo($get_11(graph.vertices, 0), 65).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); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase', 782); +function MaxSTPhase(){ + MinSTPhase.call(this); +} + +function lambda$0_35(graph_0, e_1){ + return -graph_0.costFunction.cost(e_1); +} + +defineClass(1445, 782, $intern_113, MaxSTPhase); +_.process_0 = function process_93(graph, progressMonitor){ + var invertedCF, lastArg, root, tree; + $begin(progressMonitor, '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), 65).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); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MaxSTPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MaxSTPhase', 1445); +function MaxSTPhase$lambda$0$Type(graph_0){ + this.graph_0 = graph_0; +} + +defineClass(1446, 1, {}, MaxSTPhase$lambda$0$Type); +_.cost = function cost_5(arg0){ + return lambda$0_35(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', 1446); +function MinSTPhase$lambda$0$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1444, 1, $intern_19, MinSTPhase$lambda$0$Type); +_.accept = function accept_133(arg0){ + $lambda$0_10(this.$$outer_0, castTo(arg0, 65)); +} +; +var Lorg_eclipse_elk_alg_spore_p2processingorder_MinSTPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p2processingorder', 'MinSTPhase/lambda$0$Type', 1444); +function $debugOut(this$static, c){ + $drawTree(this$static, this$static.root, this$static.svg); + castTo(this$static.root.node, 65); + !!c && castTo(c.node, 65).rect; +} + +function $drawTree(this$static, t, img){ + castTo(t.node, 65); + $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_7(c$iterator), 221); + $translate(castTo(c.node, 65), $sub_0($clone_0(castTo(r.node, 65).vertex), castTo(r.node, 65).originalVertex)); + t = overlap_0(castTo(r.node, 65).rect, castTo(c.node, 65).rect); + t > 1 && (this$static.overlapsExisted = true); + $setCenterPosition(castTo(c.node, 65), $add_19($clone_0(castTo(r.node, 65).vertex), $scale($sub_0($clone_0(castTo(c.node, 65).originalVertex), castTo(r.node, 65).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, 65); + castTo(t_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + $forEach_1(c_2.children, new GrowTreePhase$lambda$0$Type(this$static, img_1, c_2)); +} + +function $process_95(this$static, graph, progressMonitor){ + $begin(progressMonitor, '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)); + $done_0(progressMonitor); +} + +function GrowTreePhase(){ +} + +defineClass(784, 1, $intern_113, GrowTreePhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_28(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_94(graph, progressMonitor){ + $process_95(this, castTo(graph, 300), progressMonitor); +} +; +_.overlapsExisted = false; +var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase', 784); +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(785, 1, $intern_19, GrowTreePhase$lambda$0$Type); +_.accept = function accept_134(arg0){ + $lambda$0_11(this.$$outer_0, this.img_1, this.t_2, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_GrowTreePhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'GrowTreePhase/lambda$0$Type', 785); +function $debugOut_0(this$static, tree){ + var svg; + svg = new SVGImage; + castTo(tree.node, 65); + castTo(tree.node, 65); + castTo(tree.node, 65); + $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, 65); + castTo(t_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + cv = $sub_0($clone_0(castTo(t_2.node, 65).vertex), castTo(c_2.node, 65).vertex); + $scaleToLength(cv, $distance(castTo(t_2.node, 65), castTo(c_2.node, 65), cv)); + castTo(c_2.node, 65); + castTo(c_2.node, 65); + castTo(c_2.node, 65).vertex.x_0 + cv.x_0; + castTo(c_2.node, 65).vertex.y_0 + cv.y_0; + castTo(c_2.node, 65); + $forEach_1(c_2.children, new ShrinkTreeCompactionPhase$lambda$0$Type(this$static, svg_1, c_2)); +} + +function $process_96(this$static, graph, progressMonitor){ + var lastArg; + $begin(progressMonitor, '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); + } + $done_0(progressMonitor); +} + +function ShrinkTreeCompactionPhase(){ +} + +defineClass(1447, 1, $intern_113, ShrinkTreeCompactionPhase); +_.getLayoutProcessorConfiguration = function getLayoutProcessorConfiguration_29(graph){ + return castTo(graph, 300) , new LayoutProcessorConfiguration; +} +; +_.process = function process_95(graph, progressMonitor){ + $process_96(this, castTo(graph, 300), progressMonitor); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase', 1447); +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(783, 1, $intern_19, ShrinkTreeCompactionPhase$lambda$0$Type); +_.accept = function accept_135(arg0){ + $lambda$0_12(this.$$outer_0, this.svg_1, this.t_2, castTo(arg0, 221)); +} +; +var Lorg_eclipse_elk_alg_spore_p3execution_ShrinkTreeCompactionPhase$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.alg.spore.p3execution', 'ShrinkTreeCompactionPhase/lambda$0$Type', 783); +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$2$Type; + OPTION_TARGET_FILTER = new LayoutConfigurator$lambda$0$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(), 42); + 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(), 146), value_0); + } + } +} + +function $configure(this$static, elementClass){ + var result; + result = castTo($get_10(this$static.classOptionMap, elementClass), 134); + 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), 94)); + instanceOf(element, 470) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkShape_2_classLit), 94)); + if (instanceOf(element, 353)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkLabel_2_classLit), 94)); + return combined; + } + instanceOf(element, 82) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkConnectableShape_2_classLit), 94)); + if (instanceOf(element, 239)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkNode_2_classLit), 94)); + return combined; + } + if (instanceOf(element, 186)) { + $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkPort_2_classLit), 94)); + return combined; + } + instanceOf(element, 351) && $copyProperties(combined, castTo($get_10(this$static.classOptionMap, Lorg_eclipse_elk_graph_ElkEdge_2_classLit), 94)); + return combined; +} + +function LayoutConfigurator(){ + $clinit_LayoutConfigurator(); + this.elementOptionMap = new HashMap; + this.classOptionMap = new HashMap; + this.optionFilters = new ArrayList; +} + +function lambda$0_36(e_0, property_1){ + $clinit_LayoutConfigurator(); + var optionData, targets; + optionData = $getOptionData(getInstance(), property_1.getId()); + if (optionData) { + targets = optionData.targets; + if (instanceOf(e_0, 239)) { + return $isHierarchical_0(castTo(e_0, 33))?$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)) || $containsEnum(targets, PARENTS):$containsEnum(targets, ($clinit_LayoutOptionData$Target() , NODES)); + } + else if (instanceOf(e_0, 351)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , EDGES)); + } + else if (instanceOf(e_0, 186)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , PORTS)); + } + else if (instanceOf(e_0, 353)) { + return $containsEnum(targets, ($clinit_LayoutOptionData$Target() , LABELS)); + } + } + return true; +} + +function lambda$3_5(element_0, entry_1, filter_2){ + $clinit_LayoutConfigurator(); + return filter_2.accept_3(element_0, castTo(entry_1.getKey(), 146)); +} + +defineClass(859, 1, {527:1}, LayoutConfigurator); +_.visit = function visit(element){ + var combined; + combined = $findClassOptions(this, element); + $copyProperties(combined, castTo($get_10(this.elementOptionMap, element), 94)); + $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', 859); +var Lorg_eclipse_elk_core_LayoutConfigurator$IPropertyHolderOptionFilter_2_classLit = createForInterface('org.eclipse.elk.core', 'LayoutConfigurator/IPropertyHolderOptionFilter'); +function $accept_5(e, p){ + return lambda$0_36(e, p); +} + +function LayoutConfigurator$lambda$0$Type(){ +} + +defineClass(932, 1, {1932:1}, LayoutConfigurator$lambda$0$Type); +_.accept_3 = function accept_136(e, p){ + return $accept_5(e, p); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$0$Type', 932); +function LayoutConfigurator$lambda$1$Type(){ +} + +defineClass(930, 1, {830:1}, LayoutConfigurator$lambda$1$Type); +_.accept_4 = function accept_137(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', 930); +function LayoutConfigurator$lambda$2$Type(){ +} + +defineClass(931, 1, {1932:1}, LayoutConfigurator$lambda$2$Type); +_.accept_3 = function accept_138(e, p){ + return $clinit_LayoutConfigurator() , !e.hasProperty(p); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$2$Type', 931); +function LayoutConfigurator$lambda$3$Type(element_0, entry_1){ + this.element_0 = element_0; + this.entry_1 = entry_1; +} + +defineClass(933, 1, $intern_39, LayoutConfigurator$lambda$3$Type); +_.test_0 = function test_106(arg0){ + return lambda$3_5(this.element_0, this.entry_1, castTo(arg0, 1932)); +} +; +var Lorg_eclipse_elk_core_LayoutConfigurator$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core', 'LayoutConfigurator/lambda$3$Type', 933); +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), 33); + (!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), 33); + if (maskUndefined($getProperty_0(childNode, ($clinit_CoreOptions() , HIERARCHY_HANDLING_0))) !== maskUndefined(($clinit_HierarchyHandling() , SEPARATE_CHILDREN))) { + parentData = castTo($getProperty_0(parentNode, RESOLVED_ALGORITHM), 149); + childData = castTo($getProperty_0(childNode, RESOLVED_ALGORITHM), 149); + (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), 334); + $setProperty_1(layoutNode, HIERARCHY_HANDLING_0, parentHandling); + } + } +} + +function $executeAlgorithm(layoutNode, algorithmData, progressMonitor){ + var exception, layoutProvider; + layoutProvider = castTo($fetch(algorithmData.providerPool), 209); + try { + layoutProvider.layout(layoutNode, progressMonitor); + $release(algorithmData.providerPool, layoutProvider); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + 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), 79); + $isSelfloop(edge) && $booleanValue(castToBoolean($getProperty_0(edge, INSIDE_SELF_LOOPS_YO_0))) && (insideSelfLoops.array[insideSelfLoops.array.length] = 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, 527, 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, 527, 0, [new LayoutAlgorithmResolver])); + $layoutRecursively(this$static, layoutGraph, null, progressMonitor); + $done_0(progressMonitor); +} + +function $layoutRecursively(this$static, layoutNode, testController, progressMonitor){ + var algorithmData, child, child$iterator, childLayoutSelfLoops, childrenInsideSelfLoops, hasChildren, hasInsideSelfLoops, insideSelfLoops, node, nodeCount, nodeQueue, selfLoop, selfLoop$iterator, stopHierarchy, supportsInsideSelfLoops; + 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), 149); + 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))) { + 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)), 33); + $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; + 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), 33); + childLayoutSelfLoops = $layoutRecursively(this$static, child, testController, progressMonitor); + $addAll_2(childrenInsideSelfLoops, childLayoutSelfLoops); + applyConfiguredNodeScaling(child); + } + } + for (selfLoop$iterator = new ArrayList$1(childrenInsideSelfLoops); selfLoop$iterator.i < selfLoop$iterator.this$01.array.length;) { + selfLoop = castTo($next_7(selfLoop$iterator), 79); + $setProperty_1(selfLoop, NO_LAYOUT_0, ($clinit_Boolean() , true)); + } + $executeAlgorithm(layoutNode, algorithmData, $subTask(progressMonitor, 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_7(selfLoop$iterator), 79); + 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), 82)); + 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), 202); + $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), 469); + $set_10(bend, bend.x_0 + xOffset, bend.y_0 + yOffset); + } + $offset_1(castTo($getProperty_0(selfLoop, ($clinit_CoreOptions() , JUNCTION_POINTS_0)), 74), xOffset, yOffset); + } +} + +function RecursiveGraphLayoutEngine(){ +} + +defineClass(857, 1, {}, RecursiveGraphLayoutEngine); +var Lorg_eclipse_elk_core_RecursiveGraphLayoutEngine_2_classLit = createForClass('org.eclipse.elk.core', 'RecursiveGraphLayoutEngine', 857); +function UnsupportedConfigurationException(){ + RuntimeException.call(this); +} + +function UnsupportedConfigurationException_0(message){ + RuntimeException_0.call(this, message); +} + +defineClass(296, 60, $intern_43, UnsupportedConfigurationException, UnsupportedConfigurationException_0); +var Lorg_eclipse_elk_core_UnsupportedConfigurationException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedConfigurationException', 296); +function UnsupportedGraphException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(454, 60, $intern_43, UnsupportedGraphException); +var Lorg_eclipse_elk_core_UnsupportedGraphException_2_classLit = createForClass('org.eclipse.elk.core', 'UnsupportedGraphException', 454); +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(754, 1, {}); +var Lorg_eclipse_elk_core_util_AbstractRandomListAccessor_2_classLit = createForClass('org.eclipse.elk.core.util', 'AbstractRandomListAccessor', 754); +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), 246); + phaseFactory?$add_3(phaseImplementations, castTo($retrieveProcessor(this$static, phaseFactory), 126)):(phaseImplementations.array[phaseImplementations.array.length] = null , true); + } + processorConfiguration = new LayoutProcessorConfiguration; + $forEach_3($filter($map_0($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), 126); + !!phaseImplementation && (algorithm.array[algorithm.array.length] = 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + $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), 51); + } + 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_18(graph_0, phase_1){ + return phase_1.getLayoutProcessorConfiguration(graph_0); +} + +defineClass(500, 754, {}, 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', 500); +function AlgorithmAssembler$lambda$0$Type(){ +} + +defineClass(1235, 1, $intern_39, AlgorithmAssembler$lambda$0$Type); +_.test_0 = function test_107(arg0){ + return !!castTo(arg0, 126); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$0$Type', 1235); +function AlgorithmAssembler$lambda$1$Type(graph_0){ + this.graph_0 = graph_0; +} + +defineClass(1236, 1, {}, AlgorithmAssembler$lambda$1$Type); +_.apply_0 = function apply_166(arg0){ + return lambda$1_18(this.graph_0, castTo(arg0, 126)); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$1$Type', 1236); +function AlgorithmAssembler$lambda$2$Type(){ +} + +defineClass(1237, 1, $intern_39, AlgorithmAssembler$lambda$2$Type); +_.test_0 = function test_108(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', 1237); +function AlgorithmAssembler$lambda$3$Type(processorConfiguration_0){ + this.processorConfiguration_0 = processorConfiguration_0; +} + +defineClass(1238, 1, $intern_19, AlgorithmAssembler$lambda$3$Type); +_.accept = function accept_139(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', 1238); +function AlgorithmAssembler$lambda$4$Type($$outer_0, processors_1){ + this.$$outer_0 = $$outer_0; + this.processors_1 = processors_1; +} + +defineClass(1239, 1, $intern_19, AlgorithmAssembler$lambda$4$Type); +_.accept = function accept_140(arg0){ + $lambda$4_3(this.$$outer_0, this.processors_1, castTo(arg0, 234)); +} +; +var Lorg_eclipse_elk_core_alg_AlgorithmAssembler$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.alg', 'AlgorithmAssembler/lambda$4$Type', 1239); +function $compare_23(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(1354, 1, $intern_88, EnumBasedFactoryComparator); +_.compare_1 = function compare_81(factory1, factory2){ + return $compare_23(castTo(factory1, 234), castTo(factory2, 234)); +} +; +_.equals_0 = function equals_168(other){ + return this === other; +} +; +_.reversed = function reversed_73(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_core_alg_EnumBasedFactoryComparator_2_classLit = createForClass('org.eclipse.elk.core.alg', 'EnumBasedFactoryComparator', 1354); +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), 14)); + } + 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){ + this$static.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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); + this.list.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + this.currentIndex = -1; +} + +function createFrom_0(source){ + return $addAll_6(new LayoutProcessorConfiguration, source); +} + +defineClass(80, 754, {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_37(e_0){ + $clinit_DeprecatedLayoutOptionReplacer(); + castTo(e_0.getProperty(($clinit_CoreOptions() , PORT_LABELS_PLACEMENT_5)), 174).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_19(e_0){ + $clinit_DeprecatedLayoutOptionReplacer(); + if (castTo(e_0.getProperty(($clinit_CoreOptions() , NODE_SIZE_OPTIONS_6)), 174).contains(($clinit_SizeOptions() , SPACE_EFFICIENT_PORT_LABELS))) { + castTo(e_0.getProperty(PORT_LABELS_PLACEMENT_5), 174).add_2(($clinit_PortLabelPlacement() , SPACE_EFFICIENT_0)); + castTo(e_0.getProperty(NODE_SIZE_OPTIONS_6), 174).remove_1(SPACE_EFFICIENT_PORT_LABELS); + } +} + +function lambda$2_8(element_0, option_1, replacer_2){ + $clinit_DeprecatedLayoutOptionReplacer(); + element_0.hasProperty(option_1) && replacer_2.accept(element_0); +} + +defineClass(1012, 1, {527: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', 1012); +function DeprecatedLayoutOptionReplacer$lambda$0$Type(){ +} + +defineClass(1013, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$0$Type); +_.accept = function accept_141(arg0){ + lambda$0_37(castTo(arg0, 160)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$0$Type', 1013); +function DeprecatedLayoutOptionReplacer$lambda$1$Type(){ +} + +defineClass(1014, 1, $intern_19, DeprecatedLayoutOptionReplacer$lambda$1$Type); +_.accept = function accept_142(arg0){ + lambda$1_19(castTo(arg0, 160)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$1$Type', 1014); +function DeprecatedLayoutOptionReplacer$lambda$2$Type(element_0){ + this.element_0 = element_0; +} + +defineClass(1015, 1, {}, DeprecatedLayoutOptionReplacer$lambda$2$Type); +_.accept_1 = function accept_143(arg0, arg1){ + lambda$2_8(this.element_0, castTo(arg0, 146), castTo(arg1, 38)); +} +; +var Lorg_eclipse_elk_core_data_DeprecatedLayoutOptionReplacer$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'DeprecatedLayoutOptionReplacer/lambda$2$Type', 1015); +function $addKnownOption(this$static, property, defaultValue){ + $putStringValue(this$static.knownOptions, property.id_0, defaultValue); +} + +function $equals_8(this$static, obj){ + if (instanceOf(obj, 149)) { + return $equals_5(this$static.id_0, castTo(obj, 149).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(149, 1, {686:1, 149:1}, LayoutAlgorithmData); +_.equals_0 = function equals_169(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_64(){ + return getHashCode_1(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', 149); +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(263, 1, {}, LayoutAlgorithmData$Builder); +var Lorg_eclipse_elk_core_data_LayoutAlgorithmData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmData/Builder', 263); +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(1016, 1, {527:1}, LayoutAlgorithmResolver); +_.visit = function visit_1(element){ + instanceOf(element, 239) && !$booleanValue(castToBoolean(element.getProperty(($clinit_CoreOptions() , NO_LAYOUT_0)))) && $resolveAlgorithm(castTo(element, 33)); +} +; +var Lorg_eclipse_elk_core_data_LayoutAlgorithmResolver_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutAlgorithmResolver', 1016); +function LayoutCategoryData(builder){ + this.layouters = new LinkedList; + this.id_0 = builder.id_0; + this.name_0 = builder.name_0; + this.description = builder.description; +} + +defineClass(229, 1, {686:1, 229:1}, LayoutCategoryData); +_.equals_0 = function equals_170(obj){ + if (instanceOf(obj, 229)) { + return $equals_5(this.id_0, castTo(obj, 229).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_65(){ + return getHashCode_1(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', 229); +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(343, 1, {}, LayoutCategoryData$Builder); +var Lorg_eclipse_elk_core_data_LayoutCategoryData$Builder_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutCategoryData/Builder', 343); +function $getAlgorithmData(this$static, id_0){ + return castTo($get_16(this$static.layoutAlgorithmMap, id_0), 149); +} + +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), 149); + 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(), 42) , castTo(entry.getValue(), 149)); + 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), 229); +} + +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(), 42) , 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(), 42) , 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, 130, 0, [new CoreOptions])); + } + return instance_2; +} + +defineClass(866, 1, {}, LayoutMetaDataService); +var instance_2; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService', 866); +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(), 42) , castTo(entry.getValue(), 149)); + 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_10(dep$iterator), 478); + 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_10(sup$iterator), 478); + 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, ''), 229); + 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(867, 1, {}, LayoutMetaDataService$Registry); +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry', 867); +function LayoutMetaDataService$Registry$Triple(){ +} + +defineClass(478, 1, {478:1}, LayoutMetaDataService$Registry$Triple); +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$Registry$Triple_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/Registry/Triple', 478); +function LayoutMetaDataService$lambda$0$Type(){ +} + +defineClass(868, 1, $intern_129, 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', 868); +function LayoutMetaDataService$lambda$1$Type(){ +} + +defineClass(869, 1, $intern_130, LayoutMetaDataService$lambda$1$Type); +_.clone = function clone_1(arg0){ + return $clone_0(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', 869); +function LayoutMetaDataService$lambda$10$Type(){ +} + +defineClass(878, 1, $intern_129, 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', 878); +function LayoutMetaDataService$lambda$11$Type(){ +} + +defineClass(879, 1, $intern_130, LayoutMetaDataService$lambda$11$Type); +_.clone = function clone_2(arg0){ + return new ArrayList_1(castTo(arg0, 12)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$11$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$11$Type', 879); +function LayoutMetaDataService$lambda$12$Type(){ +} + +defineClass(880, 1, $intern_129, 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', 880); +function LayoutMetaDataService$lambda$13$Type(){ +} + +defineClass(881, 1, $intern_130, LayoutMetaDataService$lambda$13$Type); +_.clone = function clone_3(arg0){ + return newLinkedList(castTo(arg0, 68)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$13$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$13$Type', 881); +function LayoutMetaDataService$lambda$14$Type(){ +} + +defineClass(882, 1, $intern_129, 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', 882); +function LayoutMetaDataService$lambda$15$Type(){ +} + +defineClass(883, 1, $intern_130, LayoutMetaDataService$lambda$15$Type); +_.clone = function clone_4(arg0){ + return newHashSet(castTo(arg0, 53)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$15$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$15$Type', 883); +function LayoutMetaDataService$lambda$16$Type(){ +} + +defineClass(884, 1, $intern_129, 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', 884); +function LayoutMetaDataService$lambda$17$Type(){ +} + +defineClass(885, 1, $intern_130, LayoutMetaDataService$lambda$17$Type); +_.clone = function clone_5(arg0){ + return newLinkedHashSet(castTo(arg0, 53)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$17$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$17$Type', 885); +function LayoutMetaDataService$lambda$18$Type(){ +} + +defineClass(886, 1, $intern_129, 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', 886); +function LayoutMetaDataService$lambda$19$Type(){ +} + +defineClass(887, 1, $intern_130, LayoutMetaDataService$lambda$19$Type); +_.clone = function clone_6(arg0){ + return newTreeSet(castTo(arg0, 208)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$19$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$19$Type', 887); +function LayoutMetaDataService$lambda$2$Type(){ +} + +defineClass(870, 1, $intern_129, 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', 870); +function LayoutMetaDataService$lambda$3$Type(){ +} + +defineClass(871, 1, $intern_130, LayoutMetaDataService$lambda$3$Type); +_.clone = function clone_7(arg0){ + return new KVectorChain_0(castTo(arg0, 74)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$3$Type', 871); +function LayoutMetaDataService$lambda$4$Type(){ +} + +defineClass(872, 1, $intern_129, 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', 872); +function LayoutMetaDataService$lambda$5$Type(){ +} + +defineClass(873, 1, $intern_130, LayoutMetaDataService$lambda$5$Type); +_.clone = function clone_8(arg0){ + return new ElkMargin_2(castTo(arg0, 142)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$5$Type', 873); +function LayoutMetaDataService$lambda$6$Type(){ +} + +defineClass(874, 1, $intern_129, 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', 874); +function LayoutMetaDataService$lambda$7$Type(){ +} + +defineClass(875, 1, $intern_130, LayoutMetaDataService$lambda$7$Type); +_.clone = function clone_9(arg0){ + return new ElkPadding_1(castTo(arg0, 116)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$7$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$7$Type', 875); +function LayoutMetaDataService$lambda$8$Type(){ +} + +defineClass(876, 1, $intern_129, 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', 876); +function LayoutMetaDataService$lambda$9$Type(){ +} + +defineClass(877, 1, $intern_130, LayoutMetaDataService$lambda$9$Type); +_.clone = function clone_10(arg0){ + return new IndividualSpacings_0(castTo(arg0, 372)); +} +; +var Lorg_eclipse_elk_core_data_LayoutMetaDataService$lambda$9$Type_2_classLit = createForClass('org.eclipse.elk.core.data', 'LayoutMetaDataService/lambda$9$Type', 877); +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, 415); +} + +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, 32)) { + try { + index_0 = __parseAndValidateInt(leString, $intern_42, $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, 127)) + 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_4(__parseAndValidateInt(valueString, $intern_42, $intern_0)); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + return null; + } + else + throw toJs($e0); + } + + case 4: + try { + return __parseAndValidateDouble(valueString); + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 127)) { + 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, 32)) { + 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, {35:1, 686:1, 23:1, 146:1}, LayoutOptionData); +_.compareTo_0 = function compareTo_20(other){ + return $compareTo_19(this, castTo(other, 146)); +} +; +_.equals_0 = function equals_171(obj){ + return instanceOf(obj, 23)?$equals_5(this.id_0, castTo(obj, 23).id_0):instanceOf(obj, 146) && $equals_5(this.id_0, castTo(obj, 146).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_66(){ + return getHashCode_1(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_92(name_0){ + $clinit_LayoutOptionData$Target(); + return valueOf(($clinit_LayoutOptionData$Target$Map() , $MAP_80), name_0); +} + +function values_98(){ + $clinit_LayoutOptionData$Target(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]); +} + +defineClass(175, 22, {3:1, 35:1, 22:1, 175: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', 175, Ljava_lang_Enum_2_classLit, values_98, valueOf_92); +function $clinit_LayoutOptionData$Target$Map(){ + $clinit_LayoutOptionData$Target$Map = emptyMethod; + $MAP_80 = createValueOfMap(($clinit_LayoutOptionData$Target() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Target_2_classLit, 1), $intern_36, 175, 0, [PARENTS, NODES, EDGES, PORTS, LABELS]))); +} + +var $MAP_80; +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_93(name_0){ + $clinit_LayoutOptionData$Type(); + return valueOf(($clinit_LayoutOptionData$Type$Map() , $MAP_81), name_0); +} + +function values_99(){ + $clinit_LayoutOptionData$Type(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_36, 276, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]); +} + +defineClass(276, 22, {3:1, 35:1, 22:1, 276: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', 276, Ljava_lang_Enum_2_classLit, values_99, valueOf_93); +function $clinit_LayoutOptionData$Type$Map(){ + $clinit_LayoutOptionData$Type$Map = emptyMethod; + $MAP_81 = createValueOfMap(($clinit_LayoutOptionData$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_LayoutOptionData$Type_2_classLit, 1), $intern_36, 276, 0, [UNDEFINED_1, BOOLEAN, INT, STRING, DOUBLE, ENUM, ENUMSET, OBJECT]))); +} + +var $MAP_81; +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_62, 25, 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_10(pathIt), 8); + p1 = first; + while (pathIt.currentNode != pathIt.this$01.tail) { + p2 = castTo($next_10(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(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_123 * 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_10(pathIt), 8); + p1 = first; + while (pathIt.currentNode != pathIt.this$01.tail) { + p2 = castTo($next_10(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 = -1.7976931348623157E308; + 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_59; + 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_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131 || $wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131); + 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_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131) || 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_131 && $wnd.Math.abs(intersection.y_0 - a1.y_0) <= $intern_131) == ($wnd.Math.abs(intersection.x_0 - a2.x_0) <= $intern_131 && $wnd.Math.abs(intersection.y_0 - a2.y_0) <= $intern_131) || 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(110, 1, {110:1}, ElkRectangle, ElkRectangle_0, ElkRectangle_1); +_.equals_0 = function equals_172(obj){ + var other; + if (obj == null || !instanceOf(obj, 110)) { + return false; + } + other = castTo(obj, 110); + 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_67(){ + return hashCode_46(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', 110); +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_0(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 $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(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_8(this$static, newX, newY){ + this$static.x_0 = newX; + this$static.y_0 = newY; + return this$static; +} + +function $set_9(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, 415:1}, KVector, KVector_0, KVector_1, KVector_2); +_.equals_0 = function equals_173(obj){ + return $equals_9(this, obj); +} +; +_.hashCode_1 = function hashCode_68(){ + return $hashCode_0(this.x_0) + reverse_1($hashCode_0(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(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, 127)) { + 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_10(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_10(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_10(vector$iterator), 8); + $add_19(vector, offset); + } + return this$static; +} + +function $toArray_8(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_10(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_10(vector$iterator), 8); + $add_0(result, 0, new KVector_2(vector)); + } + return result; +} + +defineClass(74, 68, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 68:1, 15:1, 74:1, 415:1}, KVectorChain, KVectorChain_0, KVectorChain_1); +_.toArray = function toArray_25(){ + return $toArray_8(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, 127)) { + 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_10(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', 74); +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_94(name_0){ + $clinit_Alignment(); + return valueOf(($clinit_Alignment$Map() , $MAP_82), name_0); +} + +function values_100(){ + $clinit_Alignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_36, 248, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]); +} + +defineClass(248, 22, {3:1, 35:1, 22:1, 248: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', 248, Ljava_lang_Enum_2_classLit, values_100, valueOf_94); +function $clinit_Alignment$Map(){ + $clinit_Alignment$Map = emptyMethod; + $MAP_82 = createValueOfMap(($clinit_Alignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Alignment_2_classLit, 1), $intern_36, 248, 0, [AUTOMATIC, LEFT_5, RIGHT_5, TOP_2, BOTTOM_1, CENTER_4]))); +} + +var $MAP_82; +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_4(0)); + EXPAND_NODES_0 = EXPAND_NODES_1; + 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_132); + INTERACTIVE_6 = INTERACTIVE_7; + 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_4(0)); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.expandNodes', $getDefault(EXPAND_NODES_0)); + $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_132); + $addOptionSupport(registry, 'org.eclipse.elk.box', 'org.eclipse.elk.interactive', $getDefault(INTERACTIVE_6)); + $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(978, 1, $intern_90, BoxLayouterOptions); +_.apply_4 = function apply_167(registry){ + $apply_24(registry); +} +; +var ASPECT_RATIO_4, BOX_PACKING_MODE, CONTENT_ALIGNMENT_1, EXPAND_NODES_0, INTERACTIVE_6, 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', 978); +function BoxLayouterOptions$BoxFactory(){ +} + +defineClass(979, 1, {}, BoxLayouterOptions$BoxFactory); +_.create_0 = function create_37(){ + 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', 979); +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_95(name_0){ + $clinit_ContentAlignment(); + return valueOf(($clinit_ContentAlignment$Map() , $MAP_83), name_0); +} + +function values_101(){ + $clinit_ContentAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 290, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]); +} + +defineClass(290, 22, {3:1, 35:1, 22:1, 290: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', 290, Ljava_lang_Enum_2_classLit, values_101, valueOf_95); +function $clinit_ContentAlignment$Map(){ + $clinit_ContentAlignment$Map = emptyMethod; + $MAP_83 = createValueOfMap(($clinit_ContentAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_ContentAlignment_2_classLit, 1), $intern_36, 290, 0, [V_TOP, V_CENTER, V_BOTTOM, H_LEFT, H_CENTER, H_RIGHT]))); +} + +var $MAP_83; +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_36, 290, 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_0 = ($clinit_Direction_0() , UNDEFINED_2); + DIRECTION_0 = new Property_1('org.eclipse.elk.direction', DIRECTION_DEFAULT_0); + EDGE_ROUTING_DEFAULT_0 = ($clinit_EdgeRouting() , UNDEFINED_3); + EDGE_ROUTING_0 = new Property_1('org.eclipse.elk.edgeRouting', EDGE_ROUTING_DEFAULT_0); + EXPAND_NODES_1 = 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_7 = new Property_1('org.eclipse.elk.interactive', false); + INTERACTIVE_LAYOUT_1 = 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); + new Property_1('org.eclipse.elk.animate', true); + valueOf_4(0); + new Property_1('org.eclipse.elk.animTimeFactor', valueOf_4(100)); + new Property_1('org.eclipse.elk.layoutAncestors', false); + valueOf_4(0); + new Property_1('org.eclipse.elk.maxAnimTime', valueOf_4(4000)); + valueOf_4(0); + new Property_1('org.eclipse.elk.minAnimTime', valueOf_4(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_0); + 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_0 = 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_0 = 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_4(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); + 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_14); + new Property_1('org.eclipse.elk.edge.type', EDGE_TYPE_DEFAULT); + PARTITIONING_PARTITION_DEP_PARTITIONING_ACTIVATE_0 = true; +} + +function CoreOptions(){ + $clinit_CoreOptions(); +} + +defineClass(684, 1, $intern_90, CoreOptions); +_.apply_4 = function apply_168(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_0), 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_36, 175, 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_36, 175, 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_36, 175, 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_36, 175, 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_36, 175, 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_36, 175, 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($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_4(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_4(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_4(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_36, 175, 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_36, 175, 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_36, 175, 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_36, 175, 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.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, COMMENT_BOX_0, CONTENT_ALIGNMENT_2, CONTENT_ALIGNMENT_DEFAULT, DEBUG_MODE_3, DIRECTION_0, DIRECTION_DEFAULT_0, 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_1, HIERARCHY_HANDLING_0, HIERARCHY_HANDLING_DEFAULT, HYPERNODE_0, INSIDE_SELF_LOOPS_ACTIVATE_0, INSIDE_SELF_LOOPS_YO_0, INTERACTIVE_7, INTERACTIVE_LAYOUT_1, 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_0, 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_0, 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; +var Lorg_eclipse_elk_core_options_CoreOptions_2_classLit = createForClass('org.eclipse.elk.core.options', 'CoreOptions', 684); +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_96(name_0){ + $clinit_Direction_0(); + return valueOf(($clinit_Direction$Map_0() , $MAP_84), name_0); +} + +function values_102(){ + $clinit_Direction_0(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]); +} + +defineClass(103, 22, {3:1, 35:1, 22:1, 103: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', 103, Ljava_lang_Enum_2_classLit, values_102, valueOf_96); +function $clinit_Direction$Map_0(){ + $clinit_Direction$Map_0 = emptyMethod; + $MAP_84 = createValueOfMap(($clinit_Direction_0() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_Direction_2_classLit, 1), $intern_36, 103, 0, [UNDEFINED_2, RIGHT_6, LEFT_6, DOWN_1, UP_1]))); +} + +var $MAP_84; +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_97(name_0){ + $clinit_EdgeLabelPlacement(); + return valueOf(($clinit_EdgeLabelPlacement$Map() , $MAP_85), name_0); +} + +function values_103(){ + $clinit_EdgeLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_36, 272, 0, [CENTER_5, HEAD, TAIL]); +} + +defineClass(272, 22, {3:1, 35:1, 22:1, 272:1}, EdgeLabelPlacement); +var CENTER_5, HEAD, TAIL; +var Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeLabelPlacement', 272, Ljava_lang_Enum_2_classLit, values_103, valueOf_97); +function $clinit_EdgeLabelPlacement$Map(){ + $clinit_EdgeLabelPlacement$Map = emptyMethod; + $MAP_85 = createValueOfMap(($clinit_EdgeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeLabelPlacement_2_classLit, 1), $intern_36, 272, 0, [CENTER_5, HEAD, TAIL]))); +} + +var $MAP_85; +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_98(name_0){ + $clinit_EdgeRouting(); + return valueOf(($clinit_EdgeRouting$Map() , $MAP_86), name_0); +} + +function values_104(){ + $clinit_EdgeRouting(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_36, 218, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]); +} + +defineClass(218, 22, {3:1, 35:1, 22:1, 218:1}, EdgeRouting); +var ORTHOGONAL, POLYLINE, SPLINES, UNDEFINED_3; +var Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeRouting', 218, Ljava_lang_Enum_2_classLit, values_104, valueOf_98); +function $clinit_EdgeRouting$Map(){ + $clinit_EdgeRouting$Map = emptyMethod; + $MAP_86 = createValueOfMap(($clinit_EdgeRouting() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeRouting_2_classLit, 1), $intern_36, 218, 0, [UNDEFINED_3, POLYLINE, ORTHOGONAL, SPLINES]))); +} + +var $MAP_86; +function $clinit_EdgeType(){ + $clinit_EdgeType = emptyMethod; + NONE_14 = 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_99(name_0){ + $clinit_EdgeType(); + return valueOf(($clinit_EdgeType$Map() , $MAP_87), name_0); +} + +function values_105(){ + $clinit_EdgeType(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_36, 312, 0, [NONE_14, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]); +} + +defineClass(312, 22, {3:1, 35:1, 22:1, 312:1}, EdgeType); +var ASSOCIATION, DEPENDENCY, DIRECTED, GENERALIZATION, NONE_14, UNDIRECTED; +var Lorg_eclipse_elk_core_options_EdgeType_2_classLit = createForEnum('org.eclipse.elk.core.options', 'EdgeType', 312, Ljava_lang_Enum_2_classLit, values_105, valueOf_99); +function $clinit_EdgeType$Map(){ + $clinit_EdgeType$Map = emptyMethod; + $MAP_87 = createValueOfMap(($clinit_EdgeType() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_EdgeType_2_classLit, 1), $intern_36, 312, 0, [NONE_14, DIRECTED, UNDIRECTED, ASSOCIATION, GENERALIZATION, DEPENDENCY]))); +} + +var $MAP_87; +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_1 = NODE_SIZE_FIXED_GRAPH_SIZE_0; +} + +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_1)); +} + +function FixedLayouterOptions(){ + $clinit_FixedLayouterOptions(); +} + +defineClass(976, 1, $intern_90, FixedLayouterOptions); +_.apply_4 = function apply_169(registry){ + $apply_25(registry); +} +; +var BEND_POINTS_0, NODE_SIZE_CONSTRAINTS_7, NODE_SIZE_FIXED_GRAPH_SIZE_1, 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', 976); +function FixedLayouterOptions$FixedFactory(){ +} + +defineClass(977, 1, {}, FixedLayouterOptions$FixedFactory); +_.create_0 = function create_38(){ + 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', 977); +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_100(name_0){ + $clinit_HierarchyHandling(); + return valueOf(($clinit_HierarchyHandling$Map() , $MAP_88), name_0); +} + +function values_106(){ + $clinit_HierarchyHandling(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_36, 334, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]); +} + +defineClass(334, 22, {3:1, 35:1, 22:1, 334:1}, HierarchyHandling); +var INCLUDE_CHILDREN, INHERIT, SEPARATE_CHILDREN; +var Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit = createForEnum('org.eclipse.elk.core.options', 'HierarchyHandling', 334, Ljava_lang_Enum_2_classLit, values_106, valueOf_100); +function $clinit_HierarchyHandling$Map(){ + $clinit_HierarchyHandling$Map = emptyMethod; + $MAP_88 = createValueOfMap(($clinit_HierarchyHandling() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_HierarchyHandling_2_classLit, 1), $intern_36, 334, 0, [INHERIT, INCLUDE_CHILDREN, SEPARATE_CHILDREN]))); +} + +var $MAP_88; +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_101(name_0){ + $clinit_LabelSide(); + return valueOf(($clinit_LabelSide$Map() , $MAP_89), name_0); +} + +function values_107(){ + $clinit_LabelSide(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_36, 284, 0, [UNKNOWN, ABOVE, BELOW, INLINE]); +} + +defineClass(284, 22, {3:1, 35:1, 22:1, 284:1}, LabelSide); +var ABOVE, BELOW, INLINE, UNKNOWN; +var Lorg_eclipse_elk_core_options_LabelSide_2_classLit = createForEnum('org.eclipse.elk.core.options', 'LabelSide', 284, Ljava_lang_Enum_2_classLit, values_107, valueOf_101); +function $clinit_LabelSide$Map(){ + $clinit_LabelSide$Map = emptyMethod; + $MAP_89 = createValueOfMap(($clinit_LabelSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_LabelSide_2_classLit, 1), $intern_36, 284, 0, [UNKNOWN, ABOVE, BELOW, INLINE]))); +} + +var $MAP_89; +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_36, 93, 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_36, 93, 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_36, 93, 0, [V_CENTER_0, V_BOTTOM_0])); + if ($size_1(intersection_0(validVertical, placement)) > 1) { + return false; + } + return true; +} + +function valueOf_102(name_0){ + $clinit_NodeLabelPlacement(); + return valueOf(($clinit_NodeLabelPlacement$Map() , $MAP_90), name_0); +} + +function values_108(){ + $clinit_NodeLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 0, [H_LEFT_0, H_CENTER_0, H_RIGHT_0, V_TOP_0, V_CENTER_0, V_BOTTOM_0, INSIDE, OUTSIDE, H_PRIORITY]); +} + +defineClass(93, 22, {3:1, 35:1, 22:1, 93: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', 93, Ljava_lang_Enum_2_classLit, values_108, valueOf_102); +function $clinit_NodeLabelPlacement$Map(){ + $clinit_NodeLabelPlacement$Map = emptyMethod; + $MAP_90 = createValueOfMap(($clinit_NodeLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_NodeLabelPlacement_2_classLit, 1), $intern_36, 93, 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_90; +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_103(name_0){ + $clinit_PortAlignment(); + return valueOf(($clinit_PortAlignment$Map() , $MAP_91), name_0); +} + +function values_109(){ + $clinit_PortAlignment(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_36, 249, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]); +} + +defineClass(249, 22, {3:1, 35:1, 22:1, 249: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', 249, Ljava_lang_Enum_2_classLit, values_109, valueOf_103); +function $clinit_PortAlignment$Map(){ + $clinit_PortAlignment$Map = emptyMethod; + $MAP_91 = createValueOfMap(($clinit_PortAlignment() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortAlignment_2_classLit, 1), $intern_36, 249, 0, [DISTRIBUTED, JUSTIFIED, BEGIN_0, CENTER_6, END_1]))); +} + +var $MAP_91; +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_104(name_0){ + $clinit_PortConstraints(); + return valueOf(($clinit_PortConstraints$Map() , $MAP_92), name_0); +} + +function values_110(){ + $clinit_PortConstraints(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_36, 98, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]); +} + +defineClass(98, 22, {3:1, 35:1, 22:1, 98: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', 98, Ljava_lang_Enum_2_classLit, values_110, valueOf_104); +function $clinit_PortConstraints$Map(){ + $clinit_PortConstraints$Map = emptyMethod; + $MAP_92 = createValueOfMap(($clinit_PortConstraints() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortConstraints_2_classLit, 1), $intern_36, 98, 0, [UNDEFINED_4, FREE, FIXED_SIDE, FIXED_ORDER, FIXED_RATIO, FIXED_POS]))); +} + +var $MAP_92; +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); + SPACE_EFFICIENT_0 = new PortLabelPlacement('SPACE_EFFICIENT', 4); +} + +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_36, 291, 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_36, 291, 0, [SPACE_EFFICIENT_0])); + if ($size_1(intersection_0(validPosition, placement)) > 1) { + return false; + } + return true; +} + +function valueOf_105(name_0){ + $clinit_PortLabelPlacement(); + return valueOf(($clinit_PortLabelPlacement$Map() , $MAP_93), name_0); +} + +function values_111(){ + $clinit_PortLabelPlacement(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 291, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, SPACE_EFFICIENT_0]); +} + +defineClass(291, 22, {3:1, 35:1, 22:1, 291:1}, PortLabelPlacement); +var 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', 291, Ljava_lang_Enum_2_classLit, values_111, valueOf_105); +function $clinit_PortLabelPlacement$Map(){ + $clinit_PortLabelPlacement$Map = emptyMethod; + $MAP_93 = createValueOfMap(($clinit_PortLabelPlacement() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortLabelPlacement_2_classLit, 1), $intern_36, 291, 0, [OUTSIDE_0, INSIDE_0, NEXT_TO_PORT_IF_POSSIBLE_0, ALWAYS_SAME_SIDE, SPACE_EFFICIENT_0]))); +} + +var $MAP_93; +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, 61, 0, []))); + SIDES_EAST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); + SIDES_SOUTH = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); + SIDES_WEST = asImmutable(of_2(WEST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, []))); + SIDES_NORTH_SOUTH = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [SOUTH_2]))); + SIDES_EAST_WEST = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); + SIDES_NORTH_WEST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); + SIDES_NORTH_EAST = asImmutable(of_2(NORTH_3, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [EAST_2]))); + SIDES_SOUTH_WEST = asImmutable(of_2(SOUTH_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [WEST_2]))); + SIDES_EAST_SOUTH = asImmutable(of_2(EAST_2, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 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, 61, 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, 61, 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, 61, 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, 61, 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, 61, 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_106(name_0){ + $clinit_PortSide(); + return valueOf(($clinit_PortSide$Map() , $MAP_94), name_0); +} + +function values_112(){ + $clinit_PortSide(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]); +} + +defineClass(61, 22, {3:1, 35:1, 22:1, 61: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', 61, Ljava_lang_Enum_2_classLit, values_112, valueOf_106); +function $clinit_PortSide$Map(){ + $clinit_PortSide$Map = emptyMethod; + $MAP_94 = createValueOfMap(($clinit_PortSide() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_PortSide_2_classLit, 1), $intern_103, 61, 0, [UNDEFINED_5, NORTH_3, EAST_2, SOUTH_2, WEST_2]))); +} + +var $MAP_94; +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_4(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_4(0)); + $addOptionSupport(registry, 'org.eclipse.elk.random', 'org.eclipse.elk.aspectRatio', $intern_102); +} + +function RandomLayouterOptions(){ + $clinit_RandomLayouterOptions(); +} + +defineClass(980, 1, $intern_90, RandomLayouterOptions); +_.apply_4 = function apply_170(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', 980); +function RandomLayouterOptions$RandomFactory(){ +} + +defineClass(981, 1, {}, RandomLayouterOptions$RandomFactory); +_.create_0 = function create_39(){ + 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', 981); +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_107(name_0){ + $clinit_SizeConstraint(); + return valueOf(($clinit_SizeConstraint$Map() , $MAP_95), name_0); +} + +function values_113(){ + $clinit_SizeConstraint(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_36, 373, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]); +} + +defineClass(373, 22, {3:1, 35:1, 22:1, 373: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', 373, Ljava_lang_Enum_2_classLit, values_113, valueOf_107); +function $clinit_SizeConstraint$Map(){ + $clinit_SizeConstraint$Map = emptyMethod; + $MAP_95 = createValueOfMap(($clinit_SizeConstraint() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeConstraint_2_classLit, 1), $intern_36, 373, 0, [PORTS_0, PORT_LABELS, NODE_LABELS, MINIMUM_SIZE]))); +} + +var $MAP_95; +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_108(name_0){ + $clinit_SizeOptions(); + return valueOf(($clinit_SizeOptions$Map() , $MAP_96), name_0); +} + +function values_114(){ + $clinit_SizeOptions(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_36, 259, 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(259, 22, {3:1, 35:1, 22:1, 259: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', 259, Ljava_lang_Enum_2_classLit, values_114, valueOf_108); +function $clinit_SizeOptions$Map(){ + $clinit_SizeOptions$Map = emptyMethod; + $MAP_96 = createValueOfMap(($clinit_SizeOptions() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_options_SizeOptions_2_classLit, 1), $intern_36, 259, 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_96; +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_45))); + 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_45)); + 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 $log_2(this$static, object){ + var logMessage; + if (this$static.recordLogs) { + logMessage = object; + $add_3(this$static.logMessages, logMessage); + } +} + +function $logGraph(this$static, object, graphType){ + var loggedGraph; + if (this$static.recordLogs && !!object && !!graphType) { + loggedGraph = new LoggedGraph; + $add_3(this$static.logGraphs, loggedGraph); + } +} + +function $subTask(this$static, work){ + var subMonitor; + if (this$static.closed_0) { + return null; + } + else { + subMonitor = $doSubTask(this$static, this$static.maxLevels); + $add_7(this$static.children, subMonitor); + subMonitor.parentMonitor = this$static; + this$static.currentChildWork = work; + return subMonitor; + } +} + +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(369, 1, {1948:1}, BasicProgressMonitor); +_.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', 369); +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_7(box$iterator), 33); + 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_7(box$iterator), 157); + variance += $wnd.Math.pow($getWidth(box) * $getHeight(box) - mean, 2); + } + stddev = $wnd.Math.sqrt(variance / (boxes.array.length - 1)); + return stddev; +} + +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)), 157); + if (!boxToBeat || $getWidth(boxToBeat) * $getHeight(boxToBeat) / 2 < $getWidth(box) * $getHeight(box)) { + boxToBeat = box; + toBePlaced.array[toBePlaced.array.length] = box; + } + else { + collectedArea += $getWidth(box) * $getHeight(box); + maybeGroup.array[maybeGroup.array.length] = 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; + toBePlaced.array[toBePlaced.array.length] = innerGroup; + collectedArea = 0; + maybeGroup.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + } + } + $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++), 157)); + 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 = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + commonArea = 0; + toBePlaced.array[toBePlaced.array.length] = merged; + toBePlaced.array[toBePlaced.array.length] = g; + commonArea = $getWidth(merged) * $getHeight(merged) + $getWidth(g) * $getHeight(g); + } + else { + toBePlaced.array[toBePlaced.array.length] = 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_65, 25, 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), 157); + 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)); + remain = new AbstractList$SubList(toBePlaced, anIndex + 1, toBePlaced.array.length); + $addAll_4(pq, remain); + toBePlaced.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + 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; + toBePlaced.array[toBePlaced.array.length] = 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_7(box$iterator), 33); + 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_4(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++), 33)); + width_0 = box.width_0; + height = box.height; + if (xpos + width_0 > maxRowWidth) { + if (expandNodes) { + $addLast_0(rowHeights, highestBox); + $addLast_0(rowIndices, valueOf_4(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_4(sortedBoxes.array.length)); + rowIndexIter = $listIterator_2(rowIndices, 0); + nextRowIndex = castTo($next_10(rowIndexIter), 19).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_10(rowHeightIter))); + nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; + } + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 33)); + 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), 33); + g = new BoxLayoutProvider$Group_0(node); + groups.array[groups.array.length] = g; + } + mode = castTo($getProperty_0(parentNode, BOX_PACKING_MODE), 311); + 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_7(box$iterator), 157); + !!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_4(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++), 157)); + width_0 = $getWidth(box); + height = $getHeight(box); + if (xpos + width_0 > maxRowWidth) { + if (expandNodes) { + $addLast_0(rowHeights, highestBox); + $addLast_0(rowIndices, valueOf_4(boxIter.i - 1)); + $add_3(group.right, last); + bottoms.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + xpos = padding.left; + ypos += highestBox + minSpacing; + highestBox = 0; + broadestRow = $wnd.Math.max(broadestRow, padding.left + padding.right + width_0); + } + bottoms.array[bottoms.array.length] = 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), 157)); + 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_4(group.groups.array.length)); + rowIndexIter = $listIterator_2(rowIndices, 0); + nextRowIndex = castTo($next_10(rowIndexIter), 19).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_10(rowHeightIter))); + nextRowIndex = castTo($next_10(rowIndexIter), 19).value_0; + } + box = (checkCriticalElement(boxIter.i < boxIter.this$01_0.size_1()) , castTo(boxIter.this$01_0.get_0(boxIter.last = boxIter.i++), 157)); + $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_38(g1_0, g2_1){ + return -compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +function lambda$1_20(g1_0, g2_1){ + return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +function lambda$2_9(g1_0, g2_1){ + return compare_4($getWidth(g1_0) * $getHeight(g1_0), $getWidth(g2_1) * $getHeight(g2_1)); +} + +defineClass(971, 209, $intern_96, BoxLayoutProvider); +_.layout = function layout_8(layoutNode, progressMonitor){ + var expandNodes, interactive, objSpacing, padding, sortedBoxes, sortedBoxes_0, minSize, aspectRatio, parentSize; + $begin(progressMonitor, 'Box layout', 2); + objSpacing = $floatValue(castToDouble($getProperty_0(layoutNode, ($clinit_BoxLayouterOptions() , SPACING_NODE_NODE_5)))); + padding = castTo($getProperty_0(layoutNode, PADDING_5), 116); + expandNodes = $booleanValue(castToBoolean($getProperty_0(layoutNode, EXPAND_NODES_0))); + interactive = $booleanValue(castToBoolean($getProperty_0(layoutNode, INTERACTIVE_6))); + switch (castTo($getProperty_0(layoutNode, BOX_PACKING_MODE), 311).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); + } + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'BoxLayoutProvider', 971); +function $compare_24(this$static, child1, child2){ + var c, prio1, prio2, size1, size2; + prio1 = castTo($getProperty_0(child1, ($clinit_BoxLayouterOptions() , PRIORITY_2)), 19); + !prio1 && (prio1 = valueOf_4(0)); + prio2 = castTo($getProperty_0(child2, PRIORITY_2), 19); + !prio2 && (prio2 = valueOf_4(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(972, 1, $intern_88, BoxLayoutProvider$1); +_.compare_1 = function compare_82(child1, child2){ + return $compare_24(this, castTo(child1, 33), castTo(child2, 33)); +} +; +_.equals_0 = function equals_174(other){ + return this === other; +} +; +_.reversed = function reversed_74(){ + 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', 972); +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_7(g$iterator), 157); + $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_7(g$iterator), 157); + $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_7(g$iterator), 157); + $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_7(g$iterator), 157); + $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(157, 1, {157: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', 157); +function $clinit_BoxLayoutProvider$PackingMode(){ + $clinit_BoxLayoutProvider$PackingMode = emptyMethod; + SIMPLE_0 = 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_109(name_0){ + $clinit_BoxLayoutProvider$PackingMode(); + return valueOf(($clinit_BoxLayoutProvider$PackingMode$Map() , $MAP_97), name_0); +} + +function values_115(){ + $clinit_BoxLayoutProvider$PackingMode(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_36, 311, 0, [SIMPLE_0, GROUP_DEC, GROUP_MIXED, GROUP_INC]); +} + +defineClass(311, 22, {3:1, 35:1, 22:1, 311:1}, BoxLayoutProvider$PackingMode); +var GROUP_DEC, GROUP_INC, GROUP_MIXED, SIMPLE_0; +var Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit = createForEnum('org.eclipse.elk.core.util', 'BoxLayoutProvider/PackingMode', 311, Ljava_lang_Enum_2_classLit, values_115, valueOf_109); +function $clinit_BoxLayoutProvider$PackingMode$Map(){ + $clinit_BoxLayoutProvider$PackingMode$Map = emptyMethod; + $MAP_97 = createValueOfMap(($clinit_BoxLayoutProvider$PackingMode() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_BoxLayoutProvider$PackingMode_2_classLit, 1), $intern_36, 311, 0, [SIMPLE_0, GROUP_DEC, GROUP_MIXED, GROUP_INC]))); +} + +var $MAP_97; +function BoxLayoutProvider$lambda$0$Type(){ +} + +defineClass(973, 1, $intern_88, BoxLayoutProvider$lambda$0$Type); +_.compare_1 = function compare_83(arg0, arg1){ + return lambda$0_38(castTo(arg0, 157), castTo(arg1, 157)); +} +; +_.equals_0 = function equals_175(other){ + return this === other; +} +; +_.reversed = function reversed_75(){ + 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', 973); +function BoxLayoutProvider$lambda$1$Type(){ +} + +defineClass(974, 1, $intern_88, BoxLayoutProvider$lambda$1$Type); +_.compare_1 = function compare_84(arg0, arg1){ + return lambda$1_20(castTo(arg0, 157), castTo(arg1, 157)); +} +; +_.equals_0 = function equals_176(other){ + return this === other; +} +; +_.reversed = function reversed_76(){ + 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', 974); +function BoxLayoutProvider$lambda$2$Type(){ +} + +defineClass(975, 1, $intern_88, BoxLayoutProvider$lambda$2$Type); +_.compare_1 = function compare_85(arg0, arg1){ + return lambda$2_9(castTo(arg0, 157), castTo(arg1, 157)); +} +; +_.equals_0 = function equals_177(other){ + return this === other; +} +; +_.reversed = function reversed_77(){ + 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', 975); +function ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type(){ +} + +defineClass(1364, 1, {830:1}, ElkSpacings$AbstractSpacingsBuilder$lambda$0$Type); +_.accept_4 = function accept_144(arg0, arg1){ + return $clinit_ElkSpacings$AbstractSpacingsBuilder() , !instanceOf(arg1, 160) || $accept_5(($clinit_LayoutConfigurator() , OPTION_TARGET_FILTER , castTo(arg0, 160)), 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', 1364); +function ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1365, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type); +_.accept = function accept_145(arg0){ + $lambda$1_1(this.$$outer_0, castTo(arg0, 146)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type', 1365); +function ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type(){ +} + +defineClass(1366, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$2$Type); +_.accept = function accept_146(arg0){ + castTo(arg0, 94); + $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', 1366); +function ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(1370, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type); +_.accept = function accept_147(arg0){ + $lambda$3_0(this.$$outer_0, castTo(arg0, 94)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type', 1370); +function ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(1368, 1, $intern_39, ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type); +_.test_0 = function test_109(arg0){ + return $lambda$4_1(this.$$outer_0, this.element_1, castTo(arg0, 146)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type', 1368); +function ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type(element_0, p_1){ + this.element_0 = element_0; + this.p_1 = p_1; +} + +defineClass(1367, 1, $intern_39, ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type); +_.test_0 = function test_110(arg0){ + return lambda$5_3(this.element_0, this.p_1, castTo(arg0, 830)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$5$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type', 1367); +function ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(1369, 1, $intern_19, ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type); +_.accept = function accept_148(arg0){ + $lambda$6(this.$$outer_0, this.element_1, castTo(arg0, 146)); +} +; +var Lorg_eclipse_elk_core_util_ElkSpacings$AbstractSpacingsBuilder$lambda$6$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type', 1369); +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), 470); + 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_10(newPointIter), 8); + if (oldPointIter.cursor != oldPointIter.this$01_2.size_1()) { + bendpoint = castTo($doNext(oldPointIter), 469); + } + else { + bendpoint = ($clinit_ElkGraphFactory() , elkBendPoint = new ElkBendPointImpl , elkBendPoint); + $doAdd_0(oldPointIter, bendpoint); + } + $set_10(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], 47).hasNext_0()) { + nextElement = castTo($next_14(allElements), 56); + if (instanceOf(nextElement, 160)) { + graphElement = castTo(nextElement, 160); + 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 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), 469); + $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), 82)) && $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), 82)), 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), 82)) && $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), 82)), 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), 202); + 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), 79); + 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), 202); + $addNode_0(allConnectedSections, otherSection, allConnectedSections.tail.prev, allConnectedSections.tail); + otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 12); + 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_10(allSectIter), 202); + otherPoints = castTo(getEntryValueOrNull($getEntry_0(pointsMap.hashCodeMap, otherSection)), 12); + 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_7(label$iterator), 181); + 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_21(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)), 74); + !!junctionPoints && $offset_1(junctionPoints, xoffset_0, yoffset_2); +} + +function lambda$2_10(xoffset_0, yoffset_2, s_2){ + translate(s_2, xoffset_0, yoffset_2); +} + +function lambda$3_6(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_8(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(), 160)) { + printElementPath(castTo(element.eContainer_0(), 160), builder); + builder.string += ' > '; + } + else { + builder.string += 'Root '; + } + className = element.eClass_0().name_0; + $equals_5(className.substr(0, 3), 'Elk')?$append_11(builder, className.substr(3)):(builder.string += '' + className , builder); + identifier = element.getIdentifier(); + if (identifier) { + $append_11((builder.string += ' ' , builder), identifier); + return; + } + if (instanceOf(element, 353)) { + text_0 = castTo(element, 137).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), 137); + text_0 = label_0.text_0; + if (text_0) { + $append_11((builder.string += ' ' , builder), text_0); + return; + } + } + if (instanceOf(element, 351)) { + edge = castTo(element, 79); + !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), 160), 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), 160), 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), 98); + minNorth = 2; + minEast = 2; + minSouth = 2; + minWest = 2; + direction = !$getParent_2(node)?castTo($getProperty_0(node, DIRECTION_0), 103):castTo($getProperty_0($getParent_2(node), DIRECTION_0), 103); + 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), 118); + portSide = castTo($getProperty_0(port, PORT_SIDE_0), 61); + 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_0)), 103):castTo($getProperty_0($getParent_2(node), ($clinit_CoreOptions() , DIRECTION_0)), 103); + 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), 118); + portSide = castTo($getProperty_0(port, PORT_SIDE_0), 61); + 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), 137); + 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), 469); + $set_10(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), 33); + $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, 118)); +} + +function ElkUtil$lambda$0$Type(){ +} + +defineClass(934, 1, {}, ElkUtil$lambda$0$Type); +_.apply_0 = function apply_171(arg0){ + return $apply_27(arg0); +} +; +_.equals_0 = function equals_178(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', 934); +function ElkUtil$lambda$1$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(935, 1, $intern_19, ElkUtil$lambda$1$Type); +_.accept = function accept_149(arg0){ + lambda$1_21(this.xoffset_0, this.yoffset_2, castTo(arg0, 79)); +} +; +_.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', 935); +function ElkUtil$lambda$2$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(936, 1, $intern_19, ElkUtil$lambda$2$Type); +_.accept = function accept_150(arg0){ + lambda$2_10(this.xoffset_0, this.yoffset_2, castTo(arg0, 202)); +} +; +_.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', 936); +function ElkUtil$lambda$3$Type(xoffset_0, yoffset_2){ + this.xoffset_0 = xoffset_0; + this.yoffset_2 = yoffset_2; +} + +defineClass(937, 1, $intern_19, ElkUtil$lambda$3$Type); +_.accept = function accept_151(arg0){ + lambda$3_6(this.xoffset_0, this.yoffset_2, castTo(arg0, 137)); +} +; +_.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', 937); +function ElkUtil$lambda$4$Type(points_0){ + this.points_0 = points_0; +} + +defineClass(938, 1, $intern_19, ElkUtil$lambda$4$Type); +_.accept = function accept_152(arg0){ + lambda$4_8(this.points_0, castTo(arg0, 469)); +} +; +var Lorg_eclipse_elk_core_util_ElkUtil$lambda$4$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'ElkUtil/lambda$4$Type', 938); +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(341, 1, {35:1, 341:1}, ExclusiveBounds$ExclusiveLowerBound); +_.compareTo_0 = function compareTo_21(x_0){ + return $compareTo_20(this, castTo(x_0, 236)); +} +; +_.equals_0 = function equals_179(obj){ + var other; + if (instanceOf(obj, 341)) { + other = castTo(obj, 341); + return this.exclusiveLowerBound == other.exclusiveLowerBound; + } + return false; +} +; +_.hashCode_1 = function hashCode_69(){ + 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', 341); +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), 82))); + 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), 82))); + sameHierarchy = sourceParent == targetParent; + maxv = new KVector; + bendPoints = castTo($getProperty_0(edge, ($clinit_FixedLayouterOptions() , BEND_POINTS_0)), 74); + 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), 202)); + } + 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), 202); + 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), 469); + 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), 137); + 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(1137, 209, $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; + $begin(progressMonitor, 'Fixed Layout', 1); + edgeRouting = castTo($getProperty_0(layoutNode, ($clinit_CoreOptions() , EDGE_ROUTING_0)), 218); + 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), 33); + 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), 174).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), 137); + 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), 118); + 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), 137); + 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), 79); + 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), 79); + 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), 33); + 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), 79); + 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_1))))) { + padding = castTo($getProperty_0(layoutNode, PADDING_7), 116); + newWidth = maxx + padding.left + padding.right; + newHeight = maxy + padding.top_0 + padding.bottom; + resizeNode_1(layoutNode, newWidth, newHeight, true, true); + } + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_core_util_FixedLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'FixedLayoutProvider', 1137); +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), 94); + 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_39(entry_0){ + return castTo(entry_0.getKey(), 146).getId() + ':' + toString_40(entry_0.getValue()); +} + +defineClass(372, 134, {3:1, 415:1, 372:1, 94:1, 134: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, 102)) { + e = $e0; + throw toJs(new IllegalArgumentException_1(e)); + } + else + throw toJs($e0); + } +} +; +_.toString_0 = function toString_119(){ + var serialized; + serialized = castToString($collect_1($map_0((!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_36, 132, 0, [])))); + return serialized; +} +; +var Lorg_eclipse_elk_core_util_IndividualSpacings_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings', 372); +function IndividualSpacings$lambda$0$Type(){ +} + +defineClass(970, 1, {}, IndividualSpacings$lambda$0$Type); +_.apply_0 = function apply_172(arg0){ + return lambda$0_39(castTo(arg0, 42)); +} +; +var Lorg_eclipse_elk_core_util_IndividualSpacings$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.core.util', 'IndividualSpacings/lambda$0$Type', 970); +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(709, 1, {}, InstancePool); +_.limit = 0; +var Lorg_eclipse_elk_core_util_InstancePool_2_classLit = createForClass('org.eclipse.elk.core.util', 'InstancePool', 709); +function LoggedGraph(){ +} + +defineClass(1274, 1, {}, LoggedGraph); +var Lorg_eclipse_elk_core_util_LoggedGraph_2_classLit = createForClass('org.eclipse.elk.core.util', 'LoggedGraph', 1274); +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_110(name_0){ + $clinit_LoggedGraph$Type(); + return valueOf(($clinit_LoggedGraph$Type$Map() , $MAP_98), name_0); +} + +function values_116(){ + $clinit_LoggedGraph$Type(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_36, 396, 0, [ELK, JSON_0, DOT, SVG]); +} + +defineClass(396, 22, {3:1, 35:1, 22:1, 396: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', 396, Ljava_lang_Enum_2_classLit, values_116, valueOf_110); +function $clinit_LoggedGraph$Type$Map(){ + $clinit_LoggedGraph$Type$Map = emptyMethod; + $MAP_98 = createValueOfMap(($clinit_LoggedGraph$Type() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_util_LoggedGraph$Type_2_classLit, 1), $intern_36, 396, 0, [ELK, JSON_0, DOT, SVG]))); +} + +var $MAP_98; +function Pair(thefirst, thesecond){ + this.first = thefirst; + this.second = thesecond; +} + +defineClass(46, 1, {20:1, 46:1}, Pair); +_.forEach_0 = function forEach_36(action){ + $forEach_0(this, action); +} +; +_.equals_0 = function equals_180(obj){ + var firstEqual, other, secondEqual; + if (instanceOf(obj, 46)) { + other = castTo(obj, 46); + 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_70(){ + var first1, first2, firstCode, second1, second2, secondCode; + firstCode = this.first == null?0:hashCode__I__devirtual$(this.first); + first1 = firstCode & $intern_46; + first2 = firstCode & -65536; + secondCode = this.second == null?0:hashCode__I__devirtual$(this.second); + second1 = secondCode & $intern_46; + second2 = secondCode & -65536; + return first1 ^ second2 >> 16 & $intern_46 | 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', 46); +function Pair$1(this$0){ + this.this$01 = this$0; +} + +defineClass(982, 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_96(){ + 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', 982); +function Quadruple(a, b, c, d){ + this.first = a; + this.second = b; + this.third = c; + this.fourth = d; +} + +defineClass(449, 1, {449:1}, Quadruple); +_.equals_0 = function equals_181(obj){ + return equals_57(this.first, castTo(obj, 449).first) && equals_57(this.second, castTo(obj, 449).second) && equals_57(this.third, castTo(obj, 449).third) && equals_57(this.fourth, castTo(obj, 449).fourth); +} +; +_.hashCode_1 = function hashCode_71(){ + return hashCode_46(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', 449); +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), 82); + sourceX = sourceShape.getX(); + sourceY = sourceShape.getY(); + sourceWidth = sourceShape.getWidth() / 2; + sourceHeight = sourceShape.getHeight() / 2; + if (instanceOf(sourceShape, 186)) { + sourcePort = castTo(sourceShape, 118); + 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), 82); + targetX = targetShape.getX(); + targetY = targetShape.getY(); + targetWidth = targetShape.getWidth() / 2; + targetHeight = targetShape.getHeight() / 2; + if (instanceOf(targetShape, 186)) { + targetPort = castTo(targetShape, 118); + 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), 202); + 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), 33); + 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), 33); + 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), 33); + 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), 79); + $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(1125, 209, $intern_96, RandomLayoutProvider); +_.layout = function layout_10(parentNode, progressMonitor){ + var aspectRatio, padding, random, randomSeed, spacing; + $begin(progressMonitor, '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) { + $done_0(progressMonitor); + return; + } + randomSeed = castTo($getProperty_0(parentNode, ($clinit_RandomLayouterOptions() , RANDOM_SEED_2)), 19); + !!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), 116); + $randomize_0(parentNode, random, aspectRatio, spacing, padding); + $done_0(progressMonitor); +} +; +var Lorg_eclipse_elk_core_util_RandomLayoutProvider_2_classLit = createForClass('org.eclipse.elk.core.util', 'RandomLayoutProvider', 1125); +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(553, 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_1(){ + 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', 553); +function ElkGraphAdapters$ElkEdgeAdapter(edge){ + this.element = edge; +} + +defineClass(554, 1, {838: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), 137); + $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', 554); +function $getNodes(this$static){ + var n, n$iterator; + if (!this$static.childNodes) { + this$static.childNodes = newArrayListWithExpectedSize($getChildren(castTo(this$static.element, 33)).size_0); + for (n$iterator = new AbstractEList$EIterator($getChildren(castTo(this$static.element, 33))); n$iterator.cursor != n$iterator.this$01_2.size_1();) { + n = castTo($doNext(n$iterator), 33); + $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(301, 553, {}, 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', 301); +function ElkGraphAdapters$ElkLabelAdapter(label_0){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); + this.element = label_0; +} + +defineClass(630, 553, {181:1}, ElkGraphAdapters$ElkLabelAdapter); +var Lorg_eclipse_elk_core_util_adapters_ElkGraphAdapters$ElkLabelAdapter_2_classLit = createForClass('org.eclipse.elk.core.util.adapters', 'ElkGraphAdapters/ElkLabelAdapter', 630); +function $getLabels(this$static){ + var l, l$iterator; + if (!this$static.labelAdapters) { + this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 33).getLabels_0().size_0); + for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 33).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { + l = castTo($doNext(l$iterator), 137); + $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, 33)).size_0); + for (p$iterator = new AbstractEList$EIterator($getPorts_3(castTo(this$static.element, 33))); p$iterator.cursor != p$iterator.this$01_2.size_1();) { + p = castTo($doNext(p$iterator), 118); + $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, 33).getProperty(($clinit_CoreOptions() , PORT_CONSTRAINTS_1)), 98)) && sort_13($getPorts_3(castTo(this$static.element, 33)), comparator); +} + +function ElkGraphAdapters$ElkNodeAdapter(parent_0, node){ + $clinit_ElkGraphAdapters$AbstractElkGraphElementAdapter(); + this.element = node; + this.parentGraphAdapter = parent_0; +} + +defineClass(629, 553, {680: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)), 142) , !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, 33)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 79); + $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, 33)).val$inputs1.iterator_0(), new Iterables$10)); $hasNext_1(e$iterator);) { + e = castTo($next_0(e$iterator), 79); + $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.outgoingEdgeAdapters; +} +; +_.isCompoundNode = function isCompoundNode_0(){ + return $getChildren(castTo(this.element, 33)).size_0 != 0 || $booleanValue(castToBoolean(castTo(this.element, 33).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', 629); +function $getLabels_0(this$static){ + var l, l$iterator; + if (!this$static.labelAdapters) { + this$static.labelAdapters = newArrayListWithExpectedSize(castTo(this$static.element, 118).getLabels_0().size_0); + for (l$iterator = new AbstractEList$EIterator(castTo(this$static.element, 118).getLabels_0()); l$iterator.cursor != l$iterator.this$01_2.size_1();) { + l = castTo($doNext(l$iterator), 137); + $add_3(this$static.labelAdapters, new ElkGraphAdapters$ElkLabelAdapter(l)); + } + } + return this$static.labelAdapters; +} + +function ElkGraphAdapters$ElkPortAdapter(port){ + this.element = port; +} + +defineClass(1265, 553, {837: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, 118).getIncomingEdges_0().size_0); + for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getIncomingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { + e = castTo($doNext(e$iterator), 79); + $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, 118).getOutgoingEdges_0().size_0); + for (e$iterator = new AbstractEList$EIterator(castTo(this.element, 118).getOutgoingEdges_0()); e$iterator.cursor != e$iterator.this$01_2.size_1();) { + e = castTo($doNext(e$iterator), 79); + $add_3(this.outgoingEdgeAdapters, new ElkGraphAdapters$ElkEdgeAdapter(e)); + } + } + return this.outgoingEdgeAdapters; +} +; +_.getSide = function getSide_0(){ + return castTo(castTo(this.element, 118).getProperty(($clinit_CoreOptions() , PORT_SIDE_0)), 61); +} +; +_.hasCompoundConnections = function hasCompoundConnections_0(){ + var edge, edge$iterator, edge$iterator0, node, source, source$iterator, target, target$iterator; + node = $getParent_3(castTo(this.element, 118)); + for (edge$iterator0 = new AbstractEList$EIterator(castTo(this.element, 118).getOutgoingEdges_0()); edge$iterator0.cursor != edge$iterator0.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator0), 79); + 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), 82); + 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, 118).getIncomingEdges_0()); edge$iterator.cursor != edge$iterator.this$01_2.size_1();) { + edge = castTo($doNext(edge$iterator), 79); + 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), 82); + 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', 1265); +function $compare_25(port1, port2){ + var index1, index2, indexDifference, ordinalDifference; + ordinalDifference = castTo($getProperty_0(port1, ($clinit_CoreOptions() , PORT_SIDE_0)), 61).ordinal - castTo($getProperty_0(port2, PORT_SIDE_0), 61).ordinal; + if (ordinalDifference != 0) { + return ordinalDifference; + } + index1 = castTo($getProperty_0(port1, PORT_INDEX_0), 19); + index2 = castTo($getProperty_0(port2, PORT_INDEX_0), 19); + if (!!index1 && !!index2) { + indexDifference = index1.value_0 - index2.value_0; + if (indexDifference != 0) { + return indexDifference; + } + } + switch (castTo($getProperty_0(port1, PORT_SIDE_0), 61).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(1266, 1, $intern_88, ElkGraphAdapters$PortComparator); +_.compare_1 = function compare_86(port1, port2){ + return $compare_25(castTo(port1, 118), castTo(port2, 118)); +} +; +_.equals_0 = function equals_182(other){ + return this === other; +} +; +_.reversed = function reversed_78(){ + 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', 1266); +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), 18); + ELK_GRAPH_ELEMENT = eINSTANCE_0.elkGraphElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkGraphElementEClass), 1), 34); + ELK_SHAPE = eINSTANCE_0.elkShapeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkShapeEClass), 3), 34); + ELK_LABEL = eINSTANCE_0.elkLabelEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkLabelEClass), 1), 34); + ELK_CONNECTABLE_SHAPE = eINSTANCE_0.elkConnectableShapeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkConnectableShapeEClass), 1), 18); + ELK_NODE = eINSTANCE_0.elkNodeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkNodeEClass), 4), 34); + ELK_PORT = eINSTANCE_0.elkPortEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPortEClass), 0), 18); + ELK_EDGE = eINSTANCE_0.elkEdgeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 4), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 5), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 6), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeEClass), 7), 34); + ELK_BEND_POINT = eINSTANCE_0.elkBendPointEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkBendPointEClass), 1), 34); + ELK_EDGE_SECTION = eINSTANCE_0.elkEdgeSectionEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 5), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 6), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 7), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 8), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 9), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkEdgeSectionEClass), 10), 34); + ELK_PROPERTY_TO_VALUE_MAP_ENTRY = eINSTANCE_0.elkPropertyToValueMapEntryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_0.elkPropertyToValueMapEntryEClass), 1), 34); +} + +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(90, 1, $intern_133); +_.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', 90); +function $eAttribute(eClass, name_0){ + var eStructuralFeature; + eStructuralFeature = $getEStructuralFeature_0(eClass, name_0); + if (instanceOf(eStructuralFeature, 322)) { + return castTo(eStructuralFeature, 34); + } + 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_63) == 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, 49), 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, 66).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, 66).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, 66).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, 66).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, 66).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_66) { + 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, 66).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, 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(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(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(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(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[values.array.length] = 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), 58)); + LOOP: for (eObject$iterator = list.iterator_0(); eObject$iterator.hasNext_0();) { + eObject = castTo(eObject$iterator.next_1(), 56); + for (i = 0; i < size_0; ++i) { + entry = (checkCriticalElementIndex(i, predicate.array.length) , castTo(predicate.array[i], 72)); + 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, uriFragmentSegment.substr(1, index_0 - 1)); + predicate = 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, uriFragmentSegment.substr(1, dotIndex - 1)), false), 58); + position = 0; + try { + position = __parseAndValidateInt(uriFragmentSegment.substr(dotIndex + 1), $intern_42, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + exception = $e0; + throw toJs(new WrappedException(exception)); + } + else + throw toJs($e0); + } + if (position < eList.size_1()) { + result = eList.get_0(position); + instanceOf(result, 72) && (result = castTo(result, 72).getValue()); + return castTo(result, 56); + } + } + } + if (dotIndex < 0) { + return castTo($eGet_1(this$static, $eStructuralFeature(this$static, uriFragmentSegment.substr(1)), false), 56); + } + } + 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, 66).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), 153)); + return castTo(featureMap, 215).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, 66).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), 153)); + return castTo(featureMap, 215).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, 66).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), 153)); + castTo(featureMap, 215).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, 66).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), 153)); + castTo(featureMap, 215).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, 99)) { + return castTo(eStructuralFeature, 18); + } + 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, 99)) { + return castTo(eFeature, 18); + } + else { + featureMap = castTo(eContainer.eGet_0(eFeature), 153); + 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, 99)) { + entryReference = castTo(entryFeature, 18); + if ((entryReference.eFlags & $intern_134) != 0) { + return entryReference; + } + } + } + } + throw toJs(new IllegalStateException_0('The containment feature could not be located')); + } + } + else { + return $getEOpposite(castTo($getEStructuralFeature(eObject.eClass_0(), eContainerFeatureID), 18)); + } + } +} + +function eDecodeValue(encodedValue, eFactory, eDataType){ + var literal, value_0; + literal = decode(encodedValue); + value_0 = eFactory.createFromString(eDataType, literal); + return value_0; +} + +defineClass(97, 90, $intern_135); +_.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()), 18)) , 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), 66) , 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), 66) , 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_63) != 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, 66).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, 66).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), 153)); + upperBound = openFeature.getUpperBound(); + if (upperBound > 1 || upperBound == -1) { + return castTo(castTo(featureMap, 215).get_7(eFeature, false), 76); + } + } + 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), 76); + } + 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_122(){ + return $toString_16(this); +} +; +var Lorg_eclipse_emf_ecore_impl_BasicEObjectImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'BasicEObjectImpl', 97); +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), 26); + 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), 26) , $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(114, 97, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114: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), 125); +} +; +_.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), 26) , !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), 1934); +} +; +_.eDynamicClass = function eDynamicClass_0(){ + return castTo($getField(this, 16), 26); +} +; +_.eHasSettings = function eHasSettings_0(){ + return (this.eFlags_0 & 32) != 0; +} +; +_.eInternalContainer = function eInternalContainer_1(){ + return castTo($getField(this, 2), 49); +} +; +_.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), 280); +} +; +_.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', 114); +defineClass(115, 114, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115: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', 115); +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_1(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), 26) , !eClass?this$static.eStaticClass():eClass), featureID), 66) , 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_14(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(), 42); + entry.getValue(); + } + return $map_1(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_13(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_13(this$static.properties, property, value_0)); + return this$static; +} + +defineClass(1984, 115, {105:1, 414:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115: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); +} +; +_.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', 1984); +function $set_10(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(567, 115, {105:1, 469:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115: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_123(){ + 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', 567); +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), 26) , !eClass?this$static.eStaticClass():eClass), featureID), 66) , 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, 14)); + 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(723, 1984, {105:1, 414:1, 160:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115: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_124(){ + return $toString_17(this); +} +; +_.identifier = null; +var Lorg_eclipse_elk_graph_impl_ElkGraphElementImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkGraphElementImpl', 723); +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(724, 723, {105:1, 414:1, 160:1, 470:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115: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_125(){ + 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', 724); +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, 14)); + 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, 14)); + 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(725, 724, {105:1, 414:1, 82:1, 160:1, 470:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115: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', 725); +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), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE):eClass), this$static.eFlags_0 >> 16), 18)) , 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, 33); +} + +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), 82); + 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), 82); + 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), 137)).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(351, 723, {105:1, 414:1, 79:1, 160:1, 351:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115: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, 33), 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, 33)); + 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, 14)); + 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, 14)); + 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, 14)); + 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_126(){ + return $toString_19(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkEdgeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkEdgeImpl', 351); +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), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), this$static.eFlags_0 >> 16), 18)) , 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, 49); + this$static.incomingShape = castTo($eResolveProxy(this$static, oldIncomingShape), 82); + 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, 49); + this$static.outgoingShape = castTo($eResolveProxy(this$static, oldOutgoingShape), 82); + 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, 79); +} + +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(440, 1984, {105:1, 414:1, 202:1, 440:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115: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, 79), 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), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_EDGE_SECTION):eClass), featureID), 66) , 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, 14)); + return; + case 6: + $setParent_0(this, castTo(newValue, 79)); + return; + case 7: + $setOutgoingShape(this, castTo(newValue, 82)); + return; + case 8: + $setIncomingShape(this, castTo(newValue, 82)); + 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, 14)); + 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, 14)); + 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_127(){ + 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', 440); +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 = uriFragmentSegment.substr(1, index0 - 1); + source = $equals_5('%', encodedSource)?null:decode(encodedSource); + count0 = 0; + if (hasCount) { + try { + count0 = __parseAndValidateInt(uriFragmentSegment.substr(index0 + 2), $intern_42, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + 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_15(object$iterator0); + if (instanceOf(object, 510)) { + eAnnotation = castTo(object, 590); + 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:uriFragmentSegment.substr(0, index_0); + count = 0; + if (index_0 != -1) { + try { + count = __parseAndValidateInt(uriFragmentSegment.substr(index_0 + 1), $intern_42, $intern_0); + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 127)) { + 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_15(object$iterator); + if (instanceOf(object, 191)) { + eNamedElement = castTo(object, 191); + 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, 150) && castTo(eModelElement, 150).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, 1933); + 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), 590); + 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), 590); + if ($equals_5(source, eAnnotation.source)) { + return eAnnotation; + } + } + } + } + } + return null; +} + +defineClass(150, 115, {105:1, 92:1, 90:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115: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), 26) , !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), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , 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), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , 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), 26) , !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, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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), 26) , !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', 150); +function $clinit_EFactoryImpl(){ + $clinit_EFactoryImpl = emptyMethod; + HEX_DIGITS = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_44, 25, 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, 2014, 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, 78)) + 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_44, 25, 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_9(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(), 148); + 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, 102)) + throw toJs($e0); + } + } + } + throw toJs(new IllegalArgumentException_0("Invalid value: '" + objectValue + "' for datatype :" + eDataType.getName())); + } + castTo(eDataType, 833).getConversionDelegate(); + return objectValue == null?null:instanceOf(objectValue, 172)?'' + castTo(objectValue, 172).value_0:getClass__Ljava_lang_Class___devirtual$(objectValue) == Ljava_util_Date_2_classLit?$format_0(EDATE_FORMATS[0], castTo(objectValue, 199)):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, 457)) { + result = $getEEnumLiteralByLiteral(castTo(eDataType, 671), 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(), 148); + try { + result = memberType.getEPackage().getEFactoryInstance().createFromString(memberType, stringValue); + if (result != null) { + return result; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (!instanceOf($e0, 60)) + 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, 833).getConversionDelegate(); + c = wrapperClassFor(eDataType.getInstanceClass()); + if (!c) + return null; + if (c == Ljava_lang_Character_2_classLit) { + charValue = 0; + try { + charValue = __parseAndValidateInt(stringValue, $intern_42, $intern_0) & $intern_46; + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 127)) { + carray = $toCharArray(stringValue); + charValue = carray[0]; + } + else + throw toJs($e1); + } + return valueOf_3(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, 32)) + 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_136, 25, 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, 49).eInverseRemove(this$static, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); + !!newEPackage && (msgs = castTo(newEPackage, 49).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(704, 150, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}, EFactoryImpl); +_.convertToString = function convertToString(eDataType, objectValue){ + return $convertToString(this, eDataType, objectValue); +} +; +_.create_3 = function create_40(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), 87) , result0 = eGenericType.eRawType , instanceOf(result0, 88)?castTo(result0, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); + if ($getInstanceClass(eSuperType)) { + result = $getEPackage(eSuperType).getEFactoryInstance().create_3(eSuperType); + castTo(result, 49).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), 26) , !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, 49).eInverseRemove(this, 4, Lorg_eclipse_emf_ecore_EPackage_2_classLit, msgs)); + return $basicSetEPackage(this, castTo(otherEnd, 235), msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 66) , 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), 26) , !eClass?($clinit_EcorePackage$Literals() , EFACTORY):eClass), featureID), 66) , 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), 26) , !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, 14)); + return; + case 1: + $setEPackage(this, castTo(newValue, 235)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EFACTORY)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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), 26) , !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', 704); +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'), 2013); + if (theElkGraphFactory) { + return theElkGraphFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + exception = $e0; + $log_3(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new ElkGraphFactoryImpl; +} + +defineClass(1023, 704, {105:1, 2013:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}, ElkGraphFactoryImpl); +_.convertToString = function convertToString_0(eDataType, instanceValue){ + switch (eDataType.getClassifierID()) { + case 12: + return castTo(instanceValue, 146).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_41(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', 1023); +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(439, 150, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1}); +_.eContents_0 = function eContents_2(){ + var eClass, eStructuralFeatures; + eStructuralFeatures = (eClass = castTo($getField(this, 16), 26) , $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), 26) , !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), 26) , !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, 14)); + return; + case 1: + this.setName(castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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), 26) , !eClass?this.eStaticClass():eClass), featureID)); +} +; +_.getName = function getName_5(){ + return this.name_0; +} +; +_.setName = function setName(newName){ + $setName(this, newName); +} +; +_.toString_0 = function toString_128(){ + return $toString_21(this); +} +; +_.name_0 = null; +var Lorg_eclipse_emf_ecore_impl_ENamedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ENamedElementImpl', 439); +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_13(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), 590)); + 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, 235); +} + +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), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), this$static.eFlags_0 >> 16), 18)) , 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), 138); + key = eClassifier.getName(); + duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eClassifier):$put_10(result.stringMap, key, eClassifier), 138); + !!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), 138); +} + +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, 88) && $setFlags_0($getESuperAdapter(castTo(a.eContainer, 88)), 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, 179) && (castTo(o.eContainer, 179).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, 88) && $setFlags_0($getESuperAdapter(castTo(r.eContainer, 88)), 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, 88) && $setFlags_0($getESuperAdapter(castTo(s.eContainer, 88)), 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, 49).eInverseRemove(this$static, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); + !!newEFactoryInstance && (msgs = castTo(newEFactoryInstance, 49).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, 498)?$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, 1938); + castTo(factory, 1940); + } + else { + this.ecorePackage = ($clinit_EcorePackage() , eINSTANCE_2); + } +} + +defineClass(179, 439, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675: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, 235):null; + return $basicGetESuperPackage(this); + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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, 49).eInverseRemove(this, 1, Lorg_eclipse_emf_ecore_EFactory_2_classLit, msgs)); + return $basicSetEFactoryInstance(this, castTo(otherEnd, 471), 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), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 66) , 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), 26) , !eClass?($clinit_EcorePackage$Literals() , EPACKAGE):eClass), featureID), 66) , 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), 26) , !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, 14)); + 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, 471)); + 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, 14)); + 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, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPACKAGE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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, 350) && (castTo(eClassifier, 350).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), 26) , !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_129(){ + 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', 179); +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), 18), 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), 18), this$static.elkLabelEClass, castTo($get_20($getEStructuralFeatures(this$static.elkLabelEClass), 0), 18), '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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 18), this$static.elkGraphElementEClass, castTo($get_20($getEStructuralFeatures(this$static.elkGraphElementEClass), 0), 18), '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), 34), 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), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 1), 18), '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), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 2), 18), '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), 18), this$static.elkPortEClass, castTo($get_20($getEStructuralFeatures(this$static.elkPortEClass), 0), 18), '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), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 2), 18), '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), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 1), 18), '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), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 0), 18), '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), 34), 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), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 0), 18), '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), 18), this$static.elkNodeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkNodeEClass), 3), 18), '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), 18), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 0), 18), '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), 18), this$static.elkConnectableShapeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkConnectableShapeEClass), 1), 18), '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), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 5), 18), '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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 18), 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), 18), this$static.elkEdgeEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeEClass), 3), 18), '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), 18), 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), 18), 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), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 9), 18), '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), 18), this$static.elkEdgeSectionEClass, castTo($get_20($getEStructuralFeatures(this$static.elkEdgeSectionEClass), 8), 18), '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), 34), 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), 34), g1, 'key', Ljava_util_Map$Entry_2_classLit, false, false, true, false); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.elkPropertyToValueMapEntryEClass), 1), 34), 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'), 2015); + theElkGraphPackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/elk/ElkGraph'), 555)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph'):new ElkGraphPackageImpl, 555); + isInited = true; + $createPackageContents(theElkGraphPackage); + $initializePackageContents(theElkGraphPackage); + $freeze_0(theElkGraphPackage); + $putStringValue(INSTANCE_6, 'http://www.eclipse.org/elk/ElkGraph', theElkGraphPackage); + return theElkGraphPackage; +} + +defineClass(555, 179, {105:1, 2015:1, 555:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675: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', 555); +function $basicSetParent_0(this$static, newParent, msgs){ + msgs = $eBasicSetContainer(this$static, castTo(newParent, 49), 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), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_LABEL):eClass), this$static.eFlags_0 >> 16), 18)) , 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, 160); +} + +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, 49).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(353, 724, {105:1, 414:1, 160:1, 137:1, 470:1, 353:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115: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, 160), 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, 160)); + 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_130(){ + return $toString_22(this); +} +; +_.text_0 = ''; +var Lorg_eclipse_elk_graph_impl_ElkLabelImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkLabelImpl', 353); +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), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_NODE):eClass), this$static.eFlags_0 >> 16), 18)) , 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, 33); +} + +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), 137)).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(239, 725, {105:1, 414:1, 82:1, 160:1, 33:1, 470:1, 239:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115: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, 33), 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, 14)); + 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, 14)); + return; + case 11: + $setParent_2(this, castTo(newValue, 33)); + 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, 14)); + 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_131(){ + return $toString_23(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkNodeImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkNodeImpl', 239); +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), 26) , !eClass?($clinit_ElkGraphPackage$Literals() , ELK_PORT):eClass), this$static.eFlags_0 >> 16), 18)) , 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, 33); +} + +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), 137)).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(186, 725, {105:1, 414:1, 82:1, 160:1, 118:1, 470:1, 186:1, 94:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115: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, 33), 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, 33)); + 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_132(){ + return $toString_24(this); +} +; +var Lorg_eclipse_elk_graph_impl_ElkPortImpl_2_classLit = createForClass('org.eclipse.elk.graph.impl', 'ElkPortImpl', 186); +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(1091, 115, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1, 114:1, 115:1}, ElkPropertyToValueMapEntryImpl); +_.equals_0 = function equals_183(other){ + return this === other; +} +; +_.getKey = function getKey_8(){ + return this.key; +} +; +_.hashCode_1 = function hashCode_72(){ + return getHashCode_0(this); +} +; +_.setKey = function setKey(key){ + $setTypedKey(this, castTo(key, 146)); +} +; +_.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, 146)); + 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_133(){ + 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_7(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', 1091); +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, 236)) { + _matched = true; + $addJsonArr(arr, (_doubleValue = doubleValue__D__devirtual$(castTo(o, 236)) , 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, 236)) { + _matched = true; + $addJsonObj(o, element, castTo(obj, 236)); + } + } + 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, 204)) { + _matched = true; + return castTo(id_0, 204).value_0; + } + if (!_matched) { + if (instanceOf(id_0, 258)) { + _isInt = castTo(id_0, 258).value_0 % 1 == 0; + if (_isInt) { + _matched = true; + return valueOf_4($intValue(castTo(id_0, 258).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, 204)) { + _matched = true; + _switchResult = castTo(v, 204).value_0; + } + if (!_matched) { + if (instanceOf(v, 258)) { + _matched = true; + _switchResult = '' + castTo(v, 258).value_0; + } + } + if (!_matched) { + if (instanceOf(v, 483)) { + _matched = true; + _switchResult = '' + castTo(v, 483).value_0; + } + } + if (!_matched) { + throw toJs(new Error_0('Severe implementation error in the Json to ElkGraph importer.')); + } + return _switchResult; +} + +function JsonAdapter(){ +} + +defineClass(983, 1, {}, JsonAdapter); +var Lorg_eclipse_elk_graph_json_JsonAdapter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonAdapter', 983); +function JsonImportException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(210, 60, $intern_43, JsonImportException); +var Lorg_eclipse_elk_graph_json_JsonImportException_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImportException', 210); +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), 183); + 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), 74); + _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, 239)) { + return $_idByElement_0(this$static, castTo(node, 33)); + } + else if (instanceOf(node, 186)) { + return $_idByElement_1(this$static, castTo(node, 118)); + } + else if (instanceOf(node, 440)) { + return $_idByElement(this$static, castTo(node, 202)); + } + 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(), 19); + _optJSONObject = $optJSONObject(children_1, i.value_0); + !!_optJSONObject && $transformNode_0(this$static, _optJSONObject, parent_1); + } + } +} + +function $lambda$1_7(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(), 19); + 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)), 79)); + } + } +} + +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(), 19); + 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(), 19); + 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(), 19); + _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(), 19); + $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(), 19); + $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(), 19); + _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(), 19); + _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(), 19); + 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(), 19); + _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, 183); + _plus = edgeId_1 + '_s'; + _plus_1 = _plus + i_3; + _jSONString = new JSONString(_plus_1); + $put_5(_jsonObject, 'id', _jSONString); + } + jsonSection = castTo(maybeSection, 183); + $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(), 19); + _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), 33); + if (node) { + return node; + } + port = castTo($get_4(this$static.portIdMap, id_0), 118); + if (port) { + return port; + } + throw toJs(new JsonImportException('Referenced shape does not exist: ' + id_0)); +} + +function $transferLayoutInt(this$static, node){ + if (instanceOf(node, 239)) { + return $_transferLayoutInt_1(this$static, castTo(node, 33)); + } + else if (instanceOf(node, 186)) { + return $_transferLayoutInt_2(this$static, castTo(node, 118)); + } + else if (instanceOf(node, 353)) { + return $_transferLayoutInt_0(this$static, castTo(node, 137)); + } + else if (instanceOf(node, 351)) { + return $_transferLayoutInt(this$static, castTo(node, 79)); + } + 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, 183); + $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(), 202); + _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), 202); + 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(), 202); + _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), 202); + 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), 202); + 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), 82)); + $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), 82)); + } + } +} + +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), 33); + 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_7(_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), 372); + 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'))), 33); + _jsonObj = $get_9(jsonObj, 'sourcePort'); + _asId = null; + !!_jsonObj && (_asId = $asId(_jsonObj)); + srcPort = castTo($get_4(this$static.portIdMap, _asId), 118); + 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'))), 33); + _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), 118); + 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(856, 1, {}, JsonImporter); +var Lorg_eclipse_elk_graph_json_JsonImporter_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter', 856); +function JsonImporter$lambda$0$Type($$outer_0, parent_1){ + this.$$outer_0 = $$outer_0; + this.parent_1 = parent_1; +} + +defineClass(890, 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', 890); +function JsonImporter$lambda$1$Type($$outer_0, node_1){ + this.$$outer_0 = $$outer_0; + this.node_1 = node_1; +} + +defineClass(891, 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', 891); +function JsonImporter$lambda$10$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(899, 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', 899); +function JsonImporter$lambda$11$Type($$outer_0, edge_1){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; +} + +defineClass(901, 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', 901); +function JsonImporter$lambda$12$Type($$outer_0, edge_1){ + this.$$outer_0 = $$outer_0; + this.edge_1 = edge_1; +} + +defineClass(902, 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', 902); +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(908, 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', 908); +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(907, 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', 907); +function JsonImporter$lambda$15$Type($$outer_0, elkSection_1){ + this.$$outer_0 = $$outer_0; + this.elkSection_1 = elkSection_1; +} + +defineClass(903, 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', 903); +function JsonImporter$lambda$16$Type($$outer_0, elkSection_1){ + this.$$outer_0 = $$outer_0; + this.elkSection_1 = elkSection_1; +} + +defineClass(904, 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', 904); +function JsonImporter$lambda$17$Type(incomingSectionIdentifiers_1, elkSection_2){ + this.incomingSectionIdentifiers_1 = incomingSectionIdentifiers_1; + this.elkSection_2 = elkSection_2; +} + +defineClass(905, 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', 905); +function JsonImporter$lambda$18$Type(outgoingSectionIdentifiers_1, elkSection_2){ + this.outgoingSectionIdentifiers_1 = outgoingSectionIdentifiers_1; + this.elkSection_2 = elkSection_2; +} + +defineClass(906, 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', 906); +function JsonImporter$lambda$19$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(911, 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', 911); +function JsonImporter$lambda$2$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(892, 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', 892); +function JsonImporter$lambda$20$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(909, 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', 909); +function JsonImporter$lambda$21$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(910, 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', 910); +function JsonImporter$lambda$22$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(914, 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', 914); +function JsonImporter$lambda$23$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(912, 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', 912); +function JsonImporter$lambda$24$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(913, 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', 913); +function JsonImporter$lambda$25$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(916, 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', 916); +function JsonImporter$lambda$26$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(915, 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', 915); +function JsonImporter$lambda$27$Type(opts_1, layoutData_2){ + this.opts_1 = opts_1; + this.layoutData_2 = layoutData_2; +} + +defineClass(917, 1, $intern_19, JsonImporter$lambda$27$Type); +_.accept = function accept_153(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', 917); +function JsonImporter$lambda$28$Type(opts_1, individualSpacings_2){ + this.opts_1 = opts_1; + this.individualSpacings_2 = individualSpacings_2; +} + +defineClass(918, 1, $intern_19, JsonImporter$lambda$28$Type); +_.accept = function accept_154(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', 918); +function JsonImporter$lambda$29$Type($$outer_0, element_1){ + this.$$outer_0 = $$outer_0; + this.element_1 = element_1; +} + +defineClass(919, 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', 919); +function JsonImporter$lambda$3$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(895, 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', 895); +function JsonImporter$lambda$30$Type($$outer_0, parent_1){ + this.$$outer_0 = $$outer_0; + this.parent_1 = parent_1; +} + +defineClass(920, 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', 920); +function JsonImporter$lambda$31$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(921, 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', 921); +function JsonImporter$lambda$32$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(922, 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', 922); +function JsonImporter$lambda$33$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(923, 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', 923); +function JsonImporter$lambda$34$Type(shape_1){ + this.shape_1 = shape_1; +} + +defineClass(924, 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', 924); +function $apply_28(this$static, arg0){ + $transferLayoutInt(this$static.$$outer_0, castTo(arg0, 56)); +} + +function JsonImporter$lambda$35$Type($$outer_0){ + this.$$outer_0 = $$outer_0; +} + +defineClass(858, 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', 858); +function $apply_29(this$static, arg0, arg1){ + $lambda$36(this$static.$$outer_0, this$static.edgeId_1, this$static.sections_2, castTo(arg0, 202), 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(928, 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', 928); +function JsonImporter$lambda$37$Type(bendPoints_1){ + this.bendPoints_1 = bendPoints_1; +} + +defineClass(925, 1, $intern_19, JsonImporter$lambda$37$Type); +_.accept = function accept_155(arg0){ + $lambda$37(this.bendPoints_1, castTo(arg0, 469)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$37$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$37$Type', 925); +function JsonImporter$lambda$38$Type($$outer_0, incomingSections_1){ + this.$$outer_0 = $$outer_0; + this.incomingSections_1 = incomingSections_1; +} + +defineClass(926, 1, $intern_19, JsonImporter$lambda$38$Type); +_.accept = function accept_156(arg0){ + $lambda$38(this.$$outer_0, this.incomingSections_1, castTo(arg0, 202)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$38$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$38$Type', 926); +function JsonImporter$lambda$39$Type($$outer_0, outgoingSections_1){ + this.$$outer_0 = $$outer_0; + this.outgoingSections_1 = outgoingSections_1; +} + +defineClass(927, 1, $intern_19, JsonImporter$lambda$39$Type); +_.accept = function accept_157(arg0){ + $lambda$39(this.$$outer_0, this.outgoingSections_1, castTo(arg0, 202)); +} +; +var Lorg_eclipse_elk_graph_json_JsonImporter$lambda$39$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonImporter/lambda$39$Type', 927); +function JsonImporter$lambda$4$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(893, 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', 893); +function JsonImporter$lambda$40$Type(jsonJPs_1){ + this.jsonJPs_1 = jsonJPs_1; +} + +defineClass(929, 1, $intern_19, JsonImporter$lambda$40$Type); +_.accept = function accept_158(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', 929); +function JsonImporter$lambda$5$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(894, 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', 894); +function JsonImporter$lambda$6$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(898, 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', 898); +function JsonImporter$lambda$7$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(896, 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', 896); +function JsonImporter$lambda$8$Type(section_0){ + this.section_0 = section_0; +} + +defineClass(897, 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', 897); +function JsonImporter$lambda$9$Type(section_1){ + this.section_1 = section_1; +} + +defineClass(900, 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', 900); +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_22(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_11(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_7(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, 149)) { + return _toJson(castTo(lad, 149)); + } + else if (instanceOf(lad, 229)) { + return _toJson_0(castTo(lad, 229)); + } + 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(947, 1, $intern_19, JsonMetaDataConverter$lambda$0$Type); +_.accept = function accept_159(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', 947); +function JsonMetaDataConverter$lambda$1$Type(jsonArr_1_0){ + this.jsonArr_1_0 = jsonArr_1_0; +} + +defineClass(948, 1, $intern_19, JsonMetaDataConverter$lambda$1$Type); +_.accept = function accept_160(arg0){ + lambda$1_22(this.jsonArr_1_0, castTo(arg0, 237)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$1$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$1$Type', 948); +function JsonMetaDataConverter$lambda$2$Type(jsonArr_0){ + this.jsonArr_0 = jsonArr_0; +} + +defineClass(949, 1, $intern_19, JsonMetaDataConverter$lambda$2$Type); +_.accept = function accept_161(arg0){ + lambda$2_11(this.jsonArr_0, castTo(arg0, 149)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$2$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$2$Type', 949); +function JsonMetaDataConverter$lambda$3$Type(jsonArr_0){ + this.jsonArr_0 = jsonArr_0; +} + +defineClass(950, 1, $intern_19, JsonMetaDataConverter$lambda$3$Type); +_.accept = function accept_162(arg0){ + lambda$3_7(this.jsonArr_0, castTo(arg0, 175)); +} +; +var Lorg_eclipse_elk_graph_json_JsonMetaDataConverter$lambda$3$Type_2_classLit = createForClass('org.eclipse.elk.graph.json', 'JsonMetaDataConverter/lambda$3$Type', 950); +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_111(name_0){ + $clinit_GraphFeature(); + return valueOf(($clinit_GraphFeature$Map() , $MAP_99), name_0); +} + +function values_117(){ + $clinit_GraphFeature(); + return stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]); +} + +defineClass(237, 22, {3:1, 35:1, 22:1, 237: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', 237, Ljava_lang_Enum_2_classLit, values_117, valueOf_111); +function $clinit_GraphFeature$Map(){ + $clinit_GraphFeature$Map = emptyMethod; + $MAP_99 = createValueOfMap(($clinit_GraphFeature() , stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_graph_properties_GraphFeature_2_classLit, 1), $intern_36, 237, 0, [SELF_LOOPS_0, INSIDE_SELF_LOOPS, MULTI_EDGES, EDGE_LABELS, PORTS_1, COMPOUND, CLUSTERS, DISCONNECTED]))); +} + +var $MAP_99; +function $compareTo_21(this$static, other){ + return $compareTo_9(this$static.id_0, other.getId()); +} + +function $equals_10(this$static, obj){ + return instanceOf(obj, 146) && $equals_5(this$static.id_0, castTo(obj, 146).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(13, 1, {35:1, 146:1}, Property, Property_0, Property_1, Property_2); +_.compareTo_0 = function compareTo_22(other){ + return $compareTo_21(this, castTo(other, 146)); +} +; +_.equals_0 = function equals_184(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_73(){ + return getHashCode_1(this.id_0); +} +; +_.toString_0 = function toString_134(){ + return this.id_0; +} +; +var Lorg_eclipse_elk_graph_properties_Property_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'Property', 13); +function $compare_26(this$static, ph1, ph2){ + var p1, p2; + p1 = castTo(ph1.getProperty(this$static.property), 35); + p2 = castTo(ph2.getProperty(this$static.property), 35); + 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(817, 1, $intern_88, PropertyHolderComparator); +_.compare_1 = function compare_87(ph1, ph2){ + return $compare_26(this, castTo(ph1, 94), castTo(ph2, 94)); +} +; +_.equals_0 = function equals_185(other){ + return this === other; +} +; +_.reversed = function reversed_79(){ + return new Comparators$ReversedComparator(this); +} +; +var Lorg_eclipse_elk_graph_properties_PropertyHolderComparator_2_classLit = createForClass('org.eclipse.elk.graph.properties', 'PropertyHolderComparator', 817); +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), 118); + $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), 118); + $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, 239)) { + return castTo(connectableShape, 33); + } + else if (instanceOf(connectableShape, 186)) { + return $getParent_3(castTo(connectableShape, 118)); + } + 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, 186)) { + return castTo(connectableShape, 118); + } + 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(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), 82))):$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), 82))); + } + 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), 82)); + 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), 82)); + 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), 82)); + while ($hasNext_1(incidentShapes)) { + incidentNode = connectableShapeToNode(castTo($next_0(incidentShapes), 82)); + 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), 33)); + ancestor2 = (checkCriticalElement(iterator2.i > 0) , castTo(iterator2.this$01.get_0(iterator2.last = --iterator2.i), 33)); + 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), 202); + 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), 82)); +} + +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), 82)); +} + +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), 82)); +} + +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), 82)); +} + +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(edge, 'edge cannot be null'); + $setContainingNode(edge, findBestEdgeContainment(edge)); +} + +function $next_13(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(695, 1, $intern_6, ElkGraphUtil$AncestorIterator); +_.forEachRemaining = function forEachRemaining_52(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_42(){ + return $next_13(this); +} +; +_.remove = function remove_97(){ + $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', 695); +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_2(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_11(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_7(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(67, 52, {20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58: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_186(object){ + return $equals_11(this, object); +} +; +_.hashCode_1 = function hashCode_74(){ + return $hashCode_2(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_98(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_11(this, index_0, object); +} +; +_.toString_0 = function toString_135(){ + 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', 67); +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_9(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_10(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(63, 67, $intern_137, 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_50(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_99(index_0){ + return $remove_33(this, index_0); +} +; +_.setUnique = function setUnique(index_0, object){ + return $setUnique(this, index_0, object); +} +; +_.size_1 = function size_65(){ + return this.size_0; +} +; +_.toArray = function toArray_26(){ + return $toArray_9(this); +} +; +_.toArray_0 = function toArray_27(array){ + return $toArray_10(this, array); +} +; +_.size_0 = 0; +var Lorg_eclipse_emf_common_util_BasicEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList', 63); +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_14(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], 47); + 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], 47); + currentIterator = nextIterator; + } + } + return result; +} + +function AbstractTreeIterator(object, includeRoot){ + this.object = object; + this.includeRoot = includeRoot; +} + +defineClass(694, 63, $intern_138); +_.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], 47).hasNext_0(); +} +; +_.next_1 = function next_43(){ + return $next_14(this); +} +; +_.remove = function remove_100(){ + 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', 694); +function ElkGraphUtil$PropertiesSkippingTreeIterator(object){ + AbstractTreeIterator.call(this, object, true); +} + +defineClass(685, 694, $intern_138, ElkGraphUtil$PropertiesSkippingTreeIterator); +_.getChildren = function getChildren(object){ + var iterator; + iterator = castTo(object, 56).eContents_0().iterator_0(); + instanceOf(iterator, 278) && castTo(iterator, 278).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', 685); +function ElkGraphUtil$PropertiesSkippingTreeIterator$1(){ +} + +defineClass(951, 1, {}, ElkGraphUtil$PropertiesSkippingTreeIterator$1); +var Lorg_eclipse_elk_graph_util_ElkGraphUtil$PropertiesSkippingTreeIterator$1_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkGraphUtil/PropertiesSkippingTreeIterator/1', 951); +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, 156)) { + return castTo($get_10(REGISTRY_CLONE, Ljava_util_EnumSet_2_classLit), 287).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)), 287).clone(clonee); + } + return null; +} + +function newInstance_10(clazz){ + $clinit_ElkReflect(); + return $containsKey_3(REGISTRY_NEW, clazz)?castTo($get_10(REGISTRY_NEW, clazz), 331).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(888, 1, $intern_130, ElkReflect$lambda$0$Type); +_.clone = function clone_12(o){ + return $clinit_ElkReflect() , $clone(castTo(o, 174)); +} +; +var Lorg_eclipse_elk_graph_util_ElkReflect$lambda$0$Type_2_classLit = createForClass('org.eclipse.elk.graph.util', 'ElkReflect/lambda$0$Type', 888); +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.taskName); + $put_5(logObject, 'name', jsonTaskName); + if (recordLogs && !(!currentPM.logMessages?null:unmodifiableList(currentPM.logMessages)).list.isEmpty()) { + jsonLogs = new JSONArray; + $put_5(logObject, 'logs', jsonLogs); + i = 0; + for (s$iterator = new Collections$UnmodifiableCollectionIterator((!currentPM.logMessages?null:unmodifiableList(currentPM.logMessages)).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.totalTime); + $put_5(logObject, 'executionTime', jsonExecTime); + } + if (!unmodifiableList(currentPM.children).list.isEmpty()) { + children = new JSONArray; + $put_5(logObject, 'children', children); + i = 0; + for (child$iterator = new Collections$UnmodifiableCollectionIterator(unmodifiableList(currentPM.children).coll.iterator_0()); child$iterator.it.hasNext_0();) { + child = castTo(child$iterator.it.next_1(), 1948); + 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(), 686); + 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, 527, 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, 130, 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, 130, 0, [new LayeredMetaDataProvider])):$equals_5(alg, 'force')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new ForceMetaDataProvider])):$equals_5(alg, 'stress')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new StressMetaDataProvider])):$equals_5(alg, 'mrtree')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new MrTreeMetaDataProvider])):$equals_5(alg, 'radial')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 0, [new RadialMetaDataProvider])):$equals_5(alg, 'disco')?$registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 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, 130, 0, [new SporeMetaDataProvider])):$equals_5(alg, 'rectpacking') && $registerLayoutMetaDataProviders(SERVICE, stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_elk_core_data_ILayoutMetaDataProvider_2_classLit, 1), $intern_2, 130, 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(1994, 67, $intern_140); +_.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_187(object){ + return this.delegateEquals(object); +} +; +_.get_0 = function get_51(index_0){ + return this.resolve(index_0, this.delegateGet(index_0)); +} +; +_.hashCode_1 = function hashCode_75(){ + 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_101(index_0){ + return $remove_34(this, index_0); +} +; +_.remove_1 = function remove_102(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_66(){ + 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_136(){ + return this.delegateToString(); +} +; +var Lorg_eclipse_emf_common_util_DelegatingEList_2_classLit = createForClass('org.eclipse.emf.common.util', 'DelegatingEList', 1994); +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(1995, 1994, $intern_140); +_.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_4(sourceIndex), object, targetIndex, oldIsSet)); + return object; + } + else { + return $move_0(this, targetIndex, sourceIndex); + } +} +; +_.remove_2 = function remove_103(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', 1995); +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, 143)) { + this$static.next_0 = castTo(newNotification, 143); + 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, 92).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_46; +} + +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 = valueOf_2($getNewByteValue(this$static)); + break; + case 2: + this$static.newValue = valueOf_3($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_5($getNewLongValue(this$static)); + break; + case 5: + this$static.newValue = valueOf_4($getNewIntValue(this$static)); + break; + case 7: + this$static.newValue = valueOf_6($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_46; +} + +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 = valueOf_2($getOldByteValue(this$static)); + break; + case 2: + this$static.oldValue = valueOf_3($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_5($getOldLongValue(this$static)); + break; + case 5: + this$static.oldValue = valueOf_4($getOldIntValue(this$static)); + break; + case 7: + this$static.oldValue = valueOf_6($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), 19).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, 217).value_0 != toInt_0(this$static.oldSimplePrimitiveValue) << 24 >> 24; + case 2: + return defaultValue != null && castTo(defaultValue, 172).value_0 != (toInt_0(this$static.oldSimplePrimitiveValue) & $intern_46); + case 6: + return defaultValue != null && neq(castTo(defaultValue, 162).value_0, this$static.oldSimplePrimitiveValue); + case 5: + return defaultValue != null && castTo(defaultValue, 19).value_0 != toInt_0(this$static.oldSimplePrimitiveValue); + case 7: + return defaultValue != null && castTo(defaultValue, 184).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, 155).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(143, 1, $intern_141); +_.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_48, 25, 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_48, 25, 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, 48); + newPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_137(){ + 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, 48)) { + positions = castTo(this.newValue, 48); + 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', 143); +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(1166, 143, $intern_141, 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', 1166); +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], 365); + 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(242, 63, $intern_137, NotificationChainImpl, NotificationChainImpl_0); +_.add_2 = function add_49(newNotification){ + return $add_23(this, castTo(newNotification, 365)); +} +; +_.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], 365); + notifier = notification.getNotifier(); + notifier != null && notification.getEventType() != -1 && castTo(notifier, 92).eNotify(notification); + } +} +; +_.newData = function newData_1(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Notification_2_classLit, $intern_2, 365, capacity, 0, 1); +} +; +var Lorg_eclipse_emf_common_notify_impl_NotificationChainImpl_2_classLit = createForClass('org.eclipse.emf.common.notify.impl', 'NotificationChainImpl', 242); +defineClass(1377, 90, $intern_133); +_.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', 1377); +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_4(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_48, 25, 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_48, 25, 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_48, 25, 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, 72), 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_48, 25, 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, 72), 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, 72), 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(1992, 63, $intern_137); +_.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_104(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', 1992); +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(1165, 143, $intern_141, 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', 1165); +function AbstractEList$1(this$0, $anonymous0){ + this.this$01 = this$0; + BasicEList_0.call(this, $anonymous0); +} + +defineClass(952, 63, $intern_137, 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', 952); +function AbstractEList$BasicIndexOutOfBoundsException(index_0, size_0){ + IndexOutOfBoundsException_0.call(this, 'index=' + index_0 + ', size=' + size_0); +} + +defineClass(295, 73, $intern_57, AbstractEList$BasicIndexOutOfBoundsException); +var Lorg_eclipse_emf_common_util_AbstractEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/BasicIndexOutOfBoundsException', 295); +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, 73)) { + 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, 73)) { + 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(40, 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_105(){ + $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', 40); +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, 73)) { + 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, 73)) { + 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(277, 40, $intern_14, AbstractEList$EListIterator, AbstractEList$EListIterator_0); +_.remove = function remove_106(){ + $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, 73)) { + 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', 277); +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, 73)) { + 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(340, 40, $intern_6, AbstractEList$NonResolvingEIterator); +_.doNext = function doNext_0(){ + return $doNext_0(this); +} +; +_.remove = function remove_107(){ + throw toJs(new UnsupportedOperationException); +} +; +var Lorg_eclipse_emf_common_util_AbstractEList$NonResolvingEIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'AbstractEList/NonResolvingEIterator', 340); +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(385, 277, $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, 73)) { + 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, 73)) { + this.checkModCount(); + throw toJs(new NoSuchElementException); + } + else + throw toJs($e0); + } +} +; +_.remove = function remove_108(){ + 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', 385); +function newInstance_11(componentType, size_0){ + var helper; + helper = castTo($get_10(($clinit_Reflect() , HELPER_REGISTRY), componentType), 55); + 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), 125); + if (data_0 != null) { + newData = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_142, 416, 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), 125); + data_0 = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_142, 416, 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), 125); + 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_142, 416, 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(1981, 67, $intern_143); +_.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), 125); + 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), 125) , 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), 125); + 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), 125) , 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), 125) , 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), 125); + 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), 125); + 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_52(index_0){ + var data_0, size_0; + data_0 = castTo($getField(this.this$01, 4), 125); + 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), 125); + 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), 125) == 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), 125) , 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), 125)[index_0]; +} +; +_.remove_2 = function remove_109(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_67(){ + var data_0; + return data_0 = castTo($getField(this.this$01, 4), 125) , 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), 125); + size_0 = data_0 == null?0:data_0.length; + result = initUnidimensionalArray(Lorg_eclipse_emf_common_notify_Adapter_2_classLit, $intern_142, 416, 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), 125); + 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', 1981); +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), 125); +} + +defineClass(1037, 40, $intern_6, ArrayDelegatingEList$EIterator); +_.checkModCount = function checkModCount_0(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 125)) !== maskUndefined(this.expectedData)) { + throw toJs(new ConcurrentModificationException); + } +} +; +_.remove = function remove_110(){ + $remove_36(this); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 125); +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EIterator', 1037); +function $$init_9(this$static){ + this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 125); +} + +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(706, 277, $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), 125)) !== 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), 125); +} +; +_.remove = function remove_111(){ + $remove_36(this); + this.expectedData = castTo($getField(this.this$01.this$01, 4), 125); +} +; +var Lorg_eclipse_emf_common_util_ArrayDelegatingEList$EListIterator_2_classLit = createForClass('org.eclipse.emf.common.util', 'ArrayDelegatingEList/EListIterator', 706); +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), 125); +} + +defineClass(1038, 340, $intern_6, ArrayDelegatingEList$NonResolvingEIterator); +_.checkModCount = function checkModCount_2(){ + if (this.this$01.modCount != this.expectedModCount || maskUndefined(castTo($getField(this.this$01.this$01, 4), 125)) !== 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', 1038); +function $$init_10(this$static){ + this$static.expectedData = castTo($getField(this$static.this$01.this$01, 4), 125); +} + +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(707, 385, $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), 125)) !== 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', 707); +function BasicEList$BasicIndexOutOfBoundsException(index_0, size_0){ + AbstractEList$BasicIndexOutOfBoundsException.call(this, index_0, size_0); +} + +defineClass(606, 295, $intern_57, BasicEList$BasicIndexOutOfBoundsException); +var Lorg_eclipse_emf_common_util_BasicEList$BasicIndexOutOfBoundsException_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEList/BasicIndexOutOfBoundsException', 606); +function BasicEList$UnmodifiableEList(size_0, data_0){ + this.size_0 = size_0; + this.data_0 = data_0; +} + +defineClass(696, 63, $intern_137, 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_112(index_0){ + throw toJs(new UnsupportedOperationException); +} +; +_.remove_1 = function remove_113(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', 696); +function $add_24(this$static, index_0, object){ + this$static.delegateEList.add_3(index_0, castTo(object, 133)); +} + +function $add_25(this$static, object){ + return this$static.delegateEList.add_2(castTo(object, 133)); +} + +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, 366); + 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, 366); + 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, 366); + 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], 133); + 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], 133); + 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], 133); + 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], 133); + 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_144, 63, 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], 133); + 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_1(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, 133)); +} + +function $put_13(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_0(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(), 42); + $put_13(this$static, entry.getKey(), entry.getValue()); + } +} + +function $remove_38(this$static, object){ + var result; + if (instanceOf(object, 42)) { + 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), 133); + 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_12(this$static, index_0, object){ + return castTo(this$static.delegateEList.set_2(index_0, castTo(object, 133)), 42); +} + +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(705, 1, {3:1, 20:1, 14:1, 15:1, 58:1, 589:1}); +_.add_3 = function add_55(index_0, object){ + $add_24(this, index_0, castTo(object, 42)); +} +; +_.add_2 = function add_56(object){ + return $add_25(this, castTo(object, 42)); +} +; +_.forEach_0 = function forEach_37(action){ + $forEach_0(this, action); +} +; +_.get_0 = function get_53(index_0){ + return castTo($get_20(this.delegateEList, index_0), 133); +} +; +_.move = function move_8(targetIndex, sourceIndex){ + return castTo(this.delegateEList.move(targetIndex, sourceIndex), 42); +} +; +_.move_0 = function move_9(index_0, object){ + $move_2(this, index_0, castTo(object, 42)); +} +; +_.parallelStream = function parallelStream_5(){ + return new StreamImpl(null, new Spliterators$IteratorSpliterator(this, 16)); +} +; +_.remove_2 = function remove_114(index_0){ + return castTo(this.delegateEList.remove_2(index_0), 42); +} +; +_.set_2 = function set_25(index_0, object){ + return $set_12(this, index_0, castTo(object, 42)); +} +; +_.sort_0 = function sort_12(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_144, 63, 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(), 133); + $doPut(this, entry); + } + this.modCount = oldModCount; + } +} +; +_.equals_0 = function equals_188(object){ + return $equals_12(this, object); +} +; +_.hashCode_1 = function hashCode_76(){ + return $hashCode_2(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_1(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_115(object){ + return $remove_38(this, object); +} +; +_.size_1 = function size_68(){ + 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_138(){ + 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', 705); +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(1032, 63, $intern_137, BasicEMap$1); +_.didAdd = function didAdd_0(index_0, newObject){ + $didAdd(this, castTo(newObject, 133)); +} +; +_.didMove = function didMove_0(index_0, movedObject, oldIndex){ + var lastArg; + ++(lastArg = this , castTo(movedObject, 133) , lastArg).this$01.modCount; +} +; +_.didRemove = function didRemove_0(index_0, oldObject){ + $didRemove(this, castTo(oldObject, 133)); +} +; +_.didSet = function didSet_0(index_0, newObject, oldObject){ + $didSet(this, castTo(newObject, 133), castTo(oldObject, 133)); +} +; +_.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', 1032); +function BasicEMap$2(){ +} + +defineClass(1033, 63, $intern_137, BasicEMap$2); +_.newData = function newData_2(listCapacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_BasicEMap$EntryImpl_2_classLit, $intern_145, 612, listCapacity, 0, 1); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$2_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/2', 1033); +function BasicEMap$3(this$0){ + this.this$01 = this$0; +} + +defineClass(1034, $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_116(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_69(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$3_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/3', 1034); +function BasicEMap$4(this$0){ + this.this$01 = this$0; +} + +defineClass(1035, 28, $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_70(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$4_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/4', 1035); +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, 42)) { + this$static.this$01.ensureEntryDataExists(); + otherEntry = castTo(object, 42); + 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, 366); + 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(1036, $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, 42)) { + this.this$01.ensureEntryDataExists(); + otherEntry = castTo(object, 42); + 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, 366); + 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_117(object){ + return $remove_39(this, object); +} +; +_.size_1 = function size_71(){ + return this.this$01.size_0; +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$5_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/5', 1036); +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(613, 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], 133); + return this.yield_0(result); +} +; +_.remove = function remove_118(){ + 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', 613); +function BasicEMap$BasicEMapKeyIterator(this$0){ + BasicEMap$BasicEMapIterator.call(this, this$0); +} + +defineClass(1030, 613, $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', 1030); +function BasicEMap$BasicEMapValueIterator(this$0){ + BasicEMap$BasicEMapIterator.call(this, this$0); +} + +defineClass(1031, 613, $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', 1031); +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(1029, 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_9(){ + return $entrySet_3(this.this$01); +} +; +_.equals_0 = function equals_189(object){ + return $equals_12(this.this$01, object); +} +; +_.get_3 = function get_54(key){ + return $get_21(this.this$01, key); +} +; +_.hashCode_1 = function hashCode_77(){ + return $hashCode_2(this.this$01.delegateEList); +} +; +_.isEmpty = function isEmpty_30(){ + return this.this$01.size_0 == 0; +} +; +_.keySet_0 = function keySet_18(){ + return $keySet_2(this.this$01); +} +; +_.put = function put_10(key, value_0){ + return $put_13(this.this$01, key, value_0); +} +; +_.remove_0 = function remove_119(key){ + return $removeKey(this.this$01, key); +} +; +_.size_1 = function size_72(){ + return this.this$01.size_0; +} +; +_.toString_0 = function toString_139(){ + return $toString_25(this.this$01.delegateEList); +} +; +_.values_0 = function values_118(){ + return $values_3(this.this$01); +} +; +var Lorg_eclipse_emf_common_util_BasicEMap$DelegatingMap_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/DelegatingMap', 1029); +function BasicEMap$EntryImpl(hash, key, value_0){ + this.hash = hash; + this.key = key; + this.value_0 = value_0; +} + +defineClass(612, 1, {42:1, 133:1, 612:1}, BasicEMap$EntryImpl); +_.equals_0 = function equals_190(object){ + var entry; + if (instanceOf(object, 42)) { + entry = castTo(object, 42); + 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_78(){ + 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_140(){ + 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', 612); +function BasicEMap$View(){ +} + +defineClass(536, 1, {}, BasicEMap$View); +var Lorg_eclipse_emf_common_util_BasicEMap$View_2_classLit = createForClass('org.eclipse.emf.common.util', 'BasicEMap/View', 536); +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_13(list, comparator){ + $clinit_ECollections(); + var i, listAsArray, objectComparator, oldIndex; + listAsArray = $toArray_11(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_13(){ + throw toJs(new UnsupportedOperationException); +} + +function ECollections$BasicEmptyUnmodifiableEList(){ + this.listIterator = new ECollections$BasicEmptyUnmodifiableEList$1; +} + +defineClass(768, 1, {}); +_.equals_0 = function equals_191(o){ + return $equals_2(($clinit_Collections() , EMPTY_LIST), o); +} +; +_.hashCode_1 = function hashCode_79(){ + return hashCode_48(($clinit_Collections() , EMPTY_LIST)); +} +; +_.toString_0 = function toString_141(){ + 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', 768); +function ECollections$BasicEmptyUnmodifiableEList$1(){ +} + +defineClass(1311, 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_120(){ + 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', 1311); +function ECollections$EmptyUnmodifiableEList(){ + ECollections$BasicEmptyUnmodifiableEList.call(this); +} + +defineClass(1309, 768, {20:1, 14:1, 15:1, 58: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_55(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_121(index_0){ + return $remove_40(); +} +; +_.remove_1 = function remove_122(o){ + return $remove_41(); +} +; +_.set_2 = function set_27(index_0, element){ + return $set_13(); +} +; +_.size_1 = function size_73(){ + return 0; +} +; +_.sort_0 = function sort_14(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', 1309); +function ECollections$EmptyUnmodifiableEMap(){ + ECollections$BasicEmptyUnmodifiableEList.call(this); +} + +defineClass(1310, 768, {20:1, 14:1, 15:1, 58:1, 589: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_56(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_123(index_0){ + return $remove_40(); +} +; +_.remove_1 = function remove_124(o){ + return $remove_41(); +} +; +_.set_2 = function set_28(index_0, element){ + return $set_13(); +} +; +_.size_1 = function size_74(){ + return 0; +} +; +_.sort_0 = function sort_15(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', 1310); +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_), 55); + 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 ^= getHashCode_1(scheme.toLowerCase())); + authority != null && (hashCode ^= getHashCode_1(authority)); + device != null && (hashCode ^= getHashCode_1(device)); + query != null && (hashCode ^= getHashCode_1(query)); + fragment != null && (hashCode ^= getHashCode_1(fragment)); + for (i = 0 , len = segments.length; i < len; i++) { + hashCode ^= getHashCode_1(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:uri_0.substr(0, i); + fragment = i == -1?null:uri_0.substr(i + 1); + result = $get_22(uriCache, base); + if (!result) { + result = parseIntoURI(base); + $put_14(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(value_0.substr(0, i)); + bytes = initUnidimensionalArray(B_classLit, $intern_136, 25, 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_46); + break; + } + + case 3: + { + $append_5(result, ((bytes[0] & 15) << 12 | (bytes[1] & 63) << 6 | bytes[2] & 63) & $intern_46); + break; + } + + } + receivedBytes = 0; + expectedBytes = 0; + } + } + else { + for (j = 0; j < receivedBytes; ++j) { + $append_5(result, bytes[j] & $intern_46); + } + receivedBytes = 0; + result.string += String.fromCharCode(character); + } + } + else { + for (j = 0; j < receivedBytes; ++j) { + $append_5(result, bytes[j] & $intern_46); + } + receivedBytes = 0; + $append_5(result, (checkCriticalStringElementIndex(i, value_0.length) , value_0.charCodeAt(i))); + } + } + return result.string; + } +} + +function equals_193(o1, o2){ + return o1 == null?o2 == null:$equals_5(o1, o2); +} + +function equals_194(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 = 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 = 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 = 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 = 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, 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[segmentList.array.length] = '' , true)); + } + segments = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_16, 2, segmentList.array.length, 6, 1); + $toArray_2(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 = 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_112(highHexDigit) << 4 | valueOf_112(lowHexDigit)) & $intern_46; +} + +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, 32)) + 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_112(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(280, 1, {280:1}, URI); +_.equals_0 = function equals_192(object){ + var uri_0; + if (this === object) + return true; + if (!instanceOf(object, 280)) + return false; + uri_0 = castTo(object, 280); + return this.hashCode_0 == uri_0.hashCode_0 && equals_194(this.scheme, uri_0.scheme) && equals_193(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_193(this.device, uri_0.device) && equals_193(this.query, uri_0.query) && equals_193(this.fragment, uri_0.fragment) && $segmentsEqual(this, uri_0); +} +; +_.hashCode_1 = function hashCode_80(){ + return this.hashCode_0; +} +; +_.toString_0 = function toString_142(){ + 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', 280); +function $get_22(this$static, key){ + return castTo(key == null?getEntryValueOrNull($getEntry_0(this$static.hashCodeMap, null)):$get_15(this$static.stringMap, key), 280); +} + +function $put_14(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), 280); +} + +function URI$URICache(){ + HashMap.call(this); +} + +defineClass(1090, 43, $intern_76, URI$URICache); +_.put = function put_11(key, value_0){ + return castTo($putStringValue(this, castToString(key), castTo(value_0, 280)), 280); +} +; +var Lorg_eclipse_emf_common_util_URI$URICache_2_classLit = createForClass('org.eclipse.emf.common.util', 'URI/URICache', 1090); +function UniqueEList(){ +} + +function UniqueEList_0(collection){ + BasicEList_0.call(this, collection.size_1()); + $addAll_9(this, collection); +} + +defineClass(497, 63, $intern_137, 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', 497); +function WrappedException(exception){ + $$init_0(this); + this.detailMessage = !exception?null:$toString_4(exception, exception.getMessage()); + this.cause_0 = exception; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +defineClass(581, 60, $intern_43, WrappedException); +var Lorg_eclipse_emf_common_util_WrappedException_2_classLit = createForClass('org.eclipse.emf.common.util', 'WrappedException', 581); +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(1182, 43, $intern_76, EDataType$Internal$ConversionDelegate$Factory$Registry$Impl); +_.get_3 = function get_57(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', 1182); +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(1028, 1, {}, EStructuralFeature$Internal$DynamicValueHolder$1); +_.toString_0 = function toString_143(){ + return 'NIL'; +} +; +var Lorg_eclipse_emf_ecore_EStructuralFeature$Internal$DynamicValueHolder$1_2_classLit = createForClass('org.eclipse.emf.ecore', 'EStructuralFeature/Internal/DynamicValueHolder/1', 1028); +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(1027, 43, $intern_76, EStructuralFeature$Internal$SettingDelegate$Factory$Registry$Impl); +_.get_3 = function get_58(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', 1027); +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), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAttributeEClass), 1), 18); + EANNOTATION = eINSTANCE_2.eAnnotationEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eAnnotationEClass), 4), 18); + ECLASS = eINSTANCE_2.eClassEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 1), 34); + ECLASS__ESUPER_TYPES = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 5), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 6), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 7), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 8), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 9), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 10), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 11), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 12), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 13), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 14), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassEClass), 15), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 2), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 3), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 4), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 5), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 6), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 7), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 8), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassEClass), 9), 59); + ECLASSIFIER = eINSTANCE_2.eClassifierEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eClassifierEClass), 5), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eClassifierEClass), 1), 59); + EDATA_TYPE = eINSTANCE_2.eDataTypeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eDataTypeEClass), 0), 34); + EENUM = eINSTANCE_2.eEnumEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumEClass), 0), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eEnumEClass), 2), 59); + EENUM_LITERAL = eINSTANCE_2.eEnumLiteralEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eEnumLiteralEClass), 3), 18); + EFACTORY = eINSTANCE_2.eFactoryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eFactoryEClass), 0), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eFactoryEClass), 2), 59); + EMODEL_ELEMENT = eINSTANCE_2.eModelElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eModelElementEClass), 0), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eModelElementEClass), 0), 59); + ENAMED_ELEMENT = eINSTANCE_2.eNamedElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eNamedElementEClass), 0), 34); + EOBJECT = eINSTANCE_2.eObjectEClass; + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 1), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 2), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 3), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 4), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 5), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 6), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 7), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 8), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 9), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 10), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 11), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 12), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 13), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eObjectEClass), 14), 59); + EOPERATION = eINSTANCE_2.eOperationEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 2), 18); + EOPERATION__EEXCEPTIONS = castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 4), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eOperationEClass), 1), 59); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eOperationEClass), 1), 18); + EPACKAGE = eINSTANCE_2.ePackageEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.ePackageEClass), 5), 18); + castTo($get_20($getEOperations(eINSTANCE_2.ePackageEClass), 0), 59); + EPARAMETER = eINSTANCE_2.eParameterEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eParameterEClass), 0), 18); + EREFERENCE = eINSTANCE_2.eReferenceEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eReferenceEClass), 5), 18); + ESTRUCTURAL_FEATURE = eINSTANCE_2.eStructuralFeatureEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 4), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 5), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 6), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStructuralFeatureEClass), 7), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 0), 59); + castTo($get_20($getEOperations(eINSTANCE_2.eStructuralFeatureEClass), 1), 59); + ETYPED_ELEMENT = eINSTANCE_2.eTypedElementEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 2), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 3), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 4), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 5), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 6), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypedElementEClass), 7), 18); + ESTRING_TO_STRING_MAP_ENTRY = eINSTANCE_2.eStringToStringMapEntryEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eStringToStringMapEntryEClass), 1), 34); + EGENERIC_TYPE = eINSTANCE_2.eGenericTypeEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 0), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 2), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 3), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 4), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eGenericTypeEClass), 5), 18); + castTo($get_20($getEOperations(eINSTANCE_2.eGenericTypeEClass), 0), 59); + ETYPE_PARAMETER = eINSTANCE_2.eTypeParameterEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_2.eTypeParameterEClass), 0), 18); + 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(535, 1, {72: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', 535); +function BasicEObjectImpl$4(this$0, val$eFeature){ + this.this$01 = this$0; + this.val$eFeature2 = val$eFeature; +} + +defineClass(1026, 1, $intern_146, BasicEObjectImpl$4); +_.get_6 = function get_59(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', 1026); +function $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(){ + $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl = emptyMethod; + NO_SETTINGS = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); +} + +defineClass(1982, 1, {108: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', 1982); +function BasicEObjectImpl$EPropertiesHolderImpl(){ + $clinit_BasicEObjectImpl$EPropertiesHolderBaseImpl(); +} + +defineClass(185, 1982, {108: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', 185); +function EObjectImpl(){ +} + +defineClass(506, 97, $intern_135, 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', 506); +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(780, 506, {105:1, 92:1, 90:1, 56:1, 108:1, 49:1, 97: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', 780); +function DynamicEObjectImpl$BasicEMapEntry(eClass){ + $clinit_DynamicEObjectImpl(); + DynamicEObjectImpl.call(this, eClass); + this.hash = -1; +} + +defineClass(1375, 780, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1}, DynamicEObjectImpl$BasicEMapEntry); +_.equals_0 = function equals_195(other){ + return this === other; +} +; +_.hashCode_1 = function hashCode_81(){ + return getHashCode_0(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', 1375); +function DynamicEObjectImpl$DynamicEPropertiesHolderImpl(){ +} + +defineClass(1376, 1, {108: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', 1376); +function $basicSetEModelElement(this$static, newEModelElement, msgs){ + msgs = $eBasicSetContainer(this$static, castTo(newEModelElement, 49), 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), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), this$static.eFlags_0 >> 16), 18)) , 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, 147); +} + +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, 49).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(510, 150, {105:1, 92:1, 90:1, 590:1, 147:1, 56:1, 108:1, 49:1, 97:1, 510:1, 150:1, 114:1, 115: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_1(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), 26) , !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, 147), msgs); + } + return feature = castTo($getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 66) , 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), 26) , !eClass?($clinit_EcorePackage$Literals() , EANNOTATION):eClass), featureID), 66) , 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), 26) , !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, 14)); + 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_14(this.details, newValue); + return; + case 3: + $setEModelElement(this, castTo(newValue, 147)); + 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, 14)); + 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, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EANNOTATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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), 26) , !eClass?EANNOTATION:eClass), featureID)); +} +; +_.toString_0 = function toString_144(){ + return $toString_27(this); +} +; +_.source = null; +var Lorg_eclipse_emf_ecore_impl_EAnnotationImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAnnotationImpl', 510); +function $addUnique_7(this$static, index_0, object){ + castTo(this$static.delegateEList, 69).addUnique(index_0, object); +} + +function $basicAdd_1(this$static, object, notifications){ + return castTo(this$static.delegateEList, 69).basicAdd(object, notifications); +} + +function $basicRemove_1(this$static, object, notifications){ + return castTo(this$static.delegateEList, 69).basicRemove(object, notifications); +} + +function $set_14(this$static, value_0){ + var mapValue; + if (instanceOf(value_0, 83)) { + castTo(this$static.delegateEList, 76).unset(); + mapValue = castTo(value_0, 83); + $putAll_0(this$static, mapValue); + } + else { + castTo(this$static.delegateEList, 76).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(151, 705, $intern_147, EcoreEMap); +_.addUnique = function addUnique_9(index_0, object){ + $addUnique_7(this, index_0, castTo(object, 42)); +} +; +_.basicAdd = function basicAdd(object, notifications){ + return $basicAdd_1(this, castTo(object, 42), notifications); +} +; +_.basicGet = function basicGet_0(index_0){ + return castTo(castTo(this.delegateEList, 69).basicGet(index_0), 133); +} +; +_.basicIterator = function basicIterator_1(){ + return castTo(this.delegateEList, 69).basicIterator(); +} +; +_.basicListIterator = function basicListIterator_3(){ + return castTo(this.delegateEList, 69).basicListIterator(); +} +; +_.basicListIterator_0 = function basicListIterator_4(index_0){ + return castTo(this.delegateEList, 69).basicListIterator_0(index_0); +} +; +_.basicRemove = function basicRemove(object, notifications){ + return $basicRemove_1(this, object, notifications); +} +; +_.get_6 = function get_60(resolve){ + return castTo(this.delegateEList, 76).get_6(resolve); +} +; +_.initializeDelegateEList = function initializeDelegateEList_0(){ +} +; +_.isSet_0 = function isSet_2(){ + return castTo(this.delegateEList, 76).isSet_0(); +} +; +_.newEntry = function newEntry_1(hash, key, value_0){ + var entry; + entry = castTo($getEPackage(this.entryEClass).getEFactoryInstance().create_3(this.entryEClass), 133); + 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_14(this, value_0); +} +; +_.unset = function unset_0(){ + castTo(this.delegateEList, 76).unset(); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEMap_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap', 151); +function EAnnotationImpl$1($anonymous0, $anonymous1, $anonymous2){ + EcoreEMap.call(this, $anonymous0, $anonymous1, $anonymous2, 2); +} + +defineClass(158, 151, $intern_147, 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_144, 63, 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(), 133); + 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', 158); +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, 49); + this$static.eType = castTo($eResolveProxy(this$static, oldEType), 138); + 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(283, 439, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 472:1, 49:1, 97:1, 150:1, 283:1, 114:1, 115: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_4(this.lowerBound); + case 5: + return valueOf_4(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), 26) , !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), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , 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), 26) , !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, 14)); + 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, 19).value_0); + return; + case 5: + this.setUpperBound(castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), null); + !!msgs && msgs.dispatch_0(); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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), 26) , !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_145(){ + return $toString_28(this); +} +; +_.lowerBound = 0; +_.upperBound = 1; +var Lorg_eclipse_emf_ecore_impl_ETypedElementImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypedElementImpl', 283); +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), 26) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 18)) , 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, 148)) { + ePackage = eType.getEPackage(); + if (ePackage) { + factory = ePackage.getEFactoryInstance(); + if (factory != this$static.defaultValueFactory) { + eDataType = castTo(eType, 148); + if (eDataType.isSerializable()) { + try { + this$static.defaultValue = factory.createFromString(eDataType, literal); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 78)) { + 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, 26); +} + +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_148) != 0; + newChangeable?(this$static.eFlags |= $intern_148):(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, 88) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 88)), 4); + $setName(this$static, newName); +} + +function $setTransient(this$static, newTransient){ + var oldTransient; + oldTransient = (this$static.eFlags & $intern_61) != 0; + newTransient?(this$static.eFlags |= $intern_61):(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_149) != 0; + newUnsettable?(this$static.eFlags |= $intern_149):(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_150) != 0; + newVolatile?(this$static.eFlags |= $intern_150):(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_148) != 0); + result.string += ', volatile: '; + $append_4(result, (this$static.eFlags & $intern_150) != 0); + result.string += ', transient: '; + $append_4(result, (this$static.eFlags & $intern_61) != 0); + result.string += ', defaultValueLiteral: '; + $append_3(result, this$static.defaultValueLiteral); + result.string += ', unsettable: '; + $append_4(result, (this$static.eFlags & $intern_149) != 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_148; +} + +defineClass(450, 283, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 150:1, 450:1, 283:1, 114:1, 115:1, 677: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_4(this.lowerBound); + case 5: + return valueOf_4(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_148) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_149) != 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), 26) , !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), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , 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), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , 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_148) == 0; + case 11: + return (this.eFlags & $intern_150) != 0; + case 12: + return (this.eFlags & $intern_61) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_149) != 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), 26) , !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, 14)); + 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, 19).value_0); + return; + case 5: + this.setUpperBound(castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), 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), 26) , !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, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 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), 26) , !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_149) != 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_149) != 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, 148)?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_149) != 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_149) != 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_149) != 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_149) != 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_149) != 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_149) != 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_149) != 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_149) != 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, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(castTo(eType, 26), this, eOpposite)):instanceOf(eType, 148)?dataClass == Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateMany_1(40, this)):(this.eFlags & $intern_149) != 0?!dataClass?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(castTo(eType, 148), 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, 148), 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_149) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(castTo(eType, 26), this)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):this.isResolveProxies_0()?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(castTo(eType, 26), this, eOpposite)):this.isResolveProxies_0()?!eOpposite?(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(castTo(eType, 26), this, eOpposite)):!eOpposite?(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(castTo(eType, 26), this)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObject(castTo(eType, 26), this)):(this.eFlags & $intern_149) != 0?(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(castTo(eType, 26), this, eOpposite)):(this.settingDelegate = new EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(castTo(eType, 26), this, eOpposite)); + } + return this.settingDelegate; +} +; +_.isChangeable = function isChangeable_0(){ + return (this.eFlags & $intern_148) != 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_149) != 0; +} +; +_.setExtendedMetaData_0 = function setExtendedMetaData_0(eStructuralFeatureExtendedMetaData){ + this.eStructuralFeatureExtendedMetaData = eStructuralFeatureExtendedMetaData; +} +; +_.setName = function setName_0(newName){ + $setName_0(this, newName); +} +; +_.toString_0 = function toString_146(){ + return $toString_29(this); +} +; +_.cachedIsFeatureMap = false; +_.featureID = 0; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl', 450); +function $basicGetEAttributeType(this$static){ + var eType; + if (!this$static.eAttributeType) { + eType = this$static.eType; + instanceOf(eType, 148) && (this$static.eAttributeType = castTo(eType, 148)); + } + 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, 148) && (this$static.eAttributeType = castTo(eType, 148)); + } + 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_134) != 0; + newID?(this$static.eFlags |= $intern_134):(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(322, 450, {105:1, 92:1, 90:1, 34:1, 147:1, 191:1, 56:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 322:1, 150:1, 450:1, 283:1, 114:1, 115:1, 677: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_4(this.lowerBound); + case 5: + return valueOf_4(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_148) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_149) != 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_134) != 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), 26) , !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_148) == 0; + case 11: + return (this.eFlags & $intern_150) != 0; + case 12: + return (this.eFlags & $intern_61) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_149) != 0; + case 16: + return (this.eFlags & $intern_17) != 0; + case 17: + return !!$getEContainingClass(this); + case 18: + return (this.eFlags & $intern_134) != 0; + case 19: + return !!$basicGetEAttributeType(this); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EATTRIBUTE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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, 14)); + 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, 19).value_0); + return; + case 5: + $setUpperBound_0(this, castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), 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), 26) , !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, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 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), 26) , !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_147(){ + 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_134) != 0); + result.string += ')'; + return result.string; +} +; +_.effectiveIsMany = 0; +var Lorg_eclipse_emf_ecore_impl_EAttributeImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EAttributeImpl', 322); +function $basicGetEPackage(this$static){ + if (this$static.eFlags_0 >> 16 != 6) + return null; + return castTo(this$static.eContainer, 235); +} + +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), 26) , !eClass?this$static.eStaticClass():eClass), this$static.eFlags_0 >> 16), 18)) , 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), 235); +} + +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, 60)) + 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 = 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, 60)) + 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, 19); + } + else if (instanceClass == F_classLit) { + return instanceOf(object, 155); + } + else if (instanceClass == B_classLit) { + return instanceOf(object, 217); + } + else if (instanceClass == C_classLit) { + return instanceOf(object, 172); + } + else if (instanceClass == D_classLit) { + return instanceOfDouble(object); + } + else if (instanceClass == S_classLit) { + return instanceOf(object, 184); + } + else if (instanceClass == J_classLit) { + return instanceOf(object, 162); + } + } + else { + return $clinit_Reflect() , helper = castTo($get_10(HELPER_REGISTRY, instanceClass), 55) , !helper || helper.isInstance(object); + } + } + else if (instanceOf(object, 56)) { + return this$static.dynamicIsInstance(castTo(object, 56)); + } + } + 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 = 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 += '' + 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 = 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 += '' + 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, 179) && (castTo(this$static.eContainer, 179).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(350, 439, {105:1, 92:1, 90:1, 138:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 350:1, 150:1, 114:1, 115:1, 676: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), 26) , !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), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , 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), 26) , !eClass?this.eStaticClass():eClass), featureID), 66) , 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), 26) , !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, 14)); + 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, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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, 179) && (castTo(this.eContainer, 179).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), 26) , !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_148(){ + 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', 350); +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_151, 170, 0, []); + NO_EALL_OPERATIONS_DATA = stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, 1), $intern_152, 59, 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), 26); + $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), 170); + instanceOf(eStructuralFeature, 322) && $add_21(attributes, castTo(eStructuralFeature, 34)); + } + $shrink_0(attributes); + this$static.eAttributes = new EClassImpl$4(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 7), 18) , 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), 18) , 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), 18); + (eReference.eFlags & $intern_134) != 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), 18) , 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), 87); + eSuperType = $getERawType(eGenericSuperType); + instanceOf(eSuperType, 88) && $addAll_9(result, $getEAllGenericSuperTypes(castTo(eSuperType, 26))); + $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), 18) , 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), 26); + $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), 399); + } + $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), 18) , result.size_0), result.data_0); + this$static.eAllOperationsData = castTo(result.data_0, 673); + 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), 26); + $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), 170); + instanceOf(eStructuralFeature, 99) && $add_21(references, castTo(eStructuralFeature, 18)); + } + $shrink_0(references); + this$static.eReferences = new EClassImpl$5(this$static, (castTo($get_20($getEStructuralFeatures(($clinit_EcorePackage() , eINSTANCE_2).eClassEClass), 6), 18) , 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), 18) , 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), 26); + $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), 450), 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, 247); + 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), 26); + 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), 18) , 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), 170); + key = eStructuralFeature.getName(); + duplicate = castTo(key == null?$put_9(result.hashCodeMap, null, eStructuralFeature):$put_10(result.stringMap, key, eStructuralFeature), 170); + !!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), 170); +} + +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(88, 350, {105:1, 92:1, 90:1, 26:1, 138:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 88:1, 350:1, 150:1, 473:1, 114:1, 115:1, 676: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), 26) , !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), 26) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 66) , 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), 26) , !eClass?($clinit_EcorePackage$Literals() , ECLASS):eClass), featureID), 66) , 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), 26) , !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, 14)); + 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, 14)); + 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, 14)); + 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, 14)); + 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, 14)); + return; + case 22: + $clear_13($getEGenericSuperTypes(this)); + $addAll_9($getEGenericSuperTypes(this), castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ECLASS)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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, 179) && (castTo(this.eContainer, 179).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), 26) , !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_149(){ + 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', 88); +defineClass(1993, 1992, $intern_153); +_.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', 1993); +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, 49); + 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], 56)); + if (maskUndefined(containedEObject) === maskUndefined(object)) { + return true; + } + } + } + return result0; + } + else if (this$static.hasNavigableInverse() && !this$static.hasManyInverse()) { + opposite = castTo(object, 56).eGet_0($getEOpposite(castTo(this$static.getEStructuralFeature(), 18))); + if (maskUndefined(opposite) === maskUndefined(this$static.owner)) { + return true; + } + else if (opposite == null || !castTo(opposite, 56).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], 56)); + 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], 56)); + 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, 49).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_15(this$static, newValue){ + $clear_13(this$static); + this$static.addAll(castTo(newValue, 15)); +} + +function $toArray_11(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_9(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(622, 1993, $intern_154); +_.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_61(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(), 26).getInstanceClass(); +} +; +_.getInverseFeatureID = function getInverseFeatureID(){ + return $getEOpposite(castTo(this.getEStructuralFeature(), 18)).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, 49) , 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(), 18))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.inverseRemove = function inverseRemove_1(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 49) , 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(), 18))), 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, 56)):object; +} +; +_.resolveProxy = function resolveProxy(eObject){ + return eObject.eIsProxy()?$eResolveProxy(this.owner, castTo(eObject, 49)):eObject; +} +; +_.set_1 = function set_31(newValue){ + $set_15(this, newValue); +} +; +_.toArray = function toArray_38(){ + return $toArray_11(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_10(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', 622); +function EObjectEList(dataClass, owner, featureID){ + EcoreEList.call(this, dataClass, owner); + this.featureID = featureID; +} + +defineClass(496, 622, $intern_154, 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', 496); +function EObjectContainmentEList(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(85, 496, $intern_154, 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', 85); +function EObjectContainmentEList$Unsettable(dataClass, owner, featureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); +} + +defineClass(545, 85, $intern_154, 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', 545); +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), 87); + 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, 88)?castTo(result, 26):($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, 88)?castTo(result, 26):($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, 88)?castTo(result0, 26):($clinit_EcorePackage$Literals() , EOBJECT)), (result = newEGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($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(1139, 545, $intern_154, EClassImpl$1); +_.move = function move_14(targetIndex, sourceIndex){ + var result0, result; + return result0 = castTo($move_1(this, targetIndex, sourceIndex), 87) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , ECLASS__ESUPER_TYPES), valueOf_4(sourceIndex), (result = result0.eRawType , instanceOf(result, 88)?castTo(result, 26):EOBJECT), targetIndex)) , result0; +} +; +_.shadowAdd = function shadowAdd_0(eGenericType, notifications){ + return $shadowAdd(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowRemove = function shadowRemove_0(eGenericType, notifications){ + return $shadowRemove(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowSet = function shadowSet_0(oldEGenericType, newEGenericType, notifications){ + return $shadowSet(this, castTo(oldEGenericType, 87), castTo(newEGenericType, 87), 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', 1139); +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), 473); + 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(1153, 1152, $intern_139); +_.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, 473)); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $remove_32(eSuperAdapter.subclasses, notification.getNotifier()); + } + newValue = notification.getNewValue(); + if (newValue != null) { + holder = castTo(newValue, 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); + } + } + break; + } + + case 3: + { + newValue = notification.getNewValue(); + if (newValue != null) { + holder = castTo(newValue, 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); + } + } + break; + } + + case 5: + { + newValue = notification.getNewValue(); + if (newValue != null) { + for (i = castTo(newValue, 14).iterator_0(); i.hasNext_0();) { + holder = castTo(i.next_1(), 473); + if ((holder.eFlags & 1) == 0) { + eSuperAdapter = $getESuperAdapter(holder); + !eSuperAdapter.subclasses && (eSuperAdapter.subclasses = new ESuperAdapter$1); + $add_21(eSuperAdapter.subclasses, castTo(notification.getNotifier(), 26)); + } + } + } + break; + } + + case 4: + { + oldValue = notification.getOldValue(); + if (oldValue != null) { + holder = castTo(oldValue, 473); + 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, 14).iterator_0(); i.hasNext_0();) { + holder = castTo(i.next_1(), 473); + 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', 1153); +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(1154, 1153, $intern_139, 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', 1154); +defineClass(1143, 696, $intern_154); +_.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_62(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', 1143); +function EcoreEList$UnmodifiableEList$FastCompare(size_0, data_0){ + BasicEList$UnmodifiableEList.call(this, size_0, data_0); +} + +defineClass(319, 1143, $intern_154, 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', 319); +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], 170); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + (eReference.eFlags & $intern_134) != 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_134) != 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, 66).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, 247); + castTo(crossReferencesList.data_0, 247); +} + +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), 18) , eAllStructuralFeatures.size_0), eAllStructuralFeatures.data_0); + this.containments = ($clinit_EClassImpl() , NO_EALL_STRUCTURE_FEATURES_DATA); +} + +defineClass(1146, 319, $intern_154, EClassImpl$1EAllStructuralFeaturesList); +_.indexOf_0 = function indexOf_16(object){ + var eStructuralFeature, index_0, last; + if (instanceOf(object, 170)) { + eStructuralFeature = castTo(object, 170); + 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', 1146); +function $eliminateEquivalentDuplicates(this$static){ + var eGenericType, eGenericTypes, i, j, otherEGenericType; + eGenericTypes = castTo(this$static.data_0, 674); + 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), 87); + otherETypeArgument = castTo($get_20(otherETypeArguments, j), 87); + 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, 674); + 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), 87)); + } + } + } + } + return eGenericType; +} + +function EClassImpl$1EGenericSuperTypeEList(){ +} + +defineClass(1140, 497, $intern_137, EClassImpl$1EGenericSuperTypeEList); +_.newData = function newData_4(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_155, 87, 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', 1140); +function EClassImpl$1EStructuralFeatureUniqueEList(){ +} + +defineClass(623, 497, $intern_137, EClassImpl$1EStructuralFeatureUniqueEList); +_.newData = function newData_5(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_151, 170, 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', 623); +function EClassImpl$1ReferenceList(){ +} + +defineClass(741, 497, $intern_137, EClassImpl$1ReferenceList); +_.newData = function newData_6(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, 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', 741); +function $didAdd_0(this$static, eAttribute){ + (eAttribute.eFlags & $intern_134) != 0 && !this$static.this$01.eIDAttribute && (this$static.this$01.eIDAttribute = eAttribute); +} + +function EClassImpl$2(this$0){ + this.this$01 = this$0; +} + +defineClass(1141, 497, $intern_137, EClassImpl$2); +_.didAdd = function didAdd_1(index_0, eAttribute){ + $didAdd_0(this, castTo(eAttribute, 34)); +} +; +_.newData = function newData_7(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, 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', 1141); +function EClassImpl$3(){ +} + +defineClass(1142, 497, $intern_137, EClassImpl$3); +_.newData = function newData_8(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, 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', 1142); +function $add_28(this$static, object){ + $clinit_System(); + 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(1144, 319, $intern_154, EClassImpl$4); +_.add_2 = function add_62(object){ + return $add_28(this, castTo(object, 34)); +} +; +_.addUnique_0 = function addUnique_14(object){ + $addUnique_8(this, castTo(object, 34)); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/4', 1144); +function $add_29(this$static, object){ + $clinit_System(); + 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(1145, 319, $intern_154, EClassImpl$5); +_.add_2 = function add_63(object){ + return $add_29(this, castTo(object, 18)); +} +; +_.addUnique_0 = function addUnique_15(object){ + $addUnique_9(this, castTo(object, 18)); +} +; +var Lorg_eclipse_emf_ecore_impl_EClassImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/5', 1145); +function EClassImpl$6(){ +} + +defineClass(1147, 497, $intern_137, EClassImpl$6); +_.newData = function newData_9(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_152, 59, 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', 1147); +function EClassImpl$7(){ +} + +defineClass(1148, 497, $intern_137, EClassImpl$7); +_.newData = function newData_10(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, 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', 1148); +defineClass(1996, 1995, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 67:1, 58:1, 69: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', 1996); +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, 56)); + 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, 49) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject0.eInverseRemove(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 26).getInstanceClass(), null):internalEObject0.eInverseRemove(this$static.owner, $getFeatureID(internalEObject0.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18))), null, null):internalEObject0.eInverseRemove(this$static.owner, -1 - this$static.getFeatureID_0(), null, null)); + !castTo(resolved, 49).eInternalContainer() && (notificationChain = (internalEObject = castTo(resolved, 49) , this$static.hasNavigableInverse()?this$static.hasInstanceClass()?internalEObject.eInverseAdd(this$static.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()).getEType(), 26).getInstanceClass(), notificationChain):internalEObject.eInverseAdd(this$static.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this$static.owner), this$static.getFeatureID_0()), 18))), 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, 49)):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(742, 1996, $intern_156); +_.canContainNull = function canContainNull_3(){ + var eClassifier; + eClassifier = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(); + return instanceOf(eClassifier, 148) && !instanceOf(eClassifier, 457) && (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, 49); + eContainer = eObject.eContainer_0(); + result0 = eContainer == this.owner && (this.hasNavigableInverse()?eObject.eBaseStructuralFeatureID(eObject.eContainerFeatureID_0(), castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass()) == $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).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, 56).eGet_0($getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))); + if (maskUndefined(opposite) === maskUndefined(this.owner)) { + return true; + } + else if (opposite == null || !castTo(opposite, 56).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_63(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, 99)) { + eReference = castTo(eStructuralFeature, 18); + return (eReference.eFlags & $intern_134) != 0 || !!$getEOpposite(castTo(eStructuralFeature, 18)); + } + else { + return false; + } +} +; +_.hasManyInverse = function hasManyInverse_0(){ + var eReference, eStructuralFeature, oppositeEReference, upper; + eStructuralFeature = $getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + 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, 99)) { + eReference = castTo(eStructuralFeature, 18); + 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, 99)) { + eReference = castTo(eStructuralFeature, 18); + return (eReference.eFlags & $intern_63) != 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, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseAdd(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass(), notifications):internalEObject.eInverseAdd(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))), null, notifications):internalEObject.eInverseAdd(this.owner, -1 - this.getFeatureID_0(), null, notifications); +} +; +_.inverseRemove = function inverseRemove_2(object, notifications){ + var internalEObject; + return internalEObject = castTo(object, 49) , this.hasNavigableInverse()?this.hasInstanceClass()?internalEObject.eInverseRemove(this.owner, $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18)).featureID, castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 26).getInstanceClass(), notifications):internalEObject.eInverseRemove(this.owner, $getFeatureID(internalEObject.eClass_0(), $getEOpposite(castTo($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()), 18))), 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, 99)) { + eReference = castTo(eStructuralFeature, 18); + return (eReference.eFlags & $intern_134) != 0; + } + else { + return false; + } +} +; +_.isEObject = function isEObject_1(){ + return instanceOf($getEStructuralFeature($eClass(this.owner), this.getFeatureID_0()).getEType(), 88); +} +; +_.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', 742); +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), 26); + 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), 87); + result0 = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($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(1149, 742, $intern_156, EClassImpl$8); +_.delegateAdd = function delegateAdd_1(index_0, eClass){ + $delegateAdd(this, index_0, castTo(eClass, 26)); +} +; +_.delegateAdd_0 = function delegateAdd_2(eClass){ + $delegateAdd_0(this, castTo(eClass, 26)); +} +; +_.delegateGet = function delegateGet_0(index_0){ + var eGenericType, result; + return eGenericType = castTo($get_20($getEGenericSuperTypes(this.this$01), index_0), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT); +} +; +_.delegateRemove = function delegateRemove_0(index_0){ + var eGenericType, result; + return eGenericType = castTo($remove_35($getEGenericSuperTypes(this.this$01), index_0), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT); +} +; +_.delegateSet = function delegateSet_0(index_0, eClass){ + return $delegateSet(this, index_0, castTo(eClass, 26)); +} +; +_.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), 87); + object = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT)); + hashCode = 31 * hashCode + (!object?0:getHashCode_0(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), 87); + if (maskUndefined(object) === maskUndefined((result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($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), 87); + result0[index_0++] = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($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), 87); + rawType = (result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($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_7((result = castTo($get_20(eGenericSuperTypes, i), 87).eRawType , instanceOf(result, 88)?castTo(result, 26):($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, 88); +} +; +_.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', 1149); +function EClassImpl$8$1(this$1){ + this.this$11 = this$1; +} + +defineClass(1150, 1963, $intern_37, EClassImpl$8$1); +_.listIterator_1 = function listIterator_29(index_0){ + return $basicListIterator(this.this$11, index_0); +} +; +_.size_1 = function size_75(){ + 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', 1150); +function EClassImpl$9(){ +} + +defineClass(1151, 497, $intern_137, EClassImpl$9); +_.newData = function newData_11(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 138, 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', 1151); +function EClassImpl$MyHashSet(){ + HashSet.call(this); +} + +defineClass(1138, 53, $intern_77, EClassImpl$MyHashSet); +var Lorg_eclipse_emf_ecore_impl_EClassImpl$MyHashSet_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EClassImpl/MyHashSet', 1138); +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(566, 350, {105:1, 92:1, 90:1, 138:1, 148:1, 833:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 350:1, 150:1, 114:1, 115:1, 676: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), 26) , !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), 26) , !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, 14)); + 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, 14)); + return; + case 8: + $setSerializable(this, $booleanValue(castToBoolean(newValue))); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(this.eStaticClass()), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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, 179) && (castTo(this.eContainer, 179).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), 26) , !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, 102)) + 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_4(0)):instanceClass == F_classLit?(this.defaultValue = new Float(0)):instanceClass == D_classLit?(this.defaultValue = 0):instanceClass == J_classLit?(this.defaultValue = valueOf_5(0)):instanceClass == S_classLit?(this.defaultValue = valueOf_6(0)):instanceClass == B_classLit?(this.defaultValue = valueOf_2(0)):(this.defaultValue = valueOf_3(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_150(){ + 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', 566); +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), 678)); + } + 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), 678); + 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), 678); + if ($equals_5(literal, (result = eEnumLiteral.literal , result == null?eEnumLiteral.name_0:result))) { + return eEnumLiteral; + } + } + } + return null; +} + +function EEnumImpl(){ + EDataTypeImpl.call(this); +} + +defineClass(457, 566, {105:1, 92:1, 90:1, 138:1, 148:1, 833:1, 671:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 350:1, 457:1, 150:1, 114:1, 115:1, 676: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), 26) , !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), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 66) , 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), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM):eClass), featureID), 66) , 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), 26) , !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, 14)); + 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, 14)); + 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, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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, 179) && (castTo(this.eContainer, 179).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), 26) , !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', 457); +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), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), this$static.eFlags_0 >> 16), 18)) , 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(573, 439, {105:1, 92:1, 90:1, 1939:1, 678:1, 147:1, 191:1, 56:1, 108:1, 49:1, 97:1, 573:1, 150:1, 114:1, 115: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_4(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, 671):null; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 66) , 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), 26) , !eClass?($clinit_EcorePackage$Literals() , EENUM_LITERAL):eClass), featureID), 66) , 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, 671):null); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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, 14)); + return; + case 1: + $setName(this, castToString(newValue)); + return; + case 2: + $setValue_1(this, castTo(newValue, 19).value_0); + return; + case 3: + $setInstance(this, castTo(newValue, 1939)); + return; + case 4: + $setLiteral(this, castToString(newValue)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EENUM_LITERAL)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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), 26) , !eClass?EENUM_LITERAL:eClass), featureID)); +} +; +_.toString_0 = function toString_151(){ + 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', 573); +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(489, 1, {2014:1}, EFactoryImpl$1ClientInternalEDateTimeFormat); +var Lorg_eclipse_emf_ecore_impl_EFactoryImpl$1ClientInternalEDateTimeFormat_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EFactoryImpl/1ClientInternalEDateTimeFormat', 489); +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, 49); + this$static.eClassifier = castTo($eResolveProxy(this$static, oldEClassifier), 138); + 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, 49); + this$static.eRawType = castTo($eResolveProxy(this$static, oldERawType), 138); + 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, 399)) { + 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, 59)), this$static))); + } + else if (instanceOf(this$static.eContainer, 88)) { + if (this$static.eFlags_0 >> 16 == -23 && this$static.eContainer.eNotificationRequired()) { + newERawType = this$static.eRawType; + instanceOf(newERawType, 88) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + instanceOf(oldERawType, 88) || (oldERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + $dispatch(new ENotificationImpl_2(this$static.eContainer, 9, 10, oldERawType, newERawType, $indexOf_6($getEGenericSuperTypes(castTo(this$static.eContainer, 26)), 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, 88) || instanceOf(this$static.eContainer, 99); + needEDataType = !needEClass && instanceOf(this$static.eContainer, 322); + 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), 87); + eRawType = $getERawType(eBound); + if (needEClass?instanceOf(eRawType, 88):needEDataType?instanceOf(eRawType, 148):!!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, 283)) { + if (this$static.eFlags_0 >> 16 == -10) { + msgs = castTo(this$static.eContainer, 283).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, 59)), this$static), false); + !msgs?(msgs = notification):msgs.add_5(notification); + } + } + } + else if (instanceOf(this$static.eContainer, 88)) { + if (this$static.eFlags_0 >> 16 == -23) { + instanceOf(newERawType, 88) || (newERawType = ($clinit_EcorePackage$Literals() , EOBJECT)); + instanceOf(oldERawType, 88) || (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, 26)), this$static), false); + !msgs?(msgs = notification):msgs.add_5(notification); + } + } + } + else if (instanceOf(this$static.eContainer, 445)) { + eTypeParameter = castTo(this$static.eContainer, 835); + 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_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); + 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 = 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), 87); + 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(241, 115, {105:1, 92:1, 90:1, 87:1, 56:1, 108:1, 49:1, 97:1, 241:1, 114:1, 115:1}, EGenericTypeImpl); +_.eBasicSetContainer_0 = function eBasicSetContainer_6(newContainer, newContainerFeatureID, msgs){ + var newERawType; + msgs = $eBasicSetContainer(this, newContainer, newContainerFeatureID, msgs); + if (!!this.eTypeParameter && instanceOf(newContainer, 170)) { + 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), 26) , !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), 26) , !eClass?($clinit_EcorePackage$Literals() , EGENERIC_TYPE):eClass), featureID), 66) , 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), 26) , !eClass?EGENERIC_TYPE:eClass), featureID)); +} +; +_.eSet = function eSet_24(featureID, newValue){ + var eClass; + switch (featureID) { + case 0: + $setEUpperBound(this, castTo(newValue, 87)); + 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, 14)); + return; + case 3: + $setELowerBound(this, castTo(newValue, 87)); + return; + case 4: + $setETypeParameter(this, castTo(newValue, 835)); + return; + case 5: + $setEClassifier(this, castTo(newValue, 138)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EGENERIC_TYPE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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), 26) , !eClass?EGENERIC_TYPE:eClass), featureID)); +} +; +_.toString_0 = function toString_152(){ + 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', 241); +function $addUnique_10(this$static, index_0, object){ + var iter; + iter = this$static.listIterator_1(index_0); + iter.add_1(object); +} + +defineClass(1968, 1963, $intern_157); +_.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', 1968); +function $clinit_EContentsEList(){ + $clinit_EContentsEList = emptyMethod; + EMPTY_CONTENTS_ELIST = new EContentsEList$1; +} + +function $isIncludedEntry(eStructuralFeature){ + return instanceOf(eStructuralFeature, 99) && (castTo(eStructuralFeature, 18).eFlags & $intern_134) != 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(486, 1968, $intern_157, 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_15(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, 66).isFeatureMap_0()) { + featureMap = castTo(value_0, 153); + 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, 14).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_15(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_76(){ + 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, 66).isFeatureMap_0()) { + featureMap = castTo(value_0, 153); + 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, 14).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', 486); +function ENamedElementImpl$1($anonymous0, $anonymous1){ + $clinit_EContentsEList(); + EContentsEList.call(this, $anonymous0, $anonymous1); +} + +defineClass(1155, 486, $intern_157, 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', 1155); +function $clinit_EContentsEList$FeatureIteratorImpl(){ + $clinit_EContentsEList$FeatureIteratorImpl = emptyMethod; + EMPTY_ITERATOR = new EContentsEList$FeatureIteratorImpl$1; +} + +function $next_15(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), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 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(), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 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), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 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(), 72); + entryFeature = entry.getEStructuralFeature(); + if (instanceOf(entryFeature, 99) && (castTo(entryFeature, 18).eFlags & $intern_134) != 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(278, 1, $intern_158, 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, 66).isFeatureMap_0()); + if (this.isHandlingFeatureMap || feature.isMany()) { + if (this.resolve_0()) { + newValueList = castTo(value_0, 15); + this.valueList = newValueList; + } + else { + newValueList = castTo(value_0, 69); + this.valueList = this.valueInternalEList = newValueList; + } + if (instanceOf(this.valueList, 54)) { + 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, 72); + 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, 72); + 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, 66).isFeatureMap_0()); + if (this.isHandlingFeatureMap || feature.isMany()) { + if (this.resolve_0()) { + newValueList = castTo(value_0, 15); + this.valueList = newValueList; + } + else { + newValueList = castTo(value_0, 69); + this.valueList = this.valueInternalEList = newValueList; + } + if (instanceOf(this.valueList, 54)) { + 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, 72); + 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, 72); + 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_15(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_125(){ + 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', 278); +function EContentsEList$ResolvingFeatureIteratorImpl(eObject, eStructuralFeatures){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$FeatureIteratorImpl.call(this, eObject, eStructuralFeatures); +} + +defineClass(697, 278, $intern_158, 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', 697); +function ENamedElementImpl$1$1($anonymous0, $anonymous1){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$ResolvingFeatureIteratorImpl.call(this, $anonymous0, $anonymous1); +} + +defineClass(1156, 697, $intern_158, 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', 1156); +function ENamedElementImpl$1$2($anonymous0, $anonymous1){ + $clinit_EContentsEList$FeatureIteratorImpl(); + EContentsEList$FeatureIteratorImpl.call(this, $anonymous0, $anonymous1); +} + +defineClass(1157, 278, $intern_158, 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', 1157); +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(36, 143, $intern_141, 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', 36); +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), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), this$static.eFlags_0 >> 16), 18)) , 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(399, 283, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 59:1, 108:1, 472:1, 49:1, 97:1, 150:1, 399:1, 283:1, 114:1, 115: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_4(this.lowerBound); + case 5: + return valueOf_4(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, 26):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), 26) , !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), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 66) , 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), 26) , !eClass?($clinit_EcorePackage$Literals() , EOPERATION):eClass), featureID), 66) , 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, 26):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), 26) , !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, 14)); + 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, 19).value_0); + return; + case 5: + $setUpperBound(this, castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), 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, 14)); + 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, 14)); + 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, 14)); + return; + case 14: + $clear_13($getEGenericExceptions(this)); + $addAll_9($getEGenericExceptions(this), castTo(newValue, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EOPERATION)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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), 26) , !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', 399); +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), 138); + 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), 87); + result0 = (result = eGenericType.eRawType , result?result:($clinit_EcorePackage$Literals() , EJAVA_OBJECT)); + (result0.eIsProxy()?$eResolveProxy(this$static.owner, castTo(result0, 49)):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(505, 742, $intern_156, EOperationImpl$1); +_.delegateAdd = function delegateAdd_3(index_0, eClassifier){ + $delegateAdd_1(this, index_0, castTo(eClassifier, 138)); +} +; +_.delegateAdd_0 = function delegateAdd_4(eClassifier){ + $delegateAdd_2(this, castTo(eClassifier, 138)); +} +; +_.delegateGet = function delegateGet_1(index_0){ + var eGenericType, result; + return eGenericType = castTo($get_20($getEGenericExceptions(this.this$01), index_0), 87) , 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), 87) , 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, 138)); +} +; +_.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), 87); + 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), 87); + 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), 87); + 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), 87); + 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_7((result = castTo($get_20(eGenericExceptions, i), 87).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, 138); +} +; +_.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', 505); +function EOperationImpl$1$1(this$1){ + this.this$11 = this$1; +} + +defineClass(1339, 1963, $intern_37, EOperationImpl$1$1); +_.listIterator_1 = function listIterator_31(index_0){ + return $basicListIterator(this.this$11, index_0); +} +; +_.size_1 = function size_77(){ + 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', 1339); +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), 87); + 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(1340, 545, $intern_154, EOperationImpl$2); +_.move = function move_19(targetIndex, sourceIndex){ + var result0, result; + return result0 = castTo($move_1(this, targetIndex, sourceIndex), 87) , $eNotificationRequired(this.owner) && $dispatchNotification(this, new ENotificationImpl_18(this.this$01, 7, ($clinit_EcorePackage$Literals() , EOPERATION__EEXCEPTIONS), valueOf_4(sourceIndex), (result = result0.eRawType , result?result:EJAVA_OBJECT), targetIndex)) , result0; +} +; +_.shadowAdd = function shadowAdd_1(eGenericType, notifications){ + return $shadowAdd_0(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowRemove = function shadowRemove_1(eGenericType, notifications){ + return $shadowRemove_0(this, castTo(eGenericType, 87), notifications); +} +; +_.shadowSet = function shadowSet_1(oldEGenericType, newEGenericType, notifications){ + return $shadowSet_0(this, castTo(oldEGenericType, 87), castTo(newEGenericType, 87), 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', 1340); +function EPackageImpl$1(this$0, val$factory){ + this.this$01 = this$0; + this.val$factory2 = val$factory; +} + +defineClass(498, 1, {1937:1, 498:1}, EPackageImpl$1); +var Lorg_eclipse_emf_ecore_impl_EPackageImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/1', 498); +function EObjectContainmentWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); + this.inverseFeatureID = inverseFeatureID; +} + +defineClass(16, 85, $intern_154, 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', 16); +function EObjectContainmentWithInverseEList$Resolving(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(352, 16, $intern_154, EObjectContainmentWithInverseEList$Resolving); +_.hasProxies = function hasProxies_3(){ + return true; +} +; +_.resolve = function resolve_7(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Resolving', 352); +function EPackageImpl$2(this$0, $anonymous0, $anonymous1){ + this.this$01 = this$0; + EObjectContainmentWithInverseEList$Resolving.call(this, $anonymous0, $anonymous1, 5, 6); +} + +defineClass(298, 352, $intern_154, 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', 298); +function EPackageImpl$3(){ +} + +defineClass(1227, 1, {}, EPackageImpl$3); +var Lorg_eclipse_emf_ecore_impl_EPackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EPackageImpl/3', 1227); +function $getEFactory(this$static, nsURI){ + var ePackage, ePackageDescriptor, result; + ePackage = $get_15(this$static.stringMap, nsURI); + if (instanceOf(ePackage, 235)) { + result = castTo(ePackage, 235); + result.getNsURI() == null && undefined; + return result.getEFactoryInstance(); + } + else if (instanceOf(ePackage, 498)) { + ePackageDescriptor = castTo(ePackage, 1937); + 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, 235)) { + result = castTo(ePackage, 235); + result.getNsURI() == null && undefined; + return result; + } + else if (instanceOf(ePackage, 498)) { + ePackageDescriptor = castTo(ePackage, 1937); + 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(718, 43, $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', 718); +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), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), this$static.eFlags_0 >> 16), 18)) , this$static.eContainer.eInverseRemove(this$static, inverseFeature.featureID, inverseFeature.containerClass, msgs); +} + +function EParameterImpl(){ + ETypedElementImpl.call(this); +} + +defineClass(509, 283, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 2016:1, 108:1, 472:1, 49:1, 97:1, 150:1, 509:1, 283:1, 114:1, 115: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_4(this.lowerBound); + case 5: + return valueOf_4(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, 59):null; + } + return $eDynamicGet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 66) , 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), 26) , !eClass?($clinit_EcorePackage$Literals() , EPARAMETER):eClass), featureID), 66) , 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, 59):null); + } + return $eDynamicIsSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EPARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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', 509); +function $basicGetEReferenceType(this$static){ + var eType; + if (!this$static.eReferenceType) { + eType = this$static.eType; + instanceOf(eType, 88) && (this$static.eReferenceType = castTo(eType, 26)); + } + 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), 18); + 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, 88) && (this$static.eReferenceType = castTo(eType, 26)); + } + return this$static.eReferenceType; +} + +function $setContainment(this$static, value_0){ + $setContainmentGen(this$static, value_0); + instanceOf(this$static.eContainer, 88) && $setFlags_0($getESuperAdapter(castTo(this$static.eContainer, 88)), 2); +} + +function $setContainmentGen(this$static, newContainment){ + var oldContainment; + oldContainment = (this$static.eFlags & $intern_134) != 0; + newContainment?(this$static.eFlags |= $intern_134):(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_63) != 0; + newResolveProxies?(this$static.eFlags |= $intern_63):(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_63; +} + +defineClass(99, 450, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 18:1, 170:1, 66:1, 108:1, 472:1, 49:1, 97:1, 150:1, 99:1, 450:1, 283:1, 114:1, 115:1, 677: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_4(this.lowerBound); + case 5: + return valueOf_4(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_148) != 0?true:false; + case 11: + return $clinit_Boolean() , (this.eFlags & $intern_150) != 0?true:false; + case 12: + return $clinit_Boolean() , (this.eFlags & $intern_61) != 0?true:false; + case 13: + return this.defaultValueLiteral; + case 14: + return $getDefaultValue(this); + case 15: + return $clinit_Boolean() , (this.eFlags & $intern_149) != 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_134) != 0?true:false; + case 19: + return $clinit_Boolean() , theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0?true:false; + case 20: + return $clinit_Boolean() , (this.eFlags & $intern_63) != 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), 26) , !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_148) == 0; + case 11: + return (this.eFlags & $intern_150) != 0; + case 12: + return (this.eFlags & $intern_61) != 0; + case 13: + return this.defaultValueLiteral != null; + case 14: + return $getDefaultValue(this) != null; + case 15: + return (this.eFlags & $intern_149) != 0; + case 16: + return (this.eFlags & $intern_17) != 0; + case 17: + return !!$getEContainingClass(this); + case 18: + return (this.eFlags & $intern_134) != 0; + case 19: + return theOpposite = $getEOpposite(this) , !!theOpposite && (theOpposite.eFlags & $intern_134) != 0; + case 20: + return (this.eFlags & $intern_63) == 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), 26) , !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, 14)); + 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, 19).value_0); + return; + case 5: + $setUpperBound(this, castTo(newValue, 19).value_0); + return; + case 8: + $setEType(this, castTo(newValue, 138)); + return; + case 9: + msgs = $setEGenericType(this, castTo(newValue, 87), 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, 18)); + 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, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , EREFERENCE)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 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, 88) && $setFlags_0($getESuperAdapter(castTo(this.eContainer, 88)), 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), 26) , !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_134) != 0; +} +; +_.isContainment = function isContainment_6(){ + return (this.eFlags & $intern_134) != 0; +} +; +_.isResolveProxies_0 = function isResolveProxies_1(){ + return (this.eFlags & $intern_63) != 0; +} +; +_.setEType = function setEType_1(newEType, msgs){ + this.eReferenceType = null; + return $setEType_0(this, newEType, msgs); +} +; +_.toString_0 = function toString_153(){ + 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_134) != 0); + result.string += ', resolveProxies: '; + $append_4(result, (this.eFlags & $intern_63) != 0); + result.string += ')'; + return result.string; +} +; +var Lorg_eclipse_emf_ecore_impl_EReferenceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EReferenceImpl', 99); +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(548, 115, {105:1, 42:1, 92:1, 90:1, 133:1, 56:1, 108:1, 49:1, 97:1, 548:1, 114:1, 115:1}, EStringToStringMapEntryImpl); +_.equals_0 = function equals_196(other){ + return this === other; +} +; +_.getKey = function getKey_11(){ + return this.key; +} +; +_.getValue = function getValue_14(){ + return this.value_0; +} +; +_.hashCode_1 = function hashCode_82(){ + return getHashCode_0(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), 26) , !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), 26) , !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), 26) , !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), 26) , !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:getHashCode_1(theKey); + } + return this.hash; +} +; +_.setHash = function setHash_2(hash){ + this.hash = hash; +} +; +_.toString_0 = function toString_154(){ + 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', 548); +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, 56)?castTo(value_0, 56).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(565, 1, $intern_159); +_.createEntry = function createEntry(value_0){ + return this.createEntry_0(castTo(value_0, 49)); +} +; +_.createEntry_0 = function createEntry_0(value_0){ + return this.createEntry(value_0); +} +; +_.equals_0 = function equals_197(that){ + var entry, value_0; + if (this === that) { + return true; + } + else if (instanceOf(that, 72)) { + entry = castTo(that, 72); + 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_83(){ + 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_155(){ + 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', 565); +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(776, 565, $intern_159, 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', 776); +function EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator(feature, featureMapFeature){ + this.feature = feature; + this.featureMapFeature = featureMapFeature; +} + +defineClass(1313, 1, {}, EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator); +_.dynamicGet_0 = function dynamicGet_3(owner, settings, index_0, resolve, coreType){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + 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), 215); + 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), 215); + return featureMap.basicRemove_0(this.feature, otherEnd, notifications); +} +; +_.dynamicIsSet = function dynamicIsSet(owner, settings, index_0){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + 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), 215); + featureMap.setting(this.feature).set_1(newValue); +} +; +_.dynamicSetting = function dynamicSetting(owner, settings, index_0){ + return castTo($eGet_0(owner, this.featureMapFeature), 215).setting(this.feature); +} +; +_.dynamicUnset_0 = function dynamicUnset_3(owner, settings, index_0){ + var featureMap; + featureMap = castTo($eGet_0(owner, this.featureMapFeature), 215); + featureMap.setting(this.feature).unset(); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$InternalSettingDelegateFeatureMapDelegator_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator', 1313); +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), 26), this$static.dataClass, owner, $getFeatureID(owner.eClass_0(), this$static.feature)); + case 50: + return new EcoreEMap$Unsettable(castTo($getEType(this$static.feature), 26), 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(89, 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, 589).map_2(); + case 40: + return castTo(result, 215).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, 69).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, 69).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, 76).isSet_0(); +} +; +_.dynamicSet_0 = function dynamicSet_4(owner, settings, index_0, newValue){ + var setting; + setting = castTo(settings.dynamicGet(index_0), 76); + !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, 76)) { + return castTo(setting, 76); + } + 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), 76); + !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', 89); +function $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle = emptyMethod; + NIL_0 = ($clinit_EStructuralFeature$Internal$DynamicValueHolder() , NIL); +} + +function EStructuralFeatureImpl$InternalSettingDelegateSingle(feature){ + this.feature = feature; +} + +defineClass(504, 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', 504); +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(1330, 1, $intern_146, EStructuralFeatureImpl$InternalSettingDelegateSingle$1); +_.get_6 = function get_64(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', 1330); +function EStructuralFeatureImpl$InternalSettingDelegateSingleContainer(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingle.call(this, feature); + this.eClass = eClass; + this.inverseFeature = inverseFeature; +} + +defineClass(769, 504, {}, 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, 56)?$toString_31(castTo(newValue, 56).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, 56))) + 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, 49); + !!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', 769); +function EStructuralFeatureImpl$InternalSettingDelegateSingleContainerResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleContainer.call(this, eClass, feature, inverseFeature); +} + +defineClass(1314, 769, {}, 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', 1314); +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(563, 504, {}); +_.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', 563); +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_160, 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_160); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$1(){ +} + +defineClass(1331, $intern_160, {}, 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', 1331); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2(){ +} + +defineClass(1332, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$2); +_.createNotification_0 = function createNotification_11(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_5(notifier, eventType, feature, castTo(oldValue, 217).value_0, castTo(newValue, 217).value_0); +} +; +_.createNotification_1 = function createNotification_12(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_6(notifier, eventType, feature, castTo(oldValue, 217).value_0, castTo(newValue, 217).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', 1332); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3(){ +} + +defineClass(1333, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$3); +_.createNotification_0 = function createNotification_13(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_7(notifier, eventType, feature, castTo(oldValue, 172).value_0, castTo(newValue, 172).value_0); +} +; +_.createNotification_1 = function createNotification_14(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_8(notifier, eventType, feature, castTo(oldValue, 172).value_0, castTo(newValue, 172).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', 1333); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$4(){ +} + +defineClass(1334, $intern_160, {}, 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', 1334); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5(){ +} + +defineClass(1335, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$5); +_.createNotification_0 = function createNotification_17(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_11(notifier, eventType, feature, castTo(oldValue, 155).value_0, castTo(newValue, 155).value_0); +} +; +_.createNotification_1 = function createNotification_18(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_12(notifier, eventType, feature, castTo(oldValue, 155).value_0, castTo(newValue, 155).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', 1335); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6(){ +} + +defineClass(1336, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$6); +_.createNotification_0 = function createNotification_19(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_13(notifier, eventType, feature, castTo(oldValue, 19).value_0, castTo(newValue, 19).value_0); +} +; +_.createNotification_1 = function createNotification_20(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_14(notifier, eventType, feature, castTo(oldValue, 19).value_0, castTo(newValue, 19).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', 1336); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7(){ +} + +defineClass(1337, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$7); +_.createNotification_0 = function createNotification_21(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_15(notifier, eventType, feature, castTo(oldValue, 162).value_0, castTo(newValue, 162).value_0); +} +; +_.createNotification_1 = function createNotification_22(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_16(notifier, eventType, feature, castTo(oldValue, 162).value_0, castTo(newValue, 162).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', 1337); +function EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8(){ +} + +defineClass(1338, $intern_160, {}, EStructuralFeatureImpl$InternalSettingDelegateSingleData$NotificationCreator$8); +_.createNotification_0 = function createNotification_23(notifier, eventType, feature, oldValue, newValue){ + return new ENotificationImpl_20(notifier, eventType, feature, castTo(oldValue, 184).value_0, castTo(newValue, 184).value_0); +} +; +_.createNotification_1 = function createNotification_24(notifier, eventType, feature, oldValue, newValue, wasSet){ + return new ENotificationImpl_21(notifier, eventType, feature, castTo(oldValue, 184).value_0, castTo(newValue, 184).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', 1338); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); + this.eDataType = eDataType; +} + +defineClass(1316, 563, {}, 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', 1316); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); +} + +defineClass(1317, 563, {}, 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', 1317); +defineClass(770, 563, {}); +_.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', 770); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableDynamic(eDataType, defaultValue, intrinsicDefaultValue, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData.call(this, defaultValue, intrinsicDefaultValue, feature); + this.eDataType = eDataType; +} + +defineClass(1318, 770, {}, 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', 1318); +function EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic(defaultValue, intrinsicDefaultValue, feature, notificationCreator){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleData_0.call(this, defaultValue, intrinsicDefaultValue, feature, notificationCreator); +} + +defineClass(1319, 770, {}, 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', 1319); +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(398, 504, {}, 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, 49); + 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, 49); + 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, 49); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + } + else + this.isContainment() && oldValue != null && (notifications = castTo(oldValue, 49).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, 56)?$toString_31(castTo(newValue, 56).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, 49); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + if (newValue != null) { + internalEObject = castTo(newValue, 49); + 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, 49).eInverseRemove(owner, -1 - $getFeatureID(owner.eClass_0(), this.feature), null, notifications)); + newValue != null && (notifications = castTo(newValue, 49).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, 49); + notifications = internalEObject.eInverseRemove(owner, $getFeatureID(internalEObject.eClass_0(), this.inverseFeature), null, notifications); + } + else + this.isContainment() && (notifications = castTo(oldValue, 49).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', 398); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(564, 398, {}, 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', 564); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); +} + +defineClass(1322, 564, {}, 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', 1322); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainment.call(this, eClass, feature); +} + +defineClass(772, 564, {}, 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', 772); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettableResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentUnsettable.call(this, eClass, feature); +} + +defineClass(1324, 772, {}, 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', 1324); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(640, 564, {}, 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', 640); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1323, 640, {}, 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', 1323); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(773, 640, {}, 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', 773); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable.call(this, eClass, feature, inverseFeature); +} + +defineClass(1325, 773, {}, 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', 1325); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(641, 398, {}, 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', 641); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolving.call(this, eClass, feature); +} + +defineClass(1326, 641, {}, 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', 1326); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(774, 641, {}, 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', 774); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectResolvingWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1327, 774, {}, 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', 1327); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectUnsettable(eClass, feature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject.call(this, eClass, feature); +} + +defineClass(1320, 398, {}, 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', 1320); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObject_0.call(this, eClass, feature, inverseFeature); +} + +defineClass(771, 398, {}, 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', 771); +function EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverseUnsettable(eClass, feature, inverseFeature){ + $clinit_EStructuralFeatureImpl$InternalSettingDelegateSingle(); + EStructuralFeatureImpl$InternalSettingDelegateSingleEObjectWithInverse.call(this, eClass, feature, inverseFeature); +} + +defineClass(1321, 771, {}, 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', 1321); +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(775, 565, $intern_159, 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', 775); +function EStructuralFeatureImpl$SettingMany(list){ + this.list = list; +} + +defineClass(1328, 1, $intern_146, EStructuralFeatureImpl$SettingMany); +_.get_6 = function get_65(resolve){ + return this.list; +} +; +_.isSet_0 = function isSet_12(){ + return instanceOf(this.list, 95)?castTo(this.list, 95).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, 95)?castTo(this.list, 95).unset():this.list.clear_0(); +} +; +var Lorg_eclipse_emf_ecore_impl_EStructuralFeatureImpl$SettingMany_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EStructuralFeatureImpl/SettingMany', 1328); +function EStructuralFeatureImpl$SimpleContentFeatureMapEntry(eStructuralFeature){ + this.eStructuralFeature = eStructuralFeature; + this.eDataType = castTo($getEType(eStructuralFeature), 148); + this.eFactory = this.eDataType.getEPackage().getEFactoryInstance(); +} + +defineClass(1329, 565, $intern_159, 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', 1329); +function EStructuralFeatureImpl$SimpleFeatureMapEntry(eStructuralFeature, value_0){ + EStructuralFeatureImpl$BasicFeatureMapEntry.call(this, eStructuralFeature); + this.value_0 = value_0; +} + +defineClass(642, 565, $intern_159, 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', 642); +function ESuperAdapter$1(){ +} + +defineClass(391, 497, $intern_137, ESuperAdapter$1); +_.newData = function newData_12(capacity){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 26, 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', 391); +function $getEGenericTypes(this$static){ + !this$static.eGenericTypes && (this$static.eGenericTypes = new ETypeParameterImpl$2$1(new ETypeParameterImpl$2)); + return this$static.eGenericTypes; +} + +function ETypeParameterImpl(){ +} + +defineClass(445, 439, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 108:1, 835:1, 49:1, 97:1, 150:1, 445:1, 114:1, 115: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), 26) , !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), 26) , !eClass?($clinit_EcorePackage$Literals() , ETYPE_PARAMETER):eClass), featureID), 66) , 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), 26) , !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, 14)); + 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, 14)); + return; + } + $eDynamicSet(this, featureID - $getFeatureCount(($clinit_EcorePackage$Literals() , ETYPE_PARAMETER)), $getEStructuralFeature((eClass = castTo($getField(this, 16), 26) , !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), 26) , !eClass?ETYPE_PARAMETER:eClass), featureID)); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl', 445); +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_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); + 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_4(eGenericType$iterator.val$delegateIterator2).getKey(), 87); + 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(446, 85, $intern_154, ETypeParameterImpl$1); +_.inverseAdd = function inverseAdd_7(object, notifications){ + return $inverseAdd_1(this, castTo(object, 87), notifications); +} +; +_.inverseRemove = function inverseRemove_7(object, notifications){ + return $inverseRemove_1(this, castTo(object, 87), notifications); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$1_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/1', 446); +function ETypeParameterImpl$2(){ + HashMap.call(this); +} + +defineClass(634, 43, $intern_76, ETypeParameterImpl$2); +_.keySet_0 = function keySet_19(){ + return new ETypeParameterImpl$2$1(this); +} +; +var Lorg_eclipse_emf_ecore_impl_ETypeParameterImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'ETypeParameterImpl/2', 634); +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(556, $intern_9, $intern_10, ETypeParameterImpl$2$1); +_.add_2 = function add_65(eGenericType){ + return $add_30(this, castTo(eGenericType, 87)); +} +; +_.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(), 87); + $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_126(object){ + return $remove_42(this, object); +} +; +_.size_1 = function size_78(){ + 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', 556); +function ETypeParameterImpl$2$1$1(val$delegateIterator){ + this.val$delegateIterator2 = val$delegateIterator; +} + +defineClass(557, 1, $intern_6, ETypeParameterImpl$2$1$1); +_.forEachRemaining = function forEachRemaining_58(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_48(){ + return castTo($next_4(this.val$delegateIterator2).getKey(), 87); +} +; +_.hasNext_0 = function hasNext_47(){ + return this.val$delegateIterator2.hasNext; +} +; +_.remove = function remove_127(){ + $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', 557); +function EValidatorRegistryImpl(){ + HashMap.call(this); +} + +defineClass(1275, 43, $intern_76, EValidatorRegistryImpl); +_.containsKey = function containsKey_17(key){ + return instanceOfString(key)?$hasStringValue(this, key):!!$getEntry_0(this.hashCodeMap, key); +} +; +_.get_3 = function get_66(key){ + var eValidator, eValidatorDescriptor; + eValidator = instanceOfString(key)?$getStringValue(this, key):getEntryValueOrNull($getEntry_0(this.hashCodeMap, key)); + if (instanceOf(eValidator, 836)) { + eValidatorDescriptor = castTo(eValidator, 836); + eValidator = eValidatorDescriptor.getEValidator(); + $put_6(this, castTo(key, 235), 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', 1275); +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, 190); + return $bytesToHexString(bytes, bytes.length); + } +} + +function $convertECharToString(instanceValue){ + if (instanceOf(instanceValue, 172)) { + return '' + castTo(instanceValue, 172).value_0; + } + return instanceValue == null?null:toString_40(instanceValue); +} + +function $convertECharacterObjectToString(instanceValue){ + if (instanceOf(instanceValue, 172)) { + return '' + castTo(instanceValue, 172).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_42, $intern_0) & $intern_46; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + carray = $toCharArray(initialValue); + charValue = carray[0]; + } + else + throw toJs($e0); + } + return valueOf_3(charValue); +} + +function $createECharacterObjectFromString(initialValue){ + var carray, charValue; + if (initialValue == null) { + return null; + } + charValue = 0; + try { + charValue = __parseAndValidateInt(initialValue, $intern_42, $intern_0) & $intern_46; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + carray = $toCharArray(initialValue); + charValue = carray[0]; + } + else + throw toJs($e0); + } + return valueOf_3(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, 32)) { + 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'), 1940); + if (theEcoreFactory) { + return theEcoreFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + exception = $e0; + $log_3(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new EcoreFactoryImpl; +} + +defineClass(1312, 704, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 1940:1, 49:1, 97:1, 150:1, 114:1, 115: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, 199)); + case 41: + return instanceValue == null?'':$getName(castTo(instanceValue, 289)); + 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_42(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_4(initialValue); + case 23: + case 22: + return initialValue == null?null:$booleanValueOf(initialValue); + case 26: + case 24: + return initialValue == null?null:valueOf_2(__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_4(__parseAndValidateInt(initialValue, $intern_42, $intern_0)); + case 41: + return null; + case 42: + return initialValue == null?null:null; + case 44: + case 43: + return initialValue == null?null:valueOf_5(__parseAndValidateLong(initialValue)); + case 49: + case 48: + return initialValue == null?null:valueOf_6(__parseAndValidateInt(initialValue, $intern_161, 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', 1312); +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), 34), 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), 18), 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), 34), 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), 18), 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), 18), this$static.eModelElementEClass, castTo($get_20($getEStructuralFeatures(this$static.eModelElementEClass), 0), 18), '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), 18), 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), 18), 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), 34), 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), 34), 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), 18), 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), 18), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 0), 18), '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), 18), 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), 18), 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), 18), 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), 18), 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), 18), 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), 18), 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), 18), 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), 18), 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), 18), 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), 18), this$static.eStructuralFeatureEClass, castTo($get_20($getEStructuralFeatures(this$static.eStructuralFeatureEClass), 7), 18), '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), 18), 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), 18), 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), 59), this$static.eBooleanEDataType, 'isSuperTypeOf'); + $addEParameter(op, this$static.eClassEClass, 'someClass'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 1), 59), this$static.eIntEDataType, 'getFeatureCount'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 2), 59), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); + $addEParameter(op, this$static.eIntEDataType, 'featureID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 3), 59), this$static.eIntEDataType, 'getFeatureID'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 4), 59), this$static.eStructuralFeatureEClass, 'getEStructuralFeature'); + $addEParameter(op, this$static.eStringEDataType, 'featureName'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 5), 59), this$static.eIntEDataType, 'getOperationCount'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 6), 59), this$static.eOperationEClass, 'getEOperation'); + $addEParameter(op, this$static.eIntEDataType, 'operationID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 7), 59), this$static.eIntEDataType, 'getOperationID'); + $addEParameter(op, this$static.eOperationEClass, 'operation'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 8), 59), this$static.eOperationEClass, 'getOverride'); + $addEParameter(op, this$static.eOperationEClass, 'operation'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eClassEClass), 9), 59), 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), 34), 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), 34), g1, 'instanceClass', Lorg_eclipse_emf_ecore_EClassifier_2_classLit, true, true, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 2), 34), 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), 34), 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), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 3), 18), '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), 18), 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), 59), this$static.eBooleanEDataType, 'isInstance'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'object'); + $initEOperation(castTo($get_20($getEOperations(this$static.eClassifierEClass), 1), 59), 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), 34), 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), 18), this$static.eEnumLiteralEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumLiteralEClass), 3), 18), '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), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); + $addEParameter(op, this$static.eStringEDataType, 'name'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 1), 59), this$static.eEnumLiteralEClass, 'getEEnumLiteral'); + $addEParameter(op, this$static.eIntEDataType, 'value'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eEnumEClass), 2), 59), 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), 34), 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), 34), 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), 34), 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), 18), this$static.eEnumEClass, castTo($get_20($getEStructuralFeatures(this$static.eEnumEClass), 0), 18), '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), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 2), 18), '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), 59), this$static.eObjectEClass, 'create'); + $addEParameter(op, this$static.eClassEClass, 'eClass'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eFactoryEClass), 1), 59), 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), 59), 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), 18), this$static.eAnnotationEClass, castTo($get_20($getEStructuralFeatures(this$static.eAnnotationEClass), 2), 18), '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), 59), 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), 34), 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), 59), this$static.eClassEClass, 'eClass'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 1), 59), this$static.eBooleanEDataType, 'eIsProxy'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 2), 59), this$static.eResourceEDataType, 'eResource'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 3), 59), this$static.eObjectEClass, 'eContainer'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 4), 59), this$static.eStructuralFeatureEClass, 'eContainingFeature'); + $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 5), 59), this$static.eReferenceEClass, 'eContainmentFeature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 6), 59), 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), 59), 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), 59), 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), 59), this$static.eJavaObjectEDataType, 'eGet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 10), 59), 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), 59), null, 'eSet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + $addEParameter(op, this$static.eJavaObjectEDataType, 'newValue'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 12), 59), this$static.eBooleanEDataType, 'eIsSet'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 13), 59), null, 'eUnset'); + $addEParameter(op, this$static.eStructuralFeatureEClass, 'feature'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eObjectEClass), 14), 59), 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), 18), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 3), 18), '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), 18), 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), 18), this$static.eParameterEClass, castTo($get_20($getEStructuralFeatures(this$static.eParameterEClass), 0), 18), '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), 18), 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), 18), 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), 59), this$static.eIntEDataType, 'getOperationID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eOperationEClass), 1), 59), 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), 34), 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), 34), 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), 18), this$static.eFactoryEClass, castTo($get_20($getEStructuralFeatures(this$static.eFactoryEClass), 0), 18), '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), 18), this$static.eClassifierEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassifierEClass), 4), 18), '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), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 5), 18), '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), 18), this$static.ePackageEClass, castTo($get_20($getEStructuralFeatures(this$static.ePackageEClass), 4), 18), '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), 59), 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), 18), this$static.eOperationEClass, castTo($get_20($getEStructuralFeatures(this$static.eOperationEClass), 2), 18), '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), 34), 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), 34), 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), 34), 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), 18), 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), 18), 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), 18), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 18), this$static.eClassEClass, castTo($get_20($getEStructuralFeatures(this$static.eClassEClass), 13), 18), '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), 59), this$static.eIntEDataType, 'getFeatureID'); + op = $initEOperation(castTo($get_20($getEOperations(this$static.eStructuralFeatureEClass), 1), 59), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 18), 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), 18), 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), 34), 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), 34), 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), 18), 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), 18), 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), 18), 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), 18), 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), 18), 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), 18), 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), 59), 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), 18), 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'), 1938); + 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'), 547)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2002/Ecore'):new EcorePackageImpl, 547); + 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_7(eGenericType$iterator), 241); + $setERawType(eGenericType, EJAVA_OBJECT, null); + } + return true; +} + +defineClass(547, 179, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 1938:1, 49:1, 97:1, 150:1, 179:1, 547:1, 114:1, 115:1, 675: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', 547); +function EcorePackageImpl$1(){ +} + +defineClass(1183, 1, {836: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', 1183); +function EcorePackageImpl$10(){ +} + +defineClass(1192, 1, $intern_162, EcorePackageImpl$10); +_.isInstance = function isInstance_6(instance){ + return instanceOf(instance, 147); +} +; +_.newArrayInstance = function newArrayInstance(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EModelElement_2_classLit, $intern_2, 147, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$10_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/10', 1192); +function EcorePackageImpl$11(){ +} + +defineClass(1193, 1, $intern_162, EcorePackageImpl$11); +_.isInstance = function isInstance_7(instance){ + return instanceOf(instance, 191); +} +; +_.newArrayInstance = function newArrayInstance_0(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ENamedElement_2_classLit, $intern_2, 191, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$11_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/11', 1193); +function EcorePackageImpl$12(){ +} + +defineClass(1194, 1, $intern_162, EcorePackageImpl$12); +_.isInstance = function isInstance_8(instance){ + return instanceOf(instance, 56); +} +; +_.newArrayInstance = function newArrayInstance_1(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EObject_2_classLit, $intern_2, 56, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$12_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/12', 1194); +function EcorePackageImpl$13(){ +} + +defineClass(1195, 1, $intern_162, EcorePackageImpl$13); +_.isInstance = function isInstance_9(instance){ + return instanceOf(instance, 399); +} +; +_.newArrayInstance = function newArrayInstance_2(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EOperation_2_classLit, $intern_152, 59, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$13_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/13', 1195); +function EcorePackageImpl$14(){ +} + +defineClass(1196, 1, $intern_162, EcorePackageImpl$14); +_.isInstance = function isInstance_10(instance){ + return instanceOf(instance, 235); +} +; +_.newArrayInstance = function newArrayInstance_3(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EPackage_2_classLit, $intern_2, 235, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$14_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/14', 1196); +function EcorePackageImpl$15(){ +} + +defineClass(1197, 1, $intern_162, EcorePackageImpl$15); +_.isInstance = function isInstance_11(instance){ + return instanceOf(instance, 509); +} +; +_.newArrayInstance = function newArrayInstance_4(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EParameter_2_classLit, $intern_2, 2016, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$15_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/15', 1197); +function EcorePackageImpl$16(){ +} + +defineClass(1198, 1, $intern_162, EcorePackageImpl$16); +_.isInstance = function isInstance_12(instance){ + return instanceOf(instance, 99); +} +; +_.newArrayInstance = function newArrayInstance_5(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EReference_2_classLit, $intern_151, 18, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$16_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/16', 1198); +function EcorePackageImpl$17(){ +} + +defineClass(1199, 1, $intern_162, EcorePackageImpl$17); +_.isInstance = function isInstance_13(instance){ + return instanceOf(instance, 170); +} +; +_.newArrayInstance = function newArrayInstance_6(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EStructuralFeature_2_classLit, $intern_151, 170, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$17_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/17', 1199); +function EcorePackageImpl$18(){ +} + +defineClass(1200, 1, $intern_162, EcorePackageImpl$18); +_.isInstance = function isInstance_14(instance){ + return instanceOf(instance, 472); +} +; +_.newArrayInstance = function newArrayInstance_7(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypedElement_2_classLit, $intern_2, 472, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$18_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/18', 1200); +function EcorePackageImpl$19(){ +} + +defineClass(1201, 1, $intern_162, EcorePackageImpl$19); +_.isInstance = function isInstance_15(instance){ + return instanceOf(instance, 548); +} +; +_.newArrayInstance = function newArrayInstance_8(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_impl_EStringToStringMapEntryImpl_2_classLit, $intern_145, 548, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$19_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/19', 1201); +function EcorePackageImpl$2(){ +} + +defineClass(1184, 1, $intern_162, EcorePackageImpl$2); +_.isInstance = function isInstance_16(instance){ + return instanceOf(instance, 322); +} +; +_.newArrayInstance = function newArrayInstance_9(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAttribute_2_classLit, $intern_151, 34, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$2_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/2', 1184); +function EcorePackageImpl$20(){ +} + +defineClass(1202, 1, $intern_162, EcorePackageImpl$20); +_.isInstance = function isInstance_17(instance){ + return instanceOf(instance, 241); +} +; +_.newArrayInstance = function newArrayInstance_10(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EGenericType_2_classLit, $intern_155, 87, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$20_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/20', 1202); +function EcorePackageImpl$21(){ +} + +defineClass(1203, 1, $intern_162, EcorePackageImpl$21); +_.isInstance = function isInstance_18(instance){ + return instanceOf(instance, 445); +} +; +_.newArrayInstance = function newArrayInstance_11(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_ETypeParameter_2_classLit, $intern_2, 835, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$21_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/21', 1203); +function EcorePackageImpl$22(){ +} + +defineClass(1204, 1, $intern_162, 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, 476, size_0, 8, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$22_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/22', 1204); +function EcorePackageImpl$23(){ +} + +defineClass(1205, 1, $intern_162, EcorePackageImpl$23); +_.isInstance = function isInstance_20(instance){ + return instanceOf(instance, 190); +} +; +_.newArrayInstance = function newArrayInstance_13(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 190, size_0, 0, 2); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$23_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/23', 1205); +function EcorePackageImpl$24(){ +} + +defineClass(1206, 1, $intern_162, EcorePackageImpl$24); +_.isInstance = function isInstance_21(instance){ + return instanceOf(instance, 217); +} +; +_.newArrayInstance = function newArrayInstance_14(size_0){ + return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$24_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/24', 1206); +function EcorePackageImpl$25(){ +} + +defineClass(1207, 1, $intern_162, EcorePackageImpl$25); +_.isInstance = function isInstance_22(instance){ + return instanceOf(instance, 172); +} +; +_.newArrayInstance = function newArrayInstance_15(size_0){ + return initUnidimensionalArray(Ljava_lang_Character_2_classLit, $intern_16, 172, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$25_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/25', 1207); +function EcorePackageImpl$26(){ +} + +defineClass(1208, 1, $intern_162, EcorePackageImpl$26); +_.isInstance = function isInstance_23(instance){ + return instanceOf(instance, 199); +} +; +_.newArrayInstance = function newArrayInstance_16(size_0){ + return initUnidimensionalArray(Ljava_util_Date_2_classLit, $intern_16, 199, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$26_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/26', 1208); +function EcorePackageImpl$27(){ +} + +defineClass(1209, 1, $intern_162, 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, 2109, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$27_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/27', 1209); +function EcorePackageImpl$28(){ +} + +defineClass(1210, 1, $intern_162, 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, 333, size_0, 7, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$28_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/28', 1210); +function EcorePackageImpl$29(){ +} + +defineClass(1211, 1, $intern_162, EcorePackageImpl$29); +_.isInstance = function isInstance_26(instance){ + return instanceOf(instance, 58); +} +; +_.newArrayInstance = function newArrayInstance_19(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_EList_2_classLit, $intern_99, 58, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$29_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/29', 1211); +function EcorePackageImpl$3(){ +} + +defineClass(1185, 1, $intern_162, EcorePackageImpl$3); +_.isInstance = function isInstance_27(instance){ + return instanceOf(instance, 510); +} +; +_.newArrayInstance = function newArrayInstance_20(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EAnnotation_2_classLit, {3:1, 4:1, 5:1, 1933:1}, 590, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$3_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/3', 1185); +function EcorePackageImpl$30(){ +} + +defineClass(1212, 1, $intern_162, EcorePackageImpl$30); +_.isInstance = function isInstance_28(instance){ + return instanceOf(instance, 573); +} +; +_.newArrayInstance = function newArrayInstance_21(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_Enumerator_2_classLit, $intern_2, 1939, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$30_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/30', 1212); +function EcorePackageImpl$31(){ +} + +defineClass(1213, 1, $intern_162, EcorePackageImpl$31); +_.isInstance = function isInstance_29(instance){ + return instanceOf(instance, 153); +} +; +_.newArrayInstance = function newArrayInstance_22(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap_2_classLit, $intern_99, 153, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$31_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/31', 1213); +function EcorePackageImpl$32(){ +} + +defineClass(1214, 1, $intern_162, EcorePackageImpl$32); +_.isInstance = function isInstance_30(instance){ + return instanceOf(instance, 72); +} +; +_.newArrayInstance = function newArrayInstance_23(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_util_FeatureMap$Entry_2_classLit, $intern_163, 72, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$32_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/32', 1214); +function EcorePackageImpl$33(){ +} + +defineClass(1215, 1, $intern_162, EcorePackageImpl$33); +_.isInstance = function isInstance_31(instance){ + return instanceOf(instance, 155); +} +; +_.newArrayInstance = function newArrayInstance_24(size_0){ + return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 155, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$33_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/33', 1215); +function EcorePackageImpl$34(){ +} + +defineClass(1216, 1, $intern_162, EcorePackageImpl$34); +_.isInstance = function isInstance_32(instance){ + return instanceOf(instance, 19); +} +; +_.newArrayInstance = function newArrayInstance_25(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$34_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/34', 1216); +function EcorePackageImpl$35(){ +} + +defineClass(1217, 1, $intern_162, EcorePackageImpl$35); +_.isInstance = function isInstance_33(instance){ + return instanceOf(instance, 289); +} +; +_.newArrayInstance = function newArrayInstance_26(size_0){ + return initUnidimensionalArray(Ljava_lang_Class_2_classLit, $intern_2, 289, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$35_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/35', 1217); +function EcorePackageImpl$36(){ +} + +defineClass(1218, 1, $intern_162, EcorePackageImpl$36); +_.isInstance = function isInstance_34(instance){ + return instanceOf(instance, 162); +} +; +_.newArrayInstance = function newArrayInstance_27(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$36_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/36', 1218); +function EcorePackageImpl$37(){ +} + +defineClass(1219, 1, $intern_162, EcorePackageImpl$37); +_.isInstance = function isInstance_35(instance){ + return instanceOf(instance, 83); +} +; +_.newArrayInstance = function newArrayInstance_28(size_0){ + return initUnidimensionalArray(Ljava_util_Map_2_classLit, $intern_2, 83, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$37_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/37', 1219); +function EcorePackageImpl$38(){ +} + +defineClass(1220, 1, $intern_162, EcorePackageImpl$38); +_.isInstance = function isInstance_36(instance){ + return instanceOf(instance, 591); +} +; +_.newArrayInstance = function newArrayInstance_29(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_resource_Resource_2_classLit, $intern_2, 591, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$38_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/38', 1220); +function EcorePackageImpl$39(){ +} + +defineClass(1221, 1, $intern_162, 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, 2110, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$39_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/39', 1221); +function EcorePackageImpl$4(){ +} + +defineClass(1186, 1, $intern_162, EcorePackageImpl$4); +_.isInstance = function isInstance_38(instance){ + return instanceOf(instance, 88); +} +; +_.newArrayInstance = function newArrayInstance_31(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClass_2_classLit, $intern_2, 26, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$4_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/4', 1186); +function EcorePackageImpl$40(){ +} + +defineClass(1222, 1, $intern_162, EcorePackageImpl$40); +_.isInstance = function isInstance_39(instance){ + return instanceOf(instance, 184); +} +; +_.newArrayInstance = function newArrayInstance_32(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$40_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/40', 1222); +function EcorePackageImpl$41(){ +} + +defineClass(1223, 1, $intern_162, 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', 1223); +function EcorePackageImpl$42(){ +} + +defineClass(1224, 1, $intern_162, EcorePackageImpl$42); +_.isInstance = function isInstance_41(instance){ + return instanceOf(instance, 588); +} +; +_.newArrayInstance = function newArrayInstance_34(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_common_util_TreeIterator_2_classLit, $intern_2, 588, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$42_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/42', 1224); +function EcorePackageImpl$43(){ +} + +defineClass(1225, 1, $intern_162, 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, 2111, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$43_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/43', 1225); +function EcorePackageImpl$44(){ +} + +defineClass(1226, 1, $intern_162, EcorePackageImpl$44); +_.isInstance = function isInstance_43(instance){ + return instanceOf(instance, 42); +} +; +_.newArrayInstance = function newArrayInstance_36(size_0){ + return initUnidimensionalArray(Ljava_util_Map$Entry_2_classLit, $intern_27, 42, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$44_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/44', 1226); +function EcorePackageImpl$5(){ +} + +defineClass(1187, 1, $intern_162, EcorePackageImpl$5); +_.isInstance = function isInstance_44(instance){ + return instanceOf(instance, 138); +} +; +_.newArrayInstance = function newArrayInstance_37(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EClassifier_2_classLit, $intern_2, 138, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/5', 1187); +function EcorePackageImpl$6(){ +} + +defineClass(1188, 1, $intern_162, EcorePackageImpl$6); +_.isInstance = function isInstance_45(instance){ + return instanceOf(instance, 148); +} +; +_.newArrayInstance = function newArrayInstance_38(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EDataType_2_classLit, $intern_2, 148, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$6_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/6', 1188); +function EcorePackageImpl$7(){ +} + +defineClass(1189, 1, $intern_162, EcorePackageImpl$7); +_.isInstance = function isInstance_46(instance){ + return instanceOf(instance, 457); +} +; +_.newArrayInstance = function newArrayInstance_39(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnum_2_classLit, $intern_2, 671, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$7_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/7', 1189); +function EcorePackageImpl$8(){ +} + +defineClass(1190, 1, $intern_162, EcorePackageImpl$8); +_.isInstance = function isInstance_47(instance){ + return instanceOf(instance, 573); +} +; +_.newArrayInstance = function newArrayInstance_40(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EEnumLiteral_2_classLit, $intern_2, 678, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$8_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/8', 1190); +function EcorePackageImpl$9(){ +} + +defineClass(1191, 1, $intern_162, EcorePackageImpl$9); +_.isInstance = function isInstance_48(instance){ + return instanceOf(instance, 471); +} +; +_.newArrayInstance = function newArrayInstance_41(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_EFactory_2_classLit, $intern_2, 471, size_0, 0, 1); +} +; +var Lorg_eclipse_emf_ecore_impl_EcorePackageImpl$9_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'EcorePackageImpl/9', 1191); +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), 1935); + 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), 1935); + 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, 672)?castTo(adapter, 672).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, 97)?castTo(eInternalContainer, 97).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, 125)); +} + +function MinimalEObjectImpl$1ArrayDelegatingAdapterList(this$0){ + $clinit_ArrayDelegatingEList(); + this.this$01 = this$0; +} + +defineClass($intern_148, 1981, $intern_143, MinimalEObjectImpl$1ArrayDelegatingAdapterList); +_.didAdd = function didAdd_2(index_0, newAdapter){ + $didAdd_1(this, castTo(newAdapter, 416)); +} +; +_.didRemove = function didRemove_1(index_0, oldAdapter){ + $didRemove_0(this, index_0, castTo(oldAdapter, 416)); +} +; +var Lorg_eclipse_emf_ecore_impl_MinimalEObjectImpl$1ArrayDelegatingAdapterList_2_classLit = createForClass('org.eclipse.emf.ecore.impl', 'MinimalEObjectImpl/1ArrayDelegatingAdapterList', $intern_148); +function MinimalEObjectImpl$1ArrayDelegatingAdapterList$1(this$1, $anonymous1, $anonymous3){ + this.this$11 = this$1; + NotificationImpl_1.call(this, 8, $anonymous1, null, $anonymous3); +} + +defineClass(1025, 143, $intern_141, 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', 1025); +function $clinit_EcorePlugin(){ + $clinit_EcorePlugin = emptyMethod; + new EcorePlugin; + new ArrayList; +} + +function EcorePlugin(){ + new HashMap; + new HashMap; + new HashMap; +} + +defineClass(1052, 1051, {}, EcorePlugin); +var Lorg_eclipse_emf_ecore_plugin_EcorePlugin_2_classLit = createForClass('org.eclipse.emf.ecore.plugin', 'EcorePlugin', 1052); +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, 49).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_14(i), 56); + 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_42, $intern_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 127)) { + 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), 56):null; +} + +defineClass(781, 1377, $intern_164); +_.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?'':uriFragment.substr(start_0, i - start_0)); + start_0 = i + 1; + } + } + $add_3(uriFragmentPath, 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 = uriFragment.substr(0, index_0)); + } + } + } + return $getEObjectByID(this, uriFragment); +} +; +_.getResourceSet = function getResourceSet(){ + return this.resourceSet; +} +; +_.toString_0 = function toString_156(){ + 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', 781); +function BinaryResourceImpl(uri_0){ + this.uri_0 = uri_0; +} + +defineClass(1378, 781, $intern_164, BinaryResourceImpl); +var Lorg_eclipse_emf_ecore_resource_impl_BinaryResourceImpl_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'BinaryResourceImpl', 1378); +function $getEObjectChildren(this$static, eObject){ + return this$static.isResolveProxies?eObject.eContents_0().iterator_0():castTo(eObject.eContents_0(), 69).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], 47); + } + } + if (iterator == this$static.resourceSetIterator && null.$_nullField >= null.$_nullMethod()) { + $next_14(this$static); + return $hasNext_7(this$static); + } + else { + return iterator.hasNext_0(); + } +} + +defineClass(1168, 694, $intern_138); +_.getChildren = function getChildren_0(object){ + return instanceOf(object, 56)?$getEObjectChildren(this, castTo(object, 56)):instanceOf(object, 591)?new AbstractEList$EIterator(castTo(object, 591).getContents()):maskUndefined(object) === maskUndefined(this.object)?castTo(object, 14).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', 1168); +function ResourceImpl$5($anonymous0){ + AbstractTreeIterator.call(this, $anonymous0, false); + this.isResolveProxies = false; +} + +defineClass(1379, 1168, $intern_138, ResourceImpl$5); +_.getChildren = function getChildren_1(object){ + return maskUndefined(object) === maskUndefined(this.object)?castTo(object, 15).iterator_0():new EcoreUtil$ProperContentIterator(castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_resource_impl_ResourceImpl$5_2_classLit = createForClass('org.eclipse.emf.ecore.resource.impl', 'ResourceImpl/5', 1379); +function ResourceImpl$ContentsEList(this$0){ + this.this$01 = this$0; +} + +defineClass(648, 1993, $intern_153, ResourceImpl$ContentsEList); +_.contains = function contains_66(object){ + return this.size_0 <= 4?$contains_10(this, object):instanceOf(object, 49) && castTo(object, 49).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, 49); + notifications = eObject.eSetResource(this.this$01, notifications); + return notifications; +} +; +_.inverseRemove = function inverseRemove_8(object, notifications){ + var eObject; + eObject = castTo(object, 49); + 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, 56, 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', 648); +function AbstractSequentialInternalEList$1(this$0){ + this.this$01 = this$0; +} + +defineClass(956, 1963, $intern_37, AbstractSequentialInternalEList$1); +_.listIterator_1 = function listIterator_32(index_0){ + return this.this$01.basicListIterator_0(index_0); +} +; +_.size_1 = function size_79(){ + return this.this$01.size_1(); +} +; +var Lorg_eclipse_emf_ecore_util_AbstractSequentialInternalEList$1_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'AbstractSequentialInternalEList/1', 956); +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, qualifiedName.substr(1)):$getElement(this$static, qualifiedName.substr(0, fragmentIndex), 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, baseType.substr(1)):$getType(this$static, baseType.substr(0, index_0), baseType.substr(index_0 + 1)); + if (instanceOf(type_0, 148)) { + return castTo(type_0, 148); + } + } + } + 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 = qualifiedName.substr(1); + } + else { + namespace = qualifiedName.substr(0, fragmentIndex); + name_0 = 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, itemType.substr(1)):$getType(this$static, itemType.substr(0, index_0), itemType.substr(index_0 + 1)); + if (instanceOf(type_0, 148)) { + return castTo(type_0, 148); + } + } + } + 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, member.substr(1)):$getType(this$static, member.substr(0, index_0), member.substr(index_0 + 1)); + instanceOf(type_0, 148) && $add_3(result, castTo(type_0, 148)); + } + 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[result.array.length] = null , true):$equals_5(wildcard, '##targetNamespace')?$add_3(result, $getNamespace(this$static, $getEPackage(eStructuralFeature.getEContainingClass()))):(result.array[result.array.length] = 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), 170); + 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), 170); + 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), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); + 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), 87) , result = eGenericType.eRawType , instanceOf(result, 88)?castTo(result, 26):($clinit_EcorePackage$Literals() , EOBJECT))), 26); + 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), ''), 26); + 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), 170); + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 2: + case 3: + { + !result && (result = new ArrayList); + result.array[result.array.length] = 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), ''), 26); + 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), 170); + switch ($getFeatureKind($getExtendedMetaData_1(this$static, eStructuralFeature))) { + case 4: + case 5: + case 6: + { + !result && (result = new ArrayList); + result.array[result.array.length] = eStructuralFeature; + break; + } + + } + } + return !result?($clinit_Collections() , $clinit_Collections() , EMPTY_LIST):result; +} + +function $getExtendedMetaData(this$static, eClassifier){ + var holder, result; + holder = castTo(eClassifier, 676); + result = holder.getExtendedMetaData_1(); + !result && holder.setExtendedMetaData_1(result = instanceOf(eClassifier, 88)?new BasicExtendedMetaData$EClassExtendedMetaDataImpl(this$static, castTo(eClassifier, 26)):new BasicExtendedMetaData$EDataTypeExtendedMetaDataImpl(this$static, castTo(eClassifier, 148))); + return result; +} + +function $getExtendedMetaData_0(this$static, ePackage){ + var holder, result; + holder = castTo(ePackage, 675); + 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, 677); + 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), 170); + 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), 170); + 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), 34); + 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(624, 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', 624); +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(1159, 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', 1159); +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(1160, 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', 1160); +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), 138)); + 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), 138); + eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); + conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 138); + !!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), 138); + eClassifierName = $getExtendedMetaData(this$static.this$01, eClassifier).getName(); + conflictingEClassifier = castTo(eClassifierName == null?$put_9(nameToClassifierMap.hashCodeMap, null, eClassifier):$put_10(nameToClassifierMap.stringMap, eClassifierName, eClassifier), 138); + !!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), 138); + } + 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(1158, 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', 1158); +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(1161, 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', 1161); +function EDataTypeEList(dataClass, owner, featureID){ + EcoreEList.call(this, dataClass, owner); + this.featureID = featureID; +} + +defineClass(585, 622, $intern_154, 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', 585); +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, 119); + 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, 119); + 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, 66).isFeatureMap_0()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 119); + 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, 72):createEntry_5(feature, object)); +} + +function $add_33(this$static, feature, object){ + var entries, entry, i, isFeatureMap, validator; + isFeatureMap = ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique() && $contains_13(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0)) { + return false; + } + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + 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_11(this$static, i, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)), 72); + return true; + } + } + } + } + return $add_21(this$static, isFeatureMap?castTo(object, 72):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, 119); + 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_11(this$static, i, object), 72); + 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, 66).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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 119); + 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, 66).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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 119); + 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_11(this$static, i, isFeatureMap?castTo(object, 72):createEntry_5(feature, object)), 72); + } + 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, 66).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, 332)); +} + +function $basicAdd_2(this$static, feature, object, notifications){ + var entries, entry, entry0, i, notification, oldIsSet; + if (object == null) { + entries = castTo(this$static.data_0, 119); + 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, 66).isFeatureMap_0()?castTo(object, 72):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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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_16(result); + } + return result; +} + +function $basicRemove_2(this$static, object, notifications){ + var entries, entry, feature, i, match_0, notification; + if (instanceOf(object, 72)) { + return $basicRemove_0(this$static, object, notifications); + } + else { + match_0 = null; + feature = null; + entries = castTo(this$static.data_0, 119); + 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, 99) && (castTo(feature, 18).eFlags & $intern_134) != 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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 119); + match_0 = null; + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).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, 119); + 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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).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(), 56)))) { + 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, 119); + 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, 119); + 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, 66).isFeatureMap_0()) { + return entry; + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 66).isFeatureMap_0()) { + return entry; + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 119); + if (isMany_1(this$static.owner, feature)) { + return $clinit_FeatureMapUtil() , castTo(feature, 66).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, 66).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(), 148), result.string); + } + else { + value_0 = entry.getValue(); + value_0 != null && resolve && instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).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(), 56)))) { + 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, 332), 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, 332), 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, 119); + 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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0?new BasicFeatureMap$ResolvingFeatureEIterator(feature, this$static):new BasicFeatureMap$FeatureEIterator(feature, this$static); + for (i = 0; i < index_0; ++i) { + $next_16(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, 119); + 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), 72); + featureSourceIndex != featureTargetIndex && $dispatchNotification(this$static, new ENotificationImpl_18(this$static.owner, 7, feature, valueOf_4(featureSourceIndex), sourceEntry.getValue(), featureTargetIndex)); + return result; + } + } + } + else { + return castTo($move(this$static, targetIndex, sourceIndex), 72); + } + return castTo($move_1(this$static, targetIndex, sourceIndex), 72); +} + +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, 119); + 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_4(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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 119); + 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, 66).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, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0) { + object = castTo(entry.getValue(), 49); + 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, 119); + 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, 18); + opposite = $getEOpposite(reference); + if (opposite) { + notifications = object.eInverseRemove(this$static.owner, $getFeatureID(object.eClass_0(), opposite), null, notifications); + notifications = castTo(resolved, 49).eInverseAdd(this$static.owner, $getFeatureID(resolved.eClass_0(), opposite), null, notifications); + } + else if ((reference.eFlags & $intern_134) != 0) { + inverseFeatureID = -1 - $getFeatureID(this$static.owner.eClass_0(), reference); + notifications = object.eInverseRemove(this$static.owner, inverseFeatureID, null, null); + !castTo(resolved, 49).eInternalContainer() && (notifications = castTo(resolved, 49).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, 49)); +} + +function $resolveProxy_1(this$static, feature, entryIndex, index_0, object){ + var entry, notifications, oldObject, resolved; + resolved = $resolveProxy_0(this$static, castTo(object, 56)); + if (maskUndefined(resolved) !== maskUndefined(object)) { + oldObject = castTo(this$static.data_0[entryIndex], 72); + 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_16(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, 119); + 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, 119); + 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_11(this$static, index_0, object), 72); +} + +function $set_17(this$static, newValue){ + $set_15(this$static, instanceOf(newValue, 153)?newValue:castTo(newValue, 1936).featureMap_0()); +} + +function $set_18(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, 119); + if (isMany_1(this$static.owner, feature)) { + if (feature.isUnique()) { + currentIndex = $indexOf_8(this$static, feature, object, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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_11(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))), 72); + } + ++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, 66).isFeatureMap_0()?entry:entry.getValue(); + } + } + return null; + } +} + +function $set_19(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, 66).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, 14)); + } + else { + validator = getValidator(this$static.owner.eClass_0(), feature); + entries = castTo(this$static.data_0, 119); + 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_11(this$static, index_0, createEntry_5(feature, object)), 72); + } + else + $shouldUnset(this$static, feature, object)?$remove_35(this$static, i):castTo($set_11(this$static, i, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):createEntry_5(feature, object))), 72); + return; + } + } + $shouldUnset(this$static, feature, object) || $add_21(this$static, ($clinit_FeatureMapUtil() , castTo(feature, 66).isFeatureMap_0()?castTo(object, 72):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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 332), 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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 332), 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, 99) && (castTo(feature, 18).eFlags & $intern_63) != 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, 119); + for (i = 0; i < this$static.size_0; ++i) { + entry = entries[i]; + validator.isValid(entry.getEStructuralFeature()) && ++result; + } + return result; +} + +function $toArray_12(this$static, feature){ + return $toArray_13(this$static, feature, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); +} + +function $toArray_13(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, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).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); +} + +function $toArray_14(this$static, feature, array){ + return $toArray_15(this$static, feature, array, instanceOf(feature, 99) && (castTo(feature, 18).eFlags & $intern_63) != 0); +} + +function $toArray_15(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, 119); + $clinit_FeatureMapUtil(); + if (castTo(feature, 66).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_10(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, 119); + 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), 72); + 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(75, 585, {3:1, 4:1, 20:1, 28:1, 52:1, 14:1, 15:1, 54:1, 67:1, 63:1, 58:1, 76:1, 153:1, 215:1, 1936:1, 69:1, 95:1}, BasicFeatureMap); +_.add_3 = function add_66(index_0, object){ + $add_31(this, index_0, castTo(object, 72)); +} +; +_.add_2 = function add_67(object){ + return $add_34(this, castTo(object, 72)); +} +; +_.addUnique_0 = function addUnique_19(object){ + $addUnique_13(this, castTo(object, 72)); +} +; +_.inverseAdd = function inverseAdd_9(object, notifications){ + return $inverseAdd_3(this, castTo(object, 72), notifications); +} +; +_.inverseRemove = function inverseRemove_9(object, notifications){ + return $inverseRemove_3(this, castTo(object, 72), 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, 72)); +} +; +_.set_2 = function set_37(index_0, object){ + return $set_16(this, index_0, castTo(object, 72)); +} +; +_.shadowAdd = function shadowAdd_2(object, notifications){ + return $shadowAdd_2(this, castTo(object, 72), notifications); +} +; +_.shadowRemove = function shadowRemove_2(object, notifications){ + return $shadowRemove_2(this, castTo(object, 72), notifications); +} +; +_.shadowSet = function shadowSet_2(oldObject, newObject, notifications){ + return $shadowSet_1(this, castTo(oldObject, 72), castTo(newObject, 72), notifications); +} +; +_.validate = function validate_7(index_0, object){ + return $validate_3(this, index_0, castTo(object, 72)); +} +; +_.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(), 72); + 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, 119); + include = true; + for (j = 0; j < this.size_0; ++j) { + otherEntry = entries[j]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + castTo($set_11(this, j, entry), 72); + 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(), 72); + 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, 119); + include = true; + for (j = 0; j < this.size_0; ++j) { + otherEntry = entries[j]; + if (validator.isValid(otherEntry.getEStructuralFeature())) { + castTo($set_11(this, j, entry), 72); + 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_67(feature, resolve){ + return $get_24(this, feature, resolve); +} +; +_.getEStructuralFeature_0 = function getEStructuralFeature_2(index_0){ + return castTo($get_20(this, index_0), 72).getEStructuralFeature(); +} +; +_.getValue_1 = function getValue_19(index_0){ + return castTo($get_20(this, index_0), 72).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_163, 332, capacity, 0, 1); +} +; +_.resolveProxy = function resolveProxy_0(eObject){ + return $resolveProxy_0(this, eObject); +} +; +_.set_1 = function set_38(newValue){ + $set_17(this, newValue); +} +; +_.set_3 = function set_39(feature, object){ + $set_19(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', 75); +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_16(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(1850, 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_16(this); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + 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_16(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_128(){ + 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, 73)) { + 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_18(this.featureMap, this.eStructuralFeature, this.lastCursor, o); + this.expectedModCount = this.featureMap.modCount; + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 73)) { + 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', 1850); +function BasicFeatureMap$FeatureEIterator(eStructuralFeature, featureMap){ + this.eStructuralFeature = eStructuralFeature; + this.featureMap = featureMap; + this.expectedModCount = featureMap.modCount; + this.isFeatureMap = ($clinit_FeatureMapUtil() , castTo(eStructuralFeature, 66).isFeatureMap_0()); + this.validator = getValidator(featureMap.owner.eClass_0(), eStructuralFeature); +} + +defineClass(411, 1850, $intern_14, BasicFeatureMap$FeatureEIterator); +_.scanNext = function scanNext(){ + var entries, entry, size_0; + size_0 = this.featureMap.size_0; + entries = castTo(this.featureMap.data_0, 119); + 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, 119); + 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', 411); +function BasicFeatureMap$ResolvingFeatureEIterator(eStructuralFeature, featureMap){ + BasicFeatureMap$FeatureEIterator.call(this, eStructuralFeature, featureMap); +} + +defineClass(662, 411, $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', 662); +function EContentsEList$1(){ + EContentsEList.call(this, null, null); +} + +defineClass(954, 486, $intern_157, 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', 954); +function EContentsEList$2($anonymous0, $anonymous1){ + EContentsEList.call(this, $anonymous0, $anonymous1); +} + +defineClass(955, 486, $intern_157, 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', 955); +function EContentsEList$FeatureIteratorImpl$1(){ + EContentsEList$FeatureIteratorImpl.call(this, null, null); +} + +defineClass(953, 278, $intern_158, 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', 953); +function EDataTypeEList$Unsettable(dataClass, owner, featureID){ + EDataTypeEList.call(this, dataClass, owner, featureID); +} + +defineClass(824, 585, $intern_154, 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', 824); +function EDataTypeUniqueEList(dataClass, owner, featureID){ + EDataTypeEList.call(this, dataClass, owner, featureID); +} + +defineClass(1848, 585, $intern_154, EDataTypeUniqueEList); +_.isUnique = function isUnique_8(){ + return true; +} +; +var Lorg_eclipse_emf_ecore_util_EDataTypeUniqueEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EDataTypeUniqueEList', 1848); +function EDataTypeUniqueEList$Unsettable(dataClass, owner, featureID){ + EDataTypeEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1849, 824, $intern_154, 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', 1849); +function EObjectContainmentEList$Resolving(dataClass, owner, featureID){ + EObjectContainmentEList.call(this, dataClass, owner, featureID); +} + +defineClass(139, 85, $intern_154, EObjectContainmentEList$Resolving); +_.hasProxies = function hasProxies_4(){ + return true; +} +; +_.resolve = function resolve_13(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Resolving', 139); +function EObjectContainmentEList$Unsettable$Resolving(dataClass, owner, featureID){ + EObjectContainmentEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1162, 545, $intern_154, EObjectContainmentEList$Unsettable$Resolving); +_.hasProxies = function hasProxies_5(){ + return true; +} +; +_.resolve = function resolve_14(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentEList/Unsettable/Resolving', 1162); +function EObjectContainmentWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(748, 16, $intern_154, 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', 748); +function EObjectContainmentWithInverseEList$Unsettable$Resolving(dataClass, owner, featureID, inverseFeatureID){ + EObjectContainmentWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1172, 748, $intern_154, EObjectContainmentWithInverseEList$Unsettable$Resolving); +_.hasProxies = function hasProxies_6(){ + return true; +} +; +_.resolve = function resolve_15(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectContainmentWithInverseEList$Unsettable$Resolving_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectContainmentWithInverseEList/Unsettable/Resolving', 1172); +function EObjectEList$Unsettable(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(743, 496, $intern_154, 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', 743); +function EObjectResolvingEList(dataClass, owner, featureID){ + EObjectEList.call(this, dataClass, owner, featureID); +} + +defineClass(328, 496, $intern_154, EObjectResolvingEList); +_.hasProxies = function hasProxies_7(){ + return true; +} +; +_.resolve = function resolve_16(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList', 328); +function EObjectResolvingEList$Unsettable(dataClass, owner, featureID){ + EObjectEList$Unsettable.call(this, dataClass, owner, featureID); +} + +defineClass(1640, 743, $intern_154, EObjectResolvingEList$Unsettable); +_.hasProxies = function hasProxies_8(){ + return true; +} +; +_.resolve = function resolve_17(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectResolvingEList/Unsettable', 1640); +function $clinit_EObjectValidator(){ + $clinit_EObjectValidator = emptyMethod; + INSTANCE_9 = new EObjectValidator; +} + +function EObjectValidator(){ +} + +defineClass(1380, 1, {}, EObjectValidator); +var INSTANCE_9; +var Lorg_eclipse_emf_ecore_util_EObjectValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectValidator', 1380); +function EObjectWithInverseEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectEList.call(this, dataClass, owner, featureID); + this.inverseFeatureID = inverseFeatureID; +} + +defineClass(546, 496, $intern_154, 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', 546); +function EObjectWithInverseEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1175, 546, $intern_154, 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', 1175); +function EObjectWithInverseEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(625, 546, $intern_154, 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', 625); +function EObjectWithInverseEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1174, 625, $intern_154, 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', 1174); +function EObjectWithInverseResolvingEList(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(749, 546, $intern_154, EObjectWithInverseResolvingEList); +_.hasProxies = function hasProxies_9(){ + return true; +} +; +_.resolve = function resolve_18(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList', 749); +function EObjectWithInverseResolvingEList$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseResolvingEList.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(31, 749, $intern_154, 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', 31); +function EObjectWithInverseResolvingEList$Unsettable(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(750, 625, $intern_154, EObjectWithInverseResolvingEList$Unsettable); +_.hasProxies = function hasProxies_10(){ + return true; +} +; +_.resolve = function resolve_19(index_0, object){ + return $resolve(this, index_0, castTo(object, 56)); +} +; +var Lorg_eclipse_emf_ecore_util_EObjectWithInverseResolvingEList$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EObjectWithInverseResolvingEList/Unsettable', 750); +function EObjectWithInverseResolvingEList$Unsettable$ManyInverse(dataClass, owner, featureID, inverseFeatureID){ + EObjectWithInverseResolvingEList$Unsettable.call(this, dataClass, owner, featureID, inverseFeatureID); +} + +defineClass(1173, 750, $intern_154, 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', 1173); +function kind_0(eStructuralFeature){ + var eClassifier, eReference, instanceClass, inverseEReference, result, upper; + result = 0; + eClassifier = $getEType(eStructuralFeature); + !!eClassifier.getInstanceClass() && (result |= 4); + (eStructuralFeature.eFlags & $intern_149) != 0 && (result |= 2); + if (instanceOf(eStructuralFeature, 99)) { + eReference = castTo(eStructuralFeature, 18); + inverseEReference = $getEOpposite(eReference); + (eReference.eFlags & $intern_134) != 0 && (result |= 32); + if (inverseEReference) { + $getFeatureCount($getEContainingClass(inverseEReference)); + result |= 8; + upper = inverseEReference.upperBound; + (upper > 1 || upper == -1) && (result |= 16); + (inverseEReference.eFlags & $intern_134) != 0 && (result |= 64); + } + (eReference.eFlags & $intern_63) != 0 && (result |= $intern_150); + result |= $intern_148; + } + else { + if (instanceOf(eClassifier, 457)) { + result |= 512; + } + else { + instanceClass = eClassifier.getInstanceClass(); + !!instanceClass && (instanceClass.modifiers & 1) != 0 && (result |= 256); + } + } + (eStructuralFeature.eFlags & 512) != 0 && (result |= 128); + return result; +} + +defineClass(1163, 622, $intern_154); +_.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_150) != 0; +} +; +_.isContainment = function isContainment_9(){ + return (this.kind & 32) != 0; +} +; +_.isEObject = function isEObject_5(){ + return (this.kind & $intern_148) != 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', 1163); +function EcoreEList$Dynamic(kind, dataClass, owner, eStructuralFeature){ + EcoreEList.call(this, dataClass, owner); + this.kind = kind; + this.eStructuralFeature = eStructuralFeature; +} + +defineClass(1164, 1163, $intern_154, 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', 1164); +function EcoreEMap$1(this$0){ + this.this$01 = this$0; +} + +defineClass(747, 63, $intern_137, 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', 747); +function EcoreEMap$DelegateEObjectContainmentEList(this$0, entryClass, owner, featureID){ + this.this$01 = this$0; + EObjectContainmentEList.call(this, entryClass, owner, featureID); +} + +defineClass(746, 85, $intern_154, EcoreEMap$DelegateEObjectContainmentEList); +_.didAdd = function didAdd_4(index_0, newObject){ + $doPut(this.this$01, castTo(newObject, 133)); +} +; +_.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, 133) , lastArg).modCount; +} +; +_.didRemove = function didRemove_3(index_0, oldObject){ + $doRemove(this.this$01, castTo(oldObject, 133)); +} +; +_.didSet = function didSet_2(index_0, newObject, oldObject){ + $doRemove(this.this$01, castTo(oldObject, 133)); + maskUndefined(oldObject) === maskUndefined(newObject) && castTo(oldObject, 133).setHash($hashOf(castTo(newObject, 133).getKey())); + $doPut(this.this$01, castTo(newObject, 133)); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreEMap$DelegateEObjectContainmentEList_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/DelegateEObjectContainmentEList', 746); +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(1170, 151, $intern_147, EcoreEMap$Unsettable); +var Lorg_eclipse_emf_ecore_util_EcoreEMap$Unsettable_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreEMap/Unsettable', 1170); +function EcoreEMap$Unsettable$UnsettableDelegateEObjectContainmentEList(this$1, dataClass, owner, featureID){ + EcoreEMap$DelegateEObjectContainmentEList.call(this, this$1, dataClass, owner, featureID); +} + +defineClass(1171, 746, $intern_154, 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', 1171); +function convertToString_2(eDataType, value_0){ + return eDataType.getEPackage().getEFactoryInstance().convertToString(eDataType, value_0); +} + +function copy_1(eObject){ + var copier, result, t; + copier = new EcoreUtil$Copier; + result = $copy_1(copier, eObject); + $copyReferences(copier); + t = result; + return t; +} + +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]; + result.array[result.array.length] = 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_66) { + 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]; + result.array[result.array.length] = 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, 49).eInternalContainer(); !!eContainer && eContainer != eObject; eContainer = eContainer.eInternalContainer()) { + if (++count > $intern_66) { + return isAncestor(ancestorEObject, eContainer); + } + if (eContainer == ancestorEObject) { + return true; + } + } + } + return false; +} + +function resolve_20(proxy){ + var ePackage, proxyURI, resolvedObject, resource; + proxyURI = castTo(proxy, 49).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, 60)) + 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, 322)) { + $copyAttribute(this$static, castTo(eStructuralFeature, 34), eObject, copyEObject); + } + else { + eReference = castTo(eStructuralFeature, 18); + (eReference.eFlags & $intern_134) != 0 && $copyContainment(this$static, eReference, eObject, copyEObject); + } + } + } + eObject.eIsProxy() && castTo(copyEObject, 49).eSetProxyURI(castTo(eObject, 49).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, 56)); + !!t && (result.array[result.array.length] = 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), 153); + $copyFeatureMap(this$static, featureMap); + } + else { + setting = (targetEStructuralFeature = eAttribute , !targetEStructuralFeature?null:castTo(copyEObject, 49).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, 49).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, 56))); + } + } + } +} + +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, 99) && (castTo(feature, 18).eFlags & $intern_134) != 0) { + value_0 = featureMap.getValue_1(i); + value_0 != null && $copy_1(this$static, castTo(value_0, 56)); + } + } +} + +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, 49).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, 69); + target = castTo(setting, 69); + 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(), 56); + copyReferencedEObject = castTo($get_16(this$static, referencedEObject), 56); + 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_9(entry$iterator); + eObject = castTo(entry.key, 56); + copyEObject = castTo(entry.value_0, 56); + 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, 99)) { + eReference = castTo(eStructuralFeature, 18); + (eReference.eFlags & $intern_134) == 0 && (theOpposite = $getEOpposite(eReference) , !(!!theOpposite && (theOpposite.eFlags & $intern_134) != 0)) && $copyReference(this$static, eReference, eObject, copyEObject); + } + else { + $clinit_FeatureMapUtil(); + if (castTo(eStructuralFeature, 66).isFeatureMap_0()) { + copyFeatureMap = (targetEStructuralFeature = eStructuralFeature , castTo(!targetEStructuralFeature?null:castTo(copyEObject, 49).eSetting(targetEStructuralFeature), 153)); + if (copyFeatureMap) { + featureMap = castTo(eObject.eGet_0(eStructuralFeature), 153); + copyFeatureMapSize = copyFeatureMap.size_1(); + for (k = 0 , featureMapSize = featureMap.size_1(); k < featureMapSize; ++k) { + feature = featureMap.getEStructuralFeature_0(k); + if (instanceOf(feature, 99)) { + referencedEObject = featureMap.getValue_1(k); + copyReferencedEObject = $get_16(this$static, referencedEObject); + if (copyReferencedEObject == null && referencedEObject != null) { + reference = castTo(feature, 18); + if (!this$static.useOriginalReferences || (reference.eFlags & $intern_134) != 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(1167, 228, $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', 1167); +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, 49).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, 69)?castTo(contents, 69).basicIterator():contents.iterator_0(); +} + +defineClass(745, 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_129(){ + this.iterator.remove(); +} +; +var Lorg_eclipse_emf_ecore_util_EcoreUtil$ProperContentIterator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreUtil/ProperContentIterator', 745); +function $clinit_EcoreValidator(){ + $clinit_EcoreValidator = emptyMethod; + $clinit_EObjectValidator(); + INSTANCE_10 = new EcoreValidator; +} + +function EcoreValidator(){ + $clinit_XMLTypeValidator(); +} + +defineClass(1381, 1380, {}, EcoreValidator); +var INSTANCE_10; +var Lorg_eclipse_emf_ecore_util_EcoreValidator_2_classLit = createForClass('org.eclipse.emf.ecore.util', 'EcoreValidator', 1381); +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, 66).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, 677); + 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)), 1941); + !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(1259, 1, {1941: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', 1259); +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)), ''), 26) == 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(), 170); + 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, 66).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(757, 1, {1941: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_15(this.cache, feature, ($clinit_Boolean() , TRUE_0)); + return true; + } + else { + $put_15(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', 757); +function $put_15(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(758, 43, $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', 758); +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(501, 52, {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 76:1, 69:1, 95: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_68(index_0){ + return $get_23(this.featureMap, this.feature, index_0, true); +} +; +_.get_6 = function get_69(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_130(index_0){ + return $remove_43(this.featureMap, this.feature, index_0); +} +; +_.remove_1 = function remove_131(object){ + return $remove_44(this.featureMap, this.feature, object); +} +; +_.set_2 = function set_41(index_0, object){ + return $set_18(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_80(){ + return $size_3(this.featureMap, this.feature); +} +; +_.toArray = function toArray_42(){ + return $toArray_12(this.featureMap, this.feature); +} +; +_.toArray_0 = function toArray_43(array){ + return $toArray_14(this.featureMap, this.feature, array); +} +; +_.toString_0 = function toString_157(){ + var i, stringBuffer; + stringBuffer = new StringBuffer; + stringBuffer.string += '['; + for (i = $basicIterator(this.featureMap, this.feature); $hasNext_8(i);) { + $append_3(stringBuffer, valueOf_7($next_16(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', 501); +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(627, 36, $intern_141, 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, 14); + 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_48, 25, 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, 14); + collection.add_2(notification.getOldValue()); + positions = castTo(this.newValue, 48); + newPositions = initUnidimensionalArray(I_classLit, $intern_48, 25, 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', 627); +function FeatureMapUtil$FeatureFeatureMap(feature, featureMap){ + FeatureMapUtil$FeatureEList.call(this, feature, featureMap); + this.wrapper = this; +} + +defineClass(552, 501, {20:1, 28:1, 52:1, 14:1, 15:1, 58:1, 76:1, 153:1, 215:1, 1936:1, 69:1, 95: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_70(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), 72).getEStructuralFeature(); +} +; +_.getValue_1 = function getValue_20(index_0){ + return castTo($get_23(this.featureMap, this.feature, index_0, false), 72).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_19(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', 552); +function FeatureMapUtil$FeatureValue(feature, featureMap){ + this.feature = feature; + this.featureMap = featureMap; +} + +defineClass(1258, 1, $intern_146, FeatureMapUtil$FeatureValue); +_.get_6 = function get_71(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_19(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', 1258); +function $clinit_XMLTypeFeatures(){ + $clinit_XMLTypeFeatures = emptyMethod; + TEXT = castTo($get_20($getEStructuralFeatures(($clinit_XMLTypePackage() , eINSTANCE_4).xmlTypeDocumentRootEClass), 6), 34); + CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 34); + COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 34); + PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 18); + $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_151, 170, 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(666, 60, $intern_43, InvalidDatatypeValueException); +var Lorg_eclipse_emf_ecore_xml_type_InvalidDatatypeValueException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type', 'InvalidDatatypeValueException', 666); +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), 34); + ANY_TYPE__ANY = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 1), 34); + ANY_TYPE__ANY_ATTRIBUTE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.anyTypeEClass), 2), 34); + PROCESSING_INSTRUCTION_0 = eINSTANCE_4.processingInstructionEClass; + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.processingInstructionEClass), 1), 34); + SIMPLE_ANY_TYPE = eINSTANCE_4.simpleAnyTypeEClass; + SIMPLE_ANY_TYPE__RAW_VALUE = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 1), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.simpleAnyTypeEClass), 2), 18); + XML_TYPE_DOCUMENT_ROOT = eINSTANCE_4.xmlTypeDocumentRootEClass; + XML_TYPE_DOCUMENT_ROOT__MIXED = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 0), 34); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 1), 18); + castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 2), 18); + XML_TYPE_DOCUMENT_ROOT__CDATA = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 3), 34); + XML_TYPE_DOCUMENT_ROOT__COMMENT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 4), 34); + XML_TYPE_DOCUMENT_ROOT__TEXT = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 6), 34); + XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION = castTo($get_20($getEStructuralFeatures(eINSTANCE_4.xmlTypeDocumentRootEClass), 5), 18); + 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(829, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 842: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)), 153); + return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).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)), 153), 69)).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), 66) , 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)), 153)).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_17(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)), 153), 215)).set_1(newValue); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $set_17(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)), 153)).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_158(){ + 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', 829); +function $setData_0(this$static, newData){ + this$static.data_0 = newData; +} + +function $setTarget_2(this$static, newTarget){ + this$static.target = newTarget; +} + +function ProcessingInstructionImpl(){ +} + +defineClass(667, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 2020:1, 667: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_159(){ + 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', 667); +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_19(this$static.mixed, ($clinit_XMLTypePackage$Literals() , SIMPLE_ANY_TYPE__RAW_VALUE), newRawValue); +} + +function SimpleAnyTypeImpl(){ + AnyTypeImpl.call(this); +} + +defineClass(668, 829, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 842:1, 2021:1, 668: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)), 153); + return (!this.mixed && (this.mixed = new BasicFeatureMap(this, 0)) , castTo(castTo($list(this.mixed, ($clinit_XMLTypePackage$Literals() , ANY_TYPE__ANY)), 153), 215)).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)), 153)).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_17(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)), 153), 215)).set_1(newValue); + return; + case 2: + !this.anyAttribute && (this.anyAttribute = new BasicFeatureMap(this, 2)); + $set_17(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, 148)); + 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)), 153)).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_19(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', 668); +function XMLTypeDocumentRootImpl(){ + EObjectImpl.call(this); +} + +defineClass(669, 506, {105:1, 92:1, 90:1, 56:1, 49:1, 97:1, 2022:1, 669: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_1(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_1(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), 66) , 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_17(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_14(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_14(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, 14)); + 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, 14)); + 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, 14)); + 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, 14)); + 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_160(){ + 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', 669); +function $clinit_XMLTypeFactoryImpl(){ + $clinit_XMLTypeFactoryImpl = emptyMethod; + $clinit_EFactoryImpl(); + DOUBLE_POSITIVE_INFINITY = $intern_59; + DOUBLE_NEGATIVE_INFINITY = $intern_60; + FLOAT_POSITIVE_INFINITY = new Float($intern_59); + FLOAT_NEGATIVE_INFINITY = new Float($intern_60); +} + +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_59?'INF':instanceValue == $intern_60?'-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_59?'INF':instanceValue == $intern_60?'-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_4((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result)); +} + +function $createNonPositiveIntegerFromString(initialValue){ + var result; + return initialValue == null?null:new BigInteger_4((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?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'), 2023); + if (theXMLTypeFactory) { + return theXMLTypeFactory; + } + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 102)) { + exception = $e0; + $log_3(($clinit_EcorePlugin() , exception)); + } + else + throw toJs($e0); + } + return new XMLTypeFactoryImpl; +} + +defineClass(1918, 704, {105:1, 92:1, 90:1, 471:1, 147:1, 56:1, 108:1, 49:1, 97:1, 150:1, 114:1, 115:1, 2023: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, 190)); + case 12: + case 47: + case 49: + case 11: + return $convertToString(this, eDataType, instanceValue); + case 13: + return instanceValue == null?null:$toPlainString(castTo(instanceValue, 240)); + 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, 155).value_0); + case 27: + return $convertHexBinary(castTo(instanceValue, 190)); + 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_43(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:valueOf_2(__parseAndValidateInt((result0 = normalize(initialValue, true) , result0.length > 0 && (checkCriticalStringElementIndex(0, result0.length) , result0.charCodeAt(0) == 43)?result0.substr(1):result0), -128, 127) << 24 >> 24); + case 10: + return initialValue == null?null:valueOf_2(__parseAndValidateInt((result1 = normalize(initialValue, true) , result1.length > 0 && (checkCriticalStringElementIndex(0, result1.length) , result1.charCodeAt(0) == 43)?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_4(__parseAndValidateInt((result2 = normalize(initialValue, true) , result2.length > 0 && (checkCriticalStringElementIndex(0, result2.length) , result2.charCodeAt(0) == 43)?result2.substr(1):result2), $intern_42, $intern_0)); + case 33: + return initialValue == null?null:new BigInteger_4((result3 = normalize(initialValue, true) , result3.length > 0 && (checkCriticalStringElementIndex(0, result3.length) , result3.charCodeAt(0) == 43)?result3.substr(1):result3)); + case 34: + return initialValue == null?null:valueOf_4(__parseAndValidateInt((result4 = normalize(initialValue, true) , result4.length > 0 && (checkCriticalStringElementIndex(0, result4.length) , result4.charCodeAt(0) == 43)?result4.substr(1):result4), $intern_42, $intern_0)); + case 36: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result5 = normalize(initialValue, true) , result5.length > 0 && (checkCriticalStringElementIndex(0, result5.length) , result5.charCodeAt(0) == 43)?result5.substr(1):result5))); + case 37: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result6 = normalize(initialValue, true) , result6.length > 0 && (checkCriticalStringElementIndex(0, result6.length) , result6.charCodeAt(0) == 43)?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_4((result7 = normalize(initialValue, true) , result7.length > 0 && (checkCriticalStringElementIndex(0, result7.length) , result7.charCodeAt(0) == 43)?result7.substr(1):result7)); + case 45: + return initialValue == null?null:new BigInteger_4((result8 = normalize(initialValue, true) , result8.length > 0 && (checkCriticalStringElementIndex(0, result8.length) , result8.charCodeAt(0) == 43)?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_6(__parseAndValidateInt((result9 = normalize(initialValue, true) , result9.length > 0 && (checkCriticalStringElementIndex(0, result9.length) , result9.charCodeAt(0) == 43)?result9.substr(1):result9), $intern_161, 32767) << 16 >> 16); + case 51: + return initialValue == null?null:valueOf_6(__parseAndValidateInt((result10 = normalize(initialValue, true) , result10.length > 0 && (checkCriticalStringElementIndex(0, result10.length) , result10.charCodeAt(0) == 43)?result10.substr(1):result10), $intern_161, 32767) << 16 >> 16); + case 53: + return castToString($createFromString(this, ($clinit_XMLTypePackage$Literals() , TIME), initialValue)); + case 55: + return initialValue == null?null:valueOf_6(__parseAndValidateInt((result11 = normalize(initialValue, true) , result11.length > 0 && (checkCriticalStringElementIndex(0, result11.length) , result11.charCodeAt(0) == 43)?result11.substr(1):result11), $intern_161, 32767) << 16 >> 16); + case 56: + return initialValue == null?null:valueOf_6(__parseAndValidateInt((result12 = normalize(initialValue, true) , result12.length > 0 && (checkCriticalStringElementIndex(0, result12.length) , result12.charCodeAt(0) == 43)?result12.substr(1):result12), $intern_161, 32767) << 16 >> 16); + case 57: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result13 = normalize(initialValue, true) , result13.length > 0 && (checkCriticalStringElementIndex(0, result13.length) , result13.charCodeAt(0) == 43)?result13.substr(1):result13))); + case 58: + return initialValue == null?null:valueOf_5(__parseAndValidateLong((result14 = normalize(initialValue, true) , result14.length > 0 && (checkCriticalStringElementIndex(0, result14.length) , result14.charCodeAt(0) == 43)?result14.substr(1):result14))); + case 60: + return initialValue == null?null:valueOf_4(__parseAndValidateInt((result = normalize(initialValue, true) , result.length > 0 && (checkCriticalStringElementIndex(0, result.length) , result.charCodeAt(0) == 43)?result.substr(1):result), $intern_42, $intern_0)); + case 61: + return initialValue == null?null:valueOf_4(__parseAndValidateInt(normalize(initialValue, true), $intern_42, $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', 1918); +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), 34), '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), 34), '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), 34), '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), 34), '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), 34), '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), 34), '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), 34), '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), 18), '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), 34), '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), 18), '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), 18), '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), 34), '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), 34), '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), 18), '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), 34), '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'), 1944); + $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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 34), 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), 18), 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), 34), this$static.ecorePackage.eFeatureMapEntryEDataType, 'mixed', null, 0, -1, null, false, false, true, false, false, false); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 1), 18), 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), 18), 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), 34), this$static.stringEDataType, 'cDATA', null, 0, -2, null, true, true, true, false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 4), 34), this$static.stringEDataType, 'comment', null, 0, -2, null, true, true, true, false, false, true); + $initEReference(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 5), 18), this$static.processingInstructionEClass, null, 'processingInstruction', 0, -2, null, true, true, true, true, false, false, true); + $initEAttribute(castTo($get_20($getEStructuralFeatures(this$static.xmlTypeDocumentRootEClass), 6), 34), 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'), 1944); + initializeRegistryHelpers(); + theXMLTypePackage = castTo(instanceOf($getStringValue(($clinit_EPackage$Registry() , INSTANCE_6), 'http://www.eclipse.org/emf/2003/XMLType'), 586)?$getStringValue(INSTANCE_6, 'http://www.eclipse.org/emf/2003/XMLType'):new XMLTypePackageImpl, 586); + 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(586, 179, {105:1, 92:1, 90:1, 147:1, 191:1, 56:1, 235:1, 108:1, 49:1, 97:1, 150:1, 179:1, 114:1, 115:1, 675:1, 1944:1, 586: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', 586); +function XMLTypePackageImpl$1(){ +} + +defineClass(1851, 1, {836: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', 1851); +function XMLTypePackageImpl$10(){ +} + +defineClass(1860, 1, $intern_162, 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', 1860); +function XMLTypePackageImpl$11(){ +} + +defineClass(1861, 1, $intern_162, 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', 1861); +function XMLTypePackageImpl$12(){ +} + +defineClass(1862, 1, $intern_162, 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', 1862); +function XMLTypePackageImpl$13(){ +} + +defineClass(1863, 1, $intern_162, 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, 333, 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', 1863); +function XMLTypePackageImpl$14(){ +} + +defineClass(1864, 1, $intern_162, 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', 1864); +function XMLTypePackageImpl$15(){ +} + +defineClass(1865, 1, $intern_162, 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', 1865); +function XMLTypePackageImpl$16(){ +} + +defineClass(1866, 1, $intern_162, 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', 1866); +function XMLTypePackageImpl$17(){ +} + +defineClass(1867, 1, $intern_162, 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', 1867); +function XMLTypePackageImpl$18(){ +} + +defineClass(1868, 1, $intern_162, XMLTypePackageImpl$18); +_.isInstance = function isInstance_58(instance){ + return instanceOf(instance, 155); +} +; +_.newArrayInstance = function newArrayInstance_50(size_0){ + return initUnidimensionalArray(Ljava_lang_Float_2_classLit, $intern_16, 155, 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', 1868); +function XMLTypePackageImpl$19(){ +} + +defineClass(1869, 1, $intern_162, 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', 1869); +function XMLTypePackageImpl$2(){ +} + +defineClass(1852, 1, $intern_162, XMLTypePackageImpl$2); +_.isInstance = function isInstance_60(instance){ + return instanceOf(instance, 842); +} +; +_.newArrayInstance = function newArrayInstance_52(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_AnyType_2_classLit, $intern_2, 842, 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', 1852); +function XMLTypePackageImpl$20(){ +} + +defineClass(1870, 1, $intern_162, 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', 1870); +function XMLTypePackageImpl$21(){ +} + +defineClass(1871, 1, $intern_162, 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', 1871); +function XMLTypePackageImpl$22(){ +} + +defineClass(1872, 1, $intern_162, 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', 1872); +function XMLTypePackageImpl$23(){ +} + +defineClass(1873, 1, $intern_162, 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', 1873); +function XMLTypePackageImpl$24(){ +} + +defineClass(1874, 1, $intern_162, XMLTypePackageImpl$24); +_.isInstance = function isInstance_65(instance){ + return instanceOf(instance, 190); +} +; +_.newArrayInstance = function newArrayInstance_57(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 190, 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', 1874); +function XMLTypePackageImpl$25(){ +} + +defineClass(1875, 1, $intern_162, 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', 1875); +function XMLTypePackageImpl$26(){ +} + +defineClass(1876, 1, $intern_162, 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', 1876); +function XMLTypePackageImpl$27(){ +} + +defineClass(1877, 1, $intern_162, 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', 1877); +function XMLTypePackageImpl$28(){ +} + +defineClass(1878, 1, $intern_162, 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', 1878); +function XMLTypePackageImpl$29(){ +} + +defineClass(1879, 1, $intern_162, 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', 1879); +function XMLTypePackageImpl$3(){ +} + +defineClass(1853, 1, $intern_162, XMLTypePackageImpl$3); +_.isInstance = function isInstance_71(instance){ + return instanceOf(instance, 667); +} +; +_.newArrayInstance = function newArrayInstance_63(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_ProcessingInstruction_2_classLit, $intern_2, 2020, 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', 1853); +function XMLTypePackageImpl$30(){ +} + +defineClass(1880, 1, $intern_162, XMLTypePackageImpl$30); +_.isInstance = function isInstance_72(instance){ + return instanceOf(instance, 19); +} +; +_.newArrayInstance = function newArrayInstance_64(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, 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', 1880); +function XMLTypePackageImpl$31(){ +} + +defineClass(1881, 1, $intern_162, 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', 1881); +function XMLTypePackageImpl$32(){ +} + +defineClass(1882, 1, $intern_162, XMLTypePackageImpl$32); +_.isInstance = function isInstance_74(instance){ + return instanceOf(instance, 162); +} +; +_.newArrayInstance = function newArrayInstance_66(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, 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', 1882); +function XMLTypePackageImpl$33(){ +} + +defineClass(1883, 1, $intern_162, 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', 1883); +function XMLTypePackageImpl$34(){ +} + +defineClass(1884, 1, $intern_162, 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', 1884); +function XMLTypePackageImpl$35(){ +} + +defineClass(1885, 1, $intern_162, 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', 1885); +function XMLTypePackageImpl$36(){ +} + +defineClass(1886, 1, $intern_162, 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', 1886); +function XMLTypePackageImpl$37(){ +} + +defineClass(1887, 1, $intern_162, 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', 1887); +function XMLTypePackageImpl$38(){ +} + +defineClass(1888, 1, $intern_162, 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', 1888); +function XMLTypePackageImpl$39(){ +} + +defineClass(1889, 1, $intern_162, 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', 1889); +function XMLTypePackageImpl$4(){ +} + +defineClass(1854, 1, $intern_162, XMLTypePackageImpl$4); +_.isInstance = function isInstance_82(instance){ + return instanceOf(instance, 668); +} +; +_.newArrayInstance = function newArrayInstance_74(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_SimpleAnyType_2_classLit, $intern_2, 2021, 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', 1854); +function XMLTypePackageImpl$40(){ +} + +defineClass(1890, 1, $intern_162, 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', 1890); +function XMLTypePackageImpl$41(){ +} + +defineClass(1891, 1, $intern_162, 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', 1891); +function XMLTypePackageImpl$42(){ +} + +defineClass(1892, 1, $intern_162, 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', 1892); +function XMLTypePackageImpl$43(){ +} + +defineClass(1893, 1, $intern_162, 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', 1893); +function XMLTypePackageImpl$44(){ +} + +defineClass(1894, 1, $intern_162, 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', 1894); +function XMLTypePackageImpl$45(){ +} + +defineClass(1895, 1, $intern_162, XMLTypePackageImpl$45); +_.isInstance = function isInstance_88(instance){ + return instanceOf(instance, 184); +} +; +_.newArrayInstance = function newArrayInstance_80(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, 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', 1895); +function XMLTypePackageImpl$46(){ +} + +defineClass(1896, 1, $intern_162, 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', 1896); +function XMLTypePackageImpl$47(){ +} + +defineClass(1897, 1, $intern_162, 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', 1897); +function XMLTypePackageImpl$48(){ +} + +defineClass(1898, 1, $intern_162, 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', 1898); +function XMLTypePackageImpl$49(){ +} + +defineClass(1899, 1, $intern_162, XMLTypePackageImpl$49); +_.isInstance = function isInstance_92(instance){ + return instanceOf(instance, 184); +} +; +_.newArrayInstance = function newArrayInstance_84(size_0){ + return initUnidimensionalArray(Ljava_lang_Short_2_classLit, $intern_16, 184, 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', 1899); +function XMLTypePackageImpl$5(){ +} + +defineClass(1855, 1, $intern_162, XMLTypePackageImpl$5); +_.isInstance = function isInstance_93(instance){ + return instanceOf(instance, 669); +} +; +_.newArrayInstance = function newArrayInstance_85(size_0){ + return initUnidimensionalArray(Lorg_eclipse_emf_ecore_xml_type_XMLTypeDocumentRoot_2_classLit, $intern_2, 2022, 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', 1855); +function XMLTypePackageImpl$50(){ +} + +defineClass($intern_47, 1, $intern_162, XMLTypePackageImpl$50); +_.isInstance = function isInstance_94(instance){ + return instanceOf(instance, 162); +} +; +_.newArrayInstance = function newArrayInstance_86(size_0){ + return initUnidimensionalArray(Ljava_lang_Long_2_classLit, $intern_16, 162, 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', $intern_47); +function XMLTypePackageImpl$51(){ +} + +defineClass(1901, 1, $intern_162, 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', 1901); +function XMLTypePackageImpl$52(){ +} + +defineClass(1902, 1, $intern_162, XMLTypePackageImpl$52); +_.isInstance = function isInstance_96(instance){ + return instanceOf(instance, 19); +} +; +_.newArrayInstance = function newArrayInstance_88(size_0){ + return initUnidimensionalArray(Ljava_lang_Integer_2_classLit, $intern_16, 19, 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', 1902); +function XMLTypePackageImpl$6(){ +} + +defineClass(1856, 1, $intern_162, 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', 1856); +function XMLTypePackageImpl$7(){ +} + +defineClass(1857, 1, $intern_162, XMLTypePackageImpl$7); +_.isInstance = function isInstance_98(instance){ + return instanceOf(instance, 190); +} +; +_.newArrayInstance = function newArrayInstance_90(size_0){ + return initUnidimensionalArray(B_classLit, $intern_16, 190, 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', 1857); +function XMLTypePackageImpl$8(){ +} + +defineClass(1858, 1, $intern_162, 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, 476, 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', 1858); +function XMLTypePackageImpl$9(){ +} + +defineClass(1859, 1, $intern_162, XMLTypePackageImpl$9); +_.isInstance = function isInstance_100(instance){ + return instanceOf(instance, 217); +} +; +_.newArrayInstance = function newArrayInstance_92(size_0){ + return initUnidimensionalArray(Ljava_lang_Byte_2_classLit, $intern_16, 217, 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', 1859); +function $clinit_DataValue$Base64(){ + $clinit_DataValue$Base64 = emptyMethod; + var i, i0, i1, i2, i3, i4, i5, j, j0; + base64Alphabet = initUnidimensionalArray(B_classLit, $intern_136, 25, 255, 15, 1); + lookUpBase64Alphabet = initUnidimensionalArray(C_classLit, $intern_44, 25, 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_46; + for (i5 = 26 , j0 = 0; i5 <= 51; ++i5 , j0++) + lookUpBase64Alphabet[i5] = 97 + j0 & $intern_46; + for (i = 52 , j = 0; i <= 61; ++i , j++) + lookUpBase64Alphabet[i] = 48 + j & $intern_46; + 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_136, 25, 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_136, 25, 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_136, 25, 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_136, 25, 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_44, 25, 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_9(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_136, 25, 255, 15, 1); + lookUpHexAlphabet = initUnidimensionalArray(C_classLit, $intern_44, 25, 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_46; + for (i = 10; i <= 15; i++) + lookUpHexAlphabet[i] = 65 + i - 10 & $intern_46; +} + +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_136, 25, 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_44, 25, 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_9(encodedData, 0, encodedData.length); +} + +var hexNumberTable, lookUpHexAlphabet; +function $clinit_DataValue$XMLChar(){ + $clinit_DataValue$XMLChar = emptyMethod; + CHARS = initUnidimensionalArray(B_classLit, $intern_136, 25, $intern_63, 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_64, 33); + fill_0(CHARS, 57344, 65534, 33); +} + +var CHARS; +function RegEx$ParseException(mes){ + RuntimeException_0.call(this, mes); +} + +defineClass(50, 60, $intern_43, RegEx$ParseException); +var Lorg_eclipse_emf_ecore_xml_type_internal_RegEx$ParseException_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.internal', 'RegEx/ParseException', 50); +function $next_17(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_64 && this$static.offset < this$static.regexlen) { + low = $charAt(this$static.regex, this$static.offset); + if ((low & 64512) == 56320) { + this$static.chardata = $intern_63 + (ch_0 - $intern_64 << 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_17(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), 584); + if (this$static.parennumber <= position.refNumber) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.parse.2')))); + } + this$static.references.arrayList.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_2, 1, 0, 5, 1); + } + 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_17(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_17(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_63?(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_17(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_17(this$static); + if ((high & 64512) == $intern_64 && this$static.nexttoken == 0 && (this$static.chardata & 64512) == 56320) { + sur = initUnidimensionalArray(C_classLit, $intern_44, 25, 2, 15, 1); + sur[0] = high & $intern_46; + sur[1] = this$static.chardata & $intern_46; + tok = createParen(createString_0(valueOf_9(sur, 0, sur.length)), 0); + $next_17(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_17(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_17(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_17(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_17(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(819, 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_17(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_17(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_165) + 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_17(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_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = v1; + $next_17(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_17(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_17(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_17(this); + if (this.nexttoken != 0 || (v1 = hexChar(this.chardata)) < 0) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.descape.1')))); + uv = v1; + $next_17(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_17(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_17(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_17(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_17(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_165) + 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_17(this); + base = null; + if (this.nexttoken == 0 && this.chardata == 94) { + $next_17(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_165); + 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_17(this); + if (!end) { + if (this.nexttoken != 0 || this.chardata != 45) { + $addRange(tok, c, c); + } + else { + $next_17(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_17(this); + $addRange(tok, c, rangeend); + } + } + } + (this.options_0 & $intern_148) == $intern_148 && this.nexttoken == 0 && this.chardata == 44 && $next_17(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_17(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_17(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_17(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_17(this); + return tok; +} +; +_.processBacksolidus_A = function processBacksolidus_A(){ + $next_17(this); + return $clinit_RegEx$Token() , token_stringbeginning; +} +; +_.processBacksolidus_B = function processBacksolidus_B(){ + $next_17(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_17(this); + return getCombiningCharacterSequence(); +} +; +_.processBacksolidus_Z = function processBacksolidus_Z(){ + $next_17(this); + return $clinit_RegEx$Token() , token_stringend2; +} +; +_.processBacksolidus_b = function processBacksolidus_b(){ + $next_17(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_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$CharToken(0, ch2 - 64); +} +; +_.processBacksolidus_g = function processBacksolidus_g(){ + $next_17(this); + return getGraphemePattern(); +} +; +_.processBacksolidus_gt = function processBacksolidus_gt(){ + $next_17(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_17(this); + return tok; +} +; +_.processBacksolidus_lt = function processBacksolidus_lt(){ + $next_17(this); + return $clinit_RegEx$Token() , token_wordbeginning; +} +; +_.processBacksolidus_z = function processBacksolidus_z(){ + $next_17(this); + return $clinit_RegEx$Token() , token_stringend; +} +; +_.processCIinCharacterClass = function processCIinCharacterClass(tok, c){ + return this.decodeEscaped(); +} +; +_.processCaret = function processCaret(){ + $next_17(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_17(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_17(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_17(this); + return $clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$ConditionToken(refno, condition, yesPattern, noPattern); +} +; +_.processDollar = function processDollar(){ + $next_17(this); + return $clinit_RegEx$Token() , token_lineend; +} +; +_.processIndependent = function processIndependent(){ + var tok; + $next_17(this); + tok = createLook(24, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processLookahead = function processLookahead(){ + var tok; + $next_17(this); + tok = createLook(20, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processLookbehind = function processLookbehind(){ + var tok; + $next_17(this); + tok = createLook(22, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(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_17(this); + tok = createModifierGroup($parseRegex(this), add_0, mask); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + } + else if (ch_0 == 41) { + ++this.offset; + $next_17(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_17(this); + tok = createLook(21, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processNegativelookbehind = function processNegativelookbehind(){ + var tok; + $next_17(this); + tok = createLook(23, $parseRegex(this)); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processParen = function processParen(){ + var p, tok; + $next_17(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_17(this); + return tok; +} +; +_.processParen2 = function processParen2(){ + var tok; + $next_17(this); + tok = createParen($parseRegex(this), 0); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processPlus = function processPlus(tok){ + $next_17(this); + if (this.nexttoken == 5) { + $next_17(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_17(this); + par = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$Token$UnionToken(2)); + if (this.nexttoken == 5) { + $next_17(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_17(this); + if (this.nexttoken == 5) { + $next_17(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', 819); +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_17(this$static); + base = null; + if (this$static.nexttoken == 0 && this$static.chardata == 94) { + $next_17(this$static); + base = ($clinit_RegEx$Token() , $clinit_RegEx$Token() , ++tokens_0 , new RegEx$RangeToken(4)); + $addRange(base, 0, $intern_165); + 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_17(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_17(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_17(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_17(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'), 117)); + $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), 136):castTo($getStringValue(ranges2, name_0), 136); + 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(1823, 819, {}, 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_17(this); + return $getTokenForShorthand(67); +} +; +_.processBacksolidus_I = function processBacksolidus_I_0(){ + $next_17(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_17(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_17(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_17(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_17(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_17(this); + tok = createParen($parseRegex(this), 0); + if (this.nexttoken != 7) + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.factor.1')))); + $next_17(this); + return tok; +} +; +_.processParen2 = function processParen2_0(){ + throw toJs(new RegEx$ParseException($getString(($clinit_EcorePlugin() , 'parser.process.1')))); +} +; +_.processPlus = function processPlus_0(tok){ + $next_17(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_17(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_17(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', 1823); +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_148) != 0 && (sb.string += ',' , sb); + return $intern(sb.string); +} + +function decomposeToSurrogates(ch_0){ + var chs; + chs = initUnidimensionalArray(C_classLit, $intern_44, 25, 2, 15, 1); + ch_0 -= $intern_63; + chs[0] = (ch_0 >> 10) + $intern_64 & $intern_46; + chs[1] = (ch_0 & 1023) + 56320 & $intern_46; + return valueOf_9(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_148; + } + 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('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, literal.substr(0, i)); + } + buffer.string += '\\'; + $append(buffer, ch_0 & $intern_46); + } + else + !!buffer && $append(buffer, ch_0 & $intern_46); + } + 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_46); + ++offset; + } + else { + buffer.string += '\\'; + $append(buffer, next & $intern_46); + ++offset; + } + } + else + $append(buffer, ch_0 & $intern_46); + } + 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_48, 25, 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, 117, 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 = buffer.string.substr(0, 0)):0 > oldLength && (buffer.string += valueOf_8(initUnidimensionalArray(C_classLit, $intern_44, 25, -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_165); + $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), 136):castTo($getStringValue(categories2, name_0), 136); + 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), 117); + t2 = castTo($getStringValue(categories2, name_0), 117); + if (positive) { + $putStringValue(categories, newName, t1); + $putStringValue(categories2, newName, t2); + } + else { + $putStringValue(categories2, newName, t1); + $putStringValue(categories, newName, t2); + } +} + +defineClass(117, 1, $intern_166, 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_81(){ + return 0; +} +; +_.toString_0 = function toString_161(){ + return this.toString_1(0); +} +; +_.toString_1 = function toString_162(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', 117); +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_48, 25, 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_48, 25, 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_48, 25, 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_48, 25, 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_48, 25, 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, 136); + $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_48, 25, tok.ranges.length, 15, 1); + arraycopy(tok.ranges, 0, this$static.ranges, 0, tok.ranges.length); + return; + } + result = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_48, 25, 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_48, 25, 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_165 && (len -= 2); + ret = (++tokens_0 , new RegEx$RangeToken(4)); + ret.ranges = initUnidimensionalArray(I_classLit, $intern_48, 25, 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_165) { + ret.ranges[wp++] = last + 1; + ret.ranges[wp] = $intern_165; + } + 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_46); + 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_63) { + 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_46); + } + return ret; +} + +defineClass(136, 117, {3:1, 136:1, 117:1}, RegEx$RangeToken); +_.toString_1 = function toString_163(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_148) != 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_148) != 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', 136); +function RegEx$RegexParser$ReferencePosition(n){ + this.refNumber = n; +} + +defineClass(584, 1, {584: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', 584); +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(583, 1, {3:1, 583:1}, RegEx$RegularExpression); +_.equals_0 = function equals_198(obj){ + var r; + if (obj == null) + return false; + if (!instanceOf(obj, 583)) + return false; + r = castTo(obj, 583); + return $equals_5(this.regex, r.regex) && this.options_0 == r.options_0; +} +; +_.hashCode_1 = function hashCode_84(){ + return getHashCode_1(this.regex + '/' + createOptionString(this.options_0)); +} +; +_.toString_0 = function toString_164(){ + 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', 583); +function RegEx$Token$CharToken(type_0, ch_0){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.chardata = ch_0; +} + +defineClass(223, 117, $intern_166, RegEx$Token$CharToken); +_.getChar = function getChar_0(){ + return this.chardata; +} +; +_.toString_1 = function toString_165(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_46); + 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_63) { + 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_46); + } + + break; + case 8: + this == token_linebeginning || this == token_lineend?(ret = '' + charToString(this.chardata & $intern_46)):(ret = '\\' + charToString(this.chardata & $intern_46)); + 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', 223); +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(309, 117, $intern_166, 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_82(){ + return 1; +} +; +_.toString_1 = function toString_166(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', 309); +function RegEx$Token$ConcatToken(t1, t2){ + RegEx$Token.call(this, 1); + this.child = t1; + this.child2 = t2; +} + +defineClass(820, 117, $intern_166, RegEx$Token$ConcatToken); +_.getChild = function getChild_1(index_0){ + return index_0 == 0?this.child:this.child2; +} +; +_.size_2 = function size_83(){ + return 2; +} +; +_.toString_1 = function toString_167(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', 820); +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(1821, 117, $intern_166, 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_84(){ + return !this.no?1:2; +} +; +_.toString_1 = function toString_168(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', 1821); +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(1822, 117, $intern_166, RegEx$Token$ModifierToken); +_.getChild = function getChild_3(index_0){ + return this.child; +} +; +_.size_2 = function size_85(){ + return 1; +} +; +_.toString_1 = function toString_169(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', 1822); +function RegEx$Token$ParenToken(type_0, tok, paren){ + RegEx$Token.call(this, type_0); + this.child = tok; + this.parennumber = paren; +} + +defineClass(821, 117, $intern_166, RegEx$Token$ParenToken); +_.getChild = function getChild_4(index_0){ + return this.child; +} +; +_.size_2 = function size_86(){ + return 1; +} +; +_.toString_1 = function toString_170(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', 821); +function RegEx$Token$StringToken(type_0, str, n){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); + this.string = str; + this.refNumber = n; +} + +defineClass(521, 117, {3:1, 117:1, 521:1}, RegEx$Token$StringToken); +_.getString = function getString_0(){ + return this.string; +} +; +_.toString_1 = function toString_171(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', 521); +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), 117); + 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_63?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_46); + 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_63?$append_3(buffer, decomposeToSurrogates(ch_0)):$append(buffer, ch_0 & $intern_46); + } + else { + $append_3(buffer, tok.getString()); + } + castTo(previous, 521).string = buffer.string; +} + +function RegEx$Token$UnionToken(type_0){ + $clinit_RegEx$Token(); + RegEx$Token.call(this, type_0); +} + +defineClass(465, 117, $intern_166, 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), 117); +} +; +_.size_2 = function size_87(){ + return !this.children?0:this.children.arrayList.array.length; +} +; +_.toString_1 = function toString_172(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), 117); + ch2 = castTo($elementAt(this.children, 1), 117); + 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), 117).toString_1(options)); + } + ret = sb.string; + } + return ret; + } + if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 1), 117).type_0 == 7) { + ret = castTo($elementAt(this.children, 0), 117).toString_1(options) + '?'; + } + else if (this.children.arrayList.array.length == 2 && castTo($elementAt(this.children, 0), 117).type_0 == 7) { + ret = castTo($elementAt(this.children, 1), 117).toString_1(options) + '??'; + } + else { + sb = new StringBuffer; + $append_3(sb, castTo($elementAt(this.children, 0), 117).toString_1(options)); + for (i = 1; i < this.children.arrayList.array.length; i++) { + sb.string += '|'; + $append_3(sb, castTo($elementAt(this.children, i), 117).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', 465); +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_44, 25, 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 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(518, 1, {592:1}, XMLTypeUtil$PatternMatcherImpl); +_.toString_0 = function toString_173(){ + 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', 518); +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, 367, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 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, 367, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 367, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('[\\i-[:]][\\c-[:]]*')]), stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\i\\c*')])]); + new BigInteger_4('-1'); + stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 2), $intern_16, 367, 0, [stampJavaTypeInfo(getClassLiteralForArray(Lorg_eclipse_emf_ecore_EValidator$PatternMatcher_2_classLit, 1), $intern_167, 592, 0, [new XMLTypeUtil$PatternMatcherImpl('\\c+')])]); + new BigInteger_4('0'); + new BigInteger_4('0'); + new BigInteger_4('1'); + new BigInteger_4('0'); + new BigInteger_4('18446744073709551615'); +} + +function XMLTypeValidator(){ +} + +defineClass(1621, 1380, {}, XMLTypeValidator); +var INSTANCE_12; +var Lorg_eclipse_emf_ecore_xml_type_util_XMLTypeValidator_2_classLit = createForClass('org.eclipse.emf.ecore.xml.type.util', 'XMLTypeValidator', 1621); +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(264, 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', 264); +function $add_35(){ + throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); +} + +function $next_18(){ + throw toJs(new NoSuchElementException); +} + +function $previous_1(){ + throw toJs(new NoSuchElementException); +} + +function $set_20(){ + throw toJs(new UnsupportedOperationException_0('Cannot set elements in a Range')); +} + +function ExclusiveRange$1(){ +} + +defineClass(1067, 1, $intern_14, ExclusiveRange$1); +_.add_1 = function add_73(e){ + castTo(e, 19); + $add_35(); +} +; +_.forEachRemaining = function forEachRemaining_61(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_51(){ + return $next_18(); +} +; +_.previous_0 = function previous_12(){ + return $previous_1(); +} +; +_.set_1 = function set_45(e){ + castTo(e, 19); + $set_20(); +} +; +_.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_132(){ + 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', 1067); +function $add_36(){ + throw toJs(new UnsupportedOperationException_0('Cannot add elements to a Range')); +} + +function $next_19(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_4(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_4(this$static.next_0); +} + +function $set_21(){ + 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(254, 1, $intern_14, ExclusiveRange$RangeIterator); +_.add_1 = function add_74(e){ + castTo(e, 19); + $add_36(); +} +; +_.forEachRemaining = function forEachRemaining_62(consumer){ + $forEachRemaining(this, consumer); +} +; +_.next_1 = function next_52(){ + return $next_19(this); +} +; +_.previous_0 = function previous_13(){ + return $previous_2(this); +} +; +_.set_1 = function set_46(e){ + castTo(e, 19); + $set_21(); +} +; +_.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_133(){ + 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', 254); +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], 47).hasNext_0()) { + $apply_28(procedure, $next_14(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_4(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', 'ie10']], [['locale', 'default'], ['user.agent', 'ie8']], [['locale', 'default'], ['user.agent', 'ie9']], [['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..b50a3ae --- /dev/null +++ b/lib/elk-worker.min.js @@ -0,0 +1,6148 @@ +'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 $g(){} +function _p(){} +function yq(){} +function Sq(){} +function Es(){} +function Jw(){} +function Vw(){} +function VA(){} +function dA(){} +function MA(){} +function PA(){} +function PB(){} +function bx(){} +function cx(){} +function vy(){} +function Nz(){} +function Yz(){} +function fcb(){} +function bcb(){} +function icb(){} +function $fb(){} +function Xlb(){} +function Xmb(){} +function wmb(){} +function Emb(){} +function Pmb(){} +function apb(){} +function jpb(){} +function opb(){} +function Fpb(){} +function crb(){} +function itb(){} +function ntb(){} +function ptb(){} +function Nvb(){} +function exb(){} +function Uxb(){} +function ayb(){} +function yyb(){} +function Yyb(){} +function $yb(){} +function czb(){} +function ezb(){} +function gzb(){} +function izb(){} +function kzb(){} +function mzb(){} +function qzb(){} +function yzb(){} +function Bzb(){} +function Dzb(){} +function Fzb(){} +function Hzb(){} +function Lzb(){} +function aBb(){} +function MBb(){} +function OBb(){} +function QBb(){} +function hCb(){} +function NCb(){} +function RCb(){} +function FDb(){} +function IDb(){} +function eEb(){} +function wEb(){} +function BEb(){} +function FEb(){} +function xFb(){} +function JGb(){} +function sIb(){} +function uIb(){} +function wIb(){} +function yIb(){} +function NIb(){} +function RIb(){} +function SJb(){} +function UJb(){} +function WJb(){} +function WKb(){} +function eKb(){} +function UKb(){} +function ULb(){} +function iLb(){} +function mLb(){} +function FLb(){} +function JLb(){} +function LLb(){} +function NLb(){} +function QLb(){} +function XLb(){} +function aMb(){} +function fMb(){} +function kMb(){} +function oMb(){} +function vMb(){} +function yMb(){} +function BMb(){} +function EMb(){} +function KMb(){} +function yNb(){} +function ONb(){} +function jOb(){} +function oOb(){} +function sOb(){} +function xOb(){} +function EOb(){} +function FPb(){} +function _Pb(){} +function bQb(){} +function dQb(){} +function fQb(){} +function hQb(){} +function BQb(){} +function LQb(){} +function NQb(){} +function zSb(){} +function eTb(){} +function jTb(){} +function RTb(){} +function eUb(){} +function CUb(){} +function UUb(){} +function XUb(){} +function $Ub(){} +function $Wb(){} +function PWb(){} +function WWb(){} +function iVb(){} +function CVb(){} +function UVb(){} +function ZVb(){} +function cXb(){} +function gXb(){} +function kXb(){} +function fYb(){} +function GYb(){} +function RYb(){} +function UYb(){} +function cZb(){} +function O$b(){} +function S$b(){} +function g1b(){} +function l1b(){} +function p1b(){} +function t1b(){} +function x1b(){} +function B1b(){} +function d2b(){} +function f2b(){} +function l2b(){} +function p2b(){} +function t2b(){} +function R2b(){} +function T2b(){} +function V2b(){} +function $2b(){} +function d3b(){} +function g3b(){} +function o3b(){} +function s3b(){} +function v3b(){} +function x3b(){} +function z3b(){} +function L3b(){} +function P3b(){} +function T3b(){} +function X3b(){} +function k4b(){} +function p4b(){} +function r4b(){} +function t4b(){} +function v4b(){} +function x4b(){} +function K4b(){} +function M4b(){} +function O4b(){} +function Q4b(){} +function S4b(){} +function W4b(){} +function H5b(){} +function P5b(){} +function S5b(){} +function Y5b(){} +function k6b(){} +function n6b(){} +function s6b(){} +function y6b(){} +function K6b(){} +function L6b(){} +function O6b(){} +function W6b(){} +function Z6b(){} +function _6b(){} +function b7b(){} +function f7b(){} +function i7b(){} +function l7b(){} +function q7b(){} +function w7b(){} +function C7b(){} +function C9b(){} +function a9b(){} +function g9b(){} +function i9b(){} +function k9b(){} +function v9b(){} +function E9b(){} +function gac(){} +function iac(){} +function oac(){} +function tac(){} +function Hac(){} +function Jac(){} +function Rac(){} +function nbc(){} +function qbc(){} +function ubc(){} +function Ebc(){} +function Ibc(){} +function Wbc(){} +function bcc(){} +function ecc(){} +function kcc(){} +function ncc(){} +function scc(){} +function xcc(){} +function zcc(){} +function Bcc(){} +function Dcc(){} +function Fcc(){} +function Ycc(){} +function adc(){} +function edc(){} +function gdc(){} +function idc(){} +function odc(){} +function rdc(){} +function xdc(){} +function zdc(){} +function Bdc(){} +function Ddc(){} +function Hdc(){} +function Mdc(){} +function Pdc(){} +function Rdc(){} +function Tdc(){} +function Vdc(){} +function Xdc(){} +function _dc(){} +function gec(){} +function iec(){} +function kec(){} +function mec(){} +function tec(){} +function vec(){} +function xec(){} +function zec(){} +function Eec(){} +function Iec(){} +function Kec(){} +function Mec(){} +function Qec(){} +function Tec(){} +function Yec(){} +function Yfc(){} +function kfc(){} +function sfc(){} +function wfc(){} +function yfc(){} +function Efc(){} +function Ifc(){} +function Mfc(){} +function Ofc(){} +function Ufc(){} +function $fc(){} +function egc(){} +function igc(){} +function kgc(){} +function Agc(){} +function dhc(){} +function fhc(){} +function hhc(){} +function jhc(){} +function lhc(){} +function nhc(){} +function phc(){} +function xhc(){} +function zhc(){} +function Fhc(){} +function Hhc(){} +function Jhc(){} +function Lhc(){} +function Rhc(){} +function Thc(){} +function Vhc(){} +function cic(){} +function clc(){} +function alc(){} +function elc(){} +function glc(){} +function ilc(){} +function Flc(){} +function Hlc(){} +function Jlc(){} +function Llc(){} +function Ljc(){} +function Pjc(){} +function Plc(){} +function Tlc(){} +function Xlc(){} +function Kkc(){} +function Mkc(){} +function Okc(){} +function Qkc(){} +function Wkc(){} +function $kc(){} +function fmc(){} +function jmc(){} +function ymc(){} +function Emc(){} +function Vmc(){} +function Zmc(){} +function _mc(){} +function lnc(){} +function vnc(){} +function Gnc(){} +function Inc(){} +function Knc(){} +function Mnc(){} +function Onc(){} +function Xnc(){} +function doc(){} +function zoc(){} +function Boc(){} +function Doc(){} +function Ioc(){} +function Koc(){} +function Yoc(){} +function $oc(){} +function apc(){} +function gpc(){} +function jpc(){} +function opc(){} +function Pyc(){} +function LCc(){} +function KDc(){} +function kFc(){} +function tGc(){} +function DGc(){} +function FGc(){} +function JGc(){} +function CIc(){} +function eKc(){} +function iKc(){} +function sKc(){} +function uKc(){} +function wKc(){} +function AKc(){} +function GKc(){} +function KKc(){} +function MKc(){} +function OKc(){} +function QKc(){} +function UKc(){} +function YKc(){} +function bLc(){} +function dLc(){} +function jLc(){} +function lLc(){} +function pLc(){} +function rLc(){} +function vLc(){} +function xLc(){} +function zLc(){} +function BLc(){} +function oMc(){} +function FMc(){} +function dNc(){} +function NNc(){} +function VNc(){} +function XNc(){} +function ZNc(){} +function _Nc(){} +function bOc(){} +function dOc(){} +function $Oc(){} +function ePc(){} +function gPc(){} +function iPc(){} +function tPc(){} +function vPc(){} +function vSc(){} +function xSc(){} +function CSc(){} +function ESc(){} +function JSc(){} +function JQc(){} +function HQc(){} +function XQc(){} +function dRc(){} +function fRc(){} +function GRc(){} +function JRc(){} +function JTc(){} +function JVc(){} +function kVc(){} +function OVc(){} +function RVc(){} +function TVc(){} +function VVc(){} +function ZVc(){} +function ZWc(){} +function ZXc(){} +function yXc(){} +function BXc(){} +function EXc(){} +function IXc(){} +function QXc(){} +function PSc(){} +function bYc(){} +function kYc(){} +function mYc(){} +function qYc(){} +function lZc(){} +function C$c(){} +function d0c(){} +function J0c(){} +function g1c(){} +function E1c(){} +function M1c(){} +function c2c(){} +function e2c(){} +function g2c(){} +function s2c(){} +function K2c(){} +function O2c(){} +function V2c(){} +function r3c(){} +function t3c(){} +function N3c(){} +function Q3c(){} +function a4c(){} +function s4c(){} +function t4c(){} +function v4c(){} +function x4c(){} +function z4c(){} +function B4c(){} +function D4c(){} +function F4c(){} +function H4c(){} +function J4c(){} +function L4c(){} +function N4c(){} +function P4c(){} +function R4c(){} +function T4c(){} +function V4c(){} +function X4c(){} +function Z4c(){} +function _4c(){} +function b5c(){} +function d5c(){} +function D5c(){} +function X7c(){} +function Zad(){} +function hdd(){} +function bed(){} +function Eed(){} +function Ied(){} +function Med(){} +function Qed(){} +function Ued(){} +function Ufd(){} +function Cfd(){} +function Wfd(){} +function agd(){} +function fgd(){} +function Hgd(){} +function vhd(){} +function vld(){} +function Old(){} +function skd(){} +function mmd(){} +function fnd(){} +function Eod(){} +function ECd(){} +function XCd(){} +function wpd(){} +function Ypd(){} +function Yud(){} +function tud(){} +function evd(){} +function Cxd(){} +function zBd(){} +function jFd(){} +function wFd(){} +function HGd(){} +function qHd(){} +function MHd(){} +function rNd(){} +function uNd(){} +function xNd(){} +function FNd(){} +function SNd(){} +function VNd(){} +function CPd(){} +function gUd(){} +function SUd(){} +function yWd(){} +function BWd(){} +function EWd(){} +function HWd(){} +function KWd(){} +function NWd(){} +function QWd(){} +function TWd(){} +function WWd(){} +function sYd(){} +function wYd(){} +function hZd(){} +function zZd(){} +function BZd(){} +function EZd(){} +function HZd(){} +function KZd(){} +function NZd(){} +function QZd(){} +function TZd(){} +function WZd(){} +function ZZd(){} +function a$d(){} +function d$d(){} +function g$d(){} +function j$d(){} +function m$d(){} +function p$d(){} +function s$d(){} +function v$d(){} +function y$d(){} +function B$d(){} +function E$d(){} +function H$d(){} +function K$d(){} +function N$d(){} +function Q$d(){} +function T$d(){} +function W$d(){} +function Z$d(){} +function a_d(){} +function d_d(){} +function g_d(){} +function j_d(){} +function m_d(){} +function p_d(){} +function s_d(){} +function v_d(){} +function y_d(){} +function B_d(){} +function E_d(){} +function H_d(){} +function K_d(){} +function N_d(){} +function Q_d(){} +function T_d(){} +function c5d(){} +function P6d(){} +function P9d(){} +function W8d(){} +function aae(){} +function cae(){} +function fae(){} +function iae(){} +function lae(){} +function oae(){} +function rae(){} +function uae(){} +function xae(){} +function Aae(){} +function Dae(){} +function Gae(){} +function Jae(){} +function Mae(){} +function Pae(){} +function Sae(){} +function Vae(){} +function Yae(){} +function _ae(){} +function cbe(){} +function fbe(){} +function ibe(){} +function lbe(){} +function obe(){} +function rbe(){} +function ube(){} +function xbe(){} +function Abe(){} +function Dbe(){} +function Gbe(){} +function Jbe(){} +function Mbe(){} +function Pbe(){} +function Sbe(){} +function Vbe(){} +function Ybe(){} +function _be(){} +function cce(){} +function fce(){} +function ice(){} +function lce(){} +function oce(){} +function rce(){} +function uce(){} +function xce(){} +function Ace(){} +function Dce(){} +function Gce(){} +function Jce(){} +function Mce(){} +function Pce(){} +function Sce(){} +function pde(){} +function Qge(){} +function $ge(){} +function r_b(a){} +function eSd(a){} +function ol(){wb()} +function C2b(){w2b()} +function fFb(){eFb()} +function nPb(){mPb()} +function DPb(){BPb()} +function SRb(){RRb()} +function xSb(){vSb()} +function OSb(){NSb()} +function cTb(){aTb()} +function h4b(){a4b()} +function I6b(){C6b()} +function t9b(){p9b()} +function Z9b(){H9b()} +function Tmc(){Hmc()} +function TBc(){QBc()} +function UCc(){QCc()} +function fCc(){cCc()} +function mCc(){jCc()} +function dDc(){ZCc()} +function sDc(){mDc()} +function _ac(){Uac()} +function _Ic(){YIc()} +function Scc(){Ncc()} +function wkc(){fkc()} +function pJc(){fJc()} +function iwc(){hwc()} +function Nyc(){Lyc()} +function xFc(){tFc()} +function bHc(){_Gc()} +function GLc(){ELc()} +function sNc(){pNc()} +function oTc(){nTc()} +function HTc(){FTc()} +function hUc(){bUc()} +function oUc(){lUc()} +function yUc(){sUc()} +function EUc(){CUc()} +function EWc(){DWc()} +function XWc(){VWc()} +function LYc(){KYc()} +function jZc(){hZc()} +function b0c(){__c()} +function x0c(){w0c()} +function H0c(){F0c()} +function m3c(){l3c()} +function V7c(){T7c()} +function V9c(){U9c()} +function Vmd(){Nmd()} +function Xad(){Vad()} +function fdd(){ddd()} +function CGd(){oGd()} +function cLd(){IKd()} +function E6d(){Pge()} +function Lvb(a){tCb(a)} +function Yb(a){this.a=a} +function cc(a){this.a=a} +function cj(a){this.a=a} +function ij(a){this.a=a} +function Dj(a){this.a=a} +function df(a){this.a=a} +function kf(a){this.a=a} +function ah(a){this.a=a} +function lh(a){this.a=a} +function th(a){this.a=a} +function Ph(a){this.a=a} +function vi(a){this.a=a} +function Ci(a){this.a=a} +function Fk(a){this.a=a} +function Ln(a){this.a=a} +function ap(a){this.a=a} +function zp(a){this.a=a} +function Yp(a){this.a=a} +function qq(a){this.a=a} +function Dq(a){this.a=a} +function wr(a){this.a=a} +function Ir(a){this.b=a} +function sj(a){this.c=a} +function sw(a){this.a=a} +function fw(a){this.a=a} +function xw(a){this.a=a} +function Cw(a){this.a=a} +function Qw(a){this.a=a} +function Rw(a){this.a=a} +function Xw(a){this.a=a} +function Xv(a){this.a=a} +function Sv(a){this.a=a} +function eu(a){this.a=a} +function Zx(a){this.a=a} +function _x(a){this.a=a} +function xy(a){this.a=a} +function xB(a){this.a=a} +function HB(a){this.a=a} +function TB(a){this.a=a} +function fC(a){this.a=a} +function wB(){this.a=[]} +function LBb(a,b){a.a=b} +function v_b(a,b){a.a=b} +function w_b(a,b){a.b=b} +function XOb(a,b){a.b=b} +function ZOb(a,b){a.b=b} +function YGb(a,b){a.j=b} +function pNb(a,b){a.g=b} +function qNb(a,b){a.i=b} +function cRb(a,b){a.c=b} +function dRb(a,b){a.d=b} +function y_b(a,b){a.d=b} +function x_b(a,b){a.c=b} +function $_b(a,b){a.k=b} +function D0b(a,b){a.c=b} +function mjc(a,b){a.c=b} +function ljc(a,b){a.a=b} +function $Ec(a,b){a.a=b} +function _Ec(a,b){a.f=b} +function jOc(a,b){a.a=b} +function kOc(a,b){a.b=b} +function lOc(a,b){a.d=b} +function mOc(a,b){a.i=b} +function nOc(a,b){a.o=b} +function oOc(a,b){a.r=b} +function WPc(a,b){a.a=b} +function XPc(a,b){a.b=b} +function zVc(a,b){a.e=b} +function AVc(a,b){a.f=b} +function BVc(a,b){a.g=b} +function OZc(a,b){a.e=b} +function PZc(a,b){a.f=b} +function $Zc(a,b){a.f=b} +function YId(a,b){a.n=b} +function v1d(a,b){a.a=b} +function E1d(a,b){a.a=b} +function $1d(a,b){a.a=b} +function w1d(a,b){a.c=b} +function F1d(a,b){a.c=b} +function _1d(a,b){a.c=b} +function G1d(a,b){a.d=b} +function H1d(a,b){a.e=b} +function I1d(a,b){a.g=b} +function a2d(a,b){a.d=b} +function b2d(a,b){a.e=b} +function c2d(a,b){a.f=b} +function d2d(a,b){a.j=b} +function U8d(a,b){a.a=b} +function V8d(a,b){a.b=b} +function b9d(a,b){a.a=b} +function Bic(a){a.b=a.a} +function Dg(a){a.c=a.d.d} +function uib(a){this.d=a} +function dib(a){this.a=a} +function Oib(a){this.a=a} +function Uib(a){this.a=a} +function Zib(a){this.a=a} +function lcb(a){this.a=a} +function Lcb(a){this.a=a} +function Wcb(a){this.a=a} +function Mdb(a){this.a=a} +function $db(a){this.a=a} +function seb(a){this.a=a} +function Peb(a){this.a=a} +function cjb(a){this.a=a} +function Fjb(a){this.a=a} +function Mjb(a){this.a=a} +function Ajb(a){this.b=a} +function knb(a){this.b=a} +function Cnb(a){this.b=a} +function nlb(a){this.c=a} +function hob(a){this.c=a} +function Lob(a){this.a=a} +function Qob(a){this.a=a} +function _mb(a){this.a=a} +function spb(a){this.a=a} +function $pb(a){this.a=a} +function Vqb(a){this.a=a} +function msb(a){this.a=a} +function Sub(a){this.a=a} +function Uub(a){this.a=a} +function Wub(a){this.a=a} +function Yub(a){this.a=a} +function pub(a){this.c=a} +function Qxb(a){this.a=a} +function Sxb(a){this.a=a} +function Wxb(a){this.a=a} +function azb(a){this.a=a} +function szb(a){this.a=a} +function uzb(a){this.a=a} +function wzb(a){this.a=a} +function Jzb(a){this.a=a} +function Nzb(a){this.a=a} +function hAb(a){this.a=a} +function jAb(a){this.a=a} +function lAb(a){this.a=a} +function AAb(a){this.a=a} +function gBb(a){this.a=a} +function iBb(a){this.a=a} +function mBb(a){this.a=a} +function SBb(a){this.a=a} +function WBb(a){this.a=a} +function PCb(a){this.a=a} +function VCb(a){this.a=a} +function $Cb(a){this.a=a} +function cEb(a){this.a=a} +function PGb(a){this.a=a} +function XGb(a){this.a=a} +function sKb(a){this.a=a} +function BLb(a){this.a=a} +function IMb(a){this.a=a} +function QNb(a){this.a=a} +function jQb(a){this.a=a} +function lQb(a){this.a=a} +function EQb(a){this.a=a} +function DTb(a){this.a=a} +function TTb(a){this.a=a} +function cUb(a){this.a=a} +function gUb(a){this.a=a} +function DZb(a){this.a=a} +function i$b(a){this.a=a} +function u$b(a){this.e=a} +function I0b(a){this.a=a} +function L0b(a){this.a=a} +function Q0b(a){this.a=a} +function T0b(a){this.a=a} +function h2b(a){this.a=a} +function j2b(a){this.a=a} +function n2b(a){this.a=a} +function r2b(a){this.a=a} +function F2b(a){this.a=a} +function H2b(a){this.a=a} +function J2b(a){this.a=a} +function L2b(a){this.a=a} +function V3b(a){this.a=a} +function Z3b(a){this.a=a} +function U4b(a){this.a=a} +function t5b(a){this.a=a} +function z7b(a){this.a=a} +function F7b(a){this.a=a} +function I7b(a){this.a=a} +function L7b(a){this.a=a} +function Lbc(a){this.a=a} +function Obc(a){this.a=a} +function kac(a){this.a=a} +function mac(a){this.a=a} +function pcc(a){this.a=a} +function Fdc(a){this.a=a} +function Zdc(a){this.a=a} +function bec(a){this.a=a} +function $ec(a){this.a=a} +function ofc(a){this.a=a} +function Afc(a){this.a=a} +function Kfc(a){this.a=a} +function xgc(a){this.a=a} +function Cgc(a){this.a=a} +function rhc(a){this.a=a} +function thc(a){this.a=a} +function vhc(a){this.a=a} +function Bhc(a){this.a=a} +function Dhc(a){this.a=a} +function Nhc(a){this.a=a} +function Xhc(a){this.a=a} +function Skc(a){this.a=a} +function Ukc(a){this.a=a} +function Nlc(a){this.a=a} +function onc(a){this.a=a} +function qnc(a){this.a=a} +function cpc(a){this.a=a} +function epc(a){this.a=a} +function BCc(a){this.a=a} +function FCc(a){this.a=a} +function hDc(a){this.a=a} +function eEc(a){this.a=a} +function CEc(a){this.a=a} +function YEc(a){this.a=a} +function AEc(a){this.c=a} +function poc(a){this.b=a} +function BFc(a){this.a=a} +function dGc(a){this.a=a} +function fGc(a){this.a=a} +function hGc(a){this.a=a} +function WGc(a){this.a=a} +function dIc(a){this.a=a} +function hIc(a){this.a=a} +function lIc(a){this.a=a} +function pIc(a){this.a=a} +function tIc(a){this.a=a} +function vIc(a){this.a=a} +function yIc(a){this.a=a} +function HIc(a){this.a=a} +function yKc(a){this.a=a} +function EKc(a){this.a=a} +function IKc(a){this.a=a} +function WKc(a){this.a=a} +function $Kc(a){this.a=a} +function fLc(a){this.a=a} +function nLc(a){this.a=a} +function tLc(a){this.a=a} +function KMc(a){this.a=a} +function VOc(a){this.a=a} +function VRc(a){this.a=a} +function YRc(a){this.a=a} +function E$c(a){this.a=a} +function G$c(a){this.a=a} +function I$c(a){this.a=a} +function K$c(a){this.a=a} +function Q$c(a){this.a=a} +function j1c(a){this.a=a} +function v1c(a){this.a=a} +function x1c(a){this.a=a} +function M2c(a){this.a=a} +function Q2c(a){this.a=a} +function v3c(a){this.a=a} +function hed(a){this.a=a} +function Sed(a){this.a=a} +function Wed(a){this.a=a} +function Lfd(a){this.a=a} +function wgd(a){this.a=a} +function Vgd(a){this.a=a} +function grd(a){this.a=a} +function prd(a){this.a=a} +function qrd(a){this.a=a} +function rrd(a){this.a=a} +function srd(a){this.a=a} +function trd(a){this.a=a} +function urd(a){this.a=a} +function vrd(a){this.a=a} +function wrd(a){this.a=a} +function xrd(a){this.a=a} +function Drd(a){this.a=a} +function Frd(a){this.a=a} +function Grd(a){this.a=a} +function Hrd(a){this.a=a} +function Ird(a){this.a=a} +function Krd(a){this.a=a} +function Nrd(a){this.a=a} +function Trd(a){this.a=a} +function Urd(a){this.a=a} +function Wrd(a){this.a=a} +function Xrd(a){this.a=a} +function Yrd(a){this.a=a} +function Zrd(a){this.a=a} +function $rd(a){this.a=a} +function hsd(a){this.a=a} +function jsd(a){this.a=a} +function lsd(a){this.a=a} +function nsd(a){this.a=a} +function Rsd(a){this.a=a} +function Gsd(a){this.b=a} +function ohd(a){this.f=a} +function ltd(a){this.a=a} +function tBd(a){this.a=a} +function BBd(a){this.a=a} +function HBd(a){this.a=a} +function NBd(a){this.a=a} +function dCd(a){this.a=a} +function TMd(a){this.a=a} +function BNd(a){this.a=a} +function zPd(a){this.a=a} +function zQd(a){this.a=a} +function ITd(a){this.a=a} +function lOd(a){this.b=a} +function gVd(a){this.c=a} +function QVd(a){this.e=a} +function dYd(a){this.a=a} +function MYd(a){this.a=a} +function UYd(a){this.a=a} +function u0d(a){this.a=a} +function J0d(a){this.a=a} +function n0d(a){this.d=a} +function R5d(a){this.a=a} +function Zfe(a){this.a=a} +function sfe(a){this.e=a} +function Ofd(){this.a=0} +function ikb(){Ujb(this)} +function Qkb(){Bkb(this)} +function Kqb(){Thb(this)} +function kEb(){jEb(this)} +function z_b(){r_b(this)} +function DB(a){return a.a} +function LB(a){return a.a} +function ZB(a){return a.a} +function lC(a){return a.a} +function EC(a){return a.a} +function ubb(a){return a.e} +function SB(){return null} +function wC(){return null} +function PQd(){this.c=AQd} +function mQd(){this.a=this} +function gz(){Xy.call(this)} +function gcb(){hvd();jvd()} +function yJb(a){a.b.tf(a.e)} +function xXb(a){a.b=new Ji} +function i5b(a,b){a.b=b-a.b} +function f5b(a,b){a.a=b-a.a} +function LXc(a,b){b.ad(a.a)} +function q6d(a,b){b.Wb(a)} +function loc(a,b){a.b+=b} +function olc(a,b){F0b(b,a)} +function hp(a,b,c){a.Od(c,b)} +function As(a,b){a.e=b;b.b=a} +function Zl(a){Ql();this.a=a} +function jq(a){Ql();this.a=a} +function sq(a){Ql();this.a=a} +function Fq(a){im();this.a=a} +function Sz(a){Rz();Qz.be(a)} +function ocb(){gz.call(this)} +function scb(){gz.call(this)} +function Adb(){gz.call(this)} +function Udb(){gz.call(this)} +function Xdb(){gz.call(this)} +function Feb(){gz.call(this)} +function agb(){gz.call(this)} +function zpb(){gz.call(this)} +function Ipb(){gz.call(this)} +function ttb(){gz.call(this)} +function t2c(){gz.call(this)} +function wcb(){Xy.call(this)} +function cCb(a,b){a.length=b} +function Svb(a,b){Dkb(a.a,b)} +function rKb(a,b){THb(a.c,b)} +function OMc(a,b){Pqb(a.b,b)} +function BLd(a,b){Phd(a.e,b)} +function qBd(a,b){pAd(a.a,b)} +function rBd(a,b){qAd(a.a,b)} +function $6d(a){y2d(a.c,a.b)} +function mj(a,b){a.kc().Nb(b)} +function Ndb(a){this.a=Sdb(a)} +function sTb(){this.b=new mt} +function Sqb(){this.a=new Kqb} +function fyb(){this.a=new Kqb} +function Vvb(){this.a=new Qkb} +function JFb(){this.a=new Qkb} +function OFb(){this.a=new Qkb} +function EFb(){this.a=new xFb} +function oGb(){this.a=new LFb} +function YQb(){this.a=new LQb} +function Fxb(){this.a=new Owb} +function iUb(){this.a=new OTb} +function rDb(){this.a=new nDb} +function yDb(){this.a=new sDb} +function BWb(){this.a=new Qkb} +function GXb(){this.a=new Qkb} +function mYb(){this.a=new Qkb} +function AYb(){this.a=new Qkb} +function eLb(){this.d=new Qkb} +function uYb(){this.a=new Sqb} +function vZb(){this.b=new Kqb} +function fA(){fA=bcb;new Kqb} +function _1b(){this.a=new Kqb} +function vdc(){this.a=new wkc} +function OCc(){this.b=new Qkb} +function vJc(){this.e=new Qkb} +function HPd(){this.Bb|=256} +function qMc(){this.d=new Qkb} +function SMc(){RMc.call(this)} +function ZMc(){RMc.call(this)} +function rKc(){Qkb.call(this)} +function r0b(){o0b.call(this)} +function qcb(){ocb.call(this)} +function swb(){Vvb.call(this)} +function nHb(){ZGb.call(this)} +function KXb(){GXb.call(this)} +function K_b(){G_b.call(this)} +function G_b(){z_b.call(this)} +function o0b(){z_b.call(this)} +function APc(){yPc.call(this)} +function FPc(){yPc.call(this)} +function KPc(){yPc.call(this)} +function s1c(){o1c.call(this)} +function o7c(){Osb.call(this)} +function Xod(){vld.call(this)} +function kpd(){vld.call(this)} +function gDd(){TCd.call(this)} +function IDd(){TCd.call(this)} +function hFd(){Kqb.call(this)} +function qFd(){Kqb.call(this)} +function BFd(){Kqb.call(this)} +function FPd(){Sqb.call(this)} +function XPd(){HPd.call(this)} +function JJd(){cJd.call(this)} +function NSd(){AId.call(this)} +function mUd(){AId.call(this)} +function jUd(){Kqb.call(this)} +function IYd(){Kqb.call(this)} +function ZYd(){Kqb.call(this)} +function M8d(){HGd.call(this)} +function j9d(){HGd.call(this)} +function d9d(){M8d.call(this)} +function cee(){pde.call(this)} +function Dd(a){yd.call(this,a)} +function Hd(a){yd.call(this,a)} +function ph(a){lh.call(this,a)} +function Sh(a){Wc.call(this,a)} +function oi(a){Sh.call(this,a)} +function Ii(a){Wc.call(this,a)} +function Udd(){this.a=new Osb} +function yPc(){this.a=new Sqb} +function o1c(){this.a=new Kqb} +function MSc(){this.a=new Qkb} +function MXc(){this.a=new QXc} +function a_c(){this.a=new _$c} +function z2c(){this.j=new Qkb} +function TCd(){this.a=new XCd} +function wb(){wb=bcb;vb=new xb} +function Lk(){Lk=bcb;Kk=new Mk} +function _k(){_k=bcb;$k=new al} +function hs(){hs=bcb;gs=new is} +function rs(a){Sh.call(this,a)} +function Gp(a){Sh.call(this,a)} +function xp(a){Lo.call(this,a)} +function Ep(a){Lo.call(this,a)} +function Tp(a){Wn.call(this,a)} +function wx(a){un.call(this,a)} +function ov(a){dv.call(this,a)} +function Mv(a){Br.call(this,a)} +function Ov(a){Br.call(this,a)} +function Lw(a){Br.call(this,a)} +function hz(a){Yy.call(this,a)} +function MB(a){hz.call(this,a)} +function eC(){fC.call(this,{})} +function Etb(a){ztb();this.a=a} +function ywb(a){a.b=null;a.c=0} +function Vy(a,b){a.e=b;Sy(a,b)} +function KVb(a,b){a.a=b;MVb(a)} +function kIb(a,b,c){a.a[b.g]=c} +function qfd(a,b,c){yfd(c,a,b)} +function Ndc(a,b){qjc(b.i,a.n)} +function Uyc(a,b){Vyc(a).td(b)} +function DRb(a,b){return a*a/b} +function Xr(a,b){return a.g-b.g} +function tC(a){return new TB(a)} +function vC(a){return new yC(a)} +function ncb(a){hz.call(this,a)} +function pcb(a){hz.call(this,a)} +function tcb(a){hz.call(this,a)} +function ucb(a){Yy.call(this,a)} +function aGc(a){GFc();this.a=a} +function Z_d(a){fzd();this.a=a} +function Ygd(a){Mgd();this.f=a} +function $gd(a){Mgd();this.f=a} +function Bdb(a){hz.call(this,a)} +function Vdb(a){hz.call(this,a)} +function Ydb(a){hz.call(this,a)} +function Eeb(a){hz.call(this,a)} +function Geb(a){hz.call(this,a)} +function Bcb(a){return tCb(a),a} +function Ddb(a){return tCb(a),a} +function Fdb(a){return tCb(a),a} +function ifb(a){return tCb(a),a} +function sfb(a){return tCb(a),a} +function _jb(a){return a.b==a.c} +function Gwb(a){return !!a&&a.b} +function oIb(a){return !!a&&a.k} +function pIb(a){return !!a&&a.j} +function _lb(a){tCb(a);this.a=a} +function vVb(a){pVb(a);return a} +function Alb(a){Flb(a,a.length)} +function bgb(a){hz.call(this,a)} +function u2c(a){hz.call(this,a)} +function v2c(a){hz.call(this,a)} +function Zpd(a){hz.call(this,a)} +function i8d(a){hz.call(this,a)} +function hde(a){hz.call(this,a)} +function pc(a){qc.call(this,a,0)} +function Ji(){Ki.call(this,12,3)} +function Gb(){this.a=GD(Qb(Nhe))} +function jc(){throw ubb(new agb)} +function zh(){throw ubb(new agb)} +function Pi(){throw ubb(new agb)} +function Pj(){throw ubb(new agb)} +function Qj(){throw ubb(new agb)} +function Ym(){throw ubb(new agb)} +function jz(){jz=bcb;iz=new nb} +function Kz(){Kz=bcb;Jz=new Nz} +function KA(){KA=bcb;JA=new MA} +function OB(){OB=bcb;NB=new PB} +function Az(){Az=bcb;!!(Rz(),Qz)} +function Mk(){Fk.call(this,null)} +function al(){Fk.call(this,null)} +function rcb(a){pcb.call(this,a)} +function Neb(a){Vdb.call(this,a)} +function Gfb(){lcb.call(this,'')} +function Hfb(){lcb.call(this,'')} +function Tfb(){lcb.call(this,'')} +function Ufb(){lcb.call(this,'')} +function Wfb(a){pcb.call(this,a)} +function yob(a){knb.call(this,a)} +function Fob(a){yob.call(this,a)} +function Xob(a){Hnb.call(this,a)} +function BYb(a,b,c){a.c.lf(b,c)} +function iw(a,b){a.a.ec().Mc(b)} +function Bs(a,b){a.Td(b);b.Sd(a)} +function tvb(a,b,c){b.td(a.a[c])} +function yvb(a,b,c){b.we(a.a[c])} +function Kcb(a,b){return a.a-b.a} +function Vcb(a,b){return a.a-b.a} +function Oeb(a,b){return a.a-b.a} +function dCb(a,b){return PC(a,b)} +function GC(a,b){return qdb(a,b)} +function _B(b,a){return a in b.a} +function Ltb(a){return a.a?a.b:0} +function Utb(a){return a.a?a.b:0} +function oy(a){Ql();this.a=Qb(a)} +function vrb(){vrb=bcb;urb=xrb()} +function YDb(a,b){a.b=b;return a} +function ZDb(a,b){a.c=b;return a} +function $Db(a,b){a.f=b;return a} +function _Db(a,b){a.g=b;return a} +function GGb(a,b){a.a=b;return a} +function HGb(a,b){a.f=b;return a} +function IGb(a,b){a.k=b;return a} +function cLb(a,b){a.a=b;return a} +function dLb(a,b){a.e=b;return a} +function yVb(a,b){a.e=b;return a} +function zVb(a,b){a.f=b;return a} +function JOb(a,b){a.b=true;a.d=b} +function CHb(a,b){a.b=new c7c(b)} +function Kic(a,b){return a?0:b-1} +function NFc(a,b){return a?0:b-1} +function MFc(a,b){return a?b-1:0} +function sJc(a,b){return a.b-b.b} +function gOc(a,b){return a.g-b.g} +function SQc(a,b){return a.s-b.s} +function I2c(a,b){return b.Yf(a)} +function I3c(a,b){a.b=b;return a} +function H3c(a,b){a.a=b;return a} +function J3c(a,b){a.c=b;return a} +function K3c(a,b){a.d=b;return a} +function L3c(a,b){a.e=b;return a} +function M3c(a,b){a.f=b;return a} +function Z3c(a,b){a.a=b;return a} +function $3c(a,b){a.b=b;return a} +function _3c(a,b){a.c=b;return a} +function v5c(a,b){a.c=b;return a} +function u5c(a,b){a.b=b;return a} +function w5c(a,b){a.d=b;return a} +function x5c(a,b){a.e=b;return a} +function y5c(a,b){a.f=b;return a} +function z5c(a,b){a.g=b;return a} +function A5c(a,b){a.a=b;return a} +function B5c(a,b){a.i=b;return a} +function C5c(a,b){a.j=b;return a} +function Qdd(a,b){a.k=b;return a} +function Rdd(a,b){a.j=b;return a} +function xkc(a,b){fkc();E0b(b,a)} +function P$c(a,b,c){N$c(a.a,b,c)} +function NGc(a){ZDc.call(this,a)} +function eHc(a){ZDc.call(this,a)} +function p7c(a){Psb.call(this,a)} +function _Ob(a){$Ob.call(this,a)} +function Dxd(a){uud.call(this,a)} +function $Bd(a){UBd.call(this,a)} +function aCd(a){UBd.call(this,a)} +function o_b(){p_b.call(this,'')} +function _6c(){this.a=0;this.b=0} +function YOc(){this.b=0;this.a=0} +function Ahd(){Ahd=bcb;zhd=jnd()} +function Chd(){Chd=bcb;Bhd=xod()} +function GFd(){GFd=bcb;FFd=lZd()} +function k8d(){k8d=bcb;j8d=T9d()} +function m8d(){m8d=bcb;l8d=$9d()} +function hvd(){hvd=bcb;gvd=j4c()} +function IJd(a,b){a.b=0;yId(a,b)} +function S1d(a,b){a.c=b;a.b=true} +function Rub(a,b){while(a.sd(b));} +function Oc(a,b){return a.c._b(b)} +function sn(a,b){return Gv(a.b,b)} +function fdb(a){return a.e&&a.e()} +function pD(a){return a.l|a.m<<22} +function Vd(a){return !a?null:a.d} +function Fv(a){return !a?null:a.g} +function Kv(a){return !a?null:a.i} +function gdb(a){edb(a);return a.o} +function Afb(a,b){a.a+=b;return a} +function Bfb(a,b){a.a+=b;return a} +function Efb(a,b){a.a+=b;return a} +function Kfb(a,b){a.a+=b;return a} +function sgb(a){kgb();mgb(this,a)} +function Tqb(a){this.a=new Lqb(a)} +function Gxb(a){this.a=new Pwb(a)} +function Rrb(){throw ubb(new agb)} +function dnb(){throw ubb(new agb)} +function enb(){throw ubb(new agb)} +function fnb(){throw ubb(new agb)} +function inb(){throw ubb(new agb)} +function Bnb(){throw ubb(new agb)} +function pRc(){this.b=new H2c(g$)} +function VUc(){this.a=new H2c(J$)} +function M$c(){this.b=new H2c(I_)} +function _$c(){this.b=new H2c(I_)} +function fVc(a){this.a=0;this.b=a} +function VAb(a){Szb(a);return a.a} +function Vsb(a){return a.b!=a.d.c} +function YHc(a,b){return a.d[b.p]} +function b2c(a,b){return $1c(a,b)} +function bCb(a,b,c){a.splice(b,c)} +function $ub(a,b){while(a.ye(b));} +function VHb(a){a.c?UHb(a):WHb(a)} +function JCd(){throw ubb(new agb)} +function KCd(){throw ubb(new agb)} +function LCd(){throw ubb(new agb)} +function MCd(){throw ubb(new agb)} +function NCd(){throw ubb(new agb)} +function OCd(){throw ubb(new agb)} +function PCd(){throw ubb(new agb)} +function QCd(){throw ubb(new agb)} +function RCd(){throw ubb(new agb)} +function SCd(){throw ubb(new agb)} +function Xge(){throw ubb(new ttb)} +function Yge(){throw ubb(new ttb)} +function Mge(a){this.a=new _fe(a)} +function _fe(a){$fe(this,a,Qee())} +function Ahe(a){return !a||zhe(a)} +function $ce(a){return Vce[a]!=-1} +function Iz(){xz!=0&&(xz=0);zz=-1} +function Xbb(){Vbb==null&&(Vbb=[])} +function JNd(a,b){Mxd(UKd(a.a),b)} +function ONd(a,b){Mxd(UKd(a.a),b)} +function Yf(a,b){zf.call(this,a,b)} +function $f(a,b){Yf.call(this,a,b)} +function Hf(a,b){this.b=a;this.c=b} +function rk(a,b){this.b=a;this.a=b} +function ek(a,b){this.a=a;this.b=b} +function gk(a,b){this.a=a;this.b=b} +function pk(a,b){this.a=a;this.b=b} +function yk(a,b){this.a=a;this.b=b} +function Ak(a,b){this.a=a;this.b=b} +function Fj(a,b){this.a=a;this.b=b} +function _j(a,b){this.a=a;this.b=b} +function dr(a,b){this.a=a;this.b=b} +function zr(a,b){this.b=a;this.a=b} +function So(a,b){this.b=a;this.a=b} +function qp(a,b){this.b=a;this.a=b} +function $q(a,b){this.b=a;this.a=b} +function $r(a,b){this.f=a;this.g=b} +function ne(a,b){this.e=a;this.d=b} +function Wo(a,b){this.g=a;this.i=b} +function bu(a,b){this.a=a;this.b=b} +function qu(a,b){this.a=a;this.f=b} +function qv(a,b){this.b=a;this.c=b} +function ox(a,b){this.a=a;this.b=b} +function Px(a,b){this.a=a;this.b=b} +function mC(a,b){this.a=a;this.b=b} +function Wc(a){Lb(a.dc());this.c=a} +function rf(a){this.b=BD(Qb(a),83)} +function Zv(a){this.a=BD(Qb(a),83)} +function dv(a){this.a=BD(Qb(a),15)} +function $u(a){this.a=BD(Qb(a),15)} +function Br(a){this.b=BD(Qb(a),47)} +function eB(){this.q=new $wnd.Date} +function Lp(a,b){return a>b&&b0} +function Fbb(a,b){return xbb(a,b)<0} +function Brb(a,b){return a.a.get(b)} +function hcb(b,a){return a.split(b)} +function Urb(a,b){return Lhb(a.e,b)} +function Mvb(a){return tCb(a),false} +function Qub(a){Jub.call(this,a,21)} +function vcb(a,b){Zy.call(this,a,b)} +function lxb(a,b){$r.call(this,a,b)} +function Fyb(a,b){$r.call(this,a,b)} +function zx(a){yx();Wn.call(this,a)} +function zlb(a,b){Elb(a,a.length,b)} +function ylb(a,b){Clb(a,a.length,b)} +function tBb(a,b,c){b.we(a.a.Fe(c))} +function zBb(a,b,c){b.ud(a.a.Ge(c))} +function FBb(a,b,c){b.td(a.a.Kb(c))} +function Zq(a,b,c){a.Mb(c)&&b.td(c)} +function _Bb(a,b,c){a.splice(b,0,c)} +function kDb(a,b){return tqb(a.e,b)} +function ojb(a,b){this.d=a;this.e=b} +function jqb(a,b){this.b=a;this.a=b} +function UBb(a,b){this.b=a;this.a=b} +function AEb(a,b){this.b=a;this.a=b} +function rBb(a,b){this.a=a;this.b=b} +function xBb(a,b){this.a=a;this.b=b} +function DBb(a,b){this.a=a;this.b=b} +function JBb(a,b){this.a=a;this.b=b} +function _Cb(a,b){this.a=a;this.b=b} +function sMb(a,b){this.b=a;this.a=b} +function nOb(a,b){this.b=a;this.a=b} +function ROb(a,b){$r.call(this,a,b)} +function RMb(a,b){$r.call(this,a,b)} +function MEb(a,b){$r.call(this,a,b)} +function UEb(a,b){$r.call(this,a,b)} +function rFb(a,b){$r.call(this,a,b)} +function gHb(a,b){$r.call(this,a,b)} +function NHb(a,b){$r.call(this,a,b)} +function EIb(a,b){$r.call(this,a,b)} +function vLb(a,b){$r.call(this,a,b)} +function XRb(a,b){$r.call(this,a,b)} +function yTb(a,b){$r.call(this,a,b)} +function qUb(a,b){$r.call(this,a,b)} +function nWb(a,b){$r.call(this,a,b)} +function RXb(a,b){$r.call(this,a,b)} +function j0b(a,b){$r.call(this,a,b)} +function y5b(a,b){$r.call(this,a,b)} +function S8b(a,b){$r.call(this,a,b)} +function hbc(a,b){$r.call(this,a,b)} +function Bec(a,b){this.a=a;this.b=b} +function qfc(a,b){this.a=a;this.b=b} +function Qfc(a,b){this.a=a;this.b=b} +function Sfc(a,b){this.a=a;this.b=b} +function agc(a,b){this.a=a;this.b=b} +function mgc(a,b){this.a=a;this.b=b} +function Phc(a,b){this.a=a;this.b=b} +function Zhc(a,b){this.a=a;this.b=b} +function Y0b(a,b){this.a=a;this.b=b} +function YVb(a,b){this.b=a;this.a=b} +function Cfc(a,b){this.b=a;this.a=b} +function cgc(a,b){this.b=a;this.a=b} +function Amc(a,b){this.b=a;this.a=b} +function bWb(a,b){this.c=a;this.d=b} +function H$b(a,b){this.e=a;this.d=b} +function Tnc(a,b){this.a=a;this.b=b} +function Nic(a,b){this.b=b;this.c=a} +function Ajc(a,b){$r.call(this,a,b)} +function Xjc(a,b){$r.call(this,a,b)} +function Fkc(a,b){$r.call(this,a,b)} +function Apc(a,b){$r.call(this,a,b)} +function Ipc(a,b){$r.call(this,a,b)} +function Spc(a,b){$r.call(this,a,b)} +function Sqc(a,b){$r.call(this,a,b)} +function bqc(a,b){$r.call(this,a,b)} +function mqc(a,b){$r.call(this,a,b)} +function wqc(a,b){$r.call(this,a,b)} +function Fqc(a,b){$r.call(this,a,b)} +function $qc(a,b){$r.call(this,a,b)} +function krc(a,b){$r.call(this,a,b)} +function xrc(a,b){$r.call(this,a,b)} +function Nrc(a,b){$r.call(this,a,b)} +function Wrc(a,b){$r.call(this,a,b)} +function dsc(a,b){$r.call(this,a,b)} +function lsc(a,b){$r.call(this,a,b)} +function lzc(a,b){$r.call(this,a,b)} +function xzc(a,b){$r.call(this,a,b)} +function Izc(a,b){$r.call(this,a,b)} +function Vzc(a,b){$r.call(this,a,b)} +function Btc(a,b){$r.call(this,a,b)} +function jAc(a,b){$r.call(this,a,b)} +function sAc(a,b){$r.call(this,a,b)} +function AAc(a,b){$r.call(this,a,b)} +function JAc(a,b){$r.call(this,a,b)} +function SAc(a,b){$r.call(this,a,b)} +function $Ac(a,b){$r.call(this,a,b)} +function sBc(a,b){$r.call(this,a,b)} +function BBc(a,b){$r.call(this,a,b)} +function KBc(a,b){$r.call(this,a,b)} +function oGc(a,b){$r.call(this,a,b)} +function RIc(a,b){$r.call(this,a,b)} +function AIc(a,b){this.b=a;this.a=b} +function mKc(a,b){this.a=a;this.b=b} +function CKc(a,b){this.a=a;this.b=b} +function hLc(a,b){this.a=a;this.b=b} +function iMc(a,b){this.a=a;this.b=b} +function VMc(a,b){this.b=a;this.d=b} +function VLc(a,b){$r.call(this,a,b)} +function bMc(a,b){$r.call(this,a,b)} +function EOc(a,b){$r.call(this,a,b)} +function CQc(a,b){$r.call(this,a,b)} +function LQc(a,b){this.a=a;this.b=b} +function NQc(a,b){this.a=a;this.b=b} +function wRc(a,b){$r.call(this,a,b)} +function nSc(a,b){$r.call(this,a,b)} +function PTc(a,b){$r.call(this,a,b)} +function XTc(a,b){$r.call(this,a,b)} +function NUc(a,b){$r.call(this,a,b)} +function qVc(a,b){$r.call(this,a,b)} +function dWc(a,b){$r.call(this,a,b)} +function nWc(a,b){$r.call(this,a,b)} +function gXc(a,b){$r.call(this,a,b)} +function qXc(a,b){$r.call(this,a,b)} +function wYc(a,b){$r.call(this,a,b)} +function h$c(a,b){$r.call(this,a,b)} +function V$c(a,b){$r.call(this,a,b)} +function z_c(a,b){$r.call(this,a,b)} +function K_c(a,b){$r.call(this,a,b)} +function $0c(a,b){$r.call(this,a,b)} +function i2c(a,b){this.a=a;this.b=b} +function S2c(a,b){this.a=a;this.b=b} +function bIc(a,b){BHc();return b!=a} +function zrb(){vrb();return new urb} +function yMc(){sMc();this.b=new Sqb} +function JNc(){BNc();this.a=new Sqb} +function b7c(a,b){this.a=a;this.b=b} +function C7c(a,b){$r.call(this,a,b)} +function K5c(a,b){$r.call(this,a,b)} +function Y5c(a,b){$r.call(this,a,b)} +function f8c(a,b){$r.call(this,a,b)} +function ead(a,b){$r.call(this,a,b)} +function nad(a,b){$r.call(this,a,b)} +function xad(a,b){$r.call(this,a,b)} +function Jad(a,b){$r.call(this,a,b)} +function ebd(a,b){$r.call(this,a,b)} +function pbd(a,b){$r.call(this,a,b)} +function Ebd(a,b){$r.call(this,a,b)} +function Qbd(a,b){$r.call(this,a,b)} +function ccd(a,b){$r.call(this,a,b)} +function ncd(a,b){$r.call(this,a,b)} +function Tcd(a,b){$r.call(this,a,b)} +function pdd(a,b){$r.call(this,a,b)} +function Edd(a,b){$r.call(this,a,b)} +function zed(a,b){$r.call(this,a,b)} +function Yed(a,b){this.a=a;this.b=b} +function $ed(a,b){this.a=a;this.b=b} +function afd(a,b){this.a=a;this.b=b} +function Ffd(a,b){this.a=a;this.b=b} +function Hfd(a,b){this.a=a;this.b=b} +function Jfd(a,b){this.a=a;this.b=b} +function qgd(a,b){this.a=a;this.b=b} +function erd(a,b){this.a=a;this.b=b} +function frd(a,b){this.a=a;this.b=b} +function hrd(a,b){this.a=a;this.b=b} +function ird(a,b){this.a=a;this.b=b} +function lrd(a,b){this.a=a;this.b=b} +function mrd(a,b){this.a=a;this.b=b} +function nrd(a,b){this.b=a;this.a=b} +function ord(a,b){this.b=a;this.a=b} +function yrd(a,b){this.b=a;this.a=b} +function Ard(a,b){this.b=a;this.a=b} +function Crd(a,b){this.a=a;this.b=b} +function Erd(a,b){this.a=a;this.b=b} +function lgd(a,b){$r.call(this,a,b)} +function Prd(a,b){this.a=a;this.b=b} +function Rrd(a,b){this.a=a;this.b=b} +function ysd(a,b){$r.call(this,a,b)} +function Rud(a,b){this.f=a;this.c=b} +function bVb(a,b){return tqb(a.c,b)} +function z3c(a,b){return tqb(a.g,b)} +function mnc(a,b){return tqb(b.b,a)} +function cCd(a,b){return lAd(a.a,b)} +function t1c(a,b){return -a.b.Je(b)} +function xIc(a,b){cIc(a.a,BD(b,11))} +function Jrd(a,b){Sqd(a.a,BD(b,56))} +function Hqd(a,b,c){Mpd(b,fqd(a,c))} +function Iqd(a,b,c){Mpd(b,fqd(a,c))} +function dvd(a,b){!!a&&Qhb(Zud,a,b)} +function VId(a,b){a.i=null;WId(a,b)} +function T1d(a,b){this.e=a;this.a=b} +function x1d(a,b){this.d=a;this.b=b} +function fGd(a,b){this.a=a;this.b=b} +function iGd(a,b){this.a=a;this.b=b} +function YTd(a,b){this.a=a;this.b=b} +function uVd(a,b){this.a=a;this.b=b} +function Z7d(a,b){this.a=a;this.b=b} +function a7d(a,b){this.b=a;this.c=b} +function Wzd(a,b){this.i=a;this.g=b} +function HLd(a,b){this.d=a;this.e=b} +function yhe(a,b){Che(new Ayd(a),b)} +function _6d(a){return M2d(a.c,a.b)} +function Kq(a,b){return hr(a.Kc(),b)} +function Em(a,b){return a.Hd().Xb(b)} +function Wd(a){return !a?null:a.dd()} +function PD(a){return a==null?null:a} +function KD(a){return typeof a===Fhe} +function LD(a){return typeof a===Ghe} +function ND(a){return typeof a===Hhe} +function Abb(a,b){return xbb(a,b)==0} +function Dbb(a,b){return xbb(a,b)>=0} +function Jbb(a,b){return xbb(a,b)!=0} +function ofb(a,b){return a.substr(b)} +function Lfb(a,b){return a.a+=''+b,a} +function Idb(a){return ''+(tCb(a),a)} +function cg(a){ag(a);return a.d.gc()} +function nVb(a){oVb(a,a.c);return a} +function RD(a){BCb(a==null);return a} +function vmb(a){sCb(a,0);return null} +function Cfb(a,b){a.a+=''+b;return a} +function Dfb(a,b){a.a+=''+b;return a} +function Mfb(a,b){a.a+=''+b;return a} +function Ofb(a,b){a.a+=''+b;return a} +function Pfb(a,b){a.a+=''+b;return a} +function evb(a,b){avb.call(this,a,b)} +function ivb(a,b){avb.call(this,a,b)} +function mvb(a,b){avb.call(this,a,b)} +function Esb(a,b){Fsb(a,b,a.c.b,a.c)} +function Dsb(a,b){Fsb(a,b,a.a,a.a.a)} +function LJc(a,b){return a.j[b.p]==2} +function $Pb(a){return UPb(BD(a,79))} +function Mqb(a){Thb(this);Ld(this,a)} +function Ntb(){this.b=0;this.a=false} +function Vtb(){this.b=0;this.a=false} +function mt(){this.b=new Lqb(Cv(12))} +function xJb(){xJb=bcb;wJb=as(vJb())} +function X8b(){X8b=bcb;W8b=as(V8b())} +function GA(){GA=bcb;fA();FA=new Kqb} +function T6c(a){a.a=0;a.b=0;return a} +function b3c(a,b){a.a=b.g+1;return a} +function cB(a,b){a.q.setTime(Rbb(b))} +function Isd(a,b){Hsd.call(this,a,b)} +function Vzd(a,b){xyd.call(this,a,b)} +function iNd(a,b){Wzd.call(this,a,b)} +function n4d(a,b){k4d.call(this,a,b)} +function r4d(a,b){lRd.call(this,a,b)} +function mEd(a,b){kEd();Qhb(jEd,a,b)} +function mb(a,b){return PD(a)===PD(b)} +function ww(a,b){return a.a.a.a.cc(b)} +function kcb(a,b){return pfb(a.a,0,b)} +function Ny(a,b){return a==b?0:a?1:-1} +function Ldb(a,b){return Jdb(a.a,b.a)} +function Zdb(a,b){return aeb(a.a,b.a)} +function reb(a,b){return teb(a.a,b.a)} +function gfb(a,b){return a.indexOf(b)} +function Mq(a){return Qb(a),new sl(a)} +function SC(a){return TC(a.l,a.m,a.h)} +function Gdb(a){return QD((tCb(a),a))} +function Hdb(a){return QD((tCb(a),a))} +function Ebb(a){return typeof a===Ghe} +function MIb(a,b){return aeb(a.g,b.g)} +function lWb(a){return a==gWb||a==jWb} +function mWb(a){return a==gWb||a==hWb} +function kB(a){return a<10?'0'+a:''+a} +function F1b(a){return Ikb(a.b.b,a,0)} +function krb(a){this.a=zrb();this.b=a} +function Erb(a){this.a=zrb();this.b=a} +function sl(a){this.a=a;ol.call(this)} +function vl(a){this.a=a;ol.call(this)} +function Mlb(a,b){Jlb(a,0,a.length,b)} +function rwb(a,b){Dkb(a.a,b);return b} +function V1c(a,b){Dkb(a.c,b);return a} +function A2c(a,b){_2c(a.a,b);return a} +function $gc(a,b){Ggc();return b.a+=a} +function _gc(a,b){Ggc();return b.c+=a} +function ahc(a,b){Ggc();return b.a+=a} +function Hzc(a){return a==Dzc||a==Czc} +function bad(a){return a==Y9c||a==Z9c} +function cad(a){return a==_9c||a==X9c} +function bcd(a){return a!=Zbd&&a!=$bd} +function jid(a){return a.Kg()&&a.Lg()} +function Bfd(a){return Fkd(BD(a,118))} +function g3c(a){return _2c(new f3c,a)} +function ysb(){Vqb.call(this,new Zrb)} +function H_b(){A_b.call(this,0,0,0,0)} +function E6c(){F6c.call(this,0,0,0,0)} +function Wud(a){Rud.call(this,a,true)} +function c7c(a){this.a=a.a;this.b=a.b} +function dKd(a,b){VJd(a,b);WJd(a,a.D)} +function pkd(a,b,c){qkd(a,b);rkd(a,c)} +function Wkd(a,b,c){Zkd(a,b);Xkd(a,c)} +function Ykd(a,b,c){$kd(a,b);_kd(a,c)} +function bmd(a,b,c){cmd(a,b);dmd(a,c)} +function imd(a,b,c){jmd(a,b);kmd(a,c)} +function Xg(a,b,c){Vg.call(this,a,b,c)} +function Xgb(a){Ggb();Ygb.call(this,a)} +function qxb(){lxb.call(this,'Head',1)} +function vxb(){lxb.call(this,'Tail',3)} +function Bkb(a){a.c=KC(SI,Phe,1,0,5,1)} +function Ujb(a){a.a=KC(SI,Phe,1,8,5,1)} +function LGb(a){Gkb(a.xf(),new PGb(a))} +function wtb(a){return a!=null?tb(a):0} +function t2d(a,b){return new k4d(b,a)} +function u2d(a,b){return new k4d(b,a)} +function a2b(a,b){return itd(b,hpd(a))} +function b2b(a,b){return itd(b,hpd(a))} +function cAb(a,b){return a[a.length]=b} +function fAb(a,b){return a[a.length]=b} +function $pd(a,b){return _o(qo(a.d),b)} +function _pd(a,b){return _o(qo(a.g),b)} +function aqd(a,b){return _o(qo(a.j),b)} +function Vq(a){return lr(a.b.Kc(),a.a)} +function p0b(a){A_b.call(this,a,a,a,a)} +function Jsd(a,b){Hsd.call(this,a.b,b)} +function rfd(a,b,c){Ykd(c,c.i+a,c.j+b)} +function kBc(a,b,c){NC(a.c[b.g],b.g,c)} +function WHd(a,b,c){BD(a.c,69).Wh(b,c)} +function gzd(a,b,c){NC(a,b,c);return c} +function tyb(a,b){if(kyb){return}a.b=b} +function GOb(a){a.b&&KOb(a);return a.a} +function HOb(a){a.b&&KOb(a);return a.c} +function POd(a,b){rtd(QKd(a.a),SOd(b))} +function YSd(a,b){rtd(LSd(a.a),_Sd(b))} +function xAd(a){return a==null?0:tb(a)} +function Gge(a){rfe();sfe.call(this,a)} +function Mg(a){this.a=a;Gg.call(this,a)} +function Iy(){Iy=bcb;$wnd.Math.log(2)} +function PVd(){PVd=bcb;OVd=(vFd(),uFd)} +function bNc(){bNc=bcb;aNc=new Qpb(u1)} +function c0d(){c0d=bcb;new d0d;new Qkb} +function d0d(){new Kqb;new Kqb;new Kqb} +function Wge(){throw ubb(new bgb(yxe))} +function Zge(){throw ubb(new bgb(zxe))} +function mhe(){throw ubb(new bgb(zxe))} +function jhe(){throw ubb(new bgb(yxe))} +function Ceb(a,b){return xbb(a,b)>0?a:b} +function aeb(a,b){return ab?1:0} +function TC(a,b,c){return {l:a,m:b,h:c}} +function Mtb(a,b){return a.a?a.b:b.De()} +function klb(a){return a.a0?b*b/a:b*b*100} +function BRb(a,b){return a>0?b/(a*a):b*100} +function Srb(a){a.d=new jsb(a);a.e=new Kqb} +function lkb(a){if(!a){throw ubb(new zpb)}} +function kCb(a){if(!a){throw ubb(new Udb)}} +function xCb(a){if(!a){throw ubb(new Xdb)}} +function pCb(a){if(!a){throw ubb(new scb)}} +function rCb(a){if(!a){throw ubb(new ttb)}} +function ykc(a,b){fkc();return Rc(a,b.e,b)} +function $yc(a,b,c){Tyc();return c.pg(a,b)} +function p3c(a,b,c){l3c();a.Xe(b)&&c.td(a)} +function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function C2c(a,b,c){return Dkb(b,E2c(a,c))} +function K6c(a,b,c){a.a+=b;a.b+=c;return a} +function V6c(a,b,c){a.a*=b;a.b*=c;return a} +function Z6c(a,b,c){a.a-=b;a.b-=c;return a} +function Y6c(a,b){a.a=b.a;a.b=b.b;return a} +function R6c(a){a.a=-a.a;a.b=-a.b;return a} +function Cic(a){this.c=a;this.a=1;this.b=1} +function sed(a){this.c=a;$kd(a,0);_kd(a,0)} +function q7c(a){Osb.call(this);j7c(this,a)} +function zXb(a){wXb();xXb(this);this.mf(a)} +function BRd(a,b){iRd();lRd.call(this,a,b)} +function $Rd(a,b){GRd();MRd.call(this,a,b)} +function cSd(a,b){GRd();MRd.call(this,a,b)} +function aSd(a,b){GRd();$Rd.call(this,a,b)} +function nId(a,b,c){$Hd.call(this,a,b,c,2)} +function uXd(a,b){PVd();iXd.call(this,a,b)} +function wXd(a,b){PVd();uXd.call(this,a,b)} +function yXd(a,b){PVd();uXd.call(this,a,b)} +function AXd(a,b){PVd();yXd.call(this,a,b)} +function KXd(a,b){PVd();iXd.call(this,a,b)} +function MXd(a,b){PVd();KXd.call(this,a,b)} +function SXd(a,b){PVd();iXd.call(this,a,b)} +function kAd(a,b){return a.c.Fc(BD(b,133))} +function r1d(a,b,c){return Q1d(k1d(a,b),c)} +function I2d(a,b,c){return b.Pk(a.e,a.c,c)} +function K2d(a,b,c){return b.Qk(a.e,a.c,c)} +function X2d(a,b){return sid(a.e,BD(b,49))} +function XSd(a,b,c){qtd(LSd(a.a),b,_Sd(c))} +function OOd(a,b,c){qtd(QKd(a.a),b,SOd(c))} +function B9d(a){return a==null?null:ede(a)} +function x9d(a){return a==null?null:Zce(a)} +function E9d(a){return a==null?null:ecb(a)} +function F9d(a){return a==null?null:ecb(a)} +function edb(a){if(a.o!=null){return}udb(a)} +function DD(a){BCb(a==null||KD(a));return a} +function ED(a){BCb(a==null||LD(a));return a} +function GD(a){BCb(a==null||ND(a));return a} +function GCd(){GCd=bcb;FCd=new gDd;new IDd} +function IUc(){IUc=bcb;HUc=new Gsd('root')} +function p_c(){$r.call(this,'GROW_TREE',0)} +function cPb(){$r.call(this,'POLYOMINO',0)} +function AUd(){cJd.call(this);this.Bb|=Oje} +function Hg(a,b){this.d=a;Dg(this);this.b=b} +function aAb(a,b){Uzb.call(this,a);this.a=b} +function uAb(a,b){Uzb.call(this,a);this.a=b} +function Vg(a,b,c){dg.call(this,a,b,c,null)} +function Yg(a,b,c){dg.call(this,a,b,c,null)} +function Mf(a,b){this.c=a;ne.call(this,a,b)} +function Sf(a,b){this.a=a;Mf.call(this,a,b)} +function gB(a){this.q=new $wnd.Date(Rbb(a))} +function GVc(){this.a=new Hp;this.b=new Hp} +function rNb(a){oNb.call(this,0,0);this.f=a} +function $Hb(a,b){xtb(b,gle);a.f=b;return a} +function WMb(a){if(a>8){return 0}return a+1} +function pyb(a,b){if(kyb){return}Dkb(a.a,b)} +function E2b(a,b){w2b();return e_b(b.d.i,a)} +function $9b(a,b){H9b();return new fac(b,a)} +function e4c(a,b){return BD(Vrb(a.c,b),229)} +function c4c(a,b){return BD(Vrb(a.b,b),149)} +function vic(a){return BD(Hkb(a.a,a.b),286)} +function x6c(a){return new b7c(a.c,a.d+a.a)} +function aLc(a){return BJc(),Hzc(BD(a,197))} +function Oxb(a,b,c){return a.ue(b,c)<=0?c:b} +function Pxb(a,b,c){return a.ue(b,c)<=0?b:c} +function vvd(a,b,c){++a.j;a.Gi(b,a.ni(b,c))} +function xvd(a,b,c){++a.j;a.Ji();vtd(a,b,c)} +function YQd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function Yld(a,b,c){c=Whd(a,b,6,c);return c} +function Fld(a,b,c){c=Whd(a,b,3,c);return c} +function fpd(a,b,c){c=Whd(a,b,9,c);return c} +function Z6d(a,b,c){return x2d(a.c,a.b,b,c)} +function yAd(a,b){return (b&Jhe)%a.d.length} +function eOb(a,b){b.a?fOb(a,b):Exb(a.a,b.b)} +function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} +function HD(a){return String.fromCharCode(a)} +function mz(a){return a==null?null:a.message} +function Bz(a,b,c){return a.apply(b,c);var d} +function Hsd(a,b){Gsd.call(this,a);this.a=b} +function pVd(a,b){gVd.call(this,a);this.a=b} +function nYd(a,b){gVd.call(this,a);this.a=b} +function uyd(a,b){this.c=a;uud.call(this,b)} +function TOd(a,b){this.a=a;lOd.call(this,b)} +function aTd(a,b){this.a=a;lOd.call(this,b)} +function srb(a,b){var c;c=a[cke];c.call(a,b)} +function trb(a,b){var c;c=a[cke];c.call(a,b)} +function hjb(a,b){var c;c=a.e;a.e=b;return c} +function Rfb(a,b,c){a.a+=yfb(b,0,c);return a} +function LA(a){!a.a&&(a.a=new VA);return a.a} +function Xp(a){this.a=(Xj(a,Eie),new Rkb(a))} +function cq(a){this.a=(Xj(a,Eie),new Rkb(a))} +function Xwb(a){Ywb.call(this,a,(kxb(),gxb))} +function ZJb(){ZJb=bcb;YJb=oqb((odd(),ndd))} +function ICb(){ICb=bcb;FCb=new nb;HCb=new nb} +function sDb(){this.b=new _6c;this.c=new Qkb} +function ZGb(){this.n=new o0b;this.i=new E6c} +function $Qb(){this.d=new _6c;this.e=new _6c} +function fRb(){this.a=new Qkb;this.b=new Qkb} +function hTb(){this.a=new LQb;this.b=new sTb} +function m_b(){this.n=new _6c;this.o=new _6c} +function _Gb(){ZGb.call(this);this.a=new _6c} +function I_b(a,b,c,d){A_b.call(this,a,b,c,d)} +function $Ab(a,b,c){DAb();LBb(a,b.Ce(a.a,c))} +function Npb(a,b,c){return Mpb(a,BD(b,22),c)} +function Axb(a,b){return Vd(Bwb(a.a,b,true))} +function Bxb(a,b){return Vd(Cwb(a.a,b,true))} +function $Bb(a,b){return dCb(new Array(b),a)} +function t7b(a,b){return a.n.a=(tCb(b),b)+10} +function u7b(a,b){return a.n.a=(tCb(b),b)+10} +function Dcb(a,b){Acb();return a==b?0:a?1:-1} +function D2b(a,b){w2b();return !e_b(b.d.i,a)} +function qjc(a,b){bad(a.f)?rjc(a,b):sjc(a,b)} +function zib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} +function L6c(a,b){a.a+=b.a;a.b+=b.b;return a} +function $6c(a,b){a.a-=b.a;a.b-=b.b;return a} +function Ood(a,b,c){c=Whd(a,b,11,c);return c} +function nqd(a,b,c){c!=null&&fmd(b,Rqd(a,c))} +function oqd(a,b,c){c!=null&&gmd(b,Rqd(a,c))} +function bUd(a,b,c,d){ZTd.call(this,a,b,c,d)} +function xyd(a,b){pcb.call(this,bve+a+hue+b)} +function c1d(a,b){var c;c=b.Gh(a.a);return c} +function KYd(a,b){return Qhb(a.a,b,'')==null} +function $Kd(a,b){return b==a||kud(PKd(b),a)} +function Qxd(a){return a<100?null:new Dxd(a)} +function DRc(){this.b=new pRc;this.a=new dRc} +function rec(){this.a=new Tmc;this.b=new lnc} +function JIc(){this.a=new Qkb;this.d=new Qkb} +function GDc(){this.b=new Sqb;this.a=new Sqb} +function dSc(){this.b=new Kqb;this.a=new Kqb} +function Trb(a){Thb(a.e);a.d.b=a.d;a.d.a=a.d} +function L4d(a,b,c,d){ZTd.call(this,a,b,c,d)} +function P4d(a,b,c,d){L4d.call(this,a,b,c,d)} +function i5d(a,b,c,d){d5d.call(this,a,b,c,d)} +function k5d(a,b,c,d){d5d.call(this,a,b,c,d)} +function q5d(a,b,c,d){d5d.call(this,a,b,c,d)} +function o5d(a,b,c,d){k5d.call(this,a,b,c,d)} +function v5d(a,b,c,d){k5d.call(this,a,b,c,d)} +function t5d(a,b,c,d){q5d.call(this,a,b,c,d)} +function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} +function $5d(a,b,c,d){T5d.call(this,a,b,c,d)} +function Vp(a,b,c){this.a=a;qc.call(this,b,c)} +function tk(a,b,c){this.c=b;this.b=c;this.a=a} +function ik(a,b,c){return a.d=BD(b.Kb(c),164)} +function kfb(a,b,c){return a.lastIndexOf(b,c)} +function c6d(a,b){return a.zj().Mh().Hh(a,b)} +function e6d(a,b){return a.zj().Mh().Jh(a,b)} +function uBb(a,b){return a.b.sd(new xBb(a,b))} +function ABb(a,b){return a.b.sd(new DBb(a,b))} +function GBb(a,b){return a.b.sd(new JBb(a,b))} +function Cxb(a,b){return Vd(Bwb(a.a,b,false))} +function Dxb(a,b){return Vd(Cwb(a.a,b,false))} +function tTb(a,b,c){return Jdb(a[b.b],a[c.b])} +function QTb(a,b){return xNb(b,(Lyc(),Awc),a)} +function Edb(a,b){return tCb(a),PD(a)===PD(b)} +function cfb(a,b){return tCb(a),PD(a)===PD(b)} +function dmc(a,b){return aeb(a.a.d.p,b.a.d.p)} +function emc(a,b){return aeb(b.a.d.p,a.a.d.p)} +function XOc(a,b){return Jdb(a.c-a.s,b.c-b.s)} +function R_b(a){return !a.c?-1:Ikb(a.c.a,a,0)} +function uAd(a,b){return JD(b,15)&&wtd(a.c,b)} +function acd(a){return a==Vbd||a==Xbd||a==Wbd} +function Zyd(a,b){this.c=a;Kyd.call(this,a,b)} +function eBb(a){this.c=a;mvb.call(this,mie,0)} +function zvb(a,b){Avb.call(this,a,a.length,b)} +function tjb(a,b){var c;c=b;return !!zwb(a,c)} +function uyb(a,b){if(kyb){return}!!b&&(a.d=b)} +function XHd(a,b,c){return BD(a.c,69).kk(b,c)} +function YHd(a,b,c){return BD(a.c,69).lk(b,c)} +function J2d(a,b,c){return I2d(a,BD(b,332),c)} +function L2d(a,b,c){return K2d(a,BD(b,332),c)} +function d3d(a,b,c){return c3d(a,BD(b,332),c)} +function f3d(a,b,c){return e3d(a,BD(b,332),c)} +function tn(a,b){return b==null?null:Hv(a.b,b)} +function Jcb(a){return LD(a)?(tCb(a),a):a.ke()} +function Kdb(a){return !isNaN(a)&&!isFinite(a)} +function Wn(a){Ql();this.a=(lmb(),new yob(a))} +function _Hc(a){BHc();this.d=a;this.a=new ikb} +function Zsb(a,b,c){this.d=a;this.b=c;this.a=b} +function wqb(a,b,c){this.a=a;this.b=b;this.c=c} +function Mrb(a,b,c){this.a=a;this.b=b;this.c=c} +function Psb(a){Bsb(this);Nsb(this);ye(this,a)} +function Skb(a){Bkb(this);aCb(this.c,0,a.Pc())} +function Wwb(a){tib(a.a);Jwb(a.c,a.b);a.b=null} +function hyb(a){this.a=a;Yfb();Bbb(Date.now())} +function Mb(a,b){if(!a){throw ubb(new Vdb(b))}} +function oxb(a){kxb();return es((yxb(),xxb),a)} +function Gyb(a){Eyb();return es((Jyb(),Iyb),a)} +function NEb(a){LEb();return es((QEb(),PEb),a)} +function VEb(a){TEb();return es((YEb(),XEb),a)} +function sFb(a){qFb();return es((vFb(),uFb),a)} +function hHb(a){fHb();return es((kHb(),jHb),a)} +function OHb(a){MHb();return es((RHb(),QHb),a)} +function FIb(a){DIb();return es((IIb(),HIb),a)} +function uJb(a){pJb();return es((xJb(),wJb),a)} +function wLb(a){uLb();return es((zLb(),yLb),a)} +function SMb(a){QMb();return es((VMb(),UMb),a)} +function Ql(){Ql=bcb;new Zl((lmb(),lmb(),imb))} +function oGd(){oGd=bcb;nGd=KC(SI,Phe,1,0,5,1)} +function VGd(){VGd=bcb;UGd=KC(SI,Phe,1,0,5,1)} +function fzd(){fzd=bcb;ezd=KC(SI,Phe,1,0,5,1)} +function mtb(){mtb=bcb;ktb=new ntb;ltb=new ptb} +function hLb(a){var b;b=new eLb;b.b=a;return b} +function KGb(a){var b;b=new JGb;b.e=a;return b} +function ZAb(a,b,c){DAb();a.a.Od(b,c);return b} +function lKb(a,b,c){this.b=a;this.c=b;this.a=c} +function AZb(a,b,c){this.b=a;this.a=b;this.c=c} +function SNb(a,b,c){this.a=a;this.b=b;this.c=c} +function tOb(a,b,c){this.a=a;this.b=b;this.c=c} +function w$b(a,b,c){this.e=b;this.b=a;this.d=c} +function J_b(a){A_b.call(this,a.d,a.c,a.a,a.b)} +function q0b(a){A_b.call(this,a.d,a.c,a.a,a.b)} +function qWb(a){kWb();return es((tWb(),sWb),a)} +function SOb(a){QOb();return es((VOb(),UOb),a)} +function SXb(a){QXb();return es((VXb(),UXb),a)} +function dPb(a){bPb();return es((gPb(),fPb),a)} +function YRb(a){WRb();return es((_Rb(),$Rb),a)} +function zTb(a){xTb();return es((CTb(),BTb),a)} +function z5b(a){x5b();return es((C5b(),B5b),a)} +function rUb(a){pUb();return es((uUb(),tUb),a)} +function k0b(a){i0b();return es((n0b(),m0b),a)} +function U8b(a){R8b();return es((X8b(),W8b),a)} +function ibc(a){fbc();return es((lbc(),kbc),a)} +function Bjc(a){zjc();return es((Ejc(),Djc),a)} +function Blc(a){zlc();return es((Elc(),Dlc),a)} +function Bpc(a){zpc();return es((Epc(),Dpc),a)} +function Jpc(a){Hpc();return es((Mpc(),Lpc),a)} +function Vpc(a){Qpc();return es((Ypc(),Xpc),a)} +function Zjc(a){Wjc();return es((akc(),_jc),a)} +function Gkc(a){Ekc();return es((Jkc(),Ikc),a)} +function Gqc(a){Eqc();return es((Jqc(),Iqc),a)} +function cqc(a){aqc();return es((fqc(),eqc),a)} +function pqc(a){kqc();return es((sqc(),rqc),a)} +function xqc(a){vqc();return es((Aqc(),zqc),a)} +function Tqc(a){Qqc();return es((Wqc(),Vqc),a)} +function _qc(a){Zqc();return es((crc(),brc),a)} +function lrc(a){jrc();return es((orc(),nrc),a)} +function yrc(a){wrc();return es((Brc(),Arc),a)} +function Orc(a){Mrc();return es((Rrc(),Qrc),a)} +function Xrc(a){Vrc();return es(($rc(),Zrc),a)} +function esc(a){csc();return es((hsc(),gsc),a)} +function msc(a){ksc();return es((psc(),osc),a)} +function Ctc(a){Atc();return es((Ftc(),Etc),a)} +function ozc(a){jzc();return es((rzc(),qzc),a)} +function yzc(a){vzc();return es((Bzc(),Azc),a)} +function Kzc(a){Gzc();return es((Nzc(),Mzc),a)} +function Yzc(a){Tzc();return es((_zc(),$zc),a)} +function kAc(a){iAc();return es((nAc(),mAc),a)} +function tAc(a){rAc();return es((wAc(),vAc),a)} +function BAc(a){zAc();return es((EAc(),DAc),a)} +function KAc(a){IAc();return es((NAc(),MAc),a)} +function TAc(a){RAc();return es((WAc(),VAc),a)} +function _Ac(a){ZAc();return es((cBc(),bBc),a)} +function tBc(a){rBc();return es((wBc(),vBc),a)} +function CBc(a){ABc();return es((FBc(),EBc),a)} +function LBc(a){JBc();return es((OBc(),NBc),a)} +function pGc(a){nGc();return es((sGc(),rGc),a)} +function SIc(a){QIc();return es((VIc(),UIc),a)} +function WLc(a){ULc();return es((ZLc(),YLc),a)} +function cMc(a){aMc();return es((fMc(),eMc),a)} +function FOc(a){DOc();return es((IOc(),HOc),a)} +function DQc(a){BQc();return es((GQc(),FQc),a)} +function zRc(a){uRc();return es((CRc(),BRc),a)} +function pSc(a){mSc();return es((sSc(),rSc),a)} +function QTc(a){OTc();return es((TTc(),STc),a)} +function YTc(a){WTc();return es((_Tc(),$Tc),a)} +function QUc(a){LUc();return es((TUc(),SUc),a)} +function sVc(a){pVc();return es((vVc(),uVc),a)} +function eWc(a){bWc();return es((hWc(),gWc),a)} +function oWc(a){lWc();return es((rWc(),qWc),a)} +function hXc(a){eXc();return es((kXc(),jXc),a)} +function rXc(a){oXc();return es((uXc(),tXc),a)} +function Xoc(a,b){return (tCb(a),a)+(tCb(b),b)} +function xYc(a){vYc();return es((AYc(),zYc),a)} +function i$c(a){g$c();return es((l$c(),k$c),a)} +function W$c(a){U$c();return es((Z$c(),Y$c),a)} +function j_c(a){e_c();return es((m_c(),l_c),a)} +function s_c(a){o_c();return es((v_c(),u_c),a)} +function A_c(a){y_c();return es((D_c(),C_c),a)} +function L_c(a){J_c();return es((O_c(),N_c),a)} +function S0c(a){N0c();return es((V0c(),U0c),a)} +function b1c(a){Y0c();return es((e1c(),d1c),a)} +function BHc(){BHc=bcb;zHc=(Pcd(),Ocd);AHc=ucd} +function Ggc(){Ggc=bcb;Egc=new fhc;Fgc=new hhc} +function C6b(){C6b=bcb;A6b=new L6b;B6b=new O6b} +function TEc(a){!a.e&&(a.e=new Qkb);return a.e} +function L5c(a){J5c();return es((O5c(),N5c),a)} +function Z5c(a){X5c();return es((a6c(),_5c),a)} +function D7c(a){B7c();return es((G7c(),F7c),a)} +function g8c(a){e8c();return es((j8c(),i8c),a)} +function fad(a){aad();return es((iad(),had),a)} +function oad(a){mad();return es((rad(),qad),a)} +function yad(a){wad();return es((Bad(),Aad),a)} +function Kad(a){Iad();return es((Nad(),Mad),a)} +function fbd(a){dbd();return es((ibd(),hbd),a)} +function qbd(a){nbd();return es((tbd(),sbd),a)} +function Gbd(a){Dbd();return es((Jbd(),Ibd),a)} +function Rbd(a){Pbd();return es((Ubd(),Tbd),a)} +function dcd(a){_bd();return es((gcd(),fcd),a)} +function qcd(a){mcd();return es((tcd(),scd),a)} +function Vcd(a){Pcd();return es((Ycd(),Xcd),a)} +function qdd(a){odd();return es((tdd(),sdd),a)} +function Fdd(a){Ddd();return es((Idd(),Hdd),a)} +function Aed(a){yed();return es((Ded(),Ced),a)} +function mgd(a){kgd();return es((pgd(),ogd),a)} +function zsd(a){xsd();return es((Csd(),Bsd),a)} +function NMd(a){!a.c&&(a.c=new sYd);return a.c} +function Mrd(a,b,c){this.a=a;this.b=b;this.c=c} +function uCd(a,b,c){this.a=a;this.b=b;this.c=c} +function R3b(a,b,c){this.a=a;this.b=b;this.c=c} +function Y6b(a,b,c){this.a=a;this.b=b;this.c=c} +function jYc(a,b,c){this.a=a;this.b=b;this.c=c} +function H1c(a,b,c){this.a=a;this.b=b;this.c=c} +function P1c(a,b,c){this.a=a;this.b=b;this.c=c} +function m9b(a,b,c){this.b=a;this.a=b;this.c=c} +function DVd(a,b,c){this.e=a;this.a=b;this.c=c} +function ZOc(a,b){this.c=a;this.a=b;this.b=b-a} +function fWd(a,b,c){PVd();ZVd.call(this,a,b,c)} +function CXd(a,b,c){PVd();jXd.call(this,a,b,c)} +function OXd(a,b,c){PVd();jXd.call(this,a,b,c)} +function UXd(a,b,c){PVd();jXd.call(this,a,b,c)} +function EXd(a,b,c){PVd();CXd.call(this,a,b,c)} +function GXd(a,b,c){PVd();CXd.call(this,a,b,c)} +function IXd(a,b,c){PVd();GXd.call(this,a,b,c)} +function QXd(a,b,c){PVd();OXd.call(this,a,b,c)} +function WXd(a,b,c){PVd();UXd.call(this,a,b,c)} +function INd(a,b){Yfb();return rtd(UKd(a.a),b)} +function NNd(a,b){Yfb();return rtd(UKd(a.a),b)} +function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} +function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} +function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} +function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} +function BD(a,b){BCb(a==null||AD(a,b));return a} +function Nu(a){var b;b=new Qkb;fr(b,a);return b} +function Ex(a){var b;b=new Sqb;fr(b,a);return b} +function Hx(a){var b;b=new Fxb;Jq(b,a);return b} +function Ru(a){var b;b=new Osb;Jq(b,a);return b} +function Dkb(a,b){a.c[a.c.length]=b;return true} +function WA(a,b){this.c=a;this.b=b;this.a=false} +function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} +function ozb(){this.a=';,;';this.b='';this.c=''} +function Avb(a,b,c){pvb.call(this,b,c);this.a=a} +function eAb(a,b,c){this.b=a;evb.call(this,b,c)} +function ksb(a,b,c){this.c=a;ojb.call(this,b,c)} +function aCb(a,b,c){ZBb(c,0,a,b,c.length,false)} +function cWb(a,b,c){bWb.call(this,a,b);this.b=c} +function u_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} +function GVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} +function dBb(a,b){if(b){a.b=b;a.a=(Szb(b),b.a)}} +function lCb(a,b){if(!a){throw ubb(new Vdb(b))}} +function qCb(a,b){if(!a){throw ubb(new tcb(b))}} +function Umc(a,b){Hmc();return aeb(a.d.p,b.d.p)} +function qlc(a,b){return aeb(C0b(a.d),C0b(b.d))} +function tic(a,b){return b==(Pcd(),Ocd)?a.c:a.d} +function y6c(a){return new b7c(a.c+a.b,a.d+a.a)} +function Kbb(a){return ybb(iD(Ebb(a)?Qbb(a):a))} +function _Ab(a){return DAb(),KC(SI,Phe,1,a,5,1)} +function Ksb(a){rCb(a.b!=0);return Msb(a,a.a.a)} +function Lsb(a){rCb(a.b!=0);return Msb(a,a.c.b)} +function g5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} +function j5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} +function C6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} +function W6c(a,b){S6c(a);a.a*=b;a.b*=b;return a} +function Tdd(a,b){b<0?(a.g=-1):(a.g=b);return a} +function kMd(a,b,c){HLd.call(this,a,b);this.c=c} +function Cnc(a,b,c){Bnc.call(this,b,c);this.d=a} +function WGd(a){VGd();HGd.call(this);this.sh(a)} +function t1d(){O0d();u1d.call(this,(tFd(),sFd))} +function f2d(a,b,c){HLd.call(this,a,b);this.c=c} +function KNd(a,b,c){this.a=a;iNd.call(this,b,c)} +function PNd(a,b,c){this.a=a;iNd.call(this,b,c)} +function Ppd(a,b,c){var d;d=new yC(c);cC(a,b,d)} +function Ndd(a,b){var c;if(a.n){c=b;Dkb(a.f,c)}} +function RUd(a,b){var c;c=a.c;QUd(a,b);return c} +function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} +function $Ed(a,b){return (eFd(a)<<4|eFd(b))&Xie} +function bFd(a){return a!=null&&!JEd(a,xEd,yEd)} +function Deb(a){return a==0||isNaN(a)?a:a<0?-1:1} +function isb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} +function Csb(a,b){Fsb(a,b,a.c.b,a.c);return true} +function uvb(a,b){pvb.call(this,b,1040);this.a=a} +function ar(a,b){this.a=a;this.b=b;ol.call(this)} +function Wq(a,b){this.b=a;this.a=b;ol.call(this)} +function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} +function CRb(){this.b=Ddb(ED(Fsd((vSb(),uSb))))} +function S6d(){S6d=bcb;R6d=(lmb(),new _mb(Bwe))} +function ex(){ex=bcb;new gx((_k(),$k),(Lk(),Kk))} +function neb(){neb=bcb;meb=KC(JI,iie,19,256,0,1)} +function ufe(a){rfe();++qfe;return new dge(0,a)} +function XHb(a){var b;b=a.n;return a.e.b+b.d+b.a} +function $Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} +function YHb(a){var b;b=a.n;return a.e.a+b.b+b.c} +function n_b(a){if(a.a){return a.a}return IZb(a)} +function VPb(a){PPb();return etd(a)==Sod(gtd(a))} +function WPb(a){PPb();return gtd(a)==Sod(etd(a))} +function _Jc(a){BJc();return (Pcd(),zcd).Hc(a.j)} +function oQc(a,b,c){return Qhb(a.b,BD(c.b,17),b)} +function pQc(a,b,c){return Qhb(a.b,BD(c.b,17),b)} +function hYb(a,b){return gYb(a,new bWb(b.a,b.b))} +function sfd(a,b){return Dkb(a,new b7c(b.a,b.b))} +function MZb(a){return !NZb(a)&&a.c.i.c==a.d.i.c} +function Aic(a,b){return a.c=b){throw ubb(new qcb)}} +function PAb(a,b){return SAb(a,(tCb(b),new Qxb(b)))} +function QAb(a,b){return SAb(a,(tCb(b),new Sxb(b)))} +function oBb(a,b,c){if(a.a.Mb(c)){a.b=true;b.td(c)}} +function Oyb(a,b,c){NC(b,0,Azb(b[0],c[0]));return b} +function Tbb(a){if(Ebb(a)){return ''+a}return qD(a)} +function aac(a,b){H9b();return Jdb(b.a.o.a,a.a.o.a)} +function ANd(a,b){(b.Bb&kte)!=0&&!a.a.o&&(a.a.o=b)} +function _lc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} +function Qnc(a,b,c){return Rnc(a,BD(b,11),BD(c,11))} +function f1b(a){return y0b(),BD(a,11).g.c.length!=0} +function k1b(a){return y0b(),BD(a,11).e.c.length!=0} +function Sr(a){this.a=(Mr(),Lr);this.d=BD(Qb(a),47)} +function jHc(a){this.a=hHc(a.a);this.b=new Skb(a.b)} +function fub(a){this.b=new Rkb(11);this.a=(hpb(),a)} +function Pwb(a){this.b=null;this.a=(hpb(),!a?epb:a)} +function avb(a,b){this.e=a;this.d=(b&64)!=0?b|jie:b} +function pvb(a,b){this.c=0;this.d=a;this.b=b|64|jie} +function Yy(a){Py(this);this.g=a;Ry(this);this._d()} +function Kzd(a){this.b=a;Jyd.call(this,a);Jzd(this)} +function Szd(a){this.b=a;Yyd.call(this,a);Rzd(this)} +function iSd(a,b,c,d,e){jSd.call(this,a,b,c,d,e,-1)} +function ySd(a,b,c,d,e){zSd.call(this,a,b,c,d,e,-1)} +function ZTd(a,b,c,d){sMd.call(this,a,b,c);this.b=d} +function d5d(a,b,c,d){kMd.call(this,a,b,c);this.b=d} +function s0d(a){Rud.call(this,a,false);this.a=false} +function T5d(a,b,c,d){this.b=a;sMd.call(this,b,c,d)} +function eUd(a,b,c){this.a=a;bUd.call(this,b,c,5,6)} +function Zyc(a,b,c){b.Ye(c,Ddb(ED(Nhb(a.b,c)))*a.a)} +function j6c(a,b,c){e6c();return i6c(a,b)&&i6c(a,c)} +function ocd(a){mcd();return !a.Hc(icd)&&!a.Hc(kcd)} +function joc(a){if(a.e){return ooc(a.e)}return null} +function tJc(a){var b;b=a;while(b.f){b=b.f}return b} +function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} +function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} +function px(a,b){im();ox.call(this,a,Dm(new _lb(b)))} +function xfe(a,b){rfe();++qfe;return new yge(a,b,0)} +function zfe(a,b){rfe();++qfe;return new yge(6,a,b)} +function mfb(a,b){return cfb(a.substr(0,b.length),b)} +function Lhb(a,b){return ND(b)?Phb(a,b):!!hrb(a.f,b)} +function jOd(a,b){return b.jh()?sid(a.b,BD(b,49)):b} +function z6c(a){return new b7c(a.c+a.b/2,a.d+a.a/2)} +function ul(a){return new Sr(new xl(a.a.length,a.a))} +function iD(a){return TC(~a.l&zje,~a.m&zje,~a.h&Aje)} +function OD(a){return typeof a===Ehe||typeof a===Ihe} +function yjb(a){if(!a){throw ubb(new ttb)}return a.d} +function ekb(a){var b;b=akb(a);rCb(b!=null);return b} +function fkb(a){var b;b=bkb(a);rCb(b!=null);return b} +function Ppb(a,b,c){var d;d=a.b[b];a.b[b]=c;return d} +function Pqb(a,b){var c;c=a.a.zc(b,a);return c==null} +function Flb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100} +function teb(a,b){return xbb(a,b)<0?-1:xbb(a,b)>0?1:0} +function $2d(a,b){ELd(a,JD(b,153)?b:BD(b,1936).fl())} +function Kyd(a,b){this.d=a;Ayd.call(this,a);this.e=b} +function mge(a,b){sfe.call(this,1);this.a=a;this.b=b} +function Usb(a,b){Fsb(a.d,b,a.b.b,a.b);++a.a;a.c=null} +function Kub(a){this.d=(tCb(a),a);this.a=0;this.c=mie} +function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} +function Qzb(a,b){!a.c?Dkb(a.b,b):Qzb(a.c,b);return a} +function YBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} +function Elb(a,b,c){var d;for(d=0;d=a.g} +function jkc(a,b,c,d,e){ikc(a,BD(Qc(b.k,c),15),c,d,e)} +function _9b(a,b){H9b();return BD(Lpb(a,b.d),15).Fc(b)} +function fCb(a,b){var c;c=console[a];c.call(console,b)} +function JHc(a,b,c){var d;d=PHc(a,b,c);return IHc(a,d)} +function A1c(a,b,c){BD(b.b,65);Gkb(b.a,new H1c(a,c,b))} +function oRb(a){$Qb.call(this);this.a=new _6c;this.c=a} +function cVb(a){this.b=new Qkb;this.a=new Qkb;this.c=a} +function G1b(a){this.c=new _6c;this.a=new Qkb;this.b=a} +function r4c(a){this.c=a;this.a=new Osb;this.b=new Osb} +function HA(a){fA();this.b=new Qkb;this.a=a;sA(this,a)} +function jXd(a,b,c){QVd.call(this,b);this.a=a;this.b=c} +function $Xd(a,b,c){this.a=a;gVd.call(this,b);this.b=c} +function a0d(a,b,c){this.a=a;hxd.call(this,8,b,null,c)} +function u1d(a){this.a=(tCb(Nve),Nve);this.b=a;new jUd} +function GHd(a){!a.a&&(a.a=new sMd(l5,a,4));return a.a} +function GQd(a){!a.d&&(a.d=new sMd(i5,a,1));return a.d} +function Lpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} +function wvd(a,b){var c;++a.j;c=a.Ui();a.Hi(a.ni(c,b))} +function zhe(a){if(a)return a.dc();return !a.Kc().Ob()} +function Ife(a){if(!Yee)return false;return Phb(Yee,a)} +function yC(a){if(a==null){throw ubb(new Feb)}this.a=a} +function yge(a,b,c){sfe.call(this,a);this.a=b;this.b=c} +function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} +function tsb(a){this.c=a;this.b=a.a.d.a;xpb(a.a.e,this)} +function tib(a){xCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} +function Q6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} +function Tvb(a,b){return $vb(b,a.a.c.length),Hkb(a.a,b)} +function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function LNb(a,b){ZNb(BD(b.b,65),a);Gkb(b.a,new QNb(a))} +function Szb(a){if(!a.c){Tzb(a);a.d=true}else{Szb(a.c)}} +function Pzb(a){if(!a.c){a.d=true;Rzb(a)}else{a.c.He()}} +function P_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} +function nAb(a){if(0>=a){return new xAb}return oAb(a-1)} +function tCb(a){if(a==null){throw ubb(new Feb)}return a} +function im(){im=bcb;Ql();hm=new ux((lmb(),lmb(),imb))} +function yx(){yx=bcb;Ql();xx=new zx((lmb(),lmb(),kmb))} +function IFd(){IFd=bcb;HFd=wZd();!!(eGd(),KFd)&&yZd()} +function yid(a,b){var c;c=a.Xg(b);c>=0?a.Ah(c):qid(a,b)} +function SHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} +function plc(a,b){return aeb(b.j.c.length,a.j.c.length)} +function dgd(a,b){a.c<0||a.b.b0){a=a<<1|(a<0?1:0)}return a} +function vtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function Fbc(a,b){return Acb(),BD(b.b,19).ad&&++d;return d} +function Kid(a,b,c){var d,e;d=LEd(a);e=b.Jh(c,d);return e} +function Rod(a){!a.b&&(a.b=new ZTd(A2,a,12,3));return a.b} +function ded(a,b){return Jdb(med(a)*led(a),med(b)*led(b))} +function eed(a,b){return Jdb(med(a)*led(a),med(b)*led(b))} +function oQb(a,b,c){c.a?_kd(a,b.b-a.f/2):$kd(a,b.a-a.g/2)} +function ZDc(a){this.a=new Qkb;this.e=KC(WD,iie,48,a,0,2)} +function UBd(a){this.f=a;this.c=this.f.e;a.f>0&&TBd(this)} +function UVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function jrd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function krd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function EVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} +function ZWd(a,b,c,d){PVd();hWd.call(this,b,c,d);this.a=a} +function eXd(a,b,c,d){PVd();hWd.call(this,b,c,d);this.a=a} +function kBb(a,b,c,d){this.b=a;this.c=d;mvb.call(this,b,c)} +function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} +function Nsb(a){a.a.a=a.c;a.c.b=a.a;a.a.b=a.c.a=null;a.b=0} +function sib(a){rCb(a.b=0&&cfb(a.substr(c,b.length),b)} +function hrb(a,b){return frb(a,b,grb(a,b==null?0:a.b.se(b)))} +function Wy(a,b){var c;c=gdb(a.fm);return b==null?c:c+': '+b} +function Dob(a,b){var c;c=a.b.Qc(b);Eob(c,a.b.gc());return c} +function xtb(a,b){if(a==null){throw ubb(new Geb(b))}return a} +function WKd(a){if(!a.u){VKd(a);a.u=new TOd(a,a)}return a.u} +function ux(a){this.a=(lmb(),JD(a,54)?new Xob(a):new Hnb(a))} +function Rz(){Rz=bcb;var a,b;b=!Xz();a=new dA;Qz=b?new Yz:a} +function rjd(a){var b;b=BD(vjd(a,16),26);return !b?a.yh():b} +function aHc(a){Jdd(a,'No crossing minimization',1);Ldd(a)} +function arc(){Zqc();return OC(GC(MW,1),Fie,479,0,[Yqc,Xqc])} +function yqc(){vqc();return OC(GC(JW,1),Fie,420,0,[tqc,uqc])} +function Kpc(){Hpc();return OC(GC(FW,1),Fie,423,0,[Fpc,Gpc])} +function nsc(){ksc();return OC(GC(SW,1),Fie,421,0,[isc,jsc])} +function CAc(){zAc();return OC(GC(cX,1),Fie,422,0,[xAc,yAc])} +function aBc(){ZAc();return OC(GC(fX,1),Fie,376,0,[YAc,XAc])} +function XLc(){ULc();return OC(GC(eZ,1),Fie,516,0,[TLc,SLc])} +function dMc(){aMc();return OC(GC(fZ,1),Fie,515,0,[$Lc,_Lc])} +function GOc(){DOc();return OC(GC(CZ,1),Fie,520,0,[COc,BOc])} +function TIc(){QIc();return OC(GC(lY,1),Fie,523,0,[PIc,OIc])} +function EQc(){BQc();return OC(GC(XZ,1),Fie,455,0,[zQc,AQc])} +function RTc(){OTc();return OC(GC(D$,1),Fie,480,0,[MTc,NTc])} +function ZTc(){WTc();return OC(GC(E$,1),Fie,426,0,[VTc,UTc])} +function fWc(){bWc();return OC(GC(W$,1),Fie,427,0,[_Vc,aWc])} +function RUc(){LUc();return OC(GC(J$,1),Fie,495,0,[JUc,KUc])} +function B_c(){y_c();return OC(GC(O_,1),Fie,431,0,[x_c,w_c])} +function c1c(){Y0c();return OC(GC(W_,1),Fie,430,0,[X0c,W0c])} +function OEb(){LEb();return OC(GC(aN,1),Fie,429,0,[KEb,JEb])} +function WEb(){TEb();return OC(GC(bN,1),Fie,428,0,[REb,SEb])} +function ZRb(){WRb();return OC(GC(gP,1),Fie,425,0,[URb,VRb])} +function A5b(){x5b();return OC(GC(ZR,1),Fie,511,0,[w5b,v5b])} +function gid(a,b,c,d){return c>=0?a.ih(b,c,d):a.Rg(null,c,d)} +function cgd(a){if(a.b.b==0){return a.a.$e()}return Ksb(a.b)} +function Swd(a){if(a.p!=5)throw ubb(new Xdb);return Sbb(a.f)} +function _wd(a){if(a.p!=5)throw ubb(new Xdb);return Sbb(a.k)} +function kNd(a){PD(a.a)===PD((IKd(),HKd))&&lNd(a);return a.a} +function by(a){this.a=BD(Qb(a),271);this.b=(lmb(),new Yob(a))} +function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} +function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} +function Cge(a,b,c){rfe();sfe.call(this,a);this.b=b;this.a=c} +function ZVd(a,b,c){PVd();QVd.call(this,b);this.a=a;this.b=c} +function bIb(a,b){ZGb.call(this);SHb(this);this.a=a;this.c=b} +function Hp(){Gp.call(this,new Lqb(Cv(12)));Lb(true);this.a=2} +function ZPc(a,b){WPc(this,new b7c(a.a,a.b));XPc(this,Ru(b))} +function ULc(){ULc=bcb;TLc=new VLc(fle,0);SLc=new VLc(ele,1)} +function BQc(){BQc=bcb;zQc=new CQc(ele,0);AQc=new CQc(fle,1)} +function hKb(a,b){gKb(a,true);Gkb(a.e.wf(),new lKb(a,true,b))} +function slb(a,b){oCb(b);return ulb(a,KC(WD,jje,25,b,15,1),b)} +function XPb(a,b){PPb();return a==Sod(etd(b))||a==Sod(gtd(b))} +function Ohb(a,b){return b==null?Wd(hrb(a.f,null)):Brb(a.g,b)} +function Jsb(a){return a.b==0?null:(rCb(a.b!=0),Msb(a,a.a.a))} +function QD(a){return Math.max(Math.min(a,Jhe),-2147483648)|0} +function hsb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} +function ZCb(a){var b;MGb(a.a);LGb(a.a);b=new XGb(a.a);TGb(b)} +function PUb(a,b){var c;c=yUb(a.f,b);return L6c(R6c(c),a.f.d)} +function Iwb(a,b){var c,d;c=b;d=new exb;Kwb(a,c,d);return d.d} +function MJb(a,b,c,d){var e;e=new _Gb;b.a[c.g]=e;Mpb(a.b,d,e)} +function uid(a,b,c){var d;d=a.Xg(b);d>=0?a.rh(d,c):pid(a,b,c)} +function cvd(a,b,c){_ud();!!a&&Qhb($ud,a,b);!!a&&Qhb(Zud,a,c)} +function c_c(a,b,c){this.i=new Qkb;this.b=a;this.g=b;this.a=c} +function RZc(a,b,c){this.c=new Qkb;this.e=a;this.f=b;this.b=c} +function ZZc(a,b,c){this.a=new Qkb;this.e=a;this.f=b;this.c=c} +function _Hb(a){ZGb.call(this);SHb(this);this.a=a;this.c=true} +function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} +function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} +function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} +function Fx(a){var b;b=new Tqb(Cv(a.length));mmb(b,a);return b} +function dcb(a){function b(){} +;b.prototype=a||{};return new b} +function ckb(a,b){if(Yjb(a,b)){vkb(a);return true}return false} +function aC(a,b){if(b==null){throw ubb(new Feb)}return bC(a,b)} +function amd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} +function Hld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} +function hpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} +function sdb(a){if(a.qe()){return null}var b=a.n;return $bb[b]} +function Dnd(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} +function Aod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} +function Sod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} +function iid(a,b){var c;c=a.Xg(b);return c>=0?a.kh(c):oid(a,b)} +function ytd(a,b){var c;c=new Asb(b);Ve(c,a);return new Skb(c)} +function Pud(a){var b;b=a.d;b=a.ri(a.f);rtd(a,b);return b.Ob()} +function s_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} +function z4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} +function Uod(a){return !a.a&&(a.a=new ZTd(D2,a,10,11)),a.a.i>0} +function nDb(){this.a=new ysb;this.e=new Sqb;this.g=0;this.i=0} +function xGc(a){this.a=a;this.b=KC(RX,iie,1943,a.e.length,0,2)} +function NHc(a,b,c){var d;d=OHc(a,b,c);a.b=new xHc(d.c.length)} +function aMc(){aMc=bcb;$Lc=new bMc(qle,0);_Lc=new bMc('UP',1)} +function OTc(){OTc=bcb;MTc=new PTc(Uqe,0);NTc=new PTc('FAN',1)} +function _ud(){_ud=bcb;$ud=new Kqb;Zud=new Kqb;dvd(hK,new evd)} +function Nwd(a){if(a.p!=0)throw ubb(new Xdb);return Jbb(a.f,0)} +function Wwd(a){if(a.p!=0)throw ubb(new Xdb);return Jbb(a.k,0)} +function HHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} +function UJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} +function RId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} +function Rhb(a,b,c){return b==null?irb(a.f,null,c):Crb(a.g,b,c)} +function ALd(a,b,c,d,e,f){return new kSd(a.e,b,a._i(),c,d,e,f)} +function Opb(a,b){return uqb(a.a,b)?Ppb(a,BD(b,22).g,null):null} +function Sfb(a,b,c){a.a=pfb(a.a,0,b)+(''+c)+ofb(a.a,b);return a} +function bq(a,b,c){Dkb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} +function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} +function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} +function qdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} +function grb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} +function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} +function PZb(a,b){!!a.c&&Kkb(a.c.g,a);a.c=b;!!a.c&&Dkb(a.c.g,a)} +function Z_b(a,b){!!a.c&&Kkb(a.c.a,a);a.c=b;!!a.c&&Dkb(a.c.a,a)} +function QZb(a,b){!!a.d&&Kkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,a)} +function E0b(a,b){!!a.i&&Kkb(a.i.j,a);a.i=b;!!a.i&&Dkb(a.i.j,a)} +function iDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Skb(c))} +function pXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Skb(c))} +function _Nb(a,b){this.a=a;this.c=N6c(this.a);this.b=new G6c(b)} +function HAb(a){var b;Tzb(a);b=new Sqb;return IAb(a,new iBb(b))} +function vCb(a,b){if(a<0||a>b){throw ubb(new pcb(vke+a+wke+b))}} +function tCc(a,b){var c;c=new G1b(a);b.c[b.c.length]=c;return c} +function xOc(a,b){!!a.a&&Kkb(a.a.k,a);a.a=b;!!a.a&&Dkb(a.a.k,a)} +function yOc(a,b){!!a.b&&Kkb(a.b.f,a);a.b=b;!!a.b&&Dkb(a.b.f,a)} +function zOc(a,b,c,d){this.c=a;this.d=d;xOc(this,b);yOc(this,c)} +function bUc(){bUc=bcb;aUc=$2c(new f3c,(uRc(),tRc),(mSc(),gSc))} +function QBc(){QBc=bcb;PBc=$2c(new f3c,(pUb(),oUb),(R8b(),I8b))} +function XBc(){XBc=bcb;WBc=$2c(new f3c,(pUb(),oUb),(R8b(),I8b))} +function jCc(){jCc=bcb;iCc=$2c(new f3c,(pUb(),oUb),(R8b(),I8b))} +function YIc(){YIc=bcb;XIc=a3c(new f3c,(pUb(),oUb),(R8b(),g8b))} +function BJc(){BJc=bcb;AJc=a3c(new f3c,(pUb(),oUb),(R8b(),g8b))} +function ELc(){ELc=bcb;DLc=a3c(new f3c,(pUb(),oUb),(R8b(),g8b))} +function sMc(){sMc=bcb;rMc=a3c(new f3c,(pUb(),oUb),(R8b(),g8b))} +function qs(){qs=bcb;ps=as((hs(),OC(GC(yG,1),Fie,538,0,[gs])))} +function VUb(a){KUb();return Acb(),BD(a.a,81).d.e!=0?true:false} +function O2d(a,b){return L6d(),TId(b)?new M7d(b,a):new a7d(b,a)} +function esd(a,b){var c,d;c=b.c;d=c!=null;d&&Lpd(a,new yC(b.c))} +function SOd(a){var b,c;c=(GFd(),b=new PQd,b);IQd(c,a);return c} +function _Sd(a){var b,c;c=(GFd(),b=new PQd,b);IQd(c,a);return c} +function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} +function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} +function Lkb(a,b,c){var d;wCb(b,c,a.c.length);d=c-b;bCb(a.c,b,d)} +function Iib(a,b,c){wCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} +function S3c(a){this.c=new Osb;this.b=a.b;this.d=a.c;this.a=a.a} +function a7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} +function jkb(a){Ujb(this);cCb(this.a,feb($wnd.Math.max(8,a))<<1)} +function wUd(a,b){xUd(a,b);JD(a.Cb,88)&&SMd(VKd(BD(a.Cb,88)),2)} +function ZId(a,b){JD(a.Cb,88)&&SMd(VKd(BD(a.Cb,88)),4);knd(a,b)} +function gKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);knd(a,b)} +function z1c(a,b){A1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} +function Eub(a,b){Dub(a,Sbb(wbb(Nbb(b,24),ike)),Sbb(wbb(b,ike)))} +function sCb(a,b){if(a<0||a>=b){throw ubb(new pcb(vke+a+wke+b))}} +function ACb(a,b){if(a<0||a>=b){throw ubb(new Wfb(vke+a+wke+b))}} +function Jub(a,b){this.b=(tCb(a),a);this.a=(b&Mje)==0?b|64|jie:b} +function Ki(a,b){Ii.call(this,new Lqb(Cv(a)));Xj(b,hie);this.a=b} +function TAb(a){var b;Tzb(a);b=(hpb(),hpb(),fpb);return UAb(a,b)} +function z0b(a){return h7c(OC(GC(l1,1),iie,8,0,[a.i.n,a.n,a.a]))} +function Hyb(){Eyb();return OC(GC(xL,1),Fie,132,0,[Byb,Cyb,Dyb])} +function iHb(){fHb();return OC(GC(pN,1),Fie,232,0,[cHb,dHb,eHb])} +function PHb(){MHb();return OC(GC(sN,1),Fie,461,0,[KHb,JHb,LHb])} +function GIb(){DIb();return OC(GC(zN,1),Fie,462,0,[CIb,BIb,AIb])} +function TXb(){QXb();return OC(GC(hQ,1),Fie,424,0,[PXb,OXb,NXb])} +function ATb(){xTb();return OC(GC(oP,1),Fie,379,0,[vTb,uTb,wTb])} +function zzc(){vzc();return OC(GC(ZW,1),Fie,378,0,[szc,tzc,uzc])} +function Wpc(){Qpc();return OC(GC(GW,1),Fie,314,0,[Opc,Npc,Ppc])} +function dqc(){aqc();return OC(GC(HW,1),Fie,336,0,[Zpc,_pc,$pc])} +function Hqc(){Eqc();return OC(GC(KW,1),Fie,451,0,[Cqc,Bqc,Dqc])} +function Hkc(){Ekc();return OC(GC(vV,1),Fie,360,0,[Dkc,Ckc,Bkc])} +function fsc(){csc();return OC(GC(RW,1),Fie,303,0,[asc,bsc,_rc])} +function Yrc(){Vrc();return OC(GC(QW,1),Fie,292,0,[Trc,Urc,Src])} +function uAc(){rAc();return OC(GC(bX,1),Fie,338,0,[pAc,oAc,qAc])} +function UAc(){RAc();return OC(GC(eX,1),Fie,375,0,[OAc,PAc,QAc])} +function LAc(){IAc();return OC(GC(dX,1),Fie,453,0,[HAc,FAc,GAc])} +function MBc(){JBc();return OC(GC(jX,1),Fie,377,0,[HBc,IBc,GBc])} +function DBc(){ABc();return OC(GC(iX,1),Fie,337,0,[zBc,xBc,yBc])} +function uBc(){rBc();return OC(GC(hX,1),Fie,335,0,[oBc,pBc,qBc])} +function tVc(){pVc();return OC(GC(N$,1),Fie,443,0,[oVc,mVc,nVc])} +function pWc(){lWc();return OC(GC(X$,1),Fie,380,0,[iWc,jWc,kWc])} +function yYc(){vYc();return OC(GC(p_,1),Fie,381,0,[tYc,uYc,sYc])} +function X$c(){U$c();return OC(GC(I_,1),Fie,438,0,[R$c,S$c,T$c])} +function sXc(){oXc();return OC(GC(a_,1),Fie,293,0,[mXc,nXc,lXc])} +function pad(){mad();return OC(GC(t1,1),Fie,272,0,[jad,kad,lad])} +function gbd(){dbd();return OC(GC(y1,1),Fie,334,0,[bbd,abd,cbd])} +function j3d(a,b){return k3d(a,b,JD(b,99)&&(BD(b,18).Bb&Oje)!=0)} +function HZc(a,b,c){var d;d=IZc(a,b,false);return d.b<=b&&d.a<=c} +function pMc(a,b,c){var d;d=new oMc;d.b=b;d.a=c;++b.b;Dkb(a.d,d)} +function fs(a,b){var c;c=(tCb(a),a).g;kCb(!!c);tCb(b);return c(b)} +function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} +function ZJd(a){if(a.Db>>16!=6)return null;return BD(Xhd(a),235)} +function Pwd(a){if(a.p!=2)throw ubb(new Xdb);return Sbb(a.f)&Xie} +function Ywd(a){if(a.p!=2)throw ubb(new Xdb);return Sbb(a.k)&Xie} +function U1d(a){a.a==(O0d(),N0d)&&$1d(a,P0d(a.g,a.b));return a.a} +function W1d(a){a.d==(O0d(),N0d)&&a2d(a,T0d(a.g,a.b));return a.d} +function llb(a){rCb(a.ad?1:0} +function ajc(a,b){var c,d;c=_ic(b);d=c;return BD(Nhb(a.c,d),19).a} +function eSc(a,b){var c;c=a+'';while(c.lengthc){throw ubb(new pcb(Kb(a,b,c)))}} +function Pb(a,b){if(a<0||a>=b){throw ubb(new pcb(Ib(a,b)))}return a} +function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} +function sgc(a){pgc();if(JD(a.g,10)){return BD(a.g,10)}return null} +function Rbb(a){var b;if(Ebb(a)){b=a;return b==-0.?0:b}return oD(a)} +function cib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function Zpb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function Xsb(a){rCb(a.b.b!=a.d.a);a.c=a.b=a.b.b;--a.a;return a.c.c} +function Igb(a){while(a.d>0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} +function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} +function Qu(a){return new Rkb((Xj(a,Hie),Oy(vbb(vbb(5,a),a/10|0))))} +function ZCc(){ZCc=bcb;YCc=ix(leb(1),leb(4));XCc=ix(leb(1),leb(2))} +function D2c(a){a.j.c=KC(SI,Phe,1,0,5,1);Ae(a.c);d3c(a.a);return a} +function d6d(a){var b,c,d;b=new v6d;c=n6d(b,a);u6d(b);d=c;return d} +function qZd(){var a,b,c;b=(c=(a=new PQd,a),c);Dkb(mZd,b);return b} +function Xzb(a){var b;Szb(a);b=new Fpb;$ub(a.a,new lAb(b));return b} +function sAb(a){var b;Szb(a);b=new crb;$ub(a.a,new AAb(b));return b} +function lsb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function pAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} +function nrb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} +function pEc(a,b,c){this.d=new CEc(this);this.e=a;this.i=b;this.f=c} +function RZb(a,b,c){!!a.d&&Kkb(a.d.e,a);a.d=b;!!a.d&&Ckb(a.d.e,c,a)} +function rMb(a,b,c){return c.f.c.length>0?GMb(a.a,b,c):GMb(a.b,b,c)} +function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} +function Tpd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} +function Upd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} +function Vpd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} +function Wpd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=Xpd(c));return d} +function Oqd(a,b,c){var d;d=Rpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} +function hxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} +function f3c(){z2c.call(this);this.j.c=KC(SI,Phe,1,0,5,1);this.a=-1} +function v_c(){v_c=bcb;u_c=as((o_c(),OC(GC(N_,1),Fie,551,0,[n_c])))} +function m_c(){m_c=bcb;l_c=as((e_c(),OC(GC(M_,1),Fie,482,0,[d_c])))} +function V0c(){V0c=bcb;U0c=as((N0c(),OC(GC(V_,1),Fie,530,0,[M0c])))} +function gPb(){gPb=bcb;fPb=as((bPb(),OC(GC(GO,1),Fie,481,0,[aPb])))} +function l_b(a){return BD(Pkb(a,KC(aR,gne,11,a.c.length,0,1)),1942)} +function _w(a){return new Jub(qmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} +function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} +function Ko(a){if(a.e.g!=a.b){throw ubb(new zpb)}return !!a.c&&a.d>0} +function Wsb(a){rCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function Wjb(a,b){tCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;$jb(a)} +function Vjb(a,b){tCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);$jb(a)} +function $4b(a,b){e5b(b,a);g5b(a.d);g5b(BD(uNb(a,(Lyc(),uxc)),207))} +function _4b(a,b){h5b(b,a);j5b(a.d);j5b(BD(uNb(a,(Lyc(),uxc)),207))} +function x6d(a){var b;b=a.Vg();this.a=JD(b,69)?BD(b,69).Yh():b.Kc()} +function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} +function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} +function jbc(){fbc();return OC(GC(VS,1),Fie,359,0,[ebc,cbc,dbc,bbc])} +function Cjc(){zjc();return OC(GC(mV,1),Fie,412,0,[vjc,wjc,xjc,yjc])} +function xLb(){uLb();return OC(GC(PN,1),Fie,407,0,[tLb,qLb,rLb,sLb])} +function rWb(){kWb();return OC(GC(SP,1),Fie,406,0,[gWb,jWb,hWb,iWb])} +function pxb(){kxb();return OC(GC(iL,1),Fie,297,0,[gxb,hxb,ixb,jxb])} +function TOb(){QOb();return OC(GC(CO,1),Fie,394,0,[NOb,MOb,OOb,POb])} +function TMb(){QMb();return OC(GC(jO,1),Fie,323,0,[NMb,MMb,OMb,PMb])} +function qqc(){kqc();return OC(GC(IW,1),Fie,374,0,[hqc,gqc,iqc,jqc])} +function Lzc(){Gzc();return OC(GC($W,1),Fie,197,0,[Ezc,Fzc,Dzc,Czc])} +function qGc(){nGc();return OC(GC(OX,1),Fie,401,0,[jGc,kGc,lGc,mGc])} +function nkc(a){var b;return a.j==(Pcd(),Mcd)&&(b=okc(a),tqb(b,ucd))} +function ARc(){uRc();return OC(GC(g$,1),Fie,393,0,[qRc,rRc,sRc,tRc])} +function iXc(){eXc();return OC(GC(_$,1),Fie,339,0,[dXc,bXc,cXc,aXc])} +function Rmc(a,b){return BD(Atb(PAb(BD(Qc(a.k,b),15).Oc(),Gmc)),113)} +function Smc(a,b){return BD(Atb(QAb(BD(Qc(a.k,b),15).Oc(),Gmc)),113)} +function Ldc(a,b){var c;c=b.a;PZb(c,b.c.d);QZb(c,b.d.d);m7c(c.a,a.n)} +function w2c(a,b){var c;for(c=a.j.c.length;c0&&Zfb(a.g,0,b,0,a.i);return b} +function Nqd(a,b,c){var d;d=Rpd(c);ro(a.d,d,b);Qhb(a.e,b,c);return b} +function Pqd(a,b,c){var d;d=Rpd(c);ro(a.j,d,b);Qhb(a.k,b,c);return b} +function $sd(a){var b,c;b=(Ahd(),c=new Old,c);!!a&&Mld(b,a);return b} +function ksc(){ksc=bcb;isc=new lsc(ble,0);jsc=new lsc('TOP_LEFT',1)} +function QIc(){QIc=bcb;PIc=new RIc('UPPER',0);OIc=new RIc('LOWER',1)} +function Uwd(a){if(a.p!=7)throw ubb(new Xdb);return Sbb(a.f)<<16>>16} +function bxd(a){if(a.p!=7)throw ubb(new Xdb);return Sbb(a.k)<<16>>16} +function Xwd(a){if(a.p!=1)throw ubb(new Xdb);return Sbb(a.k)<<24>>24} +function Owd(a){if(a.p!=1)throw ubb(new Xdb);return Sbb(a.f)<<24>>24} +function lEd(a,b){kEd();var c;c=BD(Nhb(jEd,a),55);return !c||c.vj(b)} +function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} +function nx(a,b){var c;c=new Ufb;a.xd(c);c.a+='..';b.yd(c);return c.a} +function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=vbb(b,1)}return Oy(b)} +function Rgc(a,b,c){var d;d=BD(Nhb(a.g,c),57);Dkb(a.a.c,new qgd(b,d))} +function UCb(a,b,c){return Cdb(ED(Wd(hrb(a.f,b))),ED(Wd(hrb(a.f,c))))} +function z2d(a,b,c){return A2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Oje)!=0)} +function G2d(a,b,c){return H2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Oje)!=0)} +function l3d(a,b,c){return m3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Oje)!=0)} +function fFd(a,b){return BD(b==null?Wd(hrb(a.f,null)):Brb(a.g,b),280)} +function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?She:ecb(b)} +function FJc(a,b){return a==(i0b(),g0b)&&b==g0b?4:a==g0b||b==g0b?8:32} +function lRb(a,b){$Qb.call(this);this.a=a;this.b=b;Dkb(this.a.b,this)} +function gge(a,b){rfe();sfe.call(this,a);this.a=b;this.c=-1;this.b=-1} +function zQb(a){this.b=new Kqb;this.c=new Kqb;this.d=new Kqb;this.a=a} +function QKd(a){if(!a.n){VKd(a);a.n=new EMd(a,i5,a);WKd(a)}return a.n} +function wfd(a,b){var c;c=b;while(c){K6c(a,c.i,c.j);c=Sod(c)}return a} +function Mqd(a,b,c){var d;d=Rpd(c);Qhb(a.b,d,b);Qhb(a.c,b,c);return b} +function kt(a,b){var c;c=umb(Nu(new wu(a,b)));ir(new wu(a,b));return c} +function M6d(a,b){L6d();var c;c=BD(a,66).Lj();fVd(c,b);return c.Nk(b)} +function POc(a,b,c,d,e){var f;f=KOc(e,c,d);Dkb(b,pOc(e,f));TOc(a,e,b)} +function lic(a,b,c){a.i=0;a.e=0;if(b==c){return}kic(a,b,c);jic(a,b,c)} +function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+ije);YA(a,c)} +function Tcc(a,b){Ncc();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} +function Eqb(a){rCb(a.a=0&&a.a[c]===b[c];c--);return c<0} +function Gx(a){var b;if(a){return new Asb(a)}b=new ysb;Jq(b,a);return b} +function Ctb(a,b){tCb(b);if(a.a!=null){return Htb(b.Kb(a.a))}return ytb} +function eRb(a){return !!a.c&&!!a.d?nRb(a.c)+'->'+nRb(a.d):'e_'+ECb(a)} +function FAb(a,b){var c;return b.b.Kb(RAb(a,b.c.Ee(),(c=new SBb(b),c)))} +function Gub(a){yub();Dub(this,Sbb(wbb(Nbb(a,24),ike)),Sbb(wbb(a,ike)))} +function oCb(a){if(a<0){throw ubb(new Eeb('Negative array size: '+a))}} +function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} +function Iic(a,b){var c,d;d=false;do{c=Lic(a,b);d=d|c}while(c);return d} +function Fz(a){a&&Mz((Kz(),Jz));--xz;if(a){if(zz!=-1){Hz(zz);zz=-1}}} +function nyb(){nyb=bcb;kyb=true;iyb=false;jyb=false;myb=false;lyb=false} +function YEb(){YEb=bcb;XEb=as((TEb(),OC(GC(bN,1),Fie,428,0,[REb,SEb])))} +function QEb(){QEb=bcb;PEb=as((LEb(),OC(GC(aN,1),Fie,429,0,[KEb,JEb])))} +function _Rb(){_Rb=bcb;$Rb=as((WRb(),OC(GC(gP,1),Fie,425,0,[URb,VRb])))} +function C5b(){C5b=bcb;B5b=as((x5b(),OC(GC(ZR,1),Fie,511,0,[w5b,v5b])))} +function ZLc(){ZLc=bcb;YLc=as((ULc(),OC(GC(eZ,1),Fie,516,0,[TLc,SLc])))} +function fMc(){fMc=bcb;eMc=as((aMc(),OC(GC(fZ,1),Fie,515,0,[$Lc,_Lc])))} +function IOc(){IOc=bcb;HOc=as((DOc(),OC(GC(CZ,1),Fie,520,0,[COc,BOc])))} +function Aqc(){Aqc=bcb;zqc=as((vqc(),OC(GC(JW,1),Fie,420,0,[tqc,uqc])))} +function crc(){crc=bcb;brc=as((Zqc(),OC(GC(MW,1),Fie,479,0,[Yqc,Xqc])))} +function cBc(){cBc=bcb;bBc=as((ZAc(),OC(GC(fX,1),Fie,376,0,[YAc,XAc])))} +function EAc(){EAc=bcb;DAc=as((zAc(),OC(GC(cX,1),Fie,422,0,[xAc,yAc])))} +function Mpc(){Mpc=bcb;Lpc=as((Hpc(),OC(GC(FW,1),Fie,423,0,[Fpc,Gpc])))} +function psc(){psc=bcb;osc=as((ksc(),OC(GC(SW,1),Fie,421,0,[isc,jsc])))} +function _Tc(){_Tc=bcb;$Tc=as((WTc(),OC(GC(E$,1),Fie,426,0,[VTc,UTc])))} +function TTc(){TTc=bcb;STc=as((OTc(),OC(GC(D$,1),Fie,480,0,[MTc,NTc])))} +function TUc(){TUc=bcb;SUc=as((LUc(),OC(GC(J$,1),Fie,495,0,[JUc,KUc])))} +function GQc(){GQc=bcb;FQc=as((BQc(),OC(GC(XZ,1),Fie,455,0,[zQc,AQc])))} +function hWc(){hWc=bcb;gWc=as((bWc(),OC(GC(W$,1),Fie,427,0,[_Vc,aWc])))} +function e1c(){e1c=bcb;d1c=as((Y0c(),OC(GC(W_,1),Fie,430,0,[X0c,W0c])))} +function D_c(){D_c=bcb;C_c=as((y_c(),OC(GC(O_,1),Fie,431,0,[x_c,w_c])))} +function VIc(){VIc=bcb;UIc=as((QIc(),OC(GC(lY,1),Fie,523,0,[PIc,OIc])))} +function Wcd(){Pcd();return OC(GC(E1,1),Yme,61,0,[Ncd,vcd,ucd,Mcd,Ocd])} +function gFd(a,b,c){return BD(b==null?irb(a.f,null,c):Crb(a.g,b,c),280)} +function ko(a){a.i=0;zlb(a.b,null);zlb(a.c,null);a.a=null;a.e=null;++a.g} +function pv(a){if(!a.c.Sb()){throw ubb(new ttb)}a.a=true;return a.c.Ub()} +function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} +function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} +function vyb(a){nyb();if(kyb){return}this.c=a;this.e=true;this.a=new Qkb} +function qAb(a,b){this.c=0;this.b=b;ivb.call(this,a,17493);this.a=this.c} +function Mkb(a,b,c){var d;d=(sCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} +function vHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} +function xfd(a,b){var c;c=b;while(c){K6c(a,-c.i,-c.j);c=Sod(c)}return a} +function Gqd(a,b){var c;c=new eC;Npd(c,'x',b.a);Npd(c,'y',b.b);Lpd(a,c)} +function Jqd(a,b){var c;c=new eC;Npd(c,'x',b.a);Npd(c,'y',b.b);Lpd(a,c)} +function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} +function qeb(a,b){var c,d;tCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} +function vUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} +function EAb(a,b){return (Tzb(a),VAb(new XAb(a,new pBb(b,a.a)))).sd(CAb)} +function sUb(){pUb();return OC(GC(zP,1),Fie,355,0,[kUb,lUb,mUb,nUb,oUb])} +function Zzc(){Tzc();return OC(GC(_W,1),Fie,315,0,[Szc,Pzc,Qzc,Ozc,Rzc])} +function $jc(){Wjc();return OC(GC(uV,1),Fie,362,0,[Sjc,Ujc,Vjc,Tjc,Rjc])} +function Dtc(){Atc();return OC(GC(TW,1),Fie,163,0,[ztc,vtc,wtc,xtc,ytc])} +function M_c(){J_c();return OC(GC(P_,1),Fie,316,0,[E_c,F_c,I_c,G_c,H_c])} +function j$c(){g$c();return OC(GC(x_,1),Fie,354,0,[c$c,b$c,e$c,d$c,f$c])} +function M5c(){J5c();return OC(GC(d1,1),Fie,175,0,[H5c,G5c,E5c,I5c,F5c])} +function gad(){aad();return OC(GC(s1,1),Fie,103,0,[$9c,Z9c,Y9c,X9c,_9c])} +function Sbd(){Pbd();return OC(GC(B1,1),Fie,249,0,[Mbd,Obd,Kbd,Lbd,Nbd])} +function rcd(){mcd();return OC(GC(D1,1),Fie,291,0,[kcd,icd,jcd,hcd,lcd])} +function xcb(a){vcb.call(this,a==null?She:ecb(a),JD(a,78)?BD(a,78):null)} +function Gzd(a){this.b=a;Ayd.call(this,a);this.a=BD(vjd(this.b.a,4),125)} +function Pzd(a){this.b=a;Vyd.call(this,a);this.a=BD(vjd(this.b.a,4),125)} +function lSd(a,b,c,d,e){jxd.call(this,b,d,e);eSd(this);this.c=a;this.b=c} +function DSd(a,b,c,d,e){jxd.call(this,b,d,e);eSd(this);this.c=a;this.a=c} +function qSd(a,b,c,d,e){fxd.call(this,b,d,e);eSd(this);this.c=a;this.a=c} +function uSd(a,b,c,d,e){gxd.call(this,b,d,e);eSd(this);this.c=a;this.a=c} +function OYb(a){LYb();xXb(this);this.a=new Osb;MYb(this,a);Csb(this.a,a)} +function iYb(){Bkb(this);this.b=new b7c(Kje,Kje);this.a=new b7c(Lje,Lje)} +function O0d(){O0d=bcb;var a,b;M0d=(GFd(),b=new HPd,b);N0d=(a=new JJd,a)} +function VKd(a){if(!a.t){a.t=new TMd(a);qtd(new Z_d(a),0,a.t)}return a.t} +function tUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} +function y3c(a,b){if(JD(b,149)){return cfb(a.c,BD(b,149).c)}return false} +function NZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} +function Pgb(a,b){if(b==0||a.e==0){return a}return b>0?hhb(a,b):khb(a,-b)} +function Qgb(a,b){if(b==0||a.e==0){return a}return b>0?khb(a,b):hhb(a,-b)} +function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw ubb(new ttb)}} +function Xac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(i0b(),d0b)&&c.k==d0b} +function sjb(a,b){var c,d;c=b.cd();d=zwb(a,c);return !!d&&vtb(d.e,b.dd())} +function f4c(a,b){var c;c=BD(Vrb(a.d,b),23);return c?c:BD(Vrb(a.e,b),23)} +function Tc(a,b){var c,d;c=BD(Iv(a.c,b),14);if(c){d=c.gc();c.$b();a.d-=d}} +function cid(a,b,c){var d;return d=a.Xg(b),d>=0?a.$g(d,c,true):nid(a,b,c)} +function tHb(a,b,c,d){var e;for(e=0;e>22&zje;d=a<0?Aje:0;return TC(b,c,d)} +function Qc(a,b){var c;c=BD(a.c.xc(b),14);!c&&(c=a.ic(b));return a.pc(b,c)} +function bfb(a,b){var c,d;c=(tCb(a),a);d=(tCb(b),b);return c==d?0:cb){throw ubb(new pcb(Jb(a,b,'index')))}return a} +function Epb(a){var b;b=a.e+a.f;if(isNaN(b)&&Kdb(a.d)){return a.d}return b} +function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} +function c6c(){c6c=bcb;b6c=new Gsd('org.eclipse.elk.labels.labelManager')} +function DOc(){DOc=bcb;COc=new EOc('REGULAR',0);BOc=new EOc('CRITICAL',1)} +function a1b(a){this.c=a;this.a=new nlb(this.c.a);this.b=new nlb(this.c.b)} +function jxd(a,b,c){this.d=a;this.k=b?1:0;this.f=c?1:0;this.o=-1;this.p=0} +function Fjc(a,b,c){this.a=a;this.c=b;this.d=c;Dkb(b.e,this);Dkb(c.b,this)} +function hWd(a,b,c){QVd.call(this,c);this.b=a;this.c=b;this.d=(xWd(),vWd)} +function vBb(a,b){evb.call(this,b.rd(),b.qd()&-6);tCb(a);this.a=a;this.b=b} +function BBb(a,b){ivb.call(this,b.rd(),b.qd()&-6);tCb(a);this.a=a;this.b=b} +function HBb(a,b){mvb.call(this,b.rd(),b.qd()&-6);tCb(a);this.a=a;this.b=b} +function LFb(){this.g=new OFb;this.b=new OFb;this.a=new Qkb;this.k=new Qkb} +function jRb(){this.e=new Qkb;this.c=new Qkb;this.d=new Qkb;this.b=new Qkb} +function ORc(){this.b=new Osb;this.a=new Osb;this.b=new Osb;this.a=new Osb} +function xQc(a,b,c){this.a=a;this.b=b;this.c=c;Dkb(a.t,this);Dkb(b.i,this)} +function w$c(a,b){return $wnd.Math.min(O6c(b.a,a.d.d.c),O6c(b.b,a.d.d.c))} +function Shb(a,b){return ND(b)?b==null?jrb(a.f,null):Drb(a.g,b):jrb(a.f,b)} +function LHc(a,b){var c;c=RHc(a,b);a.b=new xHc(c.c.length);return KHc(a,c)} +function FAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} +function EJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} +function ooc(a){if(a.a){if(a.e){return ooc(a.e)}}else{return a}return null} +function JDc(a,b){if(a.pb.p){return -1}return 0} +function LYd(a,b){if(Lhb(a.a,b)){Shb(a.a,b);return true}else{return false}} +function fd(a){var b,c;b=a.cd();c=BD(a.dd(),14);return $j(c.Nc(),new ah(b))} +function rqb(a){var b;b=BD(YBb(a.b,a.b.length),9);return new wqb(a.a,b,a.c)} +function PDc(a,b,c){var d,e;d=0;for(e=0;e=0,'Initial capacity must not be negative')} +function yCb(a){if(!a){throw ubb(new Ydb('Unable to add element to queue'))}} +function zCb(a,b,c){if(a<0||b>c||b=0?a.$g(c,true,true):nid(a,b,true)} +function r6b(a,b){return Jdb(Ddb(ED(uNb(a,(utc(),ftc)))),Ddb(ED(uNb(b,ftc))))} +function lUc(){lUc=bcb;kUc=Z2c(Z2c(c3c(new f3c,(uRc(),rRc)),(mSc(),lSc)),hSc)} +function cCc(){cCc=bcb;bCc=$2c(a3c(new f3c,(pUb(),kUb),(R8b(),m8b)),oUb,I8b)} +function Hpc(){Hpc=bcb;Fpc=new Ipc('QUADRATIC',0);Gpc=new Ipc('SCANLINE',1)} +function lhe(a){if(a.b<=0)throw ubb(new ttb);--a.b;a.a-=a.c.c;return leb(a.a)} +function ktd(a){var b;if(!a.a){throw ubb(new utb)}b=a.a;a.a=Sod(a.a);return b} +function cBb(a){while(!a.a){if(!GBb(a.c,new gBb(a))){return false}}return true} +function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} +function EHc(a,b,c){var d;d=OHc(a,b,c);a.b=new xHc(d.c.length);return GHc(a,d)} +function Gfe(a,b,c){rfe();var d;d=Ffe(a,b);c&&!!d&&Ife(a)&&(d=null);return d} +function wqd(a,b,c){var d,e,f;d=aC(a,c);e=null;!!d&&(e=Xpd(d));f=e;Qqd(b,c,f)} +function xqd(a,b,c){var d,e,f;d=aC(a,c);e=null;!!d&&(e=Xpd(d));f=e;Qqd(b,c,f)} +function q1d(a,b,c){var d,e;e=(d=iUd(a.b,b),d);return !e?null:Q1d(k1d(a,e),c)} +function Yhd(a,b,c,d,e){return b<0?nid(a,c,d):BD(c,66).Mj().Oj(a,a.xh(),b,d,e)} +function QMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Nsb(a.d);a.e.a.c=KC(SI,Phe,1,0,5,1)} +function uHc(a){a.a=KC(WD,jje,25,a.b+1,15,1);a.c=KC(WD,jje,25,a.b,15,1);a.d=0} +function LWb(a,b){if(a.a.ue(b.d,a.b)>0){Dkb(a.c,new cWb(b.c,b.d,a.d));a.b=b.d}} +function iud(a,b){if(a.g==null||b>=a.i)throw ubb(new Vzd(b,a.i));return a.g[b]} +function kOd(a,b,c){Dtd(a,c);if(c!=null&&!a.vj(c)){throw ubb(new scb)}return c} +function ZHb(a,b){xtb(b,'Horizontal alignment cannot be null');a.b=b;return a} +function PC(a,b){HC(b)!=10&&OC(rb(b),b.gm,b.__elementTypeId$,HC(b),a);return a} +function pBb(a,b){mvb.call(this,b.rd(),b.qd()&-16449);tCb(a);this.a=a;this.c=b} +function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} +function tlb(a,b){var c,d;oCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} +function Jlb(a,b,c,d){var e;d=(hpb(),!d?epb:d);e=a.slice(b,c);Klb(e,a,b,c,-b,d)} +function n3c(a){l3c();BD(a.We((U9c(),t9c)),174).Fc((mcd(),jcd));a.Ye(s9c,null)} +function l3c(){l3c=bcb;i3c=new r3c;k3c=new t3c;j3c=mn((U9c(),s9c),i3c,Z8c,k3c)} +function bWc(){bWc=bcb;_Vc=new dWc('LEAF_NUMBER',0);aWc=new dWc('NODE_SIZE',1)} +function kxb(){kxb=bcb;gxb=new lxb('All',0);hxb=new qxb;ixb=new sxb;jxb=new vxb} +function MHb(){MHb=bcb;KHb=new NHb(ele,0);JHb=new NHb(ble,1);LHb=new NHb(fle,2)} +function v9d(){v9d=bcb;Nmd();s9d=Kje;r9d=Lje;u9d=new Mdb(Kje);t9d=new Mdb(Lje)} +function FLd(a){var b;if(a.Dk()){for(b=a.i-1;b>=0;--b){lud(a,b)}}return rud(a)} +function Awb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} +function cZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:ecb(a)} +function dZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:ecb(a)} +function mDb(a,b){if(b.a){throw ubb(new hz(Cke))}Pqb(a.a,b);b.a=a;!a.j&&(a.j=b)} +function zLb(){zLb=bcb;yLb=as((uLb(),OC(GC(PN,1),Fie,407,0,[tLb,qLb,rLb,sLb])))} +function tWb(){tWb=bcb;sWb=as((kWb(),OC(GC(SP,1),Fie,406,0,[gWb,jWb,hWb,iWb])))} +function yxb(){yxb=bcb;xxb=as((kxb(),OC(GC(iL,1),Fie,297,0,[gxb,hxb,ixb,jxb])))} +function VOb(){VOb=bcb;UOb=as((QOb(),OC(GC(CO,1),Fie,394,0,[NOb,MOb,OOb,POb])))} +function VMb(){VMb=bcb;UMb=as((QMb(),OC(GC(jO,1),Fie,323,0,[NMb,MMb,OMb,PMb])))} +function CRc(){CRc=bcb;BRc=as((uRc(),OC(GC(g$,1),Fie,393,0,[qRc,rRc,sRc,tRc])))} +function kXc(){kXc=bcb;jXc=as((eXc(),OC(GC(_$,1),Fie,339,0,[dXc,bXc,cXc,aXc])))} +function lbc(){lbc=bcb;kbc=as((fbc(),OC(GC(VS,1),Fie,359,0,[ebc,cbc,dbc,bbc])))} +function sqc(){sqc=bcb;rqc=as((kqc(),OC(GC(IW,1),Fie,374,0,[hqc,gqc,iqc,jqc])))} +function sGc(){sGc=bcb;rGc=as((nGc(),OC(GC(OX,1),Fie,401,0,[jGc,kGc,lGc,mGc])))} +function Ejc(){Ejc=bcb;Djc=as((zjc(),OC(GC(mV,1),Fie,412,0,[vjc,wjc,xjc,yjc])))} +function Nzc(){Nzc=bcb;Mzc=as((Gzc(),OC(GC($W,1),Fie,197,0,[Ezc,Fzc,Dzc,Czc])))} +function pgd(){pgd=bcb;ogd=as((kgd(),OC(GC(j2,1),Fie,396,0,[hgd,igd,ggd,jgd])))} +function tdd(){tdd=bcb;sdd=as((odd(),OC(GC(H1,1),Fie,373,0,[mdd,ndd,ldd,kdd])))} +function tbd(){tbd=bcb;sbd=as((nbd(),OC(GC(z1,1),Fie,284,0,[mbd,jbd,kbd,lbd])))} +function Bad(){Bad=bcb;Aad=as((wad(),OC(GC(u1,1),Fie,218,0,[vad,tad,sad,uad])))} +function Ded(){Ded=bcb;Ced=as((yed(),OC(GC(N1,1),Fie,311,0,[xed,ued,wed,ved])))} +function Zqc(){Zqc=bcb;Yqc=new $qc(Xme,0);Xqc=new $qc('IMPROVE_STRAIGHTNESS',1)} +function aIc(a,b){BHc();return Dkb(a,new qgd(b,leb(b.e.c.length+b.g.c.length)))} +function cIc(a,b){BHc();return Dkb(a,new qgd(b,leb(b.e.c.length+b.g.c.length)))} +function Ikb(a,b,c){for(;c=0){++b[0]}} +function HNb(a,b){GNb=new sOb;ENb=b;FNb=a;BD(FNb.b,65);JNb(FNb,GNb,null);INb(FNb)} +function DIb(){DIb=bcb;CIb=new EIb('TOP',0);BIb=new EIb(ble,1);AIb=new EIb(hle,2)} +function csc(){csc=bcb;asc=new dsc(Xme,0);bsc=new dsc('TOP',1);_rc=new dsc(hle,2)} +function wD(){wD=bcb;sD=TC(zje,zje,524287);tD=TC(0,0,Bje);uD=RC(1);RC(2);vD=RC(0)} +function RDc(a,b,c){a.a.c=KC(SI,Phe,1,0,5,1);VDc(a,b,c);a.a.c.length==0||ODc(a,b)} +function bhd(a,b){acd(BD(BD(a.f,33).We((U9c(),p9c)),98))&&ICd(Tod(BD(a.f,33)),b)} +function Bqd(a,b){$kd(a,b==null||Kdb((tCb(b),b))||isNaN((tCb(b),b))?0:(tCb(b),b))} +function Cqd(a,b){_kd(a,b==null||Kdb((tCb(b),b))||isNaN((tCb(b),b))?0:(tCb(b),b))} +function Dqd(a,b){Zkd(a,b==null||Kdb((tCb(b),b))||isNaN((tCb(b),b))?0:(tCb(b),b))} +function Eqd(a,b){Xkd(a,b==null||Kdb((tCb(b),b))||isNaN((tCb(b),b))?0:(tCb(b),b))} +function Xfd(a){(!this.q?(lmb(),lmb(),jmb):this.q).Ac(!a.q?(lmb(),lmb(),jmb):a.q)} +function vid(a){var b;if(!a.bh()){b=XKd(a.Sg())-a.zh();a.oh().ak(b)}return a.Og()} +function TId(a){var b;if(a.d!=a.r){b=rId(a);a.e=!!b&&b.Bj()==wve;a.d=b}return a.e} +function pud(a,b,c){var d;d=a.g[b];hud(a,b,a.ni(b,c));a.fi(b,c,d);a.bi();return d} +function Atd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} +function did(a,b){var c;c=YKd(a.d,b);return c>=0?aid(a,c,true,true):nid(a,b,true)} +function ugc(a,b){pgc();var c,d;c=tgc(a);d=tgc(b);return !!c&&!!d&&!nmb(c.k,d.k)} +function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} +function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} +function wzc(a){switch(a.g){case 0:return Jhe;case 1:return -1;default:return 0;}} +function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Cje+a.h*Dje} +function Vrb(a,b){var c;c=BD(Nhb(a.e,b),387);if(c){Xrb(a,c);return c.e}return null} +function KAb(a,b){var c,d;Tzb(a);d=new HBb(b,a.a);c=new eBb(d);return new XAb(a,c)} +function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} +function sjd(a){var b;b=CD(vjd(a,32));if(b==null){tjd(a);b=CD(vjd(a,32))}return b} +function cub(a){var b;b=a.b.c.length==0?null:Hkb(a.b,0);b!=null&&eub(a,0);return b} +function Pgc(a,b){var c,d,e;e=b.c.i;c=BD(Nhb(a.f,e),57);d=c.d.c-c.e.c;l7c(b.a,d,0)} +function tHc(a,b){var c;++a.d;++a.c[b];c=b+1;while(ca.a[d]&&(d=c)}return d} +function eic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Jdb(a.e.d,b.e.d)}return c} +function goc(a){var b;b=BD(uNb(a,(utc(),ssc)),305);if(b){return b.a==a}return false} +function hoc(a){var b;b=BD(uNb(a,(utc(),ssc)),305);if(b){return b.i==a}return false} +function rfb(a,b){return b==(mtb(),mtb(),ltb)?a.toLocaleLowerCase():a.toLowerCase()} +function N2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Oje)!=0?new n4d(b,a):new k4d(b,a)} +function P2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Oje)!=0?new n4d(b,a):new k4d(b,a)} +function mCb(a,b){if(!a){throw ubb(new Vdb(CCb('Enum constant undefined: %s',b)))}} +function Ngb(a,b){if(b.e==0){return Fgb}if(a.e==0){return Fgb}return Chb(),Dhb(a,b)} +function X1c(a,b){var c;c=BD(Nhb(a.a,b),134);if(!c){c=new yNb;Qhb(a.a,b,c)}return c} +function Ftc(){Ftc=bcb;Etc=as((Atc(),OC(GC(TW,1),Fie,163,0,[ztc,vtc,wtc,xtc,ytc])))} +function akc(){akc=bcb;_jc=as((Wjc(),OC(GC(uV,1),Fie,362,0,[Sjc,Ujc,Vjc,Tjc,Rjc])))} +function _zc(){_zc=bcb;$zc=as((Tzc(),OC(GC(_W,1),Fie,315,0,[Szc,Pzc,Qzc,Ozc,Rzc])))} +function O_c(){O_c=bcb;N_c=as((J_c(),OC(GC(P_,1),Fie,316,0,[E_c,F_c,I_c,G_c,H_c])))} +function O5c(){O5c=bcb;N5c=as((J5c(),OC(GC(d1,1),Fie,175,0,[H5c,G5c,E5c,I5c,F5c])))} +function l$c(){l$c=bcb;k$c=as((g$c(),OC(GC(x_,1),Fie,354,0,[c$c,b$c,e$c,d$c,f$c])))} +function iad(){iad=bcb;had=as((aad(),OC(GC(s1,1),Fie,103,0,[$9c,Z9c,Y9c,X9c,_9c])))} +function Ubd(){Ubd=bcb;Tbd=as((Pbd(),OC(GC(B1,1),Fie,249,0,[Mbd,Obd,Kbd,Lbd,Nbd])))} +function tcd(){tcd=bcb;scd=as((mcd(),OC(GC(D1,1),Fie,291,0,[kcd,icd,jcd,hcd,lcd])))} +function uUb(){uUb=bcb;tUb=as((pUb(),OC(GC(zP,1),Fie,355,0,[kUb,lUb,mUb,nUb,oUb])))} +function WRb(){WRb=bcb;URb=new XRb('EADES',0);VRb=new XRb('FRUCHTERMAN_REINGOLD',1)} +function vqc(){vqc=bcb;tqc=new wqc('READING_DIRECTION',0);uqc=new wqc('ROTATION',1)} +function Clc(){zlc();return OC(GC(KV,1),Fie,270,0,[slc,vlc,rlc,ylc,ulc,tlc,xlc,wlc])} +function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} +function hdb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(edb(a),a.o)} +function Oy(a){if(xbb(a,Jhe)>0){return Jhe}if(xbb(a,Mie)<0){return Mie}return Sbb(a)} +function Cv(a){if(a<3){Xj(a,Cie);return a+1}if(a=0&&b=-0.01&&a.a<=kle&&(a.a=0);a.b>=-0.01&&a.b<=kle&&(a.b=0);return a} +function Knd(a){var b,c;c=(b=new NSd,b);rtd((!a.q&&(a.q=new ZTd(m5,a,11,10)),a.q),c)} +function Kdd(a,b){var c;c=b>0?b-1:b;return Qdd(Rdd(Sdd(Tdd(new Udd,c),a.n),a.j),a.k)} +function p2d(a,b,c,d){var e;a.j=-1;Lxd(a,D2d(a,b,c),(L6d(),e=BD(b,66).Lj(),e.Nk(d)))} +function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} +function Gs(a){var b;if(a.a==a.b.a){throw ubb(new ttb)}b=a.a;a.c=b;a.a=a.a.e;return b} +function Ysb(a){var b;xCb(!!a.c);b=a.c.a;Msb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} +function aIb(a,b,c){ZGb.call(this);SHb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} +function Bnc(a,b){this.a=new Kqb;this.e=new Kqb;this.b=(vzc(),uzc);this.c=a;this.b=b} +function lDb(a){this.b=new Qkb;this.a=new Qkb;this.c=new Qkb;this.d=new Qkb;this.e=a} +function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} +function uud(a){if(a<0){throw ubb(new Vdb('Illegal Capacity: '+a))}this.g=this.qi(a)} +function _ub(a,b){if(0>a||a>b){throw ubb(new rcb('fromIndex: 0, toIndex: '+a+jke+b))}} +function UAb(a,b){var c;Tzb(a);c=new kBb(a,a.a.rd(),a.a.qd()|4,b);return new XAb(a,c)} +function JMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Deb(d))} +function hfc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);bfc(c,d,1);Dkb(b,new qfc(c,d))} +function wac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);xNb(c,(utc(),Qsc),b)}} +function wid(a,b){var c;c=TKd(a.Sg(),b);if(!c){throw ubb(new Vdb(ete+b+hte))}return c} +function itd(a,b){var c;c=a;while(Sod(c)){c=Sod(c);if(c==b){return true}}return false} +function s9b(a){var b;b=Ddb(ED(uNb(a,(Lyc(),Xwc))));if(b<0){b=0;xNb(a,Xwc,b)}return b} +function hZb(a,b,c,d,e,f){var g;g=jZb(d);PZb(g,e);QZb(g,f);Rc(a.a,d,new AZb(g,b,c.f))} +function Gkb(a,b){var c,d,e,f;tCb(b);for(d=a.c,e=0,f=d.length;e=a.i)throw ubb(new Vzd(b,a.i));return a.ki(b,a.g[b])} +function lo(a,b){return !!vo(a,b,Sbb(Hbb(zie,jeb(Sbb(Hbb(b==null?0:tb(b),Aie)),15))))} +function oo(a,b){return Kv(uo(a,b,Sbb(Hbb(zie,jeb(Sbb(Hbb(b==null?0:tb(b),Aie)),15)))))} +function zDb(a,b){return Iy(),My(Lie),$wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)} +function Ky(a,b){Iy();My(Lie);return $wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)} +function kib(a){var b;wpb(a.e,a);rCb(a.b);a.c=a.a;b=BD(a.a.Pb(),42);a.b=jib(a);return b} +function S6c(a){var b;b=$wnd.Math.sqrt(a.a*a.a+a.b*a.b);if(b>0){a.a/=b;a.b/=b}return a} +function CD(a){var b;BCb(a==null||Array.isArray(a)&&(b=HC(a),!(b>=14&&b<=16)));return a} +function yUb(a,b){var c;c=$6c(N6c(BD(Nhb(a.g,b),8)),A6c(BD(Nhb(a.f,b),460).b));return c} +function n0b(){n0b=bcb;m0b=as((i0b(),OC(GC(NQ,1),Fie,267,0,[g0b,f0b,d0b,h0b,e0b,c0b])))} +function orc(){orc=bcb;nrc=as((jrc(),OC(GC(NW,1),Fie,273,0,[grc,frc,irc,erc,hrc,drc])))} +function Brc(){Brc=bcb;Arc=as((wrc(),OC(GC(OW,1),Fie,274,0,[urc,qrc,vrc,trc,rrc,prc])))} +function Wqc(){Wqc=bcb;Vqc=as((Qqc(),OC(GC(LW,1),Fie,275,0,[Lqc,Kqc,Nqc,Mqc,Pqc,Oqc])))} +function Epc(){Epc=bcb;Dpc=as((zpc(),OC(GC(EW,1),Fie,227,0,[vpc,xpc,upc,wpc,ypc,tpc])))} +function sSc(){sSc=bcb;rSc=as((mSc(),OC(GC(s$,1),Fie,327,0,[lSc,hSc,jSc,iSc,kSc,gSc])))} +function rzc(){rzc=bcb;qzc=as((jzc(),OC(GC(YW,1),Fie,313,0,[hzc,fzc,dzc,ezc,izc,gzc])))} +function G7c(){G7c=bcb;F7c=as((B7c(),OC(GC(n1,1),Fie,248,0,[v7c,y7c,z7c,A7c,w7c,x7c])))} +function j8c(){j8c=bcb;i8c=as((e8c(),OC(GC(q1,1),Fie,290,0,[d8c,c8c,b8c,_7c,$7c,a8c])))} +function Nad(){Nad=bcb;Mad=as((Iad(),OC(GC(v1,1),Fie,312,0,[Gad,Ead,Had,Cad,Fad,Dad])))} +function Hbd(){Dbd();return OC(GC(A1,1),Fie,93,0,[vbd,ubd,xbd,Cbd,Bbd,Abd,ybd,zbd,wbd])} +function zkc(a,b){fkc();return aeb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} +function qkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,0,c,a.a))} +function rkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,1,c,a.b))} +function cmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,3,c,a.b))} +function Xkd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,3,c,a.f))} +function Zkd(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,4,c,a.g))} +function $kd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,5,c,a.i))} +function _kd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,6,c,a.j))} +function jmd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,1,c,a.j))} +function dmd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,4,c,a.c))} +function kmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,2,c,a.k))} +function lQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new hSd(a,2,c,a.d))} +function vId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new hSd(a,4,c,a.s))} +function yId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new hSd(a,5,c,a.t))} +function WJd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,5,c,b))} +function dzd(a,b){var c;c=BD(Nhb((kEd(),jEd),a),55);return c?c.wj(b):KC(SI,Phe,1,b,5,1)} +function Spd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} +function atd(a,b){var c,d,e;c=(d=(Ahd(),e=new Eod,e),!!b&&Bod(d,b),d);Cod(c,a);return c} +function GLd(a,b,c){Dtd(a,c);if(!a.Ak()&&c!=null&&!a.vj(c)){throw ubb(new scb)}return c} +function Sdd(a,b){a.n=b;if(a.n){a.f=new Qkb;a.e=new Qkb}else{a.f=null;a.e=null}return a} +function red(a){this.b=(Qb(a),new Skb(a));this.a=new Qkb;this.d=new Qkb;this.e=new _6c} +function mSd(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 oSd(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 wSd(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 BSd(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 sSd(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 mdb(a,b,c,d,e,f){var g;g=kdb(a,b);ydb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} +function ulb(a,b,c){var d,e;e=a.length;d=$wnd.Math.min(c,e);ZBb(a,0,b,0,d,true);return b} +function qDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(dkb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} +function ogb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=ehb(a.f)),a.c).e} +function My(a){if(!(a>=0)){throw ubb(new Vdb('tolerance ('+a+') must be >= 0'))}return a} +function j4c(){if(!b4c){b4c=new i4c;h4c(b4c,OC(GC(B0,1),Phe,130,0,[new V9c]))}return b4c} +function IAc(){IAc=bcb;HAc=new JAc(jle,0);FAc=new JAc('INPUT',1);GAc=new JAc('OUTPUT',2)} +function aqc(){aqc=bcb;Zpc=new bqc('ARD',0);_pc=new bqc('MSD',1);$pc=new bqc('MANUAL',2)} +function utd(a,b){var c;c=a.gc();if(b<0||b>c)throw ubb(new xyd(b,c));return new Zyd(a,b)} +function EAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=lAd(a,b);GAd(a,b);return c}} +function Vnd(a,b,c){tId(a,b);knd(a,c);vId(a,0);yId(a,1);xId(a,true);wId(a,true);return a} +function Xj(a,b){if(a<0){throw ubb(new Vdb(b+' cannot be negative but was: '+a))}return a} +function Bt(a,b){var c,d;for(c=0,d=a.gc();c0&&a.c0&&a.g!=0&&Mdd(a.i,b/a.r*a.i.d)}} +function L5b(a,b){Jdd(b,'Hierarchical port constraint processing',1);M5b(a);O5b(a);Ldd(b)} +function dyb(a,b){((nyb(),kyb)?null:b.c).length==0&&pyb(b,new yyb);Rhb(a.a,kyb?null:b.c,b)} +function b3d(a,b){return O6d(a.e,b)?(L6d(),TId(b)?new M7d(b,a):new a7d(b,a)):new Z7d(b,a)} +function GSb(){GSb=bcb;ESb=new Gsd(Dme);FSb=new Gsd(Eme);DSb=new Gsd(Fme);CSb=new Gsd(Gme)} +function oAb(a){var b,c;if(0>a){return new xAb}b=a+1;c=new qAb(b,a);return new uAb(null,c)} +function tmb(a,b){lmb();var c;c=new Lqb(1);ND(a)?Rhb(c,a,b):irb(c.f,a,b);return new hob(c)} +function NLc(a,b){var c,d;c=a.c;d=b.e[a.p];if(d>0){return BD(Hkb(c.a,d-1),10)}return null} +function _Lb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Die}return b} +function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} +function P6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} +function kRd(a){var b;if(a.b==null){return GRd(),GRd(),FRd}b=a.Kk()?a.Jk():a.Ik();return b} +function $Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=wbb(Obb(a.n[c][f],Sbb(Mbb(e,1))),3);return d} +function DAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);CAd(a,c.cd(),c.dd())}} +function J1c(a,b){var c;c=new sOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Gkb(b.a,new P1c(a,c,b))} +function yUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,21,c,a.b))} +function emd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,11,c,a.d))} +function WId(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,13,c,a.j))} +function $fe(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new cee:new pde;a.c=jde(d,a.b,a.a)} +function Zjb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)} +function Zbb(a,b){typeof window===Ehe&&typeof window['$gwt']===Ehe&&(window['$gwt'][a]=b)} +function oWb(a,b){kWb();return a==gWb&&b==jWb||a==jWb&&b==gWb||a==iWb&&b==hWb||a==hWb&&b==iWb} +function pWb(a,b){kWb();return a==gWb&&b==hWb||a==gWb&&b==iWb||a==jWb&&b==iWb||a==jWb&&b==hWb} +function HJb(a,b){return Iy(),My(kle),$wnd.Math.abs(0-b)<=kle||0==b||isNaN(0)&&isNaN(b)?0:a/b} +function Ooc(a,b){return Ddb(ED(Atb(SAb(MAb(new XAb(null,new Jub(a.c.b,16)),new epc(a)),b))))} +function Roc(a,b){return Ddb(ED(Atb(SAb(MAb(new XAb(null,new Jub(a.c.b,16)),new cpc(a)),b))))} +function P2b(a,b){Jdd(b,une,1);LAb(KAb(new XAb(null,new Jub(a.b,16)),new T2b),new V2b);Ldd(b)} +function OXc(a,b){var c,d;c=BD(ckd(a,(VWc(),OWc)),19);d=BD(ckd(b,OWc),19);return aeb(c.a,d.a)} +function l7c(a,b,c){var d,e;for(e=Isb(a,0);e.b!=e.d.c;){d=BD(Wsb(e),8);d.a+=b;d.b+=c}return a} +function uo(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 vo(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 qmb(a,b){lmb();var c,d;d=new Qkb;for(c=0;c0){this.g=this.qi(this.i+(this.i/8|0)+1);a.Qc(this.g)}} +function Ygb(a){tCb(a);if(a.length==0){throw ubb(new Neb('Zero length BigInteger'))}chb(this,a)} +function Vb(a){if(!a){throw ubb(new Ydb('no calls to next() since the last call to remove()'))}} +function k7b(a,b){Jdd(b,une,1);TGb(SGb(new XGb((_Zb(),new k$b(a,false,false,new S$b)))));Ldd(b)} +function y0b(){y0b=bcb;v0b=new g1b;t0b=new l1b;u0b=new p1b;s0b=new t1b;w0b=new x1b;x0b=new B1b} +function ABc(){ABc=bcb;zBc=new BBc('NO',0);xBc=new BBc('GREEDY',1);yBc=new BBc('LOOK_BACK',2)} +function RAc(){RAc=bcb;OAc=new SAc('EQUALLY',0);PAc=new SAc(sle,1);QAc=new SAc('NORTH_SOUTH',2)} +function oXc(){oXc=bcb;mXc=new qXc(Xme,0);nXc=new qXc('POLAR_COORDINATE',1);lXc=new qXc('ID',2)} +function GFc(){GFc=bcb;FFc=Z2c(b3c(a3c(a3c(new f3c,(pUb(),mUb),(R8b(),y8b)),nUb,o8b),oUb),x8b)} +function _Gc(){_Gc=bcb;$Gc=Z2c(b3c(a3c(a3c(new f3c,(pUb(),mUb),(R8b(),y8b)),nUb,o8b),oUb),x8b)} +function Elc(){Elc=bcb;Dlc=as((zlc(),OC(GC(KV,1),Fie,270,0,[slc,vlc,rlc,ylc,ulc,tlc,xlc,wlc])))} +function nAc(){nAc=bcb;mAc=as((iAc(),OC(GC(aX,1),Fie,260,0,[gAc,bAc,eAc,cAc,dAc,aAc,fAc,hAc])))} +function a6c(){a6c=bcb;_5c=as((X5c(),OC(GC(e1,1),Fie,276,0,[W5c,P5c,T5c,V5c,Q5c,R5c,S5c,U5c])))} +function Csd(){Csd=bcb;Bsd=as((xsd(),OC(GC(N3,1),Fie,237,0,[wsd,tsd,usd,ssd,vsd,qsd,psd,rsd])))} +function mkc(a){var b,c,d;return a.j==(Pcd(),vcd)&&(b=okc(a),c=tqb(b,ucd),d=tqb(b,Ocd),d||d&&c)} +function rtb(a,b){var c,d;tCb(b);for(d=a.vc().Kc();d.Ob();){c=BD(d.Pb(),42);b.Od(c.cd(),c.dd())}} +function ZHd(a,b){var c;if(JD(b,83)){BD(a.c,76).Wj();c=BD(b,83);DAd(a,c)}else{BD(a.c,76).Wb(b)}} +function Tqd(a,b){var c;c=BD(b,183);Npd(c,'x',a.i);Npd(c,'y',a.j);Npd(c,Bte,a.g);Npd(c,Ate,a.f)} +function nqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(YBb(b,b.length),9);return new wqb(b,c,b.length)} +function L9b(a,b){var c,d;for(d=new nlb(b.b);d.ae&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw ubb(new ttb)}} +function Ku(a){var b,c,d;b=1;for(d=a.Kc();d.Ob();){c=d.Pb();b=31*b+(c==null?0:tb(c));b=~~b}return b} +function Ox(a){var b,c,d;d=0;for(c=new Fqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&zje,d&zje,e&Aje)} +function nD(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 TC(c&zje,d&zje,e&Aje)} +function BZc(a,b,c){var d,e;for(e=new nlb(a.b);e.ad)throw ubb(new xyd(b,d));a.gi()&&(c=ytd(a,c));return a.Uh(b,c)} +function y$c(a,b){var c,d;c=BD(BD(Nhb(a.g,b.a),46).a,65);d=BD(BD(Nhb(a.g,b.b),46).a,65);return $Nb(c,d)} +function hD(a){var b,c,d;b=~a.l+1&zje;c=~a.m+(b==0?1:0)&zje;d=~a.h+(b==0&&c==0?1:0)&Aje;return TC(b,c,d)} +function f6c(a){e6c();var b,c,d;c=KC(l1,iie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=n6c(d,a)}return c} +function Lic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f=128)return false;return a<64?Jbb(wbb(Mbb(1,a),c),0):Jbb(wbb(Mbb(1,a-64),b),0)} +function feb(a){var b;if(a<0){return Mie}else if(a==0){return 0}else{for(b=Die;(b&a)==0;b>>=1);return b}} +function vUd(a){var b;if(!a.c||(a.Bb&1)==0&&(a.c.Db&64)!=0){b=rId(a);JD(b,88)&&(a.c=BD(b,26))}return a.c} +function zDc(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 sld(a,b){switch(b){case 7:return !!a.e&&a.e.i!=0;case 8:return !!a.d&&a.d.i!=0;}return Tkd(a,b)} +function RA(a){var b;if(a==0){return 'Etc/GMT'}if(a<0){a=-a;b='Etc/GMT-'}else{b='Etc/GMT+'}return b+UA(a)} +function $C(a){var b,c;c=geb(a.h);if(c==32){b=geb(a.m);return b==32?geb(a.l)+32:b+20-10}else{return c-12}} +function akb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} +function Uy(a){var b,c,d,e;for(b=(a.j==null&&(a.j=(Rz(),e=Qz.ce(a),Tz(e))),a.j),c=0,d=b.length;cc&&(c=a[b])}return c} +function pmb(a){lmb();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 Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3} +function Dfe(){rfe();var a;if($ee)return $ee;a=vfe(Ffe('M',true));a=wfe(Ffe('M',false),a);$ee=a;return $ee} +function f_c(a){switch(a.g){case 0:return new M1c;default:throw ubb(new Vdb(Ire+(a.f!=null?a.f:''+a.g)));}} +function O0c(a){switch(a.g){case 0:return new g1c;default:throw ubb(new Vdb(Ire+(a.f!=null?a.f:''+a.g)));}} +function _jd(a,b,c){switch(b){case 0:!a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0));ZHd(a.o,c);return;}tid(a,b,c)} +function kic(a,b,c){a.g=pic(a,b,(Pcd(),Ocd),a.j);a.d=pic(a,c,Ocd,a.j);if(a.g.c==0||a.d.c==0){return}mic(a)} +function jic(a,b,c){a.g=pic(a,b,(Pcd(),ucd),a.b);a.d=pic(a,c,ucd,a.b);if(a.g.c==0||a.d.c==0){return}mic(a)} +function Syb(a,b,c){var d,e;d=(Acb(),$Pb(c)?true:false);e=BD(b.xc(d),15);if(!e){e=new Qkb;b.zc(d,e)}e.Fc(c)} +function zwb(a,b){var c,d,e;e=a.b;while(e){c=a.a.ue(b,e.d);if(c==0){return e}d=c<0?0:1;e=e.a[d]}return null} +function Wzb(b,c){var d;try{c.Vd()}catch(a){a=tbb(a);if(JD(a,78)){d=a;b.c[b.c.length]=d}else throw ubb(a)}} +function Vyc(a){Dkb(a.c,(U1c(),S1c));if(Ky(a.a,Ddb(ED(Fsd((bzc(),_yc)))))){return new Ued}return new Wed(a)} +function Pr(a){while(!a.d||!a.d.Ob()){if(!!a.b&&!_jb(a.b)){a.d=BD(ekb(a.b),47)}else{return null}}return a.d} +function ZQc(a){switch(a.g){case 1:return Oqe;default:case 2:return 0;case 3:return Zle;case 4:return Pqe;}} +function Dtd(a,b){if(!a._h()&&b==null){throw ubb(new Vdb("The 'no null' constraint is violated"))}return b} +function Vhb(a,b){lCb(a>=0,'Negative initial capacity');lCb(b>=0,'Non-positive load factor');Thb(this)} +function TRc(a,b,c){this.g=a;this.e=new _6c;this.f=new _6c;this.d=new Osb;this.b=new Osb;this.a=b;this.c=c} +function mib(a){this.e=a;this.d=new Hrb(this.e.g);this.a=this.d;this.b=jib(this);this.$modCount=a.$modCount} +function Ss(a,b,c){var d,e;this.g=a;this.c=b;this.a=this;this.d=this;e=Kp(c);d=KC(BG,Bie,330,e,0,1);this.b=d} +function h4c(a,b){var c,d,e,f,g;for(d=b,e=0,f=d.length;ed?1:0} +function Umd(a){var b,c,d,e;e=hcb(Mmd,a);c=e.length;d=KC(ZI,iie,2,c,6,1);for(b=0;b=0&&a[d]===b[d];d--);return d<0?0:Fbb(wbb(a[d],Tje),wbb(b[d],Tje))?-1:1} +function _tb(a,b){var c;if(b*2+1>=a.b.c.length){return}_tb(a,2*b+1);c=2*b+2;c0){b.td(c);c.i&&WFc(c)}}} +function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} +function wHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return $vb(b-1,a.a.c.length),Jkb(a.a,b-1)}else{throw ubb(new Ipb)}} +function y2c(a,b,c){if(b<0){throw ubb(new pcb(ase+b))}if(bb){throw ubb(new Vdb(ske+a+tke+b))}if(a<0||b>c){throw ubb(new rcb(ske+a+uke+b+jke+c))}} +function f5c(a){if(!a.a||(a.a.i&8)==0){throw ubb(new Ydb('Enumeration class expected for layout option '+a.f))}} +function Gic(a,b,c){if(!a.d[b.p][c.p]){Fic(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 VJd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}eKd(a,b==null?null:(tCb(b),b));!!a.C&&a.xk(null)} +function Wyc(a,b){var c;c=Fsd((bzc(),_yc))!=null&&b.vg()!=null?Ddb(ED(b.vg()))/Ddb(ED(Fsd(_yc))):1;Qhb(a.b,b,c)} +function Ly(a,b){var c;c=vbb(a,b);if(Fbb(Ubb(a,b),0)|Dbb(Ubb(a,c),0)){return c}return vbb(mie,Ubb(Obb(c,63),1))} +function VPd(a){var b;b=(!a.a&&(a.a=new ZTd(f5,a,9,5)),a.a);if(b.i!=0){return iQd(BD(lud(b,0),678))}return null} +function n7c(a){var b,c,d;b=0;d=KC(l1,iie,8,a.b,0,1);c=Isb(a,0);while(c.b!=c.d.c){d[b++]=BD(Wsb(c),8)}return d} +function gkb(a,b){var c,d;c=a.a.length-1;a.c=a.c-1&c;while(b!=a.c){d=b+1&c;NC(a.a,b,a.a[d]);b=d}NC(a.a,a.c,null)} +function hkb(a,b){var c,d;c=a.a.length-1;while(b!=a.b){d=b-1&c;NC(a.a,b,a.a[d]);b=d}NC(a.a,a.b,null);a.b=a.b+1&c} +function Ekb(a,b,c){var d,e;vCb(b,a.c.length);d=c.Pc();e=d.length;if(e==0){return false}aCb(a.c,b,d);return true} +function Glb(a){var b,c,d,e,f;f=1;for(c=a,d=0,e=c.length;de){WZc(b.q,e);d=c!=b.q.d}}return d} +function LVc(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 Mnd(a,b){var c,d;d=eid(a);if(!d){!vnd&&(vnd=new gUd);c=(DEd(),KEd(b));d=new n0d(c);rtd(d.Uk(),a)}return d} +function f7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw ubb(new ttb)}b=a.a;a.a+=a.c.c;++a.b;return leb(b)} +function ukb(a){var b;rCb(a.a!=a.b);b=a.d.a[a.a];lkb(a.b==a.d.c&&b!=null);a.c=a.a;a.a=a.a+1&a.d.a.length-1;return b} +function Mgb(a){var b;if(a.c!=0){return a.c}for(b=0;bNqe?a-c>Nqe:c-a>Nqe} +function Gv(b,c){Qb(b);try{return b._b(c)}catch(a){a=tbb(a);if(JD(a,205)||JD(a,173)){return false}else throw ubb(a)}} +function Ck(b,c){Qb(b);try{return b.Hc(c)}catch(a){a=tbb(a);if(JD(a,205)||JD(a,173)){return false}else throw ubb(a)}} +function Dk(b,c){Qb(b);try{return b.Mc(c)}catch(a){a=tbb(a);if(JD(a,205)||JD(a,173)){return false}else throw ubb(a)}} +function xC(a){rC();throw ubb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} +function Dm(a){var b;switch(a.gc()){case 0:return hm;case 1:return new my(Qb(a.Xb(0)));default:b=a;return new ux(b);}} +function Vn(a){Ql();switch(a.gc()){case 0:return yx(),xx;case 1:return new oy(a.Kc().Pb());default:return new zx(a);}} +function Up(a){Ql();switch(a.c){case 0:return yx(),xx;case 1:return new oy(qr(new Fqb(a)));default:return new Tp(a);}} +function Ekd(a,b){switch(b){case 1:!a.n&&(a.n=new ZTd(C2,a,1,7));Pxd(a.n);return;case 2:Gkd(a,null);return;}akd(a,b)} +function t6c(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 u6c(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 UZc(a){var b,c,d;d=0;for(c=new nlb(a.a);c.a0){c=BD(Hkb(a.a,a.a.c.length-1),570);if(MYb(c,b)){return}}Dkb(a.a,new OYb(b))} +function Zgc(a){Ggc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Gkb(c.b,new rhc(b));Gkb(c.c,new thc(b));qeb(c.i,new vhc(b))} +function fic(a){var b;b=new Tfb;b.a+='VerticalSegment ';Ofb(b,a.e);b.a+=' ';Pfb(b,Eb(new Gb,new nlb(a.k)));return b.a} +function q4c(a){var b;b=BD(Vrb(a.c.c,''),229);if(!b){b=new S3c(_3c($3c(new a4c,''),'Other'));Wrb(a.c.c,'',b)}return b} +function lnd(a){var b;if((a.Db&64)!=0)return zid(a);b=new Ifb(zid(a));b.a+=' (name: ';Dfb(b,a.zb);b.a+=')';return b.a} +function End(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new iSd(a,1,4,e,b);!c?(c=d):c.Di(d)}return c} +function $ic(a,b){var c,d,e;c=0;for(e=U_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=uNb(d,(utc(),etc))!=null?1:0}return c} +function rPc(a,b,c){var d,e,f;d=0;for(f=Isb(a,0);f.b!=f.d.c;){e=Ddb(ED(Wsb(f)));if(e>c){break}else e>=b&&++d}return d} +function MTd(a,b,c){var d,e;d=new kSd(a.e,3,13,null,(e=b.c,e?e:(eGd(),TFd)),CLd(a,b),false);!c?(c=d):c.Di(d);return c} +function NTd(a,b,c){var d,e;d=new kSd(a.e,4,13,(e=b.c,e?e:(eGd(),TFd)),null,CLd(a,b),false);!c?(c=d):c.Di(d);return c} +function uId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new iSd(a,1,8,e,a.r);!c?(c=d):c.Di(d)}return c} +function j1d(a,b){var c,d;c=BD(b,676);d=c.uk();!d&&c.vk(d=JD(b,88)?new x1d(a,BD(b,26)):new J1d(a,BD(b,148)));return d} +function fud(a,b,c){var d;a.pi(a.i+1);d=a.ni(b,c);b!=a.i&&Zfb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.ai(b,c);a.bi()} +function uwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Vfb(a.d)):Pfb(a.a,a.b);Nfb(a.a,b.a,b.d.length,c)}return a} +function W_d(a,b){var c,d,e,f;b.ui(a.a);f=BD(vjd(a.a,8),1935);if(f!=null){for(c=f,d=0,e=c.length;d=d||b>1;a.k=c-1>>1} +function _hd(a,b,c){if(b<0){qid(a,c)}else{if(!c.Hj()){throw ubb(new Vdb(ete+c.ne()+fte))}BD(c,66).Mj().Uj(a,a.xh(),b)}} +function wCb(a,b,c){if(a<0||b>c){throw ubb(new pcb(ske+a+uke+b+', size: '+c))}if(a>b){throw ubb(new Vdb(ske+a+tke+b))}} +function wId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,2,c,b))} +function _Kd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,8,c,b))} +function xId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,3,c,b))} +function aLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,9,c,b))} +function GPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,8,c,b))} +function JQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new iSd(a,1,5,e,a.a);!c?(c=d):Lwd(c,d)}return c} +function LHd(a){var b;if((a.Db&64)!=0)return zid(a);b=new Ifb(zid(a));b.a+=' (source: ';Dfb(b,a.d);b.a+=')';return b.a} +function leb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(neb(),meb)[b];!c&&(c=meb[b]=new $db(a));return c}return new $db(a)} +function Veb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Xeb(),Web)[b];!c&&(c=Web[b]=new Peb(a));return c}return new Peb(a)} +function QOd(a,b){var c,d;for(d=new Ayd(a);d.e!=d.i.gc();){c=BD(yyd(d),26);if(PD(b)===PD(c)){return true}}return false} +function tJb(a){pJb();var b,c,d,e;for(c=vJb(),d=0,e=c.length;dd)throw ubb(new xyd(b,d));if(a.gi()&&a.Hc(c)){throw ubb(new Vdb(fue))}a.Wh(b,c)} +function Q2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Oje)!=0?new n4d(b,a):new k4d(b,a);for(d=0;d=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 Jdb(a,b){if(ab){return 1}if(a==b){return a==0?Jdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} +function aLb(a,b){switch(a.b.g){case 0:case 1:return b;case 2:case 3:return new F6c(b.d,0,b.a,b.b);default:return null;}} +function dad(a){switch(a.g){case 2:return Z9c;case 1:return Y9c;case 4:return X9c;case 3:return _9c;default:return $9c;}} +function zPc(a){switch(a){case 0:return new KPc;case 1:return new APc;case 2:return new FPc;default:throw ubb(new Udb);}} +function Qcd(a){switch(a.g){case 1:return Ocd;case 2:return vcd;case 3:return ucd;case 4:return Mcd;default:return Ncd;}} +function Rcd(a){switch(a.g){case 1:return Mcd;case 2:return Ocd;case 3:return vcd;case 4:return ucd;default:return Ncd;}} +function Scd(a){switch(a.g){case 1:return ucd;case 2:return Mcd;case 3:return Ocd;case 4:return vcd;default:return Ncd;}} +function a5b(a){switch(BD(uNb(a,(utc(),Msc)),303).g){case 1:xNb(a,Msc,(csc(),_rc));break;case 2:xNb(a,Msc,(csc(),bsc));}} +function Rxd(a,b,c){var d,e;if(a.dj()){e=a.ej();d=nud(a,b,c);a.Zi(a.Yi(7,leb(c),d,b,e));return d}else{return nud(a,b,c)}} +function qAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Rh();d=(c&Jhe)%a.d.length;FAd(a,d,sAd(a,d,c,e))}} +function UId(a,b){var c;c=(a.Bb&xve)!=0;b?(a.Bb|=xve):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,10,c,b))} +function $Id(a,b){var c;c=(a.Bb&Mje)!=0;b?(a.Bb|=Mje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,12,c,b))} +function _Id(a,b){var c;c=(a.Bb&yve)!=0;b?(a.Bb|=yve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,15,c,b))} +function aJd(a,b){var c;c=(a.Bb&zve)!=0;b?(a.Bb|=zve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,11,c,b))} +function koc(a){var b;if(!a.a){throw ubb(new Ydb('Cannot offset an unassigned cut.'))}b=a.c-a.b;a.b+=b;moc(a,b);noc(a,b)} +function eqd(a,b){var c;c=Nhb(a.k,b);if(c==null){throw ubb(new Zpd('Port did not exist in input.'))}Tqd(b,c);return null} +function f6d(a){var b,c;for(c=g6d(YJd(a)).Kc();c.Ob();){b=GD(c.Pb());if(ymd(a,b)){return pFd((oFd(),nFd),b)}}return null} +function i3d(a,b){var c,d,e,f,g;g=N6d(a.e.Sg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Pje&Xie;b[1]=(a&1023)+56320&Xie;return yfb(b,0,b.length)} +function aad(){aad=bcb;$9c=new ead(jle,0);Z9c=new ead(fle,1);Y9c=new ead(ele,2);X9c=new ead(qle,3);_9c=new ead('UP',4)} +function wad(){wad=bcb;vad=new xad(jle,0);tad=new xad('POLYLINE',1);sad=new xad('ORTHOGONAL',2);uad=new xad('SPLINES',3)} +function dbd(){dbd=bcb;bbd=new ebd('INHERIT',0);abd=new ebd('INCLUDE_CHILDREN',1);cbd=new ebd('SEPARATE_CHILDREN',2)} +function U$c(){U$c=bcb;R$c=new V$c('P1_STRUCTURE',0);S$c=new V$c('P2_PROCESSING_ORDER',1);T$c=new V$c('P3_EXECUTION',2)} +function vYc(){vYc=bcb;tYc=new wYc('ASPECT_RATIO_DRIVEN',0);uYc=new wYc('MAX_SCALE_DRIVEN',1);sYc=new wYc('AREA_DRIVEN',2)} +function QXb(){QXb=bcb;PXb=new RXb(Xme,0);OXb=new RXb('INSIDE_PORT_SIDE_GROUPS',1);NXb=new RXb('FORCE_MODEL_ORDER',2)} +function e4b(a,b){Jdd(b,'Sort end labels',1);LAb(IAb(KAb(new XAb(null,new Jub(a.b,16)),new p4b),new r4b),new t4b);Ldd(b)} +function Tzb(a){if(a.c){Tzb(a.c)}else if(a.d){throw ubb(new Ydb("Stream already terminated, can't be modified or used"))}} +function qec(a){switch(BD(uNb(a,(Lyc(),Qwc)),218).g){case 1:return new Emc;case 3:return new vnc;default:return new ymc;}} +function _$b(a){var b,c;c=BD(uNb(a,(Lyc(),Jwc)),103);if(c==(aad(),$9c)){b=Ddb(ED(uNb(a,mwc)));return b>=1?Z9c:X9c}return c} +function oqb(a){var b,c,d,e;c=(b=BD(fdb((d=a.fm,e=d.f,e==CI?d:e)),9),new wqb(b,BD($Bb(b,b.length),9),0));qqb(c,a);return c} +function stb(a,b,c,d){var e,f;tCb(d);tCb(c);e=a.xc(b);f=e==null?c:Lyb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} +function cDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Hkb(b,d.p),14))){return d}}return null} +function Zsd(a,b,c){var d,e;d=(Ahd(),e=new skd,e);qkd(d,b);rkd(d,c);!!a&&rtd((!a.a&&(a.a=new sMd(x2,a,5)),a.a),d);return d} +function Crb(a,b,c){var d;d=a.a.get(b);a.a.set(b,c===undefined?null:c);if(d===undefined){++a.c;ypb(a.b)}else{++a.d}return d} +function Hkd(a){var b;if((a.Db&64)!=0)return zid(a);b=new Ifb(zid(a));b.a+=' (identifier: ';Dfb(b,a.k);b.a+=')';return b.a} +function N_b(a){var b,c,d;b=new Qkb;for(d=new nlb(a.j);d.a3.4028234663852886E38){return Kje}else if(b<-3.4028234663852886E38){return Lje}return b} +function _db(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 KFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Phe,1,0,5,1);Fkb(a.a,a.b);Fkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} +function AZc(a,b){a.n.c.length==0&&Dkb(a.n,new RZc(a.s,a.t,a.i));Dkb(a.b,b);MZc(BD(Hkb(a.n,a.n.c.length-1),211),b);CZc(a,b)} +function Xcc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Bcb(DD(uNb(c,(utc(),jtc))))||++e}return e} +function dfc(a,b){var c,d,e;d=sgc(b);e=Ddb(ED(nBc(d,(Lyc(),jyc))));c=$wnd.Math.max(0,e/2-0.5);bfc(b,c,1);Dkb(a,new Cfc(b,c))} +function uOc(a,b){var c,d;c=Isb(a,0);while(c.b!=c.d.c){d=Fdb(ED(Wsb(c)));if(d==b){return}else if(d>b){Xsb(c);break}}Usb(c,b)} +function p4c(a,b){var c,d,e,f,g;c=b.f;Wrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} +function Fub(){yub();var a,b,c;c=xub+++Date.now();a=QD($wnd.Math.floor(c*gke))&ike;b=QD(c-a*hke);this.a=a^1502;this.b=b^fke} +function WUb(a){KUb();return Acb(),FVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&FVb(BD(a.a,81).j,BD(a.b,103))?true:false} +function Jy(a,b){Iy();return My(Lie),$wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))} +function pVc(){pVc=bcb;oVc=new qVc('OVERLAP_REMOVAL',0);mVc=new qVc('COMPACTION',1);nVc=new qVc('GRAPH_SIZE_CALCULATION',2)} +function Atc(){Atc=bcb;ztc=new Btc(Xme,0);vtc=new Btc('FIRST',1);wtc=new Btc(Bne,2);xtc=new Btc('LAST',3);ytc=new Btc(Cne,4)} +function Kjc(a){if(a.k!=(i0b(),g0b)){return false}return EAb(new XAb(null,new Kub(new Sr(ur(T_b(a).a.Kc(),new Sq)))),new Ljc)} +function HEd(a){if(a.e==null){return a}else !a.c&&(a.c=new IEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} +function VC(a,b){if(a.h==Bje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} +function ecb(a){var b;if(Array.isArray(a)&&a.hm===fcb){return gdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} +function ag(a){var b;if(a.b){ag(a.b);if(a.b.d!=a.c){throw ubb(new zpb)}}else if(a.d.dc()){b=BD(a.f.c.xc(a.e),14);!!b&&(a.d=b)}} +function $hd(a,b,c,d){if(b<0){pid(a,c,d)}else{if(!c.Hj()){throw ubb(new Vdb(ete+c.ne()+fte))}BD(c,66).Mj().Sj(a,a.xh(),b,d)}} +function wFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw ubb(new Vdb('Node '+b+' not part of edge '+a))}} +function Skd(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 zkd(a,b,c,d)} +function Ucd(a){Pcd();switch(a.g){case 4:return vcd;case 1:return ucd;case 3:return Mcd;case 2:return Ocd;default:return Ncd;}} +function aFd(a){var b;if(a==null)return true;b=a.length;return b>0&&(ACb(b-1,a.length),a.charCodeAt(b-1)==58)&&!JEd(a,xEd,yEd)} +function JEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()} +function ICd(a,b){GCd();var c,d,e,f;d=FLd(a);e=b;Jlb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} +function Ctd(a){var b,c,d;d=new Gfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&m$c(this.c,this.b,this.a)} +function czc(a){bzc();this.c=Ou(OC(GC(g0,1),Phe,830,0,[Syc]));this.b=new Kqb;this.a=a;Qhb(this.b,_yc,1);Gkb(azc,new Sed(this))} +function o3c(a){l3c();if(BD(a.We((U9c(),Z8c)),174).Hc((Ddd(),Bdd))){BD(a.We(t9c),174).Fc((mcd(),lcd));BD(a.We(Z8c),174).Mc(Bdd)}} +function Jgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Kgb(a,c.a)}return false} +function E2c(a,b){var c;if(a.d){if(Lhb(a.b,b)){return BD(Nhb(a.b,b),51)}else{c=b.Kf();Qhb(a.b,b,c);return c}}else{return b.Kf()}} +function qyb(a){var b,c;if(a.b){return a.b}c=kyb?null:a.d;while(c){b=kyb?null:c.b;if(b){return b}c=kyb?null:c.d}return Zxb(),Yxb} +function Tkd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Ckd(a,b)} +function cWc(a){switch(a.g){case 0:return new BXc;case 1:return new EXc;default:throw ubb(new Vdb(fre+(a.f!=null?a.f:''+a.g)));}} +function MUc(a){switch(a.g){case 0:return new yXc;case 1:return new IXc;default:throw ubb(new Vdb(yne+(a.f!=null?a.f:''+a.g)));}} +function Z0c(a){switch(a.g){case 0:return new o1c;case 1:return new s1c;default:throw ubb(new Vdb(Ire+(a.f!=null?a.f:''+a.g)));}} +function mWc(a){switch(a.g){case 1:return new OVc;case 2:return new GVc;default:throw ubb(new Vdb(fre+(a.f!=null?a.f:''+a.g)));}} +function iCb(b){var c=b.e;function d(a){if(!a||a.length==0){return ''}return '\t'+a.join('\n\t')} +return c&&(c.stack||d(b[Tie]))} +function N2b(a){var b,c,d;c=a.yg();if(c){b=a.Tg();if(JD(b,160)){d=N2b(BD(b,160));if(d!=null){return d+'.'+c}}return c}return null} +function ze(a,b,c){var d,e;for(e=a.Kc();e.Ob();){d=e.Pb();if(PD(b)===PD(d)||b!=null&&pb(b,d)){c&&e.Qb();return true}}return false} +function uvd(a,b,c){var d,e;++a.j;if(c.dc()){return false}else{for(e=c.Kc();e.Ob();){d=e.Pb();a.Gi(b,a.ni(b,d));++b}return true}} +function yA(a,b,c,d){var e,f;f=c-b;if(f<3){while(f<3){a*=10;++f}}else{e=1;while(f>3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} +function ghb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Lgb(a);if(d==a.d-1){--c;c=c|0}}b-=geb(c);return b} +function ahb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,jje,25,c+1,15,1);d[c]=1<=0;--d){b=c[d];for(e=0;e0){if(b.lengtha.i&&NC(b,a.i,null);return b} +function VEd(a){var b,c,d,e;e=0;for(c=0,d=a.length;c0){a.pj();d=b==null?0:tb(b);e=(d&Jhe)%a.d.length;c=sAd(a,e,d,b);return c!=-1}else{return false}} +function M2d(a,b){var c,d,e,f;f=N6d(a.e.Sg(),b);c=BD(a.g,119);for(e=0;e>1;this.k=b-1>>1} +function nHc(a){this.e=KC(WD,jje,25,a.length,15,1);this.c=KC(rbb,$ke,25,a.length,16,1);this.b=KC(rbb,$ke,25,a.length,16,1);this.f=0} +function q3b(a,b){Jdd(b,'End label post-processing',1);LAb(IAb(KAb(new XAb(null,new Jub(a.b,16)),new v3b),new x3b),new z3b);Ldd(b)} +function Hyd(b,c){b.lj();try{b.d.Vc(b.e++,c);b.f=b.d.j;b.g=-1}catch(a){a=tbb(a);if(JD(a,73)){throw ubb(new zpb)}else throw ubb(a)}} +function whb(a,b,c){var d,e;d=wbb(c,Tje);for(e=0;xbb(d,0)!=0&&e0){a.pj();d=b==null?0:tb(b);e=(d&Jhe)%a.d.length;c=rAd(a,e,d,b);if(c){return c.dd()}}return null} +function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} +function nBc(a,b){var c,d;d=null;if(vNb(a,(Lyc(),oyc))){c=BD(uNb(a,oyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=uNb(P_b(a),b));return d} +function Jzc(a){Gzc();var b;(!a.q?(lmb(),lmb(),jmb):a.q)._b((Lyc(),Axc))?(b=BD(uNb(a,Axc),197)):(b=BD(uNb(P_b(a),Bxc),197));return b} +function IA(a,b){GA();var c,d;c=LA((KA(),KA(),JA));d=null;b==c&&(d=BD(Ohb(FA,a),615));if(!d){d=new HA(a);b==c&&Rhb(FA,a,d)}return d} +function $Jb(a){ZJb();var b;b=new c7c(BD(a.e.We((U9c(),X8c)),8));if(a.B.Hc((Ddd(),wdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} +function w6d(a){if(a.b==null){while(a.a.Ob()){a.b=a.a.Pb();if(!BD(a.b,49).Yg()){return true}}a.b=null;return false}else{return true}} +function N9d(a){var b;return a==null?null:new Xgb((b=Lge(a,true),b.length>0&&(ACb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function O9d(a){var b;return a==null?null:new Xgb((b=Lge(a,true),b.length>0&&(ACb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function Mee(a,b){var c,d;d=b.length;for(c=0;c1?Lbb(Mbb(b.a[1],32),wbb(b.a[0],Tje)):wbb(b.a[0],Tje),Rbb(Hbb(b.e,c))))} +function Gbb(a,b){var c;if(Ebb(a)&&Ebb(b)){c=a%b;if(Fje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,jje,25,e,15,1);ihb(d,a.a,c,b);f=new Ugb(a.e,e,d);Igb(f);return f} +function fUc(a,b){var c,d,e,f;f=b.b.b;a.a=new Osb;a.b=KC(WD,jje,25,f,15,1);c=0;for(e=Isb(b.b,0);e.b!=e.d.c;){d=BD(Wsb(e),86);d.g=c++}} +function ddd(){ddd=bcb;_cd=new p0b(15);$cd=new Jsd((U9c(),b9c),_cd);cdd=new Jsd(P9c,15);bdd=new Jsd(A9c,leb(0));Zcd=new Jsd(n8c,ome)} +function odd(){odd=bcb;mdd=new pdd('PORTS',0);ndd=new pdd('PORT_LABELS',1);ldd=new pdd('NODE_LABELS',2);kdd=new pdd('MINIMUM_SIZE',3)} +function Cz(){var a;if(xz!=0){a=sz();if(a-yz>2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} +function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function ADb(a,b){return Iy(),Iy(),My(Lie),($wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0} +function CDb(a,b){return Iy(),Iy(),My(Lie),($wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0} +function BDb(a,b){return Iy(),Iy(),My(Lie),($wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0} +function xdb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;c=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} +function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(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 yfb(a,b,c){var d,e,f,g;f=b+c;zCb(b,f,a.length);g='';for(e=b;eRje){return c.eh()}d=c.Yg();if(!!d||c==a){break}}}return d} +function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=tbb(a);if(!JD(a,205))throw ubb(a)}}return false} +function avd(a){_ud();if(JD(a,156)){return BD(Nhb(Zud,hK),287).ug(a)}if(Lhb(Zud,rb(a))){return BD(Nhb(Zud,rb(a)),287).ug(a)}return null} +function tjd(a){var b,c;if((a.Db&32)==0){c=(b=BD(vjd(a,16),26),XKd(!b?a.yh():b)-XKd(a.yh()));c!=0&&xjd(a,32,KC(SI,Phe,1,c,5,1))}return a} +function xjd(a,b,c){var d;if((a.Db&b)!=0){if(c==null){wjd(a,b)}else{d=ujd(a,b);d==-1?(a.Eb=c):NC(CD(a.Eb),d,c)}}else c!=null&&qjd(a,b,c)} +function ROc(a,b,c,d){var e,f;if(b.c.length==0){return}e=NOc(c,d);f=MOc(b);LAb(UAb(new XAb(null,new Jub(f,1)),new $Oc),new cPc(a,c,e,d))} +function rJb(a){switch(a.g){case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:return true;default:return false;}} +function bC(f,a){var b=f.a;var c;a=String(a);b.hasOwnProperty(a)&&(c=b[a]);var d=(rC(),qC)[typeof c];var e=d?d(c):xC(typeof c);return e} +function Hgb(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 Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} +function pDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw ubb(new Vdb('Input edge is not connected to the input port.'))} +function aZd(a){if(dfb(gse,a)){return Acb(),zcb}else if(dfb(hse,a)){return Acb(),ycb}else{throw ubb(new Vdb('Expecting true or false'))}} +function IIc(a,b){if(a.eb.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} +function Z2c(a,b){if(a.a<0){throw ubb(new Ydb('Did not call before(...) or after(...) before calling add(...).'))}e3c(a,a.a,b);return a} +function R1d(a){var b;a.b||S1d(a,(b=c1d(a.e,a.a),!b||!cfb(hse,vAd((!b.b&&(b.b=new nId((eGd(),aGd),w6,b)),b.b),'qualified'))));return a.c} +function $Sd(a,b,c){var d,e,f;d=BD(lud(LSd(a.a),b),87);f=(e=d.c,e?e:(eGd(),TFd));(f.jh()?sid(a.b,BD(f,49)):f)==c?FQd(d):IQd(d,c);return f} +function dkb(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;lkb(c=f){gkb(a,b);return -1}else{hkb(a,b);return 1}} +function lA(a,b){var c,d;c=(ACb(b,a.length),a.charCodeAt(b));d=b+1;while(d0&&xbb(a,128)<0){b=Sbb(a)+128;c=(Beb(),Aeb)[b];!c&&(c=Aeb[b]=new seb(a));return c}return new seb(a)} +function W0d(a,b){var c,d;c=b.Gh(a.a);if(c){d=GD(vAd((!c.b&&(c.b=new nId((eGd(),aGd),w6,c)),c.b),aue));if(d!=null){return d}}return b.ne()} +function X0d(a,b){var c,d;c=b.Gh(a.a);if(c){d=GD(vAd((!c.b&&(c.b=new nId((eGd(),aGd),w6,c)),c.b),aue));if(d!=null){return d}}return b.ne()} +function BMc(a,b){sMc();var c,d;for(d=new Sr(ur(N_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} +function dfb(a,b){tCb(a);if(b==null){return false}if(cfb(a,b)){return true}return a.length==b.length&&cfb(a.toLowerCase(),b.toLowerCase())} +function GUb(a,b,c){this.c=a;this.f=new Qkb;this.e=new _6c;this.j=new HVb;this.n=new HVb;this.b=b;this.g=new F6c(b.c,b.d,b.b,b.a);this.a=c} +function fVb(a){var b,c,d,e;this.a=new ysb;this.d=new Sqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}} +function syb(a,b,c){var d;(iyb?(qyb(a),true):jyb?(Zxb(),true):myb?(Zxb(),true):lyb&&(Zxb(),false))&&(d=new hyb(b),d.b=c,oyb(a,d),undefined)} +function wKb(a,b){var c;c=!a.A.Hc((odd(),ndd))||a.q==(_bd(),Wbd);a.u.Hc((mcd(),icd))?c?uKb(a,b):yKb(a,b):a.u.Hc(kcd)&&(c?vKb(a,b):zKb(a,b))} +function Y_d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Ig():null);if(wlb(b,c)){xjd(a.a,4,c);return}}xjd(a.a,4,BD(b,125))} +function cYb(a,b,c){return new F6c($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 j4b(a,b){var c,d;c=aeb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=aeb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return aeb(b.a.d.p,a.a.d.p)} +function WDc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Jdb(d,e)}} +function GFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new nlb(KFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b} +function $lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b} +function Wrb(a,b,c){var d,e,f;e=BD(Nhb(a.e,b),387);if(!e){d=new ksb(a,b,c);Qhb(a.e,b,d);hsb(d);return null}else{f=hjb(e,c);Xrb(a,e);return f}} +function K9d(a){var b;if(a==null)return null;b=dde(Lge(a,true));if(b==null){throw ubb(new i8d("Invalid hexBinary value: '"+a+"'"))}return b} +function fhb(a){Ggb();if(xbb(a,0)<0){if(xbb(a,-1)!=0){return new Vgb(-1,Ibb(a))}return Agb}else return xbb(a,10)<=0?Cgb[Sbb(a)]:new Vgb(1,a)} +function vJb(){pJb();return OC(GC(DN,1),Fie,159,0,[mJb,lJb,nJb,dJb,cJb,eJb,hJb,gJb,fJb,kJb,jJb,iJb,aJb,_Ib,bJb,ZIb,YIb,$Ib,WIb,VIb,XIb,oJb])} +function ujc(a){var b;this.d=new Qkb;this.j=new _6c;this.g=new _6c;b=a.g.b;this.f=BD(uNb(P_b(b),(Lyc(),Jwc)),103);this.e=Ddb(ED(b_b(b,pyc)))} +function Ojc(a){this.b=new Qkb;this.e=new Qkb;this.d=a;this.a=!VAb(IAb(new XAb(null,new Kub(new a1b(a.b))),new Wxb(new Pjc))).sd((DAb(),CAb))} +function J5c(){J5c=bcb;H5c=new K5c('PARENTS',0);G5c=new K5c('NODES',1);E5c=new K5c('EDGES',2);I5c=new K5c('PORTS',3);F5c=new K5c('LABELS',4)} +function Pbd(){Pbd=bcb;Mbd=new Qbd('DISTRIBUTED',0);Obd=new Qbd('JUSTIFIED',1);Kbd=new Qbd('BEGIN',2);Lbd=new Qbd(ble,3);Nbd=new Qbd('END',4)} +function PMd(a){var b;b=a.xi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} +function bYb(a){switch(a.g){case 1:return aad(),_9c;case 4:return aad(),Y9c;case 2:return aad(),Z9c;case 3:return aad(),X9c;}return aad(),$9c} +function kA(a,b,c){var d;d=c.q.getFullYear()-ije+ije;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} +function Isb(a,b){var c,d;vCb(b,a.b);if(b>=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=64&&b<128&&(e=Lbb(e,Mbb(1,b-64)))}return e} +function b_b(a,b){var c,d;d=null;if(vNb(a,(U9c(),K9c))){c=BD(uNb(a,K9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!P_b(a)&&(d=uNb(P_b(a),b));return d} +function kQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(i0b(),g0b)||d==c0b){return}c=new Sr(ur(T_b(e).a.Kc(),new Sq));Qr(c)&&Qhb(a.k,b,BD(Rr(c),17))} +function hid(a,b){var c,d,e;d=SKd(a.Sg(),b);c=b-a.zh();return c<0?(e=a.Xg(d),e>=0?a.kh(e):oid(a,d)):c<0?oid(a,d):BD(d,66).Mj().Rj(a,a.xh(),c)} +function Fsd(a){var b;if(JD(a.a,4)){b=avd(a.a);if(b==null){throw ubb(new Ydb(ise+a.b+"'. "+ese+(edb(X3),X3.k)+fse))}return b}else{return a.a}} +function G9d(a){var b;if(a==null)return null;b=Yce(Lge(a,true));if(b==null){throw ubb(new i8d("Invalid base64Binary value: '"+a+"'"))}return b} +function yyd(b){var c;try{c=b.i.Xb(b.e);b.lj();b.g=b.e++;return c}catch(a){a=tbb(a);if(JD(a,73)){b.lj();throw ubb(new ttb)}else throw ubb(a)}} +function Uyd(b){var c;try{c=b.c.ji(b.e);b.lj();b.g=b.e++;return c}catch(a){a=tbb(a);if(JD(a,73)){b.lj();throw ubb(new ttb)}else throw ubb(a)}} +function BPb(){BPb=bcb;APb=(U9c(),G9c);uPb=C8c;pPb=n8c;vPb=b9c;yPb=(eFb(),aFb);xPb=$Eb;zPb=cFb;wPb=ZEb;rPb=(mPb(),iPb);qPb=hPb;sPb=kPb;tPb=lPb} +function MWb(a){KWb();this.c=new Qkb;this.d=a;switch(a.g){case 0:case 2:this.a=smb(JWb);this.b=Kje;break;case 3:case 1:this.a=JWb;this.b=Lje;}} +function ped(a,b,c){var d,e;if(a.c){$kd(a.c,a.c.i+b);_kd(a.c,a.c.j+c)}else{for(e=new nlb(a.b);e.a0){Dkb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=xfb(KC(TD,Vie,25,-d,15,1)))}} +function IKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=CKb(d,c.a);d.e.b=c.b*Ddb(ED(d.b.We(AKb)))}} +function R5b(a,b){var c,d,e,f;e=a.k;c=Ddb(ED(uNb(a,(utc(),ftc))));f=b.k;d=Ddb(ED(uNb(b,ftc)));return f!=(i0b(),d0b)?-1:e!=d0b?1:c==d?0:c=0){return a.gh(b,c,d)}else{!!a.dh()&&(d=(e=a.Ug(),e>=0?a.Pg(d):a.dh().hh(a,-1-e,null,d)));return a.Rg(b,c,d)}} +function uld(a,b){switch(b){case 7:!a.e&&(a.e=new t5d(A2,a,7,4));Pxd(a.e);return;case 8:!a.d&&(a.d=new t5d(A2,a,8,5));Pxd(a.d);return;}Vkd(a,b)} +function ekd(a,b,c){c==null?(!a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0)),GAd(a.o,b)):(!a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0)),CAd(a.o,b,c));return a} +function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=tbb(a);if(JD(a,109)){throw ubb(new pcb("Can't get element "+c))}else throw ubb(a)}} +function Sgb(a,b){this.e=a;if(bc.b){return true}}}return false} +function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.gm){return !!a.gm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} +function QMb(){QMb=bcb;NMb=new RMb(sle,0);MMb=new RMb(tle,1);OMb=new RMb(ule,2);PMb=new RMb(vle,3);NMb.a=false;MMb.a=true;OMb.a=false;PMb.a=true} +function QOb(){QOb=bcb;NOb=new ROb(sle,0);MOb=new ROb(tle,1);OOb=new ROb(ule,2);POb=new ROb(vle,3);NOb.a=false;MOb.a=true;OOb.a=false;POb.a=true} +function cac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(Q_b(b).a.Kc(),new Sq))),17).c.i;b.k==(i0b(),f0b)&&a.b.Fc(b)}while(b.k==(i0b(),f0b));a.b=Su(a.b)} +function xDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Skb(d));for(c=new nlb(d);c.a=0?a.$g(g,c,true):nid(a,f,c)):BD(f,66).Mj().Oj(a,a.xh(),e,c,d)} +function iKb(a,b,c,d){var e,f;f=b.Xe((U9c(),S8c))?BD(b.We(S8c),21):a.j;e=tJb(f);if(e==(pJb(),oJb)){return}if(c&&!rJb(e)){return}THb(kKb(a,e,d),b)} +function G3b(a){switch(a.g){case 1:return uLb(),tLb;case 3:return uLb(),qLb;case 2:return uLb(),sLb;case 4:return uLb(),rLb;default:return null;}} +function jCb(a){switch(typeof(a)){case Hhe:return KCb(a);case Ghe:return QD(a);case Fhe:return Acb(),a?1231:1237;default:return a==null?0:ECb(a);}} +function Fic(a,b,c){if(a.e){switch(a.b){case 1:nic(a.c,b,c);break;case 0:oic(a.c,b,c);}}else{lic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} +function hHc(a){var b,c;if(a==null){return null}c=KC(OQ,iie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Ek()){for(d=0;d=e)throw ubb(new xyd(b,e));if(a.gi()){d=a.Xc(c);if(d>=0&&d!=b){throw ubb(new Vdb(fue))}}return a.li(b,c)} +function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw ubb(new Vdb('Invalid range: '+nx(a,b)))}} +function lYb(a){var b,c;this.b=new Qkb;this.c=a;this.a=false;for(c=new nlb(a.a);c.a0);if((b&-b)==b){return QD(b*Bub(a,31)*4.6566128730773926E-10)}do{c=Bub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} +function KCb(a){ICb();var b,c,d;c=':'+a;d=HCb[c];if(d!=null){return QD((tCb(d),d))}d=FCb[c];b=d==null?JCb(a):QD((tCb(d),d));LCb();HCb[c]=b;return b} +function pZb(a,b,c){Jdd(c,'Compound graph preprocessor',1);a.a=new Hp;uZb(a,b,null);oZb(a,b);tZb(a);xNb(b,(utc(),xsc),a.a);a.a=null;Thb(a.b);Ldd(c)} +function W$b(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 skc(a){var b,c,d;for(d=BD(Qc(a.a,(Wjc(),Ujc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Akc(c);jkc(a,c,b[0],(Ekc(),Bkc),0);jkc(a,c,b[1],Dkc,1)}} +function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Wjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Akc(c);jkc(a,c,b[0],(Ekc(),Bkc),0);jkc(a,c,b[1],Dkc,1)}} +function pXc(a){switch(a.g){case 0:return null;case 1:return new WXc;case 2:return new MXc;default:throw ubb(new Vdb(fre+(a.f!=null?a.f:''+a.g)));}} +function KZc(a,b,c){var d,e;BZc(a,b-a.s,c-a.t);for(e=new nlb(a.n);e.a1&&(f=FFb(a,b));return f} +function $ld(a){var b;if(!!a.f&&a.f.jh()){b=BD(a.f,49);a.f=BD(sid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,9,8,b,a.f))}return a.f} +function _ld(a){var b;if(!!a.i&&a.i.jh()){b=BD(a.i,49);a.i=BD(sid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,9,7,b,a.i))}return a.i} +function uUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(sid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,9,21,b,a.b))}return a.b} +function pAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Rh();wAd(a,a.f+1);e=(d&Jhe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.tj());c.Fc(b);++a.f}} +function h3d(a,b,c){var d;if(b.Jj()){return false}else if(b.Yj()!=-2){d=b.yj();return d==null?c==null:pb(d,c)}else return b.Gj()==a.e.Sg()&&c==null} +function wo(){var a;Xj(16,Cie);a=Kp(16);this.b=KC(GF,Bie,317,a,0,1);this.c=KC(GF,Bie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} +function a0b(a){m_b.call(this);this.k=(i0b(),g0b);this.j=(Xj(6,Eie),new Rkb(6));this.b=(Xj(2,Eie),new Rkb(2));this.d=new K_b;this.f=new r0b;this.a=a} +function Rcc(a){var b,c;if(a.c.length<=1){return}b=Occ(a,(Pcd(),Mcd));Qcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Occ(a,Ocd);Qcc(a,BD(c.a,19).a,BD(c.b,19).a)} +function Tzc(){Tzc=bcb;Szc=new Vzc('SIMPLE',0);Pzc=new Vzc(One,1);Qzc=new Vzc('LINEAR_SEGMENTS',2);Ozc=new Vzc('BRANDES_KOEPF',3);Rzc=new Vzc(wqe,4)} +function SDc(a,b,c){if(!acd(BD(uNb(b,(Lyc(),Txc)),98))){RDc(a,b,X_b(b,c));RDc(a,b,X_b(b,(Pcd(),Mcd)));RDc(a,b,X_b(b,vcd));lmb();Nkb(b.j,new eEc(a))}} +function DVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(xVc(a,c,f)){return true}}return false} +function AMd(a){var b,c;for(c=new Ayd(a);c.e!=c.i.gc();){b=BD(yyd(c),87);if(!!b.e||(!b.d&&(b.d=new sMd(i5,b,1)),b.d).i!=0){return true}}return false} +function LTd(a){var b,c;for(c=new Ayd(a);c.e!=c.i.gc();){b=BD(yyd(c),87);if(!!b.e||(!b.d&&(b.d=new sMd(i5,b,1)),b.d).i!=0){return true}}return false} +function ADc(a){var b,c,d;b=0;for(d=new nlb(a.c.a);d.a102)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 Wj(a,b){if(a==null){throw ubb(new Geb('null key in entry: null='+b))}else if(b==null){throw ubb(new Geb('null value in entry: '+a+'=null'))}} +function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} +function iIb(a,b){var c;c=OC(GC(UD,1),Qje,25,15,[oHb(a.a[0],b),oHb(a.a[1],b),oHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function jIb(a,b){var c;c=OC(GC(UD,1),Qje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function eUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Isb(b.d,0);d.b!=d.d.c;){c=BD(Wsb(d),188);e=c.c;a.b[e.g]==1?Csb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):eUc(a,e)}} +function U9b(a,b){var c,d,e;e=new Rkb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),285);c.c==c.f?J9b(a,c,c.c):K9b(a,c)||(e.c[e.c.length]=c,true)}return e} +function EZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new nlb(a.n);g.af&&NC(b,f,null);return b} +function Lu(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 Toc(a){var b,c,d;d=a.f;a.n=KC(UD,Qje,25,d,15,1);a.d=KC(UD,Qje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} +function xZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new nlb(b);g.a0?a.g:0);++c}a.c=e;a.d=d} +function zHb(a,b){var c;c=OC(GC(UD,1),Qje,25,15,[yHb(a,(fHb(),cHb),b),yHb(a,dHb,b),yHb(a,eHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function kNb(b,c,d){var e;try{_Mb(b,c+b.j,d+b.k,false,true)}catch(a){a=tbb(a);if(JD(a,73)){e=a;throw ubb(new pcb(e.g+Ble+c+Nhe+d+').'))}else throw ubb(a)}} +function lNb(b,c,d){var e;try{_Mb(b,c+b.j,d+b.k,true,false)}catch(a){a=tbb(a);if(JD(a,73)){e=a;throw ubb(new pcb(e.g+Ble+c+Nhe+d+').'))}else throw ubb(a)}} +function c5b(a){var b;if(!vNb(a,(Lyc(),vxc))){return}b=BD(uNb(a,vxc),21);if(b.Hc((Dbd(),vbd))){b.Mc(vbd);b.Fc(xbd)}else if(b.Hc(xbd)){b.Mc(xbd);b.Fc(vbd)}} +function d5b(a){var b;if(!vNb(a,(Lyc(),vxc))){return}b=BD(uNb(a,vxc),21);if(b.Hc((Dbd(),Cbd))){b.Mc(Cbd);b.Fc(Abd)}else if(b.Hc(Abd)){b.Mc(Abd);b.Fc(Cbd)}} +function tdc(a,b,c){Jdd(c,'Self-Loop ordering',1);LAb(MAb(IAb(IAb(KAb(new XAb(null,new Jub(b.b,16)),new xdc),new zdc),new Bdc),new Ddc),new Fdc(a));Ldd(c)} +function hkc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e} +function FXb(a,b){var c,d,e;e=new _6c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);tXb(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 c_b(a){var b,c,d;d=Jhe;for(c=new nlb(a.a);c.a>16==6){return a.Cb.hh(a,5,n5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?a.yh():c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function Wz(a){Rz();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 ieb(a){var b;b=(peb(),oeb);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 $jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=feb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=$Bb(a.a,c);Zjb(a,b,d);a.a=b;a.b=0}else{cCb(a.a,c)}a.c=d} +function CKb(a,b){var c;c=a.b;return c.Xe((U9c(),o9c))?c.Hf()==(Pcd(),Ocd)?-c.rf().a-Ddb(ED(c.We(o9c))):b+Ddb(ED(c.We(o9c))):c.Hf()==(Pcd(),Ocd)?-c.rf().a:b} +function O_b(a){var b;if(a.b.c.length!=0&&!!BD(Hkb(a.b,0),70).a){return BD(Hkb(a.b,0),70).a}b=IZb(a);if(b!=null){return b}return ''+(!a.c?-1:Ikb(a.c.a,a,0))} +function B0b(a){var b;if(a.f.c.length!=0&&!!BD(Hkb(a.f,0),70).a){return BD(Hkb(a.f,0),70).a}b=IZb(a);if(b!=null){return b}return ''+(!a.i?-1:Ikb(a.i.j,a,0))} +function Ngc(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 nhd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).zg().i);for(c=new Ayd(BD(a.f,118).zg());c.e!=c.i.gc();){b=BD(yyd(c),137);Dkb(a.b,new $gd(b))}}return a.b} +function xtd(a,b){var c,d,e;if(b.dc()){return GCd(),GCd(),FCd}else{c=new uyd(a,b.gc());for(e=new Ayd(a);e.e!=e.i.gc();){d=yyd(e);b.Hc(d)&&rtd(c,d)}return c}} +function Yjd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0)),a.o):(!a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0)),AAd(a.o))}return aid(a,b,c,d)} +function Ond(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&zje;a.m=d&zje;a.h=e&Aje;return true} +function Ewb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} +function Vcc(a,b){Ncc();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Xcc(b,Mcc)-Xcc(a,Mcc);case 4:return Xcc(a,Lcc)-Xcc(b,Lcc);}return 0} +function Rqc(a){switch(a.g){case 0:return Kqc;case 1:return Lqc;case 2:return Mqc;case 3:return Nqc;case 4:return Oqc;case 5:return Pqc;default:return null;}} +function znd(a,b,c){var d,e;d=(e=new mUd,tId(e,b),knd(e,c),rtd((!a.c&&(a.c=new ZTd(o5,a,12,10)),a.c),e),e);vId(d,0);yId(d,1);xId(d,true);wId(d,true);return d} +function oud(a,b){var c,d;if(b>=a.i)throw ubb(new Vzd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&Zfb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.ei(b,c);a.bi();return c} +function PId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.hh(a,21,b5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?a.yh():c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function hDb(a){var b,c,d,e;lmb();Nkb(a.c,a.a);for(e=new nlb(a.c);e.ac.a.c.length)){throw ubb(new Vdb('index must be >= 0 and <= layer node count'))}!!a.c&&Kkb(a.c.a,a);a.c=c;!!c&&Ckb(c.a,b,a)} +function o7b(a,b){var c,d,e;for(d=new Sr(ur(N_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} +function nMc(a,b){this.c=new Kqb;this.a=a;this.b=b;this.d=BD(uNb(a,(utc(),mtc)),304);PD(uNb(a,(Lyc(),wxc)))===PD((Zqc(),Xqc))?(this.e=new ZMc):(this.e=new SMc)} +function Vdd(a,b){var c,d,e,f;f=0;for(d=new nlb(a);d.a>16==6){return a.Cb.hh(a,6,A2,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(Ohd(),Ghd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function zod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.hh(a,1,B2,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(Ohd(),Ihd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function gpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.hh(a,9,D2,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(Ohd(),Khd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function hQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.hh(a,9,g5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(eGd(),QFd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function Nnd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.hh(a,6,n5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(eGd(),ZFd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function FHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.hh(a,0,j5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(eGd(),JFd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function drd(){this.a=new Ypd;this.g=new wo;this.j=new wo;this.b=new Kqb;this.d=new wo;this.i=new wo;this.k=new Kqb;this.c=new Kqb;this.e=new Kqb;this.f=new Kqb} +function HCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eRje){return k6d(a,d)}if(d==a){return true}}}return false} +function GKb(a){BKb();switch(a.q.g){case 5:DKb(a,(Pcd(),vcd));DKb(a,Mcd);break;case 4:EKb(a,(Pcd(),vcd));EKb(a,Mcd);break;default:FKb(a,(Pcd(),vcd));FKb(a,Mcd);}} +function KKb(a){BKb();switch(a.q.g){case 5:HKb(a,(Pcd(),ucd));HKb(a,Ocd);break;case 4:IKb(a,(Pcd(),ucd));IKb(a,Ocd);break;default:JKb(a,(Pcd(),ucd));JKb(a,Ocd);}} +function WQb(a){var b,c;b=BD(uNb(a,(vSb(),oSb)),19);if(b){c=b.a;c==0?xNb(a,(GSb(),FSb),new Fub):xNb(a,(GSb(),FSb),new Gub(c))}else{xNb(a,(GSb(),FSb),new Gub(1))}} +function U$b(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 gbc(a,b){switch(a.g){case 0:return b==(Atc(),wtc)?cbc:dbc;case 1:return b==(Atc(),wtc)?cbc:bbc;case 2:return b==(Atc(),wtc)?bbc:dbc;default:return bbc;}} +function r$c(a,b){var c,d,e;Kkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=are;for(d=new nlb(a.a);d.a>16==3){return a.Cb.hh(a,12,D2,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(Ohd(),Fhd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function Pod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.hh(a,10,D2,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(Ohd(),Jhd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function KSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.hh(a,11,b5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(eGd(),XFd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function lUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.hh(a,12,m5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(eGd(),$Fd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function rId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.jh()){b=BD(a.r,49);a.r=BD(sid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,9,8,b,a.r))}return a.r} +function xHb(a,b,c){var d;d=OC(GC(UD,1),Qje,25,15,[AHb(a,(fHb(),cHb),b,c),AHb(a,dHb,b,c),AHb(a,eHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} +function N9b(a,b){var c,d,e;e=U9b(a,b);if(e.c.length==0){return}Nkb(e,new oac);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 eFb(){eFb=bcb;dFb=(qFb(),nFb);cFb=new Isd(Tke,dFb);bFb=(TEb(),SEb);aFb=new Isd(Uke,bFb);_Eb=(LEb(),KEb);$Eb=new Isd(Vke,_Eb);ZEb=new Isd(Wke,(Acb(),true))} +function bfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=tgc(a);if(e.f.d){e.f.a||(a.d.a+=d+kle)}else{a.d.d-=d+kle;a.d.a+=d+kle}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} +function umc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new nlb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e} +function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Bie,317,c,0,1);a.c=KC(GF,Bie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} +function bNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);U6c(a,$wnd.Math.min(h,i));return a} +function jnd(){Nmd();var b,c;try{c=BD(hUd((tFd(),sFd),ute),2013);if(c){return c}}catch(a){a=tbb(a);if(JD(a,102)){b=a;pvd((c0d(),b))}else throw ubb(a)}return new fnd} +function T9d(){v9d();var b,c;try{c=BD(hUd((tFd(),sFd),Awe),2023);if(c){return c}}catch(a){a=tbb(a);if(JD(a,102)){b=a;pvd((c0d(),b))}else throw ubb(a)}return new P9d} +function lZd(){Nmd();var b,c;try{c=BD(hUd((tFd(),sFd),Xve),1940);if(c){return c}}catch(a){a=tbb(a);if(JD(a,102)){b=a;pvd((c0d(),b))}else throw ubb(a)}return new hZd} +function CQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new iSd(a,1,4,e,b);!c?(c=d):c.Di(d)}e!=b&&(b?(c=LQd(a,HQd(a,b),c)):(c=LQd(a,a.a,c)));return c} +function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Mie;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=Mie} +function pEb(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=Jdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function dOb(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=Jdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function OVb(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=Jdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function YTb(){YTb=bcb;VTb=$2c(a3c(a3c(a3c(new f3c,(pUb(),nUb),(R8b(),l8b)),nUb,p8b),oUb,w8b),oUb,_7b);XTb=a3c(a3c(new f3c,nUb,R7b),nUb,a8b);WTb=$2c(new f3c,oUb,c8b)} +function r3b(a){var b,c,d,e,f;b=BD(uNb(a,(utc(),Asc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?UHb(c):WHb(c)}xNb(a,Asc,null)} +function pmc(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 xXc(a){var b,c,d,e,f;d=0;e=$le;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;vXc(a,a.d,0,0,_qe,c);f=a.b.hg(a.d);if(f0){g=(f&Jhe)%a.d.length;e=rAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.sj(f,b,c);a.c.Fc(d);return null} +function o1d(a,b){var c,d,e,f;switch(j1d(a,b).$k()){case 3:case 2:{c=JKd(b);for(e=0,f=c.i;e=0;d--){if(cfb(a[d].d,b)||cfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function zbb(a,b){var c;if(Ebb(a)&&Ebb(b)){c=a/b;if(Fje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} +function Mpd(a,b){var c,d;d=false;if(ND(b)){d=true;Lpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Lpd(a,(c=Jcb(BD(b,236)),new TB(c)))}}if(!d){throw ubb(new ucb(Pte))}} +function DMd(a,b,c,d){var e,f,g;e=new kSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(eGd(),WFd)),(f=c.c,JD(f,88)?BD(f,26):(eGd(),WFd)),CLd(a,b),false);!d?(d=e):d.Di(e);return d} +function S_b(a){var b,c;switch(BD(uNb(P_b(a),(Lyc(),gxc)),421).g){case 0:b=a.n;c=a.o;return new b7c(b.a+c.a/2,b.b+c.b/2);case 1:return new c7c(a.n);default:return null;}} +function jrc(){jrc=bcb;grc=new krc(Xme,0);frc=new krc('LEFTUP',1);irc=new krc('RIGHTUP',2);erc=new krc('LEFTDOWN',3);hrc=new krc('RIGHTDOWN',4);drc=new krc('BALANCED',5)} +function AFc(a,b,c){var d,e,f;d=Jdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(uNb(b,(utc(),Osc)),15);f=BD(uNb(c,Osc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} +function fXc(a){switch(a.g){case 1:return new TVc;case 2:return new VVc;case 3:return new RVc;case 0:return null;default:throw ubb(new Vdb(fre+(a.f!=null?a.f:''+a.g)));}} +function Dkd(a,b,c){switch(b){case 1:!a.n&&(a.n=new ZTd(C2,a,1,7));Pxd(a.n);!a.n&&(a.n=new ZTd(C2,a,1,7));ttd(a.n,BD(c,14));return;case 2:Gkd(a,GD(c));return;}_jd(a,b,c)} +function Ukd(a,b,c){switch(b){case 3:Xkd(a,Ddb(ED(c)));return;case 4:Zkd(a,Ddb(ED(c)));return;case 5:$kd(a,Ddb(ED(c)));return;case 6:_kd(a,Ddb(ED(c)));return;}Dkd(a,b,c)} +function And(a,b,c){var d,e,f;f=(d=new mUd,d);e=sId(f,b,null);!!e&&e.Ei();knd(f,c);rtd((!a.c&&(a.c=new ZTd(o5,a,12,10)),a.c),f);vId(f,0);yId(f,1);xId(f,true);wId(f,true)} +function hUd(a,b){var c,d,e;c=Brb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Ph()==null&&undefined;return e.Mh()}else if(JD(c,498)){d=BD(c,1937);e=d.b;return e}else{return null}} +function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} +function JC(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=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(o6d(a,f))}else{e.Wb(n6d(a,BD(i,56)))}}}} +function Ybb(b,c,d,e){Xbb();var f=Vbb;$moduleName=c;$moduleBase=d;sbb=e;function g(){for(var a=0;aKqe){return c}else e>-1.0E-6&&++c}return c} +function KQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=gid(a.b,a,-4,c));!!b&&(c=fid(b,a,-4,c));c=BQd(a,b,c);!!c&&c.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,3,b,b))} +function NQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=gid(a.f,a,-1,c));!!b&&(c=fid(b,a,-1,c));c=DQd(a,b,c);!!c&&c.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,0,b,b))} +function z9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Gfb;for(b=c.Kc();b.Ob();){Dfb(d,(L8d(),GD(b.Pb())));d.a+=' '}return kcb(d,d.a.length-1)} +function D9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Gfb;for(b=c.Kc();b.Ob();){Dfb(d,(L8d(),GD(b.Pb())));d.a+=' '}return kcb(d,d.a.length-1)} +function lEc(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 Cdb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} +function uqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Tge(f);for(h=(c.b-c.a)*c.c<0?(Sge(),Rge):new nhe(c);h.Ob();){g=BD(h.Pb(),19);e=Upd(b,g.a);d=new xrd(a);vqd(d.a,e)}}} +function Lqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Tge(f);for(h=(c.b-c.a)*c.c<0?(Sge(),Rge):new nhe(c);h.Ob();){g=BD(h.Pb(),19);e=Upd(b,g.a);d=new grd(a);iqd(d.a,e)}}} +function _Ed(b){var c;if(b!=null&&b.length>0&&afb(b,b.length-1)==33){try{c=KEd(pfb(b,0,b.length-1));return c.e==null}catch(a){a=tbb(a);if(!JD(a,32))throw ubb(a)}}return false} +function c3d(a,b,c){var d,e,f;d=b._j();f=b.dd();e=d.Zj()?C2d(a,3,d,null,f,H2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Oje)!=0),true):C2d(a,1,d,d.yj(),f,-1,true);c?c.Di(e):(c=e);return c} +function Qee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Pee((ACb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw ubb(new hde('Unknown Option: '+'X'.substr(a)));b|=c}return b} +function lZb(a,b,c){var d,e,f;d=P_b(b);e=_$b(d);f=new G0b;E0b(f,b);switch(c.g){case 1:F0b(f,Rcd(Ucd(e)));break;case 2:F0b(f,Ucd(e));}xNb(f,(Lyc(),Sxc),ED(uNb(a,Sxc)));return f} +function T9b(a){var b,c;b=BD(Rr(new Sr(ur(Q_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(T_b(a.a).a.Kc(),new Sq))),17);return Bcb(DD(uNb(b,(utc(),jtc))))||Bcb(DD(uNb(c,jtc)))} +function Wjc(){Wjc=bcb;Sjc=new Xjc('ONE_SIDE',0);Ujc=new Xjc('TWO_SIDES_CORNER',1);Vjc=new Xjc('TWO_SIDES_OPPOSING',2);Tjc=new Xjc('THREE_SIDES',3);Rjc=new Xjc('FOUR_SIDES',4)} +function ikc(a,b,c,d,e){var f,g;f=BD(FAb(IAb(b.Oc(),new $kc),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Cyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} +function FDc(a,b){var c,d,e,f,g;for(f=new nlb(b.a);f.a0&&qic(this,this.c-1,(Pcd(),ucd));this.c0&&a[0].length>0&&(this.c=Bcb(DD(uNb(P_b(a[0][0]),(utc(),Psc)))));this.a=KC(BX,iie,2017,a.length,0,2);this.b=KC(EX,iie,2018,a.length,0,2);this.d=new ss} +function pKc(a){if(a.c.length==0){return false}if((sCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(i0b(),f0b)){return true}return EAb(MAb(new XAb(null,new Jub(a,16)),new sKc),new uKc)} +function nRc(a,b,c){Jdd(c,'Tree layout',1);D2c(a.b);G2c(a.b,(uRc(),qRc),qRc);G2c(a.b,rRc,rRc);G2c(a.b,sRc,sRc);G2c(a.b,tRc,tRc);a.a=B2c(a.b,b);oRc(a,b,Pdd(c,1));Ldd(c);return b} +function DXc(a,b){var c,d,e,f,g,h,i;h=cVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new nlb(h);d.a=0){c=zbb(a,Eje);d=Gbb(a,Eje)}else{b=Obb(a,1);c=zbb(b,500000000);d=Gbb(b,500000000);d=vbb(Mbb(d,1),wbb(a,1))}return Lbb(Mbb(d,32),wbb(c,Tje))} +function nQb(a,b,c){var d,e;d=(rCb(b.b!=0),BD(Msb(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=Isb(b,0);Usb(e,d);return b} +function omc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=tmc(g,i.d[g.g],c);e=L6c(N6c(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;}Fsb(d,h,d.c.b,d.c)} +function uJc(a,b,c){var d,e,f,g;g=Ikb(a.e,b,0);f=new vJc;f.b=c;d=new Aib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ngb(d,c));c.d==1?(c=Ngb(c,c)):(c=new Wgb(Khb(c.a,c.d,KC(WD,jje,25,c.d<<1,15,1))))}d=Ngb(d,c);return d} +function yub(){yub=bcb;var a,b,c,d;vub=KC(UD,Qje,25,25,15,1);wub=KC(UD,Qje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){wub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){vub[a]=c;c*=0.5}} +function R1b(a){var b,c;if(Bcb(DD(ckd(a,(Lyc(),dxc))))){for(c=new Sr(ur(Wsd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Lld(b)){if(Bcb(DD(ckd(b,exc)))){return true}}}}return false} +function jjc(a,b){var c,d,e;if(Pqb(a.f,b)){b.b=a;d=b.c;Ikb(a.j,d,0)!=-1||Dkb(a.j,d);e=b.d;Ikb(a.j,e,0)!=-1||Dkb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new ujc(a));pjc(a.i,c)}}} +function qmc(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&&cfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&cfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} +function sjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new nlb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f} +function nfd(a){var b,c,d,e;b=null;for(e=new nlb(a.wf());e.a0&&Zfb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&mfb(j,rfb(c[h],ktb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} +function LIb(a,b){var c;c=MIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return aeb(a.b.sf(),b.b.sf());case 3:case 4:return aeb(b.b.sf(),a.b.sf());}return 0} +function hRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[iie,jje],[48,25],15,[d,d],2);for(c=new nlb(a.c);c.a1){return false}c=pqb(hcd,OC(GC(D1,1),Fie,291,0,[lcd]));if(Ox(Cx(c,a))>1){return false}return true} +function Pmd(a,b){var c,d,e,f,g;if(a==null){return null}else{g=KC(TD,Vie,25,2*b,15,1);for(d=0,e=0;d>4&15;f=a[d]&15;g[e++]=Lmd[c];g[e++]=Lmd[f]}return yfb(g,0,g.length)}} +function e3d(a,b,c){var d,e,f;d=b._j();f=b.dd();e=d.Zj()?C2d(a,4,d,f,null,H2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Oje)!=0),true):C2d(a,d.Jj()?2:1,d,f,d.yj(),-1,true);c?c.Di(e):(c=e);return c} +function vfb(a){var b,c;if(a>=Oje){b=Pje+(a-Oje>>10&1023)&Xie;c=56320+(a-Oje&1023)&Xie;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&Xie)}} +function aKb(a,b){ZJb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((mcd(),hcd));f=a.u.Hc(lcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} +function EVc(a,b,c,d,e){var f,g,h;f=FVc(a,b,c,d,e);h=false;while(!f){wVc(a,e,true);h=true;f=FVc(a,b,c,d,e)}h&&wVc(a,e,false);g=_Uc(e);if(g.c.length!=0){!!a.d&&a.d.kg(g);EVc(a,e,c,d,g)}} +function Iad(){Iad=bcb;Gad=new Jad(Xme,0);Ead=new Jad('DIRECTED',1);Had=new Jad('UNDIRECTED',2);Cad=new Jad('ASSOCIATION',3);Fad=new Jad('GENERALIZATION',4);Dad=new Jad('DEPENDENCY',5)} +function ffd(a,b){var c;if(!hpd(a)){throw ubb(new Ydb(Ose))}c=hpd(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 bub(a,b){var c,d;tCb(b);d=a.b.c.length;Dkb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Hkb(a.b,d),b)<=0){Mkb(a.b,c,b);return true}Mkb(a.b,c,Hkb(a.b,d))}Mkb(a.b,d,b);return true} +function AHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} +function Opd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Ppd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Opd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Npd(b,c,BD(d,236))}}if(!e){throw ubb(new ucb(Pte))}} +function R0d(a,b){var c,d,e;c=b.Gh(a.a);if(c){e=vAd((!c.b&&(c.b=new nId((eGd(),aGd),w6,c)),c.b),Ove);if(e!=null){for(d=1;d<(J6d(),F6d).length;++d){if(cfb(F6d[d],e)){return d}}}}return 0} +function S0d(a,b){var c,d,e;c=b.Gh(a.a);if(c){e=vAd((!c.b&&(c.b=new nId((eGd(),aGd),w6,c)),c.b),Ove);if(e!=null){for(d=1;d<(J6d(),G6d).length;++d){if(cfb(G6d[d],e)){return d}}}}return 0} +function Ve(a,b){var c,d,e,f;tCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(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 aod(a,b){var c;c=Ohb((tFd(),sFd),a);JD(c,498)?Rhb(sFd,a,new YTd(this,b)):Rhb(sFd,a,this);Ynd(this,b);if(b==(GFd(),FFd)){this.wb=BD(this,1938);BD(b,1940)}else{this.wb=(IFd(),HFd)}} +function gZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=Wie?'error':d>=900?'warn':d>=800?'info':'log');fCb(c,a.a);!!a.b&&gCb(b,c,a.b,'Exception: ',true)} +function uNb(a,b){var c,d;d=(!a.q&&(a.q=new Kqb),Nhb(a.q,b));if(d!=null){return d}c=b.vg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Kqb),Shb(a.q,b)):(!a.q&&(a.q=new Kqb),Qhb(a.q,b,c)),a);return c} +function pUb(){pUb=bcb;kUb=new qUb('P1_CYCLE_BREAKING',0);lUb=new qUb('P2_LAYERING',1);mUb=new qUb('P3_NODE_ORDERING',2);nUb=new qUb('P4_NODE_PLACEMENT',3);oUb=new qUb('P5_EDGE_ROUTING',4)} +function RUb(a,b){var c,d,e,f,g;e=b==1?JUb:IUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Kkb(a.b.b,f.b);Kkb(a.b.a,BD(f.b,81).d)}}} +function HWb(a,b){zWb();var c;if(a.c==b.c){if(a.b==b.b||oWb(a.b,b.b)){c=lWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return aeb(a.b.g,b.b.g)}else{return Jdb(a.c,b.c)}} +function x6b(a,b){var c;Jdd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&w6b((sCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&w6b(BD(Hkb(c,c.c.length-1),29),a);Ldd(b)} +function NVc(a,b){var c,d,e;if(yVc(a,b)){return true}for(d=new nlb(b);d.a=e||b<0)throw ubb(new pcb(gue+b+hue+e));if(c>=e||c<0)throw ubb(new pcb(iue+c+hue+e));b!=c?(d=(f=a.Si(c),a.Gi(b,f),f)):(d=a.Ni(c));return d} +function h6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Tg();c;c=c.Tg()){if(++b>Rje){return h6d(c)}d=c;if(c==a){throw ubb(new Ydb('There is a cycle in the containment hierarchy of '+a))}}}return d} +function Fe(a){var b,c,d;d=new wwb(Nhe,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();twb(d,PD(b)===PD(a)?'(this Collection)':b==null?She:ecb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function yVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(ACb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(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 fkc(){fkc=bcb;ckc=OC(GC(E1,1),Yme,61,0,[(Pcd(),vcd),ucd,Mcd]);bkc=OC(GC(E1,1),Yme,61,0,[ucd,Mcd,Ocd]);dkc=OC(GC(E1,1),Yme,61,0,[Mcd,Ocd,vcd]);ekc=OC(GC(E1,1),Yme,61,0,[Ocd,vcd,ucd])} +function nmc(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?Scd(e):Qcd(e);f=tmc(e,k.d[e.g],c);j=tmc(i,k.d[i.g],c);Csb(d,L6c(f,j));e=i}} +function jFc(a,b,c,d){var e,f,g,h,i;g=FHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(uNb(b,(utc(),etc)),10);e=BD(uNb(c,etc),10);if(!!i&&!!e){lic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} +function kHc(a){var b,c,d,e,f,g,h,i,j;this.a=hHc(a);this.b=new Qkb;for(c=a,d=0,e=c.length;dvic(a.d).c){a.i+=a.g.c;xic(a.d)}else if(vic(a.d).c>vic(a.g).c){a.e+=a.d.c;xic(a.g)}else{a.i+=uic(a.g);a.e+=uic(a.d);xic(a.g);xic(a.d)}}} +function TOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new zOc((DOc(),BOc),b,f,1);new zOc(BOc,f,g,1);for(e=new nlb(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 oZc(a,b,c,d,e){var f,g;g=false;f=BD(Hkb(c.b,0),33);while(uZc(a,b,f,d,e)){g=true;JZc(c,f);if(c.b.c.length==0){break}f=BD(Hkb(c.b,0),33)}c.b.c.length==0&&r$c(c.j,c);g&&YZc(b.q);return g} +function p6c(a,b){e6c();var c,d,e,f;if(b.b<2){return false}f=Isb(b,0);c=BD(Wsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Wsb(f),8);if(o6c(a,d,e)){return true}d=e}if(o6c(a,d,c)){return true}return false} +function Zjd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0)),YHd(a.o,b,d)}return f=BD(SKd((e=BD(vjd(a,16),26),!e?a.yh():e),c),66),f.Mj().Qj(a,tjd(a),c-XKd(a.yh()),b,d)} +function Ynd(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).hh(a,1,h5,c));!!b&&(c=BD(b,49).fh(a,1,h5,c));c=End(a,b,c);!!c&&c.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,4,b,b))} +function tqd(a,b){var c,d,e,f;if(b){e=Spd(b,'x');c=new urd(a);cmd(c.a,(tCb(e),e));f=Spd(b,'y');d=new vrd(a);dmd(d.a,(tCb(f),f))}else{throw ubb(new Zpd('All edge sections need an end point.'))}} +function rqd(a,b){var c,d,e,f;if(b){e=Spd(b,'x');c=new rrd(a);jmd(c.a,(tCb(e),e));f=Spd(b,'y');d=new srd(a);kmd(d.a,(tCb(f),f))}else{throw ubb(new Zpd('All edge sections need a start point.'))}} +function oyb(a,b){var c,d,e,f,g,h,i;for(d=ryb(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 ubb(new Vdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:m6c(a)/(m6c(b)*m6c(a-b))} +function efd(a,b){var c,d,e,f;c=new Wud(a);while(c.g==null&&!c.c?Pud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Qud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=bde[f&15]}return yfb(b,0,b.length)} +function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new nlb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Pkb(a,KC(CK,uie,42,a.c.length,0,1)),165);return new wx(c);}} +function HTb(a){var b,c,d,e,f,g;b=new ikb;c=new ikb;Vjb(b,a);Vjb(c,a);while(c.b!=c.c){e=BD(ekb(c),37);for(g=new nlb(e.a);g.a0&&SGc(a,c,b);return e}return PGc(a,b,c)} +function ISc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Osb;for(g=Isb(b,0);g.b!=g.d.c;){f=BD(Wsb(g),86);ye(d,QRc(f));e=f.e;e.a=BD(uNb(f,(iTc(),gTc)),19).a;e.b=BD(uNb(f,hTc),19).a}ISc(a,d,Pdd(c,d.b/a.a|0))}} +function FZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(HZc(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 bmc(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 M6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} +function gsd(a){if(JD(a,149)){return _rd(BD(a,149))}else if(JD(a,229)){return asd(BD(a,229))}else if(JD(a,23)){return bsd(BD(a,23))}else{throw ubb(new Vdb(Ste+Fe(new _lb(OC(GC(SI,1),Phe,1,5,[a])))))}} +function lhb(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 vMc(a,b,c,d){var e,f,g;if(b.k==(i0b(),f0b)){for(f=new Sr(ur(Q_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==f0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} +function mD(a,b){var c,d,e,f;b&=63;c=a.h&Aje;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 TC(d&zje,e&zje,f&Aje)} +function Hic(a,b,c,d){var e;this.b=d;this.e=a==(nGc(),lGc);e=b[c];this.d=IC(rbb,[iie,$ke],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[iie,jje],[48,25],15,[e.length,e.length],2);this.c=new ric(b,c)} +function kjc(a){var b,c,d;a.k=new Ki((Pcd(),OC(GC(E1,1),Yme,61,0,[Ncd,vcd,ucd,Mcd,Ocd])).length,a.j.c.length);for(d=new nlb(a.j);d.a=c){J9b(a,b,d.p);return true}}return false} +function Dod(a){var b;if((a.Db&64)!=0)return ald(a);b=new Vfb(_se);!a.a||Pfb(Pfb((b.a+=' "',b),a.a),'"');Pfb(Kfb(Pfb(Kfb(Pfb(Kfb(Pfb(Kfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function U2d(a,b,c){var d,e,f,g,h;h=N6d(a.e.Sg(),b);e=BD(a.g,119);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)',OC(GC(SI,1),Phe,1,5,[leb(b),leb(a)]))} +function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&dCc(a,f,c))}}b.p=0} +function l5c(a){var b;this.c=new Osb;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=BD(fdb(d1),9),new wqb(b,BD($Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} +function Wb(a){var b,c,d,e;b=Jfb(Pfb(new Vfb('Predicates.'),'and'),40);c=true;for(e=new uib(a);e.b0?h[g-1]:KC(OQ,fne,10,0,0,1);e=h[g];j=g=0?a.Ah(e):qid(a,d)}else{throw ubb(new Vdb(ete+d.ne()+fte))}}else{_hd(a,c,d)}} +function Xpd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw ubb(new ucb(Pte))}return c} +function JRd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c._j();if(JD(d,99)&&(BD(d,18).Bb&kte)!=0&&(!a.e||d.Fj()!=w2||d._i()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} +function LRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c._j();if(JD(d,99)&&(BD(d,18).Bb&kte)!=0&&(!a.e||d.Fj()!=w2||d._i()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} +function D2d(a,b,c){var d,e,f,g,h,i;i=N6d(a.e.Sg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}} +function PJc(a){var b,c,d,e;c=new Osb;ye(c,a.o);d=new swb;while(c.b!=0){b=BD(c.b==0?null:(rCb(c.b!=0),Msb(c,c.a.a)),508);e=GJc(a,b,true);e&&Dkb(d.a,b)}while(d.a.c.length!=0){b=BD(qwb(d),508);GJc(a,b,false)}} +function X5c(){X5c=bcb;W5c=new Y5c(jle,0);P5c=new Y5c('BOOLEAN',1);T5c=new Y5c('INT',2);V5c=new Y5c('STRING',3);Q5c=new Y5c('DOUBLE',4);R5c=new Y5c('ENUM',5);S5c=new Y5c('ENUMSET',6);U5c=new Y5c('OBJECT',7)} +function D6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null} +function qEb(a,b){var c,d;b.a?rEb(a,b):(c=BD(Dxb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Cxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Exb(a.b,b.b),undefined)} +function EJb(a,b){var c,d;c=BD(Lpb(a.b,b),123);if(BD(BD(Qc(a.r,b),21),84).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((odd(),ndd))&&JJb(a,b);d=IJb(a,b);JIb(a,b)==(Pbd(),Mbd)&&(d+=2*a.w);c.a.a=d} +function NKb(a,b){var c,d;c=BD(Lpb(a.b,b),123);if(BD(BD(Qc(a.r,b),21),84).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((odd(),ndd))&&RKb(a,b);d=QKb(a,b);JIb(a,b)==(Pbd(),Mbd)&&(d+=2*a.w);c.a.b=d} +function bOb(a,b){var c,d,e,f;f=new Qkb;for(d=new nlb(b);d.ac.a&&(d.Hc((e8c(),$7c))?(e=(b.a-c.a)/2):d.Hc(a8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((e8c(),c8c))?(f=(b.b-c.b)/2):d.Hc(b8c)&&(f=b.b-c.b));zfd(a,e,f)} +function Xnd(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&SMd(VKd(BD(a.Cb,88)),4);knd(a,c);a.f=g;$Id(a,h);aJd(a,i);UId(a,j);_Id(a,k);xId(a,l);XId(a,m);wId(a,true);vId(a,e);a.nk(f);tId(a,b);d!=null&&(a.i=null,WId(a,d))} +function KRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b._j();if(JD(c,99)&&(BD(c,18).Bb&kte)!=0&&(!a.e||c.Fj()!=w2||c._i()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} +function Jb(a,b,c){if(a<0){return hc(Ohe,OC(GC(SI,1),Phe,1,5,[c,leb(a)]))}else if(b<0){throw ubb(new Vdb(Qhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Phe,1,5,[c,leb(a),leb(b)]))}} +function Klb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Hlb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Klb(b,a,i,j,-e,f);Klb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.rh(f,c):pid(a,e,c)}else{throw ubb(new Vdb(ete+e.ne()+fte))}}else{$hd(a,d,e,c)}} +function l6d(b){var c,d,e,f;d=BD(b,49).ph();if(d){try{e=null;c=iUd((tFd(),sFd),GEd(HEd(d)));if(c){f=c.qh();!!f&&(e=f.Vk(sfb(d.e)))}if(!!e&&e!=b){return l6d(e)}}catch(a){a=tbb(a);if(!JD(a,60))throw ubb(a)}}return b} +function irb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=frb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new ojb(b,c));++a.c;ypb(a.b);return null} +function UUc(a,b){var c,d;D2c(a.a);G2c(a.a,(LUc(),JUc),JUc);G2c(a.a,KUc,KUc);d=new f3c;a3c(d,KUc,(pVc(),oVc));PD(ckd(b,(VWc(),HWc)))!==PD((lWc(),iWc))&&a3c(d,KUc,mVc);a3c(d,KUc,nVc);A2c(a.a,d);c=B2c(a.a,b);return c} +function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} +function QJb(a,b,c){var d,e,f;f=a.o;d=BD(Lpb(a.p,c),244);e=d.i;e.b=fIb(d);e.a=eIb(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;}gIb(d);hIb(d)} +function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Lpb(a.p,c),244);e=d.i;e.b=fIb(d);e.a=eIb(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;}gIb(d);hIb(d)} +function Igc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Hgc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Hcb(c,Mie,Jhe)}catch(a){a=tbb(a);if(JD(a,127)){e=a;throw ubb(new mFd(e))}else throw ubb(a)}}d=(!b.a&&(b.a=new u0d(b)),b.a);return f=0?BD(lud(d,f),56):null} +function Ib(a,b){if(a<0){return hc(Ohe,OC(GC(SI,1),Phe,1,5,['index',leb(a)]))}else if(b<0){throw ubb(new Vdb(Qhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Phe,1,5,['index',leb(a),leb(b)]))}} +function Rlb(a){var b,c,d,e,f;if(a==null){return She}f=new wwb(Nhe,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=U6c($6c(new b7c(h.a,h.b),g),1/(d+1));f=new b7c(g.a,g.b);for(c=new nlb(a.a);c.a0&&++k}}++j}return k} +function XNb(a,b,c){var d,e,f,g,h,i;i=Kje;for(f=new nlb(vOb(a.b));f.a=0?a.$g(c,true,true):nid(a,e,true),153));BD(d,215).nl(b)}else{throw ubb(new Vdb(ete+b.ne()+fte))}} +function tgb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return ugb(Bbb(a))} +function MOc(a){var b,c,d,e,f,g,h;f=new ysb;for(c=new nlb(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 J5b(a,b){var c,d,e;d=new a0b(a);sNb(d,b);xNb(d,(utc(),Esc),b);xNb(d,(Lyc(),Txc),(_bd(),Wbd));xNb(d,kwc,(B7c(),x7c));$_b(d,(i0b(),d0b));c=new G0b;E0b(c,d);F0b(c,(Pcd(),Ocd));e=new G0b;E0b(e,d);F0b(e,ucd);return d} +function Rpc(a){switch(a.g){case 0:return new aGc((nGc(),jGc));case 1:return new xFc;case 2:return new bHc;default:throw ubb(new Vdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} +function oDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Dkb(a.a,b);for(g=new nlb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} +function eIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=iIb(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=Ltb(Yzb(NAb(IAb(Olb(a.a),new wIb),new yIb)))}return h>0?h+a.n.d+a.n.a:0} +function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Ltb(Yzb(NAb(IAb(Olb(a.a),new sIb),new uIb)))}else{g=jIb(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 LJb(a,b){var c,d,e,f;f=BD(Lpb(a.b,b),123);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,YHb(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 MQb(a,b){var c,d,e;c=BD(uNb(b,(vSb(),nSb)),19).a-BD(uNb(a,nSb),19).a;if(c==0){d=$6c(N6c(BD(uNb(a,(GSb(),CSb)),8)),BD(uNb(a,DSb),8));e=$6c(N6c(BD(uNb(b,CSb),8)),BD(uNb(b,DSb),8));return Jdb(d.a*d.b,e.a*e.b)}return c} +function eRc(a,b){var c,d,e;c=BD(uNb(b,(FTc(),ATc)),19).a-BD(uNb(a,ATc),19).a;if(c==0){d=$6c(N6c(BD(uNb(a,(iTc(),RSc)),8)),BD(uNb(a,SSc),8));e=$6c(N6c(BD(uNb(b,RSc),8)),BD(uNb(b,SSc),8));return Jdb(d.a*d.b,e.a*e.b)}return c} +function SZb(a){var b,c;c=new Tfb;c.a+='e_';b=JZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Pfb((c.a+=' ',c),B0b(a.c));Pfb(Ofb((c.a+='[',c),a.c.i),']');Pfb((c.a+=bne,c),B0b(a.d));Pfb(Ofb((c.a+='[',c),a.d.i),']')}return c.a} +function vRc(a){switch(a.g){case 0:return new hUc;case 1:return new oUc;case 2:return new yUc;case 3:return new EUc;default:throw ubb(new Vdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} +function lqc(a){switch(a.g){case 0:return new $Bc;case 1:return new TBc;case 2:return new fCc;case 3:return new mCc;default:throw ubb(new Vdb('No implementation is available for the cycle breaker '+(a.f!=null?a.f:''+a.g)));}} +function hfd(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 hqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Tge(e);for(h=(d.b-d.a)*d.c<0?(Sge(),Rge):new nhe(d);h.Ob();){g=BD(h.Pb(),19);f=Upd(c,g.a);Gte in f.a||Hte in f.a?Vqd(a,f,b):_qd(a,f,b);jtd(BD(Nhb(a.b,Rpd(f)),79))}}} +function GJd(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=rId(a);if(!!b&&(L6d(),b.Bj()==wve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} +function f1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new ZTd(s5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a.$g(c,true,true):nid(a,e,true),153));return BD(d,215).kl(b)}else{throw ubb(new Vdb(ete+b.ne()+hte))}} +function wZd(){oZd();var a;if(nZd)return BD(iUd((tFd(),sFd),Xve),1938);mEd(CK,new E_d);xZd();a=BD(JD(Ohb((tFd(),sFd),Xve),547)?Ohb(sFd,Xve):new vZd,547);nZd=true;tZd(a);uZd(a);Qhb((EFd(),DFd),a,new zZd);Rhb(sFd,Xve,a);return a} +function q2d(a,b){var c,d,e,f;a.j=-1;if(jid(a.e)){c=a.i;f=a.i!=0;gud(a,b);d=new kSd(a.e,3,a.c,null,b,c,f);e=b.Pk(a.e,a.c,null);e=c3d(a,b,e);if(!e){Phd(a.e,d)}else{e.Di(d);e.Ei()}}else{gud(a,b);e=b.Pk(a.e,a.c,null);!!e&&e.Ei()}} +function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(ACb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(ACb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} +function uMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).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 qgd(leb(c),leb(d))} +function eNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw ubb(new pcb(gue+b+hue+a.i));if(c>=a.i)throw ubb(new pcb(iue+c+hue+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-Mje;b=d>>16&4;c+=b;a<<=b;d=a-jie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} +function ZPb(a){PPb();var b,c,d,e;OPb=new Qkb;NPb=new Kqb;MPb=new Qkb;b=(!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a);RPb(b);for(e=new Ayd(b);e.e!=e.i.gc();){d=BD(yyd(e),33);if(Ikb(OPb,d,0)==-1){c=new Qkb;Dkb(MPb,c);SPb(d,c)}}return MPb} +function AQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,351)){e=dtd(BD(b,79),false,false);f=jfd(e);d=new EQb(a);qeb(f,d);dfd(f,e);b.We((U9c(),M8c))!=null&&qeb(BD(b.We(M8c),74),d)}else{g=BD(b,470);g.Gg(g.Cg()+a.a.a);g.Hg(g.Dg()+a.a.b)}} +function $5b(a,b){var c,d,e,f,g,h,i,j;j=Ddb(ED(uNb(b,(Lyc(),xyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=Q6c($6c(new b7c(g.c+g.b/2,g.d+g.a/2),new b7c(f.c+f.b/2,f.d+f.a/2)));return -(wOb(f,g)-1)*h} +function pfd(a,b,c){var d;LAb(new XAb(null,(!c.a&&(c.a=new ZTd(z2,c,6,6)),new Jub(c.a,16))),new Hfd(a,b));LAb(new XAb(null,(!c.n&&(c.n=new ZTd(C2,c,1,7)),new Jub(c.n,16))),new Jfd(a,b));d=BD(ckd(c,(U9c(),M8c)),74);!!d&&l7c(d,a,b)} +function nid(a,b,c){var d,e,f;f=_0d((J6d(),H6d),a.Sg(),b);if(f){L6d();BD(f,66).Nj()||(f=W1d(l1d(H6d,f)));e=(d=a.Xg(f),BD(d>=0?a.$g(d,true,true):nid(a,f,true),153));return BD(e,215).gl(b,c)}else{throw ubb(new Vdb(ete+b.ne()+hte))}} +function rAd(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 ZOc(i.c,g);Ckb(a,d++,e)}h=j+c;if(h<=i.a){f=new ZOc(h,i.a);vCb(d,a.c.length);_Bb(a.c,d,f)}}} +function p0d(a){var b;if(!a.c&&a.g==null){a.d=a.ri(a.f);rtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.jm>=null.im()){Qud(a);return p0d(a)}else{return b.Ob()}} +function JTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Tdd(new Udd,0));Jdd(h,Qme,1);_Tb(a.c,b);g=DYb(a.a,b);if(g.gc()==1){LTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);LTb(d,Pdd(h,f))}}BYb(a.a,g,b);MTb(b);Ldd(h)} +function pYb(a){this.a=a;if(a.c.i.k==(i0b(),d0b)){this.c=a.c;this.d=BD(uNb(a.c.i,(utc(),Fsc)),61)}else if(a.d.i.k==d0b){this.c=a.d;this.d=BD(uNb(a.d.i,(utc(),Fsc)),61)}else{throw ubb(new Vdb('Edge '+a+' is not an external edge.'))}} +function jQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,3,e,a.b));if(!b){knd(a,null);lQd(a,0);kQd(a,null)}else if(b!=a){knd(a,b.zb);lQd(a,b.d);c=(d=b.c,d==null?b.zb:d);kQd(a,c==null||cfb(c,b.zb)?null:c)}} +function IRd(a){var b,c;if(a.f){while(a.n=g)throw ubb(new xyd(b,g));e=c[b];if(g==1){d=null}else{d=KC(Z3,cve,416,g-1,0,1);Zfb(c,0,d,0,b);f=g-b-1;f>0&&Zfb(c,b+1,d,b,f)}Y_d(a,d);X_d(a,b,e);return e} +function h8d(){h8d=bcb;f8d=BD(lud(UKd((m8d(),l8d).qb),6),34);c8d=BD(lud(UKd(l8d.qb),3),34);d8d=BD(lud(UKd(l8d.qb),4),34);e8d=BD(lud(UKd(l8d.qb),5),18);SId(f8d);SId(c8d);SId(d8d);SId(e8d);g8d=new _lb(OC(GC(s5,1),Ive,170,0,[f8d,c8d]))} +function zJb(a,b){var c;this.d=new G_b;this.b=b;this.e=new c7c(b.qf());c=a.u.Hc((mcd(),jcd));a.u.Hc(icd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(kcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} +function HKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((U9c(),o9c))?d.Hf()==(Pcd(),Ocd)?-d.rf().a-Ddb(ED(d.We(o9c))):c+Ddb(ED(d.We(o9c))):d.Hf()==(Pcd(),Ocd)?-d.rf().a:c)}} +function P1b(a,b){var c,d,e,f;c=BD(uNb(a,(Lyc(),Jwc)),103);f=BD(ckd(b,Yxc),61);e=BD(uNb(a,Txc),98);if(e!=(_bd(),Zbd)&&e!=$bd){if(f==(Pcd(),Ncd)){f=gfd(b,c);f==Ncd&&(f=Ucd(c))}}else{d=L1b(b);d>0?(f=Ucd(c)):(f=Rcd(Ucd(c)))}ekd(b,Yxc,f)} +function nlc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Nkb(g,new Tlc);e=g.c.length/2|0;for(d=0;d0&&SGc(a,c,b);return f}else if(d.a!=null){SGc(a,b,c);return -1}else if(e.a!=null){SGc(a,c,b);return 1}return 0} +function nwd(a,b){var c,d,e,f;if(a.dj()){c=a.Ui();f=a.ej();++a.j;a.Gi(c,a.ni(c,b));d=a.Yi(3,null,b,c,f);if(a.aj()){e=a.bj(b,null);if(!e){a.Zi(d)}else{e.Di(d);e.Ei()}}else{a.Zi(d)}}else{wvd(a,b);if(a.aj()){e=a.bj(b,null);!!e&&e.Ei()}}} +function y2d(a,b){var c,d,e,f,g;g=N6d(a.e.Sg(),b);e=new tud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.ql(d._j())&&rtd(e,d)}!Txd(a,e)&&jid(a.e)&&BLd(a,b.Zj()?C2d(a,6,b,(lmb(),imb),null,-1,false):C2d(a,b.Jj()?2:1,b,null,null,-1,false))} +function Chb(){Chb=bcb;var a,b;Ahb=KC(cJ,iie,91,32,0,1);Bhb=KC(cJ,iie,91,32,0,1);a=1;for(b=0;b<=18;b++){Ahb[b]=fhb(a);Bhb[b]=fhb(Mbb(a,b));a=Hbb(a,5)}for(;bg){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 vcc(a,b){var c;Jdd(b,'Partition preprocessing',1);c=BD(FAb(IAb(KAb(IAb(new XAb(null,new Jub(a.a,16)),new zcc),new Bcc),new Dcc),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Cyb)]))),15);LAb(c.Oc(),new Fcc);Ldd(b)} +function zMc(a){sMc();var b,c,d,e,f,g,h;c=new Zrb;for(e=new nlb(a.e.b);e.a1?(a.e*=Ddb(a.a)):(a.f/=Ddb(a.a));COb(a);DOb(a);zOb(a);xNb(a.b,(BPb(),tPb),a.g)} +function X5b(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 nlb(a);f.a=0){if(!b){b=new Hfb;d>0&&Dfb(b,a.substr(0,d))}b.a+='\\';zfb(b,c&Xie)}else !!b&&zfb(b,c&Xie)}return b?b.a:a} +function h5c(a){var b;if(!a.a){throw ubb(new Ydb('IDataType class expected for layout option '+a.f))}b=bvd(a.a);if(b==null){throw ubb(new Ydb("Couldn't create new instance of property '"+a.f+"'. "+ese+(edb(X3),X3.k)+fse))}return BD(b,415)} +function Xhd(a){var b,c,d,e,f;f=a.dh();if(f){if(f.jh()){e=sid(a,f);if(e!=f){c=a.Ug();d=(b=a.Ug(),b>=0?a.Pg(null):a.dh().hh(a,-1-b,null,null));a.Qg(BD(e,49),c);!!d&&d.Ei();a.Kg()&&a.Lg()&&c>-1&&Phd(a,new iSd(a,9,c,f,e));return e}}}return f} +function mTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Lgb(a);if(e>16)),15).Xc(f);if(h0){!(bad(a.a.c)&&b.n.d)&&!(cad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(bad(a.a.c)&&b.n.a)&&!(cad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} +function M3b(a){var b,c,d,e,f;e=new Qkb;f=N3b(a,e);b=BD(uNb(a,(utc(),etc)),10);if(b){for(d=new nlb(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?Aje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Aje:0;f=d?zje:0;e=c>>b-44}return TC(e&zje,f&zje,g&Aje)} +function WOb(a){var b,c,d,e,f,g;this.c=new Qkb;this.d=a;d=Kje;e=Kje;b=Lje;c=Lje;for(g=Isb(a,0);g.b!=g.d.c;){f=BD(Wsb(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 F6c(d,e,b-d,c-e)} +function Cac(a,b){var c,d,e,f,g,h;for(f=new nlb(a.b);f.a0&&JD(b,42)){a.a.pj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=yAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,366);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(tCb(b),b)-(tCb(f),f))}}return d} +function cUc(a,b){var c,d,e,f,g;d=new Osb;Fsb(d,b,d.c.b,d.c);do{c=(rCb(d.b!=0),BD(Msb(d,d.a.a),86));a.b[c.g]=1;for(f=Isb(c.d,0);f.b!=f.d.c;){e=BD(Wsb(f),188);g=e.c;a.b[g.g]==1?Csb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Fsb(d,g,d.c.b,d.c)}}while(d.b!=0)} +function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new nlb(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 qgd(leb(b),leb(c))} +function LIc(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==(QIc(),PIc)&&b.d==OIc){return -1}else if(a.d==OIc&&b.d==PIc){return 1}return 0} +function YMc(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=JLc(a.a,g,d);if(e>0&&e<$le){c=KLc(a.a,d.i,e,a.c);PLc(a.a,d.i,-c);return c>0}else if(e<0&&-e<$le){c=LLc(a.a,d.i,-e,a.c);PLc(a.a,d.i,c);return c>0}return false} +function NZc(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 nlb(a.c);l.a>24}return g} +function udb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=xdb('.',[c,xdb('$',d)]);a.b=xdb('.',[c,xdb('.',d)]);a.k=d[d.length-1]} +function pGb(a,b){var c,d,e,f,g;g=null;for(f=new nlb(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 TUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?JUb:IUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} +function zid(a){var b,c;c=new Vfb(gdb(a.fm));c.a+='@';Pfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.jh()){c.a+=' (eProxyURI: ';Ofb(c,a.ph());if(a.Zg()){c.a+=' eClass: ';Ofb(c,a.Zg())}c.a+=')'}else if(a.Zg()){c.a+=' (eClass: ';Ofb(c,a.Zg());c.a+=')'}return c.a} +function SDb(a){var b,c,d,e;if(a.e){throw ubb(new Ydb((edb(TM),Eke+TM.k+Fke)))}a.d==(aad(),$9c)&&RDb(a,Y9c);for(c=new nlb(a.a.a);c.a>24}return c} +function kKb(a,b,c){var d,e,f;e=BD(Lpb(a.i,b),306);if(!e){e=new aIb(a.d,b,c);Mpb(a.i,b,e);if(rJb(b)){BHb(a.a,b.c,b.b,e)}else{f=qJb(b);d=BD(Lpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;kIb(d,b.b,e);break;case 4:case 2:e.k=true;kIb(d,b.c,e);}}}return e} +function m3d(a,b,c,d){var e,f,g,h,i,j;h=new tud;i=N6d(a.e.Sg(),b);e=BD(a.g,119);L6d();if(BD(b,66).Nj()){for(g=0;g=0){return e}else{f=1;for(h=new nlb(b.j);h.a0&&b.ue((sCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Mkb(a,e,(sCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}sCb(e,a.c.length);a.c[e]=f}c.a=new Kqb;c.b=new Kqb} +function j5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new wqb(d,BD($Bb(d,d.length),9),0));i=lfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g0){!(bad(a.a.c)&&b.n.d)&&!(cad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(bad(a.a.c)&&b.n.a)&&!(cad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} +function Gac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Pcd(),vcd)||b==ucd){wac(BD(akb(a),15),(nbd(),jbd));wac(BD(akb(a),15),kbd)}else{wac(BD(akb(a),15),(nbd(),kbd));wac(BD(akb(a),15),jbd)}}else{for(e=new wkb(a);e.a!=e.b;){d=BD(ukb(e),15);wac(d,c)}}} +function ctd(a,b){var c,d,e,f,g,h,i;e=Nu(new ltd(a));h=new Aib(e,e.c.length);f=Nu(new ltd(b));i=new Aib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(rCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(rCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} +function Bub(a,b){var c,d,e,f,g,h;f=a.a*fke+a.b*1502;h=a.b*fke+11;c=$wnd.Math.floor(h*gke);f+=c;h-=c*hke;f%=hke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*vub[b])}else{e=a.a*(1<=2147483648&&(d-=Uje);return d}} +function Yic(a,b,c){var d,e,f,g;if(ajc(a,b)>ajc(a,c)){d=U_b(c,(Pcd(),ucd));a.d=d.dc()?0:A0b(BD(d.Xb(0),11));g=U_b(b,Ocd);a.b=g.dc()?0:A0b(BD(g.Xb(0),11))}else{e=U_b(c,(Pcd(),Ocd));a.d=e.dc()?0:A0b(BD(e.Xb(0),11));f=U_b(b,ucd);a.b=f.dc()?0:A0b(BD(f.Xb(0),11))}} +function g6d(a){var b,c,d,e,f,g,h;if(a){b=a.Gh(Xve);if(b){g=GD(vAd((!b.b&&(b.b=new nId((eGd(),aGd),w6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Qkb;for(d=lfb(g,'\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=JOc(a,b,f,h);i=WOc((sCb(d,b.c.length),BD(b.c[d],329)));UOc(b,d,c)}return i} +function hZc(){hZc=bcb;NYc=new Jsd((U9c(),n8c),1.3);RYc=E8c;cZc=new p0b(15);bZc=new Jsd(b9c,cZc);fZc=new Jsd(P9c,15);OYc=s8c;XYc=U8c;YYc=X8c;ZYc=Z8c;WYc=S8c;$Yc=a9c;dZc=t9c;aZc=(KYc(),GYc);VYc=EYc;_Yc=FYc;eZc=IYc;SYc=DYc;TYc=K8c;UYc=L8c;QYc=CYc;PYc=BYc;gZc=JYc} +function wnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new MHd,f);KHd(g,(tCb(b),b));j=(!g.b&&(g.b=new nId((eGd(),aGd),w6,g)),g.b);for(i=1;i0&&IPb(this,e)}} +function HQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new jRb);Dkb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),281);if(h.d==c||h.c==c){continue}h.c!=b&&HQb(a,h.c,b,g,e,f);h.d!=b&&HQb(a,h.d,b,g,e,f);Dkb(g.c,h);Fkb(g.d,h.b)}return g}return null} +function d4b(a){var b,c,d,e,f,g,h;b=0;for(e=new nlb(a.e);e.a=2} +function fec(a,b){var c,d,e,f;Jdd(b,'Self-Loop pre-processing',1);for(d=new nlb(a.a);d.a1){return false}b=pqb(vbd,OC(GC(A1,1),Fie,93,0,[ubd,xbd]));if(Ox(Cx(b,a))>1){return false}d=pqb(Cbd,OC(GC(A1,1),Fie,93,0,[Bbd,Abd]));if(Ox(Cx(d,a))>1){return false}return true} +function P0d(a,b){var c,d,e;c=b.Gh(a.a);if(c){e=GD(vAd((!c.b&&(c.b=new nId((eGd(),aGd),w6,c)),c.b),'affiliation'));if(e!=null){d=jfb(e,vfb(35));return d==-1?g1d(a,p1d(a,YJd(b.Gj())),e):d==0?g1d(a,null,e.substr(1)):g1d(a,e.substr(0,d),e.substr(d+1))}}return null} +function ic(b){var c,d,e;try{return b==null?She:ecb(b)}catch(a){a=tbb(a);if(JD(a,102)){c=a;e=gdb(rb(b))+'@'+(d=(Yfb(),jCb(b))>>>0,d.toString(16));syb(wyb(),(Zxb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+gdb(c.fm)+'>'}else throw ubb(a)}} +function kzc(a){switch(a.g){case 0:return new sDc;case 1:return new UCc;case 2:return new yCc;case 3:return new LCc;case 4:return new GDc;case 5:return new dDc;default:throw ubb(new Vdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} +function wQc(a,b,c){var d,e,f;for(f=new nlb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Csb(b,d.b)}}for(e=new nlb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Csb(c,d.a)}}} +function Qud(a){var b,c,d,e,f;if(a.g==null){a.d=a.ri(a.f);rtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.ri(e);if(c.Ob()){a.d=c;rtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} +function m2d(a,b){var c,d,e,f,g,h;d=b;e=d._j();if(O6d(a.e,e)){if(e.gi()&&z2d(a,e,d.dd())){return false}}else{h=N6d(a.e.Sg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} +function VQb(a,b,c){var d,e,f,g,h;Jdd(c,'ELK Force',1);Bcb(DD(ckd(b,(vSb(),iSb))))||ZCb((d=new $Cb((Kgd(),new Ygd(b))),d));h=SQb(b);WQb(h);XQb(a,BD(uNb(h,eSb),425));g=KQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);sRb(a.b,e,Pdd(c,1/g.gc()))}h=JQb(g);RQb(h);Ldd(c)} +function xoc(a,b){var c,d,e,f,g;Jdd(b,'Breaking Point Processor',1);woc(a);if(Bcb(DD(uNb(a,(Lyc(),Hyc))))){for(e=new nlb(a.b);e.a=0?a.$g(d,true,true):nid(a,f,true),153));BD(e,215).ll(b,c)}else{throw ubb(new Vdb(ete+b.ne()+fte))}} +function NOc(a,b){var c,d,e,f,g;c=new Qkb;e=KAb(new XAb(null,new Jub(a,16)),new ePc);f=KAb(new XAb(null,new Jub(a,16)),new gPc);g=_zb($zb(NAb(ty(OC(GC(xM,1),Phe,832,0,[e,f])),new iPc)));for(d=1;d=2*b&&Dkb(c,new ZOc(g[d-1]+b,g[d]-b))}return c} +function wXc(a,b,c){Jdd(c,'Eades radial',1);c.n&&!!b&&Odd(c,d6d(b),(kgd(),hgd));a.d=BD(ckd(b,(IUc(),HUc)),33);a.c=Ddb(ED(ckd(b,(VWc(),RWc))));a.e=pXc(BD(ckd(b,SWc),293));a.a=cWc(BD(ckd(b,UWc),427));a.b=fXc(BD(ckd(b,NWc),339));xXc(a);c.n&&!!b&&Odd(c,d6d(b),(kgd(),hgd))} +function Aqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Tge(f);for(h=(d.b-d.a)*d.c<0?(Sge(),Rge):new nhe(d);h.Ob();){g=BD(h.Pb(),19);e=Upd(c,g.a);!!e&&(i=null,j=Pqd(a,(k=(Ahd(),l=new kpd,l),!!b&&ipd(k,b),k),e),Gkd(j,Wpd(e,Qte)),brd(e,j),crd(e,j),Zqd(a,e,j))}}} +function PKd(a){var b,c,d,e,f,g;if(!a.j){g=new CPd;b=FKd;f=b.a.zc(a,b);if(f==null){for(d=new Ayd(WKd(a));d.e!=d.i.gc();){c=BD(yyd(d),26);e=PKd(c);ttd(g,e);rtd(g,c)}b.a.Bc(a)!=null}qud(g);a.j=new iNd((BD(lud(UKd((IFd(),HFd).o),11),18),g.i),g.g);VKd(a).b&=-33}return a.j} +function J9d(a){var b,c,d,e;if(a==null){return null}else{d=Lge(a,true);e=Jwe.length;if(cfb(d.substr(d.length-e,e),Jwe)){c=d.length;if(c==4){b=(ACb(0,d.length),d.charCodeAt(0));if(b==43){return u9d}else if(b==45){return t9d}}else if(c==3){return u9d}}return new Ndb(d)}} +function _C(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 heb(c)}if(b==0&&d!=0&&c==0){return heb(d)+22}if(b!=0&&d==0&&c==0){return heb(b)+44}return -1} +function pbc(a,b){var c,d,e,f,g;Jdd(b,'Edge joining',1);c=Bcb(DD(uNb(a,(Lyc(),zyc))));for(e=new nlb(a.b);e.a1){for(e=new nlb(a.a);e.a0);f.a.Xb(f.c=--f.b);zib(f,e);rCb(f.b3&&EA(a,0,b-3)}} +function bUb(a){var b,c,d,e;if(PD(uNb(a,(Lyc(),$wc)))===PD((dbd(),abd))){return !a.e&&PD(uNb(a,Awc))!==PD((Vrc(),Src))}d=BD(uNb(a,Bwc),292);e=Bcb(DD(uNb(a,Fwc)))||PD(uNb(a,Gwc))===PD((Qpc(),Npc));b=BD(uNb(a,zwc),19).a;c=a.a.c.length;return !e&&d!=(Vrc(),Src)&&(b==0||b>c)} +function kkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+lmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Zld(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=fid(b,a,6,d));d=Yld(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,6,b,b))} +function Mld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+Nld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Gld(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=fid(b,a,12,d));d=Fld(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,3,b,b))} +function ipd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+jpd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?gpd(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=fid(b,a,9,d));d=fpd(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,9,b,b))} +function QId(b){var c,d,e,f,g;e=rId(b);g=b.j;if(g==null&&!!e){return b.Zj()?null:e.yj()}else if(JD(e,148)){d=e.zj();if(d){f=d.Mh();if(f!=b.i){c=BD(e,148);if(c.Dj()){try{b.g=f.Jh(c,g)}catch(a){a=tbb(a);if(JD(a,78)){b.g=null}else throw ubb(a)}}b.i=f}}return b.g}return null} +function vOb(a){var b;b=new Qkb;Dkb(b,new _Cb(new b7c(a.c,a.d),new b7c(a.c+a.b,a.d)));Dkb(b,new _Cb(new b7c(a.c,a.d),new b7c(a.c,a.d+a.a)));Dkb(b,new _Cb(new b7c(a.c+a.b,a.d+a.a),new b7c(a.c+a.b,a.d)));Dkb(b,new _Cb(new b7c(a.c+a.b,a.d+a.a),new b7c(a.c,a.d+a.a)));return b} +function EJc(a,b,c,d){var e,f,g;g=KZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(N_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!NZb(e)&&!(!NZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return EJc(a,e,g,d)}return d} +function uQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Nhb(a.b,e),266);!d&&(Sod(etd(e))==Sod(gtd(e))?tQb(a,e,c):etd(e)==Sod(gtd(e))?Nhb(a.c,e)==null&&Nhb(a.b,gtd(e))!=null&&wQb(a,e,c,false):Nhb(a.d,e)==null&&Nhb(a.b,etd(e))!=null&&wQb(a,e,c,true))}} +function icc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new G0b;E0b(h,d);F0b(h,(Pcd(),ucd));xNb(h,(utc(),dtc),(Acb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new G0b;E0b(i,f);F0b(i,Ocd);xNb(i,dtc,true);c=new TZb;xNb(c,dtc,true);PZb(c,h);QZb(c,i)}}} +function inc(a,b,c,d){var e,f,g,h;e=gnc(a,b,c);f=gnc(a,c,b);g=BD(Nhb(a.c,b),112);h=BD(Nhb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f} +function g$c(){g$c=bcb;c$c=new h$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);b$c=new h$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);e$c=new h$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);d$c=new h$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);f$c=new h$c('WHOLE_DRAWING',4)} +function Sqd(a,b){if(JD(b,239)){return dqd(a,BD(b,33))}else if(JD(b,186)){return eqd(a,BD(b,118))}else if(JD(b,353)){return cqd(a,BD(b,137))}else if(JD(b,351)){return bqd(a,BD(b,79))}else if(b){return null}else{throw ubb(new Vdb(Ste+Fe(new _lb(OC(GC(SI,1),Phe,1,5,[b])))))}} +function _hc(a){var b,c,d,e,f,g,h;f=new Osb;for(e=new nlb(a.d.a);e.a1){b=mGb((c=new oGb,++a.b,c),a.d);for(h=Isb(f,0);h.b!=h.d.c;){g=BD(Wsb(h),121);zFb(CFb(BFb(DFb(AFb(new EFb,1),0),b),g))}}} +function Vod(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+Wod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Pod(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=fid(b,a,10,d));d=Ood(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,11,b,b))} +function tZb(a){var b,c,d,e;for(d=new mib((new dib(a.b)).a);d.b;){c=kib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);xNb(b,(utc(),Ysc),e);xNb(e,etc,b);xNb(e,Lsc,(Acb(),true));F0b(e,BD(uNb(b,Fsc),61));uNb(b,Fsc);xNb(e.i,(Lyc(),Txc),(_bd(),Ybd));BD(uNb(P_b(e.i),Isc),21).Fc((Mrc(),Irc))}} +function F4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new nlb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(x4,eve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Dje){d=QD(a/Dje);a-=d*Dje}c=0;if(a>=Cje){c=QD(a/Cje);a-=c*Cje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} +function qKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((mcd(),icd));f=0;for(e=new nlb(a.e.Cf());e.a=-b&&d==b){return new qgd(leb(c-1),leb(d))}return new qgd(leb(c),leb(d-1))} +function V8b(){R8b();return OC(GC(AS,1),Fie,77,0,[X7b,U7b,Y7b,m8b,F8b,q8b,L8b,v8b,D8b,h8b,z8b,u8b,E8b,d8b,N8b,O7b,y8b,H8b,n8b,G8b,P8b,B8b,P7b,C8b,Q8b,J8b,O8b,o8b,a8b,p8b,l8b,M8b,S7b,$7b,s8b,R7b,t8b,j8b,e8b,w8b,g8b,V7b,T7b,k8b,f8b,x8b,K8b,Q7b,A8b,i8b,r8b,b8b,_7b,I8b,Z7b,c8b,W7b])} +function Xic(a,b,c){a.d=0;a.b=0;b.k==(i0b(),h0b)&&c.k==h0b&&BD(uNb(b,(utc(),Ysc)),10)==BD(uNb(c,Ysc),10)&&(_ic(b).j==(Pcd(),vcd)?Yic(a,b,c):Yic(a,c,b));b.k==h0b&&c.k==f0b?_ic(b).j==(Pcd(),vcd)?(a.d=1):(a.b=1):c.k==h0b&&b.k==f0b&&(_ic(c).j==(Pcd(),vcd)?(a.b=1):(a.d=1));bjc(a,b,c)} +function _rd(a){var b,c,d,e,f,g,h,i,j,k,l;l=csd(a);b=a.a;i=b!=null;i&&Ppd(l,'category',a.a);e=Ahe(new Oib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new hsd(j);qeb(new Oib(a.d),c)}f=Ahe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new jsd(k);qeb(a.g,d)}return l} +function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+Dod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?zod(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=BD(b,49).fh(a,1,B2,d));d=yod(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,7,b,b))} +function IHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+LHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?FHd(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=BD(b,49).fh(a,0,j5,d));d=EHd(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,3,b,b))} +function Dhb(a,b){Chb();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 Hhb(a,b)}g=(a.d&-2)<<4;j=Qgb(a,g);k=Qgb(b,g);d=xhb(a,Pgb(j,g));e=xhb(b,Pgb(k,g));i=Dhb(j,k);c=Dhb(d,e);f=Dhb(xhb(j,d),xhb(e,k));f=shb(shb(f,i),c);f=Pgb(f,g);i=Pgb(i,g<<1);return shb(shb(i,f),c)} +function XFc(a,b,c){var d,e,f,g,h;g=yHc(a,c);h=KC(OQ,fne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Bcb(DD(uNb(e,(utc(),Lsc))))&&(h[d++]=BD(uNb(e,etc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Bcb(DD(uNb(b.j,(utc(),Hsc))))&&!Bcb(DD(uNb(b.j,(utc(),ktc)))));g=g|b.q.$f(i,f,c);g=g|ZFc(a,i[f],c,d)}Pqb(a.c,b);return g} +function n3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=l_b(a.j),l=0,m=k.length;l1&&(a.a=true);YNb(BD(c.b,65),L6c(N6c(BD(b.b,65).c),U6c($6c(N6c(BD(c.b,65).a),BD(b.b,65).a),e)));z1c(a,b);B1c(a,c)}} +function qVb(a){var b,c,d,e,f,g,h;for(f=new nlb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}lmb();Nkb(a.j,new ecc)} +function Uec(a){var b,c;c=null;b=BD(Hkb(a.g,0),17);do{c=b.d.i;if(vNb(c,(utc(),Usc))){return BD(uNb(c,Usc),11).i}if(c.k!=(i0b(),g0b)&&Qr(new Sr(ur(T_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(T_b(c).a.Kc(),new Sq))),17)}else if(c.k!=g0b){return null}}while(!!c&&c.k!=(i0b(),g0b));return c} +function Nmc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Hkb(h,h.c.length-1),113);k=(sCb(0,h.c.length),BD(h.c[0],113));j=Jmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} +function rEb(a,b){var c,d;d=zxb(a.b,b.b);if(!d){throw ubb(new Ydb('Invalid hitboxes for scanline constraint calculation.'))}(lEb(b.b,BD(Bxb(a.b,b.b),57))||lEb(b.b,BD(Axb(a.b,b.b),57)))&&(Yfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Dxb(a.b,b.b),57);c=BD(Cxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} +function zFb(a){if(!a.a.d||!a.a.e){throw ubb(new Ydb((edb(fN),fN.k+' must have a source and target '+(edb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw ubb(new Ydb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}MFb(a.a.d.g,a.a);MFb(a.a.e.b,a.a);return a.a} +function DHc(a,b,c){var d,e,f,g,h,i,j;j=new Gxb(new pIc(a));for(g=OC(GC(aR,1),gne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n} +function dUc(a,b){var c,d,e,f,g;g=BD(uNb(b,(FTc(),BTc)),426);for(f=Isb(b.b,0);f.b!=f.d.c;){e=BD(Wsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:eUc(a,e);break;case 1:cUc(a,e);}a.b[e.g]=2}}for(d=Isb(a.a,0);d.b!=d.d.c;){c=BD(Wsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}xNb(b,(iTc(),cTc),a.a)} +function N6d(a,b){L6d();var c,d,e,f;if(!b){return K6d}else if(b==(L8d(),I8d)||(b==q8d||b==o8d||b==p8d)&&a!=n8d){return new U6d(a,b)}else{d=BD(b,677);c=d.ok();if(!c){X1d(l1d((J6d(),H6d),b));c=d.ok()}f=(!c.i&&(c.i=new Kqb),c.i);e=BD(Wd(hrb(f.f,a)),1941);!e&&Qhb(f,a,e=new U6d(a,b));return e}} +function Sbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(uNb(a,(utc(),Ysc)),11);j=h7c(OC(GC(l1,1),iie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=j_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().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(ocd(a.u)){d=nfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} +function Dec(a,b){var c,d,e,f;Jdd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new nlb(a.b);e.a=0){if(b==c){return new qgd(leb(-b-1),leb(-b-1))}if(b==-c){return new qgd(leb(-b),leb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new qgd(leb(-b),leb(c))}return new qgd(leb(-b),leb(c+1))}return new qgd(leb(b+1),leb(c))} +function p5b(a){var b,c;c=BD(uNb(a,(Lyc(),kxc)),163);b=BD(uNb(a,(utc(),Msc)),303);if(c==(Atc(),wtc)){xNb(a,kxc,ztc);xNb(a,Msc,(csc(),bsc))}else if(c==ytc){xNb(a,kxc,ztc);xNb(a,Msc,(csc(),_rc))}else if(b==(csc(),bsc)){xNb(a,kxc,wtc);xNb(a,Msc,asc)}else if(b==_rc){xNb(a,kxc,ytc);xNb(a,Msc,asc)}} +function BNc(){BNc=bcb;zNc=new NNc;vNc=a3c(new f3c,(pUb(),mUb),(R8b(),n8b));yNc=$2c(a3c(new f3c,mUb,B8b),oUb,A8b);ANc=Z2c(Z2c(c3c($2c(a3c(new f3c,kUb,L8b),oUb,K8b),nUb),J8b),M8b);wNc=$2c(a3c(a3c(a3c(new f3c,lUb,q8b),nUb,s8b),nUb,t8b),oUb,r8b);xNc=$2c(a3c(a3c(new f3c,nUb,t8b),nUb,$7b),oUb,Z7b)} +function dQc(){dQc=bcb;$Pc=a3c($2c(new f3c,(pUb(),oUb),(R8b(),b8b)),mUb,n8b);cQc=Z2c(Z2c(c3c($2c(a3c(new f3c,kUb,L8b),oUb,K8b),nUb),J8b),M8b);_Pc=$2c(a3c(a3c(a3c(new f3c,lUb,q8b),nUb,s8b),nUb,t8b),oUb,r8b);bQc=a3c(a3c(new f3c,mUb,B8b),oUb,A8b);aQc=$2c(a3c(a3c(new f3c,nUb,t8b),nUb,$7b),oUb,Z7b)} +function CNc(a,b,c,d,e){var f,g;if((!NZb(b)&&b.c.i.c==b.d.i.c||!P6c(h7c(OC(GC(l1,1),iie,8,0,[e.i.n,e.n,e.a])),c))&&!NZb(b)){b.c==e?St(b.a,0,new c7c(c)):Csb(b.a,new c7c(c));if(d&&!Qqb(a.a,c)){g=BD(uNb(b,(Lyc(),hxc)),74);if(!g){g=new o7c;xNb(b,hxc,g)}f=new c7c(c);Fsb(g,f,g.c.b,g.c);Pqb(a.a,f)}}} +function Pac(a){var b,c;for(c=new Sr(ur(Q_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(i0b(),e0b)){throw ubb(new u2c(Ane+O_b(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 qjd(a,b,c){var d,e,f,g,h,i,j;e=_db(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Phe,1,2,5,1);f=ujd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Phe,1,e+1,5,1);g=CD(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 DNb(a,b,c){var d,e,f,g;this.b=new Qkb;e=0;d=0;for(g=new nlb(a);g.a0){f=BD(Hkb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new oNb(e,d)} +function Hgc(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=BD(Nhb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Nhb(a.f,c.C),57);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==(Pcd(),ucd)?e?U_b(h,d):Su(U_b(h,d)):e?Su(U_b(h,d)):U_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Fkb(c,i)}} +function YPc(a,b,c){var d,e,f,g,h,i,j,k;f=Ddb(ED(a.b.Kc().Pb()));j=Ddb(ED(Pq(b.b)));d=U6c(N6c(a.a),j-c);e=U6c(N6c(b.a),c-f);k=L6c(d,e);U6c(k,1/(j-f));this.a=k;this.b=new Qkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Ddb(ED(g.Pb()));if(h&&i-c>Kqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} +function uGb(a){var b,c,d,e;xGb(a,a.n);if(a.d.c.length>0){Alb(a.c);while(FGb(a,BD(llb(new nlb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Ggb(),Agb):(Ggb(),Fgb)}f=a.d-d;e=KC(WD,jje,25,f+1,15,1);lhb(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=_0d((J6d(),H6d),e,b);if(!c){return true}else{d=c.Yj();return (d>1||d==-1)&&V1d(l1d(H6d,c))!=3}}}}else{return false}} +function Q1b(a,b,c,d){var e,f,g,h,i;h=Xsd(BD(lud((!b.b&&(b.b=new t5d(y2,b,4,7)),b.b),0),82));i=Xsd(BD(lud((!b.c&&(b.c=new t5d(y2,b,5,8)),b.c),0),82));if(Sod(h)==Sod(i)){return null}if(itd(i,h)){return null}g=Hld(b);if(g==c){return d}else{f=BD(Nhb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} +function Bac(a,b){var c;c=BD(uNb(a,(Lyc(),Pwc)),275);Jdd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Cac(a,(nbd(),jbd));break;case 1:Cac(a,(nbd(),kbd));break;case 2:Aac(a,(nbd(),jbd));break;case 3:Aac(a,(nbd(),kbd));break;case 4:Dac(a,(nbd(),jbd));break;case 5:Dac(a,(nbd(),kbd));}Ldd(b)} +function YFc(a,b,c){var d,e,f,g,h,i;d=MFc(c,a.length);g=a[d];if(g[0].k!=(i0b(),d0b)){return}f=NFc(c,g.length);i=b.j;for(e=0;e0){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);uHb(a,dHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==dHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} +function zYb(){this.c=KC(UD,Qje,25,(Pcd(),OC(GC(E1,1),Yme,61,0,[Ncd,vcd,ucd,Mcd,Ocd])).length,15,1);this.b=KC(UD,Qje,25,OC(GC(E1,1),Yme,61,0,[Ncd,vcd,ucd,Mcd,Ocd]).length,15,1);this.a=KC(UD,Qje,25,OC(GC(E1,1),Yme,61,0,[Ncd,vcd,ucd,Mcd,Ocd]).length,15,1);ylb(this.c,Kje);ylb(this.b,Lje);ylb(this.a,Lje)} +function Pfe(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=KC(WD,jje,25,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=KC(WD,jje,25,d+2,15,1);Zfb(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||Tfe(a)}} +function hnc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Rkb(j.c.length);a.c=new Kqb;for(h=new nlb(j);h.a=0?a.$g(j,false,true):nid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Sxd(e,e.i-1)}}return d}} +function Y2b(a,b){var c,d,e,f,g,h,i;Jdd(b,'Comment post-processing',1);for(f=new nlb(a.b);f.aa.d[g.p]){c+=vHc(a.b,f);Vjb(a.a,leb(f))}}while(!_jb(a.a)){tHc(a.b,BD(ekb(a.a),19).a)}}return c} +function k2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a).i;for(e=new Ayd((!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(yyd(e),33);(!d.a&&(d.a=new ZTd(D2,d,10,11)),d.a).i==0||(f+=k2c(a,d,false))}if(c){g=Sod(b);while(g){f+=(!g.a&&(g.a=new ZTd(D2,g,10,11)),g.a).i;g=Sod(g)}}return f} +function Sxd(a,b){var c,d,e,f;if(a.dj()){d=null;e=a.ej();a.hj()&&(d=a.jj(a.oi(b),null));c=a.Yi(4,f=oud(a,b),null,b,e);if(a.aj()&&f!=null){d=a.cj(f,d);if(!d){a.Zi(c)}else{d.Di(c);d.Ei()}}else{if(!d){a.Zi(c)}else{d.Di(c);d.Ei()}}return f}else{f=oud(a,b);if(a.aj()&&f!=null){d=a.cj(f,null);!!d&&d.Ei()}return f}} +function TKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Sqb;i=0;for(d=new nlb(a.d);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 Mrc(){Mrc=bcb;Drc=new Nrc('COMMENTS',0);Frc=new Nrc('EXTERNAL_PORTS',1);Grc=new Nrc('HYPEREDGES',2);Hrc=new Nrc('HYPERNODES',3);Irc=new Nrc('NON_FREE_PORTS',4);Jrc=new Nrc('NORTH_SOUTH_PORTS',5);Lrc=new Nrc(Sne,6);Crc=new Nrc('CENTER_LABELS',7);Erc=new Nrc('END_LABELS',8);Krc=new Nrc('PARTITIONS',9)} +function cVc(a){var b,c,d,e,f;e=new Qkb;b=new Uqb((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));for(d=new Sr(ur(Wsd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(lud((!c.b&&(c.b=new t5d(y2,c,4,7)),c.b),0),186)){f=Xsd(BD(lud((!c.c&&(c.c=new t5d(y2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} +function bVc(a){var b,c,d,e,f,g;f=new Sqb;b=new Uqb((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));for(e=new Sr(ur(Wsd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(lud((!d.b&&(d.b=new t5d(y2,d,4,7)),d.b),0),186)){g=Xsd(BD(lud((!d.c&&(d.c=new t5d(y2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} +function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),iie,2,6,[Yie,Zie,$ie,_ie,aje,bje,cje,dje,eje,fje,gje,hje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),iie,2,6,['Jan','Feb','Mar','Apr',aje,'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 BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),iie,2,6,[Yie,Zie,$ie,_ie,aje,bje,cje,dje,eje,fje,gje,hje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),iie,2,6,['Jan','Feb','Mar','Apr',aje,'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 DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=afb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-ije+ije-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} +function jde(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=See(a.i));a.j=a.i.length;ide(a);f=mde(a);if(a.d!=a.j)throw ubb(new hde(ovd((c0d(),nue))));if(a.g){for(d=0;drre?Nkb(i,a.b):d<=rre&&d>sre?Nkb(i,a.d):d<=sre&&d>tre?Nkb(i,a.c):d<=tre&&Nkb(i,a.a);f=VXc(a,i,f)}return e} +function Ggb(){Ggb=bcb;var a;Bgb=new Tgb(1,1);Dgb=new Tgb(1,10);Fgb=new Tgb(0,0);Agb=new Tgb(-1,1);Cgb=OC(GC(cJ,1),iie,91,0,[Fgb,Bgb,new Tgb(1,2),new Tgb(1,3),new Tgb(1,4),new Tgb(1,5),new Tgb(1,6),new Tgb(1,7),new Tgb(1,8),new Tgb(1,9),Dgb]);Egb=KC(cJ,iie,91,32,0,1);for(a=0;a1;if(h){d=new b7c(e,c.b);Csb(b.a,d)}j7c(b.a,OC(GC(l1,1),iie,8,0,[m,l]))} +function edd(a){n4c(a,new A3c(L3c(I3c(K3c(J3c(new N3c,Nse),'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 hdd)));l4c(a,Nse,Xle,_cd);l4c(a,Nse,rme,15);l4c(a,Nse,tme,leb(0));l4c(a,Nse,Wle,ome)} +function cde(){cde=bcb;var a,b,c,d,e,f;ade=KC(SD,ste,25,255,15,1);bde=KC(TD,Vie,25,16,15,1);for(b=0;b<255;b++){ade[b]=-1}for(c=57;c>=48;c--){ade[c]=c-48<<24>>24}for(d=70;d>=65;d--){ade[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){ade[e]=e-97+10<<24>>24}for(f=0;f<10;f++)bde[f]=48+f&Xie;for(a=10;a<=15;a++)bde[a]=65+a-10&Xie} +function xVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Eje);c=UC(c,e,true);b=''+pD(QC);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 wrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} +function Ogc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new nlb(a.d.b);e.a=a.a){return -1}if(!E6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=F6b(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 wtd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.mi()){for(c=0;c0){a.pj();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 ubb(new Neb('Invalid hexadecimal'))}}} +function wUc(a,b,c){var d,e,f,g;Jdd(c,'Processor order nodes',2);a.a=Ddb(ED(uNb(b,(FTc(),DTc))));e=new Osb;for(g=Isb(b.b,0);g.b!=g.d.c;){f=BD(Wsb(g),86);Bcb(DD(uNb(f,(iTc(),fTc))))&&(Fsb(e,f,e.c.b,e.c),true)}d=(rCb(e.b!=0),BD(e.a.a.c,86));uUc(a,d);!c.b&&Mdd(c,1);xUc(a,d,0-Ddb(ED(uNb(d,(iTc(),ZSc))))/2,0);!c.b&&Mdd(c,1);Ldd(c)} +function qFb(){qFb=bcb;pFb=new rFb('SPIRAL',0);kFb=new rFb('LINE_BY_LINE',1);lFb=new rFb('MANHATTAN',2);jFb=new rFb('JITTER',3);nFb=new rFb('QUADRANTS_LINE_BY_LINE',4);oFb=new rFb('QUADRANTS_MANHATTAN',5);mFb=new rFb('QUADRANTS_JITTER',6);iFb=new rFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);hFb=new rFb('COMBINE_JITTER_MANHATTAN',8)} +function qoc(a,b,c,d){var e,f,g,h,i,j;i=voc(a,c);j=voc(b,c);e=false;while(!!i&&!!j){if(d||toc(i,j,c)){g=voc(i,c);h=voc(j,c);yoc(b);yoc(a);f=i.c;rbc(i,false);rbc(j,false);if(c){Y_b(b,j.p,f);b.p=j.p;Y_b(a,i.p+1,f);a.p=i.p}else{Y_b(a,i.p,f);a.p=i.p;Y_b(b,j.p+1,f);b.p=j.p}Z_b(i,null);Z_b(j,null);i=g;j=h;e=true}else{break}}return e} +function QDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new nlb(d.j);h.a=b.length){throw ubb(new pcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new _Hc(d);PHc(this.e,this.c,(Pcd(),Ocd));this.i=new _Hc(d);PHc(this.i,this.c,ucd);this.f=new djc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(i0b(),d0b);this.a&&gjc(this,a,b.length)} +function gKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Ddd(),udd));g=a.B.Hc(xdd);a.a=new EHb(g,f,a.c);!!a.n&&t_b(a.a.n,a.n);kIb(a.g,(fHb(),dHb),a.a);if(!b){d=new lIb(1,f,a.c);d.n.a=a.k;Mpb(a.p,(Pcd(),vcd),d);e=new lIb(1,f,a.c);e.n.d=a.k;Mpb(a.p,Mcd,e);h=new lIb(0,f,a.c);h.n.c=a.k;Mpb(a.p,Ocd,h);c=new lIb(0,f,a.c);c.n.b=a.k;Mpb(a.p,ucd,c)}} +function Ugc(a){var b,c,d;b=BD(uNb(a.d,(Lyc(),Qwc)),218);switch(b.g){case 2:c=Mgc(a);break;case 3:c=(d=new Qkb,LAb(IAb(MAb(KAb(KAb(new XAb(null,new Jub(a.d.b,16)),new Rhc),new Thc),new Vhc),new dhc),new Xhc(d)),d);break;default:throw ubb(new Ydb('Compaction not supported for '+b+' edges.'));}Tgc(a,c);qeb(new Oib(a.g),new Dhc(a))} +function Y1c(a,b){var c;c=new yNb;!!b&&sNb(c,BD(Nhb(a.a,B2),94));JD(b,470)&&sNb(c,BD(Nhb(a.a,F2),94));if(JD(b,353)){sNb(c,BD(Nhb(a.a,C2),94));return c}JD(b,82)&&sNb(c,BD(Nhb(a.a,y2),94));if(JD(b,239)){sNb(c,BD(Nhb(a.a,D2),94));return c}if(JD(b,186)){sNb(c,BD(Nhb(a.a,E2),94));return c}JD(b,351)&&sNb(c,BD(Nhb(a.a,A2),94));return c} +function vSb(){vSb=bcb;nSb=new Jsd((U9c(),z9c),leb(1));tSb=new Jsd(P9c,80);sSb=new Jsd(I9c,5);aSb=new Jsd(n8c,ome);oSb=new Jsd(A9c,leb(1));rSb=new Jsd(D9c,(Acb(),true));kSb=new p0b(50);jSb=new Jsd(b9c,kSb);cSb=K8c;lSb=p9c;bSb=new Jsd(x8c,false);iSb=a9c;hSb=Z8c;gSb=U8c;fSb=S8c;mSb=t9c;eSb=(RRb(),KRb);uSb=PRb;dSb=JRb;pSb=MRb;qSb=ORb} +function YXb(a){var b,c,d,e,f,g,h,i;i=new iYb;for(h=new nlb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Dkb(c.e,b)}if(e==(i0b(),f0b)||e==h0b){for(g=new nlb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&kte)!=0&&(f|=64)}(c.Bb&Oje)!=0&&(f|=zve);f|=xve}else{if(JD(b,457)){f|=512}else{d=b.Aj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} +function hc(a,b){var c,d,e,f,g;a=a==null?She:(tCb(a),a);for(e=0;ea.d[h.p]){c+=vHc(a.b,f);Vjb(a.a,leb(f))}}else{++g}}c+=a.b.d*g;while(!_jb(a.a)){tHc(a.b,BD(ekb(a.a),19).a)}}return c} +function T6d(a,b){var c;if(a.f==R6d){c=V1d(l1d((J6d(),H6d),b));return a.e?c==4&&b!=(h8d(),f8d)&&b!=(h8d(),c8d)&&b!=(h8d(),d8d)&&b!=(h8d(),e8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(W1d(l1d((J6d(),H6d),b)))||a.d.Hc(_0d((J6d(),H6d),a.b,b)))){return true}if(a.f){if(s1d((J6d(),a.f),Y1d(l1d(H6d,b)))){c=V1d(l1d(H6d,b));return a.e?c==4:c==2}}return false} +function eVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(ckd(c,(U9c(),y9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=_qe);e+=b;e>_qe&&(e-=_qe);h=BD(ckd(d,y9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=_qe);f+=b;f>_qe&&(f-=_qe);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))} +function XDb(a){var b,c,d,e,f,g,h;h=new Kqb;for(d=new nlb(a.a.b);d.a=b.o){throw ubb(new qcb)}i=c>>5;h=c&31;g=Mbb(1,Sbb(Mbb(h,1)));f?(b.n[d][i]=Lbb(b.n[d][i],g)):(b.n[d][i]=wbb(b.n[d][i],Kbb(g)));g=Mbb(g,1);e?(b.n[d][i]=Lbb(b.n[d][i],g)):(b.n[d][i]=wbb(b.n[d][i],Kbb(g)))}catch(a){a=tbb(a);if(JD(a,320)){throw ubb(new pcb(yle+b.o+'*'+b.p+zle+c+Nhe+d+Ale))}else throw ubb(a)}} +function xUc(a,b,c,d){var e,f,g;if(b){f=Ddb(ED(uNb(b,(iTc(),bTc))))+d;g=c+Ddb(ED(uNb(b,ZSc)))/2;xNb(b,gTc,leb(Sbb(Bbb($wnd.Math.round(f)))));xNb(b,hTc,leb(Sbb(Bbb($wnd.Math.round(g)))));b.d.b==0||xUc(a,BD(pr((e=Isb((new VRc(b)).a.d,0),new YRc(e))),86),c+Ddb(ED(uNb(b,ZSc)))+a.a,d+Ddb(ED(uNb(b,$Sc))));uNb(b,eTc)!=null&&xUc(a,BD(uNb(b,eTc),86),c,d)}} +function M9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=P_b(b.a);e=Ddb(ED(uNb(i,(Lyc(),nyc))))*2;k=Ddb(ED(uNb(i,uyc)));j=$wnd.Math.max(e,k);f=KC(UD,Qje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new nlb(b.e);m.a0){d=(!a.n&&(a.n=new ZTd(C2,a,1,7)),BD(lud(a.n,0),137)).a;!d||Pfb(Pfb((b.a+=' "',b),d),'"')}}else{Pfb(Pfb((b.a+=' "',b),c),'"')}Pfb(Kfb(Pfb(Kfb(Pfb(Kfb(Pfb(Kfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function jpd(a){var b,c,d;if((a.Db&64)!=0)return ald(a);b=new Vfb(bte);c=a.k;if(!c){!a.n&&(a.n=new ZTd(C2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new ZTd(C2,a,1,7)),BD(lud(a.n,0),137)).a;!d||Pfb(Pfb((b.a+=' "',b),d),'"')}}else{Pfb(Pfb((b.a+=' "',b),c),'"')}Pfb(Kfb(Pfb(Kfb(Pfb(Kfb(Pfb(Kfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function d4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Ohb(a.a,b),149);if(!e){for(d=(h=(new Zib(a.b)).a.vc().Kc(),new cjb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(cfb(g.substr(g.length-i,i),b)&&(b.length==g.length||afb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Rhb(a.a,b,e)}return e} +function PLb(a,b){var c,d,e,f;c=new ULb;d=BD(FAb(MAb(new XAb(null,new Jub(a.f,16)),c),zyb(new gzb,new izb,new Fzb,new Hzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Dyb),Cyb]))),21);e=d.gc();d=BD(FAb(MAb(new XAb(null,new Jub(b.f,16)),c),zyb(new gzb,new izb,new Fzb,new Hzb,OC(GC(xL,1),Fie,132,0,[Dyb,Cyb]))),21);f=d.gc();if(ee.p){F0b(f,Mcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Mcd&&e.p>a.p){F0b(f,vcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} +function JOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new b7c(e,c.b);Csb(b.a,d)}j7c(b.a,OC(GC(l1,1),iie,8,0,[m,l]))} +function Iid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=SKd(b.Sg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b._g(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&EGb(a);vGb(a);uGb(a);c=yGb(a);d=0;while(!!c&&d0&&Csb(a.e,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Csb(a.d,f)}}}}} +function $Kb(a){var b,c,d,e,f,g,h,i,j;h=new Gxb(BD(Qb(new mLb),62));j=Lje;for(c=new nlb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.ql(f._j());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Rxd(a,b,c),72);h!=i&&BLd(a,new zSd(a.e,7,g,leb(h),n.dd(),i));return m}}}else{return BD(nud(a,b,c),72)}return BD(Rxd(a,b,c),72)} +function Pcc(a,b){var c,d,e,f,g,h,i;Jdd(b,'Port order processing',1);i=BD(uNb(a,(Lyc(),Zxc)),422);for(d=new nlb(a.b);d.a=0){h=bD(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&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} +function ODc(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 nlb(a.a);h.a0&&(ACb(0,a.length),a.charCodeAt(0)==45||(ACb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw ubb(new Neb(Jje+a+'"'))}return h} +function cnc(a){var b,c,d,e,f,g,h;g=new Osb;for(f=new nlb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(i0b(),e0b)){yac(BD(a.a[a.b],10),(nbd(),jbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(i0b(),e0b)){yac(BD(a.a[a.c-1&a.a.length-1],10),(nbd(),kbd))}else if((a.c-a.b&a.a.length-1)==2){yac(BD(akb(a),10),(nbd(),jbd));yac(BD(akb(a),10),kbd)}else{vac(a,e)}Xjb(a)} +function lRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(yyd(e),33);g='';(!d.n&&(d.n=new ZTd(C2,d,1,7)),d.n).i==0||(g=BD(lud((!d.n&&(d.n=new ZTd(C2,d,1,7)),d.n),0),137).a);h=new TRc(f++,b,g);sNb(h,d);xNb(h,(iTc(),_Sc),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);Csb(b.b,h);irb(c.f,d,h)}} +function A2b(a){var b,c,d,e,f;d=BD(uNb(a,(utc(),Ysc)),33);f=BD(ckd(d,(Lyc(),Dxc)),174).Hc((odd(),ndd));if(!a.e){e=BD(uNb(a,Isc),21);b=new b7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Mrc(),Frc))){ekd(d,Txc,(_bd(),Wbd));vfd(d,b.a,b.b,false,true)}else{Bcb(DD(ckd(d,Exc)))||vfd(d,b.a,b.b,true,true)}}f?ekd(d,Dxc,oqb(ndd)):ekd(d,Dxc,(c=BD(fdb(H1),9),new wqb(c,BD($Bb(c,c.length),9),0)))} +function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(afb(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=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new iSd(a,1,h,g,null);!d?(d=f):d.Di(f)}if(c>=0){f=new iSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Di(f)}}return d} +function GEd(a){var b,c,d;if(a.b==null){d=new Gfb;if(a.i!=null){Dfb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){TEd(a.i)||(d.a+='//',d);Dfb(d,a.a)}if(a.d!=null){d.a+='/';Dfb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=IZc(d,m,false),i.a);if(k+h+l<=b.b){GZc(c,f-c.s);c.c=true;GZc(d,f-c.s);KZc(d,c.s,c.t+c.d+h);d.k=true;SZc(c.q,d);n=true;if(e){o$c(b,d);d.j=b;if(a.c.length>g){r$c((sCb(g,a.c.length),BD(a.c[g],200)),d);(sCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Jkb(a,g)}}}return n} +function jcc(a,b){var c,d,e,f,g,h;Jdd(b,'Partition midprocessing',1);e=new Hp;LAb(IAb(new XAb(null,new Jub(a.a,16)),new ncc),new pcc(e));if(e.d==0){return}h=BD(FAb(TAb((f=e.i,new XAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Cyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);icc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Ldd(b)} +function CYb(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 Qkb;f=(d=BD(fdb(E1),9),new wqb(d,BD($Bb(d,d.length),9),0));g=new qgd(e,f)}BD(g.a,15).Fc(b);b.k==(i0b(),d0b)&&BD(g.b,21).Fc(BD(uNb(b,(utc(),Fsc)),61));for(i=new nlb(b.j);i.a0){e=BD(a.Ab.g,1933);if(b==null){for(f=0;f1){for(d=new nlb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Phe,1,0,5,1)}e==h&&Dkb(k,new qgd(c.c.i,c))}lmb();Nkb(k,a.c);Ckb(a.b,i.p,k)}}} +function IMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new nlb(b.b);g.ah){h=e;k.c=KC(SI,Phe,1,0,5,1)}e==h&&Dkb(k,new qgd(c.d.i,c))}lmb();Nkb(k,a.c);Ckb(a.f,i.p,k)}}} +function U7c(a){n4c(a,new A3c(L3c(I3c(K3c(J3c(new N3c,mse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new X7c)));l4c(a,mse,Xle,Q7c);l4c(a,mse,rme,15);l4c(a,mse,qme,leb(0));l4c(a,mse,Fre,Fsd(K7c));l4c(a,mse,Ame,Fsd(M7c));l4c(a,mse,zme,Fsd(O7c));l4c(a,mse,Wle,lse);l4c(a,mse,vme,Fsd(L7c));l4c(a,mse,Ome,Fsd(N7c));l4c(a,mse,nse,Fsd(I7c));l4c(a,mse,hqe,Fsd(J7c))} +function V$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Pcd(),Ncd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Pcd(),Ocd}else if(j+h>g){return Pcd(),ucd}break;case 4:case 3:if(k<0){return Pcd(),vcd}else if(k+c>f){return Pcd(),Mcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Pcd(),Ocd):i+d>=1&&i-d>=0?(Pcd(),ucd):d<0.5?(Pcd(),vcd):(Pcd(),Mcd)} +function lJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Ddb(ED(uNb(b,(Lyc(),tyc))));o=Lie*k;for(e=new nlb(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 UGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new E6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),838);for(l=new nlb(h.wf());l.a0){if(h.a){j=h.b.rf().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=BD(Hkb(h.c.d,0),181).rf().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(ocd(a.u)){f=nfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} +function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Ihe;case 12:return b!=null&&(typeof b===Ehe||typeof b==Ihe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.hm===fcb);case 1:return OD(b)&&!(b.hm===fcb)||AD(b,a.__elementTypeId$);default:return true;}} +function wOb(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 lgb(a,b){var c,d,e,f,g,h;e=ogb(a);h=ogb(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)*Sje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Sje)+1);if(c>d+1){return e}else if(c0&&(g=Ngb(g,Jhb(d)));return Hgb(f,g)}}else return e0&&a.d!=(xTb(),wTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(xTb(),uTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new b7c(h/f,b.d.b);case 2:return new b7c(b.d.a,i/f);default:return new b7c(h/f,i/f);}} +function Ucc(a,b){Ncc();var c,d,e,f,g;g=BD(uNb(a.i,(Lyc(),Txc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(_bd(),Vbd)||g==Xbd||g==Wbd)){return 0}if(g==(_bd(),Vbd)){c=BD(uNb(a,Uxc),19);d=BD(uNb(b,Uxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Jdb(a.n.a,b.n.a);case 2:return Jdb(a.n.b,b.n.b);case 3:return Jdb(b.n.a,a.n.a);case 4:return Jdb(b.n.b,a.n.b);default:throw ubb(new Ydb(dne));}} +function ofd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new sMd(x2,a,5)),a.a).i+2;g=new Rkb(c);Dkb(g,new b7c(a.j,a.k));LAb(new XAb(null,(!a.a&&(a.a=new sMd(x2,a,5)),new Jub(a.a,16))),new Lfd(g));Dkb(g,new b7c(a.b,a.c));b=1;while(b0){iEb(i,false,(aad(),Y9c));iEb(i,true,Z9c)}Gkb(b.g,new Zhc(a,c));Qhb(a.g,b,c)} +function Meb(){Meb=bcb;var a;Ieb=OC(GC(WD,1),jje,25,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]);Jeb=KC(WD,jje,25,37,15,1);Keb=OC(GC(WD,1),jje,25,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]);Leb=KC(XD,Nje,25,37,14,1);for(a=2;a<=36;a++){Jeb[a]=QD($wnd.Math.pow(a,Ieb[a]));Leb[a]=zbb(mie,Jeb[a])}} +function kfd(a){var b;if((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a).i!=1){throw ubb(new Vdb(Pse+(!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a).i))}b=new o7c;!!Ysd(BD(lud((!a.b&&(a.b=new t5d(y2,a,4,7)),a.b),0),82))&&ye(b,lfd(a,Ysd(BD(lud((!a.b&&(a.b=new t5d(y2,a,4,7)),a.b),0),82)),false));!!Ysd(BD(lud((!a.c&&(a.c=new t5d(y2,a,5,8)),a.c),0),82))&&ye(b,lfd(a,Ysd(BD(lud((!a.c&&(a.c=new t5d(y2,a,5,8)),a.c),0),82)),true));return b} +function XMc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(ULc(),TLc)?Q_b(b.b):T_b(b.b)):(e=a.a.c==(ULc(),SLc)?Q_b(b.b):T_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Bcb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!NZb(c)&&c.c.i.c==c.d.i.c){continue}if(Bcb(a.a.n[a.a.g[b.b.p].p])||Bcb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Qqb(a.b,a.a.g[PMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} +function Ydd(a,b,c,d,e){var f,g,h,i,j,k,l;lmb();Nkb(a,new Med);h=new Aib(a,0);l=new Qkb;f=0;while(h.bf*2){k=new red(l);j=med(g)/led(g);i=aed(k,b,new o0b,c,d,e,j);L6c(T6c(k.e),i);l.c=KC(SI,Phe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=med(k)*led(k)+med(g)*led(g)}else{l.c[l.c.length]=g;f+=med(g)*led(g)}}return l} +function lwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.dj()){i=a.ej();uvd(a,b,c);g=d==1?a.Yi(3,null,c.Kc().Pb(),b,i):a.Yi(5,null,c,b,i);if(a.aj()){h=d<100?null:new Dxd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.mh()&&Mwd(new jSd(a.Cb,9,13,c,a.c,CLd(LSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.mh()){b=a.c;JD(b,88)||(b=(eGd(),WFd));JD(c,88)||(c=(eGd(),WFd));Mwd(new jSd(a.Cb,9,10,c,b,CLd(QKd(BD(a.Cb,26)),a)))}}}}return a.c} +function e7b(a,b){var c,d,e,f,g,h,i,j,k,l;Jdd(b,'Hypernodes processing',1);for(e=new nlb(a.b);e.ac);return e} +function SFc(a,b){var c,d,e;d=Bub(a.d,1)!=0;!Bcb(DD(uNb(b.j,(utc(),Hsc))))&&!Bcb(DD(uNb(b.j,ktc)))||PD(uNb(b.j,(Lyc(),wwc)))===PD((rAc(),pAc))?b.c.Tf(b.e,d):(d=Bcb(DD(uNb(b.j,Hsc))));$Fc(a,b,d,true);Bcb(DD(uNb(b.j,ktc)))&&xNb(b.j,ktc,(Acb(),false));if(Bcb(DD(uNb(b.j,Hsc)))){xNb(b.j,Hsc,(Acb(),false));xNb(b.j,ktc,true)}c=IFc(a,b);do{VFc(a);if(c==0){return 0}d=!d;e=c;$Fc(a,b,d,false);c=IFc(a,b)}while(e>c);return e} +function pNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=qNd(a,b);c=qNd(a,c);d=EQd(b);if(d){k=EQd(c);if(k!=d){if(!k){return false}else{i=d.Cj();o=k.Cj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new sMd(i5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new sMd(i5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=wFb(b,f);c?NFb(h.b,b):NFb(h.g,b);KFb(h).c.length==1&&(Fsb(d,h,d.c.b,d.c),true);e=new qgd(f,b);Vjb(a.o,e);Kkb(a.e.a,f)}} +function $Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(z6c(a.b).a-z6c(b.b).a);h=$wnd.Math.abs(z6c(a.b).b-z6c(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 hQc(a){var b,c,d,e;jQc(a,a.e,a.f,(BQc(),zQc),true,a.c,a.i);jQc(a,a.e,a.f,zQc,false,a.c,a.i);jQc(a,a.e,a.f,AQc,true,a.c,a.i);jQc(a,a.e,a.f,AQc,false,a.c,a.i);iQc(a,a.c,a.e,a.f,a.i);d=new Aib(a.i,0);while(d.b=65;c--){Vce[c]=c-65<<24>>24}for(d=122;d>=97;d--){Vce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){Vce[e]=e-48+52<<24>>24}Vce[43]=62;Vce[47]=63;for(f=0;f<=25;f++)Wce[f]=65+f&Xie;for(g=26,i=0;g<=51;++g,i++)Wce[g]=97+i&Xie;for(a=52,h=0;a<=61;++a,h++)Wce[a]=48+h&Xie;Wce[62]=43;Wce[63]=47} +function EXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new _6c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Ddb(ED(uNb(BD(a.Kc().Pb(),37),(Lyc(),mwc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}tXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new b7c(c+b,n+i+b)} +function iQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new nlb(b);g.af){return Pcd(),ucd}break;case 4:case 3:if(i<0){return Pcd(),vcd}else if(i+a.f>e){return Pcd(),Mcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Pcd(),Ocd):g+c>=1&&g-c>=0?(Pcd(),ucd):c<0.5?(Pcd(),vcd):(Pcd(),Mcd)} +function uhb(a,b,c,d,e){var f,g;f=vbb(wbb(b[0],Tje),wbb(d[0],Tje));a[0]=Sbb(f);f=Nbb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){lOc(i,i.d-e.d);e.c==(DOc(),BOc)&&jOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Fsb(b,i,b.c.b,b.c),true)}}}for(f=new nlb(a.f);f.a0){mOc(h,h.i-e.d);e.c==(DOc(),BOc)&&kOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Fsb(c,h,c.c.b,c.c),true)}}}} +function cSc(a,b,c){var d,e,f,g,h,i,j,k;Jdd(c,'Processor compute fanout',1);Thb(a.b);Thb(a.a);h=null;f=Isb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Wsb(f),86);Bcb(DD(uNb(j,(iTc(),fTc))))&&(h=j)}i=new Osb;Fsb(i,h,i.c.b,i.c);bSc(a,i);for(k=Isb(b.b,0);k.b!=k.d.c;){j=BD(Wsb(k),86);g=GD(uNb(j,(iTc(),WSc)));e=Ohb(a.b,g)!=null?BD(Ohb(a.b,g),19).a:0;xNb(j,VSc,leb(e));d=1+(Ohb(a.a,g)!=null?BD(Ohb(a.a,g),19).a:0);xNb(j,TSc,leb(d))}Ldd(c)} +function SPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=RPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&tib(d)}for(g=new nlb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} +function Efe(){rfe();var a,b,c,d,e,f;if(bfe)return bfe;a=(++qfe,new Vfe(4));Sfe(a,Ffe(rxe,true));Ufe(a,Ffe('M',true));Ufe(a,Ffe('C',true));f=(++qfe,new Vfe(4));for(d=0;d<11;d++){Pfe(f,d,d)}b=(++qfe,new Vfe(4));Sfe(b,Ffe('M',true));Pfe(b,4448,4607);Pfe(b,65438,65439);e=(++qfe,new Gge(2));Fge(e,a);Fge(e,afe);c=(++qfe,new Gge(2));c.Zl(wfe(f,Ffe('L',true)));c.Zl(b);c=(++qfe,new gge(3,c));c=(++qfe,new mge(e,c));bfe=c;return bfe} +function O3c(a){var b,c;b=GD(ckd(a,(U9c(),k8c)));if(P3c(b,a)){return}if(!dkd(a,B9c)&&((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a).i!=0||Bcb(DD(ckd(a,I8c))))){if(b==null||tfb(b).length==0){if(!P3c(nne,a)){c=Pfb(Pfb(new Vfb('Unable to load default layout algorithm '),nne),' for unconfigured node ');tfd(a,c);throw ubb(new u2c(c.a))}}else{c=Pfb(Pfb(new Vfb("Layout algorithm '"),b),"' not found for ");tfd(a,c);throw ubb(new u2c(c.a))}}} +function gIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){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);lHb(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 nlb(a.n);d.a1){for(d=Isb(e,0);d.b!=d.d.c;){c=BD(Wsb(d),231);f=0;for(i=new nlb(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);mHb(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;i=0&&f!=c){throw ubb(new Vdb(fue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,XNb(a,e,d))}h=$wnd.Math.min(h,NNb(a,f,h,d))}return h} +function dfd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw ubb(new Vdb('The vector chain must contain at least a source and a target point.'))}e=(rCb(a.b!=0),BD(a.a.a.c,8));imd(b,e.a,e.b);i=new Jyd((!b.a&&(b.a=new sMd(x2,b,5)),b.a));g=Isb(a,1);while(g.aDdb(MEc(g.g,g.d[0]).a)){rCb(i.b>0);i.a.Xb(i.c=--i.b);zib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Qkb),h.e).Mc(b);j=(!h.e&&(h.e=new Qkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Qkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} +function ndc(a){var b,c,d;if(bcd(BD(uNb(a,(Lyc(),Txc)),98))){for(c=new nlb(a.j);c.a>>0,'0'+b.toString(16));d='\\x'+pfb(c,c.length-2,c.length)}else if(a>=Oje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+pfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&Xie);}return d} +function xhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Ugb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=wbb(a.a[0],Tje);d=wbb(b.a[0],Tje);g<0&&(c=Ibb(c));i<0&&(d=Ibb(d));return fhb(Pbb(c,d))}e=f!=h?f>h?1:-1:vhb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?yhb(b.a,h,a.a,f):thb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Ggb(),Fgb}k=yhb(a.a,f,b.a,h)}else{k=thb(a.a,f,b.a,h)}}j=new Ugb(l,k.length,k);Igb(j);return j} +function UPc(a){var b,c,d,e,f,g;this.e=new Qkb;this.a=new Qkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw ubb(new Vdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;PPc(this,a.b+this.b-1);g=new Qkb;f=new nlb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Hkb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Hkb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){AZc(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)){Dkb(b.b,c);h=BD(Hkb(b.n,b.n.c.length-1),211);Dkb(b.n,new RZc(b.s,h.f+h.a+b.i,b.i));MZc(BD(Hkb(b.n,b.n.c.length-1),211),c);CZc(b,c);return true}}return false} +function Uxd(a,b,c){var d,e,f,g;if(a.dj()){e=null;f=a.ej();d=a.Yi(1,g=pud(a,b,c),c,b,f);if(a.aj()&&!(a.mi()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.cj(g,e));e=a.bj(c,e);a.hj()&&(e=a.kj(g,c,e));if(!e){a.Zi(d)}else{e.Di(d);e.Ei()}}else{a.hj()&&(e=a.kj(g,c,e));if(!e){a.Zi(d)}else{e.Di(d);e.Ei()}}return g}else{g=pud(a,b,c);if(a.aj()&&!(a.mi()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.cj(g,null));e=a.bj(c,e);!!e&&e.Ei()}return g}} +function YA(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 npc(a,b){var c,d,e,f,g;Jdd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Ldd(b);return}e=new Woc(a);g=(e.i==null&&(e.i=Roc(e,new Yoc)),Ddb(e.i)*e.f);c=g/(e.i==null&&(e.i=Roc(e,new Yoc)),Ddb(e.i));if(e.b>c){Ldd(b);return}switch(BD(uNb(a,(Lyc(),Eyc)),336).g){case 2:f=new gpc;break;case 0:f=new Xnc;break;default:f=new jpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(uNb(a,Kyc),337).g){case 2:d=spc(e,d);break;case 1:d=qpc(e,d);}}mpc(a,e,d);Ldd(b)} +function HFc(a,b){var c,d,e,f;Eub(a.d,a.e);a.c.a.$b();if(Ddb(ED(uNb(b.j,(Lyc(),swc))))!=0||Ddb(ED(uNb(b.j,swc)))!=0){c=$le;PD(uNb(b.j,wwc))!==PD((rAc(),pAc))&&xNb(b.j,(utc(),Hsc),(Acb(),true));f=BD(uNb(b.j,yyc),19).a;for(e=0;ee&&++j;Dkb(g,(sCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(sCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>med(h)*led(h)/2||g.b==0)){l=new red(m);k=med(h)/led(h);j=aed(l,b,new o0b,c,d,e,k);L6c(T6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Phe,1,0,5,1)}}}Fkb(n,m);return n} +function t6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.lh(b)){k=(n=b,!n?null:BD(d,49).wh(n));if(k){p=c.ah(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!uUd(b);f=0;for(h=a.a?l.Kc():l.Yh();h.Ob();){j=BD(h.Pb(),56);e=BD(Vrb(a,j),56);if(!e){if(a.b&&!g){m.Wh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Wh(f,e):f!=i&&m.ii(f,e)}else{m.Wh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Vrb(a,p);e==null?a.b&&!uUd(b)&&k.Wb(p):k.Wb(e)}}}}} +function D6b(a,b){var c,d,e,f,g,h,i,j;c=new K6b;for(e=new Sr(ur(Q_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(NZb(d)){continue}h=d.c.i;if(E6b(h,B6b)){j=F6b(a,h,B6b,A6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Qkb);Dkb(c.a,h)}}for(g=new Sr(ur(T_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(NZb(f)){continue}i=f.d.i;if(E6b(i,A6b)){j=F6b(a,i,A6b,B6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Qkb);Dkb(c.c,i)}}return c} +function Jhb(a){Chb();var b,c,d,e;b=QD(a);if(a1000000){throw ubb(new ncb('power of ten too big'))}if(a<=Jhe){return Pgb(Ogb(Ahb[1],b),b)}d=Ogb(Ahb[1],Jhe);e=d;c=Bbb(a-Jhe);b=QD(a%Jhe);while(xbb(c,Jhe)>0){e=Ngb(e,d);c=Pbb(c,Jhe)}e=Ngb(e,Ogb(Ahb[1],b));e=Pgb(e,Jhe);c=Bbb(a-Jhe);while(xbb(c,Jhe)>0){e=Pgb(e,Jhe);c=Pbb(c,Jhe)}e=Pgb(e,b);return e} +function W5b(a,b){var c,d,e,f,g,h,i,j,k;Jdd(b,'Hierarchical port dummy size processing',1);i=new Qkb;k=new Qkb;d=Ddb(ED(uNb(a,(Lyc(),kyc))));c=d*2;for(f=new nlb(a.b);f.aj&&d>j){k=h;j=Ddb(b.p[h.p])+Ddb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Ndd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Ndd(c,b+' is feasible: '+e);return e} +function TNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new nlb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Qkb;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 qgd(n,m)} +function m4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new Zib(a.c.b)).a.vc().Kc(),new cjb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=e4c(a.c,e);!d&&e.length==0&&(d=q4c(a));!!d&&!ze(d.c,b,false)&&Csb(d.c,b)}for(g=Isb(a.a,0);g.b!=g.d.c;){f=BD(Wsb(g),478);k=f4c(a.c,f.a);n=f4c(a.c,f.b);!!k&&!!n&&Csb(k.c,new qgd(n,f.c))}Nsb(a.a);for(m=Isb(a.b,0);m.b!=m.d.c;){l=BD(Wsb(m),478);b=c4c(a.c,l.a);i=f4c(a.c,l.b);!!b&&!!i&&x3c(b,i,l.c)}Nsb(a.b)} +function lvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new drd;e=(ko(g.g),ko(g.j),Thb(g.b),ko(g.d),ko(g.i),Thb(g.k),Thb(g.c),Thb(g.e),n=$qd(g,f,null),Xqd(g,f),n);if(b){j=new fC(b);h=mvd(j);efd(e,OC(GC(f2,1),Phe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);lue in j.a&&(m=aC(j,lue).ge().a);mue in j.a&&(l=aC(j,mue).ge().a)}k=Qdd(Sdd(new Udd,m),l);p2c(new s2c,e,k);lue in f.a&&cC(f,lue,null);if(m||l){i=new eC;ivd(k,i,m,l);cC(f,lue,i)}d=new Krd(g);Bhe(new Wud(e),d)} +function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),jje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){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(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(afb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(nfb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} +function NKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new xNd;h=new xNd;b=FKd;g=b.a.zc(a,b);if(g==null){for(f=new Ayd(WKd(a));f.e!=f.i.gc();){e=BD(yyd(f),26);ttd(i,NKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new ZTd(s5,a,21,17)),new Ayd(a.s));d.e!=d.i.gc();){c=BD(yyd(d),170);JD(c,99)&&rtd(h,BD(c,18))}qud(h);a.r=new PNd(a,(BD(lud(UKd((IFd(),HFd).o),6),18),h.i),h.g);ttd(i,a.r);qud(i);a.f=new iNd((BD(lud(UKd(HFd.o),5),18),i.i),i.g);VKd(a).b&=-3}return a.f} +function qMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,jje,25,g,15,1);e=KC(WD,jje,25,g,15,1);c=a.p;b=KC(WD,jje,25,c,15,1);f=KC(WD,jje,25,c,15,1);for(j=0;j=0&&!XMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!XMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&_Mb(a,i,m,false,true)}}} +function kRb(a){var b,c,d,e,f,g,h,i;c=Bcb(DD(uNb(a,(vSb(),bSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=U6c($6c(new b7c(h.a,h.b),f),0.5);i=U6c(N6c(a.e),0.5);b=$6c(L6c(new b7c(f.a,f.b),g),i);Y6c(a.d,b)}else{e=Ddb(ED(uNb(a.a,sSb)));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 Lge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,Vie,25,f,15,1);zCb(0,f,a.length);zCb(0,f,i.length);efb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?pfb(c.a,0,f-1):''}}else{return !c?a:c.a}} +function CPb(a){n4c(a,new A3c(L3c(I3c(K3c(J3c(new N3c,Tle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new FPb)));l4c(a,Tle,Ule,Fsd(APb));l4c(a,Tle,Vle,Fsd(uPb));l4c(a,Tle,Wle,Fsd(pPb));l4c(a,Tle,Xle,Fsd(vPb));l4c(a,Tle,Uke,Fsd(yPb));l4c(a,Tle,Vke,Fsd(xPb));l4c(a,Tle,Tke,Fsd(zPb));l4c(a,Tle,Wke,Fsd(wPb));l4c(a,Tle,Ole,Fsd(rPb));l4c(a,Tle,Ple,Fsd(qPb));l4c(a,Tle,Qle,Fsd(sPb));l4c(a,Tle,Rle,Fsd(tPb))} +function Ybc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new a0b(a);$_b(f,(i0b(),h0b));xNb(f,(Lyc(),Txc),(_bd(),Wbd));e=0;if(b){g=new G0b;xNb(g,(utc(),Ysc),b);xNb(f,Ysc,b.i);F0b(g,(Pcd(),Ocd));E0b(g,f);m=j_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>dgb.length;c-=dgb.length){Qfb(e,dgb)}Rfb(e,dgb,QD(c));Pfb(e,d.substr(b))}else{c=b-c;Pfb(e,pfb(d,b,QD(c)));e.a+='.';Pfb(e,ofb(d,QD(c)))}}else{Pfb(e,d.substr(b));for(;c<-dgb.length;c+=dgb.length){Qfb(e,dgb)}Rfb(e,dgb,QD(-c))}return e.a} +function r6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=$6c(new b7c(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=L6c(new b7c(c.a,c.b),U6c(new b7c(d.a,d.b),0.5));f=O6c(a,e);g=O6c(L6c(new b7c(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?L6c(new b7c(a.a,a.b),U6c(new b7c(b.a,b.b),l)):null}} +function NTb(a,b,c){var d,e,f,g,h;d=BD(uNb(a,(Lyc(),xwc)),21);c.a>b.a&&(d.Hc((e8c(),$7c))?(a.c.a+=(c.a-b.a)/2):d.Hc(a8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((e8c(),c8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(b8c)&&(a.c.b+=c.b-b.b));if(BD(uNb(a,(utc(),Isc)),21).Hc((Mrc(),Frc))&&(c.a>b.a||c.b>b.b)){for(h=new nlb(a.a);h.ab.a&&(d.Hc((e8c(),$7c))?(a.c.a+=(c.a-b.a)/2):d.Hc(a8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((e8c(),c8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(b8c)&&(a.c.b+=c.b-b.b));if(BD(uNb(a,(utc(),Isc)),21).Hc((Mrc(),Frc))&&(c.a>b.a||c.b>b.b)){for(g=new nlb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new t$c(f,c);d=new LZc(0,k.f,k,c);o$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){AZc(d,i)}else{g=new LZc(d.s+d.r+c,k.f,k,c);o$c(k,g);AZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} +function JKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new BNd(a);b=new FNd;c=FKd;h=c.a.zc(a,c);if(h==null){for(g=new Ayd(WKd(a));g.e!=g.i.gc();){f=BD(yyd(g),26);ttd(i,JKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new ZTd(s5,a,21,17)),new Ayd(a.s));e.e!=e.i.gc();){d=BD(yyd(e),170);JD(d,322)&&rtd(b,BD(d,34))}qud(b);a.k=new KNd(a,(BD(lud(UKd((IFd(),HFd).o),7),18),b.i),b.g);ttd(i,a.k);qud(i);a.a=new iNd((BD(lud(UKd(HFd.o),4),18),i.i),i.g);VKd(a).b&=-2}return a.a} +function rZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=VZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(sCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=IZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;GZc(c,FZc(c,k))}else{WZc(c.q,i);c.c=true}GZc(d,e-(c.s+c.r));KZc(d,c.q.e+c.q.d,b.f);o$c(b,d);if(a.c.length>f){r$c((sCb(f,a.c.length),BD(a.c[f],200)),d);(sCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Jkb(a,f)}l=true}return l} +function x2d(a,b,c,d){var e,f,g,h,i,j,k;k=N6d(a.e.Sg(),b);e=0;f=BD(a.g,119);i=null;L6d();if(BD(b,66).Nj()){for(h=0;ha.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 mvd(a){var b,c,d,e,f,g,h,i;f=new Z1c;V1c(f,(U1c(),R1c));for(d=(e=$B(a,KC(ZI,iie,2,0,6,1)),new uib(new _lb((new mC(a,e)).b)));d.b0?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;Dkb(a.n,new RZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&MZc(BD(Hkb(a.n,l),211),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;q$c(a.j)}return new F6c(a.s,a.t,e,d)} +function Zfb(a,b,c,d,e){Yfb();var f,g,h,i,j,k,l,m,n;uCb(a,'src');uCb(c,'dest');m=rb(a);i=rb(c);qCb((m.i&4)!=0,'srcType is not an array');qCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;qCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw ubb(new ocb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&ZBb(a,b,c,d,e,true)} +function ohb(){ohb=bcb;mhb=OC(GC(WD,1),jje,25,15,[Mie,1162261467,Die,1220703125,362797056,1977326743,Die,387420489,Eje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Die,1291467969,1544804416,1838265625,60466176]);nhb=OC(GC(WD,1),jje,25,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 roc(a){var b,c,d,e,f,g,h,i;for(e=new nlb(a.b);e.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=Kje;a.p=Kje;for(f=new nlb(a.b);f.a0){e=(!a.n&&(a.n=new ZTd(C2,a,1,7)),BD(lud(a.n,0),137)).a;!e||Pfb(Pfb((b.a+=' "',b),e),'"')}}else{Pfb(Pfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new t5d(y2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new t5d(y2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Pfb(b,Eb(new Gb,new Ayd(a.b)));c&&(b.a+=']',b);b.a+=bne;c&&(b.a+='[',b);Pfb(b,Eb(new Gb,new Ayd(a.c)));c&&(b.a+=']',b);return b.a} +function OQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Cj();if(g!=null){f=gfb(g,vfb(91));if(f!=-1){i=g.substr(f);b.a+=''+pfb(g==null?She:(tCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Ayd(a.d);d.e!=d.i.gc();){c=BD(yyd(d),87);e?(e=false):(b.a+=Nhe,b);OQd(c,b)}b.a+='>'}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 ';OQd(a.b,b)}else{if(a.f){b.a+=' extends ';OQd(a.f,b)}}}} +function Y9b(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=Ikb(v.a,a,0);d=Ikb(w.a,b,0);t=BD(V_b(a,(IAc(),FAc)).Kc().Pb(),11);C=BD(V_b(a,GAc).Kc().Pb(),11);u=BD(V_b(b,FAc).Kc().Pb(),11);D=BD(V_b(b,GAc).Kc().Pb(),11);r=j_b(t.e);A=j_b(C.g);s=j_b(u.e);B=j_b(D.g);Y_b(a,d,w);for(g=s,k=0,o=g.length;kk){new zOc((DOc(),COc),c,b,j-k)}else if(j>0&&k>0){new zOc((DOc(),COc),b,c,0);new zOc(COc,c,b,0)}}return g} +function SUb(a,b){var c,d,e,f,g,h;for(g=new mib((new dib(a.f.b)).a);g.b;){f=kib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(aad(),_9c)&&e.gf()!=X9c){continue}}else{if(e.gf()!=(aad(),Y9c)&&e.gf()!=Z9c){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().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 jJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,jje,25,b.b.c.length,15,1);j=KC(NQ,Fie,267,b.b.c.length,0,1);i=KC(OQ,fne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=hBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new nlb(k.e);f.a1){throw ubb(new Vdb(Dwe))}if(!i){f=M6d(b,d.Kc().Pb());g.Fc(f)}}return std(a,D2d(a,b,c),g)} +function Omc(a,b){var c,d,e,f;Imc(b.b.j);LAb(MAb(new XAb(null,new Jub(b.d,16)),new Zmc),new _mc);for(f=new nlb(b.d);f.aa.o.b){return false}c=U_b(a,ucd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} +function shb(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=wbb(a.a[0],Tje);d=wbb(b.a[0],Tje);if(g==i){k=vbb(c,d);o=Sbb(k);n=Sbb(Obb(k,32));return n==0?new Tgb(g,o):new Ugb(g,2,OC(GC(WD,1),jje,25,15,[o,n]))}return fhb(g<0?Pbb(d,c):Pbb(c,d))}else if(g==i){m=g;l=f>=h?thb(a.a,f,b.a,h):thb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:vhb(a.a,b.a,f);if(e==0){return Ggb(),Fgb}if(e==1){m=g;l=yhb(a.a,f,b.a,h)}else{m=i;l=yhb(b.a,h,a.a,f)}}j=new Ugb(m,l.length,l);Igb(j);return j} +function nZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Bcb(DD(uNb(b,(Lyc(),txc))));m=null;f==(IAc(),FAc)&&d.c.i==c?(m=d.c):f==GAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Pcd(),Ncd);m?(k=m.j):bcd(BD(uNb(c,Txc),98))&&(k=f==FAc?Ocd:ucd);i=kZb(a,b,c,f,k,d);h=jZb((P_b(c),d));if(f==FAc){PZb(h,BD(Hkb(i.j,0),11));QZb(h,e)}else{PZb(h,e);QZb(h,BD(Hkb(i.j,0),11))}j=new xZb(d,h,i,BD(uNb(i,(utc(),Ysc)),11),f,!m)}else{Dkb(j.e,d);n=$wnd.Math.max(Ddb(ED(uNb(j.d,Xwc))),Ddb(ED(uNb(d,Xwc))));xNb(j.d,Xwc,n)}Rc(a.a,d,new AZb(j.d,b,f));return j} +function Q1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Ohb(a.d,b),138));if(!k){f=a.a.Lh();l=f.i;if(!a.d||Uhb(a.d)!=l){i=new Kqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Skb(BD(Qc(a.a,f),21));lmb();Nkb(d,new DZb(b));e=new Aib(f.b,0);while(e.bv)){i=2;g=Jhe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Fqe),($wnd.Math.abs(h)<=Fqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Fqe);if(($wnd.Math.abs(d)<=Fqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} +function Fge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Vvb);if(a.e==2){Svb(a.a,b);return}if(b.e==1){for(e=0;e=Oje?Dfb(c,Oee(d)):zfb(c,d&Xie);g=(++qfe,new Cge(10,null,0));Uvb(a.a,g,h-1)}else{c=(g.am().length+f,new Hfb);Dfb(c,g.am())}if(b.e==0){d=b.$l();d>=Oje?Dfb(c,Oee(d)):zfb(c,d&Xie)}else{Dfb(c,b.am())}BD(g,521).b=c.a} +function qgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=qhb(Bbb(a.f),QD(a.e));return a.g}e=rhb((!a.c&&(a.c=ehb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=ehb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Tfb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Sfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=pfb(f.a,0,b-1)+'0.'+ofb(f.a,b-1);Sfb(f,b+1,yfb(dgb,0,-QD(d)-1))}}else{if(c-b>=1){Sfb(f,b,String.fromCharCode(46));++c}Sfb(f,c,String.fromCharCode(69));d>0&&Sfb(f,++c,String.fromCharCode(43));Sfb(f,++c,''+Tbb(Bbb(d)))}a.g=f.a;return a.g} +function mpc(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=BD(d.Pb(),19).a;while(h1&&(i=j.lg(i,a.a,h))}if(i.c.length==1){return BD(Hkb(i,i.c.length-1),220)}if(i.c.length==2){return hYc((sCb(0,i.c.length),BD(i.c[0],220)),(sCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} +function INb(a){var b,c,d,e,f,g;Gkb(a.a,new ONb);for(c=new nlb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new Wzd(a.i,a.g);c=a.i;f=c<100?null:new Dxd(c);if(a.hj()){for(d=0;d0){h=a.g;j=a.i;jud(a);f=j<100?null:new Dxd(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&zje;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&=zje;u+=p>>22;p&=zje;u&=Aje;return TC(m,p,u)} +function n7b(a){var b,c,d,e,f,g,h;h=BD(Hkb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw ubb(new Ydb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Kje;for(c=new nlb(h.g);c.a4){if(a.vj(b)){if(a.qk()){e=BD(b,49);d=e.Tg();i=d==a.e&&(a.Ck()?e.Ng(e.Ug(),a.yk())==a.zk():-1-e.Ug()==a._i());if(a.Dk()&&!i&&!d&&!!e.Yg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}xNb(a,(utc(),ftc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=Zbd&&b!=$bd&&h!=Ncd){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 qwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.dj()){k=a.Ui();i=a.ej();if(k>0){b=new vud(a.Fi());c=k;f=c<100?null:new Dxd(c);xvd(a,c,b.g);e=c==1?a.Yi(4,lud(b,0),null,0,i):a.Yi(6,b,null,-1,i);if(a.aj()){for(d=new Ayd(b);d.e!=d.i.gc();){f=a.cj(yyd(d),f)}if(!f){a.Zi(e)}else{f.Di(e);f.Ei()}}else{if(!f){a.Zi(e)}else{f.Di(e);f.Ei()}}}else{xvd(a,a.Ui(),a.Vi());a.Zi(a.Yi(6,(lmb(),imb),null,-1,i))}}else if(a.aj()){k=a.Ui();if(k>0){h=a.Vi();j=k;xvd(a,k,h);f=j<100?null:new Dxd(j);for(d=0;da.d[g.p]){c+=vHc(a.b,f)*BD(i.b,19).a;Vjb(a.a,leb(f))}}while(!_jb(a.a)){tHc(a.b,BD(ekb(a.a),19).a)}}return c} +function _dd(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new c7c(BD(ckd(a,(T7c(),N7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(ckd(a,H7c));(e==null||(tCb(e),e)<=0)&&(e=1.3);h=new Qkb;for(o=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(yyd(o),33);g=new sed(n);h.c[h.c.length]=g}m=BD(ckd(a,I7c),311);switch(m.g){case 3:q=Ydd(h,b,l.a,l.b,(j=d,tCb(e),e,j));break;case 1:q=Xdd(h,b,l.a,l.b,(k=d,tCb(e),e,k));break;default:q=Zdd(h,b,l.a,l.b,(i=d,tCb(e),e,i));}f=new red(q);p=aed(f,b,c,l.a,l.b,d,(tCb(e),e));vfd(a,p.a,p.b,false,true)} +function ukc(a,b){var c,d,e,f;c=b.b;f=new Skb(c.j);e=0;d=c.j;d.c=KC(SI,Phe,1,0,5,1);gkc(BD(Si(a.b,(Pcd(),vcd),(Ekc(),Dkc)),15),c);e=hkc(f,e,new alc,d);gkc(BD(Si(a.b,vcd,Ckc),15),c);e=hkc(f,e,new clc,d);gkc(BD(Si(a.b,vcd,Bkc),15),c);gkc(BD(Si(a.b,ucd,Dkc),15),c);gkc(BD(Si(a.b,ucd,Ckc),15),c);e=hkc(f,e,new elc,d);gkc(BD(Si(a.b,ucd,Bkc),15),c);gkc(BD(Si(a.b,Mcd,Dkc),15),c);e=hkc(f,e,new glc,d);gkc(BD(Si(a.b,Mcd,Ckc),15),c);e=hkc(f,e,new ilc,d);gkc(BD(Si(a.b,Mcd,Bkc),15),c);gkc(BD(Si(a.b,Ocd,Dkc),15),c);e=hkc(f,e,new Okc,d);gkc(BD(Si(a.b,Ocd,Ckc),15),c);gkc(BD(Si(a.b,Ocd,Bkc),15),c)} +function mbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Jdd(b,'Layer size calculation',1);k=Kje;j=Lje;e=false;for(h=new nlb(a.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 Zdd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Qje,25,a.c.length,15,1);m=new fub(new Ied);$tb(m,a);j=0;p=new Qkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Hkb(m.b,0),157);if(j>1&&med(g)*led(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Iib(p,0,f+1);l=new red(o);k=med(g)/led(g);i=aed(l,b,new o0b,c,d,e,k);L6c(T6c(l.e),i);yCb(bub(m,l));n=new Iib(p,f+1,p.c.length);$tb(m,n);p.c=KC(SI,Phe,1,0,5,1);j=0;Clb(h,h.length,0)}else{q=m.b.c.length==0?null:Hkb(m.b,0);q!=null&&eub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=med(g)*led(g);++j;p.c[p.c.length]=g}}return p} +function Vac(a){var b,c,d,e,f;d=BD(uNb(a,(Lyc(),kxc)),163);if(d==(Atc(),wtc)){for(c=new Sr(ur(Q_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Xac(b)){throw ubb(new u2c(Ane+O_b(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==ytc){for(f=new Sr(ur(T_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Xac(e)){throw ubb(new u2c(Ane+O_b(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 B9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Jdd(b,'Label dummy removal',1);d=Ddb(ED(uNb(a,(Lyc(),lyc))));e=Ddb(ED(uNb(a,pyc)));j=BD(uNb(a,Jwc),103);for(i=new nlb(a.b);i.a0&&dCc(a,h,l)}for(e=new nlb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Bje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} +function B2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);YQc(h7c(OC(GC(l1,1),iie,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=BD(h.Pb(),11);YQc(h7c(OC(GC(l1,1),iie,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=BD(i.Pb(),11);YQc(h7c(OC(GC(l1,1),iie,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=BD(f.Pb(),11);YQc(h7c(OC(GC(l1,1),iie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=rid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return kid(b,l,f)}}else{d=-1;Ucb==null&&(Ucb=new RegExp('\\d'));if(Ucb.test(String.fromCharCode(i))){d=kfb(c,vfb(46),j-1);if(d>=0){e=BD(cid(b,wid(b,c.substr(1,d-1)),false),58);k=0;try{k=Hcb(c.substr(d+1),Mie,Jhe)}catch(a){a=tbb(a);if(JD(a,127)){g=a;throw ubb(new mFd(g))}else throw ubb(a)}if(k=0){return c}switch(V1d(l1d(a,c))){case 2:{if(cfb('',j1d(a,c.Gj()).ne())){i=Y1d(l1d(a,c));h=X1d(l1d(a,c));k=m1d(a,b,i,h);if(k){return k}e=a1d(a,b);for(g=0,l=e.gc();g1){throw ubb(new Vdb(Dwe))}k=N6d(a.e.Sg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new a1b(m.b);klb(j.a)||klb(j.b);){i=BD(klb(j.a)?llb(j.a):llb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(h7c(OC(GC(l1,1),iie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&CNc(a,i,g,f,m)}}} +function TPc(a){var b,c,d,e,f,g;e=new Aib(a.e,0);d=new Aib(a.a,0);if(a.d){for(c=0;cKqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);SPc(a,a.b-g,f,d,e);rCb(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 V9d(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 k5b(a,b,c){var d,e,f,g;Jdd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new nlb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new pPc(1,f);n=oPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} +function fKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;VJd(a,null)}else{a.F=(tCb(b),b);d=gfb(b,vfb(60));if(d!=-1){e=b.substr(0,d);gfb(b,vfb(46))==-1&&!cfb(e,Fhe)&&!cfb(e,Ave)&&!cfb(e,Bve)&&!cfb(e,Cve)&&!cfb(e,Dve)&&!cfb(e,Eve)&&!cfb(e,Fve)&&!cfb(e,Gve)&&(e=Hve);c=jfb(b,vfb(62));c!=-1&&(e+=''+b.substr(c+1));VJd(a,e)}else{e=b;if(gfb(b,vfb(46))==-1){d=gfb(b,vfb(91));d!=-1&&(e=b.substr(0,d));if(!cfb(e,Fhe)&&!cfb(e,Ave)&&!cfb(e,Bve)&&!cfb(e,Cve)&&!cfb(e,Dve)&&!cfb(e,Eve)&&!cfb(e,Fve)&&!cfb(e,Gve)){e=Hve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}VJd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,5,f,b))} +function wMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,jje,25,p,15,1);l=0;for(k=new nlb(b.b);k.ag)&&Pqb(a.b,BD(q.b,17))}}++h}f=g}}}} +function k5c(b,c){var d;if(c==null||cfb(c,She)){return null}if(c.length==0&&b.k!=(X5c(),S5c)){return null}switch(b.k.g){case 1:return dfb(c,gse)?(Acb(),zcb):dfb(c,hse)?(Acb(),ycb):null;case 2:try{return leb(Hcb(c,Mie,Jhe))}catch(a){a=tbb(a);if(JD(a,127)){return null}else throw ubb(a)}case 4:try{return Gcb(c)}catch(a){a=tbb(a);if(JD(a,127)){return null}else throw ubb(a)}case 3:return c;case 5:f5c(b);return i5c(b,c);case 6:f5c(b);return j5c(b,b.a,c);case 7:try{d=h5c(b);d.Jf(c);return d}catch(a){a=tbb(a);if(JD(a,32)){return null}else throw ubb(a)}default:throw ubb(new Ydb('Invalid type set for this layout option.'));}} +function IWb(a){zWb();var b,c,d,e,f,g,h;h=new BWb;for(c=new nlb(a);c.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 MWb((kWb(),gWb));qXb(a,xWb,new _lb(OC(GC(bQ,1),Phe,368,0,[d])));g=new MWb(jWb);qXb(a,wWb,new _lb(OC(GC(bQ,1),Phe,368,0,[g])));e=new MWb(hWb);qXb(a,vWb,new _lb(OC(GC(bQ,1),Phe,368,0,[e])));f=new MWb(iWb);qXb(a,uWb,new _lb(OC(GC(bQ,1),Phe,368,0,[f])));CWb(d.c,gWb);CWb(e.c,hWb);CWb(f.c,iWb);CWb(g.c,jWb);h.a.c=KC(SI,Phe,1,0,5,1);Fkb(h.a,d.c);Fkb(h.a,Su(e.c));Fkb(h.a,f.c);Fkb(h.a,Su(g.c));return h} +function exd(a){var b;switch(a.d){case 1:{if(a.gj()){return a.o!=-2}break}case 2:{if(a.gj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.fj();switch(a.p){case 0:return b!=null&&Bcb(DD(b))!=Jbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Sbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Sbb(a.k)&Xie);case 6:return b!=null&&Jbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Sbb(a.k);case 7:return b!=null&&BD(b,184).a!=Sbb(a.k)<<16>>16;case 3:return b!=null&&Ddb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} +function iOd(a,b,c){var d,e,f,g;if(a.Ek()&&a.Dk()){g=jOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Ni(b);a.Ti(b,kOd(a,b,g));if(a.qk()){f=(e=BD(c,49),a.Ck()?a.Ak()?e.hh(a.b,uUd(BD(SKd(rjd(a.b),a._i()),18)).n,BD(SKd(rjd(a.b),a._i()).Xj(),26).Aj(),null):e.hh(a.b,YKd(e.Sg(),uUd(BD(SKd(rjd(a.b),a._i()),18))),null,null):e.hh(a.b,-1-a._i(),null,null));!BD(g,49).dh()&&(f=(d=BD(g,49),a.Ck()?a.Ak()?d.fh(a.b,uUd(BD(SKd(rjd(a.b),a._i()),18)).n,BD(SKd(rjd(a.b),a._i()).Xj(),26).Aj(),f):d.fh(a.b,YKd(d.Sg(),uUd(BD(SKd(rjd(a.b),a._i()),18))),null,f):d.fh(a.b,-1-a._i(),null,f)));!!f&&f.Ei()}jid(a.b)&&a.Zi(a.Yi(9,c,g,b,false));return g}}return c} +function Moc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Ddb(ED(uNb(a,(Lyc(),myc))));d=Ddb(ED(uNb(a,Ayc)));m=new Wfd;xNb(m,myc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=F1b(p.c);t=F1b(s.c);e=new Qkb;for(l=q;l<=t;l++){h=new a0b(a);$_b(h,(i0b(),f0b));xNb(h,(utc(),Ysc),j);xNb(h,Txc,(_bd(),Wbd));xNb(h,oyc,m);n=BD(Hkb(a.b,l),29);l==q?Y_b(h,n.a.c.length-c,n):Z_b(h,n);u=Ddb(ED(uNb(j,Xwc)));if(u<0){u=0;xNb(j,Xwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new G0b;F0b(g,(Pcd(),Ocd));E0b(g,h);g.n.b=o;i=new G0b;F0b(i,ucd);E0b(i,h);i.n.b=o;QZb(j,g);f=new TZb;sNb(f,j);xNb(f,hxc,null);PZb(f,i);QZb(f,r);Noc(h,j,f);e.c[e.c.length]=f;j=f}return e} +function rbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(X_b(a,(Pcd(),Ocd)).Kc().Pb(),11).e;n=BD(X_b(a,ucd).Kc().Pb(),11).g;h=i.c.length;t=z0b(BD(Hkb(a.j,0),11));while(h-->0){p=(sCb(0,i.c.length),BD(i.c[0],17));e=(sCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Ikb(s,e,0);RZb(p,e.d,f);PZb(e,null);QZb(e,null);o=p.a;b&&Csb(o,new c7c(t));for(d=Isb(e.a,0);d.b!=d.d.c;){c=BD(Wsb(d),8);Csb(o,new c7c(c))}r=p.b;for(m=new nlb(e.b);m.a0&&(g=$wnd.Math.max(g,HJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(kle),$wnd.Math.abs(l-e)<=kle||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,(Iy(),My(kle),$wnd.Math.abs(l-1)<=kle||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} +function MKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Lpb(a.b,b),123);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((mcd(),icd));g=0;a.A.Hc((odd(),ndd))&&RKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Ddb(ED(d.b.We((BKb(),AKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,HJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(kle),$wnd.Math.abs(m-f)<=kle||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,(Iy(),My(kle),$wnd.Math.abs(m-1)<=kle||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} +function WEc(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,fne,10,h+i,0,1);for(g=0;g0?UEc(this,this.f/this.a):MEc(b.g,b.d[0]).a!=null&&MEc(c.g,c.d[0]).a!=null?UEc(this,(Ddb(MEc(b.g,b.d[0]).a)+Ddb(MEc(c.g,c.d[0]).a))/2):MEc(b.g,b.d[0]).a!=null?UEc(this,MEc(b.g,b.d[0]).a):MEc(c.g,c.d[0]).a!=null&&UEc(this,MEc(c.g,c.d[0]).a)} +function AUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new cVb(nqb(s1));for(d=new nlb(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;xNb(a,(Lyc(),Dxc),(odd(),d=BD(fdb(H1),9),new wqb(d,BD($Bb(d,d.length),9),0)))} +function dFd(a,b,c,d,e,f){var g;if(!(b==null||!JEd(b,uEd,vEd))){throw ubb(new Vdb('invalid scheme: '+b))}if(!a&&!(c!=null&&gfb(c,vfb(35))==-1&&c.length>0&&(ACb(0,c.length),c.charCodeAt(0)!=47))){throw ubb(new Vdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&gnb(BEd,b.toLowerCase()))&&!(c==null||!JEd(c,xEd,yEd))){throw ubb(new Vdb(hve+c))}if(a&&b!=null&&gnb(BEd,b.toLowerCase())&&!_Ed(c)){throw ubb(new Vdb(hve+c))}if(!aFd(d)){throw ubb(new Vdb('invalid device: '+d))}if(!cFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+QEd(e);throw ubb(new Vdb(g))}if(!(f==null||gfb(f,vfb(35))==-1)){throw ubb(new Vdb('invalid query: '+f))}} +function jVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Jdd(b,'Calculate Graph Size',1);b.n&&!!a&&Odd(b,d6d(a),(kgd(),hgd));h=$le;i=$le;f=are;g=are;for(l=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(yyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(ckd(j,(U9c(),O8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(ckd(a,(U9c(),b9c)),116);m=new b7c(h-n.b,i-n.d);for(k=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(yyd(k),33);$kd(j,j.i-m.a);_kd(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);Zkd(a,q);Xkd(a,c);b.n&&!!a&&Odd(b,d6d(a),(kgd(),hgd))} +function qGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Qkb;for(g=new nlb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,jje,25,a.b.b.c.length,15,1);l=0;for(j=new nlb(a.b.b);j.a=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(iLie)&&h<10);yVb(a.c,new $Ub);NUb(a);uVb(a.c);xUb(a.f)} +function rZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Bcb(DD(uNb(c,(Lyc(),dxc))))){return}for(h=new nlb(c.j);h.a=2){i=Isb(c,0);g=BD(Wsb(i),8);h=BD(Wsb(i),8);while(h.a0&&iEb(j,true,(aad(),Z9c));h.k==(i0b(),d0b)&&jEb(j);Qhb(a.f,h,b)}}} +function Abc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Jdd(c,'Node promotion heuristic',1);a.g=b;zbc(a);a.q=BD(uNb(b,(Lyc(),pxc)),260);k=BD(uNb(a.g,oxc),19).a;f=new Ibc;switch(a.q.g){case 2:case 1:Cbc(a,f);break;case 3:a.q=(iAc(),hAc);Cbc(a,f);i=0;for(h=new nlb(a.a);h.aa.j){a.q=bAc;Cbc(a,f)}break;case 4:a.q=(iAc(),hAc);Cbc(a,f);j=0;for(e=new nlb(a.b);e.aa.k){a.q=eAc;Cbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Cbc(a,new Lbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Cbc(a,new Obc(l));break;default:Cbc(a,f);}Dbc(a,b);Ldd(c)} +function tUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Isb((new VRc(b)).a.d,0),new YRc(g))),86);o=l?BD(uNb(l,(iTc(),XSc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Dkb(a.a,leb(1));Dkb(a.b,k)}else{d=a.c[b.p][1];Mkb(a.a,j,leb(BD(Hkb(a.a,j),19).a+1-d));Mkb(a.b,j,Ddb(ED(Hkb(a.b,j)))+k-d*a.e)}(a.q==(iAc(),bAc)&&(BD(Hkb(a.a,j),19).a>a.j||BD(Hkb(a.a,j-1),19).a>a.j)||a.q==eAc&&(Ddb(ED(Hkb(a.b,j)))>a.k||Ddb(ED(Hkb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(Q_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Bbc(a,h);e=e+BD(l.a,19).a;i=i&&Bcb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new qgd(leb(e),(Acb(),i?true:false))} +function oPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Kqb;g=new Qkb;mPc(a,c,a.d.eg(),g,l);mPc(a,d,a.d.fg(),g,l);a.b=0.2*(p=nPc(KAb(new XAb(null,new Jub(g,16)),new tPc)),q=nPc(KAb(new XAb(null,new Jub(g,16)),new vPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=SNc(g,true,m),!a.e&&(a.e=new VOc(a)),ROc(a.e,r,g,a.b),undefined);qPc(g,m);sPc(g);n=-1;for(k=new nlb(g);k.ah} +function j6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(uNb(a,(Lyc(),Txc)),98);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 Qkb;l=new Qkb;for(e=new nlb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(rCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&tib(k)}}}} +function Qmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.zj()){throw ubb(new Vdb(pte+c.ne()+qte))}e=j1d((J6d(),H6d),c).Zk();if(e){return e.zj().Mh().Hh(e,d)}h=j1d(H6d,c)._k();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Gfb;for(g=i.Kc();g.Ob();){f=g.Pb();Dfb(m,h.zj().Mh().Hh(h,f));m.a+=' '}return kcb(m,m.a.length-1)}l=j1d(H6d,c).al();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.vj(d)){try{m=j.zj().Mh().Hh(j,d);if(m!=null){return m}}catch(a){a=tbb(a);if(!JD(a,102))throw ubb(a)}}}throw ubb(new Vdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,833).Ej();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?xQd(Kmd[0],BD(d,199)):ecb(d)} +function vQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Osb;h=new Osb;for(f=new nlb(a);f.a-1){for(e=Isb(h,0);e.b!=e.d.c;){d=BD(Wsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new nlb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new nlb(i.j);o.a0&&(c/=l);r=KC(UD,Qje,25,d.a.c.length,15,1);h=0;for(j=new nlb(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(i0?(e-=86400000):(e+=86400000);i=new gB(vbb(Bbb(b.q.getTime()),e))}k=new Ufb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw ubb(new Vdb("Missing trailing '"))}g+10&&c.c==0){!b&&(b=new Qkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Jkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Qkb),new nlb(c.b));f.aIkb(a,c,0)){return new qgd(e,c)}}else if(Ddb(MEc(e.g,e.d[0]).a)>Ddb(MEc(c.g,c.d[0]).a)){return new qgd(e,c)}}}for(h=(!c.e&&(c.e=new Qkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Qkb),g.b);vCb(0,i.c.length);_Bb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} +function vlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return She}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new wwb(Nhe,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Vfb(c.d)):Pfb(c.a,c.b);Mfb(c.a,'[...]')}else{h=CD(d);j=new Uqb(b);twb(c,vlb(h,j))}}else JD(d,177)?twb(c,Wlb(BD(d,177))):JD(d,190)?twb(c,Plb(BD(d,190))):JD(d,195)?twb(c,Qlb(BD(d,195))):JD(d,2011)?twb(c,Vlb(BD(d,2011))):JD(d,48)?twb(c,Tlb(BD(d,48))):JD(d,363)?twb(c,Ulb(BD(d,363))):JD(d,831)?twb(c,Slb(BD(d,831))):JD(d,104)&&twb(c,Rlb(BD(d,104)))}else{twb(c,d==null?She:ecb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} +function wQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=dtd(b,false,false);r=jfd(h);d&&(r=s7c(r));t=Ddb(ED(ckd(b,(BPb(),uPb))));q=(rCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Qkb;Fkb(k,new Iib(r,1,r.b));f=rQb(k,t+a.a);s=new WOb(f);sNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Nhb(a.b,etd(b)),266)):(s=BD(Nhb(a.b,gtd(b)),266))}i=etd(b);d&&(i=gtd(b));g=yQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new b7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new b7c((l.a+q.a)/2,l.b)}d?Qhb(a.d,b,new YOb(s,g,p,j)):Qhb(a.c,b,new YOb(s,g,p,j));Qhb(a.b,b,s);o=(!b.n&&(b.n=new ZTd(C2,b,1,7)),b.n);for(n=new Ayd(o);n.e!=n.i.gc();){m=BD(yyd(n),137);e=vQb(a,m,true,0,0);c.c[c.c.length]=e}} +function sPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Qkb;h=new Qkb;for(g=new nlb(a);g.a-1){for(f=new nlb(h);f.a0){continue}nOc(i,$wnd.Math.min(i.o,e.o-1));mOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} +function LQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=AQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new iSd(a,1,2,j,a.c);!c?(c=i):c.Di(i)}if(j!=b){if(JD(a.Cb,283)){if(a.Db>>16==-10){c=BD(a.Cb,283).mk(b,c)}else if(a.Db>>16==-15){!b&&(b=(eGd(),TFd));!j&&(j=(eGd(),TFd));if(a.Cb.mh()){i=new kSd(a.Cb,1,13,j,b,CLd(LSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Di(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(eGd(),WFd));JD(j,88)||(j=(eGd(),WFd));if(a.Cb.mh()){i=new kSd(a.Cb,1,10,j,b,CLd(QKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Di(i)}}}else if(JD(a.Cb,445)){h=BD(a.Cb,835);g=(!h.b&&(h.b=new MYd(new IYd)),h.b);for(f=(d=new mib((new dib(g.a)).a),new UYd(d));f.a.b;){e=BD(kib(f.a).cd(),87);c=LQd(e,HQd(e,h),c)}}}return c} +function N1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Bcb(DD(ckd(a,(Lyc(),dxc))));m=BD(ckd(a,Wxc),21);i=false;j=false;l=new Ayd((!a.c&&(a.c=new ZTd(E2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(yyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Phe,20,0,[(!f.d&&(f.d=new t5d(A2,f,8,5)),f.d),(!f.e&&(f.e=new t5d(A2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Lld(d)&&Bcb(DD(ckd(d,exc)));c=zLd((!d.b&&(d.b=new t5d(y2,d,4,7)),d.b),f)?a==Sod(Xsd(BD(lud((!d.c&&(d.c=new t5d(y2,d,5,8)),d.c),0),82))):a==Sod(Xsd(BD(lud((!d.b&&(d.b=new t5d(y2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((mcd(),icd))&&(!f.n&&(f.n=new ZTd(C2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Mrc(),Frc));j&&b.Fc((Mrc(),Grc))} +function ufd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(ckd(a,(U9c(),U8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((odd(),mdd))){k=BD(ckd(a,p9c),98);d=2;c=2;e=2;f=2;b=!Sod(a)?BD(ckd(a,v8c),103):BD(ckd(Sod(a),v8c),103);for(j=new Ayd((!a.c&&(a.c=new ZTd(E2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(yyd(j),118);l=BD(ckd(i,w9c),61);if(l==(Pcd(),Ncd)){l=gfd(i,b);ekd(i,w9c,l)}if(k==(_bd(),Wbd)){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 vfd(a,h,g,true,true)} +function knc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(FAb(UAb(IAb(new XAb(null,new Jub(b.d,16)),new onc(c)),new qnc(c)),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Cyb)]))),15);l=Jhe;k=Mie;for(i=new nlb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Hkb(r.c.a,m),10);d=H4b(l);n=!(o6c(d,w,c[0])||j6c(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.p0&&(b.a+=Nhe,b);tfd(BD(yyd(h),160),b)}b.a+=bne;i=new Jyd((!d.c&&(d.c=new t5d(y2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=Nhe,b);tfd(BD(yyd(i),160),b)}b.a+=')'}}} +function x2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(uNb(a,(utc(),Ysc)),79);if(!f){return}d=a.a;e=new c7c(c);L6c(e,B2b(a));if(e_b(a.d.i,a.c.i)){m=a.c;l=h7c(OC(GC(l1,1),iie,8,0,[m.n,m.a]));$6c(l,c)}else{l=z0b(a.c)}Fsb(d,l,d.a,d.a.a);n=z0b(a.d);uNb(a,stc)!=null&&L6c(n,BD(uNb(a,stc),8));Fsb(d,n,d.c.b,d.c);m7c(d,e);g=dtd(f,true,true);fmd(g,BD(lud((!f.b&&(f.b=new t5d(y2,f,4,7)),f.b),0),82));gmd(g,BD(lud((!f.c&&(f.c=new t5d(y2,f,5,8)),f.c),0),82));dfd(d,g);for(k=new nlb(a.b);k.a=0){i=null;h=new Aib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Fqe),($wnd.Math.abs(g-1)<=Fqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Fqe),($wnd.Math.abs(0-h)<=Fqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Fqe),($wnd.Math.abs(h-1)<=Fqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} +function u6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new tsb(new msb(a));l.b!=l.c.a.d;){k=ssb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Sg();for(p=0,u=(g.i==null&&OKd(g),g.i).length;p=0&&p=j.c.c.length?(k=FJc((i0b(),g0b),f0b)):(k=FJc((i0b(),f0b),f0b));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 RNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Qkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(rCb(c.b!=0),BD(Msb(c,c.a.a),112));Iwb(v.a,t)!=null;t.g=l--;UNc(t,b,c,d)}while(b.b!=0){u=(rCb(b.b!=0),BD(Msb(b,b.a.a),112));Iwb(v.a,u)!=null;u.g=m++;UNc(u,b,c,d)}j=Mie;for(r=(g=new Xwb((new bxb((new Fjb(v.a)).a)).b),new Mjb(g));rib(r.a.a);){q=(f=Vwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Phe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Phe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Hkb(k,Aub(e,k.c.length)),112);Iwb(v.a,i)!=null;i.g=m++;UNc(i,b,c,d);k.c=KC(SI,Phe,1,0,5,1)}}s=a.c.length+1;for(o=new nlb(a);o.a0){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 c6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new b7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new nlb(a.a);j.a0){a.c[b.c.p][b.p].d+=Bub(a.i,24)*gke*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 l5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new nlb(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 k3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new nlb(a);j.a0||k.j==Ocd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new nlb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new nlb(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 kMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new nlb(a.a.b);e.aLje||b.o==$Lc&&k0&&$kd(r,u*w);v>0&&_kd(r,v*A)}rtb(a.b,new BQb);b=new Qkb;for(h=new mib((new dib(a.c)).a);h.b;){g=kib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=dtd(d,false,false);l=nQb(etd(d),jfd(e),c);dfd(l,e);t=ftd(d);if(!!t&&Ikb(b,t,0)==-1){b.c[b.c.length]=t;oQb(t,(rCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new mib((new dib(a.d)).a);q.b;){p=kib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=dtd(d,false,false);l=nQb(gtd(d),s7c(jfd(e)),c);l=s7c(l);dfd(l,e);t=htd(d);if(!!t&&Ikb(b,t,0)==-1){b.c[b.c.length]=t;oQb(t,(rCb(l.b!=0),BD(l.c.b.c,8)),c)}}} +function XVc(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;if(c.c.length!=0){o=new Qkb;for(n=new nlb(c);n.a1){n=new VQc(o,t,d);qeb(t,new LQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Kkb(f,k.b)}}if(h.a.gc()>1){n=new VQc(o,h,d);qeb(h,new NQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Kkb(f,k.b)}}}} +function WWc(a){n4c(a,new A3c(H3c(L3c(I3c(K3c(J3c(new N3c,ore),'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 ZWc),ore)));l4c(a,ore,qqe,Fsd(QWc));l4c(a,ore,rme,Fsd(TWc));l4c(a,ore,Ame,Fsd(JWc));l4c(a,ore,Ome,Fsd(KWc));l4c(a,ore,zme,Fsd(LWc));l4c(a,ore,Bme,Fsd(IWc));l4c(a,ore,yme,Fsd(MWc));l4c(a,ore,Cme,Fsd(PWc));l4c(a,ore,kre,Fsd(GWc));l4c(a,ore,jre,Fsd(HWc));l4c(a,ore,nre,Fsd(NWc));l4c(a,ore,hre,Fsd(OWc));l4c(a,ore,ire,Fsd(RWc));l4c(a,ore,lre,Fsd(SWc));l4c(a,ore,mre,Fsd(UWc))} +function KIb(a){var b;this.r=Cy(new NIb,new RIb);this.b=new Qpb(BD(Qb(E1),289));this.p=new Qpb(BD(Qb(E1),289));this.i=new Qpb(BD(Qb(DN),289));this.e=a;this.o=new c7c(a.rf());this.D=a.Df()||Bcb(DD(a.We((U9c(),I8c))));this.A=BD(a.We((U9c(),U8c)),21);this.B=BD(a.We(Z8c),21);this.q=BD(a.We(p9c),98);this.u=BD(a.We(t9c),21);if(!pcd(this.u)){throw ubb(new u2c('Invalid port label placement: '+this.u))}this.v=Bcb(DD(a.We(v9c)));this.j=BD(a.We(S8c),21);if(!Fbd(this.j)){throw ubb(new u2c('Invalid node label placement: '+this.j))}this.n=BD(Yfd(a,Q8c),116);this.k=Ddb(ED(Yfd(a,M9c)));this.d=Ddb(ED(Yfd(a,L9c)));this.w=Ddb(ED(Yfd(a,T9c)));this.s=Ddb(ED(Yfd(a,N9c)));this.t=Ddb(ED(Yfd(a,O9c)));this.C=BD(Yfd(a,R9c),142);this.c=2*this.d;b=!this.B.Hc((Ddd(),udd));this.f=new lIb(0,b,0);this.g=new lIb(1,b,0);kIb(this.f,(fHb(),dHb),this.g)} +function Ggd(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;t=0;o=0;n=0;m=1;for(s=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(yyd(s),33);m+=sr(new Sr(ur(Wsd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(yyd(r),33);C=e.b+(Bub(b,26)*dke+Bub(b,27)*eke)*(i-q.g);D=e.b+(Bub(b,26)*dke+Bub(b,27)*eke)*(h-q.f);$kd(q,C);_kd(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(yyd(v),33);for(k=new Sr(ur(Wsd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Kld(j)||Fgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;vfd(a,A,w,false,true)} +function Icb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw ubb(new Neb(She))}j=a;f=a.length;i=false;if(f>0){b=(ACb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw ubb(new Neb(Jje+j+'"'))}while(a.length>0&&(ACb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Meb(),Keb)[10]){throw ubb(new Neb(Jje+j+'"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(xbb(l,h)<0){throw ubb(new Neb(Jje+j+'"'))}l=Hbb(l,k)}l=Pbb(l,d)}if(xbb(l,0)>0){throw ubb(new Neb(Jje+j+'"'))}if(!i){l=Ibb(l);if(xbb(l,0)<0){throw ubb(new Neb(Jje+j+'"'))}}return l} +function U6d(a,b){S6d();var c,d,e,f,g,h,i;this.a=new X6d(this);this.b=a;this.c=b;this.f=Z1d(l1d((J6d(),H6d),b));if(this.f.dc()){if((h=o1d(H6d,a))==b){this.e=true;this.d=new Qkb;this.f=new jFd;this.f.Fc(Awe);BD(Q1d(k1d(H6d,YJd(a)),''),26)==a&&this.f.Fc(p1d(H6d,YJd(a)));for(e=b1d(H6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch(V1d(l1d(H6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(Z1d(l1d(H6d,d)));break}}}}else{L6d();if(BD(b,66).Nj()){this.e=true;this.f=null;this.d=new Qkb;for(g=0,i=(a.i==null&&OKd(a),a.i).length;g=0&&g0&&(BD(Lpb(a.b,b),123).a.b=c)} +function a3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Jdd(b,'Comment pre-processing',1);c=0;i=new nlb(a.a);while(i.a0){j=(ACb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(ACb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=cfb('%',h)?null:LEd(h);e=0;if(k){try{e=Hcb(c.substr(m+2),Mie,Jhe)}catch(a){a=tbb(a);if(JD(a,127)){i=a;throw ubb(new mFd(i))}else throw ubb(a)}}for(r=kRd(b.Vg());r.Ob();){p=HRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:cfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Hcb(c.substr(l+1),Mie,Jhe)}catch(a){a=tbb(a);if(JD(a,127)){o=c}else throw ubb(a)}}o=cfb('%',o)?null:LEd(o);for(q=kRd(b.Vg());q.Ob();){p=HRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:cfb(o,s))&&d--==0){return g}}}return null}}return mid(b,c)} +function e6b(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,F;w=new Qkb;for(o=new nlb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!wrb()){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[cke]=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 Zce(a){Xce();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=KC(TD,Vie,25,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++]=Wce[o];f[g++]=Wce[p|j<<4];f[g++]=Wce[k<<2|q];f[g++]=Wce[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++]=Wce[o];f[g++]=Wce[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++]=Wce[o];f[g++]=Wce[p|j<<4];f[g++]=Wce[k<<2];f[g++]=61}return yfb(f,0,f.length)} +function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Mie&&dB(b,a.p-ije);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-ije,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,vbb(Hbb(zbb(Bbb(b.q.getTime()),Wie),Wie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-ije-80);Fbb(Bbb(b.q.getTime()),Bbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-ije+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();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Mie){f=b.q.getTimezoneOffset();cB(b,vbb(Bbb(b.q.getTime()),(a.o-f)*60*Wie))}return true} +function y2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=uNb(b,(utc(),Ysc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new c7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(ckd(o,(Lyc(),Gxc)),174);if(tqb(u,(Ddd(),vdd))){n=BD(ckd(o,Ixc),116);v_b(n,f.a);y_b(n,f.d);w_b(n,f.b);x_b(n,f.c)}c=new Qkb;for(k=new nlb(b.a);k.a0&&Dkb(a.p,k);Dkb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Mkb(a.a,h,leb(n));Mkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} +function Pcd(){Pcd=bcb;var a;Ncd=new Tcd(jle,0);vcd=new Tcd(sle,1);ucd=new Tcd(tle,2);Mcd=new Tcd(ule,3);Ocd=new Tcd(vle,4);Acd=(lmb(),new yob((a=BD(fdb(E1),9),new wqb(a,BD($Bb(a,a.length),9),0))));Bcd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[])));wcd=Up(pqb(ucd,OC(GC(E1,1),Yme,61,0,[])));Jcd=Up(pqb(Mcd,OC(GC(E1,1),Yme,61,0,[])));Lcd=Up(pqb(Ocd,OC(GC(E1,1),Yme,61,0,[])));Gcd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[Mcd])));zcd=Up(pqb(ucd,OC(GC(E1,1),Yme,61,0,[Ocd])));Icd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[Ocd])));Ccd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[ucd])));Kcd=Up(pqb(Mcd,OC(GC(E1,1),Yme,61,0,[Ocd])));xcd=Up(pqb(ucd,OC(GC(E1,1),Yme,61,0,[Mcd])));Fcd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[ucd,Ocd])));ycd=Up(pqb(ucd,OC(GC(E1,1),Yme,61,0,[Mcd,Ocd])));Hcd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[Mcd,Ocd])));Dcd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[ucd,Mcd])));Ecd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[ucd,Mcd,Ocd])))} +function bSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Osb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Isb(b,0);t.b!=t.d.c;){r=BD(Wsb(t),86);if(PD(o)!==PD(uNb(r,(iTc(),WSc)))){o=GD(uNb(r,WSc));i=0}o!=null?(h=o+eSc(i++,d)):(h=eSc(i++,d));xNb(r,WSc,h);for(q=(e=Isb((new VRc(r)).a.d,0),new YRc(e));Vsb(q.a);){p=BD(Wsb(q.a),188).c;Fsb(n,p,n.c.b,n.c);xNb(p,WSc,h)}}m=new Kqb;for(g=0;g=i){rCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Dkb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Fkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);tib(r)}}}if(!e){e=new OCc;e.c=j;e.a=i;zib(r,e);Dkb(e.b,l)}}h=b.b;k=0;for(q=new nlb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} +function _bc(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;Jdd(b,Dne,1);p=new Qkb;w=new Qkb;for(j=new nlb(a.b);j.a0&&(t-=n);g_b(g,t);k=0;for(m=new nlb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}zFb(CFb(BFb(DFb(AFb(new EFb,1),100),n),q))}}}}}}} +function LEd(a){DEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=gfb(a,vfb(37));if(e<0){return a}else{i=new Vfb(a.substr(0,e));b=KC(SD,ste,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&WEd((ACb(e+1,a.length),a.charCodeAt(e+1)),sEd,tEd)&&WEd((ACb(e+2,a.length),a.charCodeAt(e+2)),sEd,tEd)){c=$Ed((ACb(e+1,a.length),a.charCodeAt(e+1)),(ACb(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:{Jfb(i,((b[0]&31)<<6|b[1]&63)&Xie);break}case 3:{Jfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&Xie);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),iie,2,6,[kje,lje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),iie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(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 yA(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(gw&&(o.c=w-o.b);Dkb(g.d,new ALb(o,aLb(g,o)));s=b==vcd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==vcd?a.t:-a.t;t=bLb((g.e=s,g));t>0&&(BD(Lpb(a.b,b),123).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);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 RPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Kqb;for(i=new Ayd(a);i.e!=i.i.gc();){h=BD(yyd(i),33);c=new Sqb;Qhb(NPb,h,c);n=new _Pb;e=BD(FAb(new XAb(null,new Kub(new Sr(ur(Vsd(h).a.Kc(),new Sq)))),Vyb(n,Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Cyb)])))),83);QPb(c,BD(e.xc((Acb(),true)),14),new bQb);d=BD(FAb(IAb(BD(e.xc(false),15).Lc(),new dQb),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[Cyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ftd(f);if(m){j=BD(Wd(hrb(b.f,m)),21);if(!j){j=TPb(m);irb(b.f,m,j)}ye(c,j)}}e=BD(FAb(new XAb(null,new Kub(new Sr(ur(Wsd(h).a.Kc(),new Sq)))),Vyb(n,Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[Cyb])))),83);QPb(c,BD(e.xc(true),14),new fQb);d=BD(FAb(IAb(BD(e.xc(false),15).Lc(),new hQb),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[Cyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=htd(k);if(m){j=BD(Wd(hrb(b.f,m)),21);if(!j){j=TPb(m);irb(b.f,m,j)}ye(c,j)}}}} +function qhb(a,b){ohb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=xbb(a,0)<0;i&&(a=Ibb(a));if(xbb(a,0)==0){switch(b){case 0:return '0';case 1:return Vje;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 Tfb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Mie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,Vie,25,k+1,15,1);c=k;p=a;do{j=p;p=zbb(p,10);l[--c]=Sbb(vbb(48,Pbb(j,Hbb(p,10))))&Xie}while(xbb(p,0)!=0);e=Pbb(Pbb(Pbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return yfb(l,c,k-c)}if(b>0&&xbb(e,-6)>=0){if(xbb(e,0)>=0){f=c+Sbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return yfb(l,c,k-c+1)}for(g=2;Fbb(g,vbb(Ibb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return yfb(l,c,k-c)}o=c+1;d=k;m=new Ufb;i&&(m.a+='-',m);if(d-o>=1){Jfb(m,l[c]);m.a+='.';m.a+=yfb(l,c+1,k-c-1)}else{m.a+=yfb(l,c,k-c)}m.a+='E';xbb(e,0)>0&&(m.a+='+',m);m.a+=''+Tbb(e);return m.a} +function eQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Phe,1,0,5,1);a.i.c=KC(SI,Phe,1,0,5,1);a.g.a.$b();if(b){for(g=new nlb(b.a);g.a=1){if(v-j>0&&o>=0){$kd(l,l.i+u);_kd(l,l.j+i*j)}else if(v-j<0&&n>=0){$kd(l,l.i+u*v);_kd(l,l.j+i)}}}}ekd(a,(U9c(),U8c),(odd(),f=BD(fdb(H1),9),new wqb(f,BD($Bb(f,f.length),9),0)));return new b7c(w,k)} +function Tfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Sod(Xsd(BD(lud((!a.b&&(a.b=new t5d(y2,a,4,7)),a.b),0),82)));o=Sod(Xsd(BD(lud((!a.c&&(a.c=new t5d(y2,a,5,8)),a.c),0),82)));l=n==o;h=new _6c;b=BD(ckd(a,(Vad(),Oad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a).i==0){c=(Ahd(),e=new mmd,e);rtd((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a).i>1){m=new Jyd((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a));while(m.e!=m.i.gc()){zyd(m)}}dfd(b,BD(lud((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a),0),202))}if(l){for(d=new Ayd((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(yyd(d),202);for(j=new Ayd((!c.a&&(c.a=new sMd(x2,c,5)),c.a));j.e!=j.i.gc();){i=BD(yyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Ayd((!a.n&&(a.n=new ZTd(C2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(yyd(g),137);k=BD(ckd(f,Uad),8);!!k&&Ykd(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 uMc(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;t=b.c.length;e=new QLc(a.a,c,null,null);B=KC(UD,Qje,25,t,15,1);p=KC(UD,Qje,25,t,15,1);o=KC(UD,Qje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new nlb(a.a.b);l.an){if(f){Esb(w,m);Esb(B,leb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}$kd(h,H);_kd(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(Flme;C=$wnd.Math.abs(m.b-o.b)>lme;(!c&&B&&C||c&&(B||C))&&Csb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(rCb(d.b!=0),BD(d.c.b.c,8)));aZb(n,l,p);if(zZb(e)==A){if(P_b(A.i)!=e.a){p=new _6c;X$b(p,P_b(A.i),s)}xNb(q,stc,p)}bZb(n,q,s);k.a.zc(n,k)}PZb(q,v);QZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);PZb(i,null);QZb(i,null)}Ldd(b)} +function zKb(a,b){var c,d,e,f,g,h,i,j,k,l;i=BD(BD(Qc(a.r,b),21),84);f=aKb(a,b);for(h=i.Kc();h.Ob();){g=BD(h.Pb(),111);if(!g.c||g.c.d.c.length<=0){continue}l=g.b.rf();j=g.c;k=j.i;k.b=(e=j.n,j.e.a+e.b+e.c);k.a=(d=j.n,j.e.b+d.d+d.a);switch(b.g){case 1:if(g.a){k.c=(l.a-k.b)/2;ZHb(j,(MHb(),JHb))}else if(f){k.c=-k.b-a.s;ZHb(j,(MHb(),LHb))}else{k.c=l.a+a.s;ZHb(j,(MHb(),KHb))}k.d=-k.a-a.t;$Hb(j,(DIb(),AIb));break;case 3:if(g.a){k.c=(l.a-k.b)/2;ZHb(j,(MHb(),JHb))}else if(f){k.c=-k.b-a.s;ZHb(j,(MHb(),LHb))}else{k.c=l.a+a.s;ZHb(j,(MHb(),KHb))}k.d=l.b+a.t;$Hb(j,(DIb(),CIb));break;case 2:if(g.a){c=a.v?k.a:BD(Hkb(j.d,0),181).rf().b;k.d=(l.b-c)/2;$Hb(j,(DIb(),BIb))}else if(f){k.d=-k.a-a.t;$Hb(j,(DIb(),AIb))}else{k.d=l.b+a.t;$Hb(j,(DIb(),CIb))}k.c=l.a+a.s;ZHb(j,(MHb(),KHb));break;case 4:if(g.a){c=a.v?k.a:BD(Hkb(j.d,0),181).rf().b;k.d=(l.b-c)/2;$Hb(j,(DIb(),BIb))}else if(f){k.d=-k.a-a.t;$Hb(j,(DIb(),AIb))}else{k.d=l.b+a.t;$Hb(j,(DIb(),CIb))}k.c=-k.b-a.s;ZHb(j,(MHb(),LHb));}f=false}} +function JQb(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 BD(a.Xb(0),231)}else if(a.gc()<=0){return new jRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Jhe;l=Jhe;i=Mie;j=Mie;for(n=new nlb(c.e);n.ah){t=0;u+=g+r;g=0}IQb(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 Hoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new o7c;switch(a.a.g){case 3:m=BD(uNb(b.e,(utc(),ptc)),15);n=BD(uNb(b.j,ptc),15);o=BD(uNb(b.f,ptc),15);c=BD(uNb(b.e,ntc),15);d=BD(uNb(b.j,ntc),15);e=BD(uNb(b.f,ntc),15);g=new Qkb;Fkb(g,m);n.Jc(new Koc);Fkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Fkb(g,o);f=new Qkb;Fkb(f,c);Fkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Fkb(f,e);xNb(b.f,ptc,g);xNb(b.f,ntc,f);xNb(b.f,qtc,b.f);xNb(b.e,ptc,null);xNb(b.e,ntc,null);xNb(b.j,ptc,null);xNb(b.j,ntc,null);break;case 1:ye(k,b.e.a);Csb(k,b.i.n);ye(k,Su(b.j.a));Csb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Nsb(b.f.a);ye(b.f.a,k);PZb(b.f,b.e.c);h=BD(uNb(b.e,(Lyc(),hxc)),74);j=BD(uNb(b.j,hxc),74);i=BD(uNb(b.f,hxc),74);if(!!h||!!j||!!i){l=new o7c;Foc(l,i);Foc(l,j);Foc(l,h);xNb(b.f,hxc,l)}PZb(b.j,null);QZb(b.j,null);PZb(b.e,null);QZb(b.e,null);Z_b(b.a,null);Z_b(b.i,null);!!b.g&&Hoc(a,b.g)} +function Yce(a){Xce();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=qfb(a);o=_ce(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,ste,25,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=KC(SD,ste,25,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(!$ce(g=f[k++])||!$ce(h=f[k++])){return null}b=Vce[g];c=Vce[h];i=f[k++];j=f[k++];if(Vce[i]==-1||Vce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,ste,25,n*3+1,15,1);Zfb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=Vce[i];if((d&3)!=0)return null;q=KC(SD,ste,25,n*3+2,15,1);Zfb(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=Vce[i];e=Vce[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 Rbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Jdd(b,Dne,1);o=BD(uNb(a,(Lyc(),Qwc)),218);for(e=new nlb(a.b);e.a=2){p=true;m=new nlb(f.j);c=BD(llb(m),11);n=null;while(m.a0){e=BD(Hkb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(hBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Kje;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 WGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new F6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new E6c;if(a.c){for(g=new nlb(b.wf());g.aj&&(d.a+=xfb(KC(TD,Vie,25,-j,15,1)));d.a+='Is';if(gfb(i,vfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(uNb(d,(utc(),ttc)),15);if(!r){f=new Qkb;xNb(d,ttc,f)}else if(m){f=r}else{e=BD(uNb(d,rsc),15);if(!e){f=new Qkb;xNb(d,rsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(uNb(d,(utc(),rsc)),15);if(!e){f=new Qkb;xNb(d,rsc,f)}else if(l){f=e}else{r=BD(uNb(d,ttc),15);if(!r){f=new Qkb;xNb(d,ttc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);xNb(a,(utc(),tsc),c);if(b.d==c){QZb(b,null);c.e.c.length+c.g.c.length==0&&E0b(c,null);c3b(c)}else{PZb(b,null);c.e.c.length+c.g.c.length==0&&E0b(c,null)}Nsb(b.a)} +function _nc(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,F,G,H;s=new Aib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Sqb;A=new ysb;while(s.b=a.a){d=D6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Dkb(h,new qgd(s,d))}}B=new Qkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new G1b(a.b),zib(q,C),rCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,fQc(t,g,s,A)));if(j0){m=k<100?null:new Dxd(k);j=new vud(b);o=j.g;r=KC(WD,jje,25,k,15,1);d=0;u=new uud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,jje,25,2*r.length,15,1);Zfb(q,0,r,0,d)}r[d++]=e;rtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,jje,25,d,15,1);Zfb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){oud(a,r[g])}if(d!=k){for(e=k;--e>=d;){oud(j,e)}q=r;r=KC(WD,jje,25,d,15,1);Zfb(q,0,r,0,d)}b=j}}}else{b=xtd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){oud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?ALd(a,4,b.Kc().Pb(),null,r[0],p):ALd(a,6,b,r,r[0],p);m=c<100?null:new Dxd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=L2d(a,BD(n,72),m)}if(!m){Phd(a.e,l)}else{m.Di(l);m.Ei()}}else{m=Qxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=L2d(a,BD(n,72),m)}!!m&&m.Ei()}return true}else{return false}} +function eYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new lYb(b);c.a||ZXb(b);j=YXb(b);i=new Hp;q=new zYb;for(p=new nlb(b.a);p.a0||c.o==_Lc&&e0){l=BD(Hkb(m.c.a,g-1),10);B=hBc(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(gg?znc(a,b,c):znc(a,c,b);return eg?1:0}}d=BD(uNb(b,(utc(),Xsc)),19).a;f=BD(uNb(c,Xsc),19).a;d>f?znc(a,b,c):znc(a,c,b);return df?1:0} +function q2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Bcb(DD(ckd(b,(U9c(),_8c))))){return lmb(),lmb(),imb}j=(!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a).i!=0;l=o2c(b);k=!l.dc();if(j||k){e=BD(ckd(b,B9c),149);if(!e){throw ubb(new u2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=z3c(e,(xsd(),tsd));m2c(b);if(!j&&k&&!s){return lmb(),lmb(),imb}i=new Qkb;if(PD(ckd(b,F8c))===PD((dbd(),abd))&&(z3c(e,qsd)||z3c(e,psd))){n=l2c(a,b);o=new Osb;ye(o,(!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(rCb(o.b!=0),Msb(o,o.a.a)),33);m2c(m);r=PD(ckd(m,F8c))===PD(cbd);if(r||dkd(m,k8c)&&!y3c(e,ckd(m,B9c))){h=q2c(a,m,c,d);Fkb(i,h);ekd(m,F8c,cbd);cfd(m)}else{ye(o,(!m.a&&(m.a=new ZTd(D2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a).i;for(g=new Ayd((!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(yyd(g),33);h=q2c(a,f,c,d);Fkb(i,h);cfd(f)}}for(q=new nlb(i);q.a=0?(n=Ucd(h)):(n=Rcd(Ucd(h)));a.Ye(Yxc,n)}j=new _6c;m=false;if(a.Xe(Rxc)){Y6c(j,BD(a.We(Rxc),8));m=true}else{X6c(j,g.a/2,g.b/2)}switch(n.g){case 4:xNb(k,kxc,(Atc(),wtc));xNb(k,zsc,(Eqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);F0b(l,(Pcd(),ucd));m||(j.a=g.a);j.a-=g.a;break;case 2:xNb(k,kxc,(Atc(),ytc));xNb(k,zsc,(Eqc(),Bqc));k.o.b=g.b;p<0&&(k.o.a=-p);F0b(l,(Pcd(),Ocd));m||(j.a=0);break;case 1:xNb(k,Msc,(csc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);F0b(l,(Pcd(),Mcd));m||(j.b=g.b);j.b-=g.b;break;case 3:xNb(k,Msc,(csc(),_rc));k.o.a=g.a;p<0&&(k.o.b=-p);F0b(l,(Pcd(),vcd));m||(j.b=0);}Y6c(l.n,j);xNb(k,Rxc,j);if(b==Vbd||b==Xbd||b==Wbd){o=0;if(b==Vbd&&a.Xe(Uxc)){switch(n.g){case 1:case 2:o=BD(a.We(Uxc),19).a;break;case 3:case 4:o=-BD(a.We(Uxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==Xbd&&(o/=e.b);break;case 1:case 3:o=f.a;b==Xbd&&(o/=e.a);}}xNb(k,ftc,o)}xNb(k,Fsc,n);return k} +function wGc(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;c=Ddb(ED(uNb(a.a.j,(Lyc(),Cwc))));if(c<-1||!a.a.i||acd(BD(uNb(a.a.o,Txc),98))||U_b(a.a.o,(Pcd(),ucd)).gc()<2&&U_b(a.a.o,Ocd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Qkb;for(i=a.a.e,j=0,k=i.length;j=c} +function jvd(){hvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=kvd((lmb(),new knb(new Zib(gvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=kvd((lmb(),new knb(new Zib(gvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=kvd((lmb(),new knb(new Zib(gvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':nvd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':lvd(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===pke&&typeof self!==pke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==pke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} +function X9d(a){if(a.N)return;a.N=true;a.b=Gnd(a,0);Fnd(a.b,0);Fnd(a.b,1);Fnd(a.b,2);a.bb=Gnd(a,1);Fnd(a.bb,0);Fnd(a.bb,1);a.fb=Gnd(a,2);Fnd(a.fb,3);Fnd(a.fb,4);Lnd(a.fb,5);a.qb=Gnd(a,3);Fnd(a.qb,0);Lnd(a.qb,1);Lnd(a.qb,2);Fnd(a.qb,3);Fnd(a.qb,4);Lnd(a.qb,5);Fnd(a.qb,6);a.a=Hnd(a,4);a.c=Hnd(a,5);a.d=Hnd(a,6);a.e=Hnd(a,7);a.f=Hnd(a,8);a.g=Hnd(a,9);a.i=Hnd(a,10);a.j=Hnd(a,11);a.k=Hnd(a,12);a.n=Hnd(a,13);a.o=Hnd(a,14);a.p=Hnd(a,15);a.q=Hnd(a,16);a.s=Hnd(a,17);a.r=Hnd(a,18);a.t=Hnd(a,19);a.u=Hnd(a,20);a.v=Hnd(a,21);a.w=Hnd(a,22);a.B=Hnd(a,23);a.A=Hnd(a,24);a.C=Hnd(a,25);a.D=Hnd(a,26);a.F=Hnd(a,27);a.G=Hnd(a,28);a.H=Hnd(a,29);a.J=Hnd(a,30);a.I=Hnd(a,31);a.K=Hnd(a,32);a.M=Hnd(a,33);a.L=Hnd(a,34);a.P=Hnd(a,35);a.Q=Hnd(a,36);a.R=Hnd(a,37);a.S=Hnd(a,38);a.T=Hnd(a,39);a.U=Hnd(a,40);a.V=Hnd(a,41);a.X=Hnd(a,42);a.W=Hnd(a,43);a.Y=Hnd(a,44);a.Z=Hnd(a,45);a.$=Hnd(a,46);a._=Hnd(a,47);a.ab=Hnd(a,48);a.cb=Hnd(a,49);a.db=Hnd(a,50);a.eb=Hnd(a,51);a.gb=Hnd(a,52);a.hb=Hnd(a,53);a.ib=Hnd(a,54);a.jb=Hnd(a,55);a.kb=Hnd(a,56);a.lb=Hnd(a,57);a.mb=Hnd(a,58);a.nb=Hnd(a,59);a.ob=Hnd(a,60);a.pb=Hnd(a,61)} +function e5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new nlb(a);q.aj&&(sCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Kkb(b,(sCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(qZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(rZc(b,k,e,i,c,j,d)){l=true;continue}else if(sZc(k,e)){e.c=true;l=true;continue}}else if(sZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(sZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{YZc(e.q)}}return l} +function aed(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 nlb(a.b);j.ap){if(f){Esb(w,n);Esb(B,leb(k.b-1));Dkb(a.d,o);h.c=KC(SI,Phe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ped(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Fkb(a.a,h);Dkb(a.d,BD(Hkb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new nlb(b.j);p.ae){f=m.a-e;g=Jhe;d.c=KC(SI,Phe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(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 G0b;E0b(n,b);F0b(n,(Pcd(),vcd));n.n.a=b.o.a/2;r=new G0b;E0b(r,b);F0b(r,Mcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new nlb(d);i.a=j.b?PZb(h,r):PZb(h,n)}else{j=BD(Lsb(h.a),8);q=h.a.b==0?z0b(h.c):BD(Hsb(h.a),8);q.b>=j.b?QZb(h,r):QZb(h,n)}l=BD(uNb(h,(Lyc(),hxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} +function _qd(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;D=null;G=b;F=Mqd(a,$sd(c),G);Gkd(F,Wpd(G,Qte));H=BD(oo(a.g,Qpd(aC(G,xte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Qpd(m));I=BD(oo(a.j,d),118);if(!H){h=Rpd(G);o="An edge must have a source node (edge id: '"+h;p=o+Vte;throw ubb(new Zpd(p))}if(!!I&&!Hb(hpd(I),H)){i=Wpd(G,Qte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+Vte;throw ubb(new Zpd(r))}B=(!F.b&&(F.b=new t5d(y2,F,4,7)),F.b);f=null;I?(f=I):(f=H);rtd(B,f);J=BD(oo(a.g,Qpd(aC(G,Yte))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Qpd(n));K=BD(oo(a.j,e),118);if(!J){l=Rpd(G);s="An edge must have a target node (edge id: '"+l;t=s+Vte;throw ubb(new Zpd(t))}if(!!K&&!Hb(hpd(K),J)){j=Wpd(G,Qte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+Vte;throw ubb(new Zpd(v))}C=(!F.c&&(F.c=new t5d(y2,F,5,8)),F.c);g=null;K?(g=K):(g=J);rtd(C,g);if((!F.b&&(F.b=new t5d(y2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new t5d(y2,F,5,8)),F.c).i==0){k=Wpd(G,Qte);w=Ute+k;A=w+Vte;throw ubb(new Zpd(A))}brd(G,F);ard(G,F);D=Zqd(a,G,F);return D} +function CXb(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;l=EXb(yXb(a,(Pcd(),Acd)),b);o=DXb(yXb(a,Bcd),b);u=DXb(yXb(a,Jcd),b);B=FXb(yXb(a,Lcd),b);m=FXb(yXb(a,wcd),b);s=DXb(yXb(a,Icd),b);p=DXb(yXb(a,Ccd),b);w=DXb(yXb(a,Kcd),b);v=DXb(yXb(a,xcd),b);C=FXb(yXb(a,zcd),b);r=DXb(yXb(a,Gcd),b);t=DXb(yXb(a,Fcd),b);A=DXb(yXb(a,ycd),b);D=FXb(yXb(a,Hcd),b);n=FXb(yXb(a,Dcd),b);q=DXb(yXb(a,Ecd),b);c=s6c(OC(GC(UD,1),Qje,25,15,[s.a,B.a,w.a,D.a]));d=s6c(OC(GC(UD,1),Qje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=s6c(OC(GC(UD,1),Qje,25,15,[p.a,m.a,v.a,n.a]));j=s6c(OC(GC(UD,1),Qje,25,15,[s.b,o.b,p.b,t.b]));i=s6c(OC(GC(UD,1),Qje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=s6c(OC(GC(UD,1),Qje,25,15,[w.b,u.b,v.b,A.b]));uXb(yXb(a,Acd),c+e,j+k);uXb(yXb(a,Ecd),c+e,j+k);uXb(yXb(a,Bcd),c+e,0);uXb(yXb(a,Jcd),c+e,j+k+i);uXb(yXb(a,Lcd),0,j+k);uXb(yXb(a,wcd),c+e+d,j+k);uXb(yXb(a,Ccd),c+e+d,0);uXb(yXb(a,Kcd),0,j+k+i);uXb(yXb(a,xcd),c+e+d,j+k+i);uXb(yXb(a,zcd),0,j);uXb(yXb(a,Gcd),c,0);uXb(yXb(a,ycd),0,j+k+i);uXb(yXb(a,Dcd),c+e+d,0);g=new _6c;g.a=s6c(OC(GC(UD,1),Qje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=s6c(OC(GC(UD,1),Qje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} +function Mgc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Qkb;for(m=new nlb(a.d.b);m.ae.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=BD(Nhb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(Q_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Hsb(g.a),8);if(g.d.j==(Pcd(),vcd)){q=new gic(b,new b7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Mcd){q=new gic(b,new b7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} +function SJc(a,b,c){var d,e,f,g,h,i,j,k,l;Jdd(c,'Network simplex node placement',1);a.e=b;a.n=BD(uNb(b,(utc(),mtc)),304);RJc(a);DJc(a);LAb(KAb(new XAb(null,new Jub(a.e.b,16)),new GKc),new IKc(a));LAb(IAb(KAb(IAb(KAb(new XAb(null,new Jub(a.e.b,16)),new vLc),new xLc),new zLc),new BLc),new EKc(a));if(Bcb(DD(uNb(a.e,(Lyc(),yxc))))){g=Pdd(c,1);Jdd(g,'Straight Edges Pre-Processing',1);QJc(a);Ldd(g)}IFb(a.f);f=BD(uNb(b,yyc),19).a*a.f.a.c.length;tGb(GGb(HGb(KGb(a.f),f),false),Pdd(c,1));if(a.d.a.gc()!=0){g=Pdd(c,1);Jdd(g,'Flexible Where Space Processing',1);h=BD(Atb(QAb(MAb(new XAb(null,new Jub(a.f.a,16)),new KKc),new eKc)),19).a;i=BD(Atb(PAb(MAb(new XAb(null,new Jub(a.f.a,16)),new MKc),new iKc)),19).a;j=i-h;k=mGb(new oGb,a.f);l=mGb(new oGb,a.f);zFb(CFb(BFb(AFb(DFb(new EFb,20000),j),k),l));LAb(IAb(IAb(Olb(a.i),new OKc),new QKc),new SKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}tGb(GGb(HGb(KGb(a.f),f),false),Pdd(g,1));Ldd(g)}if(Bcb(DD(uNb(b,yxc)))){g=Pdd(c,1);Jdd(g,'Straight Edges Post-Processing',1);PJc(a);Ldd(g)}CJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Thb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Ldd(c)} +function hMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new nlb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==_Lc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Qqb(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]=(Acb(),Bcb(b.f[b.g[u.p].p])&u.k==(i0b(),f0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Qqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Phe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Hkb(n,Aub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;wQc(m,C,w);n.c=KC(SI,Phe,1,0,5,1)}}u=a.c.length+1;for(h=new nlb(a);h.aD.s){tib(c);Kkb(D.i,d);if(d.c>0){d.a=D;Dkb(D.t,d);d.b=A;Dkb(A.i,d)}}}}} +function lde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ll();case 12:return a.Nl();case 14:return a.Pl();case 15:return a.Sl();case 16:return a.Ql();case 17:return a.Tl();case 21:ide(a);return rfe(),rfe(),afe;case 10:switch(a.a){case 65:return a.xl();case 90:return a.Cl();case 122:return a.Jl();case 98:return a.Dl();case 66:return a.yl();case 60:return a.Il();case 62:return a.Gl();}}f=kde(a);b=a.c;switch(b){case 3:return a.Yl(f);case 4:return a.Wl(f);case 5:return a.Xl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw ubb(new hde(ovd((c0d(),Yue))))}}else{throw ubb(new hde(ovd((c0d(),Uue))))}c=d;if(b==44){if(e>=a.j){throw ubb(new hde(ovd((c0d(),Wue))))}else if((b=afb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw ubb(new hde(ovd((c0d(),Yue))))}if(d>c)throw ubb(new hde(ovd((c0d(),Xue))))}else{c=-1}}if(b!=125)throw ubb(new hde(ovd((c0d(),Vue))));if(a.rl(e)){f=(rfe(),rfe(),++qfe,new gge(9,f));a.d=e+1}else{f=(rfe(),rfe(),++qfe,new gge(3,f));a.d=e}f.cm(d);f.bm(c);ide(a)}}return f} +function Zbc(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 Rkb(b.b);u=new Rkb(b.b);m=new Rkb(b.b);B=new Rkb(b.b);q=new Rkb(b.b);for(A=Isb(b,0);A.b!=A.d.c;){v=BD(Wsb(A),11);for(h=new nlb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new nlb(p);o.a1){o=new Jyd((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a));while(o.e!=o.i.gc()){zyd(o)}}g=BD(lud((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a),0),202);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+Bub(b,24)*gke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Ahd(),i=new skd,i);qkd(e,m);rkd(e,n);rtd((!g.a&&(g.a=new sMd(x2,g,5)),g.a),e)}} +function Lyc(){Lyc=bcb;gyc=(U9c(),E9c);hyc=F9c;iyc=G9c;jyc=H9c;lyc=I9c;myc=J9c;pyc=L9c;ryc=N9c;syc=O9c;qyc=M9c;tyc=P9c;vyc=Q9c;xyc=T9c;oyc=K9c;fyc=(hwc(),zvc);kyc=Avc;nyc=Bvc;uyc=Cvc;_xc=new Jsd(z9c,leb(0));ayc=wvc;byc=xvc;cyc=yvc;Iyc=$vc;Ayc=Fvc;Byc=Ivc;Eyc=Qvc;Cyc=Lvc;Dyc=Nvc;Kyc=dwc;Jyc=awc;Gyc=Wvc;Fyc=Uvc;Hyc=Yvc;Axc=nvc;Bxc=ovc;Vwc=yuc;Wwc=Buc;Jxc=new p0b(12);Ixc=new Jsd(b9c,Jxc);Rwc=(wad(),sad);Qwc=new Jsd(A8c,Rwc);Sxc=new Jsd(o9c,0);dyc=new Jsd(A9c,leb(1));mwc=new Jsd(n8c,ome);Hxc=_8c;Txc=p9c;Yxc=w9c;Iwc=u8c;kwc=l8c;$wc=F8c;eyc=new Jsd(D9c,(Acb(),true));dxc=I8c;exc=J8c;Dxc=U8c;Gxc=Z8c;Exc=W8c;Lwc=(aad(),$9c);Jwc=new Jsd(v8c,Lwc);vxc=S8c;uxc=Q8c;Wxc=t9c;Vxc=s9c;Xxc=v9c;Mxc=(Pbd(),Obd);new Jsd(h9c,Mxc);Oxc=k9c;Pxc=l9c;Qxc=m9c;Nxc=j9c;zyc=Evc;qxc=$uc;pxc=Yuc;yyc=Dvc;kxc=Quc;Hwc=kuc;Gwc=iuc;ywc=Vtc;zwc=Wtc;Bwc=_tc;Awc=Xtc;Fwc=guc;sxc=avc;txc=bvc;gxc=Juc;Cxc=svc;xxc=fvc;Ywc=Euc;zxc=lvc;Twc=uuc;Uwc=wuc;xwc=s8c;wxc=cvc;qwc=Ktc;pwc=Itc;owc=Htc;axc=Huc;_wc=Guc;bxc=Iuc;Fxc=X8c;hxc=M8c;Xwc=C8c;Owc=y8c;Nwc=x8c;Cwc=cuc;Uxc=r9c;nwc=r8c;cxc=H8c;Rxc=n9c;Kxc=d9c;Lxc=f9c;mxc=Tuc;nxc=Vuc;$xc=y9c;lwc=Gtc;oxc=Xuc;Pwc=quc;Mwc=ouc;rxc=O8c;ixc=Nuc;yxc=ivc;wyc=R9c;Kwc=muc;Zxc=uvc;Swc=suc;jxc=Puc;Dwc=euc;fxc=L8c;lxc=Suc;Ewc=fuc;wwc=Ttc;uwc=Qtc;swc=Otc;twc=Ptc;vwc=Stc;rwc=Mtc;Zwc=Fuc} +function rhb(a,b){ohb();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 Vje;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 Tfb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,Vie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=wbb(h,Tje);do{p=H;H=zbb(H,10);u[--c]=48+Sbb(Pbb(p,Hbb(H,10)))&Xie}while(xbb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&Xie}while(H!=0)}}else{D=KC(WD,jje,25,o,15,1);G=o;Zfb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=vbb(Mbb(A,32),wbb(D[j],Tje));r=phb(F);D[j]=Sbb(r);A=Sbb(Nbb(r,32))}s=Sbb(A);q=c;do{u[--c]=48+s%10&Xie}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 yfb(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 yfb(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 yfb(u,c,t-c)}C=c+1;f=t;v=new Ufb;n&&(v.a+='-',v);if(f-C>=1){Jfb(v,u[c]);v.a+='.';v.a+=yfb(u,c+1,t-c-1)}else{v.a+=yfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} +function v$c(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 Kqb;c=(Kgd(),new Ygd(a.c));d=new XGb(c);TGb(d);t=GD(ckd(a.c,(__c(),U_c)));i=BD(ckd(a.c,W_c),316);v=BD(ckd(a.c,X_c),430);g=BD(ckd(a.c,P_c),482);u=BD(ckd(a.c,V_c),431);a.j=Ddb(ED(ckd(a.c,Y_c)));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 ubb(new Vdb(Ire+(i.f!=null?i.f:''+i.g)));}a.d=new c_c(h,v,g);xNb(a.d,(WNb(),UNb),DD(ckd(a.c,R_c)));a.d.c=Bcb(DD(ckd(a.c,Q_c)));if(Qod(a.c).i==0){return a.d}for(l=new Ayd(Qod(a.c));l.e!=l.i.gc();){k=BD(yyd(l),33);n=k.g/2;m=k.f/2;w=new b7c(k.i+n,k.j+m);while(Lhb(a.g,w)){K6c(w,($wnd.Math.random()-0.5)*lme,($wnd.Math.random()-0.5)*lme)}p=BD(ckd(k,(U9c(),O8c)),142);q=new _Nb(w,new F6c(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)));Dkb(a.d.i,q);Qhb(a.g,w,new qgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Hkb(a.d.i,0),65)}else{for(s=new nlb(a.d.i);s.a1&&(Fsb(k,r,k.c.b,k.c),true);Ysb(e)}}}r=s}}return k} +function rQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Qkb;h=new Qkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=sQb(e.a,e.b,r.a,r.b,q);Dkb(d,(sCb(0,o.c.length),BD(o.c[0],8)));Dkb(h,(sCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Csb(c,(sCb(i,g.c.length),BD(g.c[i],8)))}return c} +function XEd(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=wEd;j=null;f=null;h=0;i=PEd(a,h,uEd,vEd);if(i=0&&cfb(a.substr(h,'//'.length),'//')){h+=2;i=PEd(a,h,xEd,yEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(ACb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=hfb(a,vfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&afb(k,k.length-1)==58){e=k;h=i}}if(h0?G+1:1}for(g=new nlb(w.g);g.a0?G+1:1}}a.c[j]==0?Csb(a.d,p):a.a[j]==0&&Csb(a.e,p);++j}o=-1;n=1;l=new Qkb;H=BD(uNb(b,(utc(),htc)),230);while(M>0){while(a.d.b!=0){J=BD(Ksb(a.d),10);a.b[J.p]=o--;ZBc(a,J);--M}while(a.e.b!=0){K=BD(Ksb(a.e),10);a.b[K.p]=n++;ZBc(a,K);--M}if(M>0){m=Mie;for(s=new nlb(t);s.a=m){if(u>m){l.c=KC(SI,Phe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=BD(Hkb(l,Aub(H,l.c.length)),10);a.b[k.p]=n++;ZBc(a,k);--M}}I=t.c.length+1;for(j=0;ja.b[L]){OZb(d,true);xNb(b,ysc,(Acb(),true))}}}}a.a=null;a.c=null;a.b=null;Nsb(a.e);Nsb(a.d);Ldd(c)} +function oJc(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,F,G,H,I,J,K;I=new Qkb;for(o=new nlb(b.b);o.a=a.j){a.a=-1;a.c=1;return}b=afb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw ubb(new hde(ovd((c0d(),pue))));a.a=afb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(afb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw ubb(new hde(ovd((c0d(),que))));b=afb(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 ubb(new hde(ovd((c0d(),que))));b=afb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw ubb(new hde(ovd((c0d(),rue))));break;case 35:while(a.d=a.j)throw ubb(new hde(ovd((c0d(),pue))));a.a=afb(a.i,a.d++);break;default:d=0;}a.c=d} +function O5b(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,F,G;A=BD(uNb(a,(Lyc(),Txc)),98);if(!(A!=(_bd(),Zbd)&&A!=$bd)){return}o=a.b;n=o.c.length;k=new Rkb((Xj(n+2,Hie),Oy(vbb(vbb(5,n+2),(n+2)/10|0))));p=new Rkb((Xj(n+2,Hie),Oy(vbb(vbb(5,n+2),(n+2)/10|0))));Dkb(k,new Kqb);Dkb(k,new Kqb);Dkb(p,new Qkb);Dkb(p,new Qkb);w=new Qkb;for(b=0;b=v||!rCc(r,d))&&(d=tCc(b,k));Z_b(r,d);for(f=new Sr(ur(Q_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(yCb(bub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Dkb(b.b,(sCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Phe,1,0,5,1);Ldd(c)} +function bee(a){var b,c,d,e,f,g,h,i,j;a.b=1;ide(a);b=null;if(a.c==0&&a.a==94){ide(a);b=(rfe(),rfe(),++qfe,new Vfe(4));Pfe(b,0,hxe);h=(null,++qfe,new Vfe(4))}else{h=(rfe(),rfe(),++qfe,new Vfe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Ufe(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:Sfe(h,aee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Sfe(h,aee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=ode(a,c);if(!i)throw ubb(new hde(ovd((c0d(),Due))));Sfe(h,i);d=true;break;default:c=_de(a);}}else if(j==24&&!e){if(b){Ufe(b,h);h=b}f=bee(a);Ufe(h,f);if(a.c!=0||a.a!=93)throw ubb(new hde(ovd((c0d(),Hue))));break}ide(a);if(!d){if(j==0){if(c==91)throw ubb(new hde(ovd((c0d(),Iue))));if(c==93)throw ubb(new hde(ovd((c0d(),Jue))));if(c==45&&!e&&a.a!=93)throw ubb(new hde(ovd((c0d(),Kue))))}if(a.c!=0||a.a!=45||c==45&&e){Pfe(h,c,c)}else{ide(a);if((j=a.c)==1)throw ubb(new hde(ovd((c0d(),Fue))));if(j==0&&a.a==93){Pfe(h,c,c);Pfe(h,45,45)}else if(j==0&&a.a==93||j==24){throw ubb(new hde(ovd((c0d(),Kue))))}else{g=a.a;if(j==0){if(g==91)throw ubb(new hde(ovd((c0d(),Iue))));if(g==93)throw ubb(new hde(ovd((c0d(),Jue))));if(g==45)throw ubb(new hde(ovd((c0d(),Kue))))}else j==10&&(g=_de(a));ide(a);if(c>g)throw ubb(new hde(ovd((c0d(),Nue))));Pfe(h,c,g)}}}e=false}if(a.c==1)throw ubb(new hde(ovd((c0d(),Fue))));Tfe(h);Qfe(h);a.b=0;ide(a);return h} +function sZd(a){wnd(a.c,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#decimal']));wnd(a.d,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#integer']));wnd(a.e,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#boolean']));wnd(a.f,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EBoolean',aue,'EBoolean:Object']));wnd(a.i,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#byte']));wnd(a.g,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#hexBinary']));wnd(a.j,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EByte',aue,'EByte:Object']));wnd(a.n,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EChar',aue,'EChar:Object']));wnd(a.t,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#double']));wnd(a.u,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EDouble',aue,'EDouble:Object']));wnd(a.F,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#float']));wnd(a.G,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EFloat',aue,'EFloat:Object']));wnd(a.I,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#int']));wnd(a.J,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EInt',aue,'EInt:Object']));wnd(a.N,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#long']));wnd(a.O,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'ELong',aue,'ELong:Object']));wnd(a.Z,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#short']));wnd(a.$,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EShort',aue,'EShort:Object']));wnd(a._,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#string']))} +function bRc(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,F,G;if(a.c.length==1){return sCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new ORc}for(i=new nlb(a);i.al){F=0;G+=k+A;k=0}aRc(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 Kqb;c=new Kqb;for(C=new nlb(a);C.aOLc(f))&&(l=f)}}!l&&(l=(sCb(0,q.c.length),BD(q.c[0],180)));for(p=new nlb(b.b);p.a=-1900?1:0;c>=4?Pfb(a,OC(GC(ZI,1),iie,2,6,[kje,lje])[h]):Pfb(a,OC(GC(ZI,1),iie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Pfb(a,OC(GC(ZI,1),iie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Pfb(a,OC(GC(ZI,1),iie,2,6,[mje,nje,oje,pje,qje,rje,sje])[k]):Pfb(a,OC(GC(ZI,1),iie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Pfb(a,OC(GC(ZI,1),iie,2,6,['AM','PM'])[1]):Pfb(a,OC(GC(ZI,1),iie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Pfb(a,OC(GC(ZI,1),iie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Pfb(a,OC(GC(ZI,1),iie,2,6,[mje,nje,oje,pje,qje,rje,sje])[o]):c==3?Pfb(a,OC(GC(ZI,1),iie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Pfb(a,OC(GC(ZI,1),iie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Pfb(a,OC(GC(ZI,1),iie,2,6,[Yie,Zie,$ie,_ie,aje,bje,cje,dje,eje,fje,gje,hje])[p]):c==3?Pfb(a,OC(GC(ZI,1),iie,2,6,['Jan','Feb','Mar','Apr',aje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Pfb(a,OC(GC(ZI,1),iie,2,6,['Q1','Q2','Q3','Q4'])[q]):Pfb(a,OC(GC(ZI,1),iie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Pfb(a,f.c[0]):Pfb(a,f.c[1]);break;case 118:Pfb(a,f.b);break;case 90:c<3?Pfb(a,OA(f)):c==3?Pfb(a,NA(f)):Pfb(a,QA(f.a));break;default:return false;}return true} +function W1b(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;M1b(b);i=BD(lud((!b.b&&(b.b=new t5d(y2,b,4,7)),b.b),0),82);k=BD(lud((!b.c&&(b.c=new t5d(y2,b,5,8)),b.c),0),82);h=Xsd(i);j=Xsd(k);g=(!b.a&&(b.a=new ZTd(z2,b,6,6)),b.a).i==0?null:BD(lud((!b.a&&(b.a=new ZTd(z2,b,6,6)),b.a),0),202);A=BD(Nhb(a.a,h),10);F=BD(Nhb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Nhb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Hkb(A.j,0),11)}}if(JD(k,186)){D=BD(Nhb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Hkb(F.j,0),11)}}if(!A||!F){throw ubb(new v2c('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 TZb;sNb(p,b);xNb(p,(utc(),Ysc),b);xNb(p,(Lyc(),hxc),null);n=BD(uNb(d,Isc),21);A==F&&n.Fc((Mrc(),Lrc));if(!B){v=(IAc(),GAc);C=null;if(!!g&&bcd(BD(uNb(A,Txc),98))){C=new b7c(g.j,g.k);wfd(C,Hld(b));xfd(C,c);if(itd(j,h)){v=FAc;L6c(C,A.n)}}B=Z$b(A,C,v,d)}if(!G){v=(IAc(),FAc);H=null;if(!!g&&bcd(BD(uNb(F,Txc),98))){H=new b7c(g.b,g.c);wfd(H,Hld(b));xfd(H,c)}G=Z$b(F,H,v,P_b(F))}PZb(p,B);QZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Mrc(),Grc));for(m=new Ayd((!b.n&&(b.n=new ZTd(C2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(yyd(m),137);if(!Bcb(DD(ckd(l,Hxc)))&&!!l.a){q=Y1b(l);Dkb(p.b,q);switch(BD(uNb(q,Owc),272).g){case 1:case 2:n.Fc((Mrc(),Erc));break;case 0:n.Fc((Mrc(),Crc));xNb(q,Owc,(mad(),jad));}}}f=BD(uNb(d,Gwc),314);r=BD(uNb(d,Cxc),315);e=f==(Qpc(),Npc)||r==(Tzc(),Pzc);if(!!g&&(!g.a&&(g.a=new sMd(x2,g,5)),g.a).i!=0&&e){s=jfd(g);o=new o7c;for(u=Isb(s,0);u.b!=u.d.c;){t=BD(Wsb(u),8);Csb(o,new c7c(t))}xNb(p,Zsc,o)}return p} +function tZd(a){if(a.gb)return;a.gb=true;a.b=Gnd(a,0);Fnd(a.b,18);Lnd(a.b,19);a.a=Gnd(a,1);Fnd(a.a,1);Lnd(a.a,2);Lnd(a.a,3);Lnd(a.a,4);Lnd(a.a,5);a.o=Gnd(a,2);Fnd(a.o,8);Fnd(a.o,9);Lnd(a.o,10);Lnd(a.o,11);Lnd(a.o,12);Lnd(a.o,13);Lnd(a.o,14);Lnd(a.o,15);Lnd(a.o,16);Lnd(a.o,17);Lnd(a.o,18);Lnd(a.o,19);Lnd(a.o,20);Lnd(a.o,21);Lnd(a.o,22);Lnd(a.o,23);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);a.p=Gnd(a,3);Fnd(a.p,2);Fnd(a.p,3);Fnd(a.p,4);Fnd(a.p,5);Lnd(a.p,6);Lnd(a.p,7);Knd(a.p);Knd(a.p);a.q=Gnd(a,4);Fnd(a.q,8);a.v=Gnd(a,5);Lnd(a.v,9);Knd(a.v);Knd(a.v);Knd(a.v);a.w=Gnd(a,6);Fnd(a.w,2);Fnd(a.w,3);Fnd(a.w,4);Lnd(a.w,5);a.B=Gnd(a,7);Lnd(a.B,1);Knd(a.B);Knd(a.B);Knd(a.B);a.Q=Gnd(a,8);Lnd(a.Q,0);Knd(a.Q);a.R=Gnd(a,9);Fnd(a.R,1);a.S=Gnd(a,10);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);a.T=Gnd(a,11);Lnd(a.T,10);Lnd(a.T,11);Lnd(a.T,12);Lnd(a.T,13);Lnd(a.T,14);Knd(a.T);Knd(a.T);a.U=Gnd(a,12);Fnd(a.U,2);Fnd(a.U,3);Lnd(a.U,4);Lnd(a.U,5);Lnd(a.U,6);Lnd(a.U,7);Knd(a.U);a.V=Gnd(a,13);Lnd(a.V,10);a.W=Gnd(a,14);Fnd(a.W,18);Fnd(a.W,19);Fnd(a.W,20);Lnd(a.W,21);Lnd(a.W,22);Lnd(a.W,23);a.bb=Gnd(a,15);Fnd(a.bb,10);Fnd(a.bb,11);Fnd(a.bb,12);Fnd(a.bb,13);Fnd(a.bb,14);Fnd(a.bb,15);Fnd(a.bb,16);Lnd(a.bb,17);Knd(a.bb);Knd(a.bb);a.eb=Gnd(a,16);Fnd(a.eb,2);Fnd(a.eb,3);Fnd(a.eb,4);Fnd(a.eb,5);Fnd(a.eb,6);Fnd(a.eb,7);Lnd(a.eb,8);Lnd(a.eb,9);a.ab=Gnd(a,17);Fnd(a.ab,0);Fnd(a.ab,1);a.H=Gnd(a,18);Lnd(a.H,0);Lnd(a.H,1);Lnd(a.H,2);Lnd(a.H,3);Lnd(a.H,4);Lnd(a.H,5);Knd(a.H);a.db=Gnd(a,19);Lnd(a.db,2);a.c=Hnd(a,20);a.d=Hnd(a,21);a.e=Hnd(a,22);a.f=Hnd(a,23);a.i=Hnd(a,24);a.g=Hnd(a,25);a.j=Hnd(a,26);a.k=Hnd(a,27);a.n=Hnd(a,28);a.r=Hnd(a,29);a.s=Hnd(a,30);a.t=Hnd(a,31);a.u=Hnd(a,32);a.fb=Hnd(a,33);a.A=Hnd(a,34);a.C=Hnd(a,35);a.D=Hnd(a,36);a.F=Hnd(a,37);a.G=Hnd(a,38);a.I=Hnd(a,39);a.J=Hnd(a,40);a.L=Hnd(a,41);a.M=Hnd(a,42);a.N=Hnd(a,43);a.O=Hnd(a,44);a.P=Hnd(a,45);a.X=Hnd(a,46);a.Y=Hnd(a,47);a.Z=Hnd(a,48);a.$=Hnd(a,49);a._=Hnd(a,50);a.cb=Hnd(a,51);a.K=Hnd(a,52)} +function U9c(){U9c=bcb;var a,b;k8c=new Gsd(ose);B9c=new Gsd(pse);m8c=(B7c(),v7c);l8c=new Isd(Wpe,m8c);new Ofd;n8c=new Isd(Wle,null);o8c=new Gsd(qse);t8c=(e8c(),pqb(d8c,OC(GC(q1,1),Fie,290,0,[_7c])));s8c=new Isd(hqe,t8c);u8c=new Isd(Vpe,(Acb(),false));w8c=(aad(),$9c);v8c=new Isd($pe,w8c);B8c=(wad(),vad);A8c=new Isd(upe,B8c);E8c=new Isd(Fre,false);G8c=(dbd(),bbd);F8c=new Isd(ppe,G8c);c9c=new p0b(12);b9c=new Isd(Xle,c9c);K8c=new Isd(vme,false);L8c=new Isd(tqe,false);a9c=new Isd(yme,false);q9c=(_bd(),$bd);p9c=new Isd(wme,q9c);y9c=new Gsd(qqe);z9c=new Gsd(qme);A9c=new Gsd(tme);D9c=new Gsd(ume);N8c=new o7c;M8c=new Isd(iqe,N8c);r8c=new Isd(lqe,false);H8c=new Isd(mqe,false);new Gsd(rse);P8c=new G_b;O8c=new Isd(rqe,P8c);_8c=new Isd(Tpe,false);new Ofd;C9c=new Isd(sse,1);new Isd(tse,true);leb(0);new Isd(use,leb(100));new Isd(vse,false);leb(0);new Isd(wse,leb(4000));leb(0);new Isd(xse,leb(400));new Isd(yse,false);new Isd(zse,false);new Isd(Ase,true);new Isd(Bse,false);q8c=(yed(),xed);p8c=new Isd(nse,q8c);E9c=new Isd(Hpe,10);F9c=new Isd(Ipe,10);G9c=new Isd(Ule,20);H9c=new Isd(Jpe,10);I9c=new Isd(sme,2);J9c=new Isd(Kpe,10);L9c=new Isd(Lpe,0);M9c=new Isd(Ope,5);N9c=new Isd(Mpe,1);O9c=new Isd(Npe,1);P9c=new Isd(rme,20);Q9c=new Isd(Ppe,10);T9c=new Isd(Qpe,10);K9c=new Gsd(Rpe);S9c=new H_b;R9c=new Isd(sqe,S9c);f9c=new Gsd(pqe);e9c=false;d9c=new Isd(oqe,e9c);R8c=new p0b(5);Q8c=new Isd(_pe,R8c);T8c=(Dbd(),b=BD(fdb(A1),9),new wqb(b,BD($Bb(b,b.length),9),0));S8c=new Isd(Bme,T8c);i9c=(Pbd(),Mbd);h9c=new Isd(cqe,i9c);k9c=new Gsd(dqe);l9c=new Gsd(eqe);m9c=new Gsd(fqe);j9c=new Gsd(gqe);V8c=(a=BD(fdb(H1),9),new wqb(a,BD($Bb(a,a.length),9),0));U8c=new Isd(Ame,V8c);$8c=oqb((Ddd(),wdd));Z8c=new Isd(zme,$8c);Y8c=new b7c(0,0);X8c=new Isd(Ome,Y8c);W8c=new Isd(Zpe,false);z8c=(mad(),jad);y8c=new Isd(jqe,z8c);x8c=new Isd(xme,false);new Gsd(Cse);leb(1);new Isd(Dse,null);n9c=new Gsd(nqe);r9c=new Gsd(kqe);x9c=(Pcd(),Ncd);w9c=new Isd(Upe,x9c);o9c=new Gsd(Spe);u9c=(mcd(),oqb(kcd));t9c=new Isd(Cme,u9c);s9c=new Isd(aqe,false);v9c=new Isd(bqe,true);I8c=new Isd(Xpe,false);J8c=new Isd(Ype,false);C8c=new Isd(Vle,1);D8c=(Iad(),Gad);new Isd(Ese,D8c);g9c=true} +function utc(){utc=bcb;var a,b;Ysc=new Gsd(Dme);vsc=new Gsd('coordinateOrigin');gtc=new Gsd('processors');usc=new Hsd('compoundNode',(Acb(),false));Lsc=new Hsd('insideConnections',false);Zsc=new Gsd('originalBendpoints');$sc=new Gsd('originalDummyNodePosition');_sc=new Gsd('originalLabelEdge');itc=new Gsd('representedLabels');Asc=new Gsd('endLabels');Bsc=new Gsd('endLabel.origin');Qsc=new Hsd('labelSide',(nbd(),mbd));Wsc=new Hsd('maxEdgeThickness',0);jtc=new Hsd('reversed',false);htc=new Gsd(Eme);Tsc=new Hsd('longEdgeSource',null);Usc=new Hsd('longEdgeTarget',null);Ssc=new Hsd('longEdgeHasLabelDummies',false);Rsc=new Hsd('longEdgeBeforeLabelDummy',false);zsc=new Hsd('edgeConstraint',(Eqc(),Cqc));Nsc=new Gsd('inLayerLayoutUnit');Msc=new Hsd('inLayerConstraint',(csc(),asc));Osc=new Hsd('inLayerSuccessorConstraint',new Qkb);Psc=new Hsd('inLayerSuccessorConstraintBetweenNonDummies',false);etc=new Gsd('portDummy');wsc=new Hsd('crossingHint',leb(0));Isc=new Hsd('graphProperties',(b=BD(fdb(PW),9),new wqb(b,BD($Bb(b,b.length),9),0)));Fsc=new Hsd('externalPortSide',(Pcd(),Ncd));Gsc=new Hsd('externalPortSize',new _6c);Dsc=new Gsd('externalPortReplacedDummies');Esc=new Gsd('externalPortReplacedDummy');Csc=new Hsd('externalPortConnections',(a=BD(fdb(E1),9),new wqb(a,BD($Bb(a,a.length),9),0)));ftc=new Hsd(ole,0);qsc=new Gsd('barycenterAssociates');ttc=new Gsd('TopSideComments');rsc=new Gsd('BottomSideComments');tsc=new Gsd('CommentConnectionPort');Ksc=new Hsd('inputCollect',false);ctc=new Hsd('outputCollect',false);ysc=new Hsd('cyclic',false);xsc=new Gsd('crossHierarchyMap');stc=new Gsd('targetOffset');new Hsd('splineLabelSize',new _6c);mtc=new Gsd('spacings');dtc=new Hsd('partitionConstraint',false);ssc=new Gsd('breakingPoint.info');qtc=new Gsd('splines.survivingEdge');ptc=new Gsd('splines.route.start');ntc=new Gsd('splines.edgeChain');btc=new Gsd('originalPortConstraints');ltc=new Gsd('selfLoopHolder');otc=new Gsd('splines.nsPortY');Xsc=new Gsd('modelOrder');Vsc=new Gsd('longEdgeTargetNode');Hsc=new Hsd(Tne,false);ktc=new Hsd(Tne,false);Jsc=new Gsd('layerConstraints.hiddenNodes');atc=new Gsd('layerConstraints.opposidePort');rtc=new Gsd('targetNode.modelOrder')} +function hwc(){hwc=bcb;nuc=(vqc(),tqc);muc=new Isd(Une,nuc);Euc=new Isd(Vne,(Acb(),false));Kuc=(ksc(),isc);Juc=new Isd(Wne,Kuc);avc=new Isd(Xne,false);bvc=new Isd(Yne,true);Gtc=new Isd(Zne,false);vvc=(zAc(),xAc);uvc=new Isd($ne,vvc);leb(1);Dvc=new Isd(_ne,leb(7));Evc=new Isd(aoe,false);Fuc=new Isd(boe,false);luc=(kqc(),hqc);kuc=new Isd(coe,luc);_uc=(jzc(),hzc);$uc=new Isd(doe,_uc);Ruc=(Atc(),ztc);Quc=new Isd(eoe,Ruc);leb(-1);Puc=new Isd(foe,leb(-1));leb(-1);Suc=new Isd(goe,leb(-1));leb(-1);Tuc=new Isd(hoe,leb(4));leb(-1);Vuc=new Isd(ioe,leb(2));Zuc=(iAc(),gAc);Yuc=new Isd(joe,Zuc);leb(0);Xuc=new Isd(koe,leb(0));Nuc=new Isd(loe,leb(Jhe));juc=(Qpc(),Opc);iuc=new Isd(moe,juc);Vtc=new Isd(noe,false);cuc=new Isd(ooe,0.1);guc=new Isd(poe,false);leb(-1);euc=new Isd(qoe,leb(-1));leb(-1);fuc=new Isd(roe,leb(-1));leb(0);Wtc=new Isd(soe,leb(40));auc=(Vrc(),Urc);_tc=new Isd(toe,auc);Ytc=Src;Xtc=new Isd(uoe,Ytc);tvc=(Tzc(),Ozc);svc=new Isd(voe,tvc);ivc=new Gsd(woe);dvc=(Zqc(),Xqc);cvc=new Isd(xoe,dvc);gvc=(jrc(),grc);fvc=new Isd(yoe,gvc);new Ofd;lvc=new Isd(zoe,0.3);nvc=new Gsd(Aoe);pvc=(Gzc(),Ezc);ovc=new Isd(Boe,pvc);vuc=(RAc(),PAc);uuc=new Isd(Coe,vuc);xuc=(ZAc(),YAc);wuc=new Isd(Doe,xuc);zuc=(rBc(),qBc);yuc=new Isd(Eoe,zuc);Buc=new Isd(Foe,0.2);suc=new Isd(Goe,2);zvc=new Isd(Hoe,null);Bvc=new Isd(Ioe,10);Avc=new Isd(Joe,10);Cvc=new Isd(Koe,20);leb(0);wvc=new Isd(Loe,leb(0));leb(0);xvc=new Isd(Moe,leb(0));leb(0);yvc=new Isd(Noe,leb(0));Htc=new Isd(Ooe,false);Ltc=(wrc(),urc);Ktc=new Isd(Poe,Ltc);Jtc=(Hpc(),Gpc);Itc=new Isd(Qoe,Jtc);Huc=new Isd(Roe,false);leb(0);Guc=new Isd(Soe,leb(16));leb(0);Iuc=new Isd(Toe,leb(5));_vc=(JBc(),HBc);$vc=new Isd(Uoe,_vc);Fvc=new Isd(Voe,10);Ivc=new Isd(Woe,1);Rvc=(aqc(),_pc);Qvc=new Isd(Xoe,Rvc);Lvc=new Gsd(Yoe);Ovc=leb(1);leb(0);Nvc=new Isd(Zoe,Ovc);ewc=(ABc(),xBc);dwc=new Isd($oe,ewc);awc=new Gsd(_oe);Wvc=new Isd(ape,true);Uvc=new Isd(bpe,2);Yvc=new Isd(cpe,true);ruc=(Qqc(),Oqc);quc=new Isd(dpe,ruc);puc=(zpc(),vpc);ouc=new Isd(epe,puc);Utc=(rAc(),pAc);Ttc=new Isd(fpe,Utc);Stc=new Isd(gpe,false);Ntc=(QXb(),PXb);Mtc=new Isd(hpe,Ntc);Rtc=(vzc(),szc);Qtc=new Isd(ipe,Rtc);Otc=new Isd(jpe,0);Ptc=new Isd(kpe,0);Muc=iqc;Luc=Npc;Uuc=gzc;Wuc=gzc;Ouc=dzc;duc=(dbd(),abd);huc=Opc;buc=Opc;Ztc=Opc;$tc=abd;jvc=Rzc;kvc=Ozc;evc=Ozc;hvc=Ozc;mvc=Qzc;rvc=Rzc;qvc=Rzc;Auc=(wad(),uad);Cuc=uad;Duc=qBc;tuc=tad;Gvc=IBc;Hvc=GBc;Jvc=IBc;Kvc=GBc;Svc=IBc;Tvc=GBc;Mvc=$pc;Pvc=_pc;fwc=IBc;gwc=GBc;bwc=IBc;cwc=GBc;Xvc=GBc;Vvc=GBc;Zvc=GBc} +function R8b(){R8b=bcb;X7b=new S8b('DIRECTION_PREPROCESSOR',0);U7b=new S8b('COMMENT_PREPROCESSOR',1);Y7b=new S8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);m8b=new S8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);F8b=new S8b('PARTITION_PREPROCESSOR',4);q8b=new S8b('LABEL_DUMMY_INSERTER',5);L8b=new S8b('SELF_LOOP_PREPROCESSOR',6);v8b=new S8b('LAYER_CONSTRAINT_PREPROCESSOR',7);D8b=new S8b('PARTITION_MIDPROCESSOR',8);h8b=new S8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);z8b=new S8b('NODE_PROMOTION',10);u8b=new S8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);E8b=new S8b('PARTITION_POSTPROCESSOR',12);d8b=new S8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);N8b=new S8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);O7b=new S8b('BREAKING_POINT_INSERTER',15);y8b=new S8b('LONG_EDGE_SPLITTER',16);H8b=new S8b('PORT_SIDE_PROCESSOR',17);n8b=new S8b('INVERTED_PORT_PROCESSOR',18);G8b=new S8b('PORT_LIST_SORTER',19);P8b=new S8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);B8b=new S8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);P7b=new S8b('BREAKING_POINT_PROCESSOR',22);C8b=new S8b(wne,23);Q8b=new S8b(xne,24);J8b=new S8b('SELF_LOOP_PORT_RESTORER',25);O8b=new S8b('SINGLE_EDGE_GRAPH_WRAPPER',26);o8b=new S8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);a8b=new S8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);p8b=new S8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);l8b=new S8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);M8b=new S8b('SELF_LOOP_ROUTER',31);S7b=new S8b('COMMENT_NODE_MARGIN_CALCULATOR',32);$7b=new S8b('END_LABEL_PREPROCESSOR',33);s8b=new S8b('LABEL_DUMMY_SWITCHER',34);R7b=new S8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);t8b=new S8b('LABEL_SIDE_SELECTOR',36);j8b=new S8b('HYPEREDGE_DUMMY_MERGER',37);e8b=new S8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);w8b=new S8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);g8b=new S8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);V7b=new S8b('CONSTRAINTS_POSTPROCESSOR',41);T7b=new S8b('COMMENT_POSTPROCESSOR',42);k8b=new S8b('HYPERNODE_PROCESSOR',43);f8b=new S8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);x8b=new S8b('LONG_EDGE_JOINER',45);K8b=new S8b('SELF_LOOP_POSTPROCESSOR',46);Q7b=new S8b('BREAKING_POINT_REMOVER',47);A8b=new S8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);i8b=new S8b('HORIZONTAL_COMPACTOR',49);r8b=new S8b('LABEL_DUMMY_REMOVER',50);b8b=new S8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);_7b=new S8b('END_LABEL_SORTER',52);I8b=new S8b('REVERSED_EDGE_RESTORER',53);Z7b=new S8b('END_LABEL_POSTPROCESSOR',54);c8b=new S8b('HIERARCHICAL_NODE_RESIZER',55);W7b=new S8b('DIRECTION_POSTPROCESSOR',56)} +function GIc(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=(rCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new nlb(U.e);h.a0){if(U.j==(Pcd(),vcd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Kqb;o=new ysb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Jlb(p,0,p.length,null);gb=KC(WD,jje,25,p.length,15,1);d=KC(WD,jje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(mY,Phe,361,p.length*2,0,1);for(u=0;u'?":cfb(rue,a)?"'(?<' or '(? toIndex: ',uke=', toIndex: ',vke='Index: ',wke=', Size: ',xke='org.eclipse.elk.alg.common',yke={62:1},zke='org.eclipse.elk.alg.common.compaction',Ake='Scanline/EventHandler',Bke='org.eclipse.elk.alg.common.compaction.oned',Cke='CNode belongs to another CGroup.',Dke='ISpacingsHandler/1',Eke='The ',Fke=' instance has been finished already.',Gke='The direction ',Hke=' is not supported by the CGraph instance.',Ike='OneDimensionalCompactor',Jke='OneDimensionalCompactor/lambda$0$Type',Kke='Quadruplet',Lke='ScanlineConstraintCalculator',Mke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Nke='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Oke='ScanlineConstraintCalculator/Timestamp',Pke='ScanlineConstraintCalculator/lambda$0$Type',Qke={169:1,45:1},Rke='org.eclipse.elk.alg.common.compaction.options',Ske='org.eclipse.elk.core.data',Tke='org.eclipse.elk.polyomino.traversalStrategy',Uke='org.eclipse.elk.polyomino.lowLevelSort',Vke='org.eclipse.elk.polyomino.highLevelSort',Wke='org.eclipse.elk.polyomino.fill',Xke={130:1},Yke='polyomino',Zke='org.eclipse.elk.alg.common.networksimplex',$ke={177:1,3:1,4:1},_ke='org.eclipse.elk.alg.common.nodespacing',ale='org.eclipse.elk.alg.common.nodespacing.cellsystem',ble='CENTER',cle={212:1,326:1},dle={3:1,4:1,5:1,595:1},ele='LEFT',fle='RIGHT',gle='Vertical alignment cannot be null',hle='BOTTOM',ile='org.eclipse.elk.alg.common.nodespacing.internal',jle='UNDEFINED',kle=0.01,lle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',mle='LabelPlacer/lambda$0$Type',nle='LabelPlacer/lambda$1$Type',ole='portRatioOrPosition',ple='org.eclipse.elk.alg.common.overlaps',qle='DOWN',rle='org.eclipse.elk.alg.common.polyomino',sle='NORTH',tle='EAST',ule='SOUTH',vle='WEST',wle='org.eclipse.elk.alg.common.polyomino.structures',xle='Direction',yle='Grid is only of size ',zle='. Requested point (',Ale=') is out of bounds.',Ble=' Given center based coordinates were (',Cle='org.eclipse.elk.graph.properties',Dle='IPropertyHolder',Ele={3:1,94:1,134:1},Fle='org.eclipse.elk.alg.common.spore',Gle='org.eclipse.elk.alg.common.utils',Hle={209:1},Ile='org.eclipse.elk.core',Jle='Connected Components Compaction',Kle='org.eclipse.elk.alg.disco',Lle='org.eclipse.elk.alg.disco.graph',Mle='org.eclipse.elk.alg.disco.options',Nle='CompactionStrategy',Ole='org.eclipse.elk.disco.componentCompaction.strategy',Ple='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Qle='org.eclipse.elk.disco.debug.discoGraph',Rle='org.eclipse.elk.disco.debug.discoPolys',Sle='componentCompaction',Tle='org.eclipse.elk.disco',Ule='org.eclipse.elk.spacing.componentComponent',Vle='org.eclipse.elk.edge.thickness',Wle='org.eclipse.elk.aspectRatio',Xle='org.eclipse.elk.padding',Yle='org.eclipse.elk.alg.disco.transform',Zle=1.5707963267948966,$le=1.7976931348623157E308,_le={3:1,4:1,5:1,192:1},ame={3:1,6:1,4:1,5:1,106:1,120:1},bme='org.eclipse.elk.alg.force',cme='ComponentsProcessor',dme='ComponentsProcessor/1',eme='org.eclipse.elk.alg.force.graph',fme='Component Layout',gme='org.eclipse.elk.alg.force.model',hme='org.eclipse.elk.force.model',ime='org.eclipse.elk.force.iterations',jme='org.eclipse.elk.force.repulsivePower',kme='org.eclipse.elk.force.temperature',lme=0.001,mme='org.eclipse.elk.force.repulsion',nme='org.eclipse.elk.alg.force.options',ome=1.600000023841858,pme='org.eclipse.elk.force',qme='org.eclipse.elk.priority',rme='org.eclipse.elk.spacing.nodeNode',sme='org.eclipse.elk.spacing.edgeLabel',tme='org.eclipse.elk.randomSeed',ume='org.eclipse.elk.separateConnectedComponents',vme='org.eclipse.elk.interactive',wme='org.eclipse.elk.portConstraints',xme='org.eclipse.elk.edgeLabels.inline',yme='org.eclipse.elk.omitNodeMicroLayout',zme='org.eclipse.elk.nodeSize.options',Ame='org.eclipse.elk.nodeSize.constraints',Bme='org.eclipse.elk.nodeLabels.placement',Cme='org.eclipse.elk.portLabels.placement',Dme='origin',Eme='random',Fme='boundingBox.upLeft',Gme='boundingBox.lowRight',Hme='org.eclipse.elk.stress.fixed',Ime='org.eclipse.elk.stress.desiredEdgeLength',Jme='org.eclipse.elk.stress.dimension',Kme='org.eclipse.elk.stress.epsilon',Lme='org.eclipse.elk.stress.iterationLimit',Mme='org.eclipse.elk.stress',Nme='ELK Stress',Ome='org.eclipse.elk.nodeSize.minimum',Pme='org.eclipse.elk.alg.force.stress',Qme='Layered layout',Rme='org.eclipse.elk.alg.layered',Sme='org.eclipse.elk.alg.layered.compaction.components',Tme='org.eclipse.elk.alg.layered.compaction.oned',Ume='org.eclipse.elk.alg.layered.compaction.oned.algs',Vme='org.eclipse.elk.alg.layered.compaction.recthull',Wme='org.eclipse.elk.alg.layered.components',Xme='NONE',Yme={3:1,6:1,4:1,9:1,5:1,122:1},Zme={3:1,6:1,4:1,5:1,141:1,106:1,120:1},$me='org.eclipse.elk.alg.layered.compound',_me={51:1},ane='org.eclipse.elk.alg.layered.graph',bne=' -> ',cne='Not supported by LGraph',dne='Port side is undefined',ene={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},fne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},gne={3:1,6:1,4:1,5:1,141:1,1942:1,203:1,106:1,120:1},hne='([{"\' \t\r\n',ine=')]}"\' \t\r\n',jne='The given string contains parts that cannot be parsed as numbers.',kne='org.eclipse.elk.core.math',lne={3:1,4:1,142:1,207:1,415:1},mne={3:1,4:1,116:1,207:1,415:1},nne='org.eclipse.elk.layered',one='org.eclipse.elk.alg.layered.graph.transform',pne='ElkGraphImporter',qne='ElkGraphImporter/lambda$0$Type',rne='ElkGraphImporter/lambda$1$Type',sne='ElkGraphImporter/lambda$2$Type',tne='ElkGraphImporter/lambda$4$Type',une='Node margin calculation',vne='org.eclipse.elk.alg.layered.intermediate',wne='ONE_SIDED_GREEDY_SWITCH',xne='TWO_SIDED_GREEDY_SWITCH',yne='No implementation is available for the layout processor ',zne='IntermediateProcessorStrategy',Ane="Node '",Bne='FIRST_SEPARATE',Cne='LAST_SEPARATE',Dne='Odd port side processing',Ene='org.eclipse.elk.alg.layered.intermediate.compaction',Fne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Gne='org.eclipse.elk.alg.layered.p3order.counting',Hne={225:1},Ine='org.eclipse.elk.alg.layered.intermediate.loops',Jne='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Kne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Lne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Mne='org.eclipse.elk.alg.layered.intermediate.wrapping',Nne='org.eclipse.elk.alg.layered.options',One='INTERACTIVE',Pne='DEPTH_FIRST',Qne='MODEL_ORDER',Rne='EDGE_LENGTH',Sne='SELF_LOOPS',Tne='firstTryWithInitialOrder',Une='org.eclipse.elk.layered.directionCongruency',Vne='org.eclipse.elk.layered.feedbackEdges',Wne='org.eclipse.elk.layered.interactiveReferencePoint',Xne='org.eclipse.elk.layered.mergeEdges',Yne='org.eclipse.elk.layered.mergeHierarchyEdges',Zne='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',$ne='org.eclipse.elk.layered.portSortingStrategy',_ne='org.eclipse.elk.layered.thoroughness',aoe='org.eclipse.elk.layered.unnecessaryBendpoints',boe='org.eclipse.elk.layered.generatePositionAndLayerIds',coe='org.eclipse.elk.layered.cycleBreaking.strategy',doe='org.eclipse.elk.layered.layering.strategy',eoe='org.eclipse.elk.layered.layering.layerConstraint',foe='org.eclipse.elk.layered.layering.layerChoiceConstraint',goe='org.eclipse.elk.layered.layering.layerId',hoe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',ioe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',joe='org.eclipse.elk.layered.layering.nodePromotion.strategy',koe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',loe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',moe='org.eclipse.elk.layered.crossingMinimization.strategy',noe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',ooe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',poe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',qoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',roe='org.eclipse.elk.layered.crossingMinimization.positionId',soe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',toe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',uoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',voe='org.eclipse.elk.layered.nodePlacement.strategy',woe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',xoe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',yoe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',zoe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Aoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Boe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Coe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Doe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Eoe='org.eclipse.elk.layered.edgeRouting.splines.mode',Foe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Goe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Hoe='org.eclipse.elk.layered.spacing.baseValue',Ioe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Joe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Koe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Loe='org.eclipse.elk.layered.priority.direction',Moe='org.eclipse.elk.layered.priority.shortness',Noe='org.eclipse.elk.layered.priority.straightness',Ooe='org.eclipse.elk.layered.compaction.connectedComponents',Poe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Qoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Roe='org.eclipse.elk.layered.highDegreeNodes.treatment',Soe='org.eclipse.elk.layered.highDegreeNodes.threshold',Toe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Uoe='org.eclipse.elk.layered.wrapping.strategy',Voe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',Woe='org.eclipse.elk.layered.wrapping.correctionFactor',Xoe='org.eclipse.elk.layered.wrapping.cutting.strategy',Yoe='org.eclipse.elk.layered.wrapping.cutting.cuts',Zoe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',$oe='org.eclipse.elk.layered.wrapping.validify.strategy',_oe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',ape='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',bpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',cpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',dpe='org.eclipse.elk.layered.edgeLabels.sideSelection',epe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',fpe='org.eclipse.elk.layered.considerModelOrder.strategy',gpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',hpe='org.eclipse.elk.layered.considerModelOrder.components',ipe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',kpe='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',lpe='layering',mpe='layering.minWidth',npe='layering.nodePromotion',ope='crossingMinimization',ppe='org.eclipse.elk.hierarchyHandling',qpe='crossingMinimization.greedySwitch',rpe='nodePlacement',spe='nodePlacement.bk',tpe='edgeRouting',upe='org.eclipse.elk.edgeRouting',vpe='spacing',wpe='priority',xpe='compaction',ype='compaction.postCompaction',zpe='Specifies whether and how post-process compaction is applied.',Ape='highDegreeNodes',Bpe='wrapping',Cpe='wrapping.cutting',Dpe='wrapping.validify',Epe='wrapping.multiEdge',Fpe='edgeLabels',Gpe='considerModelOrder',Hpe='org.eclipse.elk.spacing.commentComment',Ipe='org.eclipse.elk.spacing.commentNode',Jpe='org.eclipse.elk.spacing.edgeEdge',Kpe='org.eclipse.elk.spacing.edgeNode',Lpe='org.eclipse.elk.spacing.labelLabel',Mpe='org.eclipse.elk.spacing.labelPortHorizontal',Npe='org.eclipse.elk.spacing.labelPortVertical',Ope='org.eclipse.elk.spacing.labelNode',Ppe='org.eclipse.elk.spacing.nodeSelfLoop',Qpe='org.eclipse.elk.spacing.portPort',Rpe='org.eclipse.elk.spacing.individual',Spe='org.eclipse.elk.port.borderOffset',Tpe='org.eclipse.elk.noLayout',Upe='org.eclipse.elk.port.side',Vpe='org.eclipse.elk.debugMode',Wpe='org.eclipse.elk.alignment',Xpe='org.eclipse.elk.insideSelfLoops.activate',Ype='org.eclipse.elk.insideSelfLoops.yo',Zpe='org.eclipse.elk.nodeSize.fixedGraphSize',$pe='org.eclipse.elk.direction',_pe='org.eclipse.elk.nodeLabels.padding',aqe='org.eclipse.elk.portLabels.nextToPortIfPossible',bqe='org.eclipse.elk.portLabels.treatAsGroup',cqe='org.eclipse.elk.portAlignment.default',dqe='org.eclipse.elk.portAlignment.north',eqe='org.eclipse.elk.portAlignment.south',fqe='org.eclipse.elk.portAlignment.west',gqe='org.eclipse.elk.portAlignment.east',hqe='org.eclipse.elk.contentAlignment',iqe='org.eclipse.elk.junctionPoints',jqe='org.eclipse.elk.edgeLabels.placement',kqe='org.eclipse.elk.port.index',lqe='org.eclipse.elk.commentBox',mqe='org.eclipse.elk.hypernode',nqe='org.eclipse.elk.port.anchor',oqe='org.eclipse.elk.partitioning.activate',pqe='org.eclipse.elk.partitioning.partition',qqe='org.eclipse.elk.position',rqe='org.eclipse.elk.margins',sqe='org.eclipse.elk.spacing.portsSurrounding',tqe='org.eclipse.elk.interactiveLayout',uqe='org.eclipse.elk.core.util',vqe={3:1,4:1,5:1,593:1},wqe='NETWORK_SIMPLEX',xqe={126:1,51:1},yqe='org.eclipse.elk.alg.layered.p1cycles',zqe='org.eclipse.elk.alg.layered.p2layers',Aqe={403:1,225:1},Bqe={831:1,3:1,4:1},Cqe='org.eclipse.elk.alg.layered.p3order',Dqe='org.eclipse.elk.alg.layered.p4nodes',Eqe={3:1,4:1,5:1,839:1},Fqe=1.0E-5,Gqe='org.eclipse.elk.alg.layered.p4nodes.bk',Hqe='org.eclipse.elk.alg.layered.p5edges',Iqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Jqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Kqe=1.0E-6,Lqe='org.eclipse.elk.alg.layered.p5edges.splines',Mqe=0.09999999999999998,Nqe=1.0E-8,Oqe=4.71238898038469,Pqe=3.141592653589793,Qqe='org.eclipse.elk.alg.mrtree',Rqe='org.eclipse.elk.alg.mrtree.graph',Sqe='org.eclipse.elk.alg.mrtree.intermediate',Tqe='Set neighbors in level',Uqe='DESCENDANTS',Vqe='org.eclipse.elk.mrtree.weighting',Wqe='org.eclipse.elk.mrtree.searchOrder',Xqe='org.eclipse.elk.alg.mrtree.options',Yqe='org.eclipse.elk.mrtree',Zqe='org.eclipse.elk.tree',$qe='org.eclipse.elk.alg.radial',_qe=6.283185307179586,are=4.9E-324,bre='org.eclipse.elk.alg.radial.intermediate',cre='org.eclipse.elk.alg.radial.intermediate.compaction',dre={3:1,4:1,5:1,106:1},ere='org.eclipse.elk.alg.radial.intermediate.optimization',fre='No implementation is available for the layout option ',gre='org.eclipse.elk.alg.radial.options',hre='org.eclipse.elk.radial.orderId',ire='org.eclipse.elk.radial.radius',jre='org.eclipse.elk.radial.compactor',kre='org.eclipse.elk.radial.compactionStepSize',lre='org.eclipse.elk.radial.sorter',mre='org.eclipse.elk.radial.wedgeCriteria',nre='org.eclipse.elk.radial.optimizationCriteria',ore='org.eclipse.elk.radial',pre='org.eclipse.elk.alg.radial.p1position.wedge',qre='org.eclipse.elk.alg.radial.sorting',rre=5.497787143782138,sre=3.9269908169872414,tre=2.356194490192345,ure='org.eclipse.elk.alg.rectpacking',vre='org.eclipse.elk.alg.rectpacking.firstiteration',wre='org.eclipse.elk.alg.rectpacking.options',xre='org.eclipse.elk.rectpacking.optimizationGoal',yre='org.eclipse.elk.rectpacking.lastPlaceShift',zre='org.eclipse.elk.rectpacking.currentPosition',Are='org.eclipse.elk.rectpacking.desiredPosition',Bre='org.eclipse.elk.rectpacking.onlyFirstIteration',Cre='org.eclipse.elk.rectpacking.rowCompaction',Dre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ere='org.eclipse.elk.rectpacking.targetWidth',Fre='org.eclipse.elk.expandNodes',Gre='org.eclipse.elk.rectpacking',Hre='org.eclipse.elk.alg.rectpacking.util',Ire='No implementation available for ',Jre='org.eclipse.elk.alg.spore',Kre='org.eclipse.elk.alg.spore.options',Lre='org.eclipse.elk.sporeCompaction',Mre='org.eclipse.elk.underlyingLayoutAlgorithm',Nre='org.eclipse.elk.processingOrder.treeConstruction',Ore='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Pre='org.eclipse.elk.processingOrder.preferredRoot',Qre='org.eclipse.elk.processingOrder.rootSelection',Rre='org.eclipse.elk.structure.structureExtractionStrategy',Sre='org.eclipse.elk.compaction.compactionStrategy',Tre='org.eclipse.elk.compaction.orthogonal',Ure='org.eclipse.elk.overlapRemoval.maxIterations',Vre='org.eclipse.elk.overlapRemoval.runScanline',Wre='processingOrder',Xre='overlapRemoval',Yre='org.eclipse.elk.sporeOverlap',Zre='org.eclipse.elk.alg.spore.p1structure',$re='org.eclipse.elk.alg.spore.p2processingorder',_re='org.eclipse.elk.alg.spore.p3execution',ase='Invalid index: ',bse='org.eclipse.elk.core.alg',cse={331:1},dse={287:1},ese='Make sure its type is registered with the ',fse=' utility class.',gse='true',hse='false',ise="Couldn't clone property '",jse=0.05,kse='org.eclipse.elk.core.options',lse=1.2999999523162842,mse='org.eclipse.elk.box',nse='org.eclipse.elk.box.packingMode',ose='org.eclipse.elk.algorithm',pse='org.eclipse.elk.resolvedAlgorithm',qse='org.eclipse.elk.bendPoints',rse='org.eclipse.elk.labelManager',sse='org.eclipse.elk.scaleFactor',tse='org.eclipse.elk.animate',use='org.eclipse.elk.animTimeFactor',vse='org.eclipse.elk.layoutAncestors',wse='org.eclipse.elk.maxAnimTime',xse='org.eclipse.elk.minAnimTime',yse='org.eclipse.elk.progressBar',zse='org.eclipse.elk.validateGraph',Ase='org.eclipse.elk.validateOptions',Bse='org.eclipse.elk.zoomToFit',Cse='org.eclipse.elk.font.name',Dse='org.eclipse.elk.font.size',Ese='org.eclipse.elk.edge.type',Fse='partitioning',Gse='nodeLabels',Hse='portAlignment',Ise='nodeSize',Jse='port',Kse='portLabels',Lse='insideSelfLoops',Mse='org.eclipse.elk.fixed',Nse='org.eclipse.elk.random',Ose='port must have a parent node to calculate the port side',Pse='The edge needs to have exactly one edge section. Found: ',Qse='org.eclipse.elk.core.util.adapters',Rse='org.eclipse.emf.ecore',Sse='org.eclipse.elk.graph',Tse='EMapPropertyHolder',Use='ElkBendPoint',Vse='ElkGraphElement',Wse='ElkConnectableShape',Xse='ElkEdge',Yse='ElkEdgeSection',Zse='EModelElement',$se='ENamedElement',_se='ElkLabel',ate='ElkNode',bte='ElkPort',cte={92:1,90:1},dte='org.eclipse.emf.common.notify.impl',ete="The feature '",fte="' is not a valid changeable feature",gte='Expecting null',hte="' is not a valid feature",ite='The feature ID',jte=' is not a valid feature ID',kte=32768,lte={105:1,92:1,90:1,56:1,49:1,97:1},mte='org.eclipse.emf.ecore.impl',nte='org.eclipse.elk.graph.impl',ote='Recursive containment not allowed for ',pte="The datatype '",qte="' is not a valid classifier",rte="The value '",ste={190:1,3:1,4:1},tte="The class '",ute='http://www.eclipse.org/elk/ElkGraph',vte='property',wte='value',xte='source',yte='properties',zte='identifier',Ate='height',Bte='width',Cte='parent',Dte='text',Ete='children',Fte='hierarchical',Gte='sources',Hte='targets',Ite='sections',Jte='bendPoints',Kte='outgoingShape',Lte='incomingShape',Mte='outgoingSections',Nte='incomingSections',Ote='org.eclipse.emf.common.util',Pte='Severe implementation error in the Json to ElkGraph importer.',Qte='id',Rte='org.eclipse.elk.graph.json',Ste='Unhandled parameter types: ',Tte='startPoint',Ute="An edge must have at least one source and one target (edge id: '",Vte="').",Wte='Referenced edge section does not exist: ',Xte=" (edge id: '",Yte='target',Zte='sourcePoint',$te='targetPoint',_te='group',aue='name',bue='connectableShape cannot be null',cue='edge cannot be null',due="Passed edge is not 'simple'.",eue='org.eclipse.elk.graph.util',fue="The 'no duplicates' constraint is violated",gue='targetIndex=',hue=', size=',iue='sourceIndex=',jue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},kue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},lue='logging',mue='measureExecutionTime',nue='parser.parse.1',oue='parser.parse.2',pue='parser.next.1',que='parser.next.2',rue='parser.next.3',sue='parser.next.4',tue='parser.factor.1',uue='parser.factor.2',vue='parser.factor.3',wue='parser.factor.4',xue='parser.factor.5',yue='parser.factor.6',zue='parser.atom.1',Aue='parser.atom.2',Bue='parser.atom.3',Cue='parser.atom.4',Due='parser.atom.5',Eue='parser.cc.1',Fue='parser.cc.2',Gue='parser.cc.3',Hue='parser.cc.5',Iue='parser.cc.6',Jue='parser.cc.7',Kue='parser.cc.8',Lue='parser.ope.1',Mue='parser.ope.2',Nue='parser.ope.3',Oue='parser.descape.1',Pue='parser.descape.2',Que='parser.descape.3',Rue='parser.descape.4',Sue='parser.descape.5',Tue='parser.process.1',Uue='parser.quantifier.1',Vue='parser.quantifier.2',Wue='parser.quantifier.3',Xue='parser.quantifier.4',Yue='parser.quantifier.5',Zue='org.eclipse.emf.common.notify',$ue={416:1,672:1},_ue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},ave={365:1,143:1},bve='index=',cve={3:1,4:1,5:1,125:1},dve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},eve={3:1,6:1,4:1,5:1,192:1},fve={3:1,4:1,5:1,165:1,366:1},gve=';/?:@&=+$,',hve='invalid authority: ',ive='EAnnotation',jve='ETypedElement',kve='EStructuralFeature',lve='EAttribute',mve='EClassifier',nve='EEnumLiteral',ove='EGenericType',pve='EOperation',qve='EParameter',rve='EReference',sve='ETypeParameter',tve='org.eclipse.emf.ecore.util',uve={76:1},vve={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},wve='org.eclipse.emf.ecore.util.FeatureMap$Entry',xve=1024,yve=8192,zve=2048,Ave='byte',Bve='char',Cve='double',Dve='float',Eve='int',Fve='long',Gve='short',Hve='java.lang.Object',Ive={3:1,4:1,5:1,247:1},Jve={3:1,4:1,5:1,673:1},Kve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Lve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Mve='mixed',Nve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Ove='kind',Pve={3:1,4:1,5:1,674:1},Qve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Rve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Sve={47:1,124:1,278:1},Tve={72:1,332:1},Uve="The value of type '",Vve="' must be of type '",Wve=1315,Xve='http://www.eclipse.org/emf/2002/Ecore',Yve=-32768,Zve='constraints',$ve='baseType',_ve='getEStructuralFeature',awe='getFeatureID',bwe='feature',cwe='getOperationID',dwe='operation',ewe='defaultValue',fwe='eTypeParameters',gwe='isInstance',hwe='getEEnumLiteral',iwe='eContainingClass',jwe={55:1},kwe={3:1,4:1,5:1,119:1},lwe='org.eclipse.emf.ecore.resource',mwe={92:1,90:1,591:1,1934:1},nwe='org.eclipse.emf.ecore.resource.impl',owe='unspecified',pwe='simple',qwe='attribute',rwe='attributeWildcard',swe='element',twe='elementWildcard',uwe='collapse',vwe='itemType',wwe='namespace',xwe='##targetNamespace',ywe='whiteSpace',zwe='wildcards',Awe='http://www.eclipse.org/emf/2003/XMLType',Bwe='##any',Cwe='uninitialized',Dwe='The multiplicity constraint is violated',Ewe='org.eclipse.emf.ecore.xml.type',Fwe='ProcessingInstruction',Gwe='SimpleAnyType',Hwe='XMLTypeDocumentRoot',Iwe='org.eclipse.emf.ecore.xml.type.impl',Jwe='INF',Kwe='processing',Lwe='ENTITIES_._base',Mwe='minLength',Nwe='ENTITY',Owe='NCName',Pwe='IDREFS_._base',Qwe='integer',Rwe='token',Swe='pattern',Twe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Uwe='\\i\\c*',Vwe='[\\i-[:]][\\c-[:]]*',Wwe='nonPositiveInteger',Xwe='maxInclusive',Ywe='NMTOKEN',Zwe='NMTOKENS_._base',$we='nonNegativeInteger',_we='minInclusive',axe='normalizedString',bxe='unsignedByte',cxe='unsignedInt',dxe='18446744073709551615',exe='unsignedShort',fxe='processingInstruction',gxe='org.eclipse.emf.ecore.xml.type.internal',hxe=1114111,ixe='Internal Error: shorthands: \\u',jxe='xml:isDigit',kxe='xml:isWord',lxe='xml:isSpace',mxe='xml:isNameChar',nxe='xml:isInitialNameChar',oxe='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',pxe='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',qxe='Private Use',rxe='ASSIGNED',sxe='\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',txe='UNASSIGNED',uxe={3:1,117:1},vxe='org.eclipse.emf.ecore.xml.type.util',wxe={3:1,4:1,5:1,367:1},xxe='org.eclipse.xtext.xbase.lib',yxe='Cannot add elements to a Range',zxe='Cannot set elements in a Range',Axe='Cannot remove elements from a Range',Bxe='locale',Cxe='default',Dxe='user.agent';var _,$bb,Vbb,sbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;_bb();acb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.fm};_.Hb=function sb(){return ECb(this)};_.Ib=function ub(){var a;return gdb(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 xD,yD,zD;acb(289,1,{289:1,2025:1},idb);_.le=function jdb(a){var b;b=new idb;b.i=4;a>1?(b.c=qdb(this,a-1)):(b.c=this);return b};_.me=function pdb(){edb(this);return this.b};_.ne=function rdb(){return gdb(this)};_.oe=function tdb(){return edb(this),this.k};_.pe=function vdb(){return (this.i&4)!=0};_.qe=function wdb(){return (this.i&1)!=0};_.Ib=function zdb(){return hdb(this)};_.i=0;var ddb=1;var SI=ldb(Khe,'Object',1);var AI=ldb(Khe,'Class',289);acb(1997,1,Lhe);var $D=ldb(Mhe,'Optional',1997);acb(1169,1997,Lhe,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 YD=ldb(Mhe,'Absent',1169);acb(628,1,{},Gb);var ZD=ldb(Mhe,'Joiner',628);var _D=ndb(Mhe,'Predicate');acb(582,1,{169:1,582:1,3:1,45: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(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return pmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=ldb(Mhe,'Predicates/AndPredicate',582);acb(409,1997,{409:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,409)){b=BD(a,409);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Rhe+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 bE=ldb(Mhe,'Present',409);acb(198,1,The);_.Nb=function kc(a){Qrb(this,a)};_.Qb=function lc(){jc()};var MH=ldb(Uhe,'UnmodifiableIterator',198);acb(1977,198,Vhe);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw ubb(new agb)};_.Wb=function oc(a){throw ubb(new agb)};var NH=ldb(Uhe,'UnmodifiableListIterator',1977);acb(386,1977,Vhe);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw ubb(new ttb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw ubb(new ttb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=ldb(Uhe,'AbstractIndexedListIterator',386);acb(699,198,The);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=ldb(Uhe,'AbstractIterator',699);acb(1985,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(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 ecb(this.Zb())};var IE=ldb(Uhe,'AbstractMultimap',1985);acb(726,1985,Whe);_.$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 Yj(this.c.vc().Nc(),new $g,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 lmb(),new knb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=ldb(Uhe,'AbstractMapBasedMultimap',726);acb(1630,726,Whe);_.hc=function pd(){return new Rkb(this.a)};_.jc=function qd(){return lmb(),lmb(),imb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return umb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=ldb(Uhe,'AbstractListMultimap',1630);acb(732,1,Xhe);_.Nb=function zd(a){Qrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=ldb(Uhe,'AbstractMapBasedMultimap/Itr',732);acb(1098,732,Xhe,Dd);_.sc=function Ed(a,b){return b};var fE=ldb(Uhe,'AbstractMapBasedMultimap/1',1098);acb(1099,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=ldb(Uhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1099);acb(1100,732,Xhe,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=ldb(Uhe,'AbstractMapBasedMultimap/2',1100);var DK=ndb(Yhe,'Map');acb(1966,1,Zhe);_.wc=function Td(a){rtb(this,a)};_.yc=function $d(a,b,c){return stb(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=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return omb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Oib(this)};_.zc=function _d(a,b){throw ubb(new bgb('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 Zib(this)};var sJ=ldb(Yhe,'AbstractMap',1966);acb(1986,1966,Zhe);_.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 Zv(this)):a};var bH=ldb(Uhe,'Maps/ViewCachingAbstractMap',1986);acb(389,1986,Zhe,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():ir(new mf(this))};_._b=function pe(a){return Gv(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 ecb(this.d)};var lE=ldb(Uhe,'AbstractMapBasedMultimap/AsMap',389);var KI=ndb(Khe,'Iterable');acb(28,1,$he);_.Jc=function Le(a){qeb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Jub(this,0)};_.Oc=function Qe(){return new XAb(null,this.Nc())};_.Fc=function Ge(a){throw ubb(new bgb('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 dJ=ldb(Yhe,'AbstractCollection',28);var LK=ndb(Yhe,'Set');acb(_he,28,aie);_.Nc=function Ye(){return new Jub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return omb(this)};var zJ=ldb(Yhe,'AbstractSet',_he);acb(1969,_he,aie);var BH=ldb(Uhe,'Sets/ImprovedAbstractSet',1969);acb(1970,1969,aie);_.$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)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=ldb(Uhe,'Maps/EntrySet',1970);acb(1096,1970,aie,df);_.Hc=function ef(a){return Ck(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(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=ldb(Uhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1096);acb(1097,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=ldb(Uhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1097);acb(730,1,Xhe,mf);_.Nb=function nf(a){Qrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),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 kE=ldb(Uhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);acb(532,1969,aie,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 Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(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 $G=ldb(Uhe,'Maps/KeySet',532);acb(318,532,aie,zf);_.$b=function Af(){var a;ir((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=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=ldb(Uhe,'AbstractMapBasedMultimap/KeySet',318);acb(731,1,Xhe,Hf);_.Nb=function If(a){Qrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=ldb(Uhe,'AbstractMapBasedMultimap/KeySet/1',731);acb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=ldb(Uhe,'AbstractMapBasedMultimap/SortedAsMap',491);acb(542,491,bie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=ldb(Uhe,'AbstractMapBasedMultimap/NavigableAsMap',542);acb(490,318,cie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=ldb(Uhe,'AbstractMapBasedMultimap/SortedKeySet',490);acb(388,490,die,$f);var qE=ldb(Uhe,'AbstractMapBasedMultimap/NavigableKeySet',388);acb(541,28,$he,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return ecb(this.d)};var vE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=ndb(Yhe,'List');acb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){jtb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedList',728);acb(1095,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=ldb(Uhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1095);acb(620,1,Xhe,Gg);_.Nb=function Ig(a){Qrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);acb(729,620,eie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,124)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,124)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,124)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,124)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,124)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,124)).Wb(a)};var wE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);acb(727,541,cie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);acb(1094,727,die,Xg);var yE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1094);acb(1093,541,aie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedSet',1093);acb(1102,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=ldb(Uhe,'AbstractMapBasedMultimap/lambda$1$Type',1102);acb(1101,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=ldb(Uhe,'AbstractMapBasedMultimap/lambda$2$Type',1101);var CK=ndb(Yhe,'Map/Entry');acb(344,1,fie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw ubb(new agb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=ldb(Uhe,gie,344);acb(1987,28,$he);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=ldb(Uhe,'Multimaps/Entries',1987);acb(733,1987,$he,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=ldb(Uhe,'AbstractMultimap/Entries',733);acb(734,733,aie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=ldb(Uhe,'AbstractMultimap/EntrySet',734);acb(735,28,$he,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=ldb(Uhe,'AbstractMultimap/Values',735);acb(1988,28,{834:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,834)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return ecb(Ah(this))};var KE=ldb(Uhe,'AbstractMultiset',1988);acb(1990,1969,aie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,417);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,417);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=ldb(Uhe,'Multisets/EntrySet',1990);acb(1108,1990,aie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=ldb(Uhe,'AbstractMultiset/EntrySet',1108);acb(619,726,Whe);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return lmb(),lmb(),kmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return lmb(),new yob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=ldb(Uhe,'AbstractSetMultimap',619);acb(1656,619,Whe);_.hc=function ei(){return new Gxb(this.b)};_.gd=function fi(){return new Gxb(this.b)};_.jc=function gi(){return Ix(new Gxb(this.b))};_.hd=function hi(){return Ix(new Gxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(lmb(),new Yob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=ldb(Uhe,'AbstractSortedSetMultimap',1656);acb(1657,1656,Whe);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=ldb(Uhe,'AbstractSortedKeySortedSetMultimap',1657);acb(2009,1,{1946:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return omb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=ldb(Uhe,'AbstractTable',2009);acb(665,_he,aie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=ldb(Uhe,'AbstractTable/CellSet',665);acb(1927,28,$he,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=ldb(Uhe,'AbstractTable/Values',1927);acb(1631,1630,Whe);var RE=ldb(Uhe,'ArrayListMultimapGwtSerializationDependencies',1631);acb(513,1631,Whe,Ji,Ki);_.hc=function Li(){return new Rkb(this.a)};_.a=0;var SE=ldb(Uhe,'ArrayListMultimap',513);acb(664,2009,{664:1,1946:1,3:1},_i);var cF=ldb(Uhe,'ArrayTable',664);acb(1923,386,Vhe,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=ldb(Uhe,'ArrayTable/1',1923);acb(1924,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=ldb(Uhe,'ArrayTable/1methodref$getCell$Type',1924);acb(2010,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Glb(OC(GC(SI,1),Phe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=ldb(Uhe,'Tables/AbstractCell',2010);acb(468,2010,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=ldb(Uhe,'ArrayTable/2',468);acb(1926,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=ldb(Uhe,'ArrayTable/2methodref$getValue$Type',1926);acb(1925,386,Vhe,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=ldb(Uhe,'ArrayTable/3',1925);acb(1978,1966,Zhe);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Lub(this.kc(),this.gc())};var YG=ldb(Uhe,'Maps/IteratorBasedAbstractMap',1978);acb(827,1978,Zhe);_.$b=function tj(){throw ubb(new agb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw ubb(new Vdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw ubb(new agb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=ldb(Uhe,'ArrayTable/ArrayMap',827);acb(1922,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=ldb(Uhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1922);acb(1920,344,fie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=ldb(Uhe,'ArrayTable/ArrayMap/1',1920);acb(1921,386,Vhe,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=ldb(Uhe,'ArrayTable/ArrayMap/2',1921);acb(1919,827,Zhe,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=ldb(Uhe,'ArrayTable/Row',1919);acb(828,827,Zhe,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=ldb(Uhe,'ArrayTable/RowMap',828);acb(1119,1,kie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=ldb(Uhe,'CollectSpliterators/1',1119);acb(1120,1,lie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=ldb(Uhe,'CollectSpliterators/1/lambda$0$Type',1120);acb(1121,1,lie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=ldb(Uhe,'CollectSpliterators/1/lambda$1$Type',1121);acb(1122,1,kie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Ceb(this.b,this.d.rd()));return Ceb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Jbb(this.b,mie)&&(this.b=Pbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=ldb(Uhe,'CollectSpliterators/1FlatMapSpliterator',1122);acb(1123,1,lie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=ldb(Uhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1123);acb(1124,1,lie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=ldb(Uhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1124);acb(1116,1,kie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=ldb(Uhe,'CollectSpliterators/1WithCharacteristics',1116);acb(1117,1,nie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=ldb(Uhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1117);acb(1118,1,nie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=ldb(Uhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1118);acb(245,1,oie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Ecb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=ldb(Uhe,'Cut',245);acb(1760,245,oie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw ubb(new wcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw ubb(new Ydb(pie))};_.Hb=function Rk(){return Yfb(),jCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=ldb(Uhe,'Cut/AboveAll',1760);acb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Ofb((a.a+='(',a),this.a)};_.yd=function Wk(a){Jfb(Ofb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Ecb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=ldb(Uhe,'Cut/AboveValue',519);acb(1759,245,oie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw ubb(new wcb)};_.zd=function el(){throw ubb(new Ydb(pie))};_.Hb=function fl(){return Yfb(),jCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=ldb(Uhe,'Cut/BelowAll',1759);acb(1761,245,oie,il);_.xd=function jl(a){Ofb((a.a+='[',a),this.a)};_.yd=function kl(a){Jfb(Ofb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Ecb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=ldb(Uhe,'Cut/BelowValue',1761);acb(537,1,qie);_.Jc=function ql(a){qeb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=ldb(Uhe,'FluentIterable',537);acb(434,537,qie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=ldb(Uhe,'FluentIterable/2',434);acb(1045,537,qie,vl);_.Kc=function wl(){return ul(this)};var tF=ldb(Uhe,'FluentIterable/3',1045);acb(708,386,Vhe,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=ldb(Uhe,'FluentIterable/3/1',708);acb(1971,1,{});_.Ib=function zl(){return ecb(this.Bd().b)};var BF=ldb(Uhe,'ForwardingObject',1971);acb(1972,1971,rie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){qeb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Jub(this,0)};_.Oc=function Nl(){return new XAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),dnb()};_.Gc=function Bl(a){return this.Cd(),enb()};_.$b=function Cl(){this.Cd(),fnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),inb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=ldb(Uhe,'ForwardingCollection',1972);acb(1979,28,sie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw ubb(new agb)};_.Gc=function Tl(a){throw ubb(new agb)};_.$b=function Ul(){throw ubb(new agb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw ubb(new agb)};var WF=ldb(Uhe,'ImmutableCollection',1979);acb(712,1979,sie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return ecb(this.a)};var wF=ldb(Uhe,'ForwardingImmutableCollection',712);acb(152,1979,tie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){jtb(this,a)};_.Nc=function Am(){return new Jub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw ubb(new agb)};_.Wc=function mm(a,b){throw ubb(new agb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw ubb(new agb)};_._c=function ym(a,b){throw ubb(new agb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Iib(c,a,b)))};var hm;var _F=ldb(Uhe,'ImmutableList',152);acb(2005,152,tie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Phe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return ecb(this.Hd())};var xF=ldb(Uhe,'ForwardingImmutableList',2005);acb(714,1,vie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){rtb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return stb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw ubb(new agb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw ubb(new agb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=ldb(Uhe,'ImmutableMap',714);acb(715,714,vie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return cob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(fob(this.b))};_.Kd=function zn(){return Ql(),new Zl(gob(this.b))};_.Fb=function An(a){return eob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return ecb(this.b.c)};var zF=ldb(Uhe,'ForwardingImmutableMap',715);acb(1973,1972,wie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Jub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=ldb(Uhe,'ForwardingSet',1973);acb(1068,1973,wie,Ln);_.Bd=function Nn(){return dob(this.a.b)};_.Cd=function On(){return dob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Cob(dob(this.a.b),b)}catch(a){a=tbb(a);if(JD(a,205)){return false}else throw ubb(a)}};_.Md=function Pn(){return dob(this.a.b)};_.Qc=function Qn(a){var b;b=Dob(dob(this.a.b),a);dob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Cpb(),Apb)[this.q.getDay()]+' '+Bpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=ldb(Yhe,'Date',199);acb(1914,199,xje,nB);_.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 eI=ldb('com.google.gwt.i18n.shared.impl','DateRecord',1914);acb(1965,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=ldb(yje,'JSONValue',1965);acb(216,1965,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Vfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Ofb(c,tB(this,b))}c.a+=']';return c.a};var fI=ldb(yje,'JSONArray',216);acb(483,1965,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Acb(),''+this.a};_.a=false;var EB,FB;var gI=ldb(yje,'JSONBoolean',483);acb(984,60,Oie,MB);var hI=ldb(yje,'JSONException',984);acb(1022,1965,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return She};var NB;var iI=ldb(yje,'JSONNull',1022);acb(258,1965,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Gdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=ldb(yje,'JSONNumber',258);acb(183,1965,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Vfb('{');a=true;f=$B(this,KC(ZI,iie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=ldb(Khe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=ldb(Khe,Qie,2);acb(107,419,{475:1},Gfb,Hfb,Ifb);var WI=ldb(Khe,'StringBuffer',107);acb(100,419,{475:1},Tfb,Ufb,Vfb);var XI=ldb(Khe,'StringBuilder',100);acb(687,73,Hje,Wfb);var YI=ldb(Khe,'StringIndexOutOfBoundsException',687);acb(2042,1,{});var Xfb;acb(843,1,{},$fb);_.Kb=function _fb(a){return BD(a,78).e};var $I=ldb(Khe,'Throwable/lambda$0$Type',843);acb(41,60,{3:1,102:1,60:1,78:1,41:1},agb,bgb);var aJ=ldb(Khe,'UnsupportedOperationException',41);acb(240,236,{3:1,35:1,236:1,240:1},rgb,sgb);_.wd=function vgb(a){return lgb(this,BD(a,240))};_.ke=function wgb(){return Gcb(qgb(this))};_.Fb=function xgb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&lgb(this,b)==0}return false};_.Hb=function ygb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Bbb(this.f);this.b=Sbb(wbb(a,-1));this.b=33*this.b+Sbb(wbb(Nbb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Mgb(this.c)+QD(this.e);return this.b};_.Ib=function zgb(){return qgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var cgb,dgb,egb,fgb,ggb,hgb,igb,jgb;var bJ=ldb('java.math','BigDecimal',240);acb(91,236,{3:1,35:1,236:1,91:1},Sgb,Tgb,Ugb,Vgb,Wgb,Xgb);_.wd=function Zgb(a){return Hgb(this,BD(a,91))};_.ke=function $gb(){return Gcb(rhb(this,0))};_.Fb=function _gb(a){return Jgb(this,a)};_.Hb=function bhb(){return Mgb(this)};_.Ib=function dhb(){return rhb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Agb,Bgb,Cgb,Dgb,Egb,Fgb;var cJ=ldb('java.math','BigInteger',91);var mhb,nhb;var Ahb,Bhb;acb(488,1966,Zhe);_.$b=function Whb(){Thb(this)};_._b=function Xhb(a){return Lhb(this,a)};_.uc=function Yhb(a){return Mhb(this,a,this.g)||Mhb(this,a,this.f)};_.vc=function Zhb(){return new dib(this)};_.xc=function $hb(a){return Nhb(this,a)};_.zc=function _hb(a,b){return Qhb(this,a,b)};_.Bc=function aib(a){return Shb(this,a)};_.gc=function bib(){return Uhb(this)};var gJ=ldb(Yhe,'AbstractHashMap',488);acb(261,_he,aie,dib);_.$b=function eib(){this.a.$b()};_.Hc=function fib(a){return cib(this,a)};_.Kc=function gib(){return new mib(this.a)};_.Mc=function hib(a){var b;if(cib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function iib(){return this.a.gc()};var fJ=ldb(Yhe,'AbstractHashMap/EntrySet',261);acb(262,1,Xhe,mib);_.Nb=function nib(a){Qrb(this,a)};_.Pb=function pib(){return kib(this)};_.Ob=function oib(){return this.b};_.Qb=function qib(){lib(this)};_.b=false;var eJ=ldb(Yhe,'AbstractHashMap/EntrySetIterator',262);acb(418,1,Xhe,uib);_.Nb=function vib(a){Qrb(this,a)};_.Ob=function wib(){return rib(this)};_.Pb=function xib(){return sib(this)};_.Qb=function yib(){tib(this)};_.b=0;_.c=-1;var hJ=ldb(Yhe,'AbstractList/IteratorImpl',418);acb(96,418,eie,Aib);_.Qb=function Gib(){tib(this)};_.Rb=function Bib(a){zib(this,a)};_.Sb=function Cib(){return this.b>0};_.Tb=function Dib(){return this.b};_.Ub=function Eib(){return rCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Fib(){return this.b-1};_.Wb=function Hib(a){xCb(this.c!=-1);this.a._c(this.c,a)};var iJ=ldb(Yhe,'AbstractList/ListIteratorImpl',96);acb(219,52,Gie,Iib);_.Vc=function Jib(a,b){vCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Kib(a){sCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Lib(a){var b;sCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Mib(a,b){sCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Nib(){return this.b};_.a=0;_.b=0;var jJ=ldb(Yhe,'AbstractList/SubList',219);acb(384,_he,aie,Oib);_.$b=function Pib(){this.a.$b()};_.Hc=function Qib(a){return this.a._b(a)};_.Kc=function Rib(){var a;return a=this.a.vc().Kc(),new Uib(a)};_.Mc=function Sib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Tib(){return this.a.gc()};var mJ=ldb(Yhe,'AbstractMap/1',384);acb(691,1,Xhe,Uib);_.Nb=function Vib(a){Qrb(this,a)};_.Ob=function Wib(){return this.a.Ob()};_.Pb=function Xib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Yib(){this.a.Qb()};var lJ=ldb(Yhe,'AbstractMap/1/1',691);acb(226,28,$he,Zib);_.$b=function $ib(){this.a.$b()};_.Hc=function _ib(a){return this.a.uc(a)};_.Kc=function ajb(){var a;return a=this.a.vc().Kc(),new cjb(a)};_.gc=function bjb(){return this.a.gc()};var oJ=ldb(Yhe,'AbstractMap/2',226);acb(294,1,Xhe,cjb);_.Nb=function djb(a){Qrb(this,a)};_.Ob=function ejb(){return this.a.Ob()};_.Pb=function fjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function gjb(){this.a.Qb()};var nJ=ldb(Yhe,'AbstractMap/2/1',294);acb(484,1,{484:1,42:1});_.Fb=function ijb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return vtb(this.d,b.cd())&&vtb(this.e,b.dd())};_.cd=function jjb(){return this.d};_.dd=function kjb(){return this.e};_.Hb=function ljb(){return wtb(this.d)^wtb(this.e)};_.ed=function mjb(a){return hjb(this,a)};_.Ib=function njb(){return this.d+'='+this.e};var pJ=ldb(Yhe,'AbstractMap/AbstractEntry',484);acb(383,484,{484:1,383:1,42:1},ojb);var qJ=ldb(Yhe,'AbstractMap/SimpleEntry',383);acb(1983,1,Wje);_.Fb=function pjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return vtb(this.cd(),b.cd())&&vtb(this.dd(),b.dd())};_.Hb=function qjb(){return wtb(this.cd())^wtb(this.dd())};_.Ib=function rjb(){return this.cd()+'='+this.dd()};var rJ=ldb(Yhe,gie,1983);acb(1991,1966,bie);_.tc=function ujb(a){return sjb(this,a)};_._b=function vjb(a){return tjb(this,a)};_.vc=function wjb(){return new Ajb(this)};_.xc=function xjb(a){var b;b=a;return Wd(zwb(this,b))};_.ec=function zjb(){return new Fjb(this)};var wJ=ldb(Yhe,'AbstractNavigableMap',1991);acb(739,_he,aie,Ajb);_.Hc=function Bjb(a){return JD(a,42)&&sjb(this.b,BD(a,42))};_.Kc=function Cjb(){return new Xwb(this.b)};_.Mc=function Djb(a){var b;if(JD(a,42)){b=BD(a,42);return Jwb(this.b,b)}return false};_.gc=function Ejb(){return this.b.c};var tJ=ldb(Yhe,'AbstractNavigableMap/EntrySet',739);acb(493,_he,die,Fjb);_.Nc=function Ljb(){return new Qub(this)};_.$b=function Gjb(){ywb(this.a)};_.Hc=function Hjb(a){return tjb(this.a,a)};_.Kc=function Ijb(){var a;return a=new Xwb((new bxb(this.a)).b),new Mjb(a)};_.Mc=function Jjb(a){if(tjb(this.a,a)){Iwb(this.a,a);return true}return false};_.gc=function Kjb(){return this.a.c};var vJ=ldb(Yhe,'AbstractNavigableMap/NavigableKeySet',493);acb(494,1,Xhe,Mjb);_.Nb=function Njb(a){Qrb(this,a)};_.Ob=function Ojb(){return rib(this.a.a)};_.Pb=function Pjb(){var a;return a=Vwb(this.a),a.cd()};_.Qb=function Qjb(){Wwb(this.a)};var uJ=ldb(Yhe,'AbstractNavigableMap/NavigableKeySet/1',494);acb(2003,28,$he);_.Fc=function Rjb(a){return yCb(bub(this,a)),true};_.Gc=function Sjb(a){tCb(a);lCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Tjb(){while(cub(this)!=null);};var xJ=ldb(Yhe,'AbstractQueue',2003);acb(302,28,{4:1,20:1,28:1,14:1},ikb,jkb);_.Fc=function kkb(a){return Wjb(this,a),true};_.$b=function mkb(){Xjb(this)};_.Hc=function nkb(a){return Yjb(new wkb(this),a)};_.dc=function okb(){return _jb(this)};_.Kc=function pkb(){return new wkb(this)};_.Mc=function qkb(a){return ckb(new wkb(this),a)};_.gc=function rkb(){return this.c-this.b&this.a.length-1};_.Nc=function skb(){return new Jub(this,272)};_.Qc=function tkb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=ldb(Yhe,'ArrayDeque',302);acb(447,1,Xhe,wkb);_.Nb=function xkb(a){Qrb(this,a)};_.Ob=function ykb(){return this.a!=this.b};_.Pb=function zkb(){return ukb(this)};_.Qb=function Akb(){vkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=ldb(Yhe,'ArrayDeque/IteratorImpl',447);acb(12,52,Xje,Qkb,Rkb,Skb);_.Vc=function Tkb(a,b){Ckb(this,a,b)};_.Fc=function Ukb(a){return Dkb(this,a)};_.Wc=function Vkb(a,b){return Ekb(this,a,b)};_.Gc=function Wkb(a){return Fkb(this,a)};_.$b=function Xkb(){this.c=KC(SI,Phe,1,0,5,1)};_.Hc=function Ykb(a){return Ikb(this,a,0)!=-1};_.Jc=function Zkb(a){Gkb(this,a)};_.Xb=function $kb(a){return Hkb(this,a)};_.Xc=function _kb(a){return Ikb(this,a,0)};_.dc=function alb(){return this.c.length==0};_.Kc=function blb(){return new nlb(this)};_.$c=function clb(a){return Jkb(this,a)};_.Mc=function dlb(a){return Kkb(this,a)};_.Ud=function elb(a,b){Lkb(this,a,b)};_._c=function flb(a,b){return Mkb(this,a,b)};_.gc=function glb(){return this.c.length};_.ad=function hlb(a){Nkb(this,a)};_.Pc=function ilb(){return Okb(this)};_.Qc=function jlb(a){return Pkb(this,a)};var DJ=ldb(Yhe,'ArrayList',12);acb(7,1,Xhe,nlb);_.Nb=function olb(a){Qrb(this,a)};_.Ob=function plb(){return klb(this)};_.Pb=function qlb(){return llb(this)};_.Qb=function rlb(){mlb(this)};_.a=0;_.b=-1;var CJ=ldb(Yhe,'ArrayList/1',7);acb(2012,$wnd.Function,{},Xlb);_.te=function Ylb(a,b){return Jdb(a,b)};acb(154,52,Yje,_lb);_.Hc=function amb(a){return Bt(this,a)!=-1};_.Jc=function bmb(a){var b,c,d,e;tCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Lje;var PM=ldb(Bke,'CNode',57);acb(813,1,{},yDb);var OM=ldb(Bke,'CNode/CNodeBuilder',813);var DDb;acb(1524,1,{},FDb);_.Oe=function GDb(a,b){return 0};_.Pe=function HDb(a,b){return 0};var QM=ldb(Bke,Dke,1524);acb(1789,1,{},IDb);_.Le=function JDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Kje;for(d=new nlb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function GHb(){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].Se())}else if(this.g){e=DHb(this,xHb(this,null,true))}else{for(b=(fHb(),OC(GC(pN,1),Fie,232,0,[cHb,dHb,eHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function HHb(){var a,b,c,d,e;if(this.g){a=xHb(this,null,false);for(c=(fHb(),OC(GC(pN,1),Fie,232,0,[cHb,dHb,eHb])),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);tHb(this,dHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var qHb=0,rHb=0;var rN=ldb(ale,'GridContainerCell',1472);acb(461,22,{3:1,35:1,22:1,461:1},NHb);var JHb,KHb,LHb;var sN=mdb(ale,'HorizontalLabelAlignment',461,CI,PHb,OHb);var QHb;acb(306,212,{212:1,306:1},_Hb,aIb,bIb);_.Re=function cIb(){return XHb(this)};_.Se=function dIb(){return YHb(this)};_.a=0;_.c=false;var tN=ldb(ale,'LabelCell',306);acb(244,326,{212:1,326:1,244:1},lIb);_.Re=function mIb(){return eIb(this)};_.Se=function nIb(){return fIb(this)};_.Te=function qIb(){gIb(this)};_.Ue=function rIb(){hIb(this)};_.b=0;_.c=0;_.d=false;var yN=ldb(ale,'StripContainerCell',244);acb(1625,1,Jie,sIb);_.Mb=function tIb(a){return oIb(BD(a,212))};var uN=ldb(ale,'StripContainerCell/lambda$0$Type',1625);acb(1626,1,{},uIb);_.Fe=function vIb(a){return BD(a,212).Se()};var vN=ldb(ale,'StripContainerCell/lambda$1$Type',1626);acb(1627,1,Jie,wIb);_.Mb=function xIb(a){return pIb(BD(a,212))};var wN=ldb(ale,'StripContainerCell/lambda$2$Type',1627);acb(1628,1,{},yIb);_.Fe=function zIb(a){return BD(a,212).Re()};var xN=ldb(ale,'StripContainerCell/lambda$3$Type',1628);acb(462,22,{3:1,35:1,22:1,462:1},EIb);var AIb,BIb,CIb;var zN=mdb(ale,'VerticalLabelAlignment',462,CI,GIb,FIb);var HIb;acb(788,1,{},KIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=ldb(ile,'NodeContext',788);acb(1470,1,yke,NIb);_.ue=function OIb(a,b){return MIb(BD(a,61),BD(b,61))};_.Fb=function PIb(a){return this===a};_.ve=function QIb(){return new spb(this)};var AN=ldb(ile,'NodeContext/0methodref$comparePortSides$Type',1470);acb(1471,1,yke,RIb);_.ue=function SIb(a,b){return LIb(BD(a,111),BD(b,111))};_.Fb=function TIb(a){return this===a};_.ve=function UIb(){return new spb(this)};var BN=ldb(ile,'NodeContext/1methodref$comparePortContexts$Type',1471);acb(159,22,{3:1,35:1,22:1,159:1},sJb);var VIb,WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb;var DN=mdb(ile,'NodeLabelLocation',159,CI,vJb,uJb);var wJb;acb(111,1,{111:1},zJb);_.a=false;var EN=ldb(ile,'PortContext',111);acb(1475,1,lie,SJb);_.td=function TJb(a){VHb(BD(a,306))};var FN=ldb(lle,mle,1475);acb(1476,1,Jie,UJb);_.Mb=function VJb(a){return !!BD(a,111).c};var GN=ldb(lle,nle,1476);acb(1477,1,lie,WJb);_.td=function XJb(a){VHb(BD(a,111).c)};var HN=ldb(lle,'LabelPlacer/lambda$2$Type',1477);var YJb;acb(1474,1,lie,eKb);_.td=function fKb(a){ZJb();yJb(BD(a,111))};var IN=ldb(lle,'NodeLabelAndSizeUtilities/lambda$0$Type',1474);acb(789,1,lie,lKb);_.td=function mKb(a){jKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=ldb(lle,'NodeLabelCellCreator/lambda$0$Type',789);acb(1473,1,lie,sKb);_.td=function tKb(a){rKb(this.a,BD(a,181))};var KN=ldb(lle,'PortContextCreator/lambda$0$Type',1473);var AKb;acb(1828,1,{},UKb);var MN=ldb(ple,'GreedyRectangleStripOverlapRemover',1828);acb(1829,1,yke,WKb);_.ue=function XKb(a,b){return VKb(BD(a,222),BD(b,222))};_.Fb=function YKb(a){return this===a};_.ve=function ZKb(){return new spb(this)};var LN=ldb(ple,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1829);acb(1785,1,{},eLb);_.a=5;_.e=0;var SN=ldb(ple,'RectangleStripOverlapRemover',1785);acb(1786,1,yke,iLb);_.ue=function jLb(a,b){return fLb(BD(a,222),BD(b,222))};_.Fb=function kLb(a){return this===a};_.ve=function lLb(){return new spb(this)};var NN=ldb(ple,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1786);acb(1788,1,yke,mLb);_.ue=function nLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function oLb(a){return this===a};_.ve=function pLb(){return new spb(this)};var ON=ldb(ple,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1788);acb(407,22,{3:1,35:1,22:1,407:1},vLb);var qLb,rLb,sLb,tLb;var PN=mdb(ple,'RectangleStripOverlapRemover/OverlapRemovalDirection',407,CI,xLb,wLb);var yLb;acb(222,1,{222:1},ALb);var QN=ldb(ple,'RectangleStripOverlapRemover/RectangleNode',222);acb(1787,1,lie,BLb);_.td=function CLb(a){_Kb(this.a,BD(a,222))};var RN=ldb(ple,'RectangleStripOverlapRemover/lambda$1$Type',1787);acb(1303,1,yke,FLb);_.ue=function GLb(a,b){return ELb(BD(a,167),BD(b,167))};_.Fb=function HLb(a){return this===a};_.ve=function ILb(){return new spb(this)};var WN=ldb(rle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1303);acb(1306,1,{},JLb);_.Kb=function KLb(a){return BD(a,324).a};var TN=ldb(rle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1306);acb(1307,1,Jie,LLb);_.Mb=function MLb(a){return BD(a,323).a};var UN=ldb(rle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1307);acb(1308,1,Jie,NLb);_.Mb=function OLb(a){return BD(a,323).a};var VN=ldb(rle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1308);acb(1301,1,yke,QLb);_.ue=function RLb(a,b){return PLb(BD(a,167),BD(b,167))};_.Fb=function SLb(a){return this===a};_.ve=function TLb(){return new spb(this)};var YN=ldb(rle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1301);acb(1304,1,{},ULb);_.Kb=function VLb(a){return BD(a,324).a};var XN=ldb(rle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1304);acb(767,1,yke,XLb);_.ue=function YLb(a,b){return WLb(BD(a,167),BD(b,167))};_.Fb=function ZLb(a){return this===a};_.ve=function $Lb(){return new spb(this)};var ZN=ldb(rle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);acb(1299,1,yke,aMb);_.ue=function bMb(a,b){return _Lb(BD(a,321),BD(b,321))};_.Fb=function cMb(a){return this===a};_.ve=function dMb(){return new spb(this)};var _N=ldb(rle,'PolyominoCompactor/MinPerimeterComparator',1299);acb(1300,1,yke,fMb);_.ue=function gMb(a,b){return eMb(BD(a,321),BD(b,321))};_.Fb=function hMb(a){return this===a};_.ve=function iMb(){return new spb(this)};var $N=ldb(rle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1300);acb(1302,1,yke,kMb);_.ue=function lMb(a,b){return jMb(BD(a,167),BD(b,167))};_.Fb=function mMb(a){return this===a};_.ve=function nMb(){return new spb(this)};var bO=ldb(rle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1302);acb(1305,1,{},oMb);_.Kb=function pMb(a){return BD(a,324).a};var aO=ldb(rle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1305);acb(777,1,{},sMb);_.Ce=function tMb(a,b){return rMb(this,BD(a,46),BD(b,167))};var cO=ldb(rle,'SuccessorCombination',777);acb(644,1,{},vMb);_.Ce=function wMb(a,b){var c;return uMb((c=BD(a,46),BD(b,167),c))};var dO=ldb(rle,'SuccessorJitter',644);acb(643,1,{},yMb);_.Ce=function zMb(a,b){var c;return xMb((c=BD(a,46),BD(b,167),c))};var eO=ldb(rle,'SuccessorLineByLine',643);acb(568,1,{},BMb);_.Ce=function CMb(a,b){var c;return AMb((c=BD(a,46),BD(b,167),c))};var fO=ldb(rle,'SuccessorManhattan',568);acb(1355,1,{},EMb);_.Ce=function FMb(a,b){var c;return DMb((c=BD(a,46),BD(b,167),c))};var gO=ldb(rle,'SuccessorMaxNormWindingInMathPosSense',1355);acb(400,1,{},IMb);_.Ce=function JMb(a,b){return GMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=ldb(rle,'SuccessorQuadrantsGeneric',400);acb(1356,1,{},KMb);_.Kb=function LMb(a){return BD(a,324).a};var hO=ldb(rle,'SuccessorQuadrantsGeneric/lambda$0$Type',1356);acb(323,22,{3:1,35:1,22:1,323:1},RMb);_.a=false;var MMb,NMb,OMb,PMb;var jO=mdb(wle,xle,323,CI,TMb,SMb);var UMb;acb(1297,1,{});_.Ib=function aNb(){var a,b,c,d,e,f;c=' ';a=leb(0);for(e=0;e=0?'b'+a+'['+eRb(this.a)+']':'b['+eRb(this.a)+']'}return 'b_'+ECb(this)};var YO=ldb(eme,'FBendpoint',559);acb(281,134,{3:1,281:1,94:1,134:1},fRb);_.Ib=function gRb(){return eRb(this)};var ZO=ldb(eme,'FEdge',281);acb(231,134,{3:1,231:1,94:1,134:1},jRb);var $O=ldb(eme,'FGraph',231);acb(448,356,{3:1,448:1,356:1,94:1,134:1},lRb);_.Ib=function mRb(){return this.b==null||this.b.length==0?'l['+eRb(this.a)+']':'l_'+this.b};var _O=ldb(eme,'FLabel',448);acb(144,356,{3:1,144:1,356:1,94:1,134:1},oRb);_.Ib=function pRb(){return nRb(this)};_.b=0;var aP=ldb(eme,'FNode',144);acb(2002,1,{});_.bf=function uRb(a){qRb(this,a)};_.cf=function vRb(){rRb(this)};_.d=0;var cP=ldb(gme,'AbstractForceModel',2002);acb(631,2002,{631:1},wRb);_.af=function yRb(a,b){var c,d,e,f,g;tRb(this.f,a,b);e=$6c(N6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-Q6c(a.e)/2-Q6c(b.e)/2);c=iRb(this.e,a,b);c>0?(f=-xRb(d,this.c)*c):(f=BRb(d,this.b)*BD(uNb(a,(vSb(),nSb)),19).a);U6c(e,f/g);return e};_.bf=function zRb(a){qRb(this,a);this.a=BD(uNb(a,(vSb(),dSb)),19).a;this.c=Ddb(ED(uNb(a,tSb)));this.b=Ddb(ED(uNb(a,pSb)))};_.df=function ARb(a){return a0&&(f-=DRb(d,this.a)*c);U6c(e,f*this.b/g);return e};_.bf=function FRb(a){var b,c,d,e,f,g,h;qRb(this,a);this.b=Ddb(ED(uNb(a,(vSb(),uSb))));this.c=this.b/BD(uNb(a,dSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new nlb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=ldb(gme,'FruchtermanReingoldModel',632);acb(848,1,Xke,SRb);_.Qe=function TRb(a){p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,hme),''),'Force Model'),'Determines the model for force calculation.'),LRb),(X5c(),R5c)),gP),oqb((J5c(),H5c)))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ime),''),'Iterations'),'The number of iterations on the force model.'),leb(300)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,jme),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),leb(0)),T5c),JI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,kme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),lme),Q5c),BI),oqb(H5c))));k4c(a,kme,hme,QRb);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,mme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),Q5c),BI),oqb(H5c))));k4c(a,mme,hme,NRb);wSb((new xSb,a))};var JRb,KRb,LRb,MRb,NRb,ORb,PRb,QRb;var fP=ldb(nme,'ForceMetaDataProvider',848);acb(425,22,{3:1,35:1,22:1,425:1},XRb);var URb,VRb;var gP=mdb(nme,'ForceModelStrategy',425,CI,ZRb,YRb);var $Rb;acb(987,1,Xke,xSb);_.Qe=function ySb(a){wSb(a)};var aSb,bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb;var iP=ldb(nme,'ForceOptions',987);acb(988,1,{},zSb);_.$e=function ASb(){var a;return a=new YQb,a};_._e=function BSb(a){};var hP=ldb(nme,'ForceOptions/ForceFactory',988);var CSb,DSb,ESb,FSb;acb(849,1,Xke,OSb);_.Qe=function PSb(a){p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Hme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Acb(),false)),(X5c(),P5c)),wI),oqb((J5c(),G5c)))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ime),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),Q5c),BI),pqb(H5c,OC(GC(d1,1),Fie,175,0,[E5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Jme),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),JSb),R5c),oP),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Kme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),lme),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Lme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),leb(Jhe)),T5c),JI),oqb(H5c))));bTb((new cTb,a))};var HSb,ISb,JSb,KSb,LSb,MSb;var jP=ldb(nme,'StressMetaDataProvider',849);acb(991,1,Xke,cTb);_.Qe=function dTb(a){bTb(a)};var QSb,RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb;var lP=ldb(nme,'StressOptions',991);acb(992,1,{},eTb);_.$e=function fTb(){var a;return a=new hTb,a};_._e=function gTb(a){};var kP=ldb(nme,'StressOptions/StressFactory',992);acb(1127,209,Hle,hTb);_.Ze=function iTb(a,b){var c,d,e,f,g;Jdd(b,Nme,1);Bcb(DD(ckd(a,(aTb(),USb))))?Bcb(DD(ckd(a,$Sb)))||ZCb((c=new $Cb((Kgd(),new Ygd(a))),c)):VQb(new YQb,a,Pdd(b,1));e=SQb(a);d=KQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}rTb(this.b,f);pTb(this.b);Gkb(f.d,new jTb)}e=JQb(d);RQb(e);Ldd(b)};var nP=ldb(Pme,'StressLayoutProvider',1127);acb(1128,1,lie,jTb);_.td=function kTb(a){kRb(BD(a,448))};var mP=ldb(Pme,'StressLayoutProvider/lambda$0$Type',1128);acb(989,1,{},sTb);_.c=0;_.e=0;_.g=0;var qP=ldb(Pme,'StressMajorization',989);acb(379,22,{3:1,35:1,22:1,379:1},yTb);var uTb,vTb,wTb;var oP=mdb(Pme,'StressMajorization/Dimension',379,CI,ATb,zTb);var BTb;acb(990,1,yke,DTb);_.ue=function ETb(a,b){return tTb(this.a,BD(a,144),BD(b,144))};_.Fb=function FTb(a){return this===a};_.ve=function GTb(){return new spb(this)};var pP=ldb(Pme,'StressMajorization/lambda$0$Type',990);acb(1228,1,{},OTb);var tP=ldb(Rme,'ElkLayered',1228);acb(1229,1,lie,RTb);_.td=function STb(a){PTb(BD(a,37))};var rP=ldb(Rme,'ElkLayered/lambda$0$Type',1229);acb(1230,1,lie,TTb);_.td=function UTb(a){QTb(this.a,BD(a,37))};var sP=ldb(Rme,'ElkLayered/lambda$1$Type',1230);acb(1262,1,{},aUb);var VTb,WTb,XTb;var xP=ldb(Rme,'GraphConfigurator',1262);acb(759,1,lie,cUb);_.td=function dUb(a){ZTb(this.a,BD(a,10))};var uP=ldb(Rme,'GraphConfigurator/lambda$0$Type',759);acb(760,1,{},eUb);_.Kb=function fUb(a){return YTb(),new XAb(null,new Jub(BD(a,29).a,16))};var vP=ldb(Rme,'GraphConfigurator/lambda$1$Type',760);acb(761,1,lie,gUb);_.td=function hUb(a){ZTb(this.a,BD(a,10))};var wP=ldb(Rme,'GraphConfigurator/lambda$2$Type',761);acb(1126,209,Hle,iUb);_.Ze=function jUb(a,b){var c;c=T1b(new _1b,a);PD(ckd(a,(Lyc(),$wc)))===PD((dbd(),abd))?ITb(this.a,c,b):JTb(this.a,c,b);y2b(new C2b,c)};var yP=ldb(Rme,'LayeredLayoutProvider',1126);acb(355,22,{3:1,35:1,22:1,355:1},qUb);var kUb,lUb,mUb,nUb,oUb;var zP=mdb(Rme,'LayeredPhases',355,CI,sUb,rUb);var tUb;acb(1650,1,{},BUb);_.i=0;var vUb;var CP=ldb(Sme,'ComponentsToCGraphTransformer',1650);var gVb;acb(1651,1,{},CUb);_.ef=function DUb(a,b){return $wnd.Math.min(a.a!=null?Ddb(a.a):a.c.i,b.a!=null?Ddb(b.a):b.c.i)};_.ff=function EUb(a,b){return $wnd.Math.min(a.a!=null?Ddb(a.a):a.c.i,b.a!=null?Ddb(b.a):b.c.i)};var AP=ldb(Sme,'ComponentsToCGraphTransformer/1',1651);acb(81,1,{81:1});_.i=0;_.k=true;_.o=Lje;var IP=ldb(Tme,'CNode',81);acb(460,81,{460:1,81:1},FUb,GUb);_.Ib=function HUb(){return ''};var BP=ldb(Sme,'ComponentsToCGraphTransformer/CRectNode',460);acb(1622,1,{},UUb);var IUb,JUb;var FP=ldb(Sme,'OneDimensionalComponentsCompaction',1622);acb(1623,1,{},XUb);_.Kb=function YUb(a){return VUb(BD(a,46))};_.Fb=function ZUb(a){return this===a};var DP=ldb(Sme,'OneDimensionalComponentsCompaction/lambda$0$Type',1623);acb(1624,1,{},$Ub);_.Kb=function _Ub(a){return WUb(BD(a,46))};_.Fb=function aVb(a){return this===a};var EP=ldb(Sme,'OneDimensionalComponentsCompaction/lambda$1$Type',1624);acb(1653,1,{},cVb);var GP=ldb(Tme,'CGraph',1653);acb(189,1,{189:1},fVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Lje;var HP=ldb(Tme,'CGroup',189);acb(1652,1,{},iVb);_.ef=function jVb(a,b){return $wnd.Math.max(a.a!=null?Ddb(a.a):a.c.i,b.a!=null?Ddb(b.a):b.c.i)};_.ff=function kVb(a,b){return $wnd.Math.max(a.a!=null?Ddb(a.a):a.c.i,b.a!=null?Ddb(b.a):b.c.i)};var JP=ldb(Tme,Dke,1652);acb(1654,1,{},BVb);_.d=false;var lVb;var LP=ldb(Tme,Ike,1654);acb(1655,1,{},CVb);_.Kb=function DVb(a){return mVb(),Acb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function EVb(a){return this===a};var KP=ldb(Tme,Jke,1655);acb(822,1,{},HVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=ldb(Tme,Kke,822);acb(1824,1,{},NVb);var RP=ldb(Ume,Lke,1824);var bQ=ndb(Vme,Ake);acb(1825,1,{368:1},RVb);_.Ke=function SVb(a){PVb(this,BD(a,466))};var OP=ldb(Ume,Mke,1825);acb(1826,1,yke,UVb);_.ue=function VVb(a,b){return TVb(BD(a,81),BD(b,81))};_.Fb=function WVb(a){return this===a};_.ve=function XVb(){return new spb(this)};var NP=ldb(Ume,Nke,1826);acb(466,1,{466:1},YVb);_.a=false;var PP=ldb(Ume,Oke,466);acb(1827,1,yke,ZVb);_.ue=function $Vb(a,b){return OVb(BD(a,466),BD(b,466))};_.Fb=function _Vb(a){return this===a};_.ve=function aWb(){return new spb(this)};var QP=ldb(Ume,Pke,1827);acb(140,1,{140:1},bWb,cWb);_.Fb=function dWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return vtb(this.c,b.c)&&vtb(this.d,b.d)};_.Hb=function eWb(){return Glb(OC(GC(SI,1),Phe,1,5,[this.c,this.d]))};_.Ib=function fWb(){return '('+this.c+Nhe+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=ldb(Vme,'Point',140);acb(406,22,{3:1,35:1,22:1,406:1},nWb);var gWb,hWb,iWb,jWb;var SP=mdb(Vme,'Point/Quadrant',406,CI,rWb,qWb);var sWb;acb(1641,1,{},BWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var uWb,vWb,wWb,xWb,yWb;var aQ=ldb(Vme,'RectilinearConvexHull',1641);acb(574,1,{368:1},MWb);_.Ke=function NWb(a){LWb(this,BD(a,140))};_.b=0;var JWb;var VP=ldb(Vme,'RectilinearConvexHull/MaximalElementsEventHandler',574);acb(1643,1,yke,PWb);_.ue=function QWb(a,b){return OWb(ED(a),ED(b))};_.Fb=function RWb(a){return this===a};_.ve=function SWb(){return new spb(this)};var UP=ldb(Vme,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1643);acb(1642,1,{368:1},UWb);_.Ke=function VWb(a){TWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=ldb(Vme,'RectilinearConvexHull/RectangleEventHandler',1642);acb(1644,1,yke,WWb);_.ue=function XWb(a,b){return DWb(BD(a,140),BD(b,140))};_.Fb=function YWb(a){return this===a};_.ve=function ZWb(){return new spb(this)};var XP=ldb(Vme,'RectilinearConvexHull/lambda$0$Type',1644);acb(1645,1,yke,$Wb);_.ue=function _Wb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function aXb(a){return this===a};_.ve=function bXb(){return new spb(this)};var YP=ldb(Vme,'RectilinearConvexHull/lambda$1$Type',1645);acb(1646,1,yke,cXb);_.ue=function dXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function eXb(a){return this===a};_.ve=function fXb(){return new spb(this)};var ZP=ldb(Vme,'RectilinearConvexHull/lambda$2$Type',1646);acb(1647,1,yke,gXb);_.ue=function hXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function iXb(a){return this===a};_.ve=function jXb(){return new spb(this)};var $P=ldb(Vme,'RectilinearConvexHull/lambda$3$Type',1647);acb(1648,1,yke,kXb);_.ue=function lXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function mXb(a){return this===a};_.ve=function nXb(){return new spb(this)};var _P=ldb(Vme,'RectilinearConvexHull/lambda$4$Type',1648);acb(1649,1,{},pXb);var cQ=ldb(Vme,'Scanline',1649);acb(2004,1,{});var dQ=ldb(Wme,'AbstractGraphPlacer',2004);acb(325,1,{325:1},zXb);_.mf=function AXb(a){if(this.nf(a)){Rc(this.b,BD(uNb(a,(utc(),Csc)),21),a);return true}else{return false}};_.nf=function BXb(a){var b,c,d,e;b=BD(uNb(a,(utc(),Csc)),21);e=BD(Qc(vXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var vXb;var gQ=ldb(Wme,'ComponentGroup',325);acb(765,2004,{},GXb);_.of=function HXb(a){var b,c;for(c=new nlb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;tXb(g,v+q.a,w+q.b);T6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Bcb(DD(uNb(f,owc)))){d=new fYb;XXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);L6c(T6c(k.c),d.e)}L6c(T6c(b.f),d.a)}sXb(b,a)};var uQ=ldb(Wme,'SimpleRowGraphPlacer',1290);acb(1291,1,yke,UYb);_.ue=function VYb(a,b){return TYb(BD(a,37),BD(b,37))};_.Fb=function WYb(a){return this===a};_.ve=function XYb(){return new spb(this)};var tQ=ldb(Wme,'SimpleRowGraphPlacer/1',1291);var YYb;acb(1261,1,Qke,cZb);_.Lb=function dZb(a){var b;return b=BD(uNb(BD(a,243).b,(Lyc(),hxc)),74),!!b&&b.b!=0};_.Fb=function eZb(a){return this===a};_.Mb=function fZb(a){var b;return b=BD(uNb(BD(a,243).b,(Lyc(),hxc)),74),!!b&&b.b!=0};var vQ=ldb($me,'CompoundGraphPostprocessor/1',1261);acb(1260,1,_me,vZb);_.pf=function wZb(a,b){pZb(this,BD(a,37),b)};var xQ=ldb($me,'CompoundGraphPreprocessor',1260);acb(442,1,{442:1},xZb);_.c=false;var wQ=ldb($me,'CompoundGraphPreprocessor/ExternalPort',442);acb(243,1,{243:1},AZb);_.Ib=function BZb(){return Zr(this.c)+':'+SZb(this.b)};var zQ=ldb($me,'CrossHierarchyEdge',243);acb(763,1,yke,DZb);_.ue=function EZb(a,b){return CZb(this,BD(a,243),BD(b,243))};_.Fb=function FZb(a){return this===a};_.ve=function HZb(){return new spb(this)};var yQ=ldb($me,'CrossHierarchyEdgeComparator',763);acb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=ldb(ane,'LGraphElement',299);acb(17,299,{3:1,17:1,299:1,94:1,134:1},TZb);_.Ib=function UZb(){return SZb(this)};var AQ=ldb(ane,'LEdge',17);acb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},WZb);_.Jc=function XZb(a){qeb(this,a)};_.Kc=function YZb(){return new nlb(this.b)};_.Ib=function ZZb(){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 KQ=ldb(ane,'LGraph',37);var $Zb;acb(657,1,{});_.qf=function a$b(){return this.e.n};_.We=function b$b(a){return uNb(this.e,a)};_.rf=function c$b(){return this.e.o};_.sf=function d$b(){return this.e.p};_.Xe=function e$b(a){return vNb(this.e,a)};_.tf=function f$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function g$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function h$b(a){this.e.p=a};var BQ=ldb(ane,'LGraphAdapters/AbstractLShapeAdapter',657);acb(577,1,{838:1},i$b);_.wf=function j$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new nlb(this.a.b);b.a0&&D_b((ACb(c-1,b.length),b.charCodeAt(c-1)),ine)){--c}if(g> ',a),B0b(c));Pfb(Ofb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var s0b,t0b,u0b,v0b,w0b,x0b;var aR=ldb(ane,'LPort',11);acb(397,1,qie,I0b);_.Jc=function J0b(a){qeb(this,a)};_.Kc=function K0b(){var a;a=new nlb(this.a.e);return new L0b(a)};var RQ=ldb(ane,'LPort/1',397);acb(1289,1,Xhe,L0b);_.Nb=function M0b(a){Qrb(this,a)};_.Pb=function O0b(){return BD(llb(this.a),17).c};_.Ob=function N0b(){return klb(this.a)};_.Qb=function P0b(){mlb(this.a)};var QQ=ldb(ane,'LPort/1/1',1289);acb(358,1,qie,Q0b);_.Jc=function R0b(a){qeb(this,a)};_.Kc=function S0b(){var a;return a=new nlb(this.a.g),new T0b(a)};var TQ=ldb(ane,'LPort/2',358);acb(762,1,Xhe,T0b);_.Nb=function U0b(a){Qrb(this,a)};_.Pb=function W0b(){return BD(llb(this.a),17).d};_.Ob=function V0b(){return klb(this.a)};_.Qb=function X0b(){mlb(this.a)};var SQ=ldb(ane,'LPort/2/1',762);acb(1282,1,qie,Y0b);_.Jc=function Z0b(a){qeb(this,a)};_.Kc=function $0b(){return new a1b(this)};var VQ=ldb(ane,'LPort/CombineIter',1282);acb(201,1,Xhe,a1b);_.Nb=function b1b(a){Qrb(this,a)};_.Qb=function e1b(){Rrb()};_.Ob=function c1b(){return _0b(this)};_.Pb=function d1b(){return klb(this.a)?llb(this.a):llb(this.b)};var UQ=ldb(ane,'LPort/CombineIter/1',201);acb(1283,1,Qke,g1b);_.Lb=function h1b(a){return f1b(a)};_.Fb=function i1b(a){return this===a};_.Mb=function j1b(a){return y0b(),BD(a,11).g.c.length!=0};var WQ=ldb(ane,'LPort/lambda$0$Type',1283);acb(1284,1,Qke,l1b);_.Lb=function m1b(a){return k1b(a)};_.Fb=function n1b(a){return this===a};_.Mb=function o1b(a){return y0b(),BD(a,11).e.c.length!=0};var XQ=ldb(ane,'LPort/lambda$1$Type',1284);acb(1285,1,Qke,p1b);_.Lb=function q1b(a){return y0b(),BD(a,11).j==(Pcd(),vcd)};_.Fb=function r1b(a){return this===a};_.Mb=function s1b(a){return y0b(),BD(a,11).j==(Pcd(),vcd)};var YQ=ldb(ane,'LPort/lambda$2$Type',1285);acb(1286,1,Qke,t1b);_.Lb=function u1b(a){return y0b(),BD(a,11).j==(Pcd(),ucd)};_.Fb=function v1b(a){return this===a};_.Mb=function w1b(a){return y0b(),BD(a,11).j==(Pcd(),ucd)};var ZQ=ldb(ane,'LPort/lambda$3$Type',1286);acb(1287,1,Qke,x1b);_.Lb=function y1b(a){return y0b(),BD(a,11).j==(Pcd(),Mcd)};_.Fb=function z1b(a){return this===a};_.Mb=function A1b(a){return y0b(),BD(a,11).j==(Pcd(),Mcd)};var $Q=ldb(ane,'LPort/lambda$4$Type',1287);acb(1288,1,Qke,B1b);_.Lb=function C1b(a){return y0b(),BD(a,11).j==(Pcd(),Ocd)};_.Fb=function D1b(a){return this===a};_.Mb=function E1b(a){return y0b(),BD(a,11).j==(Pcd(),Ocd)};var _Q=ldb(ane,'LPort/lambda$5$Type',1288);acb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},G1b);_.Jc=function H1b(a){qeb(this,a)};_.Kc=function I1b(){return new nlb(this.a)};_.Ib=function J1b(){return 'L_'+Ikb(this.b.b,this,0)+Fe(this.a)};var cR=ldb(ane,'Layer',29);acb(1341,1,{},_1b);var mR=ldb(one,pne,1341);acb(1345,1,{},d2b);_.Kb=function e2b(a){return Xsd(BD(a,82))};var dR=ldb(one,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1345);acb(1348,1,{},f2b);_.Kb=function g2b(a){return Xsd(BD(a,82))};var eR=ldb(one,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1348);acb(1342,1,lie,h2b);_.td=function i2b(a){P1b(this.a,BD(a,118))};var fR=ldb(one,qne,1342);acb(1343,1,lie,j2b);_.td=function k2b(a){P1b(this.a,BD(a,118))};var gR=ldb(one,rne,1343);acb(1344,1,{},l2b);_.Kb=function m2b(a){return new XAb(null,new Jub(Jld(BD(a,79)),16))};var hR=ldb(one,sne,1344);acb(1346,1,Jie,n2b);_.Mb=function o2b(a){return a2b(this.a,BD(a,33))};var iR=ldb(one,tne,1346);acb(1347,1,{},p2b);_.Kb=function q2b(a){return new XAb(null,new Jub(Ild(BD(a,79)),16))};var jR=ldb(one,'ElkGraphImporter/lambda$5$Type',1347);acb(1349,1,Jie,r2b);_.Mb=function s2b(a){return b2b(this.a,BD(a,33))};var kR=ldb(one,'ElkGraphImporter/lambda$7$Type',1349);acb(1350,1,Jie,t2b);_.Mb=function u2b(a){return c2b(BD(a,79))};var lR=ldb(one,'ElkGraphImporter/lambda$8$Type',1350);acb(1277,1,{},C2b);var v2b;var rR=ldb(one,'ElkGraphLayoutTransferrer',1277);acb(1278,1,Jie,F2b);_.Mb=function G2b(a){return D2b(this.a,BD(a,17))};var nR=ldb(one,'ElkGraphLayoutTransferrer/lambda$0$Type',1278);acb(1279,1,lie,H2b);_.td=function I2b(a){w2b();Dkb(this.a,BD(a,17))};var oR=ldb(one,'ElkGraphLayoutTransferrer/lambda$1$Type',1279);acb(1280,1,Jie,J2b);_.Mb=function K2b(a){return E2b(this.a,BD(a,17))};var pR=ldb(one,'ElkGraphLayoutTransferrer/lambda$2$Type',1280);acb(1281,1,lie,L2b);_.td=function M2b(a){w2b();Dkb(this.a,BD(a,17))};var qR=ldb(one,'ElkGraphLayoutTransferrer/lambda$3$Type',1281);acb(1484,1,_me,R2b);_.pf=function S2b(a,b){P2b(BD(a,37),b)};var uR=ldb(vne,'CommentNodeMarginCalculator',1484);acb(1485,1,{},T2b);_.Kb=function U2b(a){return new XAb(null,new Jub(BD(a,29).a,16))};var sR=ldb(vne,'CommentNodeMarginCalculator/lambda$0$Type',1485);acb(1486,1,lie,V2b);_.td=function W2b(a){Q2b(BD(a,10))};var tR=ldb(vne,'CommentNodeMarginCalculator/lambda$1$Type',1486);acb(1487,1,_me,$2b);_.pf=function _2b(a,b){Y2b(BD(a,37),b)};var vR=ldb(vne,'CommentPostprocessor',1487);acb(1488,1,_me,d3b);_.pf=function e3b(a,b){a3b(BD(a,37),b)};var wR=ldb(vne,'CommentPreprocessor',1488);acb(1489,1,_me,g3b);_.pf=function h3b(a,b){f3b(BD(a,37),b)};var xR=ldb(vne,'ConstraintsPostprocessor',1489);acb(1490,1,_me,o3b);_.pf=function p3b(a,b){m3b(BD(a,37),b)};var yR=ldb(vne,'EdgeAndLayerConstraintEdgeReverser',1490);acb(1491,1,_me,s3b);_.pf=function u3b(a,b){q3b(BD(a,37),b)};var CR=ldb(vne,'EndLabelPostprocessor',1491);acb(1492,1,{},v3b);_.Kb=function w3b(a){return new XAb(null,new Jub(BD(a,29).a,16))};var zR=ldb(vne,'EndLabelPostprocessor/lambda$0$Type',1492);acb(1493,1,Jie,x3b);_.Mb=function y3b(a){return t3b(BD(a,10))};var AR=ldb(vne,'EndLabelPostprocessor/lambda$1$Type',1493);acb(1494,1,lie,z3b);_.td=function A3b(a){r3b(BD(a,10))};var BR=ldb(vne,'EndLabelPostprocessor/lambda$2$Type',1494);acb(1495,1,_me,L3b);_.pf=function O3b(a,b){H3b(BD(a,37),b)};var JR=ldb(vne,'EndLabelPreprocessor',1495);acb(1496,1,{},P3b);_.Kb=function Q3b(a){return new XAb(null,new Jub(BD(a,29).a,16))};var DR=ldb(vne,'EndLabelPreprocessor/lambda$0$Type',1496);acb(1497,1,lie,R3b);_.td=function S3b(a){D3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=ldb(vne,'EndLabelPreprocessor/lambda$1$Type',1497);acb(1498,1,Jie,T3b);_.Mb=function U3b(a){return PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),lad))};var FR=ldb(vne,'EndLabelPreprocessor/lambda$2$Type',1498);acb(1499,1,lie,V3b);_.td=function W3b(a){Csb(this.a,BD(a,70))};var GR=ldb(vne,'EndLabelPreprocessor/lambda$3$Type',1499);acb(1500,1,Jie,X3b);_.Mb=function Y3b(a){return PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),kad))};var HR=ldb(vne,'EndLabelPreprocessor/lambda$4$Type',1500);acb(1501,1,lie,Z3b);_.td=function $3b(a){Csb(this.a,BD(a,70))};var IR=ldb(vne,'EndLabelPreprocessor/lambda$5$Type',1501);acb(1550,1,_me,h4b);_.pf=function i4b(a,b){e4b(BD(a,37),b)};var _3b;var RR=ldb(vne,'EndLabelSorter',1550);acb(1551,1,yke,k4b);_.ue=function l4b(a,b){return j4b(BD(a,456),BD(b,456))};_.Fb=function m4b(a){return this===a};_.ve=function n4b(){return new spb(this)};var KR=ldb(vne,'EndLabelSorter/1',1551);acb(456,1,{456:1},o4b);var LR=ldb(vne,'EndLabelSorter/LabelGroup',456);acb(1552,1,{},p4b);_.Kb=function q4b(a){return a4b(),new XAb(null,new Jub(BD(a,29).a,16))};var MR=ldb(vne,'EndLabelSorter/lambda$0$Type',1552);acb(1553,1,Jie,r4b);_.Mb=function s4b(a){return a4b(),BD(a,10).k==(i0b(),g0b)};var NR=ldb(vne,'EndLabelSorter/lambda$1$Type',1553);acb(1554,1,lie,t4b);_.td=function u4b(a){f4b(BD(a,10))};var OR=ldb(vne,'EndLabelSorter/lambda$2$Type',1554);acb(1555,1,Jie,v4b);_.Mb=function w4b(a){return a4b(),PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),kad))};var PR=ldb(vne,'EndLabelSorter/lambda$3$Type',1555);acb(1556,1,Jie,x4b);_.Mb=function y4b(a){return a4b(),PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),lad))};var QR=ldb(vne,'EndLabelSorter/lambda$4$Type',1556);acb(1502,1,_me,K4b);_.pf=function L4b(a,b){I4b(this,BD(a,37))};_.b=0;_.c=0;var YR=ldb(vne,'FinalSplineBendpointsCalculator',1502);acb(1503,1,{},M4b);_.Kb=function N4b(a){return new XAb(null,new Jub(BD(a,29).a,16))};var SR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$0$Type',1503);acb(1504,1,{},O4b);_.Kb=function P4b(a){return new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var TR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$1$Type',1504);acb(1505,1,Jie,Q4b);_.Mb=function R4b(a){return !NZb(BD(a,17))};var UR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$2$Type',1505);acb(1506,1,Jie,S4b);_.Mb=function T4b(a){return vNb(BD(a,17),(utc(),ptc))};var VR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$3$Type',1506);acb(1507,1,lie,U4b);_.td=function V4b(a){B4b(this.a,BD(a,128))};var WR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$4$Type',1507);acb(1508,1,lie,W4b);_.td=function X4b(a){rmb(BD(a,17).a)};var XR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$5$Type',1508);acb(791,1,_me,t5b);_.pf=function u5b(a,b){k5b(this,BD(a,37),b)};var $R=ldb(vne,'GraphTransformer',791);acb(511,22,{3:1,35:1,22:1,511:1},y5b);var v5b,w5b;var ZR=mdb(vne,'GraphTransformer/Mode',511,CI,A5b,z5b);var B5b;acb(1509,1,_me,H5b);_.pf=function I5b(a,b){E5b(BD(a,37),b)};var _R=ldb(vne,'HierarchicalNodeResizingProcessor',1509);acb(1510,1,_me,P5b);_.pf=function Q5b(a,b){L5b(BD(a,37),b)};var bS=ldb(vne,'HierarchicalPortConstraintProcessor',1510);acb(1511,1,yke,S5b);_.ue=function T5b(a,b){return R5b(BD(a,10),BD(b,10))};_.Fb=function U5b(a){return this===a};_.ve=function V5b(){return new spb(this)};var aS=ldb(vne,'HierarchicalPortConstraintProcessor/NodeComparator',1511);acb(1512,1,_me,Y5b);_.pf=function Z5b(a,b){W5b(BD(a,37),b)};var cS=ldb(vne,'HierarchicalPortDummySizeProcessor',1512);acb(1513,1,_me,k6b);_.pf=function l6b(a,b){d6b(this,BD(a,37),b)};_.a=0;var fS=ldb(vne,'HierarchicalPortOrthogonalEdgeRouter',1513);acb(1514,1,yke,n6b);_.ue=function o6b(a,b){return m6b(BD(a,10),BD(b,10))};_.Fb=function p6b(a){return this===a};_.ve=function q6b(){return new spb(this)};var dS=ldb(vne,'HierarchicalPortOrthogonalEdgeRouter/1',1514);acb(1515,1,yke,s6b);_.ue=function t6b(a,b){return r6b(BD(a,10),BD(b,10))};_.Fb=function u6b(a){return this===a};_.ve=function v6b(){return new spb(this)};var eS=ldb(vne,'HierarchicalPortOrthogonalEdgeRouter/2',1515);acb(1516,1,_me,y6b);_.pf=function z6b(a,b){x6b(BD(a,37),b)};var gS=ldb(vne,'HierarchicalPortPositionProcessor',1516);acb(1517,1,_me,I6b);_.pf=function J6b(a,b){H6b(this,BD(a,37))};_.a=0;_.c=0;var A6b,B6b;var kS=ldb(vne,'HighDegreeNodeLayeringProcessor',1517);acb(571,1,{571:1},K6b);_.b=-1;_.d=-1;var hS=ldb(vne,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);acb(1518,1,{},L6b);_.Kb=function M6b(a){return C6b(),Q_b(BD(a,10))};_.Fb=function N6b(a){return this===a};var iS=ldb(vne,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1518);acb(1519,1,{},O6b);_.Kb=function P6b(a){return C6b(),T_b(BD(a,10))};_.Fb=function Q6b(a){return this===a};var jS=ldb(vne,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1519);acb(1525,1,_me,W6b);_.pf=function X6b(a,b){V6b(this,BD(a,37),b)};var pS=ldb(vne,'HyperedgeDummyMerger',1525);acb(792,1,{},Y6b);_.a=false;_.b=false;_.c=false;var lS=ldb(vne,'HyperedgeDummyMerger/MergeState',792);acb(1526,1,{},Z6b);_.Kb=function $6b(a){return new XAb(null,new Jub(BD(a,29).a,16))};var mS=ldb(vne,'HyperedgeDummyMerger/lambda$0$Type',1526);acb(1527,1,{},_6b);_.Kb=function a7b(a){return new XAb(null,new Jub(BD(a,10).j,16))};var nS=ldb(vne,'HyperedgeDummyMerger/lambda$1$Type',1527);acb(1528,1,lie,b7b);_.td=function c7b(a){BD(a,11).p=-1};var oS=ldb(vne,'HyperedgeDummyMerger/lambda$2$Type',1528);acb(1529,1,_me,f7b);_.pf=function g7b(a,b){e7b(BD(a,37),b)};var qS=ldb(vne,'HypernodesProcessor',1529);acb(1530,1,_me,i7b);_.pf=function j7b(a,b){h7b(BD(a,37),b)};var rS=ldb(vne,'InLayerConstraintProcessor',1530);acb(1531,1,_me,l7b);_.pf=function m7b(a,b){k7b(BD(a,37),b)};var sS=ldb(vne,'InnermostNodeMarginCalculator',1531);acb(1532,1,_me,q7b);_.pf=function v7b(a,b){p7b(this,BD(a,37))};_.a=Lje;_.b=Lje;_.c=Kje;_.d=Kje;var zS=ldb(vne,'InteractiveExternalPortPositioner',1532);acb(1533,1,{},w7b);_.Kb=function x7b(a){return BD(a,17).d.i};_.Fb=function y7b(a){return this===a};var tS=ldb(vne,'InteractiveExternalPortPositioner/lambda$0$Type',1533);acb(1534,1,{},z7b);_.Kb=function A7b(a){return r7b(this.a,ED(a))};_.Fb=function B7b(a){return this===a};var uS=ldb(vne,'InteractiveExternalPortPositioner/lambda$1$Type',1534);acb(1535,1,{},C7b);_.Kb=function D7b(a){return BD(a,17).c.i};_.Fb=function E7b(a){return this===a};var vS=ldb(vne,'InteractiveExternalPortPositioner/lambda$2$Type',1535);acb(1536,1,{},F7b);_.Kb=function G7b(a){return s7b(this.a,ED(a))};_.Fb=function H7b(a){return this===a};var wS=ldb(vne,'InteractiveExternalPortPositioner/lambda$3$Type',1536);acb(1537,1,{},I7b);_.Kb=function J7b(a){return t7b(this.a,ED(a))};_.Fb=function K7b(a){return this===a};var xS=ldb(vne,'InteractiveExternalPortPositioner/lambda$4$Type',1537);acb(1538,1,{},L7b);_.Kb=function M7b(a){return u7b(this.a,ED(a))};_.Fb=function N7b(a){return this===a};var yS=ldb(vne,'InteractiveExternalPortPositioner/lambda$5$Type',1538);acb(77,22,{3:1,35:1,22:1,77:1,234:1},S8b);_.Kf=function T8b(){switch(this.g){case 15:return new doc;case 22:return new zoc;case 47:return new Ioc;case 28:case 35:return new tac;case 32:return new R2b;case 42:return new $2b;case 1:return new d3b;case 41:return new g3b;case 56:return new t5b((x5b(),w5b));case 0:return new t5b((x5b(),v5b));case 2:return new o3b;case 54:return new s3b;case 33:return new L3b;case 51:return new K4b;case 55:return new H5b;case 13:return new P5b;case 38:return new Y5b;case 44:return new k6b;case 40:return new y6b;case 9:return new I6b;case 49:return new rgc;case 37:return new W6b;case 43:return new f7b;case 27:return new i7b;case 30:return new l7b;case 3:return new q7b;case 18:return new a9b;case 29:return new g9b;case 5:return new t9b;case 50:return new C9b;case 34:return new Z9b;case 36:return new Hac;case 52:return new h4b;case 11:return new Rac;case 7:return new _ac;case 39:return new nbc;case 45:return new qbc;case 16:return new ubc;case 10:return new Ebc;case 48:return new Wbc;case 21:return new bcc;case 23:return new aGc((nGc(),lGc));case 8:return new kcc;case 12:return new scc;case 4:return new xcc;case 19:return new Scc;case 17:return new odc;case 53:return new rdc;case 6:return new gec;case 25:return new vdc;case 46:return new Mdc;case 31:return new rec;case 14:return new Eec;case 26:return new opc;case 20:return new Tec;case 24:return new aGc((nGc(),mGc));default:throw ubb(new Vdb(yne+(this.f!=null?this.f:''+this.g)));}};var O7b,P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b;var AS=mdb(vne,zne,77,CI,V8b,U8b);var W8b;acb(1539,1,_me,a9b);_.pf=function b9b(a,b){$8b(BD(a,37),b)};var BS=ldb(vne,'InvertedPortProcessor',1539);acb(1540,1,_me,g9b);_.pf=function h9b(a,b){f9b(BD(a,37),b)};var FS=ldb(vne,'LabelAndNodeSizeProcessor',1540);acb(1541,1,Jie,i9b);_.Mb=function j9b(a){return BD(a,10).k==(i0b(),g0b)};var CS=ldb(vne,'LabelAndNodeSizeProcessor/lambda$0$Type',1541);acb(1542,1,Jie,k9b);_.Mb=function l9b(a){return BD(a,10).k==(i0b(),d0b)};var DS=ldb(vne,'LabelAndNodeSizeProcessor/lambda$1$Type',1542);acb(1543,1,lie,m9b);_.td=function n9b(a){d9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=ldb(vne,'LabelAndNodeSizeProcessor/lambda$2$Type',1543);acb(1544,1,_me,t9b);_.pf=function u9b(a,b){r9b(BD(a,37),b)};var o9b;var HS=ldb(vne,'LabelDummyInserter',1544);acb(1545,1,Qke,v9b);_.Lb=function w9b(a){return PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),jad))};_.Fb=function x9b(a){return this===a};_.Mb=function y9b(a){return PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),jad))};var GS=ldb(vne,'LabelDummyInserter/1',1545);acb(1546,1,_me,C9b);_.pf=function D9b(a,b){B9b(BD(a,37),b)};var JS=ldb(vne,'LabelDummyRemover',1546);acb(1547,1,Jie,E9b);_.Mb=function F9b(a){return Bcb(DD(uNb(BD(a,70),(Lyc(),Nwc))))};var IS=ldb(vne,'LabelDummyRemover/lambda$0$Type',1547);acb(1358,1,_me,Z9b);_.pf=function bac(a,b){V9b(this,BD(a,37),b)};_.a=null;var G9b;var QS=ldb(vne,'LabelDummySwitcher',1358);acb(285,1,{285:1},fac);_.c=0;_.d=null;_.f=0;var KS=ldb(vne,'LabelDummySwitcher/LabelDummyInfo',285);acb(1359,1,{},gac);_.Kb=function hac(a){return H9b(),new XAb(null,new Jub(BD(a,29).a,16))};var LS=ldb(vne,'LabelDummySwitcher/lambda$0$Type',1359);acb(1360,1,Jie,iac);_.Mb=function jac(a){return H9b(),BD(a,10).k==(i0b(),e0b)};var MS=ldb(vne,'LabelDummySwitcher/lambda$1$Type',1360);acb(1361,1,{},kac);_.Kb=function lac(a){return $9b(this.a,BD(a,10))};var NS=ldb(vne,'LabelDummySwitcher/lambda$2$Type',1361);acb(1362,1,lie,mac);_.td=function nac(a){_9b(this.a,BD(a,285))};var OS=ldb(vne,'LabelDummySwitcher/lambda$3$Type',1362);acb(1363,1,yke,oac);_.ue=function pac(a,b){return aac(BD(a,285),BD(b,285))};_.Fb=function qac(a){return this===a};_.ve=function rac(){return new spb(this)};var PS=ldb(vne,'LabelDummySwitcher/lambda$4$Type',1363);acb(790,1,_me,tac);_.pf=function uac(a,b){sac(BD(a,37),b)};var RS=ldb(vne,'LabelManagementProcessor',790);acb(1548,1,_me,Hac);_.pf=function Iac(a,b){Bac(BD(a,37),b)};var TS=ldb(vne,'LabelSideSelector',1548);acb(1549,1,Jie,Jac);_.Mb=function Kac(a){return Bcb(DD(uNb(BD(a,70),(Lyc(),Nwc))))};var SS=ldb(vne,'LabelSideSelector/lambda$0$Type',1549);acb(1557,1,_me,Rac);_.pf=function Sac(a,b){Nac(BD(a,37),b)};var US=ldb(vne,'LayerConstraintPostprocessor',1557);acb(1558,1,_me,_ac);_.pf=function abc(a,b){Zac(BD(a,37),b)};var Tac;var WS=ldb(vne,'LayerConstraintPreprocessor',1558);acb(359,22,{3:1,35:1,22:1,359:1},hbc);var bbc,cbc,dbc,ebc;var VS=mdb(vne,'LayerConstraintPreprocessor/HiddenNodeConnections',359,CI,jbc,ibc);var kbc;acb(1559,1,_me,nbc);_.pf=function obc(a,b){mbc(BD(a,37),b)};var XS=ldb(vne,'LayerSizeAndGraphHeightCalculator',1559);acb(1560,1,_me,qbc);_.pf=function sbc(a,b){pbc(BD(a,37),b)};var YS=ldb(vne,'LongEdgeJoiner',1560);acb(1561,1,_me,ubc);_.pf=function wbc(a,b){tbc(BD(a,37),b)};var ZS=ldb(vne,'LongEdgeSplitter',1561);acb(1562,1,_me,Ebc);_.pf=function Hbc(a,b){Abc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=ldb(vne,'NodePromotion',1562);acb(1563,1,{},Ibc);_.Kb=function Jbc(a){return BD(a,46),Acb(),true};_.Fb=function Kbc(a){return this===a};var $S=ldb(vne,'NodePromotion/lambda$0$Type',1563);acb(1564,1,{},Lbc);_.Kb=function Mbc(a){return Fbc(this.a,BD(a,46))};_.Fb=function Nbc(a){return this===a};_.a=0;var _S=ldb(vne,'NodePromotion/lambda$1$Type',1564);acb(1565,1,{},Obc);_.Kb=function Pbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Qbc(a){return this===a};_.a=0;var aT=ldb(vne,'NodePromotion/lambda$2$Type',1565);acb(1566,1,_me,Wbc);_.pf=function Xbc(a,b){Rbc(BD(a,37),b)};var cT=ldb(vne,'NorthSouthPortPostprocessor',1566);acb(1567,1,_me,bcc);_.pf=function dcc(a,b){_bc(BD(a,37),b)};var eT=ldb(vne,'NorthSouthPortPreprocessor',1567);acb(1568,1,yke,ecc);_.ue=function fcc(a,b){return ccc(BD(a,11),BD(b,11))};_.Fb=function gcc(a){return this===a};_.ve=function hcc(){return new spb(this)};var dT=ldb(vne,'NorthSouthPortPreprocessor/lambda$0$Type',1568);acb(1569,1,_me,kcc);_.pf=function mcc(a,b){jcc(BD(a,37),b)};var hT=ldb(vne,'PartitionMidprocessor',1569);acb(1570,1,Jie,ncc);_.Mb=function occ(a){return vNb(BD(a,10),(Lyc(),Lxc))};var fT=ldb(vne,'PartitionMidprocessor/lambda$0$Type',1570);acb(1571,1,lie,pcc);_.td=function qcc(a){lcc(this.a,BD(a,10))};var gT=ldb(vne,'PartitionMidprocessor/lambda$1$Type',1571);acb(1572,1,_me,scc);_.pf=function tcc(a,b){rcc(BD(a,37),b)};var iT=ldb(vne,'PartitionPostprocessor',1572);acb(1573,1,_me,xcc);_.pf=function ycc(a,b){vcc(BD(a,37),b)};var nT=ldb(vne,'PartitionPreprocessor',1573);acb(1574,1,Jie,zcc);_.Mb=function Acc(a){return vNb(BD(a,10),(Lyc(),Lxc))};var jT=ldb(vne,'PartitionPreprocessor/lambda$0$Type',1574);acb(1575,1,{},Bcc);_.Kb=function Ccc(a){return new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var kT=ldb(vne,'PartitionPreprocessor/lambda$1$Type',1575);acb(1576,1,Jie,Dcc);_.Mb=function Ecc(a){return ucc(BD(a,17))};var lT=ldb(vne,'PartitionPreprocessor/lambda$2$Type',1576);acb(1577,1,lie,Fcc);_.td=function Gcc(a){wcc(BD(a,17))};var mT=ldb(vne,'PartitionPreprocessor/lambda$3$Type',1577);acb(1578,1,_me,Scc);_.pf=function Wcc(a,b){Pcc(BD(a,37),b)};var Hcc,Icc,Jcc,Kcc,Lcc,Mcc;var tT=ldb(vne,'PortListSorter',1578);acb(1581,1,yke,Ycc);_.ue=function Zcc(a,b){return Tcc(BD(a,11),BD(b,11))};_.Fb=function $cc(a){return this===a};_.ve=function _cc(){return new spb(this)};var oT=ldb(vne,'PortListSorter/lambda$0$Type',1581);acb(1583,1,yke,adc);_.ue=function bdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function cdc(a){return this===a};_.ve=function ddc(){return new spb(this)};var pT=ldb(vne,'PortListSorter/lambda$1$Type',1583);acb(1579,1,{},edc);_.Kb=function fdc(a){return Ncc(),BD(a,11).e};var qT=ldb(vne,'PortListSorter/lambda$2$Type',1579);acb(1580,1,{},gdc);_.Kb=function hdc(a){return Ncc(),BD(a,11).g};var rT=ldb(vne,'PortListSorter/lambda$3$Type',1580);acb(1582,1,yke,idc);_.ue=function jdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function kdc(a){return this===a};_.ve=function ldc(){return new spb(this)};var sT=ldb(vne,'PortListSorter/lambda$4$Type',1582);acb(1584,1,_me,odc);_.pf=function pdc(a,b){mdc(BD(a,37),b)};var uT=ldb(vne,'PortSideProcessor',1584);acb(1585,1,_me,rdc);_.pf=function sdc(a,b){qdc(BD(a,37),b)};var vT=ldb(vne,'ReversedEdgeRestorer',1585);acb(1590,1,_me,vdc);_.pf=function wdc(a,b){tdc(this,BD(a,37),b)};var CT=ldb(vne,'SelfLoopPortRestorer',1590);acb(1591,1,{},xdc);_.Kb=function ydc(a){return new XAb(null,new Jub(BD(a,29).a,16))};var wT=ldb(vne,'SelfLoopPortRestorer/lambda$0$Type',1591);acb(1592,1,Jie,zdc);_.Mb=function Adc(a){return BD(a,10).k==(i0b(),g0b)};var xT=ldb(vne,'SelfLoopPortRestorer/lambda$1$Type',1592);acb(1593,1,Jie,Bdc);_.Mb=function Cdc(a){return vNb(BD(a,10),(utc(),ltc))};var yT=ldb(vne,'SelfLoopPortRestorer/lambda$2$Type',1593);acb(1594,1,{},Ddc);_.Kb=function Edc(a){return BD(uNb(BD(a,10),(utc(),ltc)),404)};var zT=ldb(vne,'SelfLoopPortRestorer/lambda$3$Type',1594);acb(1595,1,lie,Fdc);_.td=function Gdc(a){udc(this.a,BD(a,404))};var AT=ldb(vne,'SelfLoopPortRestorer/lambda$4$Type',1595);acb(793,1,lie,Hdc);_.td=function Idc(a){kjc(BD(a,101))};var BT=ldb(vne,'SelfLoopPortRestorer/lambda$5$Type',793);acb(1596,1,_me,Mdc);_.pf=function Odc(a,b){Jdc(BD(a,37),b)};var LT=ldb(vne,'SelfLoopPostProcessor',1596);acb(1597,1,{},Pdc);_.Kb=function Qdc(a){return new XAb(null,new Jub(BD(a,29).a,16))};var DT=ldb(vne,'SelfLoopPostProcessor/lambda$0$Type',1597);acb(1598,1,Jie,Rdc);_.Mb=function Sdc(a){return BD(a,10).k==(i0b(),g0b)};var ET=ldb(vne,'SelfLoopPostProcessor/lambda$1$Type',1598);acb(1599,1,Jie,Tdc);_.Mb=function Udc(a){return vNb(BD(a,10),(utc(),ltc))};var FT=ldb(vne,'SelfLoopPostProcessor/lambda$2$Type',1599);acb(1600,1,lie,Vdc);_.td=function Wdc(a){Kdc(BD(a,10))};var GT=ldb(vne,'SelfLoopPostProcessor/lambda$3$Type',1600);acb(1601,1,{},Xdc);_.Kb=function Ydc(a){return new XAb(null,new Jub(BD(a,101).f,1))};var HT=ldb(vne,'SelfLoopPostProcessor/lambda$4$Type',1601);acb(1602,1,lie,Zdc);_.td=function $dc(a){Ldc(this.a,BD(a,410))};var IT=ldb(vne,'SelfLoopPostProcessor/lambda$5$Type',1602);acb(1603,1,Jie,_dc);_.Mb=function aec(a){return !!BD(a,101).i};var JT=ldb(vne,'SelfLoopPostProcessor/lambda$6$Type',1603);acb(1604,1,lie,bec);_.td=function cec(a){Ndc(this.a,BD(a,101))};var KT=ldb(vne,'SelfLoopPostProcessor/lambda$7$Type',1604);acb(1586,1,_me,gec);_.pf=function hec(a,b){fec(BD(a,37),b)};var PT=ldb(vne,'SelfLoopPreProcessor',1586);acb(1587,1,{},iec);_.Kb=function jec(a){return new XAb(null,new Jub(BD(a,101).f,1))};var MT=ldb(vne,'SelfLoopPreProcessor/lambda$0$Type',1587);acb(1588,1,{},kec);_.Kb=function lec(a){return BD(a,410).a};var NT=ldb(vne,'SelfLoopPreProcessor/lambda$1$Type',1588);acb(1589,1,lie,mec);_.td=function nec(a){eec(BD(a,17))};var OT=ldb(vne,'SelfLoopPreProcessor/lambda$2$Type',1589);acb(1605,1,_me,rec);_.pf=function sec(a,b){pec(this,BD(a,37),b)};var VT=ldb(vne,'SelfLoopRouter',1605);acb(1606,1,{},tec);_.Kb=function uec(a){return new XAb(null,new Jub(BD(a,29).a,16))};var QT=ldb(vne,'SelfLoopRouter/lambda$0$Type',1606);acb(1607,1,Jie,vec);_.Mb=function wec(a){return BD(a,10).k==(i0b(),g0b)};var RT=ldb(vne,'SelfLoopRouter/lambda$1$Type',1607);acb(1608,1,Jie,xec);_.Mb=function yec(a){return vNb(BD(a,10),(utc(),ltc))};var ST=ldb(vne,'SelfLoopRouter/lambda$2$Type',1608);acb(1609,1,{},zec);_.Kb=function Aec(a){return BD(uNb(BD(a,10),(utc(),ltc)),404)};var TT=ldb(vne,'SelfLoopRouter/lambda$3$Type',1609);acb(1610,1,lie,Bec);_.td=function Cec(a){oec(this.a,this.b,BD(a,404))};var UT=ldb(vne,'SelfLoopRouter/lambda$4$Type',1610);acb(1611,1,_me,Eec);_.pf=function Hec(a,b){Dec(BD(a,37),b)};var $T=ldb(vne,'SemiInteractiveCrossMinProcessor',1611);acb(1612,1,Jie,Iec);_.Mb=function Jec(a){return BD(a,10).k==(i0b(),g0b)};var WT=ldb(vne,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1612);acb(1613,1,Jie,Kec);_.Mb=function Lec(a){return tNb(BD(a,10))._b((Lyc(),$xc))};var XT=ldb(vne,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1613);acb(1614,1,yke,Mec);_.ue=function Nec(a,b){return Fec(BD(a,10),BD(b,10))};_.Fb=function Oec(a){return this===a};_.ve=function Pec(){return new spb(this)};var YT=ldb(vne,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1614);acb(1615,1,{},Qec);_.Ce=function Rec(a,b){return Gec(BD(a,10),BD(b,10))};var ZT=ldb(vne,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1615);acb(1617,1,_me,Tec);_.pf=function Xec(a,b){Sec(BD(a,37),b)};var bU=ldb(vne,'SortByInputModelProcessor',1617);acb(1618,1,Jie,Yec);_.Mb=function Zec(a){return BD(a,11).g.c.length!=0};var _T=ldb(vne,'SortByInputModelProcessor/lambda$0$Type',1618);acb(1619,1,lie,$ec);_.td=function _ec(a){Vec(this.a,BD(a,11))};var aU=ldb(vne,'SortByInputModelProcessor/lambda$1$Type',1619);acb(1692,802,{},ifc);_.Me=function jfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Qkb;LAb(IAb(new XAb(null,new Jub(this.c.a.b,16)),new kgc),new mgc(this,b));mEb(this,new sfc);Gkb(b,new wfc);b.c=KC(SI,Phe,1,0,5,1);LAb(IAb(new XAb(null,new Jub(this.c.a.b,16)),new yfc),new Afc(b));mEb(this,new Efc);Gkb(b,new Ifc);b.c=KC(SI,Phe,1,0,5,1);c=Mtb(Zzb(NAb(new XAb(null,new Jub(this.c.a.b,16)),new Kfc(this))),new Mfc);LAb(new XAb(null,new Jub(this.c.a.a,16)),new Qfc(c,b));mEb(this,new Ufc);Gkb(b,new Yfc);b.c=KC(SI,Phe,1,0,5,1);break;case 3:d=new Qkb;mEb(this,new kfc);e=Mtb(Zzb(NAb(new XAb(null,new Jub(this.c.a.b,16)),new ofc(this))),new Ofc);LAb(IAb(new XAb(null,new Jub(this.c.a.b,16)),new $fc),new agc(e,d));mEb(this,new egc);Gkb(d,new igc);d.c=KC(SI,Phe,1,0,5,1);break;default:throw ubb(new t2c);}};_.b=0;var AU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation',1692);acb(1693,1,Qke,kfc);_.Lb=function lfc(a){return JD(BD(a,57).g,145)};_.Fb=function mfc(a){return this===a};_.Mb=function nfc(a){return JD(BD(a,57).g,145)};var cU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1693);acb(1694,1,{},ofc);_.Fe=function pfc(a){return cfc(this.a,BD(a,57))};var dU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1694);acb(1702,1,Kie,qfc);_.Vd=function rfc(){bfc(this.a,this.b,-1)};_.b=0;var eU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1702);acb(1704,1,Qke,sfc);_.Lb=function tfc(a){return JD(BD(a,57).g,145)};_.Fb=function ufc(a){return this===a};_.Mb=function vfc(a){return JD(BD(a,57).g,145)};var fU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1704);acb(1705,1,lie,wfc);_.td=function xfc(a){BD(a,364).Vd()};var gU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1705);acb(1706,1,Jie,yfc);_.Mb=function zfc(a){return JD(BD(a,57).g,10)};var hU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1706);acb(1708,1,lie,Afc);_.td=function Bfc(a){dfc(this.a,BD(a,57))};var iU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1708);acb(1707,1,Kie,Cfc);_.Vd=function Dfc(){bfc(this.b,this.a,-1)};_.a=0;var jU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1707);acb(1709,1,Qke,Efc);_.Lb=function Ffc(a){return JD(BD(a,57).g,10)};_.Fb=function Gfc(a){return this===a};_.Mb=function Hfc(a){return JD(BD(a,57).g,10)};var kU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1709);acb(1710,1,lie,Ifc);_.td=function Jfc(a){BD(a,364).Vd()};var lU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1710);acb(1711,1,{},Kfc);_.Fe=function Lfc(a){return efc(this.a,BD(a,57))};var mU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1711);acb(1712,1,{},Mfc);_.De=function Nfc(){return 0};var nU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1712);acb(1695,1,{},Ofc);_.De=function Pfc(){return 0};var oU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1695);acb(1714,1,lie,Qfc);_.td=function Rfc(a){ffc(this.a,this.b,BD(a,307))};_.a=0;var pU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1714);acb(1713,1,Kie,Sfc);_.Vd=function Tfc(){afc(this.a,this.b,-1)};_.b=0;var qU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1713);acb(1715,1,Qke,Ufc);_.Lb=function Vfc(a){return BD(a,57),true};_.Fb=function Wfc(a){return this===a};_.Mb=function Xfc(a){return BD(a,57),true};var rU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1715);acb(1716,1,lie,Yfc);_.td=function Zfc(a){BD(a,364).Vd()};var sU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1716);acb(1696,1,Jie,$fc);_.Mb=function _fc(a){return JD(BD(a,57).g,10)};var tU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1696);acb(1698,1,lie,agc);_.td=function bgc(a){gfc(this.a,this.b,BD(a,57))};_.a=0;var uU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1698);acb(1697,1,Kie,cgc);_.Vd=function dgc(){bfc(this.b,this.a,-1)};_.a=0;var vU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1697);acb(1699,1,Qke,egc);_.Lb=function fgc(a){return BD(a,57),true};_.Fb=function ggc(a){return this===a};_.Mb=function hgc(a){return BD(a,57),true};var wU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1699);acb(1700,1,lie,igc);_.td=function jgc(a){BD(a,364).Vd()};var xU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1700);acb(1701,1,Jie,kgc);_.Mb=function lgc(a){return JD(BD(a,57).g,145)};var yU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1701);acb(1703,1,lie,mgc);_.td=function ngc(a){hfc(this.a,this.b,BD(a,57))};var zU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1703);acb(1520,1,_me,rgc);_.pf=function wgc(a,b){qgc(this,BD(a,37),b)};var ogc;var EU=ldb(Ene,'HorizontalGraphCompactor',1520);acb(1521,1,{},xgc);_.Oe=function ygc(a,b){var c,d,e;if(ugc(a,b)){return 0}c=sgc(a);d=sgc(b);if(!!c&&c.k==(i0b(),d0b)||!!d&&d.k==(i0b(),d0b)){return 0}e=BD(uNb(this.a.a,(utc(),mtc)),304);return dBc(e,c?c.k:(i0b(),f0b),d?d.k:(i0b(),f0b))};_.Pe=function zgc(a,b){var c,d,e;if(ugc(a,b)){return 1}c=sgc(a);d=sgc(b);e=BD(uNb(this.a.a,(utc(),mtc)),304);return gBc(e,c?c.k:(i0b(),f0b),d?d.k:(i0b(),f0b))};var BU=ldb(Ene,'HorizontalGraphCompactor/1',1521);acb(1522,1,{},Agc);_.Ne=function Bgc(a,b){return pgc(),a.a.i==0};var CU=ldb(Ene,'HorizontalGraphCompactor/lambda$0$Type',1522);acb(1523,1,{},Cgc);_.Ne=function Dgc(a,b){return vgc(this.a,a,b)};var DU=ldb(Ene,'HorizontalGraphCompactor/lambda$1$Type',1523);acb(1663,1,{},Xgc);var Egc,Fgc;var cV=ldb(Ene,'LGraphToCGraphTransformer',1663);acb(1671,1,Jie,dhc);_.Mb=function ehc(a){return a!=null};var FU=ldb(Ene,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1671);acb(1664,1,{},fhc);_.Kb=function ghc(a){return Ggc(),ecb(uNb(BD(BD(a,57).g,10),(utc(),Ysc)))};var GU=ldb(Ene,'LGraphToCGraphTransformer/lambda$0$Type',1664);acb(1665,1,{},hhc);_.Kb=function ihc(a){return Ggc(),fic(BD(BD(a,57).g,145))};var HU=ldb(Ene,'LGraphToCGraphTransformer/lambda$1$Type',1665);acb(1674,1,Jie,jhc);_.Mb=function khc(a){return Ggc(),JD(BD(a,57).g,10)};var IU=ldb(Ene,'LGraphToCGraphTransformer/lambda$10$Type',1674);acb(1675,1,lie,lhc);_.td=function mhc(a){Ygc(BD(a,57))};var JU=ldb(Ene,'LGraphToCGraphTransformer/lambda$11$Type',1675);acb(1676,1,Jie,nhc);_.Mb=function ohc(a){return Ggc(),JD(BD(a,57).g,145)};var KU=ldb(Ene,'LGraphToCGraphTransformer/lambda$12$Type',1676);acb(1680,1,lie,phc);_.td=function qhc(a){Zgc(BD(a,57))};var LU=ldb(Ene,'LGraphToCGraphTransformer/lambda$13$Type',1680);acb(1677,1,lie,rhc);_.td=function shc(a){$gc(this.a,BD(a,8))};_.a=0;var MU=ldb(Ene,'LGraphToCGraphTransformer/lambda$14$Type',1677);acb(1678,1,lie,thc);_.td=function uhc(a){_gc(this.a,BD(a,110))};_.a=0;var NU=ldb(Ene,'LGraphToCGraphTransformer/lambda$15$Type',1678);acb(1679,1,lie,vhc);_.td=function whc(a){ahc(this.a,BD(a,8))};_.a=0;var OU=ldb(Ene,'LGraphToCGraphTransformer/lambda$16$Type',1679);acb(1681,1,{},xhc);_.Kb=function yhc(a){return Ggc(),new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var PU=ldb(Ene,'LGraphToCGraphTransformer/lambda$17$Type',1681);acb(1682,1,Jie,zhc);_.Mb=function Ahc(a){return Ggc(),NZb(BD(a,17))};var QU=ldb(Ene,'LGraphToCGraphTransformer/lambda$18$Type',1682);acb(1683,1,lie,Bhc);_.td=function Chc(a){Pgc(this.a,BD(a,17))};var RU=ldb(Ene,'LGraphToCGraphTransformer/lambda$19$Type',1683);acb(1667,1,lie,Dhc);_.td=function Ehc(a){Qgc(this.a,BD(a,145))};var SU=ldb(Ene,'LGraphToCGraphTransformer/lambda$2$Type',1667);acb(1684,1,{},Fhc);_.Kb=function Ghc(a){return Ggc(),new XAb(null,new Jub(BD(a,29).a,16))};var TU=ldb(Ene,'LGraphToCGraphTransformer/lambda$20$Type',1684);acb(1685,1,{},Hhc);_.Kb=function Ihc(a){return Ggc(),new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var UU=ldb(Ene,'LGraphToCGraphTransformer/lambda$21$Type',1685);acb(1686,1,{},Jhc);_.Kb=function Khc(a){return Ggc(),BD(uNb(BD(a,17),(utc(),ptc)),15)};var VU=ldb(Ene,'LGraphToCGraphTransformer/lambda$22$Type',1686);acb(1687,1,Jie,Lhc);_.Mb=function Mhc(a){return bhc(BD(a,15))};var WU=ldb(Ene,'LGraphToCGraphTransformer/lambda$23$Type',1687);acb(1688,1,lie,Nhc);_.td=function Ohc(a){Igc(this.a,BD(a,15))};var XU=ldb(Ene,'LGraphToCGraphTransformer/lambda$24$Type',1688);acb(1666,1,lie,Phc);_.td=function Qhc(a){Rgc(this.a,this.b,BD(a,145))};var YU=ldb(Ene,'LGraphToCGraphTransformer/lambda$3$Type',1666);acb(1668,1,{},Rhc);_.Kb=function Shc(a){return Ggc(),new XAb(null,new Jub(BD(a,29).a,16))};var ZU=ldb(Ene,'LGraphToCGraphTransformer/lambda$4$Type',1668);acb(1669,1,{},Thc);_.Kb=function Uhc(a){return Ggc(),new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var $U=ldb(Ene,'LGraphToCGraphTransformer/lambda$5$Type',1669);acb(1670,1,{},Vhc);_.Kb=function Whc(a){return Ggc(),BD(uNb(BD(a,17),(utc(),ptc)),15)};var _U=ldb(Ene,'LGraphToCGraphTransformer/lambda$6$Type',1670);acb(1672,1,lie,Xhc);_.td=function Yhc(a){chc(this.a,BD(a,15))};var aV=ldb(Ene,'LGraphToCGraphTransformer/lambda$8$Type',1672);acb(1673,1,lie,Zhc);_.td=function $hc(a){Sgc(this.a,this.b,BD(a,145))};var bV=ldb(Ene,'LGraphToCGraphTransformer/lambda$9$Type',1673);acb(1662,1,{},cic);_.Le=function dic(a){var b,c,d,e,f;this.a=a;this.d=new JFb;this.c=KC(jN,Phe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new nlb(this.a.a.a);c.a=p){Dkb(f,leb(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};_.Wf=function lpc(){return false};var CW=ldb(Mne,'MSDCutIndexHeuristic',801);acb(1616,1,_me,opc);_.pf=function ppc(a,b){npc(BD(a,37),b)};var DW=ldb(Mne,'SingleEdgeGraphWrapper',1616);acb(227,22,{3:1,35:1,22:1,227:1},Apc);var tpc,upc,vpc,wpc,xpc,ypc;var EW=mdb(Nne,'CenterEdgeLabelPlacementStrategy',227,CI,Cpc,Bpc);var Dpc;acb(423,22,{3:1,35:1,22:1,423:1},Ipc);var Fpc,Gpc;var FW=mdb(Nne,'ConstraintCalculationStrategy',423,CI,Kpc,Jpc);var Lpc;acb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Spc);_.Kf=function Upc(){return Rpc(this)};_.Xf=function Tpc(){return Rpc(this)};var Npc,Opc,Ppc;var GW=mdb(Nne,'CrossingMinimizationStrategy',314,CI,Wpc,Vpc);var Xpc;acb(336,22,{3:1,35:1,22:1,336:1},bqc);var Zpc,$pc,_pc;var HW=mdb(Nne,'CuttingStrategy',336,CI,dqc,cqc);var eqc;acb(374,22,{3:1,35:1,22:1,374:1,246:1,234:1},mqc);_.Kf=function oqc(){return lqc(this)};_.Xf=function nqc(){return lqc(this)};var gqc,hqc,iqc,jqc;var IW=mdb(Nne,'CycleBreakingStrategy',374,CI,qqc,pqc);var rqc;acb(420,22,{3:1,35:1,22:1,420:1},wqc);var tqc,uqc;var JW=mdb(Nne,'DirectionCongruency',420,CI,yqc,xqc);var zqc;acb(451,22,{3:1,35:1,22:1,451:1},Fqc);var Bqc,Cqc,Dqc;var KW=mdb(Nne,'EdgeConstraint',451,CI,Hqc,Gqc);var Iqc;acb(275,22,{3:1,35:1,22:1,275:1},Sqc);var Kqc,Lqc,Mqc,Nqc,Oqc,Pqc;var LW=mdb(Nne,'EdgeLabelSideSelection',275,CI,Uqc,Tqc);var Vqc;acb(479,22,{3:1,35:1,22:1,479:1},$qc);var Xqc,Yqc;var MW=mdb(Nne,'EdgeStraighteningStrategy',479,CI,arc,_qc);var brc;acb(273,22,{3:1,35:1,22:1,273:1},krc);var drc,erc,frc,grc,hrc,irc;var NW=mdb(Nne,'FixedAlignment',273,CI,mrc,lrc);var nrc;acb(274,22,{3:1,35:1,22:1,274:1},xrc);var prc,qrc,rrc,trc,urc,vrc;var OW=mdb(Nne,'GraphCompactionStrategy',274,CI,zrc,yrc);var Arc;acb(256,22,{3:1,35:1,22:1,256:1},Nrc);var Crc,Drc,Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc;var PW=mdb(Nne,'GraphProperties',256,CI,Prc,Orc);var Qrc;acb(292,22,{3:1,35:1,22:1,292:1},Wrc);var Src,Trc,Urc;var QW=mdb(Nne,'GreedySwitchType',292,CI,Yrc,Xrc);var Zrc;acb(303,22,{3:1,35:1,22:1,303:1},dsc);var _rc,asc,bsc;var RW=mdb(Nne,'InLayerConstraint',303,CI,fsc,esc);var gsc;acb(421,22,{3:1,35:1,22:1,421:1},lsc);var isc,jsc;var SW=mdb(Nne,'InteractiveReferencePoint',421,CI,nsc,msc);var osc;var qsc,rsc,ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc;acb(163,22,{3:1,35:1,22:1,163:1},Btc);var vtc,wtc,xtc,ytc,ztc;var TW=mdb(Nne,'LayerConstraint',163,CI,Dtc,Ctc);var Etc;acb(847,1,Xke,iwc);_.Qe=function jwc(a){p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Une),''),'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.'),nuc),(X5c(),R5c)),JW),oqb((J5c(),H5c)))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Vne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Acb(),false)),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Wne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Kuc),R5c),SW),oqb(H5c))));k4c(a,Wne,coe,Muc);k4c(a,Wne,moe,Luc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Xne),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Yne),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(y5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Zne),''),'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),P5c),wI),oqb(I5c)),OC(GC(ZI,1),iie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,$ne),''),'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."),vvc),R5c),cX),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,_ne),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),leb(7)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,aoe),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,boe),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,coe),'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).'),luc),R5c),IW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,doe),lpe),'Node Layering Strategy'),'Strategy for node layering.'),_uc),R5c),YW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,eoe),lpe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Ruc),R5c),TW),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,foe),lpe),'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."),leb(-1)),T5c),JI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,goe),lpe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),leb(-1)),T5c),JI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,hoe),mpe),'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."),leb(4)),T5c),JI),oqb(H5c))));k4c(a,hoe,doe,Uuc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ioe),mpe),'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."),leb(2)),T5c),JI),oqb(H5c))));k4c(a,ioe,doe,Wuc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,joe),npe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),Zuc),R5c),aX),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,koe),npe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),leb(0)),T5c),JI),oqb(H5c))));k4c(a,koe,joe,null);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,loe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),leb(Jhe)),T5c),JI),oqb(H5c))));k4c(a,loe,doe,Ouc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,moe),ope),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),juc),R5c),GW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,noe),ope),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ooe),ope),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),Q5c),BI),oqb(H5c))));k4c(a,ooe,ppe,duc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,poe),ope),'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),P5c),wI),oqb(H5c))));k4c(a,poe,moe,huc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,qoe),ope),'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."),leb(-1)),T5c),JI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,roe),ope),'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.'),leb(-1)),T5c),JI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,soe),qpe),'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."),leb(40)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,toe),qpe),'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."),auc),R5c),QW),oqb(H5c))));k4c(a,toe,moe,buc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,uoe),'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."),Ytc),R5c),QW),oqb(H5c))));k4c(a,uoe,moe,Ztc);k4c(a,uoe,ppe,$tc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,voe),rpe),'Node Placement Strategy'),'Strategy for node placement.'),tvc),R5c),_W),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,woe),rpe),'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."),P5c),wI),oqb(H5c))));k4c(a,woe,voe,jvc);k4c(a,woe,voe,kvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,xoe),spe),'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."),dvc),R5c),MW),oqb(H5c))));k4c(a,xoe,voe,evc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,yoe),spe),'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.'),gvc),R5c),NW),oqb(H5c))));k4c(a,yoe,voe,hvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,zoe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),Q5c),BI),oqb(H5c))));k4c(a,zoe,voe,mvc);p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Aoe),'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."),R5c),$W),oqb(G5c))));k4c(a,Aoe,voe,rvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Boe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),pvc),R5c),$W),oqb(H5c))));k4c(a,Boe,voe,qvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Coe),tpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),vuc),R5c),eX),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Doe),tpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),xuc),R5c),fX),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Eoe),'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.'),zuc),R5c),hX),oqb(H5c))));k4c(a,Eoe,upe,Auc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Foe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),Q5c),BI),oqb(H5c))));k4c(a,Foe,upe,Cuc);k4c(a,Foe,Eoe,Duc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Goe),'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),Q5c),BI),oqb(H5c))));k4c(a,Goe,upe,tuc);p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Hoe),vpe),'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."),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ioe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Joe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Koe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Loe),wpe),'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.'),leb(0)),T5c),JI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Moe),wpe),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),leb(0)),T5c),JI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Noe),wpe),'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.'),leb(0)),T5c),JI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ooe),xpe),Jle),'Tries to further compact components (disconnected sub-graphs).'),false),P5c),wI),oqb(H5c))));k4c(a,Ooe,ume,true);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Poe),ype),'Post Compaction Strategy'),zpe),Ltc),R5c),OW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Qoe),ype),'Post Compaction Constraint Calculation'),zpe),Jtc),R5c),FW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Roe),Ape),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Soe),Ape),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),leb(16)),T5c),JI),oqb(H5c))));k4c(a,Soe,Roe,true);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Toe),Ape),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),leb(5)),T5c),JI),oqb(H5c))));k4c(a,Toe,Roe,true);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Uoe),Bpe),'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'."),_vc),R5c),jX),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Voe),Bpe),'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),Q5c),BI),oqb(H5c))));k4c(a,Voe,Uoe,Gvc);k4c(a,Voe,Uoe,Hvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Woe),Bpe),'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),Q5c),BI),oqb(H5c))));k4c(a,Woe,Uoe,Jvc);k4c(a,Woe,Uoe,Kvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Xoe),Cpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Rvc),R5c),HW),oqb(H5c))));k4c(a,Xoe,Uoe,Svc);k4c(a,Xoe,Uoe,Tvc);p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Yoe),Cpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),U5c),yK),oqb(H5c))));k4c(a,Yoe,Xoe,Mvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Zoe),'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.'),Ovc),T5c),JI),oqb(H5c))));k4c(a,Zoe,Xoe,Pvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,$oe),Dpe),'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.'),ewc),R5c),iX),oqb(H5c))));k4c(a,$oe,Uoe,fwc);k4c(a,$oe,Uoe,gwc);p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,_oe),Dpe),'Valid Indices for Wrapping'),null),U5c),yK),oqb(H5c))));k4c(a,_oe,Uoe,bwc);k4c(a,_oe,Uoe,cwc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ape),Epe),'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),P5c),wI),oqb(H5c))));k4c(a,ape,Uoe,Xvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,bpe),Epe),'Distance Penalty When Improving Cuts'),null),2),Q5c),BI),oqb(H5c))));k4c(a,bpe,Uoe,Vvc);k4c(a,bpe,ape,true);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,cpe),Epe),'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),P5c),wI),oqb(H5c))));k4c(a,cpe,Uoe,Zvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,dpe),Fpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),ruc),R5c),LW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,epe),Fpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),puc),R5c),EW),pqb(H5c,OC(GC(d1,1),Fie,175,0,[F5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,fpe),Gpe),'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.'),Utc),R5c),bX),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,gpe),Gpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,hpe),Gpe),'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.'),Ntc),R5c),hQ),oqb(H5c))));k4c(a,hpe,ume,null);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ipe),Gpe),'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.'),Rtc),R5c),ZW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,jpe),Gpe),'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),Q5c),BI),oqb(H5c))));k4c(a,jpe,fpe,null);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,kpe),Gpe),'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),Q5c),BI),oqb(H5c))));k4c(a,kpe,fpe,null);Myc((new Nyc,a))};var Gtc,Htc,Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc;var UW=ldb(Nne,'LayeredMetaDataProvider',847);acb(985,1,Xke,Nyc);_.Qe=function Oyc(a){Myc(a)};var 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,Ywc,Zwc,$wc,_wc,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,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;var WW=ldb(Nne,'LayeredOptions',985);acb(986,1,{},Pyc);_.$e=function Qyc(){var a;return a=new iUb,a};_._e=function Ryc(a){};var VW=ldb(Nne,'LayeredOptions/LayeredFactory',986);acb(1371,1,{});_.a=0;var Syc;var Z1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder',1371);acb(779,1371,{},czc);var _yc,azc;var XW=ldb(Nne,'LayeredSpacings/LayeredSpacingsBuilder',779);acb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},lzc);_.Kf=function nzc(){return kzc(this)};_.Xf=function mzc(){return kzc(this)};var dzc,ezc,fzc,gzc,hzc,izc;var YW=mdb(Nne,'LayeringStrategy',313,CI,pzc,ozc);var qzc;acb(378,22,{3:1,35:1,22:1,378:1},xzc);var szc,tzc,uzc;var ZW=mdb(Nne,'LongEdgeOrderingStrategy',378,CI,zzc,yzc);var Azc;acb(197,22,{3:1,35:1,22:1,197:1},Izc);var Czc,Dzc,Ezc,Fzc;var $W=mdb(Nne,'NodeFlexibility',197,CI,Lzc,Kzc);var Mzc;acb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Vzc);_.Kf=function Xzc(){return Uzc(this)};_.Xf=function Wzc(){return Uzc(this)};var Ozc,Pzc,Qzc,Rzc,Szc;var _W=mdb(Nne,'NodePlacementStrategy',315,CI,Zzc,Yzc);var $zc;acb(260,22,{3:1,35:1,22:1,260:1},jAc);var aAc,bAc,cAc,dAc,eAc,fAc,gAc,hAc;var aX=mdb(Nne,'NodePromotionStrategy',260,CI,lAc,kAc);var mAc;acb(338,22,{3:1,35:1,22:1,338:1},sAc);var oAc,pAc,qAc;var bX=mdb(Nne,'OrderingStrategy',338,CI,uAc,tAc);var vAc;acb(422,22,{3:1,35:1,22:1,422:1},AAc);var xAc,yAc;var cX=mdb(Nne,'PortSortingStrategy',422,CI,CAc,BAc);var DAc;acb(453,22,{3:1,35:1,22:1,453:1},JAc);var FAc,GAc,HAc;var dX=mdb(Nne,'PortType',453,CI,LAc,KAc);var MAc;acb(375,22,{3:1,35:1,22:1,375:1},SAc);var OAc,PAc,QAc;var eX=mdb(Nne,'SelfLoopDistributionStrategy',375,CI,UAc,TAc);var VAc;acb(376,22,{3:1,35:1,22:1,376:1},$Ac);var XAc,YAc;var fX=mdb(Nne,'SelfLoopOrderingStrategy',376,CI,aBc,_Ac);var bBc;acb(304,1,{304:1},mBc);var gX=ldb(Nne,'Spacings',304);acb(335,22,{3:1,35:1,22:1,335:1},sBc);var oBc,pBc,qBc;var hX=mdb(Nne,'SplineRoutingMode',335,CI,uBc,tBc);var vBc;acb(337,22,{3:1,35:1,22:1,337:1},BBc);var xBc,yBc,zBc;var iX=mdb(Nne,'ValidifyStrategy',337,CI,DBc,CBc);var EBc;acb(377,22,{3:1,35:1,22:1,377:1},KBc);var GBc,HBc,IBc;var jX=mdb(Nne,'WrappingStrategy',377,CI,MBc,LBc);var NBc;acb(1383,1,xqe,TBc);_.Yf=function UBc(a){return BD(a,37),PBc};_.pf=function VBc(a,b){SBc(this,BD(a,37),b)};var PBc;var kX=ldb(yqe,'DepthFirstCycleBreaker',1383);acb(1382,1,xqe,$Bc);_.Yf=function _Bc(a){return BD(a,37),WBc};_.pf=function aCc(a,b){YBc(this,BD(a,37),b)};var WBc;var lX=ldb(yqe,'GreedyCycleBreaker',1382);acb(1384,1,xqe,fCc);_.Yf=function gCc(a){return BD(a,37),bCc};_.pf=function hCc(a,b){eCc(this,BD(a,37),b)};var bCc;var mX=ldb(yqe,'InteractiveCycleBreaker',1384);acb(1385,1,xqe,mCc);_.Yf=function nCc(a){return BD(a,37),iCc};_.pf=function oCc(a,b){lCc(this,BD(a,37),b)};_.a=0;_.b=0;var iCc;var nX=ldb(yqe,'ModelOrderCycleBreaker',1385);acb(1388,1,xqe,yCc);_.Yf=function zCc(a){return BD(a,37),pCc};_.pf=function ACc(a,b){wCc(this,BD(a,37),b)};var pCc;var qX=ldb(zqe,'CoffmanGrahamLayerer',1388);acb(1389,1,yke,BCc);_.ue=function CCc(a,b){return sCc(this.a,BD(a,10),BD(b,10))};_.Fb=function DCc(a){return this===a};_.ve=function ECc(){return new spb(this)};var oX=ldb(zqe,'CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type',1389);acb(1390,1,yke,FCc);_.ue=function GCc(a,b){return vCc(this.a,BD(a,10),BD(b,10))};_.Fb=function HCc(a){return this===a};_.ve=function ICc(){return new spb(this)};var pX=ldb(zqe,'CoffmanGrahamLayerer/lambda$1$Type',1390);acb(1391,1,xqe,LCc);_.Yf=function MCc(a){return BD(a,37),a3c(a3c(a3c(new f3c,(pUb(),kUb),(R8b(),m8b)),lUb,v8b),mUb,u8b)};_.pf=function NCc(a,b){KCc(this,BD(a,37),b)};var sX=ldb(zqe,'InteractiveLayerer',1391);acb(569,1,{569:1},OCc);_.a=0;_.c=0;var rX=ldb(zqe,'InteractiveLayerer/LayerSpan',569);acb(1387,1,xqe,UCc);_.Yf=function VCc(a){return BD(a,37),PCc};_.pf=function WCc(a,b){RCc(this,BD(a,37),b)};var PCc;var tX=ldb(zqe,'LongestPathLayerer',1387);acb(1394,1,xqe,dDc);_.Yf=function eDc(a){return BD(a,37),a3c(a3c(a3c(new f3c,(pUb(),kUb),(R8b(),Y7b)),lUb,v8b),mUb,u8b)};_.pf=function fDc(a,b){bDc(this,BD(a,37),b)};_.a=0;_.b=0;_.d=0;var XCc,YCc;var vX=ldb(zqe,'MinWidthLayerer',1394);acb(1395,1,yke,hDc);_.ue=function iDc(a,b){return gDc(this,BD(a,10),BD(b,10))};_.Fb=function jDc(a){return this===a};_.ve=function kDc(){return new spb(this)};var uX=ldb(zqe,'MinWidthLayerer/MinOutgoingEdgesComparator',1395);acb(1386,1,xqe,sDc);_.Yf=function tDc(a){return BD(a,37),lDc};_.pf=function uDc(a,b){rDc(this,BD(a,37),b)};var lDc;var wX=ldb(zqe,'NetworkSimplexLayerer',1386);acb(1392,1,xqe,GDc);_.Yf=function HDc(a){return BD(a,37),a3c(a3c(a3c(new f3c,(pUb(),kUb),(R8b(),Y7b)),lUb,v8b),mUb,u8b)};_.pf=function IDc(a,b){DDc(this,BD(a,37),b)};_.d=0;_.f=0;_.g=0;_.i=0;_.s=0;_.t=0;_.u=0;var yX=ldb(zqe,'StretchWidthLayerer',1392);acb(1393,1,yke,KDc);_.ue=function LDc(a,b){return JDc(BD(a,10),BD(b,10))};_.Fb=function MDc(a){return this===a};_.ve=function NDc(){return new spb(this)};var xX=ldb(zqe,'StretchWidthLayerer/1',1393);acb(403,1,Aqe);_.Nf=function aEc(a,b,c,d,e,f){};_.$f=function $Dc(a,b,c){return TDc(this,a,b,c)};_.Mf=function _Dc(){this.g=KC(VD,Bqe,25,this.d,15,1);this.f=KC(VD,Bqe,25,this.d,15,1)};_.Of=function bEc(a,b){this.e[a]=KC(WD,jje,25,b[a].length,15,1)};_.Pf=function cEc(a,b,c){var d;d=c[a][b];d.p=b;this.e[a][b]=b};_.Qf=function dEc(a,b,c,d){BD(Hkb(d[a][b].j,c),11).p=this.d++};_.b=0;_.c=0;_.d=0;var AX=ldb(Cqe,'AbstractBarycenterPortDistributor',403);acb(1632,1,yke,eEc);_.ue=function fEc(a,b){return WDc(this.a,BD(a,11),BD(b,11))};_.Fb=function gEc(a){return this===a};_.ve=function hEc(){return new spb(this)};var zX=ldb(Cqe,'AbstractBarycenterPortDistributor/lambda$0$Type',1632);acb(816,1,Hne,pEc);_.Nf=function sEc(a,b,c,d,e,f){};_.Pf=function uEc(a,b,c){};_.Qf=function vEc(a,b,c,d){};_.Lf=function qEc(){return false};_.Mf=function rEc(){this.c=this.e.a;this.g=this.f.g};_.Of=function tEc(a,b){b[a][0].c.p=a};_.Rf=function wEc(){return false};_._f=function xEc(a,b,c,d){if(c){mEc(this,a)}else{jEc(this,a,d);kEc(this,a,b)}if(a.c.length>1){Bcb(DD(uNb(P_b((sCb(0,a.c.length),BD(a.c[0],10))),(Lyc(),ywc))))?UGc(a,this.d,BD(this,660)):(lmb(),Nkb(a,this.d));KEc(this.e,a)}};_.Sf=function yEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=nEc(c,a.length)){f=a[b-(c?1:-1)];PDc(this.f,f,c?(IAc(),GAc):(IAc(),FAc))}e=a[b][0];k=!d||e.k==(i0b(),d0b);j=Ou(a[b]);this._f(j,k,false,c);g=0;for(i=new nlb(j);i.a');a0?(NHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Bcb(DD(uNb(P_b((sCb(0,a.c.length),BD(a.c[0],10))),(Lyc(),ywc))))?UGc(a,this.d,this):(lmb(),Nkb(a,this.d));Bcb(DD(uNb(P_b((sCb(0,a.c.length),BD(a.c[0],10))),ywc)))||KEc(this.e,a)}};var XX=ldb(Cqe,'ModelOrderBarycenterHeuristic',660);acb(1802,1,yke,WGc);_.ue=function XGc(a,b){return RGc(this.a,BD(a,10),BD(b,10))};_.Fb=function YGc(a){return this===a};_.ve=function ZGc(){return new spb(this)};var WX=ldb(Cqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1802);acb(1402,1,xqe,bHc);_.Yf=function cHc(a){var b;return BD(a,37),b=g3c($Gc),a3c(b,(pUb(),mUb),(R8b(),G8b)),b};_.pf=function dHc(a,b){aHc((BD(a,37),b))};var $Gc;var YX=ldb(Cqe,'NoCrossingMinimizer',1402);acb(795,403,Aqe,eHc);_.Zf=function fHc(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 nlb(a.j);k.a1&&(e.j==(Pcd(),ucd)?(this.b[a]=true):e.j==Ocd&&a>0&&(this.b[a-1]=true))};_.f=0;var _X=ldb(Gne,'AllCrossingsCounter',1797);acb(587,1,{},xHc);_.b=0;_.d=0;var aY=ldb(Gne,'BinaryIndexedTree',587);acb(524,1,{},_Hc);var zHc,AHc;var kY=ldb(Gne,'CrossingsCounter',524);acb(1905,1,yke,dIc);_.ue=function eIc(a,b){return UHc(this.a,BD(a,11),BD(b,11))};_.Fb=function fIc(a){return this===a};_.ve=function gIc(){return new spb(this)};var bY=ldb(Gne,'CrossingsCounter/lambda$0$Type',1905);acb(1906,1,yke,hIc);_.ue=function iIc(a,b){return VHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new spb(this)};var cY=ldb(Gne,'CrossingsCounter/lambda$1$Type',1906);acb(1907,1,yke,lIc);_.ue=function mIc(a,b){return WHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new spb(this)};var dY=ldb(Gne,'CrossingsCounter/lambda$2$Type',1907);acb(1908,1,yke,pIc);_.ue=function qIc(a,b){return XHc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new spb(this)};var eY=ldb(Gne,'CrossingsCounter/lambda$3$Type',1908);acb(1909,1,lie,tIc);_.td=function uIc(a){aIc(this.a,BD(a,11))};var fY=ldb(Gne,'CrossingsCounter/lambda$4$Type',1909);acb(1910,1,Jie,vIc);_.Mb=function wIc(a){return bIc(this.a,BD(a,11))};var gY=ldb(Gne,'CrossingsCounter/lambda$5$Type',1910);acb(1911,1,lie,yIc);_.td=function zIc(a){xIc(this,a)};var hY=ldb(Gne,'CrossingsCounter/lambda$6$Type',1911);acb(1912,1,lie,AIc);_.td=function BIc(a){var b;BHc();Vjb(this.b,(b=this.a,BD(a,11),b))};var iY=ldb(Gne,'CrossingsCounter/lambda$7$Type',1912);acb(825,1,Qke,CIc);_.Lb=function DIc(a){return BHc(),vNb(BD(a,11),(utc(),etc))};_.Fb=function EIc(a){return this===a};_.Mb=function FIc(a){return BHc(),vNb(BD(a,11),(utc(),etc))};var jY=ldb(Gne,'CrossingsCounter/lambda$8$Type',825);acb(1904,1,{},HIc);var oY=ldb(Gne,'HyperedgeCrossingsCounter',1904);acb(467,1,{35:1,467:1},JIc);_.wd=function KIc(a){return IIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var nY=ldb(Gne,'HyperedgeCrossingsCounter/Hyperedge',467);acb(361,1,{35:1,361:1},MIc);_.wd=function NIc(a){return LIc(this,BD(a,361))};_.b=0;_.c=0;var mY=ldb(Gne,'HyperedgeCrossingsCounter/HyperedgeCorner',361);acb(523,22,{3:1,35:1,22:1,523:1},RIc);var OIc,PIc;var lY=mdb(Gne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,TIc,SIc);var UIc;acb(1404,1,xqe,_Ic);_.Yf=function aJc(a){return BD(uNb(BD(a,37),(utc(),Isc)),21).Hc((Mrc(),Frc))?XIc:null};_.pf=function bJc(a,b){$Ic(this,BD(a,37),b)};var XIc;var qY=ldb(Dqe,'InteractiveNodePlacer',1404);acb(1405,1,xqe,pJc);_.Yf=function qJc(a){return BD(uNb(BD(a,37),(utc(),Isc)),21).Hc((Mrc(),Frc))?cJc:null};_.pf=function rJc(a,b){nJc(this,BD(a,37),b)};var cJc,dJc,eJc;var sY=ldb(Dqe,'LinearSegmentsNodePlacer',1405);acb(257,1,{35:1,257:1},vJc);_.wd=function wJc(a){return sJc(this,BD(a,257))};_.Fb=function xJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function yJc(){return this.b};_.Ib=function zJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var rY=ldb(Dqe,'LinearSegmentsNodePlacer/LinearSegment',257);acb(1407,1,xqe,WJc);_.Yf=function XJc(a){return BD(uNb(BD(a,37),(utc(),Isc)),21).Hc((Mrc(),Frc))?AJc:null};_.pf=function dKc(a,b){SJc(this,BD(a,37),b)};_.b=0;_.g=0;var AJc;var cZ=ldb(Dqe,'NetworkSimplexPlacer',1407);acb(1426,1,yke,eKc);_.ue=function fKc(a,b){return aeb(BD(a,19).a,BD(b,19).a)};_.Fb=function gKc(a){return this===a};_.ve=function hKc(){return new spb(this)};var tY=ldb(Dqe,'NetworkSimplexPlacer/0methodref$compare$Type',1426);acb(1428,1,yke,iKc);_.ue=function jKc(a,b){return aeb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new spb(this)};var uY=ldb(Dqe,'NetworkSimplexPlacer/1methodref$compare$Type',1428);acb(649,1,{649:1},mKc);var vY=ldb(Dqe,'NetworkSimplexPlacer/EdgeRep',649);acb(402,1,{402:1},nKc);_.b=false;var wY=ldb(Dqe,'NetworkSimplexPlacer/NodeRep',402);acb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},rKc);var BY=ldb(Dqe,'NetworkSimplexPlacer/Path',508);acb(1408,1,{},sKc);_.Kb=function tKc(a){return BD(a,17).d.i.k};var xY=ldb(Dqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1408);acb(1409,1,Jie,uKc);_.Mb=function vKc(a){return BD(a,267)==(i0b(),f0b)};var yY=ldb(Dqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1409);acb(1410,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i};var zY=ldb(Dqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1410);acb(1411,1,Jie,yKc);_.Mb=function zKc(a){return aLc(Jzc(BD(a,10)))};var AY=ldb(Dqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1411);acb(1412,1,Jie,AKc);_.Mb=function BKc(a){return _Jc(BD(a,11))};var CY=ldb(Dqe,'NetworkSimplexPlacer/lambda$0$Type',1412);acb(1413,1,lie,CKc);_.td=function DKc(a){HJc(this.a,this.b,BD(a,11))};var DY=ldb(Dqe,'NetworkSimplexPlacer/lambda$1$Type',1413);acb(1422,1,lie,EKc);_.td=function FKc(a){IJc(this.a,BD(a,17))};var EY=ldb(Dqe,'NetworkSimplexPlacer/lambda$10$Type',1422);acb(1423,1,{},GKc);_.Kb=function HKc(a){return BJc(),new XAb(null,new Jub(BD(a,29).a,16))};var FY=ldb(Dqe,'NetworkSimplexPlacer/lambda$11$Type',1423);acb(1424,1,lie,IKc);_.td=function JKc(a){JJc(this.a,BD(a,10))};var GY=ldb(Dqe,'NetworkSimplexPlacer/lambda$12$Type',1424);acb(1425,1,{},KKc);_.Kb=function LKc(a){return BJc(),leb(BD(a,121).e)};var HY=ldb(Dqe,'NetworkSimplexPlacer/lambda$13$Type',1425);acb(1427,1,{},MKc);_.Kb=function NKc(a){return BJc(),leb(BD(a,121).e)};var IY=ldb(Dqe,'NetworkSimplexPlacer/lambda$15$Type',1427);acb(1429,1,Jie,OKc);_.Mb=function PKc(a){return BJc(),BD(a,402).c.k==(i0b(),g0b)};var JY=ldb(Dqe,'NetworkSimplexPlacer/lambda$17$Type',1429);acb(1430,1,Jie,QKc);_.Mb=function RKc(a){return BJc(),BD(a,402).c.j.c.length>1};var KY=ldb(Dqe,'NetworkSimplexPlacer/lambda$18$Type',1430);acb(1431,1,lie,SKc);_.td=function TKc(a){aKc(this.c,this.b,this.d,this.a,BD(a,402))};_.c=0;_.d=0;var LY=ldb(Dqe,'NetworkSimplexPlacer/lambda$19$Type',1431);acb(1414,1,{},UKc);_.Kb=function VKc(a){return BJc(),new XAb(null,new Jub(BD(a,29).a,16))};var MY=ldb(Dqe,'NetworkSimplexPlacer/lambda$2$Type',1414);acb(1432,1,lie,WKc);_.td=function XKc(a){bKc(this.a,BD(a,11))};_.a=0;var NY=ldb(Dqe,'NetworkSimplexPlacer/lambda$20$Type',1432);acb(1433,1,{},YKc);_.Kb=function ZKc(a){return BJc(),new XAb(null,new Jub(BD(a,29).a,16))};var OY=ldb(Dqe,'NetworkSimplexPlacer/lambda$21$Type',1433);acb(1434,1,lie,$Kc);_.td=function _Kc(a){KJc(this.a,BD(a,10))};var PY=ldb(Dqe,'NetworkSimplexPlacer/lambda$22$Type',1434);acb(1435,1,Jie,bLc);_.Mb=function cLc(a){return aLc(a)};var QY=ldb(Dqe,'NetworkSimplexPlacer/lambda$23$Type',1435);acb(1436,1,{},dLc);_.Kb=function eLc(a){return BJc(),new XAb(null,new Jub(BD(a,29).a,16))};var RY=ldb(Dqe,'NetworkSimplexPlacer/lambda$24$Type',1436);acb(1437,1,Jie,fLc);_.Mb=function gLc(a){return LJc(this.a,BD(a,10))};var SY=ldb(Dqe,'NetworkSimplexPlacer/lambda$25$Type',1437);acb(1438,1,lie,hLc);_.td=function iLc(a){MJc(this.a,this.b,BD(a,10))};var TY=ldb(Dqe,'NetworkSimplexPlacer/lambda$26$Type',1438);acb(1439,1,Jie,jLc);_.Mb=function kLc(a){return BJc(),!NZb(BD(a,17))};var UY=ldb(Dqe,'NetworkSimplexPlacer/lambda$27$Type',1439);acb(1440,1,Jie,lLc);_.Mb=function mLc(a){return BJc(),!NZb(BD(a,17))};var VY=ldb(Dqe,'NetworkSimplexPlacer/lambda$28$Type',1440);acb(1441,1,{},nLc);_.Ce=function oLc(a,b){return NJc(this.a,BD(a,29),BD(b,29))};var WY=ldb(Dqe,'NetworkSimplexPlacer/lambda$29$Type',1441);acb(1415,1,{},pLc);_.Kb=function qLc(a){return BJc(),new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var XY=ldb(Dqe,'NetworkSimplexPlacer/lambda$3$Type',1415);acb(1416,1,Jie,rLc);_.Mb=function sLc(a){return BJc(),$Jc(BD(a,17))};var YY=ldb(Dqe,'NetworkSimplexPlacer/lambda$4$Type',1416);acb(1417,1,lie,tLc);_.td=function uLc(a){TJc(this.a,BD(a,17))};var ZY=ldb(Dqe,'NetworkSimplexPlacer/lambda$5$Type',1417);acb(1418,1,{},vLc);_.Kb=function wLc(a){return BJc(),new XAb(null,new Jub(BD(a,29).a,16))};var $Y=ldb(Dqe,'NetworkSimplexPlacer/lambda$6$Type',1418);acb(1419,1,Jie,xLc);_.Mb=function yLc(a){return BJc(),BD(a,10).k==(i0b(),g0b)};var _Y=ldb(Dqe,'NetworkSimplexPlacer/lambda$7$Type',1419);acb(1420,1,{},zLc);_.Kb=function ALc(a){return BJc(),new XAb(null,new Kub(new Sr(ur(N_b(BD(a,10)).a.Kc(),new Sq))))};var aZ=ldb(Dqe,'NetworkSimplexPlacer/lambda$8$Type',1420);acb(1421,1,Jie,BLc);_.Mb=function CLc(a){return BJc(),MZb(BD(a,17))};var bZ=ldb(Dqe,'NetworkSimplexPlacer/lambda$9$Type',1421);acb(1403,1,xqe,GLc);_.Yf=function HLc(a){return BD(uNb(BD(a,37),(utc(),Isc)),21).Hc((Mrc(),Frc))?DLc:null};_.pf=function ILc(a,b){FLc(BD(a,37),b)};var DLc;var dZ=ldb(Dqe,'SimpleNodePlacer',1403);acb(180,1,{180:1},QLc);_.Ib=function RLc(){var a;a='';this.c==(ULc(),TLc)?(a+=fle):this.c==SLc&&(a+=ele);this.o==(aMc(),$Lc)?(a+=qle):this.o==_Lc?(a+='UP'):(a+='BALANCED');return a};var gZ=ldb(Gqe,'BKAlignedLayout',180);acb(516,22,{3:1,35:1,22:1,516:1},VLc);var SLc,TLc;var eZ=mdb(Gqe,'BKAlignedLayout/HDirection',516,CI,XLc,WLc);var YLc;acb(515,22,{3:1,35:1,22:1,515:1},bMc);var $Lc,_Lc;var fZ=mdb(Gqe,'BKAlignedLayout/VDirection',515,CI,dMc,cMc);var eMc;acb(1633,1,{},iMc);var hZ=ldb(Gqe,'BKAligner',1633);acb(1636,1,{},nMc);var kZ=ldb(Gqe,'BKCompactor',1636);acb(654,1,{654:1},oMc);_.a=0;var iZ=ldb(Gqe,'BKCompactor/ClassEdge',654);acb(458,1,{458:1},qMc);_.a=null;_.b=0;var jZ=ldb(Gqe,'BKCompactor/ClassNode',458);acb(1406,1,xqe,yMc);_.Yf=function CMc(a){return BD(uNb(BD(a,37),(utc(),Isc)),21).Hc((Mrc(),Frc))?rMc:null};_.pf=function DMc(a,b){xMc(this,BD(a,37),b)};_.d=false;var rMc;var lZ=ldb(Gqe,'BKNodePlacer',1406);acb(1634,1,{},FMc);_.d=0;var nZ=ldb(Gqe,'NeighborhoodInformation',1634);acb(1635,1,yke,KMc);_.ue=function LMc(a,b){return JMc(this,BD(a,46),BD(b,46))};_.Fb=function MMc(a){return this===a};_.ve=function NMc(){return new spb(this)};var mZ=ldb(Gqe,'NeighborhoodInformation/NeighborComparator',1635);acb(807,1,{});var rZ=ldb(Gqe,'ThresholdStrategy',807);acb(1762,807,{},SMc);_.ag=function TMc(a,b,c){return this.a.o==(aMc(),_Lc)?Kje:Lje};_.bg=function UMc(){};var oZ=ldb(Gqe,'ThresholdStrategy/NullThresholdStrategy',1762);acb(579,1,{579:1},VMc);_.c=false;_.d=false;var pZ=ldb(Gqe,'ThresholdStrategy/Postprocessable',579);acb(1763,807,{},ZMc);_.ag=function $Mc(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==(ULc(),TLc)){e&&(f=WMc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=WMc(this,c,false))}else{e&&(f=WMc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=WMc(this,c,false))}return f};_.bg=function _Mc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Jsb(this.d),579);d=XMc(this,e);if(!d.a){continue}a=d.a;c=Bcb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!NZb(a)&&a.c.i.c==a.d.i.c){continue}b=YMc(this,e);b||rwb(this.e,e)}while(this.e.a.c.length!=0){YMc(this,BD(qwb(this.e),579))}};var qZ=ldb(Gqe,'ThresholdStrategy/SimpleThresholdStrategy',1763);acb(635,1,{635:1,246:1,234:1},dNc);_.Kf=function fNc(){return cNc(this)};_.Xf=function eNc(){return cNc(this)};var aNc;var sZ=ldb(Hqe,'EdgeRouterFactory',635);acb(1457,1,xqe,sNc);_.Yf=function tNc(a){return qNc(BD(a,37))};_.pf=function uNc(a,b){rNc(BD(a,37),b)};var hNc,iNc,jNc,kNc,lNc,mNc,nNc,oNc;var tZ=ldb(Hqe,'OrthogonalEdgeRouter',1457);acb(1450,1,xqe,JNc);_.Yf=function KNc(a){return ENc(BD(a,37))};_.pf=function LNc(a,b){GNc(this,BD(a,37),b)};var vNc,wNc,xNc,yNc,zNc,ANc;var vZ=ldb(Hqe,'PolylineEdgeRouter',1450);acb(1451,1,Qke,NNc);_.Lb=function ONc(a){return MNc(BD(a,10))};_.Fb=function PNc(a){return this===a};_.Mb=function QNc(a){return MNc(BD(a,10))};var uZ=ldb(Hqe,'PolylineEdgeRouter/1',1451);acb(1808,1,Jie,VNc);_.Mb=function WNc(a){return BD(a,129).c==(DOc(),BOc)};var wZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$0$Type',1808);acb(1809,1,{},XNc);_.Ge=function YNc(a){return BD(a,129).d};var xZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$1$Type',1809);acb(1810,1,Jie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(DOc(),BOc)};var yZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$2$Type',1810);acb(1811,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var zZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$3$Type',1811);acb(1812,1,{},bOc);_.Ge=function cOc(a){return BD(a,129).d};var AZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$4$Type',1812);acb(1813,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var BZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$5$Type',1813);acb(112,1,{35:1,112:1},qOc);_.wd=function rOc(a){return gOc(this,BD(a,112))};_.Fb=function sOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function tOc(){return this.g};_.Ib=function vOc(){var a,b,c,d;a=new Vfb('{');d=new nlb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var DZ=ldb(Iqe,'HyperEdgeSegmentDependency',129);acb(520,22,{3:1,35:1,22:1,520:1},EOc);var BOc,COc;var CZ=mdb(Iqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,GOc,FOc);var HOc;acb(1814,1,{},VOc);var LZ=ldb(Iqe,'HyperEdgeSegmentSplitter',1814);acb(1815,1,{},YOc);_.a=0;_.b=0;var EZ=ldb(Iqe,'HyperEdgeSegmentSplitter/AreaRating',1815);acb(329,1,{329:1},ZOc);_.a=0;_.b=0;_.c=0;var FZ=ldb(Iqe,'HyperEdgeSegmentSplitter/FreeArea',329);acb(1816,1,yke,$Oc);_.ue=function _Oc(a,b){return XOc(BD(a,112),BD(b,112))};_.Fb=function aPc(a){return this===a};_.ve=function bPc(){return new spb(this)};var GZ=ldb(Iqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1816);acb(1817,1,lie,cPc);_.td=function dPc(a){POc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var HZ=ldb(Iqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1817);acb(1818,1,{},ePc);_.Kb=function fPc(a){return new XAb(null,new Jub(BD(a,112).e,16))};var IZ=ldb(Iqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1818);acb(1819,1,{},gPc);_.Kb=function hPc(a){return new XAb(null,new Jub(BD(a,112).j,16))};var JZ=ldb(Iqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1819);acb(1820,1,{},iPc);_.Fe=function jPc(a){return Ddb(ED(a))};var KZ=ldb(Iqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1820);acb(655,1,{},pPc);_.a=0;_.b=0;_.c=0;var PZ=ldb(Iqe,'OrthogonalRoutingGenerator',655);acb(1637,1,{},tPc);_.Kb=function uPc(a){return new XAb(null,new Jub(BD(a,112).e,16))};var NZ=ldb(Iqe,'OrthogonalRoutingGenerator/lambda$0$Type',1637);acb(1638,1,{},vPc);_.Kb=function wPc(a){return new XAb(null,new Jub(BD(a,112).j,16))};var OZ=ldb(Iqe,'OrthogonalRoutingGenerator/lambda$1$Type',1638);acb(661,1,{});var QZ=ldb(Jqe,'BaseRoutingDirectionStrategy',661);acb(1806,661,{},APc);_.cg=function BPc(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 nlb(a.n);j.alme){f=k;e=a;d=new b7c(l,f);Csb(g.a,d);xPc(this,g,e,d,false);m=a.r;if(m){n=Ddb(ED(Ut(m.e,0)));d=new b7c(n,f);Csb(g.a,d);xPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new b7c(n,f);Csb(g.a,d);xPc(this,g,e,d,false)}d=new b7c(p,f);Csb(g.a,d);xPc(this,g,e,d,false)}}}}};_.dg=function CPc(a){return a.i.n.a+a.n.a+a.a.a};_.eg=function DPc(){return Pcd(),Mcd};_.fg=function EPc(){return Pcd(),vcd};var RZ=ldb(Jqe,'NorthToSouthRoutingStrategy',1806);acb(1807,661,{},FPc);_.cg=function GPc(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 nlb(a.n);j.alme){f=k;e=a;d=new b7c(l,f);Csb(g.a,d);xPc(this,g,e,d,false);m=a.r;if(m){n=Ddb(ED(Ut(m.e,0)));d=new b7c(n,f);Csb(g.a,d);xPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new b7c(n,f);Csb(g.a,d);xPc(this,g,e,d,false)}d=new b7c(p,f);Csb(g.a,d);xPc(this,g,e,d,false)}}}}};_.dg=function HPc(a){return a.i.n.a+a.n.a+a.a.a};_.eg=function IPc(){return Pcd(),vcd};_.fg=function JPc(){return Pcd(),Mcd};var SZ=ldb(Jqe,'SouthToNorthRoutingStrategy',1807);acb(1805,661,{},KPc);_.cg=function LPc(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 nlb(a.n);j.alme){f=k;e=a;d=new b7c(f,l);Csb(g.a,d);xPc(this,g,e,d,true);m=a.r;if(m){n=Ddb(ED(Ut(m.e,0)));d=new b7c(f,n);Csb(g.a,d);xPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new b7c(f,n);Csb(g.a,d);xPc(this,g,e,d,true)}d=new b7c(f,p);Csb(g.a,d);xPc(this,g,e,d,true)}}}}};_.dg=function MPc(a){return a.i.n.b+a.n.b+a.a.b};_.eg=function NPc(){return Pcd(),ucd};_.fg=function OPc(){return Pcd(),Ocd};var TZ=ldb(Jqe,'WestToEastRoutingStrategy',1805);acb(812,1,{},UPc);_.Ib=function VPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var VZ=ldb(Lqe,'NubSpline',812);acb(408,1,{408:1},YPc,ZPc);var UZ=ldb(Lqe,'NubSpline/PolarCP',408);acb(1452,1,xqe,rQc);_.Yf=function tQc(a){return mQc(BD(a,37))};_.pf=function uQc(a,b){qQc(this,BD(a,37),b)};var $Pc,_Pc,aQc,bQc,cQc;var a$=ldb(Lqe,'SplineEdgeRouter',1452);acb(268,1,{268:1},xQc);_.Ib=function yQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var WZ=ldb(Lqe,'SplineEdgeRouter/Dependency',268);acb(455,22,{3:1,35:1,22:1,455:1},CQc);var zQc,AQc;var XZ=mdb(Lqe,'SplineEdgeRouter/SideToProcess',455,CI,EQc,DQc);var FQc;acb(1453,1,Jie,HQc);_.Mb=function IQc(a){return dQc(),!BD(a,128).o};var YZ=ldb(Lqe,'SplineEdgeRouter/lambda$0$Type',1453);acb(1454,1,{},JQc);_.Ge=function KQc(a){return dQc(),BD(a,128).v+1};var ZZ=ldb(Lqe,'SplineEdgeRouter/lambda$1$Type',1454);acb(1455,1,lie,LQc);_.td=function MQc(a){oQc(this.a,this.b,BD(a,46))};var $Z=ldb(Lqe,'SplineEdgeRouter/lambda$2$Type',1455);acb(1456,1,lie,NQc);_.td=function OQc(a){pQc(this.a,this.b,BD(a,46))};var _Z=ldb(Lqe,'SplineEdgeRouter/lambda$3$Type',1456);acb(128,1,{35:1,128:1},UQc,VQc);_.wd=function WQc(a){return SQc(this,BD(a,128))};_.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 c$=ldb(Lqe,'SplineSegment',128);acb(459,1,{459:1},XQc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var b$=ldb(Lqe,'SplineSegment/EdgeInformation',459);acb(1233,1,{},dRc);var e$=ldb(Qqe,cme,1233);acb(1234,1,yke,fRc);_.ue=function gRc(a,b){return eRc(BD(a,135),BD(b,135))};_.Fb=function hRc(a){return this===a};_.ve=function iRc(){return new spb(this)};var d$=ldb(Qqe,dme,1234);acb(1232,1,{},pRc);var f$=ldb(Qqe,'MrTree',1232);acb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},wRc);_.Kf=function yRc(){return vRc(this)};_.Xf=function xRc(){return vRc(this)};var qRc,rRc,sRc,tRc;var g$=mdb(Qqe,'TreeLayoutPhases',393,CI,ARc,zRc);var BRc;acb(1129,209,Hle,DRc);_.Ze=function ERc(a,b){var c,d,e,f,g,h,i;Bcb(DD(ckd(a,(FTc(),wTc))))||ZCb((c=new $Cb((Kgd(),new Ygd(a))),c));g=(h=new ORc,sNb(h,a),xNb(h,(iTc(),_Sc),a),i=new Kqb,lRc(a,h,i),kRc(a,h,i),h);f=cRc(this.a,g);for(e=new nlb(f);e.a'+SRc(this.c):'e_'+tb(this)};var k$=ldb(Rqe,'TEdge',188);acb(135,134,{3:1,135:1,94:1,134:1},ORc);_.Ib=function PRc(){var a,b,c,d,e;e=null;for(d=Isb(this.b,0);d.b!=d.d.c;){c=BD(Wsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Isb(this.a,0);b.b!=b.d.c;){a=BD(Wsb(b),188);e+=(!!a.b&&!!a.c?SRc(a.b)+'->'+SRc(a.c):'e_'+tb(a))+'\n'}return e};var m$=ldb(Rqe,'TGraph',135);acb(633,502,{3:1,502:1,633:1,94:1,134:1});var q$=ldb(Rqe,'TShape',633);acb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},TRc);_.Ib=function URc(){return SRc(this)};var p$=ldb(Rqe,'TNode',86);acb(255,1,qie,VRc);_.Jc=function WRc(a){qeb(this,a)};_.Kc=function XRc(){var a;return a=Isb(this.a.d,0),new YRc(a)};var o$=ldb(Rqe,'TNode/2',255);acb(357,1,Xhe,YRc);_.Nb=function ZRc(a){Qrb(this,a)};_.Pb=function _Rc(){return BD(Wsb(this.a),188).c};_.Ob=function $Rc(){return Vsb(this.a)};_.Qb=function aSc(){Ysb(this.a)};var n$=ldb(Rqe,'TNode/2/1',357);acb(1839,1,_me,dSc);_.pf=function fSc(a,b){cSc(this,BD(a,135),b)};var r$=ldb(Sqe,'FanProcessor',1839);acb(327,22,{3:1,35:1,22:1,327:1,234:1},nSc);_.Kf=function oSc(){switch(this.g){case 0:return new MSc;case 1:return new dSc;case 2:return new CSc;case 3:return new vSc;case 4:return new JSc;case 5:return new PSc;default:throw ubb(new Vdb(yne+(this.f!=null?this.f:''+this.g)));}};var gSc,hSc,iSc,jSc,kSc,lSc;var s$=mdb(Sqe,zne,327,CI,qSc,pSc);var rSc;acb(1842,1,_me,vSc);_.pf=function wSc(a,b){tSc(this,BD(a,135),b)};_.a=0;var u$=ldb(Sqe,'LevelHeightProcessor',1842);acb(1843,1,qie,xSc);_.Jc=function ySc(a){qeb(this,a)};_.Kc=function zSc(){return lmb(),Dmb(),Cmb};var t$=ldb(Sqe,'LevelHeightProcessor/1',1843);acb(1840,1,_me,CSc);_.pf=function DSc(a,b){ASc(this,BD(a,135),b)};_.a=0;var w$=ldb(Sqe,'NeighborsProcessor',1840);acb(1841,1,qie,ESc);_.Jc=function FSc(a){qeb(this,a)};_.Kc=function GSc(){return lmb(),Dmb(),Cmb};var v$=ldb(Sqe,'NeighborsProcessor/1',1841);acb(1844,1,_me,JSc);_.pf=function KSc(a,b){HSc(this,BD(a,135),b)};_.a=0;var x$=ldb(Sqe,'NodePositionProcessor',1844);acb(1838,1,_me,MSc);_.pf=function NSc(a,b){LSc(this,BD(a,135))};var y$=ldb(Sqe,'RootProcessor',1838);acb(1845,1,_me,PSc);_.pf=function QSc(a,b){OSc(BD(a,135))};var z$=ldb(Sqe,'Untreeifyer',1845);var RSc,SSc,TSc,USc,VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc;acb(850,1,Xke,oTc);_.Qe=function pTc(a){p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Vqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),mTc),(X5c(),R5c)),D$),oqb((J5c(),H5c)))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Wqe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),kTc),R5c),E$),oqb(H5c))));GTc((new HTc,a))};var jTc,kTc,lTc,mTc;var A$=ldb(Xqe,'MrTreeMetaDataProvider',850);acb(993,1,Xke,HTc);_.Qe=function ITc(a){GTc(a)};var qTc,rTc,sTc,tTc,uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc;var C$=ldb(Xqe,'MrTreeOptions',993);acb(994,1,{},JTc);_.$e=function KTc(){var a;return a=new DRc,a};_._e=function LTc(a){};var B$=ldb(Xqe,'MrTreeOptions/MrtreeFactory',994);acb(480,22,{3:1,35:1,22:1,480:1},PTc);var MTc,NTc;var D$=mdb(Xqe,'OrderWeighting',480,CI,RTc,QTc);var STc;acb(426,22,{3:1,35:1,22:1,426:1},XTc);var UTc,VTc;var E$=mdb(Xqe,'TreeifyingOrder',426,CI,ZTc,YTc);var $Tc;acb(1458,1,xqe,hUc);_.Yf=function iUc(a){return BD(a,135),aUc};_.pf=function jUc(a,b){gUc(this,BD(a,135),b)};var aUc;var F$=ldb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1458);acb(1459,1,xqe,oUc);_.Yf=function pUc(a){return BD(a,135),kUc};_.pf=function qUc(a,b){nUc(this,BD(a,135),b)};var kUc;var G$=ldb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1459);acb(1460,1,xqe,yUc);_.Yf=function zUc(a){return BD(a,135),rUc};_.pf=function AUc(a,b){wUc(this,BD(a,135),b)};_.a=0;var rUc;var H$=ldb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1460);acb(1461,1,xqe,EUc);_.Yf=function FUc(a){return BD(a,135),BUc};_.pf=function GUc(a,b){DUc(BD(a,135),b)};var BUc;var I$=ldb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1461);var HUc;acb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},NUc);_.Kf=function PUc(){return MUc(this)};_.Xf=function OUc(){return MUc(this)};var JUc,KUc;var J$=mdb($qe,'RadialLayoutPhases',495,CI,RUc,QUc);var SUc;acb(1130,209,Hle,VUc);_.Ze=function WUc(a,b){var c,d,e,f,g,h;c=UUc(this,a);Jdd(b,'Radial layout',c.c.length);Bcb(DD(ckd(a,(VWc(),MWc))))||ZCb((d=new $Cb((Kgd(),new Ygd(a))),d));h=YUc(a);ekd(a,(IUc(),HUc),h);if(!h){throw ubb(new Vdb('The given graph is not a tree!'))}e=Ddb(ED(ckd(a,RWc)));e==0&&(e=XUc(a));ekd(a,RWc,e);for(g=new nlb(UUc(this,a));g.a0&&f7c((ACb(c-1,b.length),b.charCodeAt(c-1)),ine)){--c}if(e>=c){throw ubb(new Vdb('The given string does not contain any numbers.'))}f=lfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw ubb(new Vdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Gcb(tfb(f[0]));this.b=Gcb(tfb(f[1]))}catch(a){a=tbb(a);if(JD(a,127)){d=a;throw ubb(new Vdb(jne+d))}else throw ubb(a)}};_.Ib=function i7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var l1=ldb(kne,'KVector',8);acb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,415:1},o7c,p7c,q7c);_.Pc=function t7c(){return n7c(this)};_.Jf=function r7c(b){var c,d,e,f,g,h;e=lfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Nsb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Gcb(e[d])):(h=Gcb(e[d]));g>0&&g%2!=0&&Csb(this,new b7c(f,h));++g}++d}}catch(a){a=tbb(a);if(JD(a,127)){c=a;throw ubb(new Vdb('The given string does not match the expected format for vectors.'+c))}else throw ubb(a)}};_.Ib=function u7c(){var a,b,c;a=new Vfb('(');b=Isb(this,0);while(b.b!=b.d.c){c=BD(Wsb(b),8);Pfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var k1=ldb(kne,'KVectorChain',74);acb(248,22,{3:1,35:1,22:1,248:1},C7c);var v7c,w7c,x7c,y7c,z7c,A7c;var n1=mdb(kse,'Alignment',248,CI,E7c,D7c);var F7c;acb(978,1,Xke,V7c);_.Qe=function W7c(a){U7c(a)};var H7c,I7c,J7c,K7c,L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c;var p1=ldb(kse,'BoxLayouterOptions',978);acb(979,1,{},X7c);_.$e=function Y7c(){var a;return a=new bed,a};_._e=function Z7c(a){};var o1=ldb(kse,'BoxLayouterOptions/BoxFactory',979);acb(290,22,{3:1,35:1,22:1,290:1},f8c);var $7c,_7c,a8c,b8c,c8c,d8c;var q1=mdb(kse,'ContentAlignment',290,CI,h8c,g8c);var i8c;acb(684,1,Xke,V9c);_.Qe=function W9c(a){p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,ose),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(X5c(),V5c)),ZI),oqb((J5c(),H5c)))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,pse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),U5c),D0),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Wpe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),m8c),R5c),n1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Wle),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,qse),''),'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."),U5c),k1),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,hqe),''),'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.'),t8c),S5c),q1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Vpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Acb(),false)),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,$pe),''),xle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),w8c),R5c),s1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,upe),''),'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.'),B8c),R5c),u1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Fre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ppe),''),'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`."),G8c),R5c),y1),pqb(H5c,OC(GC(d1,1),Fie,175,0,[G5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Xle),''),'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."),c9c),U5c),i1),pqb(H5c,OC(GC(d1,1),Fie,175,0,[G5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,vme),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,tqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,yme),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,wme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),q9c),R5c),C1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,qqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),U5c),l1),pqb(G5c,OC(GC(d1,1),Fie,175,0,[I5c,F5c])))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,qme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),T5c),JI),pqb(G5c,OC(GC(d1,1),Fie,175,0,[E5c])))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,tme),''),'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).'),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,ume),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,iqe),''),'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.'),N8c),U5c),k1),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,lqe),''),'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),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,mqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,rse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),U5c),g1),pqb(H5c,OC(GC(d1,1),Fie,175,0,[F5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,rqe),''),'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."),P8c),U5c),h1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Tpe),''),'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),P5c),wI),pqb(G5c,OC(GC(d1,1),Fie,175,0,[E5c,I5c,F5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,sse),''),'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),Q5c),BI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,tse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,use),''),'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'."),leb(100)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,vse),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,wse),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),leb(4000)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,xse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),leb(400)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,yse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,zse),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ase),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Bse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,nse),'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.'),q8c),R5c),N1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Hpe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ipe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ule),vpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Jpe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,sme),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Kpe),vpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Lpe),vpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ope),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Mpe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Npe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,rme),vpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ppe),vpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Qpe),vpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),Q5c),BI),pqb(H5c,OC(GC(d1,1),Fie,175,0,[G5c])))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Rpe),vpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),U5c),h2),pqb(G5c,OC(GC(d1,1),Fie,175,0,[E5c,I5c,F5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,sqe),vpe),'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.'),S9c),U5c),h1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,pqe),Fse),'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).'),T5c),JI),pqb(H5c,OC(GC(d1,1),Fie,175,0,[G5c])))));k4c(a,pqe,oqe,g9c);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,oqe),Fse),'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.'),e9c),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,_pe),Gse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),R8c),U5c),i1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Bme),Gse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),T8c),S5c),A1),pqb(G5c,OC(GC(d1,1),Fie,175,0,[F5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,cqe),Hse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),i9c),R5c),B1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,dqe),Hse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),R5c),B1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,eqe),Hse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),R5c),B1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,fqe),Hse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),R5c),B1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,gqe),Hse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),R5c),B1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ame),Ise),'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."),V8c),S5c),H1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,zme),Ise),'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.'),$8c),S5c),I1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ome),Ise),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),Y8c),U5c),l1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Zpe),Ise),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,jqe),Fpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),z8c),R5c),t1),oqb(F5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,xme),Fpe),'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),P5c),wI),oqb(F5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Cse),'font'),'Font Name'),'Font name used for a label.'),V5c),ZI),oqb(F5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Dse),'font'),'Font Size'),'Font size used for a label.'),T5c),JI),oqb(F5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,nqe),Jse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),U5c),l1),oqb(I5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,kqe),Jse),'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."),T5c),JI),oqb(I5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Upe),Jse),'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."),x9c),R5c),E1),oqb(I5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Spe),Jse),'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."),Q5c),BI),oqb(I5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Cme),Kse),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),u9c),S5c),D1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,aqe),Kse),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,bqe),Kse),'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),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Xpe),Lse),'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),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ype),Lse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),P5c),wI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Vle),'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),Q5c),BI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ese),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),D8c),R5c),v1),oqb(E5c))));o4c(a,new S3c(Z3c(_3c($3c(new a4c,nne),'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,pme),'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,Zqe),'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,ore),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));Wad((new Xad,a));U7c((new V7c,a));edd((new fdd,a))};var k8c,l8c,m8c,n8c,o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c;var r1=ldb(kse,'CoreOptions',684);acb(103,22,{3:1,35:1,22:1,103:1},ead);var X9c,Y9c,Z9c,$9c,_9c;var s1=mdb(kse,xle,103,CI,gad,fad);var had;acb(272,22,{3:1,35:1,22:1,272:1},nad);var jad,kad,lad;var t1=mdb(kse,'EdgeLabelPlacement',272,CI,pad,oad);var qad;acb(218,22,{3:1,35:1,22:1,218:1},xad);var sad,tad,uad,vad;var u1=mdb(kse,'EdgeRouting',218,CI,zad,yad);var Aad;acb(312,22,{3:1,35:1,22:1,312:1},Jad);var Cad,Dad,Ead,Fad,Gad,Had;var v1=mdb(kse,'EdgeType',312,CI,Lad,Kad);var Mad;acb(976,1,Xke,Xad);_.Qe=function Yad(a){Wad(a)};var Oad,Pad,Qad,Rad,Sad,Tad,Uad;var x1=ldb(kse,'FixedLayouterOptions',976);acb(977,1,{},Zad);_.$e=function $ad(){var a;return a=new Ufd,a};_._e=function _ad(a){};var w1=ldb(kse,'FixedLayouterOptions/FixedFactory',977);acb(334,22,{3:1,35:1,22:1,334:1},ebd);var abd,bbd,cbd;var y1=mdb(kse,'HierarchyHandling',334,CI,gbd,fbd);var hbd;acb(284,22,{3:1,35:1,22:1,284:1},pbd);var jbd,kbd,lbd,mbd;var z1=mdb(kse,'LabelSide',284,CI,rbd,qbd);var sbd;acb(93,22,{3:1,35:1,22:1,93:1},Ebd);var ubd,vbd,wbd,xbd,ybd,zbd,Abd,Bbd,Cbd;var A1=mdb(kse,'NodeLabelPlacement',93,CI,Hbd,Gbd);var Ibd;acb(249,22,{3:1,35:1,22:1,249:1},Qbd);var Kbd,Lbd,Mbd,Nbd,Obd;var B1=mdb(kse,'PortAlignment',249,CI,Sbd,Rbd);var Tbd;acb(98,22,{3:1,35:1,22:1,98:1},ccd);var Vbd,Wbd,Xbd,Ybd,Zbd,$bd;var C1=mdb(kse,'PortConstraints',98,CI,ecd,dcd);var fcd;acb(291,22,{3:1,35:1,22:1,291:1},ncd);var hcd,icd,jcd,kcd,lcd;var D1=mdb(kse,'PortLabelPlacement',291,CI,rcd,qcd);var scd;acb(61,22,{3:1,35:1,22:1,61:1},Tcd);var ucd,vcd,wcd,xcd,ycd,zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd;var E1=mdb(kse,'PortSide',61,CI,Wcd,Vcd);var Xcd;acb(980,1,Xke,fdd);_.Qe=function gdd(a){edd(a)};var Zcd,$cd,_cd,bdd,cdd;var G1=ldb(kse,'RandomLayouterOptions',980);acb(981,1,{},hdd);_.$e=function idd(){var a;return a=new Hgd,a};_._e=function jdd(a){};var F1=ldb(kse,'RandomLayouterOptions/RandomFactory',981);acb(373,22,{3:1,35:1,22:1,373:1},pdd);var kdd,ldd,mdd,ndd;var H1=mdb(kse,'SizeConstraint',373,CI,rdd,qdd);var sdd;acb(259,22,{3:1,35:1,22:1,259:1},Edd);var udd,vdd,wdd,xdd,ydd,zdd,Add,Bdd,Cdd;var I1=mdb(kse,'SizeOptions',259,CI,Gdd,Fdd);var Hdd;acb(369,1,{1948:1},Udd);_.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 K1=ldb(uqe,'BasicProgressMonitor',369);acb(971,209,Hle,bed);_.Ze=function fed(a,b){var c,d,e,f,g,h,i,j,k;Jdd(b,'Box layout',2);e=Fdb(ED(ckd(a,(T7c(),S7c))));f=BD(ckd(a,P7c),116);c=Bcb(DD(ckd(a,K7c)));d=Bcb(DD(ckd(a,L7c)));switch(BD(ckd(a,I7c),311).g){case 0:g=(h=new Skb((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a)),lmb(),Nkb(h,new hed(d)),h);i=mfd(a);j=ED(ckd(a,H7c));(j==null||(tCb(j),j)<=0)&&(j=1.3);k=$dd(g,e,f,i.a,i.b,c,(tCb(j),j));vfd(a,k.a,k.b,false,true);break;default:_dd(a,e,f,c);}Ldd(b)};var R1=ldb(uqe,'BoxLayoutProvider',971);acb(972,1,yke,hed);_.ue=function ied(a,b){return ged(this,BD(a,33),BD(b,33))};_.Fb=function jed(a){return this===a};_.ve=function ked(){return new spb(this)};_.a=false;var L1=ldb(uqe,'BoxLayoutProvider/1',972);acb(157,1,{157:1},red,sed);_.Ib=function ted(){return this.c?Wod(this.c):Fe(this.b)};var M1=ldb(uqe,'BoxLayoutProvider/Group',157);acb(311,22,{3:1,35:1,22:1,311:1},zed);var ued,ved,wed,xed;var N1=mdb(uqe,'BoxLayoutProvider/PackingMode',311,CI,Bed,Aed);var Ced;acb(973,1,yke,Eed);_.ue=function Fed(a,b){return ced(BD(a,157),BD(b,157))};_.Fb=function Ged(a){return this===a};_.ve=function Hed(){return new spb(this)};var O1=ldb(uqe,'BoxLayoutProvider/lambda$0$Type',973);acb(974,1,yke,Ied);_.ue=function Jed(a,b){return ded(BD(a,157),BD(b,157))};_.Fb=function Ked(a){return this===a};_.ve=function Led(){return new spb(this)};var P1=ldb(uqe,'BoxLayoutProvider/lambda$1$Type',974);acb(975,1,yke,Med);_.ue=function Ned(a,b){return eed(BD(a,157),BD(b,157))};_.Fb=function Oed(a){return this===a};_.ve=function Ped(){return new spb(this)};var Q1=ldb(uqe,'BoxLayoutProvider/lambda$2$Type',975);acb(1364,1,{830:1},Qed);_.pg=function Red(a,b){return Tyc(),!JD(b,160)||b2c((U1c(),T1c,BD(a,160)),b)};var S1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1364);acb(1365,1,lie,Sed);_.td=function Ted(a){Wyc(this.a,BD(a,146))};var T1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1365);acb(1366,1,lie,Ued);_.td=function Ved(a){BD(a,94);Tyc()};var U1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1366);acb(1370,1,lie,Wed);_.td=function Xed(a){Xyc(this.a,BD(a,94))};var V1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1370);acb(1368,1,Jie,Yed);_.Mb=function Zed(a){return Yyc(this.a,this.b,BD(a,146))};var W1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1368);acb(1367,1,Jie,$ed);_.Mb=function _ed(a){return $yc(this.a,this.b,BD(a,830))};var X1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1367);acb(1369,1,lie,afd);_.td=function bfd(a){Zyc(this.a,this.b,BD(a,146))};var Y1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1369);acb(934,1,{},Cfd);_.Kb=function Dfd(a){return Bfd(a)};_.Fb=function Efd(a){return this===a};var $1=ldb(uqe,'ElkUtil/lambda$0$Type',934);acb(935,1,lie,Ffd);_.td=function Gfd(a){pfd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var _1=ldb(uqe,'ElkUtil/lambda$1$Type',935);acb(936,1,lie,Hfd);_.td=function Ifd(a){qfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var a2=ldb(uqe,'ElkUtil/lambda$2$Type',936);acb(937,1,lie,Jfd);_.td=function Kfd(a){rfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var b2=ldb(uqe,'ElkUtil/lambda$3$Type',937);acb(938,1,lie,Lfd);_.td=function Mfd(a){sfd(this.a,BD(a,469))};var c2=ldb(uqe,'ElkUtil/lambda$4$Type',938);acb(341,1,{35:1,341:1},Ofd);_.wd=function Pfd(a){return Nfd(this,BD(a,236))};_.Fb=function Qfd(a){var b;if(JD(a,341)){b=BD(a,341);return this.a==b.a}return false};_.Hb=function Rfd(){return QD(this.a)};_.Ib=function Sfd(){return this.a+' (exclusive)'};_.a=0;var d2=ldb(uqe,'ExclusiveBounds/ExclusiveLowerBound',341);acb(1137,209,Hle,Ufd);_.Ze=function Vfd(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;Jdd(b,'Fixed Layout',1);f=BD(ckd(a,(U9c(),A8c)),218);l=0;m=0;for(s=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(yyd(s),33);B=BD(ckd(q,(Vad(),Uad)),8);if(B){Ykd(q,B.a,B.b);if(BD(ckd(q,Pad),174).Hc((odd(),kdd))){n=BD(ckd(q,Rad),8);n.a>0&&n.b>0&&vfd(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 Ayd((!q.n&&(q.n=new ZTd(C2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(yyd(j),137);B=BD(ckd(h,Uad),8);!!B&&Ykd(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 Ayd((!q.c&&(q.c=new ZTd(E2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(yyd(v),118);B=BD(ckd(u,Uad),8);!!B&&Ykd(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 Ayd((!u.n&&(u.n=new ZTd(C2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(yyd(i),137);B=BD(ckd(h,Uad),8);!!B&&Ykd(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 Sr(ur(Wsd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Tfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur(Vsd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Sod(etd(c))!=a){k=Tfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(wad(),sad)){for(r=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(yyd(r),33);for(d=new Sr(ur(Wsd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=kfd(c);g.b==0?ekd(c,M8c,null):ekd(c,M8c,g)}}}if(!Bcb(DD(ckd(a,(Vad(),Qad))))){t=BD(ckd(a,Sad),116);p=l+t.b+t.c;o=m+t.d+t.a;vfd(a,p,o,true,true)}Ldd(b)};var e2=ldb(uqe,'FixedLayoutProvider',1137);acb(372,134,{3:1,415:1,372:1,94:1,134:1},Wfd,Xfd);_.Jf=function $fd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=lfb(b,';,;');for(g=j,h=0,i=g.length;h>16&Xie|b^d<<16};_.Kc=function ugd(){return new wgd(this)};_.Ib=function vgd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+ecb(this.b)+')':this.b==null?'pair('+ecb(this.a)+',null)':'pair('+ecb(this.a)+','+ecb(this.b)+')'};var m2=ldb(uqe,'Pair',46);acb(982,1,Xhe,wgd);_.Nb=function xgd(a){Qrb(this,a)};_.Ob=function ygd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function zgd(){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 ubb(new ttb)};_.Qb=function Agd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw ubb(new Xdb)};_.b=false;_.c=false;var l2=ldb(uqe,'Pair/1',982);acb(449,1,{449:1},Bgd);_.Fb=function Cgd(a){return vtb(this.a,BD(a,449).a)&&vtb(this.c,BD(a,449).c)&&vtb(this.d,BD(a,449).d)&&vtb(this.b,BD(a,449).b)};_.Hb=function Dgd(){return Glb(OC(GC(SI,1),Phe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Egd(){return '('+this.a+Nhe+this.c+Nhe+this.d+Nhe+this.b+')'};var n2=ldb(uqe,'Quadruple',449);acb(1125,209,Hle,Hgd);_.Ze=function Igd(a,b){var c,d,e,f,g;Jdd(b,'Random Layout',1);if((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a).i==0){Ldd(b);return}f=BD(ckd(a,(ddd(),bdd)),19);!!f&&f.a!=0?(e=new Gub(f.a)):(e=new Fub);c=Fdb(ED(ckd(a,Zcd)));g=Fdb(ED(ckd(a,cdd)));d=BD(ckd(a,$cd),116);Ggd(a,e,c,g,d);Ldd(b)};var o2=ldb(uqe,'RandomLayoutProvider',1125);var Jgd;acb(553,1,{});_.qf=function Ngd(){return new b7c(this.f.i,this.f.j)};_.We=function Ogd(a){if(Esd(a,(U9c(),o9c))){return ckd(this.f,Lgd)}return ckd(this.f,a)};_.rf=function Pgd(){return new b7c(this.f.g,this.f.f)};_.sf=function Qgd(){return this.g};_.Xe=function Rgd(a){return dkd(this.f,a)};_.tf=function Sgd(a){$kd(this.f,a.a);_kd(this.f,a.b)};_.uf=function Tgd(a){Zkd(this.f,a.a);Xkd(this.f,a.b)};_.vf=function Ugd(a){this.g=a};_.g=0;var Lgd;var p2=ldb(Qse,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);acb(554,1,{838:1},Vgd);_.wf=function Wgd(){var a,b;if(!this.b){this.b=Qu(Fkd(this.a).i);for(b=new Ayd(Fkd(this.a));b.e!=b.i.gc();){a=BD(yyd(b),137);Dkb(this.b,new $gd(a))}}return this.b};_.b=null;var q2=ldb(Qse,'ElkGraphAdapters/ElkEdgeAdapter',554);acb(301,553,{},Ygd);_.xf=function Zgd(){return Xgd(this)};_.a=null;var r2=ldb(Qse,'ElkGraphAdapters/ElkGraphAdapter',301);acb(630,553,{181:1},$gd);var s2=ldb(Qse,'ElkGraphAdapters/ElkLabelAdapter',630);acb(629,553,{680:1},chd);_.wf=function fhd(){return _gd(this)};_.Af=function ghd(){var a;return a=BD(ckd(this.f,(U9c(),O8c)),142),!a&&(a=new G_b),a};_.Cf=function ihd(){return ahd(this)};_.Ef=function khd(a){var b;b=new J_b(a);ekd(this.f,(U9c(),O8c),b)};_.Ff=function lhd(a){ekd(this.f,(U9c(),b9c),new q0b(a))};_.yf=function dhd(){return this.d};_.zf=function ehd(){var a,b;if(!this.a){this.a=new Qkb;for(b=new Sr(ur(Vsd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Dkb(this.a,new Vgd(a))}}return this.a};_.Bf=function hhd(){var a,b;if(!this.c){this.c=new Qkb;for(b=new Sr(ur(Wsd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Dkb(this.c,new Vgd(a))}}return this.c};_.Df=function jhd(){return Qod(BD(this.f,33)).i!=0||Bcb(DD(BD(this.f,33).We((U9c(),I8c))))};_.Gf=function mhd(){bhd(this,(Kgd(),Jgd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var t2=ldb(Qse,'ElkGraphAdapters/ElkNodeAdapter',629);acb(1265,553,{837:1},ohd);_.wf=function qhd(){return nhd(this)};_.zf=function phd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).wg().i);for(b=new Ayd(BD(this.f,118).wg());b.e!=b.i.gc();){a=BD(yyd(b),79);Dkb(this.a,new Vgd(a))}}return this.a};_.Bf=function rhd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).xg().i);for(b=new Ayd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(yyd(b),79);Dkb(this.c,new Vgd(a))}}return this.c};_.Hf=function shd(){return BD(BD(this.f,118).We((U9c(),w9c)),61)};_.If=function thd(){var a,b,c,d,e,f,g,h;d=hpd(BD(this.f,118));for(c=new Ayd(BD(this.f,118).xg());c.e!=c.i.gc();){a=BD(yyd(c),79);for(h=new Ayd((!a.c&&(a.c=new t5d(y2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(yyd(h),82);if(itd(Xsd(g),d)){return true}else if(Xsd(g)==d&&Bcb(DD(ckd(a,(U9c(),J8c))))){return true}}}for(b=new Ayd(BD(this.f,118).wg());b.e!=b.i.gc();){a=BD(yyd(b),79);for(f=new Ayd((!a.b&&(a.b=new t5d(y2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(yyd(f),82);if(itd(Xsd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var u2=ldb(Qse,'ElkGraphAdapters/ElkPortAdapter',1265);acb(1266,1,yke,vhd);_.ue=function whd(a,b){return uhd(BD(a,118),BD(b,118))};_.Fb=function xhd(a){return this===a};_.ve=function yhd(){return new spb(this)};var v2=ldb(Qse,'ElkGraphAdapters/PortComparator',1266);var l5=ndb(Rse,'EObject');var w2=ndb(Sse,Tse);var x2=ndb(Sse,Use);var B2=ndb(Sse,Vse);var F2=ndb(Sse,'ElkShape');var y2=ndb(Sse,Wse);var A2=ndb(Sse,Xse);var z2=ndb(Sse,Yse);var j5=ndb(Rse,Zse);var h5=ndb(Rse,'EFactory');var zhd;var k5=ndb(Rse,$se);var n5=ndb(Rse,'EPackage');var Bhd;var Dhd,Ehd,Fhd,Ghd,Hhd,Ihd,Jhd,Khd,Lhd,Mhd,Nhd;var C2=ndb(Sse,_se);var D2=ndb(Sse,ate);var E2=ndb(Sse,bte);acb(90,1,cte);_.Ig=function Qhd(){this.Jg();return null};_.Jg=function Rhd(){return null};_.Kg=function Shd(){return this.Jg(),false};_.Lg=function Thd(){return false};_.Mg=function Uhd(a){Phd(this,a)};var a4=ldb(dte,'BasicNotifierImpl',90);acb(97,90,lte);_.mh=function ajd(){return jid(this)};_.Ng=function Aid(a,b){return a};_.Og=function Bid(){throw ubb(new agb)};_.Pg=function Cid(a){var b;return b=uUd(BD(SKd(this.Sg(),this.Ug()),18)),this.dh().hh(this,b.n,b.f,a)};_.Qg=function Did(a,b){throw ubb(new agb)};_.Rg=function Eid(a,b,c){return Whd(this,a,b,c)};_.Sg=function Fid(){var a;if(this.Og()){a=this.Og().bk();if(a){return a}}return this.yh()};_.Tg=function Gid(){return Xhd(this)};_.Ug=function Hid(){throw ubb(new agb)};_.Vg=function Jid(){var a,b;b=this.oh().ck();!b&&this.Og().hk(b=(iRd(),a=kNd(OKd(this.Sg())),a==null?hRd:new lRd(this,a)));return b};_.Wg=function Lid(a,b){return a};_.Xg=function Mid(a){var b;b=a.Fj();return !b?YKd(this.Sg(),a):a._i()};_.Yg=function Nid(){var a;a=this.Og();return !a?null:a.ek()};_.Zg=function Oid(){return !this.Og()?null:this.Og().bk()};_.$g=function Pid(a,b,c){return aid(this,a,b,c)};_._g=function Qid(a){return bid(this,a)};_.ah=function Rid(a,b){return cid(this,a,b)};_.bh=function Sid(){var a;a=this.Og();return !!a&&a.fk()};_.dh=function Tid(){throw ubb(new agb)};_.eh=function Uid(){return eid(this)};_.fh=function Vid(a,b,c,d){return fid(this,a,b,d)};_.gh=function Wid(a,b,c){var d;return d=BD(SKd(this.Sg(),b),66),d.Mj().Pj(this,this.xh(),b-this.zh(),a,c)};_.hh=function Xid(a,b,c,d){return gid(this,a,b,d)};_.ih=function Yid(a,b,c){var d;return d=BD(SKd(this.Sg(),b),66),d.Mj().Qj(this,this.xh(),b-this.zh(),a,c)};_.jh=function Zid(){return !!this.Og()&&!!this.Og().dk()};_.kh=function $id(a){return hid(this,a)};_.lh=function _id(a){return iid(this,a)};_.nh=function bjd(a){return mid(this,a)};_.oh=function cjd(){throw ubb(new agb)};_.ph=function djd(){return !this.Og()?null:this.Og().dk()};_.qh=function ejd(){return eid(this)};_.rh=function fjd(a,b){tid(this,a,b)};_.sh=function gjd(a){this.oh().gk(a)};_.th=function hjd(a){this.oh().jk(a)};_.uh=function ijd(a){this.oh().ik(a)};_.vh=function jjd(a,b){var c,d,e,f;f=this.Yg();if(!!f&&!!a){b=Oxd(f.Uk(),this,b);f.Yk(this)}d=this.dh();if(d){if((Iid(this,this.dh(),this.Ug()).Bb&Oje)!=0){e=d.eh();!!e&&(!a?e.Xk(this):!f&&e.Yk(this))}else{b=(c=this.Ug(),c>=0?this.Pg(b):this.dh().hh(this,-1-c,null,b));b=this.Rg(null,-1,b)}}this.th(a);return b};_.wh=function kjd(a){var b,c,d,e,f,g,h,i;c=this.Sg();f=YKd(c,a);b=this.zh();if(f>=b){return BD(a,66).Mj().Tj(this,this.xh(),f-b)}else if(f<=-1){g=_0d((J6d(),H6d),c,a);if(g){L6d();BD(g,66).Nj()||(g=W1d(l1d(H6d,g)));e=(d=this.Xg(g),BD(d>=0?this.$g(d,true,true):nid(this,g,true),153));i=g.Yj();if(i>1||i==-1){return BD(BD(e,215).gl(a,false),76)}}else{throw ubb(new Vdb(ete+a.ne()+hte))}}else if(a.Zj()){return d=this.Xg(a),BD(d>=0?this.$g(d,false,true):nid(this,a,false),76)}h=new iGd(this,a);return h};_.xh=function ljd(){return vid(this)};_.yh=function mjd(){return (IFd(),HFd).S};_.zh=function njd(){return XKd(this.yh())};_.Ah=function ojd(a){xid(this,a)};_.Ib=function pjd(){return zid(this)};var A5=ldb(mte,'BasicEObjectImpl',97);var uFd;acb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Bh=function yjd(a){var b;b=sjd(this);return b[a]};_.Ch=function zjd(a,b){var c;c=sjd(this);NC(c,a,b)};_.Dh=function Ajd(a){var b;b=sjd(this);NC(b,a,null)};_.Ig=function Bjd(){return BD(vjd(this,4),125)};_.Jg=function Cjd(){throw ubb(new agb)};_.Kg=function Djd(){return (this.Db&4)!=0};_.Og=function Ejd(){throw ubb(new agb)};_.Eh=function Fjd(a){xjd(this,2,a)};_.Qg=function Gjd(a,b){this.Db=b<<16|this.Db&255;this.Eh(a)};_.Sg=function Hjd(){return rjd(this)};_.Ug=function Ijd(){return this.Db>>16};_.Vg=function Jjd(){var a,b;return iRd(),b=kNd(OKd((a=BD(vjd(this,16),26),!a?this.yh():a))),b==null?(null,hRd):new lRd(this,b)};_.Lg=function Kjd(){return (this.Db&1)==0};_.Yg=function Ljd(){return BD(vjd(this,128),1934)};_.Zg=function Mjd(){return BD(vjd(this,16),26)};_.bh=function Njd(){return (this.Db&32)!=0};_.dh=function Ojd(){return BD(vjd(this,2),49)};_.jh=function Pjd(){return (this.Db&64)!=0};_.oh=function Qjd(){throw ubb(new agb)};_.ph=function Rjd(){return BD(vjd(this,64),280)};_.sh=function Sjd(a){xjd(this,16,a)};_.th=function Tjd(a){xjd(this,128,a)};_.uh=function Ujd(a){xjd(this,64,a)};_.xh=function Vjd(){return tjd(this)};_.Db=0;var r8=ldb(mte,'MinimalEObjectImpl',114);acb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Eh=function Wjd(a){this.Cb=a};_.dh=function Xjd(){return this.Cb};var q8=ldb(mte,'MinimalEObjectImpl/Container',115);acb(1984,115,{105:1,414:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.$g=function fkd(a,b,c){return Yjd(this,a,b,c)};_.ih=function gkd(a,b,c){return Zjd(this,a,b,c)};_.kh=function hkd(a){return $jd(this,a)};_.rh=function ikd(a,b){_jd(this,a,b)};_.yh=function jkd(){return Ohd(),Nhd};_.Ah=function kkd(a){akd(this,a)};_.Ve=function lkd(){return bkd(this)};_.We=function mkd(a){return ckd(this,a)};_.Xe=function nkd(a){return dkd(this,a)};_.Ye=function okd(a,b){return ekd(this,a,b)};var G2=ldb(nte,'EMapPropertyHolderImpl',1984);acb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},skd);_.$g=function tkd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return aid(this,a,b,c)};_.kh=function ukd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return hid(this,a)};_.rh=function vkd(a,b){switch(a){case 0:qkd(this,Ddb(ED(b)));return;case 1:rkd(this,Ddb(ED(b)));return;}tid(this,a,b)};_.yh=function wkd(){return Ohd(),Dhd};_.Ah=function xkd(a){switch(a){case 0:qkd(this,0);return;case 1:rkd(this,0);return;}xid(this,a)};_.Ib=function ykd(){var a;if((this.Db&64)!=0)return zid(this);a=new Ifb(zid(this));a.a+=' (x: ';Afb(a,this.a);a.a+=', y: ';Afb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var H2=ldb(nte,'ElkBendPointImpl',567);acb(723,1984,{105:1,414:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.$g=function Ikd(a,b,c){return zkd(this,a,b,c)};_.gh=function Jkd(a,b,c){return Akd(this,a,b,c)};_.ih=function Kkd(a,b,c){return Bkd(this,a,b,c)};_.kh=function Lkd(a){return Ckd(this,a)};_.rh=function Mkd(a,b){Dkd(this,a,b)};_.yh=function Nkd(){return Ohd(),Hhd};_.Ah=function Okd(a){Ekd(this,a)};_.yg=function Pkd(){return this.k};_.zg=function Qkd(){return Fkd(this)};_.Ib=function Rkd(){return Hkd(this)};_.k=null;var L2=ldb(nte,'ElkGraphElementImpl',723);acb(724,723,{105:1,414:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.$g=function bld(a,b,c){return Skd(this,a,b,c)};_.kh=function cld(a){return Tkd(this,a)};_.rh=function dld(a,b){Ukd(this,a,b)};_.yh=function eld(){return Ohd(),Mhd};_.Ah=function fld(a){Vkd(this,a)};_.Ag=function gld(){return this.f};_.Bg=function hld(){return this.g};_.Cg=function ild(){return this.i};_.Dg=function jld(){return this.j};_.Eg=function kld(a,b){Wkd(this,a,b)};_.Fg=function lld(a,b){Ykd(this,a,b)};_.Gg=function mld(a){$kd(this,a)};_.Hg=function nld(a){_kd(this,a)};_.Ib=function old(){return ald(this)};_.f=0;_.g=0;_.i=0;_.j=0;var S2=ldb(nte,'ElkShapeImpl',724);acb(725,724,{105:1,414:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.$g=function wld(a,b,c){return pld(this,a,b,c)};_.gh=function xld(a,b,c){return qld(this,a,b,c)};_.ih=function yld(a,b,c){return rld(this,a,b,c)};_.kh=function zld(a){return sld(this,a)};_.rh=function Ald(a,b){tld(this,a,b)};_.yh=function Bld(){return Ohd(),Ehd};_.Ah=function Cld(a){uld(this,a)};_.wg=function Dld(){return !this.d&&(this.d=new t5d(A2,this,8,5)),this.d};_.xg=function Eld(){return !this.e&&(this.e=new t5d(A2,this,7,4)),this.e};var I2=ldb(nte,'ElkConnectableShapeImpl',725);acb(351,723,{105:1,414:1,79:1,160:1,351:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Old);_.Pg=function Pld(a){return Gld(this,a)};_.$g=function Qld(a,b,c){switch(a){case 3:return Hld(this);case 4:return !this.b&&(this.b=new t5d(y2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new t5d(y2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new ZTd(z2,this,6,6)),this.a;case 7:return Acb(),!this.b&&(this.b=new t5d(y2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new t5d(y2,this,5,8)),this.c.i<=1)?false:true;case 8:return Acb(),Kld(this)?true:false;case 9:return Acb(),Lld(this)?true:false;case 10:return Acb(),!this.b&&(this.b=new t5d(y2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new t5d(y2,this,5,8)),this.c.i!=0)?true:false;}return zkd(this,a,b,c)};_.gh=function Rld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Gld(this,c):this.Cb.hh(this,-1-d,null,c)));return Fld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new t5d(y2,this,4,7)),Nxd(this.b,a,c);case 5:return !this.c&&(this.c=new t5d(y2,this,5,8)),Nxd(this.c,a,c);case 6:return !this.a&&(this.a=new ZTd(z2,this,6,6)),Nxd(this.a,a,c);}return Akd(this,a,b,c)};_.ih=function Sld(a,b,c){switch(b){case 3:return Fld(this,null,c);case 4:return !this.b&&(this.b=new t5d(y2,this,4,7)),Oxd(this.b,a,c);case 5:return !this.c&&(this.c=new t5d(y2,this,5,8)),Oxd(this.c,a,c);case 6:return !this.a&&(this.a=new ZTd(z2,this,6,6)),Oxd(this.a,a,c);}return Bkd(this,a,b,c)};_.kh=function Tld(a){switch(a){case 3:return !!Hld(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 t5d(y2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new t5d(y2,this,5,8)),this.c.i<=1));case 8:return Kld(this);case 9:return Lld(this);case 10:return !this.b&&(this.b=new t5d(y2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new t5d(y2,this,5,8)),this.c.i!=0);}return Ckd(this,a)};_.rh=function Uld(a,b){switch(a){case 3:Mld(this,BD(b,33));return;case 4:!this.b&&(this.b=new t5d(y2,this,4,7));Pxd(this.b);!this.b&&(this.b=new t5d(y2,this,4,7));ttd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new t5d(y2,this,5,8));Pxd(this.c);!this.c&&(this.c=new t5d(y2,this,5,8));ttd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new ZTd(z2,this,6,6));Pxd(this.a);!this.a&&(this.a=new ZTd(z2,this,6,6));ttd(this.a,BD(b,14));return;}Dkd(this,a,b)};_.yh=function Vld(){return Ohd(),Fhd};_.Ah=function Wld(a){switch(a){case 3:Mld(this,null);return;case 4:!this.b&&(this.b=new t5d(y2,this,4,7));Pxd(this.b);return;case 5:!this.c&&(this.c=new t5d(y2,this,5,8));Pxd(this.c);return;case 6:!this.a&&(this.a=new ZTd(z2,this,6,6));Pxd(this.a);return;}Ekd(this,a)};_.Ib=function Xld(){return Nld(this)};var J2=ldb(nte,'ElkEdgeImpl',351);acb(440,1984,{105:1,414:1,202:1,440:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},mmd);_.Pg=function nmd(a){return Zld(this,a)};_.$g=function omd(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 sMd(x2,this,5)),this.a;case 6:return amd(this);case 7:if(b)return _ld(this);return this.i;case 8:if(b)return $ld(this);return this.f;case 9:return !this.g&&(this.g=new t5d(z2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new t5d(z2,this,10,9)),this.e;case 11:return this.d;}return Yjd(this,a,b,c)};_.gh=function pmd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Zld(this,c):this.Cb.hh(this,-1-e,null,c)));return Yld(this,BD(a,79),c);case 9:return !this.g&&(this.g=new t5d(z2,this,9,10)),Nxd(this.g,a,c);case 10:return !this.e&&(this.e=new t5d(z2,this,10,9)),Nxd(this.e,a,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(Ohd(),Ghd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((Ohd(),Ghd)),a,c)};_.ih=function qmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new sMd(x2,this,5)),Oxd(this.a,a,c);case 6:return Yld(this,null,c);case 9:return !this.g&&(this.g=new t5d(z2,this,9,10)),Oxd(this.g,a,c);case 10:return !this.e&&(this.e=new t5d(z2,this,10,9)),Oxd(this.e,a,c);}return Zjd(this,a,b,c)};_.kh=function rmd(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 !!amd(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 $jd(this,a)};_.rh=function smd(a,b){switch(a){case 1:jmd(this,Ddb(ED(b)));return;case 2:kmd(this,Ddb(ED(b)));return;case 3:cmd(this,Ddb(ED(b)));return;case 4:dmd(this,Ddb(ED(b)));return;case 5:!this.a&&(this.a=new sMd(x2,this,5));Pxd(this.a);!this.a&&(this.a=new sMd(x2,this,5));ttd(this.a,BD(b,14));return;case 6:hmd(this,BD(b,79));return;case 7:gmd(this,BD(b,82));return;case 8:fmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new t5d(z2,this,9,10));Pxd(this.g);!this.g&&(this.g=new t5d(z2,this,9,10));ttd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new t5d(z2,this,10,9));Pxd(this.e);!this.e&&(this.e=new t5d(z2,this,10,9));ttd(this.e,BD(b,14));return;case 11:emd(this,GD(b));return;}_jd(this,a,b)};_.yh=function tmd(){return Ohd(),Ghd};_.Ah=function umd(a){switch(a){case 1:jmd(this,0);return;case 2:kmd(this,0);return;case 3:cmd(this,0);return;case 4:dmd(this,0);return;case 5:!this.a&&(this.a=new sMd(x2,this,5));Pxd(this.a);return;case 6:hmd(this,null);return;case 7:gmd(this,null);return;case 8:fmd(this,null);return;case 9:!this.g&&(this.g=new t5d(z2,this,9,10));Pxd(this.g);return;case 10:!this.e&&(this.e=new t5d(z2,this,10,9));Pxd(this.e);return;case 11:emd(this,null);return;}akd(this,a)};_.Ib=function vmd(){return lmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var K2=ldb(nte,'ElkEdgeSectionImpl',440);acb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.$g=function zmd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab}return Yhd(this,a-XKd(this.yh()),SKd((d=BD(vjd(this,16),26),!d?this.yh():d),a),b,c)};_.gh=function Amd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c)}return e=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),e.Mj().Pj(this,tjd(this),b-XKd(this.yh()),a,c)};_.ih=function Bmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c)}return e=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),e.Mj().Qj(this,tjd(this),b-XKd(this.yh()),a,c)};_.kh=function Cmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return Zhd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.nh=function Dmd(a){return wmd(this,a)};_.rh=function Emd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;}$hd(this,a-XKd(this.yh()),SKd((c=BD(vjd(this,16),26),!c?this.yh():c),a),b)};_.th=function Fmd(a){xjd(this,128,a)};_.yh=function Gmd(){return eGd(),UFd};_.Ah=function Hmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;}_hd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.Fh=function Imd(){this.Bb|=1};_.Gh=function Jmd(a){return ymd(this,a)};_.Bb=0;var e6=ldb(mte,'EModelElementImpl',150);acb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},Vmd);_.Hh=function Wmd(a,b){return Qmd(this,a,b)};_.Ih=function Xmd(a){var b,c,d,e,f;if(this.a!=YJd(a)||(a.Bb&256)!=0){throw ubb(new Vdb(tte+a.zb+qte))}for(d=WKd(a);QKd(d.a).i!=0;){c=BD(iOd(d,0,(b=BD(lud(QKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(eGd(),WFd))),26);if($Jd(c)){e=YJd(c).Mh().Ih(c);BD(e,49).sh(a);return e}d=WKd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new gHd(a):new WGd(a)};_.Jh=function Ymd(a,b){return Rmd(this,a,b)};_.$g=function Zmd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.a;}return Yhd(this,a-XKd((eGd(),RFd)),SKd((d=BD(vjd(this,16),26),!d?RFd:d),a),b,c)};_.gh=function $md(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).hh(this,4,n5,c));return Omd(this,BD(a,235),c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),RFd):d),b),66),e.Mj().Pj(this,tjd(this),b-XKd((eGd(),RFd)),a,c)};_.ih=function _md(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 1:return Omd(this,null,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),RFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),RFd)),a,c)};_.kh=function and(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return Zhd(this,a-XKd((eGd(),RFd)),SKd((b=BD(vjd(this,16),26),!b?RFd:b),a))};_.rh=function bnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:Tmd(this,BD(b,235));return;}$hd(this,a-XKd((eGd(),RFd)),SKd((c=BD(vjd(this,16),26),!c?RFd:c),a),b)};_.yh=function cnd(){return eGd(),RFd};_.Ah=function dnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:Tmd(this,null);return;}_hd(this,a-XKd((eGd(),RFd)),SKd((b=BD(vjd(this,16),26),!b?RFd:b),a))};var Kmd,Lmd,Mmd;var c6=ldb(mte,'EFactoryImpl',704);acb(1023,704,{105:1,2013:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},fnd);_.Hh=function gnd(a,b){switch(a.xj()){case 12:return BD(b,146).sg();case 13:return ecb(b);default:throw ubb(new Vdb(pte+a.ne()+qte));}};_.Ih=function hnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=YJd(a),b?CLd(b.Lh(),a):-1)),a.G){case 4:return f=new Eod,f;case 6:return g=new Xod,g;case 7:return h=new kpd,h;case 8:return d=new Old,d;case 9:return c=new skd,c;case 10:return e=new mmd,e;case 11:return i=new wpd,i;default:throw ubb(new Vdb(tte+a.zb+qte));}};_.Jh=function ind(a,b){switch(a.xj()){case 13:case 12:return null;default:throw ubb(new Vdb(pte+a.ne()+qte));}};var M2=ldb(nte,'ElkGraphFactoryImpl',1023);acb(439,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Vg=function mnd(){var a,b;b=(a=BD(vjd(this,16),26),kNd(OKd(!a?this.yh():a)));return b==null?(iRd(),iRd(),hRd):new BRd(this,b)};_.$g=function nnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.ne();}return Yhd(this,a-XKd(this.yh()),SKd((d=BD(vjd(this,16),26),!d?this.yh():d),a),b,c)};_.kh=function ond(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return Zhd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.rh=function pnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:this.Kh(GD(b));return;}$hd(this,a-XKd(this.yh()),SKd((c=BD(vjd(this,16),26),!c?this.yh():c),a),b)};_.yh=function qnd(){return eGd(),VFd};_.Ah=function rnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:this.Kh(null);return;}_hd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.ne=function snd(){return this.zb};_.Kh=function tnd(a){knd(this,a)};_.Ib=function und(){return lnd(this)};_.zb=null;var i6=ldb(mte,'ENamedElementImpl',439);acb(179,439,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},_nd);_.Pg=function bod(a){return Nnd(this,a)};_.$g=function cod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,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 eUd(this,c5,this)),this.rb;case 6:return !this.vb&&(this.vb=new bUd(n5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Dnd(this);}return Yhd(this,a-XKd((eGd(),ZFd)),SKd((d=BD(vjd(this,16),26),!d?ZFd:d),a),b,c)};_.gh=function dod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).hh(this,1,h5,c));return End(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new eUd(this,c5,this)),Nxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new bUd(n5,this,6,7)),Nxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Nnd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,7,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),ZFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),ZFd)),a,c)};_.ih=function eod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 4:return End(this,null,c);case 5:return !this.rb&&(this.rb=new eUd(this,c5,this)),Oxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new bUd(n5,this,6,7)),Oxd(this.vb,a,c);case 7:return Whd(this,null,7,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),ZFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),ZFd)),a,c)};_.kh=function fod(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 !!Dnd(this);}return Zhd(this,a-XKd((eGd(),ZFd)),SKd((b=BD(vjd(this,16),26),!b?ZFd:b),a))};_.nh=function god(a){var b;b=Pnd(this,a);return b?b:wmd(this,a)};_.rh=function hod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:knd(this,GD(b));return;case 2:$nd(this,GD(b));return;case 3:Znd(this,GD(b));return;case 4:Ynd(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new eUd(this,c5,this));Pxd(this.rb);!this.rb&&(this.rb=new eUd(this,c5,this));ttd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new bUd(n5,this,6,7));Pxd(this.vb);!this.vb&&(this.vb=new bUd(n5,this,6,7));ttd(this.vb,BD(b,14));return;}$hd(this,a-XKd((eGd(),ZFd)),SKd((c=BD(vjd(this,16),26),!c?ZFd:c),a),b)};_.uh=function iod(a){var b,c;if(!!a&&!!this.rb){for(c=new Ayd(this.rb);c.e!=c.i.gc();){b=yyd(c);JD(b,350)&&(BD(b,350).w=null)}}xjd(this,64,a)};_.yh=function jod(){return eGd(),ZFd};_.Ah=function kod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:knd(this,null);return;case 2:$nd(this,null);return;case 3:Znd(this,null);return;case 4:Ynd(this,null);return;case 5:!this.rb&&(this.rb=new eUd(this,c5,this));Pxd(this.rb);return;case 6:!this.vb&&(this.vb=new bUd(n5,this,6,7));Pxd(this.vb);return;}_hd(this,a-XKd((eGd(),ZFd)),SKd((b=BD(vjd(this,16),26),!b?ZFd:b),a))};_.Fh=function lod(){Ond(this)};_.Lh=function mod(){return !this.rb&&(this.rb=new eUd(this,c5,this)),this.rb};_.Mh=function nod(){return this.sb};_.Nh=function ood(){return this.ub};_.Oh=function pod(){return this.xb};_.Ph=function qod(){return this.yb};_.Qh=function rod(a){this.ub=a};_.Ib=function sod(){var a;if((this.Db&64)!=0)return lnd(this);a=new Ifb(lnd(this));a.a+=' (nsURI: ';Dfb(a,this.yb);a.a+=', nsPrefix: ';Dfb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var vnd;var s6=ldb(mte,'EPackageImpl',179);acb(555,179,{105:1,2015:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},wod);_.q=false;_.r=false;var tod=false;var N2=ldb(nte,'ElkGraphPackageImpl',555);acb(353,724,{105:1,414:1,160:1,137:1,470:1,353:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Eod);_.Pg=function Fod(a){return zod(this,a)};_.$g=function God(a,b,c){switch(a){case 7:return Aod(this);case 8:return this.a;}return Skd(this,a,b,c)};_.gh=function Hod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?zod(this,c):this.Cb.hh(this,-1-d,null,c)));return yod(this,BD(a,160),c);}return Akd(this,a,b,c)};_.ih=function Iod(a,b,c){if(b==7){return yod(this,null,c)}return Bkd(this,a,b,c)};_.kh=function Jod(a){switch(a){case 7:return !!Aod(this);case 8:return !cfb('',this.a);}return Tkd(this,a)};_.rh=function Kod(a,b){switch(a){case 7:Bod(this,BD(b,160));return;case 8:Cod(this,GD(b));return;}Ukd(this,a,b)};_.yh=function Lod(){return Ohd(),Ihd};_.Ah=function Mod(a){switch(a){case 7:Bod(this,null);return;case 8:Cod(this,'');return;}Vkd(this,a)};_.Ib=function Nod(){return Dod(this)};_.a='';var O2=ldb(nte,'ElkLabelImpl',353);acb(239,725,{105:1,414:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Xod);_.Pg=function Yod(a){return Pod(this,a)};_.$g=function Zod(a,b,c){switch(a){case 9:return !this.c&&(this.c=new ZTd(E2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new ZTd(D2,this,10,11)),this.a;case 11:return Sod(this);case 12:return !this.b&&(this.b=new ZTd(A2,this,12,3)),this.b;case 13:return Acb(),!this.a&&(this.a=new ZTd(D2,this,10,11)),this.a.i>0?true:false;}return pld(this,a,b,c)};_.gh=function $od(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new ZTd(E2,this,9,9)),Nxd(this.c,a,c);case 10:return !this.a&&(this.a=new ZTd(D2,this,10,11)),Nxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Pod(this,c):this.Cb.hh(this,-1-d,null,c)));return Ood(this,BD(a,33),c);case 12:return !this.b&&(this.b=new ZTd(A2,this,12,3)),Nxd(this.b,a,c);}return qld(this,a,b,c)};_.ih=function _od(a,b,c){switch(b){case 9:return !this.c&&(this.c=new ZTd(E2,this,9,9)),Oxd(this.c,a,c);case 10:return !this.a&&(this.a=new ZTd(D2,this,10,11)),Oxd(this.a,a,c);case 11:return Ood(this,null,c);case 12:return !this.b&&(this.b=new ZTd(A2,this,12,3)),Oxd(this.b,a,c);}return rld(this,a,b,c)};_.kh=function apd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Sod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new ZTd(D2,this,10,11)),this.a.i>0;}return sld(this,a)};_.rh=function bpd(a,b){switch(a){case 9:!this.c&&(this.c=new ZTd(E2,this,9,9));Pxd(this.c);!this.c&&(this.c=new ZTd(E2,this,9,9));ttd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new ZTd(D2,this,10,11));Pxd(this.a);!this.a&&(this.a=new ZTd(D2,this,10,11));ttd(this.a,BD(b,14));return;case 11:Vod(this,BD(b,33));return;case 12:!this.b&&(this.b=new ZTd(A2,this,12,3));Pxd(this.b);!this.b&&(this.b=new ZTd(A2,this,12,3));ttd(this.b,BD(b,14));return;}tld(this,a,b)};_.yh=function cpd(){return Ohd(),Jhd};_.Ah=function dpd(a){switch(a){case 9:!this.c&&(this.c=new ZTd(E2,this,9,9));Pxd(this.c);return;case 10:!this.a&&(this.a=new ZTd(D2,this,10,11));Pxd(this.a);return;case 11:Vod(this,null);return;case 12:!this.b&&(this.b=new ZTd(A2,this,12,3));Pxd(this.b);return;}uld(this,a)};_.Ib=function epd(){return Wod(this)};var P2=ldb(nte,'ElkNodeImpl',239);acb(186,725,{105:1,414:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},kpd);_.Pg=function lpd(a){return gpd(this,a)};_.$g=function mpd(a,b,c){if(a==9){return hpd(this)}return pld(this,a,b,c)};_.gh=function npd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?gpd(this,c):this.Cb.hh(this,-1-d,null,c)));return fpd(this,BD(a,33),c);}return qld(this,a,b,c)};_.ih=function opd(a,b,c){if(b==9){return fpd(this,null,c)}return rld(this,a,b,c)};_.kh=function ppd(a){if(a==9){return !!hpd(this)}return sld(this,a)};_.rh=function qpd(a,b){switch(a){case 9:ipd(this,BD(b,33));return;}tld(this,a,b)};_.yh=function rpd(){return Ohd(),Khd};_.Ah=function spd(a){switch(a){case 9:ipd(this,null);return;}uld(this,a)};_.Ib=function tpd(){return jpd(this)};var Q2=ldb(nte,'ElkPortImpl',186);var I4=ndb(Ote,'BasicEMap/Entry');acb(1091,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},wpd);_.Fb=function Cpd(a){return this===a};_.cd=function Epd(){return this.b};_.Hb=function Gpd(){return ECb(this)};_.Th=function Ipd(a){upd(this,BD(a,146))};_.$g=function xpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return aid(this,a,b,c)};_.kh=function ypd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return hid(this,a)};_.rh=function zpd(a,b){switch(a){case 0:upd(this,BD(b,146));return;case 1:vpd(this,b);return;}tid(this,a,b)};_.yh=function Apd(){return Ohd(),Lhd};_.Ah=function Bpd(a){switch(a){case 0:upd(this,null);return;case 1:vpd(this,null);return;}xid(this,a)};_.Rh=function Dpd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Fpd(){return this.c};_.Sh=function Hpd(a){this.a=a};_.ed=function Jpd(a){var b;b=this.c;vpd(this,a);return b};_.Ib=function Kpd(){var a;if((this.Db&64)!=0)return zid(this);a=new Tfb;Pfb(Pfb(Pfb(a,this.b?this.b.sg():She),bne),wfb(this.c));return a.a};_.a=-1;_.c=null;var R2=ldb(nte,'ElkPropertyToValueMapEntryImpl',1091);acb(983,1,{},Ypd);var T2=ldb(Rte,'JsonAdapter',983);acb(210,60,Oie,Zpd);var U2=ldb(Rte,'JsonImportException',210);acb(856,1,{},drd);var I3=ldb(Rte,'JsonImporter',856);acb(890,1,{},erd);var V2=ldb(Rte,'JsonImporter/lambda$0$Type',890);acb(891,1,{},frd);var W2=ldb(Rte,'JsonImporter/lambda$1$Type',891);acb(899,1,{},grd);var X2=ldb(Rte,'JsonImporter/lambda$10$Type',899);acb(901,1,{},hrd);var Y2=ldb(Rte,'JsonImporter/lambda$11$Type',901);acb(902,1,{},ird);var Z2=ldb(Rte,'JsonImporter/lambda$12$Type',902);acb(908,1,{},jrd);var $2=ldb(Rte,'JsonImporter/lambda$13$Type',908);acb(907,1,{},krd);var _2=ldb(Rte,'JsonImporter/lambda$14$Type',907);acb(903,1,{},lrd);var a3=ldb(Rte,'JsonImporter/lambda$15$Type',903);acb(904,1,{},mrd);var b3=ldb(Rte,'JsonImporter/lambda$16$Type',904);acb(905,1,{},nrd);var c3=ldb(Rte,'JsonImporter/lambda$17$Type',905);acb(906,1,{},ord);var d3=ldb(Rte,'JsonImporter/lambda$18$Type',906);acb(911,1,{},prd);var e3=ldb(Rte,'JsonImporter/lambda$19$Type',911);acb(892,1,{},qrd);var f3=ldb(Rte,'JsonImporter/lambda$2$Type',892);acb(909,1,{},rrd);var g3=ldb(Rte,'JsonImporter/lambda$20$Type',909);acb(910,1,{},srd);var h3=ldb(Rte,'JsonImporter/lambda$21$Type',910);acb(914,1,{},trd);var i3=ldb(Rte,'JsonImporter/lambda$22$Type',914);acb(912,1,{},urd);var j3=ldb(Rte,'JsonImporter/lambda$23$Type',912);acb(913,1,{},vrd);var k3=ldb(Rte,'JsonImporter/lambda$24$Type',913);acb(916,1,{},wrd);var l3=ldb(Rte,'JsonImporter/lambda$25$Type',916);acb(915,1,{},xrd);var m3=ldb(Rte,'JsonImporter/lambda$26$Type',915);acb(917,1,lie,yrd);_.td=function zrd(a){wqd(this.b,this.a,GD(a))};var n3=ldb(Rte,'JsonImporter/lambda$27$Type',917);acb(918,1,lie,Ard);_.td=function Brd(a){xqd(this.b,this.a,GD(a))};var o3=ldb(Rte,'JsonImporter/lambda$28$Type',918);acb(919,1,{},Crd);var p3=ldb(Rte,'JsonImporter/lambda$29$Type',919);acb(895,1,{},Drd);var q3=ldb(Rte,'JsonImporter/lambda$3$Type',895);acb(920,1,{},Erd);var r3=ldb(Rte,'JsonImporter/lambda$30$Type',920);acb(921,1,{},Frd);var s3=ldb(Rte,'JsonImporter/lambda$31$Type',921);acb(922,1,{},Grd);var t3=ldb(Rte,'JsonImporter/lambda$32$Type',922);acb(923,1,{},Hrd);var u3=ldb(Rte,'JsonImporter/lambda$33$Type',923);acb(924,1,{},Ird);var v3=ldb(Rte,'JsonImporter/lambda$34$Type',924);acb(858,1,{},Krd);var w3=ldb(Rte,'JsonImporter/lambda$35$Type',858);acb(928,1,{},Mrd);var x3=ldb(Rte,'JsonImporter/lambda$36$Type',928);acb(925,1,lie,Nrd);_.td=function Ord(a){Gqd(this.a,BD(a,469))};var y3=ldb(Rte,'JsonImporter/lambda$37$Type',925);acb(926,1,lie,Prd);_.td=function Qrd(a){Hqd(this.a,this.b,BD(a,202))};var z3=ldb(Rte,'JsonImporter/lambda$38$Type',926);acb(927,1,lie,Rrd);_.td=function Srd(a){Iqd(this.a,this.b,BD(a,202))};var A3=ldb(Rte,'JsonImporter/lambda$39$Type',927);acb(893,1,{},Trd);var B3=ldb(Rte,'JsonImporter/lambda$4$Type',893);acb(929,1,lie,Urd);_.td=function Vrd(a){Jqd(this.a,BD(a,8))};var C3=ldb(Rte,'JsonImporter/lambda$40$Type',929);acb(894,1,{},Wrd);var D3=ldb(Rte,'JsonImporter/lambda$5$Type',894);acb(898,1,{},Xrd);var E3=ldb(Rte,'JsonImporter/lambda$6$Type',898);acb(896,1,{},Yrd);var F3=ldb(Rte,'JsonImporter/lambda$7$Type',896);acb(897,1,{},Zrd);var G3=ldb(Rte,'JsonImporter/lambda$8$Type',897);acb(900,1,{},$rd);var H3=ldb(Rte,'JsonImporter/lambda$9$Type',900);acb(947,1,lie,hsd);_.td=function isd(a){Lpd(this.a,new yC(GD(a)))};var J3=ldb(Rte,'JsonMetaDataConverter/lambda$0$Type',947);acb(948,1,lie,jsd);_.td=function ksd(a){dsd(this.a,BD(a,237))};var K3=ldb(Rte,'JsonMetaDataConverter/lambda$1$Type',948);acb(949,1,lie,lsd);_.td=function msd(a){esd(this.a,BD(a,149))};var L3=ldb(Rte,'JsonMetaDataConverter/lambda$2$Type',949);acb(950,1,lie,nsd);_.td=function osd(a){fsd(this.a,BD(a,175))};var M3=ldb(Rte,'JsonMetaDataConverter/lambda$3$Type',950);acb(237,22,{3:1,35:1,22:1,237:1},ysd);var psd,qsd,rsd,ssd,tsd,usd,vsd,wsd;var N3=mdb(Cle,'GraphFeature',237,CI,Asd,zsd);var Bsd;acb(13,1,{35:1,146:1},Gsd,Hsd,Isd,Jsd);_.wd=function Ksd(a){return Dsd(this,BD(a,146))};_.Fb=function Lsd(a){return Esd(this,a)};_.vg=function Msd(){return Fsd(this)};_.sg=function Nsd(){return this.b};_.Hb=function Osd(){return KCb(this.b)};_.Ib=function Psd(){return this.b};var S3=ldb(Cle,'Property',13);acb(817,1,yke,Rsd);_.ue=function Ssd(a,b){return Qsd(this,BD(a,94),BD(b,94))};_.Fb=function Tsd(a){return this===a};_.ve=function Usd(){return new spb(this)};var R3=ldb(Cle,'PropertyHolderComparator',817);acb(695,1,Xhe,ltd);_.Nb=function mtd(a){Qrb(this,a)};_.Pb=function otd(){return ktd(this)};_.Qb=function ptd(){Rrb()};_.Ob=function ntd(){return !!this.a};var T3=ldb(eue,'ElkGraphUtil/AncestorIterator',695);var S4=ndb(Ote,'EList');acb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Etd(a,b){qtd(this,a,b)};_.Fc=function Ftd(a){return rtd(this,a)};_.Wc=function Gtd(a,b){return std(this,a,b)};_.Gc=function Htd(a){return ttd(this,a)};_.Yh=function Itd(){return new Vyd(this)};_.Zh=function Jtd(){return new Yyd(this)};_.$h=function Ktd(a){return utd(this,a)};_._h=function Ltd(){return true};_.ai=function Mtd(a,b){};_.bi=function Ntd(){};_.ci=function Otd(a,b){vtd(this,a,b)};_.di=function Ptd(a,b,c){};_.ei=function Qtd(a,b){};_.fi=function Rtd(a,b,c){};_.Fb=function Std(a){return wtd(this,a)};_.Hb=function Ttd(){return ztd(this)};_.gi=function Utd(){return false};_.Kc=function Vtd(){return new Ayd(this)};_.Yc=function Wtd(){return new Jyd(this)};_.Zc=function Xtd(a){var b;b=this.gc();if(a<0||a>b)throw ubb(new xyd(a,b));return new Kyd(this,a)};_.ii=function Ytd(a,b){this.hi(a,this.Xc(b))};_.Mc=function Ztd(a){return Atd(this,a)};_.ki=function $td(a,b){return b};_._c=function _td(a,b){return Btd(this,a,b)};_.Ib=function aud(){return Ctd(this)};_.mi=function bud(){return true};_.ni=function cud(a,b){return Dtd(this,b)};var o4=ldb(Ote,'AbstractEList',67);acb(63,67,jue,tud,uud,vud);_.Uh=function wud(a,b){return dud(this,a,b)};_.Vh=function xud(a){return eud(this,a)};_.Wh=function yud(a,b){fud(this,a,b)};_.Xh=function zud(a){gud(this,a)};_.oi=function Aud(a){return iud(this,a)};_.$b=function Bud(){jud(this)};_.Hc=function Cud(a){return kud(this,a)};_.Xb=function Dud(a){return lud(this,a)};_.pi=function Eud(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.$c(b);return true}else{return false}};_.li=function gwd(a,b){return this.Ti(a,this.ni(a,b))};_.gc=function hwd(){return this.Ui()};_.Pc=function iwd(){return this.Vi()};_.Qc=function jwd(a){return this.Wi(a)};_.Ib=function kwd(){return this.Xi()};var L4=ldb(Ote,'DelegatingEList',1994);acb(1995,1994,_ue);_.Uh=function swd(a,b){return lwd(this,a,b)};_.Vh=function twd(a){return this.Uh(this.Ui(),a)};_.Wh=function uwd(a,b){mwd(this,a,b)};_.Xh=function vwd(a){nwd(this,a)};_._h=function wwd(){return !this.aj()};_.$b=function xwd(){qwd(this)};_.Yi=function ywd(a,b,c,d,e){return new xxd(this,a,b,c,d,e)};_.Zi=function zwd(a){Phd(this.zi(),a)};_.$i=function Awd(){return null};_._i=function Bwd(){return -1};_.zi=function Cwd(){return null};_.aj=function Dwd(){return false};_.bj=function Ewd(a,b){return b};_.cj=function Fwd(a,b){return b};_.dj=function Gwd(){return false};_.ej=function Hwd(){return !this.Qi()};_.hi=function Iwd(a,b){var c,d;if(this.dj()){d=this.ej();c=yvd(this,a,b);this.Zi(this.Yi(7,leb(b),c,a,d));return c}else{return yvd(this,a,b)}};_.$c=function Jwd(a){var b,c,d,e;if(this.dj()){c=null;d=this.ej();b=this.Yi(4,e=zvd(this,a),null,a,d);if(this.aj()&&!!e){c=this.cj(e,c);if(!c){this.Zi(b)}else{c.Di(b);c.Ei()}}else{if(!c){this.Zi(b)}else{c.Di(b);c.Ei()}}return e}else{e=zvd(this,a);if(this.aj()&&!!e){c=this.cj(e,null);!!c&&c.Ei()}return e}};_.li=function Kwd(a,b){return rwd(this,a,b)};var c4=ldb(dte,'DelegatingNotifyingListImpl',1995);acb(143,1,ave);_.Di=function kxd(a){return Lwd(this,a)};_.Ei=function lxd(){Mwd(this)};_.wi=function mxd(){return this.d};_.$i=function nxd(){return null};_.fj=function oxd(){return null};_.xi=function pxd(a){return -1};_.yi=function qxd(){return Vwd(this)};_.zi=function rxd(){return null};_.Ai=function sxd(){return cxd(this)};_.Bi=function txd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.gj=function uxd(){return false};_.Ci=function vxd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.wi();switch(e){case 1:case 2:{f=a.zi();if(PD(f)===PD(this.zi())&&this.xi(null)==a.xi(null)){this.g=a.yi();a.wi()==1&&(this.d=1);return true}}}}case 4:{e=a.wi();switch(e){case 4:{f=a.zi();if(PD(f)===PD(this.zi())&&this.xi(null)==a.xi(null)){j=exd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Bi();this.d=6;l=new uud(2);if(i<=g){rtd(l,this.n);rtd(l,a.Ai());this.g=OC(GC(WD,1),jje,25,15,[this.o=i,g+1])}else{rtd(l,a.Ai());rtd(l,this.n);this.g=OC(GC(WD,1),jje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.wi();switch(e){case 4:{f=a.zi();if(PD(f)===PD(this.zi())&&this.xi(null)==a.xi(null)){j=exd(this);g=a.Bi();k=BD(this.g,48);d=KC(WD,jje,25,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:{Bfb(d,this.d);break}}dxd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Bfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Cfb(d,this.zi());d.a+=', feature: ';Cfb(d,this.$i());d.a+=', oldValue: ';Cfb(d,cxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Uqb(this);this.a=this.j}return Qqb(this.b,a)}else{return kud(this,a)}};_.mi=function wyd(){return true};_.a=0;var i4=ldb(Ote,'AbstractEList/1',952);acb(295,73,Hje,xyd);var j4=ldb(Ote,'AbstractEList/BasicIndexOutOfBoundsException',295);acb(40,1,Xhe,Ayd);_.Nb=function Dyd(a){Qrb(this,a)};_.lj=function Byd(){if(this.i.j!=this.f){throw ubb(new zpb)}};_.mj=function Cyd(){return yyd(this)};_.Ob=function Eyd(){return this.e!=this.i.gc()};_.Pb=function Fyd(){return this.mj()};_.Qb=function Gyd(){zyd(this)};_.e=0;_.f=0;_.g=-1;var k4=ldb(Ote,'AbstractEList/EIterator',40);acb(277,40,eie,Jyd,Kyd);_.Qb=function Syd(){zyd(this)};_.Rb=function Lyd(a){Hyd(this,a)};_.nj=function Myd(){var b;try{b=this.d.Xb(--this.e);this.lj();this.g=this.e;return b}catch(a){a=tbb(a);if(JD(a,73)){this.lj();throw ubb(new ttb)}else throw ubb(a)}};_.oj=function Nyd(a){Iyd(this,a)};_.Sb=function Oyd(){return this.e!=0};_.Tb=function Pyd(){return this.e};_.Ub=function Qyd(){return this.nj()};_.Vb=function Ryd(){return this.e-1};_.Wb=function Tyd(a){this.oj(a)};var l4=ldb(Ote,'AbstractEList/EListIterator',277);acb(340,40,Xhe,Vyd);_.mj=function Wyd(){return Uyd(this)};_.Qb=function Xyd(){throw ubb(new agb)};var m4=ldb(Ote,'AbstractEList/NonResolvingEIterator',340);acb(385,277,eie,Yyd,Zyd);_.Rb=function $yd(a){throw ubb(new agb)};_.mj=function _yd(){var b;try{b=this.c.ji(this.e);this.lj();this.g=this.e++;return b}catch(a){a=tbb(a);if(JD(a,73)){this.lj();throw ubb(new ttb)}else throw ubb(a)}};_.nj=function azd(){var b;try{b=this.c.ji(--this.e);this.lj();this.g=this.e;return b}catch(a){a=tbb(a);if(JD(a,73)){this.lj();throw ubb(new ttb)}else throw ubb(a)}};_.Qb=function bzd(){throw ubb(new agb)};_.Wb=function czd(a){throw ubb(new agb)};var n4=ldb(Ote,'AbstractEList/NonResolvingEListIterator',385);acb(1981,67,dve);_.Uh=function kzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(vjd(this.a,4),125);k=j==null?0:j.length;m=k+e;d=izd(this,m);l=k-a;l>0&&Zfb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw ubb(new xyd(a,c));return new Tzd(this,a)};_.$b=function rzd(){var a,b;++this.j;a=BD(vjd(this.a,4),125);b=a==null?0:a.length;Y_d(this,null);vtd(this,b,a)};_.Hc=function szd(a){var b,c,d,e,f;b=BD(vjd(this.a,4),125);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw ubb(new xyd(a,c));return b[a]};_.Xc=function uzd(a){var b,c,d;b=BD(vjd(this.a,4),125);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw ubb(new xyd(a,c));return new Lzd(this,a)};_.hi=function zzd(a,b){var c,d,e;c=hzd(this);e=c==null?0:c.length;if(a>=e)throw ubb(new pcb(gue+a+hue+e));if(b>=e)throw ubb(new pcb(iue+b+hue+e));d=c[b];if(a!=b){a0&&Zfb(a,0,b,0,c);return b};_.Qc=function Fzd(a){var b,c,d;b=BD(vjd(this.a,4),125);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var ezd;var u4=ldb(Ote,'ArrayDelegatingEList',1981);acb(1037,40,Xhe,Gzd);_.lj=function Hzd(){if(this.b.j!=this.f||PD(BD(vjd(this.b.a,4),125))!==PD(this.a)){throw ubb(new zpb)}};_.Qb=function Izd(){zyd(this);this.a=BD(vjd(this.b.a,4),125)};var q4=ldb(Ote,'ArrayDelegatingEList/EIterator',1037);acb(706,277,eie,Kzd,Lzd);_.lj=function Mzd(){if(this.b.j!=this.f||PD(BD(vjd(this.b.a,4),125))!==PD(this.a)){throw ubb(new zpb)}};_.oj=function Nzd(a){Iyd(this,a);this.a=BD(vjd(this.b.a,4),125)};_.Qb=function Ozd(){zyd(this);this.a=BD(vjd(this.b.a,4),125)};var r4=ldb(Ote,'ArrayDelegatingEList/EListIterator',706);acb(1038,340,Xhe,Pzd);_.lj=function Qzd(){if(this.b.j!=this.f||PD(BD(vjd(this.b.a,4),125))!==PD(this.a)){throw ubb(new zpb)}};var s4=ldb(Ote,'ArrayDelegatingEList/NonResolvingEIterator',1038);acb(707,385,eie,Szd,Tzd);_.lj=function Uzd(){if(this.b.j!=this.f||PD(BD(vjd(this.b.a,4),125))!==PD(this.a)){throw ubb(new zpb)}};var t4=ldb(Ote,'ArrayDelegatingEList/NonResolvingEListIterator',707);acb(606,295,Hje,Vzd);var v4=ldb(Ote,'BasicEList/BasicIndexOutOfBoundsException',606);acb(696,63,jue,Wzd);_.Vc=function Xzd(a,b){throw ubb(new agb)};_.Fc=function Yzd(a){throw ubb(new agb)};_.Wc=function Zzd(a,b){throw ubb(new agb)};_.Gc=function $zd(a){throw ubb(new agb)};_.$b=function _zd(){throw ubb(new agb)};_.pi=function aAd(a){throw ubb(new agb)};_.Kc=function bAd(){return this.Yh()};_.Yc=function cAd(){return this.Zh()};_.Zc=function dAd(a){return this.$h(a)};_.hi=function eAd(a,b){throw ubb(new agb)};_.ii=function fAd(a,b){throw ubb(new agb)};_.$c=function gAd(a){throw ubb(new agb)};_.Mc=function hAd(a){throw ubb(new agb)};_._c=function iAd(a,b){throw ubb(new agb)};var w4=ldb(Ote,'BasicEList/UnmodifiableEList',696);acb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function JAd(a,b){jAd(this,a,BD(b,42))};_.Fc=function KAd(a){return kAd(this,BD(a,42))};_.Jc=function SAd(a){qeb(this,a)};_.Xb=function TAd(a){return BD(lud(this.c,a),133)};_.hi=function aBd(a,b){return BD(this.c.hi(a,b),42)};_.ii=function bBd(a,b){BAd(this,a,BD(b,42))};_.Lc=function eBd(){return new XAb(null,new Jub(this,16))};_.$c=function fBd(a){return BD(this.c.$c(a),42)};_._c=function hBd(a,b){return HAd(this,a,BD(b,42))};_.ad=function jBd(a){jtb(this,a)};_.Nc=function kBd(){return new Jub(this,16)};_.Oc=function lBd(){return new XAb(null,new Jub(this,16))};_.Wc=function LAd(a,b){return this.c.Wc(a,b)};_.Gc=function MAd(a){return this.c.Gc(a)};_.$b=function NAd(){this.c.$b()};_.Hc=function OAd(a){return this.c.Hc(a)};_.Ic=function PAd(a){return Be(this.c,a)};_.pj=function QAd(){var a,b,c;if(this.d==null){this.d=KC(x4,eve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.mj(),133);pAd(this,a)}this.e=c}};_.Fb=function RAd(a){return uAd(this,a)};_.Hb=function UAd(){return ztd(this.c)};_.Xc=function VAd(a){return this.c.Xc(a)};_.qj=function WAd(){this.c=new tBd(this)};_.dc=function XAd(){return this.f==0};_.Kc=function YAd(){return this.c.Kc()};_.Yc=function ZAd(){return this.c.Yc()};_.Zc=function $Ad(a){return this.c.Zc(a)};_.rj=function _Ad(){return AAd(this)};_.sj=function cBd(a,b,c){return new uCd(a,b,c)};_.tj=function dBd(){return new zBd};_.Mc=function gBd(a){return EAd(this,a)};_.gc=function iBd(){return this.f};_.bd=function mBd(a,b){return new Iib(this.c,a,b)};_.Pc=function nBd(){return this.c.Pc()};_.Qc=function oBd(a){return this.c.Qc(a)};_.Ib=function pBd(){return Ctd(this.c)};_.e=0;_.f=0;var K4=ldb(Ote,'BasicEMap',705);acb(1032,63,jue,tBd);_.ai=function uBd(a,b){qBd(this,BD(b,133))};_.di=function wBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.ei=function xBd(a,b){rBd(this,BD(b,133))};_.fi=function yBd(a,b,c){sBd(this,BD(b,133),BD(c,133))};_.ci=function vBd(a,b){oAd(this.a)};var y4=ldb(Ote,'BasicEMap/1',1032);acb(1033,63,jue,zBd);_.qi=function ABd(a){return KC(H4,fve,612,a,0,1)};var z4=ldb(Ote,'BasicEMap/2',1033);acb(1034,_he,aie,BBd);_.$b=function CBd(){this.a.c.$b()};_.Hc=function DBd(a){return lAd(this.a,a)};_.Kc=function EBd(){return this.a.f==0?(GCd(),FCd.a):new $Bd(this.a)};_.Mc=function FBd(a){var b;b=this.a.f;GAd(this.a,a);return this.a.f!=b};_.gc=function GBd(){return this.a.f};var A4=ldb(Ote,'BasicEMap/3',1034);acb(1035,28,$he,HBd);_.$b=function IBd(){this.a.c.$b()};_.Hc=function JBd(a){return mAd(this.a,a)};_.Kc=function KBd(){return this.a.f==0?(GCd(),FCd.a):new aCd(this.a)};_.gc=function LBd(){return this.a.f};var B4=ldb(Ote,'BasicEMap/4',1035);acb(1036,_he,aie,NBd);_.$b=function OBd(){this.a.c.$b()};_.Hc=function PBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.pj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=yAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,366);j=b.i;for(g=0;g'+this.c};_.a=0;var H4=ldb(Ote,'BasicEMap/EntryImpl',612);acb(536,1,{},ECd);var J4=ldb(Ote,'BasicEMap/View',536);var FCd;acb(768,1,{});_.Fb=function UCd(a){return At((lmb(),imb),a)};_.Hb=function VCd(){return pmb((lmb(),imb))};_.Ib=function WCd(){return Fe((lmb(),imb))};var P4=ldb(Ote,'ECollections/BasicEmptyUnmodifiableEList',768);acb(1311,1,eie,XCd);_.Nb=function ZCd(a){Qrb(this,a)};_.Rb=function YCd(a){throw ubb(new agb)};_.Ob=function $Cd(){return false};_.Sb=function _Cd(){return false};_.Pb=function aDd(){throw ubb(new ttb)};_.Tb=function bDd(){return 0};_.Ub=function cDd(){throw ubb(new ttb)};_.Vb=function dDd(){return -1};_.Qb=function eDd(){throw ubb(new agb)};_.Wb=function fDd(a){throw ubb(new agb)};var O4=ldb(Ote,'ECollections/BasicEmptyUnmodifiableEList/1',1311);acb(1309,768,{20:1,14:1,15:1,58:1},gDd);_.Vc=function hDd(a,b){JCd()};_.Fc=function iDd(a){return KCd()};_.Wc=function jDd(a,b){return LCd()};_.Gc=function kDd(a){return MCd()};_.$b=function lDd(){NCd()};_.Hc=function mDd(a){return false};_.Ic=function nDd(a){return false};_.Jc=function oDd(a){qeb(this,a)};_.Xb=function pDd(a){return vmb((lmb(),imb,a)),null};_.Xc=function qDd(a){return -1};_.dc=function rDd(){return true};_.Kc=function sDd(){return this.a};_.Yc=function tDd(){return this.a};_.Zc=function uDd(a){return this.a};_.hi=function vDd(a,b){return OCd()};_.ii=function wDd(a,b){PCd()};_.Lc=function xDd(){return new XAb(null,new Jub(this,16))};_.$c=function yDd(a){return QCd()};_.Mc=function zDd(a){return RCd()};_._c=function ADd(a,b){return SCd()};_.gc=function BDd(){return 0};_.ad=function CDd(a){jtb(this,a)};_.Nc=function DDd(){return new Jub(this,16)};_.Oc=function EDd(){return new XAb(null,new Jub(this,16))};_.bd=function FDd(a,b){return lmb(),new Iib(imb,a,b)};_.Pc=function GDd(){return De((lmb(),imb))};_.Qc=function HDd(a){return lmb(),Ee(imb,a)};var Q4=ldb(Ote,'ECollections/EmptyUnmodifiableEList',1309);acb(1310,768,{20:1,14:1,15:1,58:1,589:1},IDd);_.Vc=function JDd(a,b){JCd()};_.Fc=function KDd(a){return KCd()};_.Wc=function LDd(a,b){return LCd()};_.Gc=function MDd(a){return MCd()};_.$b=function NDd(){NCd()};_.Hc=function ODd(a){return false};_.Ic=function PDd(a){return false};_.Jc=function QDd(a){qeb(this,a)};_.Xb=function RDd(a){return vmb((lmb(),imb,a)),null};_.Xc=function SDd(a){return -1};_.dc=function TDd(){return true};_.Kc=function UDd(){return this.a};_.Yc=function VDd(){return this.a};_.Zc=function WDd(a){return this.a};_.hi=function YDd(a,b){return OCd()};_.ii=function ZDd(a,b){PCd()};_.Lc=function $Dd(){return new XAb(null,new Jub(this,16))};_.$c=function _Dd(a){return QCd()};_.Mc=function aEd(a){return RCd()};_._c=function bEd(a,b){return SCd()};_.gc=function cEd(){return 0};_.ad=function dEd(a){jtb(this,a)};_.Nc=function eEd(){return new Jub(this,16)};_.Oc=function fEd(){return new XAb(null,new Jub(this,16))};_.bd=function gEd(a,b){return lmb(),new Iib(imb,a,b)};_.Pc=function hEd(){return De((lmb(),imb))};_.Qc=function iEd(a){return lmb(),Ee(imb,a)};_.rj=function XDd(){return lmb(),lmb(),jmb};var R4=ldb(Ote,'ECollections/EmptyUnmodifiableEMap',1310);var T4=ndb(Ote,'Enumerator');var jEd;acb(280,1,{280:1},IEd);_.Fb=function MEd(a){var b;if(this===a)return true;if(!JD(a,280))return false;b=BD(a,280);return this.f==b.f&&OEd(this.i,b.i)&&NEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&NEd(this.d,b.d)&&NEd(this.g,b.g)&&NEd(this.e,b.e)&&FEd(this,b)};_.Hb=function REd(){return this.f};_.Ib=function ZEd(){return GEd(this)};_.f=0;var nEd=0,oEd=0,pEd=0,qEd=0,rEd=0,sEd=0,tEd=0,uEd=0,vEd=0,wEd,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd;var Y4=ldb(Ote,'URI',280);acb(1090,43,ake,hFd);_.zc=function iFd(a,b){return BD(Rhb(this,GD(a),BD(b,280)),280)};var X4=ldb(Ote,'URI/URICache',1090);acb(497,63,jue,jFd,kFd);_.gi=function lFd(){return true};var Z4=ldb(Ote,'UniqueEList',497);acb(581,60,Oie,mFd);var $4=ldb(Ote,'WrappedException',581);var _4=ndb(Rse,ive);var u5=ndb(Rse,jve);var s5=ndb(Rse,kve);var a5=ndb(Rse,lve);var c5=ndb(Rse,mve);var b5=ndb(Rse,'EClass');var e5=ndb(Rse,'EDataType');var nFd;acb(1182,43,ake,qFd);_.xc=function rFd(a){return ND(a)?Ohb(this,a):Wd(hrb(this.f,a))};var d5=ldb(Rse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1182);var g5=ndb(Rse,'EEnum');var f5=ndb(Rse,nve);var i5=ndb(Rse,ove);var m5=ndb(Rse,pve);var sFd;var o5=ndb(Rse,qve);var p5=ndb(Rse,rve);acb(1028,1,{},wFd);_.Ib=function xFd(){return 'NIL'};var q5=ldb(Rse,'EStructuralFeature/Internal/DynamicValueHolder/1',1028);var yFd;acb(1027,43,ake,BFd);_.xc=function CFd(a){return ND(a)?Ohb(this,a):Wd(hrb(this.f,a))};var r5=ldb(Rse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1027);var t5=ndb(Rse,sve);var v5=ndb(Rse,'EValidator/PatternMatcher');var DFd;var FFd;var HFd;var JFd,KFd,LFd,MFd,NFd,OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd;var D9=ndb(tve,'FeatureMap/Entry');acb(535,1,{72:1},fGd);_._j=function gGd(){return this.a};_.dd=function hGd(){return this.b};var w5=ldb(mte,'BasicEObjectImpl/1',535);acb(1026,1,uve,iGd);_.Vj=function jGd(a){return cid(this.a,this.b,a)};_.ej=function kGd(){return iid(this.a,this.b)};_.Wb=function lGd(a){uid(this.a,this.b,a)};_.Wj=function mGd(){yid(this.a,this.b)};var x5=ldb(mte,'BasicEObjectImpl/4',1026);acb(1982,1,{108:1});_.ak=function pGd(a){this.e=a==0?nGd:KC(SI,Phe,1,a,5,1)};_.Bh=function qGd(a){return this.e[a]};_.Ch=function rGd(a,b){this.e[a]=b};_.Dh=function sGd(a){this.e[a]=null};_.bk=function tGd(){return this.c};_.ck=function uGd(){throw ubb(new agb)};_.dk=function vGd(){throw ubb(new agb)};_.ek=function wGd(){return this.d};_.fk=function xGd(){return this.e!=null};_.gk=function yGd(a){this.c=a};_.hk=function zGd(a){throw ubb(new agb)};_.ik=function AGd(a){throw ubb(new agb)};_.jk=function BGd(a){this.d=a};var nGd;var y5=ldb(mte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1982);acb(185,1982,{108:1},CGd);_.ck=function DGd(){return this.a};_.dk=function EGd(){return this.b};_.hk=function FGd(a){this.a=a};_.ik=function GGd(a){this.b=a};var z5=ldb(mte,'BasicEObjectImpl/EPropertiesHolderImpl',185);acb(506,97,lte,HGd);_.Jg=function IGd(){return this.f};_.Og=function JGd(){return this.k};_.Qg=function KGd(a,b){this.g=a;this.i=b};_.Sg=function LGd(){return (this.j&2)==0?this.yh():this.oh().bk()};_.Ug=function MGd(){return this.i};_.Lg=function NGd(){return (this.j&1)!=0};_.dh=function OGd(){return this.g};_.jh=function PGd(){return (this.j&4)!=0};_.oh=function QGd(){return !this.k&&(this.k=new CGd),this.k};_.sh=function RGd(a){this.oh().gk(a);a?(this.j|=2):(this.j&=-3)};_.uh=function SGd(a){this.oh().ik(a);a?(this.j|=4):(this.j&=-5)};_.yh=function TGd(){return (IFd(),HFd).S};_.i=0;_.j=1;var k6=ldb(mte,'EObjectImpl',506);acb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},WGd);_.Bh=function XGd(a){return this.e[a]};_.Ch=function YGd(a,b){this.e[a]=b};_.Dh=function ZGd(a){this.e[a]=null};_.Sg=function $Gd(){return this.d};_.Xg=function _Gd(a){return YKd(this.d,a)};_.Zg=function aHd(){return this.d};_.bh=function bHd(){return this.e!=null};_.oh=function cHd(){!this.k&&(this.k=new qHd);return this.k};_.sh=function dHd(a){this.d=a};_.xh=function eHd(){var a;if(this.e==null){a=XKd(this.d);this.e=a==0?UGd:KC(SI,Phe,1,a,5,1)}return this};_.zh=function fHd(){return 0};var UGd;var D5=ldb(mte,'DynamicEObjectImpl',780);acb(1375,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},gHd);_.Fb=function iHd(a){return this===a};_.Hb=function mHd(){return ECb(this)};_.sh=function hHd(a){this.d=a;this.b=TKd(a,'key');this.c=TKd(a,wte)};_.Rh=function jHd(){var a;if(this.a==-1){a=did(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function kHd(){return did(this,this.b)};_.dd=function lHd(){return did(this,this.c)};_.Sh=function nHd(a){this.a=a};_.Th=function oHd(a){uid(this,this.b,a)};_.ed=function pHd(a){var b;b=did(this,this.c);uid(this,this.c,a);return b};_.a=0;var B5=ldb(mte,'DynamicEObjectImpl/BasicEMapEntry',1375);acb(1376,1,{108:1},qHd);_.ak=function rHd(a){throw ubb(new agb)};_.Bh=function sHd(a){throw ubb(new agb)};_.Ch=function tHd(a,b){throw ubb(new agb)};_.Dh=function uHd(a){throw ubb(new agb)};_.bk=function vHd(){throw ubb(new agb)};_.ck=function wHd(){return this.a};_.dk=function xHd(){return this.b};_.ek=function yHd(){return this.c};_.fk=function zHd(){throw ubb(new agb)};_.gk=function AHd(a){throw ubb(new agb)};_.hk=function BHd(a){this.a=a};_.ik=function CHd(a){this.b=a};_.jk=function DHd(a){this.c=a};var C5=ldb(mte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1376);acb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},MHd);_.Pg=function NHd(a){return FHd(this,a)};_.$g=function OHd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new nId((eGd(),aGd),w6,this)),this.b):(!this.b&&(this.b=new nId((eGd(),aGd),w6,this)),AAd(this.b));case 3:return HHd(this);case 4:return !this.a&&(this.a=new sMd(l5,this,4)),this.a;case 5:return !this.c&&(this.c=new W4d(l5,this,5)),this.c;}return Yhd(this,a-XKd((eGd(),JFd)),SKd((d=BD(vjd(this,16),26),!d?JFd:d),a),b,c)};_.gh=function PHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?FHd(this,c):this.Cb.hh(this,-1-e,null,c)));return EHd(this,BD(a,147),c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),JFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),JFd)),a,c)};_.ih=function QHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 2:return !this.b&&(this.b=new nId((eGd(),aGd),w6,this)),YHd(this.b,a,c);case 3:return EHd(this,null,c);case 4:return !this.a&&(this.a=new sMd(l5,this,4)),Oxd(this.a,a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),JFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),JFd)),a,c)};_.kh=function RHd(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 !!HHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return Zhd(this,a-XKd((eGd(),JFd)),SKd((b=BD(vjd(this,16),26),!b?JFd:b),a))};_.rh=function SHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:JHd(this,GD(b));return;case 2:!this.b&&(this.b=new nId((eGd(),aGd),w6,this));ZHd(this.b,b);return;case 3:IHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new sMd(l5,this,4));Pxd(this.a);!this.a&&(this.a=new sMd(l5,this,4));ttd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new W4d(l5,this,5));Pxd(this.c);!this.c&&(this.c=new W4d(l5,this,5));ttd(this.c,BD(b,14));return;}$hd(this,a-XKd((eGd(),JFd)),SKd((c=BD(vjd(this,16),26),!c?JFd:c),a),b)};_.yh=function THd(){return eGd(),JFd};_.Ah=function UHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:KHd(this,null);return;case 2:!this.b&&(this.b=new nId((eGd(),aGd),w6,this));this.b.c.$b();return;case 3:IHd(this,null);return;case 4:!this.a&&(this.a=new sMd(l5,this,4));Pxd(this.a);return;case 5:!this.c&&(this.c=new W4d(l5,this,5));Pxd(this.c);return;}_hd(this,a-XKd((eGd(),JFd)),SKd((b=BD(vjd(this,16),26),!b?JFd:b),a))};_.Ib=function VHd(){return LHd(this)};_.d=null;var F5=ldb(mte,'EAnnotationImpl',510);acb(151,705,vve,$Hd);_.Wh=function _Hd(a,b){WHd(this,a,BD(b,42))};_.kk=function aId(a,b){return XHd(this,BD(a,42),b)};_.oi=function bId(a){return BD(BD(this.c,69).oi(a),133)};_.Yh=function cId(){return BD(this.c,69).Yh()};_.Zh=function dId(){return BD(this.c,69).Zh()};_.$h=function eId(a){return BD(this.c,69).$h(a)};_.lk=function fId(a,b){return YHd(this,a,b)};_.Vj=function gId(a){return BD(this.c,76).Vj(a)};_.qj=function hId(){};_.ej=function iId(){return BD(this.c,76).ej()};_.sj=function jId(a,b,c){var d;d=BD(YJd(this.b).Mh().Ih(this.b),133);d.Sh(a);d.Th(b);d.ed(c);return d};_.tj=function kId(){return new R5d(this)};_.Wb=function lId(a){ZHd(this,a)};_.Wj=function mId(){BD(this.c,76).Wj()};var x9=ldb(tve,'EcoreEMap',151);acb(158,151,vve,nId);_.pj=function oId(){var a,b,c,d,e,f;if(this.d==null){f=KC(x4,eve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.mj(),133);d=b.Rh();e=(d&Jhe)%f.length;a=f[e];!a&&(a=f[e]=new R5d(this));a.Fc(b)}this.d=f}};var E5=ldb(mte,'EAnnotationImpl/1',158);acb(283,439,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,283:1,114:1,115:1});_.$g=function BId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),this.Zj()?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;}return Yhd(this,a-XKd(this.yh()),SKd((d=BD(vjd(this,16),26),!d?this.yh():d),a),b,c)};_.ih=function CId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 9:return qId(this,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),e.Mj().Qj(this,tjd(this),b-XKd(this.yh()),a,c)};_.kh=function DId(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.Zj();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);}return Zhd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.rh=function EId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:this.Kh(GD(b));return;case 2:wId(this,Bcb(DD(b)));return;case 3:xId(this,Bcb(DD(b)));return;case 4:vId(this,BD(b,19).a);return;case 5:this.nk(BD(b,19).a);return;case 8:tId(this,BD(b,138));return;case 9:d=sId(this,BD(b,87),null);!!d&&d.Ei();return;}$hd(this,a-XKd(this.yh()),SKd((c=BD(vjd(this,16),26),!c?this.yh():c),a),b)};_.yh=function FId(){return eGd(),cGd};_.Ah=function GId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:this.Kh(null);return;case 2:wId(this,true);return;case 3:xId(this,true);return;case 4:vId(this,0);return;case 5:this.nk(1);return;case 8:tId(this,null);return;case 9:c=sId(this,null,null);!!c&&c.Ei();return;}_hd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.Fh=function HId(){rId(this);this.Bb|=1};_.Xj=function IId(){return rId(this)};_.Yj=function JId(){return this.t};_.Zj=function KId(){var a;return a=this.t,a>1||a==-1};_.gi=function LId(){return (this.Bb&512)!=0};_.mk=function MId(a,b){return uId(this,a,b)};_.nk=function NId(a){yId(this,a)};_.Ib=function OId(){return zId(this)};_.s=0;_.t=1;var u7=ldb(mte,'ETypedElementImpl',283);acb(450,283,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,450:1,283:1,114:1,115:1,677:1});_.Pg=function dJd(a){return PId(this,a)};_.$g=function eJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),this.Zj()?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;case 10:return Acb(),(this.Bb&xve)!=0?true:false;case 11:return Acb(),(this.Bb&zve)!=0?true:false;case 12:return Acb(),(this.Bb&Mje)!=0?true:false;case 13:return this.j;case 14:return QId(this);case 15:return Acb(),(this.Bb&yve)!=0?true:false;case 16:return Acb(),(this.Bb&jie)!=0?true:false;case 17:return RId(this);}return Yhd(this,a-XKd(this.yh()),SKd((d=BD(vjd(this,16),26),!d?this.yh():d),a),b,c)};_.gh=function fJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PId(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,17,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),f.Mj().Pj(this,tjd(this),b-XKd(this.yh()),a,c)};_.ih=function gJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 9:return qId(this,c);case 17:return Whd(this,null,17,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),e.Mj().Qj(this,tjd(this),b-XKd(this.yh()),a,c)};_.kh=function hJd(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.Zj();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);case 10:return (this.Bb&xve)==0;case 11:return (this.Bb&zve)!=0;case 12:return (this.Bb&Mje)!=0;case 13:return this.j!=null;case 14:return QId(this)!=null;case 15:return (this.Bb&yve)!=0;case 16:return (this.Bb&jie)!=0;case 17:return !!RId(this);}return Zhd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.rh=function iJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:ZId(this,GD(b));return;case 2:wId(this,Bcb(DD(b)));return;case 3:xId(this,Bcb(DD(b)));return;case 4:vId(this,BD(b,19).a);return;case 5:this.nk(BD(b,19).a);return;case 8:tId(this,BD(b,138));return;case 9:d=sId(this,BD(b,87),null);!!d&&d.Ei();return;case 10:UId(this,Bcb(DD(b)));return;case 11:aJd(this,Bcb(DD(b)));return;case 12:$Id(this,Bcb(DD(b)));return;case 13:VId(this,GD(b));return;case 15:_Id(this,Bcb(DD(b)));return;case 16:XId(this,Bcb(DD(b)));return;}$hd(this,a-XKd(this.yh()),SKd((c=BD(vjd(this,16),26),!c?this.yh():c),a),b)};_.yh=function jJd(){return eGd(),bGd};_.Ah=function kJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,88)&&SMd(VKd(BD(this.Cb,88)),4);knd(this,null);return;case 2:wId(this,true);return;case 3:xId(this,true);return;case 4:vId(this,0);return;case 5:this.nk(1);return;case 8:tId(this,null);return;case 9:c=sId(this,null,null);!!c&&c.Ei();return;case 10:UId(this,true);return;case 11:aJd(this,false);return;case 12:$Id(this,false);return;case 13:this.i=null;WId(this,null);return;case 15:_Id(this,false);return;case 16:XId(this,false);return;}_hd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.Fh=function lJd(){X1d(l1d((J6d(),H6d),this));rId(this);this.Bb|=1};_.Fj=function mJd(){return this.f};_.yj=function nJd(){return QId(this)};_.Gj=function oJd(){return RId(this)};_.Kj=function pJd(){return null};_.ok=function qJd(){return this.k};_._i=function rJd(){return this.n};_.Lj=function sJd(){return SId(this)};_.Mj=function tJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=RId(this);(c.i==null&&OKd(c),c.i).length;d=this.Kj();!!d&&XKd(RId(d));e=rId(this);g=e.Aj();a=!g?null:(g.i&1)!=0?g==rbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==qbb?UI:g==SD?xI:yI:g;b=QId(this);h=e.yj();i6d(this);(this.Bb&jie)!=0&&(!!(f=o1d((J6d(),H6d),c))&&f!=this||!!(f=W1d(l1d(H6d,this))))?(this.p=new uVd(this,f)):this.Zj()?this.qk()?!d?(this.Bb&yve)!=0?!a?this.rk()?(this.p=new FVd(42,this)):(this.p=new FVd(0,this)):a==CK?(this.p=new DVd(50,I4,this)):this.rk()?(this.p=new DVd(43,a,this)):(this.p=new DVd(1,a,this)):!a?this.rk()?(this.p=new FVd(44,this)):(this.p=new FVd(2,this)):a==CK?(this.p=new DVd(41,I4,this)):this.rk()?(this.p=new DVd(45,a,this)):(this.p=new DVd(3,a,this)):(this.Bb&yve)!=0?!a?this.rk()?(this.p=new GVd(46,this,d)):(this.p=new GVd(4,this,d)):this.rk()?(this.p=new EVd(47,a,this,d)):(this.p=new EVd(5,a,this,d)):!a?this.rk()?(this.p=new GVd(48,this,d)):(this.p=new GVd(6,this,d)):this.rk()?(this.p=new EVd(49,a,this,d)):(this.p=new EVd(7,a,this,d)):JD(e,148)?a==D9?(this.p=new FVd(40,this)):(this.Bb&512)!=0?(this.Bb&yve)!=0?!a?(this.p=new FVd(8,this)):(this.p=new DVd(9,a,this)):!a?(this.p=new FVd(10,this)):(this.p=new DVd(11,a,this)):(this.Bb&yve)!=0?!a?(this.p=new FVd(12,this)):(this.p=new DVd(13,a,this)):!a?(this.p=new FVd(14,this)):(this.p=new DVd(15,a,this)):!d?this.rk()?(this.Bb&yve)!=0?!a?(this.p=new FVd(16,this)):(this.p=new DVd(17,a,this)):!a?(this.p=new FVd(18,this)):(this.p=new DVd(19,a,this)):(this.Bb&yve)!=0?!a?(this.p=new FVd(20,this)):(this.p=new DVd(21,a,this)):!a?(this.p=new FVd(22,this)):(this.p=new DVd(23,a,this)):(i=d.t,i>1||i==-1?this.rk()?(this.Bb&yve)!=0?!a?(this.p=new GVd(24,this,d)):(this.p=new EVd(25,a,this,d)):!a?(this.p=new GVd(26,this,d)):(this.p=new EVd(27,a,this,d)):(this.Bb&yve)!=0?!a?(this.p=new GVd(28,this,d)):(this.p=new EVd(29,a,this,d)):!a?(this.p=new GVd(30,this,d)):(this.p=new EVd(31,a,this,d)):this.rk()?(this.Bb&yve)!=0?!a?(this.p=new GVd(32,this,d)):(this.p=new EVd(33,a,this,d)):!a?(this.p=new GVd(34,this,d)):(this.p=new EVd(35,a,this,d)):(this.Bb&yve)!=0?!a?(this.p=new GVd(36,this,d)):(this.p=new EVd(37,a,this,d)):!a?(this.p=new GVd(38,this,d)):(this.p=new EVd(39,a,this,d))):this.pk()?this.rk()?(this.p=new fWd(BD(e,26),this,d)):(this.p=new ZVd(BD(e,26),this,d)):JD(e,148)?a==D9?(this.p=new FVd(40,this)):(this.Bb&yve)!=0?!a?(this.p=new eXd(BD(e,148),b,h,this)):(this.p=new gXd(b,h,this,(xWd(),g==WD?tWd:g==rbb?oWd:g==XD?uWd:g==VD?sWd:g==UD?rWd:g==qbb?wWd:g==SD?pWd:g==TD?qWd:vWd))):!a?(this.p=new ZWd(BD(e,148),b,h,this)):(this.p=new _Wd(b,h,this,(xWd(),g==WD?tWd:g==rbb?oWd:g==XD?uWd:g==VD?sWd:g==UD?rWd:g==qbb?wWd:g==SD?pWd:g==TD?qWd:vWd))):this.qk()?!d?(this.Bb&yve)!=0?this.rk()?(this.p=new AXd(BD(e,26),this)):(this.p=new yXd(BD(e,26),this)):this.rk()?(this.p=new wXd(BD(e,26),this)):(this.p=new uXd(BD(e,26),this)):(this.Bb&yve)!=0?this.rk()?(this.p=new IXd(BD(e,26),this,d)):(this.p=new GXd(BD(e,26),this,d)):this.rk()?(this.p=new EXd(BD(e,26),this,d)):(this.p=new CXd(BD(e,26),this,d)):this.rk()?!d?(this.Bb&yve)!=0?(this.p=new MXd(BD(e,26),this)):(this.p=new KXd(BD(e,26),this)):(this.Bb&yve)!=0?(this.p=new QXd(BD(e,26),this,d)):(this.p=new OXd(BD(e,26),this,d)):!d?(this.Bb&yve)!=0?(this.p=new SXd(BD(e,26),this)):(this.p=new iXd(BD(e,26),this)):(this.Bb&yve)!=0?(this.p=new WXd(BD(e,26),this,d)):(this.p=new UXd(BD(e,26),this,d))}return this.p};_.Hj=function uJd(){return (this.Bb&xve)!=0};_.pk=function vJd(){return false};_.qk=function wJd(){return false};_.Ij=function xJd(){return (this.Bb&jie)!=0};_.Nj=function yJd(){return TId(this)};_.rk=function zJd(){return false};_.Jj=function AJd(){return (this.Bb&yve)!=0};_.sk=function BJd(a){this.k=a};_.Kh=function CJd(a){ZId(this,a)};_.Ib=function DJd(){return bJd(this)};_.e=false;_.n=0;var m7=ldb(mte,'EStructuralFeatureImpl',450);acb(322,450,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,450:1,283:1,114:1,115:1,677:1},JJd);_.$g=function KJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),GJd(this)?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;case 10:return Acb(),(this.Bb&xve)!=0?true:false;case 11:return Acb(),(this.Bb&zve)!=0?true:false;case 12:return Acb(),(this.Bb&Mje)!=0?true:false;case 13:return this.j;case 14:return QId(this);case 15:return Acb(),(this.Bb&yve)!=0?true:false;case 16:return Acb(),(this.Bb&jie)!=0?true:false;case 17:return RId(this);case 18:return Acb(),(this.Bb&kte)!=0?true:false;case 19:if(b)return FJd(this);return EJd(this);}return Yhd(this,a-XKd((eGd(),KFd)),SKd((d=BD(vjd(this,16),26),!d?KFd:d),a),b,c)};_.kh=function LJd(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 GJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);case 10:return (this.Bb&xve)==0;case 11:return (this.Bb&zve)!=0;case 12:return (this.Bb&Mje)!=0;case 13:return this.j!=null;case 14:return QId(this)!=null;case 15:return (this.Bb&yve)!=0;case 16:return (this.Bb&jie)!=0;case 17:return !!RId(this);case 18:return (this.Bb&kte)!=0;case 19:return !!EJd(this);}return Zhd(this,a-XKd((eGd(),KFd)),SKd((b=BD(vjd(this,16),26),!b?KFd:b),a))};_.rh=function MJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:ZId(this,GD(b));return;case 2:wId(this,Bcb(DD(b)));return;case 3:xId(this,Bcb(DD(b)));return;case 4:vId(this,BD(b,19).a);return;case 5:IJd(this,BD(b,19).a);return;case 8:tId(this,BD(b,138));return;case 9:d=sId(this,BD(b,87),null);!!d&&d.Ei();return;case 10:UId(this,Bcb(DD(b)));return;case 11:aJd(this,Bcb(DD(b)));return;case 12:$Id(this,Bcb(DD(b)));return;case 13:VId(this,GD(b));return;case 15:_Id(this,Bcb(DD(b)));return;case 16:XId(this,Bcb(DD(b)));return;case 18:HJd(this,Bcb(DD(b)));return;}$hd(this,a-XKd((eGd(),KFd)),SKd((c=BD(vjd(this,16),26),!c?KFd:c),a),b)};_.yh=function NJd(){return eGd(),KFd};_.Ah=function OJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,88)&&SMd(VKd(BD(this.Cb,88)),4);knd(this,null);return;case 2:wId(this,true);return;case 3:xId(this,true);return;case 4:vId(this,0);return;case 5:this.b=0;yId(this,1);return;case 8:tId(this,null);return;case 9:c=sId(this,null,null);!!c&&c.Ei();return;case 10:UId(this,true);return;case 11:aJd(this,false);return;case 12:$Id(this,false);return;case 13:this.i=null;WId(this,null);return;case 15:_Id(this,false);return;case 16:XId(this,false);return;case 18:HJd(this,false);return;}_hd(this,a-XKd((eGd(),KFd)),SKd((b=BD(vjd(this,16),26),!b?KFd:b),a))};_.Fh=function PJd(){FJd(this);X1d(l1d((J6d(),H6d),this));rId(this);this.Bb|=1};_.Zj=function QJd(){return GJd(this)};_.mk=function RJd(a,b){this.b=0;this.a=null;return uId(this,a,b)};_.nk=function SJd(a){IJd(this,a)};_.Ib=function TJd(){var a;if((this.Db&64)!=0)return bJd(this);a=new Ifb(bJd(this));a.a+=' (iD: ';Efb(a,(this.Bb&kte)!=0);a.a+=')';return a.a};_.b=0;var G5=ldb(mte,'EAttributeImpl',322);acb(350,439,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,350:1,150:1,114:1,115:1,676:1});_.tk=function iKd(a){return a.Sg()==this};_.Pg=function jKd(a){return XJd(this,a)};_.Qg=function kKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_.$g=function lKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return $Jd(this);case 4:return this.yj();case 5:return this.F;case 6:if(b)return YJd(this);return UJd(this);case 7:return !this.A&&(this.A=new F4d(t5,this,7)),this.A;}return Yhd(this,a-XKd(this.yh()),SKd((d=BD(vjd(this,16),26),!d?this.yh():d),a),b,c)};_.gh=function mKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?XJd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,6,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),f.Mj().Pj(this,tjd(this),b-XKd(this.yh()),a,c)};_.ih=function nKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 6:return Whd(this,null,6,c);case 7:return !this.A&&(this.A=new F4d(t5,this,7)),Oxd(this.A,a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),e.Mj().Qj(this,tjd(this),b-XKd(this.yh()),a,c)};_.kh=function oKd(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 !!$Jd(this);case 4:return this.yj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!UJd(this);case 7:return !!this.A&&this.A.i!=0;}return Zhd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.rh=function pKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:gKd(this,GD(b));return;case 2:dKd(this,GD(b));return;case 5:fKd(this,GD(b));return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);!this.A&&(this.A=new F4d(t5,this,7));ttd(this.A,BD(b,14));return;}$hd(this,a-XKd(this.yh()),SKd((c=BD(vjd(this,16),26),!c?this.yh():c),a),b)};_.yh=function qKd(){return eGd(),MFd};_.Ah=function rKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);knd(this,null);return;case 2:VJd(this,null);WJd(this,this.D);return;case 5:fKd(this,null);return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);return;}_hd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.xj=function sKd(){var a;return this.G==-1&&(this.G=(a=YJd(this),a?CLd(a.Lh(),this):-1)),this.G};_.yj=function tKd(){return null};_.zj=function uKd(){return YJd(this)};_.uk=function vKd(){return this.v};_.Aj=function wKd(){return $Jd(this)};_.Bj=function xKd(){return this.D!=null?this.D:this.B};_.Cj=function yKd(){return this.F};_.vj=function zKd(a){return aKd(this,a)};_.vk=function AKd(a){this.v=a};_.wk=function BKd(a){bKd(this,a)};_.xk=function CKd(a){this.C=a};_.Kh=function DKd(a){gKd(this,a)};_.Ib=function EKd(){return hKd(this)};_.C=null;_.D=null;_.G=-1;var Y5=ldb(mte,'EClassifierImpl',350);acb(88,350,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,350:1,150:1,473:1,114:1,115:1,676:1},cLd);_.tk=function dLd(a){return $Kd(this,a.Sg())};_.$g=function eLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return $Jd(this);case 4:return null;case 5:return this.F;case 6:if(b)return YJd(this);return UJd(this);case 7:return !this.A&&(this.A=new F4d(t5,this,7)),this.A;case 8:return Acb(),(this.Bb&256)!=0?true:false;case 9:return Acb(),(this.Bb&512)!=0?true:false;case 10:return WKd(this);case 11:return !this.q&&(this.q=new ZTd(m5,this,11,10)),this.q;case 12:return JKd(this);case 13:return NKd(this);case 14:return NKd(this),this.r;case 15:return JKd(this),this.k;case 16:return KKd(this);case 17:return MKd(this);case 18:return OKd(this);case 19:return PKd(this);case 20:return JKd(this),this.o;case 21:return !this.s&&(this.s=new ZTd(s5,this,21,17)),this.s;case 22:return QKd(this);case 23:return LKd(this);}return Yhd(this,a-XKd((eGd(),LFd)),SKd((d=BD(vjd(this,16),26),!d?LFd:d),a),b,c)};_.gh=function fLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?XJd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,6,c);case 11:return !this.q&&(this.q=new ZTd(m5,this,11,10)),Nxd(this.q,a,c);case 21:return !this.s&&(this.s=new ZTd(s5,this,21,17)),Nxd(this.s,a,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),LFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),LFd)),a,c)};_.ih=function gLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 6:return Whd(this,null,6,c);case 7:return !this.A&&(this.A=new F4d(t5,this,7)),Oxd(this.A,a,c);case 11:return !this.q&&(this.q=new ZTd(m5,this,11,10)),Oxd(this.q,a,c);case 21:return !this.s&&(this.s=new ZTd(s5,this,21,17)),Oxd(this.s,a,c);case 22:return Oxd(QKd(this),a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),LFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),LFd)),a,c)};_.kh=function hLd(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 !!$Jd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!UJd(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&&QKd(this.u.a).i!=0&&!(!!this.n&&AMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return JKd(this).i!=0;case 13:return NKd(this).i!=0;case 14:return NKd(this),this.r.i!=0;case 15:return JKd(this),this.k.i!=0;case 16:return KKd(this).i!=0;case 17:return MKd(this).i!=0;case 18:return OKd(this).i!=0;case 19:return PKd(this).i!=0;case 20:return JKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&AMd(this.n);case 23:return LKd(this).i!=0;}return Zhd(this,a-XKd((eGd(),LFd)),SKd((b=BD(vjd(this,16),26),!b?LFd:b),a))};_.nh=function iLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:TKd(this,a);return b?b:wmd(this,a)};_.rh=function jLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:gKd(this,GD(b));return;case 2:dKd(this,GD(b));return;case 5:fKd(this,GD(b));return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);!this.A&&(this.A=new F4d(t5,this,7));ttd(this.A,BD(b,14));return;case 8:_Kd(this,Bcb(DD(b)));return;case 9:aLd(this,Bcb(DD(b)));return;case 10:qwd(WKd(this));ttd(WKd(this),BD(b,14));return;case 11:!this.q&&(this.q=new ZTd(m5,this,11,10));Pxd(this.q);!this.q&&(this.q=new ZTd(m5,this,11,10));ttd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new ZTd(s5,this,21,17));Pxd(this.s);!this.s&&(this.s=new ZTd(s5,this,21,17));ttd(this.s,BD(b,14));return;case 22:Pxd(QKd(this));ttd(QKd(this),BD(b,14));return;}$hd(this,a-XKd((eGd(),LFd)),SKd((c=BD(vjd(this,16),26),!c?LFd:c),a),b)};_.yh=function kLd(){return eGd(),LFd};_.Ah=function lLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);knd(this,null);return;case 2:VJd(this,null);WJd(this,this.D);return;case 5:fKd(this,null);return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);return;case 8:_Kd(this,false);return;case 9:aLd(this,false);return;case 10:!!this.u&&qwd(this.u);return;case 11:!this.q&&(this.q=new ZTd(m5,this,11,10));Pxd(this.q);return;case 21:!this.s&&(this.s=new ZTd(s5,this,21,17));Pxd(this.s);return;case 22:!!this.n&&Pxd(this.n);return;}_hd(this,a-XKd((eGd(),LFd)),SKd((b=BD(vjd(this,16),26),!b?LFd:b),a))};_.Fh=function mLd(){var a,b;JKd(this);NKd(this);KKd(this);MKd(this);OKd(this);PKd(this);LKd(this);jud(NMd(VKd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){lud(this,b)}}return sud(this,a)};_.Wj=function iMd(){Pxd(this)};_.ni=function jMd(a,b){return GLd(this,a,b)};var s9=ldb(tve,'EcoreEList',622);acb(496,622,Lve,kMd);_._h=function lMd(){return false};_._i=function mMd(){return this.c};_.aj=function nMd(){return false};_.Ek=function oMd(){return true};_.gi=function pMd(){return true};_.ki=function qMd(a,b){return b};_.mi=function rMd(){return false};_.c=0;var c9=ldb(tve,'EObjectEList',496);acb(85,496,Lve,sMd);_.aj=function tMd(){return true};_.Ck=function uMd(){return false};_.qk=function vMd(){return true};var Y8=ldb(tve,'EObjectContainmentEList',85);acb(545,85,Lve,wMd);_.bi=function xMd(){this.b=true};_.ej=function yMd(){return this.b};_.Wj=function zMd(){var a;Pxd(this);if(jid(this.e)){a=this.b;this.b=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var X8=ldb(tve,'EObjectContainmentEList/Unsettable',545);acb(1139,545,Lve,EMd);_.hi=function IMd(a,b){var c,d;return c=BD(Rxd(this,a,b),87),jid(this.e)&&BLd(this,new zSd(this.a,7,(eGd(),NFd),leb(b),(d=c.c,JD(d,88)?BD(d,26):WFd),a)),c};_.ij=function JMd(a,b){return BMd(this,BD(a,87),b)};_.jj=function KMd(a,b){return CMd(this,BD(a,87),b)};_.kj=function LMd(a,b,c){return DMd(this,BD(a,87),BD(b,87),c)};_.Yi=function FMd(a,b,c,d,e){switch(a){case 3:{return ALd(this,a,b,c,d,this.i>1)}case 5:{return ALd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new kSd(this.e,a,this.c,b,c,d,true)}}};_.hj=function GMd(){return true};_.ej=function HMd(){return AMd(this)};_.Wj=function MMd(){Pxd(this)};var M5=ldb(mte,'EClassImpl/1',1139);acb(1153,1152,$ue);_.ti=function QMd(a){var b,c,d,e,f,g,h;c=a.wi();if(c!=8){d=PMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Ai();if(h!=null){b=VKd(BD(h,473));!b.c&&(b.c=new sYd);Atd(b.c,a.zi())}g=a.yi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=VKd(e);!b.c&&(b.c=new sYd);rtd(b.c,BD(a.zi(),26))}}break}case 3:{g=a.yi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=VKd(e);!b.c&&(b.c=new sYd);rtd(b.c,BD(a.zi(),26))}}break}case 5:{g=a.yi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=VKd(e);!b.c&&(b.c=new sYd);rtd(b.c,BD(a.zi(),26))}}}break}case 4:{h=a.Ai();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=VKd(e);!b.c&&(b.c=new sYd);Atd(b.c,a.zi())}}break}case 6:{h=a.Ai();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=VKd(e);!b.c&&(b.c=new sYd);Atd(b.c,a.zi())}}}break}}}this.Gk(d)}};_.Gk=function RMd(a){OMd(this,a)};_.b=63;var o7=ldb(mte,'ESuperAdapter',1153);acb(1154,1153,$ue,TMd);_.Gk=function UMd(a){SMd(this,a)};var H5=ldb(mte,'EClassImpl/10',1154);acb(1143,696,Lve);_.Uh=function VMd(a,b){return dud(this,a,b)};_.Vh=function WMd(a){return eud(this,a)};_.Wh=function XMd(a,b){fud(this,a,b)};_.Xh=function YMd(a){gud(this,a)};_.oi=function $Md(a){return iud(this,a)};_.li=function gNd(a,b){return pud(this,a,b)};_.kk=function ZMd(a,b){throw ubb(new agb)};_.Yh=function _Md(){return new Vyd(this)};_.Zh=function aNd(){return new Yyd(this)};_.$h=function bNd(a){return utd(this,a)};_.lk=function cNd(a,b){throw ubb(new agb)};_.Vj=function dNd(a){return this};_.ej=function eNd(){return this.i!=0};_.Wb=function fNd(a){throw ubb(new agb)};_.Wj=function hNd(){throw ubb(new agb)};var r9=ldb(tve,'EcoreEList/UnmodifiableEList',1143);acb(319,1143,Lve,iNd);_.mi=function jNd(){return false};var q9=ldb(tve,'EcoreEList/UnmodifiableEList/FastCompare',319);acb(1146,319,Lve,mNd);_.Xc=function nNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b._i();if(c!=-1){for(d=this.i;c4){if(this.vj(a)){if(this.qk()){d=BD(a,49);c=d.Tg();h=c==this.b&&(this.Ck()?d.Ng(d.Ug(),BD(SKd(rjd(this.b),this._i()).Xj(),26).Aj())==uUd(BD(SKd(rjd(this.b),this._i()),18)).n:-1-d.Ug()==this._i());if(this.Dk()&&!h&&!c&&!!d.Yg()){for(e=0;e1||d==-1)}else{return false}};_.Ck=function xOd(){var a,b,c;b=SKd(rjd(this.b),this._i());if(JD(b,99)){a=BD(b,18);c=uUd(a);return !!c}else{return false}};_.Dk=function yOd(){var a,b;b=SKd(rjd(this.b),this._i());if(JD(b,99)){a=BD(b,18);return (a.Bb&Oje)!=0}else{return false}};_.Xc=function zOd(a){var b,c,d,e;d=this.Pi(a);if(d>=0)return d;if(this.Ek()){for(c=0,e=this.Ui();c=0;--a){iOd(this,a,this.Ni(a))}}return this.Vi()};_.Qc=function LOd(a){var b;if(this.Dk()){for(b=this.Ui()-1;b>=0;--b){iOd(this,b,this.Ni(b))}}return this.Wi(a)};_.Wj=function MOd(){qwd(this)};_.ni=function NOd(a,b){return kOd(this,a,b)};var J8=ldb(tve,'DelegatingEcoreEList',742);acb(1149,742,Qve,TOd);_.Gi=function WOd(a,b){OOd(this,a,BD(b,26))};_.Hi=function XOd(a){POd(this,BD(a,26))};_.Ni=function bPd(a){var b,c;return b=BD(lud(QKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(eGd(),WFd)};_.Si=function gPd(a){var b,c;return b=BD(Sxd(QKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(eGd(),WFd)};_.Ti=function hPd(a,b){return ROd(this,a,BD(b,26))};_._h=function UOd(){return false};_.Yi=function VOd(a,b,c,d,e){return null};_.Ii=function YOd(){return new zPd(this)};_.Ji=function ZOd(){Pxd(QKd(this.a))};_.Ki=function $Od(a){return QOd(this,a)};_.Li=function _Od(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!QOd(this,b)){return false}}return true};_.Mi=function aPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==QKd(this.a).i){for(b=d.Kc(),c=new Ayd(this);b.Ob();){if(PD(b.Pb())!==PD(yyd(c))){return false}}return true}}return false};_.Oi=function cPd(){var a,b,c,d,e;c=1;for(b=new Ayd(QKd(this.a));b.e!=b.i.gc();){a=BD(yyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(eGd(),WFd));c=31*c+(!d?0:ECb(d))}return c};_.Pi=function dPd(a){var b,c,d,e;d=0;for(c=new Ayd(QKd(this.a));c.e!=c.i.gc();){b=BD(yyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(eGd(),WFd)))){return d}++d}return -1};_.Qi=function ePd(){return QKd(this.a).i==0};_.Ri=function fPd(){return null};_.Ui=function iPd(){return QKd(this.a).i};_.Vi=function jPd(){var a,b,c,d,e,f;f=QKd(this.a).i;e=KC(SI,Phe,1,f,5,1);c=0;for(b=new Ayd(QKd(this.a));b.e!=b.i.gc();){a=BD(yyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(eGd(),WFd))}return e};_.Wi=function kPd(a){var b,c,d,e,f,g,h;h=QKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Ayd(QKd(this.a));c.e!=c.i.gc();){b=BD(yyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(eGd(),WFd));NC(a,d++,f)}return a};_.Xi=function lPd(){var a,b,c,d,e;e=new Gfb;e.a+='[';a=QKd(this.a);for(b=0,d=QKd(this.a).i;b>16,e>=0?XJd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,6,c);case 9:return !this.a&&(this.a=new ZTd(f5,this,9,5)),Nxd(this.a,a,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),PFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),PFd)),a,c)};_.ih=function $Pd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 6:return Whd(this,null,6,c);case 7:return !this.A&&(this.A=new F4d(t5,this,7)),Oxd(this.A,a,c);case 9:return !this.a&&(this.a=new ZTd(f5,this,9,5)),Oxd(this.a,a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),PFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),PFd)),a,c)};_.kh=function _Pd(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 !!$Jd(this);case 4:return !!VPd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!UJd(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 Zhd(this,a-XKd((eGd(),PFd)),SKd((b=BD(vjd(this,16),26),!b?PFd:b),a))};_.rh=function aQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:gKd(this,GD(b));return;case 2:dKd(this,GD(b));return;case 5:fKd(this,GD(b));return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);!this.A&&(this.A=new F4d(t5,this,7));ttd(this.A,BD(b,14));return;case 8:GPd(this,Bcb(DD(b)));return;case 9:!this.a&&(this.a=new ZTd(f5,this,9,5));Pxd(this.a);!this.a&&(this.a=new ZTd(f5,this,9,5));ttd(this.a,BD(b,14));return;}$hd(this,a-XKd((eGd(),PFd)),SKd((c=BD(vjd(this,16),26),!c?PFd:c),a),b)};_.yh=function bQd(){return eGd(),PFd};_.Ah=function cQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);knd(this,null);return;case 2:VJd(this,null);WJd(this,this.D);return;case 5:fKd(this,null);return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);return;case 8:GPd(this,true);return;case 9:!this.a&&(this.a=new ZTd(f5,this,9,5));Pxd(this.a);return;}_hd(this,a-XKd((eGd(),PFd)),SKd((b=BD(vjd(this,16),26),!b?PFd:b),a))};_.Fh=function dQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return Yhd(this,a-XKd((eGd(),QFd)),SKd((d=BD(vjd(this,16),26),!d?QFd:d),a),b,c)};_.gh=function pQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?hQd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,5,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),QFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),QFd)),a,c)};_.ih=function qQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 5:return Whd(this,null,5,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),QFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),QFd)),a,c)};_.kh=function rQd(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?BD(this.Cb,671):null);}return Zhd(this,a-XKd((eGd(),QFd)),SKd((b=BD(vjd(this,16),26),!b?QFd:b),a))};_.rh=function sQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:knd(this,GD(b));return;case 2:lQd(this,BD(b,19).a);return;case 3:jQd(this,BD(b,1939));return;case 4:kQd(this,GD(b));return;}$hd(this,a-XKd((eGd(),QFd)),SKd((c=BD(vjd(this,16),26),!c?QFd:c),a),b)};_.yh=function tQd(){return eGd(),QFd};_.Ah=function uQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:knd(this,null);return;case 2:lQd(this,0);return;case 3:jQd(this,null);return;case 4:kQd(this,null);return;}_hd(this,a-XKd((eGd(),QFd)),SKd((b=BD(vjd(this,16),26),!b?QFd:b),a))};_.Ib=function wQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var _5=ldb(mte,'EEnumLiteralImpl',573);var b6=ndb(mte,'EFactoryImpl/InternalEDateTimeFormat');acb(489,1,{2014:1},zQd);var a6=ldb(mte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);acb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},PQd);_.Rg=function QQd(a,b,c){var d;c=Whd(this,a,b,c);if(!!this.e&&JD(a,170)){d=HQd(this,this.e);d!=this.c&&(c=LQd(this,d,c))}return c};_.$g=function RQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new sMd(i5,this,1)),this.d;case 2:if(b)return FQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return EQd(this);return this.a;}return Yhd(this,a-XKd((eGd(),SFd)),SKd((d=BD(vjd(this,16),26),!d?SFd:d),a),b,c)};_.ih=function SQd(a,b,c){var d,e;switch(b){case 0:return DQd(this,null,c);case 1:return !this.d&&(this.d=new sMd(i5,this,1)),Oxd(this.d,a,c);case 3:return BQd(this,null,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),SFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),SFd)),a,c)};_.kh=function TQd(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 Zhd(this,a-XKd((eGd(),SFd)),SKd((b=BD(vjd(this,16),26),!b?SFd:b),a))};_.rh=function UQd(a,b){var c;switch(a){case 0:NQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new sMd(i5,this,1));Pxd(this.d);!this.d&&(this.d=new sMd(i5,this,1));ttd(this.d,BD(b,14));return;case 3:KQd(this,BD(b,87));return;case 4:MQd(this,BD(b,835));return;case 5:IQd(this,BD(b,138));return;}$hd(this,a-XKd((eGd(),SFd)),SKd((c=BD(vjd(this,16),26),!c?SFd:c),a),b)};_.yh=function VQd(){return eGd(),SFd};_.Ah=function WQd(a){var b;switch(a){case 0:NQd(this,null);return;case 1:!this.d&&(this.d=new sMd(i5,this,1));Pxd(this.d);return;case 3:KQd(this,null);return;case 4:MQd(this,null);return;case 5:IQd(this,null);return;}_hd(this,a-XKd((eGd(),SFd)),SKd((b=BD(vjd(this,16),26),!b?SFd:b),a))};_.Ib=function XQd(){var a;a=new Vfb(zid(this));a.a+=' (expression: ';OQd(this,a);a.a+=')';return a.a};var AQd;var d6=ldb(mte,'EGenericTypeImpl',241);acb(1968,1963,Rve);_.Wh=function ZQd(a,b){YQd(this,a,b)};_.kk=function $Qd(a,b){YQd(this,this.gc(),a);return b};_.oi=function _Qd(a){return Ut(this.Fi(),a)};_.Yh=function aRd(){return this.Zh()};_.Fi=function bRd(){return new J0d(this)};_.Zh=function cRd(){return this.$h(0)};_.$h=function dRd(a){return this.Fi().Zc(a)};_.lk=function eRd(a,b){ze(this,a,true);return b};_.hi=function fRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ii=function gRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var A8=ldb(tve,'AbstractSequentialInternalEList',1968);acb(486,1968,Rve,lRd);_.oi=function mRd(a){return Ut(this.Fi(),a)};_.Yh=function nRd(){if(this.b==null){return GRd(),GRd(),FRd}return this.Ik()};_.Fi=function oRd(){return new r4d(this.a,this.b)};_.Zh=function pRd(){if(this.b==null){return GRd(),GRd(),FRd}return this.Ik()};_.$h=function qRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw ubb(new pcb(bve+a+', size=0'))}return GRd(),GRd(),FRd}c=this.Ik();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Fj()!=w2||b._i()!=0)&&(!this.Lk()||this.b.lh(b))){f=this.b.ah(b,this.Kk());this.f=(L6d(),BD(b,66).Nj());if(this.f||b.Zj()){if(this.Kk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j.$h(this.k.gc())}if(!this.p?KRd(this):LRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.oi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a._j();c=a.dd();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.oi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a._j();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function SRd(){return HRd(this)};_.Tb=function TRd(){return this.a};_.Ub=function URd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw ubb(new ttb)}};_.Vb=function VRd(){return this.a-1};_.Qb=function WRd(){throw ubb(new agb)};_.Kk=function XRd(){return false};_.Wb=function YRd(a){throw ubb(new agb)};_.Lk=function ZRd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var FRd;var O8=ldb(tve,'EContentsEList/FeatureIteratorImpl',278);acb(697,278,Sve,$Rd);_.Kk=function _Rd(){return true};var P8=ldb(tve,'EContentsEList/ResolvingFeatureIteratorImpl',697);acb(1156,697,Sve,aSd);_.Lk=function bSd(){return false};var f6=ldb(mte,'ENamedElementImpl/1/1',1156);acb(1157,278,Sve,cSd);_.Lk=function dSd(){return false};var g6=ldb(mte,'ENamedElementImpl/1/2',1157);acb(36,143,ave,gSd,hSd,iSd,jSd,kSd,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd);_.$i=function FSd(){return fSd(this)};_.fj=function GSd(){var a;a=fSd(this);if(a){return a.yj()}return null};_.xi=function HSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Wg(this.a._i(),this.a.Fj()));return this.c.Ng(this.b,a)};_.zi=function ISd(){return this.c};_.gj=function JSd(){var a;a=fSd(this);if(a){return a.Jj()}return false};_.b=-1;var j6=ldb(mte,'ENotificationImpl',36);acb(399,283,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,283:1,114:1,115:1},NSd);_.Pg=function OSd(a){return KSd(this,a)};_.$g=function PSd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),f=this.t,f>1||f==-1?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new F4d(t5,this,11)),this.d;case 12:return !this.c&&(this.c=new ZTd(o5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new aTd(this,this)),this.a;case 14:return LSd(this);}return Yhd(this,a-XKd((eGd(),XFd)),SKd((d=BD(vjd(this,16),26),!d?XFd:d),a),b,c)};_.gh=function QSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KSd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,10,c);case 12:return !this.c&&(this.c=new ZTd(o5,this,12,10)),Nxd(this.c,a,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),XFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),XFd)),a,c)};_.ih=function RSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 9:return qId(this,c);case 10:return Whd(this,null,10,c);case 11:return !this.d&&(this.d=new F4d(t5,this,11)),Oxd(this.d,a,c);case 12:return !this.c&&(this.c=new ZTd(o5,this,12,10)),Oxd(this.c,a,c);case 14:return Oxd(LSd(this),a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),XFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),XFd)),a,c)};_.kh=function SSd(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&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&LSd(this.a.a).i!=0&&!(!!this.b&<d(this.b));case 14:return !!this.b&<d(this.b);}return Zhd(this,a-XKd((eGd(),XFd)),SKd((b=BD(vjd(this,16),26),!b?XFd:b),a))};_.rh=function TSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:knd(this,GD(b));return;case 2:wId(this,Bcb(DD(b)));return;case 3:xId(this,Bcb(DD(b)));return;case 4:vId(this,BD(b,19).a);return;case 5:yId(this,BD(b,19).a);return;case 8:tId(this,BD(b,138));return;case 9:d=sId(this,BD(b,87),null);!!d&&d.Ei();return;case 11:!this.d&&(this.d=new F4d(t5,this,11));Pxd(this.d);!this.d&&(this.d=new F4d(t5,this,11));ttd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new ZTd(o5,this,12,10));Pxd(this.c);!this.c&&(this.c=new ZTd(o5,this,12,10));ttd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new aTd(this,this));qwd(this.a);!this.a&&(this.a=new aTd(this,this));ttd(this.a,BD(b,14));return;case 14:Pxd(LSd(this));ttd(LSd(this),BD(b,14));return;}$hd(this,a-XKd((eGd(),XFd)),SKd((c=BD(vjd(this,16),26),!c?XFd:c),a),b)};_.yh=function USd(){return eGd(),XFd};_.Ah=function VSd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:knd(this,null);return;case 2:wId(this,true);return;case 3:xId(this,true);return;case 4:vId(this,0);return;case 5:yId(this,1);return;case 8:tId(this,null);return;case 9:c=sId(this,null,null);!!c&&c.Ei();return;case 11:!this.d&&(this.d=new F4d(t5,this,11));Pxd(this.d);return;case 12:!this.c&&(this.c=new ZTd(o5,this,12,10));Pxd(this.c);return;case 13:!!this.a&&qwd(this.a);return;case 14:!!this.b&&Pxd(this.b);return;}_hd(this,a-XKd((eGd(),XFd)),SKd((b=BD(vjd(this,16),26),!b?XFd:b),a))};_.Fh=function WSd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Ayd(LSd(this.a));c.e!=c.i.gc();){b=BD(yyd(c),87);f=(g=b.c,g?g:(eGd(),TFd));NC(a,d++,f)}return a};_.Xi=function uTd(){var a,b,c,d,e;e=new Gfb;e.a+='[';a=LSd(this.a);for(b=0,d=LSd(this.a).i;b1)}case 5:{return ALd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new kSd(this.e,a,this.c,b,c,d,true)}}};_.hj=function RTd(){return true};_.ej=function STd(){return LTd(this)};_.Wj=function XTd(){Pxd(this)};var n6=ldb(mte,'EOperationImpl/2',1340);acb(498,1,{1937:1,498:1},YTd);var p6=ldb(mte,'EPackageImpl/1',498);acb(16,85,Lve,ZTd);_.yk=function $Td(){return this.d};_.zk=function _Td(){return this.b};_.Ck=function aUd(){return true};_.b=0;var a9=ldb(tve,'EObjectContainmentWithInverseEList',16);acb(352,16,Lve,bUd);_.Dk=function cUd(){return true};_.ki=function dUd(a,b){return DLd(this,a,BD(b,56))};var Z8=ldb(tve,'EObjectContainmentWithInverseEList/Resolving',352);acb(298,352,Lve,eUd);_.bi=function fUd(){this.a.tb=null};var q6=ldb(mte,'EPackageImpl/2',298);acb(1227,1,{},gUd);var r6=ldb(mte,'EPackageImpl/3',1227);acb(718,43,ake,jUd);_._b=function kUd(a){return ND(a)?Phb(this,a):!!hrb(this.f,a)};var t6=ldb(mte,'EPackageRegistryImpl',718);acb(509,283,{105:1,92:1,90:1,147:1,191:1,56:1,2016:1,108:1,472:1,49:1,97:1,150:1,509:1,283:1,114:1,115:1},mUd);_.Pg=function nUd(a){return lUd(this,a)};_.$g=function oUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),f=this.t,f>1||f==-1?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return Yhd(this,a-XKd((eGd(),$Fd)),SKd((d=BD(vjd(this,16),26),!d?$Fd:d),a),b,c)};_.gh=function pUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?lUd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,10,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),$Fd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),$Fd)),a,c)};_.ih=function qUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 9:return qId(this,c);case 10:return Whd(this,null,10,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),$Fd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),$Fd)),a,c)};_.kh=function rUd(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&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return Zhd(this,a-XKd((eGd(),$Fd)),SKd((b=BD(vjd(this,16),26),!b?$Fd:b),a))};_.yh=function sUd(){return eGd(),$Fd};var u6=ldb(mte,'EParameterImpl',509);acb(99,450,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,450:1,283:1,114:1,115:1,677:1},AUd);_.$g=function BUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),g=this.t,g>1||g==-1?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;case 10:return Acb(),(this.Bb&xve)!=0?true:false;case 11:return Acb(),(this.Bb&zve)!=0?true:false;case 12:return Acb(),(this.Bb&Mje)!=0?true:false;case 13:return this.j;case 14:return QId(this);case 15:return Acb(),(this.Bb&yve)!=0?true:false;case 16:return Acb(),(this.Bb&jie)!=0?true:false;case 17:return RId(this);case 18:return Acb(),(this.Bb&kte)!=0?true:false;case 19:return Acb(),f=uUd(this),!!f&&(f.Bb&kte)!=0?true:false;case 20:return Acb(),(this.Bb&Oje)!=0?true:false;case 21:if(b)return uUd(this);return this.b;case 22:if(b)return vUd(this);return tUd(this);case 23:return !this.a&&(this.a=new W4d(a5,this,23)),this.a;}return Yhd(this,a-XKd((eGd(),_Fd)),SKd((d=BD(vjd(this,16),26),!d?_Fd:d),a),b,c)};_.kh=function CUd(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&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);case 10:return (this.Bb&xve)==0;case 11:return (this.Bb&zve)!=0;case 12:return (this.Bb&Mje)!=0;case 13:return this.j!=null;case 14:return QId(this)!=null;case 15:return (this.Bb&yve)!=0;case 16:return (this.Bb&jie)!=0;case 17:return !!RId(this);case 18:return (this.Bb&kte)!=0;case 19:return d=uUd(this),!!d&&(d.Bb&kte)!=0;case 20:return (this.Bb&Oje)==0;case 21:return !!this.b;case 22:return !!tUd(this);case 23:return !!this.a&&this.a.i!=0;}return Zhd(this,a-XKd((eGd(),_Fd)),SKd((b=BD(vjd(this,16),26),!b?_Fd:b),a))};_.rh=function DUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:ZId(this,GD(b));return;case 2:wId(this,Bcb(DD(b)));return;case 3:xId(this,Bcb(DD(b)));return;case 4:vId(this,BD(b,19).a);return;case 5:yId(this,BD(b,19).a);return;case 8:tId(this,BD(b,138));return;case 9:d=sId(this,BD(b,87),null);!!d&&d.Ei();return;case 10:UId(this,Bcb(DD(b)));return;case 11:aJd(this,Bcb(DD(b)));return;case 12:$Id(this,Bcb(DD(b)));return;case 13:VId(this,GD(b));return;case 15:_Id(this,Bcb(DD(b)));return;case 16:XId(this,Bcb(DD(b)));return;case 18:wUd(this,Bcb(DD(b)));return;case 20:zUd(this,Bcb(DD(b)));return;case 21:yUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new W4d(a5,this,23));Pxd(this.a);!this.a&&(this.a=new W4d(a5,this,23));ttd(this.a,BD(b,14));return;}$hd(this,a-XKd((eGd(),_Fd)),SKd((c=BD(vjd(this,16),26),!c?_Fd:c),a),b)};_.yh=function EUd(){return eGd(),_Fd};_.Ah=function FUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,88)&&SMd(VKd(BD(this.Cb,88)),4);knd(this,null);return;case 2:wId(this,true);return;case 3:xId(this,true);return;case 4:vId(this,0);return;case 5:yId(this,1);return;case 8:tId(this,null);return;case 9:c=sId(this,null,null);!!c&&c.Ei();return;case 10:UId(this,true);return;case 11:aJd(this,false);return;case 12:$Id(this,false);return;case 13:this.i=null;WId(this,null);return;case 15:_Id(this,false);return;case 16:XId(this,false);return;case 18:xUd(this,false);JD(this.Cb,88)&&SMd(VKd(BD(this.Cb,88)),2);return;case 20:zUd(this,true);return;case 21:yUd(this,null);return;case 23:!this.a&&(this.a=new W4d(a5,this,23));Pxd(this.a);return;}_hd(this,a-XKd((eGd(),_Fd)),SKd((b=BD(vjd(this,16),26),!b?_Fd:b),a))};_.Fh=function GUd(){vUd(this);X1d(l1d((J6d(),H6d),this));rId(this);this.Bb|=1};_.Kj=function HUd(){return uUd(this)};_.pk=function IUd(){var a;return a=uUd(this),!!a&&(a.Bb&kte)!=0};_.qk=function JUd(){return (this.Bb&kte)!=0};_.rk=function KUd(){return (this.Bb&Oje)!=0};_.mk=function LUd(a,b){this.c=null;return uId(this,a,b)};_.Ib=function MUd(){var a;if((this.Db&64)!=0)return bJd(this);a=new Ifb(bJd(this));a.a+=' (containment: ';Efb(a,(this.Bb&kte)!=0);a.a+=', resolveProxies: ';Efb(a,(this.Bb&Oje)!=0);a.a+=')';return a.a};var v6=ldb(mte,'EReferenceImpl',99);acb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},SUd);_.Fb=function YUd(a){return this===a};_.cd=function $Ud(){return this.b};_.dd=function _Ud(){return this.c};_.Hb=function aVd(){return ECb(this)};_.Th=function cVd(a){NUd(this,GD(a))};_.ed=function dVd(a){return RUd(this,GD(a))};_.$g=function TUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return Yhd(this,a-XKd((eGd(),aGd)),SKd((d=BD(vjd(this,16),26),!d?aGd:d),a),b,c)};_.kh=function UUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return Zhd(this,a-XKd((eGd(),aGd)),SKd((b=BD(vjd(this,16),26),!b?aGd:b),a))};_.rh=function VUd(a,b){var c;switch(a){case 0:OUd(this,GD(b));return;case 1:QUd(this,GD(b));return;}$hd(this,a-XKd((eGd(),aGd)),SKd((c=BD(vjd(this,16),26),!c?aGd:c),a),b)};_.yh=function WUd(){return eGd(),aGd};_.Ah=function XUd(a){var b;switch(a){case 0:PUd(this,null);return;case 1:QUd(this,null);return;}_hd(this,a-XKd((eGd(),aGd)),SKd((b=BD(vjd(this,16),26),!b?aGd:b),a))};_.Rh=function ZUd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:KCb(a)}return this.a};_.Sh=function bVd(a){this.a=a};_.Ib=function eVd(){var a;if((this.Db&64)!=0)return zid(this);a=new Ifb(zid(this));a.a+=' (key: ';Dfb(a,this.b);a.a+=', value: ';Dfb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var w6=ldb(mte,'EStringToStringMapEntryImpl',548);var C9=ndb(tve,'FeatureMap/Entry/Internal');acb(565,1,Tve);_.Nk=function hVd(a){return this.Ok(BD(a,49))};_.Ok=function iVd(a){return this.Nk(a)};_.Fb=function jVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b._j()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_._j=function kVd(){return this.c};_.Hb=function lVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function mVd(){var a,b;a=this.c;b=YJd(a.Gj()).Oh();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var x6=ldb(mte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);acb(776,565,Tve,pVd);_.Ok=function qVd(a){return new pVd(this.c,a)};_.dd=function rVd(){return this.a};_.Pk=function sVd(a,b,c){return nVd(this,a,this.a,b,c)};_.Qk=function tVd(a,b,c){return oVd(this,a,this.a,b,c)};var y6=ldb(mte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);acb(1313,1,{},uVd);_.Oj=function vVd(a,b,c,d,e){var f;f=BD(bid(a,this.b),215);return f.ml(this.a).Vj(d)};_.Pj=function wVd(a,b,c,d,e){var f;f=BD(bid(a,this.b),215);return f.dl(this.a,d,e)};_.Qj=function xVd(a,b,c,d,e){var f;f=BD(bid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function yVd(a,b,c){var d;d=BD(bid(a,this.b),215);return d.ml(this.a).ej()};_.Sj=function zVd(a,b,c,d){var e;e=BD(bid(a,this.b),215);e.ml(this.a).Wb(d)};_.Tj=function AVd(a,b,c){return BD(bid(a,this.b),215).ml(this.a)};_.Uj=function BVd(a,b,c){var d;d=BD(bid(a,this.b),215);d.ml(this.a).Wj()};var z6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1313);acb(89,1,{},DVd,EVd,FVd,GVd);_.Oj=function HVd(a,b,c,d,e){var f;f=b.Bh(c);f==null&&b.Ch(c,f=CVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).rj();case 40:return BD(f,215).jl();}}return f};_.Pj=function IVd(a,b,c,d,e){var f,g;g=b.Bh(c);g==null&&b.Ch(c,g=CVd(this,a));f=BD(g,69).kk(d,e);return f};_.Qj=function JVd(a,b,c,d,e){var f;f=b.Bh(c);f!=null&&(e=BD(f,69).lk(d,e));return e};_.Rj=function KVd(a,b,c){var d;d=b.Bh(c);return d!=null&&BD(d,76).ej()};_.Sj=function LVd(a,b,c,d){var e;e=BD(b.Bh(c),76);!e&&b.Ch(c,e=CVd(this,a));e.Wb(d)};_.Tj=function MVd(a,b,c){var d,e;e=b.Bh(c);e==null&&b.Ch(c,e=CVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Bh(c),15);return new dYd(d)}};_.Uj=function NVd(a,b,c){var d;d=BD(b.Bh(c),76);!d&&b.Ch(c,d=CVd(this,a));d.Wj()};_.b=0;_.e=0;var A6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);acb(504,1,{});_.Pj=function RVd(a,b,c,d,e){throw ubb(new agb)};_.Qj=function SVd(a,b,c,d,e){throw ubb(new agb)};_.Tj=function TVd(a,b,c){return new UVd(this,a,b,c)};var OVd;var h7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);acb(1330,1,uve,UVd);_.Vj=function VVd(a){return this.a.Oj(this.c,this.d,this.b,a,true)};_.ej=function WVd(){return this.a.Rj(this.c,this.d,this.b)};_.Wb=function XVd(a){this.a.Sj(this.c,this.d,this.b,a)};_.Wj=function YVd(){this.a.Uj(this.c,this.d,this.b)};_.b=0;var B6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1330);acb(769,504,{},ZVd);_.Oj=function $Vd(a,b,c,d,e){return Iid(a,a.dh(),a.Ug())==this.b?this.rk()&&d?Xhd(a):a.dh():null};_.Pj=function _Vd(a,b,c,d,e){var f,g;!!a.dh()&&(e=(f=a.Ug(),f>=0?a.Pg(e):a.dh().hh(a,-1-f,null,e)));g=YKd(a.Sg(),this.e);return a.Rg(d,g,e)};_.Qj=function aWd(a,b,c,d,e){var f;f=YKd(a.Sg(),this.e);return a.Rg(null,f,e)};_.Rj=function bWd(a,b,c){var d;d=YKd(a.Sg(),this.e);return !!a.dh()&&a.Ug()==d};_.Sj=function cWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!aKd(this.a,d)){throw ubb(new Bdb(Uve+(JD(d,56)?bLd(BD(d,56).Sg()):hdb(rb(d)))+Vve+this.a+"'"))}e=a.dh();g=YKd(a.Sg(),this.e);if(PD(d)!==PD(e)||a.Ug()!=g&&d!=null){if(k6d(a,BD(d,56)))throw ubb(new Vdb(ote+a.Ib()));i=null;!!e&&(i=(f=a.Ug(),f>=0?a.Pg(i):a.dh().hh(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.fh(a,YKd(h.Sg(),this.b),null,i));i=a.Rg(h,g,i);!!i&&i.Ei()}else{a.Kg()&&a.Lg()&&Phd(a,new iSd(a,1,g,d,d))}};_.Uj=function dWd(a,b,c){var d,e,f,g;d=a.dh();if(d){g=(e=a.Ug(),e>=0?a.Pg(null):a.dh().hh(a,-1-e,null,null));f=YKd(a.Sg(),this.e);g=a.Rg(null,f,g);!!g&&g.Ei()}else{a.Kg()&&a.Lg()&&Phd(a,new ySd(a,1,this.e,null,null))}};_.rk=function eWd(){return false};var D6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);acb(1314,769,{},fWd);_.rk=function gWd(){return true};var C6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1314);acb(563,504,{});_.Oj=function jWd(a,b,c,d,e){var f;return f=b.Bh(c),f==null?this.b:PD(f)===PD(OVd)?null:f};_.Rj=function kWd(a,b,c){var d;d=b.Bh(c);return d!=null&&(PD(d)===PD(OVd)||!pb(d,this.b))};_.Sj=function lWd(a,b,c,d){var e,f;if(a.Kg()&&a.Lg()){e=(f=b.Bh(c),f==null?this.b:PD(f)===PD(OVd)?null:f);if(d==null){if(this.c!=null){b.Ch(c,null);d=this.b}else this.b!=null?b.Ch(c,OVd):b.Ch(c,null)}else{this.Rk(d);b.Ch(c,d)}Phd(a,this.d.Sk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Ch(c,null):this.b!=null?b.Ch(c,OVd):b.Ch(c,null)}else{this.Rk(d);b.Ch(c,d)}}};_.Uj=function mWd(a,b,c){var d,e;if(a.Kg()&&a.Lg()){d=(e=b.Bh(c),e==null?this.b:PD(e)===PD(OVd)?null:e);b.Dh(c);Phd(a,this.d.Sk(a,1,this.e,d,this.b))}else{b.Dh(c)}};_.Rk=function nWd(a){throw ubb(new Adb)};var S6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);acb(Wve,1,{},yWd);_.Sk=function zWd(a,b,c,d,e){return new ySd(a,b,c,d,e)};_.Tk=function AWd(a,b,c,d,e,f){return new ASd(a,b,c,d,e,f)};var oWd,pWd,qWd,rWd,sWd,tWd,uWd,vWd,wWd;var M6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',Wve);acb(1331,Wve,{},BWd);_.Sk=function CWd(a,b,c,d,e){return new DSd(a,b,c,Bcb(DD(d)),Bcb(DD(e)))};_.Tk=function DWd(a,b,c,d,e,f){return new ESd(a,b,c,Bcb(DD(d)),Bcb(DD(e)),f)};var E6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1331);acb(1332,Wve,{},EWd);_.Sk=function FWd(a,b,c,d,e){return new mSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Tk=function GWd(a,b,c,d,e,f){return new nSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var F6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1332);acb(1333,Wve,{},HWd);_.Sk=function IWd(a,b,c,d,e){return new oSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Tk=function JWd(a,b,c,d,e,f){return new pSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var G6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1333);acb(1334,Wve,{},KWd);_.Sk=function LWd(a,b,c,d,e){return new qSd(a,b,c,Ddb(ED(d)),Ddb(ED(e)))};_.Tk=function MWd(a,b,c,d,e,f){return new rSd(a,b,c,Ddb(ED(d)),Ddb(ED(e)),f)};var H6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1334);acb(1335,Wve,{},NWd);_.Sk=function OWd(a,b,c,d,e){return new sSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Tk=function PWd(a,b,c,d,e,f){return new tSd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var I6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1335);acb(1336,Wve,{},QWd);_.Sk=function RWd(a,b,c,d,e){return new uSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Tk=function SWd(a,b,c,d,e,f){return new vSd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var J6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1336);acb(1337,Wve,{},TWd);_.Sk=function UWd(a,b,c,d,e){return new wSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Tk=function VWd(a,b,c,d,e,f){return new xSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var K6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1337);acb(1338,Wve,{},WWd);_.Sk=function XWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Tk=function YWd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var L6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1338);acb(1316,563,{},ZWd);_.Rk=function $Wd(a){if(!this.a.vj(a)){throw ubb(new Bdb(Uve+rb(a)+Vve+this.a+"'"))}};var N6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1316);acb(1317,563,{},_Wd);_.Rk=function aXd(a){};var O6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1317);acb(770,563,{});_.Rj=function bXd(a,b,c){var d;d=b.Bh(c);return d!=null};_.Sj=function cXd(a,b,c,d){var e,f;if(a.Kg()&&a.Lg()){e=true;f=b.Bh(c);if(f==null){e=false;f=this.b}else PD(f)===PD(OVd)&&(f=null);if(d==null){if(this.c!=null){b.Ch(c,null);d=this.b}else{b.Ch(c,OVd)}}else{this.Rk(d);b.Ch(c,d)}Phd(a,this.d.Tk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Ch(c,null):b.Ch(c,OVd)}else{this.Rk(d);b.Ch(c,d)}}};_.Uj=function dXd(a,b,c){var d,e;if(a.Kg()&&a.Lg()){d=true;e=b.Bh(c);if(e==null){d=false;e=this.b}else PD(e)===PD(OVd)&&(e=null);b.Dh(c);Phd(a,this.d.Tk(a,2,this.e,e,this.b,d))}else{b.Dh(c)}};var R6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);acb(1318,770,{},eXd);_.Rk=function fXd(a){if(!this.a.vj(a)){throw ubb(new Bdb(Uve+rb(a)+Vve+this.a+"'"))}};var P6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1318);acb(1319,770,{},gXd);_.Rk=function hXd(a){};var Q6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1319);acb(398,504,{},iXd);_.Oj=function kXd(a,b,c,d,e){var f,g,h,i,j;j=b.Bh(c);if(this.Jj()&&PD(j)===PD(OVd)){return null}else if(this.rk()&&d&&j!=null){h=BD(j,49);if(h.jh()){i=sid(a,h);if(h!=i){if(!aKd(this.a,i)){throw ubb(new Bdb(Uve+rb(i)+Vve+this.a+"'"))}b.Ch(c,j=i);if(this.qk()){f=BD(i,49);g=h.hh(a,!this.b?-1-YKd(a.Sg(),this.e):YKd(h.Sg(),this.b),null,null);!f.dh()&&(g=f.fh(a,!this.b?-1-YKd(a.Sg(),this.e):YKd(f.Sg(),this.b),null,g));!!g&&g.Ei()}a.Kg()&&a.Lg()&&Phd(a,new ySd(a,9,this.e,h,i))}}return j}else{return j}};_.Pj=function lXd(a,b,c,d,e){var f,g;g=b.Bh(c);PD(g)===PD(OVd)&&(g=null);b.Ch(c,d);if(this.aj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.hh(a,YKd(f.Sg(),this.b),null,e)}}else this.qk()&&g!=null&&(e=BD(g,49).hh(a,-1-YKd(a.Sg(),this.e),null,e));if(a.Kg()&&a.Lg()){!e&&(e=new Dxd(4));e.Di(new ySd(a,1,this.e,g,d))}return e};_.Qj=function mXd(a,b,c,d,e){var f;f=b.Bh(c);PD(f)===PD(OVd)&&(f=null);b.Dh(c);if(a.Kg()&&a.Lg()){!e&&(e=new Dxd(4));this.Jj()?e.Di(new ySd(a,2,this.e,f,null)):e.Di(new ySd(a,1,this.e,f,null))}return e};_.Rj=function nXd(a,b,c){var d;d=b.Bh(c);return d!=null};_.Sj=function oXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!aKd(this.a,d)){throw ubb(new Bdb(Uve+(JD(d,56)?bLd(BD(d,56).Sg()):hdb(rb(d)))+Vve+this.a+"'"))}i=b.Bh(c);h=i!=null;this.Jj()&&PD(i)===PD(OVd)&&(i=null);g=null;if(this.aj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.hh(a,YKd(e.Sg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.fh(a,YKd(e.Sg(),this.b),null,g)}}}else if(this.qk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).hh(a,-1-YKd(a.Sg(),this.e),null,g));d!=null&&(g=BD(d,49).fh(a,-1-YKd(a.Sg(),this.e),null,g))}}d==null&&this.Jj()?b.Ch(c,OVd):b.Ch(c,d);if(a.Kg()&&a.Lg()){f=new ASd(a,1,this.e,i,d,this.Jj()&&!h);if(!g){Phd(a,f)}else{g.Di(f);g.Ei()}}else !!g&&g.Ei()};_.Uj=function pXd(a,b,c){var d,e,f,g,h;h=b.Bh(c);g=h!=null;this.Jj()&&PD(h)===PD(OVd)&&(h=null);f=null;if(h!=null){if(this.aj()){d=BD(h,49);f=d.hh(a,YKd(d.Sg(),this.b),null,f)}else this.qk()&&(f=BD(h,49).hh(a,-1-YKd(a.Sg(),this.e),null,f))}b.Dh(c);if(a.Kg()&&a.Lg()){e=new ASd(a,this.Jj()?2:1,this.e,h,null,g);if(!f){Phd(a,e)}else{f.Di(e);f.Ei()}}else !!f&&f.Ei()};_.aj=function qXd(){return false};_.qk=function rXd(){return false};_.rk=function sXd(){return false};_.Jj=function tXd(){return false};var g7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);acb(564,398,{},uXd);_.qk=function vXd(){return true};var $6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);acb(1322,564,{},wXd);_.rk=function xXd(){return true};var T6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1322);acb(772,564,{},yXd);_.Jj=function zXd(){return true};var V6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);acb(1324,772,{},AXd);_.rk=function BXd(){return true};var U6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1324);acb(640,564,{},CXd);_.aj=function DXd(){return true};var Z6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);acb(1323,640,{},EXd);_.rk=function FXd(){return true};var W6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1323);acb(773,640,{},GXd);_.Jj=function HXd(){return true};var Y6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);acb(1325,773,{},IXd);_.rk=function JXd(){return true};var X6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1325);acb(641,398,{},KXd);_.rk=function LXd(){return true};var c7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);acb(1326,641,{},MXd);_.Jj=function NXd(){return true};var _6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1326);acb(774,641,{},OXd);_.aj=function PXd(){return true};var b7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);acb(1327,774,{},QXd);_.Jj=function RXd(){return true};var a7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1327);acb(1320,398,{},SXd);_.Jj=function TXd(){return true};var d7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1320);acb(771,398,{},UXd);_.aj=function VXd(){return true};var f7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);acb(1321,771,{},WXd);_.Jj=function XXd(){return true};var e7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1321);acb(775,565,Tve,$Xd);_.Ok=function _Xd(a){return new $Xd(this.a,this.c,a)};_.dd=function aYd(){return this.b};_.Pk=function bYd(a,b,c){return YXd(this,a,this.b,c)};_.Qk=function cYd(a,b,c){return ZXd(this,a,this.b,c)};var i7=ldb(mte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);acb(1328,1,uve,dYd);_.Vj=function eYd(a){return this.a};_.ej=function fYd(){return JD(this.a,95)?BD(this.a,95).ej():!this.a.dc()};_.Wb=function gYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Wj=function hYd(){JD(this.a,95)?BD(this.a,95).Wj():this.a.$b()};var j7=ldb(mte,'EStructuralFeatureImpl/SettingMany',1328);acb(1329,565,Tve,iYd);_.Nk=function jYd(a){return new nYd((L8d(),K8d),this.b.Hh(this.a,a))};_.dd=function kYd(){return null};_.Pk=function lYd(a,b,c){return c};_.Qk=function mYd(a,b,c){return c};var k7=ldb(mte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1329);acb(642,565,Tve,nYd);_.Nk=function oYd(a){return new nYd(this.c,a)};_.dd=function pYd(){return this.a};_.Pk=function qYd(a,b,c){return c};_.Qk=function rYd(a,b,c){return c};var l7=ldb(mte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);acb(391,497,jue,sYd);_.qi=function tYd(a){return KC(b5,Phe,26,a,0,1)};_.mi=function uYd(){return false};var n7=ldb(mte,'ESuperAdapter/1',391);acb(445,439,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,835:1,49:1,97:1,150:1,445:1,114:1,115:1},wYd);_.$g=function xYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new FYd(this,i5,this)),this.a;}return Yhd(this,a-XKd((eGd(),dGd)),SKd((d=BD(vjd(this,16),26),!d?dGd:d),a),b,c)};_.ih=function yYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 2:return !this.a&&(this.a=new FYd(this,i5,this)),Oxd(this.a,a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),dGd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),dGd)),a,c)};_.kh=function zYd(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 Zhd(this,a-XKd((eGd(),dGd)),SKd((b=BD(vjd(this,16),26),!b?dGd:b),a))};_.rh=function AYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:knd(this,GD(b));return;case 2:!this.a&&(this.a=new FYd(this,i5,this));Pxd(this.a);!this.a&&(this.a=new FYd(this,i5,this));ttd(this.a,BD(b,14));return;}$hd(this,a-XKd((eGd(),dGd)),SKd((c=BD(vjd(this,16),26),!c?dGd:c),a),b)};_.yh=function BYd(){return eGd(),dGd};_.Ah=function CYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:knd(this,null);return;case 2:!this.a&&(this.a=new FYd(this,i5,this));Pxd(this.a);return;}_hd(this,a-XKd((eGd(),dGd)),SKd((b=BD(vjd(this,16),26),!b?dGd:b),a))};var t7=ldb(mte,'ETypeParameterImpl',445);acb(446,85,Lve,FYd);_.bj=function GYd(a,b){return DYd(this,BD(a,87),b)};_.cj=function HYd(a,b){return EYd(this,BD(a,87),b)};var p7=ldb(mte,'ETypeParameterImpl/1',446);acb(634,43,ake,IYd);_.ec=function JYd(){return new MYd(this)};var s7=ldb(mte,'ETypeParameterImpl/2',634);acb(556,_he,aie,MYd);_.Fc=function NYd(a){return KYd(this,BD(a,87))};_.Gc=function OYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Qhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function PYd(){Thb(this.a)};_.Hc=function QYd(a){return Lhb(this.a,a)};_.Kc=function RYd(){var a;return a=new mib((new dib(this.a)).a),new UYd(a)};_.Mc=function SYd(a){return LYd(this,a)};_.gc=function TYd(){return Uhb(this.a)};var r7=ldb(mte,'ETypeParameterImpl/2/1',556);acb(557,1,Xhe,UYd);_.Nb=function VYd(a){Qrb(this,a)};_.Pb=function XYd(){return BD(kib(this.a).cd(),87)};_.Ob=function WYd(){return this.a.b};_.Qb=function YYd(){lib(this.a)};var q7=ldb(mte,'ETypeParameterImpl/2/1/1',557);acb(1275,43,ake,ZYd);_._b=function $Yd(a){return ND(a)?Phb(this,a):!!hrb(this.f,a)};_.xc=function _Yd(a){var b,c;b=ND(a)?Ohb(this,a):Wd(hrb(this.f,a));if(JD(b,836)){c=BD(b,836);b=c.$j();Qhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(b5d(),a5d):null};var v7=ldb(mte,'EValidatorRegistryImpl',1275);acb(1312,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1940:1,49:1,97:1,150:1,114:1,115:1},hZd);_.Hh=function iZd(a,b){switch(a.xj()){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:ecb(b);case 25:return bZd(b);case 27:return cZd(b);case 28:return dZd(b);case 29:return b==null?null:xQd(Kmd[0],BD(b,199));case 41:return b==null?'':gdb(BD(b,289));case 42:return ecb(b);case 50:return GD(b);default:throw ubb(new Vdb(pte+a.ne()+qte));}};_.Ih=function jZd(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=YJd(a),m?CLd(m.Lh(),a):-1)),a.G){case 0:return c=new JJd,c;case 1:return b=new MHd,b;case 2:return d=new cLd,d;case 4:return e=new HPd,e;case 5:return f=new XPd,f;case 6:return g=new mQd,g;case 7:return h=new Vmd,h;case 10:return j=new HGd,j;case 11:return k=new NSd,k;case 12:return l=new _nd,l;case 13:return n=new mUd,n;case 14:return o=new AUd,o;case 17:return p=new SUd,p;case 18:return i=new PQd,i;case 19:return q=new wYd,q;default:throw ubb(new Vdb(tte+a.zb+qte));}};_.Jh=function kZd(a,b){switch(a.xj()){case 20:return b==null?null:new sgb(b);case 21:return b==null?null:new Xgb(b);case 23:case 22:return b==null?null:aZd(b);case 26:case 24:return b==null?null:Rcb(Hcb(b,-128,127)<<24>>24);case 25:return Smd(b);case 27:return eZd(b);case 28:return fZd(b);case 29:return gZd(b);case 32:case 31:return b==null?null:Gcb(b);case 38:case 37:return b==null?null:new Ndb(b);case 40:case 39:return b==null?null:leb(Hcb(b,Mie,Jhe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:zeb(Icb(b));case 49:case 48:return b==null?null:Veb(Hcb(b,Yve,32767)<<16>>16);case 50:return b;default:throw ubb(new Vdb(pte+a.ne()+qte));}};var w7=ldb(mte,'EcoreFactoryImpl',1312);acb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1938:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},vZd);_.gb=false;_.hb=false;var mZd,nZd=false;var n8=ldb(mte,'EcorePackageImpl',547);acb(1183,1,{836:1},zZd);_.$j=function AZd(){return D6d(),C6d};var H7=ldb(mte,'EcorePackageImpl/1',1183);acb(1192,1,jwe,BZd);_.vj=function CZd(a){return JD(a,147)};_.wj=function DZd(a){return KC(j5,Phe,147,a,0,1)};var x7=ldb(mte,'EcorePackageImpl/10',1192);acb(1193,1,jwe,EZd);_.vj=function FZd(a){return JD(a,191)};_.wj=function GZd(a){return KC(k5,Phe,191,a,0,1)};var y7=ldb(mte,'EcorePackageImpl/11',1193);acb(1194,1,jwe,HZd);_.vj=function IZd(a){return JD(a,56)};_.wj=function JZd(a){return KC(l5,Phe,56,a,0,1)};var z7=ldb(mte,'EcorePackageImpl/12',1194);acb(1195,1,jwe,KZd);_.vj=function LZd(a){return JD(a,399)};_.wj=function MZd(a){return KC(m5,Jve,59,a,0,1)};var A7=ldb(mte,'EcorePackageImpl/13',1195);acb(1196,1,jwe,NZd);_.vj=function OZd(a){return JD(a,235)};_.wj=function PZd(a){return KC(n5,Phe,235,a,0,1)};var B7=ldb(mte,'EcorePackageImpl/14',1196);acb(1197,1,jwe,QZd);_.vj=function RZd(a){return JD(a,509)};_.wj=function SZd(a){return KC(o5,Phe,2016,a,0,1)};var C7=ldb(mte,'EcorePackageImpl/15',1197);acb(1198,1,jwe,TZd);_.vj=function UZd(a){return JD(a,99)};_.wj=function VZd(a){return KC(p5,Ive,18,a,0,1)};var D7=ldb(mte,'EcorePackageImpl/16',1198);acb(1199,1,jwe,WZd);_.vj=function XZd(a){return JD(a,170)};_.wj=function YZd(a){return KC(s5,Ive,170,a,0,1)};var E7=ldb(mte,'EcorePackageImpl/17',1199);acb(1200,1,jwe,ZZd);_.vj=function $Zd(a){return JD(a,472)};_.wj=function _Zd(a){return KC(u5,Phe,472,a,0,1)};var F7=ldb(mte,'EcorePackageImpl/18',1200);acb(1201,1,jwe,a$d);_.vj=function b$d(a){return JD(a,548)};_.wj=function c$d(a){return KC(w6,fve,548,a,0,1)};var G7=ldb(mte,'EcorePackageImpl/19',1201);acb(1184,1,jwe,d$d);_.vj=function e$d(a){return JD(a,322)};_.wj=function f$d(a){return KC(a5,Ive,34,a,0,1)};var S7=ldb(mte,'EcorePackageImpl/2',1184);acb(1202,1,jwe,g$d);_.vj=function h$d(a){return JD(a,241)};_.wj=function i$d(a){return KC(i5,Pve,87,a,0,1)};var I7=ldb(mte,'EcorePackageImpl/20',1202);acb(1203,1,jwe,j$d);_.vj=function k$d(a){return JD(a,445)};_.wj=function l$d(a){return KC(t5,Phe,835,a,0,1)};var J7=ldb(mte,'EcorePackageImpl/21',1203);acb(1204,1,jwe,m$d);_.vj=function n$d(a){return KD(a)};_.wj=function o$d(a){return KC(wI,iie,476,a,8,1)};var K7=ldb(mte,'EcorePackageImpl/22',1204);acb(1205,1,jwe,p$d);_.vj=function q$d(a){return JD(a,190)};_.wj=function r$d(a){return KC(SD,iie,190,a,0,2)};var L7=ldb(mte,'EcorePackageImpl/23',1205);acb(1206,1,jwe,s$d);_.vj=function t$d(a){return JD(a,217)};_.wj=function u$d(a){return KC(xI,iie,217,a,0,1)};var M7=ldb(mte,'EcorePackageImpl/24',1206);acb(1207,1,jwe,v$d);_.vj=function w$d(a){return JD(a,172)};_.wj=function x$d(a){return KC(yI,iie,172,a,0,1)};var N7=ldb(mte,'EcorePackageImpl/25',1207);acb(1208,1,jwe,y$d);_.vj=function z$d(a){return JD(a,199)};_.wj=function A$d(a){return KC($J,iie,199,a,0,1)};var O7=ldb(mte,'EcorePackageImpl/26',1208);acb(1209,1,jwe,B$d);_.vj=function C$d(a){return false};_.wj=function D$d(a){return KC(N4,Phe,2109,a,0,1)};var P7=ldb(mte,'EcorePackageImpl/27',1209);acb(1210,1,jwe,E$d);_.vj=function F$d(a){return LD(a)};_.wj=function G$d(a){return KC(BI,iie,333,a,7,1)};var Q7=ldb(mte,'EcorePackageImpl/28',1210);acb(1211,1,jwe,H$d);_.vj=function I$d(a){return JD(a,58)};_.wj=function J$d(a){return KC(S4,_le,58,a,0,1)};var R7=ldb(mte,'EcorePackageImpl/29',1211);acb(1185,1,jwe,K$d);_.vj=function L$d(a){return JD(a,510)};_.wj=function M$d(a){return KC(_4,{3:1,4:1,5:1,1933:1},590,a,0,1)};var b8=ldb(mte,'EcorePackageImpl/3',1185);acb(1212,1,jwe,N$d);_.vj=function O$d(a){return JD(a,573)};_.wj=function P$d(a){return KC(T4,Phe,1939,a,0,1)};var T7=ldb(mte,'EcorePackageImpl/30',1212);acb(1213,1,jwe,Q$d);_.vj=function R$d(a){return JD(a,153)};_.wj=function S$d(a){return KC(N9,_le,153,a,0,1)};var U7=ldb(mte,'EcorePackageImpl/31',1213);acb(1214,1,jwe,T$d);_.vj=function U$d(a){return JD(a,72)};_.wj=function V$d(a){return KC(D9,kwe,72,a,0,1)};var V7=ldb(mte,'EcorePackageImpl/32',1214);acb(1215,1,jwe,W$d);_.vj=function X$d(a){return JD(a,155)};_.wj=function Y$d(a){return KC(FI,iie,155,a,0,1)};var W7=ldb(mte,'EcorePackageImpl/33',1215);acb(1216,1,jwe,Z$d);_.vj=function $$d(a){return JD(a,19)};_.wj=function _$d(a){return KC(JI,iie,19,a,0,1)};var X7=ldb(mte,'EcorePackageImpl/34',1216);acb(1217,1,jwe,a_d);_.vj=function b_d(a){return JD(a,289)};_.wj=function c_d(a){return KC(AI,Phe,289,a,0,1)};var Y7=ldb(mte,'EcorePackageImpl/35',1217);acb(1218,1,jwe,d_d);_.vj=function e_d(a){return JD(a,162)};_.wj=function f_d(a){return KC(MI,iie,162,a,0,1)};var Z7=ldb(mte,'EcorePackageImpl/36',1218);acb(1219,1,jwe,g_d);_.vj=function h_d(a){return JD(a,83)};_.wj=function i_d(a){return KC(DK,Phe,83,a,0,1)};var $7=ldb(mte,'EcorePackageImpl/37',1219);acb(1220,1,jwe,j_d);_.vj=function k_d(a){return JD(a,591)};_.wj=function l_d(a){return KC(u8,Phe,591,a,0,1)};var _7=ldb(mte,'EcorePackageImpl/38',1220);acb(1221,1,jwe,m_d);_.vj=function n_d(a){return false};_.wj=function o_d(a){return KC(t8,Phe,2110,a,0,1)};var a8=ldb(mte,'EcorePackageImpl/39',1221);acb(1186,1,jwe,p_d);_.vj=function q_d(a){return JD(a,88)};_.wj=function r_d(a){return KC(b5,Phe,26,a,0,1)};var h8=ldb(mte,'EcorePackageImpl/4',1186);acb(1222,1,jwe,s_d);_.vj=function t_d(a){return JD(a,184)};_.wj=function u_d(a){return KC(UI,iie,184,a,0,1)};var c8=ldb(mte,'EcorePackageImpl/40',1222);acb(1223,1,jwe,v_d);_.vj=function w_d(a){return ND(a)};_.wj=function x_d(a){return KC(ZI,iie,2,a,6,1)};var d8=ldb(mte,'EcorePackageImpl/41',1223);acb(1224,1,jwe,y_d);_.vj=function z_d(a){return JD(a,588)};_.wj=function A_d(a){return KC(W4,Phe,588,a,0,1)};var e8=ldb(mte,'EcorePackageImpl/42',1224);acb(1225,1,jwe,B_d);_.vj=function C_d(a){return false};_.wj=function D_d(a){return KC(U4,iie,2111,a,0,1)};var f8=ldb(mte,'EcorePackageImpl/43',1225);acb(1226,1,jwe,E_d);_.vj=function F_d(a){return JD(a,42)};_.wj=function G_d(a){return KC(CK,uie,42,a,0,1)};var g8=ldb(mte,'EcorePackageImpl/44',1226);acb(1187,1,jwe,H_d);_.vj=function I_d(a){return JD(a,138)};_.wj=function J_d(a){return KC(c5,Phe,138,a,0,1)};var i8=ldb(mte,'EcorePackageImpl/5',1187);acb(1188,1,jwe,K_d);_.vj=function L_d(a){return JD(a,148)};_.wj=function M_d(a){return KC(e5,Phe,148,a,0,1)};var j8=ldb(mte,'EcorePackageImpl/6',1188);acb(1189,1,jwe,N_d);_.vj=function O_d(a){return JD(a,457)};_.wj=function P_d(a){return KC(g5,Phe,671,a,0,1)};var k8=ldb(mte,'EcorePackageImpl/7',1189);acb(1190,1,jwe,Q_d);_.vj=function R_d(a){return JD(a,573)};_.wj=function S_d(a){return KC(f5,Phe,678,a,0,1)};var l8=ldb(mte,'EcorePackageImpl/8',1190);acb(1191,1,jwe,T_d);_.vj=function U_d(a){return JD(a,471)};_.wj=function V_d(a){return KC(h5,Phe,471,a,0,1)};var m8=ldb(mte,'EcorePackageImpl/9',1191);acb(xve,1981,dve,Z_d);_.ai=function $_d(a,b){W_d(this,BD(b,416))};_.ei=function __d(a,b){X_d(this,a,BD(b,416))};var p8=ldb(mte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',xve);acb(1025,143,ave,a0d);_.zi=function b0d(){return this.a.a};var o8=ldb(mte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1025);acb(1052,1051,{},d0d);var s8=ldb('org.eclipse.emf.ecore.plugin','EcorePlugin',1052);var u8=ndb(lwe,'Resource');acb(781,1377,mwe);_.Xk=function h0d(a){};_.Yk=function i0d(a){};_.Uk=function j0d(){return !this.a&&(this.a=new u0d(this)),this.a};_.Vk=function k0d(a){var b,c,d,e,f;d=a.length;if(d>0){ACb(0,a.length);if(a.charCodeAt(0)==47){f=new Rkb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return f0d(this,a)};_.Wk=function l0d(){return this.c};_.Ib=function m0d(){var a;return gdb(this.fm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var y8=ldb(nwe,'ResourceImpl',781);acb(1378,781,mwe,n0d);var v8=ldb(nwe,'BinaryResourceImpl',1378);acb(1168,694,kue);_.ri=function q0d(a){return JD(a,56)?o0d(this,BD(a,56)):JD(a,591)?new Ayd(BD(a,591).Uk()):PD(a)===PD(this.f)?BD(a,14).Kc():(GCd(),FCd.a)};_.Ob=function r0d(){return p0d(this)};_.a=false;var y9=ldb(tve,'EcoreUtil/ContentTreeIterator',1168);acb(1379,1168,kue,s0d);_.ri=function t0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new x6d(BD(a,56))};var w8=ldb(nwe,'ResourceImpl/5',1379);acb(648,1993,Kve,u0d);_.Hc=function v0d(a){return this.i<=4?kud(this,a):JD(a,49)&&BD(a,49).Yg()==this.a};_.ai=function w0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.ci=function x0d(a,b){a==0?this.a.b||(this.a.b=true,null):vtd(this,a,b)};_.ei=function y0d(a,b){};_.fi=function z0d(a,b,c){};_._i=function A0d(){return 2};_.zi=function B0d(){return this.a};_.aj=function C0d(){return true};_.bj=function D0d(a,b){var c;c=BD(a,49);b=c.vh(this.a,b);return b};_.cj=function E0d(a,b){var c;c=BD(a,49);return c.vh(null,b)};_.dj=function F0d(){return false};_.gi=function G0d(){return true};_.qi=function H0d(a){return KC(l5,Phe,56,a,0,1)};_.mi=function I0d(){return false};var x8=ldb(nwe,'ResourceImpl/ContentsEList',648);acb(956,1963,Gie,J0d);_.Zc=function K0d(a){return this.a.$h(a)};_.gc=function L0d(){return this.a.gc()};var z8=ldb(tve,'AbstractSequentialInternalEList/1',956);var F6d,G6d,H6d,I6d;acb(624,1,{},t1d);var M0d,N0d;var F8=ldb(tve,'BasicExtendedMetaData',624);acb(1159,1,{},x1d);_.Zk=function y1d(){return null};_.$k=function z1d(){this.a==-2&&v1d(this,R0d(this.d,this.b));return this.a};_._k=function A1d(){return null};_.al=function B1d(){return lmb(),lmb(),imb};_.ne=function C1d(){this.c==Cwe&&w1d(this,W0d(this.d,this.b));return this.c};_.bl=function D1d(){return 0};_.a=-2;_.c=Cwe;var B8=ldb(tve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1159);acb(1160,1,{},J1d);_.Zk=function K1d(){this.a==(O0d(),M0d)&&E1d(this,Q0d(this.f,this.b));return this.a};_.$k=function L1d(){return 0};_._k=function M1d(){this.c==(O0d(),M0d)&&F1d(this,U0d(this.f,this.b));return this.c};_.al=function N1d(){!this.d&&G1d(this,V0d(this.f,this.b));return this.d};_.ne=function O1d(){this.e==Cwe&&H1d(this,W0d(this.f,this.b));return this.e};_.bl=function P1d(){this.g==-2&&I1d(this,Z0d(this.f,this.b));return this.g};_.e=Cwe;_.g=-2;var C8=ldb(tve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1160);acb(1158,1,{},T1d);_.b=false;_.c=false;var D8=ldb(tve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1158);acb(1161,1,{},e2d);_.c=-2;_.e=Cwe;_.f=Cwe;var E8=ldb(tve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1161);acb(585,622,Lve,f2d);_._i=function g2d(){return this.c};_.Ek=function h2d(){return false};_.ki=function i2d(a,b){return b};_.c=0;var S8=ldb(tve,'EDataTypeEList',585);var N9=ndb(tve,'FeatureMap');acb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1936:1,69:1,95:1},p3d);_.Vc=function q3d(a,b){j2d(this,a,BD(b,72))};_.Fc=function r3d(a){return m2d(this,BD(a,72))};_.Xh=function w3d(a){r2d(this,BD(a,72))};_.bj=function H3d(a,b){return J2d(this,BD(a,72),b)};_.cj=function I3d(a,b){return L2d(this,BD(a,72),b)};_.hi=function K3d(a,b){return R2d(this,a,b)};_.ki=function M3d(a,b){return W2d(this,a,BD(b,72))};_._c=function O3d(a,b){return Z2d(this,a,BD(b,72))};_.ij=function S3d(a,b){return d3d(this,BD(a,72),b)};_.jj=function T3d(a,b){return f3d(this,BD(a,72),b)};_.kj=function U3d(a,b,c){return g3d(this,BD(a,72),BD(b,72),c)};_.ni=function W3d(a,b){return o3d(this,a,BD(b,72))};_.cl=function s3d(a,b){return l2d(this,a,b)};_.Wc=function t3d(a,b){var c,d,e,f,g,h,i,j,k;j=new uud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d._j();if(O6d(this.e,f)){(!f.gi()||!z2d(this,f,d.dd())&&!kud(j,d))&&rtd(j,d)}else{k=N6d(this.e.Sg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.ql(b._j())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var G8=ldb(tve,'BasicFeatureMap/FeatureEIterator',411);acb(662,411,eie,n4d);_.Kk=function o4d(){return true};var H8=ldb(tve,'BasicFeatureMap/ResolvingFeatureEIterator',662);acb(954,486,Rve,p4d);_.Fi=function q4d(){return this};var L8=ldb(tve,'EContentsEList/1',954);acb(955,486,Rve,r4d);_.Kk=function s4d(){return false};var M8=ldb(tve,'EContentsEList/2',955);acb(953,278,Sve,t4d);_.Mk=function u4d(a){};_.Ob=function v4d(){return false};_.Sb=function w4d(){return false};var N8=ldb(tve,'EContentsEList/FeatureIteratorImpl/1',953);acb(824,585,Lve,x4d);_.bi=function y4d(){this.a=true};_.ej=function z4d(){return this.a};_.Wj=function A4d(){var a;Pxd(this);if(jid(this.e)){a=this.a;this.a=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var R8=ldb(tve,'EDataTypeEList/Unsettable',824);acb(1848,585,Lve,B4d);_.gi=function C4d(){return true};var U8=ldb(tve,'EDataTypeUniqueEList',1848);acb(1849,824,Lve,D4d);_.gi=function E4d(){return true};var T8=ldb(tve,'EDataTypeUniqueEList/Unsettable',1849);acb(139,85,Lve,F4d);_.Dk=function G4d(){return true};_.ki=function H4d(a,b){return DLd(this,a,BD(b,56))};var V8=ldb(tve,'EObjectContainmentEList/Resolving',139);acb(1162,545,Lve,I4d);_.Dk=function J4d(){return true};_.ki=function K4d(a,b){return DLd(this,a,BD(b,56))};var W8=ldb(tve,'EObjectContainmentEList/Unsettable/Resolving',1162);acb(748,16,Lve,L4d);_.bi=function M4d(){this.a=true};_.ej=function N4d(){return this.a};_.Wj=function O4d(){var a;Pxd(this);if(jid(this.e)){a=this.a;this.a=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var _8=ldb(tve,'EObjectContainmentWithInverseEList/Unsettable',748);acb(1172,748,Lve,P4d);_.Dk=function Q4d(){return true};_.ki=function R4d(a,b){return DLd(this,a,BD(b,56))};var $8=ldb(tve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1172);acb(743,496,Lve,S4d);_.bi=function T4d(){this.a=true};_.ej=function U4d(){return this.a};_.Wj=function V4d(){var a;Pxd(this);if(jid(this.e)){a=this.a;this.a=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var b9=ldb(tve,'EObjectEList/Unsettable',743);acb(328,496,Lve,W4d);_.Dk=function X4d(){return true};_.ki=function Y4d(a,b){return DLd(this,a,BD(b,56))};var e9=ldb(tve,'EObjectResolvingEList',328);acb(1640,743,Lve,Z4d);_.Dk=function $4d(){return true};_.ki=function _4d(a,b){return DLd(this,a,BD(b,56))};var d9=ldb(tve,'EObjectResolvingEList/Unsettable',1640);acb(1380,1,{},c5d);var a5d;var f9=ldb(tve,'EObjectValidator',1380);acb(546,496,Lve,d5d);_.yk=function e5d(){return this.d};_.zk=function f5d(){return this.b};_.aj=function g5d(){return true};_.Ck=function h5d(){return true};_.b=0;var j9=ldb(tve,'EObjectWithInverseEList',546);acb(1175,546,Lve,i5d);_.Bk=function j5d(){return true};var g9=ldb(tve,'EObjectWithInverseEList/ManyInverse',1175);acb(625,546,Lve,k5d);_.bi=function l5d(){this.a=true};_.ej=function m5d(){return this.a};_.Wj=function n5d(){var a;Pxd(this);if(jid(this.e)){a=this.a;this.a=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var i9=ldb(tve,'EObjectWithInverseEList/Unsettable',625);acb(1174,625,Lve,o5d);_.Bk=function p5d(){return true};var h9=ldb(tve,'EObjectWithInverseEList/Unsettable/ManyInverse',1174);acb(749,546,Lve,q5d);_.Dk=function r5d(){return true};_.ki=function s5d(a,b){return DLd(this,a,BD(b,56))};var n9=ldb(tve,'EObjectWithInverseResolvingEList',749);acb(31,749,Lve,t5d);_.Bk=function u5d(){return true};var k9=ldb(tve,'EObjectWithInverseResolvingEList/ManyInverse',31);acb(750,625,Lve,v5d);_.Dk=function w5d(){return true};_.ki=function x5d(a,b){return DLd(this,a,BD(b,56))};var m9=ldb(tve,'EObjectWithInverseResolvingEList/Unsettable',750);acb(1173,750,Lve,y5d);_.Bk=function z5d(){return true};var l9=ldb(tve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1173);acb(1163,622,Lve);_._h=function A5d(){return (this.b&1792)==0};_.bi=function B5d(){this.b|=1};_.Ak=function C5d(){return (this.b&4)!=0};_.aj=function D5d(){return (this.b&40)!=0};_.Bk=function E5d(){return (this.b&16)!=0};_.Ck=function F5d(){return (this.b&8)!=0};_.Dk=function G5d(){return (this.b&zve)!=0};_.qk=function H5d(){return (this.b&32)!=0};_.Ek=function I5d(){return (this.b&xve)!=0};_.vj=function J5d(a){return !this.d?this._j().Xj().vj(a):lEd(this.d,a)};_.ej=function K5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.gi=function L5d(){return (this.b&128)!=0};_.Wj=function N5d(){var a;Pxd(this);if((this.b&2)!=0){if(jid(this.e)){a=(this.b&1)!=0;this.b&=-2;BLd(this,new lSd(this.e,2,YKd(this.e.Sg(),this._j()),a,false))}else{this.b&=-2}}};_.mi=function O5d(){return (this.b&1536)==0};_.b=0;var p9=ldb(tve,'EcoreEList/Generic',1163);acb(1164,1163,Lve,P5d);_._j=function Q5d(){return this.a};var o9=ldb(tve,'EcoreEList/Dynamic',1164);acb(747,63,jue,R5d);_.qi=function S5d(a){return dzd(this.a.a,a)};var t9=ldb(tve,'EcoreEMap/1',747);acb(746,85,Lve,T5d);_.ai=function U5d(a,b){pAd(this.b,BD(b,133))};_.ci=function V5d(a,b){oAd(this.b)};_.di=function W5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.ei=function X5d(a,b){qAd(this.b,BD(b,133))};_.fi=function Y5d(a,b,c){qAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Sh(xAd(BD(b,133).cd()));pAd(this.b,BD(b,133))};var u9=ldb(tve,'EcoreEMap/DelegateEObjectContainmentEList',746);acb(1170,151,vve,Z5d);var w9=ldb(tve,'EcoreEMap/Unsettable',1170);acb(1171,746,Lve,$5d);_.bi=function _5d(){this.a=true};_.ej=function a6d(){return this.a};_.Wj=function b6d(){var a;Pxd(this);if(jid(this.e)){a=this.a;this.a=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var v9=ldb(tve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1171);acb(1167,228,ake,v6d);_.a=false;_.b=false;var z9=ldb(tve,'EcoreUtil/Copier',1167);acb(745,1,Xhe,x6d);_.Nb=function y6d(a){Qrb(this,a)};_.Ob=function z6d(){return w6d(this)};_.Pb=function A6d(){var a;w6d(this);a=this.b;this.b=null;return a};_.Qb=function B6d(){this.a.Qb()};var A9=ldb(tve,'EcoreUtil/ProperContentIterator',745);acb(1381,1380,{},E6d);var C6d;var B9=ldb(tve,'EcoreValidator',1381);var K6d;var M9=ndb(tve,'FeatureMapUtil/Validator');acb(1259,1,{1941:1},P6d);_.ql=function Q6d(a){return true};var E9=ldb(tve,'FeatureMapUtil/1',1259);acb(757,1,{1941:1},U6d);_.ql=function V6d(a){var b;if(this.c==a)return true;b=DD(Nhb(this.a,a));if(b==null){if(T6d(this,a)){W6d(this.a,a,(Acb(),zcb));return true}else{W6d(this.a,a,(Acb(),ycb));return false}}else{return b==(Acb(),zcb)}};_.e=false;var R6d;var H9=ldb(tve,'FeatureMapUtil/BasicValidator',757);acb(758,43,ake,X6d);var G9=ldb(tve,'FeatureMapUtil/BasicValidator/Cache',758);acb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},a7d);_.Vc=function b7d(a,b){k2d(this.c,this.b,a,b)};_.Fc=function c7d(a){return l2d(this.c,this.b,a)};_.Wc=function d7d(a,b){return n2d(this.c,this.b,a,b)};_.Gc=function e7d(a){return Y6d(this,a)};_.Wh=function f7d(a,b){p2d(this.c,this.b,a,b)};_.kk=function g7d(a,b){return s2d(this.c,this.b,a,b)};_.oi=function h7d(a){return E2d(this.c,this.b,a,false)};_.Yh=function i7d(){return t2d(this.c,this.b)};_.Zh=function j7d(){return u2d(this.c,this.b)};_.$h=function k7d(a){return v2d(this.c,this.b,a)};_.lk=function l7d(a,b){return Z6d(this,a,b)};_.$b=function m7d(){$6d(this)};_.Hc=function n7d(a){return z2d(this.c,this.b,a)};_.Ic=function o7d(a){return B2d(this.c,this.b,a)};_.Xb=function p7d(a){return E2d(this.c,this.b,a,true)};_.Vj=function q7d(a){return this};_.Xc=function r7d(a){return G2d(this.c,this.b,a)};_.dc=function s7d(){return _6d(this)};_.ej=function t7d(){return !M2d(this.c,this.b)};_.Kc=function u7d(){return N2d(this.c,this.b)};_.Yc=function v7d(){return P2d(this.c,this.b)};_.Zc=function w7d(a){return Q2d(this.c,this.b,a)};_.hi=function x7d(a,b){return S2d(this.c,this.b,a,b)};_.ii=function y7d(a,b){T2d(this.c,this.b,a,b)};_.$c=function z7d(a){return U2d(this.c,this.b,a)};_.Mc=function A7d(a){return V2d(this.c,this.b,a)};_._c=function B7d(a,b){return _2d(this.c,this.b,a,b)};_.Wb=function C7d(a){y2d(this.c,this.b);Y6d(this,BD(a,15))};_.gc=function D7d(){return i3d(this.c,this.b)};_.Pc=function E7d(){return j3d(this.c,this.b)};_.Qc=function F7d(a){return l3d(this.c,this.b,a)};_.Ib=function G7d(){var a,b;b=new Gfb;b.a+='[';for(a=t2d(this.c,this.b);Y3d(a);){Dfb(b,wfb($3d(a)));Y3d(a)&&(b.a+=Nhe,b)}b.a+=']';return b.a};_.Wj=function H7d(){y2d(this.c,this.b)};var I9=ldb(tve,'FeatureMapUtil/FeatureEList',501);acb(627,36,ave,J7d);_.xi=function K7d(a){return I7d(this,a)};_.Ci=function L7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){this.g=a.yi();a.wi()==1&&(this.d=1);return true}break}case 3:{e=a.wi();switch(e){case 3:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){this.d=5;b=new uud(2);rtd(b,this.g);rtd(b,a.yi());this.g=b;return true}break}}break}case 5:{e=a.wi();switch(e){case 3:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){c=BD(this.g,14);c.Fc(a.yi());return true}break}}break}case 4:{e=a.wi();switch(e){case 3:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){this.d=1;this.g=a.yi();return true}break}case 4:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){this.d=6;h=new uud(2);rtd(h,this.n);rtd(h,a.Ai());this.n=h;g=OC(GC(WD,1),jje,25,15,[this.o,a.Bi()]);this.g=g;return true}break}}break}case 6:{e=a.wi();switch(e){case 4:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){c=BD(this.n,14);c.Fc(a.Ai());g=BD(this.g,48);d=KC(WD,jje,25,g.length+1,15,1);Zfb(g,0,d,0,g.length);d[g.length]=a.Bi();this.g=d;return true}break}}break}}return false};var J9=ldb(tve,'FeatureMapUtil/FeatureENotificationImpl',627);acb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1936:1,69:1,95:1},M7d);_.cl=function N7d(a,b){return l2d(this.c,a,b)};_.dl=function O7d(a,b,c){return s2d(this.c,a,b,c)};_.el=function P7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function Q7d(){return this};_.gl=function R7d(a,b){return F2d(this.c,a,b)};_.hl=function S7d(a){return BD(E2d(this.c,this.b,a,false),72)._j()};_.il=function T7d(a){return BD(E2d(this.c,this.b,a,false),72).dd()};_.jl=function U7d(){return this.a};_.kl=function V7d(a){return !M2d(this.c,a)};_.ll=function W7d(a,b){a3d(this.c,a,b)};_.ml=function X7d(a){return b3d(this.c,a)};_.nl=function Y7d(a){n3d(this.c,a)};var K9=ldb(tve,'FeatureMapUtil/FeatureFeatureMap',552);acb(1258,1,uve,Z7d);_.Vj=function $7d(a){return E2d(this.b,this.a,-1,a)};_.ej=function _7d(){return !M2d(this.b,this.a)};_.Wb=function a8d(a){a3d(this.b,this.a,a)};_.Wj=function b8d(){y2d(this.b,this.a)};var L9=ldb(tve,'FeatureMapUtil/FeatureValue',1258);var c8d,d8d,e8d,f8d,g8d;var P9=ndb(Ewe,'AnyType');acb(666,60,Oie,i8d);var Q9=ldb(Ewe,'InvalidDatatypeValueException',666);var R9=ndb(Ewe,Fwe);var S9=ndb(Ewe,Gwe);var T9=ndb(Ewe,Hwe);var j8d;var l8d;var n8d,o8d,p8d,q8d,r8d,s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d;acb(829,506,{105:1,92:1,90:1,56:1,49:1,97:1,842:1},M8d);_.$g=function N8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new p3d(this,0)),this.c;return !this.c&&(this.c=new p3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153);return (!this.c&&(this.c=new p3d(this,0)),BD(BD(O2d(this.c,(L8d(),o8d)),153),215)).jl();case 2:if(c)return !this.b&&(this.b=new p3d(this,2)),this.b;return !this.b&&(this.b=new p3d(this,2)),this.b.b;}return Yhd(this,a-XKd(this.yh()),SKd((this.j&2)==0?this.yh():(!this.k&&(this.k=new CGd),this.k).bk(),a),b,c)};_.ih=function O8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new p3d(this,0)),w2d(this.c,a,c);case 1:return (!this.c&&(this.c=new p3d(this,0)),BD(BD(O2d(this.c,(L8d(),o8d)),153),69)).lk(a,c);case 2:return !this.b&&(this.b=new p3d(this,2)),w2d(this.b,a,c);}return d=BD(SKd((this.j&2)==0?this.yh():(!this.k&&(this.k=new CGd),this.k).bk(),b),66),d.Mj().Qj(this,vid(this),b-XKd(this.yh()),a,c)};_.kh=function P8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return Zhd(this,a-XKd(this.yh()),SKd((this.j&2)==0?this.yh():(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.rh=function Q8d(a,b){switch(a){case 0:!this.c&&(this.c=new p3d(this,0));$2d(this.c,b);return;case 1:(!this.c&&(this.c=new p3d(this,0)),BD(BD(O2d(this.c,(L8d(),o8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new p3d(this,2));$2d(this.b,b);return;}$hd(this,a-XKd(this.yh()),SKd((this.j&2)==0?this.yh():(!this.k&&(this.k=new CGd),this.k).bk(),a),b)};_.yh=function R8d(){return L8d(),n8d};_.Ah=function S8d(a){switch(a){case 0:!this.c&&(this.c=new p3d(this,0));Pxd(this.c);return;case 1:(!this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153)).$b();return;case 2:!this.b&&(this.b=new p3d(this,2));Pxd(this.b);return;}_hd(this,a-XKd(this.yh()),SKd((this.j&2)==0?this.yh():(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.Ib=function T8d(){var a;if((this.j&4)!=0)return zid(this);a=new Ifb(zid(this));a.a+=' (mixed: ';Cfb(a,this.c);a.a+=', anyAttribute: ';Cfb(a,this.b);a.a+=')';return a.a};var U9=ldb(Iwe,'AnyTypeImpl',829);acb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2020:1,667:1},W8d);_.$g=function X8d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return Yhd(this,a-XKd((L8d(),A8d)),SKd((this.j&2)==0?A8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b,c)};_.kh=function Y8d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return Zhd(this,a-XKd((L8d(),A8d)),SKd((this.j&2)==0?A8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.rh=function Z8d(a,b){switch(a){case 0:U8d(this,GD(b));return;case 1:V8d(this,GD(b));return;}$hd(this,a-XKd((L8d(),A8d)),SKd((this.j&2)==0?A8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b)};_.yh=function $8d(){return L8d(),A8d};_.Ah=function _8d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}_hd(this,a-XKd((L8d(),A8d)),SKd((this.j&2)==0?A8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.Ib=function a9d(){var a;if((this.j&4)!=0)return zid(this);a=new Ifb(zid(this));a.a+=' (data: ';Dfb(a,this.a);a.a+=', target: ';Dfb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var V9=ldb(Iwe,'ProcessingInstructionImpl',667);acb(668,829,{105:1,92:1,90:1,56:1,49:1,97:1,842:1,2021:1,668:1},d9d);_.$g=function e9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new p3d(this,0)),this.c;return !this.c&&(this.c=new p3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153);return (!this.c&&(this.c=new p3d(this,0)),BD(BD(O2d(this.c,(L8d(),o8d)),153),215)).jl();case 2:if(c)return !this.b&&(this.b=new p3d(this,2)),this.b;return !this.b&&(this.b=new p3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new p3d(this,0)),GD(F2d(this.c,(L8d(),D8d),true));case 4:return e6d(this.a,(!this.c&&(this.c=new p3d(this,0)),GD(F2d(this.c,(L8d(),D8d),true))));case 5:return this.a;}return Yhd(this,a-XKd((L8d(),C8d)),SKd((this.j&2)==0?C8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b,c)};_.kh=function f9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new p3d(this,0)),GD(F2d(this.c,(L8d(),D8d),true))!=null;case 4:return e6d(this.a,(!this.c&&(this.c=new p3d(this,0)),GD(F2d(this.c,(L8d(),D8d),true))))!=null;case 5:return !!this.a;}return Zhd(this,a-XKd((L8d(),C8d)),SKd((this.j&2)==0?C8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.rh=function g9d(a,b){switch(a){case 0:!this.c&&(this.c=new p3d(this,0));$2d(this.c,b);return;case 1:(!this.c&&(this.c=new p3d(this,0)),BD(BD(O2d(this.c,(L8d(),o8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new p3d(this,2));$2d(this.b,b);return;case 3:c9d(this,GD(b));return;case 4:c9d(this,c6d(this.a,b));return;case 5:b9d(this,BD(b,148));return;}$hd(this,a-XKd((L8d(),C8d)),SKd((this.j&2)==0?C8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b)};_.yh=function h9d(){return L8d(),C8d};_.Ah=function i9d(a){switch(a){case 0:!this.c&&(this.c=new p3d(this,0));Pxd(this.c);return;case 1:(!this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153)).$b();return;case 2:!this.b&&(this.b=new p3d(this,2));Pxd(this.b);return;case 3:!this.c&&(this.c=new p3d(this,0));a3d(this.c,(L8d(),D8d),null);return;case 4:c9d(this,c6d(this.a,null));return;case 5:this.a=null;return;}_hd(this,a-XKd((L8d(),C8d)),SKd((this.j&2)==0?C8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};var W9=ldb(Iwe,'SimpleAnyTypeImpl',668);acb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2022:1,669:1},j9d);_.$g=function k9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new p3d(this,0)),this.a;return !this.a&&(this.a=new p3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new $Hd((eGd(),aGd),w6,this,1)),this.b):(!this.b&&(this.b=new $Hd((eGd(),aGd),w6,this,1)),AAd(this.b));case 2:return c?(!this.c&&(this.c=new $Hd((eGd(),aGd),w6,this,2)),this.c):(!this.c&&(this.c=new $Hd((eGd(),aGd),w6,this,2)),AAd(this.c));case 3:return !this.a&&(this.a=new p3d(this,0)),O2d(this.a,(L8d(),G8d));case 4:return !this.a&&(this.a=new p3d(this,0)),O2d(this.a,(L8d(),H8d));case 5:return !this.a&&(this.a=new p3d(this,0)),O2d(this.a,(L8d(),J8d));case 6:return !this.a&&(this.a=new p3d(this,0)),O2d(this.a,(L8d(),K8d));}return Yhd(this,a-XKd((L8d(),F8d)),SKd((this.j&2)==0?F8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b,c)};_.ih=function l9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new p3d(this,0)),w2d(this.a,a,c);case 1:return !this.b&&(this.b=new $Hd((eGd(),aGd),w6,this,1)),YHd(this.b,a,c);case 2:return !this.c&&(this.c=new $Hd((eGd(),aGd),w6,this,2)),YHd(this.c,a,c);case 5:return !this.a&&(this.a=new p3d(this,0)),Z6d(O2d(this.a,(L8d(),J8d)),a,c);}return d=BD(SKd((this.j&2)==0?(L8d(),F8d):(!this.k&&(this.k=new CGd),this.k).bk(),b),66),d.Mj().Qj(this,vid(this),b-XKd((L8d(),F8d)),a,c)};_.kh=function m9d(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 p3d(this,0)),!_6d(O2d(this.a,(L8d(),G8d)));case 4:return !this.a&&(this.a=new p3d(this,0)),!_6d(O2d(this.a,(L8d(),H8d)));case 5:return !this.a&&(this.a=new p3d(this,0)),!_6d(O2d(this.a,(L8d(),J8d)));case 6:return !this.a&&(this.a=new p3d(this,0)),!_6d(O2d(this.a,(L8d(),K8d)));}return Zhd(this,a-XKd((L8d(),F8d)),SKd((this.j&2)==0?F8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.rh=function n9d(a,b){switch(a){case 0:!this.a&&(this.a=new p3d(this,0));$2d(this.a,b);return;case 1:!this.b&&(this.b=new $Hd((eGd(),aGd),w6,this,1));ZHd(this.b,b);return;case 2:!this.c&&(this.c=new $Hd((eGd(),aGd),w6,this,2));ZHd(this.c,b);return;case 3:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),G8d)));!this.a&&(this.a=new p3d(this,0));Y6d(O2d(this.a,G8d),BD(b,14));return;case 4:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),H8d)));!this.a&&(this.a=new p3d(this,0));Y6d(O2d(this.a,H8d),BD(b,14));return;case 5:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),J8d)));!this.a&&(this.a=new p3d(this,0));Y6d(O2d(this.a,J8d),BD(b,14));return;case 6:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),K8d)));!this.a&&(this.a=new p3d(this,0));Y6d(O2d(this.a,K8d),BD(b,14));return;}$hd(this,a-XKd((L8d(),F8d)),SKd((this.j&2)==0?F8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b)};_.yh=function o9d(){return L8d(),F8d};_.Ah=function p9d(a){switch(a){case 0:!this.a&&(this.a=new p3d(this,0));Pxd(this.a);return;case 1:!this.b&&(this.b=new $Hd((eGd(),aGd),w6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new $Hd((eGd(),aGd),w6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),G8d)));return;case 4:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),H8d)));return;case 5:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),J8d)));return;case 6:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),K8d)));return;}_hd(this,a-XKd((L8d(),F8d)),SKd((this.j&2)==0?F8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.Ib=function q9d(){var a;if((this.j&4)!=0)return zid(this);a=new Ifb(zid(this));a.a+=' (mixed: ';Cfb(a,this.a);a.a+=')';return a.a};var X9=ldb(Iwe,'XMLTypeDocumentRootImpl',669);acb(1918,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2023:1},P9d);_.Hh=function Q9d(a,b){switch(a.xj()){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:ecb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return x9d(BD(b,190));case 12:case 47:case 49:case 11:return Qmd(this,a,b);case 13:return b==null?null:pgb(BD(b,240));case 15:case 14:return b==null?null:y9d(Ddb(ED(b)));case 17:return z9d((L8d(),b));case 18:return z9d(b);case 21:case 20:return b==null?null:A9d(BD(b,155).a);case 27:return B9d(BD(b,190));case 30:return C9d((L8d(),BD(b,15)));case 31:return C9d(BD(b,15));case 40:return F9d((L8d(),b));case 42:return D9d((L8d(),b));case 43:return D9d(b);case 59:case 48:return E9d((L8d(),b));default:throw ubb(new Vdb(pte+a.ne()+qte));}};_.Ih=function R9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=YJd(a),c?CLd(c.Lh(),a):-1)),a.G){case 0:return b=new M8d,b;case 1:return d=new W8d,d;case 2:return e=new d9d,e;case 3:return f=new j9d,f;default:throw ubb(new Vdb(tte+a.zb+qte));}};_.Jh=function S9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.xj()){case 5:case 52:case 4:return b;case 6:return G9d(b);case 8:case 7:return b==null?null:w9d(b);case 9:return b==null?null:Rcb(Hcb((d=Lge(b,true),d.length>0&&(ACb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Rcb(Hcb((e=Lge(b,true),e.length>0&&(ACb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Rmd(this,(L8d(),r8d),b));case 12:return GD(Rmd(this,(L8d(),s8d),b));case 13:return b==null?null:new sgb(Lge(b,true));case 15:case 14:return H9d(b);case 16:return GD(Rmd(this,(L8d(),t8d),b));case 17:return I9d((L8d(),b));case 18:return I9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Lge(b,true);case 21:case 20:return J9d(b);case 22:return GD(Rmd(this,(L8d(),u8d),b));case 23:return GD(Rmd(this,(L8d(),v8d),b));case 24:return GD(Rmd(this,(L8d(),w8d),b));case 25:return GD(Rmd(this,(L8d(),x8d),b));case 26:return GD(Rmd(this,(L8d(),y8d),b));case 27:return K9d(b);case 30:return L9d((L8d(),b));case 31:return L9d(b);case 32:return b==null?null:leb(Hcb((k=Lge(b,true),k.length>0&&(ACb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Mie,Jhe));case 33:return b==null?null:new Xgb((l=Lge(b,true),l.length>0&&(ACb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:leb(Hcb((m=Lge(b,true),m.length>0&&(ACb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Mie,Jhe));case 36:return b==null?null:zeb(Icb((n=Lge(b,true),n.length>0&&(ACb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:zeb(Icb((o=Lge(b,true),o.length>0&&(ACb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return O9d((L8d(),b));case 42:return M9d((L8d(),b));case 43:return M9d(b);case 44:return b==null?null:new Xgb((p=Lge(b,true),p.length>0&&(ACb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Xgb((q=Lge(b,true),q.length>0&&(ACb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Lge(b,false);case 47:return GD(Rmd(this,(L8d(),z8d),b));case 59:case 48:return N9d((L8d(),b));case 49:return GD(Rmd(this,(L8d(),B8d),b));case 50:return b==null?null:Veb(Hcb((r=Lge(b,true),r.length>0&&(ACb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),Yve,32767)<<16>>16);case 51:return b==null?null:Veb(Hcb((f=Lge(b,true),f.length>0&&(ACb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),Yve,32767)<<16>>16);case 53:return GD(Rmd(this,(L8d(),E8d),b));case 55:return b==null?null:Veb(Hcb((g=Lge(b,true),g.length>0&&(ACb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),Yve,32767)<<16>>16);case 56:return b==null?null:Veb(Hcb((h=Lge(b,true),h.length>0&&(ACb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),Yve,32767)<<16>>16);case 57:return b==null?null:zeb(Icb((i=Lge(b,true),i.length>0&&(ACb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:zeb(Icb((j=Lge(b,true),j.length>0&&(ACb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:leb(Hcb((c=Lge(b,true),c.length>0&&(ACb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Mie,Jhe));case 61:return b==null?null:leb(Hcb(Lge(b,true),Mie,Jhe));default:throw ubb(new Vdb(pte+a.ne()+qte));}};var r9d,s9d,t9d,u9d;var Y9=ldb(Iwe,'XMLTypeFactoryImpl',1918);acb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1944:1,586:1},Z9d);_.N=false;_.O=false;var U9d=false;var Xab=ldb(Iwe,'XMLTypePackageImpl',586);acb(1851,1,{836:1},aae);_.$j=function bae(){return Pge(),Oge};var hab=ldb(Iwe,'XMLTypePackageImpl/1',1851);acb(1860,1,jwe,cae);_.vj=function dae(a){return ND(a)};_.wj=function eae(a){return KC(ZI,iie,2,a,6,1)};var Z9=ldb(Iwe,'XMLTypePackageImpl/10',1860);acb(1861,1,jwe,fae);_.vj=function gae(a){return ND(a)};_.wj=function hae(a){return KC(ZI,iie,2,a,6,1)};var $9=ldb(Iwe,'XMLTypePackageImpl/11',1861);acb(1862,1,jwe,iae);_.vj=function jae(a){return ND(a)};_.wj=function kae(a){return KC(ZI,iie,2,a,6,1)};var _9=ldb(Iwe,'XMLTypePackageImpl/12',1862);acb(1863,1,jwe,lae);_.vj=function mae(a){return LD(a)};_.wj=function nae(a){return KC(BI,iie,333,a,7,1)};var aab=ldb(Iwe,'XMLTypePackageImpl/13',1863);acb(1864,1,jwe,oae);_.vj=function pae(a){return ND(a)};_.wj=function qae(a){return KC(ZI,iie,2,a,6,1)};var bab=ldb(Iwe,'XMLTypePackageImpl/14',1864);acb(1865,1,jwe,rae);_.vj=function sae(a){return JD(a,15)};_.wj=function tae(a){return KC(yK,_le,15,a,0,1)};var cab=ldb(Iwe,'XMLTypePackageImpl/15',1865);acb(1866,1,jwe,uae);_.vj=function vae(a){return JD(a,15)};_.wj=function wae(a){return KC(yK,_le,15,a,0,1)};var dab=ldb(Iwe,'XMLTypePackageImpl/16',1866);acb(1867,1,jwe,xae);_.vj=function yae(a){return ND(a)};_.wj=function zae(a){return KC(ZI,iie,2,a,6,1)};var eab=ldb(Iwe,'XMLTypePackageImpl/17',1867);acb(1868,1,jwe,Aae);_.vj=function Bae(a){return JD(a,155)};_.wj=function Cae(a){return KC(FI,iie,155,a,0,1)};var fab=ldb(Iwe,'XMLTypePackageImpl/18',1868);acb(1869,1,jwe,Dae);_.vj=function Eae(a){return ND(a)};_.wj=function Fae(a){return KC(ZI,iie,2,a,6,1)};var gab=ldb(Iwe,'XMLTypePackageImpl/19',1869);acb(1852,1,jwe,Gae);_.vj=function Hae(a){return JD(a,842)};_.wj=function Iae(a){return KC(P9,Phe,842,a,0,1)};var sab=ldb(Iwe,'XMLTypePackageImpl/2',1852);acb(1870,1,jwe,Jae);_.vj=function Kae(a){return ND(a)};_.wj=function Lae(a){return KC(ZI,iie,2,a,6,1)};var iab=ldb(Iwe,'XMLTypePackageImpl/20',1870);acb(1871,1,jwe,Mae);_.vj=function Nae(a){return ND(a)};_.wj=function Oae(a){return KC(ZI,iie,2,a,6,1)};var jab=ldb(Iwe,'XMLTypePackageImpl/21',1871);acb(1872,1,jwe,Pae);_.vj=function Qae(a){return ND(a)};_.wj=function Rae(a){return KC(ZI,iie,2,a,6,1)};var kab=ldb(Iwe,'XMLTypePackageImpl/22',1872);acb(1873,1,jwe,Sae);_.vj=function Tae(a){return ND(a)};_.wj=function Uae(a){return KC(ZI,iie,2,a,6,1)};var lab=ldb(Iwe,'XMLTypePackageImpl/23',1873);acb(1874,1,jwe,Vae);_.vj=function Wae(a){return JD(a,190)};_.wj=function Xae(a){return KC(SD,iie,190,a,0,2)};var mab=ldb(Iwe,'XMLTypePackageImpl/24',1874);acb(1875,1,jwe,Yae);_.vj=function Zae(a){return ND(a)};_.wj=function $ae(a){return KC(ZI,iie,2,a,6,1)};var nab=ldb(Iwe,'XMLTypePackageImpl/25',1875);acb(1876,1,jwe,_ae);_.vj=function abe(a){return ND(a)};_.wj=function bbe(a){return KC(ZI,iie,2,a,6,1)};var oab=ldb(Iwe,'XMLTypePackageImpl/26',1876);acb(1877,1,jwe,cbe);_.vj=function dbe(a){return JD(a,15)};_.wj=function ebe(a){return KC(yK,_le,15,a,0,1)};var pab=ldb(Iwe,'XMLTypePackageImpl/27',1877);acb(1878,1,jwe,fbe);_.vj=function gbe(a){return JD(a,15)};_.wj=function hbe(a){return KC(yK,_le,15,a,0,1)};var qab=ldb(Iwe,'XMLTypePackageImpl/28',1878);acb(1879,1,jwe,ibe);_.vj=function jbe(a){return ND(a)};_.wj=function kbe(a){return KC(ZI,iie,2,a,6,1)};var rab=ldb(Iwe,'XMLTypePackageImpl/29',1879);acb(1853,1,jwe,lbe);_.vj=function mbe(a){return JD(a,667)};_.wj=function nbe(a){return KC(R9,Phe,2020,a,0,1)};var Dab=ldb(Iwe,'XMLTypePackageImpl/3',1853);acb(1880,1,jwe,obe);_.vj=function pbe(a){return JD(a,19)};_.wj=function qbe(a){return KC(JI,iie,19,a,0,1)};var tab=ldb(Iwe,'XMLTypePackageImpl/30',1880);acb(1881,1,jwe,rbe);_.vj=function sbe(a){return ND(a)};_.wj=function tbe(a){return KC(ZI,iie,2,a,6,1)};var uab=ldb(Iwe,'XMLTypePackageImpl/31',1881);acb(1882,1,jwe,ube);_.vj=function vbe(a){return JD(a,162)};_.wj=function wbe(a){return KC(MI,iie,162,a,0,1)};var vab=ldb(Iwe,'XMLTypePackageImpl/32',1882);acb(1883,1,jwe,xbe);_.vj=function ybe(a){return ND(a)};_.wj=function zbe(a){return KC(ZI,iie,2,a,6,1)};var wab=ldb(Iwe,'XMLTypePackageImpl/33',1883);acb(1884,1,jwe,Abe);_.vj=function Bbe(a){return ND(a)};_.wj=function Cbe(a){return KC(ZI,iie,2,a,6,1)};var xab=ldb(Iwe,'XMLTypePackageImpl/34',1884);acb(1885,1,jwe,Dbe);_.vj=function Ebe(a){return ND(a)};_.wj=function Fbe(a){return KC(ZI,iie,2,a,6,1)};var yab=ldb(Iwe,'XMLTypePackageImpl/35',1885);acb(1886,1,jwe,Gbe);_.vj=function Hbe(a){return ND(a)};_.wj=function Ibe(a){return KC(ZI,iie,2,a,6,1)};var zab=ldb(Iwe,'XMLTypePackageImpl/36',1886);acb(1887,1,jwe,Jbe);_.vj=function Kbe(a){return JD(a,15)};_.wj=function Lbe(a){return KC(yK,_le,15,a,0,1)};var Aab=ldb(Iwe,'XMLTypePackageImpl/37',1887);acb(1888,1,jwe,Mbe);_.vj=function Nbe(a){return JD(a,15)};_.wj=function Obe(a){return KC(yK,_le,15,a,0,1)};var Bab=ldb(Iwe,'XMLTypePackageImpl/38',1888);acb(1889,1,jwe,Pbe);_.vj=function Qbe(a){return ND(a)};_.wj=function Rbe(a){return KC(ZI,iie,2,a,6,1)};var Cab=ldb(Iwe,'XMLTypePackageImpl/39',1889);acb(1854,1,jwe,Sbe);_.vj=function Tbe(a){return JD(a,668)};_.wj=function Ube(a){return KC(S9,Phe,2021,a,0,1)};var Oab=ldb(Iwe,'XMLTypePackageImpl/4',1854);acb(1890,1,jwe,Vbe);_.vj=function Wbe(a){return ND(a)};_.wj=function Xbe(a){return KC(ZI,iie,2,a,6,1)};var Eab=ldb(Iwe,'XMLTypePackageImpl/40',1890);acb(1891,1,jwe,Ybe);_.vj=function Zbe(a){return ND(a)};_.wj=function $be(a){return KC(ZI,iie,2,a,6,1)};var Fab=ldb(Iwe,'XMLTypePackageImpl/41',1891);acb(1892,1,jwe,_be);_.vj=function ace(a){return ND(a)};_.wj=function bce(a){return KC(ZI,iie,2,a,6,1)};var Gab=ldb(Iwe,'XMLTypePackageImpl/42',1892);acb(1893,1,jwe,cce);_.vj=function dce(a){return ND(a)};_.wj=function ece(a){return KC(ZI,iie,2,a,6,1)};var Hab=ldb(Iwe,'XMLTypePackageImpl/43',1893);acb(1894,1,jwe,fce);_.vj=function gce(a){return ND(a)};_.wj=function hce(a){return KC(ZI,iie,2,a,6,1)};var Iab=ldb(Iwe,'XMLTypePackageImpl/44',1894);acb(1895,1,jwe,ice);_.vj=function jce(a){return JD(a,184)};_.wj=function kce(a){return KC(UI,iie,184,a,0,1)};var Jab=ldb(Iwe,'XMLTypePackageImpl/45',1895);acb(1896,1,jwe,lce);_.vj=function mce(a){return ND(a)};_.wj=function nce(a){return KC(ZI,iie,2,a,6,1)};var Kab=ldb(Iwe,'XMLTypePackageImpl/46',1896);acb(1897,1,jwe,oce);_.vj=function pce(a){return ND(a)};_.wj=function qce(a){return KC(ZI,iie,2,a,6,1)};var Lab=ldb(Iwe,'XMLTypePackageImpl/47',1897);acb(1898,1,jwe,rce);_.vj=function sce(a){return ND(a)};_.wj=function tce(a){return KC(ZI,iie,2,a,6,1)};var Mab=ldb(Iwe,'XMLTypePackageImpl/48',1898);acb(1899,1,jwe,uce);_.vj=function vce(a){return JD(a,184)};_.wj=function wce(a){return KC(UI,iie,184,a,0,1)};var Nab=ldb(Iwe,'XMLTypePackageImpl/49',1899);acb(1855,1,jwe,xce);_.vj=function yce(a){return JD(a,669)};_.wj=function zce(a){return KC(T9,Phe,2022,a,0,1)};var Sab=ldb(Iwe,'XMLTypePackageImpl/5',1855);acb(ije,1,jwe,Ace);_.vj=function Bce(a){return JD(a,162)};_.wj=function Cce(a){return KC(MI,iie,162,a,0,1)};var Pab=ldb(Iwe,'XMLTypePackageImpl/50',ije);acb(1901,1,jwe,Dce);_.vj=function Ece(a){return ND(a)};_.wj=function Fce(a){return KC(ZI,iie,2,a,6,1)};var Qab=ldb(Iwe,'XMLTypePackageImpl/51',1901);acb(1902,1,jwe,Gce);_.vj=function Hce(a){return JD(a,19)};_.wj=function Ice(a){return KC(JI,iie,19,a,0,1)};var Rab=ldb(Iwe,'XMLTypePackageImpl/52',1902);acb(1856,1,jwe,Jce);_.vj=function Kce(a){return ND(a)};_.wj=function Lce(a){return KC(ZI,iie,2,a,6,1)};var Tab=ldb(Iwe,'XMLTypePackageImpl/6',1856);acb(1857,1,jwe,Mce);_.vj=function Nce(a){return JD(a,190)};_.wj=function Oce(a){return KC(SD,iie,190,a,0,2)};var Uab=ldb(Iwe,'XMLTypePackageImpl/7',1857);acb(1858,1,jwe,Pce);_.vj=function Qce(a){return KD(a)};_.wj=function Rce(a){return KC(wI,iie,476,a,8,1)};var Vab=ldb(Iwe,'XMLTypePackageImpl/8',1858);acb(1859,1,jwe,Sce);_.vj=function Tce(a){return JD(a,217)};_.wj=function Uce(a){return KC(xI,iie,217,a,0,1)};var Wab=ldb(Iwe,'XMLTypePackageImpl/9',1859);var Vce,Wce;var ade,bde;var fde;acb(50,60,Oie,hde);var Yab=ldb(gxe,'RegEx/ParseException',50);acb(819,1,{},pde);_.rl=function qde(a){return ac*16)throw ubb(new hde(ovd((c0d(),Pue))));c=c*16+e}while(true);if(this.a!=125)throw ubb(new hde(ovd((c0d(),Que))));if(c>hxe)throw ubb(new hde(ovd((c0d(),Rue))));a=c}else{e=0;if(this.c!=0||(e=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));c=e;ide(this);if(this.c!=0||(e=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));c=c*16+e;a=c}break;case 117:d=0;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;a=b;break;case 118:ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;if(b>hxe)throw ubb(new hde(ovd((c0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw ubb(new hde(ovd((c0d(),Sue))));}return a};_.tl=function sde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Ffe('Nd',true):(rfe(),Zee);break;case 68:c=(this.e&32)==32?Ffe('Nd',false):(rfe(),efe);break;case 119:c=(this.e&32)==32?Ffe('IsWord',true):(rfe(),nfe);break;case 87:c=(this.e&32)==32?Ffe('IsWord',false):(rfe(),gfe);break;case 115:c=(this.e&32)==32?Ffe('IsSpace',true):(rfe(),ife);break;case 83:c=(this.e&32)==32?Ffe('IsSpace',false):(rfe(),ffe);break;default:throw ubb(new hz((b=a,ixe+b.toString(16))));}return c};_.ul=function ude(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;ide(this);b=null;if(this.c==0&&this.a==94){ide(this);if(a){k=(rfe(),rfe(),++qfe,new Vfe(5))}else{b=(rfe(),rfe(),++qfe,new Vfe(4));Pfe(b,0,hxe);k=(null,++qfe,new Vfe(4))}}else{k=(rfe(),rfe(),++qfe,new Vfe(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:Sfe(k,this.tl(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Kl(k,c);c<0&&(d=true);break;case 112:case 80:l=ode(this,c);if(!l)throw ubb(new hde(ovd((c0d(),Due))));Sfe(k,l);d=true;break;default:c=this.sl();}}else if(m==20){g=ffb(this.i,58,this.d);if(g<0)throw ubb(new hde(ovd((c0d(),Eue))));h=true;if(afb(this.i,this.d)==94){++this.d;h=false}f=pfb(this.i,this.d,g);i=Gfe(f,h,(this.e&512)==512);if(!i)throw ubb(new hde(ovd((c0d(),Gue))));Sfe(k,i);d=true;if(g+1>=this.j||afb(this.i,g+1)!=93)throw ubb(new hde(ovd((c0d(),Eue))));this.d=g+2}ide(this);if(!d){if(this.c!=0||this.a!=45){Pfe(k,c,c)}else{ide(this);if((m=this.c)==1)throw ubb(new hde(ovd((c0d(),Fue))));if(m==0&&this.a==93){Pfe(k,c,c);Pfe(k,45,45)}else{j=this.a;m==10&&(j=this.sl());ide(this);Pfe(k,c,j)}}}(this.e&xve)==xve&&this.c==0&&this.a==44&&ide(this)}if(this.c==1)throw ubb(new hde(ovd((c0d(),Fue))));if(b){Ufe(b,k);k=b}Tfe(k);Qfe(k);this.b=0;ide(this);return k};_.vl=function vde(){var a,b,c,d;c=this.ul(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){ide(this);if(this.c!=9)throw ubb(new hde(ovd((c0d(),Lue))));b=this.ul(false);if(d==4)Sfe(c,b);else if(a==45)Ufe(c,b);else if(a==38)Rfe(c,b);else throw ubb(new hz('ASSERT'))}else{throw ubb(new hde(ovd((c0d(),Mue))))}}ide(this);return c};_.wl=function wde(){var a,b;a=this.a-48;b=(rfe(),rfe(),++qfe,new Cge(12,null,a));!this.g&&(this.g=new Vvb);Svb(this.g,new Zfe(a));ide(this);return b};_.xl=function xde(){ide(this);return rfe(),jfe};_.yl=function yde(){ide(this);return rfe(),hfe};_.zl=function zde(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Al=function Ade(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Bl=function Bde(){ide(this);return Dfe()};_.Cl=function Cde(){ide(this);return rfe(),lfe};_.Dl=function Dde(){ide(this);return rfe(),ofe};_.El=function Ede(){var a;if(this.d>=this.j||((a=afb(this.i,this.d++))&65504)!=64)throw ubb(new hde(ovd((c0d(),zue))));ide(this);return rfe(),rfe(),++qfe,new dge(0,a-64)};_.Fl=function Fde(){ide(this);return Efe()};_.Gl=function Gde(){ide(this);return rfe(),pfe};_.Hl=function Hde(){var a;a=(rfe(),rfe(),++qfe,new dge(0,105));ide(this);return a};_.Il=function Ide(){ide(this);return rfe(),mfe};_.Jl=function Jde(){ide(this);return rfe(),kfe};_.Kl=function Kde(a,b){return this.sl()};_.Ll=function Lde(){ide(this);return rfe(),cfe};_.Ml=function Mde(){var a,b,c,d,e;if(this.d+1>=this.j)throw ubb(new hde(ovd((c0d(),wue))));d=-1;b=null;a=afb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Vvb);Svb(this.g,new Zfe(d));++this.d;if(afb(this.i,this.d)!=41)throw ubb(new hde(ovd((c0d(),tue))));++this.d}else{a==63&&--this.d;ide(this);b=lde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));break;default:throw ubb(new hde(ovd((c0d(),xue))));}}ide(this);e=mde(this);c=null;if(e.e==2){if(e.dm()!=2)throw ubb(new hde(ovd((c0d(),yue))));c=e._l(1);e=e._l(0)}if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return rfe(),rfe(),++qfe,new qge(d,b,e,c)};_.Nl=function Nde(){ide(this);return rfe(),dfe};_.Ol=function Ode(){var a;ide(this);a=xfe(24,mde(this));if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Pl=function Pde(){var a;ide(this);a=xfe(20,mde(this));if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Ql=function Qde(){var a;ide(this);a=xfe(22,mde(this));if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Rl=function Rde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw ubb(new hde(ovd((c0d(),uue))));if(b==45){++this.d;while(this.d=this.j)throw ubb(new hde(ovd((c0d(),uue))))}if(b==58){++this.d;ide(this);d=yfe(mde(this),a,c);if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this)}else if(b==41){++this.d;ide(this);d=yfe(mde(this),a,c)}else throw ubb(new hde(ovd((c0d(),vue))));return d};_.Sl=function Sde(){var a;ide(this);a=xfe(21,mde(this));if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Tl=function Tde(){var a;ide(this);a=xfe(23,mde(this));if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Ul=function Ude(){var a,b;ide(this);a=this.f++;b=zfe(mde(this),a);if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return b};_.Vl=function Vde(){var a;ide(this);a=zfe(mde(this),0);if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Wl=function Wde(a){ide(this);if(this.c==5){ide(this);return wfe(a,(rfe(),rfe(),++qfe,new gge(9,a)))}else return wfe(a,(rfe(),rfe(),++qfe,new gge(3,a)))};_.Xl=function Xde(a){var b;ide(this);b=(rfe(),rfe(),++qfe,new Gge(2));if(this.c==5){ide(this);Fge(b,(null,afe));Fge(b,a)}else{Fge(b,a);Fge(b,(null,afe))}return b};_.Yl=function Yde(a){ide(this);if(this.c==5){ide(this);return rfe(),rfe(),++qfe,new gge(9,a)}else return rfe(),rfe(),++qfe,new gge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var abb=ldb(gxe,'RegEx/RegexParser',819);acb(1823,819,{},cee);_.rl=function dee(a){return false};_.sl=function eee(){return _de(this)};_.tl=function gee(a){return aee(a)};_.ul=function hee(a){return bee(this)};_.vl=function iee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.wl=function jee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.xl=function kee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.yl=function lee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.zl=function mee(){ide(this);return aee(67)};_.Al=function nee(){ide(this);return aee(73)};_.Bl=function oee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Cl=function pee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Dl=function qee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.El=function ree(){ide(this);return aee(99)};_.Fl=function see(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Gl=function tee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Hl=function uee(){ide(this);return aee(105)};_.Il=function vee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Jl=function wee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Kl=function xee(a,b){return Sfe(a,aee(b)),-1};_.Ll=function yee(){ide(this);return rfe(),rfe(),++qfe,new dge(0,94)};_.Ml=function zee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Nl=function Aee(){ide(this);return rfe(),rfe(),++qfe,new dge(0,36)};_.Ol=function Bee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Pl=function Cee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Ql=function Dee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Rl=function Eee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Sl=function Fee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Tl=function Gee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Ul=function Hee(){var a;ide(this);a=zfe(mde(this),0);if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Vl=function Iee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Wl=function Jee(a){ide(this);return wfe(a,(rfe(),rfe(),++qfe,new gge(3,a)))};_.Xl=function Kee(a){var b;ide(this);b=(rfe(),rfe(),++qfe,new Gge(2));Fge(b,a);Fge(b,(null,afe));return b};_.Yl=function Lee(a){ide(this);return rfe(),rfe(),++qfe,new gge(3,a)};var Zde=null,$de=null;var Zab=ldb(gxe,'RegEx/ParserForXMLSchema',1823);acb(117,1,uxe,sfe);_.Zl=function tfe(a){throw ubb(new hz('Not supported.'))};_.$l=function Bfe(){return -1};_._l=function Cfe(a){return null};_.am=function Hfe(){return null};_.bm=function Kfe(a){};_.cm=function Lfe(a){};_.dm=function Mfe(){return 0};_.Ib=function Nfe(){return this.em(0)};_.em=function Ofe(a){return this.e==11?'.':''};_.e=0;var Tee,Uee,Vee,Wee,Xee,Yee=null,Zee,$ee=null,_ee,afe,bfe=null,cfe,dfe,efe,ffe,gfe,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe=0;var kbb=ldb(gxe,'RegEx/Token',117);acb(136,117,{3:1,136:1,117:1},Vfe);_.em=function Yfe(a){var b,c,d;if(this.e==4){if(this==_ee)c='.';else if(this==Zee)c='\\d';else if(this==nfe)c='\\w';else if(this==ife)c='\\s';else{d=new Gfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Dfb(d,Xfe(this.b[b]))}else{Dfb(d,Xfe(this.b[b]));d.a+='-';Dfb(d,Xfe(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==efe)c='\\D';else if(this==gfe)c='\\W';else if(this==ffe)c='\\S';else{d=new Gfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Dfb(d,Xfe(this.b[b]))}else{Dfb(d,Xfe(this.b[b]));d.a+='-';Dfb(d,Xfe(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var $ab=ldb(gxe,'RegEx/RangeToken',136);acb(584,1,{584:1},Zfe);_.a=0;var _ab=ldb(gxe,'RegEx/RegexParser/ReferencePosition',584);acb(583,1,{3:1,583:1},_fe);_.Fb=function age(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return cfb(this.b,b.b)&&this.a==b.a};_.Hb=function bge(){return KCb(this.b+'/'+Nee(this.a))};_.Ib=function cge(){return this.c.em(this.a)};_.a=0;var bbb=ldb(gxe,'RegEx/RegularExpression',583);acb(223,117,uxe,dge);_.$l=function ege(){return this.a};_.em=function fge(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='\\'+HD(this.a&Xie);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>=Oje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+pfb(c,c.length-6,c.length)}else d=''+HD(this.a&Xie);}break;case 8:this==cfe||this==dfe?(d=''+HD(this.a&Xie)):(d='\\'+HD(this.a&Xie));break;default:d=null;}return d};_.a=0;var cbb=ldb(gxe,'RegEx/Token/CharToken',223);acb(309,117,uxe,gge);_._l=function hge(a){return this.a};_.bm=function ige(a){this.b=a};_.cm=function jge(a){this.c=a};_.dm=function kge(){return 1};_.em=function lge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.em(a)+'*'}else if(this.c==this.b){b=this.a.em(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.em(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.em(a)+'{'+this.c+',}'}else throw ubb(new hz('Token#toString(): CLOSURE '+this.c+Nhe+this.b))}else{if(this.c<0&&this.b<0){b=this.a.em(a)+'*?'}else if(this.c==this.b){b=this.a.em(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.em(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.em(a)+'{'+this.c+',}?'}else throw ubb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+Nhe+this.b))}return b};_.b=0;_.c=0;var dbb=ldb(gxe,'RegEx/Token/ClosureToken',309);acb(820,117,uxe,mge);_._l=function nge(a){return a==0?this.a:this.b};_.dm=function oge(){return 2};_.em=function pge(a){var b;this.b.e==3&&this.b._l(0)==this.a?(b=this.a.em(a)+'+'):this.b.e==9&&this.b._l(0)==this.a?(b=this.a.em(a)+'+?'):(b=this.a.em(a)+(''+this.b.em(a)));return b};var ebb=ldb(gxe,'RegEx/Token/ConcatToken',820);acb(1821,117,uxe,qge);_._l=function rge(a){if(a==0)return this.d;if(a==1)return this.b;throw ubb(new hz('Internal Error: '+a))};_.dm=function sge(){return !this.b?1:2};_.em=function tge(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 fbb=ldb(gxe,'RegEx/Token/ConditionToken',1821);acb(1822,117,uxe,uge);_._l=function vge(a){return this.b};_.dm=function wge(){return 1};_.em=function xge(a){return '(?'+(this.a==0?'':Nee(this.a))+(this.c==0?'':Nee(this.c))+':'+this.b.em(a)+')'};_.a=0;_.c=0;var gbb=ldb(gxe,'RegEx/Token/ModifierToken',1822);acb(821,117,uxe,yge);_._l=function zge(a){return this.a};_.dm=function Age(){return 1};_.em=function Bge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.em(a)+')'):(b='('+this.a.em(a)+')');break;case 20:b='(?='+this.a.em(a)+')';break;case 21:b='(?!'+this.a.em(a)+')';break;case 22:b='(?<='+this.a.em(a)+')';break;case 23:b='(?'+this.a.em(a)+')';}return b};_.b=0;var hbb=ldb(gxe,'RegEx/Token/ParenToken',821);acb(521,117,{3:1,117:1,521:1},Cge);_.am=function Dge(){return this.b};_.em=function Ege(a){return this.e==12?'\\'+this.a:Ree(this.b)};_.a=0;var ibb=ldb(gxe,'RegEx/Token/StringToken',521);acb(465,117,uxe,Gge);_.Zl=function Hge(a){Fge(this,a)};_._l=function Ige(a){return BD(Tvb(this.a,a),117)};_.dm=function Jge(){return !this.a?0:this.a.a.c.length};_.em=function Kge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Tvb(this.a,0),117);c=BD(Tvb(this.a,1),117);c.e==3&&c._l(0)==b?(e=b.em(a)+'+'):c.e==9&&c._l(0)==b?(e=b.em(a)+'+?'):(e=b.em(a)+(''+c.em(a)))}else{f=new Gfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function rhe(){return this.b>0};_.Tb=function the(){return this.b};_.Vb=function vhe(){return this.b-1};_.Qb=function whe(){throw ubb(new bgb(Axe))};_.a=0;_.b=0;var obb=ldb(xxe,'ExclusiveRange/RangeIterator',254);var TD=odb(Bve,'C');var WD=odb(Eve,'I');var rbb=odb(Fhe,'Z');var XD=odb(Fve,'J');var SD=odb(Ave,'B');var UD=odb(Cve,'D');var VD=odb(Dve,'F');var qbb=odb(Gve,'S');var g1=ndb('org.eclipse.elk.core.labels','ILabelManager');var N4=ndb(Ote,'DiagnosticChain');var t8=ndb(lwe,'ResourceSet');var U4=ldb(Ote,'InvocationTargetException',null);var Dhe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Ybb;Wbb(gcb);Zbb('permProps',[[[Bxe,Cxe],[Dxe,'gecko1_8']],[[Bxe,Cxe],[Dxe,'ie10']],[[Bxe,Cxe],[Dxe,'ie8']],[[Bxe,Cxe],[Dxe,'ie9']],[[Bxe,Cxe],[Dxe,'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..46a3013 --- /dev/null +++ b/lib/elk.bundled.js @@ -0,0 +1,6443 @@ +(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() { + 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.terminate) { + 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){ +'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 $g(){} +function _p(){} +function yq(){} +function Sq(){} +function Es(){} +function Jw(){} +function Vw(){} +function VA(){} +function dA(){} +function MA(){} +function PA(){} +function PB(){} +function bx(){} +function cx(){} +function vy(){} +function Nz(){} +function Yz(){} +function fcb(){} +function bcb(){} +function icb(){} +function $fb(){} +function Xlb(){} +function Xmb(){} +function wmb(){} +function Emb(){} +function Pmb(){} +function apb(){} +function jpb(){} +function opb(){} +function Fpb(){} +function crb(){} +function itb(){} +function ntb(){} +function ptb(){} +function Nvb(){} +function exb(){} +function Uxb(){} +function ayb(){} +function yyb(){} +function Yyb(){} +function $yb(){} +function czb(){} +function ezb(){} +function gzb(){} +function izb(){} +function kzb(){} +function mzb(){} +function qzb(){} +function yzb(){} +function Bzb(){} +function Dzb(){} +function Fzb(){} +function Hzb(){} +function Lzb(){} +function aBb(){} +function MBb(){} +function OBb(){} +function QBb(){} +function hCb(){} +function NCb(){} +function RCb(){} +function FDb(){} +function IDb(){} +function eEb(){} +function wEb(){} +function BEb(){} +function FEb(){} +function xFb(){} +function JGb(){} +function sIb(){} +function uIb(){} +function wIb(){} +function yIb(){} +function NIb(){} +function RIb(){} +function SJb(){} +function UJb(){} +function WJb(){} +function WKb(){} +function eKb(){} +function UKb(){} +function ULb(){} +function iLb(){} +function mLb(){} +function FLb(){} +function JLb(){} +function LLb(){} +function NLb(){} +function QLb(){} +function XLb(){} +function aMb(){} +function fMb(){} +function kMb(){} +function oMb(){} +function vMb(){} +function yMb(){} +function BMb(){} +function EMb(){} +function KMb(){} +function yNb(){} +function ONb(){} +function jOb(){} +function oOb(){} +function sOb(){} +function xOb(){} +function EOb(){} +function FPb(){} +function _Pb(){} +function bQb(){} +function dQb(){} +function fQb(){} +function hQb(){} +function BQb(){} +function LQb(){} +function NQb(){} +function zSb(){} +function eTb(){} +function jTb(){} +function RTb(){} +function eUb(){} +function CUb(){} +function UUb(){} +function XUb(){} +function $Ub(){} +function $Wb(){} +function PWb(){} +function WWb(){} +function iVb(){} +function CVb(){} +function UVb(){} +function ZVb(){} +function cXb(){} +function gXb(){} +function kXb(){} +function fYb(){} +function GYb(){} +function RYb(){} +function UYb(){} +function cZb(){} +function O$b(){} +function S$b(){} +function g1b(){} +function l1b(){} +function p1b(){} +function t1b(){} +function x1b(){} +function B1b(){} +function d2b(){} +function f2b(){} +function l2b(){} +function p2b(){} +function t2b(){} +function R2b(){} +function T2b(){} +function V2b(){} +function $2b(){} +function d3b(){} +function g3b(){} +function o3b(){} +function s3b(){} +function v3b(){} +function x3b(){} +function z3b(){} +function L3b(){} +function P3b(){} +function T3b(){} +function X3b(){} +function k4b(){} +function p4b(){} +function r4b(){} +function t4b(){} +function v4b(){} +function x4b(){} +function K4b(){} +function M4b(){} +function O4b(){} +function Q4b(){} +function S4b(){} +function W4b(){} +function H5b(){} +function P5b(){} +function S5b(){} +function Y5b(){} +function k6b(){} +function n6b(){} +function s6b(){} +function y6b(){} +function K6b(){} +function L6b(){} +function O6b(){} +function W6b(){} +function Z6b(){} +function _6b(){} +function b7b(){} +function f7b(){} +function i7b(){} +function l7b(){} +function q7b(){} +function w7b(){} +function C7b(){} +function C9b(){} +function a9b(){} +function g9b(){} +function i9b(){} +function k9b(){} +function v9b(){} +function E9b(){} +function gac(){} +function iac(){} +function oac(){} +function tac(){} +function Hac(){} +function Jac(){} +function Rac(){} +function nbc(){} +function qbc(){} +function ubc(){} +function Ebc(){} +function Ibc(){} +function Wbc(){} +function bcc(){} +function ecc(){} +function kcc(){} +function ncc(){} +function scc(){} +function xcc(){} +function zcc(){} +function Bcc(){} +function Dcc(){} +function Fcc(){} +function Ycc(){} +function adc(){} +function edc(){} +function gdc(){} +function idc(){} +function odc(){} +function rdc(){} +function xdc(){} +function zdc(){} +function Bdc(){} +function Ddc(){} +function Hdc(){} +function Mdc(){} +function Pdc(){} +function Rdc(){} +function Tdc(){} +function Vdc(){} +function Xdc(){} +function _dc(){} +function gec(){} +function iec(){} +function kec(){} +function mec(){} +function tec(){} +function vec(){} +function xec(){} +function zec(){} +function Eec(){} +function Iec(){} +function Kec(){} +function Mec(){} +function Qec(){} +function Tec(){} +function Yec(){} +function Yfc(){} +function kfc(){} +function sfc(){} +function wfc(){} +function yfc(){} +function Efc(){} +function Ifc(){} +function Mfc(){} +function Ofc(){} +function Ufc(){} +function $fc(){} +function egc(){} +function igc(){} +function kgc(){} +function Agc(){} +function dhc(){} +function fhc(){} +function hhc(){} +function jhc(){} +function lhc(){} +function nhc(){} +function phc(){} +function xhc(){} +function zhc(){} +function Fhc(){} +function Hhc(){} +function Jhc(){} +function Lhc(){} +function Rhc(){} +function Thc(){} +function Vhc(){} +function cic(){} +function clc(){} +function alc(){} +function elc(){} +function glc(){} +function ilc(){} +function Flc(){} +function Hlc(){} +function Jlc(){} +function Llc(){} +function Ljc(){} +function Pjc(){} +function Plc(){} +function Tlc(){} +function Xlc(){} +function Kkc(){} +function Mkc(){} +function Okc(){} +function Qkc(){} +function Wkc(){} +function $kc(){} +function fmc(){} +function jmc(){} +function ymc(){} +function Emc(){} +function Vmc(){} +function Zmc(){} +function _mc(){} +function lnc(){} +function vnc(){} +function Gnc(){} +function Inc(){} +function Knc(){} +function Mnc(){} +function Onc(){} +function Xnc(){} +function doc(){} +function zoc(){} +function Boc(){} +function Doc(){} +function Ioc(){} +function Koc(){} +function Yoc(){} +function $oc(){} +function apc(){} +function gpc(){} +function jpc(){} +function opc(){} +function Pyc(){} +function LCc(){} +function KDc(){} +function kFc(){} +function tGc(){} +function DGc(){} +function FGc(){} +function JGc(){} +function CIc(){} +function eKc(){} +function iKc(){} +function sKc(){} +function uKc(){} +function wKc(){} +function AKc(){} +function GKc(){} +function KKc(){} +function MKc(){} +function OKc(){} +function QKc(){} +function UKc(){} +function YKc(){} +function bLc(){} +function dLc(){} +function jLc(){} +function lLc(){} +function pLc(){} +function rLc(){} +function vLc(){} +function xLc(){} +function zLc(){} +function BLc(){} +function oMc(){} +function FMc(){} +function dNc(){} +function NNc(){} +function VNc(){} +function XNc(){} +function ZNc(){} +function _Nc(){} +function bOc(){} +function dOc(){} +function $Oc(){} +function ePc(){} +function gPc(){} +function iPc(){} +function tPc(){} +function vPc(){} +function vSc(){} +function xSc(){} +function CSc(){} +function ESc(){} +function JSc(){} +function JQc(){} +function HQc(){} +function XQc(){} +function dRc(){} +function fRc(){} +function GRc(){} +function JRc(){} +function JTc(){} +function JVc(){} +function kVc(){} +function OVc(){} +function RVc(){} +function TVc(){} +function VVc(){} +function ZVc(){} +function ZWc(){} +function ZXc(){} +function yXc(){} +function BXc(){} +function EXc(){} +function IXc(){} +function QXc(){} +function PSc(){} +function bYc(){} +function kYc(){} +function mYc(){} +function qYc(){} +function lZc(){} +function C$c(){} +function d0c(){} +function J0c(){} +function g1c(){} +function E1c(){} +function M1c(){} +function c2c(){} +function e2c(){} +function g2c(){} +function s2c(){} +function K2c(){} +function O2c(){} +function V2c(){} +function r3c(){} +function t3c(){} +function N3c(){} +function Q3c(){} +function a4c(){} +function s4c(){} +function t4c(){} +function v4c(){} +function x4c(){} +function z4c(){} +function B4c(){} +function D4c(){} +function F4c(){} +function H4c(){} +function J4c(){} +function L4c(){} +function N4c(){} +function P4c(){} +function R4c(){} +function T4c(){} +function V4c(){} +function X4c(){} +function Z4c(){} +function _4c(){} +function b5c(){} +function d5c(){} +function D5c(){} +function X7c(){} +function Zad(){} +function hdd(){} +function bed(){} +function Eed(){} +function Ied(){} +function Med(){} +function Qed(){} +function Ued(){} +function Ufd(){} +function Cfd(){} +function Wfd(){} +function agd(){} +function fgd(){} +function Hgd(){} +function vhd(){} +function vld(){} +function Old(){} +function skd(){} +function mmd(){} +function fnd(){} +function Eod(){} +function ECd(){} +function XCd(){} +function wpd(){} +function Ypd(){} +function Yud(){} +function tud(){} +function evd(){} +function Cxd(){} +function zBd(){} +function jFd(){} +function wFd(){} +function HGd(){} +function qHd(){} +function MHd(){} +function rNd(){} +function uNd(){} +function xNd(){} +function FNd(){} +function SNd(){} +function VNd(){} +function CPd(){} +function gUd(){} +function SUd(){} +function yWd(){} +function BWd(){} +function EWd(){} +function HWd(){} +function KWd(){} +function NWd(){} +function QWd(){} +function TWd(){} +function WWd(){} +function sYd(){} +function wYd(){} +function hZd(){} +function zZd(){} +function BZd(){} +function EZd(){} +function HZd(){} +function KZd(){} +function NZd(){} +function QZd(){} +function TZd(){} +function WZd(){} +function ZZd(){} +function a$d(){} +function d$d(){} +function g$d(){} +function j$d(){} +function m$d(){} +function p$d(){} +function s$d(){} +function v$d(){} +function y$d(){} +function B$d(){} +function E$d(){} +function H$d(){} +function K$d(){} +function N$d(){} +function Q$d(){} +function T$d(){} +function W$d(){} +function Z$d(){} +function a_d(){} +function d_d(){} +function g_d(){} +function j_d(){} +function m_d(){} +function p_d(){} +function s_d(){} +function v_d(){} +function y_d(){} +function B_d(){} +function E_d(){} +function H_d(){} +function K_d(){} +function N_d(){} +function Q_d(){} +function T_d(){} +function c5d(){} +function P6d(){} +function P9d(){} +function W8d(){} +function aae(){} +function cae(){} +function fae(){} +function iae(){} +function lae(){} +function oae(){} +function rae(){} +function uae(){} +function xae(){} +function Aae(){} +function Dae(){} +function Gae(){} +function Jae(){} +function Mae(){} +function Pae(){} +function Sae(){} +function Vae(){} +function Yae(){} +function _ae(){} +function cbe(){} +function fbe(){} +function ibe(){} +function lbe(){} +function obe(){} +function rbe(){} +function ube(){} +function xbe(){} +function Abe(){} +function Dbe(){} +function Gbe(){} +function Jbe(){} +function Mbe(){} +function Pbe(){} +function Sbe(){} +function Vbe(){} +function Ybe(){} +function _be(){} +function cce(){} +function fce(){} +function ice(){} +function lce(){} +function oce(){} +function rce(){} +function uce(){} +function xce(){} +function Ace(){} +function Dce(){} +function Gce(){} +function Jce(){} +function Mce(){} +function Pce(){} +function Sce(){} +function pde(){} +function Qge(){} +function $ge(){} +function r_b(a){} +function eSd(a){} +function ol(){wb()} +function C2b(){w2b()} +function fFb(){eFb()} +function nPb(){mPb()} +function DPb(){BPb()} +function SRb(){RRb()} +function xSb(){vSb()} +function OSb(){NSb()} +function cTb(){aTb()} +function h4b(){a4b()} +function I6b(){C6b()} +function t9b(){p9b()} +function Z9b(){H9b()} +function Tmc(){Hmc()} +function TBc(){QBc()} +function UCc(){QCc()} +function fCc(){cCc()} +function mCc(){jCc()} +function dDc(){ZCc()} +function sDc(){mDc()} +function _ac(){Uac()} +function _Ic(){YIc()} +function Scc(){Ncc()} +function wkc(){fkc()} +function pJc(){fJc()} +function iwc(){hwc()} +function Nyc(){Lyc()} +function xFc(){tFc()} +function bHc(){_Gc()} +function GLc(){ELc()} +function sNc(){pNc()} +function oTc(){nTc()} +function HTc(){FTc()} +function hUc(){bUc()} +function oUc(){lUc()} +function yUc(){sUc()} +function EUc(){CUc()} +function EWc(){DWc()} +function XWc(){VWc()} +function LYc(){KYc()} +function jZc(){hZc()} +function b0c(){__c()} +function x0c(){w0c()} +function H0c(){F0c()} +function m3c(){l3c()} +function V7c(){T7c()} +function V9c(){U9c()} +function Vmd(){Nmd()} +function Xad(){Vad()} +function fdd(){ddd()} +function CGd(){oGd()} +function cLd(){IKd()} +function E6d(){Pge()} +function Lvb(a){tCb(a)} +function Yb(a){this.a=a} +function cc(a){this.a=a} +function cj(a){this.a=a} +function ij(a){this.a=a} +function Dj(a){this.a=a} +function df(a){this.a=a} +function kf(a){this.a=a} +function ah(a){this.a=a} +function lh(a){this.a=a} +function th(a){this.a=a} +function Ph(a){this.a=a} +function vi(a){this.a=a} +function Ci(a){this.a=a} +function Fk(a){this.a=a} +function Ln(a){this.a=a} +function ap(a){this.a=a} +function zp(a){this.a=a} +function Yp(a){this.a=a} +function qq(a){this.a=a} +function Dq(a){this.a=a} +function wr(a){this.a=a} +function Ir(a){this.b=a} +function sj(a){this.c=a} +function sw(a){this.a=a} +function fw(a){this.a=a} +function xw(a){this.a=a} +function Cw(a){this.a=a} +function Qw(a){this.a=a} +function Rw(a){this.a=a} +function Xw(a){this.a=a} +function Xv(a){this.a=a} +function Sv(a){this.a=a} +function eu(a){this.a=a} +function Zx(a){this.a=a} +function _x(a){this.a=a} +function xy(a){this.a=a} +function xB(a){this.a=a} +function HB(a){this.a=a} +function TB(a){this.a=a} +function fC(a){this.a=a} +function wB(){this.a=[]} +function LBb(a,b){a.a=b} +function v_b(a,b){a.a=b} +function w_b(a,b){a.b=b} +function XOb(a,b){a.b=b} +function ZOb(a,b){a.b=b} +function YGb(a,b){a.j=b} +function pNb(a,b){a.g=b} +function qNb(a,b){a.i=b} +function cRb(a,b){a.c=b} +function dRb(a,b){a.d=b} +function y_b(a,b){a.d=b} +function x_b(a,b){a.c=b} +function $_b(a,b){a.k=b} +function D0b(a,b){a.c=b} +function mjc(a,b){a.c=b} +function ljc(a,b){a.a=b} +function $Ec(a,b){a.a=b} +function _Ec(a,b){a.f=b} +function jOc(a,b){a.a=b} +function kOc(a,b){a.b=b} +function lOc(a,b){a.d=b} +function mOc(a,b){a.i=b} +function nOc(a,b){a.o=b} +function oOc(a,b){a.r=b} +function WPc(a,b){a.a=b} +function XPc(a,b){a.b=b} +function zVc(a,b){a.e=b} +function AVc(a,b){a.f=b} +function BVc(a,b){a.g=b} +function OZc(a,b){a.e=b} +function PZc(a,b){a.f=b} +function $Zc(a,b){a.f=b} +function YId(a,b){a.n=b} +function v1d(a,b){a.a=b} +function E1d(a,b){a.a=b} +function $1d(a,b){a.a=b} +function w1d(a,b){a.c=b} +function F1d(a,b){a.c=b} +function _1d(a,b){a.c=b} +function G1d(a,b){a.d=b} +function H1d(a,b){a.e=b} +function I1d(a,b){a.g=b} +function a2d(a,b){a.d=b} +function b2d(a,b){a.e=b} +function c2d(a,b){a.f=b} +function d2d(a,b){a.j=b} +function U8d(a,b){a.a=b} +function V8d(a,b){a.b=b} +function b9d(a,b){a.a=b} +function Bic(a){a.b=a.a} +function Dg(a){a.c=a.d.d} +function uib(a){this.d=a} +function dib(a){this.a=a} +function Oib(a){this.a=a} +function Uib(a){this.a=a} +function Zib(a){this.a=a} +function lcb(a){this.a=a} +function Lcb(a){this.a=a} +function Wcb(a){this.a=a} +function Mdb(a){this.a=a} +function $db(a){this.a=a} +function seb(a){this.a=a} +function Peb(a){this.a=a} +function cjb(a){this.a=a} +function Fjb(a){this.a=a} +function Mjb(a){this.a=a} +function Ajb(a){this.b=a} +function knb(a){this.b=a} +function Cnb(a){this.b=a} +function nlb(a){this.c=a} +function hob(a){this.c=a} +function Lob(a){this.a=a} +function Qob(a){this.a=a} +function _mb(a){this.a=a} +function spb(a){this.a=a} +function $pb(a){this.a=a} +function Vqb(a){this.a=a} +function msb(a){this.a=a} +function Sub(a){this.a=a} +function Uub(a){this.a=a} +function Wub(a){this.a=a} +function Yub(a){this.a=a} +function pub(a){this.c=a} +function Qxb(a){this.a=a} +function Sxb(a){this.a=a} +function Wxb(a){this.a=a} +function azb(a){this.a=a} +function szb(a){this.a=a} +function uzb(a){this.a=a} +function wzb(a){this.a=a} +function Jzb(a){this.a=a} +function Nzb(a){this.a=a} +function hAb(a){this.a=a} +function jAb(a){this.a=a} +function lAb(a){this.a=a} +function AAb(a){this.a=a} +function gBb(a){this.a=a} +function iBb(a){this.a=a} +function mBb(a){this.a=a} +function SBb(a){this.a=a} +function WBb(a){this.a=a} +function PCb(a){this.a=a} +function VCb(a){this.a=a} +function $Cb(a){this.a=a} +function cEb(a){this.a=a} +function PGb(a){this.a=a} +function XGb(a){this.a=a} +function sKb(a){this.a=a} +function BLb(a){this.a=a} +function IMb(a){this.a=a} +function QNb(a){this.a=a} +function jQb(a){this.a=a} +function lQb(a){this.a=a} +function EQb(a){this.a=a} +function DTb(a){this.a=a} +function TTb(a){this.a=a} +function cUb(a){this.a=a} +function gUb(a){this.a=a} +function DZb(a){this.a=a} +function i$b(a){this.a=a} +function u$b(a){this.e=a} +function I0b(a){this.a=a} +function L0b(a){this.a=a} +function Q0b(a){this.a=a} +function T0b(a){this.a=a} +function h2b(a){this.a=a} +function j2b(a){this.a=a} +function n2b(a){this.a=a} +function r2b(a){this.a=a} +function F2b(a){this.a=a} +function H2b(a){this.a=a} +function J2b(a){this.a=a} +function L2b(a){this.a=a} +function V3b(a){this.a=a} +function Z3b(a){this.a=a} +function U4b(a){this.a=a} +function t5b(a){this.a=a} +function z7b(a){this.a=a} +function F7b(a){this.a=a} +function I7b(a){this.a=a} +function L7b(a){this.a=a} +function Lbc(a){this.a=a} +function Obc(a){this.a=a} +function kac(a){this.a=a} +function mac(a){this.a=a} +function pcc(a){this.a=a} +function Fdc(a){this.a=a} +function Zdc(a){this.a=a} +function bec(a){this.a=a} +function $ec(a){this.a=a} +function ofc(a){this.a=a} +function Afc(a){this.a=a} +function Kfc(a){this.a=a} +function xgc(a){this.a=a} +function Cgc(a){this.a=a} +function rhc(a){this.a=a} +function thc(a){this.a=a} +function vhc(a){this.a=a} +function Bhc(a){this.a=a} +function Dhc(a){this.a=a} +function Nhc(a){this.a=a} +function Xhc(a){this.a=a} +function Skc(a){this.a=a} +function Ukc(a){this.a=a} +function Nlc(a){this.a=a} +function onc(a){this.a=a} +function qnc(a){this.a=a} +function cpc(a){this.a=a} +function epc(a){this.a=a} +function BCc(a){this.a=a} +function FCc(a){this.a=a} +function hDc(a){this.a=a} +function eEc(a){this.a=a} +function CEc(a){this.a=a} +function YEc(a){this.a=a} +function AEc(a){this.c=a} +function poc(a){this.b=a} +function BFc(a){this.a=a} +function dGc(a){this.a=a} +function fGc(a){this.a=a} +function hGc(a){this.a=a} +function WGc(a){this.a=a} +function dIc(a){this.a=a} +function hIc(a){this.a=a} +function lIc(a){this.a=a} +function pIc(a){this.a=a} +function tIc(a){this.a=a} +function vIc(a){this.a=a} +function yIc(a){this.a=a} +function HIc(a){this.a=a} +function yKc(a){this.a=a} +function EKc(a){this.a=a} +function IKc(a){this.a=a} +function WKc(a){this.a=a} +function $Kc(a){this.a=a} +function fLc(a){this.a=a} +function nLc(a){this.a=a} +function tLc(a){this.a=a} +function KMc(a){this.a=a} +function VOc(a){this.a=a} +function VRc(a){this.a=a} +function YRc(a){this.a=a} +function E$c(a){this.a=a} +function G$c(a){this.a=a} +function I$c(a){this.a=a} +function K$c(a){this.a=a} +function Q$c(a){this.a=a} +function j1c(a){this.a=a} +function v1c(a){this.a=a} +function x1c(a){this.a=a} +function M2c(a){this.a=a} +function Q2c(a){this.a=a} +function v3c(a){this.a=a} +function hed(a){this.a=a} +function Sed(a){this.a=a} +function Wed(a){this.a=a} +function Lfd(a){this.a=a} +function wgd(a){this.a=a} +function Vgd(a){this.a=a} +function grd(a){this.a=a} +function prd(a){this.a=a} +function qrd(a){this.a=a} +function rrd(a){this.a=a} +function srd(a){this.a=a} +function trd(a){this.a=a} +function urd(a){this.a=a} +function vrd(a){this.a=a} +function wrd(a){this.a=a} +function xrd(a){this.a=a} +function Drd(a){this.a=a} +function Frd(a){this.a=a} +function Grd(a){this.a=a} +function Hrd(a){this.a=a} +function Ird(a){this.a=a} +function Krd(a){this.a=a} +function Nrd(a){this.a=a} +function Trd(a){this.a=a} +function Urd(a){this.a=a} +function Wrd(a){this.a=a} +function Xrd(a){this.a=a} +function Yrd(a){this.a=a} +function Zrd(a){this.a=a} +function $rd(a){this.a=a} +function hsd(a){this.a=a} +function jsd(a){this.a=a} +function lsd(a){this.a=a} +function nsd(a){this.a=a} +function Rsd(a){this.a=a} +function Gsd(a){this.b=a} +function ohd(a){this.f=a} +function ltd(a){this.a=a} +function tBd(a){this.a=a} +function BBd(a){this.a=a} +function HBd(a){this.a=a} +function NBd(a){this.a=a} +function dCd(a){this.a=a} +function TMd(a){this.a=a} +function BNd(a){this.a=a} +function zPd(a){this.a=a} +function zQd(a){this.a=a} +function ITd(a){this.a=a} +function lOd(a){this.b=a} +function gVd(a){this.c=a} +function QVd(a){this.e=a} +function dYd(a){this.a=a} +function MYd(a){this.a=a} +function UYd(a){this.a=a} +function u0d(a){this.a=a} +function J0d(a){this.a=a} +function n0d(a){this.d=a} +function R5d(a){this.a=a} +function Zfe(a){this.a=a} +function sfe(a){this.e=a} +function Ofd(){this.a=0} +function ikb(){Ujb(this)} +function Qkb(){Bkb(this)} +function Kqb(){Thb(this)} +function kEb(){jEb(this)} +function z_b(){r_b(this)} +function DB(a){return a.a} +function LB(a){return a.a} +function ZB(a){return a.a} +function lC(a){return a.a} +function EC(a){return a.a} +function ubb(a){return a.e} +function SB(){return null} +function wC(){return null} +function PQd(){this.c=AQd} +function mQd(){this.a=this} +function gz(){Xy.call(this)} +function gcb(){hvd();jvd()} +function yJb(a){a.b.tf(a.e)} +function xXb(a){a.b=new Ji} +function i5b(a,b){a.b=b-a.b} +function f5b(a,b){a.a=b-a.a} +function LXc(a,b){b.ad(a.a)} +function q6d(a,b){b.Wb(a)} +function loc(a,b){a.b+=b} +function olc(a,b){F0b(b,a)} +function hp(a,b,c){a.Od(c,b)} +function As(a,b){a.e=b;b.b=a} +function Zl(a){Ql();this.a=a} +function jq(a){Ql();this.a=a} +function sq(a){Ql();this.a=a} +function Fq(a){im();this.a=a} +function Sz(a){Rz();Qz.be(a)} +function ocb(){gz.call(this)} +function scb(){gz.call(this)} +function Adb(){gz.call(this)} +function Udb(){gz.call(this)} +function Xdb(){gz.call(this)} +function Feb(){gz.call(this)} +function agb(){gz.call(this)} +function zpb(){gz.call(this)} +function Ipb(){gz.call(this)} +function ttb(){gz.call(this)} +function t2c(){gz.call(this)} +function wcb(){Xy.call(this)} +function cCb(a,b){a.length=b} +function Svb(a,b){Dkb(a.a,b)} +function rKb(a,b){THb(a.c,b)} +function OMc(a,b){Pqb(a.b,b)} +function BLd(a,b){Phd(a.e,b)} +function qBd(a,b){pAd(a.a,b)} +function rBd(a,b){qAd(a.a,b)} +function $6d(a){y2d(a.c,a.b)} +function mj(a,b){a.kc().Nb(b)} +function Ndb(a){this.a=Sdb(a)} +function sTb(){this.b=new mt} +function Sqb(){this.a=new Kqb} +function fyb(){this.a=new Kqb} +function Vvb(){this.a=new Qkb} +function JFb(){this.a=new Qkb} +function OFb(){this.a=new Qkb} +function EFb(){this.a=new xFb} +function oGb(){this.a=new LFb} +function YQb(){this.a=new LQb} +function Fxb(){this.a=new Owb} +function iUb(){this.a=new OTb} +function rDb(){this.a=new nDb} +function yDb(){this.a=new sDb} +function BWb(){this.a=new Qkb} +function GXb(){this.a=new Qkb} +function mYb(){this.a=new Qkb} +function AYb(){this.a=new Qkb} +function eLb(){this.d=new Qkb} +function uYb(){this.a=new Sqb} +function vZb(){this.b=new Kqb} +function fA(){fA=bcb;new Kqb} +function _1b(){this.a=new Kqb} +function vdc(){this.a=new wkc} +function OCc(){this.b=new Qkb} +function vJc(){this.e=new Qkb} +function HPd(){this.Bb|=256} +function qMc(){this.d=new Qkb} +function SMc(){RMc.call(this)} +function ZMc(){RMc.call(this)} +function rKc(){Qkb.call(this)} +function r0b(){o0b.call(this)} +function qcb(){ocb.call(this)} +function swb(){Vvb.call(this)} +function nHb(){ZGb.call(this)} +function KXb(){GXb.call(this)} +function K_b(){G_b.call(this)} +function G_b(){z_b.call(this)} +function o0b(){z_b.call(this)} +function APc(){yPc.call(this)} +function FPc(){yPc.call(this)} +function KPc(){yPc.call(this)} +function s1c(){o1c.call(this)} +function o7c(){Osb.call(this)} +function Xod(){vld.call(this)} +function kpd(){vld.call(this)} +function gDd(){TCd.call(this)} +function IDd(){TCd.call(this)} +function hFd(){Kqb.call(this)} +function qFd(){Kqb.call(this)} +function BFd(){Kqb.call(this)} +function FPd(){Sqb.call(this)} +function XPd(){HPd.call(this)} +function JJd(){cJd.call(this)} +function NSd(){AId.call(this)} +function mUd(){AId.call(this)} +function jUd(){Kqb.call(this)} +function IYd(){Kqb.call(this)} +function ZYd(){Kqb.call(this)} +function M8d(){HGd.call(this)} +function j9d(){HGd.call(this)} +function d9d(){M8d.call(this)} +function cee(){pde.call(this)} +function Dd(a){yd.call(this,a)} +function Hd(a){yd.call(this,a)} +function ph(a){lh.call(this,a)} +function Sh(a){Wc.call(this,a)} +function oi(a){Sh.call(this,a)} +function Ii(a){Wc.call(this,a)} +function Udd(){this.a=new Osb} +function yPc(){this.a=new Sqb} +function o1c(){this.a=new Kqb} +function MSc(){this.a=new Qkb} +function MXc(){this.a=new QXc} +function a_c(){this.a=new _$c} +function z2c(){this.j=new Qkb} +function TCd(){this.a=new XCd} +function wb(){wb=bcb;vb=new xb} +function Lk(){Lk=bcb;Kk=new Mk} +function _k(){_k=bcb;$k=new al} +function hs(){hs=bcb;gs=new is} +function rs(a){Sh.call(this,a)} +function Gp(a){Sh.call(this,a)} +function xp(a){Lo.call(this,a)} +function Ep(a){Lo.call(this,a)} +function Tp(a){Wn.call(this,a)} +function wx(a){un.call(this,a)} +function ov(a){dv.call(this,a)} +function Mv(a){Br.call(this,a)} +function Ov(a){Br.call(this,a)} +function Lw(a){Br.call(this,a)} +function hz(a){Yy.call(this,a)} +function MB(a){hz.call(this,a)} +function eC(){fC.call(this,{})} +function Etb(a){ztb();this.a=a} +function ywb(a){a.b=null;a.c=0} +function Vy(a,b){a.e=b;Sy(a,b)} +function KVb(a,b){a.a=b;MVb(a)} +function kIb(a,b,c){a.a[b.g]=c} +function qfd(a,b,c){yfd(c,a,b)} +function Ndc(a,b){qjc(b.i,a.n)} +function Uyc(a,b){Vyc(a).td(b)} +function DRb(a,b){return a*a/b} +function Xr(a,b){return a.g-b.g} +function tC(a){return new TB(a)} +function vC(a){return new yC(a)} +function ncb(a){hz.call(this,a)} +function pcb(a){hz.call(this,a)} +function tcb(a){hz.call(this,a)} +function ucb(a){Yy.call(this,a)} +function aGc(a){GFc();this.a=a} +function Z_d(a){fzd();this.a=a} +function Ygd(a){Mgd();this.f=a} +function $gd(a){Mgd();this.f=a} +function Bdb(a){hz.call(this,a)} +function Vdb(a){hz.call(this,a)} +function Ydb(a){hz.call(this,a)} +function Eeb(a){hz.call(this,a)} +function Geb(a){hz.call(this,a)} +function Bcb(a){return tCb(a),a} +function Ddb(a){return tCb(a),a} +function Fdb(a){return tCb(a),a} +function ifb(a){return tCb(a),a} +function sfb(a){return tCb(a),a} +function _jb(a){return a.b==a.c} +function Gwb(a){return !!a&&a.b} +function oIb(a){return !!a&&a.k} +function pIb(a){return !!a&&a.j} +function _lb(a){tCb(a);this.a=a} +function vVb(a){pVb(a);return a} +function Alb(a){Flb(a,a.length)} +function bgb(a){hz.call(this,a)} +function u2c(a){hz.call(this,a)} +function v2c(a){hz.call(this,a)} +function Zpd(a){hz.call(this,a)} +function i8d(a){hz.call(this,a)} +function hde(a){hz.call(this,a)} +function pc(a){qc.call(this,a,0)} +function Ji(){Ki.call(this,12,3)} +function Gb(){this.a=GD(Qb(Nhe))} +function jc(){throw ubb(new agb)} +function zh(){throw ubb(new agb)} +function Pi(){throw ubb(new agb)} +function Pj(){throw ubb(new agb)} +function Qj(){throw ubb(new agb)} +function Ym(){throw ubb(new agb)} +function jz(){jz=bcb;iz=new nb} +function Kz(){Kz=bcb;Jz=new Nz} +function KA(){KA=bcb;JA=new MA} +function OB(){OB=bcb;NB=new PB} +function Az(){Az=bcb;!!(Rz(),Qz)} +function Mk(){Fk.call(this,null)} +function al(){Fk.call(this,null)} +function rcb(a){pcb.call(this,a)} +function Neb(a){Vdb.call(this,a)} +function Gfb(){lcb.call(this,'')} +function Hfb(){lcb.call(this,'')} +function Tfb(){lcb.call(this,'')} +function Ufb(){lcb.call(this,'')} +function Wfb(a){pcb.call(this,a)} +function yob(a){knb.call(this,a)} +function Fob(a){yob.call(this,a)} +function Xob(a){Hnb.call(this,a)} +function BYb(a,b,c){a.c.lf(b,c)} +function iw(a,b){a.a.ec().Mc(b)} +function Bs(a,b){a.Td(b);b.Sd(a)} +function tvb(a,b,c){b.td(a.a[c])} +function yvb(a,b,c){b.we(a.a[c])} +function Kcb(a,b){return a.a-b.a} +function Vcb(a,b){return a.a-b.a} +function Oeb(a,b){return a.a-b.a} +function dCb(a,b){return PC(a,b)} +function GC(a,b){return qdb(a,b)} +function _B(b,a){return a in b.a} +function Ltb(a){return a.a?a.b:0} +function Utb(a){return a.a?a.b:0} +function oy(a){Ql();this.a=Qb(a)} +function vrb(){vrb=bcb;urb=xrb()} +function YDb(a,b){a.b=b;return a} +function ZDb(a,b){a.c=b;return a} +function $Db(a,b){a.f=b;return a} +function _Db(a,b){a.g=b;return a} +function GGb(a,b){a.a=b;return a} +function HGb(a,b){a.f=b;return a} +function IGb(a,b){a.k=b;return a} +function cLb(a,b){a.a=b;return a} +function dLb(a,b){a.e=b;return a} +function yVb(a,b){a.e=b;return a} +function zVb(a,b){a.f=b;return a} +function JOb(a,b){a.b=true;a.d=b} +function CHb(a,b){a.b=new c7c(b)} +function Kic(a,b){return a?0:b-1} +function NFc(a,b){return a?0:b-1} +function MFc(a,b){return a?b-1:0} +function sJc(a,b){return a.b-b.b} +function gOc(a,b){return a.g-b.g} +function SQc(a,b){return a.s-b.s} +function I2c(a,b){return b.Yf(a)} +function I3c(a,b){a.b=b;return a} +function H3c(a,b){a.a=b;return a} +function J3c(a,b){a.c=b;return a} +function K3c(a,b){a.d=b;return a} +function L3c(a,b){a.e=b;return a} +function M3c(a,b){a.f=b;return a} +function Z3c(a,b){a.a=b;return a} +function $3c(a,b){a.b=b;return a} +function _3c(a,b){a.c=b;return a} +function v5c(a,b){a.c=b;return a} +function u5c(a,b){a.b=b;return a} +function w5c(a,b){a.d=b;return a} +function x5c(a,b){a.e=b;return a} +function y5c(a,b){a.f=b;return a} +function z5c(a,b){a.g=b;return a} +function A5c(a,b){a.a=b;return a} +function B5c(a,b){a.i=b;return a} +function C5c(a,b){a.j=b;return a} +function Qdd(a,b){a.k=b;return a} +function Rdd(a,b){a.j=b;return a} +function xkc(a,b){fkc();E0b(b,a)} +function P$c(a,b,c){N$c(a.a,b,c)} +function NGc(a){ZDc.call(this,a)} +function eHc(a){ZDc.call(this,a)} +function p7c(a){Psb.call(this,a)} +function _Ob(a){$Ob.call(this,a)} +function Dxd(a){uud.call(this,a)} +function $Bd(a){UBd.call(this,a)} +function aCd(a){UBd.call(this,a)} +function o_b(){p_b.call(this,'')} +function _6c(){this.a=0;this.b=0} +function YOc(){this.b=0;this.a=0} +function Ahd(){Ahd=bcb;zhd=jnd()} +function Chd(){Chd=bcb;Bhd=xod()} +function GFd(){GFd=bcb;FFd=lZd()} +function k8d(){k8d=bcb;j8d=T9d()} +function m8d(){m8d=bcb;l8d=$9d()} +function hvd(){hvd=bcb;gvd=j4c()} +function IJd(a,b){a.b=0;yId(a,b)} +function S1d(a,b){a.c=b;a.b=true} +function Rub(a,b){while(a.sd(b));} +function Oc(a,b){return a.c._b(b)} +function sn(a,b){return Gv(a.b,b)} +function fdb(a){return a.e&&a.e()} +function pD(a){return a.l|a.m<<22} +function Vd(a){return !a?null:a.d} +function Fv(a){return !a?null:a.g} +function Kv(a){return !a?null:a.i} +function gdb(a){edb(a);return a.o} +function Afb(a,b){a.a+=b;return a} +function Bfb(a,b){a.a+=b;return a} +function Efb(a,b){a.a+=b;return a} +function Kfb(a,b){a.a+=b;return a} +function sgb(a){kgb();mgb(this,a)} +function Tqb(a){this.a=new Lqb(a)} +function Gxb(a){this.a=new Pwb(a)} +function Rrb(){throw ubb(new agb)} +function dnb(){throw ubb(new agb)} +function enb(){throw ubb(new agb)} +function fnb(){throw ubb(new agb)} +function inb(){throw ubb(new agb)} +function Bnb(){throw ubb(new agb)} +function pRc(){this.b=new H2c(g$)} +function VUc(){this.a=new H2c(J$)} +function M$c(){this.b=new H2c(I_)} +function _$c(){this.b=new H2c(I_)} +function fVc(a){this.a=0;this.b=a} +function VAb(a){Szb(a);return a.a} +function Vsb(a){return a.b!=a.d.c} +function YHc(a,b){return a.d[b.p]} +function b2c(a,b){return $1c(a,b)} +function bCb(a,b,c){a.splice(b,c)} +function $ub(a,b){while(a.ye(b));} +function VHb(a){a.c?UHb(a):WHb(a)} +function JCd(){throw ubb(new agb)} +function KCd(){throw ubb(new agb)} +function LCd(){throw ubb(new agb)} +function MCd(){throw ubb(new agb)} +function NCd(){throw ubb(new agb)} +function OCd(){throw ubb(new agb)} +function PCd(){throw ubb(new agb)} +function QCd(){throw ubb(new agb)} +function RCd(){throw ubb(new agb)} +function SCd(){throw ubb(new agb)} +function Xge(){throw ubb(new ttb)} +function Yge(){throw ubb(new ttb)} +function Mge(a){this.a=new _fe(a)} +function _fe(a){$fe(this,a,Qee())} +function Ahe(a){return !a||zhe(a)} +function $ce(a){return Vce[a]!=-1} +function Iz(){xz!=0&&(xz=0);zz=-1} +function Xbb(){Vbb==null&&(Vbb=[])} +function JNd(a,b){Mxd(UKd(a.a),b)} +function ONd(a,b){Mxd(UKd(a.a),b)} +function Yf(a,b){zf.call(this,a,b)} +function $f(a,b){Yf.call(this,a,b)} +function Hf(a,b){this.b=a;this.c=b} +function rk(a,b){this.b=a;this.a=b} +function ek(a,b){this.a=a;this.b=b} +function gk(a,b){this.a=a;this.b=b} +function pk(a,b){this.a=a;this.b=b} +function yk(a,b){this.a=a;this.b=b} +function Ak(a,b){this.a=a;this.b=b} +function Fj(a,b){this.a=a;this.b=b} +function _j(a,b){this.a=a;this.b=b} +function dr(a,b){this.a=a;this.b=b} +function zr(a,b){this.b=a;this.a=b} +function So(a,b){this.b=a;this.a=b} +function qp(a,b){this.b=a;this.a=b} +function $q(a,b){this.b=a;this.a=b} +function $r(a,b){this.f=a;this.g=b} +function ne(a,b){this.e=a;this.d=b} +function Wo(a,b){this.g=a;this.i=b} +function bu(a,b){this.a=a;this.b=b} +function qu(a,b){this.a=a;this.f=b} +function qv(a,b){this.b=a;this.c=b} +function ox(a,b){this.a=a;this.b=b} +function Px(a,b){this.a=a;this.b=b} +function mC(a,b){this.a=a;this.b=b} +function Wc(a){Lb(a.dc());this.c=a} +function rf(a){this.b=BD(Qb(a),83)} +function Zv(a){this.a=BD(Qb(a),83)} +function dv(a){this.a=BD(Qb(a),15)} +function $u(a){this.a=BD(Qb(a),15)} +function Br(a){this.b=BD(Qb(a),47)} +function eB(){this.q=new $wnd.Date} +function Lp(a,b){return a>b&&b0} +function Fbb(a,b){return xbb(a,b)<0} +function Brb(a,b){return a.a.get(b)} +function hcb(b,a){return a.split(b)} +function Urb(a,b){return Lhb(a.e,b)} +function Mvb(a){return tCb(a),false} +function Qub(a){Jub.call(this,a,21)} +function vcb(a,b){Zy.call(this,a,b)} +function lxb(a,b){$r.call(this,a,b)} +function Fyb(a,b){$r.call(this,a,b)} +function zx(a){yx();Wn.call(this,a)} +function zlb(a,b){Elb(a,a.length,b)} +function ylb(a,b){Clb(a,a.length,b)} +function tBb(a,b,c){b.we(a.a.Fe(c))} +function zBb(a,b,c){b.ud(a.a.Ge(c))} +function FBb(a,b,c){b.td(a.a.Kb(c))} +function Zq(a,b,c){a.Mb(c)&&b.td(c)} +function _Bb(a,b,c){a.splice(b,0,c)} +function kDb(a,b){return tqb(a.e,b)} +function ojb(a,b){this.d=a;this.e=b} +function jqb(a,b){this.b=a;this.a=b} +function UBb(a,b){this.b=a;this.a=b} +function AEb(a,b){this.b=a;this.a=b} +function rBb(a,b){this.a=a;this.b=b} +function xBb(a,b){this.a=a;this.b=b} +function DBb(a,b){this.a=a;this.b=b} +function JBb(a,b){this.a=a;this.b=b} +function _Cb(a,b){this.a=a;this.b=b} +function sMb(a,b){this.b=a;this.a=b} +function nOb(a,b){this.b=a;this.a=b} +function ROb(a,b){$r.call(this,a,b)} +function RMb(a,b){$r.call(this,a,b)} +function MEb(a,b){$r.call(this,a,b)} +function UEb(a,b){$r.call(this,a,b)} +function rFb(a,b){$r.call(this,a,b)} +function gHb(a,b){$r.call(this,a,b)} +function NHb(a,b){$r.call(this,a,b)} +function EIb(a,b){$r.call(this,a,b)} +function vLb(a,b){$r.call(this,a,b)} +function XRb(a,b){$r.call(this,a,b)} +function yTb(a,b){$r.call(this,a,b)} +function qUb(a,b){$r.call(this,a,b)} +function nWb(a,b){$r.call(this,a,b)} +function RXb(a,b){$r.call(this,a,b)} +function j0b(a,b){$r.call(this,a,b)} +function y5b(a,b){$r.call(this,a,b)} +function S8b(a,b){$r.call(this,a,b)} +function hbc(a,b){$r.call(this,a,b)} +function Bec(a,b){this.a=a;this.b=b} +function qfc(a,b){this.a=a;this.b=b} +function Qfc(a,b){this.a=a;this.b=b} +function Sfc(a,b){this.a=a;this.b=b} +function agc(a,b){this.a=a;this.b=b} +function mgc(a,b){this.a=a;this.b=b} +function Phc(a,b){this.a=a;this.b=b} +function Zhc(a,b){this.a=a;this.b=b} +function Y0b(a,b){this.a=a;this.b=b} +function YVb(a,b){this.b=a;this.a=b} +function Cfc(a,b){this.b=a;this.a=b} +function cgc(a,b){this.b=a;this.a=b} +function Amc(a,b){this.b=a;this.a=b} +function bWb(a,b){this.c=a;this.d=b} +function H$b(a,b){this.e=a;this.d=b} +function Tnc(a,b){this.a=a;this.b=b} +function Nic(a,b){this.b=b;this.c=a} +function Ajc(a,b){$r.call(this,a,b)} +function Xjc(a,b){$r.call(this,a,b)} +function Fkc(a,b){$r.call(this,a,b)} +function Apc(a,b){$r.call(this,a,b)} +function Ipc(a,b){$r.call(this,a,b)} +function Spc(a,b){$r.call(this,a,b)} +function Sqc(a,b){$r.call(this,a,b)} +function bqc(a,b){$r.call(this,a,b)} +function mqc(a,b){$r.call(this,a,b)} +function wqc(a,b){$r.call(this,a,b)} +function Fqc(a,b){$r.call(this,a,b)} +function $qc(a,b){$r.call(this,a,b)} +function krc(a,b){$r.call(this,a,b)} +function xrc(a,b){$r.call(this,a,b)} +function Nrc(a,b){$r.call(this,a,b)} +function Wrc(a,b){$r.call(this,a,b)} +function dsc(a,b){$r.call(this,a,b)} +function lsc(a,b){$r.call(this,a,b)} +function lzc(a,b){$r.call(this,a,b)} +function xzc(a,b){$r.call(this,a,b)} +function Izc(a,b){$r.call(this,a,b)} +function Vzc(a,b){$r.call(this,a,b)} +function Btc(a,b){$r.call(this,a,b)} +function jAc(a,b){$r.call(this,a,b)} +function sAc(a,b){$r.call(this,a,b)} +function AAc(a,b){$r.call(this,a,b)} +function JAc(a,b){$r.call(this,a,b)} +function SAc(a,b){$r.call(this,a,b)} +function $Ac(a,b){$r.call(this,a,b)} +function sBc(a,b){$r.call(this,a,b)} +function BBc(a,b){$r.call(this,a,b)} +function KBc(a,b){$r.call(this,a,b)} +function oGc(a,b){$r.call(this,a,b)} +function RIc(a,b){$r.call(this,a,b)} +function AIc(a,b){this.b=a;this.a=b} +function mKc(a,b){this.a=a;this.b=b} +function CKc(a,b){this.a=a;this.b=b} +function hLc(a,b){this.a=a;this.b=b} +function iMc(a,b){this.a=a;this.b=b} +function VMc(a,b){this.b=a;this.d=b} +function VLc(a,b){$r.call(this,a,b)} +function bMc(a,b){$r.call(this,a,b)} +function EOc(a,b){$r.call(this,a,b)} +function CQc(a,b){$r.call(this,a,b)} +function LQc(a,b){this.a=a;this.b=b} +function NQc(a,b){this.a=a;this.b=b} +function wRc(a,b){$r.call(this,a,b)} +function nSc(a,b){$r.call(this,a,b)} +function PTc(a,b){$r.call(this,a,b)} +function XTc(a,b){$r.call(this,a,b)} +function NUc(a,b){$r.call(this,a,b)} +function qVc(a,b){$r.call(this,a,b)} +function dWc(a,b){$r.call(this,a,b)} +function nWc(a,b){$r.call(this,a,b)} +function gXc(a,b){$r.call(this,a,b)} +function qXc(a,b){$r.call(this,a,b)} +function wYc(a,b){$r.call(this,a,b)} +function h$c(a,b){$r.call(this,a,b)} +function V$c(a,b){$r.call(this,a,b)} +function z_c(a,b){$r.call(this,a,b)} +function K_c(a,b){$r.call(this,a,b)} +function $0c(a,b){$r.call(this,a,b)} +function i2c(a,b){this.a=a;this.b=b} +function S2c(a,b){this.a=a;this.b=b} +function bIc(a,b){BHc();return b!=a} +function zrb(){vrb();return new urb} +function yMc(){sMc();this.b=new Sqb} +function JNc(){BNc();this.a=new Sqb} +function b7c(a,b){this.a=a;this.b=b} +function C7c(a,b){$r.call(this,a,b)} +function K5c(a,b){$r.call(this,a,b)} +function Y5c(a,b){$r.call(this,a,b)} +function f8c(a,b){$r.call(this,a,b)} +function ead(a,b){$r.call(this,a,b)} +function nad(a,b){$r.call(this,a,b)} +function xad(a,b){$r.call(this,a,b)} +function Jad(a,b){$r.call(this,a,b)} +function ebd(a,b){$r.call(this,a,b)} +function pbd(a,b){$r.call(this,a,b)} +function Ebd(a,b){$r.call(this,a,b)} +function Qbd(a,b){$r.call(this,a,b)} +function ccd(a,b){$r.call(this,a,b)} +function ncd(a,b){$r.call(this,a,b)} +function Tcd(a,b){$r.call(this,a,b)} +function pdd(a,b){$r.call(this,a,b)} +function Edd(a,b){$r.call(this,a,b)} +function zed(a,b){$r.call(this,a,b)} +function Yed(a,b){this.a=a;this.b=b} +function $ed(a,b){this.a=a;this.b=b} +function afd(a,b){this.a=a;this.b=b} +function Ffd(a,b){this.a=a;this.b=b} +function Hfd(a,b){this.a=a;this.b=b} +function Jfd(a,b){this.a=a;this.b=b} +function qgd(a,b){this.a=a;this.b=b} +function erd(a,b){this.a=a;this.b=b} +function frd(a,b){this.a=a;this.b=b} +function hrd(a,b){this.a=a;this.b=b} +function ird(a,b){this.a=a;this.b=b} +function lrd(a,b){this.a=a;this.b=b} +function mrd(a,b){this.a=a;this.b=b} +function nrd(a,b){this.b=a;this.a=b} +function ord(a,b){this.b=a;this.a=b} +function yrd(a,b){this.b=a;this.a=b} +function Ard(a,b){this.b=a;this.a=b} +function Crd(a,b){this.a=a;this.b=b} +function Erd(a,b){this.a=a;this.b=b} +function lgd(a,b){$r.call(this,a,b)} +function Prd(a,b){this.a=a;this.b=b} +function Rrd(a,b){this.a=a;this.b=b} +function ysd(a,b){$r.call(this,a,b)} +function Rud(a,b){this.f=a;this.c=b} +function bVb(a,b){return tqb(a.c,b)} +function z3c(a,b){return tqb(a.g,b)} +function mnc(a,b){return tqb(b.b,a)} +function cCd(a,b){return lAd(a.a,b)} +function t1c(a,b){return -a.b.Je(b)} +function xIc(a,b){cIc(a.a,BD(b,11))} +function Jrd(a,b){Sqd(a.a,BD(b,56))} +function Hqd(a,b,c){Mpd(b,fqd(a,c))} +function Iqd(a,b,c){Mpd(b,fqd(a,c))} +function dvd(a,b){!!a&&Qhb(Zud,a,b)} +function VId(a,b){a.i=null;WId(a,b)} +function T1d(a,b){this.e=a;this.a=b} +function x1d(a,b){this.d=a;this.b=b} +function fGd(a,b){this.a=a;this.b=b} +function iGd(a,b){this.a=a;this.b=b} +function YTd(a,b){this.a=a;this.b=b} +function uVd(a,b){this.a=a;this.b=b} +function Z7d(a,b){this.a=a;this.b=b} +function a7d(a,b){this.b=a;this.c=b} +function Wzd(a,b){this.i=a;this.g=b} +function HLd(a,b){this.d=a;this.e=b} +function yhe(a,b){Che(new Ayd(a),b)} +function _6d(a){return M2d(a.c,a.b)} +function Kq(a,b){return hr(a.Kc(),b)} +function Em(a,b){return a.Hd().Xb(b)} +function Wd(a){return !a?null:a.dd()} +function PD(a){return a==null?null:a} +function KD(a){return typeof a===Fhe} +function LD(a){return typeof a===Ghe} +function ND(a){return typeof a===Hhe} +function Abb(a,b){return xbb(a,b)==0} +function Dbb(a,b){return xbb(a,b)>=0} +function Jbb(a,b){return xbb(a,b)!=0} +function ofb(a,b){return a.substr(b)} +function Lfb(a,b){return a.a+=''+b,a} +function Idb(a){return ''+(tCb(a),a)} +function cg(a){ag(a);return a.d.gc()} +function nVb(a){oVb(a,a.c);return a} +function RD(a){BCb(a==null);return a} +function vmb(a){sCb(a,0);return null} +function Cfb(a,b){a.a+=''+b;return a} +function Dfb(a,b){a.a+=''+b;return a} +function Mfb(a,b){a.a+=''+b;return a} +function Ofb(a,b){a.a+=''+b;return a} +function Pfb(a,b){a.a+=''+b;return a} +function evb(a,b){avb.call(this,a,b)} +function ivb(a,b){avb.call(this,a,b)} +function mvb(a,b){avb.call(this,a,b)} +function Esb(a,b){Fsb(a,b,a.c.b,a.c)} +function Dsb(a,b){Fsb(a,b,a.a,a.a.a)} +function LJc(a,b){return a.j[b.p]==2} +function $Pb(a){return UPb(BD(a,79))} +function Mqb(a){Thb(this);Ld(this,a)} +function Ntb(){this.b=0;this.a=false} +function Vtb(){this.b=0;this.a=false} +function mt(){this.b=new Lqb(Cv(12))} +function xJb(){xJb=bcb;wJb=as(vJb())} +function X8b(){X8b=bcb;W8b=as(V8b())} +function GA(){GA=bcb;fA();FA=new Kqb} +function T6c(a){a.a=0;a.b=0;return a} +function b3c(a,b){a.a=b.g+1;return a} +function cB(a,b){a.q.setTime(Rbb(b))} +function Isd(a,b){Hsd.call(this,a,b)} +function Vzd(a,b){xyd.call(this,a,b)} +function iNd(a,b){Wzd.call(this,a,b)} +function n4d(a,b){k4d.call(this,a,b)} +function r4d(a,b){lRd.call(this,a,b)} +function mEd(a,b){kEd();Qhb(jEd,a,b)} +function mb(a,b){return PD(a)===PD(b)} +function ww(a,b){return a.a.a.a.cc(b)} +function kcb(a,b){return pfb(a.a,0,b)} +function Ny(a,b){return a==b?0:a?1:-1} +function Ldb(a,b){return Jdb(a.a,b.a)} +function Zdb(a,b){return aeb(a.a,b.a)} +function reb(a,b){return teb(a.a,b.a)} +function gfb(a,b){return a.indexOf(b)} +function Mq(a){return Qb(a),new sl(a)} +function SC(a){return TC(a.l,a.m,a.h)} +function Gdb(a){return QD((tCb(a),a))} +function Hdb(a){return QD((tCb(a),a))} +function Ebb(a){return typeof a===Ghe} +function MIb(a,b){return aeb(a.g,b.g)} +function lWb(a){return a==gWb||a==jWb} +function mWb(a){return a==gWb||a==hWb} +function kB(a){return a<10?'0'+a:''+a} +function F1b(a){return Ikb(a.b.b,a,0)} +function krb(a){this.a=zrb();this.b=a} +function Erb(a){this.a=zrb();this.b=a} +function sl(a){this.a=a;ol.call(this)} +function vl(a){this.a=a;ol.call(this)} +function Mlb(a,b){Jlb(a,0,a.length,b)} +function rwb(a,b){Dkb(a.a,b);return b} +function V1c(a,b){Dkb(a.c,b);return a} +function A2c(a,b){_2c(a.a,b);return a} +function $gc(a,b){Ggc();return b.a+=a} +function _gc(a,b){Ggc();return b.c+=a} +function ahc(a,b){Ggc();return b.a+=a} +function Hzc(a){return a==Dzc||a==Czc} +function bad(a){return a==Y9c||a==Z9c} +function cad(a){return a==_9c||a==X9c} +function bcd(a){return a!=Zbd&&a!=$bd} +function jid(a){return a.Kg()&&a.Lg()} +function Bfd(a){return Fkd(BD(a,118))} +function g3c(a){return _2c(new f3c,a)} +function ysb(){Vqb.call(this,new Zrb)} +function H_b(){A_b.call(this,0,0,0,0)} +function E6c(){F6c.call(this,0,0,0,0)} +function Wud(a){Rud.call(this,a,true)} +function c7c(a){this.a=a.a;this.b=a.b} +function dKd(a,b){VJd(a,b);WJd(a,a.D)} +function pkd(a,b,c){qkd(a,b);rkd(a,c)} +function Wkd(a,b,c){Zkd(a,b);Xkd(a,c)} +function Ykd(a,b,c){$kd(a,b);_kd(a,c)} +function bmd(a,b,c){cmd(a,b);dmd(a,c)} +function imd(a,b,c){jmd(a,b);kmd(a,c)} +function Xg(a,b,c){Vg.call(this,a,b,c)} +function Xgb(a){Ggb();Ygb.call(this,a)} +function qxb(){lxb.call(this,'Head',1)} +function vxb(){lxb.call(this,'Tail',3)} +function Bkb(a){a.c=KC(SI,Phe,1,0,5,1)} +function Ujb(a){a.a=KC(SI,Phe,1,8,5,1)} +function LGb(a){Gkb(a.xf(),new PGb(a))} +function wtb(a){return a!=null?tb(a):0} +function t2d(a,b){return new k4d(b,a)} +function u2d(a,b){return new k4d(b,a)} +function a2b(a,b){return itd(b,hpd(a))} +function b2b(a,b){return itd(b,hpd(a))} +function cAb(a,b){return a[a.length]=b} +function fAb(a,b){return a[a.length]=b} +function $pd(a,b){return _o(qo(a.d),b)} +function _pd(a,b){return _o(qo(a.g),b)} +function aqd(a,b){return _o(qo(a.j),b)} +function Vq(a){return lr(a.b.Kc(),a.a)} +function p0b(a){A_b.call(this,a,a,a,a)} +function Jsd(a,b){Hsd.call(this,a.b,b)} +function rfd(a,b,c){Ykd(c,c.i+a,c.j+b)} +function kBc(a,b,c){NC(a.c[b.g],b.g,c)} +function WHd(a,b,c){BD(a.c,69).Wh(b,c)} +function gzd(a,b,c){NC(a,b,c);return c} +function tyb(a,b){if(kyb){return}a.b=b} +function GOb(a){a.b&&KOb(a);return a.a} +function HOb(a){a.b&&KOb(a);return a.c} +function POd(a,b){rtd(QKd(a.a),SOd(b))} +function YSd(a,b){rtd(LSd(a.a),_Sd(b))} +function xAd(a){return a==null?0:tb(a)} +function Gge(a){rfe();sfe.call(this,a)} +function Mg(a){this.a=a;Gg.call(this,a)} +function Iy(){Iy=bcb;$wnd.Math.log(2)} +function PVd(){PVd=bcb;OVd=(vFd(),uFd)} +function bNc(){bNc=bcb;aNc=new Qpb(u1)} +function c0d(){c0d=bcb;new d0d;new Qkb} +function d0d(){new Kqb;new Kqb;new Kqb} +function Wge(){throw ubb(new bgb(yxe))} +function Zge(){throw ubb(new bgb(zxe))} +function mhe(){throw ubb(new bgb(zxe))} +function jhe(){throw ubb(new bgb(yxe))} +function Ceb(a,b){return xbb(a,b)>0?a:b} +function aeb(a,b){return ab?1:0} +function TC(a,b,c){return {l:a,m:b,h:c}} +function Mtb(a,b){return a.a?a.b:b.De()} +function klb(a){return a.a0?b*b/a:b*b*100} +function BRb(a,b){return a>0?b/(a*a):b*100} +function Srb(a){a.d=new jsb(a);a.e=new Kqb} +function lkb(a){if(!a){throw ubb(new zpb)}} +function kCb(a){if(!a){throw ubb(new Udb)}} +function xCb(a){if(!a){throw ubb(new Xdb)}} +function pCb(a){if(!a){throw ubb(new scb)}} +function rCb(a){if(!a){throw ubb(new ttb)}} +function ykc(a,b){fkc();return Rc(a,b.e,b)} +function $yc(a,b,c){Tyc();return c.pg(a,b)} +function p3c(a,b,c){l3c();a.Xe(b)&&c.td(a)} +function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function C2c(a,b,c){return Dkb(b,E2c(a,c))} +function K6c(a,b,c){a.a+=b;a.b+=c;return a} +function V6c(a,b,c){a.a*=b;a.b*=c;return a} +function Z6c(a,b,c){a.a-=b;a.b-=c;return a} +function Y6c(a,b){a.a=b.a;a.b=b.b;return a} +function R6c(a){a.a=-a.a;a.b=-a.b;return a} +function Cic(a){this.c=a;this.a=1;this.b=1} +function sed(a){this.c=a;$kd(a,0);_kd(a,0)} +function q7c(a){Osb.call(this);j7c(this,a)} +function zXb(a){wXb();xXb(this);this.mf(a)} +function BRd(a,b){iRd();lRd.call(this,a,b)} +function $Rd(a,b){GRd();MRd.call(this,a,b)} +function cSd(a,b){GRd();MRd.call(this,a,b)} +function aSd(a,b){GRd();$Rd.call(this,a,b)} +function nId(a,b,c){$Hd.call(this,a,b,c,2)} +function uXd(a,b){PVd();iXd.call(this,a,b)} +function wXd(a,b){PVd();uXd.call(this,a,b)} +function yXd(a,b){PVd();uXd.call(this,a,b)} +function AXd(a,b){PVd();yXd.call(this,a,b)} +function KXd(a,b){PVd();iXd.call(this,a,b)} +function MXd(a,b){PVd();KXd.call(this,a,b)} +function SXd(a,b){PVd();iXd.call(this,a,b)} +function kAd(a,b){return a.c.Fc(BD(b,133))} +function r1d(a,b,c){return Q1d(k1d(a,b),c)} +function I2d(a,b,c){return b.Pk(a.e,a.c,c)} +function K2d(a,b,c){return b.Qk(a.e,a.c,c)} +function X2d(a,b){return sid(a.e,BD(b,49))} +function XSd(a,b,c){qtd(LSd(a.a),b,_Sd(c))} +function OOd(a,b,c){qtd(QKd(a.a),b,SOd(c))} +function B9d(a){return a==null?null:ede(a)} +function x9d(a){return a==null?null:Zce(a)} +function E9d(a){return a==null?null:ecb(a)} +function F9d(a){return a==null?null:ecb(a)} +function edb(a){if(a.o!=null){return}udb(a)} +function DD(a){BCb(a==null||KD(a));return a} +function ED(a){BCb(a==null||LD(a));return a} +function GD(a){BCb(a==null||ND(a));return a} +function GCd(){GCd=bcb;FCd=new gDd;new IDd} +function IUc(){IUc=bcb;HUc=new Gsd('root')} +function p_c(){$r.call(this,'GROW_TREE',0)} +function cPb(){$r.call(this,'POLYOMINO',0)} +function AUd(){cJd.call(this);this.Bb|=Oje} +function Hg(a,b){this.d=a;Dg(this);this.b=b} +function aAb(a,b){Uzb.call(this,a);this.a=b} +function uAb(a,b){Uzb.call(this,a);this.a=b} +function Vg(a,b,c){dg.call(this,a,b,c,null)} +function Yg(a,b,c){dg.call(this,a,b,c,null)} +function Mf(a,b){this.c=a;ne.call(this,a,b)} +function Sf(a,b){this.a=a;Mf.call(this,a,b)} +function gB(a){this.q=new $wnd.Date(Rbb(a))} +function GVc(){this.a=new Hp;this.b=new Hp} +function rNb(a){oNb.call(this,0,0);this.f=a} +function $Hb(a,b){xtb(b,gle);a.f=b;return a} +function WMb(a){if(a>8){return 0}return a+1} +function pyb(a,b){if(kyb){return}Dkb(a.a,b)} +function E2b(a,b){w2b();return e_b(b.d.i,a)} +function $9b(a,b){H9b();return new fac(b,a)} +function e4c(a,b){return BD(Vrb(a.c,b),229)} +function c4c(a,b){return BD(Vrb(a.b,b),149)} +function vic(a){return BD(Hkb(a.a,a.b),286)} +function x6c(a){return new b7c(a.c,a.d+a.a)} +function aLc(a){return BJc(),Hzc(BD(a,197))} +function Oxb(a,b,c){return a.ue(b,c)<=0?c:b} +function Pxb(a,b,c){return a.ue(b,c)<=0?b:c} +function vvd(a,b,c){++a.j;a.Gi(b,a.ni(b,c))} +function xvd(a,b,c){++a.j;a.Ji();vtd(a,b,c)} +function YQd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function Yld(a,b,c){c=Whd(a,b,6,c);return c} +function Fld(a,b,c){c=Whd(a,b,3,c);return c} +function fpd(a,b,c){c=Whd(a,b,9,c);return c} +function Z6d(a,b,c){return x2d(a.c,a.b,b,c)} +function yAd(a,b){return (b&Jhe)%a.d.length} +function eOb(a,b){b.a?fOb(a,b):Exb(a.a,b.b)} +function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} +function HD(a){return String.fromCharCode(a)} +function mz(a){return a==null?null:a.message} +function Bz(a,b,c){return a.apply(b,c);var d} +function Hsd(a,b){Gsd.call(this,a);this.a=b} +function pVd(a,b){gVd.call(this,a);this.a=b} +function nYd(a,b){gVd.call(this,a);this.a=b} +function uyd(a,b){this.c=a;uud.call(this,b)} +function TOd(a,b){this.a=a;lOd.call(this,b)} +function aTd(a,b){this.a=a;lOd.call(this,b)} +function srb(a,b){var c;c=a[cke];c.call(a,b)} +function trb(a,b){var c;c=a[cke];c.call(a,b)} +function hjb(a,b){var c;c=a.e;a.e=b;return c} +function Rfb(a,b,c){a.a+=yfb(b,0,c);return a} +function LA(a){!a.a&&(a.a=new VA);return a.a} +function Xp(a){this.a=(Xj(a,Eie),new Rkb(a))} +function cq(a){this.a=(Xj(a,Eie),new Rkb(a))} +function Xwb(a){Ywb.call(this,a,(kxb(),gxb))} +function ZJb(){ZJb=bcb;YJb=oqb((odd(),ndd))} +function ICb(){ICb=bcb;FCb=new nb;HCb=new nb} +function sDb(){this.b=new _6c;this.c=new Qkb} +function ZGb(){this.n=new o0b;this.i=new E6c} +function $Qb(){this.d=new _6c;this.e=new _6c} +function fRb(){this.a=new Qkb;this.b=new Qkb} +function hTb(){this.a=new LQb;this.b=new sTb} +function m_b(){this.n=new _6c;this.o=new _6c} +function _Gb(){ZGb.call(this);this.a=new _6c} +function I_b(a,b,c,d){A_b.call(this,a,b,c,d)} +function $Ab(a,b,c){DAb();LBb(a,b.Ce(a.a,c))} +function Npb(a,b,c){return Mpb(a,BD(b,22),c)} +function Axb(a,b){return Vd(Bwb(a.a,b,true))} +function Bxb(a,b){return Vd(Cwb(a.a,b,true))} +function $Bb(a,b){return dCb(new Array(b),a)} +function t7b(a,b){return a.n.a=(tCb(b),b)+10} +function u7b(a,b){return a.n.a=(tCb(b),b)+10} +function Dcb(a,b){Acb();return a==b?0:a?1:-1} +function D2b(a,b){w2b();return !e_b(b.d.i,a)} +function qjc(a,b){bad(a.f)?rjc(a,b):sjc(a,b)} +function zib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} +function L6c(a,b){a.a+=b.a;a.b+=b.b;return a} +function $6c(a,b){a.a-=b.a;a.b-=b.b;return a} +function Ood(a,b,c){c=Whd(a,b,11,c);return c} +function nqd(a,b,c){c!=null&&fmd(b,Rqd(a,c))} +function oqd(a,b,c){c!=null&&gmd(b,Rqd(a,c))} +function bUd(a,b,c,d){ZTd.call(this,a,b,c,d)} +function xyd(a,b){pcb.call(this,bve+a+hue+b)} +function c1d(a,b){var c;c=b.Gh(a.a);return c} +function KYd(a,b){return Qhb(a.a,b,'')==null} +function $Kd(a,b){return b==a||kud(PKd(b),a)} +function Qxd(a){return a<100?null:new Dxd(a)} +function DRc(){this.b=new pRc;this.a=new dRc} +function rec(){this.a=new Tmc;this.b=new lnc} +function JIc(){this.a=new Qkb;this.d=new Qkb} +function GDc(){this.b=new Sqb;this.a=new Sqb} +function dSc(){this.b=new Kqb;this.a=new Kqb} +function Trb(a){Thb(a.e);a.d.b=a.d;a.d.a=a.d} +function L4d(a,b,c,d){ZTd.call(this,a,b,c,d)} +function P4d(a,b,c,d){L4d.call(this,a,b,c,d)} +function i5d(a,b,c,d){d5d.call(this,a,b,c,d)} +function k5d(a,b,c,d){d5d.call(this,a,b,c,d)} +function q5d(a,b,c,d){d5d.call(this,a,b,c,d)} +function o5d(a,b,c,d){k5d.call(this,a,b,c,d)} +function v5d(a,b,c,d){k5d.call(this,a,b,c,d)} +function t5d(a,b,c,d){q5d.call(this,a,b,c,d)} +function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} +function $5d(a,b,c,d){T5d.call(this,a,b,c,d)} +function Vp(a,b,c){this.a=a;qc.call(this,b,c)} +function tk(a,b,c){this.c=b;this.b=c;this.a=a} +function ik(a,b,c){return a.d=BD(b.Kb(c),164)} +function kfb(a,b,c){return a.lastIndexOf(b,c)} +function c6d(a,b){return a.zj().Mh().Hh(a,b)} +function e6d(a,b){return a.zj().Mh().Jh(a,b)} +function uBb(a,b){return a.b.sd(new xBb(a,b))} +function ABb(a,b){return a.b.sd(new DBb(a,b))} +function GBb(a,b){return a.b.sd(new JBb(a,b))} +function Cxb(a,b){return Vd(Bwb(a.a,b,false))} +function Dxb(a,b){return Vd(Cwb(a.a,b,false))} +function tTb(a,b,c){return Jdb(a[b.b],a[c.b])} +function QTb(a,b){return xNb(b,(Lyc(),Awc),a)} +function Edb(a,b){return tCb(a),PD(a)===PD(b)} +function cfb(a,b){return tCb(a),PD(a)===PD(b)} +function dmc(a,b){return aeb(a.a.d.p,b.a.d.p)} +function emc(a,b){return aeb(b.a.d.p,a.a.d.p)} +function XOc(a,b){return Jdb(a.c-a.s,b.c-b.s)} +function R_b(a){return !a.c?-1:Ikb(a.c.a,a,0)} +function uAd(a,b){return JD(b,15)&&wtd(a.c,b)} +function acd(a){return a==Vbd||a==Xbd||a==Wbd} +function Zyd(a,b){this.c=a;Kyd.call(this,a,b)} +function eBb(a){this.c=a;mvb.call(this,mie,0)} +function zvb(a,b){Avb.call(this,a,a.length,b)} +function tjb(a,b){var c;c=b;return !!zwb(a,c)} +function uyb(a,b){if(kyb){return}!!b&&(a.d=b)} +function XHd(a,b,c){return BD(a.c,69).kk(b,c)} +function YHd(a,b,c){return BD(a.c,69).lk(b,c)} +function J2d(a,b,c){return I2d(a,BD(b,332),c)} +function L2d(a,b,c){return K2d(a,BD(b,332),c)} +function d3d(a,b,c){return c3d(a,BD(b,332),c)} +function f3d(a,b,c){return e3d(a,BD(b,332),c)} +function tn(a,b){return b==null?null:Hv(a.b,b)} +function Jcb(a){return LD(a)?(tCb(a),a):a.ke()} +function Kdb(a){return !isNaN(a)&&!isFinite(a)} +function Wn(a){Ql();this.a=(lmb(),new yob(a))} +function _Hc(a){BHc();this.d=a;this.a=new ikb} +function Zsb(a,b,c){this.d=a;this.b=c;this.a=b} +function wqb(a,b,c){this.a=a;this.b=b;this.c=c} +function Mrb(a,b,c){this.a=a;this.b=b;this.c=c} +function Psb(a){Bsb(this);Nsb(this);ye(this,a)} +function Skb(a){Bkb(this);aCb(this.c,0,a.Pc())} +function Wwb(a){tib(a.a);Jwb(a.c,a.b);a.b=null} +function hyb(a){this.a=a;Yfb();Bbb(Date.now())} +function Mb(a,b){if(!a){throw ubb(new Vdb(b))}} +function oxb(a){kxb();return es((yxb(),xxb),a)} +function Gyb(a){Eyb();return es((Jyb(),Iyb),a)} +function NEb(a){LEb();return es((QEb(),PEb),a)} +function VEb(a){TEb();return es((YEb(),XEb),a)} +function sFb(a){qFb();return es((vFb(),uFb),a)} +function hHb(a){fHb();return es((kHb(),jHb),a)} +function OHb(a){MHb();return es((RHb(),QHb),a)} +function FIb(a){DIb();return es((IIb(),HIb),a)} +function uJb(a){pJb();return es((xJb(),wJb),a)} +function wLb(a){uLb();return es((zLb(),yLb),a)} +function SMb(a){QMb();return es((VMb(),UMb),a)} +function Ql(){Ql=bcb;new Zl((lmb(),lmb(),imb))} +function oGd(){oGd=bcb;nGd=KC(SI,Phe,1,0,5,1)} +function VGd(){VGd=bcb;UGd=KC(SI,Phe,1,0,5,1)} +function fzd(){fzd=bcb;ezd=KC(SI,Phe,1,0,5,1)} +function mtb(){mtb=bcb;ktb=new ntb;ltb=new ptb} +function hLb(a){var b;b=new eLb;b.b=a;return b} +function KGb(a){var b;b=new JGb;b.e=a;return b} +function ZAb(a,b,c){DAb();a.a.Od(b,c);return b} +function lKb(a,b,c){this.b=a;this.c=b;this.a=c} +function AZb(a,b,c){this.b=a;this.a=b;this.c=c} +function SNb(a,b,c){this.a=a;this.b=b;this.c=c} +function tOb(a,b,c){this.a=a;this.b=b;this.c=c} +function w$b(a,b,c){this.e=b;this.b=a;this.d=c} +function J_b(a){A_b.call(this,a.d,a.c,a.a,a.b)} +function q0b(a){A_b.call(this,a.d,a.c,a.a,a.b)} +function qWb(a){kWb();return es((tWb(),sWb),a)} +function SOb(a){QOb();return es((VOb(),UOb),a)} +function SXb(a){QXb();return es((VXb(),UXb),a)} +function dPb(a){bPb();return es((gPb(),fPb),a)} +function YRb(a){WRb();return es((_Rb(),$Rb),a)} +function zTb(a){xTb();return es((CTb(),BTb),a)} +function z5b(a){x5b();return es((C5b(),B5b),a)} +function rUb(a){pUb();return es((uUb(),tUb),a)} +function k0b(a){i0b();return es((n0b(),m0b),a)} +function U8b(a){R8b();return es((X8b(),W8b),a)} +function ibc(a){fbc();return es((lbc(),kbc),a)} +function Bjc(a){zjc();return es((Ejc(),Djc),a)} +function Blc(a){zlc();return es((Elc(),Dlc),a)} +function Bpc(a){zpc();return es((Epc(),Dpc),a)} +function Jpc(a){Hpc();return es((Mpc(),Lpc),a)} +function Vpc(a){Qpc();return es((Ypc(),Xpc),a)} +function Zjc(a){Wjc();return es((akc(),_jc),a)} +function Gkc(a){Ekc();return es((Jkc(),Ikc),a)} +function Gqc(a){Eqc();return es((Jqc(),Iqc),a)} +function cqc(a){aqc();return es((fqc(),eqc),a)} +function pqc(a){kqc();return es((sqc(),rqc),a)} +function xqc(a){vqc();return es((Aqc(),zqc),a)} +function Tqc(a){Qqc();return es((Wqc(),Vqc),a)} +function _qc(a){Zqc();return es((crc(),brc),a)} +function lrc(a){jrc();return es((orc(),nrc),a)} +function yrc(a){wrc();return es((Brc(),Arc),a)} +function Orc(a){Mrc();return es((Rrc(),Qrc),a)} +function Xrc(a){Vrc();return es(($rc(),Zrc),a)} +function esc(a){csc();return es((hsc(),gsc),a)} +function msc(a){ksc();return es((psc(),osc),a)} +function Ctc(a){Atc();return es((Ftc(),Etc),a)} +function ozc(a){jzc();return es((rzc(),qzc),a)} +function yzc(a){vzc();return es((Bzc(),Azc),a)} +function Kzc(a){Gzc();return es((Nzc(),Mzc),a)} +function Yzc(a){Tzc();return es((_zc(),$zc),a)} +function kAc(a){iAc();return es((nAc(),mAc),a)} +function tAc(a){rAc();return es((wAc(),vAc),a)} +function BAc(a){zAc();return es((EAc(),DAc),a)} +function KAc(a){IAc();return es((NAc(),MAc),a)} +function TAc(a){RAc();return es((WAc(),VAc),a)} +function _Ac(a){ZAc();return es((cBc(),bBc),a)} +function tBc(a){rBc();return es((wBc(),vBc),a)} +function CBc(a){ABc();return es((FBc(),EBc),a)} +function LBc(a){JBc();return es((OBc(),NBc),a)} +function pGc(a){nGc();return es((sGc(),rGc),a)} +function SIc(a){QIc();return es((VIc(),UIc),a)} +function WLc(a){ULc();return es((ZLc(),YLc),a)} +function cMc(a){aMc();return es((fMc(),eMc),a)} +function FOc(a){DOc();return es((IOc(),HOc),a)} +function DQc(a){BQc();return es((GQc(),FQc),a)} +function zRc(a){uRc();return es((CRc(),BRc),a)} +function pSc(a){mSc();return es((sSc(),rSc),a)} +function QTc(a){OTc();return es((TTc(),STc),a)} +function YTc(a){WTc();return es((_Tc(),$Tc),a)} +function QUc(a){LUc();return es((TUc(),SUc),a)} +function sVc(a){pVc();return es((vVc(),uVc),a)} +function eWc(a){bWc();return es((hWc(),gWc),a)} +function oWc(a){lWc();return es((rWc(),qWc),a)} +function hXc(a){eXc();return es((kXc(),jXc),a)} +function rXc(a){oXc();return es((uXc(),tXc),a)} +function Xoc(a,b){return (tCb(a),a)+(tCb(b),b)} +function xYc(a){vYc();return es((AYc(),zYc),a)} +function i$c(a){g$c();return es((l$c(),k$c),a)} +function W$c(a){U$c();return es((Z$c(),Y$c),a)} +function j_c(a){e_c();return es((m_c(),l_c),a)} +function s_c(a){o_c();return es((v_c(),u_c),a)} +function A_c(a){y_c();return es((D_c(),C_c),a)} +function L_c(a){J_c();return es((O_c(),N_c),a)} +function S0c(a){N0c();return es((V0c(),U0c),a)} +function b1c(a){Y0c();return es((e1c(),d1c),a)} +function BHc(){BHc=bcb;zHc=(Pcd(),Ocd);AHc=ucd} +function Ggc(){Ggc=bcb;Egc=new fhc;Fgc=new hhc} +function C6b(){C6b=bcb;A6b=new L6b;B6b=new O6b} +function TEc(a){!a.e&&(a.e=new Qkb);return a.e} +function L5c(a){J5c();return es((O5c(),N5c),a)} +function Z5c(a){X5c();return es((a6c(),_5c),a)} +function D7c(a){B7c();return es((G7c(),F7c),a)} +function g8c(a){e8c();return es((j8c(),i8c),a)} +function fad(a){aad();return es((iad(),had),a)} +function oad(a){mad();return es((rad(),qad),a)} +function yad(a){wad();return es((Bad(),Aad),a)} +function Kad(a){Iad();return es((Nad(),Mad),a)} +function fbd(a){dbd();return es((ibd(),hbd),a)} +function qbd(a){nbd();return es((tbd(),sbd),a)} +function Gbd(a){Dbd();return es((Jbd(),Ibd),a)} +function Rbd(a){Pbd();return es((Ubd(),Tbd),a)} +function dcd(a){_bd();return es((gcd(),fcd),a)} +function qcd(a){mcd();return es((tcd(),scd),a)} +function Vcd(a){Pcd();return es((Ycd(),Xcd),a)} +function qdd(a){odd();return es((tdd(),sdd),a)} +function Fdd(a){Ddd();return es((Idd(),Hdd),a)} +function Aed(a){yed();return es((Ded(),Ced),a)} +function mgd(a){kgd();return es((pgd(),ogd),a)} +function zsd(a){xsd();return es((Csd(),Bsd),a)} +function NMd(a){!a.c&&(a.c=new sYd);return a.c} +function Mrd(a,b,c){this.a=a;this.b=b;this.c=c} +function uCd(a,b,c){this.a=a;this.b=b;this.c=c} +function R3b(a,b,c){this.a=a;this.b=b;this.c=c} +function Y6b(a,b,c){this.a=a;this.b=b;this.c=c} +function jYc(a,b,c){this.a=a;this.b=b;this.c=c} +function H1c(a,b,c){this.a=a;this.b=b;this.c=c} +function P1c(a,b,c){this.a=a;this.b=b;this.c=c} +function m9b(a,b,c){this.b=a;this.a=b;this.c=c} +function DVd(a,b,c){this.e=a;this.a=b;this.c=c} +function ZOc(a,b){this.c=a;this.a=b;this.b=b-a} +function fWd(a,b,c){PVd();ZVd.call(this,a,b,c)} +function CXd(a,b,c){PVd();jXd.call(this,a,b,c)} +function OXd(a,b,c){PVd();jXd.call(this,a,b,c)} +function UXd(a,b,c){PVd();jXd.call(this,a,b,c)} +function EXd(a,b,c){PVd();CXd.call(this,a,b,c)} +function GXd(a,b,c){PVd();CXd.call(this,a,b,c)} +function IXd(a,b,c){PVd();GXd.call(this,a,b,c)} +function QXd(a,b,c){PVd();OXd.call(this,a,b,c)} +function WXd(a,b,c){PVd();UXd.call(this,a,b,c)} +function INd(a,b){Yfb();return rtd(UKd(a.a),b)} +function NNd(a,b){Yfb();return rtd(UKd(a.a),b)} +function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} +function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} +function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} +function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} +function BD(a,b){BCb(a==null||AD(a,b));return a} +function Nu(a){var b;b=new Qkb;fr(b,a);return b} +function Ex(a){var b;b=new Sqb;fr(b,a);return b} +function Hx(a){var b;b=new Fxb;Jq(b,a);return b} +function Ru(a){var b;b=new Osb;Jq(b,a);return b} +function Dkb(a,b){a.c[a.c.length]=b;return true} +function WA(a,b){this.c=a;this.b=b;this.a=false} +function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} +function ozb(){this.a=';,;';this.b='';this.c=''} +function Avb(a,b,c){pvb.call(this,b,c);this.a=a} +function eAb(a,b,c){this.b=a;evb.call(this,b,c)} +function ksb(a,b,c){this.c=a;ojb.call(this,b,c)} +function aCb(a,b,c){ZBb(c,0,a,b,c.length,false)} +function cWb(a,b,c){bWb.call(this,a,b);this.b=c} +function u_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} +function GVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} +function dBb(a,b){if(b){a.b=b;a.a=(Szb(b),b.a)}} +function lCb(a,b){if(!a){throw ubb(new Vdb(b))}} +function qCb(a,b){if(!a){throw ubb(new tcb(b))}} +function Umc(a,b){Hmc();return aeb(a.d.p,b.d.p)} +function qlc(a,b){return aeb(C0b(a.d),C0b(b.d))} +function tic(a,b){return b==(Pcd(),Ocd)?a.c:a.d} +function y6c(a){return new b7c(a.c+a.b,a.d+a.a)} +function Kbb(a){return ybb(iD(Ebb(a)?Qbb(a):a))} +function _Ab(a){return DAb(),KC(SI,Phe,1,a,5,1)} +function Ksb(a){rCb(a.b!=0);return Msb(a,a.a.a)} +function Lsb(a){rCb(a.b!=0);return Msb(a,a.c.b)} +function g5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} +function j5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} +function C6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} +function W6c(a,b){S6c(a);a.a*=b;a.b*=b;return a} +function Tdd(a,b){b<0?(a.g=-1):(a.g=b);return a} +function kMd(a,b,c){HLd.call(this,a,b);this.c=c} +function Cnc(a,b,c){Bnc.call(this,b,c);this.d=a} +function WGd(a){VGd();HGd.call(this);this.sh(a)} +function t1d(){O0d();u1d.call(this,(tFd(),sFd))} +function f2d(a,b,c){HLd.call(this,a,b);this.c=c} +function KNd(a,b,c){this.a=a;iNd.call(this,b,c)} +function PNd(a,b,c){this.a=a;iNd.call(this,b,c)} +function Ppd(a,b,c){var d;d=new yC(c);cC(a,b,d)} +function Ndd(a,b){var c;if(a.n){c=b;Dkb(a.f,c)}} +function RUd(a,b){var c;c=a.c;QUd(a,b);return c} +function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} +function $Ed(a,b){return (eFd(a)<<4|eFd(b))&Xie} +function bFd(a){return a!=null&&!JEd(a,xEd,yEd)} +function Deb(a){return a==0||isNaN(a)?a:a<0?-1:1} +function isb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} +function Csb(a,b){Fsb(a,b,a.c.b,a.c);return true} +function uvb(a,b){pvb.call(this,b,1040);this.a=a} +function ar(a,b){this.a=a;this.b=b;ol.call(this)} +function Wq(a,b){this.b=a;this.a=b;ol.call(this)} +function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} +function CRb(){this.b=Ddb(ED(Fsd((vSb(),uSb))))} +function S6d(){S6d=bcb;R6d=(lmb(),new _mb(Bwe))} +function ex(){ex=bcb;new gx((_k(),$k),(Lk(),Kk))} +function neb(){neb=bcb;meb=KC(JI,iie,19,256,0,1)} +function ufe(a){rfe();++qfe;return new dge(0,a)} +function XHb(a){var b;b=a.n;return a.e.b+b.d+b.a} +function $Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} +function YHb(a){var b;b=a.n;return a.e.a+b.b+b.c} +function n_b(a){if(a.a){return a.a}return IZb(a)} +function VPb(a){PPb();return etd(a)==Sod(gtd(a))} +function WPb(a){PPb();return gtd(a)==Sod(etd(a))} +function _Jc(a){BJc();return (Pcd(),zcd).Hc(a.j)} +function oQc(a,b,c){return Qhb(a.b,BD(c.b,17),b)} +function pQc(a,b,c){return Qhb(a.b,BD(c.b,17),b)} +function hYb(a,b){return gYb(a,new bWb(b.a,b.b))} +function sfd(a,b){return Dkb(a,new b7c(b.a,b.b))} +function MZb(a){return !NZb(a)&&a.c.i.c==a.d.i.c} +function Aic(a,b){return a.c=b){throw ubb(new qcb)}} +function PAb(a,b){return SAb(a,(tCb(b),new Qxb(b)))} +function QAb(a,b){return SAb(a,(tCb(b),new Sxb(b)))} +function oBb(a,b,c){if(a.a.Mb(c)){a.b=true;b.td(c)}} +function Oyb(a,b,c){NC(b,0,Azb(b[0],c[0]));return b} +function Tbb(a){if(Ebb(a)){return ''+a}return qD(a)} +function aac(a,b){H9b();return Jdb(b.a.o.a,a.a.o.a)} +function ANd(a,b){(b.Bb&kte)!=0&&!a.a.o&&(a.a.o=b)} +function _lc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} +function Qnc(a,b,c){return Rnc(a,BD(b,11),BD(c,11))} +function f1b(a){return y0b(),BD(a,11).g.c.length!=0} +function k1b(a){return y0b(),BD(a,11).e.c.length!=0} +function Sr(a){this.a=(Mr(),Lr);this.d=BD(Qb(a),47)} +function jHc(a){this.a=hHc(a.a);this.b=new Skb(a.b)} +function fub(a){this.b=new Rkb(11);this.a=(hpb(),a)} +function Pwb(a){this.b=null;this.a=(hpb(),!a?epb:a)} +function avb(a,b){this.e=a;this.d=(b&64)!=0?b|jie:b} +function pvb(a,b){this.c=0;this.d=a;this.b=b|64|jie} +function Yy(a){Py(this);this.g=a;Ry(this);this._d()} +function Kzd(a){this.b=a;Jyd.call(this,a);Jzd(this)} +function Szd(a){this.b=a;Yyd.call(this,a);Rzd(this)} +function iSd(a,b,c,d,e){jSd.call(this,a,b,c,d,e,-1)} +function ySd(a,b,c,d,e){zSd.call(this,a,b,c,d,e,-1)} +function ZTd(a,b,c,d){sMd.call(this,a,b,c);this.b=d} +function d5d(a,b,c,d){kMd.call(this,a,b,c);this.b=d} +function s0d(a){Rud.call(this,a,false);this.a=false} +function T5d(a,b,c,d){this.b=a;sMd.call(this,b,c,d)} +function eUd(a,b,c){this.a=a;bUd.call(this,b,c,5,6)} +function Zyc(a,b,c){b.Ye(c,Ddb(ED(Nhb(a.b,c)))*a.a)} +function j6c(a,b,c){e6c();return i6c(a,b)&&i6c(a,c)} +function ocd(a){mcd();return !a.Hc(icd)&&!a.Hc(kcd)} +function joc(a){if(a.e){return ooc(a.e)}return null} +function tJc(a){var b;b=a;while(b.f){b=b.f}return b} +function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} +function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} +function px(a,b){im();ox.call(this,a,Dm(new _lb(b)))} +function xfe(a,b){rfe();++qfe;return new yge(a,b,0)} +function zfe(a,b){rfe();++qfe;return new yge(6,a,b)} +function mfb(a,b){return cfb(a.substr(0,b.length),b)} +function Lhb(a,b){return ND(b)?Phb(a,b):!!hrb(a.f,b)} +function jOd(a,b){return b.jh()?sid(a.b,BD(b,49)):b} +function z6c(a){return new b7c(a.c+a.b/2,a.d+a.a/2)} +function ul(a){return new Sr(new xl(a.a.length,a.a))} +function iD(a){return TC(~a.l&zje,~a.m&zje,~a.h&Aje)} +function OD(a){return typeof a===Ehe||typeof a===Ihe} +function yjb(a){if(!a){throw ubb(new ttb)}return a.d} +function ekb(a){var b;b=akb(a);rCb(b!=null);return b} +function fkb(a){var b;b=bkb(a);rCb(b!=null);return b} +function Ppb(a,b,c){var d;d=a.b[b];a.b[b]=c;return d} +function Pqb(a,b){var c;c=a.a.zc(b,a);return c==null} +function Flb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100} +function teb(a,b){return xbb(a,b)<0?-1:xbb(a,b)>0?1:0} +function $2d(a,b){ELd(a,JD(b,153)?b:BD(b,1936).fl())} +function Kyd(a,b){this.d=a;Ayd.call(this,a);this.e=b} +function mge(a,b){sfe.call(this,1);this.a=a;this.b=b} +function Usb(a,b){Fsb(a.d,b,a.b.b,a.b);++a.a;a.c=null} +function Kub(a){this.d=(tCb(a),a);this.a=0;this.c=mie} +function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} +function Qzb(a,b){!a.c?Dkb(a.b,b):Qzb(a.c,b);return a} +function YBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} +function Elb(a,b,c){var d;for(d=0;d=a.g} +function jkc(a,b,c,d,e){ikc(a,BD(Qc(b.k,c),15),c,d,e)} +function _9b(a,b){H9b();return BD(Lpb(a,b.d),15).Fc(b)} +function fCb(a,b){var c;c=console[a];c.call(console,b)} +function JHc(a,b,c){var d;d=PHc(a,b,c);return IHc(a,d)} +function A1c(a,b,c){BD(b.b,65);Gkb(b.a,new H1c(a,c,b))} +function oRb(a){$Qb.call(this);this.a=new _6c;this.c=a} +function cVb(a){this.b=new Qkb;this.a=new Qkb;this.c=a} +function G1b(a){this.c=new _6c;this.a=new Qkb;this.b=a} +function r4c(a){this.c=a;this.a=new Osb;this.b=new Osb} +function HA(a){fA();this.b=new Qkb;this.a=a;sA(this,a)} +function jXd(a,b,c){QVd.call(this,b);this.a=a;this.b=c} +function $Xd(a,b,c){this.a=a;gVd.call(this,b);this.b=c} +function a0d(a,b,c){this.a=a;hxd.call(this,8,b,null,c)} +function u1d(a){this.a=(tCb(Nve),Nve);this.b=a;new jUd} +function GHd(a){!a.a&&(a.a=new sMd(l5,a,4));return a.a} +function GQd(a){!a.d&&(a.d=new sMd(i5,a,1));return a.d} +function Lpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} +function wvd(a,b){var c;++a.j;c=a.Ui();a.Hi(a.ni(c,b))} +function zhe(a){if(a)return a.dc();return !a.Kc().Ob()} +function Ife(a){if(!Yee)return false;return Phb(Yee,a)} +function yC(a){if(a==null){throw ubb(new Feb)}this.a=a} +function yge(a,b,c){sfe.call(this,a);this.a=b;this.b=c} +function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} +function tsb(a){this.c=a;this.b=a.a.d.a;xpb(a.a.e,this)} +function tib(a){xCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} +function Q6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} +function Tvb(a,b){return $vb(b,a.a.c.length),Hkb(a.a,b)} +function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function LNb(a,b){ZNb(BD(b.b,65),a);Gkb(b.a,new QNb(a))} +function Szb(a){if(!a.c){Tzb(a);a.d=true}else{Szb(a.c)}} +function Pzb(a){if(!a.c){a.d=true;Rzb(a)}else{a.c.He()}} +function P_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} +function nAb(a){if(0>=a){return new xAb}return oAb(a-1)} +function tCb(a){if(a==null){throw ubb(new Feb)}return a} +function im(){im=bcb;Ql();hm=new ux((lmb(),lmb(),imb))} +function yx(){yx=bcb;Ql();xx=new zx((lmb(),lmb(),kmb))} +function IFd(){IFd=bcb;HFd=wZd();!!(eGd(),KFd)&&yZd()} +function yid(a,b){var c;c=a.Xg(b);c>=0?a.Ah(c):qid(a,b)} +function SHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} +function plc(a,b){return aeb(b.j.c.length,a.j.c.length)} +function dgd(a,b){a.c<0||a.b.b0){a=a<<1|(a<0?1:0)}return a} +function vtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function Fbc(a,b){return Acb(),BD(b.b,19).ad&&++d;return d} +function Kid(a,b,c){var d,e;d=LEd(a);e=b.Jh(c,d);return e} +function Rod(a){!a.b&&(a.b=new ZTd(A2,a,12,3));return a.b} +function ded(a,b){return Jdb(med(a)*led(a),med(b)*led(b))} +function eed(a,b){return Jdb(med(a)*led(a),med(b)*led(b))} +function oQb(a,b,c){c.a?_kd(a,b.b-a.f/2):$kd(a,b.a-a.g/2)} +function ZDc(a){this.a=new Qkb;this.e=KC(WD,iie,48,a,0,2)} +function UBd(a){this.f=a;this.c=this.f.e;a.f>0&&TBd(this)} +function UVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function jrd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function krd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function EVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} +function ZWd(a,b,c,d){PVd();hWd.call(this,b,c,d);this.a=a} +function eXd(a,b,c,d){PVd();hWd.call(this,b,c,d);this.a=a} +function kBb(a,b,c,d){this.b=a;this.c=d;mvb.call(this,b,c)} +function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} +function Nsb(a){a.a.a=a.c;a.c.b=a.a;a.a.b=a.c.a=null;a.b=0} +function sib(a){rCb(a.b=0&&cfb(a.substr(c,b.length),b)} +function hrb(a,b){return frb(a,b,grb(a,b==null?0:a.b.se(b)))} +function Wy(a,b){var c;c=gdb(a.fm);return b==null?c:c+': '+b} +function Dob(a,b){var c;c=a.b.Qc(b);Eob(c,a.b.gc());return c} +function xtb(a,b){if(a==null){throw ubb(new Geb(b))}return a} +function WKd(a){if(!a.u){VKd(a);a.u=new TOd(a,a)}return a.u} +function ux(a){this.a=(lmb(),JD(a,54)?new Xob(a):new Hnb(a))} +function Rz(){Rz=bcb;var a,b;b=!Xz();a=new dA;Qz=b?new Yz:a} +function rjd(a){var b;b=BD(vjd(a,16),26);return !b?a.yh():b} +function aHc(a){Jdd(a,'No crossing minimization',1);Ldd(a)} +function arc(){Zqc();return OC(GC(MW,1),Fie,479,0,[Yqc,Xqc])} +function yqc(){vqc();return OC(GC(JW,1),Fie,420,0,[tqc,uqc])} +function Kpc(){Hpc();return OC(GC(FW,1),Fie,423,0,[Fpc,Gpc])} +function nsc(){ksc();return OC(GC(SW,1),Fie,421,0,[isc,jsc])} +function CAc(){zAc();return OC(GC(cX,1),Fie,422,0,[xAc,yAc])} +function aBc(){ZAc();return OC(GC(fX,1),Fie,376,0,[YAc,XAc])} +function XLc(){ULc();return OC(GC(eZ,1),Fie,516,0,[TLc,SLc])} +function dMc(){aMc();return OC(GC(fZ,1),Fie,515,0,[$Lc,_Lc])} +function GOc(){DOc();return OC(GC(CZ,1),Fie,520,0,[COc,BOc])} +function TIc(){QIc();return OC(GC(lY,1),Fie,523,0,[PIc,OIc])} +function EQc(){BQc();return OC(GC(XZ,1),Fie,455,0,[zQc,AQc])} +function RTc(){OTc();return OC(GC(D$,1),Fie,480,0,[MTc,NTc])} +function ZTc(){WTc();return OC(GC(E$,1),Fie,426,0,[VTc,UTc])} +function fWc(){bWc();return OC(GC(W$,1),Fie,427,0,[_Vc,aWc])} +function RUc(){LUc();return OC(GC(J$,1),Fie,495,0,[JUc,KUc])} +function B_c(){y_c();return OC(GC(O_,1),Fie,431,0,[x_c,w_c])} +function c1c(){Y0c();return OC(GC(W_,1),Fie,430,0,[X0c,W0c])} +function OEb(){LEb();return OC(GC(aN,1),Fie,429,0,[KEb,JEb])} +function WEb(){TEb();return OC(GC(bN,1),Fie,428,0,[REb,SEb])} +function ZRb(){WRb();return OC(GC(gP,1),Fie,425,0,[URb,VRb])} +function A5b(){x5b();return OC(GC(ZR,1),Fie,511,0,[w5b,v5b])} +function gid(a,b,c,d){return c>=0?a.ih(b,c,d):a.Rg(null,c,d)} +function cgd(a){if(a.b.b==0){return a.a.$e()}return Ksb(a.b)} +function Swd(a){if(a.p!=5)throw ubb(new Xdb);return Sbb(a.f)} +function _wd(a){if(a.p!=5)throw ubb(new Xdb);return Sbb(a.k)} +function kNd(a){PD(a.a)===PD((IKd(),HKd))&&lNd(a);return a.a} +function by(a){this.a=BD(Qb(a),271);this.b=(lmb(),new Yob(a))} +function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} +function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} +function Cge(a,b,c){rfe();sfe.call(this,a);this.b=b;this.a=c} +function ZVd(a,b,c){PVd();QVd.call(this,b);this.a=a;this.b=c} +function bIb(a,b){ZGb.call(this);SHb(this);this.a=a;this.c=b} +function Hp(){Gp.call(this,new Lqb(Cv(12)));Lb(true);this.a=2} +function ZPc(a,b){WPc(this,new b7c(a.a,a.b));XPc(this,Ru(b))} +function ULc(){ULc=bcb;TLc=new VLc(fle,0);SLc=new VLc(ele,1)} +function BQc(){BQc=bcb;zQc=new CQc(ele,0);AQc=new CQc(fle,1)} +function hKb(a,b){gKb(a,true);Gkb(a.e.wf(),new lKb(a,true,b))} +function slb(a,b){oCb(b);return ulb(a,KC(WD,jje,25,b,15,1),b)} +function XPb(a,b){PPb();return a==Sod(etd(b))||a==Sod(gtd(b))} +function Ohb(a,b){return b==null?Wd(hrb(a.f,null)):Brb(a.g,b)} +function Jsb(a){return a.b==0?null:(rCb(a.b!=0),Msb(a,a.a.a))} +function QD(a){return Math.max(Math.min(a,Jhe),-2147483648)|0} +function hsb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} +function ZCb(a){var b;MGb(a.a);LGb(a.a);b=new XGb(a.a);TGb(b)} +function PUb(a,b){var c;c=yUb(a.f,b);return L6c(R6c(c),a.f.d)} +function Iwb(a,b){var c,d;c=b;d=new exb;Kwb(a,c,d);return d.d} +function MJb(a,b,c,d){var e;e=new _Gb;b.a[c.g]=e;Mpb(a.b,d,e)} +function uid(a,b,c){var d;d=a.Xg(b);d>=0?a.rh(d,c):pid(a,b,c)} +function cvd(a,b,c){_ud();!!a&&Qhb($ud,a,b);!!a&&Qhb(Zud,a,c)} +function c_c(a,b,c){this.i=new Qkb;this.b=a;this.g=b;this.a=c} +function RZc(a,b,c){this.c=new Qkb;this.e=a;this.f=b;this.b=c} +function ZZc(a,b,c){this.a=new Qkb;this.e=a;this.f=b;this.c=c} +function _Hb(a){ZGb.call(this);SHb(this);this.a=a;this.c=true} +function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} +function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} +function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} +function Fx(a){var b;b=new Tqb(Cv(a.length));mmb(b,a);return b} +function dcb(a){function b(){} +;b.prototype=a||{};return new b} +function ckb(a,b){if(Yjb(a,b)){vkb(a);return true}return false} +function aC(a,b){if(b==null){throw ubb(new Feb)}return bC(a,b)} +function amd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} +function Hld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} +function hpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} +function sdb(a){if(a.qe()){return null}var b=a.n;return $bb[b]} +function Dnd(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} +function Aod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} +function Sod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} +function iid(a,b){var c;c=a.Xg(b);return c>=0?a.kh(c):oid(a,b)} +function ytd(a,b){var c;c=new Asb(b);Ve(c,a);return new Skb(c)} +function Pud(a){var b;b=a.d;b=a.ri(a.f);rtd(a,b);return b.Ob()} +function s_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} +function z4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} +function Uod(a){return !a.a&&(a.a=new ZTd(D2,a,10,11)),a.a.i>0} +function nDb(){this.a=new ysb;this.e=new Sqb;this.g=0;this.i=0} +function xGc(a){this.a=a;this.b=KC(RX,iie,1943,a.e.length,0,2)} +function NHc(a,b,c){var d;d=OHc(a,b,c);a.b=new xHc(d.c.length)} +function aMc(){aMc=bcb;$Lc=new bMc(qle,0);_Lc=new bMc('UP',1)} +function OTc(){OTc=bcb;MTc=new PTc(Uqe,0);NTc=new PTc('FAN',1)} +function _ud(){_ud=bcb;$ud=new Kqb;Zud=new Kqb;dvd(hK,new evd)} +function Nwd(a){if(a.p!=0)throw ubb(new Xdb);return Jbb(a.f,0)} +function Wwd(a){if(a.p!=0)throw ubb(new Xdb);return Jbb(a.k,0)} +function HHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} +function UJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} +function RId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} +function Rhb(a,b,c){return b==null?irb(a.f,null,c):Crb(a.g,b,c)} +function ALd(a,b,c,d,e,f){return new kSd(a.e,b,a._i(),c,d,e,f)} +function Opb(a,b){return uqb(a.a,b)?Ppb(a,BD(b,22).g,null):null} +function Sfb(a,b,c){a.a=pfb(a.a,0,b)+(''+c)+ofb(a.a,b);return a} +function bq(a,b,c){Dkb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} +function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} +function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} +function qdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} +function grb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} +function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} +function PZb(a,b){!!a.c&&Kkb(a.c.g,a);a.c=b;!!a.c&&Dkb(a.c.g,a)} +function Z_b(a,b){!!a.c&&Kkb(a.c.a,a);a.c=b;!!a.c&&Dkb(a.c.a,a)} +function QZb(a,b){!!a.d&&Kkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,a)} +function E0b(a,b){!!a.i&&Kkb(a.i.j,a);a.i=b;!!a.i&&Dkb(a.i.j,a)} +function iDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Skb(c))} +function pXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Skb(c))} +function _Nb(a,b){this.a=a;this.c=N6c(this.a);this.b=new G6c(b)} +function HAb(a){var b;Tzb(a);b=new Sqb;return IAb(a,new iBb(b))} +function vCb(a,b){if(a<0||a>b){throw ubb(new pcb(vke+a+wke+b))}} +function tCc(a,b){var c;c=new G1b(a);b.c[b.c.length]=c;return c} +function xOc(a,b){!!a.a&&Kkb(a.a.k,a);a.a=b;!!a.a&&Dkb(a.a.k,a)} +function yOc(a,b){!!a.b&&Kkb(a.b.f,a);a.b=b;!!a.b&&Dkb(a.b.f,a)} +function zOc(a,b,c,d){this.c=a;this.d=d;xOc(this,b);yOc(this,c)} +function bUc(){bUc=bcb;aUc=$2c(new f3c,(uRc(),tRc),(mSc(),gSc))} +function QBc(){QBc=bcb;PBc=$2c(new f3c,(pUb(),oUb),(R8b(),I8b))} +function XBc(){XBc=bcb;WBc=$2c(new f3c,(pUb(),oUb),(R8b(),I8b))} +function jCc(){jCc=bcb;iCc=$2c(new f3c,(pUb(),oUb),(R8b(),I8b))} +function YIc(){YIc=bcb;XIc=a3c(new f3c,(pUb(),oUb),(R8b(),g8b))} +function BJc(){BJc=bcb;AJc=a3c(new f3c,(pUb(),oUb),(R8b(),g8b))} +function ELc(){ELc=bcb;DLc=a3c(new f3c,(pUb(),oUb),(R8b(),g8b))} +function sMc(){sMc=bcb;rMc=a3c(new f3c,(pUb(),oUb),(R8b(),g8b))} +function qs(){qs=bcb;ps=as((hs(),OC(GC(yG,1),Fie,538,0,[gs])))} +function VUb(a){KUb();return Acb(),BD(a.a,81).d.e!=0?true:false} +function O2d(a,b){return L6d(),TId(b)?new M7d(b,a):new a7d(b,a)} +function esd(a,b){var c,d;c=b.c;d=c!=null;d&&Lpd(a,new yC(b.c))} +function SOd(a){var b,c;c=(GFd(),b=new PQd,b);IQd(c,a);return c} +function _Sd(a){var b,c;c=(GFd(),b=new PQd,b);IQd(c,a);return c} +function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} +function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} +function Lkb(a,b,c){var d;wCb(b,c,a.c.length);d=c-b;bCb(a.c,b,d)} +function Iib(a,b,c){wCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} +function S3c(a){this.c=new Osb;this.b=a.b;this.d=a.c;this.a=a.a} +function a7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} +function jkb(a){Ujb(this);cCb(this.a,feb($wnd.Math.max(8,a))<<1)} +function wUd(a,b){xUd(a,b);JD(a.Cb,88)&&SMd(VKd(BD(a.Cb,88)),2)} +function ZId(a,b){JD(a.Cb,88)&&SMd(VKd(BD(a.Cb,88)),4);knd(a,b)} +function gKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);knd(a,b)} +function z1c(a,b){A1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} +function Eub(a,b){Dub(a,Sbb(wbb(Nbb(b,24),ike)),Sbb(wbb(b,ike)))} +function sCb(a,b){if(a<0||a>=b){throw ubb(new pcb(vke+a+wke+b))}} +function ACb(a,b){if(a<0||a>=b){throw ubb(new Wfb(vke+a+wke+b))}} +function Jub(a,b){this.b=(tCb(a),a);this.a=(b&Mje)==0?b|64|jie:b} +function Ki(a,b){Ii.call(this,new Lqb(Cv(a)));Xj(b,hie);this.a=b} +function TAb(a){var b;Tzb(a);b=(hpb(),hpb(),fpb);return UAb(a,b)} +function z0b(a){return h7c(OC(GC(l1,1),iie,8,0,[a.i.n,a.n,a.a]))} +function Hyb(){Eyb();return OC(GC(xL,1),Fie,132,0,[Byb,Cyb,Dyb])} +function iHb(){fHb();return OC(GC(pN,1),Fie,232,0,[cHb,dHb,eHb])} +function PHb(){MHb();return OC(GC(sN,1),Fie,461,0,[KHb,JHb,LHb])} +function GIb(){DIb();return OC(GC(zN,1),Fie,462,0,[CIb,BIb,AIb])} +function TXb(){QXb();return OC(GC(hQ,1),Fie,424,0,[PXb,OXb,NXb])} +function ATb(){xTb();return OC(GC(oP,1),Fie,379,0,[vTb,uTb,wTb])} +function zzc(){vzc();return OC(GC(ZW,1),Fie,378,0,[szc,tzc,uzc])} +function Wpc(){Qpc();return OC(GC(GW,1),Fie,314,0,[Opc,Npc,Ppc])} +function dqc(){aqc();return OC(GC(HW,1),Fie,336,0,[Zpc,_pc,$pc])} +function Hqc(){Eqc();return OC(GC(KW,1),Fie,451,0,[Cqc,Bqc,Dqc])} +function Hkc(){Ekc();return OC(GC(vV,1),Fie,360,0,[Dkc,Ckc,Bkc])} +function fsc(){csc();return OC(GC(RW,1),Fie,303,0,[asc,bsc,_rc])} +function Yrc(){Vrc();return OC(GC(QW,1),Fie,292,0,[Trc,Urc,Src])} +function uAc(){rAc();return OC(GC(bX,1),Fie,338,0,[pAc,oAc,qAc])} +function UAc(){RAc();return OC(GC(eX,1),Fie,375,0,[OAc,PAc,QAc])} +function LAc(){IAc();return OC(GC(dX,1),Fie,453,0,[HAc,FAc,GAc])} +function MBc(){JBc();return OC(GC(jX,1),Fie,377,0,[HBc,IBc,GBc])} +function DBc(){ABc();return OC(GC(iX,1),Fie,337,0,[zBc,xBc,yBc])} +function uBc(){rBc();return OC(GC(hX,1),Fie,335,0,[oBc,pBc,qBc])} +function tVc(){pVc();return OC(GC(N$,1),Fie,443,0,[oVc,mVc,nVc])} +function pWc(){lWc();return OC(GC(X$,1),Fie,380,0,[iWc,jWc,kWc])} +function yYc(){vYc();return OC(GC(p_,1),Fie,381,0,[tYc,uYc,sYc])} +function X$c(){U$c();return OC(GC(I_,1),Fie,438,0,[R$c,S$c,T$c])} +function sXc(){oXc();return OC(GC(a_,1),Fie,293,0,[mXc,nXc,lXc])} +function pad(){mad();return OC(GC(t1,1),Fie,272,0,[jad,kad,lad])} +function gbd(){dbd();return OC(GC(y1,1),Fie,334,0,[bbd,abd,cbd])} +function j3d(a,b){return k3d(a,b,JD(b,99)&&(BD(b,18).Bb&Oje)!=0)} +function HZc(a,b,c){var d;d=IZc(a,b,false);return d.b<=b&&d.a<=c} +function pMc(a,b,c){var d;d=new oMc;d.b=b;d.a=c;++b.b;Dkb(a.d,d)} +function fs(a,b){var c;c=(tCb(a),a).g;kCb(!!c);tCb(b);return c(b)} +function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} +function ZJd(a){if(a.Db>>16!=6)return null;return BD(Xhd(a),235)} +function Pwd(a){if(a.p!=2)throw ubb(new Xdb);return Sbb(a.f)&Xie} +function Ywd(a){if(a.p!=2)throw ubb(new Xdb);return Sbb(a.k)&Xie} +function U1d(a){a.a==(O0d(),N0d)&&$1d(a,P0d(a.g,a.b));return a.a} +function W1d(a){a.d==(O0d(),N0d)&&a2d(a,T0d(a.g,a.b));return a.d} +function llb(a){rCb(a.ad?1:0} +function ajc(a,b){var c,d;c=_ic(b);d=c;return BD(Nhb(a.c,d),19).a} +function eSc(a,b){var c;c=a+'';while(c.lengthc){throw ubb(new pcb(Kb(a,b,c)))}} +function Pb(a,b){if(a<0||a>=b){throw ubb(new pcb(Ib(a,b)))}return a} +function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} +function sgc(a){pgc();if(JD(a.g,10)){return BD(a.g,10)}return null} +function Rbb(a){var b;if(Ebb(a)){b=a;return b==-0.?0:b}return oD(a)} +function cib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function Zpb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function Xsb(a){rCb(a.b.b!=a.d.a);a.c=a.b=a.b.b;--a.a;return a.c.c} +function Igb(a){while(a.d>0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} +function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} +function Qu(a){return new Rkb((Xj(a,Hie),Oy(vbb(vbb(5,a),a/10|0))))} +function ZCc(){ZCc=bcb;YCc=ix(leb(1),leb(4));XCc=ix(leb(1),leb(2))} +function D2c(a){a.j.c=KC(SI,Phe,1,0,5,1);Ae(a.c);d3c(a.a);return a} +function d6d(a){var b,c,d;b=new v6d;c=n6d(b,a);u6d(b);d=c;return d} +function qZd(){var a,b,c;b=(c=(a=new PQd,a),c);Dkb(mZd,b);return b} +function Xzb(a){var b;Szb(a);b=new Fpb;$ub(a.a,new lAb(b));return b} +function sAb(a){var b;Szb(a);b=new crb;$ub(a.a,new AAb(b));return b} +function lsb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function pAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} +function nrb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} +function pEc(a,b,c){this.d=new CEc(this);this.e=a;this.i=b;this.f=c} +function RZb(a,b,c){!!a.d&&Kkb(a.d.e,a);a.d=b;!!a.d&&Ckb(a.d.e,c,a)} +function rMb(a,b,c){return c.f.c.length>0?GMb(a.a,b,c):GMb(a.b,b,c)} +function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} +function Tpd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} +function Upd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} +function Vpd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} +function Wpd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=Xpd(c));return d} +function Oqd(a,b,c){var d;d=Rpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} +function hxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} +function f3c(){z2c.call(this);this.j.c=KC(SI,Phe,1,0,5,1);this.a=-1} +function v_c(){v_c=bcb;u_c=as((o_c(),OC(GC(N_,1),Fie,551,0,[n_c])))} +function m_c(){m_c=bcb;l_c=as((e_c(),OC(GC(M_,1),Fie,482,0,[d_c])))} +function V0c(){V0c=bcb;U0c=as((N0c(),OC(GC(V_,1),Fie,530,0,[M0c])))} +function gPb(){gPb=bcb;fPb=as((bPb(),OC(GC(GO,1),Fie,481,0,[aPb])))} +function l_b(a){return BD(Pkb(a,KC(aR,gne,11,a.c.length,0,1)),1942)} +function _w(a){return new Jub(qmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} +function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} +function Ko(a){if(a.e.g!=a.b){throw ubb(new zpb)}return !!a.c&&a.d>0} +function Wsb(a){rCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function Wjb(a,b){tCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;$jb(a)} +function Vjb(a,b){tCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);$jb(a)} +function $4b(a,b){e5b(b,a);g5b(a.d);g5b(BD(uNb(a,(Lyc(),uxc)),207))} +function _4b(a,b){h5b(b,a);j5b(a.d);j5b(BD(uNb(a,(Lyc(),uxc)),207))} +function x6d(a){var b;b=a.Vg();this.a=JD(b,69)?BD(b,69).Yh():b.Kc()} +function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} +function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} +function jbc(){fbc();return OC(GC(VS,1),Fie,359,0,[ebc,cbc,dbc,bbc])} +function Cjc(){zjc();return OC(GC(mV,1),Fie,412,0,[vjc,wjc,xjc,yjc])} +function xLb(){uLb();return OC(GC(PN,1),Fie,407,0,[tLb,qLb,rLb,sLb])} +function rWb(){kWb();return OC(GC(SP,1),Fie,406,0,[gWb,jWb,hWb,iWb])} +function pxb(){kxb();return OC(GC(iL,1),Fie,297,0,[gxb,hxb,ixb,jxb])} +function TOb(){QOb();return OC(GC(CO,1),Fie,394,0,[NOb,MOb,OOb,POb])} +function TMb(){QMb();return OC(GC(jO,1),Fie,323,0,[NMb,MMb,OMb,PMb])} +function qqc(){kqc();return OC(GC(IW,1),Fie,374,0,[hqc,gqc,iqc,jqc])} +function Lzc(){Gzc();return OC(GC($W,1),Fie,197,0,[Ezc,Fzc,Dzc,Czc])} +function qGc(){nGc();return OC(GC(OX,1),Fie,401,0,[jGc,kGc,lGc,mGc])} +function nkc(a){var b;return a.j==(Pcd(),Mcd)&&(b=okc(a),tqb(b,ucd))} +function ARc(){uRc();return OC(GC(g$,1),Fie,393,0,[qRc,rRc,sRc,tRc])} +function iXc(){eXc();return OC(GC(_$,1),Fie,339,0,[dXc,bXc,cXc,aXc])} +function Rmc(a,b){return BD(Atb(PAb(BD(Qc(a.k,b),15).Oc(),Gmc)),113)} +function Smc(a,b){return BD(Atb(QAb(BD(Qc(a.k,b),15).Oc(),Gmc)),113)} +function Ldc(a,b){var c;c=b.a;PZb(c,b.c.d);QZb(c,b.d.d);m7c(c.a,a.n)} +function w2c(a,b){var c;for(c=a.j.c.length;c0&&Zfb(a.g,0,b,0,a.i);return b} +function Nqd(a,b,c){var d;d=Rpd(c);ro(a.d,d,b);Qhb(a.e,b,c);return b} +function Pqd(a,b,c){var d;d=Rpd(c);ro(a.j,d,b);Qhb(a.k,b,c);return b} +function $sd(a){var b,c;b=(Ahd(),c=new Old,c);!!a&&Mld(b,a);return b} +function ksc(){ksc=bcb;isc=new lsc(ble,0);jsc=new lsc('TOP_LEFT',1)} +function QIc(){QIc=bcb;PIc=new RIc('UPPER',0);OIc=new RIc('LOWER',1)} +function Uwd(a){if(a.p!=7)throw ubb(new Xdb);return Sbb(a.f)<<16>>16} +function bxd(a){if(a.p!=7)throw ubb(new Xdb);return Sbb(a.k)<<16>>16} +function Xwd(a){if(a.p!=1)throw ubb(new Xdb);return Sbb(a.k)<<24>>24} +function Owd(a){if(a.p!=1)throw ubb(new Xdb);return Sbb(a.f)<<24>>24} +function lEd(a,b){kEd();var c;c=BD(Nhb(jEd,a),55);return !c||c.vj(b)} +function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} +function nx(a,b){var c;c=new Ufb;a.xd(c);c.a+='..';b.yd(c);return c.a} +function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=vbb(b,1)}return Oy(b)} +function Rgc(a,b,c){var d;d=BD(Nhb(a.g,c),57);Dkb(a.a.c,new qgd(b,d))} +function UCb(a,b,c){return Cdb(ED(Wd(hrb(a.f,b))),ED(Wd(hrb(a.f,c))))} +function z2d(a,b,c){return A2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Oje)!=0)} +function G2d(a,b,c){return H2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Oje)!=0)} +function l3d(a,b,c){return m3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Oje)!=0)} +function fFd(a,b){return BD(b==null?Wd(hrb(a.f,null)):Brb(a.g,b),280)} +function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?She:ecb(b)} +function FJc(a,b){return a==(i0b(),g0b)&&b==g0b?4:a==g0b||b==g0b?8:32} +function lRb(a,b){$Qb.call(this);this.a=a;this.b=b;Dkb(this.a.b,this)} +function gge(a,b){rfe();sfe.call(this,a);this.a=b;this.c=-1;this.b=-1} +function zQb(a){this.b=new Kqb;this.c=new Kqb;this.d=new Kqb;this.a=a} +function QKd(a){if(!a.n){VKd(a);a.n=new EMd(a,i5,a);WKd(a)}return a.n} +function wfd(a,b){var c;c=b;while(c){K6c(a,c.i,c.j);c=Sod(c)}return a} +function Mqd(a,b,c){var d;d=Rpd(c);Qhb(a.b,d,b);Qhb(a.c,b,c);return b} +function kt(a,b){var c;c=umb(Nu(new wu(a,b)));ir(new wu(a,b));return c} +function M6d(a,b){L6d();var c;c=BD(a,66).Lj();fVd(c,b);return c.Nk(b)} +function POc(a,b,c,d,e){var f;f=KOc(e,c,d);Dkb(b,pOc(e,f));TOc(a,e,b)} +function lic(a,b,c){a.i=0;a.e=0;if(b==c){return}kic(a,b,c);jic(a,b,c)} +function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+ije);YA(a,c)} +function Tcc(a,b){Ncc();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} +function Eqb(a){rCb(a.a=0&&a.a[c]===b[c];c--);return c<0} +function Gx(a){var b;if(a){return new Asb(a)}b=new ysb;Jq(b,a);return b} +function Ctb(a,b){tCb(b);if(a.a!=null){return Htb(b.Kb(a.a))}return ytb} +function eRb(a){return !!a.c&&!!a.d?nRb(a.c)+'->'+nRb(a.d):'e_'+ECb(a)} +function FAb(a,b){var c;return b.b.Kb(RAb(a,b.c.Ee(),(c=new SBb(b),c)))} +function Gub(a){yub();Dub(this,Sbb(wbb(Nbb(a,24),ike)),Sbb(wbb(a,ike)))} +function oCb(a){if(a<0){throw ubb(new Eeb('Negative array size: '+a))}} +function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} +function Iic(a,b){var c,d;d=false;do{c=Lic(a,b);d=d|c}while(c);return d} +function Fz(a){a&&Mz((Kz(),Jz));--xz;if(a){if(zz!=-1){Hz(zz);zz=-1}}} +function nyb(){nyb=bcb;kyb=true;iyb=false;jyb=false;myb=false;lyb=false} +function YEb(){YEb=bcb;XEb=as((TEb(),OC(GC(bN,1),Fie,428,0,[REb,SEb])))} +function QEb(){QEb=bcb;PEb=as((LEb(),OC(GC(aN,1),Fie,429,0,[KEb,JEb])))} +function _Rb(){_Rb=bcb;$Rb=as((WRb(),OC(GC(gP,1),Fie,425,0,[URb,VRb])))} +function C5b(){C5b=bcb;B5b=as((x5b(),OC(GC(ZR,1),Fie,511,0,[w5b,v5b])))} +function ZLc(){ZLc=bcb;YLc=as((ULc(),OC(GC(eZ,1),Fie,516,0,[TLc,SLc])))} +function fMc(){fMc=bcb;eMc=as((aMc(),OC(GC(fZ,1),Fie,515,0,[$Lc,_Lc])))} +function IOc(){IOc=bcb;HOc=as((DOc(),OC(GC(CZ,1),Fie,520,0,[COc,BOc])))} +function Aqc(){Aqc=bcb;zqc=as((vqc(),OC(GC(JW,1),Fie,420,0,[tqc,uqc])))} +function crc(){crc=bcb;brc=as((Zqc(),OC(GC(MW,1),Fie,479,0,[Yqc,Xqc])))} +function cBc(){cBc=bcb;bBc=as((ZAc(),OC(GC(fX,1),Fie,376,0,[YAc,XAc])))} +function EAc(){EAc=bcb;DAc=as((zAc(),OC(GC(cX,1),Fie,422,0,[xAc,yAc])))} +function Mpc(){Mpc=bcb;Lpc=as((Hpc(),OC(GC(FW,1),Fie,423,0,[Fpc,Gpc])))} +function psc(){psc=bcb;osc=as((ksc(),OC(GC(SW,1),Fie,421,0,[isc,jsc])))} +function _Tc(){_Tc=bcb;$Tc=as((WTc(),OC(GC(E$,1),Fie,426,0,[VTc,UTc])))} +function TTc(){TTc=bcb;STc=as((OTc(),OC(GC(D$,1),Fie,480,0,[MTc,NTc])))} +function TUc(){TUc=bcb;SUc=as((LUc(),OC(GC(J$,1),Fie,495,0,[JUc,KUc])))} +function GQc(){GQc=bcb;FQc=as((BQc(),OC(GC(XZ,1),Fie,455,0,[zQc,AQc])))} +function hWc(){hWc=bcb;gWc=as((bWc(),OC(GC(W$,1),Fie,427,0,[_Vc,aWc])))} +function e1c(){e1c=bcb;d1c=as((Y0c(),OC(GC(W_,1),Fie,430,0,[X0c,W0c])))} +function D_c(){D_c=bcb;C_c=as((y_c(),OC(GC(O_,1),Fie,431,0,[x_c,w_c])))} +function VIc(){VIc=bcb;UIc=as((QIc(),OC(GC(lY,1),Fie,523,0,[PIc,OIc])))} +function Wcd(){Pcd();return OC(GC(E1,1),Yme,61,0,[Ncd,vcd,ucd,Mcd,Ocd])} +function gFd(a,b,c){return BD(b==null?irb(a.f,null,c):Crb(a.g,b,c),280)} +function ko(a){a.i=0;zlb(a.b,null);zlb(a.c,null);a.a=null;a.e=null;++a.g} +function pv(a){if(!a.c.Sb()){throw ubb(new ttb)}a.a=true;return a.c.Ub()} +function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} +function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} +function vyb(a){nyb();if(kyb){return}this.c=a;this.e=true;this.a=new Qkb} +function qAb(a,b){this.c=0;this.b=b;ivb.call(this,a,17493);this.a=this.c} +function Mkb(a,b,c){var d;d=(sCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} +function vHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} +function xfd(a,b){var c;c=b;while(c){K6c(a,-c.i,-c.j);c=Sod(c)}return a} +function Gqd(a,b){var c;c=new eC;Npd(c,'x',b.a);Npd(c,'y',b.b);Lpd(a,c)} +function Jqd(a,b){var c;c=new eC;Npd(c,'x',b.a);Npd(c,'y',b.b);Lpd(a,c)} +function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} +function qeb(a,b){var c,d;tCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} +function vUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} +function EAb(a,b){return (Tzb(a),VAb(new XAb(a,new pBb(b,a.a)))).sd(CAb)} +function sUb(){pUb();return OC(GC(zP,1),Fie,355,0,[kUb,lUb,mUb,nUb,oUb])} +function Zzc(){Tzc();return OC(GC(_W,1),Fie,315,0,[Szc,Pzc,Qzc,Ozc,Rzc])} +function $jc(){Wjc();return OC(GC(uV,1),Fie,362,0,[Sjc,Ujc,Vjc,Tjc,Rjc])} +function Dtc(){Atc();return OC(GC(TW,1),Fie,163,0,[ztc,vtc,wtc,xtc,ytc])} +function M_c(){J_c();return OC(GC(P_,1),Fie,316,0,[E_c,F_c,I_c,G_c,H_c])} +function j$c(){g$c();return OC(GC(x_,1),Fie,354,0,[c$c,b$c,e$c,d$c,f$c])} +function M5c(){J5c();return OC(GC(d1,1),Fie,175,0,[H5c,G5c,E5c,I5c,F5c])} +function gad(){aad();return OC(GC(s1,1),Fie,103,0,[$9c,Z9c,Y9c,X9c,_9c])} +function Sbd(){Pbd();return OC(GC(B1,1),Fie,249,0,[Mbd,Obd,Kbd,Lbd,Nbd])} +function rcd(){mcd();return OC(GC(D1,1),Fie,291,0,[kcd,icd,jcd,hcd,lcd])} +function xcb(a){vcb.call(this,a==null?She:ecb(a),JD(a,78)?BD(a,78):null)} +function Gzd(a){this.b=a;Ayd.call(this,a);this.a=BD(vjd(this.b.a,4),125)} +function Pzd(a){this.b=a;Vyd.call(this,a);this.a=BD(vjd(this.b.a,4),125)} +function lSd(a,b,c,d,e){jxd.call(this,b,d,e);eSd(this);this.c=a;this.b=c} +function DSd(a,b,c,d,e){jxd.call(this,b,d,e);eSd(this);this.c=a;this.a=c} +function qSd(a,b,c,d,e){fxd.call(this,b,d,e);eSd(this);this.c=a;this.a=c} +function uSd(a,b,c,d,e){gxd.call(this,b,d,e);eSd(this);this.c=a;this.a=c} +function OYb(a){LYb();xXb(this);this.a=new Osb;MYb(this,a);Csb(this.a,a)} +function iYb(){Bkb(this);this.b=new b7c(Kje,Kje);this.a=new b7c(Lje,Lje)} +function O0d(){O0d=bcb;var a,b;M0d=(GFd(),b=new HPd,b);N0d=(a=new JJd,a)} +function VKd(a){if(!a.t){a.t=new TMd(a);qtd(new Z_d(a),0,a.t)}return a.t} +function tUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} +function y3c(a,b){if(JD(b,149)){return cfb(a.c,BD(b,149).c)}return false} +function NZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} +function Pgb(a,b){if(b==0||a.e==0){return a}return b>0?hhb(a,b):khb(a,-b)} +function Qgb(a,b){if(b==0||a.e==0){return a}return b>0?khb(a,b):hhb(a,-b)} +function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw ubb(new ttb)}} +function Xac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(i0b(),d0b)&&c.k==d0b} +function sjb(a,b){var c,d;c=b.cd();d=zwb(a,c);return !!d&&vtb(d.e,b.dd())} +function f4c(a,b){var c;c=BD(Vrb(a.d,b),23);return c?c:BD(Vrb(a.e,b),23)} +function Tc(a,b){var c,d;c=BD(Iv(a.c,b),14);if(c){d=c.gc();c.$b();a.d-=d}} +function cid(a,b,c){var d;return d=a.Xg(b),d>=0?a.$g(d,c,true):nid(a,b,c)} +function tHb(a,b,c,d){var e;for(e=0;e>22&zje;d=a<0?Aje:0;return TC(b,c,d)} +function Qc(a,b){var c;c=BD(a.c.xc(b),14);!c&&(c=a.ic(b));return a.pc(b,c)} +function bfb(a,b){var c,d;c=(tCb(a),a);d=(tCb(b),b);return c==d?0:cb){throw ubb(new pcb(Jb(a,b,'index')))}return a} +function Epb(a){var b;b=a.e+a.f;if(isNaN(b)&&Kdb(a.d)){return a.d}return b} +function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} +function c6c(){c6c=bcb;b6c=new Gsd('org.eclipse.elk.labels.labelManager')} +function DOc(){DOc=bcb;COc=new EOc('REGULAR',0);BOc=new EOc('CRITICAL',1)} +function a1b(a){this.c=a;this.a=new nlb(this.c.a);this.b=new nlb(this.c.b)} +function jxd(a,b,c){this.d=a;this.k=b?1:0;this.f=c?1:0;this.o=-1;this.p=0} +function Fjc(a,b,c){this.a=a;this.c=b;this.d=c;Dkb(b.e,this);Dkb(c.b,this)} +function hWd(a,b,c){QVd.call(this,c);this.b=a;this.c=b;this.d=(xWd(),vWd)} +function vBb(a,b){evb.call(this,b.rd(),b.qd()&-6);tCb(a);this.a=a;this.b=b} +function BBb(a,b){ivb.call(this,b.rd(),b.qd()&-6);tCb(a);this.a=a;this.b=b} +function HBb(a,b){mvb.call(this,b.rd(),b.qd()&-6);tCb(a);this.a=a;this.b=b} +function LFb(){this.g=new OFb;this.b=new OFb;this.a=new Qkb;this.k=new Qkb} +function jRb(){this.e=new Qkb;this.c=new Qkb;this.d=new Qkb;this.b=new Qkb} +function ORc(){this.b=new Osb;this.a=new Osb;this.b=new Osb;this.a=new Osb} +function xQc(a,b,c){this.a=a;this.b=b;this.c=c;Dkb(a.t,this);Dkb(b.i,this)} +function w$c(a,b){return $wnd.Math.min(O6c(b.a,a.d.d.c),O6c(b.b,a.d.d.c))} +function Shb(a,b){return ND(b)?b==null?jrb(a.f,null):Drb(a.g,b):jrb(a.f,b)} +function LHc(a,b){var c;c=RHc(a,b);a.b=new xHc(c.c.length);return KHc(a,c)} +function FAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} +function EJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} +function ooc(a){if(a.a){if(a.e){return ooc(a.e)}}else{return a}return null} +function JDc(a,b){if(a.pb.p){return -1}return 0} +function LYd(a,b){if(Lhb(a.a,b)){Shb(a.a,b);return true}else{return false}} +function fd(a){var b,c;b=a.cd();c=BD(a.dd(),14);return $j(c.Nc(),new ah(b))} +function rqb(a){var b;b=BD(YBb(a.b,a.b.length),9);return new wqb(a.a,b,a.c)} +function PDc(a,b,c){var d,e;d=0;for(e=0;e=0,'Initial capacity must not be negative')} +function yCb(a){if(!a){throw ubb(new Ydb('Unable to add element to queue'))}} +function zCb(a,b,c){if(a<0||b>c||b=0?a.$g(c,true,true):nid(a,b,true)} +function r6b(a,b){return Jdb(Ddb(ED(uNb(a,(utc(),ftc)))),Ddb(ED(uNb(b,ftc))))} +function lUc(){lUc=bcb;kUc=Z2c(Z2c(c3c(new f3c,(uRc(),rRc)),(mSc(),lSc)),hSc)} +function cCc(){cCc=bcb;bCc=$2c(a3c(new f3c,(pUb(),kUb),(R8b(),m8b)),oUb,I8b)} +function Hpc(){Hpc=bcb;Fpc=new Ipc('QUADRATIC',0);Gpc=new Ipc('SCANLINE',1)} +function lhe(a){if(a.b<=0)throw ubb(new ttb);--a.b;a.a-=a.c.c;return leb(a.a)} +function ktd(a){var b;if(!a.a){throw ubb(new utb)}b=a.a;a.a=Sod(a.a);return b} +function cBb(a){while(!a.a){if(!GBb(a.c,new gBb(a))){return false}}return true} +function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} +function EHc(a,b,c){var d;d=OHc(a,b,c);a.b=new xHc(d.c.length);return GHc(a,d)} +function Gfe(a,b,c){rfe();var d;d=Ffe(a,b);c&&!!d&&Ife(a)&&(d=null);return d} +function wqd(a,b,c){var d,e,f;d=aC(a,c);e=null;!!d&&(e=Xpd(d));f=e;Qqd(b,c,f)} +function xqd(a,b,c){var d,e,f;d=aC(a,c);e=null;!!d&&(e=Xpd(d));f=e;Qqd(b,c,f)} +function q1d(a,b,c){var d,e;e=(d=iUd(a.b,b),d);return !e?null:Q1d(k1d(a,e),c)} +function Yhd(a,b,c,d,e){return b<0?nid(a,c,d):BD(c,66).Mj().Oj(a,a.xh(),b,d,e)} +function QMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Nsb(a.d);a.e.a.c=KC(SI,Phe,1,0,5,1)} +function uHc(a){a.a=KC(WD,jje,25,a.b+1,15,1);a.c=KC(WD,jje,25,a.b,15,1);a.d=0} +function LWb(a,b){if(a.a.ue(b.d,a.b)>0){Dkb(a.c,new cWb(b.c,b.d,a.d));a.b=b.d}} +function iud(a,b){if(a.g==null||b>=a.i)throw ubb(new Vzd(b,a.i));return a.g[b]} +function kOd(a,b,c){Dtd(a,c);if(c!=null&&!a.vj(c)){throw ubb(new scb)}return c} +function ZHb(a,b){xtb(b,'Horizontal alignment cannot be null');a.b=b;return a} +function PC(a,b){HC(b)!=10&&OC(rb(b),b.gm,b.__elementTypeId$,HC(b),a);return a} +function pBb(a,b){mvb.call(this,b.rd(),b.qd()&-16449);tCb(a);this.a=a;this.c=b} +function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} +function tlb(a,b){var c,d;oCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} +function Jlb(a,b,c,d){var e;d=(hpb(),!d?epb:d);e=a.slice(b,c);Klb(e,a,b,c,-b,d)} +function n3c(a){l3c();BD(a.We((U9c(),t9c)),174).Fc((mcd(),jcd));a.Ye(s9c,null)} +function l3c(){l3c=bcb;i3c=new r3c;k3c=new t3c;j3c=mn((U9c(),s9c),i3c,Z8c,k3c)} +function bWc(){bWc=bcb;_Vc=new dWc('LEAF_NUMBER',0);aWc=new dWc('NODE_SIZE',1)} +function kxb(){kxb=bcb;gxb=new lxb('All',0);hxb=new qxb;ixb=new sxb;jxb=new vxb} +function MHb(){MHb=bcb;KHb=new NHb(ele,0);JHb=new NHb(ble,1);LHb=new NHb(fle,2)} +function v9d(){v9d=bcb;Nmd();s9d=Kje;r9d=Lje;u9d=new Mdb(Kje);t9d=new Mdb(Lje)} +function FLd(a){var b;if(a.Dk()){for(b=a.i-1;b>=0;--b){lud(a,b)}}return rud(a)} +function Awb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} +function cZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:ecb(a)} +function dZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:ecb(a)} +function mDb(a,b){if(b.a){throw ubb(new hz(Cke))}Pqb(a.a,b);b.a=a;!a.j&&(a.j=b)} +function zLb(){zLb=bcb;yLb=as((uLb(),OC(GC(PN,1),Fie,407,0,[tLb,qLb,rLb,sLb])))} +function tWb(){tWb=bcb;sWb=as((kWb(),OC(GC(SP,1),Fie,406,0,[gWb,jWb,hWb,iWb])))} +function yxb(){yxb=bcb;xxb=as((kxb(),OC(GC(iL,1),Fie,297,0,[gxb,hxb,ixb,jxb])))} +function VOb(){VOb=bcb;UOb=as((QOb(),OC(GC(CO,1),Fie,394,0,[NOb,MOb,OOb,POb])))} +function VMb(){VMb=bcb;UMb=as((QMb(),OC(GC(jO,1),Fie,323,0,[NMb,MMb,OMb,PMb])))} +function CRc(){CRc=bcb;BRc=as((uRc(),OC(GC(g$,1),Fie,393,0,[qRc,rRc,sRc,tRc])))} +function kXc(){kXc=bcb;jXc=as((eXc(),OC(GC(_$,1),Fie,339,0,[dXc,bXc,cXc,aXc])))} +function lbc(){lbc=bcb;kbc=as((fbc(),OC(GC(VS,1),Fie,359,0,[ebc,cbc,dbc,bbc])))} +function sqc(){sqc=bcb;rqc=as((kqc(),OC(GC(IW,1),Fie,374,0,[hqc,gqc,iqc,jqc])))} +function sGc(){sGc=bcb;rGc=as((nGc(),OC(GC(OX,1),Fie,401,0,[jGc,kGc,lGc,mGc])))} +function Ejc(){Ejc=bcb;Djc=as((zjc(),OC(GC(mV,1),Fie,412,0,[vjc,wjc,xjc,yjc])))} +function Nzc(){Nzc=bcb;Mzc=as((Gzc(),OC(GC($W,1),Fie,197,0,[Ezc,Fzc,Dzc,Czc])))} +function pgd(){pgd=bcb;ogd=as((kgd(),OC(GC(j2,1),Fie,396,0,[hgd,igd,ggd,jgd])))} +function tdd(){tdd=bcb;sdd=as((odd(),OC(GC(H1,1),Fie,373,0,[mdd,ndd,ldd,kdd])))} +function tbd(){tbd=bcb;sbd=as((nbd(),OC(GC(z1,1),Fie,284,0,[mbd,jbd,kbd,lbd])))} +function Bad(){Bad=bcb;Aad=as((wad(),OC(GC(u1,1),Fie,218,0,[vad,tad,sad,uad])))} +function Ded(){Ded=bcb;Ced=as((yed(),OC(GC(N1,1),Fie,311,0,[xed,ued,wed,ved])))} +function Zqc(){Zqc=bcb;Yqc=new $qc(Xme,0);Xqc=new $qc('IMPROVE_STRAIGHTNESS',1)} +function aIc(a,b){BHc();return Dkb(a,new qgd(b,leb(b.e.c.length+b.g.c.length)))} +function cIc(a,b){BHc();return Dkb(a,new qgd(b,leb(b.e.c.length+b.g.c.length)))} +function Ikb(a,b,c){for(;c=0){++b[0]}} +function HNb(a,b){GNb=new sOb;ENb=b;FNb=a;BD(FNb.b,65);JNb(FNb,GNb,null);INb(FNb)} +function DIb(){DIb=bcb;CIb=new EIb('TOP',0);BIb=new EIb(ble,1);AIb=new EIb(hle,2)} +function csc(){csc=bcb;asc=new dsc(Xme,0);bsc=new dsc('TOP',1);_rc=new dsc(hle,2)} +function wD(){wD=bcb;sD=TC(zje,zje,524287);tD=TC(0,0,Bje);uD=RC(1);RC(2);vD=RC(0)} +function RDc(a,b,c){a.a.c=KC(SI,Phe,1,0,5,1);VDc(a,b,c);a.a.c.length==0||ODc(a,b)} +function bhd(a,b){acd(BD(BD(a.f,33).We((U9c(),p9c)),98))&&ICd(Tod(BD(a.f,33)),b)} +function Bqd(a,b){$kd(a,b==null||Kdb((tCb(b),b))||isNaN((tCb(b),b))?0:(tCb(b),b))} +function Cqd(a,b){_kd(a,b==null||Kdb((tCb(b),b))||isNaN((tCb(b),b))?0:(tCb(b),b))} +function Dqd(a,b){Zkd(a,b==null||Kdb((tCb(b),b))||isNaN((tCb(b),b))?0:(tCb(b),b))} +function Eqd(a,b){Xkd(a,b==null||Kdb((tCb(b),b))||isNaN((tCb(b),b))?0:(tCb(b),b))} +function Xfd(a){(!this.q?(lmb(),lmb(),jmb):this.q).Ac(!a.q?(lmb(),lmb(),jmb):a.q)} +function vid(a){var b;if(!a.bh()){b=XKd(a.Sg())-a.zh();a.oh().ak(b)}return a.Og()} +function TId(a){var b;if(a.d!=a.r){b=rId(a);a.e=!!b&&b.Bj()==wve;a.d=b}return a.e} +function pud(a,b,c){var d;d=a.g[b];hud(a,b,a.ni(b,c));a.fi(b,c,d);a.bi();return d} +function Atd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} +function did(a,b){var c;c=YKd(a.d,b);return c>=0?aid(a,c,true,true):nid(a,b,true)} +function ugc(a,b){pgc();var c,d;c=tgc(a);d=tgc(b);return !!c&&!!d&&!nmb(c.k,d.k)} +function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} +function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} +function wzc(a){switch(a.g){case 0:return Jhe;case 1:return -1;default:return 0;}} +function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Cje+a.h*Dje} +function Vrb(a,b){var c;c=BD(Nhb(a.e,b),387);if(c){Xrb(a,c);return c.e}return null} +function KAb(a,b){var c,d;Tzb(a);d=new HBb(b,a.a);c=new eBb(d);return new XAb(a,c)} +function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} +function sjd(a){var b;b=CD(vjd(a,32));if(b==null){tjd(a);b=CD(vjd(a,32))}return b} +function cub(a){var b;b=a.b.c.length==0?null:Hkb(a.b,0);b!=null&&eub(a,0);return b} +function Pgc(a,b){var c,d,e;e=b.c.i;c=BD(Nhb(a.f,e),57);d=c.d.c-c.e.c;l7c(b.a,d,0)} +function tHc(a,b){var c;++a.d;++a.c[b];c=b+1;while(ca.a[d]&&(d=c)}return d} +function eic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Jdb(a.e.d,b.e.d)}return c} +function goc(a){var b;b=BD(uNb(a,(utc(),ssc)),305);if(b){return b.a==a}return false} +function hoc(a){var b;b=BD(uNb(a,(utc(),ssc)),305);if(b){return b.i==a}return false} +function rfb(a,b){return b==(mtb(),mtb(),ltb)?a.toLocaleLowerCase():a.toLowerCase()} +function N2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Oje)!=0?new n4d(b,a):new k4d(b,a)} +function P2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Oje)!=0?new n4d(b,a):new k4d(b,a)} +function mCb(a,b){if(!a){throw ubb(new Vdb(CCb('Enum constant undefined: %s',b)))}} +function Ngb(a,b){if(b.e==0){return Fgb}if(a.e==0){return Fgb}return Chb(),Dhb(a,b)} +function X1c(a,b){var c;c=BD(Nhb(a.a,b),134);if(!c){c=new yNb;Qhb(a.a,b,c)}return c} +function Ftc(){Ftc=bcb;Etc=as((Atc(),OC(GC(TW,1),Fie,163,0,[ztc,vtc,wtc,xtc,ytc])))} +function akc(){akc=bcb;_jc=as((Wjc(),OC(GC(uV,1),Fie,362,0,[Sjc,Ujc,Vjc,Tjc,Rjc])))} +function _zc(){_zc=bcb;$zc=as((Tzc(),OC(GC(_W,1),Fie,315,0,[Szc,Pzc,Qzc,Ozc,Rzc])))} +function O_c(){O_c=bcb;N_c=as((J_c(),OC(GC(P_,1),Fie,316,0,[E_c,F_c,I_c,G_c,H_c])))} +function O5c(){O5c=bcb;N5c=as((J5c(),OC(GC(d1,1),Fie,175,0,[H5c,G5c,E5c,I5c,F5c])))} +function l$c(){l$c=bcb;k$c=as((g$c(),OC(GC(x_,1),Fie,354,0,[c$c,b$c,e$c,d$c,f$c])))} +function iad(){iad=bcb;had=as((aad(),OC(GC(s1,1),Fie,103,0,[$9c,Z9c,Y9c,X9c,_9c])))} +function Ubd(){Ubd=bcb;Tbd=as((Pbd(),OC(GC(B1,1),Fie,249,0,[Mbd,Obd,Kbd,Lbd,Nbd])))} +function tcd(){tcd=bcb;scd=as((mcd(),OC(GC(D1,1),Fie,291,0,[kcd,icd,jcd,hcd,lcd])))} +function uUb(){uUb=bcb;tUb=as((pUb(),OC(GC(zP,1),Fie,355,0,[kUb,lUb,mUb,nUb,oUb])))} +function WRb(){WRb=bcb;URb=new XRb('EADES',0);VRb=new XRb('FRUCHTERMAN_REINGOLD',1)} +function vqc(){vqc=bcb;tqc=new wqc('READING_DIRECTION',0);uqc=new wqc('ROTATION',1)} +function Clc(){zlc();return OC(GC(KV,1),Fie,270,0,[slc,vlc,rlc,ylc,ulc,tlc,xlc,wlc])} +function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} +function hdb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(edb(a),a.o)} +function Oy(a){if(xbb(a,Jhe)>0){return Jhe}if(xbb(a,Mie)<0){return Mie}return Sbb(a)} +function Cv(a){if(a<3){Xj(a,Cie);return a+1}if(a=0&&b=-0.01&&a.a<=kle&&(a.a=0);a.b>=-0.01&&a.b<=kle&&(a.b=0);return a} +function Knd(a){var b,c;c=(b=new NSd,b);rtd((!a.q&&(a.q=new ZTd(m5,a,11,10)),a.q),c)} +function Kdd(a,b){var c;c=b>0?b-1:b;return Qdd(Rdd(Sdd(Tdd(new Udd,c),a.n),a.j),a.k)} +function p2d(a,b,c,d){var e;a.j=-1;Lxd(a,D2d(a,b,c),(L6d(),e=BD(b,66).Lj(),e.Nk(d)))} +function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} +function Gs(a){var b;if(a.a==a.b.a){throw ubb(new ttb)}b=a.a;a.c=b;a.a=a.a.e;return b} +function Ysb(a){var b;xCb(!!a.c);b=a.c.a;Msb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} +function aIb(a,b,c){ZGb.call(this);SHb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} +function Bnc(a,b){this.a=new Kqb;this.e=new Kqb;this.b=(vzc(),uzc);this.c=a;this.b=b} +function lDb(a){this.b=new Qkb;this.a=new Qkb;this.c=new Qkb;this.d=new Qkb;this.e=a} +function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} +function uud(a){if(a<0){throw ubb(new Vdb('Illegal Capacity: '+a))}this.g=this.qi(a)} +function _ub(a,b){if(0>a||a>b){throw ubb(new rcb('fromIndex: 0, toIndex: '+a+jke+b))}} +function UAb(a,b){var c;Tzb(a);c=new kBb(a,a.a.rd(),a.a.qd()|4,b);return new XAb(a,c)} +function JMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Deb(d))} +function hfc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);bfc(c,d,1);Dkb(b,new qfc(c,d))} +function wac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);xNb(c,(utc(),Qsc),b)}} +function wid(a,b){var c;c=TKd(a.Sg(),b);if(!c){throw ubb(new Vdb(ete+b+hte))}return c} +function itd(a,b){var c;c=a;while(Sod(c)){c=Sod(c);if(c==b){return true}}return false} +function s9b(a){var b;b=Ddb(ED(uNb(a,(Lyc(),Xwc))));if(b<0){b=0;xNb(a,Xwc,b)}return b} +function hZb(a,b,c,d,e,f){var g;g=jZb(d);PZb(g,e);QZb(g,f);Rc(a.a,d,new AZb(g,b,c.f))} +function Gkb(a,b){var c,d,e,f;tCb(b);for(d=a.c,e=0,f=d.length;e=a.i)throw ubb(new Vzd(b,a.i));return a.ki(b,a.g[b])} +function lo(a,b){return !!vo(a,b,Sbb(Hbb(zie,jeb(Sbb(Hbb(b==null?0:tb(b),Aie)),15))))} +function oo(a,b){return Kv(uo(a,b,Sbb(Hbb(zie,jeb(Sbb(Hbb(b==null?0:tb(b),Aie)),15)))))} +function zDb(a,b){return Iy(),My(Lie),$wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)} +function Ky(a,b){Iy();My(Lie);return $wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)} +function kib(a){var b;wpb(a.e,a);rCb(a.b);a.c=a.a;b=BD(a.a.Pb(),42);a.b=jib(a);return b} +function S6c(a){var b;b=$wnd.Math.sqrt(a.a*a.a+a.b*a.b);if(b>0){a.a/=b;a.b/=b}return a} +function CD(a){var b;BCb(a==null||Array.isArray(a)&&(b=HC(a),!(b>=14&&b<=16)));return a} +function yUb(a,b){var c;c=$6c(N6c(BD(Nhb(a.g,b),8)),A6c(BD(Nhb(a.f,b),460).b));return c} +function n0b(){n0b=bcb;m0b=as((i0b(),OC(GC(NQ,1),Fie,267,0,[g0b,f0b,d0b,h0b,e0b,c0b])))} +function orc(){orc=bcb;nrc=as((jrc(),OC(GC(NW,1),Fie,273,0,[grc,frc,irc,erc,hrc,drc])))} +function Brc(){Brc=bcb;Arc=as((wrc(),OC(GC(OW,1),Fie,274,0,[urc,qrc,vrc,trc,rrc,prc])))} +function Wqc(){Wqc=bcb;Vqc=as((Qqc(),OC(GC(LW,1),Fie,275,0,[Lqc,Kqc,Nqc,Mqc,Pqc,Oqc])))} +function Epc(){Epc=bcb;Dpc=as((zpc(),OC(GC(EW,1),Fie,227,0,[vpc,xpc,upc,wpc,ypc,tpc])))} +function sSc(){sSc=bcb;rSc=as((mSc(),OC(GC(s$,1),Fie,327,0,[lSc,hSc,jSc,iSc,kSc,gSc])))} +function rzc(){rzc=bcb;qzc=as((jzc(),OC(GC(YW,1),Fie,313,0,[hzc,fzc,dzc,ezc,izc,gzc])))} +function G7c(){G7c=bcb;F7c=as((B7c(),OC(GC(n1,1),Fie,248,0,[v7c,y7c,z7c,A7c,w7c,x7c])))} +function j8c(){j8c=bcb;i8c=as((e8c(),OC(GC(q1,1),Fie,290,0,[d8c,c8c,b8c,_7c,$7c,a8c])))} +function Nad(){Nad=bcb;Mad=as((Iad(),OC(GC(v1,1),Fie,312,0,[Gad,Ead,Had,Cad,Fad,Dad])))} +function Hbd(){Dbd();return OC(GC(A1,1),Fie,93,0,[vbd,ubd,xbd,Cbd,Bbd,Abd,ybd,zbd,wbd])} +function zkc(a,b){fkc();return aeb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} +function qkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,0,c,a.a))} +function rkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,1,c,a.b))} +function cmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,3,c,a.b))} +function Xkd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,3,c,a.f))} +function Zkd(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,4,c,a.g))} +function $kd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,5,c,a.i))} +function _kd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,6,c,a.j))} +function jmd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,1,c,a.j))} +function dmd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,4,c,a.c))} +function kmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new gSd(a,2,c,a.k))} +function lQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new hSd(a,2,c,a.d))} +function vId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new hSd(a,4,c,a.s))} +function yId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new hSd(a,5,c,a.t))} +function WJd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,5,c,b))} +function dzd(a,b){var c;c=BD(Nhb((kEd(),jEd),a),55);return c?c.wj(b):KC(SI,Phe,1,b,5,1)} +function Spd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} +function atd(a,b){var c,d,e;c=(d=(Ahd(),e=new Eod,e),!!b&&Bod(d,b),d);Cod(c,a);return c} +function GLd(a,b,c){Dtd(a,c);if(!a.Ak()&&c!=null&&!a.vj(c)){throw ubb(new scb)}return c} +function Sdd(a,b){a.n=b;if(a.n){a.f=new Qkb;a.e=new Qkb}else{a.f=null;a.e=null}return a} +function red(a){this.b=(Qb(a),new Skb(a));this.a=new Qkb;this.d=new Qkb;this.e=new _6c} +function mSd(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 oSd(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 wSd(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 BSd(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 sSd(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 mdb(a,b,c,d,e,f){var g;g=kdb(a,b);ydb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} +function ulb(a,b,c){var d,e;e=a.length;d=$wnd.Math.min(c,e);ZBb(a,0,b,0,d,true);return b} +function qDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(dkb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} +function ogb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=ehb(a.f)),a.c).e} +function My(a){if(!(a>=0)){throw ubb(new Vdb('tolerance ('+a+') must be >= 0'))}return a} +function j4c(){if(!b4c){b4c=new i4c;h4c(b4c,OC(GC(B0,1),Phe,130,0,[new V9c]))}return b4c} +function IAc(){IAc=bcb;HAc=new JAc(jle,0);FAc=new JAc('INPUT',1);GAc=new JAc('OUTPUT',2)} +function aqc(){aqc=bcb;Zpc=new bqc('ARD',0);_pc=new bqc('MSD',1);$pc=new bqc('MANUAL',2)} +function utd(a,b){var c;c=a.gc();if(b<0||b>c)throw ubb(new xyd(b,c));return new Zyd(a,b)} +function EAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=lAd(a,b);GAd(a,b);return c}} +function Vnd(a,b,c){tId(a,b);knd(a,c);vId(a,0);yId(a,1);xId(a,true);wId(a,true);return a} +function Xj(a,b){if(a<0){throw ubb(new Vdb(b+' cannot be negative but was: '+a))}return a} +function Bt(a,b){var c,d;for(c=0,d=a.gc();c0&&a.c0&&a.g!=0&&Mdd(a.i,b/a.r*a.i.d)}} +function L5b(a,b){Jdd(b,'Hierarchical port constraint processing',1);M5b(a);O5b(a);Ldd(b)} +function dyb(a,b){((nyb(),kyb)?null:b.c).length==0&&pyb(b,new yyb);Rhb(a.a,kyb?null:b.c,b)} +function b3d(a,b){return O6d(a.e,b)?(L6d(),TId(b)?new M7d(b,a):new a7d(b,a)):new Z7d(b,a)} +function GSb(){GSb=bcb;ESb=new Gsd(Dme);FSb=new Gsd(Eme);DSb=new Gsd(Fme);CSb=new Gsd(Gme)} +function oAb(a){var b,c;if(0>a){return new xAb}b=a+1;c=new qAb(b,a);return new uAb(null,c)} +function tmb(a,b){lmb();var c;c=new Lqb(1);ND(a)?Rhb(c,a,b):irb(c.f,a,b);return new hob(c)} +function NLc(a,b){var c,d;c=a.c;d=b.e[a.p];if(d>0){return BD(Hkb(c.a,d-1),10)}return null} +function _Lb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Die}return b} +function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} +function P6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} +function kRd(a){var b;if(a.b==null){return GRd(),GRd(),FRd}b=a.Kk()?a.Jk():a.Ik();return b} +function $Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=wbb(Obb(a.n[c][f],Sbb(Mbb(e,1))),3);return d} +function DAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);CAd(a,c.cd(),c.dd())}} +function J1c(a,b){var c;c=new sOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Gkb(b.a,new P1c(a,c,b))} +function yUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,21,c,a.b))} +function emd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,11,c,a.d))} +function WId(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,13,c,a.j))} +function $fe(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new cee:new pde;a.c=jde(d,a.b,a.a)} +function Zjb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)} +function Zbb(a,b){typeof window===Ehe&&typeof window['$gwt']===Ehe&&(window['$gwt'][a]=b)} +function oWb(a,b){kWb();return a==gWb&&b==jWb||a==jWb&&b==gWb||a==iWb&&b==hWb||a==hWb&&b==iWb} +function pWb(a,b){kWb();return a==gWb&&b==hWb||a==gWb&&b==iWb||a==jWb&&b==iWb||a==jWb&&b==hWb} +function HJb(a,b){return Iy(),My(kle),$wnd.Math.abs(0-b)<=kle||0==b||isNaN(0)&&isNaN(b)?0:a/b} +function Ooc(a,b){return Ddb(ED(Atb(SAb(MAb(new XAb(null,new Jub(a.c.b,16)),new epc(a)),b))))} +function Roc(a,b){return Ddb(ED(Atb(SAb(MAb(new XAb(null,new Jub(a.c.b,16)),new cpc(a)),b))))} +function P2b(a,b){Jdd(b,une,1);LAb(KAb(new XAb(null,new Jub(a.b,16)),new T2b),new V2b);Ldd(b)} +function OXc(a,b){var c,d;c=BD(ckd(a,(VWc(),OWc)),19);d=BD(ckd(b,OWc),19);return aeb(c.a,d.a)} +function l7c(a,b,c){var d,e;for(e=Isb(a,0);e.b!=e.d.c;){d=BD(Wsb(e),8);d.a+=b;d.b+=c}return a} +function uo(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 vo(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 qmb(a,b){lmb();var c,d;d=new Qkb;for(c=0;c0){this.g=this.qi(this.i+(this.i/8|0)+1);a.Qc(this.g)}} +function Ygb(a){tCb(a);if(a.length==0){throw ubb(new Neb('Zero length BigInteger'))}chb(this,a)} +function Vb(a){if(!a){throw ubb(new Ydb('no calls to next() since the last call to remove()'))}} +function k7b(a,b){Jdd(b,une,1);TGb(SGb(new XGb((_Zb(),new k$b(a,false,false,new S$b)))));Ldd(b)} +function y0b(){y0b=bcb;v0b=new g1b;t0b=new l1b;u0b=new p1b;s0b=new t1b;w0b=new x1b;x0b=new B1b} +function ABc(){ABc=bcb;zBc=new BBc('NO',0);xBc=new BBc('GREEDY',1);yBc=new BBc('LOOK_BACK',2)} +function RAc(){RAc=bcb;OAc=new SAc('EQUALLY',0);PAc=new SAc(sle,1);QAc=new SAc('NORTH_SOUTH',2)} +function oXc(){oXc=bcb;mXc=new qXc(Xme,0);nXc=new qXc('POLAR_COORDINATE',1);lXc=new qXc('ID',2)} +function GFc(){GFc=bcb;FFc=Z2c(b3c(a3c(a3c(new f3c,(pUb(),mUb),(R8b(),y8b)),nUb,o8b),oUb),x8b)} +function _Gc(){_Gc=bcb;$Gc=Z2c(b3c(a3c(a3c(new f3c,(pUb(),mUb),(R8b(),y8b)),nUb,o8b),oUb),x8b)} +function Elc(){Elc=bcb;Dlc=as((zlc(),OC(GC(KV,1),Fie,270,0,[slc,vlc,rlc,ylc,ulc,tlc,xlc,wlc])))} +function nAc(){nAc=bcb;mAc=as((iAc(),OC(GC(aX,1),Fie,260,0,[gAc,bAc,eAc,cAc,dAc,aAc,fAc,hAc])))} +function a6c(){a6c=bcb;_5c=as((X5c(),OC(GC(e1,1),Fie,276,0,[W5c,P5c,T5c,V5c,Q5c,R5c,S5c,U5c])))} +function Csd(){Csd=bcb;Bsd=as((xsd(),OC(GC(N3,1),Fie,237,0,[wsd,tsd,usd,ssd,vsd,qsd,psd,rsd])))} +function mkc(a){var b,c,d;return a.j==(Pcd(),vcd)&&(b=okc(a),c=tqb(b,ucd),d=tqb(b,Ocd),d||d&&c)} +function rtb(a,b){var c,d;tCb(b);for(d=a.vc().Kc();d.Ob();){c=BD(d.Pb(),42);b.Od(c.cd(),c.dd())}} +function ZHd(a,b){var c;if(JD(b,83)){BD(a.c,76).Wj();c=BD(b,83);DAd(a,c)}else{BD(a.c,76).Wb(b)}} +function Tqd(a,b){var c;c=BD(b,183);Npd(c,'x',a.i);Npd(c,'y',a.j);Npd(c,Bte,a.g);Npd(c,Ate,a.f)} +function nqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(YBb(b,b.length),9);return new wqb(b,c,b.length)} +function L9b(a,b){var c,d;for(d=new nlb(b.b);d.ae&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw ubb(new ttb)}} +function Ku(a){var b,c,d;b=1;for(d=a.Kc();d.Ob();){c=d.Pb();b=31*b+(c==null?0:tb(c));b=~~b}return b} +function Ox(a){var b,c,d;d=0;for(c=new Fqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&zje,d&zje,e&Aje)} +function nD(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 TC(c&zje,d&zje,e&Aje)} +function BZc(a,b,c){var d,e;for(e=new nlb(a.b);e.ad)throw ubb(new xyd(b,d));a.gi()&&(c=ytd(a,c));return a.Uh(b,c)} +function y$c(a,b){var c,d;c=BD(BD(Nhb(a.g,b.a),46).a,65);d=BD(BD(Nhb(a.g,b.b),46).a,65);return $Nb(c,d)} +function hD(a){var b,c,d;b=~a.l+1&zje;c=~a.m+(b==0?1:0)&zje;d=~a.h+(b==0&&c==0?1:0)&Aje;return TC(b,c,d)} +function f6c(a){e6c();var b,c,d;c=KC(l1,iie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=n6c(d,a)}return c} +function Lic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f=128)return false;return a<64?Jbb(wbb(Mbb(1,a),c),0):Jbb(wbb(Mbb(1,a-64),b),0)} +function feb(a){var b;if(a<0){return Mie}else if(a==0){return 0}else{for(b=Die;(b&a)==0;b>>=1);return b}} +function vUd(a){var b;if(!a.c||(a.Bb&1)==0&&(a.c.Db&64)!=0){b=rId(a);JD(b,88)&&(a.c=BD(b,26))}return a.c} +function zDc(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 sld(a,b){switch(b){case 7:return !!a.e&&a.e.i!=0;case 8:return !!a.d&&a.d.i!=0;}return Tkd(a,b)} +function RA(a){var b;if(a==0){return 'Etc/GMT'}if(a<0){a=-a;b='Etc/GMT-'}else{b='Etc/GMT+'}return b+UA(a)} +function $C(a){var b,c;c=geb(a.h);if(c==32){b=geb(a.m);return b==32?geb(a.l)+32:b+20-10}else{return c-12}} +function akb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} +function Uy(a){var b,c,d,e;for(b=(a.j==null&&(a.j=(Rz(),e=Qz.ce(a),Tz(e))),a.j),c=0,d=b.length;cc&&(c=a[b])}return c} +function pmb(a){lmb();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 Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3} +function Dfe(){rfe();var a;if($ee)return $ee;a=vfe(Ffe('M',true));a=wfe(Ffe('M',false),a);$ee=a;return $ee} +function f_c(a){switch(a.g){case 0:return new M1c;default:throw ubb(new Vdb(Ire+(a.f!=null?a.f:''+a.g)));}} +function O0c(a){switch(a.g){case 0:return new g1c;default:throw ubb(new Vdb(Ire+(a.f!=null?a.f:''+a.g)));}} +function _jd(a,b,c){switch(b){case 0:!a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0));ZHd(a.o,c);return;}tid(a,b,c)} +function kic(a,b,c){a.g=pic(a,b,(Pcd(),Ocd),a.j);a.d=pic(a,c,Ocd,a.j);if(a.g.c==0||a.d.c==0){return}mic(a)} +function jic(a,b,c){a.g=pic(a,b,(Pcd(),ucd),a.b);a.d=pic(a,c,ucd,a.b);if(a.g.c==0||a.d.c==0){return}mic(a)} +function Syb(a,b,c){var d,e;d=(Acb(),$Pb(c)?true:false);e=BD(b.xc(d),15);if(!e){e=new Qkb;b.zc(d,e)}e.Fc(c)} +function zwb(a,b){var c,d,e;e=a.b;while(e){c=a.a.ue(b,e.d);if(c==0){return e}d=c<0?0:1;e=e.a[d]}return null} +function Wzb(b,c){var d;try{c.Vd()}catch(a){a=tbb(a);if(JD(a,78)){d=a;b.c[b.c.length]=d}else throw ubb(a)}} +function Vyc(a){Dkb(a.c,(U1c(),S1c));if(Ky(a.a,Ddb(ED(Fsd((bzc(),_yc)))))){return new Ued}return new Wed(a)} +function Pr(a){while(!a.d||!a.d.Ob()){if(!!a.b&&!_jb(a.b)){a.d=BD(ekb(a.b),47)}else{return null}}return a.d} +function ZQc(a){switch(a.g){case 1:return Oqe;default:case 2:return 0;case 3:return Zle;case 4:return Pqe;}} +function Dtd(a,b){if(!a._h()&&b==null){throw ubb(new Vdb("The 'no null' constraint is violated"))}return b} +function Vhb(a,b){lCb(a>=0,'Negative initial capacity');lCb(b>=0,'Non-positive load factor');Thb(this)} +function TRc(a,b,c){this.g=a;this.e=new _6c;this.f=new _6c;this.d=new Osb;this.b=new Osb;this.a=b;this.c=c} +function mib(a){this.e=a;this.d=new Hrb(this.e.g);this.a=this.d;this.b=jib(this);this.$modCount=a.$modCount} +function Ss(a,b,c){var d,e;this.g=a;this.c=b;this.a=this;this.d=this;e=Kp(c);d=KC(BG,Bie,330,e,0,1);this.b=d} +function h4c(a,b){var c,d,e,f,g;for(d=b,e=0,f=d.length;ed?1:0} +function Umd(a){var b,c,d,e;e=hcb(Mmd,a);c=e.length;d=KC(ZI,iie,2,c,6,1);for(b=0;b=0&&a[d]===b[d];d--);return d<0?0:Fbb(wbb(a[d],Tje),wbb(b[d],Tje))?-1:1} +function _tb(a,b){var c;if(b*2+1>=a.b.c.length){return}_tb(a,2*b+1);c=2*b+2;c0){b.td(c);c.i&&WFc(c)}}} +function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} +function wHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return $vb(b-1,a.a.c.length),Jkb(a.a,b-1)}else{throw ubb(new Ipb)}} +function y2c(a,b,c){if(b<0){throw ubb(new pcb(ase+b))}if(bb){throw ubb(new Vdb(ske+a+tke+b))}if(a<0||b>c){throw ubb(new rcb(ske+a+uke+b+jke+c))}} +function f5c(a){if(!a.a||(a.a.i&8)==0){throw ubb(new Ydb('Enumeration class expected for layout option '+a.f))}} +function Gic(a,b,c){if(!a.d[b.p][c.p]){Fic(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 VJd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}eKd(a,b==null?null:(tCb(b),b));!!a.C&&a.xk(null)} +function Wyc(a,b){var c;c=Fsd((bzc(),_yc))!=null&&b.vg()!=null?Ddb(ED(b.vg()))/Ddb(ED(Fsd(_yc))):1;Qhb(a.b,b,c)} +function Ly(a,b){var c;c=vbb(a,b);if(Fbb(Ubb(a,b),0)|Dbb(Ubb(a,c),0)){return c}return vbb(mie,Ubb(Obb(c,63),1))} +function VPd(a){var b;b=(!a.a&&(a.a=new ZTd(f5,a,9,5)),a.a);if(b.i!=0){return iQd(BD(lud(b,0),678))}return null} +function n7c(a){var b,c,d;b=0;d=KC(l1,iie,8,a.b,0,1);c=Isb(a,0);while(c.b!=c.d.c){d[b++]=BD(Wsb(c),8)}return d} +function gkb(a,b){var c,d;c=a.a.length-1;a.c=a.c-1&c;while(b!=a.c){d=b+1&c;NC(a.a,b,a.a[d]);b=d}NC(a.a,a.c,null)} +function hkb(a,b){var c,d;c=a.a.length-1;while(b!=a.b){d=b-1&c;NC(a.a,b,a.a[d]);b=d}NC(a.a,a.b,null);a.b=a.b+1&c} +function Ekb(a,b,c){var d,e;vCb(b,a.c.length);d=c.Pc();e=d.length;if(e==0){return false}aCb(a.c,b,d);return true} +function Glb(a){var b,c,d,e,f;f=1;for(c=a,d=0,e=c.length;de){WZc(b.q,e);d=c!=b.q.d}}return d} +function LVc(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 Mnd(a,b){var c,d;d=eid(a);if(!d){!vnd&&(vnd=new gUd);c=(DEd(),KEd(b));d=new n0d(c);rtd(d.Uk(),a)}return d} +function f7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw ubb(new ttb)}b=a.a;a.a+=a.c.c;++a.b;return leb(b)} +function ukb(a){var b;rCb(a.a!=a.b);b=a.d.a[a.a];lkb(a.b==a.d.c&&b!=null);a.c=a.a;a.a=a.a+1&a.d.a.length-1;return b} +function Mgb(a){var b;if(a.c!=0){return a.c}for(b=0;bNqe?a-c>Nqe:c-a>Nqe} +function Gv(b,c){Qb(b);try{return b._b(c)}catch(a){a=tbb(a);if(JD(a,205)||JD(a,173)){return false}else throw ubb(a)}} +function Ck(b,c){Qb(b);try{return b.Hc(c)}catch(a){a=tbb(a);if(JD(a,205)||JD(a,173)){return false}else throw ubb(a)}} +function Dk(b,c){Qb(b);try{return b.Mc(c)}catch(a){a=tbb(a);if(JD(a,205)||JD(a,173)){return false}else throw ubb(a)}} +function xC(a){rC();throw ubb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} +function Dm(a){var b;switch(a.gc()){case 0:return hm;case 1:return new my(Qb(a.Xb(0)));default:b=a;return new ux(b);}} +function Vn(a){Ql();switch(a.gc()){case 0:return yx(),xx;case 1:return new oy(a.Kc().Pb());default:return new zx(a);}} +function Up(a){Ql();switch(a.c){case 0:return yx(),xx;case 1:return new oy(qr(new Fqb(a)));default:return new Tp(a);}} +function Ekd(a,b){switch(b){case 1:!a.n&&(a.n=new ZTd(C2,a,1,7));Pxd(a.n);return;case 2:Gkd(a,null);return;}akd(a,b)} +function t6c(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 u6c(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 UZc(a){var b,c,d;d=0;for(c=new nlb(a.a);c.a0){c=BD(Hkb(a.a,a.a.c.length-1),570);if(MYb(c,b)){return}}Dkb(a.a,new OYb(b))} +function Zgc(a){Ggc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Gkb(c.b,new rhc(b));Gkb(c.c,new thc(b));qeb(c.i,new vhc(b))} +function fic(a){var b;b=new Tfb;b.a+='VerticalSegment ';Ofb(b,a.e);b.a+=' ';Pfb(b,Eb(new Gb,new nlb(a.k)));return b.a} +function q4c(a){var b;b=BD(Vrb(a.c.c,''),229);if(!b){b=new S3c(_3c($3c(new a4c,''),'Other'));Wrb(a.c.c,'',b)}return b} +function lnd(a){var b;if((a.Db&64)!=0)return zid(a);b=new Ifb(zid(a));b.a+=' (name: ';Dfb(b,a.zb);b.a+=')';return b.a} +function End(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new iSd(a,1,4,e,b);!c?(c=d):c.Di(d)}return c} +function $ic(a,b){var c,d,e;c=0;for(e=U_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=uNb(d,(utc(),etc))!=null?1:0}return c} +function rPc(a,b,c){var d,e,f;d=0;for(f=Isb(a,0);f.b!=f.d.c;){e=Ddb(ED(Wsb(f)));if(e>c){break}else e>=b&&++d}return d} +function MTd(a,b,c){var d,e;d=new kSd(a.e,3,13,null,(e=b.c,e?e:(eGd(),TFd)),CLd(a,b),false);!c?(c=d):c.Di(d);return c} +function NTd(a,b,c){var d,e;d=new kSd(a.e,4,13,(e=b.c,e?e:(eGd(),TFd)),null,CLd(a,b),false);!c?(c=d):c.Di(d);return c} +function uId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new iSd(a,1,8,e,a.r);!c?(c=d):c.Di(d)}return c} +function j1d(a,b){var c,d;c=BD(b,676);d=c.uk();!d&&c.vk(d=JD(b,88)?new x1d(a,BD(b,26)):new J1d(a,BD(b,148)));return d} +function fud(a,b,c){var d;a.pi(a.i+1);d=a.ni(b,c);b!=a.i&&Zfb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.ai(b,c);a.bi()} +function uwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Vfb(a.d)):Pfb(a.a,a.b);Nfb(a.a,b.a,b.d.length,c)}return a} +function W_d(a,b){var c,d,e,f;b.ui(a.a);f=BD(vjd(a.a,8),1935);if(f!=null){for(c=f,d=0,e=c.length;d=d||b>1;a.k=c-1>>1} +function _hd(a,b,c){if(b<0){qid(a,c)}else{if(!c.Hj()){throw ubb(new Vdb(ete+c.ne()+fte))}BD(c,66).Mj().Uj(a,a.xh(),b)}} +function wCb(a,b,c){if(a<0||b>c){throw ubb(new pcb(ske+a+uke+b+', size: '+c))}if(a>b){throw ubb(new Vdb(ske+a+tke+b))}} +function wId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,2,c,b))} +function _Kd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,8,c,b))} +function xId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,3,c,b))} +function aLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,9,c,b))} +function GPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,8,c,b))} +function JQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new iSd(a,1,5,e,a.a);!c?(c=d):Lwd(c,d)}return c} +function LHd(a){var b;if((a.Db&64)!=0)return zid(a);b=new Ifb(zid(a));b.a+=' (source: ';Dfb(b,a.d);b.a+=')';return b.a} +function leb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(neb(),meb)[b];!c&&(c=meb[b]=new $db(a));return c}return new $db(a)} +function Veb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Xeb(),Web)[b];!c&&(c=Web[b]=new Peb(a));return c}return new Peb(a)} +function QOd(a,b){var c,d;for(d=new Ayd(a);d.e!=d.i.gc();){c=BD(yyd(d),26);if(PD(b)===PD(c)){return true}}return false} +function tJb(a){pJb();var b,c,d,e;for(c=vJb(),d=0,e=c.length;dd)throw ubb(new xyd(b,d));if(a.gi()&&a.Hc(c)){throw ubb(new Vdb(fue))}a.Wh(b,c)} +function Q2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Oje)!=0?new n4d(b,a):new k4d(b,a);for(d=0;d=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 Jdb(a,b){if(ab){return 1}if(a==b){return a==0?Jdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} +function aLb(a,b){switch(a.b.g){case 0:case 1:return b;case 2:case 3:return new F6c(b.d,0,b.a,b.b);default:return null;}} +function dad(a){switch(a.g){case 2:return Z9c;case 1:return Y9c;case 4:return X9c;case 3:return _9c;default:return $9c;}} +function zPc(a){switch(a){case 0:return new KPc;case 1:return new APc;case 2:return new FPc;default:throw ubb(new Udb);}} +function Qcd(a){switch(a.g){case 1:return Ocd;case 2:return vcd;case 3:return ucd;case 4:return Mcd;default:return Ncd;}} +function Rcd(a){switch(a.g){case 1:return Mcd;case 2:return Ocd;case 3:return vcd;case 4:return ucd;default:return Ncd;}} +function Scd(a){switch(a.g){case 1:return ucd;case 2:return Mcd;case 3:return Ocd;case 4:return vcd;default:return Ncd;}} +function a5b(a){switch(BD(uNb(a,(utc(),Msc)),303).g){case 1:xNb(a,Msc,(csc(),_rc));break;case 2:xNb(a,Msc,(csc(),bsc));}} +function Rxd(a,b,c){var d,e;if(a.dj()){e=a.ej();d=nud(a,b,c);a.Zi(a.Yi(7,leb(c),d,b,e));return d}else{return nud(a,b,c)}} +function qAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Rh();d=(c&Jhe)%a.d.length;FAd(a,d,sAd(a,d,c,e))}} +function UId(a,b){var c;c=(a.Bb&xve)!=0;b?(a.Bb|=xve):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,10,c,b))} +function $Id(a,b){var c;c=(a.Bb&Mje)!=0;b?(a.Bb|=Mje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,12,c,b))} +function _Id(a,b){var c;c=(a.Bb&yve)!=0;b?(a.Bb|=yve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,15,c,b))} +function aJd(a,b){var c;c=(a.Bb&zve)!=0;b?(a.Bb|=zve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new lSd(a,1,11,c,b))} +function koc(a){var b;if(!a.a){throw ubb(new Ydb('Cannot offset an unassigned cut.'))}b=a.c-a.b;a.b+=b;moc(a,b);noc(a,b)} +function eqd(a,b){var c;c=Nhb(a.k,b);if(c==null){throw ubb(new Zpd('Port did not exist in input.'))}Tqd(b,c);return null} +function f6d(a){var b,c;for(c=g6d(YJd(a)).Kc();c.Ob();){b=GD(c.Pb());if(ymd(a,b)){return pFd((oFd(),nFd),b)}}return null} +function i3d(a,b){var c,d,e,f,g;g=N6d(a.e.Sg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Pje&Xie;b[1]=(a&1023)+56320&Xie;return yfb(b,0,b.length)} +function aad(){aad=bcb;$9c=new ead(jle,0);Z9c=new ead(fle,1);Y9c=new ead(ele,2);X9c=new ead(qle,3);_9c=new ead('UP',4)} +function wad(){wad=bcb;vad=new xad(jle,0);tad=new xad('POLYLINE',1);sad=new xad('ORTHOGONAL',2);uad=new xad('SPLINES',3)} +function dbd(){dbd=bcb;bbd=new ebd('INHERIT',0);abd=new ebd('INCLUDE_CHILDREN',1);cbd=new ebd('SEPARATE_CHILDREN',2)} +function U$c(){U$c=bcb;R$c=new V$c('P1_STRUCTURE',0);S$c=new V$c('P2_PROCESSING_ORDER',1);T$c=new V$c('P3_EXECUTION',2)} +function vYc(){vYc=bcb;tYc=new wYc('ASPECT_RATIO_DRIVEN',0);uYc=new wYc('MAX_SCALE_DRIVEN',1);sYc=new wYc('AREA_DRIVEN',2)} +function QXb(){QXb=bcb;PXb=new RXb(Xme,0);OXb=new RXb('INSIDE_PORT_SIDE_GROUPS',1);NXb=new RXb('FORCE_MODEL_ORDER',2)} +function e4b(a,b){Jdd(b,'Sort end labels',1);LAb(IAb(KAb(new XAb(null,new Jub(a.b,16)),new p4b),new r4b),new t4b);Ldd(b)} +function Tzb(a){if(a.c){Tzb(a.c)}else if(a.d){throw ubb(new Ydb("Stream already terminated, can't be modified or used"))}} +function qec(a){switch(BD(uNb(a,(Lyc(),Qwc)),218).g){case 1:return new Emc;case 3:return new vnc;default:return new ymc;}} +function _$b(a){var b,c;c=BD(uNb(a,(Lyc(),Jwc)),103);if(c==(aad(),$9c)){b=Ddb(ED(uNb(a,mwc)));return b>=1?Z9c:X9c}return c} +function oqb(a){var b,c,d,e;c=(b=BD(fdb((d=a.fm,e=d.f,e==CI?d:e)),9),new wqb(b,BD($Bb(b,b.length),9),0));qqb(c,a);return c} +function stb(a,b,c,d){var e,f;tCb(d);tCb(c);e=a.xc(b);f=e==null?c:Lyb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} +function cDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Hkb(b,d.p),14))){return d}}return null} +function Zsd(a,b,c){var d,e;d=(Ahd(),e=new skd,e);qkd(d,b);rkd(d,c);!!a&&rtd((!a.a&&(a.a=new sMd(x2,a,5)),a.a),d);return d} +function Crb(a,b,c){var d;d=a.a.get(b);a.a.set(b,c===undefined?null:c);if(d===undefined){++a.c;ypb(a.b)}else{++a.d}return d} +function Hkd(a){var b;if((a.Db&64)!=0)return zid(a);b=new Ifb(zid(a));b.a+=' (identifier: ';Dfb(b,a.k);b.a+=')';return b.a} +function N_b(a){var b,c,d;b=new Qkb;for(d=new nlb(a.j);d.a3.4028234663852886E38){return Kje}else if(b<-3.4028234663852886E38){return Lje}return b} +function _db(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 KFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Phe,1,0,5,1);Fkb(a.a,a.b);Fkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} +function AZc(a,b){a.n.c.length==0&&Dkb(a.n,new RZc(a.s,a.t,a.i));Dkb(a.b,b);MZc(BD(Hkb(a.n,a.n.c.length-1),211),b);CZc(a,b)} +function Xcc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Bcb(DD(uNb(c,(utc(),jtc))))||++e}return e} +function dfc(a,b){var c,d,e;d=sgc(b);e=Ddb(ED(nBc(d,(Lyc(),jyc))));c=$wnd.Math.max(0,e/2-0.5);bfc(b,c,1);Dkb(a,new Cfc(b,c))} +function uOc(a,b){var c,d;c=Isb(a,0);while(c.b!=c.d.c){d=Fdb(ED(Wsb(c)));if(d==b){return}else if(d>b){Xsb(c);break}}Usb(c,b)} +function p4c(a,b){var c,d,e,f,g;c=b.f;Wrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} +function Fub(){yub();var a,b,c;c=xub+++Date.now();a=QD($wnd.Math.floor(c*gke))&ike;b=QD(c-a*hke);this.a=a^1502;this.b=b^fke} +function WUb(a){KUb();return Acb(),FVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&FVb(BD(a.a,81).j,BD(a.b,103))?true:false} +function Jy(a,b){Iy();return My(Lie),$wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))} +function pVc(){pVc=bcb;oVc=new qVc('OVERLAP_REMOVAL',0);mVc=new qVc('COMPACTION',1);nVc=new qVc('GRAPH_SIZE_CALCULATION',2)} +function Atc(){Atc=bcb;ztc=new Btc(Xme,0);vtc=new Btc('FIRST',1);wtc=new Btc(Bne,2);xtc=new Btc('LAST',3);ytc=new Btc(Cne,4)} +function Kjc(a){if(a.k!=(i0b(),g0b)){return false}return EAb(new XAb(null,new Kub(new Sr(ur(T_b(a).a.Kc(),new Sq)))),new Ljc)} +function HEd(a){if(a.e==null){return a}else !a.c&&(a.c=new IEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} +function VC(a,b){if(a.h==Bje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} +function ecb(a){var b;if(Array.isArray(a)&&a.hm===fcb){return gdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} +function ag(a){var b;if(a.b){ag(a.b);if(a.b.d!=a.c){throw ubb(new zpb)}}else if(a.d.dc()){b=BD(a.f.c.xc(a.e),14);!!b&&(a.d=b)}} +function $hd(a,b,c,d){if(b<0){pid(a,c,d)}else{if(!c.Hj()){throw ubb(new Vdb(ete+c.ne()+fte))}BD(c,66).Mj().Sj(a,a.xh(),b,d)}} +function wFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw ubb(new Vdb('Node '+b+' not part of edge '+a))}} +function Skd(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 zkd(a,b,c,d)} +function Ucd(a){Pcd();switch(a.g){case 4:return vcd;case 1:return ucd;case 3:return Mcd;case 2:return Ocd;default:return Ncd;}} +function aFd(a){var b;if(a==null)return true;b=a.length;return b>0&&(ACb(b-1,a.length),a.charCodeAt(b-1)==58)&&!JEd(a,xEd,yEd)} +function JEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()} +function ICd(a,b){GCd();var c,d,e,f;d=FLd(a);e=b;Jlb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} +function Ctd(a){var b,c,d;d=new Gfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&m$c(this.c,this.b,this.a)} +function czc(a){bzc();this.c=Ou(OC(GC(g0,1),Phe,830,0,[Syc]));this.b=new Kqb;this.a=a;Qhb(this.b,_yc,1);Gkb(azc,new Sed(this))} +function o3c(a){l3c();if(BD(a.We((U9c(),Z8c)),174).Hc((Ddd(),Bdd))){BD(a.We(t9c),174).Fc((mcd(),lcd));BD(a.We(Z8c),174).Mc(Bdd)}} +function Jgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Kgb(a,c.a)}return false} +function E2c(a,b){var c;if(a.d){if(Lhb(a.b,b)){return BD(Nhb(a.b,b),51)}else{c=b.Kf();Qhb(a.b,b,c);return c}}else{return b.Kf()}} +function qyb(a){var b,c;if(a.b){return a.b}c=kyb?null:a.d;while(c){b=kyb?null:c.b;if(b){return b}c=kyb?null:c.d}return Zxb(),Yxb} +function Tkd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Ckd(a,b)} +function cWc(a){switch(a.g){case 0:return new BXc;case 1:return new EXc;default:throw ubb(new Vdb(fre+(a.f!=null?a.f:''+a.g)));}} +function MUc(a){switch(a.g){case 0:return new yXc;case 1:return new IXc;default:throw ubb(new Vdb(yne+(a.f!=null?a.f:''+a.g)));}} +function Z0c(a){switch(a.g){case 0:return new o1c;case 1:return new s1c;default:throw ubb(new Vdb(Ire+(a.f!=null?a.f:''+a.g)));}} +function mWc(a){switch(a.g){case 1:return new OVc;case 2:return new GVc;default:throw ubb(new Vdb(fre+(a.f!=null?a.f:''+a.g)));}} +function iCb(b){var c=b.e;function d(a){if(!a||a.length==0){return ''}return '\t'+a.join('\n\t')} +return c&&(c.stack||d(b[Tie]))} +function N2b(a){var b,c,d;c=a.yg();if(c){b=a.Tg();if(JD(b,160)){d=N2b(BD(b,160));if(d!=null){return d+'.'+c}}return c}return null} +function ze(a,b,c){var d,e;for(e=a.Kc();e.Ob();){d=e.Pb();if(PD(b)===PD(d)||b!=null&&pb(b,d)){c&&e.Qb();return true}}return false} +function uvd(a,b,c){var d,e;++a.j;if(c.dc()){return false}else{for(e=c.Kc();e.Ob();){d=e.Pb();a.Gi(b,a.ni(b,d));++b}return true}} +function yA(a,b,c,d){var e,f;f=c-b;if(f<3){while(f<3){a*=10;++f}}else{e=1;while(f>3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} +function ghb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Lgb(a);if(d==a.d-1){--c;c=c|0}}b-=geb(c);return b} +function ahb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,jje,25,c+1,15,1);d[c]=1<=0;--d){b=c[d];for(e=0;e0){if(b.lengtha.i&&NC(b,a.i,null);return b} +function VEd(a){var b,c,d,e;e=0;for(c=0,d=a.length;c0){a.pj();d=b==null?0:tb(b);e=(d&Jhe)%a.d.length;c=sAd(a,e,d,b);return c!=-1}else{return false}} +function M2d(a,b){var c,d,e,f;f=N6d(a.e.Sg(),b);c=BD(a.g,119);for(e=0;e>1;this.k=b-1>>1} +function nHc(a){this.e=KC(WD,jje,25,a.length,15,1);this.c=KC(rbb,$ke,25,a.length,16,1);this.b=KC(rbb,$ke,25,a.length,16,1);this.f=0} +function q3b(a,b){Jdd(b,'End label post-processing',1);LAb(IAb(KAb(new XAb(null,new Jub(a.b,16)),new v3b),new x3b),new z3b);Ldd(b)} +function Hyd(b,c){b.lj();try{b.d.Vc(b.e++,c);b.f=b.d.j;b.g=-1}catch(a){a=tbb(a);if(JD(a,73)){throw ubb(new zpb)}else throw ubb(a)}} +function whb(a,b,c){var d,e;d=wbb(c,Tje);for(e=0;xbb(d,0)!=0&&e0){a.pj();d=b==null?0:tb(b);e=(d&Jhe)%a.d.length;c=rAd(a,e,d,b);if(c){return c.dd()}}return null} +function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} +function nBc(a,b){var c,d;d=null;if(vNb(a,(Lyc(),oyc))){c=BD(uNb(a,oyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=uNb(P_b(a),b));return d} +function Jzc(a){Gzc();var b;(!a.q?(lmb(),lmb(),jmb):a.q)._b((Lyc(),Axc))?(b=BD(uNb(a,Axc),197)):(b=BD(uNb(P_b(a),Bxc),197));return b} +function IA(a,b){GA();var c,d;c=LA((KA(),KA(),JA));d=null;b==c&&(d=BD(Ohb(FA,a),615));if(!d){d=new HA(a);b==c&&Rhb(FA,a,d)}return d} +function $Jb(a){ZJb();var b;b=new c7c(BD(a.e.We((U9c(),X8c)),8));if(a.B.Hc((Ddd(),wdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} +function w6d(a){if(a.b==null){while(a.a.Ob()){a.b=a.a.Pb();if(!BD(a.b,49).Yg()){return true}}a.b=null;return false}else{return true}} +function N9d(a){var b;return a==null?null:new Xgb((b=Lge(a,true),b.length>0&&(ACb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function O9d(a){var b;return a==null?null:new Xgb((b=Lge(a,true),b.length>0&&(ACb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function Mee(a,b){var c,d;d=b.length;for(c=0;c1?Lbb(Mbb(b.a[1],32),wbb(b.a[0],Tje)):wbb(b.a[0],Tje),Rbb(Hbb(b.e,c))))} +function Gbb(a,b){var c;if(Ebb(a)&&Ebb(b)){c=a%b;if(Fje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,jje,25,e,15,1);ihb(d,a.a,c,b);f=new Ugb(a.e,e,d);Igb(f);return f} +function fUc(a,b){var c,d,e,f;f=b.b.b;a.a=new Osb;a.b=KC(WD,jje,25,f,15,1);c=0;for(e=Isb(b.b,0);e.b!=e.d.c;){d=BD(Wsb(e),86);d.g=c++}} +function ddd(){ddd=bcb;_cd=new p0b(15);$cd=new Jsd((U9c(),b9c),_cd);cdd=new Jsd(P9c,15);bdd=new Jsd(A9c,leb(0));Zcd=new Jsd(n8c,ome)} +function odd(){odd=bcb;mdd=new pdd('PORTS',0);ndd=new pdd('PORT_LABELS',1);ldd=new pdd('NODE_LABELS',2);kdd=new pdd('MINIMUM_SIZE',3)} +function Cz(){var a;if(xz!=0){a=sz();if(a-yz>2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} +function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function ADb(a,b){return Iy(),Iy(),My(Lie),($wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0} +function CDb(a,b){return Iy(),Iy(),My(Lie),($wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0} +function BDb(a,b){return Iy(),Iy(),My(Lie),($wnd.Math.abs(a-b)<=Lie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0} +function xdb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;c=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} +function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(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 yfb(a,b,c){var d,e,f,g;f=b+c;zCb(b,f,a.length);g='';for(e=b;eRje){return c.eh()}d=c.Yg();if(!!d||c==a){break}}}return d} +function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=tbb(a);if(!JD(a,205))throw ubb(a)}}return false} +function avd(a){_ud();if(JD(a,156)){return BD(Nhb(Zud,hK),287).ug(a)}if(Lhb(Zud,rb(a))){return BD(Nhb(Zud,rb(a)),287).ug(a)}return null} +function tjd(a){var b,c;if((a.Db&32)==0){c=(b=BD(vjd(a,16),26),XKd(!b?a.yh():b)-XKd(a.yh()));c!=0&&xjd(a,32,KC(SI,Phe,1,c,5,1))}return a} +function xjd(a,b,c){var d;if((a.Db&b)!=0){if(c==null){wjd(a,b)}else{d=ujd(a,b);d==-1?(a.Eb=c):NC(CD(a.Eb),d,c)}}else c!=null&&qjd(a,b,c)} +function ROc(a,b,c,d){var e,f;if(b.c.length==0){return}e=NOc(c,d);f=MOc(b);LAb(UAb(new XAb(null,new Jub(f,1)),new $Oc),new cPc(a,c,e,d))} +function rJb(a){switch(a.g){case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:return true;default:return false;}} +function bC(f,a){var b=f.a;var c;a=String(a);b.hasOwnProperty(a)&&(c=b[a]);var d=(rC(),qC)[typeof c];var e=d?d(c):xC(typeof c);return e} +function Hgb(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 Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} +function pDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw ubb(new Vdb('Input edge is not connected to the input port.'))} +function aZd(a){if(dfb(gse,a)){return Acb(),zcb}else if(dfb(hse,a)){return Acb(),ycb}else{throw ubb(new Vdb('Expecting true or false'))}} +function IIc(a,b){if(a.eb.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)} +function Z2c(a,b){if(a.a<0){throw ubb(new Ydb('Did not call before(...) or after(...) before calling add(...).'))}e3c(a,a.a,b);return a} +function R1d(a){var b;a.b||S1d(a,(b=c1d(a.e,a.a),!b||!cfb(hse,vAd((!b.b&&(b.b=new nId((eGd(),aGd),w6,b)),b.b),'qualified'))));return a.c} +function $Sd(a,b,c){var d,e,f;d=BD(lud(LSd(a.a),b),87);f=(e=d.c,e?e:(eGd(),TFd));(f.jh()?sid(a.b,BD(f,49)):f)==c?FQd(d):IQd(d,c);return f} +function dkb(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;lkb(c=f){gkb(a,b);return -1}else{hkb(a,b);return 1}} +function lA(a,b){var c,d;c=(ACb(b,a.length),a.charCodeAt(b));d=b+1;while(d0&&xbb(a,128)<0){b=Sbb(a)+128;c=(Beb(),Aeb)[b];!c&&(c=Aeb[b]=new seb(a));return c}return new seb(a)} +function W0d(a,b){var c,d;c=b.Gh(a.a);if(c){d=GD(vAd((!c.b&&(c.b=new nId((eGd(),aGd),w6,c)),c.b),aue));if(d!=null){return d}}return b.ne()} +function X0d(a,b){var c,d;c=b.Gh(a.a);if(c){d=GD(vAd((!c.b&&(c.b=new nId((eGd(),aGd),w6,c)),c.b),aue));if(d!=null){return d}}return b.ne()} +function BMc(a,b){sMc();var c,d;for(d=new Sr(ur(N_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} +function dfb(a,b){tCb(a);if(b==null){return false}if(cfb(a,b)){return true}return a.length==b.length&&cfb(a.toLowerCase(),b.toLowerCase())} +function GUb(a,b,c){this.c=a;this.f=new Qkb;this.e=new _6c;this.j=new HVb;this.n=new HVb;this.b=b;this.g=new F6c(b.c,b.d,b.b,b.a);this.a=c} +function fVb(a){var b,c,d,e;this.a=new ysb;this.d=new Sqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}} +function syb(a,b,c){var d;(iyb?(qyb(a),true):jyb?(Zxb(),true):myb?(Zxb(),true):lyb&&(Zxb(),false))&&(d=new hyb(b),d.b=c,oyb(a,d),undefined)} +function wKb(a,b){var c;c=!a.A.Hc((odd(),ndd))||a.q==(_bd(),Wbd);a.u.Hc((mcd(),icd))?c?uKb(a,b):yKb(a,b):a.u.Hc(kcd)&&(c?vKb(a,b):zKb(a,b))} +function Y_d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Ig():null);if(wlb(b,c)){xjd(a.a,4,c);return}}xjd(a.a,4,BD(b,125))} +function cYb(a,b,c){return new F6c($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 j4b(a,b){var c,d;c=aeb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=aeb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return aeb(b.a.d.p,a.a.d.p)} +function WDc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Jdb(d,e)}} +function GFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new nlb(KFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b} +function $lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b} +function Wrb(a,b,c){var d,e,f;e=BD(Nhb(a.e,b),387);if(!e){d=new ksb(a,b,c);Qhb(a.e,b,d);hsb(d);return null}else{f=hjb(e,c);Xrb(a,e);return f}} +function K9d(a){var b;if(a==null)return null;b=dde(Lge(a,true));if(b==null){throw ubb(new i8d("Invalid hexBinary value: '"+a+"'"))}return b} +function fhb(a){Ggb();if(xbb(a,0)<0){if(xbb(a,-1)!=0){return new Vgb(-1,Ibb(a))}return Agb}else return xbb(a,10)<=0?Cgb[Sbb(a)]:new Vgb(1,a)} +function vJb(){pJb();return OC(GC(DN,1),Fie,159,0,[mJb,lJb,nJb,dJb,cJb,eJb,hJb,gJb,fJb,kJb,jJb,iJb,aJb,_Ib,bJb,ZIb,YIb,$Ib,WIb,VIb,XIb,oJb])} +function ujc(a){var b;this.d=new Qkb;this.j=new _6c;this.g=new _6c;b=a.g.b;this.f=BD(uNb(P_b(b),(Lyc(),Jwc)),103);this.e=Ddb(ED(b_b(b,pyc)))} +function Ojc(a){this.b=new Qkb;this.e=new Qkb;this.d=a;this.a=!VAb(IAb(new XAb(null,new Kub(new a1b(a.b))),new Wxb(new Pjc))).sd((DAb(),CAb))} +function J5c(){J5c=bcb;H5c=new K5c('PARENTS',0);G5c=new K5c('NODES',1);E5c=new K5c('EDGES',2);I5c=new K5c('PORTS',3);F5c=new K5c('LABELS',4)} +function Pbd(){Pbd=bcb;Mbd=new Qbd('DISTRIBUTED',0);Obd=new Qbd('JUSTIFIED',1);Kbd=new Qbd('BEGIN',2);Lbd=new Qbd(ble,3);Nbd=new Qbd('END',4)} +function PMd(a){var b;b=a.xi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} +function bYb(a){switch(a.g){case 1:return aad(),_9c;case 4:return aad(),Y9c;case 2:return aad(),Z9c;case 3:return aad(),X9c;}return aad(),$9c} +function kA(a,b,c){var d;d=c.q.getFullYear()-ije+ije;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} +function Isb(a,b){var c,d;vCb(b,a.b);if(b>=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=64&&b<128&&(e=Lbb(e,Mbb(1,b-64)))}return e} +function b_b(a,b){var c,d;d=null;if(vNb(a,(U9c(),K9c))){c=BD(uNb(a,K9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!P_b(a)&&(d=uNb(P_b(a),b));return d} +function kQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(i0b(),g0b)||d==c0b){return}c=new Sr(ur(T_b(e).a.Kc(),new Sq));Qr(c)&&Qhb(a.k,b,BD(Rr(c),17))} +function hid(a,b){var c,d,e;d=SKd(a.Sg(),b);c=b-a.zh();return c<0?(e=a.Xg(d),e>=0?a.kh(e):oid(a,d)):c<0?oid(a,d):BD(d,66).Mj().Rj(a,a.xh(),c)} +function Fsd(a){var b;if(JD(a.a,4)){b=avd(a.a);if(b==null){throw ubb(new Ydb(ise+a.b+"'. "+ese+(edb(X3),X3.k)+fse))}return b}else{return a.a}} +function G9d(a){var b;if(a==null)return null;b=Yce(Lge(a,true));if(b==null){throw ubb(new i8d("Invalid base64Binary value: '"+a+"'"))}return b} +function yyd(b){var c;try{c=b.i.Xb(b.e);b.lj();b.g=b.e++;return c}catch(a){a=tbb(a);if(JD(a,73)){b.lj();throw ubb(new ttb)}else throw ubb(a)}} +function Uyd(b){var c;try{c=b.c.ji(b.e);b.lj();b.g=b.e++;return c}catch(a){a=tbb(a);if(JD(a,73)){b.lj();throw ubb(new ttb)}else throw ubb(a)}} +function BPb(){BPb=bcb;APb=(U9c(),G9c);uPb=C8c;pPb=n8c;vPb=b9c;yPb=(eFb(),aFb);xPb=$Eb;zPb=cFb;wPb=ZEb;rPb=(mPb(),iPb);qPb=hPb;sPb=kPb;tPb=lPb} +function MWb(a){KWb();this.c=new Qkb;this.d=a;switch(a.g){case 0:case 2:this.a=smb(JWb);this.b=Kje;break;case 3:case 1:this.a=JWb;this.b=Lje;}} +function ped(a,b,c){var d,e;if(a.c){$kd(a.c,a.c.i+b);_kd(a.c,a.c.j+c)}else{for(e=new nlb(a.b);e.a0){Dkb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=xfb(KC(TD,Vie,25,-d,15,1)))}} +function IKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=CKb(d,c.a);d.e.b=c.b*Ddb(ED(d.b.We(AKb)))}} +function R5b(a,b){var c,d,e,f;e=a.k;c=Ddb(ED(uNb(a,(utc(),ftc))));f=b.k;d=Ddb(ED(uNb(b,ftc)));return f!=(i0b(),d0b)?-1:e!=d0b?1:c==d?0:c=0){return a.gh(b,c,d)}else{!!a.dh()&&(d=(e=a.Ug(),e>=0?a.Pg(d):a.dh().hh(a,-1-e,null,d)));return a.Rg(b,c,d)}} +function uld(a,b){switch(b){case 7:!a.e&&(a.e=new t5d(A2,a,7,4));Pxd(a.e);return;case 8:!a.d&&(a.d=new t5d(A2,a,8,5));Pxd(a.d);return;}Vkd(a,b)} +function ekd(a,b,c){c==null?(!a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0)),GAd(a.o,b)):(!a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0)),CAd(a.o,b,c));return a} +function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=tbb(a);if(JD(a,109)){throw ubb(new pcb("Can't get element "+c))}else throw ubb(a)}} +function Sgb(a,b){this.e=a;if(bc.b){return true}}}return false} +function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.gm){return !!a.gm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} +function QMb(){QMb=bcb;NMb=new RMb(sle,0);MMb=new RMb(tle,1);OMb=new RMb(ule,2);PMb=new RMb(vle,3);NMb.a=false;MMb.a=true;OMb.a=false;PMb.a=true} +function QOb(){QOb=bcb;NOb=new ROb(sle,0);MOb=new ROb(tle,1);OOb=new ROb(ule,2);POb=new ROb(vle,3);NOb.a=false;MOb.a=true;OOb.a=false;POb.a=true} +function cac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(Q_b(b).a.Kc(),new Sq))),17).c.i;b.k==(i0b(),f0b)&&a.b.Fc(b)}while(b.k==(i0b(),f0b));a.b=Su(a.b)} +function xDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Skb(d));for(c=new nlb(d);c.a=0?a.$g(g,c,true):nid(a,f,c)):BD(f,66).Mj().Oj(a,a.xh(),e,c,d)} +function iKb(a,b,c,d){var e,f;f=b.Xe((U9c(),S8c))?BD(b.We(S8c),21):a.j;e=tJb(f);if(e==(pJb(),oJb)){return}if(c&&!rJb(e)){return}THb(kKb(a,e,d),b)} +function G3b(a){switch(a.g){case 1:return uLb(),tLb;case 3:return uLb(),qLb;case 2:return uLb(),sLb;case 4:return uLb(),rLb;default:return null;}} +function jCb(a){switch(typeof(a)){case Hhe:return KCb(a);case Ghe:return QD(a);case Fhe:return Acb(),a?1231:1237;default:return a==null?0:ECb(a);}} +function Fic(a,b,c){if(a.e){switch(a.b){case 1:nic(a.c,b,c);break;case 0:oic(a.c,b,c);}}else{lic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} +function hHc(a){var b,c;if(a==null){return null}c=KC(OQ,iie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Ek()){for(d=0;d=e)throw ubb(new xyd(b,e));if(a.gi()){d=a.Xc(c);if(d>=0&&d!=b){throw ubb(new Vdb(fue))}}return a.li(b,c)} +function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw ubb(new Vdb('Invalid range: '+nx(a,b)))}} +function lYb(a){var b,c;this.b=new Qkb;this.c=a;this.a=false;for(c=new nlb(a.a);c.a0);if((b&-b)==b){return QD(b*Bub(a,31)*4.6566128730773926E-10)}do{c=Bub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} +function KCb(a){ICb();var b,c,d;c=':'+a;d=HCb[c];if(d!=null){return QD((tCb(d),d))}d=FCb[c];b=d==null?JCb(a):QD((tCb(d),d));LCb();HCb[c]=b;return b} +function pZb(a,b,c){Jdd(c,'Compound graph preprocessor',1);a.a=new Hp;uZb(a,b,null);oZb(a,b);tZb(a);xNb(b,(utc(),xsc),a.a);a.a=null;Thb(a.b);Ldd(c)} +function W$b(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 skc(a){var b,c,d;for(d=BD(Qc(a.a,(Wjc(),Ujc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Akc(c);jkc(a,c,b[0],(Ekc(),Bkc),0);jkc(a,c,b[1],Dkc,1)}} +function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Wjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Akc(c);jkc(a,c,b[0],(Ekc(),Bkc),0);jkc(a,c,b[1],Dkc,1)}} +function pXc(a){switch(a.g){case 0:return null;case 1:return new WXc;case 2:return new MXc;default:throw ubb(new Vdb(fre+(a.f!=null?a.f:''+a.g)));}} +function KZc(a,b,c){var d,e;BZc(a,b-a.s,c-a.t);for(e=new nlb(a.n);e.a1&&(f=FFb(a,b));return f} +function $ld(a){var b;if(!!a.f&&a.f.jh()){b=BD(a.f,49);a.f=BD(sid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,9,8,b,a.f))}return a.f} +function _ld(a){var b;if(!!a.i&&a.i.jh()){b=BD(a.i,49);a.i=BD(sid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,9,7,b,a.i))}return a.i} +function uUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(sid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,9,21,b,a.b))}return a.b} +function pAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Rh();wAd(a,a.f+1);e=(d&Jhe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.tj());c.Fc(b);++a.f}} +function h3d(a,b,c){var d;if(b.Jj()){return false}else if(b.Yj()!=-2){d=b.yj();return d==null?c==null:pb(d,c)}else return b.Gj()==a.e.Sg()&&c==null} +function wo(){var a;Xj(16,Cie);a=Kp(16);this.b=KC(GF,Bie,317,a,0,1);this.c=KC(GF,Bie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} +function a0b(a){m_b.call(this);this.k=(i0b(),g0b);this.j=(Xj(6,Eie),new Rkb(6));this.b=(Xj(2,Eie),new Rkb(2));this.d=new K_b;this.f=new r0b;this.a=a} +function Rcc(a){var b,c;if(a.c.length<=1){return}b=Occ(a,(Pcd(),Mcd));Qcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Occ(a,Ocd);Qcc(a,BD(c.a,19).a,BD(c.b,19).a)} +function Tzc(){Tzc=bcb;Szc=new Vzc('SIMPLE',0);Pzc=new Vzc(One,1);Qzc=new Vzc('LINEAR_SEGMENTS',2);Ozc=new Vzc('BRANDES_KOEPF',3);Rzc=new Vzc(wqe,4)} +function SDc(a,b,c){if(!acd(BD(uNb(b,(Lyc(),Txc)),98))){RDc(a,b,X_b(b,c));RDc(a,b,X_b(b,(Pcd(),Mcd)));RDc(a,b,X_b(b,vcd));lmb();Nkb(b.j,new eEc(a))}} +function DVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(xVc(a,c,f)){return true}}return false} +function AMd(a){var b,c;for(c=new Ayd(a);c.e!=c.i.gc();){b=BD(yyd(c),87);if(!!b.e||(!b.d&&(b.d=new sMd(i5,b,1)),b.d).i!=0){return true}}return false} +function LTd(a){var b,c;for(c=new Ayd(a);c.e!=c.i.gc();){b=BD(yyd(c),87);if(!!b.e||(!b.d&&(b.d=new sMd(i5,b,1)),b.d).i!=0){return true}}return false} +function ADc(a){var b,c,d;b=0;for(d=new nlb(a.c.a);d.a102)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 Wj(a,b){if(a==null){throw ubb(new Geb('null key in entry: null='+b))}else if(b==null){throw ubb(new Geb('null value in entry: '+a+'=null'))}} +function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} +function iIb(a,b){var c;c=OC(GC(UD,1),Qje,25,15,[oHb(a.a[0],b),oHb(a.a[1],b),oHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function jIb(a,b){var c;c=OC(GC(UD,1),Qje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function eUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Isb(b.d,0);d.b!=d.d.c;){c=BD(Wsb(d),188);e=c.c;a.b[e.g]==1?Csb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):eUc(a,e)}} +function U9b(a,b){var c,d,e;e=new Rkb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),285);c.c==c.f?J9b(a,c,c.c):K9b(a,c)||(e.c[e.c.length]=c,true)}return e} +function EZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new nlb(a.n);g.af&&NC(b,f,null);return b} +function Lu(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 Toc(a){var b,c,d;d=a.f;a.n=KC(UD,Qje,25,d,15,1);a.d=KC(UD,Qje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f} +function xZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new nlb(b);g.a0?a.g:0);++c}a.c=e;a.d=d} +function zHb(a,b){var c;c=OC(GC(UD,1),Qje,25,15,[yHb(a,(fHb(),cHb),b),yHb(a,dHb,b),yHb(a,eHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function kNb(b,c,d){var e;try{_Mb(b,c+b.j,d+b.k,false,true)}catch(a){a=tbb(a);if(JD(a,73)){e=a;throw ubb(new pcb(e.g+Ble+c+Nhe+d+').'))}else throw ubb(a)}} +function lNb(b,c,d){var e;try{_Mb(b,c+b.j,d+b.k,true,false)}catch(a){a=tbb(a);if(JD(a,73)){e=a;throw ubb(new pcb(e.g+Ble+c+Nhe+d+').'))}else throw ubb(a)}} +function c5b(a){var b;if(!vNb(a,(Lyc(),vxc))){return}b=BD(uNb(a,vxc),21);if(b.Hc((Dbd(),vbd))){b.Mc(vbd);b.Fc(xbd)}else if(b.Hc(xbd)){b.Mc(xbd);b.Fc(vbd)}} +function d5b(a){var b;if(!vNb(a,(Lyc(),vxc))){return}b=BD(uNb(a,vxc),21);if(b.Hc((Dbd(),Cbd))){b.Mc(Cbd);b.Fc(Abd)}else if(b.Hc(Abd)){b.Mc(Abd);b.Fc(Cbd)}} +function tdc(a,b,c){Jdd(c,'Self-Loop ordering',1);LAb(MAb(IAb(IAb(KAb(new XAb(null,new Jub(b.b,16)),new xdc),new zdc),new Bdc),new Ddc),new Fdc(a));Ldd(c)} +function hkc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e} +function FXb(a,b){var c,d,e;e=new _6c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);tXb(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 c_b(a){var b,c,d;d=Jhe;for(c=new nlb(a.a);c.a>16==6){return a.Cb.hh(a,5,n5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?a.yh():c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function Wz(a){Rz();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 ieb(a){var b;b=(peb(),oeb);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 $jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=feb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=$Bb(a.a,c);Zjb(a,b,d);a.a=b;a.b=0}else{cCb(a.a,c)}a.c=d} +function CKb(a,b){var c;c=a.b;return c.Xe((U9c(),o9c))?c.Hf()==(Pcd(),Ocd)?-c.rf().a-Ddb(ED(c.We(o9c))):b+Ddb(ED(c.We(o9c))):c.Hf()==(Pcd(),Ocd)?-c.rf().a:b} +function O_b(a){var b;if(a.b.c.length!=0&&!!BD(Hkb(a.b,0),70).a){return BD(Hkb(a.b,0),70).a}b=IZb(a);if(b!=null){return b}return ''+(!a.c?-1:Ikb(a.c.a,a,0))} +function B0b(a){var b;if(a.f.c.length!=0&&!!BD(Hkb(a.f,0),70).a){return BD(Hkb(a.f,0),70).a}b=IZb(a);if(b!=null){return b}return ''+(!a.i?-1:Ikb(a.i.j,a,0))} +function Ngc(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 nhd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).zg().i);for(c=new Ayd(BD(a.f,118).zg());c.e!=c.i.gc();){b=BD(yyd(c),137);Dkb(a.b,new $gd(b))}}return a.b} +function xtd(a,b){var c,d,e;if(b.dc()){return GCd(),GCd(),FCd}else{c=new uyd(a,b.gc());for(e=new Ayd(a);e.e!=e.i.gc();){d=yyd(e);b.Hc(d)&&rtd(c,d)}return c}} +function Yjd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0)),a.o):(!a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0)),AAd(a.o))}return aid(a,b,c,d)} +function Ond(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&zje;a.m=d&zje;a.h=e&Aje;return true} +function Ewb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} +function Vcc(a,b){Ncc();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Xcc(b,Mcc)-Xcc(a,Mcc);case 4:return Xcc(a,Lcc)-Xcc(b,Lcc);}return 0} +function Rqc(a){switch(a.g){case 0:return Kqc;case 1:return Lqc;case 2:return Mqc;case 3:return Nqc;case 4:return Oqc;case 5:return Pqc;default:return null;}} +function znd(a,b,c){var d,e;d=(e=new mUd,tId(e,b),knd(e,c),rtd((!a.c&&(a.c=new ZTd(o5,a,12,10)),a.c),e),e);vId(d,0);yId(d,1);xId(d,true);wId(d,true);return d} +function oud(a,b){var c,d;if(b>=a.i)throw ubb(new Vzd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&Zfb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.ei(b,c);a.bi();return c} +function PId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.hh(a,21,b5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?a.yh():c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function hDb(a){var b,c,d,e;lmb();Nkb(a.c,a.a);for(e=new nlb(a.c);e.ac.a.c.length)){throw ubb(new Vdb('index must be >= 0 and <= layer node count'))}!!a.c&&Kkb(a.c.a,a);a.c=c;!!c&&Ckb(c.a,b,a)} +function o7b(a,b){var c,d,e;for(d=new Sr(ur(N_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} +function nMc(a,b){this.c=new Kqb;this.a=a;this.b=b;this.d=BD(uNb(a,(utc(),mtc)),304);PD(uNb(a,(Lyc(),wxc)))===PD((Zqc(),Xqc))?(this.e=new ZMc):(this.e=new SMc)} +function Vdd(a,b){var c,d,e,f;f=0;for(d=new nlb(a);d.a>16==6){return a.Cb.hh(a,6,A2,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(Ohd(),Ghd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function zod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.hh(a,1,B2,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(Ohd(),Ihd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function gpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.hh(a,9,D2,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(Ohd(),Khd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function hQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.hh(a,9,g5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(eGd(),QFd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function Nnd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.hh(a,6,n5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(eGd(),ZFd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function FHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.hh(a,0,j5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(eGd(),JFd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function drd(){this.a=new Ypd;this.g=new wo;this.j=new wo;this.b=new Kqb;this.d=new wo;this.i=new wo;this.k=new Kqb;this.c=new Kqb;this.e=new Kqb;this.f=new Kqb} +function HCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eRje){return k6d(a,d)}if(d==a){return true}}}return false} +function GKb(a){BKb();switch(a.q.g){case 5:DKb(a,(Pcd(),vcd));DKb(a,Mcd);break;case 4:EKb(a,(Pcd(),vcd));EKb(a,Mcd);break;default:FKb(a,(Pcd(),vcd));FKb(a,Mcd);}} +function KKb(a){BKb();switch(a.q.g){case 5:HKb(a,(Pcd(),ucd));HKb(a,Ocd);break;case 4:IKb(a,(Pcd(),ucd));IKb(a,Ocd);break;default:JKb(a,(Pcd(),ucd));JKb(a,Ocd);}} +function WQb(a){var b,c;b=BD(uNb(a,(vSb(),oSb)),19);if(b){c=b.a;c==0?xNb(a,(GSb(),FSb),new Fub):xNb(a,(GSb(),FSb),new Gub(c))}else{xNb(a,(GSb(),FSb),new Gub(1))}} +function U$b(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 gbc(a,b){switch(a.g){case 0:return b==(Atc(),wtc)?cbc:dbc;case 1:return b==(Atc(),wtc)?cbc:bbc;case 2:return b==(Atc(),wtc)?bbc:dbc;default:return bbc;}} +function r$c(a,b){var c,d,e;Kkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=are;for(d=new nlb(a.a);d.a>16==3){return a.Cb.hh(a,12,D2,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(Ohd(),Fhd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function Pod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.hh(a,10,D2,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(Ohd(),Jhd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function KSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.hh(a,11,b5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(eGd(),XFd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function lUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.hh(a,12,m5,b)}return d=uUd(BD(SKd((c=BD(vjd(a,16),26),!c?(eGd(),$Fd):c),a.Db>>16),18)),a.Cb.hh(a,d.n,d.f,b)} +function rId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.jh()){b=BD(a.r,49);a.r=BD(sid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,9,8,b,a.r))}return a.r} +function xHb(a,b,c){var d;d=OC(GC(UD,1),Qje,25,15,[AHb(a,(fHb(),cHb),b,c),AHb(a,dHb,b,c),AHb(a,eHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} +function N9b(a,b){var c,d,e;e=U9b(a,b);if(e.c.length==0){return}Nkb(e,new oac);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 eFb(){eFb=bcb;dFb=(qFb(),nFb);cFb=new Isd(Tke,dFb);bFb=(TEb(),SEb);aFb=new Isd(Uke,bFb);_Eb=(LEb(),KEb);$Eb=new Isd(Vke,_Eb);ZEb=new Isd(Wke,(Acb(),true))} +function bfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=tgc(a);if(e.f.d){e.f.a||(a.d.a+=d+kle)}else{a.d.d-=d+kle;a.d.a+=d+kle}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} +function umc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new nlb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e} +function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Bie,317,c,0,1);a.c=KC(GF,Bie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} +function bNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);U6c(a,$wnd.Math.min(h,i));return a} +function jnd(){Nmd();var b,c;try{c=BD(hUd((tFd(),sFd),ute),2013);if(c){return c}}catch(a){a=tbb(a);if(JD(a,102)){b=a;pvd((c0d(),b))}else throw ubb(a)}return new fnd} +function T9d(){v9d();var b,c;try{c=BD(hUd((tFd(),sFd),Awe),2023);if(c){return c}}catch(a){a=tbb(a);if(JD(a,102)){b=a;pvd((c0d(),b))}else throw ubb(a)}return new P9d} +function lZd(){Nmd();var b,c;try{c=BD(hUd((tFd(),sFd),Xve),1940);if(c){return c}}catch(a){a=tbb(a);if(JD(a,102)){b=a;pvd((c0d(),b))}else throw ubb(a)}return new hZd} +function CQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new iSd(a,1,4,e,b);!c?(c=d):c.Di(d)}e!=b&&(b?(c=LQd(a,HQd(a,b),c)):(c=LQd(a,a.a,c)));return c} +function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Mie;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=Mie} +function pEb(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=Jdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function dOb(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=Jdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function OVb(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=Jdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function YTb(){YTb=bcb;VTb=$2c(a3c(a3c(a3c(new f3c,(pUb(),nUb),(R8b(),l8b)),nUb,p8b),oUb,w8b),oUb,_7b);XTb=a3c(a3c(new f3c,nUb,R7b),nUb,a8b);WTb=$2c(new f3c,oUb,c8b)} +function r3b(a){var b,c,d,e,f;b=BD(uNb(a,(utc(),Asc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?UHb(c):WHb(c)}xNb(a,Asc,null)} +function pmc(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 xXc(a){var b,c,d,e,f;d=0;e=$le;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;vXc(a,a.d,0,0,_qe,c);f=a.b.hg(a.d);if(f0){g=(f&Jhe)%a.d.length;e=rAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.sj(f,b,c);a.c.Fc(d);return null} +function o1d(a,b){var c,d,e,f;switch(j1d(a,b).$k()){case 3:case 2:{c=JKd(b);for(e=0,f=c.i;e=0;d--){if(cfb(a[d].d,b)||cfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function zbb(a,b){var c;if(Ebb(a)&&Ebb(b)){c=a/b;if(Fje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} +function Mpd(a,b){var c,d;d=false;if(ND(b)){d=true;Lpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Lpd(a,(c=Jcb(BD(b,236)),new TB(c)))}}if(!d){throw ubb(new ucb(Pte))}} +function DMd(a,b,c,d){var e,f,g;e=new kSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(eGd(),WFd)),(f=c.c,JD(f,88)?BD(f,26):(eGd(),WFd)),CLd(a,b),false);!d?(d=e):d.Di(e);return d} +function S_b(a){var b,c;switch(BD(uNb(P_b(a),(Lyc(),gxc)),421).g){case 0:b=a.n;c=a.o;return new b7c(b.a+c.a/2,b.b+c.b/2);case 1:return new c7c(a.n);default:return null;}} +function jrc(){jrc=bcb;grc=new krc(Xme,0);frc=new krc('LEFTUP',1);irc=new krc('RIGHTUP',2);erc=new krc('LEFTDOWN',3);hrc=new krc('RIGHTDOWN',4);drc=new krc('BALANCED',5)} +function AFc(a,b,c){var d,e,f;d=Jdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(uNb(b,(utc(),Osc)),15);f=BD(uNb(c,Osc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} +function fXc(a){switch(a.g){case 1:return new TVc;case 2:return new VVc;case 3:return new RVc;case 0:return null;default:throw ubb(new Vdb(fre+(a.f!=null?a.f:''+a.g)));}} +function Dkd(a,b,c){switch(b){case 1:!a.n&&(a.n=new ZTd(C2,a,1,7));Pxd(a.n);!a.n&&(a.n=new ZTd(C2,a,1,7));ttd(a.n,BD(c,14));return;case 2:Gkd(a,GD(c));return;}_jd(a,b,c)} +function Ukd(a,b,c){switch(b){case 3:Xkd(a,Ddb(ED(c)));return;case 4:Zkd(a,Ddb(ED(c)));return;case 5:$kd(a,Ddb(ED(c)));return;case 6:_kd(a,Ddb(ED(c)));return;}Dkd(a,b,c)} +function And(a,b,c){var d,e,f;f=(d=new mUd,d);e=sId(f,b,null);!!e&&e.Ei();knd(f,c);rtd((!a.c&&(a.c=new ZTd(o5,a,12,10)),a.c),f);vId(f,0);yId(f,1);xId(f,true);wId(f,true)} +function hUd(a,b){var c,d,e;c=Brb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Ph()==null&&undefined;return e.Mh()}else if(JD(c,498)){d=BD(c,1937);e=d.b;return e}else{return null}} +function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} +function JC(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=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(o6d(a,f))}else{e.Wb(n6d(a,BD(i,56)))}}}} +function Ybb(b,c,d,e){Xbb();var f=Vbb;$moduleName=c;$moduleBase=d;sbb=e;function g(){for(var a=0;aKqe){return c}else e>-1.0E-6&&++c}return c} +function KQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=gid(a.b,a,-4,c));!!b&&(c=fid(b,a,-4,c));c=BQd(a,b,c);!!c&&c.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,3,b,b))} +function NQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=gid(a.f,a,-1,c));!!b&&(c=fid(b,a,-1,c));c=DQd(a,b,c);!!c&&c.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,0,b,b))} +function z9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Gfb;for(b=c.Kc();b.Ob();){Dfb(d,(L8d(),GD(b.Pb())));d.a+=' '}return kcb(d,d.a.length-1)} +function D9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Gfb;for(b=c.Kc();b.Ob();){Dfb(d,(L8d(),GD(b.Pb())));d.a+=' '}return kcb(d,d.a.length-1)} +function lEc(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 Cdb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} +function uqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Tge(f);for(h=(c.b-c.a)*c.c<0?(Sge(),Rge):new nhe(c);h.Ob();){g=BD(h.Pb(),19);e=Upd(b,g.a);d=new xrd(a);vqd(d.a,e)}}} +function Lqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Tge(f);for(h=(c.b-c.a)*c.c<0?(Sge(),Rge):new nhe(c);h.Ob();){g=BD(h.Pb(),19);e=Upd(b,g.a);d=new grd(a);iqd(d.a,e)}}} +function _Ed(b){var c;if(b!=null&&b.length>0&&afb(b,b.length-1)==33){try{c=KEd(pfb(b,0,b.length-1));return c.e==null}catch(a){a=tbb(a);if(!JD(a,32))throw ubb(a)}}return false} +function c3d(a,b,c){var d,e,f;d=b._j();f=b.dd();e=d.Zj()?C2d(a,3,d,null,f,H2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Oje)!=0),true):C2d(a,1,d,d.yj(),f,-1,true);c?c.Di(e):(c=e);return c} +function Qee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Pee((ACb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw ubb(new hde('Unknown Option: '+'X'.substr(a)));b|=c}return b} +function lZb(a,b,c){var d,e,f;d=P_b(b);e=_$b(d);f=new G0b;E0b(f,b);switch(c.g){case 1:F0b(f,Rcd(Ucd(e)));break;case 2:F0b(f,Ucd(e));}xNb(f,(Lyc(),Sxc),ED(uNb(a,Sxc)));return f} +function T9b(a){var b,c;b=BD(Rr(new Sr(ur(Q_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(T_b(a.a).a.Kc(),new Sq))),17);return Bcb(DD(uNb(b,(utc(),jtc))))||Bcb(DD(uNb(c,jtc)))} +function Wjc(){Wjc=bcb;Sjc=new Xjc('ONE_SIDE',0);Ujc=new Xjc('TWO_SIDES_CORNER',1);Vjc=new Xjc('TWO_SIDES_OPPOSING',2);Tjc=new Xjc('THREE_SIDES',3);Rjc=new Xjc('FOUR_SIDES',4)} +function ikc(a,b,c,d,e){var f,g;f=BD(FAb(IAb(b.Oc(),new $kc),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Cyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} +function FDc(a,b){var c,d,e,f,g;for(f=new nlb(b.a);f.a0&&qic(this,this.c-1,(Pcd(),ucd));this.c0&&a[0].length>0&&(this.c=Bcb(DD(uNb(P_b(a[0][0]),(utc(),Psc)))));this.a=KC(BX,iie,2017,a.length,0,2);this.b=KC(EX,iie,2018,a.length,0,2);this.d=new ss} +function pKc(a){if(a.c.length==0){return false}if((sCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(i0b(),f0b)){return true}return EAb(MAb(new XAb(null,new Jub(a,16)),new sKc),new uKc)} +function nRc(a,b,c){Jdd(c,'Tree layout',1);D2c(a.b);G2c(a.b,(uRc(),qRc),qRc);G2c(a.b,rRc,rRc);G2c(a.b,sRc,sRc);G2c(a.b,tRc,tRc);a.a=B2c(a.b,b);oRc(a,b,Pdd(c,1));Ldd(c);return b} +function DXc(a,b){var c,d,e,f,g,h,i;h=cVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new nlb(h);d.a=0){c=zbb(a,Eje);d=Gbb(a,Eje)}else{b=Obb(a,1);c=zbb(b,500000000);d=Gbb(b,500000000);d=vbb(Mbb(d,1),wbb(a,1))}return Lbb(Mbb(d,32),wbb(c,Tje))} +function nQb(a,b,c){var d,e;d=(rCb(b.b!=0),BD(Msb(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=Isb(b,0);Usb(e,d);return b} +function omc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=tmc(g,i.d[g.g],c);e=L6c(N6c(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;}Fsb(d,h,d.c.b,d.c)} +function uJc(a,b,c){var d,e,f,g;g=Ikb(a.e,b,0);f=new vJc;f.b=c;d=new Aib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ngb(d,c));c.d==1?(c=Ngb(c,c)):(c=new Wgb(Khb(c.a,c.d,KC(WD,jje,25,c.d<<1,15,1))))}d=Ngb(d,c);return d} +function yub(){yub=bcb;var a,b,c,d;vub=KC(UD,Qje,25,25,15,1);wub=KC(UD,Qje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){wub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){vub[a]=c;c*=0.5}} +function R1b(a){var b,c;if(Bcb(DD(ckd(a,(Lyc(),dxc))))){for(c=new Sr(ur(Wsd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Lld(b)){if(Bcb(DD(ckd(b,exc)))){return true}}}}return false} +function jjc(a,b){var c,d,e;if(Pqb(a.f,b)){b.b=a;d=b.c;Ikb(a.j,d,0)!=-1||Dkb(a.j,d);e=b.d;Ikb(a.j,e,0)!=-1||Dkb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new ujc(a));pjc(a.i,c)}}} +function qmc(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&&cfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&cfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} +function sjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new nlb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f} +function nfd(a){var b,c,d,e;b=null;for(e=new nlb(a.wf());e.a0&&Zfb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&mfb(j,rfb(c[h],ktb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} +function LIb(a,b){var c;c=MIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return aeb(a.b.sf(),b.b.sf());case 3:case 4:return aeb(b.b.sf(),a.b.sf());}return 0} +function hRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[iie,jje],[48,25],15,[d,d],2);for(c=new nlb(a.c);c.a1){return false}c=pqb(hcd,OC(GC(D1,1),Fie,291,0,[lcd]));if(Ox(Cx(c,a))>1){return false}return true} +function Pmd(a,b){var c,d,e,f,g;if(a==null){return null}else{g=KC(TD,Vie,25,2*b,15,1);for(d=0,e=0;d>4&15;f=a[d]&15;g[e++]=Lmd[c];g[e++]=Lmd[f]}return yfb(g,0,g.length)}} +function e3d(a,b,c){var d,e,f;d=b._j();f=b.dd();e=d.Zj()?C2d(a,4,d,f,null,H2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Oje)!=0),true):C2d(a,d.Jj()?2:1,d,f,d.yj(),-1,true);c?c.Di(e):(c=e);return c} +function vfb(a){var b,c;if(a>=Oje){b=Pje+(a-Oje>>10&1023)&Xie;c=56320+(a-Oje&1023)&Xie;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&Xie)}} +function aKb(a,b){ZJb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((mcd(),hcd));f=a.u.Hc(lcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} +function EVc(a,b,c,d,e){var f,g,h;f=FVc(a,b,c,d,e);h=false;while(!f){wVc(a,e,true);h=true;f=FVc(a,b,c,d,e)}h&&wVc(a,e,false);g=_Uc(e);if(g.c.length!=0){!!a.d&&a.d.kg(g);EVc(a,e,c,d,g)}} +function Iad(){Iad=bcb;Gad=new Jad(Xme,0);Ead=new Jad('DIRECTED',1);Had=new Jad('UNDIRECTED',2);Cad=new Jad('ASSOCIATION',3);Fad=new Jad('GENERALIZATION',4);Dad=new Jad('DEPENDENCY',5)} +function ffd(a,b){var c;if(!hpd(a)){throw ubb(new Ydb(Ose))}c=hpd(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 bub(a,b){var c,d;tCb(b);d=a.b.c.length;Dkb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Hkb(a.b,d),b)<=0){Mkb(a.b,c,b);return true}Mkb(a.b,c,Hkb(a.b,d))}Mkb(a.b,d,b);return true} +function AHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h} +function Opd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Ppd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Opd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Npd(b,c,BD(d,236))}}if(!e){throw ubb(new ucb(Pte))}} +function R0d(a,b){var c,d,e;c=b.Gh(a.a);if(c){e=vAd((!c.b&&(c.b=new nId((eGd(),aGd),w6,c)),c.b),Ove);if(e!=null){for(d=1;d<(J6d(),F6d).length;++d){if(cfb(F6d[d],e)){return d}}}}return 0} +function S0d(a,b){var c,d,e;c=b.Gh(a.a);if(c){e=vAd((!c.b&&(c.b=new nId((eGd(),aGd),w6,c)),c.b),Ove);if(e!=null){for(d=1;d<(J6d(),G6d).length;++d){if(cfb(G6d[d],e)){return d}}}}return 0} +function Ve(a,b){var c,d,e,f;tCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(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 aod(a,b){var c;c=Ohb((tFd(),sFd),a);JD(c,498)?Rhb(sFd,a,new YTd(this,b)):Rhb(sFd,a,this);Ynd(this,b);if(b==(GFd(),FFd)){this.wb=BD(this,1938);BD(b,1940)}else{this.wb=(IFd(),HFd)}} +function gZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=Wie?'error':d>=900?'warn':d>=800?'info':'log');fCb(c,a.a);!!a.b&&gCb(b,c,a.b,'Exception: ',true)} +function uNb(a,b){var c,d;d=(!a.q&&(a.q=new Kqb),Nhb(a.q,b));if(d!=null){return d}c=b.vg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Kqb),Shb(a.q,b)):(!a.q&&(a.q=new Kqb),Qhb(a.q,b,c)),a);return c} +function pUb(){pUb=bcb;kUb=new qUb('P1_CYCLE_BREAKING',0);lUb=new qUb('P2_LAYERING',1);mUb=new qUb('P3_NODE_ORDERING',2);nUb=new qUb('P4_NODE_PLACEMENT',3);oUb=new qUb('P5_EDGE_ROUTING',4)} +function RUb(a,b){var c,d,e,f,g;e=b==1?JUb:IUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Kkb(a.b.b,f.b);Kkb(a.b.a,BD(f.b,81).d)}}} +function HWb(a,b){zWb();var c;if(a.c==b.c){if(a.b==b.b||oWb(a.b,b.b)){c=lWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return aeb(a.b.g,b.b.g)}else{return Jdb(a.c,b.c)}} +function x6b(a,b){var c;Jdd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&w6b((sCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&w6b(BD(Hkb(c,c.c.length-1),29),a);Ldd(b)} +function NVc(a,b){var c,d,e;if(yVc(a,b)){return true}for(d=new nlb(b);d.a=e||b<0)throw ubb(new pcb(gue+b+hue+e));if(c>=e||c<0)throw ubb(new pcb(iue+c+hue+e));b!=c?(d=(f=a.Si(c),a.Gi(b,f),f)):(d=a.Ni(c));return d} +function h6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Tg();c;c=c.Tg()){if(++b>Rje){return h6d(c)}d=c;if(c==a){throw ubb(new Ydb('There is a cycle in the containment hierarchy of '+a))}}}return d} +function Fe(a){var b,c,d;d=new wwb(Nhe,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();twb(d,PD(b)===PD(a)?'(this Collection)':b==null?She:ecb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function yVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(ACb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(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 fkc(){fkc=bcb;ckc=OC(GC(E1,1),Yme,61,0,[(Pcd(),vcd),ucd,Mcd]);bkc=OC(GC(E1,1),Yme,61,0,[ucd,Mcd,Ocd]);dkc=OC(GC(E1,1),Yme,61,0,[Mcd,Ocd,vcd]);ekc=OC(GC(E1,1),Yme,61,0,[Ocd,vcd,ucd])} +function nmc(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?Scd(e):Qcd(e);f=tmc(e,k.d[e.g],c);j=tmc(i,k.d[i.g],c);Csb(d,L6c(f,j));e=i}} +function jFc(a,b,c,d){var e,f,g,h,i;g=FHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(uNb(b,(utc(),etc)),10);e=BD(uNb(c,etc),10);if(!!i&&!!e){lic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} +function kHc(a){var b,c,d,e,f,g,h,i,j;this.a=hHc(a);this.b=new Qkb;for(c=a,d=0,e=c.length;dvic(a.d).c){a.i+=a.g.c;xic(a.d)}else if(vic(a.d).c>vic(a.g).c){a.e+=a.d.c;xic(a.g)}else{a.i+=uic(a.g);a.e+=uic(a.d);xic(a.g);xic(a.d)}}} +function TOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new zOc((DOc(),BOc),b,f,1);new zOc(BOc,f,g,1);for(e=new nlb(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 oZc(a,b,c,d,e){var f,g;g=false;f=BD(Hkb(c.b,0),33);while(uZc(a,b,f,d,e)){g=true;JZc(c,f);if(c.b.c.length==0){break}f=BD(Hkb(c.b,0),33)}c.b.c.length==0&&r$c(c.j,c);g&&YZc(b.q);return g} +function p6c(a,b){e6c();var c,d,e,f;if(b.b<2){return false}f=Isb(b,0);c=BD(Wsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Wsb(f),8);if(o6c(a,d,e)){return true}d=e}if(o6c(a,d,c)){return true}return false} +function Zjd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new $Hd((Ohd(),Lhd),R2,a,0)),YHd(a.o,b,d)}return f=BD(SKd((e=BD(vjd(a,16),26),!e?a.yh():e),c),66),f.Mj().Qj(a,tjd(a),c-XKd(a.yh()),b,d)} +function Ynd(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).hh(a,1,h5,c));!!b&&(c=BD(b,49).fh(a,1,h5,c));c=End(a,b,c);!!c&&c.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,4,b,b))} +function tqd(a,b){var c,d,e,f;if(b){e=Spd(b,'x');c=new urd(a);cmd(c.a,(tCb(e),e));f=Spd(b,'y');d=new vrd(a);dmd(d.a,(tCb(f),f))}else{throw ubb(new Zpd('All edge sections need an end point.'))}} +function rqd(a,b){var c,d,e,f;if(b){e=Spd(b,'x');c=new rrd(a);jmd(c.a,(tCb(e),e));f=Spd(b,'y');d=new srd(a);kmd(d.a,(tCb(f),f))}else{throw ubb(new Zpd('All edge sections need a start point.'))}} +function oyb(a,b){var c,d,e,f,g,h,i;for(d=ryb(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 ubb(new Vdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:m6c(a)/(m6c(b)*m6c(a-b))} +function efd(a,b){var c,d,e,f;c=new Wud(a);while(c.g==null&&!c.c?Pud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Qud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=bde[f&15]}return yfb(b,0,b.length)} +function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new nlb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Pkb(a,KC(CK,uie,42,a.c.length,0,1)),165);return new wx(c);}} +function HTb(a){var b,c,d,e,f,g;b=new ikb;c=new ikb;Vjb(b,a);Vjb(c,a);while(c.b!=c.c){e=BD(ekb(c),37);for(g=new nlb(e.a);g.a0&&SGc(a,c,b);return e}return PGc(a,b,c)} +function ISc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Osb;for(g=Isb(b,0);g.b!=g.d.c;){f=BD(Wsb(g),86);ye(d,QRc(f));e=f.e;e.a=BD(uNb(f,(iTc(),gTc)),19).a;e.b=BD(uNb(f,hTc),19).a}ISc(a,d,Pdd(c,d.b/a.a|0))}} +function FZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(HZc(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 bmc(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 M6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} +function gsd(a){if(JD(a,149)){return _rd(BD(a,149))}else if(JD(a,229)){return asd(BD(a,229))}else if(JD(a,23)){return bsd(BD(a,23))}else{throw ubb(new Vdb(Ste+Fe(new _lb(OC(GC(SI,1),Phe,1,5,[a])))))}} +function lhb(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 vMc(a,b,c,d){var e,f,g;if(b.k==(i0b(),f0b)){for(f=new Sr(ur(Q_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==f0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} +function mD(a,b){var c,d,e,f;b&=63;c=a.h&Aje;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 TC(d&zje,e&zje,f&Aje)} +function Hic(a,b,c,d){var e;this.b=d;this.e=a==(nGc(),lGc);e=b[c];this.d=IC(rbb,[iie,$ke],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[iie,jje],[48,25],15,[e.length,e.length],2);this.c=new ric(b,c)} +function kjc(a){var b,c,d;a.k=new Ki((Pcd(),OC(GC(E1,1),Yme,61,0,[Ncd,vcd,ucd,Mcd,Ocd])).length,a.j.c.length);for(d=new nlb(a.j);d.a=c){J9b(a,b,d.p);return true}}return false} +function Dod(a){var b;if((a.Db&64)!=0)return ald(a);b=new Vfb(_se);!a.a||Pfb(Pfb((b.a+=' "',b),a.a),'"');Pfb(Kfb(Pfb(Kfb(Pfb(Kfb(Pfb(Kfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function U2d(a,b,c){var d,e,f,g,h;h=N6d(a.e.Sg(),b);e=BD(a.g,119);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)',OC(GC(SI,1),Phe,1,5,[leb(b),leb(a)]))} +function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&dCc(a,f,c))}}b.p=0} +function l5c(a){var b;this.c=new Osb;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=BD(fdb(d1),9),new wqb(b,BD($Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} +function Wb(a){var b,c,d,e;b=Jfb(Pfb(new Vfb('Predicates.'),'and'),40);c=true;for(e=new uib(a);e.b0?h[g-1]:KC(OQ,fne,10,0,0,1);e=h[g];j=g=0?a.Ah(e):qid(a,d)}else{throw ubb(new Vdb(ete+d.ne()+fte))}}else{_hd(a,c,d)}} +function Xpd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw ubb(new ucb(Pte))}return c} +function JRd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c._j();if(JD(d,99)&&(BD(d,18).Bb&kte)!=0&&(!a.e||d.Fj()!=w2||d._i()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} +function LRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c._j();if(JD(d,99)&&(BD(d,18).Bb&kte)!=0&&(!a.e||d.Fj()!=w2||d._i()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} +function D2d(a,b,c){var d,e,f,g,h,i;i=N6d(a.e.Sg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}} +function PJc(a){var b,c,d,e;c=new Osb;ye(c,a.o);d=new swb;while(c.b!=0){b=BD(c.b==0?null:(rCb(c.b!=0),Msb(c,c.a.a)),508);e=GJc(a,b,true);e&&Dkb(d.a,b)}while(d.a.c.length!=0){b=BD(qwb(d),508);GJc(a,b,false)}} +function X5c(){X5c=bcb;W5c=new Y5c(jle,0);P5c=new Y5c('BOOLEAN',1);T5c=new Y5c('INT',2);V5c=new Y5c('STRING',3);Q5c=new Y5c('DOUBLE',4);R5c=new Y5c('ENUM',5);S5c=new Y5c('ENUMSET',6);U5c=new Y5c('OBJECT',7)} +function D6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null} +function qEb(a,b){var c,d;b.a?rEb(a,b):(c=BD(Dxb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Cxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Exb(a.b,b.b),undefined)} +function EJb(a,b){var c,d;c=BD(Lpb(a.b,b),123);if(BD(BD(Qc(a.r,b),21),84).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((odd(),ndd))&&JJb(a,b);d=IJb(a,b);JIb(a,b)==(Pbd(),Mbd)&&(d+=2*a.w);c.a.a=d} +function NKb(a,b){var c,d;c=BD(Lpb(a.b,b),123);if(BD(BD(Qc(a.r,b),21),84).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((odd(),ndd))&&RKb(a,b);d=QKb(a,b);JIb(a,b)==(Pbd(),Mbd)&&(d+=2*a.w);c.a.b=d} +function bOb(a,b){var c,d,e,f;f=new Qkb;for(d=new nlb(b);d.ac.a&&(d.Hc((e8c(),$7c))?(e=(b.a-c.a)/2):d.Hc(a8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((e8c(),c8c))?(f=(b.b-c.b)/2):d.Hc(b8c)&&(f=b.b-c.b));zfd(a,e,f)} +function Xnd(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&SMd(VKd(BD(a.Cb,88)),4);knd(a,c);a.f=g;$Id(a,h);aJd(a,i);UId(a,j);_Id(a,k);xId(a,l);XId(a,m);wId(a,true);vId(a,e);a.nk(f);tId(a,b);d!=null&&(a.i=null,WId(a,d))} +function KRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b._j();if(JD(c,99)&&(BD(c,18).Bb&kte)!=0&&(!a.e||c.Fj()!=w2||c._i()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} +function Jb(a,b,c){if(a<0){return hc(Ohe,OC(GC(SI,1),Phe,1,5,[c,leb(a)]))}else if(b<0){throw ubb(new Vdb(Qhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Phe,1,5,[c,leb(a),leb(b)]))}} +function Klb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Hlb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Klb(b,a,i,j,-e,f);Klb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.rh(f,c):pid(a,e,c)}else{throw ubb(new Vdb(ete+e.ne()+fte))}}else{$hd(a,d,e,c)}} +function l6d(b){var c,d,e,f;d=BD(b,49).ph();if(d){try{e=null;c=iUd((tFd(),sFd),GEd(HEd(d)));if(c){f=c.qh();!!f&&(e=f.Vk(sfb(d.e)))}if(!!e&&e!=b){return l6d(e)}}catch(a){a=tbb(a);if(!JD(a,60))throw ubb(a)}}return b} +function irb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=frb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new ojb(b,c));++a.c;ypb(a.b);return null} +function UUc(a,b){var c,d;D2c(a.a);G2c(a.a,(LUc(),JUc),JUc);G2c(a.a,KUc,KUc);d=new f3c;a3c(d,KUc,(pVc(),oVc));PD(ckd(b,(VWc(),HWc)))!==PD((lWc(),iWc))&&a3c(d,KUc,mVc);a3c(d,KUc,nVc);A2c(a.a,d);c=B2c(a.a,b);return c} +function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} +function QJb(a,b,c){var d,e,f;f=a.o;d=BD(Lpb(a.p,c),244);e=d.i;e.b=fIb(d);e.a=eIb(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;}gIb(d);hIb(d)} +function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Lpb(a.p,c),244);e=d.i;e.b=fIb(d);e.a=eIb(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;}gIb(d);hIb(d)} +function Igc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Hgc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Hcb(c,Mie,Jhe)}catch(a){a=tbb(a);if(JD(a,127)){e=a;throw ubb(new mFd(e))}else throw ubb(a)}}d=(!b.a&&(b.a=new u0d(b)),b.a);return f=0?BD(lud(d,f),56):null} +function Ib(a,b){if(a<0){return hc(Ohe,OC(GC(SI,1),Phe,1,5,['index',leb(a)]))}else if(b<0){throw ubb(new Vdb(Qhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Phe,1,5,['index',leb(a),leb(b)]))}} +function Rlb(a){var b,c,d,e,f;if(a==null){return She}f=new wwb(Nhe,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=U6c($6c(new b7c(h.a,h.b),g),1/(d+1));f=new b7c(g.a,g.b);for(c=new nlb(a.a);c.a0&&++k}}++j}return k} +function XNb(a,b,c){var d,e,f,g,h,i;i=Kje;for(f=new nlb(vOb(a.b));f.a=0?a.$g(c,true,true):nid(a,e,true),153));BD(d,215).nl(b)}else{throw ubb(new Vdb(ete+b.ne()+fte))}} +function tgb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return ugb(Bbb(a))} +function MOc(a){var b,c,d,e,f,g,h;f=new ysb;for(c=new nlb(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 J5b(a,b){var c,d,e;d=new a0b(a);sNb(d,b);xNb(d,(utc(),Esc),b);xNb(d,(Lyc(),Txc),(_bd(),Wbd));xNb(d,kwc,(B7c(),x7c));$_b(d,(i0b(),d0b));c=new G0b;E0b(c,d);F0b(c,(Pcd(),Ocd));e=new G0b;E0b(e,d);F0b(e,ucd);return d} +function Rpc(a){switch(a.g){case 0:return new aGc((nGc(),jGc));case 1:return new xFc;case 2:return new bHc;default:throw ubb(new Vdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} +function oDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Dkb(a.a,b);for(g=new nlb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} +function eIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=iIb(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=Ltb(Yzb(NAb(IAb(Olb(a.a),new wIb),new yIb)))}return h>0?h+a.n.d+a.n.a:0} +function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Ltb(Yzb(NAb(IAb(Olb(a.a),new sIb),new uIb)))}else{g=jIb(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 LJb(a,b){var c,d,e,f;f=BD(Lpb(a.b,b),123);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,YHb(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 MQb(a,b){var c,d,e;c=BD(uNb(b,(vSb(),nSb)),19).a-BD(uNb(a,nSb),19).a;if(c==0){d=$6c(N6c(BD(uNb(a,(GSb(),CSb)),8)),BD(uNb(a,DSb),8));e=$6c(N6c(BD(uNb(b,CSb),8)),BD(uNb(b,DSb),8));return Jdb(d.a*d.b,e.a*e.b)}return c} +function eRc(a,b){var c,d,e;c=BD(uNb(b,(FTc(),ATc)),19).a-BD(uNb(a,ATc),19).a;if(c==0){d=$6c(N6c(BD(uNb(a,(iTc(),RSc)),8)),BD(uNb(a,SSc),8));e=$6c(N6c(BD(uNb(b,RSc),8)),BD(uNb(b,SSc),8));return Jdb(d.a*d.b,e.a*e.b)}return c} +function SZb(a){var b,c;c=new Tfb;c.a+='e_';b=JZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Pfb((c.a+=' ',c),B0b(a.c));Pfb(Ofb((c.a+='[',c),a.c.i),']');Pfb((c.a+=bne,c),B0b(a.d));Pfb(Ofb((c.a+='[',c),a.d.i),']')}return c.a} +function vRc(a){switch(a.g){case 0:return new hUc;case 1:return new oUc;case 2:return new yUc;case 3:return new EUc;default:throw ubb(new Vdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} +function lqc(a){switch(a.g){case 0:return new $Bc;case 1:return new TBc;case 2:return new fCc;case 3:return new mCc;default:throw ubb(new Vdb('No implementation is available for the cycle breaker '+(a.f!=null?a.f:''+a.g)));}} +function hfd(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 hqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Tge(e);for(h=(d.b-d.a)*d.c<0?(Sge(),Rge):new nhe(d);h.Ob();){g=BD(h.Pb(),19);f=Upd(c,g.a);Gte in f.a||Hte in f.a?Vqd(a,f,b):_qd(a,f,b);jtd(BD(Nhb(a.b,Rpd(f)),79))}}} +function GJd(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=rId(a);if(!!b&&(L6d(),b.Bj()==wve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} +function f1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new ZTd(s5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a.$g(c,true,true):nid(a,e,true),153));return BD(d,215).kl(b)}else{throw ubb(new Vdb(ete+b.ne()+hte))}} +function wZd(){oZd();var a;if(nZd)return BD(iUd((tFd(),sFd),Xve),1938);mEd(CK,new E_d);xZd();a=BD(JD(Ohb((tFd(),sFd),Xve),547)?Ohb(sFd,Xve):new vZd,547);nZd=true;tZd(a);uZd(a);Qhb((EFd(),DFd),a,new zZd);Rhb(sFd,Xve,a);return a} +function q2d(a,b){var c,d,e,f;a.j=-1;if(jid(a.e)){c=a.i;f=a.i!=0;gud(a,b);d=new kSd(a.e,3,a.c,null,b,c,f);e=b.Pk(a.e,a.c,null);e=c3d(a,b,e);if(!e){Phd(a.e,d)}else{e.Di(d);e.Ei()}}else{gud(a,b);e=b.Pk(a.e,a.c,null);!!e&&e.Ei()}} +function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(ACb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(ACb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} +function uMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).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 qgd(leb(c),leb(d))} +function eNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw ubb(new pcb(gue+b+hue+a.i));if(c>=a.i)throw ubb(new pcb(iue+c+hue+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-Mje;b=d>>16&4;c+=b;a<<=b;d=a-jie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} +function ZPb(a){PPb();var b,c,d,e;OPb=new Qkb;NPb=new Kqb;MPb=new Qkb;b=(!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a);RPb(b);for(e=new Ayd(b);e.e!=e.i.gc();){d=BD(yyd(e),33);if(Ikb(OPb,d,0)==-1){c=new Qkb;Dkb(MPb,c);SPb(d,c)}}return MPb} +function AQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,351)){e=dtd(BD(b,79),false,false);f=jfd(e);d=new EQb(a);qeb(f,d);dfd(f,e);b.We((U9c(),M8c))!=null&&qeb(BD(b.We(M8c),74),d)}else{g=BD(b,470);g.Gg(g.Cg()+a.a.a);g.Hg(g.Dg()+a.a.b)}} +function $5b(a,b){var c,d,e,f,g,h,i,j;j=Ddb(ED(uNb(b,(Lyc(),xyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=Q6c($6c(new b7c(g.c+g.b/2,g.d+g.a/2),new b7c(f.c+f.b/2,f.d+f.a/2)));return -(wOb(f,g)-1)*h} +function pfd(a,b,c){var d;LAb(new XAb(null,(!c.a&&(c.a=new ZTd(z2,c,6,6)),new Jub(c.a,16))),new Hfd(a,b));LAb(new XAb(null,(!c.n&&(c.n=new ZTd(C2,c,1,7)),new Jub(c.n,16))),new Jfd(a,b));d=BD(ckd(c,(U9c(),M8c)),74);!!d&&l7c(d,a,b)} +function nid(a,b,c){var d,e,f;f=_0d((J6d(),H6d),a.Sg(),b);if(f){L6d();BD(f,66).Nj()||(f=W1d(l1d(H6d,f)));e=(d=a.Xg(f),BD(d>=0?a.$g(d,true,true):nid(a,f,true),153));return BD(e,215).gl(b,c)}else{throw ubb(new Vdb(ete+b.ne()+hte))}} +function rAd(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 ZOc(i.c,g);Ckb(a,d++,e)}h=j+c;if(h<=i.a){f=new ZOc(h,i.a);vCb(d,a.c.length);_Bb(a.c,d,f)}}} +function p0d(a){var b;if(!a.c&&a.g==null){a.d=a.ri(a.f);rtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.jm>=null.im()){Qud(a);return p0d(a)}else{return b.Ob()}} +function JTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Tdd(new Udd,0));Jdd(h,Qme,1);_Tb(a.c,b);g=DYb(a.a,b);if(g.gc()==1){LTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);LTb(d,Pdd(h,f))}}BYb(a.a,g,b);MTb(b);Ldd(h)} +function pYb(a){this.a=a;if(a.c.i.k==(i0b(),d0b)){this.c=a.c;this.d=BD(uNb(a.c.i,(utc(),Fsc)),61)}else if(a.d.i.k==d0b){this.c=a.d;this.d=BD(uNb(a.d.i,(utc(),Fsc)),61)}else{throw ubb(new Vdb('Edge '+a+' is not an external edge.'))}} +function jQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,3,e,a.b));if(!b){knd(a,null);lQd(a,0);kQd(a,null)}else if(b!=a){knd(a,b.zb);lQd(a,b.d);c=(d=b.c,d==null?b.zb:d);kQd(a,c==null||cfb(c,b.zb)?null:c)}} +function IRd(a){var b,c;if(a.f){while(a.n=g)throw ubb(new xyd(b,g));e=c[b];if(g==1){d=null}else{d=KC(Z3,cve,416,g-1,0,1);Zfb(c,0,d,0,b);f=g-b-1;f>0&&Zfb(c,b+1,d,b,f)}Y_d(a,d);X_d(a,b,e);return e} +function h8d(){h8d=bcb;f8d=BD(lud(UKd((m8d(),l8d).qb),6),34);c8d=BD(lud(UKd(l8d.qb),3),34);d8d=BD(lud(UKd(l8d.qb),4),34);e8d=BD(lud(UKd(l8d.qb),5),18);SId(f8d);SId(c8d);SId(d8d);SId(e8d);g8d=new _lb(OC(GC(s5,1),Ive,170,0,[f8d,c8d]))} +function zJb(a,b){var c;this.d=new G_b;this.b=b;this.e=new c7c(b.qf());c=a.u.Hc((mcd(),jcd));a.u.Hc(icd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(kcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} +function HKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((U9c(),o9c))?d.Hf()==(Pcd(),Ocd)?-d.rf().a-Ddb(ED(d.We(o9c))):c+Ddb(ED(d.We(o9c))):d.Hf()==(Pcd(),Ocd)?-d.rf().a:c)}} +function P1b(a,b){var c,d,e,f;c=BD(uNb(a,(Lyc(),Jwc)),103);f=BD(ckd(b,Yxc),61);e=BD(uNb(a,Txc),98);if(e!=(_bd(),Zbd)&&e!=$bd){if(f==(Pcd(),Ncd)){f=gfd(b,c);f==Ncd&&(f=Ucd(c))}}else{d=L1b(b);d>0?(f=Ucd(c)):(f=Rcd(Ucd(c)))}ekd(b,Yxc,f)} +function nlc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Nkb(g,new Tlc);e=g.c.length/2|0;for(d=0;d0&&SGc(a,c,b);return f}else if(d.a!=null){SGc(a,b,c);return -1}else if(e.a!=null){SGc(a,c,b);return 1}return 0} +function nwd(a,b){var c,d,e,f;if(a.dj()){c=a.Ui();f=a.ej();++a.j;a.Gi(c,a.ni(c,b));d=a.Yi(3,null,b,c,f);if(a.aj()){e=a.bj(b,null);if(!e){a.Zi(d)}else{e.Di(d);e.Ei()}}else{a.Zi(d)}}else{wvd(a,b);if(a.aj()){e=a.bj(b,null);!!e&&e.Ei()}}} +function y2d(a,b){var c,d,e,f,g;g=N6d(a.e.Sg(),b);e=new tud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.ql(d._j())&&rtd(e,d)}!Txd(a,e)&&jid(a.e)&&BLd(a,b.Zj()?C2d(a,6,b,(lmb(),imb),null,-1,false):C2d(a,b.Jj()?2:1,b,null,null,-1,false))} +function Chb(){Chb=bcb;var a,b;Ahb=KC(cJ,iie,91,32,0,1);Bhb=KC(cJ,iie,91,32,0,1);a=1;for(b=0;b<=18;b++){Ahb[b]=fhb(a);Bhb[b]=fhb(Mbb(a,b));a=Hbb(a,5)}for(;bg){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 vcc(a,b){var c;Jdd(b,'Partition preprocessing',1);c=BD(FAb(IAb(KAb(IAb(new XAb(null,new Jub(a.a,16)),new zcc),new Bcc),new Dcc),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Cyb)]))),15);LAb(c.Oc(),new Fcc);Ldd(b)} +function zMc(a){sMc();var b,c,d,e,f,g,h;c=new Zrb;for(e=new nlb(a.e.b);e.a1?(a.e*=Ddb(a.a)):(a.f/=Ddb(a.a));COb(a);DOb(a);zOb(a);xNb(a.b,(BPb(),tPb),a.g)} +function X5b(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 nlb(a);f.a=0){if(!b){b=new Hfb;d>0&&Dfb(b,a.substr(0,d))}b.a+='\\';zfb(b,c&Xie)}else !!b&&zfb(b,c&Xie)}return b?b.a:a} +function h5c(a){var b;if(!a.a){throw ubb(new Ydb('IDataType class expected for layout option '+a.f))}b=bvd(a.a);if(b==null){throw ubb(new Ydb("Couldn't create new instance of property '"+a.f+"'. "+ese+(edb(X3),X3.k)+fse))}return BD(b,415)} +function Xhd(a){var b,c,d,e,f;f=a.dh();if(f){if(f.jh()){e=sid(a,f);if(e!=f){c=a.Ug();d=(b=a.Ug(),b>=0?a.Pg(null):a.dh().hh(a,-1-b,null,null));a.Qg(BD(e,49),c);!!d&&d.Ei();a.Kg()&&a.Lg()&&c>-1&&Phd(a,new iSd(a,9,c,f,e));return e}}}return f} +function mTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Lgb(a);if(e>16)),15).Xc(f);if(h0){!(bad(a.a.c)&&b.n.d)&&!(cad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(bad(a.a.c)&&b.n.a)&&!(cad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} +function M3b(a){var b,c,d,e,f;e=new Qkb;f=N3b(a,e);b=BD(uNb(a,(utc(),etc)),10);if(b){for(d=new nlb(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?Aje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Aje:0;f=d?zje:0;e=c>>b-44}return TC(e&zje,f&zje,g&Aje)} +function WOb(a){var b,c,d,e,f,g;this.c=new Qkb;this.d=a;d=Kje;e=Kje;b=Lje;c=Lje;for(g=Isb(a,0);g.b!=g.d.c;){f=BD(Wsb(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 F6c(d,e,b-d,c-e)} +function Cac(a,b){var c,d,e,f,g,h;for(f=new nlb(a.b);f.a0&&JD(b,42)){a.a.pj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=yAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,366);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(tCb(b),b)-(tCb(f),f))}}return d} +function cUc(a,b){var c,d,e,f,g;d=new Osb;Fsb(d,b,d.c.b,d.c);do{c=(rCb(d.b!=0),BD(Msb(d,d.a.a),86));a.b[c.g]=1;for(f=Isb(c.d,0);f.b!=f.d.c;){e=BD(Wsb(f),188);g=e.c;a.b[g.g]==1?Csb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Fsb(d,g,d.c.b,d.c)}}while(d.b!=0)} +function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new nlb(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 qgd(leb(b),leb(c))} +function LIc(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==(QIc(),PIc)&&b.d==OIc){return -1}else if(a.d==OIc&&b.d==PIc){return 1}return 0} +function YMc(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=JLc(a.a,g,d);if(e>0&&e<$le){c=KLc(a.a,d.i,e,a.c);PLc(a.a,d.i,-c);return c>0}else if(e<0&&-e<$le){c=LLc(a.a,d.i,-e,a.c);PLc(a.a,d.i,c);return c>0}return false} +function NZc(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 nlb(a.c);l.a>24}return g} +function udb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=xdb('.',[c,xdb('$',d)]);a.b=xdb('.',[c,xdb('.',d)]);a.k=d[d.length-1]} +function pGb(a,b){var c,d,e,f,g;g=null;for(f=new nlb(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 TUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?JUb:IUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} +function zid(a){var b,c;c=new Vfb(gdb(a.fm));c.a+='@';Pfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.jh()){c.a+=' (eProxyURI: ';Ofb(c,a.ph());if(a.Zg()){c.a+=' eClass: ';Ofb(c,a.Zg())}c.a+=')'}else if(a.Zg()){c.a+=' (eClass: ';Ofb(c,a.Zg());c.a+=')'}return c.a} +function SDb(a){var b,c,d,e;if(a.e){throw ubb(new Ydb((edb(TM),Eke+TM.k+Fke)))}a.d==(aad(),$9c)&&RDb(a,Y9c);for(c=new nlb(a.a.a);c.a>24}return c} +function kKb(a,b,c){var d,e,f;e=BD(Lpb(a.i,b),306);if(!e){e=new aIb(a.d,b,c);Mpb(a.i,b,e);if(rJb(b)){BHb(a.a,b.c,b.b,e)}else{f=qJb(b);d=BD(Lpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;kIb(d,b.b,e);break;case 4:case 2:e.k=true;kIb(d,b.c,e);}}}return e} +function m3d(a,b,c,d){var e,f,g,h,i,j;h=new tud;i=N6d(a.e.Sg(),b);e=BD(a.g,119);L6d();if(BD(b,66).Nj()){for(g=0;g=0){return e}else{f=1;for(h=new nlb(b.j);h.a0&&b.ue((sCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Mkb(a,e,(sCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}sCb(e,a.c.length);a.c[e]=f}c.a=new Kqb;c.b=new Kqb} +function j5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new wqb(d,BD($Bb(d,d.length),9),0));i=lfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g0){!(bad(a.a.c)&&b.n.d)&&!(cad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(bad(a.a.c)&&b.n.a)&&!(cad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} +function Gac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Pcd(),vcd)||b==ucd){wac(BD(akb(a),15),(nbd(),jbd));wac(BD(akb(a),15),kbd)}else{wac(BD(akb(a),15),(nbd(),kbd));wac(BD(akb(a),15),jbd)}}else{for(e=new wkb(a);e.a!=e.b;){d=BD(ukb(e),15);wac(d,c)}}} +function ctd(a,b){var c,d,e,f,g,h,i;e=Nu(new ltd(a));h=new Aib(e,e.c.length);f=Nu(new ltd(b));i=new Aib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(rCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(rCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} +function Bub(a,b){var c,d,e,f,g,h;f=a.a*fke+a.b*1502;h=a.b*fke+11;c=$wnd.Math.floor(h*gke);f+=c;h-=c*hke;f%=hke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*vub[b])}else{e=a.a*(1<=2147483648&&(d-=Uje);return d}} +function Yic(a,b,c){var d,e,f,g;if(ajc(a,b)>ajc(a,c)){d=U_b(c,(Pcd(),ucd));a.d=d.dc()?0:A0b(BD(d.Xb(0),11));g=U_b(b,Ocd);a.b=g.dc()?0:A0b(BD(g.Xb(0),11))}else{e=U_b(c,(Pcd(),Ocd));a.d=e.dc()?0:A0b(BD(e.Xb(0),11));f=U_b(b,ucd);a.b=f.dc()?0:A0b(BD(f.Xb(0),11))}} +function g6d(a){var b,c,d,e,f,g,h;if(a){b=a.Gh(Xve);if(b){g=GD(vAd((!b.b&&(b.b=new nId((eGd(),aGd),w6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Qkb;for(d=lfb(g,'\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=JOc(a,b,f,h);i=WOc((sCb(d,b.c.length),BD(b.c[d],329)));UOc(b,d,c)}return i} +function hZc(){hZc=bcb;NYc=new Jsd((U9c(),n8c),1.3);RYc=E8c;cZc=new p0b(15);bZc=new Jsd(b9c,cZc);fZc=new Jsd(P9c,15);OYc=s8c;XYc=U8c;YYc=X8c;ZYc=Z8c;WYc=S8c;$Yc=a9c;dZc=t9c;aZc=(KYc(),GYc);VYc=EYc;_Yc=FYc;eZc=IYc;SYc=DYc;TYc=K8c;UYc=L8c;QYc=CYc;PYc=BYc;gZc=JYc} +function wnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new MHd,f);KHd(g,(tCb(b),b));j=(!g.b&&(g.b=new nId((eGd(),aGd),w6,g)),g.b);for(i=1;i0&&IPb(this,e)}} +function HQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new jRb);Dkb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),281);if(h.d==c||h.c==c){continue}h.c!=b&&HQb(a,h.c,b,g,e,f);h.d!=b&&HQb(a,h.d,b,g,e,f);Dkb(g.c,h);Fkb(g.d,h.b)}return g}return null} +function d4b(a){var b,c,d,e,f,g,h;b=0;for(e=new nlb(a.e);e.a=2} +function fec(a,b){var c,d,e,f;Jdd(b,'Self-Loop pre-processing',1);for(d=new nlb(a.a);d.a1){return false}b=pqb(vbd,OC(GC(A1,1),Fie,93,0,[ubd,xbd]));if(Ox(Cx(b,a))>1){return false}d=pqb(Cbd,OC(GC(A1,1),Fie,93,0,[Bbd,Abd]));if(Ox(Cx(d,a))>1){return false}return true} +function P0d(a,b){var c,d,e;c=b.Gh(a.a);if(c){e=GD(vAd((!c.b&&(c.b=new nId((eGd(),aGd),w6,c)),c.b),'affiliation'));if(e!=null){d=jfb(e,vfb(35));return d==-1?g1d(a,p1d(a,YJd(b.Gj())),e):d==0?g1d(a,null,e.substr(1)):g1d(a,e.substr(0,d),e.substr(d+1))}}return null} +function ic(b){var c,d,e;try{return b==null?She:ecb(b)}catch(a){a=tbb(a);if(JD(a,102)){c=a;e=gdb(rb(b))+'@'+(d=(Yfb(),jCb(b))>>>0,d.toString(16));syb(wyb(),(Zxb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+gdb(c.fm)+'>'}else throw ubb(a)}} +function kzc(a){switch(a.g){case 0:return new sDc;case 1:return new UCc;case 2:return new yCc;case 3:return new LCc;case 4:return new GDc;case 5:return new dDc;default:throw ubb(new Vdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} +function wQc(a,b,c){var d,e,f;for(f=new nlb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Csb(b,d.b)}}for(e=new nlb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Csb(c,d.a)}}} +function Qud(a){var b,c,d,e,f;if(a.g==null){a.d=a.ri(a.f);rtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.ri(e);if(c.Ob()){a.d=c;rtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} +function m2d(a,b){var c,d,e,f,g,h;d=b;e=d._j();if(O6d(a.e,e)){if(e.gi()&&z2d(a,e,d.dd())){return false}}else{h=N6d(a.e.Sg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0} +function VQb(a,b,c){var d,e,f,g,h;Jdd(c,'ELK Force',1);Bcb(DD(ckd(b,(vSb(),iSb))))||ZCb((d=new $Cb((Kgd(),new Ygd(b))),d));h=SQb(b);WQb(h);XQb(a,BD(uNb(h,eSb),425));g=KQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);sRb(a.b,e,Pdd(c,1/g.gc()))}h=JQb(g);RQb(h);Ldd(c)} +function xoc(a,b){var c,d,e,f,g;Jdd(b,'Breaking Point Processor',1);woc(a);if(Bcb(DD(uNb(a,(Lyc(),Hyc))))){for(e=new nlb(a.b);e.a=0?a.$g(d,true,true):nid(a,f,true),153));BD(e,215).ll(b,c)}else{throw ubb(new Vdb(ete+b.ne()+fte))}} +function NOc(a,b){var c,d,e,f,g;c=new Qkb;e=KAb(new XAb(null,new Jub(a,16)),new ePc);f=KAb(new XAb(null,new Jub(a,16)),new gPc);g=_zb($zb(NAb(ty(OC(GC(xM,1),Phe,832,0,[e,f])),new iPc)));for(d=1;d=2*b&&Dkb(c,new ZOc(g[d-1]+b,g[d]-b))}return c} +function wXc(a,b,c){Jdd(c,'Eades radial',1);c.n&&!!b&&Odd(c,d6d(b),(kgd(),hgd));a.d=BD(ckd(b,(IUc(),HUc)),33);a.c=Ddb(ED(ckd(b,(VWc(),RWc))));a.e=pXc(BD(ckd(b,SWc),293));a.a=cWc(BD(ckd(b,UWc),427));a.b=fXc(BD(ckd(b,NWc),339));xXc(a);c.n&&!!b&&Odd(c,d6d(b),(kgd(),hgd))} +function Aqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Tge(f);for(h=(d.b-d.a)*d.c<0?(Sge(),Rge):new nhe(d);h.Ob();){g=BD(h.Pb(),19);e=Upd(c,g.a);!!e&&(i=null,j=Pqd(a,(k=(Ahd(),l=new kpd,l),!!b&&ipd(k,b),k),e),Gkd(j,Wpd(e,Qte)),brd(e,j),crd(e,j),Zqd(a,e,j))}}} +function PKd(a){var b,c,d,e,f,g;if(!a.j){g=new CPd;b=FKd;f=b.a.zc(a,b);if(f==null){for(d=new Ayd(WKd(a));d.e!=d.i.gc();){c=BD(yyd(d),26);e=PKd(c);ttd(g,e);rtd(g,c)}b.a.Bc(a)!=null}qud(g);a.j=new iNd((BD(lud(UKd((IFd(),HFd).o),11),18),g.i),g.g);VKd(a).b&=-33}return a.j} +function J9d(a){var b,c,d,e;if(a==null){return null}else{d=Lge(a,true);e=Jwe.length;if(cfb(d.substr(d.length-e,e),Jwe)){c=d.length;if(c==4){b=(ACb(0,d.length),d.charCodeAt(0));if(b==43){return u9d}else if(b==45){return t9d}}else if(c==3){return u9d}}return new Ndb(d)}} +function _C(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 heb(c)}if(b==0&&d!=0&&c==0){return heb(d)+22}if(b!=0&&d==0&&c==0){return heb(b)+44}return -1} +function pbc(a,b){var c,d,e,f,g;Jdd(b,'Edge joining',1);c=Bcb(DD(uNb(a,(Lyc(),zyc))));for(e=new nlb(a.b);e.a1){for(e=new nlb(a.a);e.a0);f.a.Xb(f.c=--f.b);zib(f,e);rCb(f.b3&&EA(a,0,b-3)}} +function bUb(a){var b,c,d,e;if(PD(uNb(a,(Lyc(),$wc)))===PD((dbd(),abd))){return !a.e&&PD(uNb(a,Awc))!==PD((Vrc(),Src))}d=BD(uNb(a,Bwc),292);e=Bcb(DD(uNb(a,Fwc)))||PD(uNb(a,Gwc))===PD((Qpc(),Npc));b=BD(uNb(a,zwc),19).a;c=a.a.c.length;return !e&&d!=(Vrc(),Src)&&(b==0||b>c)} +function kkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+lmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Zld(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=fid(b,a,6,d));d=Yld(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,6,b,b))} +function Mld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+Nld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Gld(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=fid(b,a,12,d));d=Fld(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,3,b,b))} +function ipd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+jpd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?gpd(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=fid(b,a,9,d));d=fpd(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,9,b,b))} +function QId(b){var c,d,e,f,g;e=rId(b);g=b.j;if(g==null&&!!e){return b.Zj()?null:e.yj()}else if(JD(e,148)){d=e.zj();if(d){f=d.Mh();if(f!=b.i){c=BD(e,148);if(c.Dj()){try{b.g=f.Jh(c,g)}catch(a){a=tbb(a);if(JD(a,78)){b.g=null}else throw ubb(a)}}b.i=f}}return b.g}return null} +function vOb(a){var b;b=new Qkb;Dkb(b,new _Cb(new b7c(a.c,a.d),new b7c(a.c+a.b,a.d)));Dkb(b,new _Cb(new b7c(a.c,a.d),new b7c(a.c,a.d+a.a)));Dkb(b,new _Cb(new b7c(a.c+a.b,a.d+a.a),new b7c(a.c+a.b,a.d)));Dkb(b,new _Cb(new b7c(a.c+a.b,a.d+a.a),new b7c(a.c,a.d+a.a)));return b} +function EJc(a,b,c,d){var e,f,g;g=KZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(N_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!NZb(e)&&!(!NZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return EJc(a,e,g,d)}return d} +function uQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Nhb(a.b,e),266);!d&&(Sod(etd(e))==Sod(gtd(e))?tQb(a,e,c):etd(e)==Sod(gtd(e))?Nhb(a.c,e)==null&&Nhb(a.b,gtd(e))!=null&&wQb(a,e,c,false):Nhb(a.d,e)==null&&Nhb(a.b,etd(e))!=null&&wQb(a,e,c,true))}} +function icc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new G0b;E0b(h,d);F0b(h,(Pcd(),ucd));xNb(h,(utc(),dtc),(Acb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new G0b;E0b(i,f);F0b(i,Ocd);xNb(i,dtc,true);c=new TZb;xNb(c,dtc,true);PZb(c,h);QZb(c,i)}}} +function inc(a,b,c,d){var e,f,g,h;e=gnc(a,b,c);f=gnc(a,c,b);g=BD(Nhb(a.c,b),112);h=BD(Nhb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f} +function g$c(){g$c=bcb;c$c=new h$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);b$c=new h$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);e$c=new h$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);d$c=new h$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);f$c=new h$c('WHOLE_DRAWING',4)} +function Sqd(a,b){if(JD(b,239)){return dqd(a,BD(b,33))}else if(JD(b,186)){return eqd(a,BD(b,118))}else if(JD(b,353)){return cqd(a,BD(b,137))}else if(JD(b,351)){return bqd(a,BD(b,79))}else if(b){return null}else{throw ubb(new Vdb(Ste+Fe(new _lb(OC(GC(SI,1),Phe,1,5,[b])))))}} +function _hc(a){var b,c,d,e,f,g,h;f=new Osb;for(e=new nlb(a.d.a);e.a1){b=mGb((c=new oGb,++a.b,c),a.d);for(h=Isb(f,0);h.b!=h.d.c;){g=BD(Wsb(h),121);zFb(CFb(BFb(DFb(AFb(new EFb,1),0),b),g))}}} +function Vod(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+Wod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Pod(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=fid(b,a,10,d));d=Ood(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,11,b,b))} +function tZb(a){var b,c,d,e;for(d=new mib((new dib(a.b)).a);d.b;){c=kib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);xNb(b,(utc(),Ysc),e);xNb(e,etc,b);xNb(e,Lsc,(Acb(),true));F0b(e,BD(uNb(b,Fsc),61));uNb(b,Fsc);xNb(e.i,(Lyc(),Txc),(_bd(),Ybd));BD(uNb(P_b(e.i),Isc),21).Fc((Mrc(),Irc))}} +function F4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new nlb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(x4,eve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Dje){d=QD(a/Dje);a-=d*Dje}c=0;if(a>=Cje){c=QD(a/Cje);a-=c*Cje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} +function qKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((mcd(),icd));f=0;for(e=new nlb(a.e.Cf());e.a=-b&&d==b){return new qgd(leb(c-1),leb(d))}return new qgd(leb(c),leb(d-1))} +function V8b(){R8b();return OC(GC(AS,1),Fie,77,0,[X7b,U7b,Y7b,m8b,F8b,q8b,L8b,v8b,D8b,h8b,z8b,u8b,E8b,d8b,N8b,O7b,y8b,H8b,n8b,G8b,P8b,B8b,P7b,C8b,Q8b,J8b,O8b,o8b,a8b,p8b,l8b,M8b,S7b,$7b,s8b,R7b,t8b,j8b,e8b,w8b,g8b,V7b,T7b,k8b,f8b,x8b,K8b,Q7b,A8b,i8b,r8b,b8b,_7b,I8b,Z7b,c8b,W7b])} +function Xic(a,b,c){a.d=0;a.b=0;b.k==(i0b(),h0b)&&c.k==h0b&&BD(uNb(b,(utc(),Ysc)),10)==BD(uNb(c,Ysc),10)&&(_ic(b).j==(Pcd(),vcd)?Yic(a,b,c):Yic(a,c,b));b.k==h0b&&c.k==f0b?_ic(b).j==(Pcd(),vcd)?(a.d=1):(a.b=1):c.k==h0b&&b.k==f0b&&(_ic(c).j==(Pcd(),vcd)?(a.b=1):(a.d=1));bjc(a,b,c)} +function _rd(a){var b,c,d,e,f,g,h,i,j,k,l;l=csd(a);b=a.a;i=b!=null;i&&Ppd(l,'category',a.a);e=Ahe(new Oib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new hsd(j);qeb(new Oib(a.d),c)}f=Ahe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new jsd(k);qeb(a.g,d)}return l} +function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+Dod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?zod(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=BD(b,49).fh(a,1,B2,d));d=yod(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,7,b,b))} +function IHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(k6d(a,b))throw ubb(new Vdb(ote+LHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?FHd(a,d):a.Cb.hh(a,-1-c,null,d)));!!b&&(d=BD(b,49).fh(a,0,j5,d));d=EHd(a,b,d);!!d&&d.Ei()}else (a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,3,b,b))} +function Dhb(a,b){Chb();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 Hhb(a,b)}g=(a.d&-2)<<4;j=Qgb(a,g);k=Qgb(b,g);d=xhb(a,Pgb(j,g));e=xhb(b,Pgb(k,g));i=Dhb(j,k);c=Dhb(d,e);f=Dhb(xhb(j,d),xhb(e,k));f=shb(shb(f,i),c);f=Pgb(f,g);i=Pgb(i,g<<1);return shb(shb(i,f),c)} +function XFc(a,b,c){var d,e,f,g,h;g=yHc(a,c);h=KC(OQ,fne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Bcb(DD(uNb(e,(utc(),Lsc))))&&(h[d++]=BD(uNb(e,etc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Bcb(DD(uNb(b.j,(utc(),Hsc))))&&!Bcb(DD(uNb(b.j,(utc(),ktc)))));g=g|b.q.$f(i,f,c);g=g|ZFc(a,i[f],c,d)}Pqb(a.c,b);return g} +function n3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=l_b(a.j),l=0,m=k.length;l1&&(a.a=true);YNb(BD(c.b,65),L6c(N6c(BD(b.b,65).c),U6c($6c(N6c(BD(c.b,65).a),BD(b.b,65).a),e)));z1c(a,b);B1c(a,c)}} +function qVb(a){var b,c,d,e,f,g,h;for(f=new nlb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}lmb();Nkb(a.j,new ecc)} +function Uec(a){var b,c;c=null;b=BD(Hkb(a.g,0),17);do{c=b.d.i;if(vNb(c,(utc(),Usc))){return BD(uNb(c,Usc),11).i}if(c.k!=(i0b(),g0b)&&Qr(new Sr(ur(T_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(T_b(c).a.Kc(),new Sq))),17)}else if(c.k!=g0b){return null}}while(!!c&&c.k!=(i0b(),g0b));return c} +function Nmc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Hkb(h,h.c.length-1),113);k=(sCb(0,h.c.length),BD(h.c[0],113));j=Jmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i} +function rEb(a,b){var c,d;d=zxb(a.b,b.b);if(!d){throw ubb(new Ydb('Invalid hitboxes for scanline constraint calculation.'))}(lEb(b.b,BD(Bxb(a.b,b.b),57))||lEb(b.b,BD(Axb(a.b,b.b),57)))&&(Yfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Dxb(a.b,b.b),57);c=BD(Cxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} +function zFb(a){if(!a.a.d||!a.a.e){throw ubb(new Ydb((edb(fN),fN.k+' must have a source and target '+(edb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw ubb(new Ydb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}MFb(a.a.d.g,a.a);MFb(a.a.e.b,a.a);return a.a} +function DHc(a,b,c){var d,e,f,g,h,i,j;j=new Gxb(new pIc(a));for(g=OC(GC(aR,1),gne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n} +function dUc(a,b){var c,d,e,f,g;g=BD(uNb(b,(FTc(),BTc)),426);for(f=Isb(b.b,0);f.b!=f.d.c;){e=BD(Wsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:eUc(a,e);break;case 1:cUc(a,e);}a.b[e.g]=2}}for(d=Isb(a.a,0);d.b!=d.d.c;){c=BD(Wsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}xNb(b,(iTc(),cTc),a.a)} +function N6d(a,b){L6d();var c,d,e,f;if(!b){return K6d}else if(b==(L8d(),I8d)||(b==q8d||b==o8d||b==p8d)&&a!=n8d){return new U6d(a,b)}else{d=BD(b,677);c=d.ok();if(!c){X1d(l1d((J6d(),H6d),b));c=d.ok()}f=(!c.i&&(c.i=new Kqb),c.i);e=BD(Wd(hrb(f.f,a)),1941);!e&&Qhb(f,a,e=new U6d(a,b));return e}} +function Sbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(uNb(a,(utc(),Ysc)),11);j=h7c(OC(GC(l1,1),iie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=j_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().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(ocd(a.u)){d=nfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} +function Dec(a,b){var c,d,e,f;Jdd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new nlb(a.b);e.a=0){if(b==c){return new qgd(leb(-b-1),leb(-b-1))}if(b==-c){return new qgd(leb(-b),leb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new qgd(leb(-b),leb(c))}return new qgd(leb(-b),leb(c+1))}return new qgd(leb(b+1),leb(c))} +function p5b(a){var b,c;c=BD(uNb(a,(Lyc(),kxc)),163);b=BD(uNb(a,(utc(),Msc)),303);if(c==(Atc(),wtc)){xNb(a,kxc,ztc);xNb(a,Msc,(csc(),bsc))}else if(c==ytc){xNb(a,kxc,ztc);xNb(a,Msc,(csc(),_rc))}else if(b==(csc(),bsc)){xNb(a,kxc,wtc);xNb(a,Msc,asc)}else if(b==_rc){xNb(a,kxc,ytc);xNb(a,Msc,asc)}} +function BNc(){BNc=bcb;zNc=new NNc;vNc=a3c(new f3c,(pUb(),mUb),(R8b(),n8b));yNc=$2c(a3c(new f3c,mUb,B8b),oUb,A8b);ANc=Z2c(Z2c(c3c($2c(a3c(new f3c,kUb,L8b),oUb,K8b),nUb),J8b),M8b);wNc=$2c(a3c(a3c(a3c(new f3c,lUb,q8b),nUb,s8b),nUb,t8b),oUb,r8b);xNc=$2c(a3c(a3c(new f3c,nUb,t8b),nUb,$7b),oUb,Z7b)} +function dQc(){dQc=bcb;$Pc=a3c($2c(new f3c,(pUb(),oUb),(R8b(),b8b)),mUb,n8b);cQc=Z2c(Z2c(c3c($2c(a3c(new f3c,kUb,L8b),oUb,K8b),nUb),J8b),M8b);_Pc=$2c(a3c(a3c(a3c(new f3c,lUb,q8b),nUb,s8b),nUb,t8b),oUb,r8b);bQc=a3c(a3c(new f3c,mUb,B8b),oUb,A8b);aQc=$2c(a3c(a3c(new f3c,nUb,t8b),nUb,$7b),oUb,Z7b)} +function CNc(a,b,c,d,e){var f,g;if((!NZb(b)&&b.c.i.c==b.d.i.c||!P6c(h7c(OC(GC(l1,1),iie,8,0,[e.i.n,e.n,e.a])),c))&&!NZb(b)){b.c==e?St(b.a,0,new c7c(c)):Csb(b.a,new c7c(c));if(d&&!Qqb(a.a,c)){g=BD(uNb(b,(Lyc(),hxc)),74);if(!g){g=new o7c;xNb(b,hxc,g)}f=new c7c(c);Fsb(g,f,g.c.b,g.c);Pqb(a.a,f)}}} +function Pac(a){var b,c;for(c=new Sr(ur(Q_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(i0b(),e0b)){throw ubb(new u2c(Ane+O_b(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 qjd(a,b,c){var d,e,f,g,h,i,j;e=_db(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Phe,1,2,5,1);f=ujd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Phe,1,e+1,5,1);g=CD(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 DNb(a,b,c){var d,e,f,g;this.b=new Qkb;e=0;d=0;for(g=new nlb(a);g.a0){f=BD(Hkb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new oNb(e,d)} +function Hgc(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=BD(Nhb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Nhb(a.f,c.C),57);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==(Pcd(),ucd)?e?U_b(h,d):Su(U_b(h,d)):e?Su(U_b(h,d)):U_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Fkb(c,i)}} +function YPc(a,b,c){var d,e,f,g,h,i,j,k;f=Ddb(ED(a.b.Kc().Pb()));j=Ddb(ED(Pq(b.b)));d=U6c(N6c(a.a),j-c);e=U6c(N6c(b.a),c-f);k=L6c(d,e);U6c(k,1/(j-f));this.a=k;this.b=new Qkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Ddb(ED(g.Pb()));if(h&&i-c>Kqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} +function uGb(a){var b,c,d,e;xGb(a,a.n);if(a.d.c.length>0){Alb(a.c);while(FGb(a,BD(llb(new nlb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Ggb(),Agb):(Ggb(),Fgb)}f=a.d-d;e=KC(WD,jje,25,f+1,15,1);lhb(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=_0d((J6d(),H6d),e,b);if(!c){return true}else{d=c.Yj();return (d>1||d==-1)&&V1d(l1d(H6d,c))!=3}}}}else{return false}} +function Q1b(a,b,c,d){var e,f,g,h,i;h=Xsd(BD(lud((!b.b&&(b.b=new t5d(y2,b,4,7)),b.b),0),82));i=Xsd(BD(lud((!b.c&&(b.c=new t5d(y2,b,5,8)),b.c),0),82));if(Sod(h)==Sod(i)){return null}if(itd(i,h)){return null}g=Hld(b);if(g==c){return d}else{f=BD(Nhb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} +function Bac(a,b){var c;c=BD(uNb(a,(Lyc(),Pwc)),275);Jdd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Cac(a,(nbd(),jbd));break;case 1:Cac(a,(nbd(),kbd));break;case 2:Aac(a,(nbd(),jbd));break;case 3:Aac(a,(nbd(),kbd));break;case 4:Dac(a,(nbd(),jbd));break;case 5:Dac(a,(nbd(),kbd));}Ldd(b)} +function YFc(a,b,c){var d,e,f,g,h,i;d=MFc(c,a.length);g=a[d];if(g[0].k!=(i0b(),d0b)){return}f=NFc(c,g.length);i=b.j;for(e=0;e0){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);uHb(a,dHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==dHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} +function zYb(){this.c=KC(UD,Qje,25,(Pcd(),OC(GC(E1,1),Yme,61,0,[Ncd,vcd,ucd,Mcd,Ocd])).length,15,1);this.b=KC(UD,Qje,25,OC(GC(E1,1),Yme,61,0,[Ncd,vcd,ucd,Mcd,Ocd]).length,15,1);this.a=KC(UD,Qje,25,OC(GC(E1,1),Yme,61,0,[Ncd,vcd,ucd,Mcd,Ocd]).length,15,1);ylb(this.c,Kje);ylb(this.b,Lje);ylb(this.a,Lje)} +function Pfe(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=KC(WD,jje,25,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=KC(WD,jje,25,d+2,15,1);Zfb(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||Tfe(a)}} +function hnc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Rkb(j.c.length);a.c=new Kqb;for(h=new nlb(j);h.a=0?a.$g(j,false,true):nid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Sxd(e,e.i-1)}}return d}} +function Y2b(a,b){var c,d,e,f,g,h,i;Jdd(b,'Comment post-processing',1);for(f=new nlb(a.b);f.aa.d[g.p]){c+=vHc(a.b,f);Vjb(a.a,leb(f))}}while(!_jb(a.a)){tHc(a.b,BD(ekb(a.a),19).a)}}return c} +function k2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a).i;for(e=new Ayd((!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(yyd(e),33);(!d.a&&(d.a=new ZTd(D2,d,10,11)),d.a).i==0||(f+=k2c(a,d,false))}if(c){g=Sod(b);while(g){f+=(!g.a&&(g.a=new ZTd(D2,g,10,11)),g.a).i;g=Sod(g)}}return f} +function Sxd(a,b){var c,d,e,f;if(a.dj()){d=null;e=a.ej();a.hj()&&(d=a.jj(a.oi(b),null));c=a.Yi(4,f=oud(a,b),null,b,e);if(a.aj()&&f!=null){d=a.cj(f,d);if(!d){a.Zi(c)}else{d.Di(c);d.Ei()}}else{if(!d){a.Zi(c)}else{d.Di(c);d.Ei()}}return f}else{f=oud(a,b);if(a.aj()&&f!=null){d=a.cj(f,null);!!d&&d.Ei()}return f}} +function TKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Sqb;i=0;for(d=new nlb(a.d);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 Mrc(){Mrc=bcb;Drc=new Nrc('COMMENTS',0);Frc=new Nrc('EXTERNAL_PORTS',1);Grc=new Nrc('HYPEREDGES',2);Hrc=new Nrc('HYPERNODES',3);Irc=new Nrc('NON_FREE_PORTS',4);Jrc=new Nrc('NORTH_SOUTH_PORTS',5);Lrc=new Nrc(Sne,6);Crc=new Nrc('CENTER_LABELS',7);Erc=new Nrc('END_LABELS',8);Krc=new Nrc('PARTITIONS',9)} +function cVc(a){var b,c,d,e,f;e=new Qkb;b=new Uqb((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));for(d=new Sr(ur(Wsd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(lud((!c.b&&(c.b=new t5d(y2,c,4,7)),c.b),0),186)){f=Xsd(BD(lud((!c.c&&(c.c=new t5d(y2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} +function bVc(a){var b,c,d,e,f,g;f=new Sqb;b=new Uqb((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));for(e=new Sr(ur(Wsd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(lud((!d.b&&(d.b=new t5d(y2,d,4,7)),d.b),0),186)){g=Xsd(BD(lud((!d.c&&(d.c=new t5d(y2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} +function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),iie,2,6,[Yie,Zie,$ie,_ie,aje,bje,cje,dje,eje,fje,gje,hje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),iie,2,6,['Jan','Feb','Mar','Apr',aje,'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 BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),iie,2,6,[Yie,Zie,$ie,_ie,aje,bje,cje,dje,eje,fje,gje,hje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),iie,2,6,['Jan','Feb','Mar','Apr',aje,'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 DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=afb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-ije+ije-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} +function jde(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=See(a.i));a.j=a.i.length;ide(a);f=mde(a);if(a.d!=a.j)throw ubb(new hde(ovd((c0d(),nue))));if(a.g){for(d=0;drre?Nkb(i,a.b):d<=rre&&d>sre?Nkb(i,a.d):d<=sre&&d>tre?Nkb(i,a.c):d<=tre&&Nkb(i,a.a);f=VXc(a,i,f)}return e} +function Ggb(){Ggb=bcb;var a;Bgb=new Tgb(1,1);Dgb=new Tgb(1,10);Fgb=new Tgb(0,0);Agb=new Tgb(-1,1);Cgb=OC(GC(cJ,1),iie,91,0,[Fgb,Bgb,new Tgb(1,2),new Tgb(1,3),new Tgb(1,4),new Tgb(1,5),new Tgb(1,6),new Tgb(1,7),new Tgb(1,8),new Tgb(1,9),Dgb]);Egb=KC(cJ,iie,91,32,0,1);for(a=0;a1;if(h){d=new b7c(e,c.b);Csb(b.a,d)}j7c(b.a,OC(GC(l1,1),iie,8,0,[m,l]))} +function edd(a){n4c(a,new A3c(L3c(I3c(K3c(J3c(new N3c,Nse),'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 hdd)));l4c(a,Nse,Xle,_cd);l4c(a,Nse,rme,15);l4c(a,Nse,tme,leb(0));l4c(a,Nse,Wle,ome)} +function cde(){cde=bcb;var a,b,c,d,e,f;ade=KC(SD,ste,25,255,15,1);bde=KC(TD,Vie,25,16,15,1);for(b=0;b<255;b++){ade[b]=-1}for(c=57;c>=48;c--){ade[c]=c-48<<24>>24}for(d=70;d>=65;d--){ade[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){ade[e]=e-97+10<<24>>24}for(f=0;f<10;f++)bde[f]=48+f&Xie;for(a=10;a<=15;a++)bde[a]=65+a-10&Xie} +function xVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Eje);c=UC(c,e,true);b=''+pD(QC);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 wrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} +function Ogc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new nlb(a.d.b);e.a=a.a){return -1}if(!E6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=F6b(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 wtd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.mi()){for(c=0;c0){a.pj();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 ubb(new Neb('Invalid hexadecimal'))}}} +function wUc(a,b,c){var d,e,f,g;Jdd(c,'Processor order nodes',2);a.a=Ddb(ED(uNb(b,(FTc(),DTc))));e=new Osb;for(g=Isb(b.b,0);g.b!=g.d.c;){f=BD(Wsb(g),86);Bcb(DD(uNb(f,(iTc(),fTc))))&&(Fsb(e,f,e.c.b,e.c),true)}d=(rCb(e.b!=0),BD(e.a.a.c,86));uUc(a,d);!c.b&&Mdd(c,1);xUc(a,d,0-Ddb(ED(uNb(d,(iTc(),ZSc))))/2,0);!c.b&&Mdd(c,1);Ldd(c)} +function qFb(){qFb=bcb;pFb=new rFb('SPIRAL',0);kFb=new rFb('LINE_BY_LINE',1);lFb=new rFb('MANHATTAN',2);jFb=new rFb('JITTER',3);nFb=new rFb('QUADRANTS_LINE_BY_LINE',4);oFb=new rFb('QUADRANTS_MANHATTAN',5);mFb=new rFb('QUADRANTS_JITTER',6);iFb=new rFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);hFb=new rFb('COMBINE_JITTER_MANHATTAN',8)} +function qoc(a,b,c,d){var e,f,g,h,i,j;i=voc(a,c);j=voc(b,c);e=false;while(!!i&&!!j){if(d||toc(i,j,c)){g=voc(i,c);h=voc(j,c);yoc(b);yoc(a);f=i.c;rbc(i,false);rbc(j,false);if(c){Y_b(b,j.p,f);b.p=j.p;Y_b(a,i.p+1,f);a.p=i.p}else{Y_b(a,i.p,f);a.p=i.p;Y_b(b,j.p+1,f);b.p=j.p}Z_b(i,null);Z_b(j,null);i=g;j=h;e=true}else{break}}return e} +function QDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new nlb(d.j);h.a=b.length){throw ubb(new pcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new _Hc(d);PHc(this.e,this.c,(Pcd(),Ocd));this.i=new _Hc(d);PHc(this.i,this.c,ucd);this.f=new djc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(i0b(),d0b);this.a&&gjc(this,a,b.length)} +function gKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Ddd(),udd));g=a.B.Hc(xdd);a.a=new EHb(g,f,a.c);!!a.n&&t_b(a.a.n,a.n);kIb(a.g,(fHb(),dHb),a.a);if(!b){d=new lIb(1,f,a.c);d.n.a=a.k;Mpb(a.p,(Pcd(),vcd),d);e=new lIb(1,f,a.c);e.n.d=a.k;Mpb(a.p,Mcd,e);h=new lIb(0,f,a.c);h.n.c=a.k;Mpb(a.p,Ocd,h);c=new lIb(0,f,a.c);c.n.b=a.k;Mpb(a.p,ucd,c)}} +function Ugc(a){var b,c,d;b=BD(uNb(a.d,(Lyc(),Qwc)),218);switch(b.g){case 2:c=Mgc(a);break;case 3:c=(d=new Qkb,LAb(IAb(MAb(KAb(KAb(new XAb(null,new Jub(a.d.b,16)),new Rhc),new Thc),new Vhc),new dhc),new Xhc(d)),d);break;default:throw ubb(new Ydb('Compaction not supported for '+b+' edges.'));}Tgc(a,c);qeb(new Oib(a.g),new Dhc(a))} +function Y1c(a,b){var c;c=new yNb;!!b&&sNb(c,BD(Nhb(a.a,B2),94));JD(b,470)&&sNb(c,BD(Nhb(a.a,F2),94));if(JD(b,353)){sNb(c,BD(Nhb(a.a,C2),94));return c}JD(b,82)&&sNb(c,BD(Nhb(a.a,y2),94));if(JD(b,239)){sNb(c,BD(Nhb(a.a,D2),94));return c}if(JD(b,186)){sNb(c,BD(Nhb(a.a,E2),94));return c}JD(b,351)&&sNb(c,BD(Nhb(a.a,A2),94));return c} +function vSb(){vSb=bcb;nSb=new Jsd((U9c(),z9c),leb(1));tSb=new Jsd(P9c,80);sSb=new Jsd(I9c,5);aSb=new Jsd(n8c,ome);oSb=new Jsd(A9c,leb(1));rSb=new Jsd(D9c,(Acb(),true));kSb=new p0b(50);jSb=new Jsd(b9c,kSb);cSb=K8c;lSb=p9c;bSb=new Jsd(x8c,false);iSb=a9c;hSb=Z8c;gSb=U8c;fSb=S8c;mSb=t9c;eSb=(RRb(),KRb);uSb=PRb;dSb=JRb;pSb=MRb;qSb=ORb} +function YXb(a){var b,c,d,e,f,g,h,i;i=new iYb;for(h=new nlb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Dkb(c.e,b)}if(e==(i0b(),f0b)||e==h0b){for(g=new nlb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&kte)!=0&&(f|=64)}(c.Bb&Oje)!=0&&(f|=zve);f|=xve}else{if(JD(b,457)){f|=512}else{d=b.Aj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} +function hc(a,b){var c,d,e,f,g;a=a==null?She:(tCb(a),a);for(e=0;ea.d[h.p]){c+=vHc(a.b,f);Vjb(a.a,leb(f))}}else{++g}}c+=a.b.d*g;while(!_jb(a.a)){tHc(a.b,BD(ekb(a.a),19).a)}}return c} +function T6d(a,b){var c;if(a.f==R6d){c=V1d(l1d((J6d(),H6d),b));return a.e?c==4&&b!=(h8d(),f8d)&&b!=(h8d(),c8d)&&b!=(h8d(),d8d)&&b!=(h8d(),e8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(W1d(l1d((J6d(),H6d),b)))||a.d.Hc(_0d((J6d(),H6d),a.b,b)))){return true}if(a.f){if(s1d((J6d(),a.f),Y1d(l1d(H6d,b)))){c=V1d(l1d(H6d,b));return a.e?c==4:c==2}}return false} +function eVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(ckd(c,(U9c(),y9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=_qe);e+=b;e>_qe&&(e-=_qe);h=BD(ckd(d,y9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=_qe);f+=b;f>_qe&&(f-=_qe);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))} +function XDb(a){var b,c,d,e,f,g,h;h=new Kqb;for(d=new nlb(a.a.b);d.a=b.o){throw ubb(new qcb)}i=c>>5;h=c&31;g=Mbb(1,Sbb(Mbb(h,1)));f?(b.n[d][i]=Lbb(b.n[d][i],g)):(b.n[d][i]=wbb(b.n[d][i],Kbb(g)));g=Mbb(g,1);e?(b.n[d][i]=Lbb(b.n[d][i],g)):(b.n[d][i]=wbb(b.n[d][i],Kbb(g)))}catch(a){a=tbb(a);if(JD(a,320)){throw ubb(new pcb(yle+b.o+'*'+b.p+zle+c+Nhe+d+Ale))}else throw ubb(a)}} +function xUc(a,b,c,d){var e,f,g;if(b){f=Ddb(ED(uNb(b,(iTc(),bTc))))+d;g=c+Ddb(ED(uNb(b,ZSc)))/2;xNb(b,gTc,leb(Sbb(Bbb($wnd.Math.round(f)))));xNb(b,hTc,leb(Sbb(Bbb($wnd.Math.round(g)))));b.d.b==0||xUc(a,BD(pr((e=Isb((new VRc(b)).a.d,0),new YRc(e))),86),c+Ddb(ED(uNb(b,ZSc)))+a.a,d+Ddb(ED(uNb(b,$Sc))));uNb(b,eTc)!=null&&xUc(a,BD(uNb(b,eTc),86),c,d)}} +function M9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=P_b(b.a);e=Ddb(ED(uNb(i,(Lyc(),nyc))))*2;k=Ddb(ED(uNb(i,uyc)));j=$wnd.Math.max(e,k);f=KC(UD,Qje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new nlb(b.e);m.a0){d=(!a.n&&(a.n=new ZTd(C2,a,1,7)),BD(lud(a.n,0),137)).a;!d||Pfb(Pfb((b.a+=' "',b),d),'"')}}else{Pfb(Pfb((b.a+=' "',b),c),'"')}Pfb(Kfb(Pfb(Kfb(Pfb(Kfb(Pfb(Kfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function jpd(a){var b,c,d;if((a.Db&64)!=0)return ald(a);b=new Vfb(bte);c=a.k;if(!c){!a.n&&(a.n=new ZTd(C2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new ZTd(C2,a,1,7)),BD(lud(a.n,0),137)).a;!d||Pfb(Pfb((b.a+=' "',b),d),'"')}}else{Pfb(Pfb((b.a+=' "',b),c),'"')}Pfb(Kfb(Pfb(Kfb(Pfb(Kfb(Pfb(Kfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function d4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Ohb(a.a,b),149);if(!e){for(d=(h=(new Zib(a.b)).a.vc().Kc(),new cjb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(cfb(g.substr(g.length-i,i),b)&&(b.length==g.length||afb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Rhb(a.a,b,e)}return e} +function PLb(a,b){var c,d,e,f;c=new ULb;d=BD(FAb(MAb(new XAb(null,new Jub(a.f,16)),c),zyb(new gzb,new izb,new Fzb,new Hzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Dyb),Cyb]))),21);e=d.gc();d=BD(FAb(MAb(new XAb(null,new Jub(b.f,16)),c),zyb(new gzb,new izb,new Fzb,new Hzb,OC(GC(xL,1),Fie,132,0,[Dyb,Cyb]))),21);f=d.gc();if(ee.p){F0b(f,Mcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Mcd&&e.p>a.p){F0b(f,vcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} +function JOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new b7c(e,c.b);Csb(b.a,d)}j7c(b.a,OC(GC(l1,1),iie,8,0,[m,l]))} +function Iid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=SKd(b.Sg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b._g(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&EGb(a);vGb(a);uGb(a);c=yGb(a);d=0;while(!!c&&d0&&Csb(a.e,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Csb(a.d,f)}}}}} +function $Kb(a){var b,c,d,e,f,g,h,i,j;h=new Gxb(BD(Qb(new mLb),62));j=Lje;for(c=new nlb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.ql(f._j());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Rxd(a,b,c),72);h!=i&&BLd(a,new zSd(a.e,7,g,leb(h),n.dd(),i));return m}}}else{return BD(nud(a,b,c),72)}return BD(Rxd(a,b,c),72)} +function Pcc(a,b){var c,d,e,f,g,h,i;Jdd(b,'Port order processing',1);i=BD(uNb(a,(Lyc(),Zxc)),422);for(d=new nlb(a.b);d.a=0){h=bD(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&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} +function ODc(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 nlb(a.a);h.a0&&(ACb(0,a.length),a.charCodeAt(0)==45||(ACb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw ubb(new Neb(Jje+a+'"'))}return h} +function cnc(a){var b,c,d,e,f,g,h;g=new Osb;for(f=new nlb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(i0b(),e0b)){yac(BD(a.a[a.b],10),(nbd(),jbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(i0b(),e0b)){yac(BD(a.a[a.c-1&a.a.length-1],10),(nbd(),kbd))}else if((a.c-a.b&a.a.length-1)==2){yac(BD(akb(a),10),(nbd(),jbd));yac(BD(akb(a),10),kbd)}else{vac(a,e)}Xjb(a)} +function lRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(yyd(e),33);g='';(!d.n&&(d.n=new ZTd(C2,d,1,7)),d.n).i==0||(g=BD(lud((!d.n&&(d.n=new ZTd(C2,d,1,7)),d.n),0),137).a);h=new TRc(f++,b,g);sNb(h,d);xNb(h,(iTc(),_Sc),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);Csb(b.b,h);irb(c.f,d,h)}} +function A2b(a){var b,c,d,e,f;d=BD(uNb(a,(utc(),Ysc)),33);f=BD(ckd(d,(Lyc(),Dxc)),174).Hc((odd(),ndd));if(!a.e){e=BD(uNb(a,Isc),21);b=new b7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Mrc(),Frc))){ekd(d,Txc,(_bd(),Wbd));vfd(d,b.a,b.b,false,true)}else{Bcb(DD(ckd(d,Exc)))||vfd(d,b.a,b.b,true,true)}}f?ekd(d,Dxc,oqb(ndd)):ekd(d,Dxc,(c=BD(fdb(H1),9),new wqb(c,BD($Bb(c,c.length),9),0)))} +function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(afb(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=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new iSd(a,1,h,g,null);!d?(d=f):d.Di(f)}if(c>=0){f=new iSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Di(f)}}return d} +function GEd(a){var b,c,d;if(a.b==null){d=new Gfb;if(a.i!=null){Dfb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){TEd(a.i)||(d.a+='//',d);Dfb(d,a.a)}if(a.d!=null){d.a+='/';Dfb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=IZc(d,m,false),i.a);if(k+h+l<=b.b){GZc(c,f-c.s);c.c=true;GZc(d,f-c.s);KZc(d,c.s,c.t+c.d+h);d.k=true;SZc(c.q,d);n=true;if(e){o$c(b,d);d.j=b;if(a.c.length>g){r$c((sCb(g,a.c.length),BD(a.c[g],200)),d);(sCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Jkb(a,g)}}}return n} +function jcc(a,b){var c,d,e,f,g,h;Jdd(b,'Partition midprocessing',1);e=new Hp;LAb(IAb(new XAb(null,new Jub(a.a,16)),new ncc),new pcc(e));if(e.d==0){return}h=BD(FAb(TAb((f=e.i,new XAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Cyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);icc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Ldd(b)} +function CYb(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 Qkb;f=(d=BD(fdb(E1),9),new wqb(d,BD($Bb(d,d.length),9),0));g=new qgd(e,f)}BD(g.a,15).Fc(b);b.k==(i0b(),d0b)&&BD(g.b,21).Fc(BD(uNb(b,(utc(),Fsc)),61));for(i=new nlb(b.j);i.a0){e=BD(a.Ab.g,1933);if(b==null){for(f=0;f1){for(d=new nlb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Phe,1,0,5,1)}e==h&&Dkb(k,new qgd(c.c.i,c))}lmb();Nkb(k,a.c);Ckb(a.b,i.p,k)}}} +function IMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new nlb(b.b);g.ah){h=e;k.c=KC(SI,Phe,1,0,5,1)}e==h&&Dkb(k,new qgd(c.d.i,c))}lmb();Nkb(k,a.c);Ckb(a.f,i.p,k)}}} +function U7c(a){n4c(a,new A3c(L3c(I3c(K3c(J3c(new N3c,mse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new X7c)));l4c(a,mse,Xle,Q7c);l4c(a,mse,rme,15);l4c(a,mse,qme,leb(0));l4c(a,mse,Fre,Fsd(K7c));l4c(a,mse,Ame,Fsd(M7c));l4c(a,mse,zme,Fsd(O7c));l4c(a,mse,Wle,lse);l4c(a,mse,vme,Fsd(L7c));l4c(a,mse,Ome,Fsd(N7c));l4c(a,mse,nse,Fsd(I7c));l4c(a,mse,hqe,Fsd(J7c))} +function V$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Pcd(),Ncd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Pcd(),Ocd}else if(j+h>g){return Pcd(),ucd}break;case 4:case 3:if(k<0){return Pcd(),vcd}else if(k+c>f){return Pcd(),Mcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Pcd(),Ocd):i+d>=1&&i-d>=0?(Pcd(),ucd):d<0.5?(Pcd(),vcd):(Pcd(),Mcd)} +function lJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Ddb(ED(uNb(b,(Lyc(),tyc))));o=Lie*k;for(e=new nlb(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 UGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new E6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),838);for(l=new nlb(h.wf());l.a0){if(h.a){j=h.b.rf().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=BD(Hkb(h.c.d,0),181).rf().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(ocd(a.u)){f=nfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} +function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Ihe;case 12:return b!=null&&(typeof b===Ehe||typeof b==Ihe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.hm===fcb);case 1:return OD(b)&&!(b.hm===fcb)||AD(b,a.__elementTypeId$);default:return true;}} +function wOb(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 lgb(a,b){var c,d,e,f,g,h;e=ogb(a);h=ogb(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)*Sje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Sje)+1);if(c>d+1){return e}else if(c0&&(g=Ngb(g,Jhb(d)));return Hgb(f,g)}}else return e0&&a.d!=(xTb(),wTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(xTb(),uTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new b7c(h/f,b.d.b);case 2:return new b7c(b.d.a,i/f);default:return new b7c(h/f,i/f);}} +function Ucc(a,b){Ncc();var c,d,e,f,g;g=BD(uNb(a.i,(Lyc(),Txc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(_bd(),Vbd)||g==Xbd||g==Wbd)){return 0}if(g==(_bd(),Vbd)){c=BD(uNb(a,Uxc),19);d=BD(uNb(b,Uxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Jdb(a.n.a,b.n.a);case 2:return Jdb(a.n.b,b.n.b);case 3:return Jdb(b.n.a,a.n.a);case 4:return Jdb(b.n.b,a.n.b);default:throw ubb(new Ydb(dne));}} +function ofd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new sMd(x2,a,5)),a.a).i+2;g=new Rkb(c);Dkb(g,new b7c(a.j,a.k));LAb(new XAb(null,(!a.a&&(a.a=new sMd(x2,a,5)),new Jub(a.a,16))),new Lfd(g));Dkb(g,new b7c(a.b,a.c));b=1;while(b0){iEb(i,false,(aad(),Y9c));iEb(i,true,Z9c)}Gkb(b.g,new Zhc(a,c));Qhb(a.g,b,c)} +function Meb(){Meb=bcb;var a;Ieb=OC(GC(WD,1),jje,25,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]);Jeb=KC(WD,jje,25,37,15,1);Keb=OC(GC(WD,1),jje,25,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]);Leb=KC(XD,Nje,25,37,14,1);for(a=2;a<=36;a++){Jeb[a]=QD($wnd.Math.pow(a,Ieb[a]));Leb[a]=zbb(mie,Jeb[a])}} +function kfd(a){var b;if((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a).i!=1){throw ubb(new Vdb(Pse+(!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a).i))}b=new o7c;!!Ysd(BD(lud((!a.b&&(a.b=new t5d(y2,a,4,7)),a.b),0),82))&&ye(b,lfd(a,Ysd(BD(lud((!a.b&&(a.b=new t5d(y2,a,4,7)),a.b),0),82)),false));!!Ysd(BD(lud((!a.c&&(a.c=new t5d(y2,a,5,8)),a.c),0),82))&&ye(b,lfd(a,Ysd(BD(lud((!a.c&&(a.c=new t5d(y2,a,5,8)),a.c),0),82)),true));return b} +function XMc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(ULc(),TLc)?Q_b(b.b):T_b(b.b)):(e=a.a.c==(ULc(),SLc)?Q_b(b.b):T_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Bcb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!NZb(c)&&c.c.i.c==c.d.i.c){continue}if(Bcb(a.a.n[a.a.g[b.b.p].p])||Bcb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Qqb(a.b,a.a.g[PMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} +function Ydd(a,b,c,d,e){var f,g,h,i,j,k,l;lmb();Nkb(a,new Med);h=new Aib(a,0);l=new Qkb;f=0;while(h.bf*2){k=new red(l);j=med(g)/led(g);i=aed(k,b,new o0b,c,d,e,j);L6c(T6c(k.e),i);l.c=KC(SI,Phe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=med(k)*led(k)+med(g)*led(g)}else{l.c[l.c.length]=g;f+=med(g)*led(g)}}return l} +function lwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.dj()){i=a.ej();uvd(a,b,c);g=d==1?a.Yi(3,null,c.Kc().Pb(),b,i):a.Yi(5,null,c,b,i);if(a.aj()){h=d<100?null:new Dxd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.mh()&&Mwd(new jSd(a.Cb,9,13,c,a.c,CLd(LSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.mh()){b=a.c;JD(b,88)||(b=(eGd(),WFd));JD(c,88)||(c=(eGd(),WFd));Mwd(new jSd(a.Cb,9,10,c,b,CLd(QKd(BD(a.Cb,26)),a)))}}}}return a.c} +function e7b(a,b){var c,d,e,f,g,h,i,j,k,l;Jdd(b,'Hypernodes processing',1);for(e=new nlb(a.b);e.ac);return e} +function SFc(a,b){var c,d,e;d=Bub(a.d,1)!=0;!Bcb(DD(uNb(b.j,(utc(),Hsc))))&&!Bcb(DD(uNb(b.j,ktc)))||PD(uNb(b.j,(Lyc(),wwc)))===PD((rAc(),pAc))?b.c.Tf(b.e,d):(d=Bcb(DD(uNb(b.j,Hsc))));$Fc(a,b,d,true);Bcb(DD(uNb(b.j,ktc)))&&xNb(b.j,ktc,(Acb(),false));if(Bcb(DD(uNb(b.j,Hsc)))){xNb(b.j,Hsc,(Acb(),false));xNb(b.j,ktc,true)}c=IFc(a,b);do{VFc(a);if(c==0){return 0}d=!d;e=c;$Fc(a,b,d,false);c=IFc(a,b)}while(e>c);return e} +function pNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=qNd(a,b);c=qNd(a,c);d=EQd(b);if(d){k=EQd(c);if(k!=d){if(!k){return false}else{i=d.Cj();o=k.Cj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new sMd(i5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new sMd(i5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=wFb(b,f);c?NFb(h.b,b):NFb(h.g,b);KFb(h).c.length==1&&(Fsb(d,h,d.c.b,d.c),true);e=new qgd(f,b);Vjb(a.o,e);Kkb(a.e.a,f)}} +function $Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(z6c(a.b).a-z6c(b.b).a);h=$wnd.Math.abs(z6c(a.b).b-z6c(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 hQc(a){var b,c,d,e;jQc(a,a.e,a.f,(BQc(),zQc),true,a.c,a.i);jQc(a,a.e,a.f,zQc,false,a.c,a.i);jQc(a,a.e,a.f,AQc,true,a.c,a.i);jQc(a,a.e,a.f,AQc,false,a.c,a.i);iQc(a,a.c,a.e,a.f,a.i);d=new Aib(a.i,0);while(d.b=65;c--){Vce[c]=c-65<<24>>24}for(d=122;d>=97;d--){Vce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){Vce[e]=e-48+52<<24>>24}Vce[43]=62;Vce[47]=63;for(f=0;f<=25;f++)Wce[f]=65+f&Xie;for(g=26,i=0;g<=51;++g,i++)Wce[g]=97+i&Xie;for(a=52,h=0;a<=61;++a,h++)Wce[a]=48+h&Xie;Wce[62]=43;Wce[63]=47} +function EXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new _6c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Ddb(ED(uNb(BD(a.Kc().Pb(),37),(Lyc(),mwc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}tXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new b7c(c+b,n+i+b)} +function iQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new nlb(b);g.af){return Pcd(),ucd}break;case 4:case 3:if(i<0){return Pcd(),vcd}else if(i+a.f>e){return Pcd(),Mcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Pcd(),Ocd):g+c>=1&&g-c>=0?(Pcd(),ucd):c<0.5?(Pcd(),vcd):(Pcd(),Mcd)} +function uhb(a,b,c,d,e){var f,g;f=vbb(wbb(b[0],Tje),wbb(d[0],Tje));a[0]=Sbb(f);f=Nbb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){lOc(i,i.d-e.d);e.c==(DOc(),BOc)&&jOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Fsb(b,i,b.c.b,b.c),true)}}}for(f=new nlb(a.f);f.a0){mOc(h,h.i-e.d);e.c==(DOc(),BOc)&&kOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Fsb(c,h,c.c.b,c.c),true)}}}} +function cSc(a,b,c){var d,e,f,g,h,i,j,k;Jdd(c,'Processor compute fanout',1);Thb(a.b);Thb(a.a);h=null;f=Isb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Wsb(f),86);Bcb(DD(uNb(j,(iTc(),fTc))))&&(h=j)}i=new Osb;Fsb(i,h,i.c.b,i.c);bSc(a,i);for(k=Isb(b.b,0);k.b!=k.d.c;){j=BD(Wsb(k),86);g=GD(uNb(j,(iTc(),WSc)));e=Ohb(a.b,g)!=null?BD(Ohb(a.b,g),19).a:0;xNb(j,VSc,leb(e));d=1+(Ohb(a.a,g)!=null?BD(Ohb(a.a,g),19).a:0);xNb(j,TSc,leb(d))}Ldd(c)} +function SPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=RPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&tib(d)}for(g=new nlb(n);g.a0);d.a.Xb(d.c=--d.b)}}}} +function Efe(){rfe();var a,b,c,d,e,f;if(bfe)return bfe;a=(++qfe,new Vfe(4));Sfe(a,Ffe(rxe,true));Ufe(a,Ffe('M',true));Ufe(a,Ffe('C',true));f=(++qfe,new Vfe(4));for(d=0;d<11;d++){Pfe(f,d,d)}b=(++qfe,new Vfe(4));Sfe(b,Ffe('M',true));Pfe(b,4448,4607);Pfe(b,65438,65439);e=(++qfe,new Gge(2));Fge(e,a);Fge(e,afe);c=(++qfe,new Gge(2));c.Zl(wfe(f,Ffe('L',true)));c.Zl(b);c=(++qfe,new gge(3,c));c=(++qfe,new mge(e,c));bfe=c;return bfe} +function O3c(a){var b,c;b=GD(ckd(a,(U9c(),k8c)));if(P3c(b,a)){return}if(!dkd(a,B9c)&&((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a).i!=0||Bcb(DD(ckd(a,I8c))))){if(b==null||tfb(b).length==0){if(!P3c(nne,a)){c=Pfb(Pfb(new Vfb('Unable to load default layout algorithm '),nne),' for unconfigured node ');tfd(a,c);throw ubb(new u2c(c.a))}}else{c=Pfb(Pfb(new Vfb("Layout algorithm '"),b),"' not found for ");tfd(a,c);throw ubb(new u2c(c.a))}}} +function gIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){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);lHb(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 nlb(a.n);d.a1){for(d=Isb(e,0);d.b!=d.d.c;){c=BD(Wsb(d),231);f=0;for(i=new nlb(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);mHb(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;i=0&&f!=c){throw ubb(new Vdb(fue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,XNb(a,e,d))}h=$wnd.Math.min(h,NNb(a,f,h,d))}return h} +function dfd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw ubb(new Vdb('The vector chain must contain at least a source and a target point.'))}e=(rCb(a.b!=0),BD(a.a.a.c,8));imd(b,e.a,e.b);i=new Jyd((!b.a&&(b.a=new sMd(x2,b,5)),b.a));g=Isb(a,1);while(g.aDdb(MEc(g.g,g.d[0]).a)){rCb(i.b>0);i.a.Xb(i.c=--i.b);zib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Qkb),h.e).Mc(b);j=(!h.e&&(h.e=new Qkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Qkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} +function ndc(a){var b,c,d;if(bcd(BD(uNb(a,(Lyc(),Txc)),98))){for(c=new nlb(a.j);c.a>>0,'0'+b.toString(16));d='\\x'+pfb(c,c.length-2,c.length)}else if(a>=Oje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+pfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&Xie);}return d} +function xhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Ugb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=wbb(a.a[0],Tje);d=wbb(b.a[0],Tje);g<0&&(c=Ibb(c));i<0&&(d=Ibb(d));return fhb(Pbb(c,d))}e=f!=h?f>h?1:-1:vhb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?yhb(b.a,h,a.a,f):thb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Ggb(),Fgb}k=yhb(a.a,f,b.a,h)}else{k=thb(a.a,f,b.a,h)}}j=new Ugb(l,k.length,k);Igb(j);return j} +function UPc(a){var b,c,d,e,f,g;this.e=new Qkb;this.a=new Qkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw ubb(new Vdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;PPc(this,a.b+this.b-1);g=new Qkb;f=new nlb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Hkb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Hkb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){AZc(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)){Dkb(b.b,c);h=BD(Hkb(b.n,b.n.c.length-1),211);Dkb(b.n,new RZc(b.s,h.f+h.a+b.i,b.i));MZc(BD(Hkb(b.n,b.n.c.length-1),211),c);CZc(b,c);return true}}return false} +function Uxd(a,b,c){var d,e,f,g;if(a.dj()){e=null;f=a.ej();d=a.Yi(1,g=pud(a,b,c),c,b,f);if(a.aj()&&!(a.mi()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.cj(g,e));e=a.bj(c,e);a.hj()&&(e=a.kj(g,c,e));if(!e){a.Zi(d)}else{e.Di(d);e.Ei()}}else{a.hj()&&(e=a.kj(g,c,e));if(!e){a.Zi(d)}else{e.Di(d);e.Ei()}}return g}else{g=pud(a,b,c);if(a.aj()&&!(a.mi()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.cj(g,null));e=a.bj(c,e);!!e&&e.Ei()}return g}} +function YA(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 npc(a,b){var c,d,e,f,g;Jdd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Ldd(b);return}e=new Woc(a);g=(e.i==null&&(e.i=Roc(e,new Yoc)),Ddb(e.i)*e.f);c=g/(e.i==null&&(e.i=Roc(e,new Yoc)),Ddb(e.i));if(e.b>c){Ldd(b);return}switch(BD(uNb(a,(Lyc(),Eyc)),336).g){case 2:f=new gpc;break;case 0:f=new Xnc;break;default:f=new jpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(uNb(a,Kyc),337).g){case 2:d=spc(e,d);break;case 1:d=qpc(e,d);}}mpc(a,e,d);Ldd(b)} +function HFc(a,b){var c,d,e,f;Eub(a.d,a.e);a.c.a.$b();if(Ddb(ED(uNb(b.j,(Lyc(),swc))))!=0||Ddb(ED(uNb(b.j,swc)))!=0){c=$le;PD(uNb(b.j,wwc))!==PD((rAc(),pAc))&&xNb(b.j,(utc(),Hsc),(Acb(),true));f=BD(uNb(b.j,yyc),19).a;for(e=0;ee&&++j;Dkb(g,(sCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(sCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>med(h)*led(h)/2||g.b==0)){l=new red(m);k=med(h)/led(h);j=aed(l,b,new o0b,c,d,e,k);L6c(T6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Phe,1,0,5,1)}}}Fkb(n,m);return n} +function t6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.lh(b)){k=(n=b,!n?null:BD(d,49).wh(n));if(k){p=c.ah(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!uUd(b);f=0;for(h=a.a?l.Kc():l.Yh();h.Ob();){j=BD(h.Pb(),56);e=BD(Vrb(a,j),56);if(!e){if(a.b&&!g){m.Wh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Wh(f,e):f!=i&&m.ii(f,e)}else{m.Wh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Vrb(a,p);e==null?a.b&&!uUd(b)&&k.Wb(p):k.Wb(e)}}}}} +function D6b(a,b){var c,d,e,f,g,h,i,j;c=new K6b;for(e=new Sr(ur(Q_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(NZb(d)){continue}h=d.c.i;if(E6b(h,B6b)){j=F6b(a,h,B6b,A6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Qkb);Dkb(c.a,h)}}for(g=new Sr(ur(T_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(NZb(f)){continue}i=f.d.i;if(E6b(i,A6b)){j=F6b(a,i,A6b,B6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Qkb);Dkb(c.c,i)}}return c} +function Jhb(a){Chb();var b,c,d,e;b=QD(a);if(a1000000){throw ubb(new ncb('power of ten too big'))}if(a<=Jhe){return Pgb(Ogb(Ahb[1],b),b)}d=Ogb(Ahb[1],Jhe);e=d;c=Bbb(a-Jhe);b=QD(a%Jhe);while(xbb(c,Jhe)>0){e=Ngb(e,d);c=Pbb(c,Jhe)}e=Ngb(e,Ogb(Ahb[1],b));e=Pgb(e,Jhe);c=Bbb(a-Jhe);while(xbb(c,Jhe)>0){e=Pgb(e,Jhe);c=Pbb(c,Jhe)}e=Pgb(e,b);return e} +function W5b(a,b){var c,d,e,f,g,h,i,j,k;Jdd(b,'Hierarchical port dummy size processing',1);i=new Qkb;k=new Qkb;d=Ddb(ED(uNb(a,(Lyc(),kyc))));c=d*2;for(f=new nlb(a.b);f.aj&&d>j){k=h;j=Ddb(b.p[h.p])+Ddb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Ndd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Ndd(c,b+' is feasible: '+e);return e} +function TNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new nlb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Qkb;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 qgd(n,m)} +function m4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new Zib(a.c.b)).a.vc().Kc(),new cjb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=e4c(a.c,e);!d&&e.length==0&&(d=q4c(a));!!d&&!ze(d.c,b,false)&&Csb(d.c,b)}for(g=Isb(a.a,0);g.b!=g.d.c;){f=BD(Wsb(g),478);k=f4c(a.c,f.a);n=f4c(a.c,f.b);!!k&&!!n&&Csb(k.c,new qgd(n,f.c))}Nsb(a.a);for(m=Isb(a.b,0);m.b!=m.d.c;){l=BD(Wsb(m),478);b=c4c(a.c,l.a);i=f4c(a.c,l.b);!!b&&!!i&&x3c(b,i,l.c)}Nsb(a.b)} +function lvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new drd;e=(ko(g.g),ko(g.j),Thb(g.b),ko(g.d),ko(g.i),Thb(g.k),Thb(g.c),Thb(g.e),n=$qd(g,f,null),Xqd(g,f),n);if(b){j=new fC(b);h=mvd(j);efd(e,OC(GC(f2,1),Phe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);lue in j.a&&(m=aC(j,lue).ge().a);mue in j.a&&(l=aC(j,mue).ge().a)}k=Qdd(Sdd(new Udd,m),l);p2c(new s2c,e,k);lue in f.a&&cC(f,lue,null);if(m||l){i=new eC;ivd(k,i,m,l);cC(f,lue,i)}d=new Krd(g);Bhe(new Wud(e),d)} +function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),jje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){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(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(afb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(nfb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} +function NKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new xNd;h=new xNd;b=FKd;g=b.a.zc(a,b);if(g==null){for(f=new Ayd(WKd(a));f.e!=f.i.gc();){e=BD(yyd(f),26);ttd(i,NKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new ZTd(s5,a,21,17)),new Ayd(a.s));d.e!=d.i.gc();){c=BD(yyd(d),170);JD(c,99)&&rtd(h,BD(c,18))}qud(h);a.r=new PNd(a,(BD(lud(UKd((IFd(),HFd).o),6),18),h.i),h.g);ttd(i,a.r);qud(i);a.f=new iNd((BD(lud(UKd(HFd.o),5),18),i.i),i.g);VKd(a).b&=-3}return a.f} +function qMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,jje,25,g,15,1);e=KC(WD,jje,25,g,15,1);c=a.p;b=KC(WD,jje,25,c,15,1);f=KC(WD,jje,25,c,15,1);for(j=0;j=0&&!XMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!XMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&_Mb(a,i,m,false,true)}}} +function kRb(a){var b,c,d,e,f,g,h,i;c=Bcb(DD(uNb(a,(vSb(),bSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=U6c($6c(new b7c(h.a,h.b),f),0.5);i=U6c(N6c(a.e),0.5);b=$6c(L6c(new b7c(f.a,f.b),g),i);Y6c(a.d,b)}else{e=Ddb(ED(uNb(a.a,sSb)));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 Lge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,Vie,25,f,15,1);zCb(0,f,a.length);zCb(0,f,i.length);efb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?pfb(c.a,0,f-1):''}}else{return !c?a:c.a}} +function CPb(a){n4c(a,new A3c(L3c(I3c(K3c(J3c(new N3c,Tle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new FPb)));l4c(a,Tle,Ule,Fsd(APb));l4c(a,Tle,Vle,Fsd(uPb));l4c(a,Tle,Wle,Fsd(pPb));l4c(a,Tle,Xle,Fsd(vPb));l4c(a,Tle,Uke,Fsd(yPb));l4c(a,Tle,Vke,Fsd(xPb));l4c(a,Tle,Tke,Fsd(zPb));l4c(a,Tle,Wke,Fsd(wPb));l4c(a,Tle,Ole,Fsd(rPb));l4c(a,Tle,Ple,Fsd(qPb));l4c(a,Tle,Qle,Fsd(sPb));l4c(a,Tle,Rle,Fsd(tPb))} +function Ybc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new a0b(a);$_b(f,(i0b(),h0b));xNb(f,(Lyc(),Txc),(_bd(),Wbd));e=0;if(b){g=new G0b;xNb(g,(utc(),Ysc),b);xNb(f,Ysc,b.i);F0b(g,(Pcd(),Ocd));E0b(g,f);m=j_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>dgb.length;c-=dgb.length){Qfb(e,dgb)}Rfb(e,dgb,QD(c));Pfb(e,d.substr(b))}else{c=b-c;Pfb(e,pfb(d,b,QD(c)));e.a+='.';Pfb(e,ofb(d,QD(c)))}}else{Pfb(e,d.substr(b));for(;c<-dgb.length;c+=dgb.length){Qfb(e,dgb)}Rfb(e,dgb,QD(-c))}return e.a} +function r6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=$6c(new b7c(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=L6c(new b7c(c.a,c.b),U6c(new b7c(d.a,d.b),0.5));f=O6c(a,e);g=O6c(L6c(new b7c(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?L6c(new b7c(a.a,a.b),U6c(new b7c(b.a,b.b),l)):null}} +function NTb(a,b,c){var d,e,f,g,h;d=BD(uNb(a,(Lyc(),xwc)),21);c.a>b.a&&(d.Hc((e8c(),$7c))?(a.c.a+=(c.a-b.a)/2):d.Hc(a8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((e8c(),c8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(b8c)&&(a.c.b+=c.b-b.b));if(BD(uNb(a,(utc(),Isc)),21).Hc((Mrc(),Frc))&&(c.a>b.a||c.b>b.b)){for(h=new nlb(a.a);h.ab.a&&(d.Hc((e8c(),$7c))?(a.c.a+=(c.a-b.a)/2):d.Hc(a8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((e8c(),c8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(b8c)&&(a.c.b+=c.b-b.b));if(BD(uNb(a,(utc(),Isc)),21).Hc((Mrc(),Frc))&&(c.a>b.a||c.b>b.b)){for(g=new nlb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new t$c(f,c);d=new LZc(0,k.f,k,c);o$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){AZc(d,i)}else{g=new LZc(d.s+d.r+c,k.f,k,c);o$c(k,g);AZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} +function JKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new BNd(a);b=new FNd;c=FKd;h=c.a.zc(a,c);if(h==null){for(g=new Ayd(WKd(a));g.e!=g.i.gc();){f=BD(yyd(g),26);ttd(i,JKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new ZTd(s5,a,21,17)),new Ayd(a.s));e.e!=e.i.gc();){d=BD(yyd(e),170);JD(d,322)&&rtd(b,BD(d,34))}qud(b);a.k=new KNd(a,(BD(lud(UKd((IFd(),HFd).o),7),18),b.i),b.g);ttd(i,a.k);qud(i);a.a=new iNd((BD(lud(UKd(HFd.o),4),18),i.i),i.g);VKd(a).b&=-2}return a.a} +function rZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=VZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(sCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=IZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;GZc(c,FZc(c,k))}else{WZc(c.q,i);c.c=true}GZc(d,e-(c.s+c.r));KZc(d,c.q.e+c.q.d,b.f);o$c(b,d);if(a.c.length>f){r$c((sCb(f,a.c.length),BD(a.c[f],200)),d);(sCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Jkb(a,f)}l=true}return l} +function x2d(a,b,c,d){var e,f,g,h,i,j,k;k=N6d(a.e.Sg(),b);e=0;f=BD(a.g,119);i=null;L6d();if(BD(b,66).Nj()){for(h=0;ha.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 mvd(a){var b,c,d,e,f,g,h,i;f=new Z1c;V1c(f,(U1c(),R1c));for(d=(e=$B(a,KC(ZI,iie,2,0,6,1)),new uib(new _lb((new mC(a,e)).b)));d.b0?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;Dkb(a.n,new RZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&MZc(BD(Hkb(a.n,l),211),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;q$c(a.j)}return new F6c(a.s,a.t,e,d)} +function Zfb(a,b,c,d,e){Yfb();var f,g,h,i,j,k,l,m,n;uCb(a,'src');uCb(c,'dest');m=rb(a);i=rb(c);qCb((m.i&4)!=0,'srcType is not an array');qCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;qCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw ubb(new ocb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&ZBb(a,b,c,d,e,true)} +function ohb(){ohb=bcb;mhb=OC(GC(WD,1),jje,25,15,[Mie,1162261467,Die,1220703125,362797056,1977326743,Die,387420489,Eje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Die,1291467969,1544804416,1838265625,60466176]);nhb=OC(GC(WD,1),jje,25,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 roc(a){var b,c,d,e,f,g,h,i;for(e=new nlb(a.b);e.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=Kje;a.p=Kje;for(f=new nlb(a.b);f.a0){e=(!a.n&&(a.n=new ZTd(C2,a,1,7)),BD(lud(a.n,0),137)).a;!e||Pfb(Pfb((b.a+=' "',b),e),'"')}}else{Pfb(Pfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new t5d(y2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new t5d(y2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Pfb(b,Eb(new Gb,new Ayd(a.b)));c&&(b.a+=']',b);b.a+=bne;c&&(b.a+='[',b);Pfb(b,Eb(new Gb,new Ayd(a.c)));c&&(b.a+=']',b);return b.a} +function OQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Cj();if(g!=null){f=gfb(g,vfb(91));if(f!=-1){i=g.substr(f);b.a+=''+pfb(g==null?She:(tCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Ayd(a.d);d.e!=d.i.gc();){c=BD(yyd(d),87);e?(e=false):(b.a+=Nhe,b);OQd(c,b)}b.a+='>'}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 ';OQd(a.b,b)}else{if(a.f){b.a+=' extends ';OQd(a.f,b)}}}} +function Y9b(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=Ikb(v.a,a,0);d=Ikb(w.a,b,0);t=BD(V_b(a,(IAc(),FAc)).Kc().Pb(),11);C=BD(V_b(a,GAc).Kc().Pb(),11);u=BD(V_b(b,FAc).Kc().Pb(),11);D=BD(V_b(b,GAc).Kc().Pb(),11);r=j_b(t.e);A=j_b(C.g);s=j_b(u.e);B=j_b(D.g);Y_b(a,d,w);for(g=s,k=0,o=g.length;kk){new zOc((DOc(),COc),c,b,j-k)}else if(j>0&&k>0){new zOc((DOc(),COc),b,c,0);new zOc(COc,c,b,0)}}return g} +function SUb(a,b){var c,d,e,f,g,h;for(g=new mib((new dib(a.f.b)).a);g.b;){f=kib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(aad(),_9c)&&e.gf()!=X9c){continue}}else{if(e.gf()!=(aad(),Y9c)&&e.gf()!=Z9c){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().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 jJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,jje,25,b.b.c.length,15,1);j=KC(NQ,Fie,267,b.b.c.length,0,1);i=KC(OQ,fne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=hBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new nlb(k.e);f.a1){throw ubb(new Vdb(Dwe))}if(!i){f=M6d(b,d.Kc().Pb());g.Fc(f)}}return std(a,D2d(a,b,c),g)} +function Omc(a,b){var c,d,e,f;Imc(b.b.j);LAb(MAb(new XAb(null,new Jub(b.d,16)),new Zmc),new _mc);for(f=new nlb(b.d);f.aa.o.b){return false}c=U_b(a,ucd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} +function shb(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=wbb(a.a[0],Tje);d=wbb(b.a[0],Tje);if(g==i){k=vbb(c,d);o=Sbb(k);n=Sbb(Obb(k,32));return n==0?new Tgb(g,o):new Ugb(g,2,OC(GC(WD,1),jje,25,15,[o,n]))}return fhb(g<0?Pbb(d,c):Pbb(c,d))}else if(g==i){m=g;l=f>=h?thb(a.a,f,b.a,h):thb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:vhb(a.a,b.a,f);if(e==0){return Ggb(),Fgb}if(e==1){m=g;l=yhb(a.a,f,b.a,h)}else{m=i;l=yhb(b.a,h,a.a,f)}}j=new Ugb(m,l.length,l);Igb(j);return j} +function nZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Bcb(DD(uNb(b,(Lyc(),txc))));m=null;f==(IAc(),FAc)&&d.c.i==c?(m=d.c):f==GAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Pcd(),Ncd);m?(k=m.j):bcd(BD(uNb(c,Txc),98))&&(k=f==FAc?Ocd:ucd);i=kZb(a,b,c,f,k,d);h=jZb((P_b(c),d));if(f==FAc){PZb(h,BD(Hkb(i.j,0),11));QZb(h,e)}else{PZb(h,e);QZb(h,BD(Hkb(i.j,0),11))}j=new xZb(d,h,i,BD(uNb(i,(utc(),Ysc)),11),f,!m)}else{Dkb(j.e,d);n=$wnd.Math.max(Ddb(ED(uNb(j.d,Xwc))),Ddb(ED(uNb(d,Xwc))));xNb(j.d,Xwc,n)}Rc(a.a,d,new AZb(j.d,b,f));return j} +function Q1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Ohb(a.d,b),138));if(!k){f=a.a.Lh();l=f.i;if(!a.d||Uhb(a.d)!=l){i=new Kqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Skb(BD(Qc(a.a,f),21));lmb();Nkb(d,new DZb(b));e=new Aib(f.b,0);while(e.bv)){i=2;g=Jhe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Fqe),($wnd.Math.abs(h)<=Fqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Fqe);if(($wnd.Math.abs(d)<=Fqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} +function Fge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Vvb);if(a.e==2){Svb(a.a,b);return}if(b.e==1){for(e=0;e=Oje?Dfb(c,Oee(d)):zfb(c,d&Xie);g=(++qfe,new Cge(10,null,0));Uvb(a.a,g,h-1)}else{c=(g.am().length+f,new Hfb);Dfb(c,g.am())}if(b.e==0){d=b.$l();d>=Oje?Dfb(c,Oee(d)):zfb(c,d&Xie)}else{Dfb(c,b.am())}BD(g,521).b=c.a} +function qgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=qhb(Bbb(a.f),QD(a.e));return a.g}e=rhb((!a.c&&(a.c=ehb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=ehb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Tfb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Sfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=pfb(f.a,0,b-1)+'0.'+ofb(f.a,b-1);Sfb(f,b+1,yfb(dgb,0,-QD(d)-1))}}else{if(c-b>=1){Sfb(f,b,String.fromCharCode(46));++c}Sfb(f,c,String.fromCharCode(69));d>0&&Sfb(f,++c,String.fromCharCode(43));Sfb(f,++c,''+Tbb(Bbb(d)))}a.g=f.a;return a.g} +function mpc(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=BD(d.Pb(),19).a;while(h1&&(i=j.lg(i,a.a,h))}if(i.c.length==1){return BD(Hkb(i,i.c.length-1),220)}if(i.c.length==2){return hYc((sCb(0,i.c.length),BD(i.c[0],220)),(sCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} +function INb(a){var b,c,d,e,f,g;Gkb(a.a,new ONb);for(c=new nlb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new Wzd(a.i,a.g);c=a.i;f=c<100?null:new Dxd(c);if(a.hj()){for(d=0;d0){h=a.g;j=a.i;jud(a);f=j<100?null:new Dxd(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&zje;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&=zje;u+=p>>22;p&=zje;u&=Aje;return TC(m,p,u)} +function n7b(a){var b,c,d,e,f,g,h;h=BD(Hkb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw ubb(new Ydb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Kje;for(c=new nlb(h.g);c.a4){if(a.vj(b)){if(a.qk()){e=BD(b,49);d=e.Tg();i=d==a.e&&(a.Ck()?e.Ng(e.Ug(),a.yk())==a.zk():-1-e.Ug()==a._i());if(a.Dk()&&!i&&!d&&!!e.Yg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}xNb(a,(utc(),ftc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=Zbd&&b!=$bd&&h!=Ncd){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 qwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.dj()){k=a.Ui();i=a.ej();if(k>0){b=new vud(a.Fi());c=k;f=c<100?null:new Dxd(c);xvd(a,c,b.g);e=c==1?a.Yi(4,lud(b,0),null,0,i):a.Yi(6,b,null,-1,i);if(a.aj()){for(d=new Ayd(b);d.e!=d.i.gc();){f=a.cj(yyd(d),f)}if(!f){a.Zi(e)}else{f.Di(e);f.Ei()}}else{if(!f){a.Zi(e)}else{f.Di(e);f.Ei()}}}else{xvd(a,a.Ui(),a.Vi());a.Zi(a.Yi(6,(lmb(),imb),null,-1,i))}}else if(a.aj()){k=a.Ui();if(k>0){h=a.Vi();j=k;xvd(a,k,h);f=j<100?null:new Dxd(j);for(d=0;da.d[g.p]){c+=vHc(a.b,f)*BD(i.b,19).a;Vjb(a.a,leb(f))}}while(!_jb(a.a)){tHc(a.b,BD(ekb(a.a),19).a)}}return c} +function _dd(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new c7c(BD(ckd(a,(T7c(),N7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(ckd(a,H7c));(e==null||(tCb(e),e)<=0)&&(e=1.3);h=new Qkb;for(o=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(yyd(o),33);g=new sed(n);h.c[h.c.length]=g}m=BD(ckd(a,I7c),311);switch(m.g){case 3:q=Ydd(h,b,l.a,l.b,(j=d,tCb(e),e,j));break;case 1:q=Xdd(h,b,l.a,l.b,(k=d,tCb(e),e,k));break;default:q=Zdd(h,b,l.a,l.b,(i=d,tCb(e),e,i));}f=new red(q);p=aed(f,b,c,l.a,l.b,d,(tCb(e),e));vfd(a,p.a,p.b,false,true)} +function ukc(a,b){var c,d,e,f;c=b.b;f=new Skb(c.j);e=0;d=c.j;d.c=KC(SI,Phe,1,0,5,1);gkc(BD(Si(a.b,(Pcd(),vcd),(Ekc(),Dkc)),15),c);e=hkc(f,e,new alc,d);gkc(BD(Si(a.b,vcd,Ckc),15),c);e=hkc(f,e,new clc,d);gkc(BD(Si(a.b,vcd,Bkc),15),c);gkc(BD(Si(a.b,ucd,Dkc),15),c);gkc(BD(Si(a.b,ucd,Ckc),15),c);e=hkc(f,e,new elc,d);gkc(BD(Si(a.b,ucd,Bkc),15),c);gkc(BD(Si(a.b,Mcd,Dkc),15),c);e=hkc(f,e,new glc,d);gkc(BD(Si(a.b,Mcd,Ckc),15),c);e=hkc(f,e,new ilc,d);gkc(BD(Si(a.b,Mcd,Bkc),15),c);gkc(BD(Si(a.b,Ocd,Dkc),15),c);e=hkc(f,e,new Okc,d);gkc(BD(Si(a.b,Ocd,Ckc),15),c);gkc(BD(Si(a.b,Ocd,Bkc),15),c)} +function mbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Jdd(b,'Layer size calculation',1);k=Kje;j=Lje;e=false;for(h=new nlb(a.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 Zdd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Qje,25,a.c.length,15,1);m=new fub(new Ied);$tb(m,a);j=0;p=new Qkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Hkb(m.b,0),157);if(j>1&&med(g)*led(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Iib(p,0,f+1);l=new red(o);k=med(g)/led(g);i=aed(l,b,new o0b,c,d,e,k);L6c(T6c(l.e),i);yCb(bub(m,l));n=new Iib(p,f+1,p.c.length);$tb(m,n);p.c=KC(SI,Phe,1,0,5,1);j=0;Clb(h,h.length,0)}else{q=m.b.c.length==0?null:Hkb(m.b,0);q!=null&&eub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=med(g)*led(g);++j;p.c[p.c.length]=g}}return p} +function Vac(a){var b,c,d,e,f;d=BD(uNb(a,(Lyc(),kxc)),163);if(d==(Atc(),wtc)){for(c=new Sr(ur(Q_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Xac(b)){throw ubb(new u2c(Ane+O_b(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==ytc){for(f=new Sr(ur(T_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Xac(e)){throw ubb(new u2c(Ane+O_b(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 B9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Jdd(b,'Label dummy removal',1);d=Ddb(ED(uNb(a,(Lyc(),lyc))));e=Ddb(ED(uNb(a,pyc)));j=BD(uNb(a,Jwc),103);for(i=new nlb(a.b);i.a0&&dCc(a,h,l)}for(e=new nlb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Bje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} +function B2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);YQc(h7c(OC(GC(l1,1),iie,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=BD(h.Pb(),11);YQc(h7c(OC(GC(l1,1),iie,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=BD(i.Pb(),11);YQc(h7c(OC(GC(l1,1),iie,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=BD(f.Pb(),11);YQc(h7c(OC(GC(l1,1),iie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=rid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return kid(b,l,f)}}else{d=-1;Ucb==null&&(Ucb=new RegExp('\\d'));if(Ucb.test(String.fromCharCode(i))){d=kfb(c,vfb(46),j-1);if(d>=0){e=BD(cid(b,wid(b,c.substr(1,d-1)),false),58);k=0;try{k=Hcb(c.substr(d+1),Mie,Jhe)}catch(a){a=tbb(a);if(JD(a,127)){g=a;throw ubb(new mFd(g))}else throw ubb(a)}if(k=0){return c}switch(V1d(l1d(a,c))){case 2:{if(cfb('',j1d(a,c.Gj()).ne())){i=Y1d(l1d(a,c));h=X1d(l1d(a,c));k=m1d(a,b,i,h);if(k){return k}e=a1d(a,b);for(g=0,l=e.gc();g1){throw ubb(new Vdb(Dwe))}k=N6d(a.e.Sg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new a1b(m.b);klb(j.a)||klb(j.b);){i=BD(klb(j.a)?llb(j.a):llb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(h7c(OC(GC(l1,1),iie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&CNc(a,i,g,f,m)}}} +function TPc(a){var b,c,d,e,f,g;e=new Aib(a.e,0);d=new Aib(a.a,0);if(a.d){for(c=0;cKqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);SPc(a,a.b-g,f,d,e);rCb(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 V9d(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 k5b(a,b,c){var d,e,f,g;Jdd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new nlb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new pPc(1,f);n=oPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} +function fKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;VJd(a,null)}else{a.F=(tCb(b),b);d=gfb(b,vfb(60));if(d!=-1){e=b.substr(0,d);gfb(b,vfb(46))==-1&&!cfb(e,Fhe)&&!cfb(e,Ave)&&!cfb(e,Bve)&&!cfb(e,Cve)&&!cfb(e,Dve)&&!cfb(e,Eve)&&!cfb(e,Fve)&&!cfb(e,Gve)&&(e=Hve);c=jfb(b,vfb(62));c!=-1&&(e+=''+b.substr(c+1));VJd(a,e)}else{e=b;if(gfb(b,vfb(46))==-1){d=gfb(b,vfb(91));d!=-1&&(e=b.substr(0,d));if(!cfb(e,Fhe)&&!cfb(e,Ave)&&!cfb(e,Bve)&&!cfb(e,Cve)&&!cfb(e,Dve)&&!cfb(e,Eve)&&!cfb(e,Fve)&&!cfb(e,Gve)){e=Hve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}VJd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Phd(a,new iSd(a,1,5,f,b))} +function wMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,jje,25,p,15,1);l=0;for(k=new nlb(b.b);k.ag)&&Pqb(a.b,BD(q.b,17))}}++h}f=g}}}} +function k5c(b,c){var d;if(c==null||cfb(c,She)){return null}if(c.length==0&&b.k!=(X5c(),S5c)){return null}switch(b.k.g){case 1:return dfb(c,gse)?(Acb(),zcb):dfb(c,hse)?(Acb(),ycb):null;case 2:try{return leb(Hcb(c,Mie,Jhe))}catch(a){a=tbb(a);if(JD(a,127)){return null}else throw ubb(a)}case 4:try{return Gcb(c)}catch(a){a=tbb(a);if(JD(a,127)){return null}else throw ubb(a)}case 3:return c;case 5:f5c(b);return i5c(b,c);case 6:f5c(b);return j5c(b,b.a,c);case 7:try{d=h5c(b);d.Jf(c);return d}catch(a){a=tbb(a);if(JD(a,32)){return null}else throw ubb(a)}default:throw ubb(new Ydb('Invalid type set for this layout option.'));}} +function IWb(a){zWb();var b,c,d,e,f,g,h;h=new BWb;for(c=new nlb(a);c.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 MWb((kWb(),gWb));qXb(a,xWb,new _lb(OC(GC(bQ,1),Phe,368,0,[d])));g=new MWb(jWb);qXb(a,wWb,new _lb(OC(GC(bQ,1),Phe,368,0,[g])));e=new MWb(hWb);qXb(a,vWb,new _lb(OC(GC(bQ,1),Phe,368,0,[e])));f=new MWb(iWb);qXb(a,uWb,new _lb(OC(GC(bQ,1),Phe,368,0,[f])));CWb(d.c,gWb);CWb(e.c,hWb);CWb(f.c,iWb);CWb(g.c,jWb);h.a.c=KC(SI,Phe,1,0,5,1);Fkb(h.a,d.c);Fkb(h.a,Su(e.c));Fkb(h.a,f.c);Fkb(h.a,Su(g.c));return h} +function exd(a){var b;switch(a.d){case 1:{if(a.gj()){return a.o!=-2}break}case 2:{if(a.gj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.fj();switch(a.p){case 0:return b!=null&&Bcb(DD(b))!=Jbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Sbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Sbb(a.k)&Xie);case 6:return b!=null&&Jbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Sbb(a.k);case 7:return b!=null&&BD(b,184).a!=Sbb(a.k)<<16>>16;case 3:return b!=null&&Ddb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} +function iOd(a,b,c){var d,e,f,g;if(a.Ek()&&a.Dk()){g=jOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Ni(b);a.Ti(b,kOd(a,b,g));if(a.qk()){f=(e=BD(c,49),a.Ck()?a.Ak()?e.hh(a.b,uUd(BD(SKd(rjd(a.b),a._i()),18)).n,BD(SKd(rjd(a.b),a._i()).Xj(),26).Aj(),null):e.hh(a.b,YKd(e.Sg(),uUd(BD(SKd(rjd(a.b),a._i()),18))),null,null):e.hh(a.b,-1-a._i(),null,null));!BD(g,49).dh()&&(f=(d=BD(g,49),a.Ck()?a.Ak()?d.fh(a.b,uUd(BD(SKd(rjd(a.b),a._i()),18)).n,BD(SKd(rjd(a.b),a._i()).Xj(),26).Aj(),f):d.fh(a.b,YKd(d.Sg(),uUd(BD(SKd(rjd(a.b),a._i()),18))),null,f):d.fh(a.b,-1-a._i(),null,f)));!!f&&f.Ei()}jid(a.b)&&a.Zi(a.Yi(9,c,g,b,false));return g}}return c} +function Moc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Ddb(ED(uNb(a,(Lyc(),myc))));d=Ddb(ED(uNb(a,Ayc)));m=new Wfd;xNb(m,myc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=F1b(p.c);t=F1b(s.c);e=new Qkb;for(l=q;l<=t;l++){h=new a0b(a);$_b(h,(i0b(),f0b));xNb(h,(utc(),Ysc),j);xNb(h,Txc,(_bd(),Wbd));xNb(h,oyc,m);n=BD(Hkb(a.b,l),29);l==q?Y_b(h,n.a.c.length-c,n):Z_b(h,n);u=Ddb(ED(uNb(j,Xwc)));if(u<0){u=0;xNb(j,Xwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new G0b;F0b(g,(Pcd(),Ocd));E0b(g,h);g.n.b=o;i=new G0b;F0b(i,ucd);E0b(i,h);i.n.b=o;QZb(j,g);f=new TZb;sNb(f,j);xNb(f,hxc,null);PZb(f,i);QZb(f,r);Noc(h,j,f);e.c[e.c.length]=f;j=f}return e} +function rbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(X_b(a,(Pcd(),Ocd)).Kc().Pb(),11).e;n=BD(X_b(a,ucd).Kc().Pb(),11).g;h=i.c.length;t=z0b(BD(Hkb(a.j,0),11));while(h-->0){p=(sCb(0,i.c.length),BD(i.c[0],17));e=(sCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Ikb(s,e,0);RZb(p,e.d,f);PZb(e,null);QZb(e,null);o=p.a;b&&Csb(o,new c7c(t));for(d=Isb(e.a,0);d.b!=d.d.c;){c=BD(Wsb(d),8);Csb(o,new c7c(c))}r=p.b;for(m=new nlb(e.b);m.a0&&(g=$wnd.Math.max(g,HJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(kle),$wnd.Math.abs(l-e)<=kle||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,(Iy(),My(kle),$wnd.Math.abs(l-1)<=kle||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} +function MKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Lpb(a.b,b),123);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((mcd(),icd));g=0;a.A.Hc((odd(),ndd))&&RKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Ddb(ED(d.b.We((BKb(),AKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,HJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(kle),$wnd.Math.abs(m-f)<=kle||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,(Iy(),My(kle),$wnd.Math.abs(m-1)<=kle||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} +function WEc(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,fne,10,h+i,0,1);for(g=0;g0?UEc(this,this.f/this.a):MEc(b.g,b.d[0]).a!=null&&MEc(c.g,c.d[0]).a!=null?UEc(this,(Ddb(MEc(b.g,b.d[0]).a)+Ddb(MEc(c.g,c.d[0]).a))/2):MEc(b.g,b.d[0]).a!=null?UEc(this,MEc(b.g,b.d[0]).a):MEc(c.g,c.d[0]).a!=null&&UEc(this,MEc(c.g,c.d[0]).a)} +function AUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new cVb(nqb(s1));for(d=new nlb(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;xNb(a,(Lyc(),Dxc),(odd(),d=BD(fdb(H1),9),new wqb(d,BD($Bb(d,d.length),9),0)))} +function dFd(a,b,c,d,e,f){var g;if(!(b==null||!JEd(b,uEd,vEd))){throw ubb(new Vdb('invalid scheme: '+b))}if(!a&&!(c!=null&&gfb(c,vfb(35))==-1&&c.length>0&&(ACb(0,c.length),c.charCodeAt(0)!=47))){throw ubb(new Vdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&gnb(BEd,b.toLowerCase()))&&!(c==null||!JEd(c,xEd,yEd))){throw ubb(new Vdb(hve+c))}if(a&&b!=null&&gnb(BEd,b.toLowerCase())&&!_Ed(c)){throw ubb(new Vdb(hve+c))}if(!aFd(d)){throw ubb(new Vdb('invalid device: '+d))}if(!cFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+QEd(e);throw ubb(new Vdb(g))}if(!(f==null||gfb(f,vfb(35))==-1)){throw ubb(new Vdb('invalid query: '+f))}} +function jVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Jdd(b,'Calculate Graph Size',1);b.n&&!!a&&Odd(b,d6d(a),(kgd(),hgd));h=$le;i=$le;f=are;g=are;for(l=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(yyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(ckd(j,(U9c(),O8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(ckd(a,(U9c(),b9c)),116);m=new b7c(h-n.b,i-n.d);for(k=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(yyd(k),33);$kd(j,j.i-m.a);_kd(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);Zkd(a,q);Xkd(a,c);b.n&&!!a&&Odd(b,d6d(a),(kgd(),hgd))} +function qGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Qkb;for(g=new nlb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,jje,25,a.b.b.c.length,15,1);l=0;for(j=new nlb(a.b.b);j.a=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(iLie)&&h<10);yVb(a.c,new $Ub);NUb(a);uVb(a.c);xUb(a.f)} +function rZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Bcb(DD(uNb(c,(Lyc(),dxc))))){return}for(h=new nlb(c.j);h.a=2){i=Isb(c,0);g=BD(Wsb(i),8);h=BD(Wsb(i),8);while(h.a0&&iEb(j,true,(aad(),Z9c));h.k==(i0b(),d0b)&&jEb(j);Qhb(a.f,h,b)}}} +function Abc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Jdd(c,'Node promotion heuristic',1);a.g=b;zbc(a);a.q=BD(uNb(b,(Lyc(),pxc)),260);k=BD(uNb(a.g,oxc),19).a;f=new Ibc;switch(a.q.g){case 2:case 1:Cbc(a,f);break;case 3:a.q=(iAc(),hAc);Cbc(a,f);i=0;for(h=new nlb(a.a);h.aa.j){a.q=bAc;Cbc(a,f)}break;case 4:a.q=(iAc(),hAc);Cbc(a,f);j=0;for(e=new nlb(a.b);e.aa.k){a.q=eAc;Cbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Cbc(a,new Lbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Cbc(a,new Obc(l));break;default:Cbc(a,f);}Dbc(a,b);Ldd(c)} +function tUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Isb((new VRc(b)).a.d,0),new YRc(g))),86);o=l?BD(uNb(l,(iTc(),XSc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Dkb(a.a,leb(1));Dkb(a.b,k)}else{d=a.c[b.p][1];Mkb(a.a,j,leb(BD(Hkb(a.a,j),19).a+1-d));Mkb(a.b,j,Ddb(ED(Hkb(a.b,j)))+k-d*a.e)}(a.q==(iAc(),bAc)&&(BD(Hkb(a.a,j),19).a>a.j||BD(Hkb(a.a,j-1),19).a>a.j)||a.q==eAc&&(Ddb(ED(Hkb(a.b,j)))>a.k||Ddb(ED(Hkb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(Q_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Bbc(a,h);e=e+BD(l.a,19).a;i=i&&Bcb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new qgd(leb(e),(Acb(),i?true:false))} +function oPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Kqb;g=new Qkb;mPc(a,c,a.d.eg(),g,l);mPc(a,d,a.d.fg(),g,l);a.b=0.2*(p=nPc(KAb(new XAb(null,new Jub(g,16)),new tPc)),q=nPc(KAb(new XAb(null,new Jub(g,16)),new vPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=SNc(g,true,m),!a.e&&(a.e=new VOc(a)),ROc(a.e,r,g,a.b),undefined);qPc(g,m);sPc(g);n=-1;for(k=new nlb(g);k.ah} +function j6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(uNb(a,(Lyc(),Txc)),98);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 Qkb;l=new Qkb;for(e=new nlb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(rCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&tib(k)}}}} +function Qmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.zj()){throw ubb(new Vdb(pte+c.ne()+qte))}e=j1d((J6d(),H6d),c).Zk();if(e){return e.zj().Mh().Hh(e,d)}h=j1d(H6d,c)._k();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Gfb;for(g=i.Kc();g.Ob();){f=g.Pb();Dfb(m,h.zj().Mh().Hh(h,f));m.a+=' '}return kcb(m,m.a.length-1)}l=j1d(H6d,c).al();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.vj(d)){try{m=j.zj().Mh().Hh(j,d);if(m!=null){return m}}catch(a){a=tbb(a);if(!JD(a,102))throw ubb(a)}}}throw ubb(new Vdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,833).Ej();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?xQd(Kmd[0],BD(d,199)):ecb(d)} +function vQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Osb;h=new Osb;for(f=new nlb(a);f.a-1){for(e=Isb(h,0);e.b!=e.d.c;){d=BD(Wsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new nlb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new nlb(i.j);o.a0&&(c/=l);r=KC(UD,Qje,25,d.a.c.length,15,1);h=0;for(j=new nlb(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(i0?(e-=86400000):(e+=86400000);i=new gB(vbb(Bbb(b.q.getTime()),e))}k=new Ufb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw ubb(new Vdb("Missing trailing '"))}g+10&&c.c==0){!b&&(b=new Qkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Jkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Qkb),new nlb(c.b));f.aIkb(a,c,0)){return new qgd(e,c)}}else if(Ddb(MEc(e.g,e.d[0]).a)>Ddb(MEc(c.g,c.d[0]).a)){return new qgd(e,c)}}}for(h=(!c.e&&(c.e=new Qkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Qkb),g.b);vCb(0,i.c.length);_Bb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} +function vlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return She}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new wwb(Nhe,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Vfb(c.d)):Pfb(c.a,c.b);Mfb(c.a,'[...]')}else{h=CD(d);j=new Uqb(b);twb(c,vlb(h,j))}}else JD(d,177)?twb(c,Wlb(BD(d,177))):JD(d,190)?twb(c,Plb(BD(d,190))):JD(d,195)?twb(c,Qlb(BD(d,195))):JD(d,2011)?twb(c,Vlb(BD(d,2011))):JD(d,48)?twb(c,Tlb(BD(d,48))):JD(d,363)?twb(c,Ulb(BD(d,363))):JD(d,831)?twb(c,Slb(BD(d,831))):JD(d,104)&&twb(c,Rlb(BD(d,104)))}else{twb(c,d==null?She:ecb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} +function wQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=dtd(b,false,false);r=jfd(h);d&&(r=s7c(r));t=Ddb(ED(ckd(b,(BPb(),uPb))));q=(rCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Qkb;Fkb(k,new Iib(r,1,r.b));f=rQb(k,t+a.a);s=new WOb(f);sNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Nhb(a.b,etd(b)),266)):(s=BD(Nhb(a.b,gtd(b)),266))}i=etd(b);d&&(i=gtd(b));g=yQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new b7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new b7c((l.a+q.a)/2,l.b)}d?Qhb(a.d,b,new YOb(s,g,p,j)):Qhb(a.c,b,new YOb(s,g,p,j));Qhb(a.b,b,s);o=(!b.n&&(b.n=new ZTd(C2,b,1,7)),b.n);for(n=new Ayd(o);n.e!=n.i.gc();){m=BD(yyd(n),137);e=vQb(a,m,true,0,0);c.c[c.c.length]=e}} +function sPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Qkb;h=new Qkb;for(g=new nlb(a);g.a-1){for(f=new nlb(h);f.a0){continue}nOc(i,$wnd.Math.min(i.o,e.o-1));mOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} +function LQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=AQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new iSd(a,1,2,j,a.c);!c?(c=i):c.Di(i)}if(j!=b){if(JD(a.Cb,283)){if(a.Db>>16==-10){c=BD(a.Cb,283).mk(b,c)}else if(a.Db>>16==-15){!b&&(b=(eGd(),TFd));!j&&(j=(eGd(),TFd));if(a.Cb.mh()){i=new kSd(a.Cb,1,13,j,b,CLd(LSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Di(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(eGd(),WFd));JD(j,88)||(j=(eGd(),WFd));if(a.Cb.mh()){i=new kSd(a.Cb,1,10,j,b,CLd(QKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Di(i)}}}else if(JD(a.Cb,445)){h=BD(a.Cb,835);g=(!h.b&&(h.b=new MYd(new IYd)),h.b);for(f=(d=new mib((new dib(g.a)).a),new UYd(d));f.a.b;){e=BD(kib(f.a).cd(),87);c=LQd(e,HQd(e,h),c)}}}return c} +function N1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Bcb(DD(ckd(a,(Lyc(),dxc))));m=BD(ckd(a,Wxc),21);i=false;j=false;l=new Ayd((!a.c&&(a.c=new ZTd(E2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(yyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Phe,20,0,[(!f.d&&(f.d=new t5d(A2,f,8,5)),f.d),(!f.e&&(f.e=new t5d(A2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Lld(d)&&Bcb(DD(ckd(d,exc)));c=zLd((!d.b&&(d.b=new t5d(y2,d,4,7)),d.b),f)?a==Sod(Xsd(BD(lud((!d.c&&(d.c=new t5d(y2,d,5,8)),d.c),0),82))):a==Sod(Xsd(BD(lud((!d.b&&(d.b=new t5d(y2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((mcd(),icd))&&(!f.n&&(f.n=new ZTd(C2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Mrc(),Frc));j&&b.Fc((Mrc(),Grc))} +function ufd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(ckd(a,(U9c(),U8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((odd(),mdd))){k=BD(ckd(a,p9c),98);d=2;c=2;e=2;f=2;b=!Sod(a)?BD(ckd(a,v8c),103):BD(ckd(Sod(a),v8c),103);for(j=new Ayd((!a.c&&(a.c=new ZTd(E2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(yyd(j),118);l=BD(ckd(i,w9c),61);if(l==(Pcd(),Ncd)){l=gfd(i,b);ekd(i,w9c,l)}if(k==(_bd(),Wbd)){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 vfd(a,h,g,true,true)} +function knc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(FAb(UAb(IAb(new XAb(null,new Jub(b.d,16)),new onc(c)),new qnc(c)),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Cyb)]))),15);l=Jhe;k=Mie;for(i=new nlb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Hkb(r.c.a,m),10);d=H4b(l);n=!(o6c(d,w,c[0])||j6c(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.p0&&(b.a+=Nhe,b);tfd(BD(yyd(h),160),b)}b.a+=bne;i=new Jyd((!d.c&&(d.c=new t5d(y2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=Nhe,b);tfd(BD(yyd(i),160),b)}b.a+=')'}}} +function x2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(uNb(a,(utc(),Ysc)),79);if(!f){return}d=a.a;e=new c7c(c);L6c(e,B2b(a));if(e_b(a.d.i,a.c.i)){m=a.c;l=h7c(OC(GC(l1,1),iie,8,0,[m.n,m.a]));$6c(l,c)}else{l=z0b(a.c)}Fsb(d,l,d.a,d.a.a);n=z0b(a.d);uNb(a,stc)!=null&&L6c(n,BD(uNb(a,stc),8));Fsb(d,n,d.c.b,d.c);m7c(d,e);g=dtd(f,true,true);fmd(g,BD(lud((!f.b&&(f.b=new t5d(y2,f,4,7)),f.b),0),82));gmd(g,BD(lud((!f.c&&(f.c=new t5d(y2,f,5,8)),f.c),0),82));dfd(d,g);for(k=new nlb(a.b);k.a=0){i=null;h=new Aib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Fqe),($wnd.Math.abs(g-1)<=Fqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Fqe),($wnd.Math.abs(0-h)<=Fqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Fqe),($wnd.Math.abs(h-1)<=Fqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} +function u6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new tsb(new msb(a));l.b!=l.c.a.d;){k=ssb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Sg();for(p=0,u=(g.i==null&&OKd(g),g.i).length;p=0&&p=j.c.c.length?(k=FJc((i0b(),g0b),f0b)):(k=FJc((i0b(),f0b),f0b));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 RNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Qkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(rCb(c.b!=0),BD(Msb(c,c.a.a),112));Iwb(v.a,t)!=null;t.g=l--;UNc(t,b,c,d)}while(b.b!=0){u=(rCb(b.b!=0),BD(Msb(b,b.a.a),112));Iwb(v.a,u)!=null;u.g=m++;UNc(u,b,c,d)}j=Mie;for(r=(g=new Xwb((new bxb((new Fjb(v.a)).a)).b),new Mjb(g));rib(r.a.a);){q=(f=Vwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Phe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Phe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Hkb(k,Aub(e,k.c.length)),112);Iwb(v.a,i)!=null;i.g=m++;UNc(i,b,c,d);k.c=KC(SI,Phe,1,0,5,1)}}s=a.c.length+1;for(o=new nlb(a);o.a0){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 c6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new b7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new nlb(a.a);j.a0){a.c[b.c.p][b.p].d+=Bub(a.i,24)*gke*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 l5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new nlb(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 k3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new nlb(a);j.a0||k.j==Ocd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new nlb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new nlb(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 kMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new nlb(a.a.b);e.aLje||b.o==$Lc&&k0&&$kd(r,u*w);v>0&&_kd(r,v*A)}rtb(a.b,new BQb);b=new Qkb;for(h=new mib((new dib(a.c)).a);h.b;){g=kib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=dtd(d,false,false);l=nQb(etd(d),jfd(e),c);dfd(l,e);t=ftd(d);if(!!t&&Ikb(b,t,0)==-1){b.c[b.c.length]=t;oQb(t,(rCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new mib((new dib(a.d)).a);q.b;){p=kib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=dtd(d,false,false);l=nQb(gtd(d),s7c(jfd(e)),c);l=s7c(l);dfd(l,e);t=htd(d);if(!!t&&Ikb(b,t,0)==-1){b.c[b.c.length]=t;oQb(t,(rCb(l.b!=0),BD(l.c.b.c,8)),c)}}} +function XVc(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;if(c.c.length!=0){o=new Qkb;for(n=new nlb(c);n.a1){n=new VQc(o,t,d);qeb(t,new LQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Kkb(f,k.b)}}if(h.a.gc()>1){n=new VQc(o,h,d);qeb(h,new NQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Kkb(f,k.b)}}}} +function WWc(a){n4c(a,new A3c(H3c(L3c(I3c(K3c(J3c(new N3c,ore),'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 ZWc),ore)));l4c(a,ore,qqe,Fsd(QWc));l4c(a,ore,rme,Fsd(TWc));l4c(a,ore,Ame,Fsd(JWc));l4c(a,ore,Ome,Fsd(KWc));l4c(a,ore,zme,Fsd(LWc));l4c(a,ore,Bme,Fsd(IWc));l4c(a,ore,yme,Fsd(MWc));l4c(a,ore,Cme,Fsd(PWc));l4c(a,ore,kre,Fsd(GWc));l4c(a,ore,jre,Fsd(HWc));l4c(a,ore,nre,Fsd(NWc));l4c(a,ore,hre,Fsd(OWc));l4c(a,ore,ire,Fsd(RWc));l4c(a,ore,lre,Fsd(SWc));l4c(a,ore,mre,Fsd(UWc))} +function KIb(a){var b;this.r=Cy(new NIb,new RIb);this.b=new Qpb(BD(Qb(E1),289));this.p=new Qpb(BD(Qb(E1),289));this.i=new Qpb(BD(Qb(DN),289));this.e=a;this.o=new c7c(a.rf());this.D=a.Df()||Bcb(DD(a.We((U9c(),I8c))));this.A=BD(a.We((U9c(),U8c)),21);this.B=BD(a.We(Z8c),21);this.q=BD(a.We(p9c),98);this.u=BD(a.We(t9c),21);if(!pcd(this.u)){throw ubb(new u2c('Invalid port label placement: '+this.u))}this.v=Bcb(DD(a.We(v9c)));this.j=BD(a.We(S8c),21);if(!Fbd(this.j)){throw ubb(new u2c('Invalid node label placement: '+this.j))}this.n=BD(Yfd(a,Q8c),116);this.k=Ddb(ED(Yfd(a,M9c)));this.d=Ddb(ED(Yfd(a,L9c)));this.w=Ddb(ED(Yfd(a,T9c)));this.s=Ddb(ED(Yfd(a,N9c)));this.t=Ddb(ED(Yfd(a,O9c)));this.C=BD(Yfd(a,R9c),142);this.c=2*this.d;b=!this.B.Hc((Ddd(),udd));this.f=new lIb(0,b,0);this.g=new lIb(1,b,0);kIb(this.f,(fHb(),dHb),this.g)} +function Ggd(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;t=0;o=0;n=0;m=1;for(s=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(yyd(s),33);m+=sr(new Sr(ur(Wsd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(yyd(r),33);C=e.b+(Bub(b,26)*dke+Bub(b,27)*eke)*(i-q.g);D=e.b+(Bub(b,26)*dke+Bub(b,27)*eke)*(h-q.f);$kd(q,C);_kd(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(yyd(v),33);for(k=new Sr(ur(Wsd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Kld(j)||Fgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;vfd(a,A,w,false,true)} +function Icb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw ubb(new Neb(She))}j=a;f=a.length;i=false;if(f>0){b=(ACb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw ubb(new Neb(Jje+j+'"'))}while(a.length>0&&(ACb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Meb(),Keb)[10]){throw ubb(new Neb(Jje+j+'"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(xbb(l,h)<0){throw ubb(new Neb(Jje+j+'"'))}l=Hbb(l,k)}l=Pbb(l,d)}if(xbb(l,0)>0){throw ubb(new Neb(Jje+j+'"'))}if(!i){l=Ibb(l);if(xbb(l,0)<0){throw ubb(new Neb(Jje+j+'"'))}}return l} +function U6d(a,b){S6d();var c,d,e,f,g,h,i;this.a=new X6d(this);this.b=a;this.c=b;this.f=Z1d(l1d((J6d(),H6d),b));if(this.f.dc()){if((h=o1d(H6d,a))==b){this.e=true;this.d=new Qkb;this.f=new jFd;this.f.Fc(Awe);BD(Q1d(k1d(H6d,YJd(a)),''),26)==a&&this.f.Fc(p1d(H6d,YJd(a)));for(e=b1d(H6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch(V1d(l1d(H6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(Z1d(l1d(H6d,d)));break}}}}else{L6d();if(BD(b,66).Nj()){this.e=true;this.f=null;this.d=new Qkb;for(g=0,i=(a.i==null&&OKd(a),a.i).length;g=0&&g0&&(BD(Lpb(a.b,b),123).a.b=c)} +function a3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Jdd(b,'Comment pre-processing',1);c=0;i=new nlb(a.a);while(i.a0){j=(ACb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(ACb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=cfb('%',h)?null:LEd(h);e=0;if(k){try{e=Hcb(c.substr(m+2),Mie,Jhe)}catch(a){a=tbb(a);if(JD(a,127)){i=a;throw ubb(new mFd(i))}else throw ubb(a)}}for(r=kRd(b.Vg());r.Ob();){p=HRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:cfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Hcb(c.substr(l+1),Mie,Jhe)}catch(a){a=tbb(a);if(JD(a,127)){o=c}else throw ubb(a)}}o=cfb('%',o)?null:LEd(o);for(q=kRd(b.Vg());q.Ob();){p=HRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:cfb(o,s))&&d--==0){return g}}}return null}}return mid(b,c)} +function e6b(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,F;w=new Qkb;for(o=new nlb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!wrb()){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[cke]=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 Zce(a){Xce();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=KC(TD,Vie,25,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++]=Wce[o];f[g++]=Wce[p|j<<4];f[g++]=Wce[k<<2|q];f[g++]=Wce[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++]=Wce[o];f[g++]=Wce[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++]=Wce[o];f[g++]=Wce[p|j<<4];f[g++]=Wce[k<<2];f[g++]=61}return yfb(f,0,f.length)} +function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Mie&&dB(b,a.p-ije);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-ije,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,vbb(Hbb(zbb(Bbb(b.q.getTime()),Wie),Wie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-ije-80);Fbb(Bbb(b.q.getTime()),Bbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-ije+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();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Mie){f=b.q.getTimezoneOffset();cB(b,vbb(Bbb(b.q.getTime()),(a.o-f)*60*Wie))}return true} +function y2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=uNb(b,(utc(),Ysc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new c7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(ckd(o,(Lyc(),Gxc)),174);if(tqb(u,(Ddd(),vdd))){n=BD(ckd(o,Ixc),116);v_b(n,f.a);y_b(n,f.d);w_b(n,f.b);x_b(n,f.c)}c=new Qkb;for(k=new nlb(b.a);k.a0&&Dkb(a.p,k);Dkb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Mkb(a.a,h,leb(n));Mkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} +function Pcd(){Pcd=bcb;var a;Ncd=new Tcd(jle,0);vcd=new Tcd(sle,1);ucd=new Tcd(tle,2);Mcd=new Tcd(ule,3);Ocd=new Tcd(vle,4);Acd=(lmb(),new yob((a=BD(fdb(E1),9),new wqb(a,BD($Bb(a,a.length),9),0))));Bcd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[])));wcd=Up(pqb(ucd,OC(GC(E1,1),Yme,61,0,[])));Jcd=Up(pqb(Mcd,OC(GC(E1,1),Yme,61,0,[])));Lcd=Up(pqb(Ocd,OC(GC(E1,1),Yme,61,0,[])));Gcd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[Mcd])));zcd=Up(pqb(ucd,OC(GC(E1,1),Yme,61,0,[Ocd])));Icd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[Ocd])));Ccd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[ucd])));Kcd=Up(pqb(Mcd,OC(GC(E1,1),Yme,61,0,[Ocd])));xcd=Up(pqb(ucd,OC(GC(E1,1),Yme,61,0,[Mcd])));Fcd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[ucd,Ocd])));ycd=Up(pqb(ucd,OC(GC(E1,1),Yme,61,0,[Mcd,Ocd])));Hcd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[Mcd,Ocd])));Dcd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[ucd,Mcd])));Ecd=Up(pqb(vcd,OC(GC(E1,1),Yme,61,0,[ucd,Mcd,Ocd])))} +function bSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Osb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Isb(b,0);t.b!=t.d.c;){r=BD(Wsb(t),86);if(PD(o)!==PD(uNb(r,(iTc(),WSc)))){o=GD(uNb(r,WSc));i=0}o!=null?(h=o+eSc(i++,d)):(h=eSc(i++,d));xNb(r,WSc,h);for(q=(e=Isb((new VRc(r)).a.d,0),new YRc(e));Vsb(q.a);){p=BD(Wsb(q.a),188).c;Fsb(n,p,n.c.b,n.c);xNb(p,WSc,h)}}m=new Kqb;for(g=0;g=i){rCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Dkb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Fkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);tib(r)}}}if(!e){e=new OCc;e.c=j;e.a=i;zib(r,e);Dkb(e.b,l)}}h=b.b;k=0;for(q=new nlb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} +function _bc(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;Jdd(b,Dne,1);p=new Qkb;w=new Qkb;for(j=new nlb(a.b);j.a0&&(t-=n);g_b(g,t);k=0;for(m=new nlb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}zFb(CFb(BFb(DFb(AFb(new EFb,1),100),n),q))}}}}}}} +function LEd(a){DEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=gfb(a,vfb(37));if(e<0){return a}else{i=new Vfb(a.substr(0,e));b=KC(SD,ste,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&WEd((ACb(e+1,a.length),a.charCodeAt(e+1)),sEd,tEd)&&WEd((ACb(e+2,a.length),a.charCodeAt(e+2)),sEd,tEd)){c=$Ed((ACb(e+1,a.length),a.charCodeAt(e+1)),(ACb(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:{Jfb(i,((b[0]&31)<<6|b[1]&63)&Xie);break}case 3:{Jfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&Xie);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),iie,2,6,[kje,lje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),iie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(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 yA(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(gw&&(o.c=w-o.b);Dkb(g.d,new ALb(o,aLb(g,o)));s=b==vcd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==vcd?a.t:-a.t;t=bLb((g.e=s,g));t>0&&(BD(Lpb(a.b,b),123).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);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 RPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Kqb;for(i=new Ayd(a);i.e!=i.i.gc();){h=BD(yyd(i),33);c=new Sqb;Qhb(NPb,h,c);n=new _Pb;e=BD(FAb(new XAb(null,new Kub(new Sr(ur(Vsd(h).a.Kc(),new Sq)))),Vyb(n,Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[(Eyb(),Cyb)])))),83);QPb(c,BD(e.xc((Acb(),true)),14),new bQb);d=BD(FAb(IAb(BD(e.xc(false),15).Lc(),new dQb),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[Cyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ftd(f);if(m){j=BD(Wd(hrb(b.f,m)),21);if(!j){j=TPb(m);irb(b.f,m,j)}ye(c,j)}}e=BD(FAb(new XAb(null,new Kub(new Sr(ur(Wsd(h).a.Kc(),new Sq)))),Vyb(n,Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[Cyb])))),83);QPb(c,BD(e.xc(true),14),new fQb);d=BD(FAb(IAb(BD(e.xc(false),15).Lc(),new hQb),Ayb(new ezb,new czb,new Dzb,OC(GC(xL,1),Fie,132,0,[Cyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=htd(k);if(m){j=BD(Wd(hrb(b.f,m)),21);if(!j){j=TPb(m);irb(b.f,m,j)}ye(c,j)}}}} +function qhb(a,b){ohb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=xbb(a,0)<0;i&&(a=Ibb(a));if(xbb(a,0)==0){switch(b){case 0:return '0';case 1:return Vje;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 Tfb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Mie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,Vie,25,k+1,15,1);c=k;p=a;do{j=p;p=zbb(p,10);l[--c]=Sbb(vbb(48,Pbb(j,Hbb(p,10))))&Xie}while(xbb(p,0)!=0);e=Pbb(Pbb(Pbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return yfb(l,c,k-c)}if(b>0&&xbb(e,-6)>=0){if(xbb(e,0)>=0){f=c+Sbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return yfb(l,c,k-c+1)}for(g=2;Fbb(g,vbb(Ibb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return yfb(l,c,k-c)}o=c+1;d=k;m=new Ufb;i&&(m.a+='-',m);if(d-o>=1){Jfb(m,l[c]);m.a+='.';m.a+=yfb(l,c+1,k-c-1)}else{m.a+=yfb(l,c,k-c)}m.a+='E';xbb(e,0)>0&&(m.a+='+',m);m.a+=''+Tbb(e);return m.a} +function eQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Phe,1,0,5,1);a.i.c=KC(SI,Phe,1,0,5,1);a.g.a.$b();if(b){for(g=new nlb(b.a);g.a=1){if(v-j>0&&o>=0){$kd(l,l.i+u);_kd(l,l.j+i*j)}else if(v-j<0&&n>=0){$kd(l,l.i+u*v);_kd(l,l.j+i)}}}}ekd(a,(U9c(),U8c),(odd(),f=BD(fdb(H1),9),new wqb(f,BD($Bb(f,f.length),9),0)));return new b7c(w,k)} +function Tfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Sod(Xsd(BD(lud((!a.b&&(a.b=new t5d(y2,a,4,7)),a.b),0),82)));o=Sod(Xsd(BD(lud((!a.c&&(a.c=new t5d(y2,a,5,8)),a.c),0),82)));l=n==o;h=new _6c;b=BD(ckd(a,(Vad(),Oad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a).i==0){c=(Ahd(),e=new mmd,e);rtd((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a).i>1){m=new Jyd((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a));while(m.e!=m.i.gc()){zyd(m)}}dfd(b,BD(lud((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a),0),202))}if(l){for(d=new Ayd((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(yyd(d),202);for(j=new Ayd((!c.a&&(c.a=new sMd(x2,c,5)),c.a));j.e!=j.i.gc();){i=BD(yyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Ayd((!a.n&&(a.n=new ZTd(C2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(yyd(g),137);k=BD(ckd(f,Uad),8);!!k&&Ykd(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 uMc(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;t=b.c.length;e=new QLc(a.a,c,null,null);B=KC(UD,Qje,25,t,15,1);p=KC(UD,Qje,25,t,15,1);o=KC(UD,Qje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new nlb(a.a.b);l.an){if(f){Esb(w,m);Esb(B,leb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}$kd(h,H);_kd(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(Flme;C=$wnd.Math.abs(m.b-o.b)>lme;(!c&&B&&C||c&&(B||C))&&Csb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(rCb(d.b!=0),BD(d.c.b.c,8)));aZb(n,l,p);if(zZb(e)==A){if(P_b(A.i)!=e.a){p=new _6c;X$b(p,P_b(A.i),s)}xNb(q,stc,p)}bZb(n,q,s);k.a.zc(n,k)}PZb(q,v);QZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);PZb(i,null);QZb(i,null)}Ldd(b)} +function zKb(a,b){var c,d,e,f,g,h,i,j,k,l;i=BD(BD(Qc(a.r,b),21),84);f=aKb(a,b);for(h=i.Kc();h.Ob();){g=BD(h.Pb(),111);if(!g.c||g.c.d.c.length<=0){continue}l=g.b.rf();j=g.c;k=j.i;k.b=(e=j.n,j.e.a+e.b+e.c);k.a=(d=j.n,j.e.b+d.d+d.a);switch(b.g){case 1:if(g.a){k.c=(l.a-k.b)/2;ZHb(j,(MHb(),JHb))}else if(f){k.c=-k.b-a.s;ZHb(j,(MHb(),LHb))}else{k.c=l.a+a.s;ZHb(j,(MHb(),KHb))}k.d=-k.a-a.t;$Hb(j,(DIb(),AIb));break;case 3:if(g.a){k.c=(l.a-k.b)/2;ZHb(j,(MHb(),JHb))}else if(f){k.c=-k.b-a.s;ZHb(j,(MHb(),LHb))}else{k.c=l.a+a.s;ZHb(j,(MHb(),KHb))}k.d=l.b+a.t;$Hb(j,(DIb(),CIb));break;case 2:if(g.a){c=a.v?k.a:BD(Hkb(j.d,0),181).rf().b;k.d=(l.b-c)/2;$Hb(j,(DIb(),BIb))}else if(f){k.d=-k.a-a.t;$Hb(j,(DIb(),AIb))}else{k.d=l.b+a.t;$Hb(j,(DIb(),CIb))}k.c=l.a+a.s;ZHb(j,(MHb(),KHb));break;case 4:if(g.a){c=a.v?k.a:BD(Hkb(j.d,0),181).rf().b;k.d=(l.b-c)/2;$Hb(j,(DIb(),BIb))}else if(f){k.d=-k.a-a.t;$Hb(j,(DIb(),AIb))}else{k.d=l.b+a.t;$Hb(j,(DIb(),CIb))}k.c=-k.b-a.s;ZHb(j,(MHb(),LHb));}f=false}} +function JQb(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 BD(a.Xb(0),231)}else if(a.gc()<=0){return new jRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Jhe;l=Jhe;i=Mie;j=Mie;for(n=new nlb(c.e);n.ah){t=0;u+=g+r;g=0}IQb(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 Hoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new o7c;switch(a.a.g){case 3:m=BD(uNb(b.e,(utc(),ptc)),15);n=BD(uNb(b.j,ptc),15);o=BD(uNb(b.f,ptc),15);c=BD(uNb(b.e,ntc),15);d=BD(uNb(b.j,ntc),15);e=BD(uNb(b.f,ntc),15);g=new Qkb;Fkb(g,m);n.Jc(new Koc);Fkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Fkb(g,o);f=new Qkb;Fkb(f,c);Fkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Fkb(f,e);xNb(b.f,ptc,g);xNb(b.f,ntc,f);xNb(b.f,qtc,b.f);xNb(b.e,ptc,null);xNb(b.e,ntc,null);xNb(b.j,ptc,null);xNb(b.j,ntc,null);break;case 1:ye(k,b.e.a);Csb(k,b.i.n);ye(k,Su(b.j.a));Csb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Nsb(b.f.a);ye(b.f.a,k);PZb(b.f,b.e.c);h=BD(uNb(b.e,(Lyc(),hxc)),74);j=BD(uNb(b.j,hxc),74);i=BD(uNb(b.f,hxc),74);if(!!h||!!j||!!i){l=new o7c;Foc(l,i);Foc(l,j);Foc(l,h);xNb(b.f,hxc,l)}PZb(b.j,null);QZb(b.j,null);PZb(b.e,null);QZb(b.e,null);Z_b(b.a,null);Z_b(b.i,null);!!b.g&&Hoc(a,b.g)} +function Yce(a){Xce();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=qfb(a);o=_ce(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,ste,25,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=KC(SD,ste,25,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(!$ce(g=f[k++])||!$ce(h=f[k++])){return null}b=Vce[g];c=Vce[h];i=f[k++];j=f[k++];if(Vce[i]==-1||Vce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,ste,25,n*3+1,15,1);Zfb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=Vce[i];if((d&3)!=0)return null;q=KC(SD,ste,25,n*3+2,15,1);Zfb(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=Vce[i];e=Vce[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 Rbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Jdd(b,Dne,1);o=BD(uNb(a,(Lyc(),Qwc)),218);for(e=new nlb(a.b);e.a=2){p=true;m=new nlb(f.j);c=BD(llb(m),11);n=null;while(m.a0){e=BD(Hkb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(hBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Kje;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 WGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new F6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new E6c;if(a.c){for(g=new nlb(b.wf());g.aj&&(d.a+=xfb(KC(TD,Vie,25,-j,15,1)));d.a+='Is';if(gfb(i,vfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(uNb(d,(utc(),ttc)),15);if(!r){f=new Qkb;xNb(d,ttc,f)}else if(m){f=r}else{e=BD(uNb(d,rsc),15);if(!e){f=new Qkb;xNb(d,rsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(uNb(d,(utc(),rsc)),15);if(!e){f=new Qkb;xNb(d,rsc,f)}else if(l){f=e}else{r=BD(uNb(d,ttc),15);if(!r){f=new Qkb;xNb(d,ttc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);xNb(a,(utc(),tsc),c);if(b.d==c){QZb(b,null);c.e.c.length+c.g.c.length==0&&E0b(c,null);c3b(c)}else{PZb(b,null);c.e.c.length+c.g.c.length==0&&E0b(c,null)}Nsb(b.a)} +function _nc(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,F,G,H;s=new Aib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Sqb;A=new ysb;while(s.b=a.a){d=D6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Dkb(h,new qgd(s,d))}}B=new Qkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new G1b(a.b),zib(q,C),rCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,fQc(t,g,s,A)));if(j0){m=k<100?null:new Dxd(k);j=new vud(b);o=j.g;r=KC(WD,jje,25,k,15,1);d=0;u=new uud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,jje,25,2*r.length,15,1);Zfb(q,0,r,0,d)}r[d++]=e;rtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,jje,25,d,15,1);Zfb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){oud(a,r[g])}if(d!=k){for(e=k;--e>=d;){oud(j,e)}q=r;r=KC(WD,jje,25,d,15,1);Zfb(q,0,r,0,d)}b=j}}}else{b=xtd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){oud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?ALd(a,4,b.Kc().Pb(),null,r[0],p):ALd(a,6,b,r,r[0],p);m=c<100?null:new Dxd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=L2d(a,BD(n,72),m)}if(!m){Phd(a.e,l)}else{m.Di(l);m.Ei()}}else{m=Qxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=L2d(a,BD(n,72),m)}!!m&&m.Ei()}return true}else{return false}} +function eYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new lYb(b);c.a||ZXb(b);j=YXb(b);i=new Hp;q=new zYb;for(p=new nlb(b.a);p.a0||c.o==_Lc&&e0){l=BD(Hkb(m.c.a,g-1),10);B=hBc(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(gg?znc(a,b,c):znc(a,c,b);return eg?1:0}}d=BD(uNb(b,(utc(),Xsc)),19).a;f=BD(uNb(c,Xsc),19).a;d>f?znc(a,b,c):znc(a,c,b);return df?1:0} +function q2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Bcb(DD(ckd(b,(U9c(),_8c))))){return lmb(),lmb(),imb}j=(!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a).i!=0;l=o2c(b);k=!l.dc();if(j||k){e=BD(ckd(b,B9c),149);if(!e){throw ubb(new u2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=z3c(e,(xsd(),tsd));m2c(b);if(!j&&k&&!s){return lmb(),lmb(),imb}i=new Qkb;if(PD(ckd(b,F8c))===PD((dbd(),abd))&&(z3c(e,qsd)||z3c(e,psd))){n=l2c(a,b);o=new Osb;ye(o,(!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(rCb(o.b!=0),Msb(o,o.a.a)),33);m2c(m);r=PD(ckd(m,F8c))===PD(cbd);if(r||dkd(m,k8c)&&!y3c(e,ckd(m,B9c))){h=q2c(a,m,c,d);Fkb(i,h);ekd(m,F8c,cbd);cfd(m)}else{ye(o,(!m.a&&(m.a=new ZTd(D2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a).i;for(g=new Ayd((!b.a&&(b.a=new ZTd(D2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(yyd(g),33);h=q2c(a,f,c,d);Fkb(i,h);cfd(f)}}for(q=new nlb(i);q.a=0?(n=Ucd(h)):(n=Rcd(Ucd(h)));a.Ye(Yxc,n)}j=new _6c;m=false;if(a.Xe(Rxc)){Y6c(j,BD(a.We(Rxc),8));m=true}else{X6c(j,g.a/2,g.b/2)}switch(n.g){case 4:xNb(k,kxc,(Atc(),wtc));xNb(k,zsc,(Eqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);F0b(l,(Pcd(),ucd));m||(j.a=g.a);j.a-=g.a;break;case 2:xNb(k,kxc,(Atc(),ytc));xNb(k,zsc,(Eqc(),Bqc));k.o.b=g.b;p<0&&(k.o.a=-p);F0b(l,(Pcd(),Ocd));m||(j.a=0);break;case 1:xNb(k,Msc,(csc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);F0b(l,(Pcd(),Mcd));m||(j.b=g.b);j.b-=g.b;break;case 3:xNb(k,Msc,(csc(),_rc));k.o.a=g.a;p<0&&(k.o.b=-p);F0b(l,(Pcd(),vcd));m||(j.b=0);}Y6c(l.n,j);xNb(k,Rxc,j);if(b==Vbd||b==Xbd||b==Wbd){o=0;if(b==Vbd&&a.Xe(Uxc)){switch(n.g){case 1:case 2:o=BD(a.We(Uxc),19).a;break;case 3:case 4:o=-BD(a.We(Uxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==Xbd&&(o/=e.b);break;case 1:case 3:o=f.a;b==Xbd&&(o/=e.a);}}xNb(k,ftc,o)}xNb(k,Fsc,n);return k} +function wGc(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;c=Ddb(ED(uNb(a.a.j,(Lyc(),Cwc))));if(c<-1||!a.a.i||acd(BD(uNb(a.a.o,Txc),98))||U_b(a.a.o,(Pcd(),ucd)).gc()<2&&U_b(a.a.o,Ocd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Qkb;for(i=a.a.e,j=0,k=i.length;j=c} +function jvd(){hvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=kvd((lmb(),new knb(new Zib(gvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=kvd((lmb(),new knb(new Zib(gvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=kvd((lmb(),new knb(new Zib(gvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':nvd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':lvd(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===pke&&typeof self!==pke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==pke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} +function X9d(a){if(a.N)return;a.N=true;a.b=Gnd(a,0);Fnd(a.b,0);Fnd(a.b,1);Fnd(a.b,2);a.bb=Gnd(a,1);Fnd(a.bb,0);Fnd(a.bb,1);a.fb=Gnd(a,2);Fnd(a.fb,3);Fnd(a.fb,4);Lnd(a.fb,5);a.qb=Gnd(a,3);Fnd(a.qb,0);Lnd(a.qb,1);Lnd(a.qb,2);Fnd(a.qb,3);Fnd(a.qb,4);Lnd(a.qb,5);Fnd(a.qb,6);a.a=Hnd(a,4);a.c=Hnd(a,5);a.d=Hnd(a,6);a.e=Hnd(a,7);a.f=Hnd(a,8);a.g=Hnd(a,9);a.i=Hnd(a,10);a.j=Hnd(a,11);a.k=Hnd(a,12);a.n=Hnd(a,13);a.o=Hnd(a,14);a.p=Hnd(a,15);a.q=Hnd(a,16);a.s=Hnd(a,17);a.r=Hnd(a,18);a.t=Hnd(a,19);a.u=Hnd(a,20);a.v=Hnd(a,21);a.w=Hnd(a,22);a.B=Hnd(a,23);a.A=Hnd(a,24);a.C=Hnd(a,25);a.D=Hnd(a,26);a.F=Hnd(a,27);a.G=Hnd(a,28);a.H=Hnd(a,29);a.J=Hnd(a,30);a.I=Hnd(a,31);a.K=Hnd(a,32);a.M=Hnd(a,33);a.L=Hnd(a,34);a.P=Hnd(a,35);a.Q=Hnd(a,36);a.R=Hnd(a,37);a.S=Hnd(a,38);a.T=Hnd(a,39);a.U=Hnd(a,40);a.V=Hnd(a,41);a.X=Hnd(a,42);a.W=Hnd(a,43);a.Y=Hnd(a,44);a.Z=Hnd(a,45);a.$=Hnd(a,46);a._=Hnd(a,47);a.ab=Hnd(a,48);a.cb=Hnd(a,49);a.db=Hnd(a,50);a.eb=Hnd(a,51);a.gb=Hnd(a,52);a.hb=Hnd(a,53);a.ib=Hnd(a,54);a.jb=Hnd(a,55);a.kb=Hnd(a,56);a.lb=Hnd(a,57);a.mb=Hnd(a,58);a.nb=Hnd(a,59);a.ob=Hnd(a,60);a.pb=Hnd(a,61)} +function e5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new nlb(a);q.aj&&(sCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Kkb(b,(sCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(qZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(rZc(b,k,e,i,c,j,d)){l=true;continue}else if(sZc(k,e)){e.c=true;l=true;continue}}else if(sZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(sZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{YZc(e.q)}}return l} +function aed(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 nlb(a.b);j.ap){if(f){Esb(w,n);Esb(B,leb(k.b-1));Dkb(a.d,o);h.c=KC(SI,Phe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ped(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Fkb(a.a,h);Dkb(a.d,BD(Hkb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new nlb(b.j);p.ae){f=m.a-e;g=Jhe;d.c=KC(SI,Phe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(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 G0b;E0b(n,b);F0b(n,(Pcd(),vcd));n.n.a=b.o.a/2;r=new G0b;E0b(r,b);F0b(r,Mcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new nlb(d);i.a=j.b?PZb(h,r):PZb(h,n)}else{j=BD(Lsb(h.a),8);q=h.a.b==0?z0b(h.c):BD(Hsb(h.a),8);q.b>=j.b?QZb(h,r):QZb(h,n)}l=BD(uNb(h,(Lyc(),hxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} +function _qd(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;D=null;G=b;F=Mqd(a,$sd(c),G);Gkd(F,Wpd(G,Qte));H=BD(oo(a.g,Qpd(aC(G,xte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Qpd(m));I=BD(oo(a.j,d),118);if(!H){h=Rpd(G);o="An edge must have a source node (edge id: '"+h;p=o+Vte;throw ubb(new Zpd(p))}if(!!I&&!Hb(hpd(I),H)){i=Wpd(G,Qte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+Vte;throw ubb(new Zpd(r))}B=(!F.b&&(F.b=new t5d(y2,F,4,7)),F.b);f=null;I?(f=I):(f=H);rtd(B,f);J=BD(oo(a.g,Qpd(aC(G,Yte))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Qpd(n));K=BD(oo(a.j,e),118);if(!J){l=Rpd(G);s="An edge must have a target node (edge id: '"+l;t=s+Vte;throw ubb(new Zpd(t))}if(!!K&&!Hb(hpd(K),J)){j=Wpd(G,Qte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+Vte;throw ubb(new Zpd(v))}C=(!F.c&&(F.c=new t5d(y2,F,5,8)),F.c);g=null;K?(g=K):(g=J);rtd(C,g);if((!F.b&&(F.b=new t5d(y2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new t5d(y2,F,5,8)),F.c).i==0){k=Wpd(G,Qte);w=Ute+k;A=w+Vte;throw ubb(new Zpd(A))}brd(G,F);ard(G,F);D=Zqd(a,G,F);return D} +function CXb(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;l=EXb(yXb(a,(Pcd(),Acd)),b);o=DXb(yXb(a,Bcd),b);u=DXb(yXb(a,Jcd),b);B=FXb(yXb(a,Lcd),b);m=FXb(yXb(a,wcd),b);s=DXb(yXb(a,Icd),b);p=DXb(yXb(a,Ccd),b);w=DXb(yXb(a,Kcd),b);v=DXb(yXb(a,xcd),b);C=FXb(yXb(a,zcd),b);r=DXb(yXb(a,Gcd),b);t=DXb(yXb(a,Fcd),b);A=DXb(yXb(a,ycd),b);D=FXb(yXb(a,Hcd),b);n=FXb(yXb(a,Dcd),b);q=DXb(yXb(a,Ecd),b);c=s6c(OC(GC(UD,1),Qje,25,15,[s.a,B.a,w.a,D.a]));d=s6c(OC(GC(UD,1),Qje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=s6c(OC(GC(UD,1),Qje,25,15,[p.a,m.a,v.a,n.a]));j=s6c(OC(GC(UD,1),Qje,25,15,[s.b,o.b,p.b,t.b]));i=s6c(OC(GC(UD,1),Qje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=s6c(OC(GC(UD,1),Qje,25,15,[w.b,u.b,v.b,A.b]));uXb(yXb(a,Acd),c+e,j+k);uXb(yXb(a,Ecd),c+e,j+k);uXb(yXb(a,Bcd),c+e,0);uXb(yXb(a,Jcd),c+e,j+k+i);uXb(yXb(a,Lcd),0,j+k);uXb(yXb(a,wcd),c+e+d,j+k);uXb(yXb(a,Ccd),c+e+d,0);uXb(yXb(a,Kcd),0,j+k+i);uXb(yXb(a,xcd),c+e+d,j+k+i);uXb(yXb(a,zcd),0,j);uXb(yXb(a,Gcd),c,0);uXb(yXb(a,ycd),0,j+k+i);uXb(yXb(a,Dcd),c+e+d,0);g=new _6c;g.a=s6c(OC(GC(UD,1),Qje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=s6c(OC(GC(UD,1),Qje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} +function Mgc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Qkb;for(m=new nlb(a.d.b);m.ae.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=BD(Nhb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(Q_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Hsb(g.a),8);if(g.d.j==(Pcd(),vcd)){q=new gic(b,new b7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Mcd){q=new gic(b,new b7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} +function SJc(a,b,c){var d,e,f,g,h,i,j,k,l;Jdd(c,'Network simplex node placement',1);a.e=b;a.n=BD(uNb(b,(utc(),mtc)),304);RJc(a);DJc(a);LAb(KAb(new XAb(null,new Jub(a.e.b,16)),new GKc),new IKc(a));LAb(IAb(KAb(IAb(KAb(new XAb(null,new Jub(a.e.b,16)),new vLc),new xLc),new zLc),new BLc),new EKc(a));if(Bcb(DD(uNb(a.e,(Lyc(),yxc))))){g=Pdd(c,1);Jdd(g,'Straight Edges Pre-Processing',1);QJc(a);Ldd(g)}IFb(a.f);f=BD(uNb(b,yyc),19).a*a.f.a.c.length;tGb(GGb(HGb(KGb(a.f),f),false),Pdd(c,1));if(a.d.a.gc()!=0){g=Pdd(c,1);Jdd(g,'Flexible Where Space Processing',1);h=BD(Atb(QAb(MAb(new XAb(null,new Jub(a.f.a,16)),new KKc),new eKc)),19).a;i=BD(Atb(PAb(MAb(new XAb(null,new Jub(a.f.a,16)),new MKc),new iKc)),19).a;j=i-h;k=mGb(new oGb,a.f);l=mGb(new oGb,a.f);zFb(CFb(BFb(AFb(DFb(new EFb,20000),j),k),l));LAb(IAb(IAb(Olb(a.i),new OKc),new QKc),new SKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}tGb(GGb(HGb(KGb(a.f),f),false),Pdd(g,1));Ldd(g)}if(Bcb(DD(uNb(b,yxc)))){g=Pdd(c,1);Jdd(g,'Straight Edges Post-Processing',1);PJc(a);Ldd(g)}CJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Thb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Ldd(c)} +function hMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new nlb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==_Lc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Qqb(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]=(Acb(),Bcb(b.f[b.g[u.p].p])&u.k==(i0b(),f0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Qqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Phe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Hkb(n,Aub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;wQc(m,C,w);n.c=KC(SI,Phe,1,0,5,1)}}u=a.c.length+1;for(h=new nlb(a);h.aD.s){tib(c);Kkb(D.i,d);if(d.c>0){d.a=D;Dkb(D.t,d);d.b=A;Dkb(A.i,d)}}}}} +function lde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ll();case 12:return a.Nl();case 14:return a.Pl();case 15:return a.Sl();case 16:return a.Ql();case 17:return a.Tl();case 21:ide(a);return rfe(),rfe(),afe;case 10:switch(a.a){case 65:return a.xl();case 90:return a.Cl();case 122:return a.Jl();case 98:return a.Dl();case 66:return a.yl();case 60:return a.Il();case 62:return a.Gl();}}f=kde(a);b=a.c;switch(b){case 3:return a.Yl(f);case 4:return a.Wl(f);case 5:return a.Xl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw ubb(new hde(ovd((c0d(),Yue))))}}else{throw ubb(new hde(ovd((c0d(),Uue))))}c=d;if(b==44){if(e>=a.j){throw ubb(new hde(ovd((c0d(),Wue))))}else if((b=afb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw ubb(new hde(ovd((c0d(),Yue))))}if(d>c)throw ubb(new hde(ovd((c0d(),Xue))))}else{c=-1}}if(b!=125)throw ubb(new hde(ovd((c0d(),Vue))));if(a.rl(e)){f=(rfe(),rfe(),++qfe,new gge(9,f));a.d=e+1}else{f=(rfe(),rfe(),++qfe,new gge(3,f));a.d=e}f.cm(d);f.bm(c);ide(a)}}return f} +function Zbc(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 Rkb(b.b);u=new Rkb(b.b);m=new Rkb(b.b);B=new Rkb(b.b);q=new Rkb(b.b);for(A=Isb(b,0);A.b!=A.d.c;){v=BD(Wsb(A),11);for(h=new nlb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new nlb(p);o.a1){o=new Jyd((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a));while(o.e!=o.i.gc()){zyd(o)}}g=BD(lud((!a.a&&(a.a=new ZTd(z2,a,6,6)),a.a),0),202);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+Bub(b,24)*gke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Ahd(),i=new skd,i);qkd(e,m);rkd(e,n);rtd((!g.a&&(g.a=new sMd(x2,g,5)),g.a),e)}} +function Lyc(){Lyc=bcb;gyc=(U9c(),E9c);hyc=F9c;iyc=G9c;jyc=H9c;lyc=I9c;myc=J9c;pyc=L9c;ryc=N9c;syc=O9c;qyc=M9c;tyc=P9c;vyc=Q9c;xyc=T9c;oyc=K9c;fyc=(hwc(),zvc);kyc=Avc;nyc=Bvc;uyc=Cvc;_xc=new Jsd(z9c,leb(0));ayc=wvc;byc=xvc;cyc=yvc;Iyc=$vc;Ayc=Fvc;Byc=Ivc;Eyc=Qvc;Cyc=Lvc;Dyc=Nvc;Kyc=dwc;Jyc=awc;Gyc=Wvc;Fyc=Uvc;Hyc=Yvc;Axc=nvc;Bxc=ovc;Vwc=yuc;Wwc=Buc;Jxc=new p0b(12);Ixc=new Jsd(b9c,Jxc);Rwc=(wad(),sad);Qwc=new Jsd(A8c,Rwc);Sxc=new Jsd(o9c,0);dyc=new Jsd(A9c,leb(1));mwc=new Jsd(n8c,ome);Hxc=_8c;Txc=p9c;Yxc=w9c;Iwc=u8c;kwc=l8c;$wc=F8c;eyc=new Jsd(D9c,(Acb(),true));dxc=I8c;exc=J8c;Dxc=U8c;Gxc=Z8c;Exc=W8c;Lwc=(aad(),$9c);Jwc=new Jsd(v8c,Lwc);vxc=S8c;uxc=Q8c;Wxc=t9c;Vxc=s9c;Xxc=v9c;Mxc=(Pbd(),Obd);new Jsd(h9c,Mxc);Oxc=k9c;Pxc=l9c;Qxc=m9c;Nxc=j9c;zyc=Evc;qxc=$uc;pxc=Yuc;yyc=Dvc;kxc=Quc;Hwc=kuc;Gwc=iuc;ywc=Vtc;zwc=Wtc;Bwc=_tc;Awc=Xtc;Fwc=guc;sxc=avc;txc=bvc;gxc=Juc;Cxc=svc;xxc=fvc;Ywc=Euc;zxc=lvc;Twc=uuc;Uwc=wuc;xwc=s8c;wxc=cvc;qwc=Ktc;pwc=Itc;owc=Htc;axc=Huc;_wc=Guc;bxc=Iuc;Fxc=X8c;hxc=M8c;Xwc=C8c;Owc=y8c;Nwc=x8c;Cwc=cuc;Uxc=r9c;nwc=r8c;cxc=H8c;Rxc=n9c;Kxc=d9c;Lxc=f9c;mxc=Tuc;nxc=Vuc;$xc=y9c;lwc=Gtc;oxc=Xuc;Pwc=quc;Mwc=ouc;rxc=O8c;ixc=Nuc;yxc=ivc;wyc=R9c;Kwc=muc;Zxc=uvc;Swc=suc;jxc=Puc;Dwc=euc;fxc=L8c;lxc=Suc;Ewc=fuc;wwc=Ttc;uwc=Qtc;swc=Otc;twc=Ptc;vwc=Stc;rwc=Mtc;Zwc=Fuc} +function rhb(a,b){ohb();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 Vje;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 Tfb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,Vie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=wbb(h,Tje);do{p=H;H=zbb(H,10);u[--c]=48+Sbb(Pbb(p,Hbb(H,10)))&Xie}while(xbb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&Xie}while(H!=0)}}else{D=KC(WD,jje,25,o,15,1);G=o;Zfb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=vbb(Mbb(A,32),wbb(D[j],Tje));r=phb(F);D[j]=Sbb(r);A=Sbb(Nbb(r,32))}s=Sbb(A);q=c;do{u[--c]=48+s%10&Xie}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 yfb(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 yfb(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 yfb(u,c,t-c)}C=c+1;f=t;v=new Ufb;n&&(v.a+='-',v);if(f-C>=1){Jfb(v,u[c]);v.a+='.';v.a+=yfb(u,c+1,t-c-1)}else{v.a+=yfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} +function v$c(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 Kqb;c=(Kgd(),new Ygd(a.c));d=new XGb(c);TGb(d);t=GD(ckd(a.c,(__c(),U_c)));i=BD(ckd(a.c,W_c),316);v=BD(ckd(a.c,X_c),430);g=BD(ckd(a.c,P_c),482);u=BD(ckd(a.c,V_c),431);a.j=Ddb(ED(ckd(a.c,Y_c)));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 ubb(new Vdb(Ire+(i.f!=null?i.f:''+i.g)));}a.d=new c_c(h,v,g);xNb(a.d,(WNb(),UNb),DD(ckd(a.c,R_c)));a.d.c=Bcb(DD(ckd(a.c,Q_c)));if(Qod(a.c).i==0){return a.d}for(l=new Ayd(Qod(a.c));l.e!=l.i.gc();){k=BD(yyd(l),33);n=k.g/2;m=k.f/2;w=new b7c(k.i+n,k.j+m);while(Lhb(a.g,w)){K6c(w,($wnd.Math.random()-0.5)*lme,($wnd.Math.random()-0.5)*lme)}p=BD(ckd(k,(U9c(),O8c)),142);q=new _Nb(w,new F6c(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)));Dkb(a.d.i,q);Qhb(a.g,w,new qgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Hkb(a.d.i,0),65)}else{for(s=new nlb(a.d.i);s.a1&&(Fsb(k,r,k.c.b,k.c),true);Ysb(e)}}}r=s}}return k} +function rQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Qkb;h=new Qkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=sQb(e.a,e.b,r.a,r.b,q);Dkb(d,(sCb(0,o.c.length),BD(o.c[0],8)));Dkb(h,(sCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Csb(c,(sCb(i,g.c.length),BD(g.c[i],8)))}return c} +function XEd(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=wEd;j=null;f=null;h=0;i=PEd(a,h,uEd,vEd);if(i=0&&cfb(a.substr(h,'//'.length),'//')){h+=2;i=PEd(a,h,xEd,yEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(ACb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=hfb(a,vfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&afb(k,k.length-1)==58){e=k;h=i}}if(h0?G+1:1}for(g=new nlb(w.g);g.a0?G+1:1}}a.c[j]==0?Csb(a.d,p):a.a[j]==0&&Csb(a.e,p);++j}o=-1;n=1;l=new Qkb;H=BD(uNb(b,(utc(),htc)),230);while(M>0){while(a.d.b!=0){J=BD(Ksb(a.d),10);a.b[J.p]=o--;ZBc(a,J);--M}while(a.e.b!=0){K=BD(Ksb(a.e),10);a.b[K.p]=n++;ZBc(a,K);--M}if(M>0){m=Mie;for(s=new nlb(t);s.a=m){if(u>m){l.c=KC(SI,Phe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=BD(Hkb(l,Aub(H,l.c.length)),10);a.b[k.p]=n++;ZBc(a,k);--M}}I=t.c.length+1;for(j=0;ja.b[L]){OZb(d,true);xNb(b,ysc,(Acb(),true))}}}}a.a=null;a.c=null;a.b=null;Nsb(a.e);Nsb(a.d);Ldd(c)} +function oJc(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,F,G,H,I,J,K;I=new Qkb;for(o=new nlb(b.b);o.a=a.j){a.a=-1;a.c=1;return}b=afb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw ubb(new hde(ovd((c0d(),pue))));a.a=afb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(afb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw ubb(new hde(ovd((c0d(),que))));b=afb(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 ubb(new hde(ovd((c0d(),que))));b=afb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw ubb(new hde(ovd((c0d(),rue))));break;case 35:while(a.d=a.j)throw ubb(new hde(ovd((c0d(),pue))));a.a=afb(a.i,a.d++);break;default:d=0;}a.c=d} +function O5b(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,F,G;A=BD(uNb(a,(Lyc(),Txc)),98);if(!(A!=(_bd(),Zbd)&&A!=$bd)){return}o=a.b;n=o.c.length;k=new Rkb((Xj(n+2,Hie),Oy(vbb(vbb(5,n+2),(n+2)/10|0))));p=new Rkb((Xj(n+2,Hie),Oy(vbb(vbb(5,n+2),(n+2)/10|0))));Dkb(k,new Kqb);Dkb(k,new Kqb);Dkb(p,new Qkb);Dkb(p,new Qkb);w=new Qkb;for(b=0;b=v||!rCc(r,d))&&(d=tCc(b,k));Z_b(r,d);for(f=new Sr(ur(Q_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(yCb(bub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Dkb(b.b,(sCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Phe,1,0,5,1);Ldd(c)} +function bee(a){var b,c,d,e,f,g,h,i,j;a.b=1;ide(a);b=null;if(a.c==0&&a.a==94){ide(a);b=(rfe(),rfe(),++qfe,new Vfe(4));Pfe(b,0,hxe);h=(null,++qfe,new Vfe(4))}else{h=(rfe(),rfe(),++qfe,new Vfe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Ufe(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:Sfe(h,aee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Sfe(h,aee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=ode(a,c);if(!i)throw ubb(new hde(ovd((c0d(),Due))));Sfe(h,i);d=true;break;default:c=_de(a);}}else if(j==24&&!e){if(b){Ufe(b,h);h=b}f=bee(a);Ufe(h,f);if(a.c!=0||a.a!=93)throw ubb(new hde(ovd((c0d(),Hue))));break}ide(a);if(!d){if(j==0){if(c==91)throw ubb(new hde(ovd((c0d(),Iue))));if(c==93)throw ubb(new hde(ovd((c0d(),Jue))));if(c==45&&!e&&a.a!=93)throw ubb(new hde(ovd((c0d(),Kue))))}if(a.c!=0||a.a!=45||c==45&&e){Pfe(h,c,c)}else{ide(a);if((j=a.c)==1)throw ubb(new hde(ovd((c0d(),Fue))));if(j==0&&a.a==93){Pfe(h,c,c);Pfe(h,45,45)}else if(j==0&&a.a==93||j==24){throw ubb(new hde(ovd((c0d(),Kue))))}else{g=a.a;if(j==0){if(g==91)throw ubb(new hde(ovd((c0d(),Iue))));if(g==93)throw ubb(new hde(ovd((c0d(),Jue))));if(g==45)throw ubb(new hde(ovd((c0d(),Kue))))}else j==10&&(g=_de(a));ide(a);if(c>g)throw ubb(new hde(ovd((c0d(),Nue))));Pfe(h,c,g)}}}e=false}if(a.c==1)throw ubb(new hde(ovd((c0d(),Fue))));Tfe(h);Qfe(h);a.b=0;ide(a);return h} +function sZd(a){wnd(a.c,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#decimal']));wnd(a.d,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#integer']));wnd(a.e,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#boolean']));wnd(a.f,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EBoolean',aue,'EBoolean:Object']));wnd(a.i,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#byte']));wnd(a.g,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#hexBinary']));wnd(a.j,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EByte',aue,'EByte:Object']));wnd(a.n,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EChar',aue,'EChar:Object']));wnd(a.t,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#double']));wnd(a.u,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EDouble',aue,'EDouble:Object']));wnd(a.F,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#float']));wnd(a.G,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EFloat',aue,'EFloat:Object']));wnd(a.I,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#int']));wnd(a.J,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EInt',aue,'EInt:Object']));wnd(a.N,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#long']));wnd(a.O,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'ELong',aue,'ELong:Object']));wnd(a.Z,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#short']));wnd(a.$,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'EShort',aue,'EShort:Object']));wnd(a._,Nve,OC(GC(ZI,1),iie,2,6,[$ve,'http://www.w3.org/2001/XMLSchema#string']))} +function bRc(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,F,G;if(a.c.length==1){return sCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new ORc}for(i=new nlb(a);i.al){F=0;G+=k+A;k=0}aRc(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 Kqb;c=new Kqb;for(C=new nlb(a);C.aOLc(f))&&(l=f)}}!l&&(l=(sCb(0,q.c.length),BD(q.c[0],180)));for(p=new nlb(b.b);p.a=-1900?1:0;c>=4?Pfb(a,OC(GC(ZI,1),iie,2,6,[kje,lje])[h]):Pfb(a,OC(GC(ZI,1),iie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Pfb(a,OC(GC(ZI,1),iie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Pfb(a,OC(GC(ZI,1),iie,2,6,[mje,nje,oje,pje,qje,rje,sje])[k]):Pfb(a,OC(GC(ZI,1),iie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Pfb(a,OC(GC(ZI,1),iie,2,6,['AM','PM'])[1]):Pfb(a,OC(GC(ZI,1),iie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Pfb(a,OC(GC(ZI,1),iie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Pfb(a,OC(GC(ZI,1),iie,2,6,[mje,nje,oje,pje,qje,rje,sje])[o]):c==3?Pfb(a,OC(GC(ZI,1),iie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Pfb(a,OC(GC(ZI,1),iie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Pfb(a,OC(GC(ZI,1),iie,2,6,[Yie,Zie,$ie,_ie,aje,bje,cje,dje,eje,fje,gje,hje])[p]):c==3?Pfb(a,OC(GC(ZI,1),iie,2,6,['Jan','Feb','Mar','Apr',aje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Pfb(a,OC(GC(ZI,1),iie,2,6,['Q1','Q2','Q3','Q4'])[q]):Pfb(a,OC(GC(ZI,1),iie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Pfb(a,f.c[0]):Pfb(a,f.c[1]);break;case 118:Pfb(a,f.b);break;case 90:c<3?Pfb(a,OA(f)):c==3?Pfb(a,NA(f)):Pfb(a,QA(f.a));break;default:return false;}return true} +function W1b(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;M1b(b);i=BD(lud((!b.b&&(b.b=new t5d(y2,b,4,7)),b.b),0),82);k=BD(lud((!b.c&&(b.c=new t5d(y2,b,5,8)),b.c),0),82);h=Xsd(i);j=Xsd(k);g=(!b.a&&(b.a=new ZTd(z2,b,6,6)),b.a).i==0?null:BD(lud((!b.a&&(b.a=new ZTd(z2,b,6,6)),b.a),0),202);A=BD(Nhb(a.a,h),10);F=BD(Nhb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Nhb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Hkb(A.j,0),11)}}if(JD(k,186)){D=BD(Nhb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Hkb(F.j,0),11)}}if(!A||!F){throw ubb(new v2c('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 TZb;sNb(p,b);xNb(p,(utc(),Ysc),b);xNb(p,(Lyc(),hxc),null);n=BD(uNb(d,Isc),21);A==F&&n.Fc((Mrc(),Lrc));if(!B){v=(IAc(),GAc);C=null;if(!!g&&bcd(BD(uNb(A,Txc),98))){C=new b7c(g.j,g.k);wfd(C,Hld(b));xfd(C,c);if(itd(j,h)){v=FAc;L6c(C,A.n)}}B=Z$b(A,C,v,d)}if(!G){v=(IAc(),FAc);H=null;if(!!g&&bcd(BD(uNb(F,Txc),98))){H=new b7c(g.b,g.c);wfd(H,Hld(b));xfd(H,c)}G=Z$b(F,H,v,P_b(F))}PZb(p,B);QZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Mrc(),Grc));for(m=new Ayd((!b.n&&(b.n=new ZTd(C2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(yyd(m),137);if(!Bcb(DD(ckd(l,Hxc)))&&!!l.a){q=Y1b(l);Dkb(p.b,q);switch(BD(uNb(q,Owc),272).g){case 1:case 2:n.Fc((Mrc(),Erc));break;case 0:n.Fc((Mrc(),Crc));xNb(q,Owc,(mad(),jad));}}}f=BD(uNb(d,Gwc),314);r=BD(uNb(d,Cxc),315);e=f==(Qpc(),Npc)||r==(Tzc(),Pzc);if(!!g&&(!g.a&&(g.a=new sMd(x2,g,5)),g.a).i!=0&&e){s=jfd(g);o=new o7c;for(u=Isb(s,0);u.b!=u.d.c;){t=BD(Wsb(u),8);Csb(o,new c7c(t))}xNb(p,Zsc,o)}return p} +function tZd(a){if(a.gb)return;a.gb=true;a.b=Gnd(a,0);Fnd(a.b,18);Lnd(a.b,19);a.a=Gnd(a,1);Fnd(a.a,1);Lnd(a.a,2);Lnd(a.a,3);Lnd(a.a,4);Lnd(a.a,5);a.o=Gnd(a,2);Fnd(a.o,8);Fnd(a.o,9);Lnd(a.o,10);Lnd(a.o,11);Lnd(a.o,12);Lnd(a.o,13);Lnd(a.o,14);Lnd(a.o,15);Lnd(a.o,16);Lnd(a.o,17);Lnd(a.o,18);Lnd(a.o,19);Lnd(a.o,20);Lnd(a.o,21);Lnd(a.o,22);Lnd(a.o,23);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);Knd(a.o);a.p=Gnd(a,3);Fnd(a.p,2);Fnd(a.p,3);Fnd(a.p,4);Fnd(a.p,5);Lnd(a.p,6);Lnd(a.p,7);Knd(a.p);Knd(a.p);a.q=Gnd(a,4);Fnd(a.q,8);a.v=Gnd(a,5);Lnd(a.v,9);Knd(a.v);Knd(a.v);Knd(a.v);a.w=Gnd(a,6);Fnd(a.w,2);Fnd(a.w,3);Fnd(a.w,4);Lnd(a.w,5);a.B=Gnd(a,7);Lnd(a.B,1);Knd(a.B);Knd(a.B);Knd(a.B);a.Q=Gnd(a,8);Lnd(a.Q,0);Knd(a.Q);a.R=Gnd(a,9);Fnd(a.R,1);a.S=Gnd(a,10);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);Knd(a.S);a.T=Gnd(a,11);Lnd(a.T,10);Lnd(a.T,11);Lnd(a.T,12);Lnd(a.T,13);Lnd(a.T,14);Knd(a.T);Knd(a.T);a.U=Gnd(a,12);Fnd(a.U,2);Fnd(a.U,3);Lnd(a.U,4);Lnd(a.U,5);Lnd(a.U,6);Lnd(a.U,7);Knd(a.U);a.V=Gnd(a,13);Lnd(a.V,10);a.W=Gnd(a,14);Fnd(a.W,18);Fnd(a.W,19);Fnd(a.W,20);Lnd(a.W,21);Lnd(a.W,22);Lnd(a.W,23);a.bb=Gnd(a,15);Fnd(a.bb,10);Fnd(a.bb,11);Fnd(a.bb,12);Fnd(a.bb,13);Fnd(a.bb,14);Fnd(a.bb,15);Fnd(a.bb,16);Lnd(a.bb,17);Knd(a.bb);Knd(a.bb);a.eb=Gnd(a,16);Fnd(a.eb,2);Fnd(a.eb,3);Fnd(a.eb,4);Fnd(a.eb,5);Fnd(a.eb,6);Fnd(a.eb,7);Lnd(a.eb,8);Lnd(a.eb,9);a.ab=Gnd(a,17);Fnd(a.ab,0);Fnd(a.ab,1);a.H=Gnd(a,18);Lnd(a.H,0);Lnd(a.H,1);Lnd(a.H,2);Lnd(a.H,3);Lnd(a.H,4);Lnd(a.H,5);Knd(a.H);a.db=Gnd(a,19);Lnd(a.db,2);a.c=Hnd(a,20);a.d=Hnd(a,21);a.e=Hnd(a,22);a.f=Hnd(a,23);a.i=Hnd(a,24);a.g=Hnd(a,25);a.j=Hnd(a,26);a.k=Hnd(a,27);a.n=Hnd(a,28);a.r=Hnd(a,29);a.s=Hnd(a,30);a.t=Hnd(a,31);a.u=Hnd(a,32);a.fb=Hnd(a,33);a.A=Hnd(a,34);a.C=Hnd(a,35);a.D=Hnd(a,36);a.F=Hnd(a,37);a.G=Hnd(a,38);a.I=Hnd(a,39);a.J=Hnd(a,40);a.L=Hnd(a,41);a.M=Hnd(a,42);a.N=Hnd(a,43);a.O=Hnd(a,44);a.P=Hnd(a,45);a.X=Hnd(a,46);a.Y=Hnd(a,47);a.Z=Hnd(a,48);a.$=Hnd(a,49);a._=Hnd(a,50);a.cb=Hnd(a,51);a.K=Hnd(a,52)} +function U9c(){U9c=bcb;var a,b;k8c=new Gsd(ose);B9c=new Gsd(pse);m8c=(B7c(),v7c);l8c=new Isd(Wpe,m8c);new Ofd;n8c=new Isd(Wle,null);o8c=new Gsd(qse);t8c=(e8c(),pqb(d8c,OC(GC(q1,1),Fie,290,0,[_7c])));s8c=new Isd(hqe,t8c);u8c=new Isd(Vpe,(Acb(),false));w8c=(aad(),$9c);v8c=new Isd($pe,w8c);B8c=(wad(),vad);A8c=new Isd(upe,B8c);E8c=new Isd(Fre,false);G8c=(dbd(),bbd);F8c=new Isd(ppe,G8c);c9c=new p0b(12);b9c=new Isd(Xle,c9c);K8c=new Isd(vme,false);L8c=new Isd(tqe,false);a9c=new Isd(yme,false);q9c=(_bd(),$bd);p9c=new Isd(wme,q9c);y9c=new Gsd(qqe);z9c=new Gsd(qme);A9c=new Gsd(tme);D9c=new Gsd(ume);N8c=new o7c;M8c=new Isd(iqe,N8c);r8c=new Isd(lqe,false);H8c=new Isd(mqe,false);new Gsd(rse);P8c=new G_b;O8c=new Isd(rqe,P8c);_8c=new Isd(Tpe,false);new Ofd;C9c=new Isd(sse,1);new Isd(tse,true);leb(0);new Isd(use,leb(100));new Isd(vse,false);leb(0);new Isd(wse,leb(4000));leb(0);new Isd(xse,leb(400));new Isd(yse,false);new Isd(zse,false);new Isd(Ase,true);new Isd(Bse,false);q8c=(yed(),xed);p8c=new Isd(nse,q8c);E9c=new Isd(Hpe,10);F9c=new Isd(Ipe,10);G9c=new Isd(Ule,20);H9c=new Isd(Jpe,10);I9c=new Isd(sme,2);J9c=new Isd(Kpe,10);L9c=new Isd(Lpe,0);M9c=new Isd(Ope,5);N9c=new Isd(Mpe,1);O9c=new Isd(Npe,1);P9c=new Isd(rme,20);Q9c=new Isd(Ppe,10);T9c=new Isd(Qpe,10);K9c=new Gsd(Rpe);S9c=new H_b;R9c=new Isd(sqe,S9c);f9c=new Gsd(pqe);e9c=false;d9c=new Isd(oqe,e9c);R8c=new p0b(5);Q8c=new Isd(_pe,R8c);T8c=(Dbd(),b=BD(fdb(A1),9),new wqb(b,BD($Bb(b,b.length),9),0));S8c=new Isd(Bme,T8c);i9c=(Pbd(),Mbd);h9c=new Isd(cqe,i9c);k9c=new Gsd(dqe);l9c=new Gsd(eqe);m9c=new Gsd(fqe);j9c=new Gsd(gqe);V8c=(a=BD(fdb(H1),9),new wqb(a,BD($Bb(a,a.length),9),0));U8c=new Isd(Ame,V8c);$8c=oqb((Ddd(),wdd));Z8c=new Isd(zme,$8c);Y8c=new b7c(0,0);X8c=new Isd(Ome,Y8c);W8c=new Isd(Zpe,false);z8c=(mad(),jad);y8c=new Isd(jqe,z8c);x8c=new Isd(xme,false);new Gsd(Cse);leb(1);new Isd(Dse,null);n9c=new Gsd(nqe);r9c=new Gsd(kqe);x9c=(Pcd(),Ncd);w9c=new Isd(Upe,x9c);o9c=new Gsd(Spe);u9c=(mcd(),oqb(kcd));t9c=new Isd(Cme,u9c);s9c=new Isd(aqe,false);v9c=new Isd(bqe,true);I8c=new Isd(Xpe,false);J8c=new Isd(Ype,false);C8c=new Isd(Vle,1);D8c=(Iad(),Gad);new Isd(Ese,D8c);g9c=true} +function utc(){utc=bcb;var a,b;Ysc=new Gsd(Dme);vsc=new Gsd('coordinateOrigin');gtc=new Gsd('processors');usc=new Hsd('compoundNode',(Acb(),false));Lsc=new Hsd('insideConnections',false);Zsc=new Gsd('originalBendpoints');$sc=new Gsd('originalDummyNodePosition');_sc=new Gsd('originalLabelEdge');itc=new Gsd('representedLabels');Asc=new Gsd('endLabels');Bsc=new Gsd('endLabel.origin');Qsc=new Hsd('labelSide',(nbd(),mbd));Wsc=new Hsd('maxEdgeThickness',0);jtc=new Hsd('reversed',false);htc=new Gsd(Eme);Tsc=new Hsd('longEdgeSource',null);Usc=new Hsd('longEdgeTarget',null);Ssc=new Hsd('longEdgeHasLabelDummies',false);Rsc=new Hsd('longEdgeBeforeLabelDummy',false);zsc=new Hsd('edgeConstraint',(Eqc(),Cqc));Nsc=new Gsd('inLayerLayoutUnit');Msc=new Hsd('inLayerConstraint',(csc(),asc));Osc=new Hsd('inLayerSuccessorConstraint',new Qkb);Psc=new Hsd('inLayerSuccessorConstraintBetweenNonDummies',false);etc=new Gsd('portDummy');wsc=new Hsd('crossingHint',leb(0));Isc=new Hsd('graphProperties',(b=BD(fdb(PW),9),new wqb(b,BD($Bb(b,b.length),9),0)));Fsc=new Hsd('externalPortSide',(Pcd(),Ncd));Gsc=new Hsd('externalPortSize',new _6c);Dsc=new Gsd('externalPortReplacedDummies');Esc=new Gsd('externalPortReplacedDummy');Csc=new Hsd('externalPortConnections',(a=BD(fdb(E1),9),new wqb(a,BD($Bb(a,a.length),9),0)));ftc=new Hsd(ole,0);qsc=new Gsd('barycenterAssociates');ttc=new Gsd('TopSideComments');rsc=new Gsd('BottomSideComments');tsc=new Gsd('CommentConnectionPort');Ksc=new Hsd('inputCollect',false);ctc=new Hsd('outputCollect',false);ysc=new Hsd('cyclic',false);xsc=new Gsd('crossHierarchyMap');stc=new Gsd('targetOffset');new Hsd('splineLabelSize',new _6c);mtc=new Gsd('spacings');dtc=new Hsd('partitionConstraint',false);ssc=new Gsd('breakingPoint.info');qtc=new Gsd('splines.survivingEdge');ptc=new Gsd('splines.route.start');ntc=new Gsd('splines.edgeChain');btc=new Gsd('originalPortConstraints');ltc=new Gsd('selfLoopHolder');otc=new Gsd('splines.nsPortY');Xsc=new Gsd('modelOrder');Vsc=new Gsd('longEdgeTargetNode');Hsc=new Hsd(Tne,false);ktc=new Hsd(Tne,false);Jsc=new Gsd('layerConstraints.hiddenNodes');atc=new Gsd('layerConstraints.opposidePort');rtc=new Gsd('targetNode.modelOrder')} +function hwc(){hwc=bcb;nuc=(vqc(),tqc);muc=new Isd(Une,nuc);Euc=new Isd(Vne,(Acb(),false));Kuc=(ksc(),isc);Juc=new Isd(Wne,Kuc);avc=new Isd(Xne,false);bvc=new Isd(Yne,true);Gtc=new Isd(Zne,false);vvc=(zAc(),xAc);uvc=new Isd($ne,vvc);leb(1);Dvc=new Isd(_ne,leb(7));Evc=new Isd(aoe,false);Fuc=new Isd(boe,false);luc=(kqc(),hqc);kuc=new Isd(coe,luc);_uc=(jzc(),hzc);$uc=new Isd(doe,_uc);Ruc=(Atc(),ztc);Quc=new Isd(eoe,Ruc);leb(-1);Puc=new Isd(foe,leb(-1));leb(-1);Suc=new Isd(goe,leb(-1));leb(-1);Tuc=new Isd(hoe,leb(4));leb(-1);Vuc=new Isd(ioe,leb(2));Zuc=(iAc(),gAc);Yuc=new Isd(joe,Zuc);leb(0);Xuc=new Isd(koe,leb(0));Nuc=new Isd(loe,leb(Jhe));juc=(Qpc(),Opc);iuc=new Isd(moe,juc);Vtc=new Isd(noe,false);cuc=new Isd(ooe,0.1);guc=new Isd(poe,false);leb(-1);euc=new Isd(qoe,leb(-1));leb(-1);fuc=new Isd(roe,leb(-1));leb(0);Wtc=new Isd(soe,leb(40));auc=(Vrc(),Urc);_tc=new Isd(toe,auc);Ytc=Src;Xtc=new Isd(uoe,Ytc);tvc=(Tzc(),Ozc);svc=new Isd(voe,tvc);ivc=new Gsd(woe);dvc=(Zqc(),Xqc);cvc=new Isd(xoe,dvc);gvc=(jrc(),grc);fvc=new Isd(yoe,gvc);new Ofd;lvc=new Isd(zoe,0.3);nvc=new Gsd(Aoe);pvc=(Gzc(),Ezc);ovc=new Isd(Boe,pvc);vuc=(RAc(),PAc);uuc=new Isd(Coe,vuc);xuc=(ZAc(),YAc);wuc=new Isd(Doe,xuc);zuc=(rBc(),qBc);yuc=new Isd(Eoe,zuc);Buc=new Isd(Foe,0.2);suc=new Isd(Goe,2);zvc=new Isd(Hoe,null);Bvc=new Isd(Ioe,10);Avc=new Isd(Joe,10);Cvc=new Isd(Koe,20);leb(0);wvc=new Isd(Loe,leb(0));leb(0);xvc=new Isd(Moe,leb(0));leb(0);yvc=new Isd(Noe,leb(0));Htc=new Isd(Ooe,false);Ltc=(wrc(),urc);Ktc=new Isd(Poe,Ltc);Jtc=(Hpc(),Gpc);Itc=new Isd(Qoe,Jtc);Huc=new Isd(Roe,false);leb(0);Guc=new Isd(Soe,leb(16));leb(0);Iuc=new Isd(Toe,leb(5));_vc=(JBc(),HBc);$vc=new Isd(Uoe,_vc);Fvc=new Isd(Voe,10);Ivc=new Isd(Woe,1);Rvc=(aqc(),_pc);Qvc=new Isd(Xoe,Rvc);Lvc=new Gsd(Yoe);Ovc=leb(1);leb(0);Nvc=new Isd(Zoe,Ovc);ewc=(ABc(),xBc);dwc=new Isd($oe,ewc);awc=new Gsd(_oe);Wvc=new Isd(ape,true);Uvc=new Isd(bpe,2);Yvc=new Isd(cpe,true);ruc=(Qqc(),Oqc);quc=new Isd(dpe,ruc);puc=(zpc(),vpc);ouc=new Isd(epe,puc);Utc=(rAc(),pAc);Ttc=new Isd(fpe,Utc);Stc=new Isd(gpe,false);Ntc=(QXb(),PXb);Mtc=new Isd(hpe,Ntc);Rtc=(vzc(),szc);Qtc=new Isd(ipe,Rtc);Otc=new Isd(jpe,0);Ptc=new Isd(kpe,0);Muc=iqc;Luc=Npc;Uuc=gzc;Wuc=gzc;Ouc=dzc;duc=(dbd(),abd);huc=Opc;buc=Opc;Ztc=Opc;$tc=abd;jvc=Rzc;kvc=Ozc;evc=Ozc;hvc=Ozc;mvc=Qzc;rvc=Rzc;qvc=Rzc;Auc=(wad(),uad);Cuc=uad;Duc=qBc;tuc=tad;Gvc=IBc;Hvc=GBc;Jvc=IBc;Kvc=GBc;Svc=IBc;Tvc=GBc;Mvc=$pc;Pvc=_pc;fwc=IBc;gwc=GBc;bwc=IBc;cwc=GBc;Xvc=GBc;Vvc=GBc;Zvc=GBc} +function R8b(){R8b=bcb;X7b=new S8b('DIRECTION_PREPROCESSOR',0);U7b=new S8b('COMMENT_PREPROCESSOR',1);Y7b=new S8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);m8b=new S8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);F8b=new S8b('PARTITION_PREPROCESSOR',4);q8b=new S8b('LABEL_DUMMY_INSERTER',5);L8b=new S8b('SELF_LOOP_PREPROCESSOR',6);v8b=new S8b('LAYER_CONSTRAINT_PREPROCESSOR',7);D8b=new S8b('PARTITION_MIDPROCESSOR',8);h8b=new S8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);z8b=new S8b('NODE_PROMOTION',10);u8b=new S8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);E8b=new S8b('PARTITION_POSTPROCESSOR',12);d8b=new S8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);N8b=new S8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);O7b=new S8b('BREAKING_POINT_INSERTER',15);y8b=new S8b('LONG_EDGE_SPLITTER',16);H8b=new S8b('PORT_SIDE_PROCESSOR',17);n8b=new S8b('INVERTED_PORT_PROCESSOR',18);G8b=new S8b('PORT_LIST_SORTER',19);P8b=new S8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);B8b=new S8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);P7b=new S8b('BREAKING_POINT_PROCESSOR',22);C8b=new S8b(wne,23);Q8b=new S8b(xne,24);J8b=new S8b('SELF_LOOP_PORT_RESTORER',25);O8b=new S8b('SINGLE_EDGE_GRAPH_WRAPPER',26);o8b=new S8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);a8b=new S8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);p8b=new S8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);l8b=new S8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);M8b=new S8b('SELF_LOOP_ROUTER',31);S7b=new S8b('COMMENT_NODE_MARGIN_CALCULATOR',32);$7b=new S8b('END_LABEL_PREPROCESSOR',33);s8b=new S8b('LABEL_DUMMY_SWITCHER',34);R7b=new S8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);t8b=new S8b('LABEL_SIDE_SELECTOR',36);j8b=new S8b('HYPEREDGE_DUMMY_MERGER',37);e8b=new S8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);w8b=new S8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);g8b=new S8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);V7b=new S8b('CONSTRAINTS_POSTPROCESSOR',41);T7b=new S8b('COMMENT_POSTPROCESSOR',42);k8b=new S8b('HYPERNODE_PROCESSOR',43);f8b=new S8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);x8b=new S8b('LONG_EDGE_JOINER',45);K8b=new S8b('SELF_LOOP_POSTPROCESSOR',46);Q7b=new S8b('BREAKING_POINT_REMOVER',47);A8b=new S8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);i8b=new S8b('HORIZONTAL_COMPACTOR',49);r8b=new S8b('LABEL_DUMMY_REMOVER',50);b8b=new S8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);_7b=new S8b('END_LABEL_SORTER',52);I8b=new S8b('REVERSED_EDGE_RESTORER',53);Z7b=new S8b('END_LABEL_POSTPROCESSOR',54);c8b=new S8b('HIERARCHICAL_NODE_RESIZER',55);W7b=new S8b('DIRECTION_POSTPROCESSOR',56)} +function GIc(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=(rCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new nlb(U.e);h.a0){if(U.j==(Pcd(),vcd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Kqb;o=new ysb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Jlb(p,0,p.length,null);gb=KC(WD,jje,25,p.length,15,1);d=KC(WD,jje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(mY,Phe,361,p.length*2,0,1);for(u=0;u'?":cfb(rue,a)?"'(?<' or '(? toIndex: ',uke=', toIndex: ',vke='Index: ',wke=', Size: ',xke='org.eclipse.elk.alg.common',yke={62:1},zke='org.eclipse.elk.alg.common.compaction',Ake='Scanline/EventHandler',Bke='org.eclipse.elk.alg.common.compaction.oned',Cke='CNode belongs to another CGroup.',Dke='ISpacingsHandler/1',Eke='The ',Fke=' instance has been finished already.',Gke='The direction ',Hke=' is not supported by the CGraph instance.',Ike='OneDimensionalCompactor',Jke='OneDimensionalCompactor/lambda$0$Type',Kke='Quadruplet',Lke='ScanlineConstraintCalculator',Mke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Nke='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Oke='ScanlineConstraintCalculator/Timestamp',Pke='ScanlineConstraintCalculator/lambda$0$Type',Qke={169:1,45:1},Rke='org.eclipse.elk.alg.common.compaction.options',Ske='org.eclipse.elk.core.data',Tke='org.eclipse.elk.polyomino.traversalStrategy',Uke='org.eclipse.elk.polyomino.lowLevelSort',Vke='org.eclipse.elk.polyomino.highLevelSort',Wke='org.eclipse.elk.polyomino.fill',Xke={130:1},Yke='polyomino',Zke='org.eclipse.elk.alg.common.networksimplex',$ke={177:1,3:1,4:1},_ke='org.eclipse.elk.alg.common.nodespacing',ale='org.eclipse.elk.alg.common.nodespacing.cellsystem',ble='CENTER',cle={212:1,326:1},dle={3:1,4:1,5:1,595:1},ele='LEFT',fle='RIGHT',gle='Vertical alignment cannot be null',hle='BOTTOM',ile='org.eclipse.elk.alg.common.nodespacing.internal',jle='UNDEFINED',kle=0.01,lle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',mle='LabelPlacer/lambda$0$Type',nle='LabelPlacer/lambda$1$Type',ole='portRatioOrPosition',ple='org.eclipse.elk.alg.common.overlaps',qle='DOWN',rle='org.eclipse.elk.alg.common.polyomino',sle='NORTH',tle='EAST',ule='SOUTH',vle='WEST',wle='org.eclipse.elk.alg.common.polyomino.structures',xle='Direction',yle='Grid is only of size ',zle='. Requested point (',Ale=') is out of bounds.',Ble=' Given center based coordinates were (',Cle='org.eclipse.elk.graph.properties',Dle='IPropertyHolder',Ele={3:1,94:1,134:1},Fle='org.eclipse.elk.alg.common.spore',Gle='org.eclipse.elk.alg.common.utils',Hle={209:1},Ile='org.eclipse.elk.core',Jle='Connected Components Compaction',Kle='org.eclipse.elk.alg.disco',Lle='org.eclipse.elk.alg.disco.graph',Mle='org.eclipse.elk.alg.disco.options',Nle='CompactionStrategy',Ole='org.eclipse.elk.disco.componentCompaction.strategy',Ple='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Qle='org.eclipse.elk.disco.debug.discoGraph',Rle='org.eclipse.elk.disco.debug.discoPolys',Sle='componentCompaction',Tle='org.eclipse.elk.disco',Ule='org.eclipse.elk.spacing.componentComponent',Vle='org.eclipse.elk.edge.thickness',Wle='org.eclipse.elk.aspectRatio',Xle='org.eclipse.elk.padding',Yle='org.eclipse.elk.alg.disco.transform',Zle=1.5707963267948966,$le=1.7976931348623157E308,_le={3:1,4:1,5:1,192:1},ame={3:1,6:1,4:1,5:1,106:1,120:1},bme='org.eclipse.elk.alg.force',cme='ComponentsProcessor',dme='ComponentsProcessor/1',eme='org.eclipse.elk.alg.force.graph',fme='Component Layout',gme='org.eclipse.elk.alg.force.model',hme='org.eclipse.elk.force.model',ime='org.eclipse.elk.force.iterations',jme='org.eclipse.elk.force.repulsivePower',kme='org.eclipse.elk.force.temperature',lme=0.001,mme='org.eclipse.elk.force.repulsion',nme='org.eclipse.elk.alg.force.options',ome=1.600000023841858,pme='org.eclipse.elk.force',qme='org.eclipse.elk.priority',rme='org.eclipse.elk.spacing.nodeNode',sme='org.eclipse.elk.spacing.edgeLabel',tme='org.eclipse.elk.randomSeed',ume='org.eclipse.elk.separateConnectedComponents',vme='org.eclipse.elk.interactive',wme='org.eclipse.elk.portConstraints',xme='org.eclipse.elk.edgeLabels.inline',yme='org.eclipse.elk.omitNodeMicroLayout',zme='org.eclipse.elk.nodeSize.options',Ame='org.eclipse.elk.nodeSize.constraints',Bme='org.eclipse.elk.nodeLabels.placement',Cme='org.eclipse.elk.portLabels.placement',Dme='origin',Eme='random',Fme='boundingBox.upLeft',Gme='boundingBox.lowRight',Hme='org.eclipse.elk.stress.fixed',Ime='org.eclipse.elk.stress.desiredEdgeLength',Jme='org.eclipse.elk.stress.dimension',Kme='org.eclipse.elk.stress.epsilon',Lme='org.eclipse.elk.stress.iterationLimit',Mme='org.eclipse.elk.stress',Nme='ELK Stress',Ome='org.eclipse.elk.nodeSize.minimum',Pme='org.eclipse.elk.alg.force.stress',Qme='Layered layout',Rme='org.eclipse.elk.alg.layered',Sme='org.eclipse.elk.alg.layered.compaction.components',Tme='org.eclipse.elk.alg.layered.compaction.oned',Ume='org.eclipse.elk.alg.layered.compaction.oned.algs',Vme='org.eclipse.elk.alg.layered.compaction.recthull',Wme='org.eclipse.elk.alg.layered.components',Xme='NONE',Yme={3:1,6:1,4:1,9:1,5:1,122:1},Zme={3:1,6:1,4:1,5:1,141:1,106:1,120:1},$me='org.eclipse.elk.alg.layered.compound',_me={51:1},ane='org.eclipse.elk.alg.layered.graph',bne=' -> ',cne='Not supported by LGraph',dne='Port side is undefined',ene={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},fne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},gne={3:1,6:1,4:1,5:1,141:1,1942:1,203:1,106:1,120:1},hne='([{"\' \t\r\n',ine=')]}"\' \t\r\n',jne='The given string contains parts that cannot be parsed as numbers.',kne='org.eclipse.elk.core.math',lne={3:1,4:1,142:1,207:1,415:1},mne={3:1,4:1,116:1,207:1,415:1},nne='org.eclipse.elk.layered',one='org.eclipse.elk.alg.layered.graph.transform',pne='ElkGraphImporter',qne='ElkGraphImporter/lambda$0$Type',rne='ElkGraphImporter/lambda$1$Type',sne='ElkGraphImporter/lambda$2$Type',tne='ElkGraphImporter/lambda$4$Type',une='Node margin calculation',vne='org.eclipse.elk.alg.layered.intermediate',wne='ONE_SIDED_GREEDY_SWITCH',xne='TWO_SIDED_GREEDY_SWITCH',yne='No implementation is available for the layout processor ',zne='IntermediateProcessorStrategy',Ane="Node '",Bne='FIRST_SEPARATE',Cne='LAST_SEPARATE',Dne='Odd port side processing',Ene='org.eclipse.elk.alg.layered.intermediate.compaction',Fne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Gne='org.eclipse.elk.alg.layered.p3order.counting',Hne={225:1},Ine='org.eclipse.elk.alg.layered.intermediate.loops',Jne='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Kne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Lne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Mne='org.eclipse.elk.alg.layered.intermediate.wrapping',Nne='org.eclipse.elk.alg.layered.options',One='INTERACTIVE',Pne='DEPTH_FIRST',Qne='MODEL_ORDER',Rne='EDGE_LENGTH',Sne='SELF_LOOPS',Tne='firstTryWithInitialOrder',Une='org.eclipse.elk.layered.directionCongruency',Vne='org.eclipse.elk.layered.feedbackEdges',Wne='org.eclipse.elk.layered.interactiveReferencePoint',Xne='org.eclipse.elk.layered.mergeEdges',Yne='org.eclipse.elk.layered.mergeHierarchyEdges',Zne='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',$ne='org.eclipse.elk.layered.portSortingStrategy',_ne='org.eclipse.elk.layered.thoroughness',aoe='org.eclipse.elk.layered.unnecessaryBendpoints',boe='org.eclipse.elk.layered.generatePositionAndLayerIds',coe='org.eclipse.elk.layered.cycleBreaking.strategy',doe='org.eclipse.elk.layered.layering.strategy',eoe='org.eclipse.elk.layered.layering.layerConstraint',foe='org.eclipse.elk.layered.layering.layerChoiceConstraint',goe='org.eclipse.elk.layered.layering.layerId',hoe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',ioe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',joe='org.eclipse.elk.layered.layering.nodePromotion.strategy',koe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',loe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',moe='org.eclipse.elk.layered.crossingMinimization.strategy',noe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',ooe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',poe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',qoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',roe='org.eclipse.elk.layered.crossingMinimization.positionId',soe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',toe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',uoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',voe='org.eclipse.elk.layered.nodePlacement.strategy',woe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',xoe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',yoe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',zoe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Aoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Boe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Coe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Doe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Eoe='org.eclipse.elk.layered.edgeRouting.splines.mode',Foe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Goe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Hoe='org.eclipse.elk.layered.spacing.baseValue',Ioe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Joe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Koe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Loe='org.eclipse.elk.layered.priority.direction',Moe='org.eclipse.elk.layered.priority.shortness',Noe='org.eclipse.elk.layered.priority.straightness',Ooe='org.eclipse.elk.layered.compaction.connectedComponents',Poe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Qoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Roe='org.eclipse.elk.layered.highDegreeNodes.treatment',Soe='org.eclipse.elk.layered.highDegreeNodes.threshold',Toe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Uoe='org.eclipse.elk.layered.wrapping.strategy',Voe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',Woe='org.eclipse.elk.layered.wrapping.correctionFactor',Xoe='org.eclipse.elk.layered.wrapping.cutting.strategy',Yoe='org.eclipse.elk.layered.wrapping.cutting.cuts',Zoe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',$oe='org.eclipse.elk.layered.wrapping.validify.strategy',_oe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',ape='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',bpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',cpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',dpe='org.eclipse.elk.layered.edgeLabels.sideSelection',epe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',fpe='org.eclipse.elk.layered.considerModelOrder.strategy',gpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',hpe='org.eclipse.elk.layered.considerModelOrder.components',ipe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',kpe='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',lpe='layering',mpe='layering.minWidth',npe='layering.nodePromotion',ope='crossingMinimization',ppe='org.eclipse.elk.hierarchyHandling',qpe='crossingMinimization.greedySwitch',rpe='nodePlacement',spe='nodePlacement.bk',tpe='edgeRouting',upe='org.eclipse.elk.edgeRouting',vpe='spacing',wpe='priority',xpe='compaction',ype='compaction.postCompaction',zpe='Specifies whether and how post-process compaction is applied.',Ape='highDegreeNodes',Bpe='wrapping',Cpe='wrapping.cutting',Dpe='wrapping.validify',Epe='wrapping.multiEdge',Fpe='edgeLabels',Gpe='considerModelOrder',Hpe='org.eclipse.elk.spacing.commentComment',Ipe='org.eclipse.elk.spacing.commentNode',Jpe='org.eclipse.elk.spacing.edgeEdge',Kpe='org.eclipse.elk.spacing.edgeNode',Lpe='org.eclipse.elk.spacing.labelLabel',Mpe='org.eclipse.elk.spacing.labelPortHorizontal',Npe='org.eclipse.elk.spacing.labelPortVertical',Ope='org.eclipse.elk.spacing.labelNode',Ppe='org.eclipse.elk.spacing.nodeSelfLoop',Qpe='org.eclipse.elk.spacing.portPort',Rpe='org.eclipse.elk.spacing.individual',Spe='org.eclipse.elk.port.borderOffset',Tpe='org.eclipse.elk.noLayout',Upe='org.eclipse.elk.port.side',Vpe='org.eclipse.elk.debugMode',Wpe='org.eclipse.elk.alignment',Xpe='org.eclipse.elk.insideSelfLoops.activate',Ype='org.eclipse.elk.insideSelfLoops.yo',Zpe='org.eclipse.elk.nodeSize.fixedGraphSize',$pe='org.eclipse.elk.direction',_pe='org.eclipse.elk.nodeLabels.padding',aqe='org.eclipse.elk.portLabels.nextToPortIfPossible',bqe='org.eclipse.elk.portLabels.treatAsGroup',cqe='org.eclipse.elk.portAlignment.default',dqe='org.eclipse.elk.portAlignment.north',eqe='org.eclipse.elk.portAlignment.south',fqe='org.eclipse.elk.portAlignment.west',gqe='org.eclipse.elk.portAlignment.east',hqe='org.eclipse.elk.contentAlignment',iqe='org.eclipse.elk.junctionPoints',jqe='org.eclipse.elk.edgeLabels.placement',kqe='org.eclipse.elk.port.index',lqe='org.eclipse.elk.commentBox',mqe='org.eclipse.elk.hypernode',nqe='org.eclipse.elk.port.anchor',oqe='org.eclipse.elk.partitioning.activate',pqe='org.eclipse.elk.partitioning.partition',qqe='org.eclipse.elk.position',rqe='org.eclipse.elk.margins',sqe='org.eclipse.elk.spacing.portsSurrounding',tqe='org.eclipse.elk.interactiveLayout',uqe='org.eclipse.elk.core.util',vqe={3:1,4:1,5:1,593:1},wqe='NETWORK_SIMPLEX',xqe={126:1,51:1},yqe='org.eclipse.elk.alg.layered.p1cycles',zqe='org.eclipse.elk.alg.layered.p2layers',Aqe={403:1,225:1},Bqe={831:1,3:1,4:1},Cqe='org.eclipse.elk.alg.layered.p3order',Dqe='org.eclipse.elk.alg.layered.p4nodes',Eqe={3:1,4:1,5:1,839:1},Fqe=1.0E-5,Gqe='org.eclipse.elk.alg.layered.p4nodes.bk',Hqe='org.eclipse.elk.alg.layered.p5edges',Iqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Jqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Kqe=1.0E-6,Lqe='org.eclipse.elk.alg.layered.p5edges.splines',Mqe=0.09999999999999998,Nqe=1.0E-8,Oqe=4.71238898038469,Pqe=3.141592653589793,Qqe='org.eclipse.elk.alg.mrtree',Rqe='org.eclipse.elk.alg.mrtree.graph',Sqe='org.eclipse.elk.alg.mrtree.intermediate',Tqe='Set neighbors in level',Uqe='DESCENDANTS',Vqe='org.eclipse.elk.mrtree.weighting',Wqe='org.eclipse.elk.mrtree.searchOrder',Xqe='org.eclipse.elk.alg.mrtree.options',Yqe='org.eclipse.elk.mrtree',Zqe='org.eclipse.elk.tree',$qe='org.eclipse.elk.alg.radial',_qe=6.283185307179586,are=4.9E-324,bre='org.eclipse.elk.alg.radial.intermediate',cre='org.eclipse.elk.alg.radial.intermediate.compaction',dre={3:1,4:1,5:1,106:1},ere='org.eclipse.elk.alg.radial.intermediate.optimization',fre='No implementation is available for the layout option ',gre='org.eclipse.elk.alg.radial.options',hre='org.eclipse.elk.radial.orderId',ire='org.eclipse.elk.radial.radius',jre='org.eclipse.elk.radial.compactor',kre='org.eclipse.elk.radial.compactionStepSize',lre='org.eclipse.elk.radial.sorter',mre='org.eclipse.elk.radial.wedgeCriteria',nre='org.eclipse.elk.radial.optimizationCriteria',ore='org.eclipse.elk.radial',pre='org.eclipse.elk.alg.radial.p1position.wedge',qre='org.eclipse.elk.alg.radial.sorting',rre=5.497787143782138,sre=3.9269908169872414,tre=2.356194490192345,ure='org.eclipse.elk.alg.rectpacking',vre='org.eclipse.elk.alg.rectpacking.firstiteration',wre='org.eclipse.elk.alg.rectpacking.options',xre='org.eclipse.elk.rectpacking.optimizationGoal',yre='org.eclipse.elk.rectpacking.lastPlaceShift',zre='org.eclipse.elk.rectpacking.currentPosition',Are='org.eclipse.elk.rectpacking.desiredPosition',Bre='org.eclipse.elk.rectpacking.onlyFirstIteration',Cre='org.eclipse.elk.rectpacking.rowCompaction',Dre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ere='org.eclipse.elk.rectpacking.targetWidth',Fre='org.eclipse.elk.expandNodes',Gre='org.eclipse.elk.rectpacking',Hre='org.eclipse.elk.alg.rectpacking.util',Ire='No implementation available for ',Jre='org.eclipse.elk.alg.spore',Kre='org.eclipse.elk.alg.spore.options',Lre='org.eclipse.elk.sporeCompaction',Mre='org.eclipse.elk.underlyingLayoutAlgorithm',Nre='org.eclipse.elk.processingOrder.treeConstruction',Ore='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Pre='org.eclipse.elk.processingOrder.preferredRoot',Qre='org.eclipse.elk.processingOrder.rootSelection',Rre='org.eclipse.elk.structure.structureExtractionStrategy',Sre='org.eclipse.elk.compaction.compactionStrategy',Tre='org.eclipse.elk.compaction.orthogonal',Ure='org.eclipse.elk.overlapRemoval.maxIterations',Vre='org.eclipse.elk.overlapRemoval.runScanline',Wre='processingOrder',Xre='overlapRemoval',Yre='org.eclipse.elk.sporeOverlap',Zre='org.eclipse.elk.alg.spore.p1structure',$re='org.eclipse.elk.alg.spore.p2processingorder',_re='org.eclipse.elk.alg.spore.p3execution',ase='Invalid index: ',bse='org.eclipse.elk.core.alg',cse={331:1},dse={287:1},ese='Make sure its type is registered with the ',fse=' utility class.',gse='true',hse='false',ise="Couldn't clone property '",jse=0.05,kse='org.eclipse.elk.core.options',lse=1.2999999523162842,mse='org.eclipse.elk.box',nse='org.eclipse.elk.box.packingMode',ose='org.eclipse.elk.algorithm',pse='org.eclipse.elk.resolvedAlgorithm',qse='org.eclipse.elk.bendPoints',rse='org.eclipse.elk.labelManager',sse='org.eclipse.elk.scaleFactor',tse='org.eclipse.elk.animate',use='org.eclipse.elk.animTimeFactor',vse='org.eclipse.elk.layoutAncestors',wse='org.eclipse.elk.maxAnimTime',xse='org.eclipse.elk.minAnimTime',yse='org.eclipse.elk.progressBar',zse='org.eclipse.elk.validateGraph',Ase='org.eclipse.elk.validateOptions',Bse='org.eclipse.elk.zoomToFit',Cse='org.eclipse.elk.font.name',Dse='org.eclipse.elk.font.size',Ese='org.eclipse.elk.edge.type',Fse='partitioning',Gse='nodeLabels',Hse='portAlignment',Ise='nodeSize',Jse='port',Kse='portLabels',Lse='insideSelfLoops',Mse='org.eclipse.elk.fixed',Nse='org.eclipse.elk.random',Ose='port must have a parent node to calculate the port side',Pse='The edge needs to have exactly one edge section. Found: ',Qse='org.eclipse.elk.core.util.adapters',Rse='org.eclipse.emf.ecore',Sse='org.eclipse.elk.graph',Tse='EMapPropertyHolder',Use='ElkBendPoint',Vse='ElkGraphElement',Wse='ElkConnectableShape',Xse='ElkEdge',Yse='ElkEdgeSection',Zse='EModelElement',$se='ENamedElement',_se='ElkLabel',ate='ElkNode',bte='ElkPort',cte={92:1,90:1},dte='org.eclipse.emf.common.notify.impl',ete="The feature '",fte="' is not a valid changeable feature",gte='Expecting null',hte="' is not a valid feature",ite='The feature ID',jte=' is not a valid feature ID',kte=32768,lte={105:1,92:1,90:1,56:1,49:1,97:1},mte='org.eclipse.emf.ecore.impl',nte='org.eclipse.elk.graph.impl',ote='Recursive containment not allowed for ',pte="The datatype '",qte="' is not a valid classifier",rte="The value '",ste={190:1,3:1,4:1},tte="The class '",ute='http://www.eclipse.org/elk/ElkGraph',vte='property',wte='value',xte='source',yte='properties',zte='identifier',Ate='height',Bte='width',Cte='parent',Dte='text',Ete='children',Fte='hierarchical',Gte='sources',Hte='targets',Ite='sections',Jte='bendPoints',Kte='outgoingShape',Lte='incomingShape',Mte='outgoingSections',Nte='incomingSections',Ote='org.eclipse.emf.common.util',Pte='Severe implementation error in the Json to ElkGraph importer.',Qte='id',Rte='org.eclipse.elk.graph.json',Ste='Unhandled parameter types: ',Tte='startPoint',Ute="An edge must have at least one source and one target (edge id: '",Vte="').",Wte='Referenced edge section does not exist: ',Xte=" (edge id: '",Yte='target',Zte='sourcePoint',$te='targetPoint',_te='group',aue='name',bue='connectableShape cannot be null',cue='edge cannot be null',due="Passed edge is not 'simple'.",eue='org.eclipse.elk.graph.util',fue="The 'no duplicates' constraint is violated",gue='targetIndex=',hue=', size=',iue='sourceIndex=',jue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},kue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},lue='logging',mue='measureExecutionTime',nue='parser.parse.1',oue='parser.parse.2',pue='parser.next.1',que='parser.next.2',rue='parser.next.3',sue='parser.next.4',tue='parser.factor.1',uue='parser.factor.2',vue='parser.factor.3',wue='parser.factor.4',xue='parser.factor.5',yue='parser.factor.6',zue='parser.atom.1',Aue='parser.atom.2',Bue='parser.atom.3',Cue='parser.atom.4',Due='parser.atom.5',Eue='parser.cc.1',Fue='parser.cc.2',Gue='parser.cc.3',Hue='parser.cc.5',Iue='parser.cc.6',Jue='parser.cc.7',Kue='parser.cc.8',Lue='parser.ope.1',Mue='parser.ope.2',Nue='parser.ope.3',Oue='parser.descape.1',Pue='parser.descape.2',Que='parser.descape.3',Rue='parser.descape.4',Sue='parser.descape.5',Tue='parser.process.1',Uue='parser.quantifier.1',Vue='parser.quantifier.2',Wue='parser.quantifier.3',Xue='parser.quantifier.4',Yue='parser.quantifier.5',Zue='org.eclipse.emf.common.notify',$ue={416:1,672:1},_ue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},ave={365:1,143:1},bve='index=',cve={3:1,4:1,5:1,125:1},dve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},eve={3:1,6:1,4:1,5:1,192:1},fve={3:1,4:1,5:1,165:1,366:1},gve=';/?:@&=+$,',hve='invalid authority: ',ive='EAnnotation',jve='ETypedElement',kve='EStructuralFeature',lve='EAttribute',mve='EClassifier',nve='EEnumLiteral',ove='EGenericType',pve='EOperation',qve='EParameter',rve='EReference',sve='ETypeParameter',tve='org.eclipse.emf.ecore.util',uve={76:1},vve={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},wve='org.eclipse.emf.ecore.util.FeatureMap$Entry',xve=1024,yve=8192,zve=2048,Ave='byte',Bve='char',Cve='double',Dve='float',Eve='int',Fve='long',Gve='short',Hve='java.lang.Object',Ive={3:1,4:1,5:1,247:1},Jve={3:1,4:1,5:1,673:1},Kve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Lve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Mve='mixed',Nve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Ove='kind',Pve={3:1,4:1,5:1,674:1},Qve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Rve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Sve={47:1,124:1,278:1},Tve={72:1,332:1},Uve="The value of type '",Vve="' must be of type '",Wve=1315,Xve='http://www.eclipse.org/emf/2002/Ecore',Yve=-32768,Zve='constraints',$ve='baseType',_ve='getEStructuralFeature',awe='getFeatureID',bwe='feature',cwe='getOperationID',dwe='operation',ewe='defaultValue',fwe='eTypeParameters',gwe='isInstance',hwe='getEEnumLiteral',iwe='eContainingClass',jwe={55:1},kwe={3:1,4:1,5:1,119:1},lwe='org.eclipse.emf.ecore.resource',mwe={92:1,90:1,591:1,1934:1},nwe='org.eclipse.emf.ecore.resource.impl',owe='unspecified',pwe='simple',qwe='attribute',rwe='attributeWildcard',swe='element',twe='elementWildcard',uwe='collapse',vwe='itemType',wwe='namespace',xwe='##targetNamespace',ywe='whiteSpace',zwe='wildcards',Awe='http://www.eclipse.org/emf/2003/XMLType',Bwe='##any',Cwe='uninitialized',Dwe='The multiplicity constraint is violated',Ewe='org.eclipse.emf.ecore.xml.type',Fwe='ProcessingInstruction',Gwe='SimpleAnyType',Hwe='XMLTypeDocumentRoot',Iwe='org.eclipse.emf.ecore.xml.type.impl',Jwe='INF',Kwe='processing',Lwe='ENTITIES_._base',Mwe='minLength',Nwe='ENTITY',Owe='NCName',Pwe='IDREFS_._base',Qwe='integer',Rwe='token',Swe='pattern',Twe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Uwe='\\i\\c*',Vwe='[\\i-[:]][\\c-[:]]*',Wwe='nonPositiveInteger',Xwe='maxInclusive',Ywe='NMTOKEN',Zwe='NMTOKENS_._base',$we='nonNegativeInteger',_we='minInclusive',axe='normalizedString',bxe='unsignedByte',cxe='unsignedInt',dxe='18446744073709551615',exe='unsignedShort',fxe='processingInstruction',gxe='org.eclipse.emf.ecore.xml.type.internal',hxe=1114111,ixe='Internal Error: shorthands: \\u',jxe='xml:isDigit',kxe='xml:isWord',lxe='xml:isSpace',mxe='xml:isNameChar',nxe='xml:isInitialNameChar',oxe='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',pxe='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',qxe='Private Use',rxe='ASSIGNED',sxe='\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',txe='UNASSIGNED',uxe={3:1,117:1},vxe='org.eclipse.emf.ecore.xml.type.util',wxe={3:1,4:1,5:1,367:1},xxe='org.eclipse.xtext.xbase.lib',yxe='Cannot add elements to a Range',zxe='Cannot set elements in a Range',Axe='Cannot remove elements from a Range',Bxe='locale',Cxe='default',Dxe='user.agent';var _,$bb,Vbb,sbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;_bb();acb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.fm};_.Hb=function sb(){return ECb(this)};_.Ib=function ub(){var a;return gdb(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 xD,yD,zD;acb(289,1,{289:1,2025:1},idb);_.le=function jdb(a){var b;b=new idb;b.i=4;a>1?(b.c=qdb(this,a-1)):(b.c=this);return b};_.me=function pdb(){edb(this);return this.b};_.ne=function rdb(){return gdb(this)};_.oe=function tdb(){return edb(this),this.k};_.pe=function vdb(){return (this.i&4)!=0};_.qe=function wdb(){return (this.i&1)!=0};_.Ib=function zdb(){return hdb(this)};_.i=0;var ddb=1;var SI=ldb(Khe,'Object',1);var AI=ldb(Khe,'Class',289);acb(1997,1,Lhe);var $D=ldb(Mhe,'Optional',1997);acb(1169,1997,Lhe,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 YD=ldb(Mhe,'Absent',1169);acb(628,1,{},Gb);var ZD=ldb(Mhe,'Joiner',628);var _D=ndb(Mhe,'Predicate');acb(582,1,{169:1,582:1,3:1,45: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(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return pmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=ldb(Mhe,'Predicates/AndPredicate',582);acb(409,1997,{409:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,409)){b=BD(a,409);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Rhe+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 bE=ldb(Mhe,'Present',409);acb(198,1,The);_.Nb=function kc(a){Qrb(this,a)};_.Qb=function lc(){jc()};var MH=ldb(Uhe,'UnmodifiableIterator',198);acb(1977,198,Vhe);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw ubb(new agb)};_.Wb=function oc(a){throw ubb(new agb)};var NH=ldb(Uhe,'UnmodifiableListIterator',1977);acb(386,1977,Vhe);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw ubb(new ttb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw ubb(new ttb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=ldb(Uhe,'AbstractIndexedListIterator',386);acb(699,198,The);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=ldb(Uhe,'AbstractIterator',699);acb(1985,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(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 ecb(this.Zb())};var IE=ldb(Uhe,'AbstractMultimap',1985);acb(726,1985,Whe);_.$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 Yj(this.c.vc().Nc(),new $g,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 lmb(),new knb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=ldb(Uhe,'AbstractMapBasedMultimap',726);acb(1630,726,Whe);_.hc=function pd(){return new Rkb(this.a)};_.jc=function qd(){return lmb(),lmb(),imb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return umb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=ldb(Uhe,'AbstractListMultimap',1630);acb(732,1,Xhe);_.Nb=function zd(a){Qrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=ldb(Uhe,'AbstractMapBasedMultimap/Itr',732);acb(1098,732,Xhe,Dd);_.sc=function Ed(a,b){return b};var fE=ldb(Uhe,'AbstractMapBasedMultimap/1',1098);acb(1099,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=ldb(Uhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1099);acb(1100,732,Xhe,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=ldb(Uhe,'AbstractMapBasedMultimap/2',1100);var DK=ndb(Yhe,'Map');acb(1966,1,Zhe);_.wc=function Td(a){rtb(this,a)};_.yc=function $d(a,b,c){return stb(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=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return omb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Oib(this)};_.zc=function _d(a,b){throw ubb(new bgb('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 Zib(this)};var sJ=ldb(Yhe,'AbstractMap',1966);acb(1986,1966,Zhe);_.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 Zv(this)):a};var bH=ldb(Uhe,'Maps/ViewCachingAbstractMap',1986);acb(389,1986,Zhe,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():ir(new mf(this))};_._b=function pe(a){return Gv(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 ecb(this.d)};var lE=ldb(Uhe,'AbstractMapBasedMultimap/AsMap',389);var KI=ndb(Khe,'Iterable');acb(28,1,$he);_.Jc=function Le(a){qeb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Jub(this,0)};_.Oc=function Qe(){return new XAb(null,this.Nc())};_.Fc=function Ge(a){throw ubb(new bgb('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 dJ=ldb(Yhe,'AbstractCollection',28);var LK=ndb(Yhe,'Set');acb(_he,28,aie);_.Nc=function Ye(){return new Jub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return omb(this)};var zJ=ldb(Yhe,'AbstractSet',_he);acb(1969,_he,aie);var BH=ldb(Uhe,'Sets/ImprovedAbstractSet',1969);acb(1970,1969,aie);_.$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)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=ldb(Uhe,'Maps/EntrySet',1970);acb(1096,1970,aie,df);_.Hc=function ef(a){return Ck(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(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=ldb(Uhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1096);acb(1097,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=ldb(Uhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1097);acb(730,1,Xhe,mf);_.Nb=function nf(a){Qrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),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 kE=ldb(Uhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);acb(532,1969,aie,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 Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(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 $G=ldb(Uhe,'Maps/KeySet',532);acb(318,532,aie,zf);_.$b=function Af(){var a;ir((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=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=ldb(Uhe,'AbstractMapBasedMultimap/KeySet',318);acb(731,1,Xhe,Hf);_.Nb=function If(a){Qrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=ldb(Uhe,'AbstractMapBasedMultimap/KeySet/1',731);acb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=ldb(Uhe,'AbstractMapBasedMultimap/SortedAsMap',491);acb(542,491,bie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=ldb(Uhe,'AbstractMapBasedMultimap/NavigableAsMap',542);acb(490,318,cie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=ldb(Uhe,'AbstractMapBasedMultimap/SortedKeySet',490);acb(388,490,die,$f);var qE=ldb(Uhe,'AbstractMapBasedMultimap/NavigableKeySet',388);acb(541,28,$he,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return ecb(this.d)};var vE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=ndb(Yhe,'List');acb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){jtb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedList',728);acb(1095,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=ldb(Uhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1095);acb(620,1,Xhe,Gg);_.Nb=function Ig(a){Qrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);acb(729,620,eie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,124)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,124)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,124)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,124)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,124)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,124)).Wb(a)};var wE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);acb(727,541,cie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);acb(1094,727,die,Xg);var yE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1094);acb(1093,541,aie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=ldb(Uhe,'AbstractMapBasedMultimap/WrappedSet',1093);acb(1102,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=ldb(Uhe,'AbstractMapBasedMultimap/lambda$1$Type',1102);acb(1101,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=ldb(Uhe,'AbstractMapBasedMultimap/lambda$2$Type',1101);var CK=ndb(Yhe,'Map/Entry');acb(344,1,fie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw ubb(new agb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=ldb(Uhe,gie,344);acb(1987,28,$he);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=ldb(Uhe,'Multimaps/Entries',1987);acb(733,1987,$he,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=ldb(Uhe,'AbstractMultimap/Entries',733);acb(734,733,aie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=ldb(Uhe,'AbstractMultimap/EntrySet',734);acb(735,28,$he,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=ldb(Uhe,'AbstractMultimap/Values',735);acb(1988,28,{834:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,834)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return ecb(Ah(this))};var KE=ldb(Uhe,'AbstractMultiset',1988);acb(1990,1969,aie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,417);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,417);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=ldb(Uhe,'Multisets/EntrySet',1990);acb(1108,1990,aie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=ldb(Uhe,'AbstractMultiset/EntrySet',1108);acb(619,726,Whe);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return lmb(),lmb(),kmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return lmb(),new yob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=ldb(Uhe,'AbstractSetMultimap',619);acb(1656,619,Whe);_.hc=function ei(){return new Gxb(this.b)};_.gd=function fi(){return new Gxb(this.b)};_.jc=function gi(){return Ix(new Gxb(this.b))};_.hd=function hi(){return Ix(new Gxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(lmb(),new Yob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=ldb(Uhe,'AbstractSortedSetMultimap',1656);acb(1657,1656,Whe);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=ldb(Uhe,'AbstractSortedKeySortedSetMultimap',1657);acb(2009,1,{1946:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return omb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=ldb(Uhe,'AbstractTable',2009);acb(665,_he,aie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=ldb(Uhe,'AbstractTable/CellSet',665);acb(1927,28,$he,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=ldb(Uhe,'AbstractTable/Values',1927);acb(1631,1630,Whe);var RE=ldb(Uhe,'ArrayListMultimapGwtSerializationDependencies',1631);acb(513,1631,Whe,Ji,Ki);_.hc=function Li(){return new Rkb(this.a)};_.a=0;var SE=ldb(Uhe,'ArrayListMultimap',513);acb(664,2009,{664:1,1946:1,3:1},_i);var cF=ldb(Uhe,'ArrayTable',664);acb(1923,386,Vhe,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=ldb(Uhe,'ArrayTable/1',1923);acb(1924,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=ldb(Uhe,'ArrayTable/1methodref$getCell$Type',1924);acb(2010,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Glb(OC(GC(SI,1),Phe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=ldb(Uhe,'Tables/AbstractCell',2010);acb(468,2010,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=ldb(Uhe,'ArrayTable/2',468);acb(1926,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=ldb(Uhe,'ArrayTable/2methodref$getValue$Type',1926);acb(1925,386,Vhe,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=ldb(Uhe,'ArrayTable/3',1925);acb(1978,1966,Zhe);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Lub(this.kc(),this.gc())};var YG=ldb(Uhe,'Maps/IteratorBasedAbstractMap',1978);acb(827,1978,Zhe);_.$b=function tj(){throw ubb(new agb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw ubb(new Vdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw ubb(new agb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=ldb(Uhe,'ArrayTable/ArrayMap',827);acb(1922,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=ldb(Uhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1922);acb(1920,344,fie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=ldb(Uhe,'ArrayTable/ArrayMap/1',1920);acb(1921,386,Vhe,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=ldb(Uhe,'ArrayTable/ArrayMap/2',1921);acb(1919,827,Zhe,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=ldb(Uhe,'ArrayTable/Row',1919);acb(828,827,Zhe,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=ldb(Uhe,'ArrayTable/RowMap',828);acb(1119,1,kie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=ldb(Uhe,'CollectSpliterators/1',1119);acb(1120,1,lie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=ldb(Uhe,'CollectSpliterators/1/lambda$0$Type',1120);acb(1121,1,lie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=ldb(Uhe,'CollectSpliterators/1/lambda$1$Type',1121);acb(1122,1,kie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Ceb(this.b,this.d.rd()));return Ceb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Jbb(this.b,mie)&&(this.b=Pbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=ldb(Uhe,'CollectSpliterators/1FlatMapSpliterator',1122);acb(1123,1,lie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=ldb(Uhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1123);acb(1124,1,lie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=ldb(Uhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1124);acb(1116,1,kie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=ldb(Uhe,'CollectSpliterators/1WithCharacteristics',1116);acb(1117,1,nie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=ldb(Uhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1117);acb(1118,1,nie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=ldb(Uhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1118);acb(245,1,oie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Ecb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=ldb(Uhe,'Cut',245);acb(1760,245,oie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw ubb(new wcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw ubb(new Ydb(pie))};_.Hb=function Rk(){return Yfb(),jCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=ldb(Uhe,'Cut/AboveAll',1760);acb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Ofb((a.a+='(',a),this.a)};_.yd=function Wk(a){Jfb(Ofb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Ecb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=ldb(Uhe,'Cut/AboveValue',519);acb(1759,245,oie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw ubb(new wcb)};_.zd=function el(){throw ubb(new Ydb(pie))};_.Hb=function fl(){return Yfb(),jCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=ldb(Uhe,'Cut/BelowAll',1759);acb(1761,245,oie,il);_.xd=function jl(a){Ofb((a.a+='[',a),this.a)};_.yd=function kl(a){Jfb(Ofb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Ecb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=ldb(Uhe,'Cut/BelowValue',1761);acb(537,1,qie);_.Jc=function ql(a){qeb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=ldb(Uhe,'FluentIterable',537);acb(434,537,qie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=ldb(Uhe,'FluentIterable/2',434);acb(1045,537,qie,vl);_.Kc=function wl(){return ul(this)};var tF=ldb(Uhe,'FluentIterable/3',1045);acb(708,386,Vhe,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=ldb(Uhe,'FluentIterable/3/1',708);acb(1971,1,{});_.Ib=function zl(){return ecb(this.Bd().b)};var BF=ldb(Uhe,'ForwardingObject',1971);acb(1972,1971,rie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){qeb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Jub(this,0)};_.Oc=function Nl(){return new XAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),dnb()};_.Gc=function Bl(a){return this.Cd(),enb()};_.$b=function Cl(){this.Cd(),fnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),inb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=ldb(Uhe,'ForwardingCollection',1972);acb(1979,28,sie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw ubb(new agb)};_.Gc=function Tl(a){throw ubb(new agb)};_.$b=function Ul(){throw ubb(new agb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw ubb(new agb)};var WF=ldb(Uhe,'ImmutableCollection',1979);acb(712,1979,sie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return ecb(this.a)};var wF=ldb(Uhe,'ForwardingImmutableCollection',712);acb(152,1979,tie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){jtb(this,a)};_.Nc=function Am(){return new Jub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw ubb(new agb)};_.Wc=function mm(a,b){throw ubb(new agb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw ubb(new agb)};_._c=function ym(a,b){throw ubb(new agb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Iib(c,a,b)))};var hm;var _F=ldb(Uhe,'ImmutableList',152);acb(2005,152,tie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Phe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return ecb(this.Hd())};var xF=ldb(Uhe,'ForwardingImmutableList',2005);acb(714,1,vie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){rtb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return stb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw ubb(new agb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw ubb(new agb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=ldb(Uhe,'ImmutableMap',714);acb(715,714,vie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return cob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(fob(this.b))};_.Kd=function zn(){return Ql(),new Zl(gob(this.b))};_.Fb=function An(a){return eob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return ecb(this.b.c)};var zF=ldb(Uhe,'ForwardingImmutableMap',715);acb(1973,1972,wie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Jub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=ldb(Uhe,'ForwardingSet',1973);acb(1068,1973,wie,Ln);_.Bd=function Nn(){return dob(this.a.b)};_.Cd=function On(){return dob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Cob(dob(this.a.b),b)}catch(a){a=tbb(a);if(JD(a,205)){return false}else throw ubb(a)}};_.Md=function Pn(){return dob(this.a.b)};_.Qc=function Qn(a){var b;b=Dob(dob(this.a.b),a);dob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Cpb(),Apb)[this.q.getDay()]+' '+Bpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=ldb(Yhe,'Date',199);acb(1914,199,xje,nB);_.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 eI=ldb('com.google.gwt.i18n.shared.impl','DateRecord',1914);acb(1965,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=ldb(yje,'JSONValue',1965);acb(216,1965,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Vfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Ofb(c,tB(this,b))}c.a+=']';return c.a};var fI=ldb(yje,'JSONArray',216);acb(483,1965,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Acb(),''+this.a};_.a=false;var EB,FB;var gI=ldb(yje,'JSONBoolean',483);acb(984,60,Oie,MB);var hI=ldb(yje,'JSONException',984);acb(1022,1965,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return She};var NB;var iI=ldb(yje,'JSONNull',1022);acb(258,1965,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Gdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=ldb(yje,'JSONNumber',258);acb(183,1965,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Vfb('{');a=true;f=$B(this,KC(ZI,iie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=ldb(Khe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=ldb(Khe,Qie,2);acb(107,419,{475:1},Gfb,Hfb,Ifb);var WI=ldb(Khe,'StringBuffer',107);acb(100,419,{475:1},Tfb,Ufb,Vfb);var XI=ldb(Khe,'StringBuilder',100);acb(687,73,Hje,Wfb);var YI=ldb(Khe,'StringIndexOutOfBoundsException',687);acb(2042,1,{});var Xfb;acb(843,1,{},$fb);_.Kb=function _fb(a){return BD(a,78).e};var $I=ldb(Khe,'Throwable/lambda$0$Type',843);acb(41,60,{3:1,102:1,60:1,78:1,41:1},agb,bgb);var aJ=ldb(Khe,'UnsupportedOperationException',41);acb(240,236,{3:1,35:1,236:1,240:1},rgb,sgb);_.wd=function vgb(a){return lgb(this,BD(a,240))};_.ke=function wgb(){return Gcb(qgb(this))};_.Fb=function xgb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&lgb(this,b)==0}return false};_.Hb=function ygb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Bbb(this.f);this.b=Sbb(wbb(a,-1));this.b=33*this.b+Sbb(wbb(Nbb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Mgb(this.c)+QD(this.e);return this.b};_.Ib=function zgb(){return qgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var cgb,dgb,egb,fgb,ggb,hgb,igb,jgb;var bJ=ldb('java.math','BigDecimal',240);acb(91,236,{3:1,35:1,236:1,91:1},Sgb,Tgb,Ugb,Vgb,Wgb,Xgb);_.wd=function Zgb(a){return Hgb(this,BD(a,91))};_.ke=function $gb(){return Gcb(rhb(this,0))};_.Fb=function _gb(a){return Jgb(this,a)};_.Hb=function bhb(){return Mgb(this)};_.Ib=function dhb(){return rhb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Agb,Bgb,Cgb,Dgb,Egb,Fgb;var cJ=ldb('java.math','BigInteger',91);var mhb,nhb;var Ahb,Bhb;acb(488,1966,Zhe);_.$b=function Whb(){Thb(this)};_._b=function Xhb(a){return Lhb(this,a)};_.uc=function Yhb(a){return Mhb(this,a,this.g)||Mhb(this,a,this.f)};_.vc=function Zhb(){return new dib(this)};_.xc=function $hb(a){return Nhb(this,a)};_.zc=function _hb(a,b){return Qhb(this,a,b)};_.Bc=function aib(a){return Shb(this,a)};_.gc=function bib(){return Uhb(this)};var gJ=ldb(Yhe,'AbstractHashMap',488);acb(261,_he,aie,dib);_.$b=function eib(){this.a.$b()};_.Hc=function fib(a){return cib(this,a)};_.Kc=function gib(){return new mib(this.a)};_.Mc=function hib(a){var b;if(cib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function iib(){return this.a.gc()};var fJ=ldb(Yhe,'AbstractHashMap/EntrySet',261);acb(262,1,Xhe,mib);_.Nb=function nib(a){Qrb(this,a)};_.Pb=function pib(){return kib(this)};_.Ob=function oib(){return this.b};_.Qb=function qib(){lib(this)};_.b=false;var eJ=ldb(Yhe,'AbstractHashMap/EntrySetIterator',262);acb(418,1,Xhe,uib);_.Nb=function vib(a){Qrb(this,a)};_.Ob=function wib(){return rib(this)};_.Pb=function xib(){return sib(this)};_.Qb=function yib(){tib(this)};_.b=0;_.c=-1;var hJ=ldb(Yhe,'AbstractList/IteratorImpl',418);acb(96,418,eie,Aib);_.Qb=function Gib(){tib(this)};_.Rb=function Bib(a){zib(this,a)};_.Sb=function Cib(){return this.b>0};_.Tb=function Dib(){return this.b};_.Ub=function Eib(){return rCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Fib(){return this.b-1};_.Wb=function Hib(a){xCb(this.c!=-1);this.a._c(this.c,a)};var iJ=ldb(Yhe,'AbstractList/ListIteratorImpl',96);acb(219,52,Gie,Iib);_.Vc=function Jib(a,b){vCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Kib(a){sCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Lib(a){var b;sCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Mib(a,b){sCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Nib(){return this.b};_.a=0;_.b=0;var jJ=ldb(Yhe,'AbstractList/SubList',219);acb(384,_he,aie,Oib);_.$b=function Pib(){this.a.$b()};_.Hc=function Qib(a){return this.a._b(a)};_.Kc=function Rib(){var a;return a=this.a.vc().Kc(),new Uib(a)};_.Mc=function Sib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Tib(){return this.a.gc()};var mJ=ldb(Yhe,'AbstractMap/1',384);acb(691,1,Xhe,Uib);_.Nb=function Vib(a){Qrb(this,a)};_.Ob=function Wib(){return this.a.Ob()};_.Pb=function Xib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Yib(){this.a.Qb()};var lJ=ldb(Yhe,'AbstractMap/1/1',691);acb(226,28,$he,Zib);_.$b=function $ib(){this.a.$b()};_.Hc=function _ib(a){return this.a.uc(a)};_.Kc=function ajb(){var a;return a=this.a.vc().Kc(),new cjb(a)};_.gc=function bjb(){return this.a.gc()};var oJ=ldb(Yhe,'AbstractMap/2',226);acb(294,1,Xhe,cjb);_.Nb=function djb(a){Qrb(this,a)};_.Ob=function ejb(){return this.a.Ob()};_.Pb=function fjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function gjb(){this.a.Qb()};var nJ=ldb(Yhe,'AbstractMap/2/1',294);acb(484,1,{484:1,42:1});_.Fb=function ijb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return vtb(this.d,b.cd())&&vtb(this.e,b.dd())};_.cd=function jjb(){return this.d};_.dd=function kjb(){return this.e};_.Hb=function ljb(){return wtb(this.d)^wtb(this.e)};_.ed=function mjb(a){return hjb(this,a)};_.Ib=function njb(){return this.d+'='+this.e};var pJ=ldb(Yhe,'AbstractMap/AbstractEntry',484);acb(383,484,{484:1,383:1,42:1},ojb);var qJ=ldb(Yhe,'AbstractMap/SimpleEntry',383);acb(1983,1,Wje);_.Fb=function pjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return vtb(this.cd(),b.cd())&&vtb(this.dd(),b.dd())};_.Hb=function qjb(){return wtb(this.cd())^wtb(this.dd())};_.Ib=function rjb(){return this.cd()+'='+this.dd()};var rJ=ldb(Yhe,gie,1983);acb(1991,1966,bie);_.tc=function ujb(a){return sjb(this,a)};_._b=function vjb(a){return tjb(this,a)};_.vc=function wjb(){return new Ajb(this)};_.xc=function xjb(a){var b;b=a;return Wd(zwb(this,b))};_.ec=function zjb(){return new Fjb(this)};var wJ=ldb(Yhe,'AbstractNavigableMap',1991);acb(739,_he,aie,Ajb);_.Hc=function Bjb(a){return JD(a,42)&&sjb(this.b,BD(a,42))};_.Kc=function Cjb(){return new Xwb(this.b)};_.Mc=function Djb(a){var b;if(JD(a,42)){b=BD(a,42);return Jwb(this.b,b)}return false};_.gc=function Ejb(){return this.b.c};var tJ=ldb(Yhe,'AbstractNavigableMap/EntrySet',739);acb(493,_he,die,Fjb);_.Nc=function Ljb(){return new Qub(this)};_.$b=function Gjb(){ywb(this.a)};_.Hc=function Hjb(a){return tjb(this.a,a)};_.Kc=function Ijb(){var a;return a=new Xwb((new bxb(this.a)).b),new Mjb(a)};_.Mc=function Jjb(a){if(tjb(this.a,a)){Iwb(this.a,a);return true}return false};_.gc=function Kjb(){return this.a.c};var vJ=ldb(Yhe,'AbstractNavigableMap/NavigableKeySet',493);acb(494,1,Xhe,Mjb);_.Nb=function Njb(a){Qrb(this,a)};_.Ob=function Ojb(){return rib(this.a.a)};_.Pb=function Pjb(){var a;return a=Vwb(this.a),a.cd()};_.Qb=function Qjb(){Wwb(this.a)};var uJ=ldb(Yhe,'AbstractNavigableMap/NavigableKeySet/1',494);acb(2003,28,$he);_.Fc=function Rjb(a){return yCb(bub(this,a)),true};_.Gc=function Sjb(a){tCb(a);lCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Tjb(){while(cub(this)!=null);};var xJ=ldb(Yhe,'AbstractQueue',2003);acb(302,28,{4:1,20:1,28:1,14:1},ikb,jkb);_.Fc=function kkb(a){return Wjb(this,a),true};_.$b=function mkb(){Xjb(this)};_.Hc=function nkb(a){return Yjb(new wkb(this),a)};_.dc=function okb(){return _jb(this)};_.Kc=function pkb(){return new wkb(this)};_.Mc=function qkb(a){return ckb(new wkb(this),a)};_.gc=function rkb(){return this.c-this.b&this.a.length-1};_.Nc=function skb(){return new Jub(this,272)};_.Qc=function tkb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=ldb(Yhe,'ArrayDeque',302);acb(447,1,Xhe,wkb);_.Nb=function xkb(a){Qrb(this,a)};_.Ob=function ykb(){return this.a!=this.b};_.Pb=function zkb(){return ukb(this)};_.Qb=function Akb(){vkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=ldb(Yhe,'ArrayDeque/IteratorImpl',447);acb(12,52,Xje,Qkb,Rkb,Skb);_.Vc=function Tkb(a,b){Ckb(this,a,b)};_.Fc=function Ukb(a){return Dkb(this,a)};_.Wc=function Vkb(a,b){return Ekb(this,a,b)};_.Gc=function Wkb(a){return Fkb(this,a)};_.$b=function Xkb(){this.c=KC(SI,Phe,1,0,5,1)};_.Hc=function Ykb(a){return Ikb(this,a,0)!=-1};_.Jc=function Zkb(a){Gkb(this,a)};_.Xb=function $kb(a){return Hkb(this,a)};_.Xc=function _kb(a){return Ikb(this,a,0)};_.dc=function alb(){return this.c.length==0};_.Kc=function blb(){return new nlb(this)};_.$c=function clb(a){return Jkb(this,a)};_.Mc=function dlb(a){return Kkb(this,a)};_.Ud=function elb(a,b){Lkb(this,a,b)};_._c=function flb(a,b){return Mkb(this,a,b)};_.gc=function glb(){return this.c.length};_.ad=function hlb(a){Nkb(this,a)};_.Pc=function ilb(){return Okb(this)};_.Qc=function jlb(a){return Pkb(this,a)};var DJ=ldb(Yhe,'ArrayList',12);acb(7,1,Xhe,nlb);_.Nb=function olb(a){Qrb(this,a)};_.Ob=function plb(){return klb(this)};_.Pb=function qlb(){return llb(this)};_.Qb=function rlb(){mlb(this)};_.a=0;_.b=-1;var CJ=ldb(Yhe,'ArrayList/1',7);acb(2012,$wnd.Function,{},Xlb);_.te=function Ylb(a,b){return Jdb(a,b)};acb(154,52,Yje,_lb);_.Hc=function amb(a){return Bt(this,a)!=-1};_.Jc=function bmb(a){var b,c,d,e;tCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Lje;var PM=ldb(Bke,'CNode',57);acb(813,1,{},yDb);var OM=ldb(Bke,'CNode/CNodeBuilder',813);var DDb;acb(1524,1,{},FDb);_.Oe=function GDb(a,b){return 0};_.Pe=function HDb(a,b){return 0};var QM=ldb(Bke,Dke,1524);acb(1789,1,{},IDb);_.Le=function JDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Kje;for(d=new nlb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function GHb(){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].Se())}else if(this.g){e=DHb(this,xHb(this,null,true))}else{for(b=(fHb(),OC(GC(pN,1),Fie,232,0,[cHb,dHb,eHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function HHb(){var a,b,c,d,e;if(this.g){a=xHb(this,null,false);for(c=(fHb(),OC(GC(pN,1),Fie,232,0,[cHb,dHb,eHb])),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);tHb(this,dHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var qHb=0,rHb=0;var rN=ldb(ale,'GridContainerCell',1472);acb(461,22,{3:1,35:1,22:1,461:1},NHb);var JHb,KHb,LHb;var sN=mdb(ale,'HorizontalLabelAlignment',461,CI,PHb,OHb);var QHb;acb(306,212,{212:1,306:1},_Hb,aIb,bIb);_.Re=function cIb(){return XHb(this)};_.Se=function dIb(){return YHb(this)};_.a=0;_.c=false;var tN=ldb(ale,'LabelCell',306);acb(244,326,{212:1,326:1,244:1},lIb);_.Re=function mIb(){return eIb(this)};_.Se=function nIb(){return fIb(this)};_.Te=function qIb(){gIb(this)};_.Ue=function rIb(){hIb(this)};_.b=0;_.c=0;_.d=false;var yN=ldb(ale,'StripContainerCell',244);acb(1625,1,Jie,sIb);_.Mb=function tIb(a){return oIb(BD(a,212))};var uN=ldb(ale,'StripContainerCell/lambda$0$Type',1625);acb(1626,1,{},uIb);_.Fe=function vIb(a){return BD(a,212).Se()};var vN=ldb(ale,'StripContainerCell/lambda$1$Type',1626);acb(1627,1,Jie,wIb);_.Mb=function xIb(a){return pIb(BD(a,212))};var wN=ldb(ale,'StripContainerCell/lambda$2$Type',1627);acb(1628,1,{},yIb);_.Fe=function zIb(a){return BD(a,212).Re()};var xN=ldb(ale,'StripContainerCell/lambda$3$Type',1628);acb(462,22,{3:1,35:1,22:1,462:1},EIb);var AIb,BIb,CIb;var zN=mdb(ale,'VerticalLabelAlignment',462,CI,GIb,FIb);var HIb;acb(788,1,{},KIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=ldb(ile,'NodeContext',788);acb(1470,1,yke,NIb);_.ue=function OIb(a,b){return MIb(BD(a,61),BD(b,61))};_.Fb=function PIb(a){return this===a};_.ve=function QIb(){return new spb(this)};var AN=ldb(ile,'NodeContext/0methodref$comparePortSides$Type',1470);acb(1471,1,yke,RIb);_.ue=function SIb(a,b){return LIb(BD(a,111),BD(b,111))};_.Fb=function TIb(a){return this===a};_.ve=function UIb(){return new spb(this)};var BN=ldb(ile,'NodeContext/1methodref$comparePortContexts$Type',1471);acb(159,22,{3:1,35:1,22:1,159:1},sJb);var VIb,WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb;var DN=mdb(ile,'NodeLabelLocation',159,CI,vJb,uJb);var wJb;acb(111,1,{111:1},zJb);_.a=false;var EN=ldb(ile,'PortContext',111);acb(1475,1,lie,SJb);_.td=function TJb(a){VHb(BD(a,306))};var FN=ldb(lle,mle,1475);acb(1476,1,Jie,UJb);_.Mb=function VJb(a){return !!BD(a,111).c};var GN=ldb(lle,nle,1476);acb(1477,1,lie,WJb);_.td=function XJb(a){VHb(BD(a,111).c)};var HN=ldb(lle,'LabelPlacer/lambda$2$Type',1477);var YJb;acb(1474,1,lie,eKb);_.td=function fKb(a){ZJb();yJb(BD(a,111))};var IN=ldb(lle,'NodeLabelAndSizeUtilities/lambda$0$Type',1474);acb(789,1,lie,lKb);_.td=function mKb(a){jKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=ldb(lle,'NodeLabelCellCreator/lambda$0$Type',789);acb(1473,1,lie,sKb);_.td=function tKb(a){rKb(this.a,BD(a,181))};var KN=ldb(lle,'PortContextCreator/lambda$0$Type',1473);var AKb;acb(1828,1,{},UKb);var MN=ldb(ple,'GreedyRectangleStripOverlapRemover',1828);acb(1829,1,yke,WKb);_.ue=function XKb(a,b){return VKb(BD(a,222),BD(b,222))};_.Fb=function YKb(a){return this===a};_.ve=function ZKb(){return new spb(this)};var LN=ldb(ple,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1829);acb(1785,1,{},eLb);_.a=5;_.e=0;var SN=ldb(ple,'RectangleStripOverlapRemover',1785);acb(1786,1,yke,iLb);_.ue=function jLb(a,b){return fLb(BD(a,222),BD(b,222))};_.Fb=function kLb(a){return this===a};_.ve=function lLb(){return new spb(this)};var NN=ldb(ple,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1786);acb(1788,1,yke,mLb);_.ue=function nLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function oLb(a){return this===a};_.ve=function pLb(){return new spb(this)};var ON=ldb(ple,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1788);acb(407,22,{3:1,35:1,22:1,407:1},vLb);var qLb,rLb,sLb,tLb;var PN=mdb(ple,'RectangleStripOverlapRemover/OverlapRemovalDirection',407,CI,xLb,wLb);var yLb;acb(222,1,{222:1},ALb);var QN=ldb(ple,'RectangleStripOverlapRemover/RectangleNode',222);acb(1787,1,lie,BLb);_.td=function CLb(a){_Kb(this.a,BD(a,222))};var RN=ldb(ple,'RectangleStripOverlapRemover/lambda$1$Type',1787);acb(1303,1,yke,FLb);_.ue=function GLb(a,b){return ELb(BD(a,167),BD(b,167))};_.Fb=function HLb(a){return this===a};_.ve=function ILb(){return new spb(this)};var WN=ldb(rle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1303);acb(1306,1,{},JLb);_.Kb=function KLb(a){return BD(a,324).a};var TN=ldb(rle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1306);acb(1307,1,Jie,LLb);_.Mb=function MLb(a){return BD(a,323).a};var UN=ldb(rle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1307);acb(1308,1,Jie,NLb);_.Mb=function OLb(a){return BD(a,323).a};var VN=ldb(rle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1308);acb(1301,1,yke,QLb);_.ue=function RLb(a,b){return PLb(BD(a,167),BD(b,167))};_.Fb=function SLb(a){return this===a};_.ve=function TLb(){return new spb(this)};var YN=ldb(rle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1301);acb(1304,1,{},ULb);_.Kb=function VLb(a){return BD(a,324).a};var XN=ldb(rle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1304);acb(767,1,yke,XLb);_.ue=function YLb(a,b){return WLb(BD(a,167),BD(b,167))};_.Fb=function ZLb(a){return this===a};_.ve=function $Lb(){return new spb(this)};var ZN=ldb(rle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);acb(1299,1,yke,aMb);_.ue=function bMb(a,b){return _Lb(BD(a,321),BD(b,321))};_.Fb=function cMb(a){return this===a};_.ve=function dMb(){return new spb(this)};var _N=ldb(rle,'PolyominoCompactor/MinPerimeterComparator',1299);acb(1300,1,yke,fMb);_.ue=function gMb(a,b){return eMb(BD(a,321),BD(b,321))};_.Fb=function hMb(a){return this===a};_.ve=function iMb(){return new spb(this)};var $N=ldb(rle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1300);acb(1302,1,yke,kMb);_.ue=function lMb(a,b){return jMb(BD(a,167),BD(b,167))};_.Fb=function mMb(a){return this===a};_.ve=function nMb(){return new spb(this)};var bO=ldb(rle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1302);acb(1305,1,{},oMb);_.Kb=function pMb(a){return BD(a,324).a};var aO=ldb(rle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1305);acb(777,1,{},sMb);_.Ce=function tMb(a,b){return rMb(this,BD(a,46),BD(b,167))};var cO=ldb(rle,'SuccessorCombination',777);acb(644,1,{},vMb);_.Ce=function wMb(a,b){var c;return uMb((c=BD(a,46),BD(b,167),c))};var dO=ldb(rle,'SuccessorJitter',644);acb(643,1,{},yMb);_.Ce=function zMb(a,b){var c;return xMb((c=BD(a,46),BD(b,167),c))};var eO=ldb(rle,'SuccessorLineByLine',643);acb(568,1,{},BMb);_.Ce=function CMb(a,b){var c;return AMb((c=BD(a,46),BD(b,167),c))};var fO=ldb(rle,'SuccessorManhattan',568);acb(1355,1,{},EMb);_.Ce=function FMb(a,b){var c;return DMb((c=BD(a,46),BD(b,167),c))};var gO=ldb(rle,'SuccessorMaxNormWindingInMathPosSense',1355);acb(400,1,{},IMb);_.Ce=function JMb(a,b){return GMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=ldb(rle,'SuccessorQuadrantsGeneric',400);acb(1356,1,{},KMb);_.Kb=function LMb(a){return BD(a,324).a};var hO=ldb(rle,'SuccessorQuadrantsGeneric/lambda$0$Type',1356);acb(323,22,{3:1,35:1,22:1,323:1},RMb);_.a=false;var MMb,NMb,OMb,PMb;var jO=mdb(wle,xle,323,CI,TMb,SMb);var UMb;acb(1297,1,{});_.Ib=function aNb(){var a,b,c,d,e,f;c=' ';a=leb(0);for(e=0;e=0?'b'+a+'['+eRb(this.a)+']':'b['+eRb(this.a)+']'}return 'b_'+ECb(this)};var YO=ldb(eme,'FBendpoint',559);acb(281,134,{3:1,281:1,94:1,134:1},fRb);_.Ib=function gRb(){return eRb(this)};var ZO=ldb(eme,'FEdge',281);acb(231,134,{3:1,231:1,94:1,134:1},jRb);var $O=ldb(eme,'FGraph',231);acb(448,356,{3:1,448:1,356:1,94:1,134:1},lRb);_.Ib=function mRb(){return this.b==null||this.b.length==0?'l['+eRb(this.a)+']':'l_'+this.b};var _O=ldb(eme,'FLabel',448);acb(144,356,{3:1,144:1,356:1,94:1,134:1},oRb);_.Ib=function pRb(){return nRb(this)};_.b=0;var aP=ldb(eme,'FNode',144);acb(2002,1,{});_.bf=function uRb(a){qRb(this,a)};_.cf=function vRb(){rRb(this)};_.d=0;var cP=ldb(gme,'AbstractForceModel',2002);acb(631,2002,{631:1},wRb);_.af=function yRb(a,b){var c,d,e,f,g;tRb(this.f,a,b);e=$6c(N6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-Q6c(a.e)/2-Q6c(b.e)/2);c=iRb(this.e,a,b);c>0?(f=-xRb(d,this.c)*c):(f=BRb(d,this.b)*BD(uNb(a,(vSb(),nSb)),19).a);U6c(e,f/g);return e};_.bf=function zRb(a){qRb(this,a);this.a=BD(uNb(a,(vSb(),dSb)),19).a;this.c=Ddb(ED(uNb(a,tSb)));this.b=Ddb(ED(uNb(a,pSb)))};_.df=function ARb(a){return a0&&(f-=DRb(d,this.a)*c);U6c(e,f*this.b/g);return e};_.bf=function FRb(a){var b,c,d,e,f,g,h;qRb(this,a);this.b=Ddb(ED(uNb(a,(vSb(),uSb))));this.c=this.b/BD(uNb(a,dSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new nlb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=ldb(gme,'FruchtermanReingoldModel',632);acb(848,1,Xke,SRb);_.Qe=function TRb(a){p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,hme),''),'Force Model'),'Determines the model for force calculation.'),LRb),(X5c(),R5c)),gP),oqb((J5c(),H5c)))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ime),''),'Iterations'),'The number of iterations on the force model.'),leb(300)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,jme),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),leb(0)),T5c),JI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,kme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),lme),Q5c),BI),oqb(H5c))));k4c(a,kme,hme,QRb);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,mme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),Q5c),BI),oqb(H5c))));k4c(a,mme,hme,NRb);wSb((new xSb,a))};var JRb,KRb,LRb,MRb,NRb,ORb,PRb,QRb;var fP=ldb(nme,'ForceMetaDataProvider',848);acb(425,22,{3:1,35:1,22:1,425:1},XRb);var URb,VRb;var gP=mdb(nme,'ForceModelStrategy',425,CI,ZRb,YRb);var $Rb;acb(987,1,Xke,xSb);_.Qe=function ySb(a){wSb(a)};var aSb,bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb;var iP=ldb(nme,'ForceOptions',987);acb(988,1,{},zSb);_.$e=function ASb(){var a;return a=new YQb,a};_._e=function BSb(a){};var hP=ldb(nme,'ForceOptions/ForceFactory',988);var CSb,DSb,ESb,FSb;acb(849,1,Xke,OSb);_.Qe=function PSb(a){p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Hme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Acb(),false)),(X5c(),P5c)),wI),oqb((J5c(),G5c)))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ime),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),Q5c),BI),pqb(H5c,OC(GC(d1,1),Fie,175,0,[E5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Jme),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),JSb),R5c),oP),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Kme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),lme),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Lme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),leb(Jhe)),T5c),JI),oqb(H5c))));bTb((new cTb,a))};var HSb,ISb,JSb,KSb,LSb,MSb;var jP=ldb(nme,'StressMetaDataProvider',849);acb(991,1,Xke,cTb);_.Qe=function dTb(a){bTb(a)};var QSb,RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb;var lP=ldb(nme,'StressOptions',991);acb(992,1,{},eTb);_.$e=function fTb(){var a;return a=new hTb,a};_._e=function gTb(a){};var kP=ldb(nme,'StressOptions/StressFactory',992);acb(1127,209,Hle,hTb);_.Ze=function iTb(a,b){var c,d,e,f,g;Jdd(b,Nme,1);Bcb(DD(ckd(a,(aTb(),USb))))?Bcb(DD(ckd(a,$Sb)))||ZCb((c=new $Cb((Kgd(),new Ygd(a))),c)):VQb(new YQb,a,Pdd(b,1));e=SQb(a);d=KQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}rTb(this.b,f);pTb(this.b);Gkb(f.d,new jTb)}e=JQb(d);RQb(e);Ldd(b)};var nP=ldb(Pme,'StressLayoutProvider',1127);acb(1128,1,lie,jTb);_.td=function kTb(a){kRb(BD(a,448))};var mP=ldb(Pme,'StressLayoutProvider/lambda$0$Type',1128);acb(989,1,{},sTb);_.c=0;_.e=0;_.g=0;var qP=ldb(Pme,'StressMajorization',989);acb(379,22,{3:1,35:1,22:1,379:1},yTb);var uTb,vTb,wTb;var oP=mdb(Pme,'StressMajorization/Dimension',379,CI,ATb,zTb);var BTb;acb(990,1,yke,DTb);_.ue=function ETb(a,b){return tTb(this.a,BD(a,144),BD(b,144))};_.Fb=function FTb(a){return this===a};_.ve=function GTb(){return new spb(this)};var pP=ldb(Pme,'StressMajorization/lambda$0$Type',990);acb(1228,1,{},OTb);var tP=ldb(Rme,'ElkLayered',1228);acb(1229,1,lie,RTb);_.td=function STb(a){PTb(BD(a,37))};var rP=ldb(Rme,'ElkLayered/lambda$0$Type',1229);acb(1230,1,lie,TTb);_.td=function UTb(a){QTb(this.a,BD(a,37))};var sP=ldb(Rme,'ElkLayered/lambda$1$Type',1230);acb(1262,1,{},aUb);var VTb,WTb,XTb;var xP=ldb(Rme,'GraphConfigurator',1262);acb(759,1,lie,cUb);_.td=function dUb(a){ZTb(this.a,BD(a,10))};var uP=ldb(Rme,'GraphConfigurator/lambda$0$Type',759);acb(760,1,{},eUb);_.Kb=function fUb(a){return YTb(),new XAb(null,new Jub(BD(a,29).a,16))};var vP=ldb(Rme,'GraphConfigurator/lambda$1$Type',760);acb(761,1,lie,gUb);_.td=function hUb(a){ZTb(this.a,BD(a,10))};var wP=ldb(Rme,'GraphConfigurator/lambda$2$Type',761);acb(1126,209,Hle,iUb);_.Ze=function jUb(a,b){var c;c=T1b(new _1b,a);PD(ckd(a,(Lyc(),$wc)))===PD((dbd(),abd))?ITb(this.a,c,b):JTb(this.a,c,b);y2b(new C2b,c)};var yP=ldb(Rme,'LayeredLayoutProvider',1126);acb(355,22,{3:1,35:1,22:1,355:1},qUb);var kUb,lUb,mUb,nUb,oUb;var zP=mdb(Rme,'LayeredPhases',355,CI,sUb,rUb);var tUb;acb(1650,1,{},BUb);_.i=0;var vUb;var CP=ldb(Sme,'ComponentsToCGraphTransformer',1650);var gVb;acb(1651,1,{},CUb);_.ef=function DUb(a,b){return $wnd.Math.min(a.a!=null?Ddb(a.a):a.c.i,b.a!=null?Ddb(b.a):b.c.i)};_.ff=function EUb(a,b){return $wnd.Math.min(a.a!=null?Ddb(a.a):a.c.i,b.a!=null?Ddb(b.a):b.c.i)};var AP=ldb(Sme,'ComponentsToCGraphTransformer/1',1651);acb(81,1,{81:1});_.i=0;_.k=true;_.o=Lje;var IP=ldb(Tme,'CNode',81);acb(460,81,{460:1,81:1},FUb,GUb);_.Ib=function HUb(){return ''};var BP=ldb(Sme,'ComponentsToCGraphTransformer/CRectNode',460);acb(1622,1,{},UUb);var IUb,JUb;var FP=ldb(Sme,'OneDimensionalComponentsCompaction',1622);acb(1623,1,{},XUb);_.Kb=function YUb(a){return VUb(BD(a,46))};_.Fb=function ZUb(a){return this===a};var DP=ldb(Sme,'OneDimensionalComponentsCompaction/lambda$0$Type',1623);acb(1624,1,{},$Ub);_.Kb=function _Ub(a){return WUb(BD(a,46))};_.Fb=function aVb(a){return this===a};var EP=ldb(Sme,'OneDimensionalComponentsCompaction/lambda$1$Type',1624);acb(1653,1,{},cVb);var GP=ldb(Tme,'CGraph',1653);acb(189,1,{189:1},fVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Lje;var HP=ldb(Tme,'CGroup',189);acb(1652,1,{},iVb);_.ef=function jVb(a,b){return $wnd.Math.max(a.a!=null?Ddb(a.a):a.c.i,b.a!=null?Ddb(b.a):b.c.i)};_.ff=function kVb(a,b){return $wnd.Math.max(a.a!=null?Ddb(a.a):a.c.i,b.a!=null?Ddb(b.a):b.c.i)};var JP=ldb(Tme,Dke,1652);acb(1654,1,{},BVb);_.d=false;var lVb;var LP=ldb(Tme,Ike,1654);acb(1655,1,{},CVb);_.Kb=function DVb(a){return mVb(),Acb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function EVb(a){return this===a};var KP=ldb(Tme,Jke,1655);acb(822,1,{},HVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=ldb(Tme,Kke,822);acb(1824,1,{},NVb);var RP=ldb(Ume,Lke,1824);var bQ=ndb(Vme,Ake);acb(1825,1,{368:1},RVb);_.Ke=function SVb(a){PVb(this,BD(a,466))};var OP=ldb(Ume,Mke,1825);acb(1826,1,yke,UVb);_.ue=function VVb(a,b){return TVb(BD(a,81),BD(b,81))};_.Fb=function WVb(a){return this===a};_.ve=function XVb(){return new spb(this)};var NP=ldb(Ume,Nke,1826);acb(466,1,{466:1},YVb);_.a=false;var PP=ldb(Ume,Oke,466);acb(1827,1,yke,ZVb);_.ue=function $Vb(a,b){return OVb(BD(a,466),BD(b,466))};_.Fb=function _Vb(a){return this===a};_.ve=function aWb(){return new spb(this)};var QP=ldb(Ume,Pke,1827);acb(140,1,{140:1},bWb,cWb);_.Fb=function dWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return vtb(this.c,b.c)&&vtb(this.d,b.d)};_.Hb=function eWb(){return Glb(OC(GC(SI,1),Phe,1,5,[this.c,this.d]))};_.Ib=function fWb(){return '('+this.c+Nhe+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=ldb(Vme,'Point',140);acb(406,22,{3:1,35:1,22:1,406:1},nWb);var gWb,hWb,iWb,jWb;var SP=mdb(Vme,'Point/Quadrant',406,CI,rWb,qWb);var sWb;acb(1641,1,{},BWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var uWb,vWb,wWb,xWb,yWb;var aQ=ldb(Vme,'RectilinearConvexHull',1641);acb(574,1,{368:1},MWb);_.Ke=function NWb(a){LWb(this,BD(a,140))};_.b=0;var JWb;var VP=ldb(Vme,'RectilinearConvexHull/MaximalElementsEventHandler',574);acb(1643,1,yke,PWb);_.ue=function QWb(a,b){return OWb(ED(a),ED(b))};_.Fb=function RWb(a){return this===a};_.ve=function SWb(){return new spb(this)};var UP=ldb(Vme,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1643);acb(1642,1,{368:1},UWb);_.Ke=function VWb(a){TWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=ldb(Vme,'RectilinearConvexHull/RectangleEventHandler',1642);acb(1644,1,yke,WWb);_.ue=function XWb(a,b){return DWb(BD(a,140),BD(b,140))};_.Fb=function YWb(a){return this===a};_.ve=function ZWb(){return new spb(this)};var XP=ldb(Vme,'RectilinearConvexHull/lambda$0$Type',1644);acb(1645,1,yke,$Wb);_.ue=function _Wb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function aXb(a){return this===a};_.ve=function bXb(){return new spb(this)};var YP=ldb(Vme,'RectilinearConvexHull/lambda$1$Type',1645);acb(1646,1,yke,cXb);_.ue=function dXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function eXb(a){return this===a};_.ve=function fXb(){return new spb(this)};var ZP=ldb(Vme,'RectilinearConvexHull/lambda$2$Type',1646);acb(1647,1,yke,gXb);_.ue=function hXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function iXb(a){return this===a};_.ve=function jXb(){return new spb(this)};var $P=ldb(Vme,'RectilinearConvexHull/lambda$3$Type',1647);acb(1648,1,yke,kXb);_.ue=function lXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function mXb(a){return this===a};_.ve=function nXb(){return new spb(this)};var _P=ldb(Vme,'RectilinearConvexHull/lambda$4$Type',1648);acb(1649,1,{},pXb);var cQ=ldb(Vme,'Scanline',1649);acb(2004,1,{});var dQ=ldb(Wme,'AbstractGraphPlacer',2004);acb(325,1,{325:1},zXb);_.mf=function AXb(a){if(this.nf(a)){Rc(this.b,BD(uNb(a,(utc(),Csc)),21),a);return true}else{return false}};_.nf=function BXb(a){var b,c,d,e;b=BD(uNb(a,(utc(),Csc)),21);e=BD(Qc(vXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var vXb;var gQ=ldb(Wme,'ComponentGroup',325);acb(765,2004,{},GXb);_.of=function HXb(a){var b,c;for(c=new nlb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;tXb(g,v+q.a,w+q.b);T6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Bcb(DD(uNb(f,owc)))){d=new fYb;XXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);L6c(T6c(k.c),d.e)}L6c(T6c(b.f),d.a)}sXb(b,a)};var uQ=ldb(Wme,'SimpleRowGraphPlacer',1290);acb(1291,1,yke,UYb);_.ue=function VYb(a,b){return TYb(BD(a,37),BD(b,37))};_.Fb=function WYb(a){return this===a};_.ve=function XYb(){return new spb(this)};var tQ=ldb(Wme,'SimpleRowGraphPlacer/1',1291);var YYb;acb(1261,1,Qke,cZb);_.Lb=function dZb(a){var b;return b=BD(uNb(BD(a,243).b,(Lyc(),hxc)),74),!!b&&b.b!=0};_.Fb=function eZb(a){return this===a};_.Mb=function fZb(a){var b;return b=BD(uNb(BD(a,243).b,(Lyc(),hxc)),74),!!b&&b.b!=0};var vQ=ldb($me,'CompoundGraphPostprocessor/1',1261);acb(1260,1,_me,vZb);_.pf=function wZb(a,b){pZb(this,BD(a,37),b)};var xQ=ldb($me,'CompoundGraphPreprocessor',1260);acb(442,1,{442:1},xZb);_.c=false;var wQ=ldb($me,'CompoundGraphPreprocessor/ExternalPort',442);acb(243,1,{243:1},AZb);_.Ib=function BZb(){return Zr(this.c)+':'+SZb(this.b)};var zQ=ldb($me,'CrossHierarchyEdge',243);acb(763,1,yke,DZb);_.ue=function EZb(a,b){return CZb(this,BD(a,243),BD(b,243))};_.Fb=function FZb(a){return this===a};_.ve=function HZb(){return new spb(this)};var yQ=ldb($me,'CrossHierarchyEdgeComparator',763);acb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=ldb(ane,'LGraphElement',299);acb(17,299,{3:1,17:1,299:1,94:1,134:1},TZb);_.Ib=function UZb(){return SZb(this)};var AQ=ldb(ane,'LEdge',17);acb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},WZb);_.Jc=function XZb(a){qeb(this,a)};_.Kc=function YZb(){return new nlb(this.b)};_.Ib=function ZZb(){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 KQ=ldb(ane,'LGraph',37);var $Zb;acb(657,1,{});_.qf=function a$b(){return this.e.n};_.We=function b$b(a){return uNb(this.e,a)};_.rf=function c$b(){return this.e.o};_.sf=function d$b(){return this.e.p};_.Xe=function e$b(a){return vNb(this.e,a)};_.tf=function f$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function g$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function h$b(a){this.e.p=a};var BQ=ldb(ane,'LGraphAdapters/AbstractLShapeAdapter',657);acb(577,1,{838:1},i$b);_.wf=function j$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new nlb(this.a.b);b.a0&&D_b((ACb(c-1,b.length),b.charCodeAt(c-1)),ine)){--c}if(g> ',a),B0b(c));Pfb(Ofb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var s0b,t0b,u0b,v0b,w0b,x0b;var aR=ldb(ane,'LPort',11);acb(397,1,qie,I0b);_.Jc=function J0b(a){qeb(this,a)};_.Kc=function K0b(){var a;a=new nlb(this.a.e);return new L0b(a)};var RQ=ldb(ane,'LPort/1',397);acb(1289,1,Xhe,L0b);_.Nb=function M0b(a){Qrb(this,a)};_.Pb=function O0b(){return BD(llb(this.a),17).c};_.Ob=function N0b(){return klb(this.a)};_.Qb=function P0b(){mlb(this.a)};var QQ=ldb(ane,'LPort/1/1',1289);acb(358,1,qie,Q0b);_.Jc=function R0b(a){qeb(this,a)};_.Kc=function S0b(){var a;return a=new nlb(this.a.g),new T0b(a)};var TQ=ldb(ane,'LPort/2',358);acb(762,1,Xhe,T0b);_.Nb=function U0b(a){Qrb(this,a)};_.Pb=function W0b(){return BD(llb(this.a),17).d};_.Ob=function V0b(){return klb(this.a)};_.Qb=function X0b(){mlb(this.a)};var SQ=ldb(ane,'LPort/2/1',762);acb(1282,1,qie,Y0b);_.Jc=function Z0b(a){qeb(this,a)};_.Kc=function $0b(){return new a1b(this)};var VQ=ldb(ane,'LPort/CombineIter',1282);acb(201,1,Xhe,a1b);_.Nb=function b1b(a){Qrb(this,a)};_.Qb=function e1b(){Rrb()};_.Ob=function c1b(){return _0b(this)};_.Pb=function d1b(){return klb(this.a)?llb(this.a):llb(this.b)};var UQ=ldb(ane,'LPort/CombineIter/1',201);acb(1283,1,Qke,g1b);_.Lb=function h1b(a){return f1b(a)};_.Fb=function i1b(a){return this===a};_.Mb=function j1b(a){return y0b(),BD(a,11).g.c.length!=0};var WQ=ldb(ane,'LPort/lambda$0$Type',1283);acb(1284,1,Qke,l1b);_.Lb=function m1b(a){return k1b(a)};_.Fb=function n1b(a){return this===a};_.Mb=function o1b(a){return y0b(),BD(a,11).e.c.length!=0};var XQ=ldb(ane,'LPort/lambda$1$Type',1284);acb(1285,1,Qke,p1b);_.Lb=function q1b(a){return y0b(),BD(a,11).j==(Pcd(),vcd)};_.Fb=function r1b(a){return this===a};_.Mb=function s1b(a){return y0b(),BD(a,11).j==(Pcd(),vcd)};var YQ=ldb(ane,'LPort/lambda$2$Type',1285);acb(1286,1,Qke,t1b);_.Lb=function u1b(a){return y0b(),BD(a,11).j==(Pcd(),ucd)};_.Fb=function v1b(a){return this===a};_.Mb=function w1b(a){return y0b(),BD(a,11).j==(Pcd(),ucd)};var ZQ=ldb(ane,'LPort/lambda$3$Type',1286);acb(1287,1,Qke,x1b);_.Lb=function y1b(a){return y0b(),BD(a,11).j==(Pcd(),Mcd)};_.Fb=function z1b(a){return this===a};_.Mb=function A1b(a){return y0b(),BD(a,11).j==(Pcd(),Mcd)};var $Q=ldb(ane,'LPort/lambda$4$Type',1287);acb(1288,1,Qke,B1b);_.Lb=function C1b(a){return y0b(),BD(a,11).j==(Pcd(),Ocd)};_.Fb=function D1b(a){return this===a};_.Mb=function E1b(a){return y0b(),BD(a,11).j==(Pcd(),Ocd)};var _Q=ldb(ane,'LPort/lambda$5$Type',1288);acb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},G1b);_.Jc=function H1b(a){qeb(this,a)};_.Kc=function I1b(){return new nlb(this.a)};_.Ib=function J1b(){return 'L_'+Ikb(this.b.b,this,0)+Fe(this.a)};var cR=ldb(ane,'Layer',29);acb(1341,1,{},_1b);var mR=ldb(one,pne,1341);acb(1345,1,{},d2b);_.Kb=function e2b(a){return Xsd(BD(a,82))};var dR=ldb(one,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1345);acb(1348,1,{},f2b);_.Kb=function g2b(a){return Xsd(BD(a,82))};var eR=ldb(one,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1348);acb(1342,1,lie,h2b);_.td=function i2b(a){P1b(this.a,BD(a,118))};var fR=ldb(one,qne,1342);acb(1343,1,lie,j2b);_.td=function k2b(a){P1b(this.a,BD(a,118))};var gR=ldb(one,rne,1343);acb(1344,1,{},l2b);_.Kb=function m2b(a){return new XAb(null,new Jub(Jld(BD(a,79)),16))};var hR=ldb(one,sne,1344);acb(1346,1,Jie,n2b);_.Mb=function o2b(a){return a2b(this.a,BD(a,33))};var iR=ldb(one,tne,1346);acb(1347,1,{},p2b);_.Kb=function q2b(a){return new XAb(null,new Jub(Ild(BD(a,79)),16))};var jR=ldb(one,'ElkGraphImporter/lambda$5$Type',1347);acb(1349,1,Jie,r2b);_.Mb=function s2b(a){return b2b(this.a,BD(a,33))};var kR=ldb(one,'ElkGraphImporter/lambda$7$Type',1349);acb(1350,1,Jie,t2b);_.Mb=function u2b(a){return c2b(BD(a,79))};var lR=ldb(one,'ElkGraphImporter/lambda$8$Type',1350);acb(1277,1,{},C2b);var v2b;var rR=ldb(one,'ElkGraphLayoutTransferrer',1277);acb(1278,1,Jie,F2b);_.Mb=function G2b(a){return D2b(this.a,BD(a,17))};var nR=ldb(one,'ElkGraphLayoutTransferrer/lambda$0$Type',1278);acb(1279,1,lie,H2b);_.td=function I2b(a){w2b();Dkb(this.a,BD(a,17))};var oR=ldb(one,'ElkGraphLayoutTransferrer/lambda$1$Type',1279);acb(1280,1,Jie,J2b);_.Mb=function K2b(a){return E2b(this.a,BD(a,17))};var pR=ldb(one,'ElkGraphLayoutTransferrer/lambda$2$Type',1280);acb(1281,1,lie,L2b);_.td=function M2b(a){w2b();Dkb(this.a,BD(a,17))};var qR=ldb(one,'ElkGraphLayoutTransferrer/lambda$3$Type',1281);acb(1484,1,_me,R2b);_.pf=function S2b(a,b){P2b(BD(a,37),b)};var uR=ldb(vne,'CommentNodeMarginCalculator',1484);acb(1485,1,{},T2b);_.Kb=function U2b(a){return new XAb(null,new Jub(BD(a,29).a,16))};var sR=ldb(vne,'CommentNodeMarginCalculator/lambda$0$Type',1485);acb(1486,1,lie,V2b);_.td=function W2b(a){Q2b(BD(a,10))};var tR=ldb(vne,'CommentNodeMarginCalculator/lambda$1$Type',1486);acb(1487,1,_me,$2b);_.pf=function _2b(a,b){Y2b(BD(a,37),b)};var vR=ldb(vne,'CommentPostprocessor',1487);acb(1488,1,_me,d3b);_.pf=function e3b(a,b){a3b(BD(a,37),b)};var wR=ldb(vne,'CommentPreprocessor',1488);acb(1489,1,_me,g3b);_.pf=function h3b(a,b){f3b(BD(a,37),b)};var xR=ldb(vne,'ConstraintsPostprocessor',1489);acb(1490,1,_me,o3b);_.pf=function p3b(a,b){m3b(BD(a,37),b)};var yR=ldb(vne,'EdgeAndLayerConstraintEdgeReverser',1490);acb(1491,1,_me,s3b);_.pf=function u3b(a,b){q3b(BD(a,37),b)};var CR=ldb(vne,'EndLabelPostprocessor',1491);acb(1492,1,{},v3b);_.Kb=function w3b(a){return new XAb(null,new Jub(BD(a,29).a,16))};var zR=ldb(vne,'EndLabelPostprocessor/lambda$0$Type',1492);acb(1493,1,Jie,x3b);_.Mb=function y3b(a){return t3b(BD(a,10))};var AR=ldb(vne,'EndLabelPostprocessor/lambda$1$Type',1493);acb(1494,1,lie,z3b);_.td=function A3b(a){r3b(BD(a,10))};var BR=ldb(vne,'EndLabelPostprocessor/lambda$2$Type',1494);acb(1495,1,_me,L3b);_.pf=function O3b(a,b){H3b(BD(a,37),b)};var JR=ldb(vne,'EndLabelPreprocessor',1495);acb(1496,1,{},P3b);_.Kb=function Q3b(a){return new XAb(null,new Jub(BD(a,29).a,16))};var DR=ldb(vne,'EndLabelPreprocessor/lambda$0$Type',1496);acb(1497,1,lie,R3b);_.td=function S3b(a){D3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=ldb(vne,'EndLabelPreprocessor/lambda$1$Type',1497);acb(1498,1,Jie,T3b);_.Mb=function U3b(a){return PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),lad))};var FR=ldb(vne,'EndLabelPreprocessor/lambda$2$Type',1498);acb(1499,1,lie,V3b);_.td=function W3b(a){Csb(this.a,BD(a,70))};var GR=ldb(vne,'EndLabelPreprocessor/lambda$3$Type',1499);acb(1500,1,Jie,X3b);_.Mb=function Y3b(a){return PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),kad))};var HR=ldb(vne,'EndLabelPreprocessor/lambda$4$Type',1500);acb(1501,1,lie,Z3b);_.td=function $3b(a){Csb(this.a,BD(a,70))};var IR=ldb(vne,'EndLabelPreprocessor/lambda$5$Type',1501);acb(1550,1,_me,h4b);_.pf=function i4b(a,b){e4b(BD(a,37),b)};var _3b;var RR=ldb(vne,'EndLabelSorter',1550);acb(1551,1,yke,k4b);_.ue=function l4b(a,b){return j4b(BD(a,456),BD(b,456))};_.Fb=function m4b(a){return this===a};_.ve=function n4b(){return new spb(this)};var KR=ldb(vne,'EndLabelSorter/1',1551);acb(456,1,{456:1},o4b);var LR=ldb(vne,'EndLabelSorter/LabelGroup',456);acb(1552,1,{},p4b);_.Kb=function q4b(a){return a4b(),new XAb(null,new Jub(BD(a,29).a,16))};var MR=ldb(vne,'EndLabelSorter/lambda$0$Type',1552);acb(1553,1,Jie,r4b);_.Mb=function s4b(a){return a4b(),BD(a,10).k==(i0b(),g0b)};var NR=ldb(vne,'EndLabelSorter/lambda$1$Type',1553);acb(1554,1,lie,t4b);_.td=function u4b(a){f4b(BD(a,10))};var OR=ldb(vne,'EndLabelSorter/lambda$2$Type',1554);acb(1555,1,Jie,v4b);_.Mb=function w4b(a){return a4b(),PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),kad))};var PR=ldb(vne,'EndLabelSorter/lambda$3$Type',1555);acb(1556,1,Jie,x4b);_.Mb=function y4b(a){return a4b(),PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),lad))};var QR=ldb(vne,'EndLabelSorter/lambda$4$Type',1556);acb(1502,1,_me,K4b);_.pf=function L4b(a,b){I4b(this,BD(a,37))};_.b=0;_.c=0;var YR=ldb(vne,'FinalSplineBendpointsCalculator',1502);acb(1503,1,{},M4b);_.Kb=function N4b(a){return new XAb(null,new Jub(BD(a,29).a,16))};var SR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$0$Type',1503);acb(1504,1,{},O4b);_.Kb=function P4b(a){return new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var TR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$1$Type',1504);acb(1505,1,Jie,Q4b);_.Mb=function R4b(a){return !NZb(BD(a,17))};var UR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$2$Type',1505);acb(1506,1,Jie,S4b);_.Mb=function T4b(a){return vNb(BD(a,17),(utc(),ptc))};var VR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$3$Type',1506);acb(1507,1,lie,U4b);_.td=function V4b(a){B4b(this.a,BD(a,128))};var WR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$4$Type',1507);acb(1508,1,lie,W4b);_.td=function X4b(a){rmb(BD(a,17).a)};var XR=ldb(vne,'FinalSplineBendpointsCalculator/lambda$5$Type',1508);acb(791,1,_me,t5b);_.pf=function u5b(a,b){k5b(this,BD(a,37),b)};var $R=ldb(vne,'GraphTransformer',791);acb(511,22,{3:1,35:1,22:1,511:1},y5b);var v5b,w5b;var ZR=mdb(vne,'GraphTransformer/Mode',511,CI,A5b,z5b);var B5b;acb(1509,1,_me,H5b);_.pf=function I5b(a,b){E5b(BD(a,37),b)};var _R=ldb(vne,'HierarchicalNodeResizingProcessor',1509);acb(1510,1,_me,P5b);_.pf=function Q5b(a,b){L5b(BD(a,37),b)};var bS=ldb(vne,'HierarchicalPortConstraintProcessor',1510);acb(1511,1,yke,S5b);_.ue=function T5b(a,b){return R5b(BD(a,10),BD(b,10))};_.Fb=function U5b(a){return this===a};_.ve=function V5b(){return new spb(this)};var aS=ldb(vne,'HierarchicalPortConstraintProcessor/NodeComparator',1511);acb(1512,1,_me,Y5b);_.pf=function Z5b(a,b){W5b(BD(a,37),b)};var cS=ldb(vne,'HierarchicalPortDummySizeProcessor',1512);acb(1513,1,_me,k6b);_.pf=function l6b(a,b){d6b(this,BD(a,37),b)};_.a=0;var fS=ldb(vne,'HierarchicalPortOrthogonalEdgeRouter',1513);acb(1514,1,yke,n6b);_.ue=function o6b(a,b){return m6b(BD(a,10),BD(b,10))};_.Fb=function p6b(a){return this===a};_.ve=function q6b(){return new spb(this)};var dS=ldb(vne,'HierarchicalPortOrthogonalEdgeRouter/1',1514);acb(1515,1,yke,s6b);_.ue=function t6b(a,b){return r6b(BD(a,10),BD(b,10))};_.Fb=function u6b(a){return this===a};_.ve=function v6b(){return new spb(this)};var eS=ldb(vne,'HierarchicalPortOrthogonalEdgeRouter/2',1515);acb(1516,1,_me,y6b);_.pf=function z6b(a,b){x6b(BD(a,37),b)};var gS=ldb(vne,'HierarchicalPortPositionProcessor',1516);acb(1517,1,_me,I6b);_.pf=function J6b(a,b){H6b(this,BD(a,37))};_.a=0;_.c=0;var A6b,B6b;var kS=ldb(vne,'HighDegreeNodeLayeringProcessor',1517);acb(571,1,{571:1},K6b);_.b=-1;_.d=-1;var hS=ldb(vne,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);acb(1518,1,{},L6b);_.Kb=function M6b(a){return C6b(),Q_b(BD(a,10))};_.Fb=function N6b(a){return this===a};var iS=ldb(vne,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1518);acb(1519,1,{},O6b);_.Kb=function P6b(a){return C6b(),T_b(BD(a,10))};_.Fb=function Q6b(a){return this===a};var jS=ldb(vne,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1519);acb(1525,1,_me,W6b);_.pf=function X6b(a,b){V6b(this,BD(a,37),b)};var pS=ldb(vne,'HyperedgeDummyMerger',1525);acb(792,1,{},Y6b);_.a=false;_.b=false;_.c=false;var lS=ldb(vne,'HyperedgeDummyMerger/MergeState',792);acb(1526,1,{},Z6b);_.Kb=function $6b(a){return new XAb(null,new Jub(BD(a,29).a,16))};var mS=ldb(vne,'HyperedgeDummyMerger/lambda$0$Type',1526);acb(1527,1,{},_6b);_.Kb=function a7b(a){return new XAb(null,new Jub(BD(a,10).j,16))};var nS=ldb(vne,'HyperedgeDummyMerger/lambda$1$Type',1527);acb(1528,1,lie,b7b);_.td=function c7b(a){BD(a,11).p=-1};var oS=ldb(vne,'HyperedgeDummyMerger/lambda$2$Type',1528);acb(1529,1,_me,f7b);_.pf=function g7b(a,b){e7b(BD(a,37),b)};var qS=ldb(vne,'HypernodesProcessor',1529);acb(1530,1,_me,i7b);_.pf=function j7b(a,b){h7b(BD(a,37),b)};var rS=ldb(vne,'InLayerConstraintProcessor',1530);acb(1531,1,_me,l7b);_.pf=function m7b(a,b){k7b(BD(a,37),b)};var sS=ldb(vne,'InnermostNodeMarginCalculator',1531);acb(1532,1,_me,q7b);_.pf=function v7b(a,b){p7b(this,BD(a,37))};_.a=Lje;_.b=Lje;_.c=Kje;_.d=Kje;var zS=ldb(vne,'InteractiveExternalPortPositioner',1532);acb(1533,1,{},w7b);_.Kb=function x7b(a){return BD(a,17).d.i};_.Fb=function y7b(a){return this===a};var tS=ldb(vne,'InteractiveExternalPortPositioner/lambda$0$Type',1533);acb(1534,1,{},z7b);_.Kb=function A7b(a){return r7b(this.a,ED(a))};_.Fb=function B7b(a){return this===a};var uS=ldb(vne,'InteractiveExternalPortPositioner/lambda$1$Type',1534);acb(1535,1,{},C7b);_.Kb=function D7b(a){return BD(a,17).c.i};_.Fb=function E7b(a){return this===a};var vS=ldb(vne,'InteractiveExternalPortPositioner/lambda$2$Type',1535);acb(1536,1,{},F7b);_.Kb=function G7b(a){return s7b(this.a,ED(a))};_.Fb=function H7b(a){return this===a};var wS=ldb(vne,'InteractiveExternalPortPositioner/lambda$3$Type',1536);acb(1537,1,{},I7b);_.Kb=function J7b(a){return t7b(this.a,ED(a))};_.Fb=function K7b(a){return this===a};var xS=ldb(vne,'InteractiveExternalPortPositioner/lambda$4$Type',1537);acb(1538,1,{},L7b);_.Kb=function M7b(a){return u7b(this.a,ED(a))};_.Fb=function N7b(a){return this===a};var yS=ldb(vne,'InteractiveExternalPortPositioner/lambda$5$Type',1538);acb(77,22,{3:1,35:1,22:1,77:1,234:1},S8b);_.Kf=function T8b(){switch(this.g){case 15:return new doc;case 22:return new zoc;case 47:return new Ioc;case 28:case 35:return new tac;case 32:return new R2b;case 42:return new $2b;case 1:return new d3b;case 41:return new g3b;case 56:return new t5b((x5b(),w5b));case 0:return new t5b((x5b(),v5b));case 2:return new o3b;case 54:return new s3b;case 33:return new L3b;case 51:return new K4b;case 55:return new H5b;case 13:return new P5b;case 38:return new Y5b;case 44:return new k6b;case 40:return new y6b;case 9:return new I6b;case 49:return new rgc;case 37:return new W6b;case 43:return new f7b;case 27:return new i7b;case 30:return new l7b;case 3:return new q7b;case 18:return new a9b;case 29:return new g9b;case 5:return new t9b;case 50:return new C9b;case 34:return new Z9b;case 36:return new Hac;case 52:return new h4b;case 11:return new Rac;case 7:return new _ac;case 39:return new nbc;case 45:return new qbc;case 16:return new ubc;case 10:return new Ebc;case 48:return new Wbc;case 21:return new bcc;case 23:return new aGc((nGc(),lGc));case 8:return new kcc;case 12:return new scc;case 4:return new xcc;case 19:return new Scc;case 17:return new odc;case 53:return new rdc;case 6:return new gec;case 25:return new vdc;case 46:return new Mdc;case 31:return new rec;case 14:return new Eec;case 26:return new opc;case 20:return new Tec;case 24:return new aGc((nGc(),mGc));default:throw ubb(new Vdb(yne+(this.f!=null?this.f:''+this.g)));}};var O7b,P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b;var AS=mdb(vne,zne,77,CI,V8b,U8b);var W8b;acb(1539,1,_me,a9b);_.pf=function b9b(a,b){$8b(BD(a,37),b)};var BS=ldb(vne,'InvertedPortProcessor',1539);acb(1540,1,_me,g9b);_.pf=function h9b(a,b){f9b(BD(a,37),b)};var FS=ldb(vne,'LabelAndNodeSizeProcessor',1540);acb(1541,1,Jie,i9b);_.Mb=function j9b(a){return BD(a,10).k==(i0b(),g0b)};var CS=ldb(vne,'LabelAndNodeSizeProcessor/lambda$0$Type',1541);acb(1542,1,Jie,k9b);_.Mb=function l9b(a){return BD(a,10).k==(i0b(),d0b)};var DS=ldb(vne,'LabelAndNodeSizeProcessor/lambda$1$Type',1542);acb(1543,1,lie,m9b);_.td=function n9b(a){d9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=ldb(vne,'LabelAndNodeSizeProcessor/lambda$2$Type',1543);acb(1544,1,_me,t9b);_.pf=function u9b(a,b){r9b(BD(a,37),b)};var o9b;var HS=ldb(vne,'LabelDummyInserter',1544);acb(1545,1,Qke,v9b);_.Lb=function w9b(a){return PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),jad))};_.Fb=function x9b(a){return this===a};_.Mb=function y9b(a){return PD(uNb(BD(a,70),(Lyc(),Owc)))===PD((mad(),jad))};var GS=ldb(vne,'LabelDummyInserter/1',1545);acb(1546,1,_me,C9b);_.pf=function D9b(a,b){B9b(BD(a,37),b)};var JS=ldb(vne,'LabelDummyRemover',1546);acb(1547,1,Jie,E9b);_.Mb=function F9b(a){return Bcb(DD(uNb(BD(a,70),(Lyc(),Nwc))))};var IS=ldb(vne,'LabelDummyRemover/lambda$0$Type',1547);acb(1358,1,_me,Z9b);_.pf=function bac(a,b){V9b(this,BD(a,37),b)};_.a=null;var G9b;var QS=ldb(vne,'LabelDummySwitcher',1358);acb(285,1,{285:1},fac);_.c=0;_.d=null;_.f=0;var KS=ldb(vne,'LabelDummySwitcher/LabelDummyInfo',285);acb(1359,1,{},gac);_.Kb=function hac(a){return H9b(),new XAb(null,new Jub(BD(a,29).a,16))};var LS=ldb(vne,'LabelDummySwitcher/lambda$0$Type',1359);acb(1360,1,Jie,iac);_.Mb=function jac(a){return H9b(),BD(a,10).k==(i0b(),e0b)};var MS=ldb(vne,'LabelDummySwitcher/lambda$1$Type',1360);acb(1361,1,{},kac);_.Kb=function lac(a){return $9b(this.a,BD(a,10))};var NS=ldb(vne,'LabelDummySwitcher/lambda$2$Type',1361);acb(1362,1,lie,mac);_.td=function nac(a){_9b(this.a,BD(a,285))};var OS=ldb(vne,'LabelDummySwitcher/lambda$3$Type',1362);acb(1363,1,yke,oac);_.ue=function pac(a,b){return aac(BD(a,285),BD(b,285))};_.Fb=function qac(a){return this===a};_.ve=function rac(){return new spb(this)};var PS=ldb(vne,'LabelDummySwitcher/lambda$4$Type',1363);acb(790,1,_me,tac);_.pf=function uac(a,b){sac(BD(a,37),b)};var RS=ldb(vne,'LabelManagementProcessor',790);acb(1548,1,_me,Hac);_.pf=function Iac(a,b){Bac(BD(a,37),b)};var TS=ldb(vne,'LabelSideSelector',1548);acb(1549,1,Jie,Jac);_.Mb=function Kac(a){return Bcb(DD(uNb(BD(a,70),(Lyc(),Nwc))))};var SS=ldb(vne,'LabelSideSelector/lambda$0$Type',1549);acb(1557,1,_me,Rac);_.pf=function Sac(a,b){Nac(BD(a,37),b)};var US=ldb(vne,'LayerConstraintPostprocessor',1557);acb(1558,1,_me,_ac);_.pf=function abc(a,b){Zac(BD(a,37),b)};var Tac;var WS=ldb(vne,'LayerConstraintPreprocessor',1558);acb(359,22,{3:1,35:1,22:1,359:1},hbc);var bbc,cbc,dbc,ebc;var VS=mdb(vne,'LayerConstraintPreprocessor/HiddenNodeConnections',359,CI,jbc,ibc);var kbc;acb(1559,1,_me,nbc);_.pf=function obc(a,b){mbc(BD(a,37),b)};var XS=ldb(vne,'LayerSizeAndGraphHeightCalculator',1559);acb(1560,1,_me,qbc);_.pf=function sbc(a,b){pbc(BD(a,37),b)};var YS=ldb(vne,'LongEdgeJoiner',1560);acb(1561,1,_me,ubc);_.pf=function wbc(a,b){tbc(BD(a,37),b)};var ZS=ldb(vne,'LongEdgeSplitter',1561);acb(1562,1,_me,Ebc);_.pf=function Hbc(a,b){Abc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=ldb(vne,'NodePromotion',1562);acb(1563,1,{},Ibc);_.Kb=function Jbc(a){return BD(a,46),Acb(),true};_.Fb=function Kbc(a){return this===a};var $S=ldb(vne,'NodePromotion/lambda$0$Type',1563);acb(1564,1,{},Lbc);_.Kb=function Mbc(a){return Fbc(this.a,BD(a,46))};_.Fb=function Nbc(a){return this===a};_.a=0;var _S=ldb(vne,'NodePromotion/lambda$1$Type',1564);acb(1565,1,{},Obc);_.Kb=function Pbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Qbc(a){return this===a};_.a=0;var aT=ldb(vne,'NodePromotion/lambda$2$Type',1565);acb(1566,1,_me,Wbc);_.pf=function Xbc(a,b){Rbc(BD(a,37),b)};var cT=ldb(vne,'NorthSouthPortPostprocessor',1566);acb(1567,1,_me,bcc);_.pf=function dcc(a,b){_bc(BD(a,37),b)};var eT=ldb(vne,'NorthSouthPortPreprocessor',1567);acb(1568,1,yke,ecc);_.ue=function fcc(a,b){return ccc(BD(a,11),BD(b,11))};_.Fb=function gcc(a){return this===a};_.ve=function hcc(){return new spb(this)};var dT=ldb(vne,'NorthSouthPortPreprocessor/lambda$0$Type',1568);acb(1569,1,_me,kcc);_.pf=function mcc(a,b){jcc(BD(a,37),b)};var hT=ldb(vne,'PartitionMidprocessor',1569);acb(1570,1,Jie,ncc);_.Mb=function occ(a){return vNb(BD(a,10),(Lyc(),Lxc))};var fT=ldb(vne,'PartitionMidprocessor/lambda$0$Type',1570);acb(1571,1,lie,pcc);_.td=function qcc(a){lcc(this.a,BD(a,10))};var gT=ldb(vne,'PartitionMidprocessor/lambda$1$Type',1571);acb(1572,1,_me,scc);_.pf=function tcc(a,b){rcc(BD(a,37),b)};var iT=ldb(vne,'PartitionPostprocessor',1572);acb(1573,1,_me,xcc);_.pf=function ycc(a,b){vcc(BD(a,37),b)};var nT=ldb(vne,'PartitionPreprocessor',1573);acb(1574,1,Jie,zcc);_.Mb=function Acc(a){return vNb(BD(a,10),(Lyc(),Lxc))};var jT=ldb(vne,'PartitionPreprocessor/lambda$0$Type',1574);acb(1575,1,{},Bcc);_.Kb=function Ccc(a){return new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var kT=ldb(vne,'PartitionPreprocessor/lambda$1$Type',1575);acb(1576,1,Jie,Dcc);_.Mb=function Ecc(a){return ucc(BD(a,17))};var lT=ldb(vne,'PartitionPreprocessor/lambda$2$Type',1576);acb(1577,1,lie,Fcc);_.td=function Gcc(a){wcc(BD(a,17))};var mT=ldb(vne,'PartitionPreprocessor/lambda$3$Type',1577);acb(1578,1,_me,Scc);_.pf=function Wcc(a,b){Pcc(BD(a,37),b)};var Hcc,Icc,Jcc,Kcc,Lcc,Mcc;var tT=ldb(vne,'PortListSorter',1578);acb(1581,1,yke,Ycc);_.ue=function Zcc(a,b){return Tcc(BD(a,11),BD(b,11))};_.Fb=function $cc(a){return this===a};_.ve=function _cc(){return new spb(this)};var oT=ldb(vne,'PortListSorter/lambda$0$Type',1581);acb(1583,1,yke,adc);_.ue=function bdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function cdc(a){return this===a};_.ve=function ddc(){return new spb(this)};var pT=ldb(vne,'PortListSorter/lambda$1$Type',1583);acb(1579,1,{},edc);_.Kb=function fdc(a){return Ncc(),BD(a,11).e};var qT=ldb(vne,'PortListSorter/lambda$2$Type',1579);acb(1580,1,{},gdc);_.Kb=function hdc(a){return Ncc(),BD(a,11).g};var rT=ldb(vne,'PortListSorter/lambda$3$Type',1580);acb(1582,1,yke,idc);_.ue=function jdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function kdc(a){return this===a};_.ve=function ldc(){return new spb(this)};var sT=ldb(vne,'PortListSorter/lambda$4$Type',1582);acb(1584,1,_me,odc);_.pf=function pdc(a,b){mdc(BD(a,37),b)};var uT=ldb(vne,'PortSideProcessor',1584);acb(1585,1,_me,rdc);_.pf=function sdc(a,b){qdc(BD(a,37),b)};var vT=ldb(vne,'ReversedEdgeRestorer',1585);acb(1590,1,_me,vdc);_.pf=function wdc(a,b){tdc(this,BD(a,37),b)};var CT=ldb(vne,'SelfLoopPortRestorer',1590);acb(1591,1,{},xdc);_.Kb=function ydc(a){return new XAb(null,new Jub(BD(a,29).a,16))};var wT=ldb(vne,'SelfLoopPortRestorer/lambda$0$Type',1591);acb(1592,1,Jie,zdc);_.Mb=function Adc(a){return BD(a,10).k==(i0b(),g0b)};var xT=ldb(vne,'SelfLoopPortRestorer/lambda$1$Type',1592);acb(1593,1,Jie,Bdc);_.Mb=function Cdc(a){return vNb(BD(a,10),(utc(),ltc))};var yT=ldb(vne,'SelfLoopPortRestorer/lambda$2$Type',1593);acb(1594,1,{},Ddc);_.Kb=function Edc(a){return BD(uNb(BD(a,10),(utc(),ltc)),404)};var zT=ldb(vne,'SelfLoopPortRestorer/lambda$3$Type',1594);acb(1595,1,lie,Fdc);_.td=function Gdc(a){udc(this.a,BD(a,404))};var AT=ldb(vne,'SelfLoopPortRestorer/lambda$4$Type',1595);acb(793,1,lie,Hdc);_.td=function Idc(a){kjc(BD(a,101))};var BT=ldb(vne,'SelfLoopPortRestorer/lambda$5$Type',793);acb(1596,1,_me,Mdc);_.pf=function Odc(a,b){Jdc(BD(a,37),b)};var LT=ldb(vne,'SelfLoopPostProcessor',1596);acb(1597,1,{},Pdc);_.Kb=function Qdc(a){return new XAb(null,new Jub(BD(a,29).a,16))};var DT=ldb(vne,'SelfLoopPostProcessor/lambda$0$Type',1597);acb(1598,1,Jie,Rdc);_.Mb=function Sdc(a){return BD(a,10).k==(i0b(),g0b)};var ET=ldb(vne,'SelfLoopPostProcessor/lambda$1$Type',1598);acb(1599,1,Jie,Tdc);_.Mb=function Udc(a){return vNb(BD(a,10),(utc(),ltc))};var FT=ldb(vne,'SelfLoopPostProcessor/lambda$2$Type',1599);acb(1600,1,lie,Vdc);_.td=function Wdc(a){Kdc(BD(a,10))};var GT=ldb(vne,'SelfLoopPostProcessor/lambda$3$Type',1600);acb(1601,1,{},Xdc);_.Kb=function Ydc(a){return new XAb(null,new Jub(BD(a,101).f,1))};var HT=ldb(vne,'SelfLoopPostProcessor/lambda$4$Type',1601);acb(1602,1,lie,Zdc);_.td=function $dc(a){Ldc(this.a,BD(a,410))};var IT=ldb(vne,'SelfLoopPostProcessor/lambda$5$Type',1602);acb(1603,1,Jie,_dc);_.Mb=function aec(a){return !!BD(a,101).i};var JT=ldb(vne,'SelfLoopPostProcessor/lambda$6$Type',1603);acb(1604,1,lie,bec);_.td=function cec(a){Ndc(this.a,BD(a,101))};var KT=ldb(vne,'SelfLoopPostProcessor/lambda$7$Type',1604);acb(1586,1,_me,gec);_.pf=function hec(a,b){fec(BD(a,37),b)};var PT=ldb(vne,'SelfLoopPreProcessor',1586);acb(1587,1,{},iec);_.Kb=function jec(a){return new XAb(null,new Jub(BD(a,101).f,1))};var MT=ldb(vne,'SelfLoopPreProcessor/lambda$0$Type',1587);acb(1588,1,{},kec);_.Kb=function lec(a){return BD(a,410).a};var NT=ldb(vne,'SelfLoopPreProcessor/lambda$1$Type',1588);acb(1589,1,lie,mec);_.td=function nec(a){eec(BD(a,17))};var OT=ldb(vne,'SelfLoopPreProcessor/lambda$2$Type',1589);acb(1605,1,_me,rec);_.pf=function sec(a,b){pec(this,BD(a,37),b)};var VT=ldb(vne,'SelfLoopRouter',1605);acb(1606,1,{},tec);_.Kb=function uec(a){return new XAb(null,new Jub(BD(a,29).a,16))};var QT=ldb(vne,'SelfLoopRouter/lambda$0$Type',1606);acb(1607,1,Jie,vec);_.Mb=function wec(a){return BD(a,10).k==(i0b(),g0b)};var RT=ldb(vne,'SelfLoopRouter/lambda$1$Type',1607);acb(1608,1,Jie,xec);_.Mb=function yec(a){return vNb(BD(a,10),(utc(),ltc))};var ST=ldb(vne,'SelfLoopRouter/lambda$2$Type',1608);acb(1609,1,{},zec);_.Kb=function Aec(a){return BD(uNb(BD(a,10),(utc(),ltc)),404)};var TT=ldb(vne,'SelfLoopRouter/lambda$3$Type',1609);acb(1610,1,lie,Bec);_.td=function Cec(a){oec(this.a,this.b,BD(a,404))};var UT=ldb(vne,'SelfLoopRouter/lambda$4$Type',1610);acb(1611,1,_me,Eec);_.pf=function Hec(a,b){Dec(BD(a,37),b)};var $T=ldb(vne,'SemiInteractiveCrossMinProcessor',1611);acb(1612,1,Jie,Iec);_.Mb=function Jec(a){return BD(a,10).k==(i0b(),g0b)};var WT=ldb(vne,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1612);acb(1613,1,Jie,Kec);_.Mb=function Lec(a){return tNb(BD(a,10))._b((Lyc(),$xc))};var XT=ldb(vne,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1613);acb(1614,1,yke,Mec);_.ue=function Nec(a,b){return Fec(BD(a,10),BD(b,10))};_.Fb=function Oec(a){return this===a};_.ve=function Pec(){return new spb(this)};var YT=ldb(vne,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1614);acb(1615,1,{},Qec);_.Ce=function Rec(a,b){return Gec(BD(a,10),BD(b,10))};var ZT=ldb(vne,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1615);acb(1617,1,_me,Tec);_.pf=function Xec(a,b){Sec(BD(a,37),b)};var bU=ldb(vne,'SortByInputModelProcessor',1617);acb(1618,1,Jie,Yec);_.Mb=function Zec(a){return BD(a,11).g.c.length!=0};var _T=ldb(vne,'SortByInputModelProcessor/lambda$0$Type',1618);acb(1619,1,lie,$ec);_.td=function _ec(a){Vec(this.a,BD(a,11))};var aU=ldb(vne,'SortByInputModelProcessor/lambda$1$Type',1619);acb(1692,802,{},ifc);_.Me=function jfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Qkb;LAb(IAb(new XAb(null,new Jub(this.c.a.b,16)),new kgc),new mgc(this,b));mEb(this,new sfc);Gkb(b,new wfc);b.c=KC(SI,Phe,1,0,5,1);LAb(IAb(new XAb(null,new Jub(this.c.a.b,16)),new yfc),new Afc(b));mEb(this,new Efc);Gkb(b,new Ifc);b.c=KC(SI,Phe,1,0,5,1);c=Mtb(Zzb(NAb(new XAb(null,new Jub(this.c.a.b,16)),new Kfc(this))),new Mfc);LAb(new XAb(null,new Jub(this.c.a.a,16)),new Qfc(c,b));mEb(this,new Ufc);Gkb(b,new Yfc);b.c=KC(SI,Phe,1,0,5,1);break;case 3:d=new Qkb;mEb(this,new kfc);e=Mtb(Zzb(NAb(new XAb(null,new Jub(this.c.a.b,16)),new ofc(this))),new Ofc);LAb(IAb(new XAb(null,new Jub(this.c.a.b,16)),new $fc),new agc(e,d));mEb(this,new egc);Gkb(d,new igc);d.c=KC(SI,Phe,1,0,5,1);break;default:throw ubb(new t2c);}};_.b=0;var AU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation',1692);acb(1693,1,Qke,kfc);_.Lb=function lfc(a){return JD(BD(a,57).g,145)};_.Fb=function mfc(a){return this===a};_.Mb=function nfc(a){return JD(BD(a,57).g,145)};var cU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1693);acb(1694,1,{},ofc);_.Fe=function pfc(a){return cfc(this.a,BD(a,57))};var dU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1694);acb(1702,1,Kie,qfc);_.Vd=function rfc(){bfc(this.a,this.b,-1)};_.b=0;var eU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1702);acb(1704,1,Qke,sfc);_.Lb=function tfc(a){return JD(BD(a,57).g,145)};_.Fb=function ufc(a){return this===a};_.Mb=function vfc(a){return JD(BD(a,57).g,145)};var fU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1704);acb(1705,1,lie,wfc);_.td=function xfc(a){BD(a,364).Vd()};var gU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1705);acb(1706,1,Jie,yfc);_.Mb=function zfc(a){return JD(BD(a,57).g,10)};var hU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1706);acb(1708,1,lie,Afc);_.td=function Bfc(a){dfc(this.a,BD(a,57))};var iU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1708);acb(1707,1,Kie,Cfc);_.Vd=function Dfc(){bfc(this.b,this.a,-1)};_.a=0;var jU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1707);acb(1709,1,Qke,Efc);_.Lb=function Ffc(a){return JD(BD(a,57).g,10)};_.Fb=function Gfc(a){return this===a};_.Mb=function Hfc(a){return JD(BD(a,57).g,10)};var kU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1709);acb(1710,1,lie,Ifc);_.td=function Jfc(a){BD(a,364).Vd()};var lU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1710);acb(1711,1,{},Kfc);_.Fe=function Lfc(a){return efc(this.a,BD(a,57))};var mU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1711);acb(1712,1,{},Mfc);_.De=function Nfc(){return 0};var nU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1712);acb(1695,1,{},Ofc);_.De=function Pfc(){return 0};var oU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1695);acb(1714,1,lie,Qfc);_.td=function Rfc(a){ffc(this.a,this.b,BD(a,307))};_.a=0;var pU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1714);acb(1713,1,Kie,Sfc);_.Vd=function Tfc(){afc(this.a,this.b,-1)};_.b=0;var qU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1713);acb(1715,1,Qke,Ufc);_.Lb=function Vfc(a){return BD(a,57),true};_.Fb=function Wfc(a){return this===a};_.Mb=function Xfc(a){return BD(a,57),true};var rU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1715);acb(1716,1,lie,Yfc);_.td=function Zfc(a){BD(a,364).Vd()};var sU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1716);acb(1696,1,Jie,$fc);_.Mb=function _fc(a){return JD(BD(a,57).g,10)};var tU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1696);acb(1698,1,lie,agc);_.td=function bgc(a){gfc(this.a,this.b,BD(a,57))};_.a=0;var uU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1698);acb(1697,1,Kie,cgc);_.Vd=function dgc(){bfc(this.b,this.a,-1)};_.a=0;var vU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1697);acb(1699,1,Qke,egc);_.Lb=function fgc(a){return BD(a,57),true};_.Fb=function ggc(a){return this===a};_.Mb=function hgc(a){return BD(a,57),true};var wU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1699);acb(1700,1,lie,igc);_.td=function jgc(a){BD(a,364).Vd()};var xU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1700);acb(1701,1,Jie,kgc);_.Mb=function lgc(a){return JD(BD(a,57).g,145)};var yU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1701);acb(1703,1,lie,mgc);_.td=function ngc(a){hfc(this.a,this.b,BD(a,57))};var zU=ldb(Ene,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1703);acb(1520,1,_me,rgc);_.pf=function wgc(a,b){qgc(this,BD(a,37),b)};var ogc;var EU=ldb(Ene,'HorizontalGraphCompactor',1520);acb(1521,1,{},xgc);_.Oe=function ygc(a,b){var c,d,e;if(ugc(a,b)){return 0}c=sgc(a);d=sgc(b);if(!!c&&c.k==(i0b(),d0b)||!!d&&d.k==(i0b(),d0b)){return 0}e=BD(uNb(this.a.a,(utc(),mtc)),304);return dBc(e,c?c.k:(i0b(),f0b),d?d.k:(i0b(),f0b))};_.Pe=function zgc(a,b){var c,d,e;if(ugc(a,b)){return 1}c=sgc(a);d=sgc(b);e=BD(uNb(this.a.a,(utc(),mtc)),304);return gBc(e,c?c.k:(i0b(),f0b),d?d.k:(i0b(),f0b))};var BU=ldb(Ene,'HorizontalGraphCompactor/1',1521);acb(1522,1,{},Agc);_.Ne=function Bgc(a,b){return pgc(),a.a.i==0};var CU=ldb(Ene,'HorizontalGraphCompactor/lambda$0$Type',1522);acb(1523,1,{},Cgc);_.Ne=function Dgc(a,b){return vgc(this.a,a,b)};var DU=ldb(Ene,'HorizontalGraphCompactor/lambda$1$Type',1523);acb(1663,1,{},Xgc);var Egc,Fgc;var cV=ldb(Ene,'LGraphToCGraphTransformer',1663);acb(1671,1,Jie,dhc);_.Mb=function ehc(a){return a!=null};var FU=ldb(Ene,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1671);acb(1664,1,{},fhc);_.Kb=function ghc(a){return Ggc(),ecb(uNb(BD(BD(a,57).g,10),(utc(),Ysc)))};var GU=ldb(Ene,'LGraphToCGraphTransformer/lambda$0$Type',1664);acb(1665,1,{},hhc);_.Kb=function ihc(a){return Ggc(),fic(BD(BD(a,57).g,145))};var HU=ldb(Ene,'LGraphToCGraphTransformer/lambda$1$Type',1665);acb(1674,1,Jie,jhc);_.Mb=function khc(a){return Ggc(),JD(BD(a,57).g,10)};var IU=ldb(Ene,'LGraphToCGraphTransformer/lambda$10$Type',1674);acb(1675,1,lie,lhc);_.td=function mhc(a){Ygc(BD(a,57))};var JU=ldb(Ene,'LGraphToCGraphTransformer/lambda$11$Type',1675);acb(1676,1,Jie,nhc);_.Mb=function ohc(a){return Ggc(),JD(BD(a,57).g,145)};var KU=ldb(Ene,'LGraphToCGraphTransformer/lambda$12$Type',1676);acb(1680,1,lie,phc);_.td=function qhc(a){Zgc(BD(a,57))};var LU=ldb(Ene,'LGraphToCGraphTransformer/lambda$13$Type',1680);acb(1677,1,lie,rhc);_.td=function shc(a){$gc(this.a,BD(a,8))};_.a=0;var MU=ldb(Ene,'LGraphToCGraphTransformer/lambda$14$Type',1677);acb(1678,1,lie,thc);_.td=function uhc(a){_gc(this.a,BD(a,110))};_.a=0;var NU=ldb(Ene,'LGraphToCGraphTransformer/lambda$15$Type',1678);acb(1679,1,lie,vhc);_.td=function whc(a){ahc(this.a,BD(a,8))};_.a=0;var OU=ldb(Ene,'LGraphToCGraphTransformer/lambda$16$Type',1679);acb(1681,1,{},xhc);_.Kb=function yhc(a){return Ggc(),new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var PU=ldb(Ene,'LGraphToCGraphTransformer/lambda$17$Type',1681);acb(1682,1,Jie,zhc);_.Mb=function Ahc(a){return Ggc(),NZb(BD(a,17))};var QU=ldb(Ene,'LGraphToCGraphTransformer/lambda$18$Type',1682);acb(1683,1,lie,Bhc);_.td=function Chc(a){Pgc(this.a,BD(a,17))};var RU=ldb(Ene,'LGraphToCGraphTransformer/lambda$19$Type',1683);acb(1667,1,lie,Dhc);_.td=function Ehc(a){Qgc(this.a,BD(a,145))};var SU=ldb(Ene,'LGraphToCGraphTransformer/lambda$2$Type',1667);acb(1684,1,{},Fhc);_.Kb=function Ghc(a){return Ggc(),new XAb(null,new Jub(BD(a,29).a,16))};var TU=ldb(Ene,'LGraphToCGraphTransformer/lambda$20$Type',1684);acb(1685,1,{},Hhc);_.Kb=function Ihc(a){return Ggc(),new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var UU=ldb(Ene,'LGraphToCGraphTransformer/lambda$21$Type',1685);acb(1686,1,{},Jhc);_.Kb=function Khc(a){return Ggc(),BD(uNb(BD(a,17),(utc(),ptc)),15)};var VU=ldb(Ene,'LGraphToCGraphTransformer/lambda$22$Type',1686);acb(1687,1,Jie,Lhc);_.Mb=function Mhc(a){return bhc(BD(a,15))};var WU=ldb(Ene,'LGraphToCGraphTransformer/lambda$23$Type',1687);acb(1688,1,lie,Nhc);_.td=function Ohc(a){Igc(this.a,BD(a,15))};var XU=ldb(Ene,'LGraphToCGraphTransformer/lambda$24$Type',1688);acb(1666,1,lie,Phc);_.td=function Qhc(a){Rgc(this.a,this.b,BD(a,145))};var YU=ldb(Ene,'LGraphToCGraphTransformer/lambda$3$Type',1666);acb(1668,1,{},Rhc);_.Kb=function Shc(a){return Ggc(),new XAb(null,new Jub(BD(a,29).a,16))};var ZU=ldb(Ene,'LGraphToCGraphTransformer/lambda$4$Type',1668);acb(1669,1,{},Thc);_.Kb=function Uhc(a){return Ggc(),new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var $U=ldb(Ene,'LGraphToCGraphTransformer/lambda$5$Type',1669);acb(1670,1,{},Vhc);_.Kb=function Whc(a){return Ggc(),BD(uNb(BD(a,17),(utc(),ptc)),15)};var _U=ldb(Ene,'LGraphToCGraphTransformer/lambda$6$Type',1670);acb(1672,1,lie,Xhc);_.td=function Yhc(a){chc(this.a,BD(a,15))};var aV=ldb(Ene,'LGraphToCGraphTransformer/lambda$8$Type',1672);acb(1673,1,lie,Zhc);_.td=function $hc(a){Sgc(this.a,this.b,BD(a,145))};var bV=ldb(Ene,'LGraphToCGraphTransformer/lambda$9$Type',1673);acb(1662,1,{},cic);_.Le=function dic(a){var b,c,d,e,f;this.a=a;this.d=new JFb;this.c=KC(jN,Phe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new nlb(this.a.a.a);c.a=p){Dkb(f,leb(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};_.Wf=function lpc(){return false};var CW=ldb(Mne,'MSDCutIndexHeuristic',801);acb(1616,1,_me,opc);_.pf=function ppc(a,b){npc(BD(a,37),b)};var DW=ldb(Mne,'SingleEdgeGraphWrapper',1616);acb(227,22,{3:1,35:1,22:1,227:1},Apc);var tpc,upc,vpc,wpc,xpc,ypc;var EW=mdb(Nne,'CenterEdgeLabelPlacementStrategy',227,CI,Cpc,Bpc);var Dpc;acb(423,22,{3:1,35:1,22:1,423:1},Ipc);var Fpc,Gpc;var FW=mdb(Nne,'ConstraintCalculationStrategy',423,CI,Kpc,Jpc);var Lpc;acb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Spc);_.Kf=function Upc(){return Rpc(this)};_.Xf=function Tpc(){return Rpc(this)};var Npc,Opc,Ppc;var GW=mdb(Nne,'CrossingMinimizationStrategy',314,CI,Wpc,Vpc);var Xpc;acb(336,22,{3:1,35:1,22:1,336:1},bqc);var Zpc,$pc,_pc;var HW=mdb(Nne,'CuttingStrategy',336,CI,dqc,cqc);var eqc;acb(374,22,{3:1,35:1,22:1,374:1,246:1,234:1},mqc);_.Kf=function oqc(){return lqc(this)};_.Xf=function nqc(){return lqc(this)};var gqc,hqc,iqc,jqc;var IW=mdb(Nne,'CycleBreakingStrategy',374,CI,qqc,pqc);var rqc;acb(420,22,{3:1,35:1,22:1,420:1},wqc);var tqc,uqc;var JW=mdb(Nne,'DirectionCongruency',420,CI,yqc,xqc);var zqc;acb(451,22,{3:1,35:1,22:1,451:1},Fqc);var Bqc,Cqc,Dqc;var KW=mdb(Nne,'EdgeConstraint',451,CI,Hqc,Gqc);var Iqc;acb(275,22,{3:1,35:1,22:1,275:1},Sqc);var Kqc,Lqc,Mqc,Nqc,Oqc,Pqc;var LW=mdb(Nne,'EdgeLabelSideSelection',275,CI,Uqc,Tqc);var Vqc;acb(479,22,{3:1,35:1,22:1,479:1},$qc);var Xqc,Yqc;var MW=mdb(Nne,'EdgeStraighteningStrategy',479,CI,arc,_qc);var brc;acb(273,22,{3:1,35:1,22:1,273:1},krc);var drc,erc,frc,grc,hrc,irc;var NW=mdb(Nne,'FixedAlignment',273,CI,mrc,lrc);var nrc;acb(274,22,{3:1,35:1,22:1,274:1},xrc);var prc,qrc,rrc,trc,urc,vrc;var OW=mdb(Nne,'GraphCompactionStrategy',274,CI,zrc,yrc);var Arc;acb(256,22,{3:1,35:1,22:1,256:1},Nrc);var Crc,Drc,Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc;var PW=mdb(Nne,'GraphProperties',256,CI,Prc,Orc);var Qrc;acb(292,22,{3:1,35:1,22:1,292:1},Wrc);var Src,Trc,Urc;var QW=mdb(Nne,'GreedySwitchType',292,CI,Yrc,Xrc);var Zrc;acb(303,22,{3:1,35:1,22:1,303:1},dsc);var _rc,asc,bsc;var RW=mdb(Nne,'InLayerConstraint',303,CI,fsc,esc);var gsc;acb(421,22,{3:1,35:1,22:1,421:1},lsc);var isc,jsc;var SW=mdb(Nne,'InteractiveReferencePoint',421,CI,nsc,msc);var osc;var qsc,rsc,ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc;acb(163,22,{3:1,35:1,22:1,163:1},Btc);var vtc,wtc,xtc,ytc,ztc;var TW=mdb(Nne,'LayerConstraint',163,CI,Dtc,Ctc);var Etc;acb(847,1,Xke,iwc);_.Qe=function jwc(a){p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Une),''),'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.'),nuc),(X5c(),R5c)),JW),oqb((J5c(),H5c)))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Vne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Acb(),false)),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Wne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Kuc),R5c),SW),oqb(H5c))));k4c(a,Wne,coe,Muc);k4c(a,Wne,moe,Luc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Xne),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Yne),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(y5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Zne),''),'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),P5c),wI),oqb(I5c)),OC(GC(ZI,1),iie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,$ne),''),'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."),vvc),R5c),cX),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,_ne),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),leb(7)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,aoe),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,boe),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,coe),'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).'),luc),R5c),IW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,doe),lpe),'Node Layering Strategy'),'Strategy for node layering.'),_uc),R5c),YW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,eoe),lpe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Ruc),R5c),TW),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,foe),lpe),'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."),leb(-1)),T5c),JI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,goe),lpe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),leb(-1)),T5c),JI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,hoe),mpe),'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."),leb(4)),T5c),JI),oqb(H5c))));k4c(a,hoe,doe,Uuc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ioe),mpe),'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."),leb(2)),T5c),JI),oqb(H5c))));k4c(a,ioe,doe,Wuc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,joe),npe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),Zuc),R5c),aX),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,koe),npe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),leb(0)),T5c),JI),oqb(H5c))));k4c(a,koe,joe,null);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,loe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),leb(Jhe)),T5c),JI),oqb(H5c))));k4c(a,loe,doe,Ouc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,moe),ope),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),juc),R5c),GW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,noe),ope),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ooe),ope),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),Q5c),BI),oqb(H5c))));k4c(a,ooe,ppe,duc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,poe),ope),'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),P5c),wI),oqb(H5c))));k4c(a,poe,moe,huc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,qoe),ope),'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."),leb(-1)),T5c),JI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,roe),ope),'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.'),leb(-1)),T5c),JI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,soe),qpe),'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."),leb(40)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,toe),qpe),'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."),auc),R5c),QW),oqb(H5c))));k4c(a,toe,moe,buc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,uoe),'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."),Ytc),R5c),QW),oqb(H5c))));k4c(a,uoe,moe,Ztc);k4c(a,uoe,ppe,$tc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,voe),rpe),'Node Placement Strategy'),'Strategy for node placement.'),tvc),R5c),_W),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,woe),rpe),'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."),P5c),wI),oqb(H5c))));k4c(a,woe,voe,jvc);k4c(a,woe,voe,kvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,xoe),spe),'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."),dvc),R5c),MW),oqb(H5c))));k4c(a,xoe,voe,evc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,yoe),spe),'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.'),gvc),R5c),NW),oqb(H5c))));k4c(a,yoe,voe,hvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,zoe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),Q5c),BI),oqb(H5c))));k4c(a,zoe,voe,mvc);p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Aoe),'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."),R5c),$W),oqb(G5c))));k4c(a,Aoe,voe,rvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Boe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),pvc),R5c),$W),oqb(H5c))));k4c(a,Boe,voe,qvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Coe),tpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),vuc),R5c),eX),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Doe),tpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),xuc),R5c),fX),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Eoe),'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.'),zuc),R5c),hX),oqb(H5c))));k4c(a,Eoe,upe,Auc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Foe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),Q5c),BI),oqb(H5c))));k4c(a,Foe,upe,Cuc);k4c(a,Foe,Eoe,Duc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Goe),'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),Q5c),BI),oqb(H5c))));k4c(a,Goe,upe,tuc);p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Hoe),vpe),'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."),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ioe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Joe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Koe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Loe),wpe),'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.'),leb(0)),T5c),JI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Moe),wpe),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),leb(0)),T5c),JI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Noe),wpe),'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.'),leb(0)),T5c),JI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ooe),xpe),Jle),'Tries to further compact components (disconnected sub-graphs).'),false),P5c),wI),oqb(H5c))));k4c(a,Ooe,ume,true);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Poe),ype),'Post Compaction Strategy'),zpe),Ltc),R5c),OW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Qoe),ype),'Post Compaction Constraint Calculation'),zpe),Jtc),R5c),FW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Roe),Ape),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Soe),Ape),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),leb(16)),T5c),JI),oqb(H5c))));k4c(a,Soe,Roe,true);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Toe),Ape),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),leb(5)),T5c),JI),oqb(H5c))));k4c(a,Toe,Roe,true);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Uoe),Bpe),'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'."),_vc),R5c),jX),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Voe),Bpe),'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),Q5c),BI),oqb(H5c))));k4c(a,Voe,Uoe,Gvc);k4c(a,Voe,Uoe,Hvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Woe),Bpe),'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),Q5c),BI),oqb(H5c))));k4c(a,Woe,Uoe,Jvc);k4c(a,Woe,Uoe,Kvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Xoe),Cpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Rvc),R5c),HW),oqb(H5c))));k4c(a,Xoe,Uoe,Svc);k4c(a,Xoe,Uoe,Tvc);p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Yoe),Cpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),U5c),yK),oqb(H5c))));k4c(a,Yoe,Xoe,Mvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Zoe),'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.'),Ovc),T5c),JI),oqb(H5c))));k4c(a,Zoe,Xoe,Pvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,$oe),Dpe),'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.'),ewc),R5c),iX),oqb(H5c))));k4c(a,$oe,Uoe,fwc);k4c(a,$oe,Uoe,gwc);p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,_oe),Dpe),'Valid Indices for Wrapping'),null),U5c),yK),oqb(H5c))));k4c(a,_oe,Uoe,bwc);k4c(a,_oe,Uoe,cwc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ape),Epe),'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),P5c),wI),oqb(H5c))));k4c(a,ape,Uoe,Xvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,bpe),Epe),'Distance Penalty When Improving Cuts'),null),2),Q5c),BI),oqb(H5c))));k4c(a,bpe,Uoe,Vvc);k4c(a,bpe,ape,true);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,cpe),Epe),'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),P5c),wI),oqb(H5c))));k4c(a,cpe,Uoe,Zvc);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,dpe),Fpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),ruc),R5c),LW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,epe),Fpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),puc),R5c),EW),pqb(H5c,OC(GC(d1,1),Fie,175,0,[F5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,fpe),Gpe),'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.'),Utc),R5c),bX),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,gpe),Gpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,hpe),Gpe),'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.'),Ntc),R5c),hQ),oqb(H5c))));k4c(a,hpe,ume,null);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ipe),Gpe),'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.'),Rtc),R5c),ZW),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,jpe),Gpe),'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),Q5c),BI),oqb(H5c))));k4c(a,jpe,fpe,null);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,kpe),Gpe),'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),Q5c),BI),oqb(H5c))));k4c(a,kpe,fpe,null);Myc((new Nyc,a))};var Gtc,Htc,Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc;var UW=ldb(Nne,'LayeredMetaDataProvider',847);acb(985,1,Xke,Nyc);_.Qe=function Oyc(a){Myc(a)};var 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,Ywc,Zwc,$wc,_wc,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,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;var WW=ldb(Nne,'LayeredOptions',985);acb(986,1,{},Pyc);_.$e=function Qyc(){var a;return a=new iUb,a};_._e=function Ryc(a){};var VW=ldb(Nne,'LayeredOptions/LayeredFactory',986);acb(1371,1,{});_.a=0;var Syc;var Z1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder',1371);acb(779,1371,{},czc);var _yc,azc;var XW=ldb(Nne,'LayeredSpacings/LayeredSpacingsBuilder',779);acb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},lzc);_.Kf=function nzc(){return kzc(this)};_.Xf=function mzc(){return kzc(this)};var dzc,ezc,fzc,gzc,hzc,izc;var YW=mdb(Nne,'LayeringStrategy',313,CI,pzc,ozc);var qzc;acb(378,22,{3:1,35:1,22:1,378:1},xzc);var szc,tzc,uzc;var ZW=mdb(Nne,'LongEdgeOrderingStrategy',378,CI,zzc,yzc);var Azc;acb(197,22,{3:1,35:1,22:1,197:1},Izc);var Czc,Dzc,Ezc,Fzc;var $W=mdb(Nne,'NodeFlexibility',197,CI,Lzc,Kzc);var Mzc;acb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Vzc);_.Kf=function Xzc(){return Uzc(this)};_.Xf=function Wzc(){return Uzc(this)};var Ozc,Pzc,Qzc,Rzc,Szc;var _W=mdb(Nne,'NodePlacementStrategy',315,CI,Zzc,Yzc);var $zc;acb(260,22,{3:1,35:1,22:1,260:1},jAc);var aAc,bAc,cAc,dAc,eAc,fAc,gAc,hAc;var aX=mdb(Nne,'NodePromotionStrategy',260,CI,lAc,kAc);var mAc;acb(338,22,{3:1,35:1,22:1,338:1},sAc);var oAc,pAc,qAc;var bX=mdb(Nne,'OrderingStrategy',338,CI,uAc,tAc);var vAc;acb(422,22,{3:1,35:1,22:1,422:1},AAc);var xAc,yAc;var cX=mdb(Nne,'PortSortingStrategy',422,CI,CAc,BAc);var DAc;acb(453,22,{3:1,35:1,22:1,453:1},JAc);var FAc,GAc,HAc;var dX=mdb(Nne,'PortType',453,CI,LAc,KAc);var MAc;acb(375,22,{3:1,35:1,22:1,375:1},SAc);var OAc,PAc,QAc;var eX=mdb(Nne,'SelfLoopDistributionStrategy',375,CI,UAc,TAc);var VAc;acb(376,22,{3:1,35:1,22:1,376:1},$Ac);var XAc,YAc;var fX=mdb(Nne,'SelfLoopOrderingStrategy',376,CI,aBc,_Ac);var bBc;acb(304,1,{304:1},mBc);var gX=ldb(Nne,'Spacings',304);acb(335,22,{3:1,35:1,22:1,335:1},sBc);var oBc,pBc,qBc;var hX=mdb(Nne,'SplineRoutingMode',335,CI,uBc,tBc);var vBc;acb(337,22,{3:1,35:1,22:1,337:1},BBc);var xBc,yBc,zBc;var iX=mdb(Nne,'ValidifyStrategy',337,CI,DBc,CBc);var EBc;acb(377,22,{3:1,35:1,22:1,377:1},KBc);var GBc,HBc,IBc;var jX=mdb(Nne,'WrappingStrategy',377,CI,MBc,LBc);var NBc;acb(1383,1,xqe,TBc);_.Yf=function UBc(a){return BD(a,37),PBc};_.pf=function VBc(a,b){SBc(this,BD(a,37),b)};var PBc;var kX=ldb(yqe,'DepthFirstCycleBreaker',1383);acb(1382,1,xqe,$Bc);_.Yf=function _Bc(a){return BD(a,37),WBc};_.pf=function aCc(a,b){YBc(this,BD(a,37),b)};var WBc;var lX=ldb(yqe,'GreedyCycleBreaker',1382);acb(1384,1,xqe,fCc);_.Yf=function gCc(a){return BD(a,37),bCc};_.pf=function hCc(a,b){eCc(this,BD(a,37),b)};var bCc;var mX=ldb(yqe,'InteractiveCycleBreaker',1384);acb(1385,1,xqe,mCc);_.Yf=function nCc(a){return BD(a,37),iCc};_.pf=function oCc(a,b){lCc(this,BD(a,37),b)};_.a=0;_.b=0;var iCc;var nX=ldb(yqe,'ModelOrderCycleBreaker',1385);acb(1388,1,xqe,yCc);_.Yf=function zCc(a){return BD(a,37),pCc};_.pf=function ACc(a,b){wCc(this,BD(a,37),b)};var pCc;var qX=ldb(zqe,'CoffmanGrahamLayerer',1388);acb(1389,1,yke,BCc);_.ue=function CCc(a,b){return sCc(this.a,BD(a,10),BD(b,10))};_.Fb=function DCc(a){return this===a};_.ve=function ECc(){return new spb(this)};var oX=ldb(zqe,'CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type',1389);acb(1390,1,yke,FCc);_.ue=function GCc(a,b){return vCc(this.a,BD(a,10),BD(b,10))};_.Fb=function HCc(a){return this===a};_.ve=function ICc(){return new spb(this)};var pX=ldb(zqe,'CoffmanGrahamLayerer/lambda$1$Type',1390);acb(1391,1,xqe,LCc);_.Yf=function MCc(a){return BD(a,37),a3c(a3c(a3c(new f3c,(pUb(),kUb),(R8b(),m8b)),lUb,v8b),mUb,u8b)};_.pf=function NCc(a,b){KCc(this,BD(a,37),b)};var sX=ldb(zqe,'InteractiveLayerer',1391);acb(569,1,{569:1},OCc);_.a=0;_.c=0;var rX=ldb(zqe,'InteractiveLayerer/LayerSpan',569);acb(1387,1,xqe,UCc);_.Yf=function VCc(a){return BD(a,37),PCc};_.pf=function WCc(a,b){RCc(this,BD(a,37),b)};var PCc;var tX=ldb(zqe,'LongestPathLayerer',1387);acb(1394,1,xqe,dDc);_.Yf=function eDc(a){return BD(a,37),a3c(a3c(a3c(new f3c,(pUb(),kUb),(R8b(),Y7b)),lUb,v8b),mUb,u8b)};_.pf=function fDc(a,b){bDc(this,BD(a,37),b)};_.a=0;_.b=0;_.d=0;var XCc,YCc;var vX=ldb(zqe,'MinWidthLayerer',1394);acb(1395,1,yke,hDc);_.ue=function iDc(a,b){return gDc(this,BD(a,10),BD(b,10))};_.Fb=function jDc(a){return this===a};_.ve=function kDc(){return new spb(this)};var uX=ldb(zqe,'MinWidthLayerer/MinOutgoingEdgesComparator',1395);acb(1386,1,xqe,sDc);_.Yf=function tDc(a){return BD(a,37),lDc};_.pf=function uDc(a,b){rDc(this,BD(a,37),b)};var lDc;var wX=ldb(zqe,'NetworkSimplexLayerer',1386);acb(1392,1,xqe,GDc);_.Yf=function HDc(a){return BD(a,37),a3c(a3c(a3c(new f3c,(pUb(),kUb),(R8b(),Y7b)),lUb,v8b),mUb,u8b)};_.pf=function IDc(a,b){DDc(this,BD(a,37),b)};_.d=0;_.f=0;_.g=0;_.i=0;_.s=0;_.t=0;_.u=0;var yX=ldb(zqe,'StretchWidthLayerer',1392);acb(1393,1,yke,KDc);_.ue=function LDc(a,b){return JDc(BD(a,10),BD(b,10))};_.Fb=function MDc(a){return this===a};_.ve=function NDc(){return new spb(this)};var xX=ldb(zqe,'StretchWidthLayerer/1',1393);acb(403,1,Aqe);_.Nf=function aEc(a,b,c,d,e,f){};_.$f=function $Dc(a,b,c){return TDc(this,a,b,c)};_.Mf=function _Dc(){this.g=KC(VD,Bqe,25,this.d,15,1);this.f=KC(VD,Bqe,25,this.d,15,1)};_.Of=function bEc(a,b){this.e[a]=KC(WD,jje,25,b[a].length,15,1)};_.Pf=function cEc(a,b,c){var d;d=c[a][b];d.p=b;this.e[a][b]=b};_.Qf=function dEc(a,b,c,d){BD(Hkb(d[a][b].j,c),11).p=this.d++};_.b=0;_.c=0;_.d=0;var AX=ldb(Cqe,'AbstractBarycenterPortDistributor',403);acb(1632,1,yke,eEc);_.ue=function fEc(a,b){return WDc(this.a,BD(a,11),BD(b,11))};_.Fb=function gEc(a){return this===a};_.ve=function hEc(){return new spb(this)};var zX=ldb(Cqe,'AbstractBarycenterPortDistributor/lambda$0$Type',1632);acb(816,1,Hne,pEc);_.Nf=function sEc(a,b,c,d,e,f){};_.Pf=function uEc(a,b,c){};_.Qf=function vEc(a,b,c,d){};_.Lf=function qEc(){return false};_.Mf=function rEc(){this.c=this.e.a;this.g=this.f.g};_.Of=function tEc(a,b){b[a][0].c.p=a};_.Rf=function wEc(){return false};_._f=function xEc(a,b,c,d){if(c){mEc(this,a)}else{jEc(this,a,d);kEc(this,a,b)}if(a.c.length>1){Bcb(DD(uNb(P_b((sCb(0,a.c.length),BD(a.c[0],10))),(Lyc(),ywc))))?UGc(a,this.d,BD(this,660)):(lmb(),Nkb(a,this.d));KEc(this.e,a)}};_.Sf=function yEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=nEc(c,a.length)){f=a[b-(c?1:-1)];PDc(this.f,f,c?(IAc(),GAc):(IAc(),FAc))}e=a[b][0];k=!d||e.k==(i0b(),d0b);j=Ou(a[b]);this._f(j,k,false,c);g=0;for(i=new nlb(j);i.a');a0?(NHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Bcb(DD(uNb(P_b((sCb(0,a.c.length),BD(a.c[0],10))),(Lyc(),ywc))))?UGc(a,this.d,this):(lmb(),Nkb(a,this.d));Bcb(DD(uNb(P_b((sCb(0,a.c.length),BD(a.c[0],10))),ywc)))||KEc(this.e,a)}};var XX=ldb(Cqe,'ModelOrderBarycenterHeuristic',660);acb(1802,1,yke,WGc);_.ue=function XGc(a,b){return RGc(this.a,BD(a,10),BD(b,10))};_.Fb=function YGc(a){return this===a};_.ve=function ZGc(){return new spb(this)};var WX=ldb(Cqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1802);acb(1402,1,xqe,bHc);_.Yf=function cHc(a){var b;return BD(a,37),b=g3c($Gc),a3c(b,(pUb(),mUb),(R8b(),G8b)),b};_.pf=function dHc(a,b){aHc((BD(a,37),b))};var $Gc;var YX=ldb(Cqe,'NoCrossingMinimizer',1402);acb(795,403,Aqe,eHc);_.Zf=function fHc(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 nlb(a.j);k.a1&&(e.j==(Pcd(),ucd)?(this.b[a]=true):e.j==Ocd&&a>0&&(this.b[a-1]=true))};_.f=0;var _X=ldb(Gne,'AllCrossingsCounter',1797);acb(587,1,{},xHc);_.b=0;_.d=0;var aY=ldb(Gne,'BinaryIndexedTree',587);acb(524,1,{},_Hc);var zHc,AHc;var kY=ldb(Gne,'CrossingsCounter',524);acb(1905,1,yke,dIc);_.ue=function eIc(a,b){return UHc(this.a,BD(a,11),BD(b,11))};_.Fb=function fIc(a){return this===a};_.ve=function gIc(){return new spb(this)};var bY=ldb(Gne,'CrossingsCounter/lambda$0$Type',1905);acb(1906,1,yke,hIc);_.ue=function iIc(a,b){return VHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new spb(this)};var cY=ldb(Gne,'CrossingsCounter/lambda$1$Type',1906);acb(1907,1,yke,lIc);_.ue=function mIc(a,b){return WHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new spb(this)};var dY=ldb(Gne,'CrossingsCounter/lambda$2$Type',1907);acb(1908,1,yke,pIc);_.ue=function qIc(a,b){return XHc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new spb(this)};var eY=ldb(Gne,'CrossingsCounter/lambda$3$Type',1908);acb(1909,1,lie,tIc);_.td=function uIc(a){aIc(this.a,BD(a,11))};var fY=ldb(Gne,'CrossingsCounter/lambda$4$Type',1909);acb(1910,1,Jie,vIc);_.Mb=function wIc(a){return bIc(this.a,BD(a,11))};var gY=ldb(Gne,'CrossingsCounter/lambda$5$Type',1910);acb(1911,1,lie,yIc);_.td=function zIc(a){xIc(this,a)};var hY=ldb(Gne,'CrossingsCounter/lambda$6$Type',1911);acb(1912,1,lie,AIc);_.td=function BIc(a){var b;BHc();Vjb(this.b,(b=this.a,BD(a,11),b))};var iY=ldb(Gne,'CrossingsCounter/lambda$7$Type',1912);acb(825,1,Qke,CIc);_.Lb=function DIc(a){return BHc(),vNb(BD(a,11),(utc(),etc))};_.Fb=function EIc(a){return this===a};_.Mb=function FIc(a){return BHc(),vNb(BD(a,11),(utc(),etc))};var jY=ldb(Gne,'CrossingsCounter/lambda$8$Type',825);acb(1904,1,{},HIc);var oY=ldb(Gne,'HyperedgeCrossingsCounter',1904);acb(467,1,{35:1,467:1},JIc);_.wd=function KIc(a){return IIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var nY=ldb(Gne,'HyperedgeCrossingsCounter/Hyperedge',467);acb(361,1,{35:1,361:1},MIc);_.wd=function NIc(a){return LIc(this,BD(a,361))};_.b=0;_.c=0;var mY=ldb(Gne,'HyperedgeCrossingsCounter/HyperedgeCorner',361);acb(523,22,{3:1,35:1,22:1,523:1},RIc);var OIc,PIc;var lY=mdb(Gne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,TIc,SIc);var UIc;acb(1404,1,xqe,_Ic);_.Yf=function aJc(a){return BD(uNb(BD(a,37),(utc(),Isc)),21).Hc((Mrc(),Frc))?XIc:null};_.pf=function bJc(a,b){$Ic(this,BD(a,37),b)};var XIc;var qY=ldb(Dqe,'InteractiveNodePlacer',1404);acb(1405,1,xqe,pJc);_.Yf=function qJc(a){return BD(uNb(BD(a,37),(utc(),Isc)),21).Hc((Mrc(),Frc))?cJc:null};_.pf=function rJc(a,b){nJc(this,BD(a,37),b)};var cJc,dJc,eJc;var sY=ldb(Dqe,'LinearSegmentsNodePlacer',1405);acb(257,1,{35:1,257:1},vJc);_.wd=function wJc(a){return sJc(this,BD(a,257))};_.Fb=function xJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function yJc(){return this.b};_.Ib=function zJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var rY=ldb(Dqe,'LinearSegmentsNodePlacer/LinearSegment',257);acb(1407,1,xqe,WJc);_.Yf=function XJc(a){return BD(uNb(BD(a,37),(utc(),Isc)),21).Hc((Mrc(),Frc))?AJc:null};_.pf=function dKc(a,b){SJc(this,BD(a,37),b)};_.b=0;_.g=0;var AJc;var cZ=ldb(Dqe,'NetworkSimplexPlacer',1407);acb(1426,1,yke,eKc);_.ue=function fKc(a,b){return aeb(BD(a,19).a,BD(b,19).a)};_.Fb=function gKc(a){return this===a};_.ve=function hKc(){return new spb(this)};var tY=ldb(Dqe,'NetworkSimplexPlacer/0methodref$compare$Type',1426);acb(1428,1,yke,iKc);_.ue=function jKc(a,b){return aeb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new spb(this)};var uY=ldb(Dqe,'NetworkSimplexPlacer/1methodref$compare$Type',1428);acb(649,1,{649:1},mKc);var vY=ldb(Dqe,'NetworkSimplexPlacer/EdgeRep',649);acb(402,1,{402:1},nKc);_.b=false;var wY=ldb(Dqe,'NetworkSimplexPlacer/NodeRep',402);acb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},rKc);var BY=ldb(Dqe,'NetworkSimplexPlacer/Path',508);acb(1408,1,{},sKc);_.Kb=function tKc(a){return BD(a,17).d.i.k};var xY=ldb(Dqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1408);acb(1409,1,Jie,uKc);_.Mb=function vKc(a){return BD(a,267)==(i0b(),f0b)};var yY=ldb(Dqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1409);acb(1410,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i};var zY=ldb(Dqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1410);acb(1411,1,Jie,yKc);_.Mb=function zKc(a){return aLc(Jzc(BD(a,10)))};var AY=ldb(Dqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1411);acb(1412,1,Jie,AKc);_.Mb=function BKc(a){return _Jc(BD(a,11))};var CY=ldb(Dqe,'NetworkSimplexPlacer/lambda$0$Type',1412);acb(1413,1,lie,CKc);_.td=function DKc(a){HJc(this.a,this.b,BD(a,11))};var DY=ldb(Dqe,'NetworkSimplexPlacer/lambda$1$Type',1413);acb(1422,1,lie,EKc);_.td=function FKc(a){IJc(this.a,BD(a,17))};var EY=ldb(Dqe,'NetworkSimplexPlacer/lambda$10$Type',1422);acb(1423,1,{},GKc);_.Kb=function HKc(a){return BJc(),new XAb(null,new Jub(BD(a,29).a,16))};var FY=ldb(Dqe,'NetworkSimplexPlacer/lambda$11$Type',1423);acb(1424,1,lie,IKc);_.td=function JKc(a){JJc(this.a,BD(a,10))};var GY=ldb(Dqe,'NetworkSimplexPlacer/lambda$12$Type',1424);acb(1425,1,{},KKc);_.Kb=function LKc(a){return BJc(),leb(BD(a,121).e)};var HY=ldb(Dqe,'NetworkSimplexPlacer/lambda$13$Type',1425);acb(1427,1,{},MKc);_.Kb=function NKc(a){return BJc(),leb(BD(a,121).e)};var IY=ldb(Dqe,'NetworkSimplexPlacer/lambda$15$Type',1427);acb(1429,1,Jie,OKc);_.Mb=function PKc(a){return BJc(),BD(a,402).c.k==(i0b(),g0b)};var JY=ldb(Dqe,'NetworkSimplexPlacer/lambda$17$Type',1429);acb(1430,1,Jie,QKc);_.Mb=function RKc(a){return BJc(),BD(a,402).c.j.c.length>1};var KY=ldb(Dqe,'NetworkSimplexPlacer/lambda$18$Type',1430);acb(1431,1,lie,SKc);_.td=function TKc(a){aKc(this.c,this.b,this.d,this.a,BD(a,402))};_.c=0;_.d=0;var LY=ldb(Dqe,'NetworkSimplexPlacer/lambda$19$Type',1431);acb(1414,1,{},UKc);_.Kb=function VKc(a){return BJc(),new XAb(null,new Jub(BD(a,29).a,16))};var MY=ldb(Dqe,'NetworkSimplexPlacer/lambda$2$Type',1414);acb(1432,1,lie,WKc);_.td=function XKc(a){bKc(this.a,BD(a,11))};_.a=0;var NY=ldb(Dqe,'NetworkSimplexPlacer/lambda$20$Type',1432);acb(1433,1,{},YKc);_.Kb=function ZKc(a){return BJc(),new XAb(null,new Jub(BD(a,29).a,16))};var OY=ldb(Dqe,'NetworkSimplexPlacer/lambda$21$Type',1433);acb(1434,1,lie,$Kc);_.td=function _Kc(a){KJc(this.a,BD(a,10))};var PY=ldb(Dqe,'NetworkSimplexPlacer/lambda$22$Type',1434);acb(1435,1,Jie,bLc);_.Mb=function cLc(a){return aLc(a)};var QY=ldb(Dqe,'NetworkSimplexPlacer/lambda$23$Type',1435);acb(1436,1,{},dLc);_.Kb=function eLc(a){return BJc(),new XAb(null,new Jub(BD(a,29).a,16))};var RY=ldb(Dqe,'NetworkSimplexPlacer/lambda$24$Type',1436);acb(1437,1,Jie,fLc);_.Mb=function gLc(a){return LJc(this.a,BD(a,10))};var SY=ldb(Dqe,'NetworkSimplexPlacer/lambda$25$Type',1437);acb(1438,1,lie,hLc);_.td=function iLc(a){MJc(this.a,this.b,BD(a,10))};var TY=ldb(Dqe,'NetworkSimplexPlacer/lambda$26$Type',1438);acb(1439,1,Jie,jLc);_.Mb=function kLc(a){return BJc(),!NZb(BD(a,17))};var UY=ldb(Dqe,'NetworkSimplexPlacer/lambda$27$Type',1439);acb(1440,1,Jie,lLc);_.Mb=function mLc(a){return BJc(),!NZb(BD(a,17))};var VY=ldb(Dqe,'NetworkSimplexPlacer/lambda$28$Type',1440);acb(1441,1,{},nLc);_.Ce=function oLc(a,b){return NJc(this.a,BD(a,29),BD(b,29))};var WY=ldb(Dqe,'NetworkSimplexPlacer/lambda$29$Type',1441);acb(1415,1,{},pLc);_.Kb=function qLc(a){return BJc(),new XAb(null,new Kub(new Sr(ur(T_b(BD(a,10)).a.Kc(),new Sq))))};var XY=ldb(Dqe,'NetworkSimplexPlacer/lambda$3$Type',1415);acb(1416,1,Jie,rLc);_.Mb=function sLc(a){return BJc(),$Jc(BD(a,17))};var YY=ldb(Dqe,'NetworkSimplexPlacer/lambda$4$Type',1416);acb(1417,1,lie,tLc);_.td=function uLc(a){TJc(this.a,BD(a,17))};var ZY=ldb(Dqe,'NetworkSimplexPlacer/lambda$5$Type',1417);acb(1418,1,{},vLc);_.Kb=function wLc(a){return BJc(),new XAb(null,new Jub(BD(a,29).a,16))};var $Y=ldb(Dqe,'NetworkSimplexPlacer/lambda$6$Type',1418);acb(1419,1,Jie,xLc);_.Mb=function yLc(a){return BJc(),BD(a,10).k==(i0b(),g0b)};var _Y=ldb(Dqe,'NetworkSimplexPlacer/lambda$7$Type',1419);acb(1420,1,{},zLc);_.Kb=function ALc(a){return BJc(),new XAb(null,new Kub(new Sr(ur(N_b(BD(a,10)).a.Kc(),new Sq))))};var aZ=ldb(Dqe,'NetworkSimplexPlacer/lambda$8$Type',1420);acb(1421,1,Jie,BLc);_.Mb=function CLc(a){return BJc(),MZb(BD(a,17))};var bZ=ldb(Dqe,'NetworkSimplexPlacer/lambda$9$Type',1421);acb(1403,1,xqe,GLc);_.Yf=function HLc(a){return BD(uNb(BD(a,37),(utc(),Isc)),21).Hc((Mrc(),Frc))?DLc:null};_.pf=function ILc(a,b){FLc(BD(a,37),b)};var DLc;var dZ=ldb(Dqe,'SimpleNodePlacer',1403);acb(180,1,{180:1},QLc);_.Ib=function RLc(){var a;a='';this.c==(ULc(),TLc)?(a+=fle):this.c==SLc&&(a+=ele);this.o==(aMc(),$Lc)?(a+=qle):this.o==_Lc?(a+='UP'):(a+='BALANCED');return a};var gZ=ldb(Gqe,'BKAlignedLayout',180);acb(516,22,{3:1,35:1,22:1,516:1},VLc);var SLc,TLc;var eZ=mdb(Gqe,'BKAlignedLayout/HDirection',516,CI,XLc,WLc);var YLc;acb(515,22,{3:1,35:1,22:1,515:1},bMc);var $Lc,_Lc;var fZ=mdb(Gqe,'BKAlignedLayout/VDirection',515,CI,dMc,cMc);var eMc;acb(1633,1,{},iMc);var hZ=ldb(Gqe,'BKAligner',1633);acb(1636,1,{},nMc);var kZ=ldb(Gqe,'BKCompactor',1636);acb(654,1,{654:1},oMc);_.a=0;var iZ=ldb(Gqe,'BKCompactor/ClassEdge',654);acb(458,1,{458:1},qMc);_.a=null;_.b=0;var jZ=ldb(Gqe,'BKCompactor/ClassNode',458);acb(1406,1,xqe,yMc);_.Yf=function CMc(a){return BD(uNb(BD(a,37),(utc(),Isc)),21).Hc((Mrc(),Frc))?rMc:null};_.pf=function DMc(a,b){xMc(this,BD(a,37),b)};_.d=false;var rMc;var lZ=ldb(Gqe,'BKNodePlacer',1406);acb(1634,1,{},FMc);_.d=0;var nZ=ldb(Gqe,'NeighborhoodInformation',1634);acb(1635,1,yke,KMc);_.ue=function LMc(a,b){return JMc(this,BD(a,46),BD(b,46))};_.Fb=function MMc(a){return this===a};_.ve=function NMc(){return new spb(this)};var mZ=ldb(Gqe,'NeighborhoodInformation/NeighborComparator',1635);acb(807,1,{});var rZ=ldb(Gqe,'ThresholdStrategy',807);acb(1762,807,{},SMc);_.ag=function TMc(a,b,c){return this.a.o==(aMc(),_Lc)?Kje:Lje};_.bg=function UMc(){};var oZ=ldb(Gqe,'ThresholdStrategy/NullThresholdStrategy',1762);acb(579,1,{579:1},VMc);_.c=false;_.d=false;var pZ=ldb(Gqe,'ThresholdStrategy/Postprocessable',579);acb(1763,807,{},ZMc);_.ag=function $Mc(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==(ULc(),TLc)){e&&(f=WMc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=WMc(this,c,false))}else{e&&(f=WMc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=WMc(this,c,false))}return f};_.bg=function _Mc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Jsb(this.d),579);d=XMc(this,e);if(!d.a){continue}a=d.a;c=Bcb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!NZb(a)&&a.c.i.c==a.d.i.c){continue}b=YMc(this,e);b||rwb(this.e,e)}while(this.e.a.c.length!=0){YMc(this,BD(qwb(this.e),579))}};var qZ=ldb(Gqe,'ThresholdStrategy/SimpleThresholdStrategy',1763);acb(635,1,{635:1,246:1,234:1},dNc);_.Kf=function fNc(){return cNc(this)};_.Xf=function eNc(){return cNc(this)};var aNc;var sZ=ldb(Hqe,'EdgeRouterFactory',635);acb(1457,1,xqe,sNc);_.Yf=function tNc(a){return qNc(BD(a,37))};_.pf=function uNc(a,b){rNc(BD(a,37),b)};var hNc,iNc,jNc,kNc,lNc,mNc,nNc,oNc;var tZ=ldb(Hqe,'OrthogonalEdgeRouter',1457);acb(1450,1,xqe,JNc);_.Yf=function KNc(a){return ENc(BD(a,37))};_.pf=function LNc(a,b){GNc(this,BD(a,37),b)};var vNc,wNc,xNc,yNc,zNc,ANc;var vZ=ldb(Hqe,'PolylineEdgeRouter',1450);acb(1451,1,Qke,NNc);_.Lb=function ONc(a){return MNc(BD(a,10))};_.Fb=function PNc(a){return this===a};_.Mb=function QNc(a){return MNc(BD(a,10))};var uZ=ldb(Hqe,'PolylineEdgeRouter/1',1451);acb(1808,1,Jie,VNc);_.Mb=function WNc(a){return BD(a,129).c==(DOc(),BOc)};var wZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$0$Type',1808);acb(1809,1,{},XNc);_.Ge=function YNc(a){return BD(a,129).d};var xZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$1$Type',1809);acb(1810,1,Jie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(DOc(),BOc)};var yZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$2$Type',1810);acb(1811,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var zZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$3$Type',1811);acb(1812,1,{},bOc);_.Ge=function cOc(a){return BD(a,129).d};var AZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$4$Type',1812);acb(1813,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var BZ=ldb(Iqe,'HyperEdgeCycleDetector/lambda$5$Type',1813);acb(112,1,{35:1,112:1},qOc);_.wd=function rOc(a){return gOc(this,BD(a,112))};_.Fb=function sOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function tOc(){return this.g};_.Ib=function vOc(){var a,b,c,d;a=new Vfb('{');d=new nlb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var DZ=ldb(Iqe,'HyperEdgeSegmentDependency',129);acb(520,22,{3:1,35:1,22:1,520:1},EOc);var BOc,COc;var CZ=mdb(Iqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,GOc,FOc);var HOc;acb(1814,1,{},VOc);var LZ=ldb(Iqe,'HyperEdgeSegmentSplitter',1814);acb(1815,1,{},YOc);_.a=0;_.b=0;var EZ=ldb(Iqe,'HyperEdgeSegmentSplitter/AreaRating',1815);acb(329,1,{329:1},ZOc);_.a=0;_.b=0;_.c=0;var FZ=ldb(Iqe,'HyperEdgeSegmentSplitter/FreeArea',329);acb(1816,1,yke,$Oc);_.ue=function _Oc(a,b){return XOc(BD(a,112),BD(b,112))};_.Fb=function aPc(a){return this===a};_.ve=function bPc(){return new spb(this)};var GZ=ldb(Iqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1816);acb(1817,1,lie,cPc);_.td=function dPc(a){POc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var HZ=ldb(Iqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1817);acb(1818,1,{},ePc);_.Kb=function fPc(a){return new XAb(null,new Jub(BD(a,112).e,16))};var IZ=ldb(Iqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1818);acb(1819,1,{},gPc);_.Kb=function hPc(a){return new XAb(null,new Jub(BD(a,112).j,16))};var JZ=ldb(Iqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1819);acb(1820,1,{},iPc);_.Fe=function jPc(a){return Ddb(ED(a))};var KZ=ldb(Iqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1820);acb(655,1,{},pPc);_.a=0;_.b=0;_.c=0;var PZ=ldb(Iqe,'OrthogonalRoutingGenerator',655);acb(1637,1,{},tPc);_.Kb=function uPc(a){return new XAb(null,new Jub(BD(a,112).e,16))};var NZ=ldb(Iqe,'OrthogonalRoutingGenerator/lambda$0$Type',1637);acb(1638,1,{},vPc);_.Kb=function wPc(a){return new XAb(null,new Jub(BD(a,112).j,16))};var OZ=ldb(Iqe,'OrthogonalRoutingGenerator/lambda$1$Type',1638);acb(661,1,{});var QZ=ldb(Jqe,'BaseRoutingDirectionStrategy',661);acb(1806,661,{},APc);_.cg=function BPc(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 nlb(a.n);j.alme){f=k;e=a;d=new b7c(l,f);Csb(g.a,d);xPc(this,g,e,d,false);m=a.r;if(m){n=Ddb(ED(Ut(m.e,0)));d=new b7c(n,f);Csb(g.a,d);xPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new b7c(n,f);Csb(g.a,d);xPc(this,g,e,d,false)}d=new b7c(p,f);Csb(g.a,d);xPc(this,g,e,d,false)}}}}};_.dg=function CPc(a){return a.i.n.a+a.n.a+a.a.a};_.eg=function DPc(){return Pcd(),Mcd};_.fg=function EPc(){return Pcd(),vcd};var RZ=ldb(Jqe,'NorthToSouthRoutingStrategy',1806);acb(1807,661,{},FPc);_.cg=function GPc(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 nlb(a.n);j.alme){f=k;e=a;d=new b7c(l,f);Csb(g.a,d);xPc(this,g,e,d,false);m=a.r;if(m){n=Ddb(ED(Ut(m.e,0)));d=new b7c(n,f);Csb(g.a,d);xPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new b7c(n,f);Csb(g.a,d);xPc(this,g,e,d,false)}d=new b7c(p,f);Csb(g.a,d);xPc(this,g,e,d,false)}}}}};_.dg=function HPc(a){return a.i.n.a+a.n.a+a.a.a};_.eg=function IPc(){return Pcd(),vcd};_.fg=function JPc(){return Pcd(),Mcd};var SZ=ldb(Jqe,'SouthToNorthRoutingStrategy',1807);acb(1805,661,{},KPc);_.cg=function LPc(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 nlb(a.n);j.alme){f=k;e=a;d=new b7c(f,l);Csb(g.a,d);xPc(this,g,e,d,true);m=a.r;if(m){n=Ddb(ED(Ut(m.e,0)));d=new b7c(f,n);Csb(g.a,d);xPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new b7c(f,n);Csb(g.a,d);xPc(this,g,e,d,true)}d=new b7c(f,p);Csb(g.a,d);xPc(this,g,e,d,true)}}}}};_.dg=function MPc(a){return a.i.n.b+a.n.b+a.a.b};_.eg=function NPc(){return Pcd(),ucd};_.fg=function OPc(){return Pcd(),Ocd};var TZ=ldb(Jqe,'WestToEastRoutingStrategy',1805);acb(812,1,{},UPc);_.Ib=function VPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var VZ=ldb(Lqe,'NubSpline',812);acb(408,1,{408:1},YPc,ZPc);var UZ=ldb(Lqe,'NubSpline/PolarCP',408);acb(1452,1,xqe,rQc);_.Yf=function tQc(a){return mQc(BD(a,37))};_.pf=function uQc(a,b){qQc(this,BD(a,37),b)};var $Pc,_Pc,aQc,bQc,cQc;var a$=ldb(Lqe,'SplineEdgeRouter',1452);acb(268,1,{268:1},xQc);_.Ib=function yQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var WZ=ldb(Lqe,'SplineEdgeRouter/Dependency',268);acb(455,22,{3:1,35:1,22:1,455:1},CQc);var zQc,AQc;var XZ=mdb(Lqe,'SplineEdgeRouter/SideToProcess',455,CI,EQc,DQc);var FQc;acb(1453,1,Jie,HQc);_.Mb=function IQc(a){return dQc(),!BD(a,128).o};var YZ=ldb(Lqe,'SplineEdgeRouter/lambda$0$Type',1453);acb(1454,1,{},JQc);_.Ge=function KQc(a){return dQc(),BD(a,128).v+1};var ZZ=ldb(Lqe,'SplineEdgeRouter/lambda$1$Type',1454);acb(1455,1,lie,LQc);_.td=function MQc(a){oQc(this.a,this.b,BD(a,46))};var $Z=ldb(Lqe,'SplineEdgeRouter/lambda$2$Type',1455);acb(1456,1,lie,NQc);_.td=function OQc(a){pQc(this.a,this.b,BD(a,46))};var _Z=ldb(Lqe,'SplineEdgeRouter/lambda$3$Type',1456);acb(128,1,{35:1,128:1},UQc,VQc);_.wd=function WQc(a){return SQc(this,BD(a,128))};_.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 c$=ldb(Lqe,'SplineSegment',128);acb(459,1,{459:1},XQc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var b$=ldb(Lqe,'SplineSegment/EdgeInformation',459);acb(1233,1,{},dRc);var e$=ldb(Qqe,cme,1233);acb(1234,1,yke,fRc);_.ue=function gRc(a,b){return eRc(BD(a,135),BD(b,135))};_.Fb=function hRc(a){return this===a};_.ve=function iRc(){return new spb(this)};var d$=ldb(Qqe,dme,1234);acb(1232,1,{},pRc);var f$=ldb(Qqe,'MrTree',1232);acb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},wRc);_.Kf=function yRc(){return vRc(this)};_.Xf=function xRc(){return vRc(this)};var qRc,rRc,sRc,tRc;var g$=mdb(Qqe,'TreeLayoutPhases',393,CI,ARc,zRc);var BRc;acb(1129,209,Hle,DRc);_.Ze=function ERc(a,b){var c,d,e,f,g,h,i;Bcb(DD(ckd(a,(FTc(),wTc))))||ZCb((c=new $Cb((Kgd(),new Ygd(a))),c));g=(h=new ORc,sNb(h,a),xNb(h,(iTc(),_Sc),a),i=new Kqb,lRc(a,h,i),kRc(a,h,i),h);f=cRc(this.a,g);for(e=new nlb(f);e.a'+SRc(this.c):'e_'+tb(this)};var k$=ldb(Rqe,'TEdge',188);acb(135,134,{3:1,135:1,94:1,134:1},ORc);_.Ib=function PRc(){var a,b,c,d,e;e=null;for(d=Isb(this.b,0);d.b!=d.d.c;){c=BD(Wsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Isb(this.a,0);b.b!=b.d.c;){a=BD(Wsb(b),188);e+=(!!a.b&&!!a.c?SRc(a.b)+'->'+SRc(a.c):'e_'+tb(a))+'\n'}return e};var m$=ldb(Rqe,'TGraph',135);acb(633,502,{3:1,502:1,633:1,94:1,134:1});var q$=ldb(Rqe,'TShape',633);acb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},TRc);_.Ib=function URc(){return SRc(this)};var p$=ldb(Rqe,'TNode',86);acb(255,1,qie,VRc);_.Jc=function WRc(a){qeb(this,a)};_.Kc=function XRc(){var a;return a=Isb(this.a.d,0),new YRc(a)};var o$=ldb(Rqe,'TNode/2',255);acb(357,1,Xhe,YRc);_.Nb=function ZRc(a){Qrb(this,a)};_.Pb=function _Rc(){return BD(Wsb(this.a),188).c};_.Ob=function $Rc(){return Vsb(this.a)};_.Qb=function aSc(){Ysb(this.a)};var n$=ldb(Rqe,'TNode/2/1',357);acb(1839,1,_me,dSc);_.pf=function fSc(a,b){cSc(this,BD(a,135),b)};var r$=ldb(Sqe,'FanProcessor',1839);acb(327,22,{3:1,35:1,22:1,327:1,234:1},nSc);_.Kf=function oSc(){switch(this.g){case 0:return new MSc;case 1:return new dSc;case 2:return new CSc;case 3:return new vSc;case 4:return new JSc;case 5:return new PSc;default:throw ubb(new Vdb(yne+(this.f!=null?this.f:''+this.g)));}};var gSc,hSc,iSc,jSc,kSc,lSc;var s$=mdb(Sqe,zne,327,CI,qSc,pSc);var rSc;acb(1842,1,_me,vSc);_.pf=function wSc(a,b){tSc(this,BD(a,135),b)};_.a=0;var u$=ldb(Sqe,'LevelHeightProcessor',1842);acb(1843,1,qie,xSc);_.Jc=function ySc(a){qeb(this,a)};_.Kc=function zSc(){return lmb(),Dmb(),Cmb};var t$=ldb(Sqe,'LevelHeightProcessor/1',1843);acb(1840,1,_me,CSc);_.pf=function DSc(a,b){ASc(this,BD(a,135),b)};_.a=0;var w$=ldb(Sqe,'NeighborsProcessor',1840);acb(1841,1,qie,ESc);_.Jc=function FSc(a){qeb(this,a)};_.Kc=function GSc(){return lmb(),Dmb(),Cmb};var v$=ldb(Sqe,'NeighborsProcessor/1',1841);acb(1844,1,_me,JSc);_.pf=function KSc(a,b){HSc(this,BD(a,135),b)};_.a=0;var x$=ldb(Sqe,'NodePositionProcessor',1844);acb(1838,1,_me,MSc);_.pf=function NSc(a,b){LSc(this,BD(a,135))};var y$=ldb(Sqe,'RootProcessor',1838);acb(1845,1,_me,PSc);_.pf=function QSc(a,b){OSc(BD(a,135))};var z$=ldb(Sqe,'Untreeifyer',1845);var RSc,SSc,TSc,USc,VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc;acb(850,1,Xke,oTc);_.Qe=function pTc(a){p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Vqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),mTc),(X5c(),R5c)),D$),oqb((J5c(),H5c)))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Wqe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),kTc),R5c),E$),oqb(H5c))));GTc((new HTc,a))};var jTc,kTc,lTc,mTc;var A$=ldb(Xqe,'MrTreeMetaDataProvider',850);acb(993,1,Xke,HTc);_.Qe=function ITc(a){GTc(a)};var qTc,rTc,sTc,tTc,uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc;var C$=ldb(Xqe,'MrTreeOptions',993);acb(994,1,{},JTc);_.$e=function KTc(){var a;return a=new DRc,a};_._e=function LTc(a){};var B$=ldb(Xqe,'MrTreeOptions/MrtreeFactory',994);acb(480,22,{3:1,35:1,22:1,480:1},PTc);var MTc,NTc;var D$=mdb(Xqe,'OrderWeighting',480,CI,RTc,QTc);var STc;acb(426,22,{3:1,35:1,22:1,426:1},XTc);var UTc,VTc;var E$=mdb(Xqe,'TreeifyingOrder',426,CI,ZTc,YTc);var $Tc;acb(1458,1,xqe,hUc);_.Yf=function iUc(a){return BD(a,135),aUc};_.pf=function jUc(a,b){gUc(this,BD(a,135),b)};var aUc;var F$=ldb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1458);acb(1459,1,xqe,oUc);_.Yf=function pUc(a){return BD(a,135),kUc};_.pf=function qUc(a,b){nUc(this,BD(a,135),b)};var kUc;var G$=ldb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1459);acb(1460,1,xqe,yUc);_.Yf=function zUc(a){return BD(a,135),rUc};_.pf=function AUc(a,b){wUc(this,BD(a,135),b)};_.a=0;var rUc;var H$=ldb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1460);acb(1461,1,xqe,EUc);_.Yf=function FUc(a){return BD(a,135),BUc};_.pf=function GUc(a,b){DUc(BD(a,135),b)};var BUc;var I$=ldb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1461);var HUc;acb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},NUc);_.Kf=function PUc(){return MUc(this)};_.Xf=function OUc(){return MUc(this)};var JUc,KUc;var J$=mdb($qe,'RadialLayoutPhases',495,CI,RUc,QUc);var SUc;acb(1130,209,Hle,VUc);_.Ze=function WUc(a,b){var c,d,e,f,g,h;c=UUc(this,a);Jdd(b,'Radial layout',c.c.length);Bcb(DD(ckd(a,(VWc(),MWc))))||ZCb((d=new $Cb((Kgd(),new Ygd(a))),d));h=YUc(a);ekd(a,(IUc(),HUc),h);if(!h){throw ubb(new Vdb('The given graph is not a tree!'))}e=Ddb(ED(ckd(a,RWc)));e==0&&(e=XUc(a));ekd(a,RWc,e);for(g=new nlb(UUc(this,a));g.a0&&f7c((ACb(c-1,b.length),b.charCodeAt(c-1)),ine)){--c}if(e>=c){throw ubb(new Vdb('The given string does not contain any numbers.'))}f=lfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw ubb(new Vdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Gcb(tfb(f[0]));this.b=Gcb(tfb(f[1]))}catch(a){a=tbb(a);if(JD(a,127)){d=a;throw ubb(new Vdb(jne+d))}else throw ubb(a)}};_.Ib=function i7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var l1=ldb(kne,'KVector',8);acb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,415:1},o7c,p7c,q7c);_.Pc=function t7c(){return n7c(this)};_.Jf=function r7c(b){var c,d,e,f,g,h;e=lfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Nsb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Gcb(e[d])):(h=Gcb(e[d]));g>0&&g%2!=0&&Csb(this,new b7c(f,h));++g}++d}}catch(a){a=tbb(a);if(JD(a,127)){c=a;throw ubb(new Vdb('The given string does not match the expected format for vectors.'+c))}else throw ubb(a)}};_.Ib=function u7c(){var a,b,c;a=new Vfb('(');b=Isb(this,0);while(b.b!=b.d.c){c=BD(Wsb(b),8);Pfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var k1=ldb(kne,'KVectorChain',74);acb(248,22,{3:1,35:1,22:1,248:1},C7c);var v7c,w7c,x7c,y7c,z7c,A7c;var n1=mdb(kse,'Alignment',248,CI,E7c,D7c);var F7c;acb(978,1,Xke,V7c);_.Qe=function W7c(a){U7c(a)};var H7c,I7c,J7c,K7c,L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c;var p1=ldb(kse,'BoxLayouterOptions',978);acb(979,1,{},X7c);_.$e=function Y7c(){var a;return a=new bed,a};_._e=function Z7c(a){};var o1=ldb(kse,'BoxLayouterOptions/BoxFactory',979);acb(290,22,{3:1,35:1,22:1,290:1},f8c);var $7c,_7c,a8c,b8c,c8c,d8c;var q1=mdb(kse,'ContentAlignment',290,CI,h8c,g8c);var i8c;acb(684,1,Xke,V9c);_.Qe=function W9c(a){p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,ose),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(X5c(),V5c)),ZI),oqb((J5c(),H5c)))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,pse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),U5c),D0),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Wpe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),m8c),R5c),n1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Wle),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,qse),''),'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."),U5c),k1),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,hqe),''),'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.'),t8c),S5c),q1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Vpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Acb(),false)),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,$pe),''),xle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),w8c),R5c),s1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,upe),''),'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.'),B8c),R5c),u1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Fre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,ppe),''),'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`."),G8c),R5c),y1),pqb(H5c,OC(GC(d1,1),Fie,175,0,[G5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Xle),''),'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."),c9c),U5c),i1),pqb(H5c,OC(GC(d1,1),Fie,175,0,[G5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,vme),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,tqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,yme),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,wme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),q9c),R5c),C1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,qqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),U5c),l1),pqb(G5c,OC(GC(d1,1),Fie,175,0,[I5c,F5c])))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,qme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),T5c),JI),pqb(G5c,OC(GC(d1,1),Fie,175,0,[E5c])))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,tme),''),'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).'),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,ume),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,iqe),''),'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.'),N8c),U5c),k1),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,lqe),''),'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),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,mqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,rse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),U5c),g1),pqb(H5c,OC(GC(d1,1),Fie,175,0,[F5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,rqe),''),'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."),P8c),U5c),h1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Tpe),''),'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),P5c),wI),pqb(G5c,OC(GC(d1,1),Fie,175,0,[E5c,I5c,F5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,sse),''),'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),Q5c),BI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,tse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,use),''),'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'."),leb(100)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,vse),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,wse),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),leb(4000)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,xse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),leb(400)),T5c),JI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,yse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,zse),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ase),''),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Bse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,nse),'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.'),q8c),R5c),N1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Hpe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ipe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ule),vpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Jpe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,sme),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Kpe),vpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Lpe),vpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ope),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Mpe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Npe),vpe),'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),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,rme),vpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ppe),vpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),Q5c),BI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Qpe),vpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),Q5c),BI),pqb(H5c,OC(GC(d1,1),Fie,175,0,[G5c])))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Rpe),vpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),U5c),h2),pqb(G5c,OC(GC(d1,1),Fie,175,0,[E5c,I5c,F5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,sqe),vpe),'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.'),S9c),U5c),h1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,pqe),Fse),'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).'),T5c),JI),pqb(H5c,OC(GC(d1,1),Fie,175,0,[G5c])))));k4c(a,pqe,oqe,g9c);p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,oqe),Fse),'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.'),e9c),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,_pe),Gse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),R8c),U5c),i1),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Bme),Gse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),T8c),S5c),A1),pqb(G5c,OC(GC(d1,1),Fie,175,0,[F5c])))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,cqe),Hse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),i9c),R5c),B1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,dqe),Hse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),R5c),B1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,eqe),Hse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),R5c),B1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,fqe),Hse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),R5c),B1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,gqe),Hse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),R5c),B1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ame),Ise),'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."),V8c),S5c),H1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,zme),Ise),'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.'),$8c),S5c),I1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ome),Ise),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),Y8c),U5c),l1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Zpe),Ise),'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),P5c),wI),oqb(H5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,jqe),Fpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),z8c),R5c),t1),oqb(F5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,xme),Fpe),'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),P5c),wI),oqb(F5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Cse),'font'),'Font Name'),'Font name used for a label.'),V5c),ZI),oqb(F5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Dse),'font'),'Font Size'),'Font size used for a label.'),T5c),JI),oqb(F5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,nqe),Jse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),U5c),l1),oqb(I5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,kqe),Jse),'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."),T5c),JI),oqb(I5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Upe),Jse),'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."),x9c),R5c),E1),oqb(I5c))));p4c(a,new l5c(B5c(A5c(C5c(v5c(z5c(w5c(x5c(new D5c,Spe),Jse),'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."),Q5c),BI),oqb(I5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Cme),Kse),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),u9c),S5c),D1),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,aqe),Kse),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,bqe),Kse),'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),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Xpe),Lse),'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),P5c),wI),oqb(G5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ype),Lse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),P5c),wI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Vle),'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),Q5c),BI),oqb(E5c))));p4c(a,new l5c(B5c(A5c(C5c(u5c(v5c(z5c(w5c(x5c(new D5c,Ese),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),D8c),R5c),v1),oqb(E5c))));o4c(a,new S3c(Z3c(_3c($3c(new a4c,nne),'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,pme),'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,Zqe),'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,'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.')));o4c(a,new S3c(Z3c(_3c($3c(new a4c,ore),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));Wad((new Xad,a));U7c((new V7c,a));edd((new fdd,a))};var k8c,l8c,m8c,n8c,o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c;var r1=ldb(kse,'CoreOptions',684);acb(103,22,{3:1,35:1,22:1,103:1},ead);var X9c,Y9c,Z9c,$9c,_9c;var s1=mdb(kse,xle,103,CI,gad,fad);var had;acb(272,22,{3:1,35:1,22:1,272:1},nad);var jad,kad,lad;var t1=mdb(kse,'EdgeLabelPlacement',272,CI,pad,oad);var qad;acb(218,22,{3:1,35:1,22:1,218:1},xad);var sad,tad,uad,vad;var u1=mdb(kse,'EdgeRouting',218,CI,zad,yad);var Aad;acb(312,22,{3:1,35:1,22:1,312:1},Jad);var Cad,Dad,Ead,Fad,Gad,Had;var v1=mdb(kse,'EdgeType',312,CI,Lad,Kad);var Mad;acb(976,1,Xke,Xad);_.Qe=function Yad(a){Wad(a)};var Oad,Pad,Qad,Rad,Sad,Tad,Uad;var x1=ldb(kse,'FixedLayouterOptions',976);acb(977,1,{},Zad);_.$e=function $ad(){var a;return a=new Ufd,a};_._e=function _ad(a){};var w1=ldb(kse,'FixedLayouterOptions/FixedFactory',977);acb(334,22,{3:1,35:1,22:1,334:1},ebd);var abd,bbd,cbd;var y1=mdb(kse,'HierarchyHandling',334,CI,gbd,fbd);var hbd;acb(284,22,{3:1,35:1,22:1,284:1},pbd);var jbd,kbd,lbd,mbd;var z1=mdb(kse,'LabelSide',284,CI,rbd,qbd);var sbd;acb(93,22,{3:1,35:1,22:1,93:1},Ebd);var ubd,vbd,wbd,xbd,ybd,zbd,Abd,Bbd,Cbd;var A1=mdb(kse,'NodeLabelPlacement',93,CI,Hbd,Gbd);var Ibd;acb(249,22,{3:1,35:1,22:1,249:1},Qbd);var Kbd,Lbd,Mbd,Nbd,Obd;var B1=mdb(kse,'PortAlignment',249,CI,Sbd,Rbd);var Tbd;acb(98,22,{3:1,35:1,22:1,98:1},ccd);var Vbd,Wbd,Xbd,Ybd,Zbd,$bd;var C1=mdb(kse,'PortConstraints',98,CI,ecd,dcd);var fcd;acb(291,22,{3:1,35:1,22:1,291:1},ncd);var hcd,icd,jcd,kcd,lcd;var D1=mdb(kse,'PortLabelPlacement',291,CI,rcd,qcd);var scd;acb(61,22,{3:1,35:1,22:1,61:1},Tcd);var ucd,vcd,wcd,xcd,ycd,zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd;var E1=mdb(kse,'PortSide',61,CI,Wcd,Vcd);var Xcd;acb(980,1,Xke,fdd);_.Qe=function gdd(a){edd(a)};var Zcd,$cd,_cd,bdd,cdd;var G1=ldb(kse,'RandomLayouterOptions',980);acb(981,1,{},hdd);_.$e=function idd(){var a;return a=new Hgd,a};_._e=function jdd(a){};var F1=ldb(kse,'RandomLayouterOptions/RandomFactory',981);acb(373,22,{3:1,35:1,22:1,373:1},pdd);var kdd,ldd,mdd,ndd;var H1=mdb(kse,'SizeConstraint',373,CI,rdd,qdd);var sdd;acb(259,22,{3:1,35:1,22:1,259:1},Edd);var udd,vdd,wdd,xdd,ydd,zdd,Add,Bdd,Cdd;var I1=mdb(kse,'SizeOptions',259,CI,Gdd,Fdd);var Hdd;acb(369,1,{1948:1},Udd);_.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 K1=ldb(uqe,'BasicProgressMonitor',369);acb(971,209,Hle,bed);_.Ze=function fed(a,b){var c,d,e,f,g,h,i,j,k;Jdd(b,'Box layout',2);e=Fdb(ED(ckd(a,(T7c(),S7c))));f=BD(ckd(a,P7c),116);c=Bcb(DD(ckd(a,K7c)));d=Bcb(DD(ckd(a,L7c)));switch(BD(ckd(a,I7c),311).g){case 0:g=(h=new Skb((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a)),lmb(),Nkb(h,new hed(d)),h);i=mfd(a);j=ED(ckd(a,H7c));(j==null||(tCb(j),j)<=0)&&(j=1.3);k=$dd(g,e,f,i.a,i.b,c,(tCb(j),j));vfd(a,k.a,k.b,false,true);break;default:_dd(a,e,f,c);}Ldd(b)};var R1=ldb(uqe,'BoxLayoutProvider',971);acb(972,1,yke,hed);_.ue=function ied(a,b){return ged(this,BD(a,33),BD(b,33))};_.Fb=function jed(a){return this===a};_.ve=function ked(){return new spb(this)};_.a=false;var L1=ldb(uqe,'BoxLayoutProvider/1',972);acb(157,1,{157:1},red,sed);_.Ib=function ted(){return this.c?Wod(this.c):Fe(this.b)};var M1=ldb(uqe,'BoxLayoutProvider/Group',157);acb(311,22,{3:1,35:1,22:1,311:1},zed);var ued,ved,wed,xed;var N1=mdb(uqe,'BoxLayoutProvider/PackingMode',311,CI,Bed,Aed);var Ced;acb(973,1,yke,Eed);_.ue=function Fed(a,b){return ced(BD(a,157),BD(b,157))};_.Fb=function Ged(a){return this===a};_.ve=function Hed(){return new spb(this)};var O1=ldb(uqe,'BoxLayoutProvider/lambda$0$Type',973);acb(974,1,yke,Ied);_.ue=function Jed(a,b){return ded(BD(a,157),BD(b,157))};_.Fb=function Ked(a){return this===a};_.ve=function Led(){return new spb(this)};var P1=ldb(uqe,'BoxLayoutProvider/lambda$1$Type',974);acb(975,1,yke,Med);_.ue=function Ned(a,b){return eed(BD(a,157),BD(b,157))};_.Fb=function Oed(a){return this===a};_.ve=function Ped(){return new spb(this)};var Q1=ldb(uqe,'BoxLayoutProvider/lambda$2$Type',975);acb(1364,1,{830:1},Qed);_.pg=function Red(a,b){return Tyc(),!JD(b,160)||b2c((U1c(),T1c,BD(a,160)),b)};var S1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1364);acb(1365,1,lie,Sed);_.td=function Ted(a){Wyc(this.a,BD(a,146))};var T1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1365);acb(1366,1,lie,Ued);_.td=function Ved(a){BD(a,94);Tyc()};var U1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1366);acb(1370,1,lie,Wed);_.td=function Xed(a){Xyc(this.a,BD(a,94))};var V1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1370);acb(1368,1,Jie,Yed);_.Mb=function Zed(a){return Yyc(this.a,this.b,BD(a,146))};var W1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1368);acb(1367,1,Jie,$ed);_.Mb=function _ed(a){return $yc(this.a,this.b,BD(a,830))};var X1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1367);acb(1369,1,lie,afd);_.td=function bfd(a){Zyc(this.a,this.b,BD(a,146))};var Y1=ldb(uqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1369);acb(934,1,{},Cfd);_.Kb=function Dfd(a){return Bfd(a)};_.Fb=function Efd(a){return this===a};var $1=ldb(uqe,'ElkUtil/lambda$0$Type',934);acb(935,1,lie,Ffd);_.td=function Gfd(a){pfd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var _1=ldb(uqe,'ElkUtil/lambda$1$Type',935);acb(936,1,lie,Hfd);_.td=function Ifd(a){qfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var a2=ldb(uqe,'ElkUtil/lambda$2$Type',936);acb(937,1,lie,Jfd);_.td=function Kfd(a){rfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var b2=ldb(uqe,'ElkUtil/lambda$3$Type',937);acb(938,1,lie,Lfd);_.td=function Mfd(a){sfd(this.a,BD(a,469))};var c2=ldb(uqe,'ElkUtil/lambda$4$Type',938);acb(341,1,{35:1,341:1},Ofd);_.wd=function Pfd(a){return Nfd(this,BD(a,236))};_.Fb=function Qfd(a){var b;if(JD(a,341)){b=BD(a,341);return this.a==b.a}return false};_.Hb=function Rfd(){return QD(this.a)};_.Ib=function Sfd(){return this.a+' (exclusive)'};_.a=0;var d2=ldb(uqe,'ExclusiveBounds/ExclusiveLowerBound',341);acb(1137,209,Hle,Ufd);_.Ze=function Vfd(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;Jdd(b,'Fixed Layout',1);f=BD(ckd(a,(U9c(),A8c)),218);l=0;m=0;for(s=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(yyd(s),33);B=BD(ckd(q,(Vad(),Uad)),8);if(B){Ykd(q,B.a,B.b);if(BD(ckd(q,Pad),174).Hc((odd(),kdd))){n=BD(ckd(q,Rad),8);n.a>0&&n.b>0&&vfd(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 Ayd((!q.n&&(q.n=new ZTd(C2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(yyd(j),137);B=BD(ckd(h,Uad),8);!!B&&Ykd(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 Ayd((!q.c&&(q.c=new ZTd(E2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(yyd(v),118);B=BD(ckd(u,Uad),8);!!B&&Ykd(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 Ayd((!u.n&&(u.n=new ZTd(C2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(yyd(i),137);B=BD(ckd(h,Uad),8);!!B&&Ykd(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 Sr(ur(Wsd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Tfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur(Vsd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Sod(etd(c))!=a){k=Tfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(wad(),sad)){for(r=new Ayd((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(yyd(r),33);for(d=new Sr(ur(Wsd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=kfd(c);g.b==0?ekd(c,M8c,null):ekd(c,M8c,g)}}}if(!Bcb(DD(ckd(a,(Vad(),Qad))))){t=BD(ckd(a,Sad),116);p=l+t.b+t.c;o=m+t.d+t.a;vfd(a,p,o,true,true)}Ldd(b)};var e2=ldb(uqe,'FixedLayoutProvider',1137);acb(372,134,{3:1,415:1,372:1,94:1,134:1},Wfd,Xfd);_.Jf=function $fd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=lfb(b,';,;');for(g=j,h=0,i=g.length;h>16&Xie|b^d<<16};_.Kc=function ugd(){return new wgd(this)};_.Ib=function vgd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+ecb(this.b)+')':this.b==null?'pair('+ecb(this.a)+',null)':'pair('+ecb(this.a)+','+ecb(this.b)+')'};var m2=ldb(uqe,'Pair',46);acb(982,1,Xhe,wgd);_.Nb=function xgd(a){Qrb(this,a)};_.Ob=function ygd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function zgd(){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 ubb(new ttb)};_.Qb=function Agd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw ubb(new Xdb)};_.b=false;_.c=false;var l2=ldb(uqe,'Pair/1',982);acb(449,1,{449:1},Bgd);_.Fb=function Cgd(a){return vtb(this.a,BD(a,449).a)&&vtb(this.c,BD(a,449).c)&&vtb(this.d,BD(a,449).d)&&vtb(this.b,BD(a,449).b)};_.Hb=function Dgd(){return Glb(OC(GC(SI,1),Phe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Egd(){return '('+this.a+Nhe+this.c+Nhe+this.d+Nhe+this.b+')'};var n2=ldb(uqe,'Quadruple',449);acb(1125,209,Hle,Hgd);_.Ze=function Igd(a,b){var c,d,e,f,g;Jdd(b,'Random Layout',1);if((!a.a&&(a.a=new ZTd(D2,a,10,11)),a.a).i==0){Ldd(b);return}f=BD(ckd(a,(ddd(),bdd)),19);!!f&&f.a!=0?(e=new Gub(f.a)):(e=new Fub);c=Fdb(ED(ckd(a,Zcd)));g=Fdb(ED(ckd(a,cdd)));d=BD(ckd(a,$cd),116);Ggd(a,e,c,g,d);Ldd(b)};var o2=ldb(uqe,'RandomLayoutProvider',1125);var Jgd;acb(553,1,{});_.qf=function Ngd(){return new b7c(this.f.i,this.f.j)};_.We=function Ogd(a){if(Esd(a,(U9c(),o9c))){return ckd(this.f,Lgd)}return ckd(this.f,a)};_.rf=function Pgd(){return new b7c(this.f.g,this.f.f)};_.sf=function Qgd(){return this.g};_.Xe=function Rgd(a){return dkd(this.f,a)};_.tf=function Sgd(a){$kd(this.f,a.a);_kd(this.f,a.b)};_.uf=function Tgd(a){Zkd(this.f,a.a);Xkd(this.f,a.b)};_.vf=function Ugd(a){this.g=a};_.g=0;var Lgd;var p2=ldb(Qse,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);acb(554,1,{838:1},Vgd);_.wf=function Wgd(){var a,b;if(!this.b){this.b=Qu(Fkd(this.a).i);for(b=new Ayd(Fkd(this.a));b.e!=b.i.gc();){a=BD(yyd(b),137);Dkb(this.b,new $gd(a))}}return this.b};_.b=null;var q2=ldb(Qse,'ElkGraphAdapters/ElkEdgeAdapter',554);acb(301,553,{},Ygd);_.xf=function Zgd(){return Xgd(this)};_.a=null;var r2=ldb(Qse,'ElkGraphAdapters/ElkGraphAdapter',301);acb(630,553,{181:1},$gd);var s2=ldb(Qse,'ElkGraphAdapters/ElkLabelAdapter',630);acb(629,553,{680:1},chd);_.wf=function fhd(){return _gd(this)};_.Af=function ghd(){var a;return a=BD(ckd(this.f,(U9c(),O8c)),142),!a&&(a=new G_b),a};_.Cf=function ihd(){return ahd(this)};_.Ef=function khd(a){var b;b=new J_b(a);ekd(this.f,(U9c(),O8c),b)};_.Ff=function lhd(a){ekd(this.f,(U9c(),b9c),new q0b(a))};_.yf=function dhd(){return this.d};_.zf=function ehd(){var a,b;if(!this.a){this.a=new Qkb;for(b=new Sr(ur(Vsd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Dkb(this.a,new Vgd(a))}}return this.a};_.Bf=function hhd(){var a,b;if(!this.c){this.c=new Qkb;for(b=new Sr(ur(Wsd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Dkb(this.c,new Vgd(a))}}return this.c};_.Df=function jhd(){return Qod(BD(this.f,33)).i!=0||Bcb(DD(BD(this.f,33).We((U9c(),I8c))))};_.Gf=function mhd(){bhd(this,(Kgd(),Jgd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var t2=ldb(Qse,'ElkGraphAdapters/ElkNodeAdapter',629);acb(1265,553,{837:1},ohd);_.wf=function qhd(){return nhd(this)};_.zf=function phd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).wg().i);for(b=new Ayd(BD(this.f,118).wg());b.e!=b.i.gc();){a=BD(yyd(b),79);Dkb(this.a,new Vgd(a))}}return this.a};_.Bf=function rhd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).xg().i);for(b=new Ayd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(yyd(b),79);Dkb(this.c,new Vgd(a))}}return this.c};_.Hf=function shd(){return BD(BD(this.f,118).We((U9c(),w9c)),61)};_.If=function thd(){var a,b,c,d,e,f,g,h;d=hpd(BD(this.f,118));for(c=new Ayd(BD(this.f,118).xg());c.e!=c.i.gc();){a=BD(yyd(c),79);for(h=new Ayd((!a.c&&(a.c=new t5d(y2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(yyd(h),82);if(itd(Xsd(g),d)){return true}else if(Xsd(g)==d&&Bcb(DD(ckd(a,(U9c(),J8c))))){return true}}}for(b=new Ayd(BD(this.f,118).wg());b.e!=b.i.gc();){a=BD(yyd(b),79);for(f=new Ayd((!a.b&&(a.b=new t5d(y2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(yyd(f),82);if(itd(Xsd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var u2=ldb(Qse,'ElkGraphAdapters/ElkPortAdapter',1265);acb(1266,1,yke,vhd);_.ue=function whd(a,b){return uhd(BD(a,118),BD(b,118))};_.Fb=function xhd(a){return this===a};_.ve=function yhd(){return new spb(this)};var v2=ldb(Qse,'ElkGraphAdapters/PortComparator',1266);var l5=ndb(Rse,'EObject');var w2=ndb(Sse,Tse);var x2=ndb(Sse,Use);var B2=ndb(Sse,Vse);var F2=ndb(Sse,'ElkShape');var y2=ndb(Sse,Wse);var A2=ndb(Sse,Xse);var z2=ndb(Sse,Yse);var j5=ndb(Rse,Zse);var h5=ndb(Rse,'EFactory');var zhd;var k5=ndb(Rse,$se);var n5=ndb(Rse,'EPackage');var Bhd;var Dhd,Ehd,Fhd,Ghd,Hhd,Ihd,Jhd,Khd,Lhd,Mhd,Nhd;var C2=ndb(Sse,_se);var D2=ndb(Sse,ate);var E2=ndb(Sse,bte);acb(90,1,cte);_.Ig=function Qhd(){this.Jg();return null};_.Jg=function Rhd(){return null};_.Kg=function Shd(){return this.Jg(),false};_.Lg=function Thd(){return false};_.Mg=function Uhd(a){Phd(this,a)};var a4=ldb(dte,'BasicNotifierImpl',90);acb(97,90,lte);_.mh=function ajd(){return jid(this)};_.Ng=function Aid(a,b){return a};_.Og=function Bid(){throw ubb(new agb)};_.Pg=function Cid(a){var b;return b=uUd(BD(SKd(this.Sg(),this.Ug()),18)),this.dh().hh(this,b.n,b.f,a)};_.Qg=function Did(a,b){throw ubb(new agb)};_.Rg=function Eid(a,b,c){return Whd(this,a,b,c)};_.Sg=function Fid(){var a;if(this.Og()){a=this.Og().bk();if(a){return a}}return this.yh()};_.Tg=function Gid(){return Xhd(this)};_.Ug=function Hid(){throw ubb(new agb)};_.Vg=function Jid(){var a,b;b=this.oh().ck();!b&&this.Og().hk(b=(iRd(),a=kNd(OKd(this.Sg())),a==null?hRd:new lRd(this,a)));return b};_.Wg=function Lid(a,b){return a};_.Xg=function Mid(a){var b;b=a.Fj();return !b?YKd(this.Sg(),a):a._i()};_.Yg=function Nid(){var a;a=this.Og();return !a?null:a.ek()};_.Zg=function Oid(){return !this.Og()?null:this.Og().bk()};_.$g=function Pid(a,b,c){return aid(this,a,b,c)};_._g=function Qid(a){return bid(this,a)};_.ah=function Rid(a,b){return cid(this,a,b)};_.bh=function Sid(){var a;a=this.Og();return !!a&&a.fk()};_.dh=function Tid(){throw ubb(new agb)};_.eh=function Uid(){return eid(this)};_.fh=function Vid(a,b,c,d){return fid(this,a,b,d)};_.gh=function Wid(a,b,c){var d;return d=BD(SKd(this.Sg(),b),66),d.Mj().Pj(this,this.xh(),b-this.zh(),a,c)};_.hh=function Xid(a,b,c,d){return gid(this,a,b,d)};_.ih=function Yid(a,b,c){var d;return d=BD(SKd(this.Sg(),b),66),d.Mj().Qj(this,this.xh(),b-this.zh(),a,c)};_.jh=function Zid(){return !!this.Og()&&!!this.Og().dk()};_.kh=function $id(a){return hid(this,a)};_.lh=function _id(a){return iid(this,a)};_.nh=function bjd(a){return mid(this,a)};_.oh=function cjd(){throw ubb(new agb)};_.ph=function djd(){return !this.Og()?null:this.Og().dk()};_.qh=function ejd(){return eid(this)};_.rh=function fjd(a,b){tid(this,a,b)};_.sh=function gjd(a){this.oh().gk(a)};_.th=function hjd(a){this.oh().jk(a)};_.uh=function ijd(a){this.oh().ik(a)};_.vh=function jjd(a,b){var c,d,e,f;f=this.Yg();if(!!f&&!!a){b=Oxd(f.Uk(),this,b);f.Yk(this)}d=this.dh();if(d){if((Iid(this,this.dh(),this.Ug()).Bb&Oje)!=0){e=d.eh();!!e&&(!a?e.Xk(this):!f&&e.Yk(this))}else{b=(c=this.Ug(),c>=0?this.Pg(b):this.dh().hh(this,-1-c,null,b));b=this.Rg(null,-1,b)}}this.th(a);return b};_.wh=function kjd(a){var b,c,d,e,f,g,h,i;c=this.Sg();f=YKd(c,a);b=this.zh();if(f>=b){return BD(a,66).Mj().Tj(this,this.xh(),f-b)}else if(f<=-1){g=_0d((J6d(),H6d),c,a);if(g){L6d();BD(g,66).Nj()||(g=W1d(l1d(H6d,g)));e=(d=this.Xg(g),BD(d>=0?this.$g(d,true,true):nid(this,g,true),153));i=g.Yj();if(i>1||i==-1){return BD(BD(e,215).gl(a,false),76)}}else{throw ubb(new Vdb(ete+a.ne()+hte))}}else if(a.Zj()){return d=this.Xg(a),BD(d>=0?this.$g(d,false,true):nid(this,a,false),76)}h=new iGd(this,a);return h};_.xh=function ljd(){return vid(this)};_.yh=function mjd(){return (IFd(),HFd).S};_.zh=function njd(){return XKd(this.yh())};_.Ah=function ojd(a){xid(this,a)};_.Ib=function pjd(){return zid(this)};var A5=ldb(mte,'BasicEObjectImpl',97);var uFd;acb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Bh=function yjd(a){var b;b=sjd(this);return b[a]};_.Ch=function zjd(a,b){var c;c=sjd(this);NC(c,a,b)};_.Dh=function Ajd(a){var b;b=sjd(this);NC(b,a,null)};_.Ig=function Bjd(){return BD(vjd(this,4),125)};_.Jg=function Cjd(){throw ubb(new agb)};_.Kg=function Djd(){return (this.Db&4)!=0};_.Og=function Ejd(){throw ubb(new agb)};_.Eh=function Fjd(a){xjd(this,2,a)};_.Qg=function Gjd(a,b){this.Db=b<<16|this.Db&255;this.Eh(a)};_.Sg=function Hjd(){return rjd(this)};_.Ug=function Ijd(){return this.Db>>16};_.Vg=function Jjd(){var a,b;return iRd(),b=kNd(OKd((a=BD(vjd(this,16),26),!a?this.yh():a))),b==null?(null,hRd):new lRd(this,b)};_.Lg=function Kjd(){return (this.Db&1)==0};_.Yg=function Ljd(){return BD(vjd(this,128),1934)};_.Zg=function Mjd(){return BD(vjd(this,16),26)};_.bh=function Njd(){return (this.Db&32)!=0};_.dh=function Ojd(){return BD(vjd(this,2),49)};_.jh=function Pjd(){return (this.Db&64)!=0};_.oh=function Qjd(){throw ubb(new agb)};_.ph=function Rjd(){return BD(vjd(this,64),280)};_.sh=function Sjd(a){xjd(this,16,a)};_.th=function Tjd(a){xjd(this,128,a)};_.uh=function Ujd(a){xjd(this,64,a)};_.xh=function Vjd(){return tjd(this)};_.Db=0;var r8=ldb(mte,'MinimalEObjectImpl',114);acb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Eh=function Wjd(a){this.Cb=a};_.dh=function Xjd(){return this.Cb};var q8=ldb(mte,'MinimalEObjectImpl/Container',115);acb(1984,115,{105:1,414:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.$g=function fkd(a,b,c){return Yjd(this,a,b,c)};_.ih=function gkd(a,b,c){return Zjd(this,a,b,c)};_.kh=function hkd(a){return $jd(this,a)};_.rh=function ikd(a,b){_jd(this,a,b)};_.yh=function jkd(){return Ohd(),Nhd};_.Ah=function kkd(a){akd(this,a)};_.Ve=function lkd(){return bkd(this)};_.We=function mkd(a){return ckd(this,a)};_.Xe=function nkd(a){return dkd(this,a)};_.Ye=function okd(a,b){return ekd(this,a,b)};var G2=ldb(nte,'EMapPropertyHolderImpl',1984);acb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},skd);_.$g=function tkd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return aid(this,a,b,c)};_.kh=function ukd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return hid(this,a)};_.rh=function vkd(a,b){switch(a){case 0:qkd(this,Ddb(ED(b)));return;case 1:rkd(this,Ddb(ED(b)));return;}tid(this,a,b)};_.yh=function wkd(){return Ohd(),Dhd};_.Ah=function xkd(a){switch(a){case 0:qkd(this,0);return;case 1:rkd(this,0);return;}xid(this,a)};_.Ib=function ykd(){var a;if((this.Db&64)!=0)return zid(this);a=new Ifb(zid(this));a.a+=' (x: ';Afb(a,this.a);a.a+=', y: ';Afb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var H2=ldb(nte,'ElkBendPointImpl',567);acb(723,1984,{105:1,414:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.$g=function Ikd(a,b,c){return zkd(this,a,b,c)};_.gh=function Jkd(a,b,c){return Akd(this,a,b,c)};_.ih=function Kkd(a,b,c){return Bkd(this,a,b,c)};_.kh=function Lkd(a){return Ckd(this,a)};_.rh=function Mkd(a,b){Dkd(this,a,b)};_.yh=function Nkd(){return Ohd(),Hhd};_.Ah=function Okd(a){Ekd(this,a)};_.yg=function Pkd(){return this.k};_.zg=function Qkd(){return Fkd(this)};_.Ib=function Rkd(){return Hkd(this)};_.k=null;var L2=ldb(nte,'ElkGraphElementImpl',723);acb(724,723,{105:1,414:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.$g=function bld(a,b,c){return Skd(this,a,b,c)};_.kh=function cld(a){return Tkd(this,a)};_.rh=function dld(a,b){Ukd(this,a,b)};_.yh=function eld(){return Ohd(),Mhd};_.Ah=function fld(a){Vkd(this,a)};_.Ag=function gld(){return this.f};_.Bg=function hld(){return this.g};_.Cg=function ild(){return this.i};_.Dg=function jld(){return this.j};_.Eg=function kld(a,b){Wkd(this,a,b)};_.Fg=function lld(a,b){Ykd(this,a,b)};_.Gg=function mld(a){$kd(this,a)};_.Hg=function nld(a){_kd(this,a)};_.Ib=function old(){return ald(this)};_.f=0;_.g=0;_.i=0;_.j=0;var S2=ldb(nte,'ElkShapeImpl',724);acb(725,724,{105:1,414:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.$g=function wld(a,b,c){return pld(this,a,b,c)};_.gh=function xld(a,b,c){return qld(this,a,b,c)};_.ih=function yld(a,b,c){return rld(this,a,b,c)};_.kh=function zld(a){return sld(this,a)};_.rh=function Ald(a,b){tld(this,a,b)};_.yh=function Bld(){return Ohd(),Ehd};_.Ah=function Cld(a){uld(this,a)};_.wg=function Dld(){return !this.d&&(this.d=new t5d(A2,this,8,5)),this.d};_.xg=function Eld(){return !this.e&&(this.e=new t5d(A2,this,7,4)),this.e};var I2=ldb(nte,'ElkConnectableShapeImpl',725);acb(351,723,{105:1,414:1,79:1,160:1,351:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Old);_.Pg=function Pld(a){return Gld(this,a)};_.$g=function Qld(a,b,c){switch(a){case 3:return Hld(this);case 4:return !this.b&&(this.b=new t5d(y2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new t5d(y2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new ZTd(z2,this,6,6)),this.a;case 7:return Acb(),!this.b&&(this.b=new t5d(y2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new t5d(y2,this,5,8)),this.c.i<=1)?false:true;case 8:return Acb(),Kld(this)?true:false;case 9:return Acb(),Lld(this)?true:false;case 10:return Acb(),!this.b&&(this.b=new t5d(y2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new t5d(y2,this,5,8)),this.c.i!=0)?true:false;}return zkd(this,a,b,c)};_.gh=function Rld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Gld(this,c):this.Cb.hh(this,-1-d,null,c)));return Fld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new t5d(y2,this,4,7)),Nxd(this.b,a,c);case 5:return !this.c&&(this.c=new t5d(y2,this,5,8)),Nxd(this.c,a,c);case 6:return !this.a&&(this.a=new ZTd(z2,this,6,6)),Nxd(this.a,a,c);}return Akd(this,a,b,c)};_.ih=function Sld(a,b,c){switch(b){case 3:return Fld(this,null,c);case 4:return !this.b&&(this.b=new t5d(y2,this,4,7)),Oxd(this.b,a,c);case 5:return !this.c&&(this.c=new t5d(y2,this,5,8)),Oxd(this.c,a,c);case 6:return !this.a&&(this.a=new ZTd(z2,this,6,6)),Oxd(this.a,a,c);}return Bkd(this,a,b,c)};_.kh=function Tld(a){switch(a){case 3:return !!Hld(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 t5d(y2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new t5d(y2,this,5,8)),this.c.i<=1));case 8:return Kld(this);case 9:return Lld(this);case 10:return !this.b&&(this.b=new t5d(y2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new t5d(y2,this,5,8)),this.c.i!=0);}return Ckd(this,a)};_.rh=function Uld(a,b){switch(a){case 3:Mld(this,BD(b,33));return;case 4:!this.b&&(this.b=new t5d(y2,this,4,7));Pxd(this.b);!this.b&&(this.b=new t5d(y2,this,4,7));ttd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new t5d(y2,this,5,8));Pxd(this.c);!this.c&&(this.c=new t5d(y2,this,5,8));ttd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new ZTd(z2,this,6,6));Pxd(this.a);!this.a&&(this.a=new ZTd(z2,this,6,6));ttd(this.a,BD(b,14));return;}Dkd(this,a,b)};_.yh=function Vld(){return Ohd(),Fhd};_.Ah=function Wld(a){switch(a){case 3:Mld(this,null);return;case 4:!this.b&&(this.b=new t5d(y2,this,4,7));Pxd(this.b);return;case 5:!this.c&&(this.c=new t5d(y2,this,5,8));Pxd(this.c);return;case 6:!this.a&&(this.a=new ZTd(z2,this,6,6));Pxd(this.a);return;}Ekd(this,a)};_.Ib=function Xld(){return Nld(this)};var J2=ldb(nte,'ElkEdgeImpl',351);acb(440,1984,{105:1,414:1,202:1,440:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},mmd);_.Pg=function nmd(a){return Zld(this,a)};_.$g=function omd(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 sMd(x2,this,5)),this.a;case 6:return amd(this);case 7:if(b)return _ld(this);return this.i;case 8:if(b)return $ld(this);return this.f;case 9:return !this.g&&(this.g=new t5d(z2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new t5d(z2,this,10,9)),this.e;case 11:return this.d;}return Yjd(this,a,b,c)};_.gh=function pmd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Zld(this,c):this.Cb.hh(this,-1-e,null,c)));return Yld(this,BD(a,79),c);case 9:return !this.g&&(this.g=new t5d(z2,this,9,10)),Nxd(this.g,a,c);case 10:return !this.e&&(this.e=new t5d(z2,this,10,9)),Nxd(this.e,a,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(Ohd(),Ghd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((Ohd(),Ghd)),a,c)};_.ih=function qmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new sMd(x2,this,5)),Oxd(this.a,a,c);case 6:return Yld(this,null,c);case 9:return !this.g&&(this.g=new t5d(z2,this,9,10)),Oxd(this.g,a,c);case 10:return !this.e&&(this.e=new t5d(z2,this,10,9)),Oxd(this.e,a,c);}return Zjd(this,a,b,c)};_.kh=function rmd(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 !!amd(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 $jd(this,a)};_.rh=function smd(a,b){switch(a){case 1:jmd(this,Ddb(ED(b)));return;case 2:kmd(this,Ddb(ED(b)));return;case 3:cmd(this,Ddb(ED(b)));return;case 4:dmd(this,Ddb(ED(b)));return;case 5:!this.a&&(this.a=new sMd(x2,this,5));Pxd(this.a);!this.a&&(this.a=new sMd(x2,this,5));ttd(this.a,BD(b,14));return;case 6:hmd(this,BD(b,79));return;case 7:gmd(this,BD(b,82));return;case 8:fmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new t5d(z2,this,9,10));Pxd(this.g);!this.g&&(this.g=new t5d(z2,this,9,10));ttd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new t5d(z2,this,10,9));Pxd(this.e);!this.e&&(this.e=new t5d(z2,this,10,9));ttd(this.e,BD(b,14));return;case 11:emd(this,GD(b));return;}_jd(this,a,b)};_.yh=function tmd(){return Ohd(),Ghd};_.Ah=function umd(a){switch(a){case 1:jmd(this,0);return;case 2:kmd(this,0);return;case 3:cmd(this,0);return;case 4:dmd(this,0);return;case 5:!this.a&&(this.a=new sMd(x2,this,5));Pxd(this.a);return;case 6:hmd(this,null);return;case 7:gmd(this,null);return;case 8:fmd(this,null);return;case 9:!this.g&&(this.g=new t5d(z2,this,9,10));Pxd(this.g);return;case 10:!this.e&&(this.e=new t5d(z2,this,10,9));Pxd(this.e);return;case 11:emd(this,null);return;}akd(this,a)};_.Ib=function vmd(){return lmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var K2=ldb(nte,'ElkEdgeSectionImpl',440);acb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.$g=function zmd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab}return Yhd(this,a-XKd(this.yh()),SKd((d=BD(vjd(this,16),26),!d?this.yh():d),a),b,c)};_.gh=function Amd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c)}return e=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),e.Mj().Pj(this,tjd(this),b-XKd(this.yh()),a,c)};_.ih=function Bmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c)}return e=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),e.Mj().Qj(this,tjd(this),b-XKd(this.yh()),a,c)};_.kh=function Cmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return Zhd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.nh=function Dmd(a){return wmd(this,a)};_.rh=function Emd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;}$hd(this,a-XKd(this.yh()),SKd((c=BD(vjd(this,16),26),!c?this.yh():c),a),b)};_.th=function Fmd(a){xjd(this,128,a)};_.yh=function Gmd(){return eGd(),UFd};_.Ah=function Hmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;}_hd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.Fh=function Imd(){this.Bb|=1};_.Gh=function Jmd(a){return ymd(this,a)};_.Bb=0;var e6=ldb(mte,'EModelElementImpl',150);acb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},Vmd);_.Hh=function Wmd(a,b){return Qmd(this,a,b)};_.Ih=function Xmd(a){var b,c,d,e,f;if(this.a!=YJd(a)||(a.Bb&256)!=0){throw ubb(new Vdb(tte+a.zb+qte))}for(d=WKd(a);QKd(d.a).i!=0;){c=BD(iOd(d,0,(b=BD(lud(QKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(eGd(),WFd))),26);if($Jd(c)){e=YJd(c).Mh().Ih(c);BD(e,49).sh(a);return e}d=WKd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new gHd(a):new WGd(a)};_.Jh=function Ymd(a,b){return Rmd(this,a,b)};_.$g=function Zmd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.a;}return Yhd(this,a-XKd((eGd(),RFd)),SKd((d=BD(vjd(this,16),26),!d?RFd:d),a),b,c)};_.gh=function $md(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).hh(this,4,n5,c));return Omd(this,BD(a,235),c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),RFd):d),b),66),e.Mj().Pj(this,tjd(this),b-XKd((eGd(),RFd)),a,c)};_.ih=function _md(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 1:return Omd(this,null,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),RFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),RFd)),a,c)};_.kh=function and(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return Zhd(this,a-XKd((eGd(),RFd)),SKd((b=BD(vjd(this,16),26),!b?RFd:b),a))};_.rh=function bnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:Tmd(this,BD(b,235));return;}$hd(this,a-XKd((eGd(),RFd)),SKd((c=BD(vjd(this,16),26),!c?RFd:c),a),b)};_.yh=function cnd(){return eGd(),RFd};_.Ah=function dnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:Tmd(this,null);return;}_hd(this,a-XKd((eGd(),RFd)),SKd((b=BD(vjd(this,16),26),!b?RFd:b),a))};var Kmd,Lmd,Mmd;var c6=ldb(mte,'EFactoryImpl',704);acb(1023,704,{105:1,2013:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},fnd);_.Hh=function gnd(a,b){switch(a.xj()){case 12:return BD(b,146).sg();case 13:return ecb(b);default:throw ubb(new Vdb(pte+a.ne()+qte));}};_.Ih=function hnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=YJd(a),b?CLd(b.Lh(),a):-1)),a.G){case 4:return f=new Eod,f;case 6:return g=new Xod,g;case 7:return h=new kpd,h;case 8:return d=new Old,d;case 9:return c=new skd,c;case 10:return e=new mmd,e;case 11:return i=new wpd,i;default:throw ubb(new Vdb(tte+a.zb+qte));}};_.Jh=function ind(a,b){switch(a.xj()){case 13:case 12:return null;default:throw ubb(new Vdb(pte+a.ne()+qte));}};var M2=ldb(nte,'ElkGraphFactoryImpl',1023);acb(439,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Vg=function mnd(){var a,b;b=(a=BD(vjd(this,16),26),kNd(OKd(!a?this.yh():a)));return b==null?(iRd(),iRd(),hRd):new BRd(this,b)};_.$g=function nnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.ne();}return Yhd(this,a-XKd(this.yh()),SKd((d=BD(vjd(this,16),26),!d?this.yh():d),a),b,c)};_.kh=function ond(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return Zhd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.rh=function pnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:this.Kh(GD(b));return;}$hd(this,a-XKd(this.yh()),SKd((c=BD(vjd(this,16),26),!c?this.yh():c),a),b)};_.yh=function qnd(){return eGd(),VFd};_.Ah=function rnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:this.Kh(null);return;}_hd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.ne=function snd(){return this.zb};_.Kh=function tnd(a){knd(this,a)};_.Ib=function und(){return lnd(this)};_.zb=null;var i6=ldb(mte,'ENamedElementImpl',439);acb(179,439,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},_nd);_.Pg=function bod(a){return Nnd(this,a)};_.$g=function cod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,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 eUd(this,c5,this)),this.rb;case 6:return !this.vb&&(this.vb=new bUd(n5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Dnd(this);}return Yhd(this,a-XKd((eGd(),ZFd)),SKd((d=BD(vjd(this,16),26),!d?ZFd:d),a),b,c)};_.gh=function dod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).hh(this,1,h5,c));return End(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new eUd(this,c5,this)),Nxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new bUd(n5,this,6,7)),Nxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Nnd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,7,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),ZFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),ZFd)),a,c)};_.ih=function eod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 4:return End(this,null,c);case 5:return !this.rb&&(this.rb=new eUd(this,c5,this)),Oxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new bUd(n5,this,6,7)),Oxd(this.vb,a,c);case 7:return Whd(this,null,7,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),ZFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),ZFd)),a,c)};_.kh=function fod(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 !!Dnd(this);}return Zhd(this,a-XKd((eGd(),ZFd)),SKd((b=BD(vjd(this,16),26),!b?ZFd:b),a))};_.nh=function god(a){var b;b=Pnd(this,a);return b?b:wmd(this,a)};_.rh=function hod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:knd(this,GD(b));return;case 2:$nd(this,GD(b));return;case 3:Znd(this,GD(b));return;case 4:Ynd(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new eUd(this,c5,this));Pxd(this.rb);!this.rb&&(this.rb=new eUd(this,c5,this));ttd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new bUd(n5,this,6,7));Pxd(this.vb);!this.vb&&(this.vb=new bUd(n5,this,6,7));ttd(this.vb,BD(b,14));return;}$hd(this,a-XKd((eGd(),ZFd)),SKd((c=BD(vjd(this,16),26),!c?ZFd:c),a),b)};_.uh=function iod(a){var b,c;if(!!a&&!!this.rb){for(c=new Ayd(this.rb);c.e!=c.i.gc();){b=yyd(c);JD(b,350)&&(BD(b,350).w=null)}}xjd(this,64,a)};_.yh=function jod(){return eGd(),ZFd};_.Ah=function kod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:knd(this,null);return;case 2:$nd(this,null);return;case 3:Znd(this,null);return;case 4:Ynd(this,null);return;case 5:!this.rb&&(this.rb=new eUd(this,c5,this));Pxd(this.rb);return;case 6:!this.vb&&(this.vb=new bUd(n5,this,6,7));Pxd(this.vb);return;}_hd(this,a-XKd((eGd(),ZFd)),SKd((b=BD(vjd(this,16),26),!b?ZFd:b),a))};_.Fh=function lod(){Ond(this)};_.Lh=function mod(){return !this.rb&&(this.rb=new eUd(this,c5,this)),this.rb};_.Mh=function nod(){return this.sb};_.Nh=function ood(){return this.ub};_.Oh=function pod(){return this.xb};_.Ph=function qod(){return this.yb};_.Qh=function rod(a){this.ub=a};_.Ib=function sod(){var a;if((this.Db&64)!=0)return lnd(this);a=new Ifb(lnd(this));a.a+=' (nsURI: ';Dfb(a,this.yb);a.a+=', nsPrefix: ';Dfb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var vnd;var s6=ldb(mte,'EPackageImpl',179);acb(555,179,{105:1,2015:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},wod);_.q=false;_.r=false;var tod=false;var N2=ldb(nte,'ElkGraphPackageImpl',555);acb(353,724,{105:1,414:1,160:1,137:1,470:1,353:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Eod);_.Pg=function Fod(a){return zod(this,a)};_.$g=function God(a,b,c){switch(a){case 7:return Aod(this);case 8:return this.a;}return Skd(this,a,b,c)};_.gh=function Hod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?zod(this,c):this.Cb.hh(this,-1-d,null,c)));return yod(this,BD(a,160),c);}return Akd(this,a,b,c)};_.ih=function Iod(a,b,c){if(b==7){return yod(this,null,c)}return Bkd(this,a,b,c)};_.kh=function Jod(a){switch(a){case 7:return !!Aod(this);case 8:return !cfb('',this.a);}return Tkd(this,a)};_.rh=function Kod(a,b){switch(a){case 7:Bod(this,BD(b,160));return;case 8:Cod(this,GD(b));return;}Ukd(this,a,b)};_.yh=function Lod(){return Ohd(),Ihd};_.Ah=function Mod(a){switch(a){case 7:Bod(this,null);return;case 8:Cod(this,'');return;}Vkd(this,a)};_.Ib=function Nod(){return Dod(this)};_.a='';var O2=ldb(nte,'ElkLabelImpl',353);acb(239,725,{105:1,414:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Xod);_.Pg=function Yod(a){return Pod(this,a)};_.$g=function Zod(a,b,c){switch(a){case 9:return !this.c&&(this.c=new ZTd(E2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new ZTd(D2,this,10,11)),this.a;case 11:return Sod(this);case 12:return !this.b&&(this.b=new ZTd(A2,this,12,3)),this.b;case 13:return Acb(),!this.a&&(this.a=new ZTd(D2,this,10,11)),this.a.i>0?true:false;}return pld(this,a,b,c)};_.gh=function $od(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new ZTd(E2,this,9,9)),Nxd(this.c,a,c);case 10:return !this.a&&(this.a=new ZTd(D2,this,10,11)),Nxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Pod(this,c):this.Cb.hh(this,-1-d,null,c)));return Ood(this,BD(a,33),c);case 12:return !this.b&&(this.b=new ZTd(A2,this,12,3)),Nxd(this.b,a,c);}return qld(this,a,b,c)};_.ih=function _od(a,b,c){switch(b){case 9:return !this.c&&(this.c=new ZTd(E2,this,9,9)),Oxd(this.c,a,c);case 10:return !this.a&&(this.a=new ZTd(D2,this,10,11)),Oxd(this.a,a,c);case 11:return Ood(this,null,c);case 12:return !this.b&&(this.b=new ZTd(A2,this,12,3)),Oxd(this.b,a,c);}return rld(this,a,b,c)};_.kh=function apd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Sod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new ZTd(D2,this,10,11)),this.a.i>0;}return sld(this,a)};_.rh=function bpd(a,b){switch(a){case 9:!this.c&&(this.c=new ZTd(E2,this,9,9));Pxd(this.c);!this.c&&(this.c=new ZTd(E2,this,9,9));ttd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new ZTd(D2,this,10,11));Pxd(this.a);!this.a&&(this.a=new ZTd(D2,this,10,11));ttd(this.a,BD(b,14));return;case 11:Vod(this,BD(b,33));return;case 12:!this.b&&(this.b=new ZTd(A2,this,12,3));Pxd(this.b);!this.b&&(this.b=new ZTd(A2,this,12,3));ttd(this.b,BD(b,14));return;}tld(this,a,b)};_.yh=function cpd(){return Ohd(),Jhd};_.Ah=function dpd(a){switch(a){case 9:!this.c&&(this.c=new ZTd(E2,this,9,9));Pxd(this.c);return;case 10:!this.a&&(this.a=new ZTd(D2,this,10,11));Pxd(this.a);return;case 11:Vod(this,null);return;case 12:!this.b&&(this.b=new ZTd(A2,this,12,3));Pxd(this.b);return;}uld(this,a)};_.Ib=function epd(){return Wod(this)};var P2=ldb(nte,'ElkNodeImpl',239);acb(186,725,{105:1,414:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},kpd);_.Pg=function lpd(a){return gpd(this,a)};_.$g=function mpd(a,b,c){if(a==9){return hpd(this)}return pld(this,a,b,c)};_.gh=function npd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?gpd(this,c):this.Cb.hh(this,-1-d,null,c)));return fpd(this,BD(a,33),c);}return qld(this,a,b,c)};_.ih=function opd(a,b,c){if(b==9){return fpd(this,null,c)}return rld(this,a,b,c)};_.kh=function ppd(a){if(a==9){return !!hpd(this)}return sld(this,a)};_.rh=function qpd(a,b){switch(a){case 9:ipd(this,BD(b,33));return;}tld(this,a,b)};_.yh=function rpd(){return Ohd(),Khd};_.Ah=function spd(a){switch(a){case 9:ipd(this,null);return;}uld(this,a)};_.Ib=function tpd(){return jpd(this)};var Q2=ldb(nte,'ElkPortImpl',186);var I4=ndb(Ote,'BasicEMap/Entry');acb(1091,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},wpd);_.Fb=function Cpd(a){return this===a};_.cd=function Epd(){return this.b};_.Hb=function Gpd(){return ECb(this)};_.Th=function Ipd(a){upd(this,BD(a,146))};_.$g=function xpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return aid(this,a,b,c)};_.kh=function ypd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return hid(this,a)};_.rh=function zpd(a,b){switch(a){case 0:upd(this,BD(b,146));return;case 1:vpd(this,b);return;}tid(this,a,b)};_.yh=function Apd(){return Ohd(),Lhd};_.Ah=function Bpd(a){switch(a){case 0:upd(this,null);return;case 1:vpd(this,null);return;}xid(this,a)};_.Rh=function Dpd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Fpd(){return this.c};_.Sh=function Hpd(a){this.a=a};_.ed=function Jpd(a){var b;b=this.c;vpd(this,a);return b};_.Ib=function Kpd(){var a;if((this.Db&64)!=0)return zid(this);a=new Tfb;Pfb(Pfb(Pfb(a,this.b?this.b.sg():She),bne),wfb(this.c));return a.a};_.a=-1;_.c=null;var R2=ldb(nte,'ElkPropertyToValueMapEntryImpl',1091);acb(983,1,{},Ypd);var T2=ldb(Rte,'JsonAdapter',983);acb(210,60,Oie,Zpd);var U2=ldb(Rte,'JsonImportException',210);acb(856,1,{},drd);var I3=ldb(Rte,'JsonImporter',856);acb(890,1,{},erd);var V2=ldb(Rte,'JsonImporter/lambda$0$Type',890);acb(891,1,{},frd);var W2=ldb(Rte,'JsonImporter/lambda$1$Type',891);acb(899,1,{},grd);var X2=ldb(Rte,'JsonImporter/lambda$10$Type',899);acb(901,1,{},hrd);var Y2=ldb(Rte,'JsonImporter/lambda$11$Type',901);acb(902,1,{},ird);var Z2=ldb(Rte,'JsonImporter/lambda$12$Type',902);acb(908,1,{},jrd);var $2=ldb(Rte,'JsonImporter/lambda$13$Type',908);acb(907,1,{},krd);var _2=ldb(Rte,'JsonImporter/lambda$14$Type',907);acb(903,1,{},lrd);var a3=ldb(Rte,'JsonImporter/lambda$15$Type',903);acb(904,1,{},mrd);var b3=ldb(Rte,'JsonImporter/lambda$16$Type',904);acb(905,1,{},nrd);var c3=ldb(Rte,'JsonImporter/lambda$17$Type',905);acb(906,1,{},ord);var d3=ldb(Rte,'JsonImporter/lambda$18$Type',906);acb(911,1,{},prd);var e3=ldb(Rte,'JsonImporter/lambda$19$Type',911);acb(892,1,{},qrd);var f3=ldb(Rte,'JsonImporter/lambda$2$Type',892);acb(909,1,{},rrd);var g3=ldb(Rte,'JsonImporter/lambda$20$Type',909);acb(910,1,{},srd);var h3=ldb(Rte,'JsonImporter/lambda$21$Type',910);acb(914,1,{},trd);var i3=ldb(Rte,'JsonImporter/lambda$22$Type',914);acb(912,1,{},urd);var j3=ldb(Rte,'JsonImporter/lambda$23$Type',912);acb(913,1,{},vrd);var k3=ldb(Rte,'JsonImporter/lambda$24$Type',913);acb(916,1,{},wrd);var l3=ldb(Rte,'JsonImporter/lambda$25$Type',916);acb(915,1,{},xrd);var m3=ldb(Rte,'JsonImporter/lambda$26$Type',915);acb(917,1,lie,yrd);_.td=function zrd(a){wqd(this.b,this.a,GD(a))};var n3=ldb(Rte,'JsonImporter/lambda$27$Type',917);acb(918,1,lie,Ard);_.td=function Brd(a){xqd(this.b,this.a,GD(a))};var o3=ldb(Rte,'JsonImporter/lambda$28$Type',918);acb(919,1,{},Crd);var p3=ldb(Rte,'JsonImporter/lambda$29$Type',919);acb(895,1,{},Drd);var q3=ldb(Rte,'JsonImporter/lambda$3$Type',895);acb(920,1,{},Erd);var r3=ldb(Rte,'JsonImporter/lambda$30$Type',920);acb(921,1,{},Frd);var s3=ldb(Rte,'JsonImporter/lambda$31$Type',921);acb(922,1,{},Grd);var t3=ldb(Rte,'JsonImporter/lambda$32$Type',922);acb(923,1,{},Hrd);var u3=ldb(Rte,'JsonImporter/lambda$33$Type',923);acb(924,1,{},Ird);var v3=ldb(Rte,'JsonImporter/lambda$34$Type',924);acb(858,1,{},Krd);var w3=ldb(Rte,'JsonImporter/lambda$35$Type',858);acb(928,1,{},Mrd);var x3=ldb(Rte,'JsonImporter/lambda$36$Type',928);acb(925,1,lie,Nrd);_.td=function Ord(a){Gqd(this.a,BD(a,469))};var y3=ldb(Rte,'JsonImporter/lambda$37$Type',925);acb(926,1,lie,Prd);_.td=function Qrd(a){Hqd(this.a,this.b,BD(a,202))};var z3=ldb(Rte,'JsonImporter/lambda$38$Type',926);acb(927,1,lie,Rrd);_.td=function Srd(a){Iqd(this.a,this.b,BD(a,202))};var A3=ldb(Rte,'JsonImporter/lambda$39$Type',927);acb(893,1,{},Trd);var B3=ldb(Rte,'JsonImporter/lambda$4$Type',893);acb(929,1,lie,Urd);_.td=function Vrd(a){Jqd(this.a,BD(a,8))};var C3=ldb(Rte,'JsonImporter/lambda$40$Type',929);acb(894,1,{},Wrd);var D3=ldb(Rte,'JsonImporter/lambda$5$Type',894);acb(898,1,{},Xrd);var E3=ldb(Rte,'JsonImporter/lambda$6$Type',898);acb(896,1,{},Yrd);var F3=ldb(Rte,'JsonImporter/lambda$7$Type',896);acb(897,1,{},Zrd);var G3=ldb(Rte,'JsonImporter/lambda$8$Type',897);acb(900,1,{},$rd);var H3=ldb(Rte,'JsonImporter/lambda$9$Type',900);acb(947,1,lie,hsd);_.td=function isd(a){Lpd(this.a,new yC(GD(a)))};var J3=ldb(Rte,'JsonMetaDataConverter/lambda$0$Type',947);acb(948,1,lie,jsd);_.td=function ksd(a){dsd(this.a,BD(a,237))};var K3=ldb(Rte,'JsonMetaDataConverter/lambda$1$Type',948);acb(949,1,lie,lsd);_.td=function msd(a){esd(this.a,BD(a,149))};var L3=ldb(Rte,'JsonMetaDataConverter/lambda$2$Type',949);acb(950,1,lie,nsd);_.td=function osd(a){fsd(this.a,BD(a,175))};var M3=ldb(Rte,'JsonMetaDataConverter/lambda$3$Type',950);acb(237,22,{3:1,35:1,22:1,237:1},ysd);var psd,qsd,rsd,ssd,tsd,usd,vsd,wsd;var N3=mdb(Cle,'GraphFeature',237,CI,Asd,zsd);var Bsd;acb(13,1,{35:1,146:1},Gsd,Hsd,Isd,Jsd);_.wd=function Ksd(a){return Dsd(this,BD(a,146))};_.Fb=function Lsd(a){return Esd(this,a)};_.vg=function Msd(){return Fsd(this)};_.sg=function Nsd(){return this.b};_.Hb=function Osd(){return KCb(this.b)};_.Ib=function Psd(){return this.b};var S3=ldb(Cle,'Property',13);acb(817,1,yke,Rsd);_.ue=function Ssd(a,b){return Qsd(this,BD(a,94),BD(b,94))};_.Fb=function Tsd(a){return this===a};_.ve=function Usd(){return new spb(this)};var R3=ldb(Cle,'PropertyHolderComparator',817);acb(695,1,Xhe,ltd);_.Nb=function mtd(a){Qrb(this,a)};_.Pb=function otd(){return ktd(this)};_.Qb=function ptd(){Rrb()};_.Ob=function ntd(){return !!this.a};var T3=ldb(eue,'ElkGraphUtil/AncestorIterator',695);var S4=ndb(Ote,'EList');acb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Etd(a,b){qtd(this,a,b)};_.Fc=function Ftd(a){return rtd(this,a)};_.Wc=function Gtd(a,b){return std(this,a,b)};_.Gc=function Htd(a){return ttd(this,a)};_.Yh=function Itd(){return new Vyd(this)};_.Zh=function Jtd(){return new Yyd(this)};_.$h=function Ktd(a){return utd(this,a)};_._h=function Ltd(){return true};_.ai=function Mtd(a,b){};_.bi=function Ntd(){};_.ci=function Otd(a,b){vtd(this,a,b)};_.di=function Ptd(a,b,c){};_.ei=function Qtd(a,b){};_.fi=function Rtd(a,b,c){};_.Fb=function Std(a){return wtd(this,a)};_.Hb=function Ttd(){return ztd(this)};_.gi=function Utd(){return false};_.Kc=function Vtd(){return new Ayd(this)};_.Yc=function Wtd(){return new Jyd(this)};_.Zc=function Xtd(a){var b;b=this.gc();if(a<0||a>b)throw ubb(new xyd(a,b));return new Kyd(this,a)};_.ii=function Ytd(a,b){this.hi(a,this.Xc(b))};_.Mc=function Ztd(a){return Atd(this,a)};_.ki=function $td(a,b){return b};_._c=function _td(a,b){return Btd(this,a,b)};_.Ib=function aud(){return Ctd(this)};_.mi=function bud(){return true};_.ni=function cud(a,b){return Dtd(this,b)};var o4=ldb(Ote,'AbstractEList',67);acb(63,67,jue,tud,uud,vud);_.Uh=function wud(a,b){return dud(this,a,b)};_.Vh=function xud(a){return eud(this,a)};_.Wh=function yud(a,b){fud(this,a,b)};_.Xh=function zud(a){gud(this,a)};_.oi=function Aud(a){return iud(this,a)};_.$b=function Bud(){jud(this)};_.Hc=function Cud(a){return kud(this,a)};_.Xb=function Dud(a){return lud(this,a)};_.pi=function Eud(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.$c(b);return true}else{return false}};_.li=function gwd(a,b){return this.Ti(a,this.ni(a,b))};_.gc=function hwd(){return this.Ui()};_.Pc=function iwd(){return this.Vi()};_.Qc=function jwd(a){return this.Wi(a)};_.Ib=function kwd(){return this.Xi()};var L4=ldb(Ote,'DelegatingEList',1994);acb(1995,1994,_ue);_.Uh=function swd(a,b){return lwd(this,a,b)};_.Vh=function twd(a){return this.Uh(this.Ui(),a)};_.Wh=function uwd(a,b){mwd(this,a,b)};_.Xh=function vwd(a){nwd(this,a)};_._h=function wwd(){return !this.aj()};_.$b=function xwd(){qwd(this)};_.Yi=function ywd(a,b,c,d,e){return new xxd(this,a,b,c,d,e)};_.Zi=function zwd(a){Phd(this.zi(),a)};_.$i=function Awd(){return null};_._i=function Bwd(){return -1};_.zi=function Cwd(){return null};_.aj=function Dwd(){return false};_.bj=function Ewd(a,b){return b};_.cj=function Fwd(a,b){return b};_.dj=function Gwd(){return false};_.ej=function Hwd(){return !this.Qi()};_.hi=function Iwd(a,b){var c,d;if(this.dj()){d=this.ej();c=yvd(this,a,b);this.Zi(this.Yi(7,leb(b),c,a,d));return c}else{return yvd(this,a,b)}};_.$c=function Jwd(a){var b,c,d,e;if(this.dj()){c=null;d=this.ej();b=this.Yi(4,e=zvd(this,a),null,a,d);if(this.aj()&&!!e){c=this.cj(e,c);if(!c){this.Zi(b)}else{c.Di(b);c.Ei()}}else{if(!c){this.Zi(b)}else{c.Di(b);c.Ei()}}return e}else{e=zvd(this,a);if(this.aj()&&!!e){c=this.cj(e,null);!!c&&c.Ei()}return e}};_.li=function Kwd(a,b){return rwd(this,a,b)};var c4=ldb(dte,'DelegatingNotifyingListImpl',1995);acb(143,1,ave);_.Di=function kxd(a){return Lwd(this,a)};_.Ei=function lxd(){Mwd(this)};_.wi=function mxd(){return this.d};_.$i=function nxd(){return null};_.fj=function oxd(){return null};_.xi=function pxd(a){return -1};_.yi=function qxd(){return Vwd(this)};_.zi=function rxd(){return null};_.Ai=function sxd(){return cxd(this)};_.Bi=function txd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.gj=function uxd(){return false};_.Ci=function vxd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.wi();switch(e){case 1:case 2:{f=a.zi();if(PD(f)===PD(this.zi())&&this.xi(null)==a.xi(null)){this.g=a.yi();a.wi()==1&&(this.d=1);return true}}}}case 4:{e=a.wi();switch(e){case 4:{f=a.zi();if(PD(f)===PD(this.zi())&&this.xi(null)==a.xi(null)){j=exd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Bi();this.d=6;l=new uud(2);if(i<=g){rtd(l,this.n);rtd(l,a.Ai());this.g=OC(GC(WD,1),jje,25,15,[this.o=i,g+1])}else{rtd(l,a.Ai());rtd(l,this.n);this.g=OC(GC(WD,1),jje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.wi();switch(e){case 4:{f=a.zi();if(PD(f)===PD(this.zi())&&this.xi(null)==a.xi(null)){j=exd(this);g=a.Bi();k=BD(this.g,48);d=KC(WD,jje,25,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:{Bfb(d,this.d);break}}dxd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Bfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Cfb(d,this.zi());d.a+=', feature: ';Cfb(d,this.$i());d.a+=', oldValue: ';Cfb(d,cxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Uqb(this);this.a=this.j}return Qqb(this.b,a)}else{return kud(this,a)}};_.mi=function wyd(){return true};_.a=0;var i4=ldb(Ote,'AbstractEList/1',952);acb(295,73,Hje,xyd);var j4=ldb(Ote,'AbstractEList/BasicIndexOutOfBoundsException',295);acb(40,1,Xhe,Ayd);_.Nb=function Dyd(a){Qrb(this,a)};_.lj=function Byd(){if(this.i.j!=this.f){throw ubb(new zpb)}};_.mj=function Cyd(){return yyd(this)};_.Ob=function Eyd(){return this.e!=this.i.gc()};_.Pb=function Fyd(){return this.mj()};_.Qb=function Gyd(){zyd(this)};_.e=0;_.f=0;_.g=-1;var k4=ldb(Ote,'AbstractEList/EIterator',40);acb(277,40,eie,Jyd,Kyd);_.Qb=function Syd(){zyd(this)};_.Rb=function Lyd(a){Hyd(this,a)};_.nj=function Myd(){var b;try{b=this.d.Xb(--this.e);this.lj();this.g=this.e;return b}catch(a){a=tbb(a);if(JD(a,73)){this.lj();throw ubb(new ttb)}else throw ubb(a)}};_.oj=function Nyd(a){Iyd(this,a)};_.Sb=function Oyd(){return this.e!=0};_.Tb=function Pyd(){return this.e};_.Ub=function Qyd(){return this.nj()};_.Vb=function Ryd(){return this.e-1};_.Wb=function Tyd(a){this.oj(a)};var l4=ldb(Ote,'AbstractEList/EListIterator',277);acb(340,40,Xhe,Vyd);_.mj=function Wyd(){return Uyd(this)};_.Qb=function Xyd(){throw ubb(new agb)};var m4=ldb(Ote,'AbstractEList/NonResolvingEIterator',340);acb(385,277,eie,Yyd,Zyd);_.Rb=function $yd(a){throw ubb(new agb)};_.mj=function _yd(){var b;try{b=this.c.ji(this.e);this.lj();this.g=this.e++;return b}catch(a){a=tbb(a);if(JD(a,73)){this.lj();throw ubb(new ttb)}else throw ubb(a)}};_.nj=function azd(){var b;try{b=this.c.ji(--this.e);this.lj();this.g=this.e;return b}catch(a){a=tbb(a);if(JD(a,73)){this.lj();throw ubb(new ttb)}else throw ubb(a)}};_.Qb=function bzd(){throw ubb(new agb)};_.Wb=function czd(a){throw ubb(new agb)};var n4=ldb(Ote,'AbstractEList/NonResolvingEListIterator',385);acb(1981,67,dve);_.Uh=function kzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(vjd(this.a,4),125);k=j==null?0:j.length;m=k+e;d=izd(this,m);l=k-a;l>0&&Zfb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw ubb(new xyd(a,c));return new Tzd(this,a)};_.$b=function rzd(){var a,b;++this.j;a=BD(vjd(this.a,4),125);b=a==null?0:a.length;Y_d(this,null);vtd(this,b,a)};_.Hc=function szd(a){var b,c,d,e,f;b=BD(vjd(this.a,4),125);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw ubb(new xyd(a,c));return b[a]};_.Xc=function uzd(a){var b,c,d;b=BD(vjd(this.a,4),125);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw ubb(new xyd(a,c));return new Lzd(this,a)};_.hi=function zzd(a,b){var c,d,e;c=hzd(this);e=c==null?0:c.length;if(a>=e)throw ubb(new pcb(gue+a+hue+e));if(b>=e)throw ubb(new pcb(iue+b+hue+e));d=c[b];if(a!=b){a0&&Zfb(a,0,b,0,c);return b};_.Qc=function Fzd(a){var b,c,d;b=BD(vjd(this.a,4),125);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var ezd;var u4=ldb(Ote,'ArrayDelegatingEList',1981);acb(1037,40,Xhe,Gzd);_.lj=function Hzd(){if(this.b.j!=this.f||PD(BD(vjd(this.b.a,4),125))!==PD(this.a)){throw ubb(new zpb)}};_.Qb=function Izd(){zyd(this);this.a=BD(vjd(this.b.a,4),125)};var q4=ldb(Ote,'ArrayDelegatingEList/EIterator',1037);acb(706,277,eie,Kzd,Lzd);_.lj=function Mzd(){if(this.b.j!=this.f||PD(BD(vjd(this.b.a,4),125))!==PD(this.a)){throw ubb(new zpb)}};_.oj=function Nzd(a){Iyd(this,a);this.a=BD(vjd(this.b.a,4),125)};_.Qb=function Ozd(){zyd(this);this.a=BD(vjd(this.b.a,4),125)};var r4=ldb(Ote,'ArrayDelegatingEList/EListIterator',706);acb(1038,340,Xhe,Pzd);_.lj=function Qzd(){if(this.b.j!=this.f||PD(BD(vjd(this.b.a,4),125))!==PD(this.a)){throw ubb(new zpb)}};var s4=ldb(Ote,'ArrayDelegatingEList/NonResolvingEIterator',1038);acb(707,385,eie,Szd,Tzd);_.lj=function Uzd(){if(this.b.j!=this.f||PD(BD(vjd(this.b.a,4),125))!==PD(this.a)){throw ubb(new zpb)}};var t4=ldb(Ote,'ArrayDelegatingEList/NonResolvingEListIterator',707);acb(606,295,Hje,Vzd);var v4=ldb(Ote,'BasicEList/BasicIndexOutOfBoundsException',606);acb(696,63,jue,Wzd);_.Vc=function Xzd(a,b){throw ubb(new agb)};_.Fc=function Yzd(a){throw ubb(new agb)};_.Wc=function Zzd(a,b){throw ubb(new agb)};_.Gc=function $zd(a){throw ubb(new agb)};_.$b=function _zd(){throw ubb(new agb)};_.pi=function aAd(a){throw ubb(new agb)};_.Kc=function bAd(){return this.Yh()};_.Yc=function cAd(){return this.Zh()};_.Zc=function dAd(a){return this.$h(a)};_.hi=function eAd(a,b){throw ubb(new agb)};_.ii=function fAd(a,b){throw ubb(new agb)};_.$c=function gAd(a){throw ubb(new agb)};_.Mc=function hAd(a){throw ubb(new agb)};_._c=function iAd(a,b){throw ubb(new agb)};var w4=ldb(Ote,'BasicEList/UnmodifiableEList',696);acb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function JAd(a,b){jAd(this,a,BD(b,42))};_.Fc=function KAd(a){return kAd(this,BD(a,42))};_.Jc=function SAd(a){qeb(this,a)};_.Xb=function TAd(a){return BD(lud(this.c,a),133)};_.hi=function aBd(a,b){return BD(this.c.hi(a,b),42)};_.ii=function bBd(a,b){BAd(this,a,BD(b,42))};_.Lc=function eBd(){return new XAb(null,new Jub(this,16))};_.$c=function fBd(a){return BD(this.c.$c(a),42)};_._c=function hBd(a,b){return HAd(this,a,BD(b,42))};_.ad=function jBd(a){jtb(this,a)};_.Nc=function kBd(){return new Jub(this,16)};_.Oc=function lBd(){return new XAb(null,new Jub(this,16))};_.Wc=function LAd(a,b){return this.c.Wc(a,b)};_.Gc=function MAd(a){return this.c.Gc(a)};_.$b=function NAd(){this.c.$b()};_.Hc=function OAd(a){return this.c.Hc(a)};_.Ic=function PAd(a){return Be(this.c,a)};_.pj=function QAd(){var a,b,c;if(this.d==null){this.d=KC(x4,eve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.mj(),133);pAd(this,a)}this.e=c}};_.Fb=function RAd(a){return uAd(this,a)};_.Hb=function UAd(){return ztd(this.c)};_.Xc=function VAd(a){return this.c.Xc(a)};_.qj=function WAd(){this.c=new tBd(this)};_.dc=function XAd(){return this.f==0};_.Kc=function YAd(){return this.c.Kc()};_.Yc=function ZAd(){return this.c.Yc()};_.Zc=function $Ad(a){return this.c.Zc(a)};_.rj=function _Ad(){return AAd(this)};_.sj=function cBd(a,b,c){return new uCd(a,b,c)};_.tj=function dBd(){return new zBd};_.Mc=function gBd(a){return EAd(this,a)};_.gc=function iBd(){return this.f};_.bd=function mBd(a,b){return new Iib(this.c,a,b)};_.Pc=function nBd(){return this.c.Pc()};_.Qc=function oBd(a){return this.c.Qc(a)};_.Ib=function pBd(){return Ctd(this.c)};_.e=0;_.f=0;var K4=ldb(Ote,'BasicEMap',705);acb(1032,63,jue,tBd);_.ai=function uBd(a,b){qBd(this,BD(b,133))};_.di=function wBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.ei=function xBd(a,b){rBd(this,BD(b,133))};_.fi=function yBd(a,b,c){sBd(this,BD(b,133),BD(c,133))};_.ci=function vBd(a,b){oAd(this.a)};var y4=ldb(Ote,'BasicEMap/1',1032);acb(1033,63,jue,zBd);_.qi=function ABd(a){return KC(H4,fve,612,a,0,1)};var z4=ldb(Ote,'BasicEMap/2',1033);acb(1034,_he,aie,BBd);_.$b=function CBd(){this.a.c.$b()};_.Hc=function DBd(a){return lAd(this.a,a)};_.Kc=function EBd(){return this.a.f==0?(GCd(),FCd.a):new $Bd(this.a)};_.Mc=function FBd(a){var b;b=this.a.f;GAd(this.a,a);return this.a.f!=b};_.gc=function GBd(){return this.a.f};var A4=ldb(Ote,'BasicEMap/3',1034);acb(1035,28,$he,HBd);_.$b=function IBd(){this.a.c.$b()};_.Hc=function JBd(a){return mAd(this.a,a)};_.Kc=function KBd(){return this.a.f==0?(GCd(),FCd.a):new aCd(this.a)};_.gc=function LBd(){return this.a.f};var B4=ldb(Ote,'BasicEMap/4',1035);acb(1036,_he,aie,NBd);_.$b=function OBd(){this.a.c.$b()};_.Hc=function PBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.pj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=yAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,366);j=b.i;for(g=0;g'+this.c};_.a=0;var H4=ldb(Ote,'BasicEMap/EntryImpl',612);acb(536,1,{},ECd);var J4=ldb(Ote,'BasicEMap/View',536);var FCd;acb(768,1,{});_.Fb=function UCd(a){return At((lmb(),imb),a)};_.Hb=function VCd(){return pmb((lmb(),imb))};_.Ib=function WCd(){return Fe((lmb(),imb))};var P4=ldb(Ote,'ECollections/BasicEmptyUnmodifiableEList',768);acb(1311,1,eie,XCd);_.Nb=function ZCd(a){Qrb(this,a)};_.Rb=function YCd(a){throw ubb(new agb)};_.Ob=function $Cd(){return false};_.Sb=function _Cd(){return false};_.Pb=function aDd(){throw ubb(new ttb)};_.Tb=function bDd(){return 0};_.Ub=function cDd(){throw ubb(new ttb)};_.Vb=function dDd(){return -1};_.Qb=function eDd(){throw ubb(new agb)};_.Wb=function fDd(a){throw ubb(new agb)};var O4=ldb(Ote,'ECollections/BasicEmptyUnmodifiableEList/1',1311);acb(1309,768,{20:1,14:1,15:1,58:1},gDd);_.Vc=function hDd(a,b){JCd()};_.Fc=function iDd(a){return KCd()};_.Wc=function jDd(a,b){return LCd()};_.Gc=function kDd(a){return MCd()};_.$b=function lDd(){NCd()};_.Hc=function mDd(a){return false};_.Ic=function nDd(a){return false};_.Jc=function oDd(a){qeb(this,a)};_.Xb=function pDd(a){return vmb((lmb(),imb,a)),null};_.Xc=function qDd(a){return -1};_.dc=function rDd(){return true};_.Kc=function sDd(){return this.a};_.Yc=function tDd(){return this.a};_.Zc=function uDd(a){return this.a};_.hi=function vDd(a,b){return OCd()};_.ii=function wDd(a,b){PCd()};_.Lc=function xDd(){return new XAb(null,new Jub(this,16))};_.$c=function yDd(a){return QCd()};_.Mc=function zDd(a){return RCd()};_._c=function ADd(a,b){return SCd()};_.gc=function BDd(){return 0};_.ad=function CDd(a){jtb(this,a)};_.Nc=function DDd(){return new Jub(this,16)};_.Oc=function EDd(){return new XAb(null,new Jub(this,16))};_.bd=function FDd(a,b){return lmb(),new Iib(imb,a,b)};_.Pc=function GDd(){return De((lmb(),imb))};_.Qc=function HDd(a){return lmb(),Ee(imb,a)};var Q4=ldb(Ote,'ECollections/EmptyUnmodifiableEList',1309);acb(1310,768,{20:1,14:1,15:1,58:1,589:1},IDd);_.Vc=function JDd(a,b){JCd()};_.Fc=function KDd(a){return KCd()};_.Wc=function LDd(a,b){return LCd()};_.Gc=function MDd(a){return MCd()};_.$b=function NDd(){NCd()};_.Hc=function ODd(a){return false};_.Ic=function PDd(a){return false};_.Jc=function QDd(a){qeb(this,a)};_.Xb=function RDd(a){return vmb((lmb(),imb,a)),null};_.Xc=function SDd(a){return -1};_.dc=function TDd(){return true};_.Kc=function UDd(){return this.a};_.Yc=function VDd(){return this.a};_.Zc=function WDd(a){return this.a};_.hi=function YDd(a,b){return OCd()};_.ii=function ZDd(a,b){PCd()};_.Lc=function $Dd(){return new XAb(null,new Jub(this,16))};_.$c=function _Dd(a){return QCd()};_.Mc=function aEd(a){return RCd()};_._c=function bEd(a,b){return SCd()};_.gc=function cEd(){return 0};_.ad=function dEd(a){jtb(this,a)};_.Nc=function eEd(){return new Jub(this,16)};_.Oc=function fEd(){return new XAb(null,new Jub(this,16))};_.bd=function gEd(a,b){return lmb(),new Iib(imb,a,b)};_.Pc=function hEd(){return De((lmb(),imb))};_.Qc=function iEd(a){return lmb(),Ee(imb,a)};_.rj=function XDd(){return lmb(),lmb(),jmb};var R4=ldb(Ote,'ECollections/EmptyUnmodifiableEMap',1310);var T4=ndb(Ote,'Enumerator');var jEd;acb(280,1,{280:1},IEd);_.Fb=function MEd(a){var b;if(this===a)return true;if(!JD(a,280))return false;b=BD(a,280);return this.f==b.f&&OEd(this.i,b.i)&&NEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&NEd(this.d,b.d)&&NEd(this.g,b.g)&&NEd(this.e,b.e)&&FEd(this,b)};_.Hb=function REd(){return this.f};_.Ib=function ZEd(){return GEd(this)};_.f=0;var nEd=0,oEd=0,pEd=0,qEd=0,rEd=0,sEd=0,tEd=0,uEd=0,vEd=0,wEd,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd;var Y4=ldb(Ote,'URI',280);acb(1090,43,ake,hFd);_.zc=function iFd(a,b){return BD(Rhb(this,GD(a),BD(b,280)),280)};var X4=ldb(Ote,'URI/URICache',1090);acb(497,63,jue,jFd,kFd);_.gi=function lFd(){return true};var Z4=ldb(Ote,'UniqueEList',497);acb(581,60,Oie,mFd);var $4=ldb(Ote,'WrappedException',581);var _4=ndb(Rse,ive);var u5=ndb(Rse,jve);var s5=ndb(Rse,kve);var a5=ndb(Rse,lve);var c5=ndb(Rse,mve);var b5=ndb(Rse,'EClass');var e5=ndb(Rse,'EDataType');var nFd;acb(1182,43,ake,qFd);_.xc=function rFd(a){return ND(a)?Ohb(this,a):Wd(hrb(this.f,a))};var d5=ldb(Rse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1182);var g5=ndb(Rse,'EEnum');var f5=ndb(Rse,nve);var i5=ndb(Rse,ove);var m5=ndb(Rse,pve);var sFd;var o5=ndb(Rse,qve);var p5=ndb(Rse,rve);acb(1028,1,{},wFd);_.Ib=function xFd(){return 'NIL'};var q5=ldb(Rse,'EStructuralFeature/Internal/DynamicValueHolder/1',1028);var yFd;acb(1027,43,ake,BFd);_.xc=function CFd(a){return ND(a)?Ohb(this,a):Wd(hrb(this.f,a))};var r5=ldb(Rse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1027);var t5=ndb(Rse,sve);var v5=ndb(Rse,'EValidator/PatternMatcher');var DFd;var FFd;var HFd;var JFd,KFd,LFd,MFd,NFd,OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd;var D9=ndb(tve,'FeatureMap/Entry');acb(535,1,{72:1},fGd);_._j=function gGd(){return this.a};_.dd=function hGd(){return this.b};var w5=ldb(mte,'BasicEObjectImpl/1',535);acb(1026,1,uve,iGd);_.Vj=function jGd(a){return cid(this.a,this.b,a)};_.ej=function kGd(){return iid(this.a,this.b)};_.Wb=function lGd(a){uid(this.a,this.b,a)};_.Wj=function mGd(){yid(this.a,this.b)};var x5=ldb(mte,'BasicEObjectImpl/4',1026);acb(1982,1,{108:1});_.ak=function pGd(a){this.e=a==0?nGd:KC(SI,Phe,1,a,5,1)};_.Bh=function qGd(a){return this.e[a]};_.Ch=function rGd(a,b){this.e[a]=b};_.Dh=function sGd(a){this.e[a]=null};_.bk=function tGd(){return this.c};_.ck=function uGd(){throw ubb(new agb)};_.dk=function vGd(){throw ubb(new agb)};_.ek=function wGd(){return this.d};_.fk=function xGd(){return this.e!=null};_.gk=function yGd(a){this.c=a};_.hk=function zGd(a){throw ubb(new agb)};_.ik=function AGd(a){throw ubb(new agb)};_.jk=function BGd(a){this.d=a};var nGd;var y5=ldb(mte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1982);acb(185,1982,{108:1},CGd);_.ck=function DGd(){return this.a};_.dk=function EGd(){return this.b};_.hk=function FGd(a){this.a=a};_.ik=function GGd(a){this.b=a};var z5=ldb(mte,'BasicEObjectImpl/EPropertiesHolderImpl',185);acb(506,97,lte,HGd);_.Jg=function IGd(){return this.f};_.Og=function JGd(){return this.k};_.Qg=function KGd(a,b){this.g=a;this.i=b};_.Sg=function LGd(){return (this.j&2)==0?this.yh():this.oh().bk()};_.Ug=function MGd(){return this.i};_.Lg=function NGd(){return (this.j&1)!=0};_.dh=function OGd(){return this.g};_.jh=function PGd(){return (this.j&4)!=0};_.oh=function QGd(){return !this.k&&(this.k=new CGd),this.k};_.sh=function RGd(a){this.oh().gk(a);a?(this.j|=2):(this.j&=-3)};_.uh=function SGd(a){this.oh().ik(a);a?(this.j|=4):(this.j&=-5)};_.yh=function TGd(){return (IFd(),HFd).S};_.i=0;_.j=1;var k6=ldb(mte,'EObjectImpl',506);acb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},WGd);_.Bh=function XGd(a){return this.e[a]};_.Ch=function YGd(a,b){this.e[a]=b};_.Dh=function ZGd(a){this.e[a]=null};_.Sg=function $Gd(){return this.d};_.Xg=function _Gd(a){return YKd(this.d,a)};_.Zg=function aHd(){return this.d};_.bh=function bHd(){return this.e!=null};_.oh=function cHd(){!this.k&&(this.k=new qHd);return this.k};_.sh=function dHd(a){this.d=a};_.xh=function eHd(){var a;if(this.e==null){a=XKd(this.d);this.e=a==0?UGd:KC(SI,Phe,1,a,5,1)}return this};_.zh=function fHd(){return 0};var UGd;var D5=ldb(mte,'DynamicEObjectImpl',780);acb(1375,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},gHd);_.Fb=function iHd(a){return this===a};_.Hb=function mHd(){return ECb(this)};_.sh=function hHd(a){this.d=a;this.b=TKd(a,'key');this.c=TKd(a,wte)};_.Rh=function jHd(){var a;if(this.a==-1){a=did(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function kHd(){return did(this,this.b)};_.dd=function lHd(){return did(this,this.c)};_.Sh=function nHd(a){this.a=a};_.Th=function oHd(a){uid(this,this.b,a)};_.ed=function pHd(a){var b;b=did(this,this.c);uid(this,this.c,a);return b};_.a=0;var B5=ldb(mte,'DynamicEObjectImpl/BasicEMapEntry',1375);acb(1376,1,{108:1},qHd);_.ak=function rHd(a){throw ubb(new agb)};_.Bh=function sHd(a){throw ubb(new agb)};_.Ch=function tHd(a,b){throw ubb(new agb)};_.Dh=function uHd(a){throw ubb(new agb)};_.bk=function vHd(){throw ubb(new agb)};_.ck=function wHd(){return this.a};_.dk=function xHd(){return this.b};_.ek=function yHd(){return this.c};_.fk=function zHd(){throw ubb(new agb)};_.gk=function AHd(a){throw ubb(new agb)};_.hk=function BHd(a){this.a=a};_.ik=function CHd(a){this.b=a};_.jk=function DHd(a){this.c=a};var C5=ldb(mte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1376);acb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},MHd);_.Pg=function NHd(a){return FHd(this,a)};_.$g=function OHd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new nId((eGd(),aGd),w6,this)),this.b):(!this.b&&(this.b=new nId((eGd(),aGd),w6,this)),AAd(this.b));case 3:return HHd(this);case 4:return !this.a&&(this.a=new sMd(l5,this,4)),this.a;case 5:return !this.c&&(this.c=new W4d(l5,this,5)),this.c;}return Yhd(this,a-XKd((eGd(),JFd)),SKd((d=BD(vjd(this,16),26),!d?JFd:d),a),b,c)};_.gh=function PHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?FHd(this,c):this.Cb.hh(this,-1-e,null,c)));return EHd(this,BD(a,147),c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),JFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),JFd)),a,c)};_.ih=function QHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 2:return !this.b&&(this.b=new nId((eGd(),aGd),w6,this)),YHd(this.b,a,c);case 3:return EHd(this,null,c);case 4:return !this.a&&(this.a=new sMd(l5,this,4)),Oxd(this.a,a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),JFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),JFd)),a,c)};_.kh=function RHd(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 !!HHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return Zhd(this,a-XKd((eGd(),JFd)),SKd((b=BD(vjd(this,16),26),!b?JFd:b),a))};_.rh=function SHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:JHd(this,GD(b));return;case 2:!this.b&&(this.b=new nId((eGd(),aGd),w6,this));ZHd(this.b,b);return;case 3:IHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new sMd(l5,this,4));Pxd(this.a);!this.a&&(this.a=new sMd(l5,this,4));ttd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new W4d(l5,this,5));Pxd(this.c);!this.c&&(this.c=new W4d(l5,this,5));ttd(this.c,BD(b,14));return;}$hd(this,a-XKd((eGd(),JFd)),SKd((c=BD(vjd(this,16),26),!c?JFd:c),a),b)};_.yh=function THd(){return eGd(),JFd};_.Ah=function UHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:KHd(this,null);return;case 2:!this.b&&(this.b=new nId((eGd(),aGd),w6,this));this.b.c.$b();return;case 3:IHd(this,null);return;case 4:!this.a&&(this.a=new sMd(l5,this,4));Pxd(this.a);return;case 5:!this.c&&(this.c=new W4d(l5,this,5));Pxd(this.c);return;}_hd(this,a-XKd((eGd(),JFd)),SKd((b=BD(vjd(this,16),26),!b?JFd:b),a))};_.Ib=function VHd(){return LHd(this)};_.d=null;var F5=ldb(mte,'EAnnotationImpl',510);acb(151,705,vve,$Hd);_.Wh=function _Hd(a,b){WHd(this,a,BD(b,42))};_.kk=function aId(a,b){return XHd(this,BD(a,42),b)};_.oi=function bId(a){return BD(BD(this.c,69).oi(a),133)};_.Yh=function cId(){return BD(this.c,69).Yh()};_.Zh=function dId(){return BD(this.c,69).Zh()};_.$h=function eId(a){return BD(this.c,69).$h(a)};_.lk=function fId(a,b){return YHd(this,a,b)};_.Vj=function gId(a){return BD(this.c,76).Vj(a)};_.qj=function hId(){};_.ej=function iId(){return BD(this.c,76).ej()};_.sj=function jId(a,b,c){var d;d=BD(YJd(this.b).Mh().Ih(this.b),133);d.Sh(a);d.Th(b);d.ed(c);return d};_.tj=function kId(){return new R5d(this)};_.Wb=function lId(a){ZHd(this,a)};_.Wj=function mId(){BD(this.c,76).Wj()};var x9=ldb(tve,'EcoreEMap',151);acb(158,151,vve,nId);_.pj=function oId(){var a,b,c,d,e,f;if(this.d==null){f=KC(x4,eve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.mj(),133);d=b.Rh();e=(d&Jhe)%f.length;a=f[e];!a&&(a=f[e]=new R5d(this));a.Fc(b)}this.d=f}};var E5=ldb(mte,'EAnnotationImpl/1',158);acb(283,439,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,283:1,114:1,115:1});_.$g=function BId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),this.Zj()?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;}return Yhd(this,a-XKd(this.yh()),SKd((d=BD(vjd(this,16),26),!d?this.yh():d),a),b,c)};_.ih=function CId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 9:return qId(this,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),e.Mj().Qj(this,tjd(this),b-XKd(this.yh()),a,c)};_.kh=function DId(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.Zj();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);}return Zhd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.rh=function EId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:this.Kh(GD(b));return;case 2:wId(this,Bcb(DD(b)));return;case 3:xId(this,Bcb(DD(b)));return;case 4:vId(this,BD(b,19).a);return;case 5:this.nk(BD(b,19).a);return;case 8:tId(this,BD(b,138));return;case 9:d=sId(this,BD(b,87),null);!!d&&d.Ei();return;}$hd(this,a-XKd(this.yh()),SKd((c=BD(vjd(this,16),26),!c?this.yh():c),a),b)};_.yh=function FId(){return eGd(),cGd};_.Ah=function GId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:this.Kh(null);return;case 2:wId(this,true);return;case 3:xId(this,true);return;case 4:vId(this,0);return;case 5:this.nk(1);return;case 8:tId(this,null);return;case 9:c=sId(this,null,null);!!c&&c.Ei();return;}_hd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.Fh=function HId(){rId(this);this.Bb|=1};_.Xj=function IId(){return rId(this)};_.Yj=function JId(){return this.t};_.Zj=function KId(){var a;return a=this.t,a>1||a==-1};_.gi=function LId(){return (this.Bb&512)!=0};_.mk=function MId(a,b){return uId(this,a,b)};_.nk=function NId(a){yId(this,a)};_.Ib=function OId(){return zId(this)};_.s=0;_.t=1;var u7=ldb(mte,'ETypedElementImpl',283);acb(450,283,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,450:1,283:1,114:1,115:1,677:1});_.Pg=function dJd(a){return PId(this,a)};_.$g=function eJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),this.Zj()?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;case 10:return Acb(),(this.Bb&xve)!=0?true:false;case 11:return Acb(),(this.Bb&zve)!=0?true:false;case 12:return Acb(),(this.Bb&Mje)!=0?true:false;case 13:return this.j;case 14:return QId(this);case 15:return Acb(),(this.Bb&yve)!=0?true:false;case 16:return Acb(),(this.Bb&jie)!=0?true:false;case 17:return RId(this);}return Yhd(this,a-XKd(this.yh()),SKd((d=BD(vjd(this,16),26),!d?this.yh():d),a),b,c)};_.gh=function fJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PId(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,17,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),f.Mj().Pj(this,tjd(this),b-XKd(this.yh()),a,c)};_.ih=function gJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 9:return qId(this,c);case 17:return Whd(this,null,17,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),e.Mj().Qj(this,tjd(this),b-XKd(this.yh()),a,c)};_.kh=function hJd(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.Zj();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);case 10:return (this.Bb&xve)==0;case 11:return (this.Bb&zve)!=0;case 12:return (this.Bb&Mje)!=0;case 13:return this.j!=null;case 14:return QId(this)!=null;case 15:return (this.Bb&yve)!=0;case 16:return (this.Bb&jie)!=0;case 17:return !!RId(this);}return Zhd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.rh=function iJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:ZId(this,GD(b));return;case 2:wId(this,Bcb(DD(b)));return;case 3:xId(this,Bcb(DD(b)));return;case 4:vId(this,BD(b,19).a);return;case 5:this.nk(BD(b,19).a);return;case 8:tId(this,BD(b,138));return;case 9:d=sId(this,BD(b,87),null);!!d&&d.Ei();return;case 10:UId(this,Bcb(DD(b)));return;case 11:aJd(this,Bcb(DD(b)));return;case 12:$Id(this,Bcb(DD(b)));return;case 13:VId(this,GD(b));return;case 15:_Id(this,Bcb(DD(b)));return;case 16:XId(this,Bcb(DD(b)));return;}$hd(this,a-XKd(this.yh()),SKd((c=BD(vjd(this,16),26),!c?this.yh():c),a),b)};_.yh=function jJd(){return eGd(),bGd};_.Ah=function kJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,88)&&SMd(VKd(BD(this.Cb,88)),4);knd(this,null);return;case 2:wId(this,true);return;case 3:xId(this,true);return;case 4:vId(this,0);return;case 5:this.nk(1);return;case 8:tId(this,null);return;case 9:c=sId(this,null,null);!!c&&c.Ei();return;case 10:UId(this,true);return;case 11:aJd(this,false);return;case 12:$Id(this,false);return;case 13:this.i=null;WId(this,null);return;case 15:_Id(this,false);return;case 16:XId(this,false);return;}_hd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.Fh=function lJd(){X1d(l1d((J6d(),H6d),this));rId(this);this.Bb|=1};_.Fj=function mJd(){return this.f};_.yj=function nJd(){return QId(this)};_.Gj=function oJd(){return RId(this)};_.Kj=function pJd(){return null};_.ok=function qJd(){return this.k};_._i=function rJd(){return this.n};_.Lj=function sJd(){return SId(this)};_.Mj=function tJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=RId(this);(c.i==null&&OKd(c),c.i).length;d=this.Kj();!!d&&XKd(RId(d));e=rId(this);g=e.Aj();a=!g?null:(g.i&1)!=0?g==rbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==qbb?UI:g==SD?xI:yI:g;b=QId(this);h=e.yj();i6d(this);(this.Bb&jie)!=0&&(!!(f=o1d((J6d(),H6d),c))&&f!=this||!!(f=W1d(l1d(H6d,this))))?(this.p=new uVd(this,f)):this.Zj()?this.qk()?!d?(this.Bb&yve)!=0?!a?this.rk()?(this.p=new FVd(42,this)):(this.p=new FVd(0,this)):a==CK?(this.p=new DVd(50,I4,this)):this.rk()?(this.p=new DVd(43,a,this)):(this.p=new DVd(1,a,this)):!a?this.rk()?(this.p=new FVd(44,this)):(this.p=new FVd(2,this)):a==CK?(this.p=new DVd(41,I4,this)):this.rk()?(this.p=new DVd(45,a,this)):(this.p=new DVd(3,a,this)):(this.Bb&yve)!=0?!a?this.rk()?(this.p=new GVd(46,this,d)):(this.p=new GVd(4,this,d)):this.rk()?(this.p=new EVd(47,a,this,d)):(this.p=new EVd(5,a,this,d)):!a?this.rk()?(this.p=new GVd(48,this,d)):(this.p=new GVd(6,this,d)):this.rk()?(this.p=new EVd(49,a,this,d)):(this.p=new EVd(7,a,this,d)):JD(e,148)?a==D9?(this.p=new FVd(40,this)):(this.Bb&512)!=0?(this.Bb&yve)!=0?!a?(this.p=new FVd(8,this)):(this.p=new DVd(9,a,this)):!a?(this.p=new FVd(10,this)):(this.p=new DVd(11,a,this)):(this.Bb&yve)!=0?!a?(this.p=new FVd(12,this)):(this.p=new DVd(13,a,this)):!a?(this.p=new FVd(14,this)):(this.p=new DVd(15,a,this)):!d?this.rk()?(this.Bb&yve)!=0?!a?(this.p=new FVd(16,this)):(this.p=new DVd(17,a,this)):!a?(this.p=new FVd(18,this)):(this.p=new DVd(19,a,this)):(this.Bb&yve)!=0?!a?(this.p=new FVd(20,this)):(this.p=new DVd(21,a,this)):!a?(this.p=new FVd(22,this)):(this.p=new DVd(23,a,this)):(i=d.t,i>1||i==-1?this.rk()?(this.Bb&yve)!=0?!a?(this.p=new GVd(24,this,d)):(this.p=new EVd(25,a,this,d)):!a?(this.p=new GVd(26,this,d)):(this.p=new EVd(27,a,this,d)):(this.Bb&yve)!=0?!a?(this.p=new GVd(28,this,d)):(this.p=new EVd(29,a,this,d)):!a?(this.p=new GVd(30,this,d)):(this.p=new EVd(31,a,this,d)):this.rk()?(this.Bb&yve)!=0?!a?(this.p=new GVd(32,this,d)):(this.p=new EVd(33,a,this,d)):!a?(this.p=new GVd(34,this,d)):(this.p=new EVd(35,a,this,d)):(this.Bb&yve)!=0?!a?(this.p=new GVd(36,this,d)):(this.p=new EVd(37,a,this,d)):!a?(this.p=new GVd(38,this,d)):(this.p=new EVd(39,a,this,d))):this.pk()?this.rk()?(this.p=new fWd(BD(e,26),this,d)):(this.p=new ZVd(BD(e,26),this,d)):JD(e,148)?a==D9?(this.p=new FVd(40,this)):(this.Bb&yve)!=0?!a?(this.p=new eXd(BD(e,148),b,h,this)):(this.p=new gXd(b,h,this,(xWd(),g==WD?tWd:g==rbb?oWd:g==XD?uWd:g==VD?sWd:g==UD?rWd:g==qbb?wWd:g==SD?pWd:g==TD?qWd:vWd))):!a?(this.p=new ZWd(BD(e,148),b,h,this)):(this.p=new _Wd(b,h,this,(xWd(),g==WD?tWd:g==rbb?oWd:g==XD?uWd:g==VD?sWd:g==UD?rWd:g==qbb?wWd:g==SD?pWd:g==TD?qWd:vWd))):this.qk()?!d?(this.Bb&yve)!=0?this.rk()?(this.p=new AXd(BD(e,26),this)):(this.p=new yXd(BD(e,26),this)):this.rk()?(this.p=new wXd(BD(e,26),this)):(this.p=new uXd(BD(e,26),this)):(this.Bb&yve)!=0?this.rk()?(this.p=new IXd(BD(e,26),this,d)):(this.p=new GXd(BD(e,26),this,d)):this.rk()?(this.p=new EXd(BD(e,26),this,d)):(this.p=new CXd(BD(e,26),this,d)):this.rk()?!d?(this.Bb&yve)!=0?(this.p=new MXd(BD(e,26),this)):(this.p=new KXd(BD(e,26),this)):(this.Bb&yve)!=0?(this.p=new QXd(BD(e,26),this,d)):(this.p=new OXd(BD(e,26),this,d)):!d?(this.Bb&yve)!=0?(this.p=new SXd(BD(e,26),this)):(this.p=new iXd(BD(e,26),this)):(this.Bb&yve)!=0?(this.p=new WXd(BD(e,26),this,d)):(this.p=new UXd(BD(e,26),this,d))}return this.p};_.Hj=function uJd(){return (this.Bb&xve)!=0};_.pk=function vJd(){return false};_.qk=function wJd(){return false};_.Ij=function xJd(){return (this.Bb&jie)!=0};_.Nj=function yJd(){return TId(this)};_.rk=function zJd(){return false};_.Jj=function AJd(){return (this.Bb&yve)!=0};_.sk=function BJd(a){this.k=a};_.Kh=function CJd(a){ZId(this,a)};_.Ib=function DJd(){return bJd(this)};_.e=false;_.n=0;var m7=ldb(mte,'EStructuralFeatureImpl',450);acb(322,450,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,450:1,283:1,114:1,115:1,677:1},JJd);_.$g=function KJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),GJd(this)?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;case 10:return Acb(),(this.Bb&xve)!=0?true:false;case 11:return Acb(),(this.Bb&zve)!=0?true:false;case 12:return Acb(),(this.Bb&Mje)!=0?true:false;case 13:return this.j;case 14:return QId(this);case 15:return Acb(),(this.Bb&yve)!=0?true:false;case 16:return Acb(),(this.Bb&jie)!=0?true:false;case 17:return RId(this);case 18:return Acb(),(this.Bb&kte)!=0?true:false;case 19:if(b)return FJd(this);return EJd(this);}return Yhd(this,a-XKd((eGd(),KFd)),SKd((d=BD(vjd(this,16),26),!d?KFd:d),a),b,c)};_.kh=function LJd(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 GJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);case 10:return (this.Bb&xve)==0;case 11:return (this.Bb&zve)!=0;case 12:return (this.Bb&Mje)!=0;case 13:return this.j!=null;case 14:return QId(this)!=null;case 15:return (this.Bb&yve)!=0;case 16:return (this.Bb&jie)!=0;case 17:return !!RId(this);case 18:return (this.Bb&kte)!=0;case 19:return !!EJd(this);}return Zhd(this,a-XKd((eGd(),KFd)),SKd((b=BD(vjd(this,16),26),!b?KFd:b),a))};_.rh=function MJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:ZId(this,GD(b));return;case 2:wId(this,Bcb(DD(b)));return;case 3:xId(this,Bcb(DD(b)));return;case 4:vId(this,BD(b,19).a);return;case 5:IJd(this,BD(b,19).a);return;case 8:tId(this,BD(b,138));return;case 9:d=sId(this,BD(b,87),null);!!d&&d.Ei();return;case 10:UId(this,Bcb(DD(b)));return;case 11:aJd(this,Bcb(DD(b)));return;case 12:$Id(this,Bcb(DD(b)));return;case 13:VId(this,GD(b));return;case 15:_Id(this,Bcb(DD(b)));return;case 16:XId(this,Bcb(DD(b)));return;case 18:HJd(this,Bcb(DD(b)));return;}$hd(this,a-XKd((eGd(),KFd)),SKd((c=BD(vjd(this,16),26),!c?KFd:c),a),b)};_.yh=function NJd(){return eGd(),KFd};_.Ah=function OJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,88)&&SMd(VKd(BD(this.Cb,88)),4);knd(this,null);return;case 2:wId(this,true);return;case 3:xId(this,true);return;case 4:vId(this,0);return;case 5:this.b=0;yId(this,1);return;case 8:tId(this,null);return;case 9:c=sId(this,null,null);!!c&&c.Ei();return;case 10:UId(this,true);return;case 11:aJd(this,false);return;case 12:$Id(this,false);return;case 13:this.i=null;WId(this,null);return;case 15:_Id(this,false);return;case 16:XId(this,false);return;case 18:HJd(this,false);return;}_hd(this,a-XKd((eGd(),KFd)),SKd((b=BD(vjd(this,16),26),!b?KFd:b),a))};_.Fh=function PJd(){FJd(this);X1d(l1d((J6d(),H6d),this));rId(this);this.Bb|=1};_.Zj=function QJd(){return GJd(this)};_.mk=function RJd(a,b){this.b=0;this.a=null;return uId(this,a,b)};_.nk=function SJd(a){IJd(this,a)};_.Ib=function TJd(){var a;if((this.Db&64)!=0)return bJd(this);a=new Ifb(bJd(this));a.a+=' (iD: ';Efb(a,(this.Bb&kte)!=0);a.a+=')';return a.a};_.b=0;var G5=ldb(mte,'EAttributeImpl',322);acb(350,439,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,350:1,150:1,114:1,115:1,676:1});_.tk=function iKd(a){return a.Sg()==this};_.Pg=function jKd(a){return XJd(this,a)};_.Qg=function kKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_.$g=function lKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return $Jd(this);case 4:return this.yj();case 5:return this.F;case 6:if(b)return YJd(this);return UJd(this);case 7:return !this.A&&(this.A=new F4d(t5,this,7)),this.A;}return Yhd(this,a-XKd(this.yh()),SKd((d=BD(vjd(this,16),26),!d?this.yh():d),a),b,c)};_.gh=function mKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?XJd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,6,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),f.Mj().Pj(this,tjd(this),b-XKd(this.yh()),a,c)};_.ih=function nKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 6:return Whd(this,null,6,c);case 7:return !this.A&&(this.A=new F4d(t5,this,7)),Oxd(this.A,a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?this.yh():d),b),66),e.Mj().Qj(this,tjd(this),b-XKd(this.yh()),a,c)};_.kh=function oKd(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 !!$Jd(this);case 4:return this.yj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!UJd(this);case 7:return !!this.A&&this.A.i!=0;}return Zhd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.rh=function pKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:gKd(this,GD(b));return;case 2:dKd(this,GD(b));return;case 5:fKd(this,GD(b));return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);!this.A&&(this.A=new F4d(t5,this,7));ttd(this.A,BD(b,14));return;}$hd(this,a-XKd(this.yh()),SKd((c=BD(vjd(this,16),26),!c?this.yh():c),a),b)};_.yh=function qKd(){return eGd(),MFd};_.Ah=function rKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);knd(this,null);return;case 2:VJd(this,null);WJd(this,this.D);return;case 5:fKd(this,null);return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);return;}_hd(this,a-XKd(this.yh()),SKd((b=BD(vjd(this,16),26),!b?this.yh():b),a))};_.xj=function sKd(){var a;return this.G==-1&&(this.G=(a=YJd(this),a?CLd(a.Lh(),this):-1)),this.G};_.yj=function tKd(){return null};_.zj=function uKd(){return YJd(this)};_.uk=function vKd(){return this.v};_.Aj=function wKd(){return $Jd(this)};_.Bj=function xKd(){return this.D!=null?this.D:this.B};_.Cj=function yKd(){return this.F};_.vj=function zKd(a){return aKd(this,a)};_.vk=function AKd(a){this.v=a};_.wk=function BKd(a){bKd(this,a)};_.xk=function CKd(a){this.C=a};_.Kh=function DKd(a){gKd(this,a)};_.Ib=function EKd(){return hKd(this)};_.C=null;_.D=null;_.G=-1;var Y5=ldb(mte,'EClassifierImpl',350);acb(88,350,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,350:1,150:1,473:1,114:1,115:1,676:1},cLd);_.tk=function dLd(a){return $Kd(this,a.Sg())};_.$g=function eLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return $Jd(this);case 4:return null;case 5:return this.F;case 6:if(b)return YJd(this);return UJd(this);case 7:return !this.A&&(this.A=new F4d(t5,this,7)),this.A;case 8:return Acb(),(this.Bb&256)!=0?true:false;case 9:return Acb(),(this.Bb&512)!=0?true:false;case 10:return WKd(this);case 11:return !this.q&&(this.q=new ZTd(m5,this,11,10)),this.q;case 12:return JKd(this);case 13:return NKd(this);case 14:return NKd(this),this.r;case 15:return JKd(this),this.k;case 16:return KKd(this);case 17:return MKd(this);case 18:return OKd(this);case 19:return PKd(this);case 20:return JKd(this),this.o;case 21:return !this.s&&(this.s=new ZTd(s5,this,21,17)),this.s;case 22:return QKd(this);case 23:return LKd(this);}return Yhd(this,a-XKd((eGd(),LFd)),SKd((d=BD(vjd(this,16),26),!d?LFd:d),a),b,c)};_.gh=function fLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?XJd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,6,c);case 11:return !this.q&&(this.q=new ZTd(m5,this,11,10)),Nxd(this.q,a,c);case 21:return !this.s&&(this.s=new ZTd(s5,this,21,17)),Nxd(this.s,a,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),LFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),LFd)),a,c)};_.ih=function gLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 6:return Whd(this,null,6,c);case 7:return !this.A&&(this.A=new F4d(t5,this,7)),Oxd(this.A,a,c);case 11:return !this.q&&(this.q=new ZTd(m5,this,11,10)),Oxd(this.q,a,c);case 21:return !this.s&&(this.s=new ZTd(s5,this,21,17)),Oxd(this.s,a,c);case 22:return Oxd(QKd(this),a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),LFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),LFd)),a,c)};_.kh=function hLd(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 !!$Jd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!UJd(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&&QKd(this.u.a).i!=0&&!(!!this.n&&AMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return JKd(this).i!=0;case 13:return NKd(this).i!=0;case 14:return NKd(this),this.r.i!=0;case 15:return JKd(this),this.k.i!=0;case 16:return KKd(this).i!=0;case 17:return MKd(this).i!=0;case 18:return OKd(this).i!=0;case 19:return PKd(this).i!=0;case 20:return JKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&AMd(this.n);case 23:return LKd(this).i!=0;}return Zhd(this,a-XKd((eGd(),LFd)),SKd((b=BD(vjd(this,16),26),!b?LFd:b),a))};_.nh=function iLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:TKd(this,a);return b?b:wmd(this,a)};_.rh=function jLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:gKd(this,GD(b));return;case 2:dKd(this,GD(b));return;case 5:fKd(this,GD(b));return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);!this.A&&(this.A=new F4d(t5,this,7));ttd(this.A,BD(b,14));return;case 8:_Kd(this,Bcb(DD(b)));return;case 9:aLd(this,Bcb(DD(b)));return;case 10:qwd(WKd(this));ttd(WKd(this),BD(b,14));return;case 11:!this.q&&(this.q=new ZTd(m5,this,11,10));Pxd(this.q);!this.q&&(this.q=new ZTd(m5,this,11,10));ttd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new ZTd(s5,this,21,17));Pxd(this.s);!this.s&&(this.s=new ZTd(s5,this,21,17));ttd(this.s,BD(b,14));return;case 22:Pxd(QKd(this));ttd(QKd(this),BD(b,14));return;}$hd(this,a-XKd((eGd(),LFd)),SKd((c=BD(vjd(this,16),26),!c?LFd:c),a),b)};_.yh=function kLd(){return eGd(),LFd};_.Ah=function lLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);knd(this,null);return;case 2:VJd(this,null);WJd(this,this.D);return;case 5:fKd(this,null);return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);return;case 8:_Kd(this,false);return;case 9:aLd(this,false);return;case 10:!!this.u&&qwd(this.u);return;case 11:!this.q&&(this.q=new ZTd(m5,this,11,10));Pxd(this.q);return;case 21:!this.s&&(this.s=new ZTd(s5,this,21,17));Pxd(this.s);return;case 22:!!this.n&&Pxd(this.n);return;}_hd(this,a-XKd((eGd(),LFd)),SKd((b=BD(vjd(this,16),26),!b?LFd:b),a))};_.Fh=function mLd(){var a,b;JKd(this);NKd(this);KKd(this);MKd(this);OKd(this);PKd(this);LKd(this);jud(NMd(VKd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){lud(this,b)}}return sud(this,a)};_.Wj=function iMd(){Pxd(this)};_.ni=function jMd(a,b){return GLd(this,a,b)};var s9=ldb(tve,'EcoreEList',622);acb(496,622,Lve,kMd);_._h=function lMd(){return false};_._i=function mMd(){return this.c};_.aj=function nMd(){return false};_.Ek=function oMd(){return true};_.gi=function pMd(){return true};_.ki=function qMd(a,b){return b};_.mi=function rMd(){return false};_.c=0;var c9=ldb(tve,'EObjectEList',496);acb(85,496,Lve,sMd);_.aj=function tMd(){return true};_.Ck=function uMd(){return false};_.qk=function vMd(){return true};var Y8=ldb(tve,'EObjectContainmentEList',85);acb(545,85,Lve,wMd);_.bi=function xMd(){this.b=true};_.ej=function yMd(){return this.b};_.Wj=function zMd(){var a;Pxd(this);if(jid(this.e)){a=this.b;this.b=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var X8=ldb(tve,'EObjectContainmentEList/Unsettable',545);acb(1139,545,Lve,EMd);_.hi=function IMd(a,b){var c,d;return c=BD(Rxd(this,a,b),87),jid(this.e)&&BLd(this,new zSd(this.a,7,(eGd(),NFd),leb(b),(d=c.c,JD(d,88)?BD(d,26):WFd),a)),c};_.ij=function JMd(a,b){return BMd(this,BD(a,87),b)};_.jj=function KMd(a,b){return CMd(this,BD(a,87),b)};_.kj=function LMd(a,b,c){return DMd(this,BD(a,87),BD(b,87),c)};_.Yi=function FMd(a,b,c,d,e){switch(a){case 3:{return ALd(this,a,b,c,d,this.i>1)}case 5:{return ALd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new kSd(this.e,a,this.c,b,c,d,true)}}};_.hj=function GMd(){return true};_.ej=function HMd(){return AMd(this)};_.Wj=function MMd(){Pxd(this)};var M5=ldb(mte,'EClassImpl/1',1139);acb(1153,1152,$ue);_.ti=function QMd(a){var b,c,d,e,f,g,h;c=a.wi();if(c!=8){d=PMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Ai();if(h!=null){b=VKd(BD(h,473));!b.c&&(b.c=new sYd);Atd(b.c,a.zi())}g=a.yi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=VKd(e);!b.c&&(b.c=new sYd);rtd(b.c,BD(a.zi(),26))}}break}case 3:{g=a.yi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=VKd(e);!b.c&&(b.c=new sYd);rtd(b.c,BD(a.zi(),26))}}break}case 5:{g=a.yi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=VKd(e);!b.c&&(b.c=new sYd);rtd(b.c,BD(a.zi(),26))}}}break}case 4:{h=a.Ai();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=VKd(e);!b.c&&(b.c=new sYd);Atd(b.c,a.zi())}}break}case 6:{h=a.Ai();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=VKd(e);!b.c&&(b.c=new sYd);Atd(b.c,a.zi())}}}break}}}this.Gk(d)}};_.Gk=function RMd(a){OMd(this,a)};_.b=63;var o7=ldb(mte,'ESuperAdapter',1153);acb(1154,1153,$ue,TMd);_.Gk=function UMd(a){SMd(this,a)};var H5=ldb(mte,'EClassImpl/10',1154);acb(1143,696,Lve);_.Uh=function VMd(a,b){return dud(this,a,b)};_.Vh=function WMd(a){return eud(this,a)};_.Wh=function XMd(a,b){fud(this,a,b)};_.Xh=function YMd(a){gud(this,a)};_.oi=function $Md(a){return iud(this,a)};_.li=function gNd(a,b){return pud(this,a,b)};_.kk=function ZMd(a,b){throw ubb(new agb)};_.Yh=function _Md(){return new Vyd(this)};_.Zh=function aNd(){return new Yyd(this)};_.$h=function bNd(a){return utd(this,a)};_.lk=function cNd(a,b){throw ubb(new agb)};_.Vj=function dNd(a){return this};_.ej=function eNd(){return this.i!=0};_.Wb=function fNd(a){throw ubb(new agb)};_.Wj=function hNd(){throw ubb(new agb)};var r9=ldb(tve,'EcoreEList/UnmodifiableEList',1143);acb(319,1143,Lve,iNd);_.mi=function jNd(){return false};var q9=ldb(tve,'EcoreEList/UnmodifiableEList/FastCompare',319);acb(1146,319,Lve,mNd);_.Xc=function nNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b._i();if(c!=-1){for(d=this.i;c4){if(this.vj(a)){if(this.qk()){d=BD(a,49);c=d.Tg();h=c==this.b&&(this.Ck()?d.Ng(d.Ug(),BD(SKd(rjd(this.b),this._i()).Xj(),26).Aj())==uUd(BD(SKd(rjd(this.b),this._i()),18)).n:-1-d.Ug()==this._i());if(this.Dk()&&!h&&!c&&!!d.Yg()){for(e=0;e1||d==-1)}else{return false}};_.Ck=function xOd(){var a,b,c;b=SKd(rjd(this.b),this._i());if(JD(b,99)){a=BD(b,18);c=uUd(a);return !!c}else{return false}};_.Dk=function yOd(){var a,b;b=SKd(rjd(this.b),this._i());if(JD(b,99)){a=BD(b,18);return (a.Bb&Oje)!=0}else{return false}};_.Xc=function zOd(a){var b,c,d,e;d=this.Pi(a);if(d>=0)return d;if(this.Ek()){for(c=0,e=this.Ui();c=0;--a){iOd(this,a,this.Ni(a))}}return this.Vi()};_.Qc=function LOd(a){var b;if(this.Dk()){for(b=this.Ui()-1;b>=0;--b){iOd(this,b,this.Ni(b))}}return this.Wi(a)};_.Wj=function MOd(){qwd(this)};_.ni=function NOd(a,b){return kOd(this,a,b)};var J8=ldb(tve,'DelegatingEcoreEList',742);acb(1149,742,Qve,TOd);_.Gi=function WOd(a,b){OOd(this,a,BD(b,26))};_.Hi=function XOd(a){POd(this,BD(a,26))};_.Ni=function bPd(a){var b,c;return b=BD(lud(QKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(eGd(),WFd)};_.Si=function gPd(a){var b,c;return b=BD(Sxd(QKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(eGd(),WFd)};_.Ti=function hPd(a,b){return ROd(this,a,BD(b,26))};_._h=function UOd(){return false};_.Yi=function VOd(a,b,c,d,e){return null};_.Ii=function YOd(){return new zPd(this)};_.Ji=function ZOd(){Pxd(QKd(this.a))};_.Ki=function $Od(a){return QOd(this,a)};_.Li=function _Od(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!QOd(this,b)){return false}}return true};_.Mi=function aPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==QKd(this.a).i){for(b=d.Kc(),c=new Ayd(this);b.Ob();){if(PD(b.Pb())!==PD(yyd(c))){return false}}return true}}return false};_.Oi=function cPd(){var a,b,c,d,e;c=1;for(b=new Ayd(QKd(this.a));b.e!=b.i.gc();){a=BD(yyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(eGd(),WFd));c=31*c+(!d?0:ECb(d))}return c};_.Pi=function dPd(a){var b,c,d,e;d=0;for(c=new Ayd(QKd(this.a));c.e!=c.i.gc();){b=BD(yyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(eGd(),WFd)))){return d}++d}return -1};_.Qi=function ePd(){return QKd(this.a).i==0};_.Ri=function fPd(){return null};_.Ui=function iPd(){return QKd(this.a).i};_.Vi=function jPd(){var a,b,c,d,e,f;f=QKd(this.a).i;e=KC(SI,Phe,1,f,5,1);c=0;for(b=new Ayd(QKd(this.a));b.e!=b.i.gc();){a=BD(yyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(eGd(),WFd))}return e};_.Wi=function kPd(a){var b,c,d,e,f,g,h;h=QKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Ayd(QKd(this.a));c.e!=c.i.gc();){b=BD(yyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(eGd(),WFd));NC(a,d++,f)}return a};_.Xi=function lPd(){var a,b,c,d,e;e=new Gfb;e.a+='[';a=QKd(this.a);for(b=0,d=QKd(this.a).i;b>16,e>=0?XJd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,6,c);case 9:return !this.a&&(this.a=new ZTd(f5,this,9,5)),Nxd(this.a,a,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),PFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),PFd)),a,c)};_.ih=function $Pd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 6:return Whd(this,null,6,c);case 7:return !this.A&&(this.A=new F4d(t5,this,7)),Oxd(this.A,a,c);case 9:return !this.a&&(this.a=new ZTd(f5,this,9,5)),Oxd(this.a,a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),PFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),PFd)),a,c)};_.kh=function _Pd(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 !!$Jd(this);case 4:return !!VPd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!UJd(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 Zhd(this,a-XKd((eGd(),PFd)),SKd((b=BD(vjd(this,16),26),!b?PFd:b),a))};_.rh=function aQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:gKd(this,GD(b));return;case 2:dKd(this,GD(b));return;case 5:fKd(this,GD(b));return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);!this.A&&(this.A=new F4d(t5,this,7));ttd(this.A,BD(b,14));return;case 8:GPd(this,Bcb(DD(b)));return;case 9:!this.a&&(this.a=new ZTd(f5,this,9,5));Pxd(this.a);!this.a&&(this.a=new ZTd(f5,this,9,5));ttd(this.a,BD(b,14));return;}$hd(this,a-XKd((eGd(),PFd)),SKd((c=BD(vjd(this,16),26),!c?PFd:c),a),b)};_.yh=function bQd(){return eGd(),PFd};_.Ah=function cQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);knd(this,null);return;case 2:VJd(this,null);WJd(this,this.D);return;case 5:fKd(this,null);return;case 7:!this.A&&(this.A=new F4d(t5,this,7));Pxd(this.A);return;case 8:GPd(this,true);return;case 9:!this.a&&(this.a=new ZTd(f5,this,9,5));Pxd(this.a);return;}_hd(this,a-XKd((eGd(),PFd)),SKd((b=BD(vjd(this,16),26),!b?PFd:b),a))};_.Fh=function dQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return Yhd(this,a-XKd((eGd(),QFd)),SKd((d=BD(vjd(this,16),26),!d?QFd:d),a),b,c)};_.gh=function pQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?hQd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,5,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),QFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),QFd)),a,c)};_.ih=function qQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 5:return Whd(this,null,5,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),QFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),QFd)),a,c)};_.kh=function rQd(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?BD(this.Cb,671):null);}return Zhd(this,a-XKd((eGd(),QFd)),SKd((b=BD(vjd(this,16),26),!b?QFd:b),a))};_.rh=function sQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:knd(this,GD(b));return;case 2:lQd(this,BD(b,19).a);return;case 3:jQd(this,BD(b,1939));return;case 4:kQd(this,GD(b));return;}$hd(this,a-XKd((eGd(),QFd)),SKd((c=BD(vjd(this,16),26),!c?QFd:c),a),b)};_.yh=function tQd(){return eGd(),QFd};_.Ah=function uQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:knd(this,null);return;case 2:lQd(this,0);return;case 3:jQd(this,null);return;case 4:kQd(this,null);return;}_hd(this,a-XKd((eGd(),QFd)),SKd((b=BD(vjd(this,16),26),!b?QFd:b),a))};_.Ib=function wQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var _5=ldb(mte,'EEnumLiteralImpl',573);var b6=ndb(mte,'EFactoryImpl/InternalEDateTimeFormat');acb(489,1,{2014:1},zQd);var a6=ldb(mte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);acb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},PQd);_.Rg=function QQd(a,b,c){var d;c=Whd(this,a,b,c);if(!!this.e&&JD(a,170)){d=HQd(this,this.e);d!=this.c&&(c=LQd(this,d,c))}return c};_.$g=function RQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new sMd(i5,this,1)),this.d;case 2:if(b)return FQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return EQd(this);return this.a;}return Yhd(this,a-XKd((eGd(),SFd)),SKd((d=BD(vjd(this,16),26),!d?SFd:d),a),b,c)};_.ih=function SQd(a,b,c){var d,e;switch(b){case 0:return DQd(this,null,c);case 1:return !this.d&&(this.d=new sMd(i5,this,1)),Oxd(this.d,a,c);case 3:return BQd(this,null,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),SFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),SFd)),a,c)};_.kh=function TQd(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 Zhd(this,a-XKd((eGd(),SFd)),SKd((b=BD(vjd(this,16),26),!b?SFd:b),a))};_.rh=function UQd(a,b){var c;switch(a){case 0:NQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new sMd(i5,this,1));Pxd(this.d);!this.d&&(this.d=new sMd(i5,this,1));ttd(this.d,BD(b,14));return;case 3:KQd(this,BD(b,87));return;case 4:MQd(this,BD(b,835));return;case 5:IQd(this,BD(b,138));return;}$hd(this,a-XKd((eGd(),SFd)),SKd((c=BD(vjd(this,16),26),!c?SFd:c),a),b)};_.yh=function VQd(){return eGd(),SFd};_.Ah=function WQd(a){var b;switch(a){case 0:NQd(this,null);return;case 1:!this.d&&(this.d=new sMd(i5,this,1));Pxd(this.d);return;case 3:KQd(this,null);return;case 4:MQd(this,null);return;case 5:IQd(this,null);return;}_hd(this,a-XKd((eGd(),SFd)),SKd((b=BD(vjd(this,16),26),!b?SFd:b),a))};_.Ib=function XQd(){var a;a=new Vfb(zid(this));a.a+=' (expression: ';OQd(this,a);a.a+=')';return a.a};var AQd;var d6=ldb(mte,'EGenericTypeImpl',241);acb(1968,1963,Rve);_.Wh=function ZQd(a,b){YQd(this,a,b)};_.kk=function $Qd(a,b){YQd(this,this.gc(),a);return b};_.oi=function _Qd(a){return Ut(this.Fi(),a)};_.Yh=function aRd(){return this.Zh()};_.Fi=function bRd(){return new J0d(this)};_.Zh=function cRd(){return this.$h(0)};_.$h=function dRd(a){return this.Fi().Zc(a)};_.lk=function eRd(a,b){ze(this,a,true);return b};_.hi=function fRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ii=function gRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var A8=ldb(tve,'AbstractSequentialInternalEList',1968);acb(486,1968,Rve,lRd);_.oi=function mRd(a){return Ut(this.Fi(),a)};_.Yh=function nRd(){if(this.b==null){return GRd(),GRd(),FRd}return this.Ik()};_.Fi=function oRd(){return new r4d(this.a,this.b)};_.Zh=function pRd(){if(this.b==null){return GRd(),GRd(),FRd}return this.Ik()};_.$h=function qRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw ubb(new pcb(bve+a+', size=0'))}return GRd(),GRd(),FRd}c=this.Ik();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Fj()!=w2||b._i()!=0)&&(!this.Lk()||this.b.lh(b))){f=this.b.ah(b,this.Kk());this.f=(L6d(),BD(b,66).Nj());if(this.f||b.Zj()){if(this.Kk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j.$h(this.k.gc())}if(!this.p?KRd(this):LRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.oi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a._j();c=a.dd();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.oi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a._j();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function SRd(){return HRd(this)};_.Tb=function TRd(){return this.a};_.Ub=function URd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw ubb(new ttb)}};_.Vb=function VRd(){return this.a-1};_.Qb=function WRd(){throw ubb(new agb)};_.Kk=function XRd(){return false};_.Wb=function YRd(a){throw ubb(new agb)};_.Lk=function ZRd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var FRd;var O8=ldb(tve,'EContentsEList/FeatureIteratorImpl',278);acb(697,278,Sve,$Rd);_.Kk=function _Rd(){return true};var P8=ldb(tve,'EContentsEList/ResolvingFeatureIteratorImpl',697);acb(1156,697,Sve,aSd);_.Lk=function bSd(){return false};var f6=ldb(mte,'ENamedElementImpl/1/1',1156);acb(1157,278,Sve,cSd);_.Lk=function dSd(){return false};var g6=ldb(mte,'ENamedElementImpl/1/2',1157);acb(36,143,ave,gSd,hSd,iSd,jSd,kSd,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd);_.$i=function FSd(){return fSd(this)};_.fj=function GSd(){var a;a=fSd(this);if(a){return a.yj()}return null};_.xi=function HSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Wg(this.a._i(),this.a.Fj()));return this.c.Ng(this.b,a)};_.zi=function ISd(){return this.c};_.gj=function JSd(){var a;a=fSd(this);if(a){return a.Jj()}return false};_.b=-1;var j6=ldb(mte,'ENotificationImpl',36);acb(399,283,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,283:1,114:1,115:1},NSd);_.Pg=function OSd(a){return KSd(this,a)};_.$g=function PSd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),f=this.t,f>1||f==-1?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new F4d(t5,this,11)),this.d;case 12:return !this.c&&(this.c=new ZTd(o5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new aTd(this,this)),this.a;case 14:return LSd(this);}return Yhd(this,a-XKd((eGd(),XFd)),SKd((d=BD(vjd(this,16),26),!d?XFd:d),a),b,c)};_.gh=function QSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KSd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,10,c);case 12:return !this.c&&(this.c=new ZTd(o5,this,12,10)),Nxd(this.c,a,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),XFd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),XFd)),a,c)};_.ih=function RSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 9:return qId(this,c);case 10:return Whd(this,null,10,c);case 11:return !this.d&&(this.d=new F4d(t5,this,11)),Oxd(this.d,a,c);case 12:return !this.c&&(this.c=new ZTd(o5,this,12,10)),Oxd(this.c,a,c);case 14:return Oxd(LSd(this),a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),XFd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),XFd)),a,c)};_.kh=function SSd(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&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&LSd(this.a.a).i!=0&&!(!!this.b&<d(this.b));case 14:return !!this.b&<d(this.b);}return Zhd(this,a-XKd((eGd(),XFd)),SKd((b=BD(vjd(this,16),26),!b?XFd:b),a))};_.rh=function TSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:knd(this,GD(b));return;case 2:wId(this,Bcb(DD(b)));return;case 3:xId(this,Bcb(DD(b)));return;case 4:vId(this,BD(b,19).a);return;case 5:yId(this,BD(b,19).a);return;case 8:tId(this,BD(b,138));return;case 9:d=sId(this,BD(b,87),null);!!d&&d.Ei();return;case 11:!this.d&&(this.d=new F4d(t5,this,11));Pxd(this.d);!this.d&&(this.d=new F4d(t5,this,11));ttd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new ZTd(o5,this,12,10));Pxd(this.c);!this.c&&(this.c=new ZTd(o5,this,12,10));ttd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new aTd(this,this));qwd(this.a);!this.a&&(this.a=new aTd(this,this));ttd(this.a,BD(b,14));return;case 14:Pxd(LSd(this));ttd(LSd(this),BD(b,14));return;}$hd(this,a-XKd((eGd(),XFd)),SKd((c=BD(vjd(this,16),26),!c?XFd:c),a),b)};_.yh=function USd(){return eGd(),XFd};_.Ah=function VSd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:knd(this,null);return;case 2:wId(this,true);return;case 3:xId(this,true);return;case 4:vId(this,0);return;case 5:yId(this,1);return;case 8:tId(this,null);return;case 9:c=sId(this,null,null);!!c&&c.Ei();return;case 11:!this.d&&(this.d=new F4d(t5,this,11));Pxd(this.d);return;case 12:!this.c&&(this.c=new ZTd(o5,this,12,10));Pxd(this.c);return;case 13:!!this.a&&qwd(this.a);return;case 14:!!this.b&&Pxd(this.b);return;}_hd(this,a-XKd((eGd(),XFd)),SKd((b=BD(vjd(this,16),26),!b?XFd:b),a))};_.Fh=function WSd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Ayd(LSd(this.a));c.e!=c.i.gc();){b=BD(yyd(c),87);f=(g=b.c,g?g:(eGd(),TFd));NC(a,d++,f)}return a};_.Xi=function uTd(){var a,b,c,d,e;e=new Gfb;e.a+='[';a=LSd(this.a);for(b=0,d=LSd(this.a).i;b1)}case 5:{return ALd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new kSd(this.e,a,this.c,b,c,d,true)}}};_.hj=function RTd(){return true};_.ej=function STd(){return LTd(this)};_.Wj=function XTd(){Pxd(this)};var n6=ldb(mte,'EOperationImpl/2',1340);acb(498,1,{1937:1,498:1},YTd);var p6=ldb(mte,'EPackageImpl/1',498);acb(16,85,Lve,ZTd);_.yk=function $Td(){return this.d};_.zk=function _Td(){return this.b};_.Ck=function aUd(){return true};_.b=0;var a9=ldb(tve,'EObjectContainmentWithInverseEList',16);acb(352,16,Lve,bUd);_.Dk=function cUd(){return true};_.ki=function dUd(a,b){return DLd(this,a,BD(b,56))};var Z8=ldb(tve,'EObjectContainmentWithInverseEList/Resolving',352);acb(298,352,Lve,eUd);_.bi=function fUd(){this.a.tb=null};var q6=ldb(mte,'EPackageImpl/2',298);acb(1227,1,{},gUd);var r6=ldb(mte,'EPackageImpl/3',1227);acb(718,43,ake,jUd);_._b=function kUd(a){return ND(a)?Phb(this,a):!!hrb(this.f,a)};var t6=ldb(mte,'EPackageRegistryImpl',718);acb(509,283,{105:1,92:1,90:1,147:1,191:1,56:1,2016:1,108:1,472:1,49:1,97:1,150:1,509:1,283:1,114:1,115:1},mUd);_.Pg=function nUd(a){return lUd(this,a)};_.$g=function oUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),f=this.t,f>1||f==-1?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return Yhd(this,a-XKd((eGd(),$Fd)),SKd((d=BD(vjd(this,16),26),!d?$Fd:d),a),b,c)};_.gh=function pUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Nxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?lUd(this,c):this.Cb.hh(this,-1-e,null,c)));return Whd(this,a,10,c);}return f=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),$Fd):d),b),66),f.Mj().Pj(this,tjd(this),b-XKd((eGd(),$Fd)),a,c)};_.ih=function qUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 9:return qId(this,c);case 10:return Whd(this,null,10,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),$Fd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),$Fd)),a,c)};_.kh=function rUd(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&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return Zhd(this,a-XKd((eGd(),$Fd)),SKd((b=BD(vjd(this,16),26),!b?$Fd:b),a))};_.yh=function sUd(){return eGd(),$Fd};var u6=ldb(mte,'EParameterImpl',509);acb(99,450,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,450:1,283:1,114:1,115:1,677:1},AUd);_.$g=function BUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Acb(),(this.Bb&256)!=0?true:false;case 3:return Acb(),(this.Bb&512)!=0?true:false;case 4:return leb(this.s);case 5:return leb(this.t);case 6:return Acb(),g=this.t,g>1||g==-1?true:false;case 7:return Acb(),e=this.s,e>=1?true:false;case 8:if(b)return rId(this);return this.r;case 9:return this.q;case 10:return Acb(),(this.Bb&xve)!=0?true:false;case 11:return Acb(),(this.Bb&zve)!=0?true:false;case 12:return Acb(),(this.Bb&Mje)!=0?true:false;case 13:return this.j;case 14:return QId(this);case 15:return Acb(),(this.Bb&yve)!=0?true:false;case 16:return Acb(),(this.Bb&jie)!=0?true:false;case 17:return RId(this);case 18:return Acb(),(this.Bb&kte)!=0?true:false;case 19:return Acb(),f=uUd(this),!!f&&(f.Bb&kte)!=0?true:false;case 20:return Acb(),(this.Bb&Oje)!=0?true:false;case 21:if(b)return uUd(this);return this.b;case 22:if(b)return vUd(this);return tUd(this);case 23:return !this.a&&(this.a=new W4d(a5,this,23)),this.a;}return Yhd(this,a-XKd((eGd(),_Fd)),SKd((d=BD(vjd(this,16),26),!d?_Fd:d),a),b,c)};_.kh=function CUd(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&&GQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&GQd(this.q).i==0);case 10:return (this.Bb&xve)==0;case 11:return (this.Bb&zve)!=0;case 12:return (this.Bb&Mje)!=0;case 13:return this.j!=null;case 14:return QId(this)!=null;case 15:return (this.Bb&yve)!=0;case 16:return (this.Bb&jie)!=0;case 17:return !!RId(this);case 18:return (this.Bb&kte)!=0;case 19:return d=uUd(this),!!d&&(d.Bb&kte)!=0;case 20:return (this.Bb&Oje)==0;case 21:return !!this.b;case 22:return !!tUd(this);case 23:return !!this.a&&this.a.i!=0;}return Zhd(this,a-XKd((eGd(),_Fd)),SKd((b=BD(vjd(this,16),26),!b?_Fd:b),a))};_.rh=function DUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:ZId(this,GD(b));return;case 2:wId(this,Bcb(DD(b)));return;case 3:xId(this,Bcb(DD(b)));return;case 4:vId(this,BD(b,19).a);return;case 5:yId(this,BD(b,19).a);return;case 8:tId(this,BD(b,138));return;case 9:d=sId(this,BD(b,87),null);!!d&&d.Ei();return;case 10:UId(this,Bcb(DD(b)));return;case 11:aJd(this,Bcb(DD(b)));return;case 12:$Id(this,Bcb(DD(b)));return;case 13:VId(this,GD(b));return;case 15:_Id(this,Bcb(DD(b)));return;case 16:XId(this,Bcb(DD(b)));return;case 18:wUd(this,Bcb(DD(b)));return;case 20:zUd(this,Bcb(DD(b)));return;case 21:yUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new W4d(a5,this,23));Pxd(this.a);!this.a&&(this.a=new W4d(a5,this,23));ttd(this.a,BD(b,14));return;}$hd(this,a-XKd((eGd(),_Fd)),SKd((c=BD(vjd(this,16),26),!c?_Fd:c),a),b)};_.yh=function EUd(){return eGd(),_Fd};_.Ah=function FUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:JD(this.Cb,88)&&SMd(VKd(BD(this.Cb,88)),4);knd(this,null);return;case 2:wId(this,true);return;case 3:xId(this,true);return;case 4:vId(this,0);return;case 5:yId(this,1);return;case 8:tId(this,null);return;case 9:c=sId(this,null,null);!!c&&c.Ei();return;case 10:UId(this,true);return;case 11:aJd(this,false);return;case 12:$Id(this,false);return;case 13:this.i=null;WId(this,null);return;case 15:_Id(this,false);return;case 16:XId(this,false);return;case 18:xUd(this,false);JD(this.Cb,88)&&SMd(VKd(BD(this.Cb,88)),2);return;case 20:zUd(this,true);return;case 21:yUd(this,null);return;case 23:!this.a&&(this.a=new W4d(a5,this,23));Pxd(this.a);return;}_hd(this,a-XKd((eGd(),_Fd)),SKd((b=BD(vjd(this,16),26),!b?_Fd:b),a))};_.Fh=function GUd(){vUd(this);X1d(l1d((J6d(),H6d),this));rId(this);this.Bb|=1};_.Kj=function HUd(){return uUd(this)};_.pk=function IUd(){var a;return a=uUd(this),!!a&&(a.Bb&kte)!=0};_.qk=function JUd(){return (this.Bb&kte)!=0};_.rk=function KUd(){return (this.Bb&Oje)!=0};_.mk=function LUd(a,b){this.c=null;return uId(this,a,b)};_.Ib=function MUd(){var a;if((this.Db&64)!=0)return bJd(this);a=new Ifb(bJd(this));a.a+=' (containment: ';Efb(a,(this.Bb&kte)!=0);a.a+=', resolveProxies: ';Efb(a,(this.Bb&Oje)!=0);a.a+=')';return a.a};var v6=ldb(mte,'EReferenceImpl',99);acb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},SUd);_.Fb=function YUd(a){return this===a};_.cd=function $Ud(){return this.b};_.dd=function _Ud(){return this.c};_.Hb=function aVd(){return ECb(this)};_.Th=function cVd(a){NUd(this,GD(a))};_.ed=function dVd(a){return RUd(this,GD(a))};_.$g=function TUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return Yhd(this,a-XKd((eGd(),aGd)),SKd((d=BD(vjd(this,16),26),!d?aGd:d),a),b,c)};_.kh=function UUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return Zhd(this,a-XKd((eGd(),aGd)),SKd((b=BD(vjd(this,16),26),!b?aGd:b),a))};_.rh=function VUd(a,b){var c;switch(a){case 0:OUd(this,GD(b));return;case 1:QUd(this,GD(b));return;}$hd(this,a-XKd((eGd(),aGd)),SKd((c=BD(vjd(this,16),26),!c?aGd:c),a),b)};_.yh=function WUd(){return eGd(),aGd};_.Ah=function XUd(a){var b;switch(a){case 0:PUd(this,null);return;case 1:QUd(this,null);return;}_hd(this,a-XKd((eGd(),aGd)),SKd((b=BD(vjd(this,16),26),!b?aGd:b),a))};_.Rh=function ZUd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:KCb(a)}return this.a};_.Sh=function bVd(a){this.a=a};_.Ib=function eVd(){var a;if((this.Db&64)!=0)return zid(this);a=new Ifb(zid(this));a.a+=' (key: ';Dfb(a,this.b);a.a+=', value: ';Dfb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var w6=ldb(mte,'EStringToStringMapEntryImpl',548);var C9=ndb(tve,'FeatureMap/Entry/Internal');acb(565,1,Tve);_.Nk=function hVd(a){return this.Ok(BD(a,49))};_.Ok=function iVd(a){return this.Nk(a)};_.Fb=function jVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b._j()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_._j=function kVd(){return this.c};_.Hb=function lVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function mVd(){var a,b;a=this.c;b=YJd(a.Gj()).Oh();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var x6=ldb(mte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);acb(776,565,Tve,pVd);_.Ok=function qVd(a){return new pVd(this.c,a)};_.dd=function rVd(){return this.a};_.Pk=function sVd(a,b,c){return nVd(this,a,this.a,b,c)};_.Qk=function tVd(a,b,c){return oVd(this,a,this.a,b,c)};var y6=ldb(mte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);acb(1313,1,{},uVd);_.Oj=function vVd(a,b,c,d,e){var f;f=BD(bid(a,this.b),215);return f.ml(this.a).Vj(d)};_.Pj=function wVd(a,b,c,d,e){var f;f=BD(bid(a,this.b),215);return f.dl(this.a,d,e)};_.Qj=function xVd(a,b,c,d,e){var f;f=BD(bid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function yVd(a,b,c){var d;d=BD(bid(a,this.b),215);return d.ml(this.a).ej()};_.Sj=function zVd(a,b,c,d){var e;e=BD(bid(a,this.b),215);e.ml(this.a).Wb(d)};_.Tj=function AVd(a,b,c){return BD(bid(a,this.b),215).ml(this.a)};_.Uj=function BVd(a,b,c){var d;d=BD(bid(a,this.b),215);d.ml(this.a).Wj()};var z6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1313);acb(89,1,{},DVd,EVd,FVd,GVd);_.Oj=function HVd(a,b,c,d,e){var f;f=b.Bh(c);f==null&&b.Ch(c,f=CVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).rj();case 40:return BD(f,215).jl();}}return f};_.Pj=function IVd(a,b,c,d,e){var f,g;g=b.Bh(c);g==null&&b.Ch(c,g=CVd(this,a));f=BD(g,69).kk(d,e);return f};_.Qj=function JVd(a,b,c,d,e){var f;f=b.Bh(c);f!=null&&(e=BD(f,69).lk(d,e));return e};_.Rj=function KVd(a,b,c){var d;d=b.Bh(c);return d!=null&&BD(d,76).ej()};_.Sj=function LVd(a,b,c,d){var e;e=BD(b.Bh(c),76);!e&&b.Ch(c,e=CVd(this,a));e.Wb(d)};_.Tj=function MVd(a,b,c){var d,e;e=b.Bh(c);e==null&&b.Ch(c,e=CVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Bh(c),15);return new dYd(d)}};_.Uj=function NVd(a,b,c){var d;d=BD(b.Bh(c),76);!d&&b.Ch(c,d=CVd(this,a));d.Wj()};_.b=0;_.e=0;var A6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);acb(504,1,{});_.Pj=function RVd(a,b,c,d,e){throw ubb(new agb)};_.Qj=function SVd(a,b,c,d,e){throw ubb(new agb)};_.Tj=function TVd(a,b,c){return new UVd(this,a,b,c)};var OVd;var h7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);acb(1330,1,uve,UVd);_.Vj=function VVd(a){return this.a.Oj(this.c,this.d,this.b,a,true)};_.ej=function WVd(){return this.a.Rj(this.c,this.d,this.b)};_.Wb=function XVd(a){this.a.Sj(this.c,this.d,this.b,a)};_.Wj=function YVd(){this.a.Uj(this.c,this.d,this.b)};_.b=0;var B6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1330);acb(769,504,{},ZVd);_.Oj=function $Vd(a,b,c,d,e){return Iid(a,a.dh(),a.Ug())==this.b?this.rk()&&d?Xhd(a):a.dh():null};_.Pj=function _Vd(a,b,c,d,e){var f,g;!!a.dh()&&(e=(f=a.Ug(),f>=0?a.Pg(e):a.dh().hh(a,-1-f,null,e)));g=YKd(a.Sg(),this.e);return a.Rg(d,g,e)};_.Qj=function aWd(a,b,c,d,e){var f;f=YKd(a.Sg(),this.e);return a.Rg(null,f,e)};_.Rj=function bWd(a,b,c){var d;d=YKd(a.Sg(),this.e);return !!a.dh()&&a.Ug()==d};_.Sj=function cWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!aKd(this.a,d)){throw ubb(new Bdb(Uve+(JD(d,56)?bLd(BD(d,56).Sg()):hdb(rb(d)))+Vve+this.a+"'"))}e=a.dh();g=YKd(a.Sg(),this.e);if(PD(d)!==PD(e)||a.Ug()!=g&&d!=null){if(k6d(a,BD(d,56)))throw ubb(new Vdb(ote+a.Ib()));i=null;!!e&&(i=(f=a.Ug(),f>=0?a.Pg(i):a.dh().hh(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.fh(a,YKd(h.Sg(),this.b),null,i));i=a.Rg(h,g,i);!!i&&i.Ei()}else{a.Kg()&&a.Lg()&&Phd(a,new iSd(a,1,g,d,d))}};_.Uj=function dWd(a,b,c){var d,e,f,g;d=a.dh();if(d){g=(e=a.Ug(),e>=0?a.Pg(null):a.dh().hh(a,-1-e,null,null));f=YKd(a.Sg(),this.e);g=a.Rg(null,f,g);!!g&&g.Ei()}else{a.Kg()&&a.Lg()&&Phd(a,new ySd(a,1,this.e,null,null))}};_.rk=function eWd(){return false};var D6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);acb(1314,769,{},fWd);_.rk=function gWd(){return true};var C6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1314);acb(563,504,{});_.Oj=function jWd(a,b,c,d,e){var f;return f=b.Bh(c),f==null?this.b:PD(f)===PD(OVd)?null:f};_.Rj=function kWd(a,b,c){var d;d=b.Bh(c);return d!=null&&(PD(d)===PD(OVd)||!pb(d,this.b))};_.Sj=function lWd(a,b,c,d){var e,f;if(a.Kg()&&a.Lg()){e=(f=b.Bh(c),f==null?this.b:PD(f)===PD(OVd)?null:f);if(d==null){if(this.c!=null){b.Ch(c,null);d=this.b}else this.b!=null?b.Ch(c,OVd):b.Ch(c,null)}else{this.Rk(d);b.Ch(c,d)}Phd(a,this.d.Sk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Ch(c,null):this.b!=null?b.Ch(c,OVd):b.Ch(c,null)}else{this.Rk(d);b.Ch(c,d)}}};_.Uj=function mWd(a,b,c){var d,e;if(a.Kg()&&a.Lg()){d=(e=b.Bh(c),e==null?this.b:PD(e)===PD(OVd)?null:e);b.Dh(c);Phd(a,this.d.Sk(a,1,this.e,d,this.b))}else{b.Dh(c)}};_.Rk=function nWd(a){throw ubb(new Adb)};var S6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);acb(Wve,1,{},yWd);_.Sk=function zWd(a,b,c,d,e){return new ySd(a,b,c,d,e)};_.Tk=function AWd(a,b,c,d,e,f){return new ASd(a,b,c,d,e,f)};var oWd,pWd,qWd,rWd,sWd,tWd,uWd,vWd,wWd;var M6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',Wve);acb(1331,Wve,{},BWd);_.Sk=function CWd(a,b,c,d,e){return new DSd(a,b,c,Bcb(DD(d)),Bcb(DD(e)))};_.Tk=function DWd(a,b,c,d,e,f){return new ESd(a,b,c,Bcb(DD(d)),Bcb(DD(e)),f)};var E6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1331);acb(1332,Wve,{},EWd);_.Sk=function FWd(a,b,c,d,e){return new mSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Tk=function GWd(a,b,c,d,e,f){return new nSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var F6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1332);acb(1333,Wve,{},HWd);_.Sk=function IWd(a,b,c,d,e){return new oSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Tk=function JWd(a,b,c,d,e,f){return new pSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var G6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1333);acb(1334,Wve,{},KWd);_.Sk=function LWd(a,b,c,d,e){return new qSd(a,b,c,Ddb(ED(d)),Ddb(ED(e)))};_.Tk=function MWd(a,b,c,d,e,f){return new rSd(a,b,c,Ddb(ED(d)),Ddb(ED(e)),f)};var H6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1334);acb(1335,Wve,{},NWd);_.Sk=function OWd(a,b,c,d,e){return new sSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Tk=function PWd(a,b,c,d,e,f){return new tSd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var I6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1335);acb(1336,Wve,{},QWd);_.Sk=function RWd(a,b,c,d,e){return new uSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Tk=function SWd(a,b,c,d,e,f){return new vSd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var J6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1336);acb(1337,Wve,{},TWd);_.Sk=function UWd(a,b,c,d,e){return new wSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Tk=function VWd(a,b,c,d,e,f){return new xSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var K6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1337);acb(1338,Wve,{},WWd);_.Sk=function XWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Tk=function YWd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var L6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1338);acb(1316,563,{},ZWd);_.Rk=function $Wd(a){if(!this.a.vj(a)){throw ubb(new Bdb(Uve+rb(a)+Vve+this.a+"'"))}};var N6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1316);acb(1317,563,{},_Wd);_.Rk=function aXd(a){};var O6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1317);acb(770,563,{});_.Rj=function bXd(a,b,c){var d;d=b.Bh(c);return d!=null};_.Sj=function cXd(a,b,c,d){var e,f;if(a.Kg()&&a.Lg()){e=true;f=b.Bh(c);if(f==null){e=false;f=this.b}else PD(f)===PD(OVd)&&(f=null);if(d==null){if(this.c!=null){b.Ch(c,null);d=this.b}else{b.Ch(c,OVd)}}else{this.Rk(d);b.Ch(c,d)}Phd(a,this.d.Tk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Ch(c,null):b.Ch(c,OVd)}else{this.Rk(d);b.Ch(c,d)}}};_.Uj=function dXd(a,b,c){var d,e;if(a.Kg()&&a.Lg()){d=true;e=b.Bh(c);if(e==null){d=false;e=this.b}else PD(e)===PD(OVd)&&(e=null);b.Dh(c);Phd(a,this.d.Tk(a,2,this.e,e,this.b,d))}else{b.Dh(c)}};var R6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);acb(1318,770,{},eXd);_.Rk=function fXd(a){if(!this.a.vj(a)){throw ubb(new Bdb(Uve+rb(a)+Vve+this.a+"'"))}};var P6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1318);acb(1319,770,{},gXd);_.Rk=function hXd(a){};var Q6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1319);acb(398,504,{},iXd);_.Oj=function kXd(a,b,c,d,e){var f,g,h,i,j;j=b.Bh(c);if(this.Jj()&&PD(j)===PD(OVd)){return null}else if(this.rk()&&d&&j!=null){h=BD(j,49);if(h.jh()){i=sid(a,h);if(h!=i){if(!aKd(this.a,i)){throw ubb(new Bdb(Uve+rb(i)+Vve+this.a+"'"))}b.Ch(c,j=i);if(this.qk()){f=BD(i,49);g=h.hh(a,!this.b?-1-YKd(a.Sg(),this.e):YKd(h.Sg(),this.b),null,null);!f.dh()&&(g=f.fh(a,!this.b?-1-YKd(a.Sg(),this.e):YKd(f.Sg(),this.b),null,g));!!g&&g.Ei()}a.Kg()&&a.Lg()&&Phd(a,new ySd(a,9,this.e,h,i))}}return j}else{return j}};_.Pj=function lXd(a,b,c,d,e){var f,g;g=b.Bh(c);PD(g)===PD(OVd)&&(g=null);b.Ch(c,d);if(this.aj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.hh(a,YKd(f.Sg(),this.b),null,e)}}else this.qk()&&g!=null&&(e=BD(g,49).hh(a,-1-YKd(a.Sg(),this.e),null,e));if(a.Kg()&&a.Lg()){!e&&(e=new Dxd(4));e.Di(new ySd(a,1,this.e,g,d))}return e};_.Qj=function mXd(a,b,c,d,e){var f;f=b.Bh(c);PD(f)===PD(OVd)&&(f=null);b.Dh(c);if(a.Kg()&&a.Lg()){!e&&(e=new Dxd(4));this.Jj()?e.Di(new ySd(a,2,this.e,f,null)):e.Di(new ySd(a,1,this.e,f,null))}return e};_.Rj=function nXd(a,b,c){var d;d=b.Bh(c);return d!=null};_.Sj=function oXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!aKd(this.a,d)){throw ubb(new Bdb(Uve+(JD(d,56)?bLd(BD(d,56).Sg()):hdb(rb(d)))+Vve+this.a+"'"))}i=b.Bh(c);h=i!=null;this.Jj()&&PD(i)===PD(OVd)&&(i=null);g=null;if(this.aj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.hh(a,YKd(e.Sg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.fh(a,YKd(e.Sg(),this.b),null,g)}}}else if(this.qk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).hh(a,-1-YKd(a.Sg(),this.e),null,g));d!=null&&(g=BD(d,49).fh(a,-1-YKd(a.Sg(),this.e),null,g))}}d==null&&this.Jj()?b.Ch(c,OVd):b.Ch(c,d);if(a.Kg()&&a.Lg()){f=new ASd(a,1,this.e,i,d,this.Jj()&&!h);if(!g){Phd(a,f)}else{g.Di(f);g.Ei()}}else !!g&&g.Ei()};_.Uj=function pXd(a,b,c){var d,e,f,g,h;h=b.Bh(c);g=h!=null;this.Jj()&&PD(h)===PD(OVd)&&(h=null);f=null;if(h!=null){if(this.aj()){d=BD(h,49);f=d.hh(a,YKd(d.Sg(),this.b),null,f)}else this.qk()&&(f=BD(h,49).hh(a,-1-YKd(a.Sg(),this.e),null,f))}b.Dh(c);if(a.Kg()&&a.Lg()){e=new ASd(a,this.Jj()?2:1,this.e,h,null,g);if(!f){Phd(a,e)}else{f.Di(e);f.Ei()}}else !!f&&f.Ei()};_.aj=function qXd(){return false};_.qk=function rXd(){return false};_.rk=function sXd(){return false};_.Jj=function tXd(){return false};var g7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);acb(564,398,{},uXd);_.qk=function vXd(){return true};var $6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);acb(1322,564,{},wXd);_.rk=function xXd(){return true};var T6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1322);acb(772,564,{},yXd);_.Jj=function zXd(){return true};var V6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);acb(1324,772,{},AXd);_.rk=function BXd(){return true};var U6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1324);acb(640,564,{},CXd);_.aj=function DXd(){return true};var Z6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);acb(1323,640,{},EXd);_.rk=function FXd(){return true};var W6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1323);acb(773,640,{},GXd);_.Jj=function HXd(){return true};var Y6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);acb(1325,773,{},IXd);_.rk=function JXd(){return true};var X6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1325);acb(641,398,{},KXd);_.rk=function LXd(){return true};var c7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);acb(1326,641,{},MXd);_.Jj=function NXd(){return true};var _6=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1326);acb(774,641,{},OXd);_.aj=function PXd(){return true};var b7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);acb(1327,774,{},QXd);_.Jj=function RXd(){return true};var a7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1327);acb(1320,398,{},SXd);_.Jj=function TXd(){return true};var d7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1320);acb(771,398,{},UXd);_.aj=function VXd(){return true};var f7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);acb(1321,771,{},WXd);_.Jj=function XXd(){return true};var e7=ldb(mte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1321);acb(775,565,Tve,$Xd);_.Ok=function _Xd(a){return new $Xd(this.a,this.c,a)};_.dd=function aYd(){return this.b};_.Pk=function bYd(a,b,c){return YXd(this,a,this.b,c)};_.Qk=function cYd(a,b,c){return ZXd(this,a,this.b,c)};var i7=ldb(mte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);acb(1328,1,uve,dYd);_.Vj=function eYd(a){return this.a};_.ej=function fYd(){return JD(this.a,95)?BD(this.a,95).ej():!this.a.dc()};_.Wb=function gYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Wj=function hYd(){JD(this.a,95)?BD(this.a,95).Wj():this.a.$b()};var j7=ldb(mte,'EStructuralFeatureImpl/SettingMany',1328);acb(1329,565,Tve,iYd);_.Nk=function jYd(a){return new nYd((L8d(),K8d),this.b.Hh(this.a,a))};_.dd=function kYd(){return null};_.Pk=function lYd(a,b,c){return c};_.Qk=function mYd(a,b,c){return c};var k7=ldb(mte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1329);acb(642,565,Tve,nYd);_.Nk=function oYd(a){return new nYd(this.c,a)};_.dd=function pYd(){return this.a};_.Pk=function qYd(a,b,c){return c};_.Qk=function rYd(a,b,c){return c};var l7=ldb(mte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);acb(391,497,jue,sYd);_.qi=function tYd(a){return KC(b5,Phe,26,a,0,1)};_.mi=function uYd(){return false};var n7=ldb(mte,'ESuperAdapter/1',391);acb(445,439,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,835:1,49:1,97:1,150:1,445:1,114:1,115:1},wYd);_.$g=function xYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new FYd(this,i5,this)),this.a;}return Yhd(this,a-XKd((eGd(),dGd)),SKd((d=BD(vjd(this,16),26),!d?dGd:d),a),b,c)};_.ih=function yYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new ZTd(_4,this,0,3)),Oxd(this.Ab,a,c);case 2:return !this.a&&(this.a=new FYd(this,i5,this)),Oxd(this.a,a,c);}return e=BD(SKd((d=BD(vjd(this,16),26),!d?(eGd(),dGd):d),b),66),e.Mj().Qj(this,tjd(this),b-XKd((eGd(),dGd)),a,c)};_.kh=function zYd(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 Zhd(this,a-XKd((eGd(),dGd)),SKd((b=BD(vjd(this,16),26),!b?dGd:b),a))};_.rh=function AYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));ttd(this.Ab,BD(b,14));return;case 1:knd(this,GD(b));return;case 2:!this.a&&(this.a=new FYd(this,i5,this));Pxd(this.a);!this.a&&(this.a=new FYd(this,i5,this));ttd(this.a,BD(b,14));return;}$hd(this,a-XKd((eGd(),dGd)),SKd((c=BD(vjd(this,16),26),!c?dGd:c),a),b)};_.yh=function BYd(){return eGd(),dGd};_.Ah=function CYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new ZTd(_4,this,0,3));Pxd(this.Ab);return;case 1:knd(this,null);return;case 2:!this.a&&(this.a=new FYd(this,i5,this));Pxd(this.a);return;}_hd(this,a-XKd((eGd(),dGd)),SKd((b=BD(vjd(this,16),26),!b?dGd:b),a))};var t7=ldb(mte,'ETypeParameterImpl',445);acb(446,85,Lve,FYd);_.bj=function GYd(a,b){return DYd(this,BD(a,87),b)};_.cj=function HYd(a,b){return EYd(this,BD(a,87),b)};var p7=ldb(mte,'ETypeParameterImpl/1',446);acb(634,43,ake,IYd);_.ec=function JYd(){return new MYd(this)};var s7=ldb(mte,'ETypeParameterImpl/2',634);acb(556,_he,aie,MYd);_.Fc=function NYd(a){return KYd(this,BD(a,87))};_.Gc=function OYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Qhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function PYd(){Thb(this.a)};_.Hc=function QYd(a){return Lhb(this.a,a)};_.Kc=function RYd(){var a;return a=new mib((new dib(this.a)).a),new UYd(a)};_.Mc=function SYd(a){return LYd(this,a)};_.gc=function TYd(){return Uhb(this.a)};var r7=ldb(mte,'ETypeParameterImpl/2/1',556);acb(557,1,Xhe,UYd);_.Nb=function VYd(a){Qrb(this,a)};_.Pb=function XYd(){return BD(kib(this.a).cd(),87)};_.Ob=function WYd(){return this.a.b};_.Qb=function YYd(){lib(this.a)};var q7=ldb(mte,'ETypeParameterImpl/2/1/1',557);acb(1275,43,ake,ZYd);_._b=function $Yd(a){return ND(a)?Phb(this,a):!!hrb(this.f,a)};_.xc=function _Yd(a){var b,c;b=ND(a)?Ohb(this,a):Wd(hrb(this.f,a));if(JD(b,836)){c=BD(b,836);b=c.$j();Qhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(b5d(),a5d):null};var v7=ldb(mte,'EValidatorRegistryImpl',1275);acb(1312,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1940:1,49:1,97:1,150:1,114:1,115:1},hZd);_.Hh=function iZd(a,b){switch(a.xj()){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:ecb(b);case 25:return bZd(b);case 27:return cZd(b);case 28:return dZd(b);case 29:return b==null?null:xQd(Kmd[0],BD(b,199));case 41:return b==null?'':gdb(BD(b,289));case 42:return ecb(b);case 50:return GD(b);default:throw ubb(new Vdb(pte+a.ne()+qte));}};_.Ih=function jZd(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=YJd(a),m?CLd(m.Lh(),a):-1)),a.G){case 0:return c=new JJd,c;case 1:return b=new MHd,b;case 2:return d=new cLd,d;case 4:return e=new HPd,e;case 5:return f=new XPd,f;case 6:return g=new mQd,g;case 7:return h=new Vmd,h;case 10:return j=new HGd,j;case 11:return k=new NSd,k;case 12:return l=new _nd,l;case 13:return n=new mUd,n;case 14:return o=new AUd,o;case 17:return p=new SUd,p;case 18:return i=new PQd,i;case 19:return q=new wYd,q;default:throw ubb(new Vdb(tte+a.zb+qte));}};_.Jh=function kZd(a,b){switch(a.xj()){case 20:return b==null?null:new sgb(b);case 21:return b==null?null:new Xgb(b);case 23:case 22:return b==null?null:aZd(b);case 26:case 24:return b==null?null:Rcb(Hcb(b,-128,127)<<24>>24);case 25:return Smd(b);case 27:return eZd(b);case 28:return fZd(b);case 29:return gZd(b);case 32:case 31:return b==null?null:Gcb(b);case 38:case 37:return b==null?null:new Ndb(b);case 40:case 39:return b==null?null:leb(Hcb(b,Mie,Jhe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:zeb(Icb(b));case 49:case 48:return b==null?null:Veb(Hcb(b,Yve,32767)<<16>>16);case 50:return b;default:throw ubb(new Vdb(pte+a.ne()+qte));}};var w7=ldb(mte,'EcoreFactoryImpl',1312);acb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1938:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},vZd);_.gb=false;_.hb=false;var mZd,nZd=false;var n8=ldb(mte,'EcorePackageImpl',547);acb(1183,1,{836:1},zZd);_.$j=function AZd(){return D6d(),C6d};var H7=ldb(mte,'EcorePackageImpl/1',1183);acb(1192,1,jwe,BZd);_.vj=function CZd(a){return JD(a,147)};_.wj=function DZd(a){return KC(j5,Phe,147,a,0,1)};var x7=ldb(mte,'EcorePackageImpl/10',1192);acb(1193,1,jwe,EZd);_.vj=function FZd(a){return JD(a,191)};_.wj=function GZd(a){return KC(k5,Phe,191,a,0,1)};var y7=ldb(mte,'EcorePackageImpl/11',1193);acb(1194,1,jwe,HZd);_.vj=function IZd(a){return JD(a,56)};_.wj=function JZd(a){return KC(l5,Phe,56,a,0,1)};var z7=ldb(mte,'EcorePackageImpl/12',1194);acb(1195,1,jwe,KZd);_.vj=function LZd(a){return JD(a,399)};_.wj=function MZd(a){return KC(m5,Jve,59,a,0,1)};var A7=ldb(mte,'EcorePackageImpl/13',1195);acb(1196,1,jwe,NZd);_.vj=function OZd(a){return JD(a,235)};_.wj=function PZd(a){return KC(n5,Phe,235,a,0,1)};var B7=ldb(mte,'EcorePackageImpl/14',1196);acb(1197,1,jwe,QZd);_.vj=function RZd(a){return JD(a,509)};_.wj=function SZd(a){return KC(o5,Phe,2016,a,0,1)};var C7=ldb(mte,'EcorePackageImpl/15',1197);acb(1198,1,jwe,TZd);_.vj=function UZd(a){return JD(a,99)};_.wj=function VZd(a){return KC(p5,Ive,18,a,0,1)};var D7=ldb(mte,'EcorePackageImpl/16',1198);acb(1199,1,jwe,WZd);_.vj=function XZd(a){return JD(a,170)};_.wj=function YZd(a){return KC(s5,Ive,170,a,0,1)};var E7=ldb(mte,'EcorePackageImpl/17',1199);acb(1200,1,jwe,ZZd);_.vj=function $Zd(a){return JD(a,472)};_.wj=function _Zd(a){return KC(u5,Phe,472,a,0,1)};var F7=ldb(mte,'EcorePackageImpl/18',1200);acb(1201,1,jwe,a$d);_.vj=function b$d(a){return JD(a,548)};_.wj=function c$d(a){return KC(w6,fve,548,a,0,1)};var G7=ldb(mte,'EcorePackageImpl/19',1201);acb(1184,1,jwe,d$d);_.vj=function e$d(a){return JD(a,322)};_.wj=function f$d(a){return KC(a5,Ive,34,a,0,1)};var S7=ldb(mte,'EcorePackageImpl/2',1184);acb(1202,1,jwe,g$d);_.vj=function h$d(a){return JD(a,241)};_.wj=function i$d(a){return KC(i5,Pve,87,a,0,1)};var I7=ldb(mte,'EcorePackageImpl/20',1202);acb(1203,1,jwe,j$d);_.vj=function k$d(a){return JD(a,445)};_.wj=function l$d(a){return KC(t5,Phe,835,a,0,1)};var J7=ldb(mte,'EcorePackageImpl/21',1203);acb(1204,1,jwe,m$d);_.vj=function n$d(a){return KD(a)};_.wj=function o$d(a){return KC(wI,iie,476,a,8,1)};var K7=ldb(mte,'EcorePackageImpl/22',1204);acb(1205,1,jwe,p$d);_.vj=function q$d(a){return JD(a,190)};_.wj=function r$d(a){return KC(SD,iie,190,a,0,2)};var L7=ldb(mte,'EcorePackageImpl/23',1205);acb(1206,1,jwe,s$d);_.vj=function t$d(a){return JD(a,217)};_.wj=function u$d(a){return KC(xI,iie,217,a,0,1)};var M7=ldb(mte,'EcorePackageImpl/24',1206);acb(1207,1,jwe,v$d);_.vj=function w$d(a){return JD(a,172)};_.wj=function x$d(a){return KC(yI,iie,172,a,0,1)};var N7=ldb(mte,'EcorePackageImpl/25',1207);acb(1208,1,jwe,y$d);_.vj=function z$d(a){return JD(a,199)};_.wj=function A$d(a){return KC($J,iie,199,a,0,1)};var O7=ldb(mte,'EcorePackageImpl/26',1208);acb(1209,1,jwe,B$d);_.vj=function C$d(a){return false};_.wj=function D$d(a){return KC(N4,Phe,2109,a,0,1)};var P7=ldb(mte,'EcorePackageImpl/27',1209);acb(1210,1,jwe,E$d);_.vj=function F$d(a){return LD(a)};_.wj=function G$d(a){return KC(BI,iie,333,a,7,1)};var Q7=ldb(mte,'EcorePackageImpl/28',1210);acb(1211,1,jwe,H$d);_.vj=function I$d(a){return JD(a,58)};_.wj=function J$d(a){return KC(S4,_le,58,a,0,1)};var R7=ldb(mte,'EcorePackageImpl/29',1211);acb(1185,1,jwe,K$d);_.vj=function L$d(a){return JD(a,510)};_.wj=function M$d(a){return KC(_4,{3:1,4:1,5:1,1933:1},590,a,0,1)};var b8=ldb(mte,'EcorePackageImpl/3',1185);acb(1212,1,jwe,N$d);_.vj=function O$d(a){return JD(a,573)};_.wj=function P$d(a){return KC(T4,Phe,1939,a,0,1)};var T7=ldb(mte,'EcorePackageImpl/30',1212);acb(1213,1,jwe,Q$d);_.vj=function R$d(a){return JD(a,153)};_.wj=function S$d(a){return KC(N9,_le,153,a,0,1)};var U7=ldb(mte,'EcorePackageImpl/31',1213);acb(1214,1,jwe,T$d);_.vj=function U$d(a){return JD(a,72)};_.wj=function V$d(a){return KC(D9,kwe,72,a,0,1)};var V7=ldb(mte,'EcorePackageImpl/32',1214);acb(1215,1,jwe,W$d);_.vj=function X$d(a){return JD(a,155)};_.wj=function Y$d(a){return KC(FI,iie,155,a,0,1)};var W7=ldb(mte,'EcorePackageImpl/33',1215);acb(1216,1,jwe,Z$d);_.vj=function $$d(a){return JD(a,19)};_.wj=function _$d(a){return KC(JI,iie,19,a,0,1)};var X7=ldb(mte,'EcorePackageImpl/34',1216);acb(1217,1,jwe,a_d);_.vj=function b_d(a){return JD(a,289)};_.wj=function c_d(a){return KC(AI,Phe,289,a,0,1)};var Y7=ldb(mte,'EcorePackageImpl/35',1217);acb(1218,1,jwe,d_d);_.vj=function e_d(a){return JD(a,162)};_.wj=function f_d(a){return KC(MI,iie,162,a,0,1)};var Z7=ldb(mte,'EcorePackageImpl/36',1218);acb(1219,1,jwe,g_d);_.vj=function h_d(a){return JD(a,83)};_.wj=function i_d(a){return KC(DK,Phe,83,a,0,1)};var $7=ldb(mte,'EcorePackageImpl/37',1219);acb(1220,1,jwe,j_d);_.vj=function k_d(a){return JD(a,591)};_.wj=function l_d(a){return KC(u8,Phe,591,a,0,1)};var _7=ldb(mte,'EcorePackageImpl/38',1220);acb(1221,1,jwe,m_d);_.vj=function n_d(a){return false};_.wj=function o_d(a){return KC(t8,Phe,2110,a,0,1)};var a8=ldb(mte,'EcorePackageImpl/39',1221);acb(1186,1,jwe,p_d);_.vj=function q_d(a){return JD(a,88)};_.wj=function r_d(a){return KC(b5,Phe,26,a,0,1)};var h8=ldb(mte,'EcorePackageImpl/4',1186);acb(1222,1,jwe,s_d);_.vj=function t_d(a){return JD(a,184)};_.wj=function u_d(a){return KC(UI,iie,184,a,0,1)};var c8=ldb(mte,'EcorePackageImpl/40',1222);acb(1223,1,jwe,v_d);_.vj=function w_d(a){return ND(a)};_.wj=function x_d(a){return KC(ZI,iie,2,a,6,1)};var d8=ldb(mte,'EcorePackageImpl/41',1223);acb(1224,1,jwe,y_d);_.vj=function z_d(a){return JD(a,588)};_.wj=function A_d(a){return KC(W4,Phe,588,a,0,1)};var e8=ldb(mte,'EcorePackageImpl/42',1224);acb(1225,1,jwe,B_d);_.vj=function C_d(a){return false};_.wj=function D_d(a){return KC(U4,iie,2111,a,0,1)};var f8=ldb(mte,'EcorePackageImpl/43',1225);acb(1226,1,jwe,E_d);_.vj=function F_d(a){return JD(a,42)};_.wj=function G_d(a){return KC(CK,uie,42,a,0,1)};var g8=ldb(mte,'EcorePackageImpl/44',1226);acb(1187,1,jwe,H_d);_.vj=function I_d(a){return JD(a,138)};_.wj=function J_d(a){return KC(c5,Phe,138,a,0,1)};var i8=ldb(mte,'EcorePackageImpl/5',1187);acb(1188,1,jwe,K_d);_.vj=function L_d(a){return JD(a,148)};_.wj=function M_d(a){return KC(e5,Phe,148,a,0,1)};var j8=ldb(mte,'EcorePackageImpl/6',1188);acb(1189,1,jwe,N_d);_.vj=function O_d(a){return JD(a,457)};_.wj=function P_d(a){return KC(g5,Phe,671,a,0,1)};var k8=ldb(mte,'EcorePackageImpl/7',1189);acb(1190,1,jwe,Q_d);_.vj=function R_d(a){return JD(a,573)};_.wj=function S_d(a){return KC(f5,Phe,678,a,0,1)};var l8=ldb(mte,'EcorePackageImpl/8',1190);acb(1191,1,jwe,T_d);_.vj=function U_d(a){return JD(a,471)};_.wj=function V_d(a){return KC(h5,Phe,471,a,0,1)};var m8=ldb(mte,'EcorePackageImpl/9',1191);acb(xve,1981,dve,Z_d);_.ai=function $_d(a,b){W_d(this,BD(b,416))};_.ei=function __d(a,b){X_d(this,a,BD(b,416))};var p8=ldb(mte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',xve);acb(1025,143,ave,a0d);_.zi=function b0d(){return this.a.a};var o8=ldb(mte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1025);acb(1052,1051,{},d0d);var s8=ldb('org.eclipse.emf.ecore.plugin','EcorePlugin',1052);var u8=ndb(lwe,'Resource');acb(781,1377,mwe);_.Xk=function h0d(a){};_.Yk=function i0d(a){};_.Uk=function j0d(){return !this.a&&(this.a=new u0d(this)),this.a};_.Vk=function k0d(a){var b,c,d,e,f;d=a.length;if(d>0){ACb(0,a.length);if(a.charCodeAt(0)==47){f=new Rkb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return f0d(this,a)};_.Wk=function l0d(){return this.c};_.Ib=function m0d(){var a;return gdb(this.fm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var y8=ldb(nwe,'ResourceImpl',781);acb(1378,781,mwe,n0d);var v8=ldb(nwe,'BinaryResourceImpl',1378);acb(1168,694,kue);_.ri=function q0d(a){return JD(a,56)?o0d(this,BD(a,56)):JD(a,591)?new Ayd(BD(a,591).Uk()):PD(a)===PD(this.f)?BD(a,14).Kc():(GCd(),FCd.a)};_.Ob=function r0d(){return p0d(this)};_.a=false;var y9=ldb(tve,'EcoreUtil/ContentTreeIterator',1168);acb(1379,1168,kue,s0d);_.ri=function t0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new x6d(BD(a,56))};var w8=ldb(nwe,'ResourceImpl/5',1379);acb(648,1993,Kve,u0d);_.Hc=function v0d(a){return this.i<=4?kud(this,a):JD(a,49)&&BD(a,49).Yg()==this.a};_.ai=function w0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.ci=function x0d(a,b){a==0?this.a.b||(this.a.b=true,null):vtd(this,a,b)};_.ei=function y0d(a,b){};_.fi=function z0d(a,b,c){};_._i=function A0d(){return 2};_.zi=function B0d(){return this.a};_.aj=function C0d(){return true};_.bj=function D0d(a,b){var c;c=BD(a,49);b=c.vh(this.a,b);return b};_.cj=function E0d(a,b){var c;c=BD(a,49);return c.vh(null,b)};_.dj=function F0d(){return false};_.gi=function G0d(){return true};_.qi=function H0d(a){return KC(l5,Phe,56,a,0,1)};_.mi=function I0d(){return false};var x8=ldb(nwe,'ResourceImpl/ContentsEList',648);acb(956,1963,Gie,J0d);_.Zc=function K0d(a){return this.a.$h(a)};_.gc=function L0d(){return this.a.gc()};var z8=ldb(tve,'AbstractSequentialInternalEList/1',956);var F6d,G6d,H6d,I6d;acb(624,1,{},t1d);var M0d,N0d;var F8=ldb(tve,'BasicExtendedMetaData',624);acb(1159,1,{},x1d);_.Zk=function y1d(){return null};_.$k=function z1d(){this.a==-2&&v1d(this,R0d(this.d,this.b));return this.a};_._k=function A1d(){return null};_.al=function B1d(){return lmb(),lmb(),imb};_.ne=function C1d(){this.c==Cwe&&w1d(this,W0d(this.d,this.b));return this.c};_.bl=function D1d(){return 0};_.a=-2;_.c=Cwe;var B8=ldb(tve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1159);acb(1160,1,{},J1d);_.Zk=function K1d(){this.a==(O0d(),M0d)&&E1d(this,Q0d(this.f,this.b));return this.a};_.$k=function L1d(){return 0};_._k=function M1d(){this.c==(O0d(),M0d)&&F1d(this,U0d(this.f,this.b));return this.c};_.al=function N1d(){!this.d&&G1d(this,V0d(this.f,this.b));return this.d};_.ne=function O1d(){this.e==Cwe&&H1d(this,W0d(this.f,this.b));return this.e};_.bl=function P1d(){this.g==-2&&I1d(this,Z0d(this.f,this.b));return this.g};_.e=Cwe;_.g=-2;var C8=ldb(tve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1160);acb(1158,1,{},T1d);_.b=false;_.c=false;var D8=ldb(tve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1158);acb(1161,1,{},e2d);_.c=-2;_.e=Cwe;_.f=Cwe;var E8=ldb(tve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1161);acb(585,622,Lve,f2d);_._i=function g2d(){return this.c};_.Ek=function h2d(){return false};_.ki=function i2d(a,b){return b};_.c=0;var S8=ldb(tve,'EDataTypeEList',585);var N9=ndb(tve,'FeatureMap');acb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1936:1,69:1,95:1},p3d);_.Vc=function q3d(a,b){j2d(this,a,BD(b,72))};_.Fc=function r3d(a){return m2d(this,BD(a,72))};_.Xh=function w3d(a){r2d(this,BD(a,72))};_.bj=function H3d(a,b){return J2d(this,BD(a,72),b)};_.cj=function I3d(a,b){return L2d(this,BD(a,72),b)};_.hi=function K3d(a,b){return R2d(this,a,b)};_.ki=function M3d(a,b){return W2d(this,a,BD(b,72))};_._c=function O3d(a,b){return Z2d(this,a,BD(b,72))};_.ij=function S3d(a,b){return d3d(this,BD(a,72),b)};_.jj=function T3d(a,b){return f3d(this,BD(a,72),b)};_.kj=function U3d(a,b,c){return g3d(this,BD(a,72),BD(b,72),c)};_.ni=function W3d(a,b){return o3d(this,a,BD(b,72))};_.cl=function s3d(a,b){return l2d(this,a,b)};_.Wc=function t3d(a,b){var c,d,e,f,g,h,i,j,k;j=new uud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d._j();if(O6d(this.e,f)){(!f.gi()||!z2d(this,f,d.dd())&&!kud(j,d))&&rtd(j,d)}else{k=N6d(this.e.Sg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.ql(b._j())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var G8=ldb(tve,'BasicFeatureMap/FeatureEIterator',411);acb(662,411,eie,n4d);_.Kk=function o4d(){return true};var H8=ldb(tve,'BasicFeatureMap/ResolvingFeatureEIterator',662);acb(954,486,Rve,p4d);_.Fi=function q4d(){return this};var L8=ldb(tve,'EContentsEList/1',954);acb(955,486,Rve,r4d);_.Kk=function s4d(){return false};var M8=ldb(tve,'EContentsEList/2',955);acb(953,278,Sve,t4d);_.Mk=function u4d(a){};_.Ob=function v4d(){return false};_.Sb=function w4d(){return false};var N8=ldb(tve,'EContentsEList/FeatureIteratorImpl/1',953);acb(824,585,Lve,x4d);_.bi=function y4d(){this.a=true};_.ej=function z4d(){return this.a};_.Wj=function A4d(){var a;Pxd(this);if(jid(this.e)){a=this.a;this.a=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var R8=ldb(tve,'EDataTypeEList/Unsettable',824);acb(1848,585,Lve,B4d);_.gi=function C4d(){return true};var U8=ldb(tve,'EDataTypeUniqueEList',1848);acb(1849,824,Lve,D4d);_.gi=function E4d(){return true};var T8=ldb(tve,'EDataTypeUniqueEList/Unsettable',1849);acb(139,85,Lve,F4d);_.Dk=function G4d(){return true};_.ki=function H4d(a,b){return DLd(this,a,BD(b,56))};var V8=ldb(tve,'EObjectContainmentEList/Resolving',139);acb(1162,545,Lve,I4d);_.Dk=function J4d(){return true};_.ki=function K4d(a,b){return DLd(this,a,BD(b,56))};var W8=ldb(tve,'EObjectContainmentEList/Unsettable/Resolving',1162);acb(748,16,Lve,L4d);_.bi=function M4d(){this.a=true};_.ej=function N4d(){return this.a};_.Wj=function O4d(){var a;Pxd(this);if(jid(this.e)){a=this.a;this.a=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var _8=ldb(tve,'EObjectContainmentWithInverseEList/Unsettable',748);acb(1172,748,Lve,P4d);_.Dk=function Q4d(){return true};_.ki=function R4d(a,b){return DLd(this,a,BD(b,56))};var $8=ldb(tve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1172);acb(743,496,Lve,S4d);_.bi=function T4d(){this.a=true};_.ej=function U4d(){return this.a};_.Wj=function V4d(){var a;Pxd(this);if(jid(this.e)){a=this.a;this.a=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var b9=ldb(tve,'EObjectEList/Unsettable',743);acb(328,496,Lve,W4d);_.Dk=function X4d(){return true};_.ki=function Y4d(a,b){return DLd(this,a,BD(b,56))};var e9=ldb(tve,'EObjectResolvingEList',328);acb(1640,743,Lve,Z4d);_.Dk=function $4d(){return true};_.ki=function _4d(a,b){return DLd(this,a,BD(b,56))};var d9=ldb(tve,'EObjectResolvingEList/Unsettable',1640);acb(1380,1,{},c5d);var a5d;var f9=ldb(tve,'EObjectValidator',1380);acb(546,496,Lve,d5d);_.yk=function e5d(){return this.d};_.zk=function f5d(){return this.b};_.aj=function g5d(){return true};_.Ck=function h5d(){return true};_.b=0;var j9=ldb(tve,'EObjectWithInverseEList',546);acb(1175,546,Lve,i5d);_.Bk=function j5d(){return true};var g9=ldb(tve,'EObjectWithInverseEList/ManyInverse',1175);acb(625,546,Lve,k5d);_.bi=function l5d(){this.a=true};_.ej=function m5d(){return this.a};_.Wj=function n5d(){var a;Pxd(this);if(jid(this.e)){a=this.a;this.a=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var i9=ldb(tve,'EObjectWithInverseEList/Unsettable',625);acb(1174,625,Lve,o5d);_.Bk=function p5d(){return true};var h9=ldb(tve,'EObjectWithInverseEList/Unsettable/ManyInverse',1174);acb(749,546,Lve,q5d);_.Dk=function r5d(){return true};_.ki=function s5d(a,b){return DLd(this,a,BD(b,56))};var n9=ldb(tve,'EObjectWithInverseResolvingEList',749);acb(31,749,Lve,t5d);_.Bk=function u5d(){return true};var k9=ldb(tve,'EObjectWithInverseResolvingEList/ManyInverse',31);acb(750,625,Lve,v5d);_.Dk=function w5d(){return true};_.ki=function x5d(a,b){return DLd(this,a,BD(b,56))};var m9=ldb(tve,'EObjectWithInverseResolvingEList/Unsettable',750);acb(1173,750,Lve,y5d);_.Bk=function z5d(){return true};var l9=ldb(tve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1173);acb(1163,622,Lve);_._h=function A5d(){return (this.b&1792)==0};_.bi=function B5d(){this.b|=1};_.Ak=function C5d(){return (this.b&4)!=0};_.aj=function D5d(){return (this.b&40)!=0};_.Bk=function E5d(){return (this.b&16)!=0};_.Ck=function F5d(){return (this.b&8)!=0};_.Dk=function G5d(){return (this.b&zve)!=0};_.qk=function H5d(){return (this.b&32)!=0};_.Ek=function I5d(){return (this.b&xve)!=0};_.vj=function J5d(a){return !this.d?this._j().Xj().vj(a):lEd(this.d,a)};_.ej=function K5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.gi=function L5d(){return (this.b&128)!=0};_.Wj=function N5d(){var a;Pxd(this);if((this.b&2)!=0){if(jid(this.e)){a=(this.b&1)!=0;this.b&=-2;BLd(this,new lSd(this.e,2,YKd(this.e.Sg(),this._j()),a,false))}else{this.b&=-2}}};_.mi=function O5d(){return (this.b&1536)==0};_.b=0;var p9=ldb(tve,'EcoreEList/Generic',1163);acb(1164,1163,Lve,P5d);_._j=function Q5d(){return this.a};var o9=ldb(tve,'EcoreEList/Dynamic',1164);acb(747,63,jue,R5d);_.qi=function S5d(a){return dzd(this.a.a,a)};var t9=ldb(tve,'EcoreEMap/1',747);acb(746,85,Lve,T5d);_.ai=function U5d(a,b){pAd(this.b,BD(b,133))};_.ci=function V5d(a,b){oAd(this.b)};_.di=function W5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.ei=function X5d(a,b){qAd(this.b,BD(b,133))};_.fi=function Y5d(a,b,c){qAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Sh(xAd(BD(b,133).cd()));pAd(this.b,BD(b,133))};var u9=ldb(tve,'EcoreEMap/DelegateEObjectContainmentEList',746);acb(1170,151,vve,Z5d);var w9=ldb(tve,'EcoreEMap/Unsettable',1170);acb(1171,746,Lve,$5d);_.bi=function _5d(){this.a=true};_.ej=function a6d(){return this.a};_.Wj=function b6d(){var a;Pxd(this);if(jid(this.e)){a=this.a;this.a=false;Phd(this.e,new lSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var v9=ldb(tve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1171);acb(1167,228,ake,v6d);_.a=false;_.b=false;var z9=ldb(tve,'EcoreUtil/Copier',1167);acb(745,1,Xhe,x6d);_.Nb=function y6d(a){Qrb(this,a)};_.Ob=function z6d(){return w6d(this)};_.Pb=function A6d(){var a;w6d(this);a=this.b;this.b=null;return a};_.Qb=function B6d(){this.a.Qb()};var A9=ldb(tve,'EcoreUtil/ProperContentIterator',745);acb(1381,1380,{},E6d);var C6d;var B9=ldb(tve,'EcoreValidator',1381);var K6d;var M9=ndb(tve,'FeatureMapUtil/Validator');acb(1259,1,{1941:1},P6d);_.ql=function Q6d(a){return true};var E9=ldb(tve,'FeatureMapUtil/1',1259);acb(757,1,{1941:1},U6d);_.ql=function V6d(a){var b;if(this.c==a)return true;b=DD(Nhb(this.a,a));if(b==null){if(T6d(this,a)){W6d(this.a,a,(Acb(),zcb));return true}else{W6d(this.a,a,(Acb(),ycb));return false}}else{return b==(Acb(),zcb)}};_.e=false;var R6d;var H9=ldb(tve,'FeatureMapUtil/BasicValidator',757);acb(758,43,ake,X6d);var G9=ldb(tve,'FeatureMapUtil/BasicValidator/Cache',758);acb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},a7d);_.Vc=function b7d(a,b){k2d(this.c,this.b,a,b)};_.Fc=function c7d(a){return l2d(this.c,this.b,a)};_.Wc=function d7d(a,b){return n2d(this.c,this.b,a,b)};_.Gc=function e7d(a){return Y6d(this,a)};_.Wh=function f7d(a,b){p2d(this.c,this.b,a,b)};_.kk=function g7d(a,b){return s2d(this.c,this.b,a,b)};_.oi=function h7d(a){return E2d(this.c,this.b,a,false)};_.Yh=function i7d(){return t2d(this.c,this.b)};_.Zh=function j7d(){return u2d(this.c,this.b)};_.$h=function k7d(a){return v2d(this.c,this.b,a)};_.lk=function l7d(a,b){return Z6d(this,a,b)};_.$b=function m7d(){$6d(this)};_.Hc=function n7d(a){return z2d(this.c,this.b,a)};_.Ic=function o7d(a){return B2d(this.c,this.b,a)};_.Xb=function p7d(a){return E2d(this.c,this.b,a,true)};_.Vj=function q7d(a){return this};_.Xc=function r7d(a){return G2d(this.c,this.b,a)};_.dc=function s7d(){return _6d(this)};_.ej=function t7d(){return !M2d(this.c,this.b)};_.Kc=function u7d(){return N2d(this.c,this.b)};_.Yc=function v7d(){return P2d(this.c,this.b)};_.Zc=function w7d(a){return Q2d(this.c,this.b,a)};_.hi=function x7d(a,b){return S2d(this.c,this.b,a,b)};_.ii=function y7d(a,b){T2d(this.c,this.b,a,b)};_.$c=function z7d(a){return U2d(this.c,this.b,a)};_.Mc=function A7d(a){return V2d(this.c,this.b,a)};_._c=function B7d(a,b){return _2d(this.c,this.b,a,b)};_.Wb=function C7d(a){y2d(this.c,this.b);Y6d(this,BD(a,15))};_.gc=function D7d(){return i3d(this.c,this.b)};_.Pc=function E7d(){return j3d(this.c,this.b)};_.Qc=function F7d(a){return l3d(this.c,this.b,a)};_.Ib=function G7d(){var a,b;b=new Gfb;b.a+='[';for(a=t2d(this.c,this.b);Y3d(a);){Dfb(b,wfb($3d(a)));Y3d(a)&&(b.a+=Nhe,b)}b.a+=']';return b.a};_.Wj=function H7d(){y2d(this.c,this.b)};var I9=ldb(tve,'FeatureMapUtil/FeatureEList',501);acb(627,36,ave,J7d);_.xi=function K7d(a){return I7d(this,a)};_.Ci=function L7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){this.g=a.yi();a.wi()==1&&(this.d=1);return true}break}case 3:{e=a.wi();switch(e){case 3:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){this.d=5;b=new uud(2);rtd(b,this.g);rtd(b,a.yi());this.g=b;return true}break}}break}case 5:{e=a.wi();switch(e){case 3:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){c=BD(this.g,14);c.Fc(a.yi());return true}break}}break}case 4:{e=a.wi();switch(e){case 3:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){this.d=1;this.g=a.yi();return true}break}case 4:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){this.d=6;h=new uud(2);rtd(h,this.n);rtd(h,a.Ai());this.n=h;g=OC(GC(WD,1),jje,25,15,[this.o,a.Bi()]);this.g=g;return true}break}}break}case 6:{e=a.wi();switch(e){case 4:{f=a.zi();if(PD(f)===PD(this.c)&&I7d(this,null)==a.xi(null)){c=BD(this.n,14);c.Fc(a.Ai());g=BD(this.g,48);d=KC(WD,jje,25,g.length+1,15,1);Zfb(g,0,d,0,g.length);d[g.length]=a.Bi();this.g=d;return true}break}}break}}return false};var J9=ldb(tve,'FeatureMapUtil/FeatureENotificationImpl',627);acb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1936:1,69:1,95:1},M7d);_.cl=function N7d(a,b){return l2d(this.c,a,b)};_.dl=function O7d(a,b,c){return s2d(this.c,a,b,c)};_.el=function P7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function Q7d(){return this};_.gl=function R7d(a,b){return F2d(this.c,a,b)};_.hl=function S7d(a){return BD(E2d(this.c,this.b,a,false),72)._j()};_.il=function T7d(a){return BD(E2d(this.c,this.b,a,false),72).dd()};_.jl=function U7d(){return this.a};_.kl=function V7d(a){return !M2d(this.c,a)};_.ll=function W7d(a,b){a3d(this.c,a,b)};_.ml=function X7d(a){return b3d(this.c,a)};_.nl=function Y7d(a){n3d(this.c,a)};var K9=ldb(tve,'FeatureMapUtil/FeatureFeatureMap',552);acb(1258,1,uve,Z7d);_.Vj=function $7d(a){return E2d(this.b,this.a,-1,a)};_.ej=function _7d(){return !M2d(this.b,this.a)};_.Wb=function a8d(a){a3d(this.b,this.a,a)};_.Wj=function b8d(){y2d(this.b,this.a)};var L9=ldb(tve,'FeatureMapUtil/FeatureValue',1258);var c8d,d8d,e8d,f8d,g8d;var P9=ndb(Ewe,'AnyType');acb(666,60,Oie,i8d);var Q9=ldb(Ewe,'InvalidDatatypeValueException',666);var R9=ndb(Ewe,Fwe);var S9=ndb(Ewe,Gwe);var T9=ndb(Ewe,Hwe);var j8d;var l8d;var n8d,o8d,p8d,q8d,r8d,s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d;acb(829,506,{105:1,92:1,90:1,56:1,49:1,97:1,842:1},M8d);_.$g=function N8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new p3d(this,0)),this.c;return !this.c&&(this.c=new p3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153);return (!this.c&&(this.c=new p3d(this,0)),BD(BD(O2d(this.c,(L8d(),o8d)),153),215)).jl();case 2:if(c)return !this.b&&(this.b=new p3d(this,2)),this.b;return !this.b&&(this.b=new p3d(this,2)),this.b.b;}return Yhd(this,a-XKd(this.yh()),SKd((this.j&2)==0?this.yh():(!this.k&&(this.k=new CGd),this.k).bk(),a),b,c)};_.ih=function O8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new p3d(this,0)),w2d(this.c,a,c);case 1:return (!this.c&&(this.c=new p3d(this,0)),BD(BD(O2d(this.c,(L8d(),o8d)),153),69)).lk(a,c);case 2:return !this.b&&(this.b=new p3d(this,2)),w2d(this.b,a,c);}return d=BD(SKd((this.j&2)==0?this.yh():(!this.k&&(this.k=new CGd),this.k).bk(),b),66),d.Mj().Qj(this,vid(this),b-XKd(this.yh()),a,c)};_.kh=function P8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return Zhd(this,a-XKd(this.yh()),SKd((this.j&2)==0?this.yh():(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.rh=function Q8d(a,b){switch(a){case 0:!this.c&&(this.c=new p3d(this,0));$2d(this.c,b);return;case 1:(!this.c&&(this.c=new p3d(this,0)),BD(BD(O2d(this.c,(L8d(),o8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new p3d(this,2));$2d(this.b,b);return;}$hd(this,a-XKd(this.yh()),SKd((this.j&2)==0?this.yh():(!this.k&&(this.k=new CGd),this.k).bk(),a),b)};_.yh=function R8d(){return L8d(),n8d};_.Ah=function S8d(a){switch(a){case 0:!this.c&&(this.c=new p3d(this,0));Pxd(this.c);return;case 1:(!this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153)).$b();return;case 2:!this.b&&(this.b=new p3d(this,2));Pxd(this.b);return;}_hd(this,a-XKd(this.yh()),SKd((this.j&2)==0?this.yh():(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.Ib=function T8d(){var a;if((this.j&4)!=0)return zid(this);a=new Ifb(zid(this));a.a+=' (mixed: ';Cfb(a,this.c);a.a+=', anyAttribute: ';Cfb(a,this.b);a.a+=')';return a.a};var U9=ldb(Iwe,'AnyTypeImpl',829);acb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2020:1,667:1},W8d);_.$g=function X8d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return Yhd(this,a-XKd((L8d(),A8d)),SKd((this.j&2)==0?A8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b,c)};_.kh=function Y8d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return Zhd(this,a-XKd((L8d(),A8d)),SKd((this.j&2)==0?A8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.rh=function Z8d(a,b){switch(a){case 0:U8d(this,GD(b));return;case 1:V8d(this,GD(b));return;}$hd(this,a-XKd((L8d(),A8d)),SKd((this.j&2)==0?A8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b)};_.yh=function $8d(){return L8d(),A8d};_.Ah=function _8d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}_hd(this,a-XKd((L8d(),A8d)),SKd((this.j&2)==0?A8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.Ib=function a9d(){var a;if((this.j&4)!=0)return zid(this);a=new Ifb(zid(this));a.a+=' (data: ';Dfb(a,this.a);a.a+=', target: ';Dfb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var V9=ldb(Iwe,'ProcessingInstructionImpl',667);acb(668,829,{105:1,92:1,90:1,56:1,49:1,97:1,842:1,2021:1,668:1},d9d);_.$g=function e9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new p3d(this,0)),this.c;return !this.c&&(this.c=new p3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153);return (!this.c&&(this.c=new p3d(this,0)),BD(BD(O2d(this.c,(L8d(),o8d)),153),215)).jl();case 2:if(c)return !this.b&&(this.b=new p3d(this,2)),this.b;return !this.b&&(this.b=new p3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new p3d(this,0)),GD(F2d(this.c,(L8d(),D8d),true));case 4:return e6d(this.a,(!this.c&&(this.c=new p3d(this,0)),GD(F2d(this.c,(L8d(),D8d),true))));case 5:return this.a;}return Yhd(this,a-XKd((L8d(),C8d)),SKd((this.j&2)==0?C8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b,c)};_.kh=function f9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new p3d(this,0)),GD(F2d(this.c,(L8d(),D8d),true))!=null;case 4:return e6d(this.a,(!this.c&&(this.c=new p3d(this,0)),GD(F2d(this.c,(L8d(),D8d),true))))!=null;case 5:return !!this.a;}return Zhd(this,a-XKd((L8d(),C8d)),SKd((this.j&2)==0?C8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.rh=function g9d(a,b){switch(a){case 0:!this.c&&(this.c=new p3d(this,0));$2d(this.c,b);return;case 1:(!this.c&&(this.c=new p3d(this,0)),BD(BD(O2d(this.c,(L8d(),o8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new p3d(this,2));$2d(this.b,b);return;case 3:c9d(this,GD(b));return;case 4:c9d(this,c6d(this.a,b));return;case 5:b9d(this,BD(b,148));return;}$hd(this,a-XKd((L8d(),C8d)),SKd((this.j&2)==0?C8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b)};_.yh=function h9d(){return L8d(),C8d};_.Ah=function i9d(a){switch(a){case 0:!this.c&&(this.c=new p3d(this,0));Pxd(this.c);return;case 1:(!this.c&&(this.c=new p3d(this,0)),BD(O2d(this.c,(L8d(),o8d)),153)).$b();return;case 2:!this.b&&(this.b=new p3d(this,2));Pxd(this.b);return;case 3:!this.c&&(this.c=new p3d(this,0));a3d(this.c,(L8d(),D8d),null);return;case 4:c9d(this,c6d(this.a,null));return;case 5:this.a=null;return;}_hd(this,a-XKd((L8d(),C8d)),SKd((this.j&2)==0?C8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};var W9=ldb(Iwe,'SimpleAnyTypeImpl',668);acb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2022:1,669:1},j9d);_.$g=function k9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new p3d(this,0)),this.a;return !this.a&&(this.a=new p3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new $Hd((eGd(),aGd),w6,this,1)),this.b):(!this.b&&(this.b=new $Hd((eGd(),aGd),w6,this,1)),AAd(this.b));case 2:return c?(!this.c&&(this.c=new $Hd((eGd(),aGd),w6,this,2)),this.c):(!this.c&&(this.c=new $Hd((eGd(),aGd),w6,this,2)),AAd(this.c));case 3:return !this.a&&(this.a=new p3d(this,0)),O2d(this.a,(L8d(),G8d));case 4:return !this.a&&(this.a=new p3d(this,0)),O2d(this.a,(L8d(),H8d));case 5:return !this.a&&(this.a=new p3d(this,0)),O2d(this.a,(L8d(),J8d));case 6:return !this.a&&(this.a=new p3d(this,0)),O2d(this.a,(L8d(),K8d));}return Yhd(this,a-XKd((L8d(),F8d)),SKd((this.j&2)==0?F8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b,c)};_.ih=function l9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new p3d(this,0)),w2d(this.a,a,c);case 1:return !this.b&&(this.b=new $Hd((eGd(),aGd),w6,this,1)),YHd(this.b,a,c);case 2:return !this.c&&(this.c=new $Hd((eGd(),aGd),w6,this,2)),YHd(this.c,a,c);case 5:return !this.a&&(this.a=new p3d(this,0)),Z6d(O2d(this.a,(L8d(),J8d)),a,c);}return d=BD(SKd((this.j&2)==0?(L8d(),F8d):(!this.k&&(this.k=new CGd),this.k).bk(),b),66),d.Mj().Qj(this,vid(this),b-XKd((L8d(),F8d)),a,c)};_.kh=function m9d(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 p3d(this,0)),!_6d(O2d(this.a,(L8d(),G8d)));case 4:return !this.a&&(this.a=new p3d(this,0)),!_6d(O2d(this.a,(L8d(),H8d)));case 5:return !this.a&&(this.a=new p3d(this,0)),!_6d(O2d(this.a,(L8d(),J8d)));case 6:return !this.a&&(this.a=new p3d(this,0)),!_6d(O2d(this.a,(L8d(),K8d)));}return Zhd(this,a-XKd((L8d(),F8d)),SKd((this.j&2)==0?F8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.rh=function n9d(a,b){switch(a){case 0:!this.a&&(this.a=new p3d(this,0));$2d(this.a,b);return;case 1:!this.b&&(this.b=new $Hd((eGd(),aGd),w6,this,1));ZHd(this.b,b);return;case 2:!this.c&&(this.c=new $Hd((eGd(),aGd),w6,this,2));ZHd(this.c,b);return;case 3:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),G8d)));!this.a&&(this.a=new p3d(this,0));Y6d(O2d(this.a,G8d),BD(b,14));return;case 4:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),H8d)));!this.a&&(this.a=new p3d(this,0));Y6d(O2d(this.a,H8d),BD(b,14));return;case 5:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),J8d)));!this.a&&(this.a=new p3d(this,0));Y6d(O2d(this.a,J8d),BD(b,14));return;case 6:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),K8d)));!this.a&&(this.a=new p3d(this,0));Y6d(O2d(this.a,K8d),BD(b,14));return;}$hd(this,a-XKd((L8d(),F8d)),SKd((this.j&2)==0?F8d:(!this.k&&(this.k=new CGd),this.k).bk(),a),b)};_.yh=function o9d(){return L8d(),F8d};_.Ah=function p9d(a){switch(a){case 0:!this.a&&(this.a=new p3d(this,0));Pxd(this.a);return;case 1:!this.b&&(this.b=new $Hd((eGd(),aGd),w6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new $Hd((eGd(),aGd),w6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),G8d)));return;case 4:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),H8d)));return;case 5:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),J8d)));return;case 6:!this.a&&(this.a=new p3d(this,0));$6d(O2d(this.a,(L8d(),K8d)));return;}_hd(this,a-XKd((L8d(),F8d)),SKd((this.j&2)==0?F8d:(!this.k&&(this.k=new CGd),this.k).bk(),a))};_.Ib=function q9d(){var a;if((this.j&4)!=0)return zid(this);a=new Ifb(zid(this));a.a+=' (mixed: ';Cfb(a,this.a);a.a+=')';return a.a};var X9=ldb(Iwe,'XMLTypeDocumentRootImpl',669);acb(1918,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2023:1},P9d);_.Hh=function Q9d(a,b){switch(a.xj()){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:ecb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return x9d(BD(b,190));case 12:case 47:case 49:case 11:return Qmd(this,a,b);case 13:return b==null?null:pgb(BD(b,240));case 15:case 14:return b==null?null:y9d(Ddb(ED(b)));case 17:return z9d((L8d(),b));case 18:return z9d(b);case 21:case 20:return b==null?null:A9d(BD(b,155).a);case 27:return B9d(BD(b,190));case 30:return C9d((L8d(),BD(b,15)));case 31:return C9d(BD(b,15));case 40:return F9d((L8d(),b));case 42:return D9d((L8d(),b));case 43:return D9d(b);case 59:case 48:return E9d((L8d(),b));default:throw ubb(new Vdb(pte+a.ne()+qte));}};_.Ih=function R9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=YJd(a),c?CLd(c.Lh(),a):-1)),a.G){case 0:return b=new M8d,b;case 1:return d=new W8d,d;case 2:return e=new d9d,e;case 3:return f=new j9d,f;default:throw ubb(new Vdb(tte+a.zb+qte));}};_.Jh=function S9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.xj()){case 5:case 52:case 4:return b;case 6:return G9d(b);case 8:case 7:return b==null?null:w9d(b);case 9:return b==null?null:Rcb(Hcb((d=Lge(b,true),d.length>0&&(ACb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Rcb(Hcb((e=Lge(b,true),e.length>0&&(ACb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Rmd(this,(L8d(),r8d),b));case 12:return GD(Rmd(this,(L8d(),s8d),b));case 13:return b==null?null:new sgb(Lge(b,true));case 15:case 14:return H9d(b);case 16:return GD(Rmd(this,(L8d(),t8d),b));case 17:return I9d((L8d(),b));case 18:return I9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Lge(b,true);case 21:case 20:return J9d(b);case 22:return GD(Rmd(this,(L8d(),u8d),b));case 23:return GD(Rmd(this,(L8d(),v8d),b));case 24:return GD(Rmd(this,(L8d(),w8d),b));case 25:return GD(Rmd(this,(L8d(),x8d),b));case 26:return GD(Rmd(this,(L8d(),y8d),b));case 27:return K9d(b);case 30:return L9d((L8d(),b));case 31:return L9d(b);case 32:return b==null?null:leb(Hcb((k=Lge(b,true),k.length>0&&(ACb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Mie,Jhe));case 33:return b==null?null:new Xgb((l=Lge(b,true),l.length>0&&(ACb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:leb(Hcb((m=Lge(b,true),m.length>0&&(ACb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Mie,Jhe));case 36:return b==null?null:zeb(Icb((n=Lge(b,true),n.length>0&&(ACb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:zeb(Icb((o=Lge(b,true),o.length>0&&(ACb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return O9d((L8d(),b));case 42:return M9d((L8d(),b));case 43:return M9d(b);case 44:return b==null?null:new Xgb((p=Lge(b,true),p.length>0&&(ACb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Xgb((q=Lge(b,true),q.length>0&&(ACb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Lge(b,false);case 47:return GD(Rmd(this,(L8d(),z8d),b));case 59:case 48:return N9d((L8d(),b));case 49:return GD(Rmd(this,(L8d(),B8d),b));case 50:return b==null?null:Veb(Hcb((r=Lge(b,true),r.length>0&&(ACb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),Yve,32767)<<16>>16);case 51:return b==null?null:Veb(Hcb((f=Lge(b,true),f.length>0&&(ACb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),Yve,32767)<<16>>16);case 53:return GD(Rmd(this,(L8d(),E8d),b));case 55:return b==null?null:Veb(Hcb((g=Lge(b,true),g.length>0&&(ACb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),Yve,32767)<<16>>16);case 56:return b==null?null:Veb(Hcb((h=Lge(b,true),h.length>0&&(ACb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),Yve,32767)<<16>>16);case 57:return b==null?null:zeb(Icb((i=Lge(b,true),i.length>0&&(ACb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:zeb(Icb((j=Lge(b,true),j.length>0&&(ACb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:leb(Hcb((c=Lge(b,true),c.length>0&&(ACb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Mie,Jhe));case 61:return b==null?null:leb(Hcb(Lge(b,true),Mie,Jhe));default:throw ubb(new Vdb(pte+a.ne()+qte));}};var r9d,s9d,t9d,u9d;var Y9=ldb(Iwe,'XMLTypeFactoryImpl',1918);acb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1944:1,586:1},Z9d);_.N=false;_.O=false;var U9d=false;var Xab=ldb(Iwe,'XMLTypePackageImpl',586);acb(1851,1,{836:1},aae);_.$j=function bae(){return Pge(),Oge};var hab=ldb(Iwe,'XMLTypePackageImpl/1',1851);acb(1860,1,jwe,cae);_.vj=function dae(a){return ND(a)};_.wj=function eae(a){return KC(ZI,iie,2,a,6,1)};var Z9=ldb(Iwe,'XMLTypePackageImpl/10',1860);acb(1861,1,jwe,fae);_.vj=function gae(a){return ND(a)};_.wj=function hae(a){return KC(ZI,iie,2,a,6,1)};var $9=ldb(Iwe,'XMLTypePackageImpl/11',1861);acb(1862,1,jwe,iae);_.vj=function jae(a){return ND(a)};_.wj=function kae(a){return KC(ZI,iie,2,a,6,1)};var _9=ldb(Iwe,'XMLTypePackageImpl/12',1862);acb(1863,1,jwe,lae);_.vj=function mae(a){return LD(a)};_.wj=function nae(a){return KC(BI,iie,333,a,7,1)};var aab=ldb(Iwe,'XMLTypePackageImpl/13',1863);acb(1864,1,jwe,oae);_.vj=function pae(a){return ND(a)};_.wj=function qae(a){return KC(ZI,iie,2,a,6,1)};var bab=ldb(Iwe,'XMLTypePackageImpl/14',1864);acb(1865,1,jwe,rae);_.vj=function sae(a){return JD(a,15)};_.wj=function tae(a){return KC(yK,_le,15,a,0,1)};var cab=ldb(Iwe,'XMLTypePackageImpl/15',1865);acb(1866,1,jwe,uae);_.vj=function vae(a){return JD(a,15)};_.wj=function wae(a){return KC(yK,_le,15,a,0,1)};var dab=ldb(Iwe,'XMLTypePackageImpl/16',1866);acb(1867,1,jwe,xae);_.vj=function yae(a){return ND(a)};_.wj=function zae(a){return KC(ZI,iie,2,a,6,1)};var eab=ldb(Iwe,'XMLTypePackageImpl/17',1867);acb(1868,1,jwe,Aae);_.vj=function Bae(a){return JD(a,155)};_.wj=function Cae(a){return KC(FI,iie,155,a,0,1)};var fab=ldb(Iwe,'XMLTypePackageImpl/18',1868);acb(1869,1,jwe,Dae);_.vj=function Eae(a){return ND(a)};_.wj=function Fae(a){return KC(ZI,iie,2,a,6,1)};var gab=ldb(Iwe,'XMLTypePackageImpl/19',1869);acb(1852,1,jwe,Gae);_.vj=function Hae(a){return JD(a,842)};_.wj=function Iae(a){return KC(P9,Phe,842,a,0,1)};var sab=ldb(Iwe,'XMLTypePackageImpl/2',1852);acb(1870,1,jwe,Jae);_.vj=function Kae(a){return ND(a)};_.wj=function Lae(a){return KC(ZI,iie,2,a,6,1)};var iab=ldb(Iwe,'XMLTypePackageImpl/20',1870);acb(1871,1,jwe,Mae);_.vj=function Nae(a){return ND(a)};_.wj=function Oae(a){return KC(ZI,iie,2,a,6,1)};var jab=ldb(Iwe,'XMLTypePackageImpl/21',1871);acb(1872,1,jwe,Pae);_.vj=function Qae(a){return ND(a)};_.wj=function Rae(a){return KC(ZI,iie,2,a,6,1)};var kab=ldb(Iwe,'XMLTypePackageImpl/22',1872);acb(1873,1,jwe,Sae);_.vj=function Tae(a){return ND(a)};_.wj=function Uae(a){return KC(ZI,iie,2,a,6,1)};var lab=ldb(Iwe,'XMLTypePackageImpl/23',1873);acb(1874,1,jwe,Vae);_.vj=function Wae(a){return JD(a,190)};_.wj=function Xae(a){return KC(SD,iie,190,a,0,2)};var mab=ldb(Iwe,'XMLTypePackageImpl/24',1874);acb(1875,1,jwe,Yae);_.vj=function Zae(a){return ND(a)};_.wj=function $ae(a){return KC(ZI,iie,2,a,6,1)};var nab=ldb(Iwe,'XMLTypePackageImpl/25',1875);acb(1876,1,jwe,_ae);_.vj=function abe(a){return ND(a)};_.wj=function bbe(a){return KC(ZI,iie,2,a,6,1)};var oab=ldb(Iwe,'XMLTypePackageImpl/26',1876);acb(1877,1,jwe,cbe);_.vj=function dbe(a){return JD(a,15)};_.wj=function ebe(a){return KC(yK,_le,15,a,0,1)};var pab=ldb(Iwe,'XMLTypePackageImpl/27',1877);acb(1878,1,jwe,fbe);_.vj=function gbe(a){return JD(a,15)};_.wj=function hbe(a){return KC(yK,_le,15,a,0,1)};var qab=ldb(Iwe,'XMLTypePackageImpl/28',1878);acb(1879,1,jwe,ibe);_.vj=function jbe(a){return ND(a)};_.wj=function kbe(a){return KC(ZI,iie,2,a,6,1)};var rab=ldb(Iwe,'XMLTypePackageImpl/29',1879);acb(1853,1,jwe,lbe);_.vj=function mbe(a){return JD(a,667)};_.wj=function nbe(a){return KC(R9,Phe,2020,a,0,1)};var Dab=ldb(Iwe,'XMLTypePackageImpl/3',1853);acb(1880,1,jwe,obe);_.vj=function pbe(a){return JD(a,19)};_.wj=function qbe(a){return KC(JI,iie,19,a,0,1)};var tab=ldb(Iwe,'XMLTypePackageImpl/30',1880);acb(1881,1,jwe,rbe);_.vj=function sbe(a){return ND(a)};_.wj=function tbe(a){return KC(ZI,iie,2,a,6,1)};var uab=ldb(Iwe,'XMLTypePackageImpl/31',1881);acb(1882,1,jwe,ube);_.vj=function vbe(a){return JD(a,162)};_.wj=function wbe(a){return KC(MI,iie,162,a,0,1)};var vab=ldb(Iwe,'XMLTypePackageImpl/32',1882);acb(1883,1,jwe,xbe);_.vj=function ybe(a){return ND(a)};_.wj=function zbe(a){return KC(ZI,iie,2,a,6,1)};var wab=ldb(Iwe,'XMLTypePackageImpl/33',1883);acb(1884,1,jwe,Abe);_.vj=function Bbe(a){return ND(a)};_.wj=function Cbe(a){return KC(ZI,iie,2,a,6,1)};var xab=ldb(Iwe,'XMLTypePackageImpl/34',1884);acb(1885,1,jwe,Dbe);_.vj=function Ebe(a){return ND(a)};_.wj=function Fbe(a){return KC(ZI,iie,2,a,6,1)};var yab=ldb(Iwe,'XMLTypePackageImpl/35',1885);acb(1886,1,jwe,Gbe);_.vj=function Hbe(a){return ND(a)};_.wj=function Ibe(a){return KC(ZI,iie,2,a,6,1)};var zab=ldb(Iwe,'XMLTypePackageImpl/36',1886);acb(1887,1,jwe,Jbe);_.vj=function Kbe(a){return JD(a,15)};_.wj=function Lbe(a){return KC(yK,_le,15,a,0,1)};var Aab=ldb(Iwe,'XMLTypePackageImpl/37',1887);acb(1888,1,jwe,Mbe);_.vj=function Nbe(a){return JD(a,15)};_.wj=function Obe(a){return KC(yK,_le,15,a,0,1)};var Bab=ldb(Iwe,'XMLTypePackageImpl/38',1888);acb(1889,1,jwe,Pbe);_.vj=function Qbe(a){return ND(a)};_.wj=function Rbe(a){return KC(ZI,iie,2,a,6,1)};var Cab=ldb(Iwe,'XMLTypePackageImpl/39',1889);acb(1854,1,jwe,Sbe);_.vj=function Tbe(a){return JD(a,668)};_.wj=function Ube(a){return KC(S9,Phe,2021,a,0,1)};var Oab=ldb(Iwe,'XMLTypePackageImpl/4',1854);acb(1890,1,jwe,Vbe);_.vj=function Wbe(a){return ND(a)};_.wj=function Xbe(a){return KC(ZI,iie,2,a,6,1)};var Eab=ldb(Iwe,'XMLTypePackageImpl/40',1890);acb(1891,1,jwe,Ybe);_.vj=function Zbe(a){return ND(a)};_.wj=function $be(a){return KC(ZI,iie,2,a,6,1)};var Fab=ldb(Iwe,'XMLTypePackageImpl/41',1891);acb(1892,1,jwe,_be);_.vj=function ace(a){return ND(a)};_.wj=function bce(a){return KC(ZI,iie,2,a,6,1)};var Gab=ldb(Iwe,'XMLTypePackageImpl/42',1892);acb(1893,1,jwe,cce);_.vj=function dce(a){return ND(a)};_.wj=function ece(a){return KC(ZI,iie,2,a,6,1)};var Hab=ldb(Iwe,'XMLTypePackageImpl/43',1893);acb(1894,1,jwe,fce);_.vj=function gce(a){return ND(a)};_.wj=function hce(a){return KC(ZI,iie,2,a,6,1)};var Iab=ldb(Iwe,'XMLTypePackageImpl/44',1894);acb(1895,1,jwe,ice);_.vj=function jce(a){return JD(a,184)};_.wj=function kce(a){return KC(UI,iie,184,a,0,1)};var Jab=ldb(Iwe,'XMLTypePackageImpl/45',1895);acb(1896,1,jwe,lce);_.vj=function mce(a){return ND(a)};_.wj=function nce(a){return KC(ZI,iie,2,a,6,1)};var Kab=ldb(Iwe,'XMLTypePackageImpl/46',1896);acb(1897,1,jwe,oce);_.vj=function pce(a){return ND(a)};_.wj=function qce(a){return KC(ZI,iie,2,a,6,1)};var Lab=ldb(Iwe,'XMLTypePackageImpl/47',1897);acb(1898,1,jwe,rce);_.vj=function sce(a){return ND(a)};_.wj=function tce(a){return KC(ZI,iie,2,a,6,1)};var Mab=ldb(Iwe,'XMLTypePackageImpl/48',1898);acb(1899,1,jwe,uce);_.vj=function vce(a){return JD(a,184)};_.wj=function wce(a){return KC(UI,iie,184,a,0,1)};var Nab=ldb(Iwe,'XMLTypePackageImpl/49',1899);acb(1855,1,jwe,xce);_.vj=function yce(a){return JD(a,669)};_.wj=function zce(a){return KC(T9,Phe,2022,a,0,1)};var Sab=ldb(Iwe,'XMLTypePackageImpl/5',1855);acb(ije,1,jwe,Ace);_.vj=function Bce(a){return JD(a,162)};_.wj=function Cce(a){return KC(MI,iie,162,a,0,1)};var Pab=ldb(Iwe,'XMLTypePackageImpl/50',ije);acb(1901,1,jwe,Dce);_.vj=function Ece(a){return ND(a)};_.wj=function Fce(a){return KC(ZI,iie,2,a,6,1)};var Qab=ldb(Iwe,'XMLTypePackageImpl/51',1901);acb(1902,1,jwe,Gce);_.vj=function Hce(a){return JD(a,19)};_.wj=function Ice(a){return KC(JI,iie,19,a,0,1)};var Rab=ldb(Iwe,'XMLTypePackageImpl/52',1902);acb(1856,1,jwe,Jce);_.vj=function Kce(a){return ND(a)};_.wj=function Lce(a){return KC(ZI,iie,2,a,6,1)};var Tab=ldb(Iwe,'XMLTypePackageImpl/6',1856);acb(1857,1,jwe,Mce);_.vj=function Nce(a){return JD(a,190)};_.wj=function Oce(a){return KC(SD,iie,190,a,0,2)};var Uab=ldb(Iwe,'XMLTypePackageImpl/7',1857);acb(1858,1,jwe,Pce);_.vj=function Qce(a){return KD(a)};_.wj=function Rce(a){return KC(wI,iie,476,a,8,1)};var Vab=ldb(Iwe,'XMLTypePackageImpl/8',1858);acb(1859,1,jwe,Sce);_.vj=function Tce(a){return JD(a,217)};_.wj=function Uce(a){return KC(xI,iie,217,a,0,1)};var Wab=ldb(Iwe,'XMLTypePackageImpl/9',1859);var Vce,Wce;var ade,bde;var fde;acb(50,60,Oie,hde);var Yab=ldb(gxe,'RegEx/ParseException',50);acb(819,1,{},pde);_.rl=function qde(a){return ac*16)throw ubb(new hde(ovd((c0d(),Pue))));c=c*16+e}while(true);if(this.a!=125)throw ubb(new hde(ovd((c0d(),Que))));if(c>hxe)throw ubb(new hde(ovd((c0d(),Rue))));a=c}else{e=0;if(this.c!=0||(e=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));c=e;ide(this);if(this.c!=0||(e=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));c=c*16+e;a=c}break;case 117:d=0;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;a=b;break;case 118:ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;ide(this);if(this.c!=0||(d=tde(this.a))<0)throw ubb(new hde(ovd((c0d(),Oue))));b=b*16+d;if(b>hxe)throw ubb(new hde(ovd((c0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw ubb(new hde(ovd((c0d(),Sue))));}return a};_.tl=function sde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Ffe('Nd',true):(rfe(),Zee);break;case 68:c=(this.e&32)==32?Ffe('Nd',false):(rfe(),efe);break;case 119:c=(this.e&32)==32?Ffe('IsWord',true):(rfe(),nfe);break;case 87:c=(this.e&32)==32?Ffe('IsWord',false):(rfe(),gfe);break;case 115:c=(this.e&32)==32?Ffe('IsSpace',true):(rfe(),ife);break;case 83:c=(this.e&32)==32?Ffe('IsSpace',false):(rfe(),ffe);break;default:throw ubb(new hz((b=a,ixe+b.toString(16))));}return c};_.ul=function ude(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;ide(this);b=null;if(this.c==0&&this.a==94){ide(this);if(a){k=(rfe(),rfe(),++qfe,new Vfe(5))}else{b=(rfe(),rfe(),++qfe,new Vfe(4));Pfe(b,0,hxe);k=(null,++qfe,new Vfe(4))}}else{k=(rfe(),rfe(),++qfe,new Vfe(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:Sfe(k,this.tl(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Kl(k,c);c<0&&(d=true);break;case 112:case 80:l=ode(this,c);if(!l)throw ubb(new hde(ovd((c0d(),Due))));Sfe(k,l);d=true;break;default:c=this.sl();}}else if(m==20){g=ffb(this.i,58,this.d);if(g<0)throw ubb(new hde(ovd((c0d(),Eue))));h=true;if(afb(this.i,this.d)==94){++this.d;h=false}f=pfb(this.i,this.d,g);i=Gfe(f,h,(this.e&512)==512);if(!i)throw ubb(new hde(ovd((c0d(),Gue))));Sfe(k,i);d=true;if(g+1>=this.j||afb(this.i,g+1)!=93)throw ubb(new hde(ovd((c0d(),Eue))));this.d=g+2}ide(this);if(!d){if(this.c!=0||this.a!=45){Pfe(k,c,c)}else{ide(this);if((m=this.c)==1)throw ubb(new hde(ovd((c0d(),Fue))));if(m==0&&this.a==93){Pfe(k,c,c);Pfe(k,45,45)}else{j=this.a;m==10&&(j=this.sl());ide(this);Pfe(k,c,j)}}}(this.e&xve)==xve&&this.c==0&&this.a==44&&ide(this)}if(this.c==1)throw ubb(new hde(ovd((c0d(),Fue))));if(b){Ufe(b,k);k=b}Tfe(k);Qfe(k);this.b=0;ide(this);return k};_.vl=function vde(){var a,b,c,d;c=this.ul(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){ide(this);if(this.c!=9)throw ubb(new hde(ovd((c0d(),Lue))));b=this.ul(false);if(d==4)Sfe(c,b);else if(a==45)Ufe(c,b);else if(a==38)Rfe(c,b);else throw ubb(new hz('ASSERT'))}else{throw ubb(new hde(ovd((c0d(),Mue))))}}ide(this);return c};_.wl=function wde(){var a,b;a=this.a-48;b=(rfe(),rfe(),++qfe,new Cge(12,null,a));!this.g&&(this.g=new Vvb);Svb(this.g,new Zfe(a));ide(this);return b};_.xl=function xde(){ide(this);return rfe(),jfe};_.yl=function yde(){ide(this);return rfe(),hfe};_.zl=function zde(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Al=function Ade(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Bl=function Bde(){ide(this);return Dfe()};_.Cl=function Cde(){ide(this);return rfe(),lfe};_.Dl=function Dde(){ide(this);return rfe(),ofe};_.El=function Ede(){var a;if(this.d>=this.j||((a=afb(this.i,this.d++))&65504)!=64)throw ubb(new hde(ovd((c0d(),zue))));ide(this);return rfe(),rfe(),++qfe,new dge(0,a-64)};_.Fl=function Fde(){ide(this);return Efe()};_.Gl=function Gde(){ide(this);return rfe(),pfe};_.Hl=function Hde(){var a;a=(rfe(),rfe(),++qfe,new dge(0,105));ide(this);return a};_.Il=function Ide(){ide(this);return rfe(),mfe};_.Jl=function Jde(){ide(this);return rfe(),kfe};_.Kl=function Kde(a,b){return this.sl()};_.Ll=function Lde(){ide(this);return rfe(),cfe};_.Ml=function Mde(){var a,b,c,d,e;if(this.d+1>=this.j)throw ubb(new hde(ovd((c0d(),wue))));d=-1;b=null;a=afb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Vvb);Svb(this.g,new Zfe(d));++this.d;if(afb(this.i,this.d)!=41)throw ubb(new hde(ovd((c0d(),tue))));++this.d}else{a==63&&--this.d;ide(this);b=lde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));break;default:throw ubb(new hde(ovd((c0d(),xue))));}}ide(this);e=mde(this);c=null;if(e.e==2){if(e.dm()!=2)throw ubb(new hde(ovd((c0d(),yue))));c=e._l(1);e=e._l(0)}if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return rfe(),rfe(),++qfe,new qge(d,b,e,c)};_.Nl=function Nde(){ide(this);return rfe(),dfe};_.Ol=function Ode(){var a;ide(this);a=xfe(24,mde(this));if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Pl=function Pde(){var a;ide(this);a=xfe(20,mde(this));if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Ql=function Qde(){var a;ide(this);a=xfe(22,mde(this));if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Rl=function Rde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw ubb(new hde(ovd((c0d(),uue))));if(b==45){++this.d;while(this.d=this.j)throw ubb(new hde(ovd((c0d(),uue))))}if(b==58){++this.d;ide(this);d=yfe(mde(this),a,c);if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this)}else if(b==41){++this.d;ide(this);d=yfe(mde(this),a,c)}else throw ubb(new hde(ovd((c0d(),vue))));return d};_.Sl=function Sde(){var a;ide(this);a=xfe(21,mde(this));if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Tl=function Tde(){var a;ide(this);a=xfe(23,mde(this));if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Ul=function Ude(){var a,b;ide(this);a=this.f++;b=zfe(mde(this),a);if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return b};_.Vl=function Vde(){var a;ide(this);a=zfe(mde(this),0);if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Wl=function Wde(a){ide(this);if(this.c==5){ide(this);return wfe(a,(rfe(),rfe(),++qfe,new gge(9,a)))}else return wfe(a,(rfe(),rfe(),++qfe,new gge(3,a)))};_.Xl=function Xde(a){var b;ide(this);b=(rfe(),rfe(),++qfe,new Gge(2));if(this.c==5){ide(this);Fge(b,(null,afe));Fge(b,a)}else{Fge(b,a);Fge(b,(null,afe))}return b};_.Yl=function Yde(a){ide(this);if(this.c==5){ide(this);return rfe(),rfe(),++qfe,new gge(9,a)}else return rfe(),rfe(),++qfe,new gge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var abb=ldb(gxe,'RegEx/RegexParser',819);acb(1823,819,{},cee);_.rl=function dee(a){return false};_.sl=function eee(){return _de(this)};_.tl=function gee(a){return aee(a)};_.ul=function hee(a){return bee(this)};_.vl=function iee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.wl=function jee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.xl=function kee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.yl=function lee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.zl=function mee(){ide(this);return aee(67)};_.Al=function nee(){ide(this);return aee(73)};_.Bl=function oee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Cl=function pee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Dl=function qee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.El=function ree(){ide(this);return aee(99)};_.Fl=function see(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Gl=function tee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Hl=function uee(){ide(this);return aee(105)};_.Il=function vee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Jl=function wee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Kl=function xee(a,b){return Sfe(a,aee(b)),-1};_.Ll=function yee(){ide(this);return rfe(),rfe(),++qfe,new dge(0,94)};_.Ml=function zee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Nl=function Aee(){ide(this);return rfe(),rfe(),++qfe,new dge(0,36)};_.Ol=function Bee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Pl=function Cee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Ql=function Dee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Rl=function Eee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Sl=function Fee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Tl=function Gee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Ul=function Hee(){var a;ide(this);a=zfe(mde(this),0);if(this.c!=7)throw ubb(new hde(ovd((c0d(),tue))));ide(this);return a};_.Vl=function Iee(){throw ubb(new hde(ovd((c0d(),Tue))))};_.Wl=function Jee(a){ide(this);return wfe(a,(rfe(),rfe(),++qfe,new gge(3,a)))};_.Xl=function Kee(a){var b;ide(this);b=(rfe(),rfe(),++qfe,new Gge(2));Fge(b,a);Fge(b,(null,afe));return b};_.Yl=function Lee(a){ide(this);return rfe(),rfe(),++qfe,new gge(3,a)};var Zde=null,$de=null;var Zab=ldb(gxe,'RegEx/ParserForXMLSchema',1823);acb(117,1,uxe,sfe);_.Zl=function tfe(a){throw ubb(new hz('Not supported.'))};_.$l=function Bfe(){return -1};_._l=function Cfe(a){return null};_.am=function Hfe(){return null};_.bm=function Kfe(a){};_.cm=function Lfe(a){};_.dm=function Mfe(){return 0};_.Ib=function Nfe(){return this.em(0)};_.em=function Ofe(a){return this.e==11?'.':''};_.e=0;var Tee,Uee,Vee,Wee,Xee,Yee=null,Zee,$ee=null,_ee,afe,bfe=null,cfe,dfe,efe,ffe,gfe,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe=0;var kbb=ldb(gxe,'RegEx/Token',117);acb(136,117,{3:1,136:1,117:1},Vfe);_.em=function Yfe(a){var b,c,d;if(this.e==4){if(this==_ee)c='.';else if(this==Zee)c='\\d';else if(this==nfe)c='\\w';else if(this==ife)c='\\s';else{d=new Gfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Dfb(d,Xfe(this.b[b]))}else{Dfb(d,Xfe(this.b[b]));d.a+='-';Dfb(d,Xfe(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==efe)c='\\D';else if(this==gfe)c='\\W';else if(this==ffe)c='\\S';else{d=new Gfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Dfb(d,Xfe(this.b[b]))}else{Dfb(d,Xfe(this.b[b]));d.a+='-';Dfb(d,Xfe(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var $ab=ldb(gxe,'RegEx/RangeToken',136);acb(584,1,{584:1},Zfe);_.a=0;var _ab=ldb(gxe,'RegEx/RegexParser/ReferencePosition',584);acb(583,1,{3:1,583:1},_fe);_.Fb=function age(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return cfb(this.b,b.b)&&this.a==b.a};_.Hb=function bge(){return KCb(this.b+'/'+Nee(this.a))};_.Ib=function cge(){return this.c.em(this.a)};_.a=0;var bbb=ldb(gxe,'RegEx/RegularExpression',583);acb(223,117,uxe,dge);_.$l=function ege(){return this.a};_.em=function fge(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='\\'+HD(this.a&Xie);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>=Oje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+pfb(c,c.length-6,c.length)}else d=''+HD(this.a&Xie);}break;case 8:this==cfe||this==dfe?(d=''+HD(this.a&Xie)):(d='\\'+HD(this.a&Xie));break;default:d=null;}return d};_.a=0;var cbb=ldb(gxe,'RegEx/Token/CharToken',223);acb(309,117,uxe,gge);_._l=function hge(a){return this.a};_.bm=function ige(a){this.b=a};_.cm=function jge(a){this.c=a};_.dm=function kge(){return 1};_.em=function lge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.em(a)+'*'}else if(this.c==this.b){b=this.a.em(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.em(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.em(a)+'{'+this.c+',}'}else throw ubb(new hz('Token#toString(): CLOSURE '+this.c+Nhe+this.b))}else{if(this.c<0&&this.b<0){b=this.a.em(a)+'*?'}else if(this.c==this.b){b=this.a.em(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.em(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.em(a)+'{'+this.c+',}?'}else throw ubb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+Nhe+this.b))}return b};_.b=0;_.c=0;var dbb=ldb(gxe,'RegEx/Token/ClosureToken',309);acb(820,117,uxe,mge);_._l=function nge(a){return a==0?this.a:this.b};_.dm=function oge(){return 2};_.em=function pge(a){var b;this.b.e==3&&this.b._l(0)==this.a?(b=this.a.em(a)+'+'):this.b.e==9&&this.b._l(0)==this.a?(b=this.a.em(a)+'+?'):(b=this.a.em(a)+(''+this.b.em(a)));return b};var ebb=ldb(gxe,'RegEx/Token/ConcatToken',820);acb(1821,117,uxe,qge);_._l=function rge(a){if(a==0)return this.d;if(a==1)return this.b;throw ubb(new hz('Internal Error: '+a))};_.dm=function sge(){return !this.b?1:2};_.em=function tge(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 fbb=ldb(gxe,'RegEx/Token/ConditionToken',1821);acb(1822,117,uxe,uge);_._l=function vge(a){return this.b};_.dm=function wge(){return 1};_.em=function xge(a){return '(?'+(this.a==0?'':Nee(this.a))+(this.c==0?'':Nee(this.c))+':'+this.b.em(a)+')'};_.a=0;_.c=0;var gbb=ldb(gxe,'RegEx/Token/ModifierToken',1822);acb(821,117,uxe,yge);_._l=function zge(a){return this.a};_.dm=function Age(){return 1};_.em=function Bge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.em(a)+')'):(b='('+this.a.em(a)+')');break;case 20:b='(?='+this.a.em(a)+')';break;case 21:b='(?!'+this.a.em(a)+')';break;case 22:b='(?<='+this.a.em(a)+')';break;case 23:b='(?'+this.a.em(a)+')';}return b};_.b=0;var hbb=ldb(gxe,'RegEx/Token/ParenToken',821);acb(521,117,{3:1,117:1,521:1},Cge);_.am=function Dge(){return this.b};_.em=function Ege(a){return this.e==12?'\\'+this.a:Ree(this.b)};_.a=0;var ibb=ldb(gxe,'RegEx/Token/StringToken',521);acb(465,117,uxe,Gge);_.Zl=function Hge(a){Fge(this,a)};_._l=function Ige(a){return BD(Tvb(this.a,a),117)};_.dm=function Jge(){return !this.a?0:this.a.a.c.length};_.em=function Kge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Tvb(this.a,0),117);c=BD(Tvb(this.a,1),117);c.e==3&&c._l(0)==b?(e=b.em(a)+'+'):c.e==9&&c._l(0)==b?(e=b.em(a)+'+?'):(e=b.em(a)+(''+c.em(a)))}else{f=new Gfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function rhe(){return this.b>0};_.Tb=function the(){return this.b};_.Vb=function vhe(){return this.b-1};_.Qb=function whe(){throw ubb(new bgb(Axe))};_.a=0;_.b=0;var obb=ldb(xxe,'ExclusiveRange/RangeIterator',254);var TD=odb(Bve,'C');var WD=odb(Eve,'I');var rbb=odb(Fhe,'Z');var XD=odb(Fve,'J');var SD=odb(Ave,'B');var UD=odb(Cve,'D');var VD=odb(Dve,'F');var qbb=odb(Gve,'S');var g1=ndb('org.eclipse.elk.core.labels','ILabelManager');var N4=ndb(Ote,'DiagnosticChain');var t8=ndb(lwe,'ResourceSet');var U4=ldb(Ote,'InvocationTargetException',null);var Dhe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Ybb;Wbb(gcb);Zbb('permProps',[[[Bxe,Cxe],[Dxe,'gecko1_8']],[[Bxe,Cxe],[Dxe,'ie10']],[[Bxe,Cxe],[Dxe,'ie8']],[[Bxe,Cxe],[Dxe,'ie9']],[[Bxe,Cxe],[Dxe,'safari']]]); +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); + +}).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