diff --git a/OneWare.sln b/OneWare.sln index bc3aa0d9..54c0f796 100644 --- a/OneWare.sln +++ b/OneWare.sln @@ -131,10 +131,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{BD761CED EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneWare.OssCadSuiteIntegration", "src\OneWare.OssCadSuiteIntegration\OneWare.OssCadSuiteIntegration.csproj", "{4E2FD886-862B-4DE9-A69E-AE82E52979B5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneWare.NetListSvgIntegration", "src\OneWare.NetListSvgIntegration\OneWare.NetListSvgIntegration.csproj", "{C3A5837C-6679-493A-A6FD-F3440AF57FDE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneWare.NetListSvgIntegration.UnitTests", "tests\OneWare.NetListSvgIntegration.UnitTests\OneWare.NetListSvgIntegration.UnitTests.csproj", "{89668C99-1F29-453B-828C-D89EBA9EA218}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneWare.Shared.UnitTests", "tests\OneWare.Shared.UnitTests\OneWare.Shared.UnitTests.csproj", "{5C6FFAFA-590C-400D-8F90-89C9880864AF}" EndProject Global @@ -287,14 +283,6 @@ Global {4E2FD886-862B-4DE9-A69E-AE82E52979B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {4E2FD886-862B-4DE9-A69E-AE82E52979B5}.Release|Any CPU.ActiveCfg = Release|Any CPU {4E2FD886-862B-4DE9-A69E-AE82E52979B5}.Release|Any CPU.Build.0 = Release|Any CPU - {C3A5837C-6679-493A-A6FD-F3440AF57FDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3A5837C-6679-493A-A6FD-F3440AF57FDE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3A5837C-6679-493A-A6FD-F3440AF57FDE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C3A5837C-6679-493A-A6FD-F3440AF57FDE}.Release|Any CPU.Build.0 = Release|Any CPU - {89668C99-1F29-453B-828C-D89EBA9EA218}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {89668C99-1F29-453B-828C-D89EBA9EA218}.Debug|Any CPU.Build.0 = Debug|Any CPU - {89668C99-1F29-453B-828C-D89EBA9EA218}.Release|Any CPU.ActiveCfg = Release|Any CPU - {89668C99-1F29-453B-828C-D89EBA9EA218}.Release|Any CPU.Build.0 = Release|Any CPU {5C6FFAFA-590C-400D-8F90-89C9880864AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5C6FFAFA-590C-400D-8F90-89C9880864AF}.Debug|Any CPU.Build.0 = Debug|Any CPU {5C6FFAFA-590C-400D-8F90-89C9880864AF}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -340,8 +328,6 @@ Global {60A1DF89-0129-42B7-A509-D717A887667C} = {3782EFDF-2990-4B2C-907F-12739A839A3C} {BD761CED-3D61-4D9E-A2A1-494584F2ED5F} = {6FF7E7F6-DA3F-477E-AAD7-47E3655FA34D} {4E2FD886-862B-4DE9-A69E-AE82E52979B5} = {BD761CED-3D61-4D9E-A2A1-494584F2ED5F} - {C3A5837C-6679-493A-A6FD-F3440AF57FDE} = {BD761CED-3D61-4D9E-A2A1-494584F2ED5F} - {89668C99-1F29-453B-828C-D89EBA9EA218} = {EB783E04-C3C8-45F8-B810-24798DAE2450} {5C6FFAFA-590C-400D-8F90-89C9880864AF} = {EB783E04-C3C8-45F8-B810-24798DAE2450} EndGlobalSection EndGlobal diff --git a/build/props/Base.props b/build/props/Base.props index 8acd989a..01737794 100644 --- a/build/props/Base.props +++ b/build/props/Base.props @@ -1,7 +1,7 @@  - 0.12.0.7 + 0.12.0.8 Hendrik Mennen Protop Solutions UG The FPGA Programming Revolution diff --git a/build/props/Dock.Avalonia.props b/build/props/Dock.Avalonia.props index 5b3bb42c..7a984d1d 100644 --- a/build/props/Dock.Avalonia.props +++ b/build/props/Dock.Avalonia.props @@ -1,7 +1,7 @@  - - + + \ No newline at end of file diff --git a/demo/OneWare.Demo.Desktop/DesktopDemoApp.cs b/demo/OneWare.Demo.Desktop/DesktopDemoApp.cs index 02686ba9..2b2e15e4 100644 --- a/demo/OneWare.Demo.Desktop/DesktopDemoApp.cs +++ b/demo/OneWare.Demo.Desktop/DesktopDemoApp.cs @@ -1,24 +1,19 @@ using System; using System.IO; -using System.Linq; using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Media; -using DynamicData; using ImTools; using OneWare.Core; using OneWare.Core.Data; -using OneWare.Core.ModuleLogic; using OneWare.Core.Views.Windows; using OneWare.Cpp; using OneWare.Demo.Desktop.ViewModels; -using OneWare.NetListSvgIntegration; using OneWare.OssCadSuiteIntegration; using OneWare.PackageManager; using OneWare.SerialMonitor; using OneWare.Shared.Enums; -using OneWare.Shared.Models; using OneWare.Shared.Services; using OneWare.SourceControl; using OneWare.TerminalManager; @@ -40,7 +35,6 @@ protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog) moduleCatalog.AddModule(); moduleCatalog.AddModule(); moduleCatalog.AddModule(); - moduleCatalog.AddModule(); try { diff --git a/demo/OneWare.Demo.Desktop/OneWare.Demo.Desktop.csproj b/demo/OneWare.Demo.Desktop/OneWare.Demo.Desktop.csproj index ed520612..c74fed99 100644 --- a/demo/OneWare.Demo.Desktop/OneWare.Demo.Desktop.csproj +++ b/demo/OneWare.Demo.Desktop/OneWare.Demo.Desktop.csproj @@ -32,7 +32,6 @@ - diff --git a/src/OneWare.NetListSvgIntegration/Assets/elk.bundled.js b/src/OneWare.NetListSvgIntegration/Assets/elk.bundled.js deleted file mode 100644 index 60772b4c..00000000 --- a/src/OneWare.NetListSvgIntegration/Assets/elk.bundled.js +++ /dev/null @@ -1,6123 +0,0 @@ -(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 e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 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'] : _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; - - if (!graph) { - return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); - } - return this.worker.postMessage({ - cmd: 'layout', - graph: graph, - options: layoutOptions - }); - } - }, { - 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) { - 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(); - } - } - }]); - - return PromisedWorker; -}(); -},{}],2:[function(require,module,exports){ -(function (global){ - -// -------------- 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; - -// -------------- GENERATED CODE -------------- -function g3(){} -function d3(){} -function ib(){} -function sb(){} -function xf(){} -function xw(){} -function Hw(){} -function Hn(){} -function Oi(){} -function Ow(){} -function qo(){} -function Ao(){} -function np(){} -function $t(){} -function Du(){} -function Ku(){} -function vx(){} -function yx(){} -function Ex(){} -function yy(){} -function j3(){} -function ldb(){} -function tdb(){} -function Edb(){} -function Mdb(){} -function afb(){} -function ffb(){} -function wfb(){} -function wnb(){} -function qnb(){} -function snb(){} -function unb(){} -function ynb(){} -function Bnb(){} -function Jnb(){} -function Lnb(){} -function Nnb(){} -function Nmb(){} -function amb(){} -function Pmb(){} -function Pnb(){} -function Tnb(){} -function Xnb(){} -function Uib(){} -function Zib(){} -function _ib(){} -function kpb(){} -function rpb(){} -function Hqb(){} -function Kqb(){} -function grb(){} -function wrb(){} -function Brb(){} -function Frb(){} -function ysb(){} -function Csb(){} -function Esb(){} -function Gsb(){} -function Jsb(){} -function Nsb(){} -function Qsb(){} -function Vsb(){} -function $sb(){} -function dtb(){} -function htb(){} -function otb(){} -function rtb(){} -function utb(){} -function xtb(){} -function Dtb(){} -function rub(){} -function Bub(){} -function Iub(){} -function Jvb(){} -function awb(){} -function cwb(){} -function ewb(){} -function gwb(){} -function iwb(){} -function Cwb(){} -function Mwb(){} -function Owb(){} -function uyb(){} -function Vyb(){} -function Fzb(){} -function hAb(){} -function zAb(){} -function AAb(){} -function DAb(){} -function NAb(){} -function fBb(){} -function wBb(){} -function BBb(){} -function BCb(){} -function mCb(){} -function tCb(){} -function xCb(){} -function FCb(){} -function JCb(){} -function qDb(){} -function QDb(){} -function TDb(){} -function bEb(){} -function GFb(){} -function fGb(){} -function oHb(){} -function tHb(){} -function xHb(){} -function BHb(){} -function FHb(){} -function JHb(){} -function JIb(){} -function HIb(){} -function LIb(){} -function PIb(){} -function TIb(){} -function TJb(){} -function nJb(){} -function qJb(){} -function QJb(){} -function tKb(){} -function yKb(){} -function EKb(){} -function IKb(){} -function KKb(){} -function MKb(){} -function OKb(){} -function $Kb(){} -function cLb(){} -function gLb(){} -function iLb(){} -function mLb(){} -function vLb(){} -function xLb(){} -function zLb(){} -function BLb(){} -function DLb(){} -function DMb(){} -function mMb(){} -function uMb(){} -function xMb(){} -function RMb(){} -function UMb(){} -function ZMb(){} -function dNb(){} -function pNb(){} -function qNb(){} -function tNb(){} -function yNb(){} -function CNb(){} -function FNb(){} -function KNb(){} -function QNb(){} -function WNb(){} -function wPb(){} -function CPb(){} -function EPb(){} -function GPb(){} -function RPb(){} -function YPb(){} -function kQb(){} -function rQb(){} -function tQb(){} -function wQb(){} -function KQb(){} -function MQb(){} -function UQb(){} -function XQb(){} -function $Qb(){} -function $Rb(){} -function cRb(){} -function jRb(){} -function qRb(){} -function uRb(){} -function IRb(){} -function PRb(){} -function RRb(){} -function WRb(){} -function gSb(){} -function mSb(){} -function qSb(){} -function uSb(){} -function xSb(){} -function zSb(){} -function BSb(){} -function DSb(){} -function HSb(){} -function PSb(){} -function qTb(){} -function wTb(){} -function GTb(){} -function QTb(){} -function $Tb(){} -function $Ub(){} -function mUb(){} -function sUb(){} -function uUb(){} -function yUb(){} -function CUb(){} -function GUb(){} -function KUb(){} -function OUb(){} -function QUb(){} -function cVb(){} -function gVb(){} -function iVb(){} -function mVb(){} -function CVb(){} -function cWb(){} -function eWb(){} -function gWb(){} -function iWb(){} -function kWb(){} -function mWb(){} -function oWb(){} -function sWb(){} -function uWb(){} -function wWb(){} -function yWb(){} -function MWb(){} -function OWb(){} -function QWb(){} -function WWb(){} -function YWb(){} -function bXb(){} -function iYb(){} -function qYb(){} -function MYb(){} -function OYb(){} -function QYb(){} -function VYb(){} -function gZb(){} -function iZb(){} -function oZb(){} -function rZb(){} -function yZb(){} -function BZb(){} -function M$b(){} -function N6b(){} -function J9b(){} -function Jgc(){} -function tgc(){} -function xgc(){} -function Hgc(){} -function Lgc(){} -function Pgc(){} -function Vgc(){} -function Zgc(){} -function _gc(){} -function Oac(){} -function kcc(){} -function wdc(){} -function ydc(){} -function Cdc(){} -function bhc(){} -function dhc(){} -function jhc(){} -function lhc(){} -function qhc(){} -function shc(){} -function yhc(){} -function Ahc(){} -function Ehc(){} -function Ghc(){} -function Khc(){} -function Mhc(){} -function Ohc(){} -function Qhc(){} -function Qkc(){} -function Dic(){} -function ajc(){} -function Ajc(){} -function znc(){} -function Knc(){} -function Mnc(){} -function loc(){} -function ooc(){} -function opc(){} -function apc(){} -function cpc(){} -function hpc(){} -function jpc(){} -function upc(){} -function usc(){} -function isc(){} -function nsc(){} -function qsc(){} -function ssc(){} -function ysc(){} -function jqc(){} -function Lrc(){} -function Luc(){} -function buc(){} -function iuc(){} -function Auc(){} -function stc(){} -function Ttc(){} -function Wtc(){} -function Ztc(){} -function bvc(){} -function fvc(){} -function mvc(){} -function Rvc(){} -function awc(){} -function twc(){} -function uwc(){} -function wwc(){} -function ywc(){} -function Awc(){} -function Cwc(){} -function Ewc(){} -function Gwc(){} -function Iwc(){} -function Kwc(){} -function Mwc(){} -function Owc(){} -function Qwc(){} -function Swc(){} -function Uwc(){} -function Wwc(){} -function Ywc(){} -function $wc(){} -function $Fc(){} -function mFc(){} -function qFc(){} -function uFc(){} -function axc(){} -function Axc(){} -function zzc(){} -function dCc(){} -function WDc(){} -function NEc(){} -function aGc(){} -function wGc(){} -function sHc(){} -function sJc(){} -function oJc(){} -function VIc(){} -function XIc(){} -function ZIc(){} -function _Ic(){} -function mKc(){} -function vKc(){} -function xKc(){} -function zKc(){} -function HKc(){} -function tLc(){} -function wLc(){} -function yLc(){} -function MLc(){} -function QLc(){} -function QOc(){} -function MPc(){} -function cQc(){} -function BQc(){} -function rRc(){} -function NSc(){} -function NYc(){} -function cYc(){} -function FYc(){} -function F7c(){} -function ATc(){} -function _Tc(){} -function e_c(){} -function R2c(){} -function W3c(){} -function i4c(){} -function q6c(){} -function D6c(){} -function n8c(){} -function H8c(){} -function ced(){} -function fed(){} -function ied(){} -function qed(){} -function Ded(){} -function Ged(){} -function ngd(){} -function Ikd(){} -function rld(){} -function Mmd(){} -function Pmd(){} -function Smd(){} -function Vmd(){} -function Ymd(){} -function _md(){} -function cnd(){} -function fnd(){} -function ind(){} -function zod(){} -function Dod(){} -function npd(){} -function Fpd(){} -function Hpd(){} -function Kpd(){} -function Npd(){} -function Qpd(){} -function Tpd(){} -function Wpd(){} -function Zpd(){} -function aqd(){} -function dqd(){} -function gqd(){} -function jqd(){} -function mqd(){} -function pqd(){} -function sqd(){} -function vqd(){} -function yqd(){} -function Bqd(){} -function Eqd(){} -function Hqd(){} -function Kqd(){} -function Nqd(){} -function Qqd(){} -function Tqd(){} -function Wqd(){} -function Zqd(){} -function ard(){} -function drd(){} -function grd(){} -function jrd(){} -function mrd(){} -function prd(){} -function srd(){} -function vrd(){} -function yrd(){} -function Brd(){} -function Erd(){} -function Hrd(){} -function Krd(){} -function Nrd(){} -function Qrd(){} -function Trd(){} -function Wrd(){} -function Zrd(){} -function $wd(){} -function Ayd(){} -function AAd(){} -function qBd(){} -function DBd(){} -function FBd(){} -function IBd(){} -function LBd(){} -function OBd(){} -function RBd(){} -function UBd(){} -function XBd(){} -function $Bd(){} -function bCd(){} -function eCd(){} -function hCd(){} -function kCd(){} -function nCd(){} -function qCd(){} -function tCd(){} -function wCd(){} -function zCd(){} -function CCd(){} -function FCd(){} -function ICd(){} -function LCd(){} -function OCd(){} -function RCd(){} -function UCd(){} -function XCd(){} -function $Cd(){} -function bDd(){} -function eDd(){} -function hDd(){} -function kDd(){} -function nDd(){} -function qDd(){} -function tDd(){} -function wDd(){} -function zDd(){} -function CDd(){} -function FDd(){} -function IDd(){} -function LDd(){} -function ODd(){} -function RDd(){} -function UDd(){} -function XDd(){} -function $Dd(){} -function bEd(){} -function eEd(){} -function hEd(){} -function kEd(){} -function nEd(){} -function qEd(){} -function tEd(){} -function SEd(){} -function rId(){} -function BId(){} -function Iid(a){} -function ymc(a){} -function gl(){rb()} -function fsb(){esb()} -function rvb(){qvb()} -function Hvb(){Fvb()} -function G4b(){F4b()} -function Txb(){Sxb()} -function Tyb(){Ryb()} -function syb(){qyb()} -function Jyb(){Iyb()} -function aJb(){WIb()} -function nNb(){hNb()} -function k9b(){h9b()} -function V9b(){Q9b()} -function PPb(){LPb()} -function dSb(){bSb()} -function L6b(){J6b()} -function eac(){$9b()} -function xcc(){tcc()} -function pfc(){mfc()} -function Ffc(){vfc()} -function Vhc(){Thc()} -function Vpc(){Upc()} -function $qc(){Uqc()} -function hqc(){fqc()} -function Jqc(){Dqc()} -function Qqc(){Nqc()} -function Pjc(){Mjc()} -function erc(){crc()} -function dtc(){ctc()} -function qtc(){otc()} -function B7c(){o7c()} -function xzc(){vzc()} -function _Ac(){$Ac()} -function gRc(){$Qc()} -function bCc(){_Bc()} -function UDc(){SDc()} -function Sbd(){wbd()} -function pyd(){qId()} -function Xd(a){this.a=a} -function Yb(a){this.a=a} -function jc(a){this.a=a} -function Vg(a){this.a=a} -function _g(a){this.a=a} -function Qi(a){this.a=a} -function Qq(a){this.a=a} -function Uq(a){this.a=a} -function bj(a){this.a=a} -function fj(a){this.a=a} -function vk(a){this.a=a} -function zk(a){this.a=a} -function vl(a){this.a=a} -function vt(a){this.a=a} -function lt(a){this.a=a} -function Jt(a){this.a=a} -function Ot(a){this.a=a} -function Os(a){this.a=a} -function Fo(a){this.a=a} -function xo(a){this.b=a} -function Ut(a){this.a=a} -function fu(a){this.a=a} -function ju(a){this.a=a} -function pu(a){this.a=a} -function su(a){this.a=a} -function gy(a){this.a=a} -function qy(a){this.a=a} -function Cy(a){this.a=a} -function Qy(a){this.a=a} -function m3(a){this.a=a} -function L3(a){this.a=a} -function V3(a){this.a=a} -function F4(a){this.a=a} -function S4(a){this.a=a} -function k5(a){this.a=a} -function K5(a){this.a=a} -function X8(a){this.a=a} -function G9(a){this.a=a} -function M9(a){this.a=a} -function R9(a){this.a=a} -function W9(a){this.a=a} -function m9(a){this.d=a} -function fy(){this.a=[]} -function Bgb(){L8(this)} -function jub(a,b){a.i=b} -function iub(a,b){a.g=b} -function _ub(a,b){a.b=b} -function bvb(a,b){a.b=b} -function bGb(a,b){a.a=b} -function qpb(a,b){a.a=b} -function dxb(a,b){a.c=b} -function dGb(a,b){a.c=b} -function cGb(a,b){a.b=b} -function eGb(a,b){a.d=b} -function exb(a,b){a.d=b} -function GGb(a,b){a.j=b} -function $bc(a,b){a.a=b} -function _bc(a,b){a.f=b} -function _rc(a,b){a.f=b} -function $rc(a,b){a.e=b} -function bmc(a,b){a.k=b} -function qmc(a,b){a.a=b} -function rmc(a,b){a.b=b} -function asc(a,b){a.g=b} -function BHc(a,b){a.j=b} -function P9c(a,b){a.n=b} -function Btd(a,b){a.a=b} -function Ktd(a,b){a.a=b} -function Ctd(a,b){a.c=b} -function Ltd(a,b){a.c=b} -function Mtd(a,b){a.d=b} -function Ntd(a,b){a.e=b} -function Otd(a,b){a.g=b} -function eud(a,b){a.a=b} -function fud(a,b){a.c=b} -function gud(a,b){a.d=b} -function hud(a,b){a.e=b} -function iud(a,b){a.f=b} -function jud(a,b){a.j=b} -function yAd(a,b){a.a=b} -function GAd(a,b){a.a=b} -function zAd(a,b){a.b=b} -function AXb(a){a.b=a.a} -function ri(a){a.c=a.d.d} -function Gb(a){pA(Pb(a))} -function sab(a){this.b=a} -function xab(a){this.a=a} -function Eab(a){this.a=a} -function Qdb(a){this.a=a} -function Xdb(a){this.b=a} -function neb(a){this.b=a} -function nkb(a){this.a=a} -function pkb(a){this.a=a} -function jfb(a){this.a=a} -function Rfb(a){this.a=a} -function Rmb(a){this.a=a} -function Lmb(a){this.a=a} -function Mgb(a){this.a=a} -function Yhb(a){this.a=a} -function yjb(a){this.a=a} -function onb(a){this.a=a} -function Dnb(a){this.a=a} -function Fnb(a){this.a=a} -function Hnb(a){this.a=a} -function Rnb(a){this.a=a} -function Vnb(a){this.a=a} -function job(a){this.a=a} -function qob(a){this.a=a} -function sob(a){this.a=a} -function uob(a){this.a=a} -function epb(a){this.a=a} -function ipb(a){this.a=a} -function mpb(a){this.a=a} -function tpb(a){this.a=a} -function erb(a){this.a=a} -function Btb(a){this.a=a} -function kwb(a){this.a=a} -function mwb(a){this.a=a} -function Fwb(a){this.a=a} -function qzb(a){this.a=a} -function Dzb(a){this.a=a} -function BEb(a){this.a=a} -function cFb(a){this.a=a} -function ccb(a){this.c=a} -function pFb(a){this.e=a} -function NHb(a){this.a=a} -function QHb(a){this.a=a} -function VHb(a){this.a=a} -function YHb(a){this.a=a} -function NIb(a){this.a=a} -function RIb(a){this.a=a} -function dJb(a){this.a=a} -function fJb(a){this.a=a} -function hJb(a){this.a=a} -function jJb(a){this.a=a} -function vJb(a){this.a=a} -function DJb(a){this.a=a} -function kLb(a){this.a=a} -function oLb(a){this.a=a} -function ZLb(a){this.a=a} -function ZNb(a){this.a=a} -function TNb(a){this.a=a} -function aOb(a){this.a=a} -function dOb(a){this.a=a} -function nQb(a){this.a=a} -function xRb(a){this.a=a} -function ARb(a){this.a=a} -function UTb(a){this.a=a} -function qUb(a){this.a=a} -function wUb(a){this.a=a} -function EUb(a){this.a=a} -function EVb(a){this.a=a} -function zVb(a){this.a=a} -function qWb(a){this.a=a} -function AWb(a){this.a=a} -function CWb(a){this.a=a} -function GWb(a){this.a=a} -function IWb(a){this.a=a} -function KWb(a){this.a=a} -function SWb(a){this.a=a} -function kZb(a){this.a=a} -function mZb(a){this.a=a} -function z9b(a){this.a=a} -function D9b(a){this.a=a} -function CYb(a){this.b=a} -function iac(a){this.a=a} -function ibc(a){this.a=a} -function Gbc(a){this.a=a} -function Ebc(a){this.c=a} -function Bcc(a){this.a=a} -function idc(a){this.a=a} -function kdc(a){this.a=a} -function mdc(a){this.a=a} -function wec(a){this.a=a} -function Aec(a){this.a=a} -function Eec(a){this.a=a} -function Iec(a){this.a=a} -function Nec(a){this.a=a} -function Ngc(a){this.a=a} -function Tgc(a){this.a=a} -function Xgc(a){this.a=a} -function hhc(a){this.a=a} -function nhc(a){this.a=a} -function uhc(a){this.a=a} -function Chc(a){this.a=a} -function Ihc(a){this.a=a} -function fjc(a){this.a=a} -function kkc(a){this.a=a} -function pkc(a){this.a=a} -function ukc(a){this.a=a} -function Aoc(a){this.a=a} -function Doc(a){this.a=a} -function dvc(a){this.a=a} -function hvc(a){this.a=a} -function QEc(a){this.a=a} -function lGc(a){this.a=a} -function IGc(a){this.a=a} -function _Gc(a){this.f=a} -function kfc(a){this.i=a} -function AHc(a){this.a=a} -function UKc(a){this.a=a} -function dMc(a){this.a=a} -function fVc(a){this.a=a} -function gVc(a){this.a=a} -function lVc(a){this.a=a} -function mVc(a){this.a=a} -function nVc(a){this.a=a} -function oVc(a){this.a=a} -function qVc(a){this.a=a} -function rVc(a){this.a=a} -function uVc(a){this.a=a} -function wVc(a){this.a=a} -function xVc(a){this.a=a} -function yVc(a){this.a=a} -function zVc(a){this.a=a} -function AVc(a){this.a=a} -function CVc(a){this.a=a} -function DVc(a){this.a=a} -function EVc(a){this.a=a} -function FVc(a){this.a=a} -function GVc(a){this.a=a} -function HVc(a){this.a=a} -function IVc(a){this.a=a} -function SVc(a){this.a=a} -function TVc(a){this.a=a} -function XVc(a){this.a=a} -function eWc(a){this.a=a} -function gWc(a){this.a=a} -function iWc(a){this.a=a} -function kWc(a){this.a=a} -function OWc(a){this.a=a} -function DWc(a){this.b=a} -function M2c(a){this.a=a} -function T2c(a){this.a=a} -function Z2c(a){this.a=a} -function d3c(a){this.a=a} -function v3c(a){this.a=a} -function Fdd(a){this.a=a} -function med(a){this.a=a} -function Yed(a){this.b=a} -function kgd(a){this.a=a} -function hhd(a){this.a=a} -function jkd(a){this.a=a} -function Sod(a){this.a=a} -function $od(a){this.a=a} -function Asd(a){this.a=a} -function Psd(a){this.a=a} -function tsd(a){this.d=a} -function Gld(a){this.c=a} -function kmd(a){this.e=a} -function VGd(a){this.e=a} -function Nxd(a){this.a=a} -function AHd(a){this.a=a} -function UFc(){this.a=0} -function $ab(){Mab(this)} -function Gbb(){rbb(this)} -function mrb(){lrb(this)} -function h3(){QYc();RYc()} -function By(){return null} -function fz(){return null} -function nz(a){return a.a} -function my(a){return a.a} -function uy(a){return a.a} -function Iy(a){return a.a} -function Wy(a){return a.a} -function x2(a){return a.e} -function xhd(){this.c=ihd} -function Xgd(){this.a=this} -function G4(a){this.a=L4(a)} -function z4(){Sv.call(this)} -function N4(){Sv.call(this)} -function P4(){Sv.call(this)} -function p3(){Sv.call(this)} -function t3(){Sv.call(this)} -function x3(){Lv.call(this)} -function Sv(){Lv.call(this)} -function A5(){Sv.call(this)} -function U6(){Sv.call(this)} -function r3(){p3.call(this)} -function _Jc(a){a.b.Te(a.e)} -function euc(a,b){b.jd(a.a)} -function NLb(a,b){a.a=b-a.a} -function QLb(a,b){a.b=b-a.b} -function yYb(a,b){a.b+=b} -function Oc(a,b){a.d.b.$b(b)} -function jp(a,b){a.e=b;b.b=a} -function Cpb(a,b){a.length=b} -function wEc(a){a.a=new yib} -function Qw(){Qw=d3;new Bgb} -function fzb(){this.b=new Zp} -function sgd(){this.Bb|=256} -function qfb(){Sv.call(this)} -function zfb(){Sv.call(this)} -function djb(){Sv.call(this)} -function Muc(){Sv.call(this)} -function Lyd(a){Cud(a.c,a.b)} -function TKc(a,b){wIc(a.c,b)} -function J2c(a,b){M1c(a.a,b)} -function K2c(a,b){N1c(a.a,b)} -function Rkb(a,b){tbb(a.a,b)} -function jjc(a,b){Ggb(a.b,b)} -function ocd(a,b){vMc(a.e,b)} -function Cw(a){Bw();Aw.Rd(a)} -function uw(){uw=d3;tw=new xw} -function rb(){rb=d3;qb=new sb} -function Vv(){Vv=d3;Uv=new ib} -function Fk(){Fk=d3;Ek=new Gk} -function Uk(){Uk=d3;Tk=new Vk} -function Iu(){Iu=d3;Hu=new Ku} -function tx(){tx=d3;sx=new vx} -function xy(){xy=d3;wy=new yy} -function Jgb(){this.a=new Bgb} -function Pzb(){this.a=new Bzb} -function Ukb(){this.a=new Gbb} -function dCb(){this.a=new Gbb} -function dDb(){this.a=new Gbb} -function xDb(){this.a=new Gbb} -function LDb(){this.a=new Gbb} -function FDb(){this.a=new Jgb} -function Bmb(){this.a=new Klb} -function tqb(){this.a=new pqb} -function Aqb(){this.a=new uqb} -function Zwb(){this.a=new Mwb} -function IZb(){this.a=new BZb} -function NZb(){this.a=new Gbb} -function SZb(){this.a=new Gbb} -function M9b(){this.b=new Gbb} -function Lfc(){this.f=new Gbb} -function Fic(){this.d=new Gbb} -function rpc(){this.a=new Gbb} -function r$b(){this.a=new PZb} -function fuc(){this.a=new iuc} -function Suc(){this.j=new Gbb} -function Vyc(){yib.call(this)} -function Ggc(){Gbb.call(this)} -function qlb(){Ukb.call(this)} -function qGb(){mGb.call(this)} -function mGb(){fGb.call(this)} -function XGb(){fGb.call(this)} -function $Gb(){XGb.call(this)} -function o6c(){Bgb.call(this)} -function x6c(){Bgb.call(this)} -function I6c(){Bgb.call(this)} -function njc(){mjc.call(this)} -function ujc(){mjc.call(this)} -function SHc(){CHc.call(this)} -function S4c(){e4c.call(this)} -function t4c(){e4c.call(this)} -function bTc(){MPc.call(this)} -function pTc(){MPc.call(this)} -function pjd(){s9c.call(this)} -function Okd(){s9c.call(this)} -function zad(){V9c.call(this)} -function rAd(){F7c.call(this)} -function NAd(){F7c.call(this)} -function IAd(){rAd.call(this)} -function Hgd(){sgd.call(this)} -function qgd(){Jgb.call(this)} -function Lkd(){Bgb.call(this)} -function Ood(){Bgb.call(this)} -function dpd(){Bgb.call(this)} -function FFd(){SEd.call(this)} -function gf(a){Re.call(this,a)} -function Aj(a){Re.call(this,a)} -function Sj(a){Aj.call(this,a)} -function vf(a){qf.call(this,a)} -function zf(a){qf.call(this,a)} -function dn(a){tm.call(this,a)} -function au(a){Mm.call(this,a)} -function ap(a){Uo.call(this,a)} -function rs(a){gs.call(this,a)} -function Tv(a){Mv.call(this,a)} -function vy(a){Tv.call(this,a)} -function o3(a){Tv.call(this,a)} -function q3(a){Tv.call(this,a)} -function u3(a){Tv.call(this,a)} -function v3(a){Mv.call(this,a)} -function s3(a){q3.call(this,a)} -function A4(a){Tv.call(this,a)} -function O4(a){Tv.call(this,a)} -function Q4(a){Tv.call(this,a)} -function z5(a){Tv.call(this,a)} -function B5(a){Tv.call(this,a)} -function I5(a){O4.call(this,a)} -function Py(){Qy.call(this,{})} -function z6(){m3.call(this,'')} -function A6(){m3.call(this,'')} -function M6(){m3.call(this,'')} -function N6(){m3.call(this,'')} -function P6(a){q3.call(this,a)} -function V6(a){Tv.call(this,a)} -function k7(a){c7();e7(this,a)} -function kjb(a){ijb();this.a=a} -function ulb(a){a.b=null;a.c=0} -function nBb(a,b){a.a=b;pBb(a)} -function Exb(a,b){return a*a/b} -function u5(a){return a<0?-a:a} -function Ycc(a){Gcc();this.a=a} -function LGc(a){zGc();this.f=a} -function NGc(a){zGc();this.f=a} -function PIc(a,b,c){a.a[b.g]=c} -function FFc(a,b,c){LFc(c,a,b)} -function zPb(a,b,c){APb(c,a,b)} -function LKc(a,b,c){KKc(a,c,b)} -function ILc(){this.d=new Gbb} -function e4c(){this.a=new i4c} -function ge(){throw x2(new U6)} -function lj(){throw x2(new U6)} -function ol(){throw x2(new U6)} -function ir(){throw x2(new U6)} -function mr(){throw x2(new U6)} -function Chb(){throw x2(new U6)} -function Cb(a){this.c=pA(Pb(a))} -function cz(a){return new Cy(a)} -function ez(a){return new hz(a)} -function pz(a,b){return p4(a,b)} -function K3(a,b){return a.a-b.a} -function U3(a,b){return a.a-b.a} -function J5(a,b){return a.a-b.a} -function Rs(a,b){return a.g-b.g} -function v5(a,b){return a>b?a:b} -function x5(a,b){return a0} -function H2(a,b){return A2(a,b)<0} -function M8(a){return a.d.c+a.e.c} -function Hyc(){this.a=0;this.b=0} -function Wyc(a){zib.call(this,a)} -function f_c(a){dYc.call(this,a)} -function q3c(a){k3c.call(this,a)} -function s3c(a){k3c.call(this,a)} -function Cgb(a){N8.call(this,a,0)} -function Lkb(a){this.c=(Npb(a),a)} -function Kgb(a){this.a=new Cgb(a)} -function Cmb(a){this.a=new Llb(a)} -function yId(){throw x2(new djb)} -function zId(){throw x2(new djb)} -function pjb(){pjb=d3;ojb=new sjb} -function sdb(){sdb=d3;rdb=new tdb} -function Gqb(){Gqb=d3;Fqb=new Hqb} -function fvb(){fvb=d3;evb=new gvb} -function bAb(){bAb=d3;aAb=new hAb} -function MAb(){MAb=d3;LAb=new NAb} -function RAb(){RAb=d3;QAb=new qBb} -function iCb(){iCb=d3;hCb=new mCb} -function YDb(){YDb=d3;XDb=new bEb} -function rVb(){rVb=d3;qVb=new bXb} -function LPb(){LPb=d3;KPb=new RPb} -function bSb(){bSb=d3;aSb=new gSb} -function WIb(){WIb=d3;VIb=new Hyc} -function crc(){crc=d3;brc=new yvc} -function Wnc(){this.b=new $uc(bS)} -function wrc(){this.a=new $uc(ES)} -function ZJb(){this.a=(gBc(),eBc)} -function eKb(){this.a=(gBc(),eBc)} -function Grc(a){this.a=0;this.b=a} -function Fib(a){return a.b!=a.d.c} -function rec(a,b){return a.d[b.o]} -function mkb(a,b){while(a.sd(b));} -function Bpb(a,b,c){a.splice(b,c)} -function Bvc(a,b,c){J8(a.d,b.f,c)} -function ued(a,b){o_c(Ibd(a.a),b)} -function zed(a,b){o_c(Ibd(a.a),b)} -function yIc(a){a.c?xIc(a):zIc(a)} -function C6c(){C6c=d3;B6c=new D6c} -function v6c(){v6c=d3;u6c=new x6c} -function G6c(){G6c=d3;F6c=new I6c} -function A6c(){A6c=d3;z6c=new Lkd} -function L6c(){L6c=d3;K6c=new dpd} -function r5c(){r5c=d3;q5c=new Bgb} -function upd(){upd=d3;spd=new Gbb} -function tId(){tId=d3;sId=new BId} -function Ohd(){Ohd=d3;Nhd=new lwd} -function iid(){iid=d3;hid=new pwd} -function Zwd(){Zwd=d3;Ywd=new $wd} -function wyd(){wyd=d3;vyd=new Ayd} -function nId(a){this.a=new CHd(a)} -function dc(a){this.a=kA(Pb(a),13)} -function cd(a,b){this.b=a;this.c=b} -function od(a,b){this.b=a;this.a=b} -function Ud(a,b){this.b=a;this.d=b} -function eg(a,b){this.e=a;this.d=b} -function xh(a,b){this.b=a;this.c=b} -function Zj(a,b){this.a=a;this.b=b} -function ck(a,b){this.a=a;this.b=b} -function ek(a,b){this.a=a;this.b=b} -function nk(a,b){this.a=a;this.b=b} -function pk(a,b){this.b=a;this.a=b} -function Nh(a,b){ph.call(this,a,b)} -function Ph(a,b){Nh.call(this,a,b)} -function Pn(a,b){this.b=a;this.a=b} -function Vn(a,b){this.a=a;this.b=b} -function _m(a,b){this.g=a;this.i=b} -function Po(a,b){this.b=a;this.a=b} -function Nq(a,b){this.a=a;this.b=b} -function er(a,b){this.a=a;this.f=b} -function Re(a){Lb(a.Wb());this.c=a} -function ts(a,b){this.b=a;this.c=b} -function Ts(a,b){this.f=a;this.g=b} -function ct(a,b){Ts.call(this,a,b)} -function yu(a,b){this.e=a;this.c=b} -function Mm(a){this.b=kA(Pb(a),43)} -function bs(a){this.a=kA(Pb(a),15)} -function gs(a){this.a=kA(Pb(a),15)} -function Xy(a,b){this.a=a;this.b=b} -function $m(a,b){return a>b&&b0?a:b} -function Bz(a){return Cz(a.l,a.m,a.h)} -function Vx(a){return a<10?'0'+a:''+a} -function PBb(a){return a==KBb||a==NBb} -function QBb(a){return a==KBb||a==LBb} -function kIb(a){return ybb(a.b.b,a,0)} -function Zgb(a){this.a=khb();this.b=a} -function phb(a){this.a=khb();this.b=a} -function ll(a){this.a=a;gl.call(this)} -function En(a){this.a=a;gl.call(this)} -function Ecb(a,b){Acb(a,0,a.length,b)} -function plb(a,b){tbb(a.a,b);return b} -function tuc(a,b){tbb(a.c,b);return a} -function Tuc(a,b){svc(a.a,b);return a} -function $Vb(a,b){IVb();return b.a+=a} -function _Vb(a,b){IVb();return b.c+=a} -function aWb(a,b){IVb();return b.a+=a} -function i7b(a){return a==e7b||a==d7b} -function hBc(a){return a==cBc||a==dBc} -function iBc(a){return a==fBc||a==bBc} -function XCc(a){return a!=TCc&&a!=UCc} -function PMc(a){return a.eg()&&a.fg()} -function zvc(a){return svc(new yvc,a)} -function yjc(){yjc=d3;xjc=new Hfb(iU)} -function iib(){Mgb.call(this,new Jhb)} -function nGb(){gGb.call(this,0,0,0,0)} -function oyc(){pyc.call(this,0,0,0,0)} -function DYc(a){yYc.call(this,a,true)} -function Kyc(a){this.a=a.a;this.b=a.b} -function pPc(a,b,c){rPc(a,b);sPc(a,c)} -function nPc(a,b,c){qPc(a,b);oPc(a,c)} -function NOc(a,b,c){OOc(a,b);POc(a,c)} -function qQc(a,b,c){rQc(a,b);sQc(a,c)} -function xQc(a,b,c){yQc(a,b);zQc(a,c)} -function Uad(a,b){Kad(a,b);Lad(a,a.D)} -function xud(a,b){return new gwd(b,a)} -function yud(a,b){return new gwd(b,a)} -function U4(a,b){return ab?1:0} -function Kn(a){return fo(a.b.tc(),a.a)} -function Rn(a){return oo(a.a.tc(),a.b)} -function q6(a){return r6(a,0,a.length)} -function fjb(a){return a!=null?ob(a):0} -function Zo(a){Uo.call(this,new ap(a))} -function mmb(){hmb.call(this,'Head',1)} -function rmb(){hmb.call(this,'Tail',3)} -function Li(a,b,c){Ji.call(this,a,b,c)} -function _ob(a,b,c){qpb(a,b.le(a.a,c))} -function $pb(a,b){return parseInt(a,b)} -function FIb(a,b){return dXc(b,mTc(a))} -function GIb(a,b){return dXc(b,mTc(a))} -function YGb(a){gGb.call(this,a,a,a,a)} -function rbb(a){a.c=tz(NE,oJd,1,0,5,1)} -function Mab(a){a.a=tz(NE,oJd,1,8,5,1)} -function Kub(a){a.b&&Oub(a);return a.a} -function Lub(a){a.b&&Oub(a);return a.c} -function bTb(a){a.d&&fTb(a);return a.c} -function aTb(a){a.d&&fTb(a);return a.b} -function _Sb(a){a.d&&fTb(a);return a.a} -function I0c(a,b,c){wz(a,b,c);return c} -function o8b(a,b,c){wz(a.c[b.g],b.g,c)} -function UVb(a,b,c){return I8(a.g,c,b)} -function Xfc(a,b,c){return I8(a.k,c,b)} -function GFc(a,b,c){pPc(c,c.i+a,c.j+b)} -function GWc(a,b){EWc.call(this,a.b,b)} -function hId(a){UGd();VGd.call(this,a)} -function jmd(){jmd=d3;imd=(C6c(),B6c)} -function isd(){isd=d3;new jsd;new Gbb} -function jsd(){new Bgb;new Bgb;new Bgb} -function Zn(){Zn=d3;Xn=new qo;Yn=new Ao} -function bt(){bt=d3;_s=new ft;at=new ht} -function sk(){sk=d3;rk=Bb(new Cb(qJd))} -function Es(){Es=d3;new Gb((sk(),'='))} -function Ev(a){a.j=tz(QE,cKd,287,0,0,1)} -function Ai(a){this.a=a;ui.call(this,a)} -function U1c(a){return a==null?0:ob(a)} -function p6(a){return a==null?mJd:f3(a)} -function X5(a,b){return a.charCodeAt(b)} -function a6(a,b,c){return c6(a,o6(b),c)} -function Cz(a,b,c){return {l:a,m:b,h:c}} -function _bb(a){return a.ab-1?0:b-1} -function Yac(a,b,c){return c?b!=0:b!=a-1} -function _Hc(a,b,c){return a.a[b.g][c.g]} -function _ac(a,b){return a.e[b.c.o][b.o]} -function tbc(a,b){return a.a[b.c.o][b.o]} -function Obc(a,b){return a.a[b.c.o][b.o]} -function $fc(a,b){return a.j[b.o]=mgc(b)} -function xLc(a,b){return C4(a.c.d,b.c.d)} -function JLc(a,b){return C4(a.c.c,b.c.c)} -function sVc(a,b,c){vUc(a.a,a.b,a.c,b,c)} -function eIc(a,b,c,d){wz(a.a[b.g],c.g,d)} -function SXc(a,b,c){wz(a.g,b,c);return c} -function Dyc(a,b){a.a*=b;a.b*=b;return a} -function Jx(a,b){a.q.setHours(b);Hx(a,b)} -function fdd(a,b,c){Ycd.call(this,a,b,c)} -function jdd(a,b,c){fdd.call(this,a,b,c)} -function Bwd(a,b,c){fdd.call(this,a,b,c)} -function Ewd(a,b,c){jdd.call(this,a,b,c)} -function twd(a,b,c){lud.call(this,a,b,c)} -function xwd(a,b,c){lud.call(this,a,b,c)} -function zwd(a,b,c){twd.call(this,a,b,c)} -function Vwd(a,b,c){Owd.call(this,a,b,c)} -function Owd(a,b,c){Ycd.call(this,a,b,c)} -function Swd(a,b,c){Ycd.call(this,a,b,c)} -function ph(a,b){this.a=a;hh.call(this,b)} -function a0c(a){this.i=a;this.f=this.i.j} -function QId(a){this.c=a;this.a=this.c.a} -function s9c(){this.Bb|=256;this.Bb|=512} -function Rm(a,b){this.a=a;Mm.call(this,b)} -function Qo(a,b){this.a=b;Mm.call(this,a)} -function qp(a){this.b=a;this.a=this.b.a.e} -function si(a){a.b.jc();--a.d.f.d;Sh(a.d)} -function h1c(a){a.a=kA(VNc(a.b.a,4),116)} -function p1c(a){a.a=kA(VNc(a.b.a,4),116)} -function Nk(a){zk.call(this,kA(Pb(a),34))} -function al(a){zk.call(this,kA(Pb(a),34))} -function Bb(a){Pb(mJd);return new Eb(a,a)} -function Mq(a,b){return new Br(a.a,a.b,b)} -function j6(a,b,c){return a.substr(b,c-b)} -function Zv(a){return a==null?null:a.name} -function Lz(a){return a.l+a.m*fLd+a.h*gLd} -function uA(a){return typeof a==='number'} -function G2(a){return typeof a==='number'} -function kgb(a,b){return !!b&&a.b[b.g]==b} -function ofb(a,b){var c;c=a[BLd];b[BLd]=c} -function seb(a){Xdb.call(this,a);this.a=a} -function Geb(a){neb.call(this,a);this.a=a} -function Teb(a){Peb.call(this,a);this.a=a} -function jib(a){Mgb.call(this,new Khb(a))} -function bbb(a){if(!a){throw x2(new qfb)}} -function Lpb(a){if(!a){throw x2(new djb)}} -function d4(a){if(a.o!=null){return}t4(a)} -function jjb(a){Lpb(a.a!=null);return a.a} -function qqb(a,b){tbb(b.a,a.a);return a.a} -function wqb(a,b){tbb(b.b,a.a);return a.a} -function nob(a,b){!!b&&(a.a=(aob(b),b.a))} -function Amb(a,b){return Elb(a.a,b)!=null} -function YCb(a,b){return kA(Ke(a.a,b),15)} -function Rlb(a){return a.b=kA(k9(a.a),38)} -function bqb(a){return a.$H||(a.$H=++aqb)} -function eIb(a){return _bb(a.a)||_bb(a.b)} -function oub(a,b){return !!a.p&&D8(a.p,b)} -function LNb(a,b){return a.k.b=(Npb(b),b)} -function MNb(a,b){return a.k.b=(Npb(b),b)} -function QZb(a,b){++a.b;return tbb(a.a,b)} -function RZb(a,b){++a.b;return Abb(a.a,b)} -function h8b(a,b,c){return i8b(a,b,c,a.b)} -function k8b(a,b,c){return i8b(a,b,c,a.c)} -function kAb(a,b){lAb.call(this,a,b,null)} -function Ms(a,b){this.a=b;Mm.call(this,a)} -function Zlb(a){this.a=a;sab.call(this,a)} -function tVb(){rVb();this.b=new zVb(this)} -function QGc(a,b){zGc();this.f=b;this.d=a} -function Lv(){Ev(this);Gv(this);this.Pd()} -function j0c(a){this.d=a;a0c.call(this,a)} -function v0c(a){this.c=a;a0c.call(this,a)} -function y0c(a){this.c=a;j0c.call(this,a)} -function L2c(a,b,c){N1c(a.a,c);M1c(a.a,b)} -function xvc(a,b,c){kA(Quc(a,b),19).nc(c)} -function p$b(a,b){tbb(b.a,a.a);return a.a} -function ULb(a){var b;b=a.a;a.a=a.b;a.b=b} -function Rhd(a,b){Ohd();this.a=a;this.b=b} -function oid(a,b){iid();this.b=a;this.c=b} -function qi(a,b,c,d){fi.call(this,a,b,c,d)} -function Dq(a,b,c){var d;d=a.fd(b);d.Bc(c)} -function _pb(b,c,d){try{b[c]=d}catch(a){}} -function bLc(){bLc=d3;aLc=new EWc(DOd,0)} -function irc(){irc=d3;hrc=new DWc('root')} -function Y3c(){Y3c=d3;X3c=new t4c;new S4c} -function YGd(a){++TGd;return new JHd(3,a)} -function Tr(a){Wj(a,hKd);return new Hbb(a)} -function co(a){Zn();Pb(a);return new Jo(a)} -function dt(a){bt();return Zs((kt(),jt),a)} -function Fw(a){Bw();return parseInt(a)||-1} -function D3(a,b){B3();return a==b?0:a?1:-1} -function fBd(a){return a==null?null:f3(a)} -function gBd(a){return a==null?null:f3(a)} -function Ss(a){return a.f!=null?a.f:''+a.g} -function Ebb(a){return wpb(a.c,a.c.length)} -function Dhb(a){a.b=new Vhb(a);a.c=new Bgb} -function Rx(a){this.q=new $wnd.Date(T2(a))} -function BXb(a){this.c=a;this.a=1;this.b=1} -function tjb(a){pjb();this.b=a;this.a=true} -function fsc(){this.a=new Xm;this.b=new Xm} -function Vhb(a){Whb.call(this,a,null,null)} -function gvb(){Ts.call(this,'POLYOMINO',0)} -function LQc(a){sA(a,142)&&kA(a,142).Xg()} -function qib(a){Lpb(a.b!=0);return a.a.a.c} -function rib(a){Lpb(a.b!=0);return a.c.b.c} -function uyc(a,b,c){a.a+=b;a.b+=c;return a} -function Eyc(a,b,c){a.a*=b;a.b*=c;return a} -function Fyc(a,b,c){a.a-=b;a.b-=c;return a} -function K6(a,b,c){a.a+=r6(b,0,c);return a} -function Byc(a){a.a=-a.a;a.b=-a.b;return a} -function rgc(a){return u5(a.d.e-a.e.e)-a.a} -function H1c(a,b){return a.c.nc(kA(b,134))} -function Vuc(a,b,c){return tbb(b,Xuc(a,c))} -function Jxb(a,b){return a>0?b*b/a:b*b*100} -function Cxb(a,b){return a>0?b/(a*a):b*100} -function zfd(a,b,c){eXc(Ebd(a.a),b,Dfd(c))} -function yjd(a,b,c){eXc(njd(a.a),b,Cjd(c))} -function f9c(a,b,c){T8c.call(this,a,b,c,2)} -function did(a,b){Ohd();Rhd.call(this,a,b)} -function Cid(a,b){iid();oid.call(this,a,b)} -function Gid(a,b){iid();oid.call(this,a,b)} -function Eid(a,b){iid();Cid.call(this,a,b)} -function Gnd(a,b){jmd();vnd.call(this,a,b)} -function Wnd(a,b){jmd();vnd.call(this,a,b)} -function Ind(a,b){jmd();Gnd.call(this,a,b)} -function Knd(a,b){jmd();Gnd.call(this,a,b)} -function Mnd(a,b){jmd();Knd.call(this,a,b)} -function Ynd(a,b){jmd();Wnd.call(this,a,b)} -function cod(a,b){jmd();vnd.call(this,a,b)} -function Mud(a,b,c){return b.ak(a.e,a.c,c)} -function Oud(a,b,c){return b.bk(a.e,a.c,c)} -function xtd(a,b,c){return Wtd(qtd(a,b),c)} -function Yud(a,b){return XMc(a.e,kA(b,42))} -function $Ad(a){return a==null?null:AEd(a)} -function cBd(a){return a==null?null:HEd(a)} -function aFc(a){this.c=a;rPc(a,0);sPc(a,0)} -function Ch(a,b){this.c=a;eg.call(this,a,b)} -function Ih(a,b){this.a=a;Ch.call(this,a,b)} -function ae(a){this.a=a;this.b=Kc(this.a.d)} -function vi(a,b){this.d=a;ri(this);this.b=b} -function ald(){V9c.call(this);this.Bb|=sLd} -function Gm(){Qc.call(this,new Jhb,new Bgb)} -function Ji(a,b,c){Uh.call(this,a,b,c,null)} -function Mi(a,b,c){Uh.call(this,a,b,c,null)} -function r9(a,b){a.a.bd(a.b,b);++a.b;a.c=-1} -function _9(a,b){var c;c=a.e;a.e=b;return c} -function mA(a){Upb(a==null||tA(a));return a} -function nA(a){Upb(a==null||uA(a));return a} -function pA(a){Upb(a==null||wA(a));return a} -function Ju(a,b){Pb(a);Pb(b);return E3(a,b)} -function Ptb(a){if(a>8){return 0}return a+1} -function Ehb(a){L8(a.c);a.b.b=a.b;a.b.a=a.b} -function iob(a,b){cob.call(this,a);this.a=b} -function Zob(a,b){cob.call(this,a);this.a=b} -function kub(a){hub.call(this,0,0);this.f=a} -function pfb(a){var b;b=a[BLd]|0;a[BLd]=b+1} -function Kmb(a,b,c){return a.Ld(b,c)<=0?c:b} -function cwc(a,b){return kA(Fhb(a.b,b),180)} -function fwc(a,b){return kA(Fhb(a.c,b),199)} -function uXb(a){return kA(xbb(a.a,a.b),269)} -function iyc(a){return new Jyc(a.c,a.d+a.a)} -function M2(a){return B2(Tz(G2(a)?S2(a):a))} -function phc(a){return Rfc(),i7b(kA(a,179))} -function CKc(){CKc=d3;BKc=fgb((bEc(),aEc))} -function ayc(){ayc=d3;$wnd.Math.pow(2,-65)} -function dZc(a,b,c){++a.j;a.Yh();iXc(a,b,c)} -function bZc(a,b,c){++a.j;a.Vh(b,a.Ch(b,c))} -function VPc(a,b,c){c=CMc(a,b,3,c);return c} -function lQc(a,b,c){c=CMc(a,b,6,c);return c} -function kTc(a,b,c){c=CMc(a,b,9,c);return c} -function DIc(a,b){gjb(b,GSd);a.f=b;return a} -function V1c(a,b){return (b&jJd)%a.d.length} -function cJb(a,b){WIb();return SFb(b.d.g,a)} -function Qod(a,b){return I8(a.a,b,'')==null} -function Kyd(a,b,c){return Bud(a.c,a.b,b,c)} -function Fhd(a,b,c){var d;d=a.fd(b);d.Bc(c)} -function Efd(a,b){this.a=a;Yed.call(this,b)} -function Djd(a,b){this.a=a;Yed.call(this,b)} -function W_c(a,b){this.c=a;dYc.call(this,b)} -function Ld(a){this.b=a;this.a=this.b.b.Tb()} -function Pld(a,b){Gld.call(this,a);this.a=b} -function uod(a,b){Gld.call(this,a);this.a=b} -function EWc(a,b){DWc.call(this,a);this.a=b} -function Z_c(a,b){q3.call(this,NUd+a+OUd+b)} -function Vj(){gf.call(this,new Bgb);this.a=3} -function ux(a){!a.a&&(a.a=new Ex);return a.a} -function Qh(a){a.b?Qh(a.b):a.f.c.Zb(a.e,a.d)} -function mv(a){this.a=(bdb(),new Qdb(Pb(a)))} -function Ub(a,b){if(!a){throw x2(new Q4(b))}} -function Mb(a,b){if(!a){throw x2(new O4(b))}} -function e6(a,b,c){return a.lastIndexOf(b,c)} -function lw(a,b,c){return a.apply(b,c);var d} -function Efb(a,b,c){return Dfb(a,kA(b,23),c)} -function wmb(a,b){return Nf(xlb(a.a,b,true))} -function xmb(a,b){return Nf(ylb(a.a,b,true))} -function fob(a){return new Lkb((aob(a),a.a))} -function qA(a){return String.fromCharCode(a)} -function Yv(a){return a==null?null:a.message} -function Jv(a,b){a.e=b;b!=null&&_pb(b,qKd,a)} -function gzb(a,b,c){return C4(a[b.b],a[c.b])} -function oGb(a,b,c,d){gGb.call(this,a,b,c,d)} -function Tlb(a){Ulb.call(this,a,(gmb(),cmb))} -function NNb(a,b){return a.k.a=(Npb(b),b)+10} -function ONb(a,b){return a.k.a=(Npb(b),b)+10} -function bJb(a,b){WIb();return !SFb(b.d.g,a)} -function f5(){f5=d3;e5=tz(GE,cKd,21,256,0,1)} -function B3(){B3=d3;z3=(B3(),false);A3=true} -function uqb(){this.b=new Hyc;this.c=new Gbb} -function _wb(){this.d=new Hyc;this.e=new Hyc} -function XFb(){this.k=new Hyc;this.n=new Hyc} -function ioc(){this.b=new Wnc;this.a=new Knc} -function Koc(){this.b=new Bgb;this.a=new Bgb} -function Kac(){this.b=new Jgb;this.a=new Jgb} -function Pec(){this.a=new Gbb;this.d=new Gbb} -function gxb(){this.a=new Gbb;this.b=new Gbb} -function Yyb(){this.a=new Mwb;this.b=new fzb} -function PDb(){this.a=new dDb;this.c=new QDb} -function CHc(){this.n=new XGb;this.i=new oyc} -function EHc(){CHc.call(this);this.a=new Hyc} -function WSc(a,b,c){c=CMc(a,b,11,c);return c} -function vyc(a,b){a.a+=b.a;a.b+=b.b;return a} -function Gyc(a,b){a.a-=b.a;a.b-=b.b;return a} -function itd(a,b){var c;c=b.Yg(a.a);return c} -function Wlc(a,b){return kA(a.b.cd(b),190).a} -function Obd(a,b){return b==a||VXc(Dbd(b),a)} -function s_c(a){return a<100?null:new f_c(a)} -function EUc(a,b,c){c!=null&&uQc(b,TUc(a,c))} -function FUc(a,b,c){c!=null&&vQc(b,TUc(a,c))} -function Dkd(a,b,c,d){zkd.call(this,a,b,c,d)} -function Hwd(a,b,c,d){zkd.call(this,a,b,c,d)} -function Lwd(a,b,c,d){Hwd.call(this,a,b,c,d)} -function exd(a,b,c,d){_wd.call(this,a,b,c,d)} -function gxd(a,b,c,d){_wd.call(this,a,b,c,d)} -function mxd(a,b,c,d){_wd.call(this,a,b,c,d)} -function kxd(a,b,c,d){gxd.call(this,a,b,c,d)} -function rxd(a,b,c,d){gxd.call(this,a,b,c,d)} -function pxd(a,b,c,d){mxd.call(this,a,b,c,d)} -function uxd(a,b,c,d){rxd.call(this,a,b,c,d)} -function Vxd(a,b,c,d){Pxd.call(this,a,b,c,d)} -function Jm(a,b,c){this.a=a;Ud.call(this,b,c)} -function gk(a,b,c){return a.d=kA(b.Kb(c),206)} -function Zxd(a,b){return a.Pi().dh().Zg(a,b)} -function $xd(a,b){return a.Pi().dh()._g(a,b)} -function vn(a,b){return Zn(),lo(a.tc(),b)!=-1} -function Fs(a,b){Es();return new Ms(a.tc(),b)} -function jo(a){Zn();return a.hc()?a.ic():null} -function J3(a){return uA(a)?(Npb(a),a):a.$d()} -function D4(a){return !isNaN(a)&&!isFinite(a)} -function tm(a){nl();this.b=(bdb(),new Peb(a))} -function nl(){nl=d3;new vl((bdb(),bdb(),$cb))} -function o7c(){o7c=d3;n7c=tz(NE,oJd,1,0,5,1)} -function S7c(){S7c=d3;R7c=tz(NE,oJd,1,0,5,1)} -function H0c(){H0c=d3;G0c=tz(NE,oJd,1,0,5,1)} -function T3(){T3=d3;S3=tz(uE,cKd,192,256,0,1)} -function t5(){t5=d3;s5=tz(IE,cKd,149,256,0,1)} -function S5(){S5=d3;R5=tz(PE,cKd,168,256,0,1)} -function b4(){b4=d3;a4=tz(vE,cKd,159,128,0,1)} -function Jo(a){this.b=a;this.a=(Zn(),Zn(),Yn)} -function oob(a){this.b=a;Akb.call(this,TJd,0)} -function cpb(a){this.c=a;Akb.call(this,TJd,0)} -function wGb(a){return !a.c?-1:ybb(a.c.a,a,0)} -function zmb(a,b){return Nf(ylb(a.a,b,false))} -function ymb(a,b){return Nf(xlb(a.a,b,false))} -function Cob(a,b){return a.b.sd(new Eob(a,b))} -function Hob(a,b){return a.b.sd(new Kob(a,b))} -function Fpb(a,b){if(!a){throw x2(new O4(b))}} -function Kpb(a,b){if(!a){throw x2(new u3(b))}} -function EEc(a,b){wEc(this);this.e=a;this.f=b} -function DEc(){wEc(this);this.e=0;this.f=true} -function z0c(a,b){this.c=a;k0c.call(this,a,b)} -function R1c(a,b){return sA(b,15)&&jXc(a.c,b)} -function R8c(a,b,c){return kA(a.c,64).yj(b,c)} -function Q8c(a,b,c){return kA(a.c,64).xj(b,c)} -function Nud(a,b,c){return Mud(a,kA(b,311),c)} -function Pud(a,b,c){return Oud(a,kA(b,311),c)} -function evd(a,b,c){return dvd(a,kA(b,311),c)} -function gvd(a,b,c){return fvd(a,kA(b,311),c)} -function ted(a,b){S6();return fXc(Ibd(a.a),b)} -function yed(a,b){S6();return fXc(Ibd(a.a),b)} -function io(a){Zn();return Fib(a.a)?ho(a):null} -function Mc(a,b){return a.b.Qb(b)?Nc(a,b):null} -function i6(a,b){return a.substr(b,a.length-b)} -function nHb(a){return kA(a,11).f.c.length!=0} -function sHb(a){return kA(a,11).d.c.length!=0} -function WCc(a){return a==PCc||a==RCc||a==QCc} -function Slb(a){l9(a.a);Flb(a.c,a.b);a.b=null} -function Ibb(a){rbb(this);Apb(this.c,0,a.yc())} -function zib(a){lib(this);xib(this);pg(this,a)} -function Jib(a,b,c){this.d=a;this.b=c;this.a=b} -function ngb(a,b,c){this.a=a;this.b=b;this.c=c} -function xhb(a,b,c){this.a=a;this.b=b;this.c=c} -function cnb(a,b,c){this.c=a;this.a=b;this.b=c} -function Pc(a,b,c,d){a.d.b.$b(c);a.d.b.Zb(d,b)} -function oo(a,b){Zn();Pb(b);return new Qo(a,b)} -function Nrb(a){Lrb();return Zs((Qrb(),Prb),a)} -function Vrb(a){Trb();return Zs((Yrb(),Xrb),a)} -function kmb(a){gmb();return Zs((umb(),tmb),a)} -function $mb(a){Ymb();return Zs((bnb(),anb),a)} -function ssb(a){qsb();return Zs((vsb(),usb),a)} -function Ltb(a){Jtb();return Zs((Otb(),Ntb),a)} -function Wub(a){Uub();return Zs((Zub(),Yub),a)} -function hvb(a){fvb();return Zs((kvb(),jvb),a)} -function Zxb(a){Xxb();return Zs((ayb(),_xb),a)} -function mzb(a){kzb();return Zs((pzb(),ozb),a)} -function Yzb(a){Wzb();return Zs((_zb(),$zb),a)} -function UBb(a){OBb();return Zs((XBb(),WBb),a)} -function TGb(a){RGb();return Zs((WGb(),VGb),a)} -function pGb(a){gGb.call(this,a.d,a.c,a.a,a.b)} -function ZGb(a){gGb.call(this,a.d,a.c,a.a,a.b)} -function eMb(a){cMb();return Zs((hMb(),gMb),a)} -function oPb(a){lPb();return Zs((rPb(),qPb),a)} -function V$b(a){T$b();return Zs((Y$b(),X$b),a)} -function b_b(a){_$b();return Zs((e_b(),d_b),a)} -function n_b(a){l_b();return Zs((q_b(),p_b),a)} -function y_b(a){t_b();return Zs((B_b(),A_b),a)} -function H_b(a){F_b();return Zs((K_b(),J_b),a)} -function T_b(a){O_b();return Zs((W_b(),V_b),a)} -function a0b(a){$_b();return Zs((d0b(),c0b),a)} -function n0b(a){k0b();return Zs((q0b(),p0b),a)} -function z0b(a){x0b();return Zs((C0b(),B0b),a)} -function L0b(a){J0b();return Zs((O0b(),N0b),a)} -function _0b(a){Z0b();return Zs((c1b(),b1b),a)} -function i1b(a){g1b();return Zs((l1b(),k1b),a)} -function r1b(a){p1b();return Zs((u1b(),t1b),a)} -function z1b(a){x1b();return Zs((C1b(),B1b),a)} -function M2b(a){K2b();return Zs((P2b(),O2b),a)} -function _6b(a){W6b();return Zs((c7b(),b7b),a)} -function l7b(a){h7b();return Zs((o7b(),n7b),a)} -function z7b(a){u7b();return Zs((C7b(),B7b),a)} -function N7b(a){L7b();return Zs((Q7b(),P7b),a)} -function W7b(a){U7b();return Zs((Z7b(),Y7b),a)} -function d8b(a){b8b();return Zs((g8b(),f8b),a)} -function y8b(a){w8b();return Zs((B8b(),A8b),a)} -function H8b(a){F8b();return Zs((K8b(),J8b),a)} -function Q8b(a){O8b();return Zs((T8b(),S8b),a)} -function rkb(a,b){while(a.b.sd(new Eob(a,b)));} -function yEb(a,b,c){this.b=a;this.a=b;this.c=c} -function zub(a,b,c){this.a=a;this.b=b;this.c=c} -function eLb(a,b,c){this.a=a;this.b=b;this.c=c} -function qFb(a,b,c){this.e=b;this.b=a;this.d=c} -function N$b(a){var b;b=new M$b;b.e=a;return b} -function Vbc(a){!a.e&&(a.e=new Gbb);return a.e} -function IVb(){IVb=d3;GVb=new eWb;HVb=new gWb} -function Yib(){Yib=d3;Wib=new Zib;Xib=new _ib} -function hNb(){hNb=d3;fNb=new qNb;gNb=new tNb} -function Yec(a){Wec();return Zs((_ec(),$ec),a)} -function edc(a){cdc();return Zs((hdc(),gdc),a)} -function eoc(a){_nc();return Zs((hoc(),goc),a)} -function Woc(a){Toc();return Zs((Zoc(),Yoc),a)} -function jic(a){hic();return Zs((mic(),lic),a)} -function ric(a){pic();return Zs((uic(),tic),a)} -function Xic(a){Vic();return Zs(($ic(),Zic),a)} -function Plc(a){Flc();return Zs((Slc(),Rlc),a)} -function Psc(a){Msc();return Zs((Ssc(),Rsc),a)} -function Fsc(a){Csc();return Zs((Isc(),Hsc),a)} -function knc(a){inc();return Zs((nnc(),mnc),a)} -function qqc(a){oqc();return Zs((tqc(),sqc),a)} -function yqc(a){wqc();return Zs((Bqc(),Aqc),a)} -function qrc(a){lrc();return Zs((urc(),trc),a)} -function Trc(a){Qrc();return Zs((Wrc(),Vrc),a)} -function Ctc(a){ztc();return Zs((Ftc(),Etc),a)} -function Mtc(a){Jtc();return Zs((Ptc(),Otc),a)} -function Ixc(a){Gxc();return Zs((Lxc(),Kxc),a)} -function Wxc(a){Uxc();return Zs((Zxc(),Yxc),a)} -function gzc(a){ezc();return Zs((jzc(),izc),a)} -function gDc(a){eDc();return Zs((jDc(),iDc),a)} -function JDc(a){FDc();return Zs((MDc(),LDc),a)} -function ZCc(a){VCc();return Zs((aDc(),_Cc),a)} -function lCc(a){jCc();return Zs((oCc(),nCc),a)} -function ACc(a){yCc();return Zs((DCc(),CCc),a)} -function LCc(a){JCc();return Zs((OCc(),NCc),a)} -function lBc(a){gBc();return Zs((oBc(),nBc),a)} -function vBc(a){tBc();return Zs((yBc(),xBc),a)} -function FBc(a){DBc();return Zs((IBc(),HBc),a)} -function RBc(a){PBc();return Zs((UBc(),TBc),a)} -function dEc(a){bEc();return Zs((gEc(),fEc),a)} -function sEc(a){qEc();return Zs((vEc(),uEc),a)} -function iFc(a){gFc();return Zs((lFc(),kFc),a)} -function mHc(a){jHc();return Zs((pHc(),oHc),a)} -function MHc(a){KHc();return Zs((PHc(),OHc),a)} -function rIc(a){pIc();return Zs((uIc(),tIc),a)} -function gJc(a){eJc();return Zs((jJc(),iJc),a)} -function XJc(a){SJc();return Zs(($Jc(),ZJc),a)} -function $Lc(a){YLc();return Zs((bMc(),aMc),a)} -function wWc(a){uWc();return Zs((zWc(),yWc),a)} -function Dnc(a,b,c){return a=b){throw x2(new r3)}} -function ucb(a,b){var c;for(c=0;c0?1:0} -function rA(a){return !Array.isArray(a)&&a.sl===g3} -function vA(a){return a!=null&&xA(a)&&!(a.sl===g3)} -function jgb(a,b){return sA(b,23)&&kgb(a,kA(b,23))} -function lgb(a,b){return sA(b,23)&&mgb(a,kA(b,23))} -function lhb(a,b){return !(a.a.get(b)===undefined)} -function Wjb(a){return Yjb(a,26)*ILd+Yjb(a,27)*JLd} -function lnb(a,b){return fnb(new Xnb,new onb(a),b)} -function Opb(a,b){if(a==null){throw x2(new B5(b))}} -function Dfb(a,b,c){hgb(a.a,b);return Gfb(a,b.g,c)} -function Dcb(a,b,c){Hpb(0,b,a.length);Acb(a,0,b,c)} -function sbb(a,b,c){Ppb(b,a.c.length);zpb(a.c,b,c)} -function hUb(a,b,c){cUb(c,a,1);tbb(b,new YUb(c,a))} -function iUb(a,b,c){dUb(c,a,1);tbb(b,new SUb(c,a))} -function prb(){this.d=new Brb;this.e=new vrb(this)} -function qBb(){this.b=new BBb;this.c=new uBb(this)} -function d9b(){a9b();this.e=new yib;this.d=new yib} -function cMc(a,b){this.b=new yib;this.a=a;this.c=b} -function M7(a,b,c){y7();this.e=a;this.d=b;this.a=c} -function RHc(a,b,c){var d;if(a){d=a.i;d.d=b;d.a=c}} -function QHc(a,b,c){var d;if(a){d=a.i;d.c=b;d.b=c}} -function tcb(a,b,c){var d;for(d=0;d0?$wnd.Math.log(a/b):-100} -function KLc(a,b){return C4(a.c.c+a.c.b,b.c.c+b.c.b)} -function k0c(a,b){this.d=a;a0c.call(this,a);this.e=b} -function Zuc(a,b,c){Ruc(a,b.g,c);hgb(a.c,b);return a} -function ZAb(a){XAb(a,(gBc(),cBc));a.d=true;return a} -function Pb(a){if(a==null){throw x2(new A5)}return a} -function hz(a){if(a==null){throw x2(new A5)}this.a=a} -function Up(a){a.a=null;a.e=null;L8(a.b);a.d=0;++a.c} -function dud(a){!a.j&&jud(a,etd(a.g,a.b));return a.j} -function GJb(a){a.b.k.a+=a.a.f*(a.a.a-1);return null} -function bcb(a){Rpb(a.b!=-1);zbb(a.c,a.a=a.b);a.b=-1} -function _ab(a){Mab(this);Cpb(this.a,Z4(8>a?8:a)<<1)} -function PHd(a,b){VGd.call(this,1);this.a=a;this.b=b} -function gn(a,b,c){this.a=a;Rb(c,b);this.c=b;this.b=c} -function Tm(a,b){this.a=a;this.b=b;this.c=this.b.lc()} -function _ud(a,b){rcd(a,sA(b,184)?b:kA(b,1630).rk())} -function Ab(a){Pb(a);return sA(a,476)?kA(a,476):f3(a)} -function SYb(a,b){if(!b){return false}return pg(a,b)} -function s6(a,b){a.a+=String.fromCharCode(b);return a} -function C6(a,b){a.a+=String.fromCharCode(b);return a} -function G6(a,b,c,d){a.a+=''+b.substr(c,d-c);return a} -function dy(a,b,c){var d;d=cy(a,b);ey(a,b,c);return d} -function vcb(a,b,c){var d;for(d=0;d=a.g} -function Zvb(a,b){Tvb();return a==_Wc(b)?bXc(b):_Wc(b)} -function I8(a,b,c){return wA(b)?J8(a,b,c):Xgb(a.d,b,c)} -function iec(a,b,c){var d;d=kec(a,b,c);return hec(a,d)} -function es(a,b){var c;c=a.a._b();Ob(b,c);return c-1-b} -function Gmc(a,b){var c;c=new Emc(a);Amc(c,b);return c} -function wz(a,b,c){Jpb(c==null||oz(a,c));return a[b]=c} -function OTc(a,b){var c;c=a.a.length;cy(a,c);ey(a,c,b)} -function cZc(a,b){var c;++a.j;c=a.hi();a.Wh(a.Ch(c,b))} -function cWc(a,b){OTc(a,new hz(b.f!=null?b.f:''+b.g))} -function aWc(a,b){OTc(a,new hz(b.f!=null?b.f:''+b.g))} -function HAb(a){this.b=new Gbb;this.a=new Gbb;this.c=a} -function lIb(a){this.c=new Hyc;this.a=new Gbb;this.b=a} -function pxb(a){_wb.call(this);this.a=new Hyc;this.c=a} -function wnd(a,b,c){kmd.call(this,b);this.a=a;this.b=c} -function _Hd(a,b,c){VGd.call(this,a);this.a=b;this.b=c} -function kod(a,b,c){this.a=a;Gld.call(this,b);this.b=c} -function gsd(a,b,c){this.a=a;L$c.call(this,8,b,null,c)} -function swc(a){this.c=a;this.a=new yib;this.b=new yib} -function Np(a){this.c=a;this.b=this.c.a;this.a=this.c.e} -function Atd(a){this.a=(Npb(xVd),xVd);this.b=a;new Lkd} -function ohd(a){!a.d&&(a.d=new fdd(pY,a,1));return a.d} -function Nc(a,b){var c;c=a.b.$b(b);a.d.b.$b(c);return c} -function b5(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} -function Hb(a,b){return yA(a)===yA(b)||a!=null&&kb(a,b)} -function Skb(a,b){return Ykb(b,a.a.c.length),xbb(a.a,b)} -function Ayc(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} -function n6(a){return String.fromCharCode.apply(null,a)} -function Cn(a){return sA(a,13)?kA(a,13)._b():mo(a.tc())} -function kv(a){if(sA(a,543)){return a}return new lv(a)} -function uGb(a){if(!a.a&&!!a.c){return a.c.b}return a.a} -function Znb(a){if(!a.c){a.d=true;_nb(a)}else{Znb(a.c)}} -function aob(a){if(!a.c){bob(a);a.d=true}else{aob(a.c)}} -function Afb(a){rg(a.a);a.b=tz(NE,oJd,1,a.b.length,5,1)} -function dib(a){this.c=a;this.b=a.a.b.a;ofb(a.a.c,this)} -function dGc(a,b){a.c<0||a.b.b0?new EEc(a-1,b):new EEc(a,b)} -function Tu(a,b){Pu();return new Ru(new al(a),new Nk(b))} -function ti(a){Rh(a.d);if(a.d.d!=a.c){throw x2(new qfb)}} -function Vgb(a,b){var c;c=a.a.get(b);return c==null?[]:c} -function fUc(a,b){var c;c=F8(a.f,b);VUc(b,c);return null} -function dSc(a,b,c,d){cSc(a,b,c,false);rgd(a,d);return a} -function y6(a,b){a.a=j6(a.a,0,b)+''+i6(a.a,b+1);return a} -function wvc(a){a.j.c=tz(NE,oJd,1,0,5,1);a.a=-1;return a} -function ZPc(a){!a.c&&(a.c=new pxd(HV,a,5,8));return a.c} -function YPc(a){!a.b&&(a.b=new pxd(HV,a,4,7));return a.b} -function _Oc(a){!a.n&&(a.n=new zkd(LV,a,1,7));return a.n} -function $Sc(a){!a.c&&(a.c=new zkd(NV,a,9,9));return a.c} -function bud(a){a.e==mWd&&hud(a,btd(a.g,a.b));return a.e} -function cud(a){a.f==mWd&&iud(a,ctd(a.g,a.b));return a.f} -function oA(a){Upb(a==null||xA(a)&&!(a.sl===g3));return a} -function Qb(a,b){if(a==null){throw x2(new B5(b))}return a} -function mj(a){var b;b=a.b;!b&&(a.b=b=new ju(a));return b} -function wYc(a){var b;b=a.Gh(a.f);fXc(a,b);return b.hc()} -function rg(a){var b;for(b=a.tc();b.hc();){b.ic();b.jc()}} -function k9(a){Lpb(a.bd&&++d;return d} -function TRc(a){var b,c;c=(b=new xhd,b);qhd(c,a);return c} -function URc(a){var b,c;c=(b=new xhd,b);uhd(c,a);return c} -function u$c(a){if(a.p!=5)throw x2(new P4);return U2(a.f)} -function D$c(a){if(a.p!=5)throw x2(new P4);return U2(a.k)} -function aJd(a){if(a)return a.Wb();return !null.tc().hc()} -function Gv(a){if(a.n){a.e!==pKd&&a.Pd();a.j=null}return a} -function $5c(a){return a!=null&&Udb(I5c,a.toLowerCase())} -function k3c(a){this.f=a;this.c=this.f.e;a.f>0&&j3c(this)} -function amd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} -function lnd(a,b,c,d){jmd();wmd.call(this,b,c,d);this.a=a} -function rnd(a,b,c,d){jmd();wmd.call(this,b,c,d);this.a=a} -function gpb(a,b,c,d){this.b=a;this.c=d;Akb.call(this,b,c)} -function Bi(a,b){this.a=a;vi.call(this,a,kA(a.d,15).fd(b))} -function xib(a){a.a.a=a.c;a.c.b=a.a;a.a.b=a.c.a=null;a.b=0} -function aGb(a,b){a.b=b.b;a.c=b.c;a.d=b.d;a.a=b.a;return a} -function mXb(a,b,c){a.i=0;a.e=0;if(b==c){return}iXb(a,b,c)} -function nXb(a,b,c){a.i=0;a.e=0;if(b==c){return}jXb(a,b,c)} -function _Xb(a,b){var c;c=$Xb(b);return kA(F8(a.c,c),21).a} -function h6(a,b,c){return c>=0&&Z5(a.substr(c,b.length),b)} -function H8(a,b){return b==null?!!Wgb(a.d,null):lhb(a.e,b)} -function zYb(a,b){if(!!a.d&&!a.d.a){yYb(a.d,b);zYb(a.d,b)}} -function AYb(a,b){if(!!a.e&&!a.e.a){yYb(a.e,b);AYb(a.e,b)}} -function Xbc(a,b){this.g=a;this.d=xz(pz(RK,1),VNd,8,0,[b])} -function roc(a,b){new yib;this.a=new Vyc;this.b=a;this.c=b} -function kSc(){hSc(this,new gRc);this.wb=(P6c(),O6c);N6c()} -function BWc(a,b){return sA(b,166)&&Z5(a.b,kA(b,166).Lf())} -function lvc(a,b){mb(a);mb(b);return Rs(kA(a,23),kA(b,23))} -function cjd(a,b,c,d,e,f){bjd.call(this,a,b,c,d,e,f?-2:-1)} -function Lxd(a,b,c,d){tcd.call(this,b,c);this.b=a;this.a=d} -function tv(a,b){Sj.call(this,new Llb(a));this.a=a;this.b=b} -function dr(a){this.b=a;this.c=a;a.e=null;a.c=null;this.a=1} -function Kv(a,b){var c;c=f4(a.ql);return b==null?c:c+': '+b} -function z2(a,b){return B2(Oz(G2(a)?S2(a):a,G2(b)?S2(b):b))} -function N2(a,b){return B2(Uz(G2(a)?S2(a):a,G2(b)?S2(b):b))} -function W2(a,b){return B2(aA(G2(a)?S2(a):a,G2(b)?S2(b):b))} -function bw(a){return !!a&&!!a.hashCode?a.hashCode():bqb(a)} -function jdb(a){bdb();return sA(a,49)?new Oeb(a):new seb(a)} -function bdb(){bdb=d3;$cb=new ldb;_cb=new Edb;adb=new Mdb} -function $eb(){$eb=d3;Xeb=new afb;Yeb=new afb;Zeb=new ffb} -function Pqb(){Pqb=d3;Mqb=new Kqb;Oqb=new prb;Nqb=new grb} -function Bw(){Bw=d3;var a,b;b=!Gw();a=new Ow;Aw=b?new Hw:a} -function uBb(a){this.c=a;this.b=new Cmb(kA(Pb(new wBb),65))} -function vrb(a){this.c=a;this.b=new Cmb(kA(Pb(new wrb),65))} -function PEb(){this.a=new Vyc;this.b=(Wj(3,hKd),new Hbb(3))} -function fFb(a,b,c){this.a=a;this.e=false;this.d=b;this.c=c} -function Wqb(a,b,c){if(a.f){return a.f.re(b,c)}return false} -function Ibd(a){!a.s&&(a.s=new zkd(zY,a,21,17));return a.s} -function Fbd(a){!a.q&&(a.q=new zkd(tY,a,11,10));return a.q} -function YSc(a){!a.a&&(a.a=new zkd(MV,a,10,11));return a.a} -function JAb(a,b){var c;c=Igb(a.a,b);c&&(b.d=null);return c} -function m8b(a,b,c,d){wz(a.c[b.g],c.g,d);wz(a.c[c.g],b.g,d)} -function p8b(a,b,c,d){wz(a.c[b.g],b.g,c);wz(a.b[b.g],b.g,d)} -function LYc(a,b,c){IYc();!!a&&I8(HYc,a,b);!!a&&I8(GYc,a,c)} -function _jb(a,b){$jb(a,U2(z2(P2(b,24),NLd)),U2(z2(b,NLd)))} -function RNc(a){var b;b=kA(VNc(a,16),24);return !b?a.Rg():b} -function p$c(a){if(a.p!=0)throw x2(new P4);return L2(a.f,0)} -function y$c(a){if(a.p!=0)throw x2(new P4);return L2(a.k,0)} -function Kbd(a){if(!a.u){Jbd(a);a.u=new Efd(a,a)}return a.u} -function Llc(a){if(a==klc||a==hlc){return true}return false} -function qw(a){kw();$wnd.setTimeout(function(){throw a},0)} -function qyc(a){this.c=a.c;this.d=a.d;this.b=a.b;this.a=a.a} -function bmd(a,b){this.e=a;this.a=NE;this.b=Ixd(b);this.c=b} -function mjc(){this.b=new Jgb;this.c=new yib;this.d=new qlb} -function hic(){hic=d3;gic=new iic(yOd,0);fic=new iic(xOd,1)} -function inc(){inc=d3;gnc=new jnc(xOd,0);hnc=new jnc(yOd,1)} -function kn(){kn=d3;nl();jn=(Iu(),Hu);hn=new cv(new Cmb(jn))} -function nn(a){kn();Pb(a);return jn==a?hn:new cv(new Cmb(a))} -function Gud(a,b,c,d,e,f,g){return new qzd(a.e,b,c,d,e,f,g)} -function _$c(a,b,c,d,e,f){this.a=a;M$c.call(this,b,c,d,e,f)} -function S_c(a,b,c,d,e,f){this.a=a;M$c.call(this,b,c,d,e,f)} -function ahb(a){this.e=a;this.b=this.e.a.entries();this.a=[]} -function zmc(a){a.d=a.d-15;a.b=a.b-15;a.c=a.c+15;a.a=a.a+15} -function eTb(a,b){var c;c=kA(Ihb(a.e,b),249);!!c&&(a.d=true)} -function G8(a,b){return b==null?Of(Wgb(a.d,null)):mhb(a.e,b)} -function Wgb(a,b){return Ugb(a,b,Vgb(a,b==null?0:a.b.he(b)))} -function Ff(a,b){return b===a?'(this Map)':b==null?mJd:f3(b)} -function usd(a,b){return a.a?b.pg().tc():kA(b.pg(),64).oh()} -function L6(a,b,c){a.a=j6(a.a,0,b)+(''+c)+i6(a.a,b);return a} -function Ly(a,b){if(b==null){throw x2(new A5)}return My(a,b)} -function Orb(){Lrb();return xz(pz(iI,1),jKd,391,0,[Krb,Jrb])} -function Wrb(){Trb();return xz(pz(jI,1),jKd,390,0,[Rrb,Srb])} -function $xb(){Xxb();return xz(pz(sJ,1),jKd,387,0,[Vxb,Wxb])} -function c_b(){_$b();return xz(pz(dP,1),jKd,386,0,[Z$b,$$b])} -function z_b(){t_b();return xz(pz(fP,1),jKd,317,0,[s_b,r_b])} -function A1b(){x1b();return xz(pz(pP,1),jKd,383,0,[v1b,w1b])} -function zqc(){wqc();return xz(pz(zS,1),jKd,388,0,[vqc,uqc])} -function rqc(){oqc();return xz(pz(yS,1),jKd,438,0,[mqc,nqc])} -function rrc(){lrc();return xz(pz(ES,1),jKd,447,0,[jrc,krc])} -function Yic(){Vic();return xz(pz(wR,1),jKd,437,0,[Uic,Tic])} -function kic(){hic();return xz(pz(oR,1),jKd,466,0,[gic,fic])} -function sic(){pic();return xz(pz(pR,1),jKd,465,0,[nic,oic])} -function lnc(){inc();return xz(pz(UR,1),jKd,417,0,[gnc,hnc])} -function Zec(){Wec();return xz(pz(uQ,1),jKd,472,0,[Vec,Uec])} -function Gsc(){Csc();return xz(pz(RS,1),jKd,389,0,[Asc,Bsc])} -function NMc(a,b,c,d){return c>=0?a.Dg(b,c,d):a.lg(null,c,d)} -function _tc(a,b){var c;c=kA(AOc(b,(irc(),hrc)),35);auc(a,c)} -function Wkc(a){var b;b=Vr(a.b);pg(b,a.c);pg(b,a.i);return b} -function Xdd(a){yA(a.a)===yA((wbd(),vbd))&&Ydd(a);return a.a} -function cGc(a){if(a.b.b==0){return a.a.Be()}return uib(a.b)} -function Wp(a){var b;return b=a.g,kA(!b?(a.g=new Qq(a)):b,15)} -function pic(){pic=d3;nic=new qic(WQd,0);oic=new qic('UP',1)} -function tmc(a,b){qmc(this,new Jyc(a.a,a.b));rmc(this,Vr(b))} -function GIc(a,b){CHc.call(this);vIc(this);this.a=a;this.c=b} -function nmd(a,b,c){jmd();kmd.call(this,b);this.a=a;this.b=c} -function dId(a,b,c){UGd();VGd.call(this,a);this.b=b;this.a=c} -function ew(a,b){var c=dw[a.charCodeAt(0)];return c==null?a:c} -function uAb(a,b){var c;c=dAb(a.f,b);return vyc(Byc(c),a.f.d)} -function Thb(a){var b;b=a.c.b.b;a.b=b;a.a=a.c.b;b.a=a.c.b.b=a} -function tib(a){return a.b==0?null:(Lpb(a.b!=0),wib(a,a.a.a))} -function Zjb(a){return y2(O2(E2(Yjb(a,32)),32),E2(Yjb(a,32)))} -function Phd(a){return sA(a,62)&&(kA(kA(a,17),62).Bb&bTd)!=0} -function zA(a){return Math.max(Math.min(a,jJd),-2147483648)|0} -function icb(a,b){Ipb(b);return kcb(a,tz(FA,OKd,22,b,15,1),b)} -function Yvb(a,b){Tvb();return a==ZSc(_Wc(b))||a==ZSc(bXc(b))} -function HGb(a){var b;return b=yGb(a),'n_'+(b==null?''+a.o:b)} -function Uo(a){this.b=(Zn(),Zn(),Zn(),Xn);this.a=kA(Pb(a),43)} -function EIc(a){CHc.call(this);vIc(this);this.a=a;this.c=true} -function pKb(a,b,c){this.d=a;this.b=new Gbb;this.c=b;this.a=c} -function pKc(a,b,c,d){var e;e=new EHc;b.a[c.g]=e;Dfb(a.b,d,e)} -function p4(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a._d(b))} -function Ix(a,b){var c;c=a.q.getHours();a.q.setDate(b);Hx(a,c)} -function hv(a){var b;b=new Kgb(Gs(a.length));cdb(b,a);return b} -function e3(a){function b(){} -;b.prototype=a||{};return new b} -function Vab(a,b){if(Qab(a,b)){lbb(a);return true}return false} -function XPc(a){if(a.Db>>16!=3)return null;return kA(a.Cb,35)} -function mTc(a){if(a.Db>>16!=9)return null;return kA(a.Cb,35)} -function r$c(a){if(a.p!=2)throw x2(new P4);return U2(a.f)&AKd} -function A$c(a){if(a.p!=2)throw x2(new P4);return U2(a.k)&AKd} -function oqc(){oqc=d3;mqc=new pqc(kRd,0);nqc=new pqc('FAN',1)} -function jec(a,b,c){var d;d=sec(a,b,c);a.b=new _dc(d.c.length)} -function J8(a,b,c){return b==null?Xgb(a.d,null,c):nhb(a.e,b,c)} -function Anb(a,b){return r5(y2(r5(kA(a,149).a).a,kA(b,149).a))} -function $9b(){$9b=d3;Z9b=Tu(d5(1),d5(4));Y9b=Tu(d5(1),d5(2))} -function a9b(){a9b=d3;_8b=rvc(new yvc,(Wzb(),Vzb),(lPb(),bPb))} -function V8b(){V8b=d3;U8b=rvc(new yvc,(Wzb(),Vzb),(lPb(),bPb))} -function mfc(){mfc=d3;lfc=tvc(new yvc,(Wzb(),Vzb),(lPb(),BOb))} -function Rfc(){Rfc=d3;Qfc=tvc(new yvc,(Wzb(),Vzb),(lPb(),BOb))} -function Thc(){Thc=d3;Shc=tvc(new yvc,(Wzb(),Vzb),(lPb(),BOb))} -function Hic(){Hic=d3;Gic=tvc(new yvc,(Wzb(),Vzb),(lPb(),BOb))} -function Dqc(){Dqc=d3;Cqc=rvc(new yvc,(_nc(),$nc),(Toc(),Noc))} -function pQc(a){if(a.Db>>16!=6)return null;return kA(a.Cb,105)} -function ORc(a){if(a.Db>>16!=7)return null;return kA(a.Cb,207)} -function JSc(a){if(a.Db>>16!=7)return null;return kA(a.Cb,253)} -function ZSc(a){if(a.Db>>16!=11)return null;return kA(a.Cb,35)} -function I9c(a){if(a.Db>>16!=17)return null;return kA(a.Cb,24)} -function C8c(a){if(a.Db>>16!=3)return null;return kA(a.Cb,139)} -function Jad(a){if(a.Db>>16!=6)return null;return kA(a.Cb,207)} -function ncd(a,b,c,d,e,f){return new Oid(a.e,b,a.pi(),c,d,e,f)} -function Ffb(a,b){return lgb(a.a,b)?Gfb(a,kA(b,23).g,null):null} -function Gx(a,b){return l5(E2(a.q.getTime()),E2(b.q.getTime()))} -function Lx(a,b){var c;c=a.q.getHours();a.q.setMonth(b);Hx(a,c)} -function LEb(a,b){!!a.c&&Abb(a.c.f,a);a.c=b;!!a.c&&tbb(a.c.f,a)} -function FGb(a,b){!!a.c&&Abb(a.c.a,a);a.c=b;!!a.c&&tbb(a.c.a,a)} -function MEb(a,b){!!a.d&&Abb(a.d.d,a);a.d=b;!!a.d&&tbb(a.d.d,a)} -function jHb(a,b){!!a.g&&Abb(a.g.i,a);a.g=b;!!a.g&&tbb(a.g.i,a)} -function _Fb(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} -function yr(a){_p(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} -function zr(a){_p(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} -function r9b(a,b){var c;c=new lIb(a);b.c[b.c.length]=c;return c} -function bWc(a,b){var c,d;c=b.c;d=c!=null;d&&OTc(a,new hz(b.c))} -function hsc(a){var b;b=Nsc(kA(AOc(a,(otc(),gtc)),349));b.Ef(a)} -function Q9c(a,b){sA(a.Cb,96)&&Edd(Jbd(kA(a.Cb,96)),4);wRc(a,b)} -function Xad(a,b){sA(a.Cb,248)&&(kA(a.Cb,248).tb=null);wRc(a,b)} -function Ykd(a,b){Zkd(a,b);sA(a.Cb,96)&&Edd(Jbd(kA(a.Cb,96)),2)} -function w3(a,b){Ev(this);this.f=b;this.g=a;Gv(this);this.Pd()} -function Svc(a){this.c=new yib;this.b=a.b;this.d=a.c;this.a=a.a} -function pqb(){this.a=new iib;this.e=new Jgb;this.g=0;this.i=0} -function A9(a,b,c){Qpb(b,c,a._b());this.c=a;this.a=b;this.b=c-b} -function s9(a,b){this.a=a;m9.call(this,a);Ppb(b,a._b());this.b=b} -function qdc(a){this.a=a;this.b=tz(gQ,cKd,1637,a.e.length,0,2)} -function Iyc(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} -function ekb(a,b){this.b=(Npb(a),a);this.a=(b&qLd)==0?b|64|RJd:b} -function Bbb(a,b,c){var d;Qpb(b,c,a.c.length);d=c-b;Bpb(a.c,b,d)} -function Rt(a,b){var c;c=kA(Js(Tp(a.a),b),13);return !c?0:c._b()} -function Dfd(a){var b,c;c=(N6c(),b=new xhd,b);qhd(c,a);return c} -function Cjd(a){var b,c;c=(N6c(),b=new xhd,b);qhd(c,a);return c} -function uVb(a){rVb();if(sA(a.g,8)){return kA(a.g,8)}return null} -function SVb(a,b){var c;c=kA(F8(a.g,b),57);wbb(b.d,new EWb(a,c))} -function Sud(a,b){return wyd(),K9c(b)?new tzd(b,a):new Nyd(b,a)} -function gHb(a){return Pyc(xz(pz(aU,1),cKd,9,0,[a.g.k,a.k,a.a]))} -function fMb(){cMb();return xz(pz($L,1),jKd,412,0,[aMb,bMb,_Lb])} -function _mb(){Ymb();return xz(pz($G,1),jKd,150,0,[Vmb,Wmb,Xmb])} -function s1b(){p1b();return xz(pz(oP,1),jKd,280,0,[n1b,o1b,m1b])} -function j1b(){g1b();return xz(pz(nP,1),jKd,318,0,[e1b,f1b,d1b])} -function I_b(){F_b();return xz(pz(gP,1),jKd,319,0,[C_b,E_b,D_b])} -function U_b(){O_b();return xz(pz(hP,1),jKd,384,0,[M_b,L_b,N_b])} -function b0b(){$_b();return xz(pz(iP,1),jKd,406,0,[Y_b,X_b,Z_b])} -function X7b(){U7b();return xz(pz(yP,1),jKd,410,0,[T7b,R7b,S7b])} -function e8b(){b8b();return xz(pz(zP,1),jKd,345,0,[$7b,a8b,_7b])} -function z8b(){w8b();return xz(pz(BP,1),jKd,347,0,[v8b,t8b,u8b])} -function R8b(){O8b();return xz(pz(DP,1),jKd,346,0,[M8b,N8b,L8b])} -function I8b(){F8b();return xz(pz(CP,1),jKd,385,0,[E8b,C8b,D8b])} -function nzb(){kzb();return xz(pz(zJ,1),jKd,348,0,[izb,hzb,jzb])} -function Qsc(){Msc();return xz(pz(SS,1),jKd,349,0,[Jsc,Ksc,Lsc])} -function Urc(){Qrc();return xz(pz(IS,1),jKd,401,0,[Prc,Nrc,Orc])} -function fdc(){cdc();return xz(pz(bQ,1),jKd,413,0,[_cc,adc,bdc])} -function sIc(){pIc();return xz(pz(cV,1),jKd,419,0,[nIc,mIc,oIc])} -function hJc(){eJc();return xz(pz(jV,1),jKd,420,0,[dJc,cJc,bJc])} -function hDc(){eDc();return xz(pz(qU,1),jKd,275,0,[dDc,cDc,bDc])} -function Ntc(){Jtc();return xz(pz(XS,1),jKd,277,0,[Htc,Itc,Gtc])} -function NHc(){KHc();return xz(pz(_U,1),jKd,203,0,[HHc,IHc,JHc])} -function mCc(){jCc();return xz(pz(mU,1),jKd,316,0,[hCc,gCc,iCc])} -function kt(){kt=d3;jt=Vs((bt(),xz(pz(bD,1),jKd,350,0,[_s,at])))} -function wqc(){wqc=d3;vqc=new xqc('DFS',0);uqc=new xqc('BFS',1)} -function Tvb(){Tvb=d3;Svb=new Gbb;Rvb=(Es(),new Bgb);Qvb=new Gbb} -function Eic(a,b,c){var d;d=new Dic;d.b=b;d.a=c;++b.b;tbb(a.d,d)} -function XHd(a,b,c){VGd.call(this,25);this.b=a;this.a=b;this.c=c} -function wHd(a){UGd();VGd.call(this,a);this.c=false;this.a=false} -function $td(a){a.a==(Usd(),Tsd)&&eud(a,Vsd(a.g,a.b));return a.a} -function aud(a){a.d==(Usd(),Tsd)&&gud(a,Zsd(a.g,a.b));return a.d} -function $s(a,b){var c;c=(Npb(a),a).g;Epb(!!c);Npb(b);return c(b)} -function ds(a,b){var c,d;d=fs(a,b);c=a.a.fd(d);return new ts(a,c)} -function T2(a){var b;if(G2(a)){b=a;return b==-0.?0:b}return Zz(a)} -function Oad(a){if(a.Db>>16!=6)return null;return kA(DMc(a),207)} -function acb(a){Lpb(a.a=b){throw x2(new q3(Ib(a,b)))}return a} -function Sb(a,b,c){if(a<0||bc){throw x2(new q3(Kb(a,b,c)))}} -function no(a){Zn();return C6(yb((sk(),rk),C6(new M6,91),a),93).a} -function zn(a){Pb(a);return go((Zn(),new Zo(Rn(Dn(a.a,new Hn)))))} -function Ur(a){return new Hbb((Wj(a,gKd),Dv(y2(y2(5,a),a/10|0))))} -function aw(a,b){return !!a&&!!a.equals?a.equals(b):yA(a)===yA(b)} -function xOc(a,b){if(b==0){return !!a.o&&a.o.f!=0}return OMc(a,b)} -function yHc(a,b){var c;c=Vpb(nA(a.a.xe(($Ac(),UAc))));zHc(a,b,c)} -function ZMc(a,b,c){var d;d=Mbd(a.d,b);d>=0?YMc(a,d,c):VMc(a,b,c)} -function uec(a,b,c){var d;d=a.d[b.o];a.d[b.o]=a.d[c.o];a.d[c.o]=d} -function Loc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} -function Nbd(a){return !!a.u&&Ebd(a.u.a).i!=0&&!(!!a.n&&ndd(a.n))} -function Zu(a){Gl();this.a=(bdb(),sA(a,49)?new Oeb(a):new seb(a))} -function Bzb(){this.c=new Nzb;this.a=new PDb;this.b=new tEb;YDb()} -function J$c(a,b,c){this.d=a;this.j=b;this.e=c;this.o=-1;this.p=3} -function K$c(a,b,c){this.d=a;this.k=b;this.f=c;this.o=-1;this.p=5} -function Rid(a,b,c,d,e,f){Qid.call(this,a,b,c,d,e);f&&(this.o=-2)} -function Tid(a,b,c,d,e,f){Sid.call(this,a,b,c,d,e);f&&(this.o=-2)} -function Vid(a,b,c,d,e,f){Uid.call(this,a,b,c,d,e);f&&(this.o=-2)} -function Xid(a,b,c,d,e,f){Wid.call(this,a,b,c,d,e);f&&(this.o=-2)} -function Zid(a,b,c,d,e,f){Yid.call(this,a,b,c,d,e);f&&(this.o=-2)} -function _id(a,b,c,d,e,f){$id.call(this,a,b,c,d,e);f&&(this.o=-2)} -function ejd(a,b,c,d,e,f){djd.call(this,a,b,c,d,e);f&&(this.o=-2)} -function gjd(a,b,c,d,e,f){fjd.call(this,a,b,c,d,e);f&&(this.o=-2)} -function xmd(a,b,c,d){kmd.call(this,c);this.b=a;this.c=b;this.d=d} -function Ptd(a,b){this.f=a;this.a=(Usd(),Ssd);this.c=Ssd;this.b=b} -function kud(a,b){this.g=a;this.d=(Usd(),Tsd);this.a=Tsd;this.b=b} -function HAd(a,b){!a.c&&(a.c=new pvd(a,0));bvd(a.c,(qAd(),iAd),b)} -function bSc(a,b,c,d,e,f){cSc(a,b,c,f);Pbd(a,d);Qbd(a,e);return a} -function W8(a,b){if(sA(b,38)){return Bf(a.a,kA(b,38))}return false} -function Ov(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} -function q$c(a){if(a.p!=1)throw x2(new P4);return U2(a.f)<<24>>24} -function z$c(a){if(a.p!=1)throw x2(new P4);return U2(a.k)<<24>>24} -function F$c(a){if(a.p!=7)throw x2(new P4);return U2(a.k)<<16>>16} -function w$c(a){if(a.p!=7)throw x2(new P4);return U2(a.f)<<16>>16} -function bkb(a){Vjb();$jb(this,U2(z2(P2(a,24),NLd)),U2(z2(a,NLd)))} -function kvb(){kvb=d3;jvb=Vs((fvb(),xz(pz(SI,1),jKd,439,0,[evb])))} -function x1b(){x1b=d3;v1b=new y1b(COd,0);w1b=new y1b('TOP_LEFT',1)} -function muc(a,b){var c;a.e=new fuc;c=Drc(b);Dbb(c,a.c);nuc(a,c,0)} -function mwc(a,b,c,d){var e;e=new twc;e.a=b;e.b=c;e.c=d;mib(a.b,e)} -function lwc(a,b,c,d){var e;e=new twc;e.a=b;e.b=c;e.c=d;mib(a.a,e)} -function xe(a,b,c){var d;d=kA(a.Hc().Vb(b),13);return !!d&&d.pc(c)} -function Ae(a,b,c){var d;d=kA(a.Hc().Vb(b),13);return !!d&&d.vc(c)} -function Ilb(a,b){var c;c=1-b;a.a[c]=Jlb(a.a[c],c);return Jlb(a,b)} -function Hib(a){Lpb(a.b.b!=a.d.a);a.c=a.b=a.b.b;--a.a;return a.c.c} -function kr(a){jr(a);_p(a.c);a.e=a.a=a.c;a.c=a.c.b;++a.d;return a.a} -function lr(a){jr(a);_p(a.e);a.c=a.a=a.e;a.e=a.e.d;--a.d;return a.a} -function To(a){if(!So(a)){throw x2(new djb)}a.c=a.b;return a.b.ic()} -function Qfb(a,b){if(sA(b,38)){return Bf(a.a,kA(b,38))}return false} -function Xhb(a,b){if(sA(b,38)){return Bf(a.a,kA(b,38))}return false} -function eob(a){var b;aob(a);b=new wfb;rkb(a.a,new job(b));return b} -function wpd(){var a,b,c;b=(c=(a=new xhd,a),c);tbb(spd,b);return b} -function $Sb(a){var b;b=(Flc(),Flc(),elc);a.d&&fTb(a);ol();return b} -function Wuc(a){a.j.c=tz(NE,oJd,1,0,5,1);rg(a.c);wvc(a.a);return a} -function yvc(){Suc.call(this);this.j.c=tz(NE,oJd,1,0,5,1);this.a=-1} -function ubc(a,b,c){this.b=new Gbc(this);this.c=a;this.f=b;this.d=c} -function NEb(a,b,c){!!a.d&&Abb(a.d.d,a);a.d=b;!!a.d&&sbb(a.d.d,c,a)} -function ojd(a){return !!a.a&&njd(a.a.a).i!=0&&!(!!a.b&&mkd(a.b))} -function ogc(a){Rfc();return !JEb(a)&&!(!JEb(a)&&a.c.g.c==a.d.g.c)} -function KYc(a){IYc();return D8(HYc,a)?kA(F8(HYc,a),337).Mf():null} -function fv(a){return sA(a,13)?new Lgb((sk(),kA(a,13))):gv(a.tc())} -function ktb(a,b,c){return c.f.c.length>0?ztb(a.a,b,c):ztb(a.b,b,c)} -function OUc(a,b,c){var d;d=UTc(c);I8(a.b,d,b);I8(a.c,b,c);return b} -function WTc(a,b){var c,d;c=Ly(a,b);d=null;!!c&&(d=c.Vd());return d} -function YTc(a,b){var c,d;c=Ly(a,b);d=null;!!c&&(d=c.Yd());return d} -function XTc(a,b){var c,d;c=cy(a,b);d=null;!!c&&(d=c.Yd());return d} -function ZTc(a,b){var c,d;c=Ly(a,b);d=null;!!c&&(d=$Tc(c));return d} -function aYc(a){var b;b=a.Fh(a.i);a.i>0&&T6(a.g,0,b,0,a.i);return b} -function Hl(a){var b;b=(Pb(a),new Ibb((sk(),a)));hdb(b);return Xl(b)} -function Ebd(a){if(!a.n){Jbd(a);a.n=new rdd(pY,a);Kbd(a)}return a.n} -function Yu(a,b){var c;c=new N6;a.wd(c);c.a+='..';b.xd(c);return c.a} -function s5c(a,b){r5c();var c;c=kA(F8(q5c,a),47);return !c||c.Li(b)} -function Bn(a){if(sA(a,13)){return kA(a,13).Wb()}return !a.tc().hc()} -function r4(a){if(a.ee()){return null}var b=a.n;var c=a3[b];return c} -function Gib(a){Lpb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} -function Oab(a,b){Npb(b);wz(a.a,a.c,b);a.c=a.c+1&a.a.length-1;Sab(a)} -function Nab(a,b){Npb(b);a.b=a.b-1&a.a.length-1;wz(a.a,a.b,b);Sab(a)} -function iyd(a){var b;b=a.pg();this.a=sA(b,64)?kA(b,64).oh():b.tc()} -function ow(a,b,c){var d;d=mw();try{return lw(a,b,c)}finally{pw(d)}} -function Qe(a,b,c,d){return sA(c,49)?new qi(a,b,c,d):new fi(a,b,c,d)} -function lmb(){gmb();return xz(pz(SG,1),jKd,278,0,[cmb,dmb,emb,fmb])} -function VBb(){OBb();return xz(pz($J,1),jKd,373,0,[KBb,NBb,LBb,MBb])} -function Mtb(){Jtb();return xz(pz(EI,1),jKd,304,0,[Gtb,Ftb,Htb,Itb])} -function Xub(){Uub();return xz(pz(NI,1),jKd,362,0,[Rub,Qub,Sub,Tub])} -function pJb(a){return Vpb(mA(nub(a,(E2b(),G1b))))&&nub(a,i2b)!=null} -function SJb(a){return Vpb(mA(nub(a,(E2b(),G1b))))&&nub(a,i2b)!=null} -function vVb(a){rVb();if(sA(a.g,153)){return kA(a.g,153)}return null} -function TVb(a,b,c){var d;d=kA(F8(a.g,c),57);tbb(a.a.c,new fGc(b,d))} -function i8b(a,b,c,d){var e;e=d[b.g][c.g];return Vpb(nA(nub(a.a,e)))} -function hk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} -function L$c(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} -function YTb(a,b,c,d,e){this.c=a;this.e=b;this.d=c;this.b=d;this.a=e} -function sYb(a,b,c,d,e){this.i=a;this.a=b;this.e=c;this.j=d;this.f=e} -function Mlc(a,b,c,d,e){Ts.call(this,a,b);this.a=c;this.b=d;this.c=e} -function Wec(){Wec=d3;Vec=new Xec('UPPER',0);Uec=new Xec('LOWER',1)} -function foc(){_nc();return xz(pz(bS,1),jKd,360,0,[Xnc,Ync,Znc,$nc])} -function Dtc(){ztc();return xz(pz(WS,1),jKd,320,0,[ytc,wtc,xtc,vtc])} -function wBc(){tBc();return xz(pz(hU,1),jKd,226,0,[sBc,pBc,qBc,rBc])} -function GBc(){DBc();return xz(pz(iU,1),jKd,197,0,[CBc,ABc,zBc,BBc])} -function eEc(){bEc();return xz(pz(uU,1),jKd,344,0,[_Dc,aEc,$Dc,ZDc])} -function _Lc(){YLc();return xz(pz(BV,1),jKd,374,0,[XLc,ULc,VLc,WLc])} -function jFc(){gFc();return xz(pz(zU,1),jKd,288,0,[fFc,cFc,eFc,dFc])} -function nHc(){jHc();return xz(pz(WU,1),jKd,265,0,[iHc,fHc,gHc,hHc])} -function m7b(){h7b();return xz(pz(vP,1),jKd,179,0,[f7b,g7b,e7b,d7b])} -function FMc(a,b,c){return b<0?UMc(a,c):kA(c,61).aj().fj(a,a.Qg(),b)} -function Puc(a,b){var c;for(c=a.j.c.length;c=0&&a.a[c]===b[c];c--);return c<0} -function Ox(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+NKd);Hx(a,c)} -function H7(a,b){if(b==0||a.e==0){return a}return b>0?_7(a,b):c8(a,-b)} -function I7(a,b){if(b==0||a.e==0){return a}return b>0?c8(a,b):_7(a,-b)} -function Pab(a){if(a.b==a.c){return}a.a=tz(NE,oJd,1,8,5,1);a.b=0;a.c=0} -function vgb(a){Lpb(a.a0){d+=a.a[c];c-=c&-c}return d} -function KFc(a,b){var c;c=b;while(c){uyc(a,-c.i,-c.j);c=ZSc(c)}return a} -function rlb(a,b){!a.a?(a.a=new O6(a.d)):I6(a.a,a.b);F6(a.a,b);return a} -function xjb(a,b){Npb(b);while(a.a||(a.a=Cob(a.c,a)),a.a){b.ie(Kkb(a))}} -function fxb(a){return !!a.c&&!!a.d?oxb(a.c)+'->'+oxb(a.d):'e_'+bqb(a)} -function n6c(a,b,c){return kA(b==null?Xgb(a.d,null,c):nhb(a.e,b,c),261)} -function nUc(a,b,c){var d,e;d=Ly(a,c);e=null;!!d&&(e=$Tc(d));SUc(b,c,e)} -function wUc(a,b){var c;c=new Py;QTc(c,'x',b.a);QTc(c,'y',b.b);OTc(a,c)} -function BUc(a,b){var c;c=new Py;QTc(c,'x',b.a);QTc(c,'y',b.b);OTc(a,c)} -function kvd(a,b){return lvd(a,b,sA(b,62)&&(kA(kA(b,17),62).Bb&sLd)!=0)} -function Qr(a){Pb(a);return sA(a,13)?new Ibb((sk(),kA(a,13))):Rr(a.tc())} -function KDc(){FDc();return xz(pz(rU,1),jKd,69,0,[DDc,lDc,kDc,CDc,EDc])} -function nw(b){kw();return function(){return ow(b,this,arguments);var a}} -function cw(){if(Date.now){return Date.now()}return (new Date).getTime()} -function ss(a){if(!a.c.Cc()){throw x2(new djb)}a.a=true;return a.c.Ec()} -function Rb(a,b){if(a<0||a>b){throw x2(new q3(Jb(a,b,'index')))}return a} -function Cvc(a,b){if(sA(b,180)){return Z5(a.c,kA(b,180).c)}return false} -function ue(a){a.d=3;a.c=Oo(a);if(a.d!=2){a.d=0;return true}return false} -function hcb(a,b){var c,d;c=(d=a.slice(0,b),yz(d,a));c.length=b;return c} -function Cbb(a,b,c){var d;d=(Mpb(b,a.c.length),a.c[b]);a.c[b]=c;return d} -function q8(a,b,c,d){var e;e=tz(FA,OKd,22,b,15,1);r8(e,a,b,c,d);return e} -function aKb(a,b,c,d){this.e=a;this.b=new Gbb;this.d=b;this.a=c;this.c=d} -function slb(a,b){this.b=qJd;this.d=a;this.e=b;this.c=this.d+(''+this.e)} -function tDb(){rbb(this);this.b=new Jyc(oLd,oLd);this.a=new Jyc(pLd,pLd)} -function Usd(){Usd=d3;var a,b;Ssd=(N6c(),b=new sgd,b);Tsd=(a=new zad,a)} -function yuc(){suc();this.b=(Es(),new Bgb);this.a=new Bgb;this.c=new Gbb} -function L8(a){var b;a.d=new Zgb(a);a.e=new phb(a);b=a[BLd]|0;a[BLd]=b+1} -function Mob(a,b){return (bob(a),Qob(new Zob(a,new xob(b,a.a)))).a!=null} -function Zzb(){Wzb();return xz(pz(HJ,1),jKd,328,0,[Rzb,Szb,Tzb,Uzb,Vzb])} -function W$b(){T$b();return xz(pz(cP,1),jKd,276,0,[Q$b,S$b,O$b,R$b,P$b])} -function N2b(){K2b();return xz(pz(qP,1),jKd,178,0,[J2b,F2b,G2b,H2b,I2b])} -function A7b(){u7b();return xz(pz(wP,1),jKd,292,0,[t7b,q7b,r7b,p7b,s7b])} -function MCc(){JCc();return xz(pz(oU,1),jKd,225,0,[GCc,ICc,ECc,FCc,HCc])} -function Jxc(){Gxc();return xz(pz(UT,1),jKd,163,0,[Exc,Dxc,Bxc,Fxc,Cxc])} -function mBc(){gBc();return xz(pz(gU,1),jKd,110,0,[eBc,dBc,cBc,bBc,fBc])} -function w6c(a,b){var c;return c=b!=null?G8(a,b):Of(Wgb(a.d,null)),AA(c)} -function H6c(a,b){var c;return c=b!=null?G8(a,b):Of(Wgb(a.d,null)),AA(c)} -function gwc(a,b){var c;c=kA(Fhb(a.d,b),27);return c?c:kA(Fhb(a.e,b),27)} -function Xqc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} -function Jbd(a){if(!a.t){a.t=new Fdd(a);eXc(new dsd(a),0,a.t)}return a.t} -function Vkd(a){var b;if(!a.c){b=a.r;sA(b,96)&&(a.c=kA(b,24))}return a.c} -function Rod(a,b){if(D8(a.a,b)){K8(a.a,b);return true}else{return false}} -function JEb(a){if(!a.c||!a.d){return false}return !!a.c.g&&a.c.g==a.d.g} -function tk(a){Wj(a,'size');return U2(H2(J2(a,8),UJd)?J2(a,8):UJd),new N6} -function wn(a,b){return hl((Gl(),new Zu(Ql(xz(pz(NE,1),oJd,1,5,[a,b])))))} -function pw(a){a&&ww((uw(),tw));--hw;if(a){if(jw!=-1){rw(jw);jw=-1}}} -function Ne(a,b){var c,d;c=kA(Ks(a.c,b),13);if(c){d=c._b();c.Pb();a.d-=d}} -function mo(a){Zn();var b;b=0;while(a.hc()){a.ic();b=y2(b,1)}return Dv(b)} -function Az(a){var b,c,d;b=a&cLd;c=a>>22&cLd;d=a<0?dLd:0;return Cz(b,c,d)} -function kab(a,b){var c,d;c=b.kc();d=vlb(a,c);return !!d&&ejb(d.e,b.lc())} -function vfb(a){var b;b=a.e+a.f;if(isNaN(b)&&D4(a.d)){return a.d}return b} -function e1c(a){this.b=a;a0c.call(this,a);this.a=kA(VNc(this.b.a,4),116)} -function n1c(a){this.b=a;v0c.call(this,a);this.a=kA(VNc(this.b.a,4),116)} -function Pid(a,b,c,d,e){N$c.call(this,b,d,e);Iid(this);this.c=a;this.b=c} -function Uid(a,b,c,d,e){J$c.call(this,b,d,e);Iid(this);this.c=a;this.a=c} -function Yid(a,b,c,d,e){K$c.call(this,b,d,e);Iid(this);this.c=a;this.a=c} -function fjd(a,b,c,d,e){N$c.call(this,b,d,e);Iid(this);this.c=a;this.a=c} -function aKc(a,b){this.d=new mGb;this.a=a;this.b=b;this.e=new Kyc(b.Qe())} -function L7(a,b){y7();this.e=a;this.d=1;this.a=xz(pz(FA,1),OKd,22,15,[b])} -function K8(a,b){return wA(b)?b==null?Ygb(a.d,null):ohb(a.e,b):Ygb(a.d,b)} -function JMc(a,b,c){var d;return d=a.rg(b),d>=0?a.ug(d,c,true):TMc(a,b,c)} -function lqb(a,b,c){var d;d=(Pb(a),new Ibb((sk(),a)));jqb(new kqb(d,b,c))} -function PCb(a,b,c){var d;d=(Pb(a),new Ibb((sk(),a)));NCb(new OCb(d,b,c))} -function PUc(a,b,c){var d;d=UTc(c);Lc(a.d,d,b,false);I8(a.e,b,c);return b} -function RUc(a,b,c){var d;d=UTc(c);Lc(a.j,d,b,false);I8(a.k,b,c);return b} -function Hyd(a,b,c){var d;d=new Iyd(a.a);Ef(d,a.a.a);Xgb(d.d,b,c);a.a.a=d} -function hEb(a){var b;b=new PEb;lub(b,a);qub(b,(J6b(),p5b),null);return b} -function Sr(a){var b,c;Pb(a);b=Mr(a.length);c=new Hbb(b);cdb(c,a);return c} -function UXc(a){var b,c;++a.j;b=a.g;c=a.i;a.g=null;a.i=0;a.uh(c,b);a.th()} -function RXc(a,b){a.Eh(a.i+1);SXc(a,a.i,a.Ch(a.i,b));a.sh(a.i++,b);a.th()} -function zbb(a,b){var c;c=(Mpb(b,a.c.length),a.c[b]);Bpb(a.c,b,1);return c} -function l8(a,b,c,d){var e;e=tz(FA,OKd,22,b+1,15,1);m8(e,a,b,c,d);return e} -function ZHc(a,b,c,d){var e;for(e=0;eb.o){return -1}return 0} -function Ppb(a,b){if(a<0||a>b){throw x2(new q3('Index: '+a+', Size: '+b))}} -function Tpb(a,b,c){if(a<0||b>c||b=b){throw x2(new q3('Index: '+a+', Size: '+b))}} -function Kx(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);Hx(a,c)} -function enc(a,b,c){this.a=a;this.b=b;this.c=c;tbb(a.q,this);tbb(b.g,this)} -function Uh(a,b,c,d){this.f=a;this.e=b;this.d=c;this.b=d;this.c=!d?null:d.d} -function Khb(a){N8.call(this,a,0);Dhb(this);this.b.b=this.b;this.b.a=this.b} -function xob(a,b){Akb.call(this,b.rd(),b.qd()&-65);Npb(a);this.a=a;this.c=b} -function gkb(a,b,c){this.d=(Npb(a),a);this.a=(c&qLd)==0?c|64|RJd:c;this.c=b} -function toc(){this.b=new yib;this.a=new yib;this.b=new yib;this.a=new yib} -function h9b(){h9b=d3;g9b=rvc(tvc(new yvc,(Wzb(),Rzb),(lPb(),GOb)),Vzb,bPb)} -function o9b(){o9b=d3;n9b=tvc(tvc(new yvc,(Wzb(),Rzb),(lPb(),sOb)),Tzb,OOb)} -function BOc(a,b){return !a.o&&(a.o=new T8c((uMc(),rMc),$V,a,0)),I1c(a.o,b)} -function vQb(a,b){xEc(b,'Label management',1);AA(nub(a,(_xc(),$xc)));zEc(b)} -function aic(a,b){var c;c=a.c;if(b>0){return kA(xbb(c.a,b-1),8)}return null} -function woc(a){var b;b=a.b;if(b.b==0){return null}return kA(Fq(b,0),170).b} -function TLb(a){var b,c,d,e;e=a.d;b=a.a;c=a.b;d=a.c;a.d=c;a.a=d;a.b=e;a.c=b} -function sKc(a,b){var c;if(a.A){c=kA(Cfb(a.b,b),114).n;c.d=a.A.d;c.a=a.A.a}} -function iXc(a,b,c){var d,e;if(c!=null){for(d=0;d=0,'Initial capacity must not be negative')} -function Awb(a){this.b=(Es(),new Bgb);this.c=new Bgb;this.d=new Bgb;this.a=a} -function cob(a){if(!a){this.c=null;this.b=new Gbb}else{this.c=a;this.b=null}} -function _lb(a,b){gab.call(this,a,b);this.a=tz(NG,oJd,398,2,0,1);this.b=true} -function Dud(a,b,c){return Eud(a,b,c,sA(b,62)&&(kA(kA(b,17),62).Bb&sLd)!=0)} -function Kud(a,b,c){return Lud(a,b,c,sA(b,62)&&(kA(kA(b,17),62).Bb&sLd)!=0)} -function mvd(a,b,c){return nvd(a,b,c,sA(b,62)&&(kA(kA(b,17),62).Bb&sLd)!=0)} -function YMb(a,b){return C4(Vpb(nA(nub(a,(E2b(),q2b)))),Vpb(nA(nub(b,q2b))))} -function o_b(){l_b();return xz(pz(eP,1),jKd,290,0,[k_b,j_b,i_b,g_b,f_b,h_b])} -function o0b(){k0b();return xz(pz(jP,1),jKd,241,0,[f0b,e0b,h0b,g0b,j0b,i0b])} -function A0b(){x0b();return xz(pz(kP,1),jKd,255,0,[u0b,t0b,w0b,s0b,v0b,r0b])} -function M0b(){J0b();return xz(pz(lP,1),jKd,256,0,[H0b,E0b,I0b,G0b,F0b,D0b])} -function a7b(){W6b();return xz(pz(uP,1),jKd,291,0,[U6b,S6b,Q6b,R6b,V6b,T6b])} -function $Cc(){VCc();return xz(pz(pU,1),jKd,83,0,[UCc,TCc,SCc,PCc,RCc,QCc])} -function Xoc(){Toc();return xz(pz(nS,1),jKd,308,0,[Soc,Ooc,Qoc,Poc,Roc,Noc])} -function hzc(){ezc();return xz(pz(cU,1),jKd,224,0,[$yc,bzc,czc,dzc,_yc,azc])} -function SBc(){PBc();return xz(pz(jU,1),jKd,289,0,[NBc,LBc,OBc,JBc,MBc,KBc])} -function Nqc(){Nqc=d3;Mqc=qvc(qvc(vvc(new yvc,(_nc(),Ync)),(Toc(),Soc)),Ooc)} -function suc(){suc=d3;new DWc('org.eclipse.elk.addLayoutConfig');ruc=new Auc} -function YAd(){YAd=d3;$Qc();VAd=oLd;UAd=pLd;XAd=new F4(oLd);WAd=new F4(pLd)} -function hHd(a,b,c){UGd();var d;d=gHd(a,b);c&&!!d&&jHd(a)&&(d=null);return d} -function tz(a,b,c,d,e,f){var g;g=uz(e,d);e!=10&&xz(pz(a,f),b,c,e,g);return g} -function xn(a,b,c){return hl((Gl(),new Zu(Ql(xz(pz(NE,1),oJd,1,5,[a,b,c])))))} -function dg(a,b){var c;c=b.kc();return Es(),new _m(c,Pe(a.e,c,kA(b.lc(),13)))} -function yyc(a,b){var c,d;c=a.a-b.a;d=a.b-b.b;return $wnd.Math.sqrt(c*c+d*d)} -function odc(a,b,c){var d;d=a.b[c.c.o][c.o];d.b+=b.b;d.c+=b.c;d.a+=b.a;++d.a} -function kcb(a,b,c){var d,e;e=a.length;d=c=a.i)throw x2(new t1c(b,a.i));return a.g[b]} -function Xed(a,b,c){pXc(a,c);if(c!=null&&!a.Li(c)){throw x2(new t3)}return c} -function CIc(a,b){gjb(b,'Horizontal alignment cannot be null');a.b=b;return a} -function IMc(a,b){var c;return c=a.rg(b),c>=0?a.ug(c,true,true):TMc(a,b,true)} -function wtd(a,b,c){var d,e;e=(d=Kkd(a.b,b),d);return !e?null:Wtd(qtd(a,e),c)} -function ipd(a){if(sA(a,159)){return ''+kA(a,159).a}return a==null?null:f3(a)} -function jpd(a){if(sA(a,159)){return ''+kA(a,159).a}return a==null?null:f3(a)} -function K2(a){var b;if(G2(a)){b=0-a;if(!isNaN(b)){return b}}return B2(Sz(a))} -function Zm(a){var b;a=a>2?a:2;b=Z4(a);if(a>b){b<<=1;return b>0?b:UJd}return b} -function R3(a){var b,c;b=a+128;c=(T3(),S3)[b];!c&&(c=S3[b]=new L3(a));return c} -function yz(a,b){qz(b)!=10&&xz(mb(b),b.rl,b.__elementTypeId$,qz(b),a);return a} -function F7(a,b){if(b.e==0){return x7}if(a.e==0){return x7}return u8(),v8(a,b)} -function mob(a){while(!a.a){if(!dkb(a.b,new qob(a))){return false}}return true} -function apb(a){while(!a.a){if(!Hob(a.c,new epb(a))){return false}}return true} -function oqb(a,b){if(b.a){throw x2(new Tv(_Ld))}Ggb(a.a,b);b.a=a;!a.j&&(a.j=b)} -function Nid(a,b,c,d,e,f){L$c.call(this,b,d,e,f);Iid(this);this.c=a;this.b=c} -function bjd(a,b,c,d,e,f){L$c.call(this,b,d,e,f);Iid(this);this.c=a;this.a=c} -function T8c(a,b,c,d){this.Gi();this.a=b;this.b=a;this.c=new Pxd(this,b,c,d)} -function j7(a,b){this.e=b;this.a=m7(a);this.a<54?(this.f=T2(a)):(this.c=Z7(a))} -function jCb(a,b){if(a.a.Ld(b.d,a.b)>0){tbb(a.c,new GBb(b.c,b.d,a.d));a.b=b.d}} -function Ydc(a){a.a=tz(FA,OKd,22,a.b+1,15,1);a.c=tz(FA,OKd,22,a.b,15,1);a.d=0} -function umb(){umb=d3;tmb=Vs((gmb(),xz(pz(SG,1),jKd,278,0,[cmb,dmb,emb,fmb])))} -function o7b(){o7b=d3;n7b=Vs((h7b(),xz(pz(vP,1),jKd,179,0,[f7b,g7b,e7b,d7b])))} -function XBb(){XBb=d3;WBb=Vs((OBb(),xz(pz($J,1),jKd,373,0,[KBb,NBb,LBb,MBb])))} -function Otb(){Otb=d3;Ntb=Vs((Jtb(),xz(pz(EI,1),jKd,304,0,[Gtb,Ftb,Htb,Itb])))} -function Zub(){Zub=d3;Yub=Vs((Uub(),xz(pz(NI,1),jKd,362,0,[Rub,Qub,Sub,Tub])))} -function hoc(){hoc=d3;goc=Vs((_nc(),xz(pz(bS,1),jKd,360,0,[Xnc,Ync,Znc,$nc])))} -function Ftc(){Ftc=d3;Etc=Vs((ztc(),xz(pz(WS,1),jKd,320,0,[ytc,wtc,xtc,vtc])))} -function yBc(){yBc=d3;xBc=Vs((tBc(),xz(pz(hU,1),jKd,226,0,[sBc,pBc,qBc,rBc])))} -function IBc(){IBc=d3;HBc=Vs((DBc(),xz(pz(iU,1),jKd,197,0,[CBc,ABc,zBc,BBc])))} -function gEc(){gEc=d3;fEc=Vs((bEc(),xz(pz(uU,1),jKd,344,0,[_Dc,aEc,$Dc,ZDc])))} -function bMc(){bMc=d3;aMc=Vs((YLc(),xz(pz(BV,1),jKd,374,0,[XLc,ULc,VLc,WLc])))} -function lFc(){lFc=d3;kFc=Vs((gFc(),xz(pz(zU,1),jKd,288,0,[fFc,cFc,eFc,dFc])))} -function pHc(){pHc=d3;oHc=Vs((jHc(),xz(pz(WU,1),jKd,265,0,[iHc,fHc,gHc,hHc])))} -function pIc(){pIc=d3;nIc=new qIc(xOd,0);mIc=new qIc(COd,1);oIc=new qIc(yOd,2)} -function Vic(){Vic=d3;Uic=new Wic(wOd,0);Tic=new Wic('IMPROVE_STRAIGHTNESS',1)} -function Csc(){Csc=d3;Asc=new Esc('LEAF_NUMBER',0);Bsc=new Esc('NODE_SIZE',1)} -function gmb(){gmb=d3;cmb=new hmb('All',0);dmb=new mmb;emb=new omb;fmb=new rmb} -function njd(a){if(!a.b){a.b=new qkd(pY,a);!a.a&&(a.a=new Djd(a,a))}return a.b} -function Quc(a,b){if(b<0){throw x2(new q3(NRd+b))}Puc(a,b+1);return xbb(a.j,b)} -function te(a){var b;if(!se(a)){throw x2(new djb)}a.d=1;b=a.c;a.c=null;return b} -function k6(a){var b,c;c=a.length;b=tz(CA,yKd,22,c,15,1);_5(a,0,c,b,0);return b} -function Ar(a,b){var c;this.f=a;this.b=b;c=kA(F8(a.b,b),264);this.c=!c?null:c.b} -function dec(a,b,c){var d;d=sec(a,b,c);a.b=new _dc(d.c.length);return fec(a,d)} -function bg(a,b){var c;c=kA(Js(a.d,b),13);if(!c){return null}return Pe(a.e,b,c)} -function Ihb(a,b){var c;c=kA(K8(a.c,b),353);if(c){Uhb(c);return c.e}return null} -function wlb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} -function QUc(a,b,c){var d;d=UTc(c);Lc(a.g,d,b,false);Lc(a.i,b,c,false);return b} -function Acb(a,b,c,d){var e;d=($eb(),!d?Xeb:d);e=a.slice(b,c);Bcb(e,a,b,c,-b,d)} -function EMc(a,b,c,d,e){return b<0?TMc(a,c,d):kA(c,61).aj().cj(a,a.Qg(),b,d,e)} -function d6c(a,b){return b0){return jJd}if(A2(a,oKd)<0){return oKd}return U2(a)} -function Gpb(a,b){if(!a){throw x2(new O4(Wpb('Enum constant undefined: %s',b)))}} -function t6c(a){Ev(this);this.g=!a?null:Kv(a,a.Od());this.f=a;Gv(this);this.Pd()} -function Oid(a,b,c,d,e,f,g){M$c.call(this,b,d,e,f,g);Iid(this);this.c=a;this.b=c} -function nx(a,b,c){var d,e;d=10;for(e=0;e=0){a.gd(c);return true}else{return false}} -function KMc(a,b){var c;c=Mbd(a.d,b);return c>=0?HMc(a,c,true,true):TMc(a,b,true)} -function dJd(a,b){var c;c=0;while(a.e!=a.i._b()){sVc(b,$_c(a),d5(c));c!=jJd&&++c}} -function Nu(a,b){var c,d,e;e=0;for(d=a.tc();d.hc();){c=d.ic();wz(b,e++,c)}return b} -function Ny(a,b,c){var d;if(b==null){throw x2(new A5)}d=Ly(a,b);Oy(a,b,c);return d} -function Bv(a){if(a<0){throw x2(new O4('tolerance ('+a+') must be >= 0'))}return a} -function Ejb(a){var b;b=a.b.c.length==0?null:xbb(a.b,0);b!=null&&Gjb(a,0);return b} -function sqb(a,b){var c,d,e;for(d=0,e=b.length;d=a.a.c.length){tbb(a.a,new yib)}return kA(xbb(a.a,b),15)} -function Zz(a){if(Pz(a,(fA(),eA))<0){return -Lz(Sz(a))}return a.l+a.m*fLd+a.h*gLd} -function Dx(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} -function dXb(a,b){var c;c=zv(a.e.c,b.e.c);if(c==0){return C4(a.e.d,b.e.d)}return c} -function cy(d,a){var b=d.a[a];var c=(az(),_y)[typeof b];return c?c(b):gz(typeof b)} -function l6(a,b){return b==(Yib(),Yib(),Xib)?a.toLocaleLowerCase():a.toLowerCase()} -function qz(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} -function g4(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(d4(a),a.o)} -function ejc(a,b,c){var d;d=a.a.e[kA(b.a,8).o]-a.a.e[kA(c.a,8).o];return zA(y5(d))} -function Xdc(a,b){var c;++a.d;++a.c[b];c=b+1;while(c=0&&ba||a>b){throw x2(new s3('fromIndex: 0, toIndex: '+a+OLd+b))}} -function zQb(a,b){var c,d;for(d=a.tc();d.hc();){c=kA(d.ic(),68);qub(c,(E2b(),b2b),b)}} -function jUb(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);dUb(c,d,1);tbb(b,new UUb(c,d))} -function OPb(a){var b;b=Vpb(nA(nub(a,(J6b(),f5b))));if(b<0){b=0;qub(a,f5b,b)}return b} -function hyc(a){ayc();var b,c;c=cRd;for(b=0;bc&&(c=a[b])}return c} -function Y2(){Z2();var a=X2;for(var b=0;b=a.i)throw x2(new t1c(b,a.i));return a.zh(b,a.g[b])} -function scd(a,b,c){pXc(a,c);if(!a.Nj()&&c!=null&&!a.Li(c)){throw x2(new t3)}return c} -function dXc(a,b){var c;c=a;while(ZSc(c)){c=ZSc(c);if(c==b){return true}}return false} -function mgb(a,b){if(!!b&&a.b[b.g]==b){wz(a.b,b.g,null);--a.c;return true}return false} -function wib(a,b){var c;c=b.c;b.a.b=b.b;b.b.a=b.a;b.a=b.b=null;b.c=null;--a.b;return c} -function wbb(a,b){var c,d,e,f;Npb(b);for(d=a.c,e=0,f=d.length;e>5;e=b&31;d=z2(Q2(a.n[c][f],U2(O2(e,1))),3);return d} -function dx(a,b){while(b[0]=0){++b[0]}} -function FIc(a,b){CHc.call(this);vIc(this);this.a=a;this.c=true;this.b=b.d;this.f=b.e} -function Av(a,b){yv();Bv(nKd);return $wnd.Math.abs(a-b)<=nKd||a==b||isNaN(a)&&isNaN(b)} -function g7(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=Y7(a.f)),a.c).e} -function OEb(a){return !!a.c&&!!a.d?a.c.g+'('+a.c+')->'+a.d.g+'('+a.d+')':'e_'+bqb(a)} -function cic(a,b,c){var d,e;d=b;do{e=Vpb(a.p[d.o])+c;a.p[d.o]=e;d=a.a[d.o]}while(d!=b)} -function abc(a,b,c){var d,e,f;e=b[c];for(d=0;d=14&&b<=16)));return a} -function $n(a,b){Zn();var c;Pb(a);Pb(b);c=false;while(b.hc()){c=c|a.nc(b.ic())}return c} -function Wj(a,b){if(a<0){throw x2(new O4(b+' cannot be negative but was: '+a))}return a} -function SSb(a,b){var c,d;for(d=new ccb(a);d.ac)throw x2(new Z_c(b,c));return new z0c(a,b)} -function n9c(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Lid(a,4,c,a.s))} -function q9c(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Lid(a,5,c,a.t))} -function Wgd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Lid(a,2,c,a.d))} -function Lad(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,5,c,b))} -function ZWc(a,b){var c,d,e;c=(d=(gMc(),e=new NSc,e),!!b&&KSc(d,b),d);LSc(c,a);return c} -function cdc(){cdc=d3;_cc=new ddc('BARYCENTER',0);adc=new ddc(gOd,1);bdc=new ddc(hOd,2)} -function F_b(){F_b=d3;C_b=new G_b('ARD',0);E_b=new G_b('MSD',1);D_b=new G_b('MANUAL',2)} -function U7b(){U7b=d3;T7b=new V7b(LQd,0);R7b=new V7b('INPUT',1);S7b=new V7b('OUTPUT',2)} -function ZVb(){IVb();this.b=(Es(),new Bgb);this.f=new Bgb;this.g=new Bgb;this.e=new Bgb} -function Qid(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 Sid(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 $id(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 djd(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 Wid(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 Bqb(a,b){return yv(),Bv(nKd),$wnd.Math.abs(a-b)<=nKd||a==b||isNaN(a)&&isNaN(b)} -function tsb(){qsb();return xz(pz(lI,1),jKd,228,0,[psb,ksb,lsb,jsb,nsb,osb,msb,isb,hsb])} -function BCc(){yCc();return xz(pz(nU,1),jKd,86,0,[qCc,pCc,sCc,xCc,wCc,vCc,tCc,uCc,rCc])} -function tEc(){qEc();return xz(pz(vU,1),jKd,239,0,[jEc,lEc,iEc,mEc,nEc,pEc,oEc,kEc,hEc])} -function h5(){h5=d3;g5=xz(pz(FA,1),OKd,22,15,[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15])} -function tcc(){tcc=d3;scc=rvc(tvc(tvc(new yvc,(Wzb(),Tzb),(lPb(),TOb)),Uzb,IOb),Vzb,SOb)} -function kwc(){if(!bwc){bwc=new jwc;iwc(bwc,xz(pz(tT,1),oJd,154,0,[new _Ac]))}return bwc} -function eSc(a,b,c){l9c(a,b);wRc(a,c);n9c(a,0);q9c(a,1);p9c(a,true);o9c(a,true);return a} -function $1c(a,b){var c;if(sA(b,38)){return a.c.vc(b)}else{c=I1c(a,b);a2c(a,b);return c}} -function w2(a){var b;if(sA(a,78)){return a}b=a&&a[qKd];if(!b){b=new Xv(a);Cw(b)}return b} -function _4(a){var b,c;if(a==0){return 32}else{c=0;for(b=1;(b&a)==0;b<<=1){++c}return c}} -function _hc(a,b){var c;c=a.c;if(b=0);if(Wab(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} -function AEc(a,b){if(a.j>0&&a.c0&&a.e!=0&&AEc(a.g,b/a.j*a.g.d)}} -function zTc(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,1,c,a.c))} -function yTc(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,0,c,a.b))} -function aPc(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,2,c,a.k))} -function uQc(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,8,c,a.f))} -function vQc(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,7,c,a.i))} -function LSc(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,8,c,a.a))} -function F8c(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,1,c,a.d))} -function pld(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,1,c,a.c))} -function Vgd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,4,c,a.c))} -function Vad(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,2,c,a.D))} -function old(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,0,c,a.b))} -function BHd(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new FFd:new SEd;a.c=MEd(d,a.b,a.a)} -function cvd(a,b){return zyd(a.e,b)?(wyd(),K9c(b)?new tzd(b,a):new Nyd(b,a)):new Ezd(b,a)} -function E3(a,b){B3();return wA(a)?Y5(a,pA(b)):uA(a)?B4(a,nA(b)):tA(a)?C3(a,mA(b)):a.vd(b)} -function Ew(a){var b=/function(?:\s+([\w$]+))?\s*\(/;var c=b.exec(a);return c&&c[1]||vKd} -function Usb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(c>>31}d!=0&&(a[c]=d)} -function m7(a){var b;A2(a,0)<0&&(a=M2(a));return b=U2(P2(a,32)),64-(b!=0?$4(b):$4(U2(a))+32)} -function Qcc(a){var b,c;for(c=a.c.a.Xb().tc();c.hc();){b=kA(c.ic(),204);$bc(b,new Ndc(b.f))}} -function Rcc(a){var b,c;for(c=a.c.a.Xb().tc();c.hc();){b=kA(c.ic(),204);_bc(b,new Odc(b.e))}} -function qf(a){this.d=a;this.c=a.c.Tb().tc();this.b=null;this.a=null;this.e=(Zn(),Zn(),Yn)} -function $q(a){this.e=a;this.d=new Kgb(Gs(ze(this.e)._b()));this.c=this.e.a;this.b=this.e.c} -function _dc(a){this.b=a;this.a=tz(FA,OKd,22,a+1,15,1);this.c=tz(FA,OKd,22,a,15,1);this.d=0} -function _ic(a){a.a=null;a.e=null;a.b.c=tz(NE,oJd,1,0,5,1);a.f.c=tz(NE,oJd,1,0,5,1);a.c=null} -function WRc(a,b){var c,d;d=(c=new ald,c);d.n=b;fXc((!a.s&&(a.s=new zkd(zY,a,21,17)),a.s),d)} -function QRc(a,b){var c,d;c=(d=new zad,d);c.n=b;fXc((!a.s&&(a.s=new zkd(zY,a,21,17)),a.s),c)} -function wRc(a,b){var c;c=a.zb;a.zb=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,1,c,a.zb))} -function iSc(a,b){var c;c=a.xb;a.xb=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,3,c,a.xb))} -function jSc(a,b){var c;c=a.yb;a.yb=b;(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,2,c,a.yb))} -function ZUc(a,b,c){var d,e,f;e=WTc(b,'labels');d=new jVc(a,c);f=(oUc(d.a,d.b,e),e);return f} -function _Rc(a,b,c,d,e,f,g,h,i,j,k,l,m){gSc(a,b,c,d,e,f,g,h,i,j,k,l,m);xad(a,false);return a} -function pg(a,b){var c,d,e;Npb(b);c=false;for(e=b.tc();e.hc();){d=e.ic();c=c|a.nc(d)}return c} -function An(a){if(a){if(a.Wb()){throw x2(new djb)}return a.cd(a._b()-1)}return ho(null.tc())} -function Q7(a){Npb(a);if(a.length==0){throw x2(new I5('Zero length BigInteger'))}W7(this,a)} -function w8b(){w8b=d3;v8b=new x8b('NO',0);t8b=new x8b('GREEDY',1);u8b=new x8b('LOOK_BACK',2)} -function wbd(){wbd=d3;tbd=new qgd;vbd=xz(pz(zY,1),sVd,158,0,[]);ubd=xz(pz(tY,1),tVd,53,0,[])} -function WGb(){WGb=d3;VGb=Vs((RGb(),xz(pz(QK,1),jKd,232,0,[PGb,OGb,MGb,QGb,NGb,KGb,LGb])))} -function a1b(){Z0b();return xz(pz(mP,1),jKd,233,0,[Q0b,S0b,T0b,U0b,V0b,W0b,Y0b,P0b,R0b,X0b])} -function SBb(a,b){OBb();return a==KBb&&b==NBb||a==NBb&&b==KBb||a==MBb&&b==LBb||a==LBb&&b==MBb} -function TBb(a,b){OBb();return a==KBb&&b==LBb||a==KBb&&b==MBb||a==NBb&&b==MBb||a==NBb&&b==LBb} -function ZYb(a,b){return Vpb(nA(jjb(Xob(Tob(new Zob(null,new ekb(a.c.b,16)),new mZb(a)),b))))} -function aZb(a,b){return Vpb(nA(jjb(Xob(Tob(new Zob(null,new ekb(a.c.b,16)),new kZb(a)),b))))} -function Sad(a,b){if(b){if(a.B==null){a.B=a.D;a.D=null}}else if(a.B!=null){a.D=a.B;a.B=null}} -function _o(a){var b;if(sA(a,182)){b=kA(a,182);return new ap(b.a)}else{return Zn(),new xo(a)}} -function gob(a){var b;b=eob(a);if(D2(b.a,0)){return pjb(),pjb(),ojb}return pjb(),new tjb(b.b)} -function hob(a){var b;b=eob(a);if(D2(b.a,0)){return pjb(),pjb(),ojb}return pjb(),new tjb(b.c)} -function kUb(a){prb.call(this);this.b=Vpb(nA(nub(a,(J6b(),k6b))));this.a=kA(nub(a,a5b),197)} -function ouc(){this.c=new Grc(0);this.b=new Grc(fRd);this.d=new Grc(eRd);this.a=new Grc(YMd)} -function _Ec(a){this.b=(Pb(a),new Ibb((sk(),a)));this.a=new Gbb;this.d=new Gbb;this.e=new Hyc} -function fHb(){fHb=d3;cHb=new oHb;aHb=new tHb;bHb=new xHb;_Gb=new BHb;dHb=new FHb;eHb=new JHb} -function O_b(){O_b=d3;M_b=new Q_b('GREEDY',0);L_b=new Q_b('DEPTH_FIRST',1);N_b=new Q_b(vOd,2)} -function eDc(){eDc=d3;dDc=new fDc('OUTSIDE',0);cDc=new fDc('INSIDE',1);bDc=new fDc('FIXED',2)} -function Gcc(){Gcc=d3;Fcc=qvc(uvc(tvc(tvc(new yvc,(Wzb(),Tzb),(lPb(),TOb)),Uzb,IOb),Vzb),SOb)} -function wEb(a){if(a.b.c.g.j==(RGb(),MGb)){return kA(nub(a.b.c.g,(E2b(),i2b)),11)}return a.b.c} -function xEb(a){if(a.b.d.g.j==(RGb(),MGb)){return kA(nub(a.b.d.g,(E2b(),i2b)),11)}return a.b.d} -function D7(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} -function ev(a){var b,c,d;b=0;for(d=a.tc();d.hc();){c=d.ic();b+=c!=null?ob(c):0;b=~~b}return b} -function Tyc(a,b,c){var d,e;for(e=sib(a,0);e.b!=e.d.c;){d=kA(Gib(e),9);d.a+=b;d.b+=c}return a} -function mmc(a){var b,c,d;b=0;for(d=a.tc();d.hc();){c=nA(d.ic());b+=(Npb(c),c)}return b/a._b()} -function Bx(a){var b;if(a==0){return 'UTC'}if(a<0){a=-a;b='UTC+'}else{b='UTC-'}return b+Dx(a)} -function gdb(a,b){bdb();var c,d;d=new Gbb;for(c=0;c0){this.g=this.Fh(this.i+(this.i/8|0)+1);a.zc(this.g)}} -function jKc(a,b){return yv(),Bv(gNd),$wnd.Math.abs(0-b)<=gNd||0==b||isNaN(0)&&isNaN(b)?0:a/b} -function pvd(a,b){lud.call(this,F0,a,b);this.b=this;this.a=yyd(a.mg(),Gbd(this.e.mg(),this.c))} -function nGd(a,b){var c,d;d=b.length;for(c=0;ce&&b.af&&b.b1||a.hc()){++a.a;a.g=0;b=a.i;a.hc();return b}else{throw x2(new djb)}} -function L1c(a){var b;if(a.d==null){++a.e;a.f=0;K1c(null)}else{++a.e;b=a.d;a.d=null;a.f=0;K1c(b)}} -function S8c(a,b){var c;if(sA(b,109)){kA(a.c,81).ij();c=kA(b,109);Z1c(a,c)}else{kA(a.c,81).Gc(b)}} -function Wr(a){return sA(a,193)?Hl(kA(a,193)):sA(a,160)?kA(a,160).a:sA(a,49)?new rs(a):new gs(a)} -function rcc(a,b,c){return a==(cdc(),bdc)?new kcc:Yjb(b,1)!=0?new Idc(c.length):new Gdc(c.length)} -function vMc(a,b){var c,d,e;c=a.cg();if(c!=null&&a.fg()){for(d=0,e=c.length;d=128)return false;return a<64?L2(z2(O2(1,a),c),0):L2(z2(O2(1,a-64),b),0)} -function Pkc(a){var b;b=kA(nub(a,(E2b(),V1b)),69);return a.j==(RGb(),MGb)&&(b==(FDc(),EDc)||b==kDc)} -function tn(a,b){var c;if(sA(b,13)){c=(sk(),kA(b,13));return a.oc(c)}return $n(a,kA(Pb(b),20).tc())} -function Djc(a){yjc();var b;if(!Bfb(xjc,a)){b=new Ajc;b.a=a;Efb(xjc,a,b)}return kA(Cfb(xjc,a),573)} -function Gs(a){Es();if(a<3){Wj(a,'expectedSize');return a+1}if(a>22);e=a.h+b.h+(d>>22);return Cz(c&cLd,d&cLd,e&dLd)} -function Yz(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 Cz(c&cLd,d&cLd,e&dLd)} -function YOc(a,b,c,d){if(c==1){return !a.n&&(a.n=new zkd(LV,a,1,7)),q_c(a.n,b,d)}return wOc(a,b,c,d)} -function Qab(a,b){if(b==null){return false}while(a.a!=a.b){if(kb(b,kbb(a))){return true}}return false} -function b9(a){if(a.a.hc()){return true}if(a.a!=a.d){return false}a.a=new ahb(a.e.d);return a.a.hc()} -function vbb(a,b){var c,d;c=b.yc();d=c.length;if(d==0){return false}Apb(a.c,a.c.length,c);return true} -function knb(a,b,c){var d,e;for(e=b.Tb().tc();e.hc();){d=kA(e.ic(),38);a.Yb(d.kc(),d.lc(),c)}return a} -function ohb(a,b){var c;c=a.a.get(b);if(c===undefined){++a.d}else{a.a[HLd](b);--a.c;pfb(a.b)}return c} -function gwd(a,b){this.b=a;this.e=b;this.d=b.j;this.f=(wyd(),kA(a,61).bj());this.k=yyd(b.e.mg(),a)} -function fkc(a){this.o=a;this.g=new Gbb;this.j=new yib;this.n=new yib;this.e=new Gbb;this.b=new Gbb} -function Pbc(a){this.a=tz(UP,cKd,1704,a.length,0,2);this.b=tz(XP,cKd,1705,a.length,0,2);this.c=new cp} -function Xqb(a,b){a.d==(gBc(),cBc)||a.d==fBc?kA(b.a,57).c.nc(kA(b.b,57)):kA(b.b,57).c.nc(kA(b.a,57))} -function AQb(a,b){var c,d;for(d=new ccb(a.b);d.ab){return 1}if(a==b){return 0}return isNaN(a)?isNaN(b)?0:1:-1} -function nrb(a,b){if(!a||!b||a==b){return false}return Dqb(a.d.c,b.d.c+b.d.b)&&Dqb(b.d.c,a.d.c+a.d.b)} -function N8(a,b){Fpb(a>=0,'Negative initial capacity');Fpb(b>=0,'Non-positive load factor');L8(this)} -function NRc(a){var b,c;c=(b=new Dod,b);wRc(c,'T');fXc((!a.d&&(a.d=new Bwd(AY,a,11)),a.d),c);return c} -function Yuc(a,b){var c;c=Tr(b.a._b());Sob(Yob(new Zob(null,new ekb(b,1)),a.i),new jvc(a,c));return c} -function voc(a){var b,c,d;b=new yib;for(d=sib(a.d,0);d.b!=d.d.c;){c=kA(Gib(d),170);mib(b,c.c)}return b} -function lXc(a){var b,c,d,e;b=1;for(c=0,e=a._b();c>=1);return b}} -function L4(a){var b;b=G3(a);if(b>nLd){return oLd}else if(b<-3.4028234663852886E38){return pLd}return b} -function xz(a,b,c,d,e){e.ql=a;e.rl=b;e.sl=g3;e.__elementTypeId$=c;e.__elementTypeCategory$=d;return e} -function fub(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){Qtb(a,f,g)||Utb(a,f,g,true,false)}}} -function YXb(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;da.f;c=a.u+a.e[a.o.o]*a.d>a.f*a.s*a.d;return b||c} -function Dlb(a,b,c){var d,e;d=new _lb(b,c);e=new amb;a.b=Blb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} -function Xkd(a){var b;if(!a.c||(a.Bb&1)==0&&(a.c.Db&64)!=0){b=j9c(a);sA(b,96)&&(a.c=kA(b,24))}return a.c} -function Yqb(a){var b,c;for(c=new ccb(a.a.b);c.a=0&&a[d]===b[d];d--);return d<0?0:H2(z2(a[d],yLd),z2(b[d],yLd))?-1:1} -function h6c(a){var b;if(a==null)return true;b=a.length;return b>0&&a.charCodeAt(b-1)==58&&!Q5c(a,E5c,F5c)} -function Enc(a){switch(a.g){case 1:return eRd;default:case 2:return 0;case 3:return YMd;case 4:return fRd;}} -function Xl(a){switch(a._b()){case 0:return Fl;case 1:return new mv(a.tc().ic());default:return new Zu(a);}} -function lo(a,b){Zn();var c,d;Qb(b,'predicate');for(d=0;a.hc();d++){c=a.ic();if(b.Mb(c)){return d}}return -1} -function xb(a,b,c){Pb(b);if(c.hc()){E6(b,a.Lb(c.ic()));while(c.hc()){E6(b,a.c);E6(b,a.Lb(c.ic()))}}return b} -function xt(a,b){var c;if(b===a){return true}if(sA(b,238)){c=kA(b,238);return kb(a.Hc(),c.Hc())}return false} -function A2(a,b){var c;if(G2(a)&&G2(b)){c=a-b;if(!isNaN(c)){return c}}return Pz(G2(a)?S2(a):a,G2(b)?S2(b):b)} -function Y7(a){y7();if(a<0){if(a!=-1){return new K7(-1,-a)}return s7}else return a<=10?u7[zA(a)]:new K7(1,a)} -function eHd(){UGd();var a;if(BGd)return BGd;a=YGd(gHd('M',true));a=ZGd(gHd('M',false),a);BGd=a;return BGd} -function JRc(a,b,c){var d,e;e=(d=new pjd,d);eSc(e,b,c);fXc((!a.q&&(a.q=new zkd(tY,a,11,10)),a.q),e);return e} -function Q5c(a,b,c){var d,e;for(d=0,e=a.length;d=a.b.c.length){return}Bjb(a,2*b+1);c=2*b+2;cb){throw x2(new O4(VLd+a+WLd+b))}if(a<0||b>c){throw x2(new s3(VLd+a+XLd+b+OLd+c))}} -function Ruc(a,b,c){if(b<0){throw x2(new q3(NRd+b))}if(b0){return Ykb(b-1,a.a.c.length),zbb(a.a,b-1)}else{throw x2(new zfb)}} -function wsc(a,b){var c;if(b.c.length!=0){while(Zrc(a,b)){Xrc(a,b,false)}c=Brc(b);if(a.a){a.a.If(c);wsc(a,c)}}} -function Mcc(a,b){var c,d;for(d=sib(a,0);d.b!=d.d.c;){c=kA(Gib(d),204);if(c.e.length>0){b.td(c);c.i&&Scc(c)}}} -function Syc(a,b,c){var d,e,f;d=new yib;for(f=sib(c,0);f.b!=f.d.c;){e=kA(Gib(f),9);mib(d,new Kyc(e))}Eq(a,b,d)} -function L5c(a,b){var c;c=new P5c((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} -function cg(a,b){var c,d;c=kA(a.d.$b(b),13);if(!c){return null}d=a.e.Oc();d.oc(c);a.e.d-=c._b();c.Pb();return d} -function a6c(a){var b,c,d,e;e=0;for(c=0,d=a.length;c1||b>=0&&a.b<3} -function _Xc(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.i>>0).toString(16)}return a.toString()} -function Kad(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}Vad(a,b==null?null:(Npb(b),b));!!a.C&&a.Kj(null)} -function Yab(a,b){var c,d;c=a.a.length-1;a.c=a.c-1&c;while(b!=a.c){d=b+1&c;wz(a.a,b,a.a[d]);b=d}wz(a.a,a.c,null)} -function Zab(a,b){var c,d;c=a.a.length-1;while(b!=a.b){d=b-1&c;wz(a.a,b,a.a[d]);b=d}wz(a.a,a.b,null);a.b=a.b+1&c} -function Qc(a,b){Tb(!this.b);Tb(!this.d);Lb(M8(a.c)==0);Lb(b.d.c+b.e.c==0);Lb(true);this.b=a;this.d=this.ec(b)} -function qbc(a,b,c,d,e){if(d){rbc(a,b)}else{nbc(a,b,e);obc(a,b,c)}if(b.c.length>1){bdb();Dbb(b,a.b);Nbc(a.c,b)}} -function w8(a,b,c,d,e){if(b==0||d==0){return}b==1?(e[d]=y8(e,c,d,a[0])):d==1?(e[b]=y8(e,a,b,c[0])):x8(a,c,e,b,d)} -function X5c(a){var b,c;if(a==null)return null;for(b=0,c=a.length;b=a.c.b:a.a<=a.c.b)){throw x2(new djb)}b=a.a;a.a+=a.c.c;++a.b;return d5(b)} -function Q5(a){var b,c;if(a>-129&&a<128){b=a+128;c=(S5(),R5)[b];!c&&(c=R5[b]=new K5(a));return c}return new K5(a)} -function d5(a){var b,c;if(a>-129&&a<128){b=a+128;c=(f5(),e5)[b];!c&&(c=e5[b]=new S4(a));return c}return new S4(a)} -function THc(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(sA(a,114)){if(kA(a,114).a.b==0){return 0}}return a.Pf()} -function UHc(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(sA(a,114)){if(kA(a,114).a.a==0){return 0}}return a.Qf()} -function kb(a,b){return wA(a)?Z5(a,b):uA(a)?(Npb(a),a===b):tA(a)?(Npb(a),a===b):rA(a)?a.Fb(b):vz(a)?a===b:aw(a,b)} -function ob(a){return wA(a)?hqb(a):uA(a)?zA((Npb(a),a)):tA(a)?(Npb(a),a)?1231:1237:rA(a)?a.Hb():vz(a)?bqb(a):bw(a)} -function mb(a){return wA(a)?UE:uA(a)?yE:tA(a)?tE:rA(a)?a.ql:vz(a)?a.ql:a.ql||Array.isArray(a)&&pz(ND,1)||ND} -function gyd(a){return !a?null:(a.i&1)!=0?a==u2?tE:a==FA?GE:a==EA?CE:a==DA?yE:a==GA?IE:a==t2?PE:a==BA?uE:vE:a} -function otc(){otc=d3;jtc=($Ac(),JAc);mtc=WAc;ftc=(ctc(),Tsc);gtc=Usc;htc=Wsc;itc=Ysc;ktc=Zsc;ltc=$sc;ntc=atc} -function pAb(){pAb=d3;nAb=hv(xz(pz(gU,1),jKd,110,0,[(gBc(),cBc),dBc]));oAb=hv(xz(pz(gU,1),jKd,110,0,[fBc,bBc]))} -function cMb(){cMb=d3;aMb=new dMb('MIRROR_X',0);bMb=new dMb('TRANSPOSE',1);_Lb=new dMb('MIRROR_AND_TRANSPOSE',2)} -function cCb(a){var b;b=new rCb(a);PCb(a.a,aCb,new Rcb(xz(pz(jK,1),oJd,341,0,[b])));!!b.d&&tbb(b.f,b.d);return b.f} -function Iac(a){var b,c;for(c=new ccb(a.r);c.a=48&&a<58){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} -function j6c(a){var b,c;if(a==null)return false;for(b=0,c=a.length;bnOd?a-c>nOd:c-a>nOd} -function y2(a,b){var c;if(G2(a)&&G2(b)){c=a+b;if(iLdd)throw x2(new Z_c(b,d));if(a.xh()&&a.pc(c)){throw x2(new O4(UTd))}a.mh(b,c)} -function Qpb(a,b,c){if(a<0||b>c){throw x2(new q3(VLd+a+XLd+b+', size: '+c))}if(a>b){throw x2(new O4(VLd+a+WLd+b))}} -function gz(a){az();throw x2(new vy("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} -function en(a){nl();switch(a.c){case 0:return av(),_u;case 1:return new ov(ko(new wgb(a)));default:return new dn(a);}} -function G8c(a){var b;if((a.Db&64)!=0)return aNc(a);b=new B6(aNc(a));b.a+=' (source: ';w6(b,a.d);b.a+=')';return b.a} -function qub(a,b,c){c==null?(!a.p&&(a.p=(Es(),new Bgb)),K8(a.p,b)):(!a.p&&(a.p=(Es(),new Bgb)),I8(a.p,b,c));return a} -function pub(a,b,c){return c==null?(!a.p&&(a.p=(Es(),new Bgb)),K8(a.p,b)):(!a.p&&(a.p=(Es(),new Bgb)),I8(a.p,b,c)),a} -function QXc(a,b,c){var d;a.Eh(a.i+1);d=a.Ch(b,c);b!=a.i&&T6(a.g,b,a.g,b+1,a.i-b);wz(a.g,b,d);++a.i;a.sh(b,c);a.th()} -function Yjc(a,b,c){var d,e,f;d=0;for(f=sib(a,0);f.b!=f.d.c;){e=Vpb(nA(Gib(f)));if(e>c){break}else e>=b&&++d}return d} -function ZXb(a,b){var c,d,e;c=0;for(e=AGb(a,b).tc();e.hc();){d=kA(e.ic(),11);c+=nub(d,(E2b(),p2b))!=null?1:0}return c} -function rwc(a){var b;b=kA(Fhb(a.c.c,''),199);if(!b){b=new Svc(_vc($vc(new awc,''),'Other'));Ghb(a.c.c,'',b)}return b} -function alc(a){this.a=new iib;this.d=new iib;this.b=new iib;this.c=new iib;this.g=new iib;this.i=new iib;this.f=a} -function gBc(){gBc=d3;eBc=new kBc(LQd,0);dBc=new kBc(yOd,1);cBc=new kBc(xOd,2);bBc=new kBc(WQd,3);fBc=new kBc('UP',4)} -function jCc(){jCc=d3;hCc=new kCc('INHERIT',0);gCc=new kCc('INCLUDE_CHILDREN',1);iCc=new kCc('SEPARATE_CHILDREN',2)} -function nkd(a,b,c){var d,e;d=new Oid(a.e,3,13,null,(e=b.c,e?e:(j7c(),Z6c)),pcd(a,b),false);!c?(c=d):c.Sh(d);return c} -function okd(a,b,c){var d,e;d=new Oid(a.e,4,13,(e=b.c,e?e:(j7c(),Z6c)),null,pcd(a,b),false);!c?(c=d):c.Sh(d);return c} -function PRc(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new Mid(a,1,4,e,b);!c?(c=d):c.Sh(d)}return c} -function m9c(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new Mid(a,1,8,e,a.r);!c?(c=d):c.Sh(d)}return c} -function ptd(a,b){var c,d;c=kA(b,614);d=c.Hj();!d&&c.Ij(d=sA(b,96)?new Dtd(a,kA(b,24)):new Ptd(a,kA(b,140)));return d} -function B7(a,b){var c;if(a===b){return true}if(sA(b,89)){c=kA(b,89);return a.e==c.e&&a.d==c.d&&C7(a,c.a)}return false} -function BMc(a,b){var c;c=Hbd(a,b);if(sA(c,335)){return kA(c,29)}throw x2(new O4(ZSd+b+"' is not a valid attribute"))} -function Xob(a,b){var c;c=new rpb;if(!a.a.sd(c)){aob(a);return ijb(),ijb(),hjb}return ijb(),new kjb(Npb(Wob(a,c.a,b)))} -function IMb(a,b){var c;if(a.c.length==0){return}c=kA(Fbb(a,tz(RK,VNd,8,a.c.length,0,1)),123);Ecb(c,new UMb);FMb(c,b)} -function OMb(a,b){var c;if(a.c.length==0){return}c=kA(Fbb(a,tz(RK,VNd,8,a.c.length,0,1)),123);Ecb(c,new ZMb);FMb(c,b)} -function aec(a,b){switch(b.g){case 2:case 1:return AGb(a,b);case 3:case 4:return Wr(AGb(a,b));}return bdb(),bdb(),$cb} -function WOc(a,b,c,d){switch(b){case 1:return !a.n&&(a.n=new zkd(LV,a,1,7)),a.n;case 2:return a.k;}return vOc(a,b,c,d)} -function zcb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=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 T4(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 o9c(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Pid(a,1,2,c,b))} -function Pbd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Pid(a,1,8,c,b))} -function rgd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Pid(a,1,8,c,b))} -function Qbd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Pid(a,1,9,c,b))} -function p9c(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Pid(a,1,3,c,b))} -function pzd(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Vi();a.b=!c?Mbd(a.c.mg(),a.a):a.c.qg(a.a.pi(),c)}return a.c.hg(a.b,b)} -function rhd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new Mid(a,1,5,e,a.a);!c?(c=d):n$c(c,d)}return c} -function gUc(a,b){var c;c=qc(a.i,b);if(c==null){throw x2(new aUc('Node did not exist in input.'))}VUc(b,c);return null} -function hUc(a,b){var c;c=F8(a.k,b);if(c==null){throw x2(new aUc('Port did not exist in input.'))}VUc(b,c);return null} -function bob(a){if(a.c){bob(a.c)}else if(a.d){throw x2(new Q4("Stream already terminated, can't be modified or used"))}} -function xYb(a){var b;if(!a.a){throw x2(new Q4('Cannot offset an unassigned cut.'))}b=a.c-a.b;a.b+=b;zYb(a,b);AYb(a,b)} -function Scc(a){var b;if(a.g){b=a.c.pf()?a.f:a.a;Ucc(b.a,a.o,true);Ucc(b.a,a.o,false);qub(a.o,(J6b(),Z5b),(VCc(),PCc))}} -function tpc(a){var b,c,d;b=kA(nub(a,(Ppc(),Jpc)),15);for(d=b.tc();d.hc();){c=kA(d.ic(),170);mib(c.b.d,c);mib(c.c.b,c)}} -function aac(a){var b,c,d;d=0;for(c=(Zn(),new Zo(Rn(Dn(a.a,new Hn))));So(c);){b=kA(To(c),14);b.c.g==b.d.g||++d}return d} -function Bfd(a,b){var c,d;for(d=new a0c(a);d.e!=d.i._b();){c=kA($_c(d),24);if(yA(b)===yA(c)){return true}}return false} -function Ajd(a,b){var c,d;for(d=new a0c(a);d.e!=d.i._b();){c=kA($_c(d),133);if(yA(b)===yA(c)){return true}}return false} -function jtd(a,b,c){var d,e,f;f=(e=Kkd(a.b,b),e);if(f){d=kA(Wtd(qtd(a,f),''),24);if(d){return std(a,d,b,c)}}return null} -function mtd(a,b,c){var d,e,f;f=(e=Kkd(a.b,b),e);if(f){d=kA(Wtd(qtd(a,f),''),24);if(d){return ttd(a,d,b,c)}}return null} -function pMb(a){var b,c;b=a.j;if(b==(RGb(),MGb)){c=kA(nub(a,(E2b(),V1b)),69);return c==(FDc(),lDc)||c==CDc}return false} -function eXb(a){var b;b=new M6;b.a+='VerticalSegment ';H6(b,a.e);b.a+=' ';I6(b,zb(new Cb(qJd),new ccb(a.k)));return b.a} -function vDb(a){var b,c,d;b=new Gbb;for(d=new ccb(a.b);d.a0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} -function dac(a,b,c){var d,e;for(e=a.a.Xb().tc();e.hc();){d=kA(e.ic(),8);if(sg(c,kA(xbb(b,d.o),13))){return d}}return null} -function W5c(a,b,c,d){var e;e=a.length;if(b>=e)return e;for(b=b>0?b:0;b=1?dBc:bBc}return c} -function Eac(a){var b,c,d;b=0;for(d=new ccb(a.c.a);d.a=64&&b<128&&(e=N2(e,O2(1,b-64)))}return e} -function QQb(a,b,c){var d,e,f;for(e=kl(b?vGb(a):zGb(a));So(e);){d=kA(To(e),14);f=b?d.c.g:d.d.g;f.j==(RGb(),NGb)&&FGb(f,c)}} -function RKc(a,b,c){var d;d=new aKc(a,b);Le(a.r,b.ef(),d);if(c&&a.t!=(eDc(),bDc)){d.c=new EIc(a.d);wbb(b.We(),new UKc(d))}} -function WWc(a,b,c){var d,e;d=(gMc(),e=new QOc,e);OOc(d,b);POc(d,c);!!a&&fXc((!a.a&&(a.a=new fdd(GV,a,5)),a.a),d);return d} -function zEc(a){if(a.i==null){throw x2(new Q4('The task has not begun yet.'))}if(!a.b){a.c0&&b.charCodeAt(0)==43?b.substr(1,b.length-1):b))} -function pBd(a){var b;return a==null?null:new P7((b=mId(a,true),b.length>0&&b.charCodeAt(0)==43?b.substr(1,b.length-1):b))} -function pGd(a){var b;b=tz(CA,yKd,22,2,15,1);a-=sLd;b[0]=(a>>10)+tLd&AKd;b[1]=(a&1023)+56320&AKd;return r6(b,0,b.length)} -function cyd(a){var b,c;for(c=dyd(Nad(I9c(a))).tc();c.hc();){b=pA(c.ic());if(MQc(a,b))return H6c((G6c(),F6c),b)}return null} -function r6(a,b,c){var d,e,f,g;f=b+c;Tpb(b,f,a.length);g='';for(e=b;eb&&d.Ld(a[f-1],a[f])>0;--f){g=a[f];wz(a,f,a[f-1]);wz(a,f-1,g)}}} -function f7(a,b){var c;a.c=b;a.a=$7(b);a.a<54&&(a.f=(c=b.d>1?N2(O2(b.a[1],32),z2(b.a[0],yLd)):z2(b.a[0],yLd),T2(J2(b.e,c))))} -function akb(){Vjb();var a,b,c;c=Ujb+++Dpb();a=zA($wnd.Math.floor(c*LLd))&NLd;b=zA(c-a*MLd);this.a=a^1502;this.b=b^KLd} -function cub(a,b,c){a.n=rz(GA,[cKd,rLd],[378,22],14,[c,zA($wnd.Math.ceil(b/32))],2);a.o=b;a.p=c;a.j=b-1>>1;a.k=c-1>>1} -function fUb(a,b){var c,d,e;d=uVb(b);e=Vpb(nA(s8b(d,(J6b(),k6b))));c=$wnd.Math.max(0,e/2-0.5);dUb(b,c,1);tbb(a,new WUb(b,c))} -function $jc(a,b){var c,d;c=sib(a,0);while(c.b!=c.d.c){d=Vpb(nA(Gib(c)));if(d==b){return}else if(d>b){Hib(c);break}}Eib(c,b)} -function qwc(a,b){var c,d,e,f,g;c=b.f;Ghb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb?1:Cv(isNaN(a),isNaN(b))} -function Xv(a){Vv();Ev(this);Gv(this);this.e=a;a!=null&&_pb(a,qKd,this);this.g=a==null?mJd:f3(a);this.a='';this.b=a;this.a=''} -function Hfb(a){var b;this.a=(b=kA(a.e&&a.e(),10),new ngb(b,kA(ypb(b,b.length),10),0));this.b=tz(NE,oJd,1,this.a.a.length,5,1)} -function Ou(a,b){var c,d;c=a._b();b.lengthc&&wz(b,c,null);return b} -function oXc(a){var b,c,d;d=new z6;d.a+='[';for(b=0,c=a._b();b>5;b=a&31;d=tz(FA,OKd,22,c+1,15,1);d[c]=1<f?b:f}return d5(b)} -function Mub(a,b){var c,d;for(d=a.e.a.Xb().tc();d.hc();){c=kA(d.ic(),247);if(fyc(b,c.d)||dyc(b,c.d)){return true}}return false} -function Zlc(a,b){var c,d,e,f;f=a.g.ed();c=0;while(f.hc()){d=Vpb(nA(f.ic()));e=d-b;if(e>_Qd){return c}else e>aRd&&++c}return c} -function Smc(a,b){var c,d,e;e=b.d.g;d=e.j;if(d==(RGb(),PGb)||d==KGb||d==LGb){return}c=kl(zGb(e));So(c)&&I8(a.k,b,kA(To(c),14))} -function iQb(a,b){var c,d;c=b==(T$b(),P$b);d=gQb(a);c&&!d||!c&&d?qub(a,(J6b(),I4b),(ezc(),czc)):qub(a,(J6b(),I4b),(ezc(),bzc))} -function DBc(){DBc=d3;CBc=new EBc(LQd,0);ABc=new EBc('POLYLINE',1);zBc=new EBc('ORTHOGONAL',2);BBc=new EBc('SPLINES',3)} -function Qrc(){Qrc=d3;Prc=new Rrc('OVERLAP_REMOVAL',0);Nrc=new Rrc('COMPACTION',1);Orc=new Rrc('GRAPH_SIZE_CALCULATION',2)} -function b8b(){b8b=d3;$7b=new c8b('EQUALLY_DISTRIBUTED',0);a8b=new c8b('NORTH_STACKED',1);_7b=new c8b('NORTH_SEQUENCE',2)} -function ZVc(a){var b,c,d,e,f;f=_Vc(a);c=bJd(a.c);d=!c;if(d){e=new fy;Ny(f,'knownLayouters',e);b=new iWc(e);i5(a.c,b)}return f} -function Uud(a,b,c){var d,e;e=sA(b,62)&&(kA(kA(b,17),62).Bb&sLd)!=0?new jwd(b,a):new gwd(b,a);for(d=0;d3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} -function qg(a,b,c){var d,e;for(e=a.tc();e.hc();){d=e.ic();if(yA(b)===yA(d)||b!=null&&kb(b,d)){c&&e.jc();return true}}return false} -function d_c(a,b){var c,d;if(!b){return false}else{for(c=0;c0){if(b.lengtha.i&&wz(b,a.i,null);return b} -function _7(a,b){var c,d,e,f;c=b>>5;b&=31;e=a.d+c+(b==0?0:1);d=tz(FA,OKd,22,e,15,1);a8(d,a.a,c,b);f=new M7(a.e,e,d);A7(f);return f} -function rx(a,b){px();var c,d;c=ux((tx(),tx(),sx));d=null;b==c&&(d=kA(G8(ox,a),556));if(!d){d=new qx(a);b==c&&J8(ox,a,d)}return d} -function Mbd(a,b){var c,d,e;c=(a.i==null&&Cbd(a),a.i);d=b.pi();if(d!=-1){for(e=c.length;d=0;--d){b=c[d];for(e=0;e0&&A2(a,128)<0){b=U2(a)+128;c=(t5(),s5)[b];!c&&(c=s5[b]=new k5(a));return c}return new k5(a)} -function Z7(a){y7();if(A2(a,0)<0){if(A2(a,-1)!=0){return new N7(-1,K2(a))}return s7}else return A2(a,10)<=0?u7[U2(a)]:new N7(1,a)} -function cp(){Aj.call(this,new Khb(16));Wj(2,'expectedValuesPerKey');this.b=2;this.a=new vp(null,null,0,null);jp(this.a,this.a)} -function gFc(){gFc=d3;fFc=new hFc('SIMPLE',0);cFc=new hFc('GROUP_DEC',1);eFc=new hFc('GROUP_MIXED',2);dFc=new hFc('GROUP_INC',3)} -function SDc(){SDc=d3;PDc=new YGb(15);ODc=new GWc(($Ac(),oAc),PDc);RDc=new GWc(WAc,15);QDc=new GWc(LAc,d5(0));NDc=new GWc(Fzc,oNd)} -function Lmd(){Lmd=d3;Jmd=new Mmd;Cmd=new Pmd;Dmd=new Smd;Emd=new Vmd;Fmd=new Ymd;Gmd=new _md;Hmd=new cnd;Imd=new fnd;Kmd=new ind} -function Rdc(a){this.e=tz(FA,OKd,22,a.length,15,1);this.c=tz(u2,$Md,22,a.length,16,1);this.b=tz(u2,$Md,22,a.length,16,1);this.f=0} -function hub(a,b){this.n=rz(GA,[cKd,rLd],[378,22],14,[b,zA($wnd.Math.ceil(a/32))],2);this.o=a;this.p=b;this.j=a-1>>1;this.k=b-1>>1} -function hIc(a,b,c){XHc();SHc.call(this);this.a=rz($U,[cKd,fOd],[537,171],0,[WHc,VHc],2);this.c=new oyc;this.g=a;this.f=b;this.d=c} -function p_c(a,b,c){var d,e,f;if(a.ti()){d=a.i;f=a.ui();QXc(a,d,b);e=a.mi(3,null,b,d,f);!c?(c=e):c.Sh(e)}else{QXc(a,a.i,b)}return c} -function S1c(a,b){var c,d,e;if(a.f>0){a.Fi();d=b==null?0:ob(b);e=(d&jJd)%a.d.length;c=O1c(a,e,d,b);if(c){return c.lc()}}return null} -function I1c(a,b){var c,d,e;if(a.f>0){a.Fi();d=b==null?0:ob(b);e=(d&jJd)%a.d.length;c=P1c(a,e,d,b);return c!=-1}else{return false}} -function Qud(a,b){var c,d,e,f;f=yyd(a.e.mg(),b);c=kA(a.g,124);for(e=0;e2000){iw=a;jw=$wnd.setTimeout(sw,10)}}if(hw++==0){vw((uw(),tw));return true}return false} -function Gw(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} -function z7(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} -function ylb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.Ld(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 LXb(a,b,c,d){var e,f,g;e=false;if(dYb(a.f,c,d)){gYb(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} -function Ylc(a,b){var c,d,e;e=a.g.ed();while(e.hc()){c=Vpb(nA(e.ic()));d=$wnd.Math.abs(c-b);if(d<_Qd){return e.Dc()-1}}return a.g._b()} -function Hqc(a,b){var c,d,e,f;f=b.b.b;a.a=new yib;a.b=tz(FA,OKd,22,f,15,1);c=0;for(e=sib(b.b,0);e.b!=e.d.c;){d=kA(Gib(e),76);d.g=c++}} -function j8b(a,b,c){var d,e,f,g,h;g=a.j;h=b.j;d=c[g.g][h.g];e=nA(s8b(a,d));f=nA(s8b(b,d));return $wnd.Math.max((Npb(e),e),(Npb(f),f))} -function bEc(){bEc=d3;_Dc=new cEc('PORTS',0);aEc=new cEc('PORT_LABELS',1);$Dc=new cEc('NODE_LABELS',2);ZDc=new cEc('MINIMUM_SIZE',3)} -function Cqb(a,b){return yv(),yv(),Bv(nKd),($wnd.Math.abs(a-b)<=nKd||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Cv(isNaN(a),isNaN(b)))>0} -function Eqb(a,b){return yv(),yv(),Bv(nKd),($wnd.Math.abs(a-b)<=nKd||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Cv(isNaN(a),isNaN(b)))<0} -function Dqb(a,b){return yv(),yv(),Bv(nKd),($wnd.Math.abs(a-b)<=nKd||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Cv(isNaN(a),isNaN(b)))<=0} -function tac(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw x2(new O4('Input edge is not connected to the input port.'))} -function $5(a,b){Npb(a);if(b==null){return false}if(Z5(a,b)){return true}return a.length==b.length&&Z5(a.toLowerCase(),b.toLowerCase())} -function jBd(a){var b,c,d,e,f;if(a==null)return null;f=new Gbb;for(c=fRc(a),d=0,e=c.length;db.e){return 1}else if(a.fb.f){return 1}return ob(a)-ob(b)} -function Js(b,c){Es();Pb(b);try{return b.Vb(c)}catch(a){a=w2(a);if(sA(a,177)){return null}else if(sA(a,169)){return null}else throw x2(a)}} -function Ks(b,c){Es();Pb(b);try{return b.$b(c)}catch(a){a=w2(a);if(sA(a,177)){return null}else if(sA(a,169)){return null}else throw x2(a)}} -function O7(a){y7();if(a.length==0){this.e=0;this.d=1;this.a=xz(pz(FA,1),OKd,22,15,[0])}else{this.e=1;this.d=a.length;this.a=a;A7(this)}} -function y8(a,b,c,d){u8();var e,f;e=0;for(f=0;f=f){Yab(a,b);return -1}else{Zab(a,b);return 1}} -function XXc(a,b){var c,d,e;++a.j;d=a.g==null?0:a.g.length;if(b>d){e=a.g;c=d+(d/2|0)+4;cwLd){return c.zg()}d=c.sg();if(!!d||c==a){break}}}return d} -function atd(a,b){var c,d;c=b.Yg(a.a);if(c){d=pA(S1c((!c.b&&(c.b=new f9c((j7c(),f7c),CZ,c)),c.b),RTd));if(d!=null){return d}}return b.be()} -function btd(a,b){var c,d;c=b.Yg(a.a);if(c){d=pA(S1c((!c.b&&(c.b=new f9c((j7c(),f7c),CZ,c)),c.b),RTd));if(d!=null){return d}}return b.be()} -function CWc(a){var b;if(sA(a.a,4)){b=JYc(a.a);if(b==null){throw x2(new Q4(VRd+a.b+"'. "+RRd+(d4(cX),cX.k)+SRd))}return b}else{return a.a}} -function lBd(a){var b;if(a==null)return null;b=GEd(mId(a,true));if(b==null){throw x2(new Pzd("Invalid hexBinary value: '"+a+"'"))}return b} -function Wvb(a,b){var c,d,e;tbb(Svb,a);b.nc(a);c=kA(F8(Rvb,a),19);if(c){for(e=c.tc();e.hc();){d=kA(e.ic(),35);ybb(Svb,d,0)!=-1||Wvb(d,b)}}} -function gYb(a,b,c){var d,e;tec(a.e,b,c,(FDc(),EDc));tec(a.i,b,c,kDc);if(a.a){e=kA(nub(b,(E2b(),i2b)),11);d=kA(nub(c,i2b),11);uec(a.g,e,d)}} -function Fuc(a){var b;if(yA(AOc(a,($Ac(),Vzc)))===yA((jCc(),hCc))){if(!ZSc(a)){COc(a,Vzc,iCc)}else{b=kA(AOc(ZSc(a),Vzc),316);COc(a,Vzc,b)}}} -function lAb(a,b,c){this.c=a;this.f=new Gbb;this.e=new Hyc;this.j=new kBb;this.n=new kBb;this.b=b;this.g=new pyc(b.c,b.d,b.b,b.a);this.a=c} -function fmc(a,b,c,d,e,f){Tlc(this);this.e=a;this.f=b;this.d=c;this.c=d;this.g=e;this.b=f;this.j=Vpb(nA(e.tc().ic()));this.i=Vpb(nA(An(e)))} -function aQb(a){var b;b=kA(To(kl(vGb(a))),14).c.g;while(b.j==(RGb(),OGb)){qub(b,(E2b(),c2b),(B3(),B3(),true));b=kA(To(kl(vGb(b))),14).c.g}} -function $ac(a,b,c){var d,e,f,g;f=b.i;g=c.i;if(f!=g){return f.g-g.g}else{d=a.f[b.o];e=a.f[c.o];return d==0&&e==0?0:d==0?-1:e==0?1:C4(d,e)}} -function $_c(b){var c;try{c=b.i.cd(b.e);b.Bi();b.g=b.e++;return c}catch(a){a=w2(a);if(sA(a,79)){b.Bi();throw x2(new djb)}else throw x2(a)}} -function u0c(b){var c;try{c=b.c.yh(b.e);b.Bi();b.g=b.e++;return c}catch(a){a=w2(a);if(sA(a,79)){b.Bi();throw x2(new djb)}else throw x2(a)}} -function Fq(b,c){var d;d=b.fd(c);try{return d.ic()}catch(a){a=w2(a);if(sA(a,101)){throw x2(new q3("Can't get element "+c))}else throw x2(a)}} -function uk(b,c){sk();Pb(b);try{return b.pc(c)}catch(a){a=w2(a);if(sA(a,177)){return false}else if(sA(a,169)){return false}else throw x2(a)}} -function Is(b,c){Es();Pb(b);try{return b.Qb(c)}catch(a){a=w2(a);if(sA(a,177)){return false}else if(sA(a,169)){return false}else throw x2(a)}} -function nDb(a,b,c){return new pyc($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 _Yb(a,b){var c,d,e,f;c=0;for(e=new ccb(b.a);e.a0),b.a.cd(b.c=--b.b))} -function Gxc(){Gxc=d3;Exc=new Hxc('PARENTS',0);Dxc=new Hxc('NODES',1);Bxc=new Hxc('EDGES',2);Fxc=new Hxc('PORTS',3);Cxc=new Hxc('LABELS',4)} -function JCc(){JCc=d3;GCc=new KCc('DISTRIBUTED',0);ICc=new KCc('JUSTIFIED',1);ECc=new KCc('BEGIN',2);FCc=new KCc(COd,3);HCc=new KCc('END',4)} -function QIc(a,b,c){SHc.call(this);this.a=tz($U,fOd,171,(KHc(),xz(pz(_U,1),jKd,203,0,[HHc,IHc,JHc])).length,0,1);this.b=a;this.d=b;this.c=c} -function csd(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,sA(d,92)?kA(d,92).cg():null);if(mcb(b,c)){XNc(a.a,4,c);return}}XNc(a.a,4,kA(b,116))} -function ewc(a,b){var c,d;if(b!=null&&m6(b).length!=0){c=dwc(a,b);if(c){return c}}if(YPd.length!=0){d=dwc(a,YPd);if(d){return d}}return null} -function HYb(a){var b,c;if(a.j==(RGb(),OGb)){for(c=kl(tGb(a));So(c);){b=kA(To(c),14);if(!JEb(b)&&a.c==GEb(b,a).c){return true}}}return false} -function Lrb(){Lrb=d3;Krb=new Mrb('NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST',0);Jrb=new Mrb('CORNER_CASES_THAN_SINGLE_SIDE_LAST',1)} -function YJc(){SJc();return xz(pz(nV,1),jKd,147,0,[PJc,OJc,QJc,GJc,FJc,HJc,KJc,JJc,IJc,NJc,MJc,LJc,DJc,CJc,EJc,AJc,zJc,BJc,xJc,wJc,yJc,RJc])} -function YKc(a,b){var c;c=!a.v.pc((bEc(),aEc))||a.q==(VCc(),QCc);switch(a.t.g){case 1:c?WKc(a,b):$Kc(a,b);break;case 0:c?XKc(a,b):_Kc(a,b);}} -function Vw(a,b,c){var d;d=c.q.getFullYear()-NKd+NKd;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:nx(a,d%100,2);break;default:nx(a,d,b);}} -function Bdd(a){var b;b=a.Mh(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 mDb(a){switch(a.g){case 1:return gBc(),fBc;case 4:return gBc(),cBc;case 2:return gBc(),dBc;case 3:return gBc(),bBc;}return gBc(),eBc} -function pkd(a,b,c,d){var e,f,g;e=new Oid(a.e,1,13,(g=b.c,g?g:(j7c(),Z6c)),(f=c.c,f?f:(j7c(),Z6c)),pcd(a,b),false);!d?(d=e):d.Sh(e);return d} -function sib(a,b){var c,d;Ppb(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=0?a.Fg(e):UMc(a,d)):c<0?UMc(a,d):kA(d,61).aj().fj(a,a.Qg(),c)} -function zOc(a){var b,c,d;d=(!a.o&&(a.o=new T8c((uMc(),rMc),$V,a,0)),a.o);for(c=d.c.tc();c.e!=c.i._b();){b=kA(c.Ci(),38);b.lc()}return X1c(d)} -function yJb(a){var b,c,d,e;d=tz(IA,oJd,144,a.c.length,0,1);e=0;for(c=new ccb(a);c.a0){tbb(a.b,new Fx(b.a,c));d=b.a.length;0d&&(b.a+=q6(tz(CA,yKd,22,-d,15,1)))}} -function kCb(a){iCb();this.c=new Gbb;this.d=a;switch(a.g){case 0:case 2:this.a=idb(hCb);this.b=oLd;break;case 3:case 1:this.a=hCb;this.b=pLd;}} -function K7(a,b){this.e=a;if(b0.5&&f<50){e=omc(d);c=$lc(d,e,true);b=$wnd.Math.abs(c.b);++f}return $lc(a,e,false)} -function jmc(a){var b,c,d,e,f;d=gmc(a);b=oLd;f=0;e=0;while(b>0.5&&f<50){e=nmc(d);c=$lc(d,e,true);b=$wnd.Math.abs(c.a);++f}return $lc(a,e,false)} -function FEc(a,b){var c,d,e,f;f=0;for(d=sib(a,0);d.b!=d.d.c;){c=kA(Gib(d),35);f+=$wnd.Math.pow(c.g*c.f-b,2)}e=$wnd.Math.sqrt(f/(a.b-1));return e} -function iLc(a,b){var c,d,e;c=a.o;for(e=kA(kA(Ke(a.r,b),19),60).tc();e.hc();){d=kA(e.ic(),111);d.e.a=cLc(d,c.a);d.e.b=c.b*Vpb(nA(d.b.xe(aLc)))}} -function MMc(a,b,c,d){var e;if(c>=0){return a.Bg(b,c,d)}else{!!a.yg()&&(d=(e=a.og(),e>=0?a.jg(d):a.yg().Cg(a,-1-e,null,d)));return a.lg(b,c,d)}} -function nXc(a,b,c){var d,e;e=a._b();if(b>=e)throw x2(new Z_c(b,e));if(a.xh()){d=a.dd(c);if(d>=0&&d!=b){throw x2(new O4(UTd))}}return a.Ah(b,c)} -function UZc(a,b,c){var d,e,f,g;d=a.dd(b);if(d!=-1){if(a.ti()){f=a.ui();g=eZc(a,d);e=a.mi(4,g,null,d,f);!c?(c=e):c.Sh(e)}else{eZc(a,d)}}return c} -function q_c(a,b,c){var d,e,f,g;d=a.dd(b);if(d!=-1){if(a.ti()){f=a.ui();g=ZXc(a,d);e=a.mi(4,g,null,d,f);!c?(c=e):c.Sh(e)}else{ZXc(a,d)}}return c} -function Sab(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=Z4(8>d?8:d)<<1;if(a.b!=0){b=ypb(a.a,c);Rab(a,b,d);a.a=b;a.b=0}else{Cpb(a.a,c)}a.c=d} -function eQb(a){var b,c;b=new Gbb;c=a;do{c=kA(To(kl(zGb(c))),14).d.g;c.j==(RGb(),OGb)&&(b.c[b.c.length]=c,true)}while(c.j==(RGb(),OGb));return b} -function wDb(a){var b,c;this.b=new Gbb;this.c=a;this.a=false;for(c=new ccb(a.a);c.a0||a==(Fk(),Ek)||b==(Uk(),Tk)){throw x2(new O4('Invalid range: '+Yu(a,b)))}} -function VKb(a){switch(a.g){case 1:return YLc(),XLc;case 3:return YLc(),ULc;case 2:return YLc(),WLc;case 4:return YLc(),VLc;default:return null;}} -function Ktc(a){switch(a.g){case 0:return null;case 1:return new ouc;case 2:return new fuc;default:throw x2(new O4(xRd+(a.f!=null?a.f:''+a.g)));}} -function EXb(a,b,c){if(a.e){switch(a.b){case 1:mXb(a.c,b,c);break;case 0:nXb(a.c,b,c);}}else{kXb(a.c,b,c)}a.a[b.o][c.o]=a.c.i;a.a[c.o][b.o]=a.c.e} -function h7b(){h7b=d3;f7b=new j7b(wOd,0);g7b=new j7b('PORT_POSITION',1);e7b=new j7b('NODE_SIZE_WHERE_SPACE_PERMITS',2);d7b=new j7b('NODE_SIZE',3)} -function Ymc(a){var b,c,d;for(c=new ccb(a.a);c.a=0?a.ug(g,c,true):TMc(a,f,c)):kA(f,61).aj().cj(a,a.Qg(),e,c,d)} -function Zsb(a,b){var c,d,e,f;f=a.o;c=a.p;f=0)return e;if(a.Rj()){for(d=0;de&&wz(b,e,null);return b} -function Qcb(a,b){var c,d,e;e=a.a.length;b.lengthe&&wz(b,e,null);return b} -function Qtb(b,c,d){try{return D2(Ttb(b,c,d),1)}catch(a){a=w2(a);if(sA(a,305)){throw x2(new q3(zMd+b.o+'*'+b.p+AMd+c+qJd+d+BMd))}else throw x2(a)}} -function Rtb(b,c,d){try{return D2(Ttb(b,c,d),0)}catch(a){a=w2(a);if(sA(a,305)){throw x2(new q3(zMd+b.o+'*'+b.p+AMd+c+qJd+d+BMd))}else throw x2(a)}} -function Stb(b,c,d){try{return D2(Ttb(b,c,d),2)}catch(a){a=w2(a);if(sA(a,305)){throw x2(new q3(zMd+b.o+'*'+b.p+AMd+c+qJd+d+BMd))}else throw x2(a)}} -function _tb(b,c,d){var e;try{return Qtb(b,c+b.j,d+b.k)}catch(a){a=w2(a);if(sA(a,79)){e=a;throw x2(new q3(e.g+CMd+c+qJd+d+').'))}else throw x2(a)}} -function aub(b,c,d){var e;try{return Rtb(b,c+b.j,d+b.k)}catch(a){a=w2(a);if(sA(a,79)){e=a;throw x2(new q3(e.g+CMd+c+qJd+d+').'))}else throw x2(a)}} -function bub(b,c,d){var e;try{return Stb(b,c+b.j,d+b.k)}catch(a){a=w2(a);if(sA(a,79)){e=a;throw x2(new q3(e.g+CMd+c+qJd+d+').'))}else throw x2(a)}} -function i0c(b,c){if(b.g==-1){throw x2(new P4)}b.Bi();try{b.d.hd(b.g,c);b.f=b.d.j}catch(a){a=w2(a);if(sA(a,79)){throw x2(new qfb)}else throw x2(a)}} -function nEb(a,b,c){xEc(c,'Compound graph preprocessor',1);a.a=new Xm;sEb(a,b,null);mEb(a,b);rEb(a);qub(b,(E2b(),O1b),a.a);a.a=null;L8(a.b);zEc(c)} -function Xjb(a,b){var c,d;Epb(b>0);if((b&-b)==b){return zA(b*Yjb(a,31)*4.6566128730773926E-10)}do{c=Yjb(a,31);d=c%b}while(c-d+(b-1)<0);return zA(d)} -function KFb(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 fQb(a){var b,c;for(c=kA(nub(a,(E2b(),t2b)),15).tc();c.hc();){b=kA(c.ic(),68);if(oub(b,(J6b(),Y4b))){return kA(nub(b,Y4b),276)}}return null} -function JZb(a,b){var c,d,e;c=p$b(new r$b,a);for(e=new ccb(b);e.a1&&(f=JZb(a,b));return f} -function v9b(a,b){var c,d,e,f;for(f=new ccb(b.a);f.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 Gqc(a,b){var c,d,e;a.b[b.g]=1;for(d=sib(b.d,0);d.b!=d.d.c;){c=kA(Gib(d),170);e=c.c;a.b[e.g]==1?mib(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):Gqc(a,e)}} -function NIc(a,b){var c;c=xz(pz(DA,1),vLd,22,15,[THc(a.a[0],b),THc(a.a[1],b),THc(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function OIc(a,b){var c;c=xz(pz(DA,1),vLd,22,15,[UHc(a.a[0],b),UHc(a.a[1],b),UHc(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} -function urb(a){var b,c,d;ulb(a.b.a);a.a=tz(WH,oJd,57,a.c.c.a.b.c.length,0,1);b=0;for(d=new ccb(a.c.c.a.b);d.ad&&a.charCodeAt(b-1)<=32){--b}return d>0||bf&&wz(b,f,null);return b} -function go(a){Zn();var b;b=_n(a);if(!So(a)){throw x2(new q3('position (0) must be less than the number of elements that remained ('+b+')'))}return To(a)} -function a5(a){var b;b=(h5(),g5);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 cZb(a){var b,c,d;d=a.f;a.k=tz(DA,vLd,22,d,15,1);a.d=tz(DA,vLd,22,d,15,1);for(b=0;b0&&(e.b+=b);return e} -function cDb(a,b){var c,d,e;e=new Hyc;for(d=a.tc();d.hc();){c=kA(d.ic(),31);SCb(c,0,e.b);e.b+=c.e.b+b;e.a=$wnd.Math.max(e.a,c.e.a)}e.a>0&&(e.a+=b);return e} -function PVb(a,b){var c,d;if(b<0||b>=a._b()){return null}for(c=b;c=a.i)throw x2(new t1c(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&T6(a.g,b+1,a.g,b,d);wz(a.g,--a.i,null);a.vh(b,c);a.th();return c} -function Mad(a,b){var c,d;if(a.Db>>16==6){return a.Cb.Cg(a,5,uY,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?a.Rg():c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function Gq(b,c){var d,e;d=b.fd(c);try{e=d.ic();d.jc();return e}catch(a){a=w2(a);if(sA(a,101)){throw x2(new q3("Can't remove element "+c))}else throw x2(a)}} -function lob(a,b){var c,d,e;e=new ekb(new Rcb(xz(pz(NH,1),oJd,1700,0,[a,b])),16);d=new oob(e);c=new Zob(null,d);$nb(c,new sob(a));$nb(c,new uob(b));return c} -function xpb(a,b,c,d,e,f){var g,h,i;if(yA(a)===yA(c)){a=a.slice(b,b+e);b=0}for(h=b,i=b+e;h>22);e+=d>>22;if(e<0){return false}a.l=c&cLd;a.m=d&cLd;a.h=e&dLd;return true} -function Alb(a,b,c,d,e,f,g){var h,i;if(b.je()&&(i=a.a.Ld(c,d),i<0||!e&&i==0)){return false}if(b.ke()&&(h=a.a.Ld(c,f),h>0||!g&&h==0)){return false}return true} -function Jtb(){Jtb=d3;Gtb=new Ktb('NORTH',0);Ftb=new Ktb('EAST',1);Htb=new Ktb('SOUTH',2);Itb=new Ktb('WEST',3);Gtb.a=false;Ftb.a=true;Htb.a=false;Itb.a=true} -function Uub(){Uub=d3;Rub=new Vub('NORTH',0);Qub=new Vub('EAST',1);Sub=new Vub('SOUTH',2);Tub=new Vub('WEST',3);Rub.a=false;Qub.a=true;Sub.a=false;Tub.a=true} -function jHc(){jHc=d3;iHc=new lHc('UNKNOWN',0);fHc=new lHc('ABOVE',1);gHc=new lHc('BELOW',2);hHc=new lHc('INLINE',3);new EWc('org.eclipse.elk.labelSide',iHc)} -function EGb(a,b,c){if(!!c&&(b<0||b>c.a.c.length)){throw x2(new O4('index must be >= 0 and <= layer node count'))}!!a.c&&Abb(a.c.a,a);a.c=c;!!c&&sbb(c.a,b,a)} -function l0b(a){switch(a.g){case 0:return e0b;case 1:return f0b;case 2:return g0b;case 3:return h0b;case 4:return i0b;case 5:return j0b;default:return null;}} -function _nc(){_nc=d3;Xnc=new boc('P1_TREEIFICATION',0);Ync=new boc('P2_NODE_ORDERING',1);Znc=new boc('P3_NODE_PLACEMENT',2);$nc=new boc('P4_EDGE_ROUTING',3)} -function KRc(a,b,c){var d,e;d=(e=new Okd,l9c(e,b),wRc(e,c),fXc((!a.c&&(a.c=new zkd(vY,a,12,10)),a.c),e),e);n9c(d,0);q9c(d,1);p9c(d,true);o9c(d,true);return d} -function G9c(a,b){var c,d;if(a.Db>>16==17){return a.Cb.Cg(a,21,iY,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?a.Rg():c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function _w(a,b){var c,d,e;d=new Px;e=new Qx(d.q.getFullYear()-NKd,d.q.getMonth(),d.q.getDate());c=$w(a,b,e);if(c==0||c>16==6){return a.Cb.Cg(a,6,JV,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?(uMc(),mMc):c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function ISc(a,b){var c,d;if(a.Db>>16==7){return a.Cb.Cg(a,1,KV,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?(uMc(),oMc):c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function lTc(a,b){var c,d;if(a.Db>>16==9){return a.Cb.Cg(a,9,MV,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?(uMc(),qMc):c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function WPc(a,b){var c,d;if(a.Db>>16==3){return a.Cb.Cg(a,12,MV,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?(uMc(),lMc):c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function B8c(a,b){var c,d;if(a.Db>>16==3){return a.Cb.Cg(a,0,qY,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?(j7c(),Q6c):c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function YRc(a,b){var c,d;if(a.Db>>16==7){return a.Cb.Cg(a,6,uY,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?(j7c(),c7c):c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function Sgd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.Cg(a,9,nY,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?(j7c(),W6c):c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function eyd(a,b){var c,d;if(b){if(b==a){return true}c=0;for(d=kA(b,42).yg();!!d&&d!=b;d=d.yg()){if(++c>wLd){return eyd(a,d)}if(d==a){return true}}}return false} -function Xwb(a){var b,c;b=kA(nub(a,(qyb(),jyb)),21);if(b){c=b.a;c==0?qub(a,(Byb(),Ayb),new akb):qub(a,(Byb(),Ayb),new bkb(c))}else{qub(a,(Byb(),Ayb),new bkb(1))}} -function IFb(a,b){var c;c=a.g;switch(b.g){case 1:return -(a.k.b+a.n.b);case 2:return a.k.a-c.n.a;case 3:return a.k.b-c.n.b;case 4:return -(a.k.a+a.n.a);}return 0} -function W8b(a,b,c,d){var e,f,g;if(a.a[b.o]!=-1){return}a.a[b.o]=c;a.b[b.o]=d;for(f=kl(zGb(b));So(f);){e=kA(To(f),14);if(JEb(e)){continue}g=e.d.g;W8b(a,g,c+1,d)}} -function gLc(a){bLc();switch(a.q.g){case 5:dLc(a,(FDc(),lDc));dLc(a,CDc);break;case 4:eLc(a,(FDc(),lDc));eLc(a,CDc);break;default:fLc(a,(FDc(),lDc));fLc(a,CDc);}} -function kLc(a){bLc();switch(a.q.g){case 5:hLc(a,(FDc(),kDc));hLc(a,EDc);break;case 4:iLc(a,(FDc(),kDc));iLc(a,EDc);break;default:jLc(a,(FDc(),kDc));jLc(a,EDc);}} -function j9c(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.Eg()){b=kA(a.r,42);a.r=kA(XMc(a,b),133);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,9,8,b,a.r))}return a.r} -function dUb(a,b,c){var d,e;d=b*c;if(sA(a.g,153)){e=vVb(a);if(e.f.d){e.f.a||(a.d.a+=d+gNd)}else{a.d.d-=d+gNd;a.d.a+=d+gNd}}else if(sA(a.g,8)){a.d.d-=d;a.d.a+=2*d}} -function $mc(){Nmc();this.c=new Gbb;this.i=new Gbb;this.e=new iib;this.f=new iib;this.g=new iib;this.j=new Gbb;this.a=new Gbb;this.b=(Es(),new Bgb);this.k=new Bgb} -function drc(a,b){var c,d,e,f;xEc(b,'Dull edge routing',1);for(f=sib(a.b,0);f.b!=f.d.c;){e=kA(Gib(f),76);for(d=sib(e.d,0);d.b!=d.d.c;){c=kA(Gib(d),170);xib(c.a)}}} -function aIc(a,b,c){var d;d=xz(pz(DA,1),vLd,22,15,[dIc(a,(KHc(),HHc),b,c),dIc(a,IHc,b,c),dIc(a,JHc,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} -function vRc(){$Qc();var b,c;try{c=kA(Jkd((A6c(),z6c),lTd),1698);if(c){return c}}catch(a){a=w2(a);if(sA(a,104)){b=a;XYc((isd(),b))}else throw x2(a)}return new rRc} -function rpd(){$Qc();var b,c;try{c=kA(Jkd((A6c(),z6c),HVd),1635);if(c){return c}}catch(a){a=w2(a);if(sA(a,104)){b=a;XYc((isd(),b))}else throw x2(a)}return new npd} -function uBd(){YAd();var b,c;try{c=kA(Jkd((A6c(),z6c),kWd),1710);if(c){return c}}catch(a){a=w2(a);if(sA(a,104)){b=a;XYc((isd(),b))}else throw x2(a)}return new qBd} -function XSc(a,b){var c,d;if(a.Db>>16==11){return a.Cb.Cg(a,10,MV,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?(uMc(),pMc):c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function mjd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.Cg(a,11,iY,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?(j7c(),b7c):c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function Nkd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.Cg(a,12,tY,b)}return d=Wkd(kA(Gbd((c=kA(VNc(a,16),24),!c?(j7c(),d7c):c),a.Db>>16),17)),a.Cb.Cg(a,d.n,d.f,b)} -function uUc(a,b){var c,d,e,f,g;if(b){e=b.a.length;c=new uId(e);for(g=(c.b-c.a)*c.c<0?(tId(),sId):new QId(c);g.hc();){f=kA(g.ic(),21);d=XTc(b,f.a);!!d&&YUc(a,d)}}} -function Epd(){upd();var a,b;ypd((P6c(),O6c));xpd(O6c);ZRc(O6c);ihd=(j7c(),Z6c);for(b=new ccb(spd);b.a>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 rrb(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=C4(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function rBb(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=C4(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} -function Wtb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Dyc(a,$wnd.Math.min(h,i));return a} -function khd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new Mid(a,1,4,e,b);!c?(c=d):c.Sh(d)}e!=b&&(b?(c=thd(a,phd(a,b),c)):(c=thd(a,a.a,c)));return c} -function Yx(){Px.call(this);this.e=-1;this.a=false;this.p=oKd;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=oKd} -function rbc(a,b){var c,d;for(d=new ccb(b);d.a=0){c=C2(a,hLd);d=I2(a,hLd)}else{b=Q2(a,1);c=C2(b,500000000);d=I2(b,500000000);d=y2(O2(d,1),z2(a,1))}return N2(O2(d,32),z2(c,yLd))} -function esb(){esb=d3;dsb=(qsb(),nsb);csb=new FWc(qMd,dsb);bsb=(Trb(),Srb);asb=new FWc(rMd,bsb);_rb=(Lrb(),Krb);$rb=new FWc(sMd,_rb);Zrb=new FWc(tMd,(B3(),B3(),true))} -function GEb(a,b){if(b==a.c.g){return a.d.g}else if(b==a.d.g){return a.c.g}else{throw x2(new O4("'node' must either be the source node or target node of the edge."))}} -function ofc(a,b,c){var d,e;xEc(c,'Interactive node placement',1);a.a=kA(nub(b,(E2b(),v2b)),266);for(e=new ccb(b.b);e.a0){g=(f&jJd)%a.d.length;e=O1c(a,g,f,b);if(e){h=e.mc(c);return h}}d=a.Ii(f,b,c);a.c.nc(d);return null} -function utd(a,b){var c,d,e,f;switch(ptd(a,b).lk()){case 3:case 2:{c=xbd(b);for(e=0,f=c.i;e=0;d--){if(Z5(a[d].d,b)||Z5(a[d].d,c)){a.length>=d+1&&(a.splice(0,d+1),undefined);break}}return a} -function BJb(a,b,c){this.b=new Vj;this.i=new Gbb;this.d=new DJb(this);this.g=a;this.a=b.c.length;this.c=b;this.e=kA(xbb(this.c,this.c.c.length-1),8);this.f=c;zJb(this)} -function cVc(){this.a=new _Tc;this.g=new Gm;this.j=new Gm;this.b=(Es(),new Bgb);this.d=new Gm;this.i=new Gm;this.k=new Bgb;this.c=new Bgb;this.e=new Bgb;this.f=new Bgb} -function LVb(a){var b,c,d,e,f;for(d=new e9((new X8(a.b)).a);d.b;){c=c9(d);b=kA(c.kc(),8);f=kA(kA(c.lc(),48).a,8);e=kA(kA(c.lc(),48).b,9);vyc(Cyc(b.k),vyc(xyc(f.k),e))}} -function T$b(){T$b=d3;Q$b=new U$b('MEDIAN_LAYER',0);S$b=new U$b('WIDEST_LAYER',1);O$b=new U$b('CENTER_LAYER',2);R$b=new U$b('TAIL_LAYER',3);P$b=new U$b('HEAD_LAYER',4)} -function Gac(a){var b,c,d;for(c=new ccb(a.p);c.ac);return e} -function $Oc(a,b,c){switch(b){case 1:!a.n&&(a.n=new zkd(LV,a,1,7));r_c(a.n);!a.n&&(a.n=new zkd(LV,a,1,7));gXc(a.n,kA(c,13));return;case 2:aPc(a,pA(c));return;}yOc(a,b,c)} -function mPc(a,b,c){switch(b){case 3:oPc(a,Vpb(nA(c)));return;case 4:qPc(a,Vpb(nA(c)));return;case 5:rPc(a,Vpb(nA(c)));return;case 6:sPc(a,Vpb(nA(c)));return;}$Oc(a,b,c)} -function LRc(a,b,c){var d,e,f;f=(d=new Okd,d);e=k9c(f,b,null);!!e&&e.Th();wRc(f,c);fXc((!a.c&&(a.c=new zkd(vY,a,12,10)),a.c),f);n9c(f,0);q9c(f,1);p9c(f,true);o9c(f,true)} -function Rbd(a){var b;if((a.Db&64)!=0)return Yad(a);b=new B6(Yad(a));b.a+=' (abstract: ';x6(b,(a.Bb&256)!=0);b.a+=', interface: ';x6(b,(a.Bb&512)!=0);b.a+=')';return b.a} -function Jkd(a,b){var c,d,e;c=mhb(a.e,b);if(sA(c,207)){e=kA(c,207);e.gh()==null&&undefined;return e.dh()}else if(sA(c,456)){d=kA(c,1631);e=d.b;return e}else{return null}} -function nr(a,b){var c;this.f=a;this.b=this.f.c;c=a.d;Rb(b,c);if(b>=(c/2|0)){this.e=a.e;this.d=c;while(b++0){kr(this)}}this.a=null} -function sz(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=uz(h,k);d!=10&&xz(pz(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i0&&X5(b,b.length-1)==33){try{c=R5c(j6(b,0,b.length-1));return c.e==null}catch(a){a=w2(a);if(!sA(a,30))throw x2(a)}}return false} -function Jod(a,b,c){var d,e,f,g;c=MMc(b,a.e,-1-a.c,c);g=Cod(a.a);for(f=(d=new e9((new X8(g.a)).a),new $od(d));f.a.b;){e=kA(c9(f.a).kc(),84);c=thd(e,phd(e,a.a),c)}return c} -function Kod(a,b,c){var d,e,f,g;c=NMc(b,a.e,-1-a.c,c);g=Cod(a.a);for(f=(d=new e9((new X8(g.a)).a),new $od(d));f.a.b;){e=kA(c9(f.a).kc(),84);c=thd(e,phd(e,a.a),c)}return c} -function aBd(a){var b,c,d;if(a==null)return null;c=kA(a,15);if(c.Wb())return '';d=new z6;for(b=c.tc();b.hc();){w6(d,(qAd(),pA(b.ic())));d.a+=' '}return l3(d,d.a.length-1)} -function eBd(a){var b,c,d;if(a==null)return null;c=kA(a,15);if(c.Wb())return '';d=new z6;for(b=c.tc();b.hc();){w6(d,(qAd(),pA(b.ic())));d.a+=' '}return l3(d,d.a.length-1)} -function A8(a,b){u8();var c,d;d=(y7(),t7);c=a;for(;b>1;b>>=1){(b&1)!=0&&(d=F7(d,c));c.d==1?(c=F7(c,c)):(c=new O7(C8(c.a,c.d,tz(FA,OKd,22,c.d<<1,15,1))))}d=F7(d,c);return d} -function rDb(a,b){a.b.a=$wnd.Math.min(a.b.a,b.c);a.b.b=$wnd.Math.min(a.b.b,b.d);a.a.a=$wnd.Math.max(a.a.a,b.c);a.a.b=$wnd.Math.max(a.a.b,b.d);return a.c[a.c.length]=b,true} -function kEb(a){var b,c,d,e;e=-1;d=0;for(c=new ccb(a);c.a=0&&Z5(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return cx(a,c,d)}if(b>=0&&Z5(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return cx(a,c,d)}return cx(a,c,d)} -function Vjb(){Vjb=d3;var a,b,c,d;Sjb=tz(DA,vLd,22,25,15,1);Tjb=tz(DA,vLd,22,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){Tjb[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){Sjb[a]=c;c*=0.5}} -function owb(a,b,c){var d,e;d=(Lpb(b.b!=0),kA(wib(b,b.a.a),9));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=sib(b,0);Eib(e,d);return b} -function W6b(){W6b=d3;U6b=new Y6b(KQd,0);S6b=new Y6b('LONGEST_PATH',1);Q6b=new Y6b('COFFMAN_GRAHAM',2);R6b=new Y6b(vOd,3);V6b=new Y6b('STRETCH_WIDTH',4);T6b=new Y6b('MIN_WIDTH',5)} -function Vkc(a,b){var c,d,e,f;c=0;d=0;for(f=new ccb(b.b);f.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 Qdc(a,b,c){var d,e,f;f=0;d=c[b];if(b>4&15;f=a[d]&15;g[e++]=YQc[c];g[e++]=YQc[f]}return r6(g,0,g.length)}} -function OXc(a,b,c){var d,e,f,g,h;d=c._b();XXc(a,a.i+d);h=a.i-b;h>0&&T6(a.g,b,a.g,b+d,h);g=c.tc();a.i+=d;for(e=0;e=sLd){b=tLd+(a-sLd>>10&1023)&AKd;c=56320+(a-sLd&1023)&AKd;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&AKd)}} -function ixb(a){var b,c,d;d=a.e.c.length;a.a=rz(FA,[cKd,OKd],[37,22],15,[d,d],2);for(c=new ccb(a.c);c.a0&&pXb(this,this.c-1,(FDc(),kDc));this.c1&&(b.c[b.c.length]=f,true)}} -function zrc(a){var b,c,d;for(c=new a0c((!a.a&&(a.a=new zkd(MV,a,10,11)),a.a));c.e!=c.i._b();){b=kA($_c(c),35);d=SWc(b);if(!So((Zn(),new Zo(Rn(Dn(d.a,new Hn)))))){return b}}return null} -function MFc(a,b,c){var d,e;for(e=new a0c((!a.a&&(a.a=new zkd(MV,a,10,11)),a.a));e.e!=e.i._b();){d=kA($_c(e),35);pPc(d,d.i+b,d.j+c)}i5((!a.b&&(a.b=new zkd(JV,a,12,3)),a.b),new NFc(b,c))} -function dsc(a,b,c,d,e){var f,g,h;f=esc(a,b,c,d,e);h=false;while(!f){Xrc(a,e,true);h=true;f=esc(a,b,c,d,e)}h&&Xrc(a,e,false);g=Brc(e);if(g.c.length!=0){!!a.d&&a.d.If(g);dsc(a,e,c,d,g)}} -function lSc(a,b){var c;c=G8((A6c(),z6c),a);sA(c,456)?J8(z6c,a,new ykd(this,b)):J8(z6c,a,this);hSc(this,b);if(b==(N6c(),M6c)){this.wb=kA(this,1633);kA(b,1635)}else{this.wb=(P6c(),O6c)}} -function mpd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d0){c=d;d=(d-1)/2|0;if(a.a.Ld(xbb(a.b,d),b)<=0){Cbb(a.b,c,b);return true}Cbb(a.b,c,xbb(a.b,d))}Cbb(a.b,d,b);return true} -function G$b(a){var b,c,d,e;while(a.o.a.c.length!=0){c=kA(olb(a.o),48);d=kA(c.a,113);b=kA(c.b,189);e=AZb(b,d);if(b.e==d){QZb(e.g,b);d.e=e.e+b.a}else{QZb(e.b,b);d.e=e.e-b.a}tbb(a.e.a,d)}} -function dIc(a,b,c,d){var e,f;e=0;if(!c){for(f=0;fwLd){return byd(c)}d=c;if(c==a){throw x2(new Q4('There is a cycle in the containment hierarchy of '+a))}}}return d} -function tfb(){tfb=d3;rfb=xz(pz(UE,1),cKd,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat']);sfb=xz(pz(UE,1),cKd,2,6,['Jan','Feb','Mar','Apr',FKd,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])} -function Hlb(a,b,c,d){var e,f;f=b;e=f.d==null||a.a.Ld(c.d,f.d)>0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.Ld(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 Wzb(){Wzb=d3;Rzb=new Xzb('P1_CYCLE_BREAKING',0);Szb=new Xzb('P2_LAYERING',1);Tzb=new Xzb('P3_NODE_ORDERING',2);Uzb=new Xzb('P4_NODE_PLACEMENT',3);Vzb=new Xzb('P5_EDGE_ROUTING',4)} -function jYb(a){var b,c;c=$wnd.Math.sqrt(a.f*(a.i==null&&(a.i=aZb(a,new gZb)),Vpb(a.i))/(a.b*(a.g==null&&(a.g=ZYb(a,new iZb)),Vpb(a.g))));b=U2(E2($wnd.Math.round(c)));b=x5(b,a.f);return b} -function Dmc(a){var b,c;ymc(this);c=a.k;b=vyc(new Jyc(c.a,c.b),a.n);this.d=$wnd.Math.min(c.b,b.b);this.a=$wnd.Math.max(c.b,b.b);this.b=$wnd.Math.min(c.a,b.a);this.c=$wnd.Math.max(c.a,b.a)} -function lm(a){var b,c;if(a.a>=a.c.c.length){return av(),_u}c=acb(a);if(a.a>=a.c.c.length){return new ov(c)}b=new iib;Ggb(b,Pb(c));do{Ggb(b,Pb(acb(a)))}while(a.a0&&bNb((Mpb(0,c.c.length),kA(c.c[0],26)),a);c.c.length>1&&bNb(kA(xbb(c,c.c.length-1),26),a);zEc(b)} -function jcc(a,b,c,d){var e,f,g,h,i;g=eec(a.a,b,c);h=kA(g.a,21).a;f=kA(g.b,21).a;if(d){i=kA(nub(b,(E2b(),p2b)),8);e=kA(nub(c,p2b),8);if(!!i&&!!e){kXb(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} -function msc(a,b){var c,d,e;if(Zrc(a,b)){return true}for(d=new ccb(b);d.af&&g6(j,l6(c[h],Wib))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} -function ax(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=a.charCodeAt(d);while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=a.charCodeAt(d)}d>b[0]?(b[0]=d):(e=-1);return e} -function zwb(a,b){var c,d,e;d=(Uub(),Rub);e=$wnd.Math.abs(a.b);c=$wnd.Math.abs(b.f-a.b);if(cuXb(a.d).c){a.i+=a.g.c;wXb(a.d)}else if(uXb(a.d).c>uXb(a.g).c){a.e+=a.d.c;wXb(a.g)}else{a.i+=tXb(a.g);a.e+=tXb(a.d);wXb(a.g);wXb(a.d)}}} -function J0b(){J0b=d3;H0b=new K0b(wOd,0);E0b=new K0b(xOd,1);I0b=new K0b(yOd,2);G0b=new K0b('LEFT_RIGHT_CONSTRAINT_LOCKING',3);F0b=new K0b('LEFT_RIGHT_CONNECTION_LOCKING',4);D0b=new K0b(zOd,5)} -function kmc(a){var b,c,d,e,f,g;d=hmc(gmc(a));b=oLd;f=0;e=0;while(b>0.5&&f<50){e=omc(d);c=$lc(d,e,true);b=$wnd.Math.abs(c.b);++f}g=nA(Fq(Vr(a.g),Vr(a.g).b-1));return $lc(a,(Npb(g),g)-e,false)} -function lmc(a){var b,c,d,e,f,g;d=hmc(gmc(a));b=oLd;f=0;e=0;while(b>0.5&&f<50){e=nmc(d);c=$lc(d,e,true);b=$wnd.Math.abs(c.a);++f}g=nA(Fq(Vr(a.g),Vr(a.g).b-1));return $lc(a,(Npb(g),g)-e,false)} -function vnc(a,b,c,d){a.a.d=$wnd.Math.min(b,c);a.a.a=$wnd.Math.max(b,d)-a.a.d;if(bh&&(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 fyc(a,b){ayc();var c,d,e,f;if(b.b<2){return false}f=sib(b,0);c=kA(Gib(f),9);d=c;while(f.b!=f.d.c){e=kA(Gib(f),9);if(eyc(a,d,e)){return true}d=e}if(eyc(a,d,c)){return true}return false} -function wOc(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new T8c((uMc(),rMc),$V,a,0)),R8c(a.o,b,d)}return f=kA(Gbd((e=kA(VNc(a,16),24),!e?a.Rg():e),c),61),f.aj().ej(a,TNc(a),c-Lbd(a.Rg()),b,d)} -function eRc(a,b){var c;if(b!=a.a){c=null;!!a.a&&(c=kA(a.a,42).Cg(a,4,uY,null));!!b&&(c=kA(b,42).Ag(a,4,uY,c));c=_Qc(a,b,c);!!c&&c.Th()}else (a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,1,b,b))} -function MSc(a){var b;if((a.Db&64)!=0)return tPc(a);b=new O6(USd);!a.a||I6(I6((b.a+=' "',b),a.a),'"');I6(D6(I6(D6(I6(D6(I6(D6((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function $Vc(a){var b,c,d,e,f,g,h,i,j;j=_Vc(a);c=a.e;f=c!=null;f&&STc(j,QTd,a.e);h=a.k;g=!!h;g&&STc(j,'type',Ss(a.k));d=bJd(a.j);e=!d;if(e){i=new fy;Ny(j,yTd,i);b=new kWc(i);i5(a.j,b)}return j} -function Fld(a,b){var c;if(b!=null&&!a.c.jj().Li(b)){c=sA(b,51)?kA(b,51).mg().zb:f4(mb(b));throw x2(new A4(ZSd+a.c.be()+"'s type '"+a.c.jj().be()+"' does not permit a value of type '"+c+"'"))}} -function Lg(a,b){var c,d,e,f;Npb(b);f=a.a._b();if(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<>>e|c[g+d+1]<>>e;++g}return f} -function Ozb(a){Kzb();var b,c,d,e;d=kA(nub(a,(J6b(),Q4b)),318);e=Vpb(mA(nub(a,S4b)))||yA(nub(a,T4b))===yA((t_b(),r_b));b=kA(nub(a,P4b),21).a;c=a.a.c.length;return !e&&d!=(g1b(),d1b)&&(b==0||b>c)} -function aEb(a,b,c){var d,e;e=new s9(a.b,0);while(e.b=g){return ec.a._b()?kA(xbb(d,e-c.a._b()-1),8):null}}return null} -function hSc(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=kA(a.sb,42).Cg(a,1,oY,null));!!b&&(c=kA(b,42).Ag(a,1,oY,c));c=PRc(a,b,c);!!c&&c.Th()}else (a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,4,b,b))} -function kUc(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new uId(e);for(h=(d.b-d.a)*d.c<0?(tId(),sId):new QId(d);h.hc();){g=kA(h.ic(),21);f=XTc(c,g.a);xTd in f.a||yTd in f.a?WUc(a,f,b):_Uc(a,f,b)}}} -function u_b(a){switch(a.g){case 0:return new Ycc((cdc(),_cc));case 1:return new xcc;default:throw x2(new O4('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} -function HEd(a){FEd();var b,c,d,e,f;if(a==null)return null;d=a.length;e=d*2;b=tz(CA,yKd,22,e,15,1);for(c=0;c>4];b[c*2+1]=EEd[f&15]}return r6(b,0,b.length)} -function lHb(){fHb();XFb.call(this);this.i=(FDc(),DDc);this.a=new Hyc;new qGb;this.e=(Wj(2,hKd),new Hbb(2));this.d=(Wj(4,hKd),new Hbb(4));this.f=(Wj(4,hKd),new Hbb(4));this.c=new bIb(this.d,this.f)} -function AKb(a,b){var c,d;if(Vpb(mA(nub(b,(E2b(),u2b))))){return false}if(a==(K2b(),F2b)){d=b.c.g;if(d.j==(RGb(),NGb)){return false}c=kA(nub(d,(J6b(),r5b)),178);if(c==G2b){return false}}return true} -function BKb(a,b){var c,d;if(Vpb(mA(nub(b,(E2b(),u2b))))){return false}if(a==(K2b(),H2b)){d=b.d.g;if(d.j==(RGb(),NGb)){return false}c=kA(nub(d,(J6b(),r5b)),178);if(c==I2b){return false}}return true} -function rXb(a,b){var c,d,e;c=sXb(b,a.e);d=kA(F8(a.g.f,c),21).a;e=a.a.c.length-1;if(a.a.c.length!=0&&kA(xbb(a.a,e),269).c==d){++kA(xbb(a.a,e),269).a;++kA(xbb(a.a,e),269).b}else{tbb(a.a,new BXb(d))}} -function wyc(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a} -function dWc(a){if(sA(a,180)){return YVc(kA(a,180))}else if(sA(a,199)){return ZVc(kA(a,199))}else if(sA(a,27)){return $Vc(kA(a,27))}else{throw x2(new O4(JTd+vg(new Rcb(xz(pz(NE,1),oJd,1,5,[a])))))}} -function DGb(a,b){switch(b.g){case 1:return yn(a.i,(fHb(),bHb));case 2:return yn(a.i,(fHb(),_Gb));case 3:return yn(a.i,(fHb(),dHb));case 4:return yn(a.i,(fHb(),eHb));default:return bdb(),bdb(),$cb;}} -function r8b(a){var b;this.a=a;b=(RGb(),xz(pz(QK,1),jKd,232,0,[PGb,OGb,MGb,QGb,NGb,KGb,LGb])).length;this.b=rz(XW,[cKd,MQd],[616,166],0,[b,b],2);this.c=rz(XW,[cKd,MQd],[616,166],0,[b,b],2);q8b(this)} -function Hkc(a){var b,c;c=kA(nub(a,(E2b(),X1b)),19);b=new yvc;if(c.pc((Z0b(),V0b))||Vpb(mA(nub(a,(J6b(),g5b))))){svc(b,Bkc);c.pc(W0b)&&svc(b,Ckc)}c.pc(P0b)&&svc(b,zkc);c.pc(R0b)&&svc(b,Akc);return b} -function npc(a,b,c){var d,e,f,g;if(b.b!=0){d=new yib;for(g=sib(b,0);g.b!=g.d.c;){f=kA(Gib(g),76);pg(d,voc(f));e=f.e;e.a=kA(nub(f,(Ppc(),Npc)),21).a;e.b=kA(nub(f,Opc),21).a}npc(a,d,BEc(c,d.b/a.a|0))}} -function DFc(a){var b,c,d;d=new Vyc;mib(d,new Jyc(a.j,a.k));for(c=new a0c((!a.a&&(a.a=new fdd(GV,a,5)),a.a));c.e!=c.i._b();){b=kA($_c(c),531);mib(d,new Jyc(b.a,b.b))}mib(d,new Jyc(a.b,a.c));return d} -function MUc(a,b,c,d,e){var f,g,h,i,j,k;if(e){i=e.a.length;f=new uId(i);for(k=(f.b-f.a)*f.c<0?(tId(),sId):new QId(f);k.hc();){j=kA(k.ic(),21);h=XTc(e,j.a);g=new BVc(a,b,c,d);yUc(g.a,g.b,g.c,g.d,h)}}} -function mm(a){nl();var b,c,d;d=new iib;cdb(d,a);for(c=d.a.Xb().tc();c.hc();){b=c.ic();Pb(b)}switch(d.a._b()){case 0:return av(),_u;case 1:return new ov(d.a.Xb().tc().ic());default:return new bv(d);}} -function F$b(a,b){var c,d,e;e=jJd;for(d=new ccb(OZb(b));d.a1&&(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 bsd(a,b,c){var d,e,f,g;f=kA(VNc(a.a,8),1629);if(f!=null){for(d=0,e=f.length;d1){throw x2(new O4('In straight spline segments there may be only one edge.'))}d=a.a.c;c=a.a.c+a.a.b;mib(kA(b.a.Xb().tc().ic(),14).a,new Jyc(d+(c-d)/2,a.b))} -function GXb(a,b,c,d){var e;this.b=d;this.e=a==(cdc(),adc);e=b[c];this.d=rz(u2,[cKd,$Md],[221,22],16,[e.length,e.length],2);this.a=rz(FA,[cKd,OKd],[37,22],15,[e.length,e.length],2);this.c=new qXb(b,c)} -function bZb(a){var b,c,d;if(a.a!=null){return}a.a=tz(u2,$Md,22,a.c.b.c.length,16,1);a.a[0]=false;d=new ccb(a.c.b);d.a>>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 Cz(d&cLd,e&cLd,f&dLd)} -function Vud(a,b,c){var d,e,f,g,h;h=yyd(a.e.mg(),b);e=kA(a.g,124);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return Vb('end index (%s) must not be less than start index (%s)',xz(pz(NE,1),oJd,1,5,[d5(b),d5(a)]))} -function Cf(a,b){var c,d,e;if(b===a){return true}if(!sA(b,109)){return false}e=kA(b,109);if(a._b()!=e._b()){return false}for(d=e.Tb().tc();d.hc();){c=kA(d.ic(),38);if(!a.Wc(c)){return false}}return true} -function zw(b,c){var d,e,f,g;for(e=0,f=b.length;e0?h[g-1]:tz(RK,VNd,8,0,0,1);e=h[g];j=g0&&i9b(a,f,c))}}b.o=0} -function Ykc(a,b){var c,d,e;for(e=new ccb(b.f);e.ab){throw x2(new O4('Top must be smaller or equal to bottom.'))}else if(0>a){throw x2(new O4('Left must be smaller or equal to right.'))}this.d=0;this.c=a;this.a=b;this.b=0} -function lsc(a,b){var c,d,e;if(b.c.length!=0){c=msc(a,b);e=false;while(!c){Xrc(a,b,true);e=true;c=msc(a,b)}e&&Xrc(a,b,false);d=Brc(b);!!a.b&&a.b.If(d);a.a=ksc(a,(Mpb(0,b.c.length),kA(b.c[0],35)));lsc(a,d)}} -function ixc(a){var b;this.c=new yib;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=kA(e4(UT),10),new ngb(b,kA(ypb(b,b.length),10),0))):(this.j=a.i);this.g=a.f} -function Uxc(){Uxc=d3;Txc=new Vxc(LQd,0);Mxc=new Vxc('BOOLEAN',1);Qxc=new Vxc('INT',2);Sxc=new Vxc('STRING',3);Nxc=new Vxc('DOUBLE',4);Oxc=new Vxc('ENUM',5);Pxc=new Vxc('ENUMSET',6);Rxc=new Vxc('OBJECT',7)} -function uyd(){uyd=d3;ryd=xz(pz(UE,1),cKd,2,6,[$Vd,_Vd,aWd,bWd,cWd,dWd,QTd]);qyd=xz(pz(UE,1),cKd,2,6,[$Vd,'empty',_Vd,wVd,'elementOnly']);tyd=xz(pz(UE,1),cKd,2,6,[$Vd,'preserve','replace',eWd]);syd=new ztd} -function Ke(a,b){var c;c=kA(a.c.Vb(b),13);!c&&(c=a.Pc(b));return sA(c,196)?new Li(a,b,kA(c,196)):sA(c,60)?new Ji(a,b,kA(c,60)):sA(c,19)?new Mi(a,b,kA(c,19)):sA(c,15)?Qe(a,b,kA(c,15),null):new Uh(a,b,c,null)} -function nub(a,b){var c,d;d=(!a.p&&(a.p=(Es(),new Bgb)),F8(a.p,b));if(d!=null){return d}c=b.Of();sA(c,4)&&(c==null?(!a.p&&(a.p=(Es(),new Bgb)),K8(a.p,b)):(!a.p&&(a.p=(Es(),new Bgb)),I8(a.p,b,c)),a);return c} -function yPb(a,b){var c,d,e,f;if(a.e.c.length==0){return null}else{f=new oyc;for(d=new ccb(a.e);d.a=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){yr(this)}}this.b=b;this.a=null} -function ntb(a){var b,c,d,e,f;e=kA(a.a,21).a;f=kA(a.b,21).a;b=(e<0?-e:e)>(f<0?-f:f)?e<0?-e:e:f<0?-f: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 fGc(d5(c),d5(d))} -function Dgc(a,b){var c;if(a.c.length==0){return false}c=k7b((Mpb(0,a.c.length),kA(a.c[0],14)).c.g);Rfc();if(c==(h7b(),e7b)||c==d7b){return true}return Mob(Tob(new Zob(null,new ekb(a,16)),new Lgc),new Ngc(b))} -function Fnc(a,b,c){var d,e,f;if(!a.b[b.g]){a.b[b.g]=true;d=c;!c&&(d=new toc);mib(d.b,b);for(f=a.a[b.g].tc();f.hc();){e=kA(f.ic(),170);e.b!=b&&Fnc(a,e.b,d);e.c!=b&&Fnc(a,e.c,d);mib(d.a,e)}return d}return null} -function TJc(a){switch(a.g){case 0:case 1:case 2:return FDc(),lDc;case 3:case 4:case 5:return FDc(),CDc;case 6:case 7:case 8:return FDc(),EDc;case 9:case 10:case 11:return FDc(),kDc;default:return FDc(),DDc;}} -function gqb(a){var b,c,d,e;b=0;d=a.length;e=d-4;c=0;while(c0){try{f=H3(c,oKd,jJd)}catch(a){a=w2(a);if(sA(a,118)){e=a;throw x2(new t6c(e))}else throw x2(a)}}d=(!b.a&&(b.a=new Asd(b)),b.a);return f=0?kA(WXc(d,f),51):null} -function gx(a,b,c,d){var e;e=Zw(a,c,xz(pz(UE,1),cKd,2,6,[RKd,SKd,TKd,UKd,VKd,WKd,XKd]),b);e<0&&(e=Zw(a,c,xz(pz(UE,1),cKd,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat']),b));if(e<0){return false}d.d=e;return true} -function jx(a,b,c,d){var e;e=Zw(a,c,xz(pz(UE,1),cKd,2,6,[RKd,SKd,TKd,UKd,VKd,WKd,XKd]),b);e<0&&(e=Zw(a,c,xz(pz(UE,1),cKd,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat']),b));if(e<0){return false}d.d=e;return true} -function pBb(a){var b,c,d;mBb(a);d=new Gbb;for(c=new ccb(a.a.a.b);c.a>1);Bcb(b,a,i,j,-e,f);Bcb(b,a,j,h,-e,f);if(f.Ld(a[j-1],a[j])<=0){while(c=0){if(!b){b=new A6;d>0&&w6(b,a.substr(0,d))}b.a+='\\';s6(b,c&AKd)}else !!b&&s6(b,c&AKd)}return b?b.a:a} -function Kkc(a,b,c){var d,e,f,g;f=a.c;g=a.d;e=(Pyc(xz(pz(aU,1),cKd,9,0,[f.g.k,f.k,f.a])).b+Pyc(xz(pz(aU,1),cKd,9,0,[g.g.k,g.k,g.a])).b)/2;f.i==(FDc(),kDc)?(d=new Jyc(b+f.g.c.c.a+c,e)):(d=new Jyc(b-c,e));Dq(a.a,0,d)} -function vrc(a,b){var c,d;Wuc(a.a);Zuc(a.a,(lrc(),jrc),jrc);Zuc(a.a,krc,krc);d=new yvc;tvc(d,krc,(Qrc(),Prc));yA(AOc(b,(otc(),gtc)))!==yA((Msc(),Jsc))&&tvc(d,krc,Nrc);tvc(d,krc,Orc);Tuc(a.a,d);c=Uuc(a.a,b);return c} -function dz(a){if(!a){return xy(),wy}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=_y[typeof b];return c?c(b):gz(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new gy(a)}else{return new Qy(a)}} -function G7(a,b){var c;if(b<0){throw x2(new o3('Negative exponent'))}if(b==0){return t7}else if(b==1||B7(a,t7)||B7(a,x7)){return a}if(!J7(a,0)){c=1;while(!J7(a,c)){++c}return F7(U7(c*b),G7(I7(a,c),b))}return A8(a,b)} -function eUb(a,b){var c,d,e;if(sA(b.g,8)&&kA(b.g,8).j==(RGb(),MGb)){return oLd}e=vVb(b);if(e){return $wnd.Math.max(0,a.b/2-0.5)}c=uVb(b);if(c){d=Vpb(nA(s8b(c,(J6b(),t6b))));return $wnd.Math.max(0,d/2-0.5)}return oLd} -function gUb(a,b){var c,d,e;if(sA(b.g,8)&&kA(b.g,8).j==(RGb(),MGb)){return oLd}e=vVb(b);if(e){return $wnd.Math.max(0,a.b/2-0.5)}c=uVb(b);if(c){d=Vpb(nA(s8b(c,(J6b(),t6b))));return $wnd.Math.max(0,d/2-0.5)}return oLd} -function KVb(a,b){var c,d,e,f,g;if(b.Wb()){return}e=kA(b.cd(0),125);if(b._b()==1){JVb(a,e,e,1,0,b);return}c=1;while(cf.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;}LIc(d);MIc(d)} -function uKc(a,b,c){var d,e,f;f=a.o;d=kA(Cfb(a.p,c),219);e=d.i;e.b=KIc(d);e.a=JIc(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;}LIc(d);MIc(d)} -function Edd(a,b){Add(a,b);(a.b&1)!=0&&(a.a.a=null);(a.b&2)!=0&&(a.a.f=null);if((a.b&4)!=0){a.a.g=null;a.a.i=null}if((a.b&16)!=0){a.a.d=null;a.a.e=null}(a.b&8)!=0&&(a.a.b=null);if((a.b&32)!=0){a.a.j=null;a.a.c=null}} -function fyd(b){var c,d,e,f;d=kA(b,42).Kg();if(d){try{e=null;c=Kkd((A6c(),z6c),N5c(O5c(d)));if(c){f=c.Lg();!!f&&(e=f.gk(pA(Vpb(d.e))))}if(!!e&&e!=b){return fyd(e)}}catch(a){a=w2(a);if(!sA(a,54))throw x2(a)}}return b} -function Yp(a,b){var c;b.d?(b.d.b=b.b):(a.a=b.b);b.b?(b.b.d=b.d):(a.e=b.d);if(!b.e&&!b.c){c=kA(K8(a.b,b.a),264);c.a=0;++a.c}else{c=kA(F8(a.b,b.a),264);--c.a;!b.e?(c.b=b.c):(b.e.c=b.c);!b.c?(c.c=b.e):(b.c.e=b.e)}--a.d} -function l7(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=zA($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return m7(E2(a))} -function Cjb(a,b){var c,d,e,f,g,h;c=a.b.c.length;e=xbb(a.b,b);while(b*2+10){g=a.c.d;h=a.d.d;e=Dyc(Gyc(new Jyc(h.a,h.b),g),1/(d+1));f=new Jyc(g.a,g.b);for(c=new ccb(a.a);c.a0){g+=c;++b}}b>1&&(g+=a.c*(b-1))}else{g=qjb(gob(Uob(Pob(Gcb(a.a),new ZIc),new _Ic)))}return g>0?g+a.n.d+a.n.a:0} -function KIc(a){var b,c,d,e,f,g;g=0;if(a.b==0){g=qjb(gob(Uob(Pob(Gcb(a.a),new VIc),new XIc)))}else{f=OIc(a,true);b=0;for(d=0,e=f.length;d0){g+=c;++b}}b>1&&(g+=a.c*(b-1))}return g>0?g+a.n.b+a.n.c:0} -function xx(a){var b,c;c=-a.a;b=xz(pz(CA,1),yKd,22,15,[43,48,48,48,48]);if(c<0){b[0]=45;c=-c}b[1]=b[1]+((c/60|0)/10|0)&AKd;b[2]=b[2]+(c/60|0)%10&AKd;b[3]=b[3]+(c%60/10|0)&AKd;b[4]=b[4]+c%10&AKd;return r6(b,0,b.length)} -function vXb(a){var b,c,d,e,f,g;g=aec(a.d,a.e);for(f=g.tc();f.hc();){e=kA(f.ic(),11);d=a.e==(FDc(),EDc)?e.d:e.f;for(c=new ccb(d);c.a=0;f+=c?1:-1){g=g|b.c.qf(i,f,c,d);g=g|b.q.xf(i,f,c);g=g|Vcc(a,i[f],c,d)}Ggb(a.c,b);return g} -function FQb(a,b){var c,d,e,f,g,h;for(f=new ccb(a.b);f.a=0&&f0){b=kA(a.k.cd(a.n-1),75);c=b.nj();if(sA(c,62)&&(kA(kA(c,17),62).Bb&bTd)!=0&&(!a.e||c.Vi()!=FV||c.pi()!=0)&&b.lc()!=null){return true}else{--a.n}}return false}else{return a.n>0}} -function REd(a,b){var c,d,e,f;LEd(a);if(a.c!=0||a.a!=123)throw x2(new KEd(WYc((isd(),kUd))));f=b==112;d=a.d;c=a6(a.i,125,d);if(c<0)throw x2(new KEd(WYc((isd(),lUd))));e=j6(a.i,d,c);a.d=c+1;return hHd(e,f,(a.e&512)==512)} -function wx(a){var b,c;c=-a.a;b=xz(pz(CA,1),yKd,22,15,[43,48,48,58,48,48]);if(c<0){b[0]=45;c=-c}b[1]=b[1]+((c/60|0)/10|0)&AKd;b[2]=b[2]+(c/60|0)%10&AKd;b[4]=b[4]+(c%60/10|0)&AKd;b[5]=b[5]+c%10&AKd;return r6(b,0,b.length)} -function zx(a){var b;b=xz(pz(CA,1),yKd,22,15,[71,77,84,45,48,48,58,48,48]);if(a<=0){b[3]=43;a=-a}b[4]=b[4]+((a/60|0)/10|0)&AKd;b[5]=b[5]+(a/60|0)%10&AKd;b[7]=b[7]+(a%60/10|0)&AKd;b[8]=b[8]+a%10&AKd;return r6(b,0,b.length)} -function oMb(a,b){var c,d,e;d=new IGb(a);lub(d,b);qub(d,(E2b(),U1b),b);qub(d,(J6b(),Z5b),(VCc(),QCc));qub(d,I4b,(ezc(),azc));GGb(d,(RGb(),MGb));c=new lHb;jHb(c,d);kHb(c,(FDc(),EDc));e=new lHb;jHb(e,d);kHb(e,kDc);return d} -function rac(a,b){var c,d,e,f,g;a.c[b.o]=true;tbb(a.a,b);for(g=new ccb(b.i);g.a0&&(e=c);for(g=new ccb(a.f.e);g.a=f){g.Pb()}else{e=g.tc();for(d=0;d0?lj():g<0&&Tt(a,b,-g);return true}else{return false}} -function Ytb(a){var b,c,d,e,f,g,h,i,j,k;c=a.o;b=a.p;g=jJd;e=oKd;h=jJd;f=oKd;for(j=0;jj?e:j;h=hk?f:k}}}i=e-g+1;d=f-h+1;return new qGc(d5(g),d5(h),d5(i),d5(d))} -function Nwb(a,b){var c,d,e;c=kA(nub(b,(qyb(),iyb)),21).a-kA(nub(a,iyb),21).a;if(c==0){d=Gyc(xyc(kA(nub(a,(Byb(),xyb)),9)),kA(nub(a,yyb),9));e=Gyc(xyc(kA(nub(b,xyb),9)),kA(nub(b,yyb),9));return C4(d.a*d.b,e.a*e.b)}return c} -function Lnc(a,b){var c,d,e;c=kA(nub(b,(fqc(),aqc)),21).a-kA(nub(a,aqc),21).a;if(c==0){d=Gyc(xyc(kA(nub(a,(Ppc(),wpc)),9)),kA(nub(a,xpc),9));e=Gyc(xyc(kA(nub(b,wpc),9)),kA(nub(b,xpc),9));return C4(d.a*d.b,e.a*e.b)}return c} -function RKb(a,b,c){var d,e,f,g,h,i;if(!a||a.c.length==0){return null}f=new GIc(b,!c);for(e=new ccb(a);e.a0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} -function UMc(a,b){var c,d,e;e=ftd((uyd(),syd),a.mg(),b);if(e){wyd();kA(e,61).bj()||(e=aud(rtd(syd,e)));d=(c=a.rg(e),kA(c>=0?a.ug(c,true,true):TMc(a,e,true),184));return kA(d,237).wk(b)}else{throw x2(new O4(ZSd+b.be()+aTd))}} -function SUc(a,b,c){var d,e,f,g;f=hwc(kwc(),b);d=null;if(f){g=hxc(f,c);e=null;g!=null&&(e=(g==null?(!a.o&&(a.o=new T8c((uMc(),rMc),$V,a,0)),a2c(a.o,f)):(!a.o&&(a.o=new T8c((uMc(),rMc),$V,a,0)),Y1c(a.o,f,g)),a));d=e}return d} -function O1c(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;h1||c==-1){a.b=-1;return true}else{b=j9c(a);if(!!b&&(wyd(),b.Ri()==gVd)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} -function ltd(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new zkd(zY,b,21,17)),b.s);f=null;for(e=0,g=d.i;ee){return Lpb(f.a!=null),kA(f.a,8)}}return null} -function bWb(a,b){IVb();var c,d,e,f,g,h;c=null;for(g=b.tc();g.hc();){f=kA(g.ic(),125);if(f.k){continue}d=lyc(f.a);e=jyc(f.a);h=new fXb(d,e,null,kA(f.d.a.Xb().tc().ic(),14));tbb(h.c,f.a);a.c[a.c.length]=h;!!c&&tbb(c.d,h);c=h}} -function q9b(a,b,c){var d,e,f,g,h,i;d=kA(Ke(a.c,b),15);e=kA(Ke(a.c,c),15);f=d.fd(d._b());g=e.fd(e._b());while(f.Cc()&&g.Cc()){h=kA(f.Ec(),21);i=kA(g.Ec(),21);if(h!=i){return U4(h.a,i.a)}}return !f.hc()&&!g.hc()?0:f.hc()?1:-1} -function Zud(a,b,c,d,e){var f,g,h,i;i=Yud(a,kA(e,51));if(yA(i)!==yA(e)){h=kA(a.g[c],75);f=xyd(b,i);SXc(a,c,ovd(a,c,f));if(PMc(a.e)){g=Gud(a,9,f.nj(),e,i,d,false);n$c(g,new Oid(a.e,9,a.c,h,f,d,false));o$c(g)}return i}return e} -function qLc(a,b,c){var d,e,f,g;e=c;f=fob(Uob(kA(kA(Ke(a.r,b),19),60).xc(),new tLc));g=0;while(f.a||(f.a=Cob(f.c,f)),f.a){if(e){Kkb(f);e=false;continue}else{d=Kkb(f);f.a||(f.a=Cob(f.c,f));f.a&&(g=$wnd.Math.max(g,d))}}return g} -function Le(a,b,c){var d;d=kA(a.c.Vb(b),13);if(!d){d=a.Pc(b);if(d.nc(c)){++a.d;a.c.Zb(b,d);return true}else{throw x2(new y3('New Collection violated the Collection spec'))}}else if(d.nc(c)){++a.d;return true}else{return false}} -function Cac(a){var b,c,d,e,f,g;e=0;a.q=new Gbb;b=new Jgb;for(g=new ccb(a.p);g.a>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-qLd;b=d>>16&4;c+=b;a<<=b;d=a-RJd;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} -function Ztb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=0?a.ug(d,true,true):TMc(a,f,true),184));return kA(e,237).sk(b,c)}else{throw x2(new O4(ZSd+b.be()+aTd))}} -function lSb(a){var b,c;if(XCc(kA(nub(a,(J6b(),Z5b)),83))){for(c=new ccb(a.i);c.a>24}return g} -function L0c(a,b){var c,d,e,f,g;c=kA(VNc(a.a,4),116);g=c==null?0:c.length;if(b>=g)throw x2(new Z_c(b,g));e=c[b];if(g==1){d=null}else{d=tz(eX,PUd,380,g-1,0,1);T6(c,0,d,0,b);f=g-b-1;f>0&&T6(c,b+1,d,b,f)}csd(a,d);bsd(a,b,e);return e} -function mcb(a,b){var c,d,e;if(yA(a)===yA(b)){return true}if(a==null||b==null){return false}if(a.length!=b.length){return false}for(c=0;c=null.tl()){xYc(a);return vsd(a)}else{return b.hc()}} -function Cmc(a){var b,c;if(Bn(a)){throw x2(new O4(bRd))}for(c=sib(a,0);c.b!=c.d.c;){b=kA(Gib(c),9);this.d=$wnd.Math.min(this.d,b.b);this.c=$wnd.Math.max(this.c,b.a);this.a=$wnd.Math.max(this.a,b.b);this.b=$wnd.Math.min(this.b,b.a)}} -function Umc(a){var b,c;b=new yvc;svc(b,Hmc);c=kA(nub(a,(E2b(),X1b)),19);c.pc((Z0b(),Y0b))&&svc(b,Mmc);c.pc(P0b)&&svc(b,Imc);if(c.pc(V0b)||Vpb(mA(nub(a,(J6b(),g5b))))){svc(b,Kmc);c.pc(W0b)&&svc(b,Lmc)}c.pc(R0b)&&svc(b,Jmc);return b} -function Huc(a){var b,c;b=pA(AOc(a,($Ac(),Czc)));c=ewc(kwc(),b);if(!c){if(b==null||b.length==0){throw x2(new Nuc('No layout algorithm has been specified ('+a+').'))}else{throw x2(new Nuc('Layout algorithm not found: '+b))}}return c} -function Ozd(){Ozd=d3;Mzd=kA(WXc(Ibd((Tzd(),Szd).qb),6),29);Jzd=kA(WXc(Ibd(Szd.qb),3),29);Kzd=kA(WXc(Ibd(Szd.qb),4),29);Lzd=kA(WXc(Ibd(Szd.qb),5),17);J9c(Mzd);J9c(Jzd);J9c(Kzd);J9c(Lzd);Nzd=new Rcb(xz(pz(zY,1),sVd,158,0,[Mzd,Jzd]))} -function fw(b){var c=(!dw&&(dw=gw()),dw);var d=b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(a){return ew(a,c)});return '"'+d+'"'} -function Hwb(a){var b,c,d,e,f,g;e=a.e.c.length;d=tz(mG,ZMd,15,e,0,1);for(g=new ccb(a.e);g.a=0;){d=c[f];g.Bk(d.nj())&&fXc(e,d)}!u_c(a,e)&&PMc(a.e)&&ocd(a,b.lj()?Gud(a,6,b,(bdb(),$cb),null,-1,false):Gud(a,b.Zi()?2:1,b,null,null,-1,false))} -function uLb(a,b){var c,d,e,f,g;if(a.a==(J0b(),H0b)){return true}f=b.a.c;c=b.a.c+b.a.b;if(b.i){d=b.u;g=d.c.c.a-d.n.a/2;e=f-(d.k.a+d.n.a);if(e>g){return false}}if(b.n){d=b.v;g=d.c.c.a-d.n.a/2;e=d.k.a-c;if(e>g){return false}}return true} -function CMb(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 ccb(a);f.a1?(a.e*=Vpb(a.a)):(a.f/=Vpb(a.a));Gub(a);Hub(a);Dub(a);qub(a.b,(Fvb(),xvb),a.g)} -function $vb(a){Tvb();var b,c,d,e;Svb=new Gbb;Rvb=(Es(),new Bgb);Qvb=new Gbb;b=(!a.a&&(a.a=new zkd(MV,a,10,11)),a.a);Vvb(b);for(e=new a0c(b);e.e!=e.i._b();){d=kA($_c(e),35);if(ybb(Svb,d,0)==-1){c=new Gbb;tbb(Qvb,c);Wvb(d,c)}}return Qvb} -function WNc(a,b){var c,d,e,f,g,h,i;d=T4(a.Db&254);if(d==1){a.Eb=null}else{f=lA(a.Eb);if(d==2){e=UNc(a,b);a.Eb=f[e==0?1:0]}else{g=tz(NE,oJd,1,d-1,5,1);for(c=2,h=0,i=0;c<=128;c<<=1){c==b?++h:(a.Db&c)!=0&&(g[i++]=f[h++])}a.Eb=g}}a.Db&=~b} -function n_c(a,b,c){var d,e,f;if(a.ti()){f=a.ui();QXc(a,b,c);d=a.mi(3,null,c,b,f);if(a.qi()){e=a.ri(c,null);a.xi()&&(e=a.yi(c,e));if(!e){a.ni(d)}else{e.Sh(d);e.Th()}}else{a.ni(d)}}else{QXc(a,b,c);if(a.qi()){e=a.ri(c,null);!!e&&e.Th()}}} -function o_c(a,b){var c,d,e,f;if(a.ti()){c=a.i;f=a.ui();RXc(a,b);d=a.mi(3,null,b,c,f);if(a.qi()){e=a.ri(b,null);a.xi()&&(e=a.yi(b,e));if(!e){a.ni(d)}else{e.Sh(d);e.Th()}}else{a.ni(d)}}else{RXc(a,b);if(a.qi()){e=a.ri(b,null);!!e&&e.Th()}}} -function mq(a,b){var c,d,e,f,g;if(b===a){return true}if(!sA(b,15)){return false}g=kA(b,15);if(a._b()!=g._b()){return false}f=g.tc();for(d=a.tc();d.hc();){c=d.ic();e=f.ic();if(!(yA(c)===yA(e)||c!=null&&kb(c,e))){return false}}return true} -function J7(a,b){var c,d,e;if(b==0){return (a.a[0]&1)!=0}if(b<0){throw x2(new o3('Negative bit address'))}e=b>>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=D7(a);if(e=0?a.jg(null):a.yg().Cg(a,-1-b,null,null));a.kg(kA(e,42),c);!!d&&d.Th();a.eg()&&a.fg()&&c>-1&&vMc(a,new Mid(a,9,c,f,e));return e}}}return f} -function uWc(){uWc=d3;tWc=new vWc(AOd,0);qWc=new vWc('INSIDE_SELF_LOOPS',1);rWc=new vWc('MULTI_EDGES',2);pWc=new vWc('EDGE_LABELS',3);sWc=new vWc('PORTS',4);nWc=new vWc('COMPOUND',5);mWc=new vWc('CLUSTERS',6);oWc=new vWc('DISCONNECTED',7)} -function kid(a){var b,c;if(a.f){while(a.n>16)),15).dd(f);if(h0){!(hBc(a.a.c)&&b.n.d)&&!(iBc(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(hBc(a.a.c)&&b.n.a)&&!(iBc(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} -function vPb(a,b,c){var d,e,f,g,h,i;f=kA(xbb(b.d,0),14).c;d=f.g;e=d.j;i=kA(xbb(c.f,0),14).d;g=i.g;h=g.j;e==(RGb(),OGb)?qub(a,(E2b(),e2b),kA(nub(d,e2b),11)):qub(a,(E2b(),e2b),f);h==OGb?qub(a,(E2b(),f2b),kA(nub(g,f2b),11)):qub(a,(E2b(),f2b),i)} -function Fmc(a){var b,c,d;ymc(this);if(a.length==0){throw x2(new O4(bRd))}for(c=0,d=a.length;c>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?dLd:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?dLd:0;f=d?cLd:0;e=c>>b-44}return Cz(e&cLd,f&cLd,g&dLd)} -function $ub(a){var b,c,d,e,f,g;this.c=new Gbb;this.d=a;d=oLd;e=oLd;b=pLd;c=pLd;for(g=sib(a,0);g.b!=g.d.c;){f=kA(Gib(g),9);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 pyc(d,e,b-d,c-e)} -function fZb(a){var b,c,d;this.c=a;d=kA(nub(a,(J6b(),W4b)),110);b=Vpb(nA(nub(a,J4b)));c=Vpb(nA(nub(a,A6b)));d==(gBc(),cBc)||d==dBc||d==eBc?(this.b=b*c):(this.b=1/(b*c));this.j=Vpb(nA(nub(a,u6b)));this.e=Vpb(nA(nub(a,t6b)));this.f=a.b.c.length} -function v7b(a){switch(a.g){case 0:return new Vhc;case 1:return new pfc;case 2:return new Ffc;case 3:return new Nic;case 4:return new kgc;default:throw x2(new O4('No implementation is available for the node placer '+(a.f!=null?a.f:''+a.g)));}} -function aNc(a){var b;b=new O6(f4(a.ql));b.a+='@';I6(b,(ob(a)>>>0).toString(16));if(a.Eg()){b.a+=' (eProxyURI: ';H6(b,a.Kg());if(a.tg()){b.a+=' eClass: ';H6(b,a.tg())}b.a+=')'}else if(a.tg()){b.a+=' (eClass: ';H6(b,a.tg());b.a+=')'}return b.a} -function c3c(a,b){var c,d,e,f,g,h,i,j,k;if(a.a.f>0&&sA(b,38)){a.a.Fi();j=kA(b,38);i=j.kc();f=i==null?0:ob(i);g=V1c(a.a,f);c=a.a.d[g];if(c){d=kA(c.g,339);k=c.i;for(h=0;h0&&e0}else if(e<0&&-e0}return false} -function lKc(a,b,c,d,e){var f,g,h,i,j,k;f=d;for(j=kA(kA(Ke(a.r,b),19),60).tc();j.hc();){i=kA(j.ic(),111);if(f){f=false;continue}g=0;e>0?(g=e):!!i.c&&(g=BIc(i.c));if(g>0){if(c){k=i.b.Re().a;if(g>k){h=(g-k)/2;i.d.b=h;i.d.c=h}}else{i.d.c=a.s+g}}}} -function LPc(a,b,c){switch(b){case 7:!a.e&&(a.e=new pxd(JV,a,7,4));r_c(a.e);!a.e&&(a.e=new pxd(JV,a,7,4));gXc(a.e,kA(c,13));return;case 8:!a.d&&(a.d=new pxd(JV,a,8,5));r_c(a.d);!a.d&&(a.d=new pxd(JV,a,8,5));gXc(a.d,kA(c,13));return;}mPc(a,b,c)} -function Fgc(a){var b,c;if(a.c.length!=2){throw x2(new Q4('Order only allowed for two paths.'))}b=(Mpb(0,a.c.length),kA(a.c[0],14));c=(Mpb(1,a.c.length),kA(a.c[1],14));if(b.d.g!=c.c.g){a.c=tz(NE,oJd,1,0,5,1);a.c[a.c.length]=c;a.c[a.c.length]=b}} -function iBd(a){var b,c,d,e;if(a==null){return null}else{d=mId(a,true);e=tWd.length;if(Z5(d.substr(d.length-e,e),tWd)){c=d.length;if(c==4){b=d.charCodeAt(0);if(b==43){return VAd}else if(b==45){return UAd}}else if(c==3){return VAd}}return G3(d)}} -function fDb(a,b,c){var d;d=null;!!b&&(d=b.d);rDb(a,new FBb(b.k.a-d.b+c.a,b.k.b-d.d+c.b));rDb(a,new FBb(b.k.a-d.b+c.a,b.k.b+b.n.b+d.a+c.b));rDb(a,new FBb(b.k.a+b.n.a+d.c+c.a,b.k.b-d.d+c.b));rDb(a,new FBb(b.k.a+b.n.a+d.c+c.a,b.k.b+b.n.b+d.a+c.b))} -function kSb(a,b){var c,d,e,f,g;xEc(b,'Port side processing',1);for(g=new ccb(a.a);g.ai-c&&h=a.c.a.length){return b}d=H6(I6(new M6,'expected one element but was: <'),b);for(c=0;c<4&&a.a=0?a.Mg(f,c):VMc(a,e,c)}else{throw x2(new O4(ZSd+e.be()+$Sd))}}else{GMc(a,d,e,c)}} -function twb(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;g=c-a;h=d-b;f=$wnd.Math.atan2(g,h);i=f+YMd;j=f-YMd;k=e*$wnd.Math.sin(i)+a;m=e*$wnd.Math.cos(i)+b;l=e*$wnd.Math.sin(j)+a;n=e*$wnd.Math.cos(j)+b;return Sr(xz(pz(aU,1),cKd,9,0,[new Jyc(k,m),new Jyc(l,n)]))} -function _yb(a){var b,c,d,e,f,g,h;f=0;e=a.f.e;for(c=0;c=0){return e}else{f=1;for(h=new ccb(b.i);h.ai+1?f:i+1}}}T9b(a,b,f);return f}} -function yCc(){yCc=d3;qCc=new zCc('H_LEFT',0);pCc=new zCc('H_CENTER',1);sCc=new zCc('H_RIGHT',2);xCc=new zCc('V_TOP',3);wCc=new zCc('V_CENTER',4);vCc=new zCc('V_BOTTOM',5);tCc=new zCc('INSIDE',6);uCc=new zCc('OUTSIDE',7);rCc=new zCc('H_PRIORITY',8)} -function AOc(a,b){var c,d;d=(!a.o&&(a.o=new T8c((uMc(),rMc),$V,a,0)),S1c(a.o,b));if(d!=null){return d}c=b.Of();sA(c,4)&&(c==null?(!a.o&&(a.o=new T8c((uMc(),rMc),$V,a,0)),a2c(a.o,b)):(!a.o&&(a.o=new T8c((uMc(),rMc),$V,a,0)),Y1c(a.o,b,c)),a);return c} -function dyd(a){var b,c,d,e,f,g,h;b=a.Yg(HVd);if(b){h=pA(S1c((!b.b&&(b.b=new f9c((j7c(),f7c),CZ,b)),b.b),'settingDelegates'));if(h!=null){c=new Gbb;for(e=f6(h,'\\w+'),f=0,g=e.length;f0){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 fGc(d5(b),d5(c))} -function LFb(a,b,c){var d,e,f;if(b==c){return}d=b;do{vyc(a,d.c);e=kA(nub(d,(E2b(),n2b)),8);if(e){f=d.d;uyc(a,f.b,f.d);vyc(a,e.k);d=uGb(e)}}while(e);d=c;do{Gyc(a,d.c);e=kA(nub(d,(E2b(),n2b)),8);if(e){f=d.d;Fyc(a,f.b,f.d);Gyc(a,e.k);d=uGb(e)}}while(e)} -function jKb(a,b,c){var d,e,f,g,h,i;d=new Gbb;d.c[d.c.length]=b;i=b;h=0;do{i=oKb(a,i);!!i&&(d.c[d.c.length]=i,true);++h}while(i);g=(c-(d.c.length-1)*a.d.d)/d.c.length;for(f=new ccb(d);f.ab.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return ob(a.a)-ob(b.a)}else if(a.d==(Wec(),Vec)&&b.d==Uec){return -1}else if(a.d==Uec&&b.d==Vec){return 1}return 0} -function bic(a){var b,c,d,e,f,g,h,i;e=oLd;d=pLd;for(c=new ccb(a.e.b);c.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 yAb(a,b){var c,d,e,f,g,h,i,j;g=b==1?oAb:nAb;for(f=g.a.Xb().tc();f.hc();){e=kA(f.ic(),110);for(i=kA(Ke(a.f.c,e),19).tc();i.hc();){h=kA(i.ic(),48);d=kA(h.b,80);j=kA(h.a,172);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} -function GEd(a){FEd();var b,c,d,e,f,g,h;if(a==null)return null;e=a.length;if(e%2!=0)return null;b=k6(a);f=e/2|0;c=tz(BA,jTd,22,f,15,1);for(d=0;d>24}return c} -function Kkd(a,b){var c,d,e;c=b==null?Of(Wgb(a.d,null)):mhb(a.e,b);if(sA(c,207)){e=kA(c,207);e.gh()==null&&undefined;return e}else if(sA(c,456)){d=kA(c,1631);e=d.a;!!e&&(e.yb==null?undefined:b==null?Xgb(a.d,null,e):nhb(a.e,b,e));return e}else{return null}} -function sud(a,b){var c,d,e,f,g;d=b.nj();if(zyd(a.e,d)){if(d.xh()&&Dud(a,d,b.lc())){return false}}else{g=yyd(a.e.mg(),d);c=kA(a.g,124);for(e=0;e0){!(hBc(a.a.c)&&b.n.d)&&!(iBc(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(hBc(a.a.c)&&b.n.a)&&!(iBc(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} -function JQb(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(FDc(),lDc)||b==kDc){zQb(kA(Uab(a),15),(jHc(),fHc));zQb(kA(Uab(a),15),gHc)}else{zQb(kA(Uab(a),15),(jHc(),gHc));zQb(kA(Uab(a),15),fHc)}}else{for(e=new mbb(a);e.a!=e.b;){d=kA(kbb(e),15);zQb(d,c)}}} -function ayd(a){var b,c,d,e,f,g,h;if(a){b=a.Yg(HVd);if(b){g=pA(S1c((!b.b&&(b.b=new f9c((j7c(),f7c),CZ,b)),b.b),'conversionDelegates'));if(g!=null){h=new Gbb;for(d=f6(g,'\\w+'),e=0,f=d.length;e=2147483648&&(d-=zLd);return d}} -function XXb(a,b,c){var d,e,f,g;if(_Xb(a,b)>_Xb(a,c)){d=AGb(c,(FDc(),kDc));a.d=d.Wb()?0:hHb(kA(d.cd(0),11));g=AGb(b,EDc);a.b=g.Wb()?0:hHb(kA(g.cd(0),11))}else{e=AGb(c,(FDc(),EDc));a.d=e.Wb()?0:hHb(kA(e.cd(0),11));f=AGb(b,kDc);a.b=f.Wb()?0:hHb(kA(f.cd(0),11))}} -function GMb(a){var b,c,d,e,f,g;e=kA(xbb(a.i,0),11);if(e.d.c.length+e.f.c.length==0){a.k.a=0}else{g=0;for(d=kl(wn(new NHb(e),new VHb(e)));So(d);){c=kA(To(d),11);g+=c.g.k.a+c.k.a+c.a.a}b=kA(nub(a,(J6b(),X5b)),9);f=!b?0:b.a;a.k.a=g/(e.d.c.length+e.f.c.length)-f}} -function X6b(a){switch(a.g){case 0:return new wac;case 1:return new V9b;case 2:return new w9b;case 3:return new J9b;case 4:return new Kac;case 5:return new eac;default:throw x2(new O4('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} -function eLc(a,b){var c,d,e,f;c=a.o.a;for(f=kA(kA(Ke(a.r,b),19),60).tc();f.hc();){e=kA(f.ic(),111);e.e.a=c*Vpb(nA(e.b.xe(aLc)));e.e.b=(d=e.b,d.ye(($Ac(),AAc))?d.ef()==(FDc(),lDc)?-d.Re().b-Vpb(nA(d.xe(AAc))):Vpb(nA(d.xe(AAc))):d.ef()==(FDc(),lDc)?-d.Re().b:0)}} -function v8(a,b){u8();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 z8(a,b)}g=(a.d&-2)<<4;j=I7(a,g);k=I7(b,g);d=p8(a,H7(j,g));e=p8(b,H7(k,g));i=v8(j,k);c=v8(d,e);f=v8(p8(j,d),p8(e,k));f=k8(k8(f,i),c);f=H7(f,g);i=H7(i,g<<1);return k8(k8(i,f),c)} -function Pvb(a,b,c){var d,e,f;kub.call(this,new Gbb);this.a=b;this.b=c;this.e=a;d=(a.b&&Oub(a),a.a);this.d=Nvb(d.a,this.a);this.c=Nvb(d.b,this.b);cub(this,this.d,this.c);Ovb(this);for(f=this.e.e.a.Xb().tc();f.hc();){e=kA(f.ic(),247);e.c.c.length>0&&Mvb(this,e)}} -function mgc(a){var b,c,d,e;b=0;c=0;for(e=new ccb(a.i);e.a1||c>1){return 2}}if(b+c==1){return 2}return 0} -function Zhc(a,b,c){var d,e,f,g,h,i,j;d=c;e=b;do{e=a.a[e.o];g=(j=a.g[e.o],Vpb(a.p[j.o])+Vpb(a.d[e.o])-e.d.d);h=aic(e,!e.c?-1:ybb(e.c.a,e,0));if(h){f=(i=a.g[h.o],Vpb(a.p[i.o])+Vpb(a.d[h.o])+h.n.b+h.d.a);d=$wnd.Math.min(d,g-(f+l8b(a.k,e,h)))}}while(b!=e);return d} -function $hc(a,b,c){var d,e,f,g,h,i,j;d=c;e=b;do{e=a.a[e.o];f=(j=a.g[e.o],Vpb(a.p[j.o])+Vpb(a.d[e.o])+e.n.b+e.d.a);h=_hc(e,!e.c?-1:ybb(e.c.a,e,0));if(h){g=(i=a.g[h.o],Vpb(a.p[i.o])+Vpb(a.d[h.o])-h.d.d);d=$wnd.Math.min(d,g-(f+l8b(a.k,e,h)))}}while(b!=e);return d} -function hKc(a,b,c){var d,e,f,g;e=c;f=fob(Uob(kA(kA(Ke(a.r,b),19),60).xc(),new mKc));g=0;while(f.a||(f.a=Cob(f.c,f)),f.a){if(e){Lpb((f.a||(f.a=Cob(f.c,f)),f.a));f.a=false;e=false;continue}else{d=Kkb(f);f.a||(f.a=Cob(f.c,f));f.a&&(g=$wnd.Math.max(g,d))}}return g} -function pUc(a,b,c){var d,e,f,g,h,i,j,k;if(c){f=c.a.length;d=new uId(f);for(h=(d.b-d.a)*d.c<0?(tId(),sId):new QId(d);h.hc();){g=kA(h.ic(),21);e=XTc(c,g.a);!!e&&(i=RUc(a,(j=(gMc(),k=new pTc,k),!!b&&nTc(j,b),j),e),aPc(i,ZTc(e,HTd)),aVc(e,i),bVc(e,i),ZUc(a,e,i))}}} -function wtb(a){var b,c,d;c=kA(a.a,21).a;d=kA(a.b,21).a;b=(c<0?-c:c)>(d<0?-d:d)?c<0?-c:c:d<0?-d:d;if(c=-b&&d==b){return new fGc(d5(c-1),d5(d))}return new fGc(d5(c),d5(d-1))} -function sMb(a){var b,c,d,e,f,g;g=kA(Fbb(a.a,tz(RK,VNd,8,a.a.c.length,0,1)),123);Ecb(g,new xMb);c=null;for(e=0,f=g.length;ed.o?kHb(e,CDc):e.i==CDc&&d.o>a.o&&kHb(e,lDc);break}}return d} -function akc(a,b,c){var d,e,f;for(f=new ccb(a.e);f.a0){d.b.c-=d.c;d.b.c<=0&&d.b.f>0&&mib(b,d.b)}}for(e=new ccb(a.b);e.a0){d.a.f-=d.c;d.a.f<=0&&d.a.c>0&&mib(c,d.a)}}} -function dnc(a,b,c){var d,e,f;for(f=new ccb(a.q);f.a0){d.b.j-=d.c;d.b.j<=0&&d.b.r>0&&mib(b,d.b)}}for(e=new ccb(a.g);e.a0){d.a.r-=d.c;d.a.r<=0&&d.a.j>0&&mib(c,d.a)}}} -function xYc(a){var b,c,d,e,f;if(a.g==null){a.d=a.Gh(a.f);fXc(a,a.d);if(a.c){f=a.f;return f}}b=kA(a.g[a.i-1],43);e=b.ic();a.e=b;c=a.Gh(e);if(c.hc()){a.d=c;fXc(a,c)}else{a.d=null;while(!b.hc()){wz(a.g,--a.i,null);if(a.i==0){break}d=kA(a.g[a.i-1],43);b=d}}return e} -function Vb(a,b){var c,d,e,f;a=a;c=new N6;f=0;d=0;while(d=0?a.ug(d,true,true):TMc(a,f,true),184));kA(e,237).xk(b,c)}else{throw x2(new O4(ZSd+b.be()+$Sd))}} -function kDb(a,b,c){switch(c.g){case 1:return new Jyc(b.a,$wnd.Math.min(a.d.b,b.b));case 2:return new Jyc($wnd.Math.max(a.c.a,b.a),b.b);case 3:return new Jyc(b.a,$wnd.Math.max(a.c.b,b.b));case 4:return new Jyc($wnd.Math.min(b.a,a.d.a),b.b);}return new Jyc(b.a,b.b)} -function SWc(a){var b,c,d;b=Tr(1+(!a.c&&(a.c=new zkd(NV,a,9,9)),a.c).i);tbb(b,(!a.d&&(a.d=new pxd(JV,a,8,5)),a.d));for(d=new a0c((!a.c&&(a.c=new zkd(NV,a,9,9)),a.c));d.e!=d.i._b();){c=kA($_c(d),121);tbb(b,(!c.d&&(c.d=new pxd(JV,c,8,5)),c.d))}return Pb(b),new ll(b)} -function TWc(a){var b,c,d;b=Tr(1+(!a.c&&(a.c=new zkd(NV,a,9,9)),a.c).i);tbb(b,(!a.e&&(a.e=new pxd(JV,a,7,4)),a.e));for(d=new a0c((!a.c&&(a.c=new zkd(NV,a,9,9)),a.c));d.e!=d.i._b();){c=kA($_c(d),121);tbb(b,(!c.e&&(c.e=new pxd(JV,c,7,4)),c.e))}return Pb(b),new ll(b)} -function KYb(a,b){var c,d,e,f,g;xEc(b,'Breaking Point Processor',1);JYb(a);if(Vpb(mA(nub(a,(J6b(),G6b))))){for(e=new ccb(a.b);e.a3&&nx(a,0,b-3)}} -function Kz(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 _4(c)}if(b==0&&d!=0&&c==0){return _4(d)+22}if(b!=0&&d==0&&c==0){return _4(b)+44}return -1} -function ZQb(a,b){var c,d,e,f,g;xEc(b,'Edge joining',1);c=Vpb(mA(nub(a,(J6b(),y6b))));for(e=new ccb(a.b);e.a0);f.a.cd(f.c=--f.b);r9(f,e);Lpb(f.b_Qd;i=k_Qd;i=k_Qd;i=k_Qd;i=k=0){if(b==c){return new fGc(d5(-b-1),d5(-b-1))}if(b==-c){return new fGc(d5(-b),d5(c+1))}}if((b<0?-b:b)>(c<0?-c:c)){if(b<0){return new fGc(d5(-b),d5(c))}return new fGc(d5(-b),d5(c+1))}return new fGc(d5(b+1),d5(c))} -function PEc(a,b,c){var d,e,f,g,h;e=kA(AOc(b,(vzc(),tzc)),21);!e&&(e=d5(0));f=kA(AOc(c,tzc),21);!f&&(f=d5(0));if(e.a>f.a){return -1}else if(e.a1){b=p$b((c=new r$b,++a.b,c),a.d);for(h=sib(f,0);h.b!=h.d.c;){g=kA(Gib(h),113);DZb(GZb(FZb(HZb(EZb(new IZb,1),0),b),g))}}} -function TYb(a,b,c){var d,e,f,g,h;xEc(c,'Breaking Point Removing',1);a.a=kA(nub(b,(J6b(),a5b)),197);for(f=new ccb(b.b);f.a>16!=6&&!!b){if(eyd(a,b))throw x2(new O4(fTd+AQc(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?mQc(a,null):a.Cb.Cg(a,-1-c,null,null)));!!b&&(d=MMc(b,a,6,d));d=lQc(a,b,d);!!d&&d.Th()}else (a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,6,b,b))} -function aQc(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(eyd(a,b))throw x2(new O4(fTd+bQc(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?WPc(a,null):a.Cb.Cg(a,-1-c,null,null)));!!b&&(d=MMc(b,a,12,d));d=VPc(a,b,d);!!d&&d.Th()}else (a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,3,b,b))} -function nTc(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(eyd(a,b))throw x2(new O4(fTd+oTc(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lTc(a,null):a.Cb.Cg(a,-1-c,null,null)));!!b&&(d=MMc(b,a,9,d));d=kTc(a,b,d);!!d&&d.Th()}else (a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,9,b,b))} -function _Sc(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(eyd(a,b))throw x2(new O4(fTd+aTc(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?XSc(a,null):a.Cb.Cg(a,-1-c,null,null)));!!b&&(d=MMc(b,a,10,d));d=WSc(a,b,d);!!d&&d.Th()}else (a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,11,b,b))} -function UUc(a,b){if(sA(b,246)){return gUc(a,kA(b,35))}else if(sA(b,187)){return hUc(a,kA(b,121))}else if(sA(b,263)){return fUc(a,kA(b,137))}else if(sA(b,183)){return eUc(a,kA(b,105))}else if(b){return null}else{throw x2(new O4(JTd+vg(new Rcb(xz(pz(NE,1),oJd,1,5,[null])))))}} -function YVc(a){var b,c,d,e,f,g,h,i,j,k,l;l=_Vc(a);b=a.a;i=b!=null;i&&STc(l,'category',a.a);e=bJd(new G9(a.d));g=!e;if(g){j=new fy;Ny(l,'knownOptions',j);c=new eWc(j);i5(new G9(a.d),c)}f=bJd(a.g);h=!f;if(h){k=new fy;Ny(l,'supportedFeatures',k);d=new gWc(k);i5(a.g,d)}return l} -function MVb(a,b,c){var d,e,f;for(e=new ccb(a.a.b);e.ai){k=a.d;a.d=tz(EX,RUd,55,2*i+4,0,1);for(f=0;f=9223372036854775807){return fA(),bA}e=false;if(a<0){e=true;a=-a}d=0;if(a>=gLd){d=zA(a/gLd);a-=d*gLd}c=0;if(a>=fLd){c=zA(a/fLd);a-=c*fLd}b=zA(a);f=Cz(b,c,d);e&&Iz(f);return f} -function _oc(a,b,c){var d,e,f,g,h,i;if(!Bn(b)){i=BEc(c,(sA(b,13)?kA(b,13)._b():mo(b.tc()))/a.a|0);xEc(i,jRd,1);h=new cpc;g=0;for(f=b.tc();f.hc();){d=kA(f.ic(),76);h=wn(h,new Aoc(d));gnOd;f=d-gnOd;if(e||f){i=kA(b.e,249).b;g=kA(b.e,249).a;h=kA(b.d,129);if(i==0&&g==0){return h}}}}return h} -function sSb(a,b,c,d){var e,f,g,h;g=new IGb(a);GGb(g,(RGb(),OGb));qub(g,(E2b(),i2b),b);qub(g,(J6b(),Z5b),(VCc(),QCc));qub(g,e2b,c);qub(g,f2b,d);f=new lHb;kHb(f,(FDc(),EDc));jHb(f,g);h=new lHb;kHb(h,kDc);jHb(h,g);MEb(b,f);e=new PEb;lub(e,b);qub(e,p5b,null);LEb(e,h);MEb(e,d);return g} -function Fkc(a,b,c,d,e){var f,g;if(!JEb(b)&&b.c.g.c==b.d.g.c||!zyc(Pyc(xz(pz(aU,1),cKd,9,0,[e.g.k,e.k,e.a])),c)){b.c==e?Dq(b.a,0,new Kyc(c)):mib(b.a,new Kyc(c));if(d&&!Hgb(a.a,c)){g=kA(nub(b,(J6b(),p5b)),74);if(!g){g=new Vyc;qub(b,p5b,g)}f=new Kyc(c);pib(g,f,g.c.b,g.c);Ggb(a.a,f)}}} -function trb(a,b){var c,d;d=vmb(a.b,b.b);if(!d){throw x2(new Q4('Invalid hitboxes for scanline constraint calculation.'))}(nrb(b.b,kA(xmb(a.b,b.b),57))||nrb(b.b,kA(wmb(a.b,b.b),57)))&&(S6(),b.b+' has overlap.');a.a[b.b.f]=kA(zmb(a.b,b.b),57);c=kA(ymb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} -function JVb(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.i&&b.k){n=kA(F8(a.f,b.u),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.n&&c.k){n=kA(F8(a.f,c.v),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=2>l-k?2:l-k;h=q/i;o=p+h;for(m=k;m>16!=7&&!!b){if(eyd(a,b))throw x2(new O4(fTd+MSc(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?ISc(a,null):a.Cb.Cg(a,-1-c,null,null)));!!b&&(d=kA(b,42).Ag(a,1,KV,d));d=HSc(a,b,d);!!d&&d.Th()}else (a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,7,b,b))} -function D8c(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(eyd(a,b))throw x2(new O4(fTd+G8c(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?B8c(a,null):a.Cb.Cg(a,-1-c,null,null)));!!b&&(d=kA(b,42).Ag(a,0,qY,d));d=A8c(a,b,d);!!d&&d.Th()}else (a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,3,b,b))} -function VAb(a){var b,c,d,e,f,g,h;for(f=new ccb(a.a.a);f.a0&&f>0?(g.o=b++):d>0?(g.o=c++):f>0?(g.o=e++):(g.o=c++);}}bdb();Dbb(a.i,new RRb)} -function Euc(a,b){var c,d,e;e=(!b.a&&(b.a=new zkd(MV,b,10,11)),b.a).i;for(d=new a0c((!b.a&&(b.a=new zkd(MV,b,10,11)),b.a));d.e!=d.i._b();){c=kA($_c(d),35);yA(AOc(c,($Ac(),Vzc)))!==yA((jCc(),iCc))&&Cvc(Huc(b),Huc(c))&&((!c.a&&(c.a=new zkd(MV,c,10,11)),c.a).i==0||(e+=Euc(a,c)))}return e} -function Vsd(a,b){var c,d,e;c=b.Yg(a.a);if(c){e=pA(S1c((!c.b&&(c.b=new f9c((j7c(),f7c),CZ,c)),c.b),'affiliation'));if(e!=null){d=d6(e,o6(35));return d==-1?mtd(a,vtd(a,Nad(b.Wi())),e):d==0?mtd(a,null,e.substr(1,e.length-1)):mtd(a,e.substr(0,d),e.substr(d+1,e.length-(d+1)))}}return null} -function _nb(a){var b,c,d,e,f;f=new Gbb;wbb(a.b,new tpb(f));a.b.c=tz(NE,oJd,1,0,5,1);if(f.c.length!=0){b=(Mpb(0,f.c.length),kA(f.c[0],78));for(c=1,d=f.c.length;c=a.a){return -1}if(!jNb(b,c)){return -1}if(Bn(kA(d.Kb(b),20))){return 1}e=0;for(g=kA(d.Kb(b),20).tc();g.hc();){f=kA(g.ic(),14);i=f.c.g==b?f.d.g:f.c.g;h=kNb(a,i,c,d);if(h==-1){return -1}e=e>h?e:h;if(e>a.c-1){return -1}}return e+1} -function hcc(a,b,c,d){var e,f,g,h,i,j,k,l,m;l=d?(FDc(),EDc):(FDc(),kDc);e=false;for(i=b[c],j=0,k=i.length;j>5;b&=31;if(d>=a.d){return a.e<0?(y7(),s7):(y7(),x7)}f=a.d-d;e=tz(FA,OKd,22,f+1,15,1);d8(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c0){f=kA(xbb(this.b,0),157);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=zA($wnd.Math.ceil(e*b))):(d=zA($wnd.Math.ceil(d/b)));this.a=new hub(e,d)} -function lec(a,b,c,d,e,f){var g,h,i,j,k,l;j=c.c.length;f&&(a.c=tz(FA,OKd,22,b.length,15,1));for(g=e?0:b.length-1;e?g=0;g+=e?1:-1){h=b[g];i=d==(FDc(),kDc)?e?AGb(h,d):Wr(AGb(h,d)):e?Wr(AGb(h,d)):AGb(h,d);f&&(a.c[h.o]=i._b());for(l=i.tc();l.hc();){k=kA(l.ic(),11);a.d[k.o]=j++}vbb(c,i)}} -function smc(a,b,c){var d,e,f,g,h,i,j,k;f=Vpb(nA(a.b.tc().ic()));j=Vpb(nA(An(b.b)));d=Dyc(xyc(a.a),j-c);e=Dyc(xyc(b.a),c-f);k=vyc(d,e);Dyc(k,1/(j-f));this.a=k;this.b=new Gbb;h=true;g=a.b.tc();g.ic();while(g.hc()){i=Vpb(nA(g.ic()));if(h&&i-c>_Qd){this.b.nc(c);h=false}this.b.nc(i)}h&&this.b.nc(c)} -function x$b(a){var b,c,d,e;A$b(a,a.n);if(a.d.c.length>0){rcb(a.c);while(I$b(a,kA(acb(new ccb(a.e.a)),113))=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||uHd(a)}} -function Xvb(a){var b,c,d,e;e=mTc(a);c=new kwb(e);d=new mwb(e);b=new Gbb;vbb(b,(!a.d&&(a.d=new pxd(JV,a,8,5)),a.d));vbb(b,(!a.e&&(a.e=new pxd(JV,a,7,4)),a.e));return kA(Nob(Tob(Pob(new Zob(null,new ekb(b,16)),c),d),Tmb(new unb,new wnb,new Nnb,new Pnb,xz(pz($G,1),jKd,150,0,[(Ymb(),Xmb),Wmb]))),19)} -function oSb(a){var b,c,d;c=kA(nub(a,(E2b(),p2b)),8);c?kHb(a,kA(nub(c,V1b),69)):a.d.c.length-a.f.c.length<0?kHb(a,(FDc(),kDc)):kHb(a,(FDc(),EDc));if(!a.b){d=a.n;b=a.a;switch(a.i.g){case 1:b.a=d.a/2;b.b=0;break;case 2:b.a=d.a;b.b=d.b/2;break;case 3:b.a=d.a/2;b.b=d.b;break;case 4:b.a=0;b.b=d.b/2;}}} -function S9b(a,b,c){var d,e,f,g,h;xEc(c,'Longest path layering',1);a.a=b;h=a.a.a;a.b=tz(FA,OKd,22,h.c.length,15,1);d=0;for(g=new ccb(h);g.a=0){return false}else{c=ftd((uyd(),syd),e,b);if(!c){return true}else{d=c.kj();return (d>1||d==-1)&&_td(rtd(syd,c))!=3}}}}else{return false}} -function EQb(a,b){var c;c=kA(nub(a,(J6b(),_4b)),241);xEc(b,'Label side selection ('+c+')',1);switch(c.g){case 0:FQb(a,(jHc(),fHc));break;case 1:FQb(a,(jHc(),gHc));break;case 2:DQb(a,(jHc(),fHc));break;case 3:DQb(a,(jHc(),gHc));break;case 4:GQb(a,(jHc(),fHc));break;case 5:GQb(a,(jHc(),gHc));}zEc(b)} -function Ucc(a,b,c){var d,e,f,g,h,i;d=Jcc(c,a.length);g=a[d];if(g[0].j!=(RGb(),MGb)){return}f=Kcc(c,g.length);i=b.i;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);ZHc(a,IHc,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==IHc){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} -function nfc(a,b){var c,d,e,f,g,h,i;c=pLd;h=(RGb(),PGb);for(e=new ccb(b.a);e.a0?(g=c):!!i.c&&(g=AIc(i.c));if(g>0){if(d&&(CKc(),i.a.B&&(!Vpb(mA(i.a.e.xe(($Ac(),EAc))))||i.b.ff()))){i.d.a=a.s+g}else{k=i.b.Re().b;if(g>k){h=(g-k)/2;i.d.d=h;i.d.a=h}}}}} -function Wsd(a,b){var c,d,e,f,g;e=b.Yg(a.a);if(e){d=(!e.b&&(e.b=new f9c((j7c(),f7c),CZ,e)),e.b);c=pA(S1c(d,KVd));if(c!=null){f=c.lastIndexOf('#');g=f==-1?xtd(a,b.Pi(),c):f==0?wtd(a,null,c.substr(1,c.length-1)):wtd(a,c.substr(0,f),c.substr(f+1,c.length-(f+1)));if(sA(g,140)){return kA(g,140)}}}return null} -function $sd(a,b){var c,d,e,f,g;d=b.Yg(a.a);if(d){c=(!d.b&&(d.b=new f9c((j7c(),f7c),CZ,d)),d.b);f=pA(S1c(c,fWd));if(f!=null){e=f.lastIndexOf('#');g=e==-1?xtd(a,b.Pi(),f):e==0?wtd(a,null,f.substr(1,f.length-1)):wtd(a,f.substr(0,e),f.substr(e+1,f.length-(e+1)));if(sA(g,140)){return kA(g,140)}}}return null} -function esc(a,b,c,d,e){var f,g,h,i,j,k;!!a.d&&a.d.If(e);f=kA(e.cd(0),35);if(csc(a,c,f,false)){return true}g=kA(e.cd(e._b()-1),35);if(csc(a,d,g,true)){return true}if(Zrc(a,e)){return true}for(k=e.tc();k.hc();){j=kA(k.ic(),35);for(i=b.tc();i.hc();){h=kA(i.ic(),35);if(Yrc(a,j,h)){return true}}}return false} -function RMc(a,b,c){var d,e,f,g,h,i,j,k,l,m;m=b.c.length;l=(j=a.rg(c),kA(j>=0?a.ug(j,false,true):TMc(a,c,false),52));n:for(f=l.tc();f.hc();){e=kA(f.ic(),51);for(k=0;ka.d[g.o]){c+=Zdc(a.b,f);Nab(a.a,d5(f))}}while(!Tab(a.a)){Xdc(a.b,kA(Xab(a.a),21).a)}}return c} -function $Wc(a,b,c){var d,e;if((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a).i==0){return YWc(a)}else{d=kA(WXc((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a),0),270);if(b){r_c((!d.a&&(d.a=new fdd(GV,d,5)),d.a));yQc(d,0);zQc(d,0);rQc(d,0);sQc(d,0)}if(c){e=(!a.a&&(a.a=new zkd(IV,a,6,6)),a.a);while(e.i>1){t_c(e,e.i-1)}}return d}} -function xIb(a,b){var c,d,e,f;f=tIb(b);e=kA(nub(f,(E2b(),X1b)),19);sIb(b,e);if(e.pc((Z0b(),S0b))){for(d=new a0c((!b.c&&(b.c=new zkd(NV,b,9,9)),b.c));d.e!=d.i._b();){c=kA($_c(d),121);AIb(a,b,f,c)}}pIb(b,f);Vpb(mA(nub(f,(J6b(),Q5b))))&&e.nc(X0b);yA(AOc(b,h5b))===yA((jCc(),gCc))?yIb(a,b,f):wIb(a,b,f);return f} -function Z0b(){Z0b=d3;Q0b=new $0b('COMMENTS',0);S0b=new $0b('EXTERNAL_PORTS',1);T0b=new $0b('HYPEREDGES',2);U0b=new $0b('HYPERNODES',3);V0b=new $0b('NON_FREE_PORTS',4);W0b=new $0b('NORTH_SOUTH_PORTS',5);Y0b=new $0b(AOd,6);P0b=new $0b('CENTER_LABELS',7);R0b=new $0b('END_LABELS',8);X0b=new $0b('PARTITIONS',9)} -function Duc(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new zkd(MV,b,10,11)),b.a).i;for(e=new a0c((!b.a&&(b.a=new zkd(MV,b,10,11)),b.a));e.e!=e.i._b();){d=kA($_c(e),35);(!d.a&&(d.a=new zkd(MV,d,10,11)),d.a).i==0||(f+=Duc(a,d,false))}if(c){g=ZSc(b);while(g){f+=(!g.a&&(g.a=new zkd(MV,g,10,11)),g.a).i;g=ZSc(g)}}return f} -function t_c(a,b){var c,d,e,f;if(a.ti()){d=null;e=a.ui();a.xi()&&(d=a.zi(a.Dh(b),null));c=a.mi(4,f=ZXc(a,b),null,b,e);if(a.qi()&&f!=null){d=a.si(f,d);if(!d){a.ni(c)}else{d.Sh(c);d.Th()}}else{if(!d){a.ni(c)}else{d.Sh(c);d.Th()}}return f}else{f=ZXc(a,b);if(a.qi()&&f!=null){d=a.si(f,null);!!d&&d.Th()}return f}} -function dTb(a){var b,c,d,e,f,g,h,i,j;g=oLd;i=oLd;h=null;for(c=new dib(new Yhb(a.e));c.b!=c.c.a.b;){b=cib(c);if(yA(b.d)===yA((Flc(),hlc))||yA(b.d)===yA(ilc)){d=kA(b.e,249).a;j=kA(b.e,249).b;e=g-d>nOd;f=d-gnOd;if(e||f){i=kA(b.e,249).b;g=kA(b.e,249).a;h=kA(b.d,129);if(i==0&&g==0){return h}}}}return h} -function vLc(a){var b,c,d,e,f,g,h,i,j,k;f=a.a;b=new Jgb;j=0;for(d=new ccb(a.d);d.ai.d&&(k=i.d+i.a+f)}}c.c.d=k;b.a.Zb(c,b);j=$wnd.Math.max(j,c.c.d+c.c.a)}return j} -function ix(a,b,c,d,e){if(d<0){d=Zw(a,e,xz(pz(UE,1),cKd,2,6,[BKd,CKd,DKd,EKd,FKd,GKd,HKd,IKd,JKd,KKd,LKd,MKd]),b);d<0&&(d=Zw(a,e,xz(pz(UE,1),cKd,2,6,['Jan','Feb','Mar','Apr',FKd,'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 kx(a,b,c,d,e){if(d<0){d=Zw(a,e,xz(pz(UE,1),cKd,2,6,[BKd,CKd,DKd,EKd,FKd,GKd,HKd,IKd,JKd,KKd,LKd,MKd]),b);d<0&&(d=Zw(a,e,xz(pz(UE,1),cKd,2,6,['Jan','Feb','Mar','Apr',FKd,'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 MEd(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=tGd(a.i));a.j=a.i.length;LEd(a);f=PEd(a);if(a.d!=a.j)throw x2(new KEd(WYc((isd(),ZTd))));if(a.g){for(d=0;dJRd?Dbb(i,a.b):d<=JRd&&d>KRd?Dbb(i,a.d):d<=KRd&&d>LRd?Dbb(i,a.c):d<=LRd&&Dbb(i,a.a);f=nuc(a,i,f)}return e} -function TDc(a){owc(a,new Evc(Pvc(Mvc(Ovc(Nvc(new Rvc,ASd),'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 WDc)));mwc(a,ASd,WMd,PDc);mwc(a,ASd,rNd,15);mwc(a,ASd,tNd,d5(0));mwc(a,ASd,VMd,oNd)} -function AJb(a,b){var c,d,e,f,g,h,i,j,k,l;i=b.a.length;h=zA($wnd.Math.ceil(i/a.a));l=b.a;g=0;j=h;for(f=0;fg?0:g)g?0:g:i,(0>(jg?0:g)g?0:g:i));g=j;j+=h;d=kA(xbb(a.c,f),8);c=new ZFb(k);c.n.b=b.n.b;Le(a.b,b,c);tbb(d.b,c)}Abb(a.g.b,b);tbb(a.i,(e=new LJb(a,b),e))} -function H9b(a,b,c){var d,e,f,g,h,i,j,k,l;b.o=1;f=b.c;for(l=BGb(b,(U7b(),S7b)).tc();l.hc();){k=kA(l.ic(),11);for(e=new ccb(k.f);e.a=a.length){return false}h=a.charCodeAt(b[0]);if(h!=43&&h!=45){return false}++b[0];d=ax(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new Px;j=i.q.getFullYear()-NKd+NKd-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d0){a.Fi();if(b!=null){for(f=0;f=48;c--){DEd[c]=c-48<<24>>24}for(d=70;d>=65;d--){DEd[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){DEd[e]=e-97+10<<24>>24}for(f=0;f<10;f++)EEd[f]=48+f&AKd;for(a=10;a<=15;a++)EEd[a]=65+a-10&AKd} -function lxb(a){var b,c,d,e;c=Vpb(nA(nub(a.a,(qyb(),nyb))));d=a.a.c.d;e=a.a.d.d;b=a.d;if(d.a>=e.a){if(d.b>=e.b){b.a=e.a+(d.a-e.a)/2+c;b.b=e.b+(d.b-e.b)/2-c}else{b.a=e.a+(d.a-e.a)/2+c;b.b=d.b+(e.b-d.b)/2+c}}else{if(d.b>=e.b){b.a=d.a+(e.a-d.a)/2+c;b.b=e.b+(d.b-e.b)/2+c}else{b.a=d.a+(e.a-d.a)/2+c;b.b=d.b+(e.b-d.b)/2-c}}} -function uIb(a,b,c,d){var e,f,g,h,i;h=UWc(kA(WXc((!b.b&&(b.b=new pxd(HV,b,4,7)),b.b),0),97));i=UWc(kA(WXc((!b.c&&(b.c=new pxd(HV,b,5,8)),b.c),0),97));if(ZSc(h)==ZSc(i)){return null}if(dXc(i,h)){return null}g=XPc(b);if(g==c){return d}else{f=kA(F8(a.a,g),8);if(f){e=kA(nub(f,(E2b(),h2b)),31);if(e){return e}}}return null} -function XKb(a,b,c,d){var e,f,g,h,i;f=a.i.c.length;i=tz(dV,fOd,267,f,0,1);for(g=0;gm+i&&d.jc()}for(g=new ccb(n);g.a>19!=0){return '-'+_z(Sz(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=Az(hLd);c=Dz(c,e,true);b=''+$z(zz);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 H3(a,b,c){var d,e,f,g,h;if(a==null){throw x2(new I5(mJd))}f=a.length;g=f>0&&(a.charCodeAt(0)==45||a.charCodeAt(0)==43)?1:0;for(d=g;dc){throw x2(new I5(mLd+a+'"'))}return h} -function hhb(){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 jMb(a,b){var c,d,e,f;xEc(b,'Resize child graph to fit parent.',1);for(d=new ccb(a.b);d.a>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 x2(new I5('Invalid hexadecimal'))}}} -function eUc(a,b){var c,d,e,f,g,h,i,j,k;j=kA(F8(a.c,b),191);if(!j){throw x2(new aUc('Edge did not exist in input.'))}g=UTc(j);k=new fy;c=new tVc(a,g,k);_Id((!b.a&&(b.a=new zkd(IV,b,6,6)),b.a),c);Ny(j,zTd,k);h=kA(AOc(b,($Ac(),_zc)),74);e=!h||aJd(h);f=!e;if(f){i=new fy;d=new uVc(i);i5(h,d);Ny(j,'junctionPoints',i)}return null} -function KMb(a,b,c){var d,e,f,g;xEc(c,'Orthogonally routing hierarchical port edges',1);a.a=0;d=NMb(b);QMb(b,d);PMb(a,b,d);LMb(b);e=kA(nub(b,(J6b(),Z5b)),83);f=b.b;JMb((Mpb(0,f.c.length),kA(f.c[0],26)),e,b);JMb(kA(xbb(f,f.c.length-1),26),e,b);g=b.b;HMb((Mpb(0,g.c.length),kA(g.c[0],26)));HMb(kA(xbb(g,g.c.length-1),26));zEc(c)} -function WVb(a){var b,c,d;b=kA(nub(a.d,(J6b(),a5b)),197);switch(b.g){case 2:c=OVb(a);break;case 3:c=(d=new Gbb,Sob(Pob(Tob(Rob(Rob(new Zob(null,new ekb(a.d.b,16)),new MWb),new OWb),new QWb),new cWb),new SWb(d)),d);break;default:throw x2(new Q4('Compaction not supported for '+b+' edges.'));}VVb(a,c);i5(new G9(a.g),new CWb(a))} -function Uac(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new ccb(d.i);h.a1){c?(g=kIb(b.c)+1):(g=kIb(j.c)-1);h=kA(xbb(a.a.b,g),26);FGb(j,h)}lJb(a,j,c)}}return b} -function hYb(a,b,c,d,e,f){this.b=c;this.d=e;if(a>=b.length){throw x2(new q3('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new vec(d);kec(this.e,this.c,(FDc(),EDc));this.i=new vec(d);kec(this.i,this.c,kDc);this.f=new cYb(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].j==(RGb(),MGb);this.a&&fYb(this,a,b.length)} -function Yqc(a,b,c){var d,e,f,g;xEc(c,'Processor order nodes',2);a.a=Vpb(nA(nub(b,(fqc(),dqc))));e=new yib;for(g=sib(b.b,0);g.b!=g.d.c;){f=kA(Gib(g),76);Vpb(mA(nub(f,(Ppc(),Mpc))))&&(pib(e,f,e.c.b,e.c),true)}d=(Lpb(e.b!=0),kA(e.a.a.c,76));Wqc(a,d);!c.b&&AEc(c,1);Zqc(a,d,0-Vpb(nA(nub(d,(Ppc(),Epc))))/2,0);!c.b&&AEc(c,1);zEc(c)} -function jwc(){this.b=(Es(),new Jhb);this.d=new Jhb;this.e=new Jhb;this.c=new Jhb;this.a=new Bgb;this.f=new Bgb;LYc(aU,new uwc,new wwc);LYc(_T,new Owc,new Qwc);LYc(YT,new Swc,new Uwc);LYc(ZT,new Wwc,new Ywc);LYc(xF,new $wc,new axc);LYc(lG,new ywc,new Awc);LYc($F,new Cwc,new Ewc);LYc(iG,new Gwc,new Iwc);LYc(UG,new Kwc,new Mwc)} -function DYb(a,b,c,d){var e,f,g,h,i,j;i=IYb(a,c);j=IYb(b,c);e=false;while(!!i&&!!j){if(d||GYb(i,j,c)){g=IYb(i,c);h=IYb(j,c);LYb(b);LYb(a);f=i.c;_Qb(i,false);_Qb(j,false);if(c){EGb(b,j.o,f);b.o=j.o;EGb(a,i.o+1,f);a.o=i.o}else{EGb(a,i.o,f);a.o=i.o;EGb(b,j.o+1,f);b.o=j.o}FGb(i,null);FGb(j,null);i=g;j=h;e=true}else{break}}return e} -function P5c(a,b,c,d,e,f,g,h){var i,j,k;i=0;b!=null&&(i^=hqb(b.toLowerCase()));c!=null&&(i^=hqb(c));d!=null&&(i^=hqb(d));g!=null&&(i^=hqb(g));h!=null&&(i^=hqb(h));for(j=0,k=f.length;ji){new bkc(b,a,h-i)}else if(h>0&&i>0){new bkc(a,b,0);new bkc(b,a,0)}} -function aCc(a){owc(a,new Evc(Pvc(Mvc(Ovc(Nvc(new Rvc,ySd),zSd),'Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points.'),new dCc)));mwc(a,ySd,WMd,ZBc);mwc(a,ySd,HQd,CWc($Bc));mwc(a,ySd,aSd,CWc(VBc));mwc(a,ySd,mQd,CWc(WBc));mwc(a,ySd,xQd,CWc(XBc))} -function WLb(a){var b,c,d;d=kA(nub(a,(J6b(),B5b)),19);if(d.Wb()){return}c=(b=kA(e4(nU),10),new ngb(b,kA(ypb(b,b.length),10),0));d.pc((yCc(),tCc))?hgb(c,tCc):hgb(c,uCc);d.pc(rCc)||hgb(c,rCc);d.pc(qCc)?hgb(c,xCc):d.pc(pCc)?hgb(c,wCc):d.pc(sCc)&&hgb(c,vCc);d.pc(xCc)?hgb(c,qCc):d.pc(wCc)?hgb(c,pCc):d.pc(vCc)&&hgb(c,sCc);qub(a,B5b,c)} -function koc(a,b){var c,d,e,f;if(0<(sA(a,13)?kA(a,13)._b():mo(a.tc()))){e=b;if(1=b.o){throw x2(new r3)}i=c>>5;h=c&31;g=O2(1,U2(O2(h,1)));f?(b.n[d][i]=N2(b.n[d][i],g)):(b.n[d][i]=z2(b.n[d][i],M2(g)));g=O2(g,1);e?(b.n[d][i]=N2(b.n[d][i],g)):(b.n[d][i]=z2(b.n[d][i],M2(g)))}catch(a){a=w2(a);if(sA(a,305)){throw x2(new q3(zMd+b.o+'*'+b.p+AMd+c+qJd+d+BMd))}else throw x2(a)}} -function lTb(a,b){var c,d,e,f,g,h,i;e=new Gbb;i=new Gbb;c=kA(Cfb(iTb,a),15).tc();while(c.hc()){d=kA(c.ic(),151);ubb(e,d.b);ubb(e,Xkc(d));if(c.hc()){d=kA(c.ic(),151);vbb(i,Xkc(d));vbb(i,d.b)}}SSb(e,a.b);SSb(i,a.a);for(h=new ccb(e);h.aa.d[h.o]){c+=Zdc(a.b,f);Nab(a.a,d5(f))}}else{++g}}c+=a.b.d*g;while(!Tab(a.a)){Xdc(a.b,kA(Xab(a.a),21).a)}}return c} -function cmc(a){var b,c,d,e,f,g;e=a.g.ed();d=a.b.ed();if(a.e){for(c=0;c_Qd){f=b;g=0;while($wnd.Math.abs(b-f)<_Qd){++g;b=Vpb(nA(e.ic()));d.ic()}if(g0){d=(!a.n&&(a.n=new zkd(LV,a,1,7)),kA(kA(WXc(a.n,0),137),263)).a;!d||I6(I6((b.a+=' "',b),d),'"')}}else{I6(I6((b.a+=' "',b),c),'"')}I6(D6(I6(D6(I6(D6(I6(D6((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function oTc(a){var b,c,d;if((a.Db&64)!=0)return tPc(a);b=new O6(WSd);c=a.k;if(!c){!a.n&&(a.n=new zkd(LV,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new zkd(LV,a,1,7)),kA(kA(WXc(a.n,0),137),263)).a;!d||I6(I6((b.a+=' "',b),d),'"')}}else{I6(I6((b.a+=' "',b),c),'"')}I6(D6(I6(D6(I6(D6(I6(D6((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} -function Ixd(a){var b,c,d,e,f,g;f=0;b=j9c(a);!!b.Qi()&&(f|=4);(a.Bb&iVd)!=0&&(f|=2);if(sA(a,62)){c=kA(a,17);e=Wkd(c);(c.Bb&bTd)!=0&&(f|=32);if(e){Lbd(I9c(e));f|=8;g=e.t;(g>1||g==-1)&&(f|=16);(e.Bb&bTd)!=0&&(f|=64)}(c.Bb&sLd)!=0&&(f|=jVd);f|=hVd}else{if(sA(b,425)){f|=512}else{d=b.Qi();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} -function dwc(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=kA(G8(a.a,b),180);if(!e){for(d=(h=(new R9(a.b)).a.Tb().tc(),new W9(h));d.a.hc();){c=(f=kA(d.a.ic(),38),kA(f.lc(),180));g=c.c;i=b.length;if(Z5(g.substr(g.length-i,i),b)&&(b.length==g.length||X5(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&J8(a.a,b,e)}return e} -function Eyd(a,b){var c;if(a.f==Cyd){c=_td(rtd((uyd(),syd),b));return a.e?c==4&&b!=(Ozd(),Mzd)&&b!=(Ozd(),Jzd)&&b!=(Ozd(),Kzd)&&b!=(Ozd(),Lzd):c==2}if(!!a.d&&(a.d.pc(b)||a.d.pc(aud(rtd((uyd(),syd),b)))||a.d.pc(ftd((uyd(),syd),a.b,b)))){return true}if(a.f){if(ytd((uyd(),a.f),cud(rtd(syd,b)))){c=_td(rtd(syd,b));return a.e?c==4:c==2}}return false} -function Frc(a,b,c,d){var e,f,g,h,i,j,k,l;g=kA(AOc(c,($Ac(),JAc)),9);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=rRd);e+=b;e>rRd&&(e-=rRd);h=kA(AOc(d,JAc),9);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=rRd);f+=b;f>rRd&&(f-=rRd);return yv(),Bv(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Cv(isNaN(e),isNaN(f))} -function Xtb(a,b,c,d){var e,f;Wtb(a,b,c,d);iub(b,a.j-b.j+c);jub(b,a.k-b.k+d);for(f=new ccb(b.f);f.ac.k&&hj&&d>j){j=Vpb(c.p[h.o])+Vpb(c.d[h.o])+h.n.b+h.d.a}else{e=false;a.a&&(S6(),R6);break}}if(!e){break}}a.a&&(S6(),R6);return e} -function qac(a,b){var c,d,e,f,g;a.c==null||a.c.lengthf*2){k=new _Ec(l);j=WEc(g)/VEc(g);i=MEc(k,b,new XGb,c,d,e,j);vyc(Cyc(k.e),i);l.c=tz(NE,oJd,1,0,5,1);l.c[l.c.length]=k;l.c[l.c.length]=g;f=WEc(k)*VEc(k)+WEc(g)*VEc(g)}else{l.c[l.c.length]=g;f+=WEc(g)*VEc(g)}}return l} -function DFd(a){switch(a){case 100:return IFd(VWd,true);case 68:return IFd(VWd,false);case 119:return IFd(WWd,true);case 87:return IFd(WWd,false);case 115:return IFd(XWd,true);case 83:return IFd(XWd,false);case 99:return IFd(YWd,true);case 67:return IFd(YWd,false);case 105:return IFd(ZWd,true);case 73:return IFd(ZWd,false);default:throw x2(new Tv(UWd+a.toString(16)));}} -function NDb(a,b,c){var d,e,f,g,h,i,j,k;if(b.o==0){b.o=1;g=c;if(!c){e=new Gbb;f=(d=kA(e4(rU),10),new ngb(d,kA(ypb(d,d.length),10),0));g=new fGc(e,f)}kA(g.a,15).nc(b);b.j==(RGb(),MGb)&&kA(g.b,19).nc(kA(nub(b,(E2b(),V1b)),69));for(i=new ccb(b.i);i.ah){h=e;k.c=tz(NE,oJd,1,0,5,1)}e==h&&tbb(k,new fGc(c.c.g,c))}bdb();Dbb(k,a.c);sbb(a.b,i.o,k)}}} -function djc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new ccb(b.b);g.ah){h=e;k.c=tz(NE,oJd,1,0,5,1)}e==h&&tbb(k,new fGc(c.d.g,c))}bdb();Dbb(k,a.c);sbb(a.f,i.o,k)}}} -function Jwb(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=new Jyc(c,d);Gyc(i,kA(nub(b,(Byb(),yyb)),9));for(m=new ccb(b.e);m.a=40;g&&H$b(a);y$b(a);x$b(a);c=B$b(a);d=0;while(!!c&&d0&&mib(a.e,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&mib(a.d,f)}}}}} -function hmc(a){var b,c,d,e,f,g,h,i,j,k,l;h=new Gbb;f=Vpb(nA(a.g.cd(a.g._b()-1)));for(l=a.g.tc();l.hc();){k=nA(l.ic());sbb(h,0,f-(Npb(k),k))}g=Yyc(Xlc(a));j=new Gbb;e=new ccb(h);i=new Gbb;for(b=0;b1)&&b==1&&kA(a.a[a.b],8).j==(RGb(),NGb)){BQb(kA(a.a[a.b],8),(jHc(),fHc))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&kA(a.a[a.c-1&a.a.length-1],8).j==(RGb(),NGb)){BQb(kA(a.a[a.c-1&a.a.length-1],8),(jHc(),gHc))}else if((a.c-a.b&a.a.length-1)==2){BQb(kA(Uab(a),8),(jHc(),fHc));BQb(kA(Uab(a),8),gHc)}else{yQb(a,e)}Pab(a)} -function LSb(a){var b,c;if(a.Wb()){return}c=kA(a.cd(0),151).f;new oTb(a);b=new s9(c.i,0);mTb((Flc(),klc),b);nTb(Blc,b);KSb((FDc(),lDc),b);lTb(jlc,b);nTb(nlc,b);kTb(glc,b);mTb(hlc,b);KSb(kDc,b);lTb(flc,b);mTb(ilc,b);kTb(mlc,b);mTb(nlc,b);KSb(CDc,b);lTb(llc,b);mTb(Blc,b);kTb(Elc,b);nTb(ilc,b);while(b.b=0){h=Mz(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&&Iz(i);if(f){if(d){zz=Sz(a);e&&(zz=Yz(zz,(fA(),dA)))}else{zz=Cz(a.l,a.m,a.h)}}return i} -function Xac(a,b,c,d){var e,f,g,h,i,j,k,l;abc(a,b,c);f=b[c];l=d?(FDc(),EDc):(FDc(),kDc);if(Yac(b.length,c,d)){e=b[d?c-1:c+1];Tac(a,e,d?(U7b(),S7b):(U7b(),R7b));for(i=0,k=f.length;i0){e=h.length;while(e>0&&h[e-1]==''){--e}e=0&&h!=c){f=new Mid(a,1,h,g,null);!d?(d=f):d.Sh(f)}if(c>=0){f=new Mid(a,1,c,h==c?g:null,b);!d?(d=f):d.Sh(f)}}return d} -function $tb(a,b,c,d){var e,f,g,h,i,j,k;if(Ztb(a,b,c,d)){return true}else{for(g=new ccb(b.f);g.a=e){for(g=1;g0){e=kA(a.Ab.g,1627);if(b==null){for(f=0;f1){for(d=new ccb(e);d.ab.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*xLd)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*xLd)+1);if(c>d+1){return e}else if(c0&&(g=F7(g,B8(d)));return z7(f,g)}}else return ei+o){p=l.i+m.i;m.a=(m.i*m.a+l.i*l.a)/p;m.i=p;l.g=m;c=true}}f=h;l=m}}return c} -function JFb(a,b){var c,d,e,f,g,h,i,j,k;e=a.g;g=e.n.a;f=e.n.b;if(g<=0&&f<=0){return FDc(),DDc}j=a.k.a;k=a.k.b;h=a.n.a;c=a.n.b;switch(b.g){case 2:case 1:if(j<0){return FDc(),EDc}else if(j+h>g){return FDc(),kDc}break;case 4:case 3:if(k<0){return FDc(),lDc}else if(k+c>f){return FDc(),CDc}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(FDc(),EDc):i+d>=1&&i-d>=0?(FDc(),kDc):d<0.5?(FDc(),lDc):(FDc(),CDc)} -function cx(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(a.charCodeAt(b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=ax(a,b);if(g==0&&b[0]==f){return false}if(b[0]=14&&c<=16));case 11:return b!=null&&typeof b===iJd;case 12:return b!=null&&(typeof b===fJd||typeof b==iJd);case 0:return jA(b,a.__elementTypeId$);case 2:return xA(b)&&!(b.sl===g3);case 1:return xA(b)&&!(b.sl===g3)||jA(b,a.__elementTypeId$);default:return true;}} -function BQb(a,b){var c,d,e,f,g,h;if(a.j==(RGb(),NGb)){c=Qob(Pob(kA(nub(a,(E2b(),t2b)),15).xc(),new Rmb(new MQb))).a==null?(jHc(),hHc):b;qub(a,b2b,c);if(c!=(jHc(),gHc)){d=kA(nub(a,i2b),14);h=Vpb(nA(nub(d,(J6b(),f5b))));g=0;if(c==fHc){g=a.n.b-$wnd.Math.ceil(h/2)}else if(c==hHc){a.n.b-=Vpb(nA(nub(uGb(a),m6b)));g=(a.n.b-$wnd.Math.ceil(h))/2}for(f=new ccb(a.i);f.a0){krb(i,false,(gBc(),cBc));krb(i,true,dBc)}wbb(b.g,new UWb(a,c));I8(a.g,b,c)} -function $yb(a,b){var c,d,e,f,g,h,i;f=0;h=0;i=0;for(e=new ccb(a.f.e);e.a0&&a.d!=(kzb(),jzb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(kzb(),hzb)&&(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 Jyc(h/f,b.d.b);case 2:return new Jyc(b.d.a,i/f);default:return new Jyc(h/f,i/f);}} -function oTb(a){jTb();var b,c,d,e,f,g,h,i,j,k;this.b=new qTb;this.c=new Gbb;this.a=new Gbb;for(i=Qlc(),j=0,k=i.length;j0){for(g=0;g>16==-15&&a.Cb.Hg()&&o$c(new Nid(a.Cb,9,13,c,a.c,pcd(njd(kA(a.Cb,53)),a)))}else if(sA(a.Cb,96)){if(a.Db>>16==-23&&a.Cb.Hg()){b=a.c;sA(b,96)||(b=(j7c(),a7c));sA(c,96)||(c=(j7c(),a7c));o$c(new Nid(a.Cb,9,10,c,b,pcd(Ebd(kA(a.Cb,24)),a)))}}}}return a.c} -function xHd(a){UGd();var b,c,d,e,f;if(a.e!=4&&a.e!=5)throw x2(new O4('Token#complementRanges(): must be RANGE: '+a.e));uHd(a);rHd(a);d=a.b.length+2;a.b[0]==0&&(d-=2);c=a.b[a.b.length-1];c==TWd&&(d-=2);e=(++TGd,new wHd(4));e.b=tz(FA,OKd,22,d,15,1);f=0;if(a.b[0]>0){e.b[f++]=0;e.b[f++]=a.b[0]-1}for(b=1;b=65;c--){wEd[c]=c-65<<24>>24}for(d=122;d>=97;d--){wEd[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){wEd[e]=e-48+52<<24>>24}wEd[43]=62;wEd[47]=63;for(f=0;f<=25;f++)xEd[f]=65+f&AKd;for(g=26,i=0;g<=51;++g,i++)xEd[g]=97+i&AKd;for(a=52,h=0;a<=61;++a,h++)xEd[a]=48+h&AKd;xEd[62]=43;xEd[63]=47} -function iRb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.d;k=kA(nub(a,(E2b(),D2b)),15);l=0;if(k){i=0;for(f=k.tc();f.hc();){e=kA(f.ic(),8);i=$wnd.Math.max(i,e.n.b);l+=e.n.a}l+=b/2*(k._b()-1);g.d+=i+b}c=kA(nub(a,I1b),15);d=0;if(c){i=0;for(f=c.tc();f.hc();){e=kA(f.ic(),8);i=$wnd.Math.max(i,e.n.b);d+=e.n.a}d+=b/2*(c._b()-1);g.a+=i+b}h=$wnd.Math.max(l,d);if(h>a.n.a){j=(h-a.n.a)/2;g.b=$wnd.Math.max(g.b,j);g.c=$wnd.Math.max(g.c,j)}} -function H$b(a){var b,c,d,e,f,g,h;a.o=new qlb;d=new yib;for(g=new ccb(a.e.a);g.a0;h=AZb(b,f);c?RZb(h.b,b):RZb(h.g,b);OZb(h).c.length==1&&(pib(d,h,d.c.b,d.c),true);e=new fGc(f,b);plb(a.o,e);Abb(a.e.a,f)}} -function sjc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(hic(),gic)?vGb(b.b):zGb(b.b)):(e=a.a.c==(hic(),fic)?vGb(b.b):zGb(b.b));f=false;for(d=(Zn(),new Zo(Rn(Dn(e.a,new Hn))));So(d);){c=kA(To(d),14);g=Vpb(a.a.f[a.a.g[b.b.o].o]);if(!g&&!JEb(c)&&c.c.g.c==c.d.g.c){continue}if(Vpb(a.a.n[a.a.g[b.b.o].o])||Vpb(a.a.n[a.a.g[b.b.o].o])){continue}f=true;if(Hgb(a.b,a.a.g[kjc(c,b.b).o])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} -function CFc(a,b){var c,d,e,f,g,h,i;if(!mTc(a)){throw x2(new Q4(BSd))}d=mTc(a);f=d.g;e=d.f;if(f<=0&&e<=0){return FDc(),DDc}h=a.i;i=a.j;switch(b.g){case 2:case 1:if(h<0){return FDc(),EDc}else if(h+a.g>f){return FDc(),kDc}break;case 4:case 3:if(i<0){return FDc(),lDc}else if(i+a.f>e){return FDc(),CDc}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(FDc(),EDc):g+c>=1&&g-c>=0?(FDc(),kDc):c<0.5?(FDc(),lDc):(FDc(),CDc)} -function bDb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.Wb()){return new Hyc}j=0;l=0;for(e=a.tc();e.hc();){d=kA(e.ic(),31);f=d.e;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Vpb(nA(nub(kA(a.tc().ic(),31),(J6b(),J4b)))));m=0;n=0;i=0;c=b;for(h=a.tc();h.hc();){g=kA(h.ic(),31);k=g.e;if(m+k.a>j){m=0;n+=i+b;i=0}SCb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new Jyc(c+b,n+i+b)} -function m_c(a,b,c){var d,e,f,g,h,i,j,k;d=c._b();if(d==0){return false}else{if(a.ti()){j=a.ui();OXc(a,b,c);g=d==1?a.mi(3,null,c.tc().ic(),b,j):a.mi(5,null,c,b,j);if(a.qi()){h=d<100?null:new f_c(d);f=b+d;for(e=b;e1){for(d=sib(e,0);d.b!=d.d.c;){c=kA(Gib(d),202);f=0;for(i=new ccb(c.e);i.ah?1:-1:n8(a.a,b.a,f);if(e==-1){l=-i;k=g==i?q8(b.a,h,a.a,f):l8(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return y7(),x7}k=q8(a.a,f,b.a,h)}else{k=l8(a.a,f,b.a,h)}}j=new M7(l,k.length,k);A7(j);return j} -function B8(a){u8();var b,c,d,e;b=zA(a);if(a1000000){throw x2(new o3('power of ten too big'))}if(a<=jJd){return H7(G7(s8[1],b),b)}d=G7(s8[1],jJd);e=d;c=E2(a-jJd);b=zA(a%jJd);while(A2(c,jJd)>0){e=F7(e,d);c=R2(c,jJd)}e=F7(e,G7(s8[1],b));e=H7(e,jJd);c=E2(a-jJd);while(A2(c,jJd)>0){e=H7(e,jJd);c=R2(c,jJd)}e=H7(e,b);return e} -function hgc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;c=p$b(new r$b,a.f);j=a.i[b.c.g.o];n=a.i[b.d.g.o];i=b.c;m=b.d;h=i.a.b;l=m.a.b;j.b||(h+=i.k.b);n.b||(l+=m.k.b);k=zA($wnd.Math.max(0,h-l));g=zA($wnd.Math.max(0,l-h));o=(p=v5(1,kA(nub(b,(J6b(),g6b)),21).a),q=Vfc(b.c.g.j,b.d.g.j),p*q);e=DZb(GZb(FZb(EZb(HZb(new IZb,o),g),c),kA(F8(a.k,b.c),113)));f=DZb(GZb(FZb(EZb(HZb(new IZb,o),k),c),kA(F8(a.k,b.d),113)));d=new Bgc(e,f);a.c[b.o]=d} -function LIc(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);QHc(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){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);RHc(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).toString(16);c='\\x'+j6(b,b.length-2,b.length)}else if(a>=sLd){b='0'+(a>>>0).toString(16);c='\\v'+j6(b,b.length-6,b.length)}else c=''+String.fromCharCode(a&AKd);}return c} -function emc(a){var b,c,d,e,f,g;Tlc(this);for(c=a._b()-1;c<3;c++){a.bd(0,kA(a.cd(0),9))}if(a._b()<4){throw x2(new O4('At (least dimension + 1) control points are necessary!'))}else{this.c=3;this.e=true;this.f=true;this.d=false;Ulc(this,a._b()+this.c-1);g=new Gbb;f=this.g.tc();for(b=0;b=0&&f!=c){throw x2(new O4(UTd))}}e=0;for(i=0;iVpb(Obc(g.g,g.d[0]).a)){Lpb(i.b>0);i.a.cd(i.c=--i.b);r9(i,g);e=true}else if(!!h.e&&h.e._b()>0){f=(!h.e&&(h.e=new Gbb),h.e).vc(b);j=(!h.e&&(h.e=new Gbb),h.e).vc(c);if(f||j){(!h.e&&(h.e=new Gbb),h.e).nc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} -function Vwb(a,b,c){var d,e,f,g,h,i;d=0;for(f=new a0c((!a.a&&(a.a=new zkd(MV,a,10,11)),a.a));f.e!=f.i._b();){e=kA($_c(f),35);g='';(!e.n&&(e.n=new zkd(LV,e,1,7)),e.n).i==0||(g=kA(kA(WXc((!e.n&&(e.n=new zkd(LV,e,1,7)),e.n),0),137),263).a);h=new pxb(g);lub(h,e);qub(h,(Byb(),zyb),e);h.b=d++;h.d.a=e.i+e.g/2;h.d.b=e.j+e.f/2;h.e.a=$wnd.Math.max(e.g,1);h.e.b=$wnd.Math.max(e.f,1);tbb(b.e,h);Xgb(c.d,e,h);i=kA(AOc(e,(qyb(),hyb)),83);i==(VCc(),UCc)&&TCc}} -function sPb(a,b,c,d){var e,f,g,h,i,j,k;if(c.c.g==b.g){return}e=new IGb(a);GGb(e,(RGb(),OGb));qub(e,(E2b(),i2b),c);qub(e,(J6b(),Z5b),(VCc(),QCc));d.c[d.c.length]=e;g=new lHb;jHb(g,e);kHb(g,(FDc(),EDc));h=new lHb;jHb(h,e);kHb(h,kDc);MEb(c,g);f=new PEb;lub(f,c);qub(f,p5b,null);LEb(f,h);MEb(f,b);vPb(e,g,h);j=new s9(c.b,0);while(j.b0){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 ENb(a,b){var c,d,e,f,g,h,i,j,k;xEc(b,'Layer constraint edge reversal',1);for(g=new ccb(a.b);g.ac){zEc(b);return}switch(kA(nub(a,(J6b(),D6b)),319).g){case 2:f=new oZb;break;case 0:f=new iYb;break;default:f=new rZb;}d=f.sf(a,e);if(!f.tf()){switch(kA(nub(a,H6b),347).g){case 2:d=xZb(e,d);break;case 1:d=wZb(e,d);}}uZb(a,e,d);zEc(b)} -function v_c(a,b,c){var d,e,f,g;if(a.ti()){e=null;f=a.ui();d=a.mi(1,g=$Xc(a,b,c),c,b,f);if(a.qi()&&!(a.Bh()&&g!=null?kb(g,c):yA(g)===yA(c))){g!=null&&(e=a.si(g,null));e=a.ri(c,e);a.xi()&&(e=a.Ai(g,c,e));if(!e){a.ni(d)}else{e.Sh(d);e.Th()}}else{a.xi()&&(e=a.Ai(g,c,null));if(!e){a.ni(d)}else{e.Sh(d);e.Th()}}return g}else{g=$Xc(a,b,c);if(a.qi()&&!(a.Bh()&&g!=null?kb(g,c):yA(g)===yA(c))){e=null;g!=null&&(e=a.si(g,null));e=a.ri(c,e);!!e&&e.Th()}return g}} -function Abd(a){var b,c,d,e,f,g,h;if(!a.d){h=new Ded;b=tbd;f=b.a.Zb(a,b);if(f==null){for(d=new a0c(Kbd(a));d.e!=d.i._b();){c=kA($_c(d),24);gXc(h,Abd(c))}b.a.$b(a)!=null;b.a._b()==0&&undefined}g=h.i;for(e=(!a.q&&(a.q=new zkd(tY,a,11,10)),new a0c(a.q));e.e!=e.i._b();++g){kA($_c(e),371)}gXc(h,(!a.q&&(a.q=new zkd(tY,a,11,10)),a.q));_Xc(h);a.d=new Vdd((kA(WXc(Ibd((P6c(),O6c).o),9),17),h.i),h.g);a.e=kA(h.g,611);a.e==null&&(a.e=ubd);Jbd(a).b&=-17}return a.d} -function Lud(a,b,c,d){var e,f,g,h,i,j;j=yyd(a.e.mg(),b);i=0;e=kA(a.g,124);wyd();if(kA(b,61).bj()){for(g=0;g1&&(i>WEc(h)*VEc(h)/2||g.b==0)){l=new _Ec(m);k=WEc(h)/VEc(h);j=MEc(l,b,new XGb,c,d,e,k);vyc(Cyc(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=tz(NE,oJd,1,0,5,1)}}}vbb(n,m);return n} -function BMb(a,b){var c,d,e,f,g,h,i,j,k;xEc(b,'Hierarchical port dummy size processing',1);i=new Gbb;k=new Gbb;d=Vpb(nA(nub(a,(J6b(),l6b))));c=d*2;for(f=new ccb(a.b);f.a=q&&a.e[i.o]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Gbb;pg(g,f);f.a.Pb();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new fGc(n,m)} -function vic(a){var b,c,d,e,f,g,h,i,j,k,l,m;b=Oic(a);for(k=(h=(new G9(b)).a.Tb().tc(),new M9(h));k.a.hc();){j=(e=kA(k.a.ic(),38),kA(e.kc(),8));l=j.d.d;m=j.n.b+j.d.a;a.d[j.o]=0;c=j;while((f=a.a[c.o])!=j){d=Qic(c,f);a.c==(hic(),fic)?(i=d.d.k.b+d.d.a.b-d.c.k.b-d.c.a.b):(i=d.c.k.b+d.c.a.b-d.d.k.b-d.d.a.b);g=Vpb(a.d[c.o])+i;a.d[f.o]=g;l=$wnd.Math.max(l,f.d.d-g);m=$wnd.Math.max(m,g+f.n.b+f.d.a);c=f}c=j;do{a.d[c.o]=Vpb(a.d[c.o])+l;c=a.a[c.o]}while(c!=j);a.b[j.o]=l+m}} -function xnc(a,b,c){var d,e,f,g,h,i,j,k,l,m;snc(this);c==(inc(),gnc)?Ggb(this.o,a):Ggb(this.t,a);k=oLd;j=pLd;for(g=b.a.Xb().tc();g.hc();){e=kA(g.ic(),48);h=kA(e.a,417);d=kA(e.b,14);i=d.c;i==a&&(i=d.d);h==gnc?Ggb(this.o,i):Ggb(this.t,i);m=Pyc(xz(pz(aU,1),cKd,9,0,[i.g.k,i.k,i.a])).b;k=$wnd.Math.min(k,m);j=$wnd.Math.max(j,m)}l=Pyc(xz(pz(aU,1),cKd,9,0,[a.g.k,a.k,a.a])).b;vnc(this,l,k,j);for(f=b.a.Xb().tc();f.hc();){e=kA(f.ic(),48);tnc(this,kA(e.b,14))}this.k=false} -function h7(a){var b,c,d,e;d=j8((!a.c&&(a.c=Y7(a.f)),a.c),0);if(a.e==0||a.a==0&&a.f!=-1&&a.e<0){return d}b=g7(a)<0?1:0;c=a.e;e=(d.length+1+u5(zA(a.e)),new N6);b==1&&(e.a+='-',e);if(a.e>0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>X6.length;c-=X6.length){J6(e,X6)}K6(e,X6,zA(c));I6(e,d.substr(b,d.length-b))}else{c=b-c;I6(e,j6(d,b,zA(c)));e.a+='.';I6(e,i6(d,zA(c)))}}else{I6(e,d.substr(b,d.length-b));for(;c<-X6.length;c+=X6.length){J6(e,X6)}K6(e,X6,zA(-c))}return e.a} -function mId(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=tz(CA,yKd,22,f,15,1);Tpb(0,f,a.length);Tpb(0,f,i.length);_5(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?j6(c.a,0,f-1):''}}else{return !c?a:c.a}} -function nwc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new R9(a.c.b)).a.Tb().tc(),new W9(j));c.a.hc();){b=(h=kA(c.a.ic(),38),kA(h.lc(),180));e=b.a;e==null&&(e='');d=fwc(a.c,e);!d&&e.length==0&&(d=rwc(a));!!d&&!qg(d.c,b,false)&&mib(d.c,b)}for(g=sib(a.a,0);g.b!=g.d.c;){f=kA(Gib(g),436);k=gwc(a.c,f.a);n=gwc(a.c,f.b);!!k&&!!n&&mib(k.c,new fGc(n,f.c))}xib(a.a);for(m=sib(a.b,0);m.b!=m.d.c;){l=kA(Gib(m),436);b=cwc(a.c,l.a);i=gwc(a.c,l.b);!!b&&!!i&&Bvc(b,i,l.c)}xib(a.b)} -function Lkc(a,b,c){var d,e,f,g,h,i,j,k,l;i=c+b.c.c.a;for(l=new ccb(b.i);l.a1;for(h=new fIb(k.c);_bb(h.a)||_bb(h.b);){g=kA(_bb(h.a)?acb(h.a):acb(h.b),14);j=g.c==k?g.d:g.c;$wnd.Math.abs(Pyc(xz(pz(aU,1),cKd,9,0,[j.g.k,j.k,j.a])).b-f.b)>1&&Fkc(a,g,f,e,k)}}} -function Bbd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new ied;h=new ied;b=tbd;g=b.a.Zb(a,b);if(g==null){for(f=new a0c(Kbd(a));f.e!=f.i._b();){e=kA($_c(f),24);gXc(i,Bbd(e))}b.a.$b(a)!=null;b.a._b()==0&&undefined}for(d=(!a.s&&(a.s=new zkd(zY,a,21,17)),new a0c(a.s));d.e!=d.i._b();){c=kA($_c(d),158);sA(c,62)&&fXc(h,kA(c,17))}_Xc(h);a.r=new Aed(a,(kA(WXc(Ibd((P6c(),O6c).o),6),17),h.i),h.g);gXc(i,a.r);_Xc(i);a.f=new Vdd((kA(WXc(Ibd(O6c.o),5),17),i.i),i.g);Jbd(a).b&=-3}return a.f} -function jtb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=tz(FA,OKd,22,g,15,1);e=tz(FA,OKd,22,g,15,1);c=a.p;b=tz(FA,OKd,22,c,15,1);f=tz(FA,OKd,22,c,15,1);for(j=0;j=0&&!Qtb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!Qtb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&Utb(a,i,m,false,true)}}} -function $Qc(){$Qc=d3;YQc=xz(pz(CA,1),yKd,22,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]);ZQc=new RegExp('[ \t\n\r\f]+');try{XQc=xz(pz(hZ,1),oJd,1699,0,[new hhd((px(),rx("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",ux((tx(),tx(),sx))))),new hhd(rx("yyyy-MM-dd'T'HH:mm:ss'.'SSS",ux((null,sx)))),new hhd(rx("yyyy-MM-dd'T'HH:mm:ss",ux((null,sx)))),new hhd(rx("yyyy-MM-dd'T'HH:mm",ux((null,sx)))),new hhd(rx('yyyy-MM-dd',ux((null,sx))))])}catch(a){a=w2(a);if(!sA(a,78))throw x2(a)}} -function UYb(a,b){var c,d,e,f,g;f=new Vyc;switch(a.a.g){case 1:case 3:pg(f,b.e.a);mib(f,b.i.k);pg(f,Wr(b.j.a));mib(f,b.a.k);pg(f,b.f.a);break;default:pg(f,b.e.a);pg(f,Wr(b.j.a));pg(f,b.f.a);}xib(b.f.a);pg(b.f.a,f);LEb(b.f,b.e.c);c=kA(nub(b.e,(J6b(),p5b)),74);e=kA(nub(b.j,p5b),74);d=kA(nub(b.f,p5b),74);if(!!c||!!e||!!d){g=new Vyc;SYb(g,d);SYb(g,e);SYb(g,c);qub(b.f,p5b,g)}LEb(b.j,null);MEb(b.j,null);LEb(b.e,null);MEb(b.e,null);FGb(b.a,null);FGb(b.i,null);!!b.g&&UYb(a,b.g)} -function Gvb(a){owc(a,new Evc(Pvc(Mvc(Ovc(Nvc(new Rvc,SMd),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new Jvb)));mwc(a,SMd,TMd,CWc(Evb));mwc(a,SMd,UMd,CWc(yvb));mwc(a,SMd,VMd,CWc(tvb));mwc(a,SMd,WMd,CWc(zvb));mwc(a,SMd,rMd,CWc(Cvb));mwc(a,SMd,sMd,CWc(Bvb));mwc(a,SMd,qMd,CWc(Dvb));mwc(a,SMd,tMd,CWc(Avb));mwc(a,SMd,NMd,CWc(vvb));mwc(a,SMd,OMd,CWc(uvb));mwc(a,SMd,PMd,CWc(wvb));mwc(a,SMd,QMd,CWc(xvb))} -function $w(a,b,c){var d,e,f,g,h,i,j,k,l;g=new Yx;j=xz(pz(FA,1),OKd,22,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(!fx(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!fx(b,j,k,0,g)){return 0}}}else{e=-1;if(k.c.charCodeAt(0)==32){l=j[0];dx(b,j);if(j[0]>l){continue}}else if(h6(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!Xx(g,c)){return 0}return j[0]} -function Azb(a,b,c){var d,e,f,g,h;d=kA(nub(a,(J6b(),O4b)),19);c.a>b.a&&(d.pc((l_b(),f_b))?(a.c.a+=(c.a-b.a)/2):d.pc(h_b)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.pc((l_b(),j_b))?(a.c.b+=(c.b-b.b)/2):d.pc(i_b)&&(a.c.b+=c.b-b.b));if(kA(nub(a,(E2b(),X1b)),19).pc((Z0b(),S0b))&&(c.a>b.a||c.b>b.b)){for(h=new ccb(a.a);h.ab.a&&(d.pc((l_b(),f_b))?(a.c.a+=(c.a-b.a)/2):d.pc(h_b)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.pc((l_b(),j_b))?(a.c.b+=(c.b-b.b)/2):d.pc(i_b)&&(a.c.b+=c.b-b.b));if(kA(nub(a,(E2b(),X1b)),19).pc((Z0b(),S0b))&&(c.a>b.a||c.b>b.b)){for(g=new ccb(a.a);g.an||d+e>j){throw x2(new p3)}if((l.i&1)==0&&m!=i){k=lA(a);f=lA(c);if(yA(a)===yA(c)&&bd;){wz(f,h,k[--b])}}else{for(h=d+e;d0&&xpb(a,b,c,d,e,true)} -function azb(a,b,c){var d,e,f,g,h,i,j,k,l,m;k=new Hjb(new qzb(c));h=tz(u2,$Md,22,a.f.e.c.length,16,1);wcb(h,h.length);c[b.b]=0;for(j=new ccb(a.f.e);j.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]=h?l8(a.a,f,b.a,h):l8(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:n8(a.a,b.a,f);if(e==0){return y7(),x7}if(e==1){m=g;l=q8(a.a,f,b.a,h)}else{m=i;l=q8(b.a,h,a.a,f)}}j=new M7(m,l.length,l);A7(j);return j} -function xAb(a,b){var c,d,e,f,g,h;for(g=new e9((new X8(a.f.b)).a);g.b;){f=c9(g);e=kA(f.kc(),536);if(b==1){if(e.Je()!=(gBc(),fBc)&&e.Je()!=bBc){continue}}else{if(e.Je()!=(gBc(),cBc)&&e.Je()!=dBc){continue}}d=kA(kA(f.lc(),48).b,80);h=kA(kA(f.lc(),48).a,172);c=h.c;switch(e.Je().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 NFb(a,b,c,d){var e,f,g,h,i,j,k;f=PFb(d);h=Vpb(mA(nub(d,(J6b(),z5b))));if((h||Vpb(mA(nub(a,l5b))))&&!XCc(kA(nub(a,Z5b),83))){e=IDc(f);i=VFb(a,c,c==(U7b(),S7b)?e:GDc(e))}else{i=new lHb;jHb(i,a);if(b){k=i.k;k.a=b.a-a.k.a;k.b=b.b-a.k.b;wyc(k,0,0,a.n.a,a.n.b);kHb(i,JFb(i,f))}else{e=IDc(f);kHb(i,c==(U7b(),S7b)?e:GDc(e))}g=kA(nub(d,(E2b(),X1b)),19);j=i.i;switch(f.g){case 2:case 1:(j==(FDc(),lDc)||j==CDc)&&g.nc((Z0b(),W0b));break;case 4:case 3:(j==(FDc(),kDc)||j==EDc)&&g.nc((Z0b(),W0b));}}return i} -function zfc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=tz(FA,OKd,22,b.b.c.length,15,1);j=tz(QK,jKd,232,b.b.c.length,0,1);i=tz(RK,VNd,8,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=l8b(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new ccb(k.f);f.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 ';whd(a.b,b)}else{if(a.f){b.a+=' extends ';whd(a.f,b)}}}} -function ezb(a,b){var c,d,e,f,g,h,i,j;a.f=b;a.d=kA(nub(a.f,(Ryb(),Myb)),348);a.g=kA(nub(a.f,Qyb),21).a;a.e=Vpb(nA(nub(a.f,Nyb)));a.c=Vpb(nA(nub(a.f,Lyb)));Up(a.b);for(d=new ccb(a.f.c);d.a=0){return false}else if(!!c.e&&e==(RGb(),KGb)&&e!=c.e){return false}else{b.o=c.b;tbb(c.f,b)}c.e=e;if(e==(RGb(),OGb)||e==QGb||e==KGb){for(g=new ccb(b.i);g.a0&&d<=e){j-=d;f=h;g=h}else{a.a==null&&bZb(a);if(a.a[g]){j+=e;f=g}}if(f>0){tbb(l,d5(f));h=-1;k=false;do{if(c.hc()){i=d5(kA(c.ic(),21).a+j)}else{break m}}while(i.a<=g)}}else{a.a==null&&bZb(a);a.a[g]&&(h=g);if(g==i.a){a.a==null&&bZb(a);if(a.a[g]){l.c[l.c.length]=i;h=-1;if(c.hc()){i=d5(kA(c.ic(),21).a+j)}else{break}}else{k=true}}}++g}return l} -function bQc(a){var b,c,d,e;if((a.Db&64)!=0)return bPc(a);b=new O6(QSd);d=a.k;if(!d){!a.n&&(a.n=new zkd(LV,a,1,7));if(a.n.i>0){e=(!a.n&&(a.n=new zkd(LV,a,1,7)),kA(kA(WXc(a.n,0),137),263)).a;!e||I6(I6((b.a+=' "',b),e),'"')}}else{I6(I6((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new pxd(HV,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new pxd(HV,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);I6(b,zb(new Cb(qJd),new a0c(a.b)));c&&(b.a+=']',b);b.a+=' -> ';c&&(b.a+='[',b);I6(b,zb(new Cb(qJd),new a0c(a.c)));c&&(b.a+=']',b);return b.a} -function iKb(a){var b,c,d,e,f,g;e=new Gbb;for(g=new ccb(a.c.i);g.aa.n.b){return false}c=AGb(a,kDc);h=b.d+b.a+(c._b()-1)*g;if(h>a.n.b){return false}}return true} -function rjc(a,b,c){var d,e,f,g,h,i,j,k;d=a.a.o==(pic(),oic)?oLd:pLd;h=sjc(a,new qjc(b,c));if(!h.a&&h.c){mib(a.c,h);return d}else if(h.a){e=h.a.c;i=h.a.d;if(c){j=a.a.c==(hic(),gic)?i:e;f=a.a.c==gic?e:i;g=a.a.g[f.g.o];k=Vpb(a.a.p[g.o])+Vpb(a.a.d[f.g.o])+f.k.b+f.a.b-Vpb(a.a.d[j.g.o])-j.k.b-j.a.b}else{j=a.a.c==(hic(),fic)?i:e;f=a.a.c==fic?e:i;k=Vpb(a.a.p[a.a.g[f.g.o].o])+Vpb(a.a.d[f.g.o])+f.k.b+f.a.b-Vpb(a.a.d[j.g.o])-j.k.b-j.a.b}a.a.n[a.a.g[e.g.o].o]=(B3(),B3(),true);a.a.n[a.a.g[i.g.o].o]=(null,true);return k}return d} -function lEb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Vpb(mA(nub(b,(J6b(),A5b))));m=null;f==(U7b(),R7b)&&d.c.g==c?(m=d.c):f==S7b&&d.d.g==c&&(m=d.d);j=g;if(!g||!l||!!m){k=(FDc(),DDc);m?(k=m.i):XCc(kA(nub(c,Z5b),83))&&(k=f==R7b?EDc:kDc);i=iEb(a,b,c,f,k,d);h=hEb((uGb(c),d));if(f==R7b){LEb(h,kA(xbb(i.i,0),11));MEb(h,e)}else{LEb(h,e);MEb(h,kA(xbb(i.i,0),11))}j=new vEb(d,h,i,kA(nub(i,(E2b(),i2b)),11),f,!m)}else{tbb(g.e,d);n=$wnd.Math.max(Vpb(nA(nub(g.d,f5b))),Vpb(nA(nub(d,f5b))));qub(g.d,f5b,n)}Le(a.a,d,new yEb(j.d,b,f));return j} -function Wqc(a,b){var c,d,e,f,g,h,i,j,k,l;qub(b,(Ppc(),Fpc),0);i=kA(nub(b,Dpc),76);if(b.d.b==0){if(i){k=Vpb(nA(nub(i,Ipc)))+a.a+Xqc(i,b);qub(b,Ipc,k)}else{qub(b,Ipc,0)}}else{for(d=(f=sib((new Aoc(b)).a.d,0),new Doc(f));Fib(d.a);){c=kA(Gib(d.a),170).c;Wqc(a,c)}h=kA(jo((g=sib((new Aoc(b)).a.d,0),new Doc(g))),76);l=kA(io((e=sib((new Aoc(b)).a.d,0),new Doc(e))),76);j=(Vpb(nA(nub(l,Ipc)))+Vpb(nA(nub(h,Ipc))))/2;if(i){k=Vpb(nA(nub(i,Ipc)))+a.a+Xqc(i,b);qub(b,Ipc,k);qub(b,Fpc,Vpb(nA(nub(b,Ipc)))-j);Vqc(a,b)}else{qub(b,Ipc,j)}}} -function MMb(a,b){var c,d,e,f,g,h,i,j,k;j=kA(nub(a,(E2b(),V1b)),69);d=kA(xbb(a.i,0),11);j==(FDc(),lDc)?kHb(d,CDc):j==CDc&&kHb(d,lDc);if(kA(nub(b,(J6b(),J5b)),185).pc((bEc(),aEc))){i=Vpb(nA(nub(a,s6b)));g=Vpb(nA(nub(a,q6b)));h=kA(nub(b,a6b),275);if(h==(eDc(),cDc)){c=i;k=a.n.a/2-d.k.a;for(f=new ccb(d.e);f.a0&&d>=-6){if(d>=0){L6(f,c-zA(a.e),String.fromCharCode(46))}else{f.a=j6(f.a,0,b-1)+'0.'+i6(f.a,b-1);L6(f,b+1,r6(X6,0,-zA(d)-1))}}else{if(c-b>=1){L6(f,b,String.fromCharCode(46));++c}L6(f,c,String.fromCharCode(69));d>0&&L6(f,++c,String.fromCharCode(43));L6(f,++c,''+V2(E2(d)))}a.g=f.a;return a.g} -function acc(a,b,c){var d,e,f,g;this.j=a;this.e=REb(a);this.o=kA(nub(this.j,(E2b(),n2b)),8);this.i=!!this.o;this.p=this.i?kA(xbb(c,uGb(this.o).o),204):null;e=kA(nub(a,X1b),19);this.g=e.pc((Z0b(),S0b));this.b=new Gbb;this.d=new Rdc(this.e);g=kA(nub(this.j,s2b),214);this.q=rcc(b,g,this.e);this.k=new qdc(this);f=Sr(xz(pz(yQ,1),oJd,208,0,[this,this.d,this.k,this.q]));if(b==(cdc(),_cc)){d=new Pbc(this.e);f.c[f.c.length]=d;this.c=new ubc(d,g,kA(this.q,422))}else{this.c=new MXb(b,this)}tbb(f,this.c);afc(f,this.e);this.s=pdc(this.k)} -function xsb(a,b){var c,d,e,f;c=new Csb;d=kA(Nob(Tob(new Zob(null,new ekb(a.f,16)),c),Tmb(new unb,new wnb,new Nnb,new Pnb,xz(pz($G,1),jKd,150,0,[(Ymb(),Xmb),Wmb]))),19);e=d._b();e=e==2?1:0;e==1&&D2(I2(kA(Nob(Pob(d.uc(),new Esb),mnb(r5(0),new Bnb)),149).a,2),0)&&(e=0);d=kA(Nob(Tob(new Zob(null,new ekb(b.f,16)),c),Tmb(new unb,new wnb,new Nnb,new Pnb,xz(pz($G,1),jKd,150,0,[Xmb,Wmb]))),19);f=d._b();f=f==2?1:0;f==1&&D2(I2(kA(Nob(Pob(d.uc(),new Gsb),mnb(r5(0),new Bnb)),149).a,2),0)&&(f=0);if(e=a.b[e+1]){e+=2}else if(c0){d=new Ibb(kA(Ke(a.a,f),19));bdb();Dbb(d,new BEb(b));e=new s9(f.b,0);while(e.b=sLd?w6(c,pGd(d)):s6(c,d&AKd);g=(++TGd,new dId(10,null,0));Tkb(a.a,g,h-1)}else{c=(g.ll().length+f,new A6);w6(c,g.ll())}if(b.e==0){d=b.jl();d>=sLd?w6(c,pGd(d)):s6(c,d&AKd)}else{w6(c,b.ll())}kA(g,474).b=c.a} -function bRb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;xEc(b,'Edge splitting',1);if(a.b.c.length<=2){zEc(b);return}f=new s9(a.b,0);g=(Lpb(f.bv)){i=2;g=jJd}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0){e=d+(o-1)*c;!!l&&(e+=d);e0){Rw(a,c,0);c.a+=String.fromCharCode(d);e=Ww(b,f);Rw(a,c,e);f+=e-1;continue}if(d==39){if(f+10){b=new u1c(a.i,a.g);c=a.i;f=c<100?null:new f_c(c);if(a.xi()){for(d=0;d0){h=a.g;j=a.i;UXc(a);f=j<100?null:new f_c(j);for(d=0;d0){b=new eYc(a.Uh());e=i<100?null:new f_c(i);dZc(a,i,b.g);d=i==1?a.mi(4,WXc(b,0),null,0,h):a.mi(6,b,null,-1,h);if(a.qi()){for(c=new a0c(b);c.e!=c.i._b();){e=a.si($_c(c),e)}if(!e){a.ni(d)}else{e.Sh(d);e.Th()}}else{if(!e){a.ni(d)}else{e.Sh(d);e.Th()}}}else{dZc(a,a.hi(),a.ii());a.ni(a.mi(6,(bdb(),$cb),null,-1,h))}}else if(a.qi()){i=a.hi();if(i>0){g=a.ii();dZc(a,i,g);e=i<100?null:new f_c(i);for(c=0;c>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&cLd;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&=cLd;u+=p>>22;p&=cLd;u&=dLd;return Cz(m,p,u)} -function Mzb(a,b){var c,d,e,f,g;c=Vpb(nA(nub(b,(J6b(),k6b))));c<2&&qub(b,k6b,2);d=kA(nub(b,W4b),110);d==(gBc(),eBc)&&qub(b,W4b,PFb(b));e=kA(nub(b,h6b),21);e.a==0?qub(b,(E2b(),s2b),new akb):qub(b,(E2b(),s2b),new bkb(e.a));f=mA(nub(b,E5b));f==null&&qub(b,E5b,(B3(),yA(nub(b,a5b))===yA((DBc(),zBc))?true:false));g=new r8b(b);qub(b,(E2b(),v2b),g);Wuc(a.a);Zuc(a.a,(Wzb(),Rzb),kA(nub(b,U4b),285));Zuc(a.a,Szb,kA(nub(b,w5b),285));Zuc(a.a,Tzb,kA(nub(b,T4b),285));Zuc(a.a,Uzb,kA(nub(b,I5b),285));Zuc(a.a,Vzb,Djc(kA(nub(b,a5b),197)));Tuc(a.a,Lzb(b));qub(b,r2b,Uuc(a.a,b))} -function SMc(b,c){var d,e,f,g,h,i,j,k,l,m;j=c.length-1;i=c.charCodeAt(j);if(i==93){h=b6(c,o6(91));if(h>=0){f=WMc(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return QMc(b,l,f)}}else{d=-1;if(/\d/.test(String.fromCharCode(i))){d=e6(c,o6(46),j-1);if(d>=0){e=kA(JMc(b,_Mc(b,c.substr(1,d-1)),false),52);try{k=H3(c.substr(d+1,c.length-(d+1)),oKd,jJd)}catch(a){a=w2(a);if(sA(a,118)){g=a;throw x2(new t6c(g))}else throw x2(a)}if(k4){if(a.Li(b)){if(a.Dj()){e=kA(b,42);d=e.ng();i=d==a.e&&(a.Pj()?e.hg(e.og(),a.Lj())==a.Mj():-1-e.og()==a.pi());if(a.Qj()&&!i&&!d&&!!e.sg()){for(f=0;f=q-1){return null}e=new Gbb;e.c[e.c.length]=b;u=b;g=c;o=-1;h=kA(xbb(a.d.c.b,c),26);for(n=0;n1&&g0&&(j=a.k.a/f);break;case 2:case 4:e=a.g.n.b;e>0&&(j=a.k.b/e);}qub(a,(E2b(),q2b),j)}i=a.n;g=a.a;if(d){g.a=d.a;g.b=d.b;a.b=true}else if(b!=TCc&&b!=UCc&&h!=DDc){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 YJb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;xEc(c,dOd,1);a.c=b;m=a.c.a;f=0;for(j=new ccb(m);j.ao){n=1;e=h.n.a;while(e>g){++n;e=(h.n.a-(n-1)*a.d)/n}tbb(d,new aKb(a,h,n,e))}}for(i=new ccb(d);i.a1&&WEc(g)*VEc(g)/2>h[0]){f=0;while(fh[f]){++f}o=new A9(p,0,f+1);l=new _Ec(o);k=WEc(g)/VEc(g);i=MEc(l,b,new XGb,c,d,e,k);vyc(Cyc(l.e),i);Spb(Djb(m,l));n=new A9(p,f+1,p.c.length);Ajb(m,n);p.c=tz(NE,oJd,1,0,5,1);j=0;tcb(h,h.length,0)}else{q=m.b.c.length==0?null:xbb(m.b,0);q!=null&&Gjb(m,0);j>0&&(h[j]=h[j-1]);h[j]+=WEc(g)*VEc(g);++j;p.c[p.c.length]=g}}return p} -function Uuc(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(a.e&&a.c.c0.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.k.a=b+r}} -function SQb(a,b){var c,d,e,f,g;for(g=new ccb(a.i);g.a0&&i9b(a,h,l)}for(e=new ccb(l);e.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.e.b+=a.a}}if(o.a._b()!=0){m=new Vjc(1,f);n=Ujc(m,b,o,p,b.e.b+i-b.c.b);n>0&&(b.e.b+=i+(n-1)*f)}} -function Dz(a,b,c){var d,e,f,g,h,i;if(b.l==0&&b.m==0&&b.h==0){throw x2(new o3('divide by zero'))}if(a.l==0&&a.m==0&&a.h==0){c&&(zz=Cz(0,0,0));return Cz(0,0,0)}if(b.h==eLd&&b.m==0&&b.l==0){return Ez(a,c)}i=false;if(b.h>>19!=0){b=Sz(b);i=true}g=Kz(b);f=false;e=false;d=false;if(a.h==eLd&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=Bz((fA(),bA));d=true;i=!i}else{h=Wz(a,g);i&&Iz(h);c&&(zz=Cz(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=Sz(a);d=true;i=!i}if(g!=-1){return Fz(a,g,i,f,c)}if(Pz(a,b)<0){c&&(f?(zz=Sz(a)):(zz=Cz(a.l,a.m,a.h)));return Cz(0,0,0)}return Gz(d?a:Cz(a.l,a.m,a.h),b,i,f,e,c)} -function Mvb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;j=b.c;e=Lub(a.e);l=Dyc(Fyc(xyc(Kub(a.e)),a.d*a.a,a.c*a.b),-0.5);c=e.a-l.a;d=e.b-l.b;g=b.a;c=g.c-c;d=g.d-d;for(i=new ccb(j);i.a=0){return c}switch(_td(rtd(a,c))){case 2:{if(Z5('',ptd(a,c.Wi()).be())){i=cud(rtd(a,c));h=bud(rtd(a,c));k=std(a,b,i,h);if(k){return k}e=gtd(a,b);for(g=0,l=e._b();gb.e||b.f>a.e){return}c=0;d=0;for(g=a.t.a.Xb().tc();g.hc();){e=kA(g.ic(),11);Cnc(Pyc(xz(pz(aU,1),cKd,9,0,[e.g.k,e.k,e.a])).b,b.f,b.e)&&++c}for(h=a.o.a.Xb().tc();h.hc();){e=kA(h.ic(),11);Cnc(Pyc(xz(pz(aU,1),cKd,9,0,[e.g.k,e.k,e.a])).b,b.f,b.e)&&--c}for(i=b.t.a.Xb().tc();i.hc();){e=kA(i.ic(),11);Cnc(Pyc(xz(pz(aU,1),cKd,9,0,[e.g.k,e.k,e.a])).b,a.f,a.e)&&++d}for(f=b.o.a.Xb().tc();f.hc();){e=kA(f.ic(),11);Cnc(Pyc(xz(pz(aU,1),cKd,9,0,[e.g.k,e.k,e.a])).b,a.f,a.e)&&--d}if(c0&&c.charCodeAt(0)!=47)){throw x2(new O4('invalid opaquePart: '+c))}if(a&&!(b!=null&&Udb(I5c,b.toLowerCase()))&&!(c==null||!Q5c(c,E5c,F5c))){throw x2(new O4(UUd+c))}if(a&&b!=null&&Udb(I5c,b.toLowerCase())&&!g6c(c)){throw x2(new O4(UUd+c))}if(!h6c(d)){throw x2(new O4('invalid device: '+d))}if(!j6c(e)){g=e==null?'invalid segments: null':'invalid segment: '+X5c(e);throw x2(new O4(g))}if(!(f==null||b6(f,o6(35))==-1)){throw x2(new O4('invalid query: '+f))}} -function hxc(b,c){var d;if(c==null||Z5(c,mJd)){return null}if(c.length==0&&b.k!=(Uxc(),Pxc)){return null}switch(b.k.g){case 1:return $5(c,TRd)?(B3(),A3):$5(c,URd)?(B3(),z3):null;case 2:try{return d5(H3(c,oKd,jJd))}catch(a){a=w2(a);if(sA(a,118)){return null}else throw x2(a)}case 4:try{return G3(c)}catch(a){a=w2(a);if(sA(a,118)){return null}else throw x2(a)}case 3:return c;case 5:cxc(b);return fxc(b,c);case 6:cxc(b);return gxc(b,b.a,c);case 7:try{d=exc(b);d.gf(c);return d}catch(a){a=w2(a);if(sA(a,30)){return null}else throw x2(a)}default:throw x2(new Q4('Invalid type set for this layout option.'));}} -function XVb(a){var b,c,d,e,f,g,h,i,j,k,l;for(g=new ccb(a.d.b);g.a0&&krb(j,true,(gBc(),dBc));h.j==(RGb(),MGb)&&lrb(j);I8(a.f,h,b)}}} -function tud(a,b,c){var d,e,f,g,h,i,j,k;if(c._b()==0){return false}h=(wyd(),kA(b,61).bj());f=h?c:new dYc(c._b());if(zyd(a.e,b)){if(b.xh()){for(j=c.tc();j.hc();){i=j.ic();if(!Eud(a,b,i,sA(b,62)&&(kA(kA(b,17),62).Bb&sLd)!=0)){e=xyd(b,i);f.pc(e)||f.nc(e)}}}else if(!h){for(j=c.tc();j.hc();){i=j.ic();e=xyd(b,i);f.nc(e)}}}else{if(c._b()>1){throw x2(new O4(nWd))}k=yyd(a.e.mg(),b);d=kA(a.g,124);for(g=0;g1&&g>1){k=hKb(a,u);h=kA(xbb(a.d.c.b,g),26);l=kA(xbb(a.d.c.b,g-1),26);w=kA(p.cd(m++),21).a;r=x5(w,l.a.c.length);EGb(u,r,l);EGb(k,t,h);t=r;!!u&&(e.c[e.c.length]=u,true);u=k;--v;++f;--g}s=(d-(e.c.length-1)*a.d.d)/e.c.length;for(j=new ccb(e);j.a0&&lKc(a,b,false,false,e);l=kKc(a,b,true,false)}else{lKc(a,b,false,i,0);l=kKc(a,b,true,false)}}else{if(k){h=kA(kA(Ke(a.r,b),19),60)._b();f=iKc(a,b);l=f*h+a.u*(h-1);f>0&&lKc(a,b,true,false,f)}else{lKc(a,b,true,false,0);l=kKc(a,b,true,true)}}kJc(a,b)==(JCc(),GCc)&&(l+=2*a.u);c.a.a=l} -function nLc(a,b){var c,d,e,f,g,h,i,j,k,l;c=kA(Cfb(a.b,b),114);if(kA(kA(Ke(a.r,b),19),60).Wb()){c.n.d=0;c.n.a=0;return}c.n.d=a.A.d;c.n.a=a.A.a;e=a.v.pc((bEc(),aEc));k=kA(kA(Ke(a.r,b),19),60)._b()==2;h=a.t==(eDc(),dDc);j=a.w.pc((qEc(),oEc));l=a.w.pc(pEc);d=0;if(!e||k&&h){d=rLc(a,b,false,false)}else if(h){if(l){f=qLc(a,b,j);f>0&&sLc(a,b,f,false,false);d=rLc(a,b,true,false)}else{sLc(a,b,0,false,j);d=rLc(a,b,true,false)}}else{if(l){i=kA(kA(Ke(a.r,b),19),60)._b();g=pLc(a,b);d=g*i+a.u*(i-1);g>0&&sLc(a,b,g,true,false)}else{sLc(a,b,0,true,false);d=rLc(a,b,true,true)}}kJc(a,b)==(JCc(),GCc)&&(d+=2*a.u);c.a.b=d} -function qAd(){qAd=d3;Uzd=(Tzd(),Szd).b;Xzd=kA(WXc(Ibd(Szd.b),0),29);Vzd=kA(WXc(Ibd(Szd.b),1),29);Wzd=kA(WXc(Ibd(Szd.b),2),29);fAd=Szd.bb;kA(WXc(Ibd(Szd.bb),0),29);kA(WXc(Ibd(Szd.bb),1),29);hAd=Szd.fb;iAd=kA(WXc(Ibd(Szd.fb),0),29);kA(WXc(Ibd(Szd.fb),1),29);kA(WXc(Ibd(Szd.fb),2),17);kAd=Szd.qb;nAd=kA(WXc(Ibd(Szd.qb),0),29);kA(WXc(Ibd(Szd.qb),1),17);kA(WXc(Ibd(Szd.qb),2),17);lAd=kA(WXc(Ibd(Szd.qb),3),29);mAd=kA(WXc(Ibd(Szd.qb),4),29);pAd=kA(WXc(Ibd(Szd.qb),6),29);oAd=kA(WXc(Ibd(Szd.qb),5),17);Yzd=Szd.j;Zzd=Szd.k;$zd=Szd.q;_zd=Szd.w;aAd=Szd.B;bAd=Szd.A;cAd=Szd.C;dAd=Szd.D;eAd=Szd._;gAd=Szd.cb;jAd=Szd.hb} -function Zac(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.c=0;a.b=0;d=2*b.c.a.c.length+1;o:for(l=c.tc();l.hc();){k=kA(l.ic(),11);h=k.i==(FDc(),lDc)||k.i==CDc;n=0;if(h){m=kA(nub(k,(E2b(),p2b)),8);if(!m){continue}n+=Uac(a,d,k,m)}else{for(j=new ccb(k.f);j.a0){a.f[k.o]=n/(k.d.c.length+k.f.c.length);a.c=$wnd.Math.min(a.c,a.f[k.o]);a.b=$wnd.Math.max(a.b,a.f[k.o])}else h&&(a.f[k.o]=n)}} -function wBd(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 Lic(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=tz(FA,OKd,22,p,15,1);l=0;for(k=new ccb(b.b);k.ag)&&Ggb(a.c,kA(q.b,14))}}++h}f=g}}}} -function I$c(a){var b;switch(a.d){case 1:{if(a.wi()){return a.o!=-2}break}case 2:{if(a.wi()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.vi();switch(a.p){case 0:return b!=null&&Vpb(mA(b))!=L2(a.k,0);case 1:return b!=null&&kA(b,192).a!=U2(a.k)<<24>>24;case 2:return b!=null&&kA(b,159).a!=(U2(a.k)&AKd);case 6:return b!=null&&L2(kA(b,149).a,a.k);case 5:return b!=null&&kA(b,21).a!=U2(a.k);case 7:return b!=null&&kA(b,168).a!=U2(a.k)<<16>>16;case 3:return b!=null&&Vpb(nA(b))!=a.j;case 4:return b!=null&&kA(b,126).a!=a.j;default:return b==null?a.n!=null:!kb(b,a.n);}} -function Wad(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;Kad(a,null)}else{a.F=(Npb(b),b);d=b6(b,o6(60));if(d!=-1){e=b.substr(0,d);b6(b,o6(46))==-1&&!Z5(e,gJd)&&!Z5(e,kVd)&&!Z5(e,lVd)&&!Z5(e,mVd)&&!Z5(e,nVd)&&!Z5(e,oVd)&&!Z5(e,pVd)&&!Z5(e,qVd)&&(e=rVd);c=d6(b,o6(62));c!=-1&&(e+=''+b.substr(c+1,b.length-(c+1)));Kad(a,e)}else{e=b;if(b6(b,o6(46))==-1){d=b6(b,o6(91));d!=-1&&(e=b.substr(0,d));if(!Z5(e,gJd)&&!Z5(e,kVd)&&!Z5(e,lVd)&&!Z5(e,mVd)&&!Z5(e,nVd)&&!Z5(e,oVd)&&!Z5(e,pVd)&&!Z5(e,qVd)){e=rVd;d!=-1&&(e+=''+b.substr(d,b.length-d))}else{e=b}}Kad(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&vMc(a,new Mid(a,1,5,f,b))} -function gCb(a){bCb();var b,c,d,e,f,g,h;h=new dCb;for(c=new ccb(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 kCb((OBb(),KBb));PCb(a,_Bb,new Rcb(xz(pz(jK,1),oJd,341,0,[d])));g=new kCb(NBb);PCb(a,$Bb,new Rcb(xz(pz(jK,1),oJd,341,0,[g])));e=new kCb(LBb);PCb(a,ZBb,new Rcb(xz(pz(jK,1),oJd,341,0,[e])));f=new kCb(MBb);PCb(a,YBb,new Rcb(xz(pz(jK,1),oJd,341,0,[f])));eCb(d.c,KBb);eCb(e.c,LBb);eCb(f.c,MBb);eCb(g.c,NBb);h.a.c=tz(NE,oJd,1,0,5,1);vbb(h.a,d.c);vbb(h.a,Wr(e.c));vbb(h.a,f.c);vbb(h.a,Wr(g.c));return h} -function Ved(a,b,c){var d,e,f,g;if(a.Rj()&&a.Qj()){g=Wed(a,kA(c,51));if(yA(g)!==yA(c)){a.ai(b);a.gi(b,Xed(a,b,g));if(a.Dj()){f=(e=kA(c,42),a.Pj()?a.Nj()?e.Cg(a.b,Wkd(kA(Gbd(RNc(a.b),a.pi()),17)).n,kA(Gbd(RNc(a.b),a.pi()).jj(),24).Qi(),null):e.Cg(a.b,Mbd(e.mg(),Wkd(kA(Gbd(RNc(a.b),a.pi()),17))),null,null):e.Cg(a.b,-1-a.pi(),null,null));!kA(g,42).yg()&&(f=(d=kA(g,42),a.Pj()?a.Nj()?d.Ag(a.b,Wkd(kA(Gbd(RNc(a.b),a.pi()),17)).n,kA(Gbd(RNc(a.b),a.pi()).jj(),24).Qi(),f):d.Ag(a.b,Mbd(d.mg(),Wkd(kA(Gbd(RNc(a.b),a.pi()),17))),null,f):d.Ag(a.b,-1-a.pi(),null,f)));!!f&&f.Th()}PMc(a.b)&&a.ni(a.mi(9,c,g,b,false));return g}}return c} -function XYb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Vpb(nA(nub(a,(J6b(),n6b))));d=Vpb(nA(nub(a,z6b)));m=new aGc;qub(m,n6b,k+d);j=b;r=b.d;p=b.c.g;s=b.d.g;q=kIb(p.c);t=kIb(s.c);e=new Gbb;for(l=q;l<=t;l++){h=new IGb(a);GGb(h,(RGb(),OGb));qub(h,(E2b(),i2b),j);qub(h,Z5b,(VCc(),QCc));qub(h,p6b,m);n=kA(xbb(a.b,l),26);l==q?EGb(h,n.a.c.length-c,n):FGb(h,n);u=Vpb(nA(nub(j,f5b)));if(u<0){u=0;qub(j,f5b,u)}h.n.b=u;o=$wnd.Math.floor(u/2);g=new lHb;kHb(g,(FDc(),EDc));jHb(g,h);g.k.b=o;i=new lHb;kHb(i,kDc);jHb(i,h);i.k.b=o;MEb(j,g);f=new PEb;lub(f,j);qub(f,p5b,null);LEb(f,i);MEb(f,r);YYb(h,j,f);e.c[e.c.length]=f;j=f}return e} -function fAb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new HAb(egb(gU));for(d=new ccb(b.a);d.a0){p=(Mpb(0,i.c.length),kA(i.c[0],14));e=(Mpb(0,n.c.length),kA(n.c[0],14));s=e.d.d;f=ybb(s,e,0);NEb(p,e.d,f);LEb(e,null);MEb(e,null);o=p.a;b&&mib(o,new Kyc(t));for(d=sib(e.a,0);d.b!=d.d.c;){c=kA(Gib(d),9);mib(o,new Kyc(c))}r=p.b;for(m=new ccb(e.b);m.a0?Wbc(this,this.f/this.a):Obc(b.g,b.d[0]).a!=null&&Obc(c.g,c.d[0]).a!=null?Wbc(this,(Vpb(Obc(b.g,b.d[0]).a)+Vpb(Obc(c.g,c.d[0]).a))/2):Obc(b.g,b.d[0]).a!=null?Wbc(this,Obc(b.g,b.d[0]).a):Obc(c.g,c.d[0]).a!=null&&Wbc(this,Obc(c.g,c.d[0]).a)} -function lJc(a){var b;this.r=vv(new oJc,new sJc);this.b=(Es(),new Hfb(kA(Pb(rU),274)));this.p=new Hfb(kA(Pb(rU),274));this.i=new Hfb(kA(Pb(nV),274));this.e=a;this.o=new Kyc(a.Re());this.B=a.bf()||Vpb(mA(a.xe(($Ac(),Yzc))));this.v=kA(a.xe(($Ac(),hAc)),19);this.w=kA(a.xe(lAc),19);this.q=kA(a.xe(BAc),83);this.t=kA(a.xe(FAc),275);this.j=kA(a.xe(fAc),19);this.n=kA(bGc(a,dAc),119);this.k=Vpb(nA(bGc(a,UAc)));this.d=Vpb(nA(bGc(a,TAc)));this.u=Vpb(nA(bGc(a,ZAc)));this.s=Vpb(nA(bGc(a,VAc)));this.A=kA(bGc(a,XAc),135);this.c=2*this.d;b=!this.w.pc((qEc(),hEc));this.f=new QIc(0,b,0);this.g=new QIc(1,b,0);PIc(this.f,(KHc(),IHc),this.g)} -function hwc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(b==null||b.length==0){return null}f=kA(G8(a.f,b),27);if(!f){for(e=(m=(new R9(a.d)).a.Tb().tc(),new W9(m));e.a.hc();){c=(g=kA(e.a.ic(),38),kA(g.lc(),27));h=c.f;n=b.length;if(Z5(h.substr(h.length-n,n),b)&&(b.length==h.length||X5(h,h.length-b.length-1)==46)){if(f){return null}f=c}}if(!f){for(d=(l=(new R9(a.d)).a.Tb().tc(),new W9(l));d.a.hc();){c=(g=kA(d.a.ic(),38),kA(g.lc(),27));k=c.g;if(k!=null){for(i=0,j=k.length;i=1){if(q-g>0&&l>=0){i.k.a+=p;i.k.b+=f*g}else if(q-g<0&&k>=0){i.k.a+=p*q;i.k.b+=f}}}a.n.a=b.a;a.n.b=b.b;qub(a,(J6b(),J5b),(bEc(),d=kA(e4(uU),10),new ngb(d,kA(ypb(d,d.length),10),0)))} -function nRb(a,b){var c,d,e,f,g,h,i,j,k,l;i=true;e=0;j=a.f[b.o];k=b.n.b+a.n;c=a.c[b.o][2];Cbb(a.a,j,d5(kA(xbb(a.a,j),21).a-1+c));Cbb(a.b,j,Vpb(nA(xbb(a.b,j)))-k+c*a.e);++j;if(j>=a.i){++a.i;tbb(a.a,d5(1));tbb(a.b,k)}else{d=a.c[b.o][1];Cbb(a.a,j,d5(kA(xbb(a.a,j),21).a+1-d));Cbb(a.b,j,Vpb(nA(xbb(a.b,j)))+k-d*a.e)}(a.q==(L7b(),E7b)&&(kA(xbb(a.a,j),21).a>a.j||kA(xbb(a.a,j-1),21).a>a.j)||a.q==H7b&&(Vpb(nA(xbb(a.b,j)))>a.k||Vpb(nA(xbb(a.b,j-1)))>a.k))&&(i=false);for(g=kl(vGb(b));So(g);){f=kA(To(g),14);h=f.c.g;if(a.f[h.o]==j){l=nRb(a,h);e=e+kA(l.a,21).a;i=i&&Vpb(mA(l.b))}}a.f[b.o]=j;e=e+a.c[b.o][0];return new fGc(d5(e),(B3(),i?true:false))} -function cnc(a){var b,c,d,e,f,g,h,i,j,k;j=new yib;h=new yib;for(f=new ccb(a);f.a-1){for(e=sib(h,0);e.b!=e.d.c;){d=kA(Gib(e),125);d.s=g}while(h.b!=0){d=kA(Gq(h,0),125);for(c=new ccb(d.g);c.a-1){for(f=new ccb(h);f.a0){continue}i.i=x5(i.i,e.i-1);--i.f;i.f==0&&(h.c[h.c.length]=i,true)}}}} -function sHd(a,b){var c,d,e,f,g,h,i,j;if(b.b==null||a.b==null)return;uHd(a);rHd(a);uHd(b);rHd(b);c=tz(FA,OKd,22,a.b.length+b.b.length,15,1);j=0;d=0;g=0;while(d=h&&e<=i){if(h<=e&&f<=i){c[j++]=e;c[j++]=f;d+=2}else if(h<=e){c[j++]=e;c[j++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[j++]=h;c[j++]=f;d+=2}else{c[j++]=h;c[j++]=i;a.b[d]=i+1}}else if(ia.j){a.q=E7b;oRb(a,f)}break;case 4:a.q=(L7b(),K7b);oRb(a,f);j=0;for(e=new ccb(a.b);e.aa.k){a.q=H7b;oRb(a,f)}break;case 6:m=zA($wnd.Math.ceil(a.f.length*k/100));oRb(a,new xRb(m));break;case 5:l=zA($wnd.Math.ceil(a.d*k/100));oRb(a,new ARb(l));break;default:oRb(a,f);}pRb(a,b);zEc(c)} -function tAb(a){var b,c,d,e,f,g,h;b=new Gbb;a.g=new Gbb;a.d=new Gbb;for(g=new e9((new X8(a.f.b)).a);g.b;){f=c9(g);tbb(b,kA(kA(f.lc(),48).b,80));hBc(kA(f.kc(),536).Je())?tbb(a.d,kA(f.lc(),48)):tbb(a.g,kA(f.lc(),48))}qAb(a,a.d);qAb(a,a.g);a.c=new eBb(a.b);cBb(a.c,(bAb(),aAb));vAb(a,a.d);vAb(a,a.g);vbb(b,a.c.a.b);a.e=new Jyc(oLd,oLd);a.a=new Jyc(pLd,pLd);for(d=new ccb(b);d.anKd)&&h<10);bBb(a.c,new DAb);sAb(a);ZAb(a.c);cAb(a.f)} -function sAb(a){var b,c,d,e,f,g,h;b=0;for(f=new ccb(a.b.a);f.a=2){i=sib(c,0);g=kA(Gib(i),9);h=kA(Gib(i),9);while(h.a0&&(h=$wnd.Math.max(h,jKc(a.A.b+d.d.b,e)))}else{o=n+l.d.c+a.u+d.d.b;h=$wnd.Math.max(h,(yv(),Bv(gNd),$wnd.Math.abs(m-e)<=gNd||m==e||isNaN(m)&&isNaN(e)?0:o/(e-m)))}l=d;m=e;n=f}if(!!a.A&&a.A.c>0){o=n+a.A.c;k&&(o+=l.d.c);h=$wnd.Math.max(h,(yv(),Bv(gNd),$wnd.Math.abs(m-1)<=gNd||m==1||isNaN(m)&&isNaN(1)?0:o/(1-m)))}c.n.b=0;c.a.a=h} -function mLc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=kA(Cfb(a.b,b),114);j=kA(kA(Ke(a.r,b),19),60);if(j.Wb()){c.n.d=0;c.n.a=0;return}g=a.v.pc((bEc(),aEc));p=a.w.pc((qEc(),oEc));k=a.t==(eDc(),cDc);h=0;i=j.tc();l=null;n=0;m=0;while(i.hc()){d=kA(i.ic(),111);f=Vpb(nA(d.b.xe((bLc(),aLc))));e=d.b.Re().b;g&&sLc(a,b,0,k,!k&&p);if(!l){!!a.A&&a.A.d>0&&(h=$wnd.Math.max(h,jKc(a.A.d+d.d.d,f)))}else{o=m+l.d.a+a.u+d.d.d;h=$wnd.Math.max(h,(yv(),Bv(gNd),$wnd.Math.abs(n-f)<=gNd||n==f||isNaN(n)&&isNaN(f)?0:o/(f-n)))}l=d;n=f;m=e}if(!!a.A&&a.A.a>0){o=m+a.A.a;k&&(o+=l.d.a);h=$wnd.Math.max(h,(yv(),Bv(gNd),$wnd.Math.abs(n-1)<=gNd||n==1||isNaN(n)&&isNaN(1)?0:o/(1-n)))}c.n.d=0;c.a.b=h} -function dYb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(m=a.c[b],n=a.c[c],(o=kA(nub(m,(E2b(),a2b)),15),!!o&&o._b()!=0&&o.pc(n))||(p=m.j!=(RGb(),OGb)&&n.j!=OGb,q=kA(nub(m,_1b),8),r=kA(nub(n,_1b),8),s=q!=r,t=!!q&&q!=m||!!r&&r!=n,u=eYb(m,(FDc(),lDc)),v=eYb(n,CDc),t=t|(eYb(m,CDc)||eYb(n,lDc)),w=t&&s||u||v,p&&w)||m.j==(RGb(),QGb)&&n.j==PGb||n.j==(RGb(),QGb)&&m.j==PGb){return false}k=a.c[b];f=a.c[c];e=gec(a.e,k,f,(FDc(),EDc));i=gec(a.i,k,f,kDc);WXb(a.f,k,f);j=FXb(a.b,k,f)+kA(e.a,21).a+kA(i.a,21).a+a.f.d;h=FXb(a.b,f,k)+kA(e.b,21).a+kA(i.b,21).a+a.f.b;if(a.a){l=kA(nub(k,i2b),11);g=kA(nub(f,i2b),11);d=eec(a.g,l,g);j+=kA(d.a,21).a;h+=kA(d.b,21).a}return j>h} -function bRc(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Pi()){throw x2(new O4(gTd+c.be()+hTd))}e=ptd((uyd(),syd),c).kk();if(e){return e.Pi().dh().Zg(e,d)}h=ptd(syd,c).mk();if(h){if(d==null){return null}i=kA(d,15);if(i.Wb()){return ''}m=new z6;for(g=i.tc();g.hc();){f=g.ic();w6(m,h.Pi().dh().Zg(h,f));m.a+=' '}return l3(m,m.a.length-1)}l=ptd(syd,c).nk();if(!l.Wb()){for(k=l.tc();k.hc();){j=kA(k.ic(),140);if(j.Li(d)){try{m=j.Pi().dh().Zg(j,d);if(m!=null){return m}}catch(a){a=w2(a);if(!sA(a,104))throw x2(a)}}}throw x2(new O4("Invalid value: '"+d+"' for datatype :"+c.be()))}kA(c,737).Ui();return d==null?null:sA(d,159)?''+kA(d,159).a:mb(d)==PF?fhd(XQc[0],kA(d,181)):f3(d)} -function dKb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;xEc(c,dOd,1);bKb=Vpb(mA(nub(b,(J6b(),V4b))));a.c=b;o=new Gbb;for(h=new ccb(b.b);h.aq){p=1;e=j.n.a;while(e>i){++p;e=(j.n.a-(p-1)*a.d)/p}tbb(d,new pKb(a,j,p))}}for(k=new ccb(d);k.aj?0:j),1),g),a.c[d.a.d]));DZb(GZb(FZb(HZb(EZb(new IZb,0>-j?0:-j),1),g),a.c[h.a.d]))}else{m=1;(sA(d.g,153)&&sA(h.g,8)||sA(h.g,153)&&sA(d.g,8))&&(m=2);DZb(GZb(FZb(HZb(EZb(new IZb,zA(f)),m),a.c[d.a.d]),a.c[h.a.d]))}}}} -function QMb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=kA(nub(a,(J6b(),Z5b)),83);g=a.e;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 Gbb;l=new Gbb;for(e=new ccb(b);e.a0),kA(k.a.cd(k.c=--k.b),14));while(f!=d&&k.b>0){a.a[f.o]=true;a.a[d.o]=true;f=(Lpb(k.b>0),kA(k.a.cd(k.c=--k.b),14))}k.b>0&&l9(k)}}}} -function DSc(a){if(a.q)return;a.q=true;a.p=RRc(a,0);a.a=RRc(a,1);WRc(a.a,0);a.f=RRc(a,2);WRc(a.f,1);QRc(a.f,2);a.n=RRc(a,3);QRc(a.n,3);QRc(a.n,4);QRc(a.n,5);QRc(a.n,6);a.g=RRc(a,4);WRc(a.g,7);QRc(a.g,8);a.c=RRc(a,5);WRc(a.c,7);WRc(a.c,8);a.i=RRc(a,6);WRc(a.i,9);WRc(a.i,10);WRc(a.i,11);WRc(a.i,12);QRc(a.i,13);a.j=RRc(a,7);WRc(a.j,9);a.d=RRc(a,8);WRc(a.d,3);WRc(a.d,4);WRc(a.d,5);WRc(a.d,6);QRc(a.d,7);QRc(a.d,8);QRc(a.d,9);QRc(a.d,10);a.b=RRc(a,9);QRc(a.b,0);QRc(a.b,1);a.e=RRc(a,10);QRc(a.e,1);QRc(a.e,2);QRc(a.e,3);QRc(a.e,4);WRc(a.e,5);WRc(a.e,6);WRc(a.e,7);WRc(a.e,8);WRc(a.e,9);WRc(a.e,10);QRc(a.e,11);a.k=RRc(a,11);QRc(a.k,0);QRc(a.k,1);a.o=SRc(a,12);a.s=SRc(a,13)} -function wcc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;xEc(b,'Interactive crossing minimization',1);g=0;for(f=new ccb(a.b);f.a0){c+=i.k.a+i.n.a/2;++l}for(o=new ccb(i.i);o.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[j++]=e;c[j++]=h-1;d+=2}else{c[j++]=e;c[j++]=h-1;a.b[d]=i+1;g+=2}}else if(i0);g.a.cd(g.c=--g.b);r9(g,d);Eib(j,d);RSb(d,i.i);Hib(j);Hib(j);e.a.$b(d)!=null}}}}} -function vTb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;xEc(b,'Spline SelfLoop pre-processing.',1);j=new iib;for(l=new ccb(a.a);l.a0?(e-=86400000):(e+=86400000);i=new Rx(y2(E2(b.q.getTime()),e))}k=new N6;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw x2(new O4("Missing trailing '"))}g+1=14&&j<=16))){if(b.a.Qb(d)){!c.a?(c.a=new O6(c.d)):I6(c.a,c.b);F6(c.a,'[...]')}else{g=lA(d);i=new Lgb(b);rlb(c,lcb(g,i))}}else sA(d,221)?rlb(c,Ocb(kA(d,221))):sA(d,173)?rlb(c,Hcb(kA(d,173))):sA(d,176)?rlb(c,Icb(kA(d,176))):sA(d,1697)?rlb(c,Ncb(kA(d,1697))):sA(d,37)?rlb(c,Lcb(kA(d,37))):sA(d,378)?rlb(c,Mcb(kA(d,378))):sA(d,736)?rlb(c,Kcb(kA(d,736))):sA(d,106)&&rlb(c,Jcb(kA(d,106)))}else{rlb(c,d==null?mJd:f3(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} -function pEb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!Vpb(mA(nub(c,(J6b(),m5b))))){return}for(h=new ccb(c.i);h.a1){break}}}h>0?(i=true):m==(eDc(),cDc)&&(!f.n&&(f.n=new zkd(LV,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.nc((Z0b(),S0b));j&&b.nc((Z0b(),T0b))} -function rHc(a,b,c){var d,e,f;e=new lJc(a);SKc(e,c);JKc(e,false);wbb(e.e.We(),new NKc(e,false));pKc(e,e.f,(KHc(),HHc),(FDc(),lDc));pKc(e,e.f,JHc,CDc);pKc(e,e.g,HHc,EDc);pKc(e,e.g,JHc,kDc);rKc(e,lDc);rKc(e,CDc);qKc(e,kDc);qKc(e,EDc);CKc();d=e.v.pc((bEc(),ZDc))&&e.w.pc((qEc(),lEc))?DKc(e):null;!!d&&fIc(e.a,d);GKc(e);gKc(e);oLc(e);bKc(e);QKc(e);gLc(e);YKc(e,lDc);YKc(e,CDc);cKc(e);PKc(e);if(!b){return e.o}EKc(e);kLc(e);YKc(e,kDc);YKc(e,EDc);f=e.w.pc((qEc(),mEc));tKc(e,f,lDc);tKc(e,f,CDc);uKc(e,f,kDc);uKc(e,f,EDc);Sob(new Zob(null,new ekb(new R9(e.i),0)),new vKc);Sob(Pob(new Zob(null,Kj(e.r).wc()),new xKc),new zKc);FKc(e);e.e.Ue(e.o);Sob(new Zob(null,Kj(e.r).wc()),new HKc);return e.o} -function NSb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;xEc(b,'Spline SelfLoop positioning',1);k=kA(nub(a,(J6b(),c5b)),345);for(j=new ccb(a.b);j.a2){k=new Gbb;vbb(k,new A9(r,1,r.b));f=swb(k,t+a.a);s=new $ub(f);lub(s,b);c.c[c.c.length]=s}else{d?(s=kA(F8(a.b,_Wc(b)),247)):(s=kA(F8(a.b,bXc(b)),247))}i=_Wc(b);d&&(i=bXc(b));g=zwb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new Jyc(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new Jyc((l.a+q.a)/2,l.b)}d?I8(a.d,b,new avb(s,g,p,j)):I8(a.c,b,new avb(s,g,p,j));I8(a.b,b,s);o=(!b.n&&(b.n=new zkd(LV,b,1,7)),b.n);for(n=new a0c(o);n.e!=n.i._b();){m=kA($_c(n),137);e=wwb(a,m,true,0,0);c.c[c.c.length]=e}} -function Dpd(){t5c(hY,new jqd);t5c(gY,new Qqd);t5c(iY,new vrd);t5c(jY,new Nrd);t5c(lY,new Qrd);t5c(nY,new Trd);t5c(mY,new Wrd);t5c(oY,new Zrd);t5c(qY,new Hpd);t5c(rY,new Kpd);t5c(sY,new Npd);t5c(tY,new Qpd);t5c(uY,new Tpd);t5c(vY,new Wpd);t5c(wY,new Zpd);t5c(zY,new aqd);t5c(BY,new dqd);t5c(CZ,new gqd);t5c(pY,new mqd);t5c(AY,new pqd);t5c(tE,new sqd);t5c(pz(BA,1),new vqd);t5c(uE,new yqd);t5c(vE,new Bqd);t5c(PF,new Eqd);t5c(UX,new Hqd);t5c(yE,new Kqd);t5c(ZX,new Nqd);t5c($X,new Tqd);t5c(Q0,new Wqd);t5c(G0,new Zqd);t5c(CE,new ard);t5c(GE,new drd);t5c(xE,new grd);t5c(IE,new jrd);t5c(rG,new mrd);t5c(y_,new prd);t5c(x_,new srd);t5c(PE,new yrd);t5c(UE,new Brd);t5c(bY,new Erd);t5c(_X,new Hrd)} -function Lbc(a){var b,c,d,e,f,g,h,i;b=null;for(d=new ccb(a);d.a0&&c.c==0){!b&&(b=new Gbb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=kA(zbb(b,0),205);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Gbb),new ccb(c.b));f.aybb(a,c,0)){return new fGc(e,c)}}else if(Vpb(Obc(e.g,e.d[0]).a)>Vpb(Obc(c.g,c.d[0]).a)){return new fGc(e,c)}}}for(h=(!c.e&&(c.e=new Gbb),c.e).tc();h.hc();){g=kA(h.ic(),205);i=(!g.b&&(g.b=new Gbb),g.b);Ppb(0,i.c.length);zpb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} -function NPb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;xEc(b,'Label dummy insertions',1);l=new Gbb;g=Vpb(nA(nub(a,(J6b(),m6b))));j=Vpb(nA(nub(a,q6b)));k=kA(nub(a,W4b),110);for(n=new ccb(a.a);n.a>16==-10){c=kA(a.Cb,268).zj(b,c)}else if(a.Db>>16==-15){!b&&(b=(j7c(),Z6c));!j&&(j=(j7c(),Z6c));if(a.Cb.Hg()){i=new Oid(a.Cb,1,13,j,b,pcd(njd(kA(a.Cb,53)),a),false);!c?(c=i):c.Sh(i)}}}else if(sA(a.Cb,96)){if(a.Db>>16==-23){sA(b,96)||(b=(j7c(),a7c));sA(j,96)||(j=(j7c(),a7c));if(a.Cb.Hg()){i=new Oid(a.Cb,1,10,j,b,pcd(Ebd(kA(a.Cb,24)),a),false);!c?(c=i):c.Sh(i)}}}else if(sA(a.Cb,411)){h=kA(a.Cb,742);g=(!h.b&&(h.b=new Sod(new Ood)),h.b);for(f=(d=new e9((new X8(g.a)).a),new $od(d));f.a.b;){e=kA(c9(f.a).kc(),84);c=thd(e,phd(e,h),c)}}}return c} -function X8b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;xEc(c,'Depth-first cycle removal',1);k=b.a;p=k.c.length;a.a=tz(FA,OKd,22,p,15,1);pcb(a.a);a.b=tz(FA,OKd,22,p,15,1);pcb(a.b);g=0;for(j=new ccb(k);j.a=0){i=null;h=new s9(k.a,j+1);while(h.b=j.c.c.length?(k=Vfc((RGb(),PGb),OGb)):(k=Vfc((RGb(),OGb),OGb));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 _Kc(a,b){var c,d,e,f,g,h,i,j,k;g=kA(kA(Ke(a.r,b),19),60);k=g._b()==2||g._b()>2&&a.w.pc((qEc(),oEc));for(f=g.tc();f.hc();){e=kA(f.ic(),111);if(!e.c||e.c.d.c.length<=0){continue}j=e.b.Re();h=e.c;i=h.i;i.b=(d=h.n,h.e.a+d.b+d.c);i.a=(c=h.n,h.e.b+c.d+c.a);switch(b.g){case 1:if(k){i.c=-i.b-a.s;CIc(h,(pIc(),oIc))}else{i.c=j.a+a.s;CIc(h,(pIc(),nIc))}i.d=-i.a-a.s;DIc(h,(eJc(),bJc));break;case 3:if(k){i.c=-i.b-a.s;CIc(h,(pIc(),oIc))}else{i.c=j.a+a.s;CIc(h,(pIc(),nIc))}i.d=j.b+a.s;DIc(h,(eJc(),dJc));break;case 2:i.c=j.a+a.s;if(k){i.d=-i.a-a.s;DIc(h,(eJc(),bJc))}else{i.d=j.b+a.s;DIc(h,(eJc(),dJc))}CIc(h,(pIc(),nIc));break;case 4:i.c=-i.b-a.s;if(k){i.d=-i.a-a.s;DIc(h,(eJc(),bJc))}else{i.d=j.b+a.s;DIc(h,(eJc(),dJc))}CIc(h,(pIc(),oIc));}k=false}} -function Tqb(a,b){var c;if(a.e){throw x2(new Q4((d4(_H),bMd+_H.k+cMd)))}if(!mqb(a.a,b)){throw x2(new Tv(dMd+b+eMd))}if(b==a.d){return a}c=a.d;a.d=b;switch(c.g){case 0:switch(b.g){case 2:Qqb(a);break;case 1:Yqb(a);Qqb(a);break;case 4:crb(a);Qqb(a);break;case 3:crb(a);Yqb(a);Qqb(a);}break;case 2:switch(b.g){case 1:Yqb(a);Zqb(a);break;case 4:crb(a);Qqb(a);break;case 3:crb(a);Yqb(a);Qqb(a);}break;case 1:switch(b.g){case 2:Yqb(a);Zqb(a);break;case 4:Yqb(a);crb(a);Qqb(a);break;case 3:Yqb(a);crb(a);Yqb(a);Qqb(a);}break;case 4:switch(b.g){case 2:crb(a);Qqb(a);break;case 1:crb(a);Yqb(a);Qqb(a);break;case 3:Yqb(a);Zqb(a);}break;case 3:switch(b.g){case 2:Yqb(a);crb(a);Qqb(a);break;case 1:Yqb(a);crb(a);Yqb(a);Qqb(a);break;case 4:Yqb(a);Zqb(a);}}return a} -function XAb(a,b){var c;if(a.d){throw x2(new Q4((d4(TJ),bMd+TJ.k+cMd)))}if(!GAb(a.a,b)){throw x2(new Tv(dMd+b+eMd))}if(b==a.c){return a}c=a.c;a.c=b;switch(c.g){case 0:switch(b.g){case 2:UAb(a);break;case 1:_Ab(a);UAb(a);break;case 4:dBb(a);UAb(a);break;case 3:dBb(a);_Ab(a);UAb(a);}break;case 2:switch(b.g){case 1:_Ab(a);aBb(a);break;case 4:dBb(a);UAb(a);break;case 3:dBb(a);_Ab(a);UAb(a);}break;case 1:switch(b.g){case 2:_Ab(a);aBb(a);break;case 4:_Ab(a);dBb(a);UAb(a);break;case 3:_Ab(a);dBb(a);_Ab(a);UAb(a);}break;case 4:switch(b.g){case 2:dBb(a);UAb(a);break;case 1:dBb(a);_Ab(a);UAb(a);break;case 3:_Ab(a);aBb(a);}break;case 3:switch(b.g){case 2:_Ab(a);dBb(a);UAb(a);break;case 1:_Ab(a);dBb(a);_Ab(a);UAb(a);break;case 4:_Ab(a);aBb(a);}}return a} -function sEb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;e=new Gbb;for(o=new ccb(b.a);o.ar?i:r;for(t=new ccb(k.i);t.a=j&&v>=q){m+=o.k.b+p.k.b+p.a.b-u;++h}}}}if(c){for(g=new ccb(s.d);g.a=j&&v>=q){m+=o.k.b+p.k.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.i=n}else{b.a=0;b.i=0}} -function ywb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;a.e=b;h=$vb(b);w=new Gbb;for(d=new ccb(h);d.a0){l.d+=j.n.d;l.d+=j.d}if(l.a>0){l.a+=j.n.a;l.a+=j.d}if(l.b>0){l.b+=j.n.b;l.b+=j.d}if(l.c>0){l.c+=j.n.c;l.c+=j.d}return l} -function Hac(a,b,c){var d;xEc(c,'StretchWidth layering',1);if(b.a.c.length==0){zEc(c);return}a.c=b;a.t=0;a.u=0;a.i=oLd;a.g=pLd;a.d=Vpb(nA(nub(b,(J6b(),k6b))));Bac(a);Cac(a);zac(a);Gac(a);Aac(a);a.i=$wnd.Math.max(1,a.i);a.g=$wnd.Math.max(1,a.g);a.d=a.d/a.i;a.f=a.g/a.i;a.s=Eac(a);d=new lIb(a.c);tbb(a.c.b,d);a.r=Qr(a.p);a.n=icb(a.k,a.k.length);while(a.r.c.length!=0){a.o=Iac(a);if(!a.o||Dac(a)&&a.b.a._b()!=0){Jac(a,d);d=new lIb(a.c);tbb(a.c.b,d);pg(a.a,a.b);a.b.a.Pb();a.t=a.u;a.u=0}else{if(Dac(a)){a.c.b.c=tz(NE,oJd,1,0,5,1);d=new lIb(a.c);tbb(a.c.b,d);a.t=0;a.u=0;a.b.a.Pb();a.a.a.Pb();++a.f;a.r=Qr(a.p);a.n=icb(a.k,a.k.length)}else{FGb(a.o,d);Abb(a.r,a.o);Ggb(a.b,a.o);a.t=a.t-a.k[a.o.o]*a.d+a.j[a.o.o];a.u+=a.e[a.o.o]*a.d}}}b.a.c=tz(NE,oJd,1,0,5,1);hdb(b.b);zEc(c)} -function SLb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new ccb(a);o.a0){a.a[b.c.o][b.o].d+=Yjb(a.f,24)*LLd*0.07000000029802322-0.03500000014901161;a.a[b.c.o][b.o].a=a.a[b.c.o][b.o].d/a.a[b.c.o][b.o].b}} -function vUc(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,G;D=F8(a.e,d);if(D==null){D=new Py;n=kA(D,191);s=b+'_s';t=s+e;m=new hz(t);Ny(n,HTd,m)}C=kA(D,191);OTc(c,C);G=new Py;QTc(G,'x',d.j);QTc(G,'y',d.k);Ny(C,KTd,G);A=new Py;QTc(A,'x',d.b);QTc(A,'y',d.c);Ny(C,'endPoint',A);l=bJd((!d.a&&(d.a=new fdd(GV,d,5)),d.a));o=!l;if(o){w=new fy;f=new IVc(w);i5((!d.a&&(d.a=new fdd(GV,d,5)),d.a),f);Ny(C,ATd,w)}i=nQc(d);u=!!i;u&&RTc(a.a,C,CTd,iUc(a,nQc(d)));r=oQc(d);v=!!r;v&&RTc(a.a,C,BTd,iUc(a,oQc(d)));j=(!d.e&&(d.e=new pxd(IV,d,10,9)),d.e).i==0;p=!j;if(p){B=new fy;g=new KVc(a,B);i5((!d.e&&(d.e=new pxd(IV,d,10,9)),d.e),g);Ny(C,ETd,B)}k=(!d.g&&(d.g=new pxd(IV,d,9,10)),d.g).i==0;q=!k;if(q){F=new fy;h=new MVc(a,F);i5((!d.g&&(d.g=new pxd(IV,d,9,10)),d.g),h);Ny(C,DTd,F)}} -function I3(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw x2(new I5(mJd))}j=a;f=a.length;i=false;if(f>0){b=a.charCodeAt(0);if(b==45||b==43){a=a.substr(1,a.length-1);--f;i=b==45}}if(f==0){throw x2(new I5(mLd+j+'"'))}while(a.length>0&&a.charCodeAt(0)==48){a=a.substr(1,a.length-1);--f}if(f>(H5(),F5)[10]){throw x2(new I5(mLd+j+'"'))}for(e=0;e0){l=-$pb(a.substr(0,d),10);a=a.substr(d,a.length-d);f-=d;c=false}while(f>=g){d=$pb(a.substr(0,g),10);a=a.substr(g,a.length-g);f-=g;if(c){c=false}else{if(A2(l,h)<0){throw x2(new I5(mLd+j+'"'))}l=J2(l,k)}l=R2(l,d)}if(A2(l,0)>0){throw x2(new I5(mLd+j+'"'))}if(!i){l=K2(l);if(A2(l,0)<0){throw x2(new I5(mLd+j+'"'))}}return l} -function vGc(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 a0c((!a.a&&(a.a=new zkd(MV,a,10,11)),a.a));s.e!=s.i._b();){q=kA($_c(s),35);m+=Cn(TWc(q));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 zkd(MV,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 a0c((!a.a&&(a.a=new zkd(MV,a,10,11)),a.a));r.e!=r.i._b();){q=kA($_c(r),35);C=e.b+(Yjb(b,26)*ILd+Yjb(b,27)*JLd)*(i-q.g);D=e.b+(Yjb(b,26)*ILd+Yjb(b,27)*JLd)*(h-q.f);rPc(q,C);sPc(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new a0c((!a.a&&(a.a=new zkd(MV,a,10,11)),a.a));v.e!=v.i._b();){u=kA($_c(v),35);for(k=kl(TWc(u));So(k);){j=kA(To(k),105);$Pc(j)||uGc(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;IFc(a,A,w,false,true)} -function sKb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;p=a.k;q=a.n;m=a.d;if(b){l=d/2*(b._b()-1);n=0;for(j=b.tc();j.hc();){h=kA(j.ic(),8);l+=h.n.a;n=$wnd.Math.max(n,h.n.b)}r=p.a-(l-q.a)/2;g=p.b-m.d+n;e=q.a/(b._b()+1);f=e;for(i=b.tc();i.hc();){h=kA(i.ic(),8);h.k.a=r;h.k.b=g-h.n.b;r+=h.n.a+d/2;k=qKb(h);k.k.a=h.n.a/2-k.a.a;k.k.b=h.n.b;o=kA(nub(h,(E2b(),K1b)),11);if(o.d.c.length+o.f.c.length==1){o.k.a=f-o.a.a;o.k.b=0;jHb(o,a)}f+=e}}if(c){l=d/2*(c._b()-1);n=0;for(j=c.tc();j.hc();){h=kA(j.ic(),8);l+=h.n.a;n=$wnd.Math.max(n,h.n.b)}r=p.a-(l-q.a)/2;g=p.b+q.b+m.a-n;e=q.a/(c._b()+1);f=e;for(i=c.tc();i.hc();){h=kA(i.ic(),8);h.k.a=r;h.k.b=g;r+=h.n.a+d/2;k=qKb(h);k.k.a=h.n.a/2-k.a.a;k.k.b=0;o=kA(nub(h,(E2b(),K1b)),11);if(o.d.c.length+o.f.c.length==1){o.k.a=f-o.a.a;o.k.b=q.b;jHb(o,a)}f+=e}}} -function zic(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new ccb(a.a.b);e.apLd||b.o==nic&&k0&&rPc(r,u*w);v>0&&sPc(r,v*A)}bjb(a.b,new Cwb);b=new Gbb;for(h=new e9((new X8(a.c)).a);h.b;){g=c9(h);d=kA(g.kc(),105);c=kA(g.lc(),363).a;e=$Wc(d,false,false);l=owb(_Wc(d),DFc(e),c);zFc(l,e);t=aXc(d);if(!!t&&ybb(b,t,0)==-1){b.c[b.c.length]=t;pwb(t,(Lpb(l.b!=0),kA(l.a.a.c,9)),c)}}for(q=new e9((new X8(a.d)).a);q.b;){p=c9(q);d=kA(p.kc(),105);c=kA(p.lc(),363).a;e=$Wc(d,false,false);l=owb(bXc(d),Yyc(DFc(e)),c);l=Yyc(l);zFc(l,e);t=cXc(d);if(!!t&&ybb(b,t,0)==-1){b.c[b.c.length]=t;pwb(t,(Lpb(l.b!=0),kA(l.c.b.c,9)),c)}}} -function uPb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;xEc(b,'Inverted port preprocessing',1);j=a.b;i=new s9(j,0);c=null;s=new Gbb;while(i.b0&&(kA(Cfb(a.b,b),114).a.b=c)} -function wmc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;m=Enc(a.i);o=Enc(b.i);n=vyc(xyc(a.k),a.a);p=vyc(xyc(b.k),b.a);i=vyc(new Jyc(n.a,n.b),Dyc(new Iyc(m),1.3*c));q=vyc(new Jyc(p.a,p.b),Dyc(new Iyc(o),1.3*d));h=$wnd.Math.abs(i.a-q.a);he+2&&b6c(a.charCodeAt(e+1),z5c,A5c)&&b6c(a.charCodeAt(e+2),z5c,A5c)){c=f6c(a.charCodeAt(e+1),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:{C6(i,((b[0]&31)<<6|b[1]&63)&AKd);break}case 3:{C6(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&AKd);break}}h=0;d=0}}else{for(f=0;f0&&tbb(a.p,k);tbb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Cbb(a.a,h,d5(n));Cbb(a.b,h,j);a.j=v5(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} -function c7(){c7=d3;var a,b,c;new j7(1,0);new j7(10,0);new j7(0,0);W6=tz(XE,cKd,216,11,0,1);X6=tz(CA,yKd,22,100,15,1);Y6=xz(pz(DA,1),vLd,22,15,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,2384185791015625]);Z6=tz(FA,OKd,22,Y6.length,15,1);$6=xz(pz(DA,1),vLd,22,15,[1,10,100,zKd,uLd,wLd,1000000,10000000,100000000,hLd,10000000000,100000000000,1000000000000,10000000000000,100000000000000,1000000000000000,10000000000000000]);_6=tz(FA,OKd,22,$6.length,15,1);a7=tz(XE,cKd,216,11,0,1);a=0;for(;a1){n=new xnc(o,t,d);i5(t,new onc(a,n));g.c[g.c.length]=n;for(l=t.a.Xb().tc();l.hc();){k=kA(l.ic(),48);Abb(f,k.b)}}if(h.a._b()>1){n=new xnc(o,h,d);i5(h,new qnc(a,n));g.c[g.c.length]=n;for(l=h.a.Xb().tc();l.hc();){k=kA(l.ic(),48);Abb(f,k.b)}}}} -function hQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;xEc(b,'Label dummy switching',1);l=kA(nub(a,(J6b(),Y4b)),276);d=kA(Nob(Pob(Rob(new Zob(null,new ekb(a.b,16)),new rQb),new tQb),Umb(new snb,new qnb,new Lnb,xz(pz($G,1),jKd,150,0,[(Ymb(),Wmb)]))),15);g=l==(T$b(),S$b)||l==O$b?$Pb(a):null;for(f=d.tc();f.hc();){e=kA(f.ic(),8);c=fQb(e);!c&&(c=l);h=dQb(e);k=eQb(e);m=null;switch(c.g){case 2:m=bQb(e,g,h,k);break;case 0:m=(n=h.a._b()+k.c.length+1,o=(n-1)/2|0,oh.a._b()?kA(xbb(k,o-h.a._b()-1),8):null);break;case 1:m=cQb(e,g,h,k);break;case 4:iQb(e,c);m=(j=gQb(e),j?h.a._b()==0?null:kA(h.a.cd(es(h,0)),8):k.c.length==0?null:kA(xbb(k,k.c.length-1),8));break;case 3:iQb(e,c);m=(i=gQb(e),i?k.c.length==0?null:kA(xbb(k,k.c.length-1),8):h.a._b()==0?null:kA(h.a.cd(es(h,0)),8));}!!m&&jQb(e,m);aQb(e)}zEc(b)} -function KQc(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;n=c.length;if(n>0){j=c.charCodeAt(0);if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=c.charCodeAt(m+1)==46))){h=c.substr(1,m-1);u=Z5('%',h)?null:S5c(h);e=0;if(k){try{e=H3(c.substr(m+2,c.length-(m+2)),oKd,jJd)}catch(a){a=w2(a);if(sA(a,118)){i=a;throw x2(new t6c(i))}else throw x2(a)}}for(r=Qhd(b.pg());r.hc();){p=jid(r);if(sA(p,469)){f=kA(p,609);t=f.d;if((u==null?t==null:Z5(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=H3(c.substr(l+1,c.length-(l+1)),oKd,jJd)}catch(a){a=w2(a);if(sA(a,118)){o=c}else throw x2(a)}}o=Z5('%',o)?null:S5c(o);for(q=Qhd(b.pg());q.hc();){p=jid(q);if(sA(p,174)){g=kA(p,174);s=g.be();if((o==null?s==null:Z5(o,s))&&d--==0){return g}}}return null}}return SMc(b,c)} -function AEd(a){yEd();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=tz(CA,yKd,22,m*4,15,1);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++]=xEd[o];f[g++]=xEd[p|j<<4];f[g++]=xEd[k<<2|q];f[g++]=xEd[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++]=xEd[o];f[g++]=xEd[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++]=xEd[o];f[g++]=xEd[p|j<<4];f[g++]=xEd[k<<2];f[g++]=61}return r6(f,0,f.length)} -function sLb(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;w=b.a.c;j=b.a.c+b.a.b;t=a.c&&uLb(a,b);d=t?(w+j)/2:w+(b.s+1)*a.b;for(h=b.d.a.Xb().tc();h.hc();){g=kA(h.ic(),14);i=kA(F8(b.c,g),589);C=i.f;D=i.a;v=new Jyc(d,C);B=new Jyc(d,D);u=new Jyc(w-10,C);A=new Jyc(j,D);l=false;m=false;if(i.b){l=true;u.a=j}if(i.c){m=true;A.a=w-10}n=i.d;o=i.e;if(!t||!(n||o)||m||l){if(b.d.a._b()==1){Ryc(g.a,xz(pz(aU,1),cKd,9,0,[u,v,B,A]))}else{c=new Jyc(d,b.b);Ryc(g.a,xz(pz(aU,1),cKd,9,0,[u,v,c,B,A]))}}else{if(n&&o){k=0;p=0;for(s=new ccb(g.d.g.i);s.a=0&&gn){if(f){oib(u,m);oib(w,d5(j.a-1))}F=c.b;G+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+D)}rPc(h,F);sPc(h,G);k=$wnd.Math.max(k,F+D+c.c);m=$wnd.Math.max(m,l);F+=D+b}k=$wnd.Math.max(k,d);C=G+m+c.a;if(C0&&(a.p=-(a.p-1));a.p>oKd&&Ox(b,a.p-NKd);g=b.q.getDate();Ix(b,1);a.k>=0&&Lx(b,a.k);if(a.c>=0){Ix(b,a.c)}else if(a.k>=0){i=new Qx(b.q.getFullYear()-NKd,b.q.getMonth(),35);d=35-i.q.getDate();Ix(b,d0&&a.f<12&&(a.f+=12);Jx(b,a.f==24&&a.g?0:a.f);a.j>=0&&Kx(b,a.j);a.n>=0&&Mx(b,a.n);a.i>=0&&Nx(b,y2(J2(C2(E2(b.q.getTime()),zKd),zKd),a.i));if(a.a){e=new Px;Ox(e,e.q.getFullYear()-NKd-80);H2(E2(b.q.getTime()),E2(e.q.getTime()))&&Ox(b,e.q.getFullYear()-NKd+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();Ix(b,b.q.getDate()+c);b.q.getMonth()!=h&&Ix(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>oKd){f=b.q.getTimezoneOffset();Nx(b,y2(E2(b.q.getTime()),(a.o-f)*60*zKd))}return true} -function VCb(){VCb=d3;UCb=new Xm;Le(UCb,(FDc(),BDc),xDc);Le(UCb,mDc,tDc);Le(UCb,rDc,vDc);Le(UCb,zDc,oDc);Le(UCb,wDc,pDc);Le(UCb,wDc,vDc);Le(UCb,wDc,oDc);Le(UCb,pDc,wDc);Le(UCb,pDc,xDc);Le(UCb,pDc,tDc);Le(UCb,yDc,yDc);Le(UCb,yDc,vDc);Le(UCb,yDc,xDc);Le(UCb,sDc,sDc);Le(UCb,sDc,vDc);Le(UCb,sDc,tDc);Le(UCb,ADc,ADc);Le(UCb,ADc,oDc);Le(UCb,ADc,xDc);Le(UCb,nDc,nDc);Le(UCb,nDc,oDc);Le(UCb,nDc,tDc);Le(UCb,vDc,rDc);Le(UCb,vDc,wDc);Le(UCb,vDc,yDc);Le(UCb,vDc,sDc);Le(UCb,vDc,vDc);Le(UCb,vDc,xDc);Le(UCb,vDc,tDc);Le(UCb,oDc,zDc);Le(UCb,oDc,wDc);Le(UCb,oDc,ADc);Le(UCb,oDc,nDc);Le(UCb,oDc,oDc);Le(UCb,oDc,xDc);Le(UCb,oDc,tDc);Le(UCb,xDc,BDc);Le(UCb,xDc,pDc);Le(UCb,xDc,yDc);Le(UCb,xDc,ADc);Le(UCb,xDc,vDc);Le(UCb,xDc,oDc);Le(UCb,xDc,xDc);Le(UCb,tDc,mDc);Le(UCb,tDc,pDc);Le(UCb,tDc,sDc);Le(UCb,tDc,nDc);Le(UCb,tDc,vDc);Le(UCb,tDc,oDc);Le(UCb,tDc,tDc)} -function CBd(){t5c(S0,new hCd);t5c(U0,new OCd);t5c(V0,new tDd);t5c(W0,new $Dd);t5c(UE,new kEd);t5c(pz(BA,1),new nEd);t5c(tE,new qEd);t5c(uE,new tEd);t5c(UE,new FBd);t5c(UE,new IBd);t5c(UE,new LBd);t5c(yE,new OBd);t5c(UE,new RBd);t5c(mG,new UBd);t5c(mG,new XBd);t5c(UE,new $Bd);t5c(CE,new bCd);t5c(UE,new eCd);t5c(UE,new kCd);t5c(UE,new nCd);t5c(UE,new qCd);t5c(UE,new tCd);t5c(pz(BA,1),new wCd);t5c(UE,new zCd);t5c(UE,new CCd);t5c(mG,new FCd);t5c(mG,new ICd);t5c(UE,new LCd);t5c(GE,new RCd);t5c(UE,new UCd);t5c(IE,new XCd);t5c(UE,new $Cd);t5c(UE,new bDd);t5c(UE,new eDd);t5c(UE,new hDd);t5c(mG,new kDd);t5c(mG,new nDd);t5c(UE,new qDd);t5c(UE,new wDd);t5c(UE,new zDd);t5c(UE,new CDd);t5c(UE,new FDd);t5c(UE,new IDd);t5c(PE,new LDd);t5c(UE,new ODd);t5c(UE,new RDd);t5c(UE,new UDd);t5c(PE,new XDd);t5c(IE,new bEd);t5c(UE,new eEd);t5c(GE,new hEd)} -function ZIb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;d=kA(nub(a,(E2b(),i2b)),35);rPc(d,a.k.a+b.a);sPc(d,a.k.b+b.b);if(kA(AOc(d,(J6b(),J5b)),185)._b()!=0||nub(a,h2b)!=null||yA(nub(uGb(a),I5b))===yA((u7b(),s7b))&&i7b((h7b(),(!a.p?(bdb(),bdb(),_cb):a.p).Qb(G5b)?(l=kA(nub(a,G5b),179)):(l=kA(nub(uGb(a),H5b),179)),l))){qPc(d,a.n.a);oPc(d,a.n.b)}for(k=new ccb(a.i);k.a1){b=$wnd.Math.min(f,a.c);j=(l=new IGb(a.e.c),GGb(l,(RGb(),KGb)),qub(l,(J6b(),Z5b),kA(nub(j,Z5b),83)),qub(l,B5b,kA(nub(j,B5b),185)),l.o=a.e.b++,tbb(a.b,l),l.n.b=j.n.b,l.n.a=b,m=new lHb,kHb(m,(FDc(),kDc)),jHb(m,j),m.k.a=l.n.a,m.k.b=l.n.b/2,n=new lHb,kHb(n,EDc),jHb(n,l),n.k.b=l.n.b/2,n.k.a=-n.n.a,o=new PEb,LEb(o,m),MEb(o,n),l);tbb(a.e.c.a,j);--k;f-=a.c+a.e.d}new BJb(a.d,a.b,a.c);for(h=new ccb(e);h.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!hhb()){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[HLd]=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 oKb(a,b){var c,d,e,f,g,h,i,j,k;if(Cn(vGb(b))!=1||kA(zn(vGb(b)),14).c.g.j!=(RGb(),OGb)){return null}c=kA(zn(vGb(b)),14);d=c.c.g;GGb(d,(RGb(),PGb));qub(d,(E2b(),e2b),null);qub(d,f2b,null);qub(d,H1b,kA(nub(b,H1b),126));qub(d,G1b,(B3(),B3(),true));qub(d,i2b,nub(b,i2b));d.n.b=b.n.b;f=nub(c.d,i2b);g=null;for(j=DGb(d,(FDc(),EDc)).tc();j.hc();){h=kA(j.ic(),11);if(h.d.c.length!=0){qub(h,i2b,f);k=c.d;h.n.a=k.n.a;h.n.b=k.n.b;h.a.a=k.a.a;h.a.b=k.a.b;vbb(h.e,k.e);k.e.c=tz(NE,oJd,1,0,5,1);g=h;break}}qub(c.d,i2b,null);if(Cn(DGb(b,EDc))>1){for(i=sib(Vr(DGb(b,EDc)),0);i.b!=i.d.c;){h=kA(Gib(i),11);if(h.d.c.length==0){e=new lHb;kHb(e,EDc);e.n.a=h.n.a;e.n.b=h.n.b;jHb(e,d);qub(e,i2b,nub(h,i2b));jHb(h,null)}else{jHb(g,d)}}}qub(b,i2b,null);qub(b,G1b,(null,false));GGb(b,KGb);qub(d,(J6b(),Z5b),kA(nub(b,Z5b),83));qub(d,B5b,kA(nub(b,B5b),185));sbb(a.b,0,d);return d} -function Jkc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;xEc(c,'Polyline edge routing',1);n=Vpb(nA(nub(b,(J6b(),u6b))));e=Vpb(nA(nub(b,l6b)));d=$wnd.Math.min(1,e/n);s=0;if(b.b.c.length!=0){t=Gkc(kA(xbb(b.b,0),26));s=0.4*d*t}h=new s9(b.b,0);while(h.b0&&(s-=n);UFb(g,s);k=0;for(m=new ccb(g.a);m.a0);h.a.cd(h.c=--h.b)}i=0.4*d*k;!f&&h.b0||k.i==EDc&&k.d.c.length-k.f.c.length<0)){c=false;break}if(k.i==EDc){for(e=new ccb(k.f);e.a=h){Lpb(q.b>0);q.a.cd(q.c=--q.b);break}else if(o.a>i){if(!e){tbb(o.b,k);o.c=$wnd.Math.min(o.c,i);o.a=$wnd.Math.max(o.a,h);e=o}else{vbb(e.b,o.b);e.a=$wnd.Math.max(e.a,o.a);l9(q)}}}if(!e){e=new M9b;e.c=i;e.a=h;r9(q,e);tbb(e.b,k)}}g=b.b;j=0;for(p=new ccb(d);p.a0&&A2(d,-6)>=0){if(A2(d,0)>=0){e=c+U2(d);for(g=17;g>=e;g--){j[g+1]=j[g]}j[++e]=46;h&&(j[--c]=45);return r6(j,c,18-c+1)}for(f=2;H2(f,y2(K2(d),1));f++){j[--c]=48}j[--c]=46;j[--c]=48;h&&(j[--c]=45);return r6(j,c,18-c)}m=c+1;k=new N6;h&&(k.a+='-',k);if(18-m>=1){C6(k,j[c]);k.a+='.';k.a+=r6(j,c+1,18-c-1)}else{k.a+=r6(j,c,18-c)}k.a+='E';A2(d,0)>0&&(k.a+='+',k);k.a+=''+V2(d);return k.a} -function Swb(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,H,I;l=kA(nub(a,(Byb(),zyb)),35);r=jJd;s=jJd;p=oKd;q=oKd;for(u=new ccb(a.e);u.ab.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}DZb(GZb(FZb(HZb(EZb(new IZb,1),100),n),q))}}}}}}} -function DIb(a,b,c,d,e,f){var g,h,i,j,k,l;j=new lHb;lub(j,b);kHb(j,kA(AOc(b,(J6b(),b6b)),69));qub(j,(E2b(),i2b),b);jHb(j,c);l=j.n;l.a=b.g;l.b=b.f;k=j.k;k.a=b.i;k.b=b.j;I8(a.a,b,j);g=Mob(Tob(Rob(new Zob(null,(!b.e&&(b.e=new pxd(JV,b,7,4)),new ekb(b.e,16))),new LIb),new HIb),new NIb(b));g||(g=Mob(Tob(Rob(new Zob(null,(!b.d&&(b.d=new pxd(JV,b,8,5)),new ekb(b.d,16))),new PIb),new JIb),new RIb(b)));g||(g=Mob(new Zob(null,(!b.e&&(b.e=new pxd(JV,b,7,4)),new ekb(b.e,16))),new TIb));qub(j,Z1b,(B3(),g?true:false));RFb(j,f,e,kA(AOc(b,X5b),9));for(i=new a0c((!b.n&&(b.n=new zkd(LV,b,1,7)),b.n));i.e!=i.i._b();){h=kA($_c(i),137);!Vpb(mA(AOc(h,N5b)))&&!!h.a&&tbb(j.e,BIb(h))}(!b.d&&(b.d=new pxd(JV,b,8,5)),b.d).i+(!b.e&&(b.e=new pxd(JV,b,7,4)),b.e).i>1&&d.nc((Z0b(),T0b));switch(e.g){case 2:case 1:(j.i==(FDc(),lDc)||j.i==CDc)&&d.nc((Z0b(),W0b));break;case 4:case 3:(j.i==(FDc(),kDc)||j.i==EDc)&&d.nc((Z0b(),W0b));}return j} -function gHd(a,b){UGd();var c,d,e,f,g,h,i,j,k,l,m,n,o;if(M8(vGd)==0){l=tz(n2,cKd,112,xGd.length,0,1);for(g=0;gj&&(d.a+=q6(tz(CA,yKd,22,-j,15,1)));d.a+='Is';if(b6(i,o6(32))>=0){for(e=0;e0){if(g+d>a.length){return false}h=ax(a.substr(0,g+d),b)}else{h=ax(a,b)}}switch(f){case 71:h=Zw(a,g,xz(pz(UE,1),cKd,2,6,[PKd,QKd]),b);e.e=h;return true;case 77:return ix(a,b,e,h,g);case 76:return kx(a,b,e,h,g);case 69:return gx(a,b,g,e);case 99:return jx(a,b,g,e);case 97:h=Zw(a,g,xz(pz(UE,1),cKd,2,6,['AM','PM']),b);e.b=h;return true;case 121:return mx(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 hx(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gB[i]&&(q=i);for(l=new ccb(a.b.b);l.a0?(m=IDc(h)):(m=GDc(IDc(h)));a.ze(b6b,m)}switch(m.g){case 4:qub(k,r5b,(K2b(),G2b));qub(k,Q1b,($_b(),Z_b));k.n.b=g.b;kHb(l,(FDc(),kDc));l.k.b=j.b;break;case 2:qub(k,r5b,(K2b(),I2b));qub(k,Q1b,($_b(),X_b));k.n.b=g.b;kHb(l,(FDc(),EDc));l.k.b=j.b;break;case 1:qub(k,$1b,(p1b(),o1b));k.n.a=g.a;kHb(l,(FDc(),CDc));l.k.a=j.a;break;case 3:qub(k,$1b,(p1b(),m1b));k.n.a=g.a;kHb(l,(FDc(),lDc));l.k.a=j.a;}if(b==PCc||b==RCc||b==QCc){n=0;if(b==PCc&&a.ye($5b)){switch(m.g){case 1:case 2:n=kA(a.xe($5b),21).a;break;case 3:case 4:n=-kA(a.xe($5b),21).a;}}else{switch(m.g){case 4:case 2:n=f.b;b==RCc&&(n/=e.b);break;case 1:case 3:n=f.a;b==RCc&&(n/=e.a);}}qub(k,q2b,n)}qub(k,V1b,m);return k} -function WKc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;m=kA(kA(Ke(a.r,b),19),60);if(b==(FDc(),kDc)||b==EDc){$Kc(a,b);return}f=b==lDc?(YLc(),ULc):(YLc(),XLc);u=b==lDc?(eJc(),dJc):(eJc(),bJc);c=kA(Cfb(a.b,b),114);d=c.i;e=d.c+hyc(xz(pz(DA,1),vLd,22,15,[c.n.b,a.A.b,a.k]));r=d.c+d.b-hyc(xz(pz(DA,1),vLd,22,15,[c.n.c,a.A.c,a.k]));g=GLc(LLc(f),a.s);s=b==lDc?sRd:YQd;for(l=m.tc();l.hc();){j=kA(l.ic(),111);if(!j.c||j.c.d.c.length<=0){continue}q=j.b.Re();p=j.e;n=j.c;o=n.i;o.b=(i=n.n,n.e.a+i.b+i.c);o.a=(h=n.n,n.e.b+h.d+h.a);gjb(u,GSd);n.f=u;CIc(n,(pIc(),oIc));o.c=p.a-(o.b-q.a)/2;v=$wnd.Math.min(e,p.a);w=$wnd.Math.max(r,p.a+q.a);o.cw&&(o.c=w-o.b);tbb(g.d,new cMc(o,ELc(g,o)));s=b==lDc?$wnd.Math.max(s,p.b+j.b.Re().b):$wnd.Math.min(s,p.b)}s+=b==lDc?a.s:-a.s;t=FLc((g.e=s,g));t>0&&(kA(Cfb(a.b,b),114).a.b=t);for(k=m.tc();k.hc();){j=kA(k.ic(),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 zHc(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new pyc(b.Qe().a,b.Qe().b,b.Re().a,b.Re().b);e=new oyc;if(a.c){for(g=new ccb(b.We());g.a=2){if((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a).i==0){c=(gMc(),e=new BQc,e);fXc((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a).i>1){m=new j0c((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a));while(m.e!=m.i._b()){__c(m)}}zFc(b,kA(WXc((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a),0),270))}if(l){for(d=new a0c((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a));d.e!=d.i._b();){c=kA($_c(d),270);for(j=new a0c((!c.a&&(c.a=new fdd(GV,c,5)),c.a));j.e!=j.i._b();){i=kA($_c(j),531);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new a0c((!a.n&&(a.n=new zkd(LV,a,1,7)),a.n));g.e!=g.i._b();){f=kA($_c(g),137);k=kA(AOc(f,$Bc),9);!!k&&pPc(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 Omc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.Pb();a.f.a.Pb();a.c.c=tz(NE,oJd,1,0,5,1);a.i.c=tz(NE,oJd,1,0,5,1);a.g.a.Pb();if(b){for(g=new ccb(b.a);g.a>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!BEd(g=f[k++])||!BEd(h=f[k++])){return null}b=wEd[g];c=wEd[h];i=f[k++];j=f[k++];if(wEd[i]==-1||wEd[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=tz(BA,jTd,22,n*3+1,15,1);T6(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=wEd[i];if((d&3)!=0)return null;q=tz(BA,jTd,22,n*3+2,15,1);T6(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=wEd[i];e=wEd[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 QMc(a,b,c){var d,e,f,g,h,i,j,k,l,m;i=new Gbb;l=b.length;g=Xkd(c);for(j=0;jh){t=0;u+=g+r;g=0}Jwb(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 UKb(a,b,c){var d,e,f,g,h;d=b.i;f=a.g.n;e=a.g.d;h=a.k;g=Pyc(xz(pz(aU,1),cKd,9,0,[h,a.a]));switch(a.i.g){case 1:DIc(b,(eJc(),bJc));d.d=-e.d-c-d.a;if(kA(kA(jdb(b.d).a.cd(0),271).xe((E2b(),b2b)),265)==(jHc(),fHc)){CIc(b,(pIc(),oIc));d.c=g.a-Vpb(nA(nub(a,g2b)))-c-d.b}else{CIc(b,(pIc(),nIc));d.c=g.a+Vpb(nA(nub(a,g2b)))+c}break;case 2:CIc(b,(pIc(),nIc));d.c=f.a+e.c+c;if(kA(kA(jdb(b.d).a.cd(0),271).xe((E2b(),b2b)),265)==(jHc(),fHc)){DIc(b,(eJc(),bJc));d.d=g.b-Vpb(nA(nub(a,g2b)))-c-d.a}else{DIc(b,(eJc(),dJc));d.d=g.b+Vpb(nA(nub(a,g2b)))+c}break;case 3:DIc(b,(eJc(),dJc));d.d=f.b+e.a+c;if(kA(kA(jdb(b.d).a.cd(0),271).xe((E2b(),b2b)),265)==(jHc(),fHc)){CIc(b,(pIc(),oIc));d.c=g.a-Vpb(nA(nub(a,g2b)))-c-d.b}else{CIc(b,(pIc(),nIc));d.c=g.a+Vpb(nA(nub(a,g2b)))+c}break;case 4:CIc(b,(pIc(),oIc));d.c=-e.b-c-d.b;if(kA(kA(jdb(b.d).a.cd(0),271).xe((E2b(),b2b)),265)==(jHc(),fHc)){DIc(b,(eJc(),bJc));d.d=g.b-Vpb(nA(nub(a,g2b)))-c-d.a}else{DIc(b,(eJc(),dJc));d.d=g.b+Vpb(nA(nub(a,g2b)))+c}}} -function FTb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=new LTb(a);h=Qr(yn(b,g));bdb();Dbb(h,new QTb);e=a.b;switch(e.c){case 2:i=new UTb(e.a);c=Kn(yn(h,i));se(c)?(j=kA(te(c),188).b):(j=15);i=new UTb(Glc(e));c=Kn(yn(h,i));se(c)?(f=kA(te(c),188).b):(f=15);i=new UTb(e.b);c=Kn(yn(h,i));se(c)?(k=kA(te(c),188).b):(k=15);d=ATb(a,j,f,k);Ggb(b,new ITb(d,a.c,a.e,a.a.c.g,e.a));Ggb(b,new ITb(d,a.c,a.e,a.a.c.g,Glc(e)));Ggb(b,new ITb(d,a.c,a.e,a.a.c.g,e.b));break;case 1:i=new UTb(e.a);c=Kn(yn(h,i));se(c)?(j=kA(te(c),188).b):(j=15);i=new UTb(e.b);c=Kn(yn(h,i));se(c)?(k=kA(te(c),188).b):(k=15);d=BTb(a,j,k);Ggb(b,new ITb(d,a.c,a.e,a.a.c.g,e.a));Ggb(b,new ITb(d,a.c,a.e,a.a.c.g,e.b));break;case 0:i=new UTb(e.a);c=Kn(yn(h,i));se(c)?(j=kA(te(c),188).b):(j=15);d=(l=a.b,m=xmc(a.a.c,a.a.d,j),pg(a.a.a,Vlc(m)),n=DTb(a.a.b,m.a,l),o=new Emc((!m.k&&(m.k=new Cmc(Xlc(m))),m.k)),zmc(o),!n?o:Gmc(o,n));Ggb(b,new ITb(d,a.c,a.e,a.a.c.g,e.a));break;default:throw x2(new O4('The loopside must be defined.'));}return d} -function ZDb(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;xEc(b,'Compound graph postprocessor',1);c=Vpb(mA(nub(a,(J6b(),y6b))));h=kA(nub(a,(E2b(),O1b)),238);k=new Jgb;for(r=h.Xb().tc();r.hc();){q=kA(r.ic(),14);g=new Ibb(h.Mc(q));bdb();Dbb(g,new BEb(a));v=wEb((Mpb(0,g.c.length),kA(g.c[0],234)));A=xEb(kA(xbb(g,g.c.length-1),234));t=v.g;SFb(A.g,t)?(s=kA(nub(t,h2b),31)):(s=uGb(t));l=$Db(q,g);xib(q.a);m=null;for(f=new ccb(g);f.alNd;C=$wnd.Math.abs(m.b-o.b)>lNd;(!c&&B&&C||c&&(B||C))&&mib(q.a,u)}pg(q.a,d);d.b==0?(m=u):(m=(Lpb(d.b!=0),kA(d.c.b.c,9)));_Db(n,l,p);if(xEb(e)==A){if(uGb(A.g)!=e.a){p=new Hyc;LFb(p,uGb(A.g),s)}qub(q,C2b,p)}aEb(n,q,s);k.a.Zb(n,k)}LEb(q,v);MEb(q,A)}for(j=k.a.Xb().tc();j.hc();){i=kA(j.ic(),14);LEb(i,null);MEb(i,null)}zEc(b)} -function mYb(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 s9(a.b,0);k=b.tc();o=0;j=kA(k.ic(),21).a;v=0;c=new Jgb;A=new iib;while(s.b=a.a){d=iNb(a,s);k=v5(k,d.b);u=v5(u,d.d);tbb(h,new fGc(s,d))}}B=new Gbb;for(j=0;j0),q.a.cd(q.c=--q.b),C=new lIb(a.b),r9(q,C),Lpb(q.b=d.n.b/2}else{s=!l}if(s){r=kA(nub(d,(E2b(),D2b)),15);if(!r){f=new Gbb;qub(d,D2b,f)}else if(m){f=r}else{e=kA(nub(d,I1b),15);if(!e){f=new Gbb;qub(d,I1b,f)}else{r._b()<=e._b()?(f=r):(f=e)}}}else{e=kA(nub(d,(E2b(),I1b)),15);if(!e){f=new Gbb;qub(d,I1b,f)}else if(l){f=e}else{r=kA(nub(d,D2b),15);if(!r){f=new Gbb;qub(d,D2b,f)}else{e._b()<=r._b()?(f=e):(f=r)}}}f.nc(a);qub(a,(E2b(),K1b),c);if(b.d==c){MEb(b,null);c.d.c.length+c.f.c.length==0&&jHb(c,null);xKb(c)}else{LEb(b,null);c.d.c.length+c.f.c.length==0&&jHb(c,null)}xib(b.a)} -function cKb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;if(yA(nub(a.c,(J6b(),Z5b)))===yA((VCc(),RCc))||yA(nub(a.c,Z5b))===yA(QCc)){for(k=new ccb(a.c.i);k.a0){e=kA(xbb(q.c.a,w-1),8);g=a.i[e.o];B=$wnd.Math.ceil(l8b(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.n.b+e.d.a)-B}j=oLd;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 gw(){var a=['\\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'];a[34]='\\"';a[92]='\\\\';a[173]='\\u00ad';a[1536]='\\u0600';a[1537]='\\u0601';a[1538]='\\u0602';a[1539]='\\u0603';a[1757]='\\u06dd';a[1807]='\\u070f';a[6068]='\\u17b4';a[6069]='\\u17b5';a[8203]='\\u200b';a[8204]='\\u200c';a[8205]='\\u200d';a[8206]='\\u200e';a[8207]='\\u200f';a[8232]='\\u2028';a[8233]='\\u2029';a[8234]='\\u202a';a[8235]='\\u202b';a[8236]='\\u202c';a[8237]='\\u202d';a[8238]='\\u202e';a[8288]='\\u2060';a[8289]='\\u2061';a[8290]='\\u2062';a[8291]='\\u2063';a[8292]='\\u2064';a[8298]='\\u206a';a[8299]='\\u206b';a[8300]='\\u206c';a[8301]='\\u206d';a[8302]='\\u206e';a[8303]='\\u206f';a[65279]='\\ufeff';a[65529]='\\ufff9';a[65530]='\\ufffa';a[65531]='\\ufffb';return a} -function Flc(){Flc=d3;jlc=new Mlc('N',0,(FDc(),lDc),lDc,0);glc=new Mlc('EN',1,kDc,lDc,1);flc=new Mlc('E',2,kDc,kDc,0);mlc=new Mlc('SE',3,CDc,kDc,1);llc=new Mlc('S',4,CDc,CDc,0);Elc=new Mlc('WS',5,EDc,CDc,1);Dlc=new Mlc('W',6,EDc,EDc,0);klc=new Mlc('NW',7,lDc,EDc,1);hlc=new Mlc('ENW',8,kDc,EDc,2);ilc=new Mlc('ESW',9,kDc,EDc,2);nlc=new Mlc('SEN',10,CDc,lDc,2);Blc=new Mlc('SWN',11,CDc,lDc,2);Clc=new Mlc(LQd,12,DDc,DDc,3);clc=qm(jlc,glc,flc,mlc,llc,Elc,xz(pz(OR,1),jKd,129,0,[Dlc,klc,hlc,ilc,nlc,Blc]));elc=(nl(),mm(xz(pz(NE,1),oJd,1,5,[jlc,flc,llc,Dlc])));dlc=mm(xz(pz(NE,1),oJd,1,5,[glc,mlc,Elc,klc]));slc=new ov(lDc);plc=mm(xz(pz(NE,1),oJd,1,5,[kDc,lDc]));olc=new ov(kDc);vlc=mm(xz(pz(NE,1),oJd,1,5,[CDc,kDc]));ulc=new ov(CDc);Alc=mm(xz(pz(NE,1),oJd,1,5,[EDc,CDc]));zlc=new ov(EDc);tlc=mm(xz(pz(NE,1),oJd,1,5,[lDc,EDc]));qlc=mm(xz(pz(NE,1),oJd,1,5,[kDc,lDc,EDc]));rlc=mm(xz(pz(NE,1),oJd,1,5,[kDc,CDc,EDc]));xlc=mm(xz(pz(NE,1),oJd,1,5,[CDc,EDc,lDc]));wlc=mm(xz(pz(NE,1),oJd,1,5,[CDc,kDc,lDc]));ylc=(av(),_u)} -function pdc(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=Vpb(nA(nub(a.a.j,(J6b(),R4b))));if(c<-1||!a.a.i||WCc(kA(nub(a.a.o,Z5b),83))||AGb(a.a.o,(FDc(),kDc))._b()<2&&AGb(a.a.o,EDc)._b()<2){return true}if(a.a.c.pf()){return false}u=0;t=0;s=new Gbb;for(i=a.a.e,j=0,k=i.length;j=c} -function DRb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;xEc(b,mOd,1);n=kA(nub(a,(J6b(),a5b)),197);for(e=new ccb(a.b);e.a=2){o=true;l=new ccb(f.i);c=kA(acb(l),11);while(l.a0){m=k<100?null:new f_c(k);j=new eYc(b);o=j.g;r=tz(FA,OKd,22,k,15,1);d=0;u=new dYc(k);for(e=0;e=0;){if(h!=null?kb(h,o[i]):null==o[i]){if(r.length<=d){q=r;r=tz(FA,OKd,22,2*r.length,15,1);T6(q,0,r,0,d)}r[d++]=e;fXc(u,o[i]);break v}}if(yA(h)===yA(h)){break}}}o=u.g;if(d>r.length){q=r;r=tz(FA,OKd,22,d,15,1);T6(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){ZXc(a,r[g])}if(d!=d){for(e=d;--e>=d;){ZXc(u,e)}q=r;r=tz(FA,OKd,22,d,15,1);T6(q,0,r,0,d)}b=u}}}else{b=kXc(a,b);for(e=a.i;--e>=0;){if(b.pc(a.g[e])){ZXc(a,e);t=true}}}if(t){if(r!=null){c=b._b();l=c==1?ncd(a,4,b.tc().ic(),null,r[0],p):ncd(a,6,b,r,r[0],p);m=c<100?null:new f_c(c);for(e=b.tc();e.hc();){n=e.ic();m=Pud(a,kA(n,75),m)}if(!m){vMc(a.e,l)}else{m.Sh(l);m.Th()}}else{m=s_c(b._b());for(e=b.tc();e.hc();){n=e.ic();m=Pud(a,kA(n,75),m)}!!m&&m.Th()}return true}else{return false}} -function cac(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;xEc(c,'MinWidth layering',1);n=b.b;A=b.a;I=kA(nub(b,(J6b(),s5b)),21).a;h=kA(nub(b,t5b),21).a;a.b=Vpb(nA(nub(b,k6b)));a.d=oLd;for(u=new ccb(A);u.a0||c.o==oic&&e0){l=kA(xbb(m.c.a,g-1),8);B=l8b(a.b,m,l);q=m.k.b-m.d.d-(l.k.b+l.n.b+l.d.a+B)}else{q=m.k.b-m.d.d}j=$wnd.Math.min(q,j);if(g=1){if(B-j>0&&o>=0){rPc(l,l.i+A);sPc(l,l.j+i*j)}else if(B-j<0&&n>=0){rPc(l,l.i+A*B);sPc(l,l.j+i)}}}}COc(a,hAc,(f=kA(e4(uU),10),new ngb(f,kA(ypb(f,f.length),10),0)));return new Jyc(C,k)} -function OVb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Gbb;for(m=new ccb(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=kA(F8(a.f,g.d.g),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=kl(vGb(n));So(h);){g=kA(To(h),14);if(g.a.b!=0){b=kA(rib(g.a),9);if(g.d.i==(FDc(),lDc)){q=new fXb(b,new Jyc(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.i==CDc){q=new fXb(b,new Jyc(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 RYc(){QYc();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=SYc((bdb(),new Xdb(new R9(PYc.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=SYc((bdb(),new Xdb(new R9(PYc.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=SYc((bdb(),new Xdb(new R9(PYc.d))));f.postMessage({id:b.id,data:e});break;case 'register':VYc(b.algorithms);f.postMessage({id:b.id});break;case 'layout':TYc(b.graph,b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){delete a[qKd];f.postMessage({id:b.data.id,error:a.message})}}} -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===YTd&&typeof self!==YTd){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==YTd&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} -function LLb(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.e.a==0){for(q=new ccb(a);q.a50?(r.c[r.c.length]=e,true):e.k>0?(s.c[s.c.length]=e,true):(t.c[t.c.length]=e,true)}if(s.c.length==1&&r.c.length==0){vbb(r,s);s.c=tz(NE,oJd,1,0,5,1)}r.c.length!=0&&kgb(aTb(a.a),(Flc(),jlc))&&kgb(aTb(a.a),(Flc(),llc))?TSb(a,r):vbb(s,r);s.c.length==0||USb(a,s);if(t.c.length!=0){c=bTb(a.a);if(c.c!=0){k=new ccb(t);i=(Pb(c),co((new En(c)).a));while(k.a1){p=kA(Io(i),129);Zkc(e,p,true);bcb(k);eTb(a.a,p)}}}m=t.c.length;d=WSb(a);n=new Gbb;g=m/_Sb(a.a).c|0;for(h=0;h3){vbb(n,(Flc(),Flc(),dlc));o-=4}switch(o){case 3:tbb(n,Jlc(d));case 2:q=Ilc(Jlc(d));do{q=Ilc(q)}while(!kgb(aTb(a.a),q));n.c[n.c.length]=q;q=Klc(Jlc(d));do{q=Klc(q)}while(!kgb(aTb(a.a),q));n.c[n.c.length]=q;break;case 1:tbb(n,Jlc(d));}l=new ccb(n);j=new ccb(t);while(l.ap){if(f){oib(w,n);oib(B,d5(k.b-1));tbb(a.d,o);h.c=tz(NE,oJd,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;ZEc(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}vbb(a.a,h);tbb(a.d,kA(xbb(h,h.c.length-1),145));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(kA(Fq(h.a,1),9).b-k.b)))}}}}}else{for(p=new ccb(b.i);p.ae){f=m.a-e;g=jJd;d.c=tz(NE,oJd,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(kA(Fq(h.a,h.a.b-2),9).b-m.b)))}}}}}if(d.c.length!=0&&f>b.n.a/2&&g>b.n.b/2){n=new lHb;jHb(n,b);kHb(n,(FDc(),lDc));n.k.a=b.n.a/2;r=new lHb;jHb(r,b);kHb(r,CDc);r.k.a=b.n.a/2;r.k.b=b.n.b;for(i=new ccb(d);i.a=j.b?LEb(h,r):LEb(h,n)}else{j=kA(vib(h.a),9);q=h.a.b==0?gHb(h.c):kA(rib(h.a),9);q.b>=j.b?MEb(h,r):MEb(h,n)}l=kA(nub(h,(J6b(),p5b)),74);!!l&&qg(l,j,true)}b.k.a=e-b.n.a/2}} -function wic(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 ccb(a.a.b);h.a0){d=l._b();j=zA($wnd.Math.floor((d+1)/2))-1;e=zA($wnd.Math.ceil((d+1)/2))-1;if(b.o==oic){for(k=e;k>=j;k--){if(b.a[u.o]==u){p=kA(l.cd(k),48);o=kA(p.a,8);if(!Hgb(c,p.b)&&n>a.b.e[o.o]){b.a[o.o]=u;b.g[u.o]=b.g[o.o];b.a[u.o]=b.g[u.o];b.f[b.g[u.o].o]=(B3(),Vpb(b.f[b.g[u.o].o])&u.j==(RGb(),OGb)?true:false);n=a.b.e[o.o]}}}}else{for(k=j;k<=e;k++){if(b.a[u.o]==u){r=kA(l.cd(k),48);q=kA(r.a,8);if(!Hgb(c,r.b)&&n=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw x2(new KEd(WYc((isd(),IUd))))}}else{throw x2(new KEd(WYc((isd(),EUd))))}c=d;if(b==44){if(e>=a.j){throw x2(new KEd(WYc((isd(),GUd))))}else if((b=X5(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw x2(new KEd(WYc((isd(),IUd))))}if(d>c)throw x2(new KEd(WYc((isd(),HUd))))}else{c=-1}}if(b!=125)throw x2(new KEd(WYc((isd(),FUd))));if(a.Ck(e)){f=(UGd(),UGd(),++TGd,new JHd(9,f));a.d=e+1}else{f=(UGd(),UGd(),++TGd,new JHd(3,f));a.d=e}f.nl(d);f.ml(c);LEd(a)}}return f} -function _Cb(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=bDb(YCb(a,(FDc(),qDc)),b);o=aDb(YCb(a,rDc),b);u=aDb(YCb(a,zDc),b);B=cDb(YCb(a,BDc),b);m=cDb(YCb(a,mDc),b);s=aDb(YCb(a,yDc),b);p=aDb(YCb(a,sDc),b);w=aDb(YCb(a,ADc),b);v=aDb(YCb(a,nDc),b);C=cDb(YCb(a,pDc),b);r=aDb(YCb(a,wDc),b);t=aDb(YCb(a,vDc),b);A=aDb(YCb(a,oDc),b);D=cDb(YCb(a,xDc),b);n=cDb(YCb(a,tDc),b);q=aDb(YCb(a,uDc),b);c=hyc(xz(pz(DA,1),vLd,22,15,[s.a,B.a,w.a,D.a]));d=hyc(xz(pz(DA,1),vLd,22,15,[o.a,l.a,u.a,q.a]));e=r.a;f=hyc(xz(pz(DA,1),vLd,22,15,[p.a,m.a,v.a,n.a]));j=hyc(xz(pz(DA,1),vLd,22,15,[s.b,o.b,p.b,t.b]));i=hyc(xz(pz(DA,1),vLd,22,15,[B.b,l.b,m.b,q.b]));k=C.b;h=hyc(xz(pz(DA,1),vLd,22,15,[w.b,u.b,v.b,A.b]));TCb(YCb(a,qDc),c+e,j+k);TCb(YCb(a,uDc),c+e,j+k);TCb(YCb(a,rDc),c+e,0);TCb(YCb(a,zDc),c+e,j+k+i);TCb(YCb(a,BDc),0,j+k);TCb(YCb(a,mDc),c+e+d,j+k);TCb(YCb(a,sDc),c+e+d,0);TCb(YCb(a,ADc),0,j+k+i);TCb(YCb(a,nDc),c+e+d,j+k+i);TCb(YCb(a,pDc),0,j);TCb(YCb(a,wDc),c,0);TCb(YCb(a,oDc),0,j+k+i);TCb(YCb(a,tDc),c+e+d,0);g=new Hyc;g.a=hyc(xz(pz(DA,1),vLd,22,15,[c+d+e+f,C.a,t.a,A.a]));g.b=hyc(xz(pz(DA,1),vLd,22,15,[j+i+k+h,r.b,D.b,n.b]));return g} -function uMc(){uMc=d3;iMc();tMc=hMc.a;kA(WXc(Ibd(hMc.a),0),17);nMc=hMc.f;kA(WXc(Ibd(hMc.f),0),17);kA(WXc(Ibd(hMc.f),1),29);sMc=hMc.n;kA(WXc(Ibd(hMc.n),0),29);kA(WXc(Ibd(hMc.n),1),29);kA(WXc(Ibd(hMc.n),2),29);kA(WXc(Ibd(hMc.n),3),29);oMc=hMc.g;kA(WXc(Ibd(hMc.g),0),17);kA(WXc(Ibd(hMc.g),1),29);kMc=hMc.c;kA(WXc(Ibd(hMc.c),0),17);kA(WXc(Ibd(hMc.c),1),17);pMc=hMc.i;kA(WXc(Ibd(hMc.i),0),17);kA(WXc(Ibd(hMc.i),1),17);kA(WXc(Ibd(hMc.i),2),17);kA(WXc(Ibd(hMc.i),3),17);kA(WXc(Ibd(hMc.i),4),29);qMc=hMc.j;kA(WXc(Ibd(hMc.j),0),17);lMc=hMc.d;kA(WXc(Ibd(hMc.d),0),17);kA(WXc(Ibd(hMc.d),1),17);kA(WXc(Ibd(hMc.d),2),17);kA(WXc(Ibd(hMc.d),3),17);kA(WXc(Ibd(hMc.d),4),29);kA(WXc(Ibd(hMc.d),5),29);kA(WXc(Ibd(hMc.d),6),29);kA(WXc(Ibd(hMc.d),7),29);jMc=hMc.b;kA(WXc(Ibd(hMc.b),0),29);kA(WXc(Ibd(hMc.b),1),29);mMc=hMc.e;kA(WXc(Ibd(hMc.e),0),29);kA(WXc(Ibd(hMc.e),1),29);kA(WXc(Ibd(hMc.e),2),29);kA(WXc(Ibd(hMc.e),3),29);kA(WXc(Ibd(hMc.e),4),17);kA(WXc(Ibd(hMc.e),5),17);kA(WXc(Ibd(hMc.e),6),17);kA(WXc(Ibd(hMc.e),7),17);kA(WXc(Ibd(hMc.e),8),17);kA(WXc(Ibd(hMc.e),9),17);kA(WXc(Ibd(hMc.e),10),29);rMc=hMc.k;kA(WXc(Ibd(hMc.k),0),29);kA(WXc(Ibd(hMc.k),1),29)} -function _mc(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;C=new yib;w=new yib;q=-1;for(i=new ccb(a);i.a=o){if(s>o){n.c=tz(NE,oJd,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=kA(xbb(n,Xjb(b,n.c.length)),125);F.a.$b(m)!=null;m.p=p++;dnc(m,C,w);n.c=tz(NE,oJd,1,0,5,1)}}u=a.c.length+1;for(h=new ccb(a);h.aD.p){l9(c);Abb(D.g,d);if(d.c>0){d.a=D;tbb(D.q,d);d.b=A;tbb(A.g,d)}}}}} -function ggc(a,b,c){var d,e,f,g,h,i,j,k,l;xEc(c,'Network simplex node placement',1);a.e=b;a.n=kA(nub(b,(E2b(),v2b)),266);fgc(a);Tfc(a);Sob(Rob(new Zob(null,new ekb(a.e.b,16)),new Vgc),new Xgc(a));Sob(Pob(Rob(Pob(Rob(new Zob(null,new ekb(a.e.b,16)),new Khc),new Mhc),new Ohc),new Qhc),new Tgc(a));if(Vpb(mA(nub(a.e,(J6b(),E5b))))){g=BEc(c,1);xEc(g,'Straight Edges Pre-Processing',1);egc(a);zEc(g)}MZb(a.f);f=kA(nub(b,x6b),21).a*a.f.a.c.length;w$b(J$b(K$b(N$b(a.f),f),false),BEc(c,1));if(a.d.a._b()!=0){g=BEc(c,1);xEc(g,'Flexible Where Space Processing',1);h=kA(jjb(Xob(Tob(new Zob(null,new ekb(a.f.a,16)),new Zgc),(Npb(new tgc),new Nmb))),21).a;i=kA(jjb(Vob(Tob(new Zob(null,new ekb(a.f.a,16)),new _gc),new xgc)),21).a;j=i-h;k=p$b(new r$b,a.f);l=p$b(new r$b,a.f);DZb(GZb(FZb(EZb(HZb(new IZb,20000),j),k),l));Sob(Pob(Pob(Gcb(a.i),new bhc),new dhc),new fhc(h,k,j,l));for(e=a.d.a.Xb().tc();e.hc();){d=kA(e.ic(),189);d.g=1}w$b(J$b(K$b(N$b(a.f),f),false),BEc(g,1));zEc(g)}if(Vpb(mA(nub(b,E5b)))){g=BEc(c,1);xEc(g,'Straight Edges Post-Processing',1);dgc(a);zEc(g)}Sfc(a);a.e=null;a.f=null;a.i=null;a.c=null;L8(a.k);a.j=null;a.a=null;a.o=null;a.d.a.Pb();zEc(c)} -function LRb(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 Hbb(b.b);u=new Hbb(b.b);m=new Hbb(b.b);B=new Hbb(b.b);q=new Hbb(b.b);for(A=sib(b,0);A.b!=A.d.c;){v=kA(Gib(A),11);for(h=new ccb(v.f);h.a0;r=v.f.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 ccb(p);o.a=0&&Z5(a.substr(h,'//'.length),'//')){h+=2;i=W5c(a,h,E5c,F5c);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||a.charCodeAt(h)!=47)){g=false;i=c6(a,o6(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&X5(k,k.length-1)==58){e=k;h=i}}if(h=m){if(u>m){l.c=tz(NE,oJd,1,0,5,1);m=u}l.c[l.c.length]=q}}if(l.c.length!=0){k=kA(xbb(l,Xjb(b,l.c.length)),165);Elb(H.a,k)!=null;k.d=n++;akc(k,F,B);l.c=tz(NE,oJd,1,0,5,1)}}w=a.c.length+1;for(r=new ccb(a);r.aG.d){l9(c);Abb(G.b,d);if(d.c>0){d.a=G;tbb(G.e,d);d.b=C;tbb(C.b,d)}}}}} -function XUc(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;s=new Xm;t=new Xm;k=WTc(b,zTd);d=new WVc(a,c,s,t);MUc(d.a,d.b,d.c,d.d,k);i=(w=s.i,!w?(s.i=sA(s.c,122)?new Ph(s,kA(s.c,122)):sA(s.c,115)?new Nh(s,kA(s.c,115)):new ph(s,s.c)):w);for(B=i.tc();B.hc();){A=kA(B.ic(),270);e=kA(Ke(s,A),19);for(p=e.tc();p.hc();){o=p.ic();u=kA(qc(a.d,o),270);if(u){h=(!A.e&&(A.e=new pxd(IV,A,10,9)),A.e);fXc(h,u)}else{g=ZTc(b,HTd);m=NTd+o+OTd+g;n=m+MTd;throw x2(new aUc(n))}}}j=(v=t.i,!v?(t.i=sA(t.c,122)?new Ph(t,kA(t.c,122)):sA(t.c,115)?new Nh(t,kA(t.c,115)):new ph(t,t.c)):v);for(D=j.tc();D.hc();){C=kA(D.ic(),270);f=kA(Ke(t,C),19);for(r=f.tc();r.hc();){q=r.ic();u=kA(qc(a.d,q),270);if(u){l=(!C.g&&(C.g=new pxd(IV,C,9,10)),C.g);fXc(l,u)}else{g=ZTc(b,HTd);m=NTd+q+OTd+g;n=m+MTd;throw x2(new aUc(n))}}}!c.b&&(c.b=new pxd(HV,c,4,7));if(c.b.i!=0&&(!c.c&&(c.c=new pxd(HV,c,5,8)),c.c.i!=0)&&(!c.b&&(c.b=new pxd(HV,c,4,7)),c.b.i<=1&&(!c.c&&(c.c=new pxd(HV,c,5,8)),c.c.i<=1))&&(!c.a&&(c.a=new zkd(IV,c,6,6)),c.a).i==1){F=kA(WXc((!c.a&&(c.a=new zkd(IV,c,6,6)),c.a),0),270);if(!nQc(F)&&!oQc(F)){uQc(F,kA(WXc((!c.b&&(c.b=new pxd(HV,c,4,7)),c.b),0),97));vQc(F,kA(WXc((!c.c&&(c.c=new pxd(HV,c,5,8)),c.c),0),97))}}} -function gDb(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;a.d=new Jyc(oLd,oLd);a.c=new Jyc(pLd,pLd);for(m=b.tc();m.hc();){k=kA(m.ic(),31);for(t=new ccb(k.a);t.a=v||!p9b(r,d))&&(d=r9b(b,k));FGb(r,d);for(f=kl(vGb(r));So(f);){e=kA(To(f),14);if(a.a[e.o]){continue}p=e.c.g;--a.e[p.o];a.e[p.o]==0&&(Spb(Djb(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){tbb(b.b,(Mpb(j,k.c.length),kA(k.c[j],26)))}b.a.c=tz(NE,oJd,1,0,5,1);zEc(c)} -function _Uc(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;F=OUc(a,XWc(c),b);aPc(F,ZTc(b,HTd));G=kA(qc(a.g,TTc(Ly(b,oTd))),35);m=Ly(b,'sourcePort');d=null;!!m&&(d=TTc(m));H=kA(qc(a.j,d),121);if(!G){h=UTc(b);o="An edge must have a source node (edge id: '"+h;p=o+MTd;throw x2(new aUc(p))}if(!!H&&!Hb(mTc(H),G)){i=ZTc(b,HTd);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+MTd;throw x2(new aUc(r))}B=(!F.b&&(F.b=new pxd(HV,F,4,7)),F.b);H?(f=H):(f=G);fXc(B,f);I=kA(qc(a.g,TTc(Ly(b,PTd))),35);n=Ly(b,'targetPort');e=null;!!n&&(e=TTc(n));J=kA(qc(a.j,e),121);if(!I){l=UTc(b);s="An edge must have a target node (edge id: '"+l;t=s+MTd;throw x2(new aUc(t))}if(!!J&&!Hb(mTc(J),I)){j=ZTc(b,HTd);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+MTd;throw x2(new aUc(v))}C=(!F.c&&(F.c=new pxd(HV,F,5,8)),F.c);J?(g=J):(g=I);fXc(C,g);if((!F.b&&(F.b=new pxd(HV,F,4,7)),F.b).i==0||(!F.c&&(F.c=new pxd(HV,F,5,8)),F.c).i==0){k=ZTc(b,HTd);w=LTd+k;A=w+MTd;throw x2(new aUc(A))}aVc(b,F);K=$Wc(F,true,true);L=YTc(b,'sourcePoint');M=new EVc(K);zUc(M.a,L);N=YTc(b,'targetPoint');O=new SVc(K);IUc(O.a,N);P=WTc(b,ATd);Q=new TVc(K);JUc(Q.a,P);D=ZUc(a,b,F);return D} -function j8(a,b){g8();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;A=a.e;n=a.d;e=a.a;if(A==0){switch(b){case 0:return '0';case 1:return ALd;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:v=new M6;b<0?(v.a+='0E+',v):(v.a+='0E',v);v.a+=-b;return v.a;}}s=n*10+1+7;t=tz(CA,yKd,22,s+1,15,1);c=s;if(n==1){g=e[0];if(g<0){G=z2(g,yLd);do{o=G;G=C2(G,10);t[--c]=48+U2(R2(o,J2(G,10)))&AKd}while(A2(G,0)!=0)}else{G=g;do{o=G;G=G/10|0;t[--c]=48+(o-G*10)&AKd}while(G!=0)}}else{C=tz(FA,OKd,22,n,15,1);F=n;T6(e,0,C,0,n);H:while(true){w=0;for(i=F-1;i>=0;i--){D=y2(O2(w,32),z2(C[i],yLd));q=h8(D);C[i]=U2(q);w=U2(P2(q,32))}r=U2(w);p=c;do{t[--c]=48+r%10&AKd}while((r=r/10|0)!=0&&c!=0);d=9-p+c;for(h=0;h0;h++){t[--c]=48}k=F-1;for(;C[k]==0;k--){if(k==0){break H}}F=k+1}while(t[c]==48){++c}}m=A<0;f=s-c-b-1;if(b==0){m&&(t[--c]=45);return r6(t,c,s-c)}if(b>0&&f>=-6){if(f>=0){j=c+f;for(l=s-1;l>=j;l--){t[l+1]=t[l]}t[++j]=46;m&&(t[--c]=45);return r6(t,c,s-c+1)}for(k=2;k<-f+1;k++){t[--c]=48}t[--c]=46;t[--c]=48;m&&(t[--c]=45);return r6(t,c,s-c)}B=c+1;u=new N6;m&&(u.a+='-',u);if(s-B>=1){C6(u,t[c]);u.a+='.';u.a+=r6(t,c+1,s-c-1)}else{u.a+=r6(t,c,s-c)}u.a+='E';f>0&&(u.a+='+',u);u.a+=''+f;return u.a} -function uGc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P;t=kA(WXc((!a.b&&(a.b=new pxd(HV,a,4,7)),a.b),0),97);v=t.Yf();w=t.Zf();u=t.Xf()/2;p=t.Wf()/2;if(sA(t,187)){s=kA(t,121);v+=mTc(s).i;v+=mTc(s).i}v+=u;w+=p;F=kA(WXc((!a.b&&(a.b=new pxd(HV,a,4,7)),a.b),0),97);H=F.Yf();I=F.Zf();G=F.Xf()/2;A=F.Wf()/2;if(sA(F,187)){D=kA(F,121);H+=mTc(D).i;H+=mTc(D).i}H+=G;I+=A;if((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a).i==0){h=(gMc(),j=new BQc,j);fXc((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a),h)}else if((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a).i>1){o=new j0c((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a));while(o.e!=o.i._b()){__c(o)}}g=kA(WXc((!a.a&&(a.a=new zkd(IV,a,6,6)),a.a),0),270);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+Yjb(b,24)*LLd*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(gMc(),i=new QOc,i);OOc(e,m);POc(e,n);fXc((!g.a&&(g.a=new fdd(GV,g,5)),g.a),e)}} -function swb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Gbb;h=new Gbb;q=b/2;n=a._b();e=kA(a.cd(0),9);r=kA(a.cd(1),9);o=twb(e.a,e.b,r.a,r.b,q);tbb(d,(Mpb(0,o.c.length),kA(o.c[0],9)));tbb(h,(Mpb(1,o.c.length),kA(o.c[1],9)));for(j=2;j=0;i--){mib(c,(Mpb(i,g.c.length),kA(g.c[i],9)))}return c} -function tMb(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=kA(nub(a,(J6b(),Z5b)),83);if(!(A!=(VCc(),TCc)&&A!=UCc)){return}o=a.b;n=o.c.length;k=new Hbb((Wj(n+2,gKd),Dv(y2(y2(5,n+2),(n+2)/10|0))));p=new Hbb((Wj(n+2,gKd),Dv(y2(y2(5,n+2),(n+2)/10|0))));tbb(k,new Bgb);tbb(k,new Bgb);tbb(p,new Gbb);tbb(p,new Gbb);w=new Gbb;for(b=0;bF?l:F}for(d=new ccb(C.f);d.aF?B:F}}qub(u,tfc,d5(l));qub(u,ufc,d5(B))}}r=0;for(n=new ccb(b.b);n.a=a.j){a.a=-1;a.c=1;return}b=X5(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw x2(new KEd(WYc((isd(),_Td))));a.a=X5(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(X5(a.i,a.d)!=63)break;if(++a.d>=a.j)throw x2(new KEd(WYc((isd(),aUd))));b=X5(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 x2(new KEd(WYc((isd(),aUd))));b=X5(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw x2(new KEd(WYc((isd(),bUd))));break;case 35:while(a.d=a.j)throw x2(new KEd(WYc((isd(),_Td))));a.a=X5(a.i,a.d++);break;default:d=0;}a.c=d} -function EFd(a){var b,c,d,e,f,g,h,i,j;a.b=1;LEd(a);b=null;if(a.c==0&&a.a==94){LEd(a);b=(UGd(),UGd(),++TGd,new wHd(4));qHd(b,0,TWd);h=(null,++TGd,new wHd(4))}else{h=(UGd(),UGd(),++TGd,new wHd(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){vHd(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:tHd(h,DFd(c));d=true;break;case 105:case 73:case 99:case 67:c=(tHd(h,DFd(c)),-1);d=true;break;case 112:case 80:i=REd(a,c);if(!i)throw x2(new KEd(WYc((isd(),nUd))));tHd(h,i);d=true;break;default:c=CFd(a);}}else if(j==24&&!e){if(b){vHd(b,h);h=b}f=EFd(a);vHd(h,f);if(a.c!=0||a.a!=93)throw x2(new KEd(WYc((isd(),rUd))));break}LEd(a);if(!d){if(j==0){if(c==91)throw x2(new KEd(WYc((isd(),sUd))));if(c==93)throw x2(new KEd(WYc((isd(),tUd))));if(c==45&&!e&&a.a!=93)throw x2(new KEd(WYc((isd(),uUd))))}if(a.c!=0||a.a!=45||c==45&&e){qHd(h,c,c)}else{LEd(a);if((j=a.c)==1)throw x2(new KEd(WYc((isd(),pUd))));if(j==0&&a.a==93){qHd(h,c,c);qHd(h,45,45)}else if(j==0&&a.a==93||j==24){throw x2(new KEd(WYc((isd(),uUd))))}else{g=a.a;if(j==0){if(g==91)throw x2(new KEd(WYc((isd(),sUd))));if(g==93)throw x2(new KEd(WYc((isd(),tUd))));if(g==45)throw x2(new KEd(WYc((isd(),uUd))))}else j==10&&(g=CFd(a));LEd(a);if(c>g)throw x2(new KEd(WYc((isd(),xUd))));qHd(h,c,g)}}}e=false}if(a.c==1)throw x2(new KEd(WYc((isd(),pUd))));uHd(h);rHd(h);a.b=0;LEd(a);return h} -function b9b(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;xEc(c,'Greedy cycle removal',1);s=b.a;K=s.c.length;a.a=tz(FA,OKd,22,K,15,1);a.c=tz(FA,OKd,22,K,15,1);a.b=tz(FA,OKd,22,K,15,1);i=0;for(q=new ccb(s);q.a0?D+1:1}for(f=new ccb(v.f);f.a0?D+1:1}}a.c[i]==0?mib(a.d,o):a.a[i]==0&&mib(a.e,o);++i}n=-1;m=1;k=new Gbb;F=kA(nub(b,(E2b(),s2b)),214);while(K>0){while(a.d.b!=0){H=kA(uib(a.d),8);a.b[H.o]=n--;c9b(a,H);--K}while(a.e.b!=0){I=kA(uib(a.e),8);a.b[I.o]=m++;c9b(a,I);--K}if(K>0){l=oKd;for(r=new ccb(s);r.a=l){if(t>l){k.c=tz(NE,oJd,1,0,5,1);l=t}k.c[k.c.length]=o}}}j=kA(xbb(k,Xjb(F,k.c.length)),8);a.b[j.o]=m++;c9b(a,j);--K}}G=s.c.length+1;for(i=0;ia.b[J]){KEb(d,true);qub(b,P1b,(B3(),B3(),true))}}}}a.a=null;a.c=null;a.b=null;xib(a.e);xib(a.d);zEc(c)} -function ypd(a){HRc(a.c,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'http://www.w3.org/2001/XMLSchema#decimal']));HRc(a.d,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'http://www.w3.org/2001/XMLSchema#integer']));HRc(a.e,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'http://www.w3.org/2001/XMLSchema#boolean']));HRc(a.f,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'EBoolean',RTd,'EBoolean:Object']));HRc(a.i,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'http://www.w3.org/2001/XMLSchema#byte']));HRc(a.g,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'http://www.w3.org/2001/XMLSchema#hexBinary']));HRc(a.j,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'EByte',RTd,'EByte:Object']));HRc(a.n,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'EChar',RTd,'EChar:Object']));HRc(a.t,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'http://www.w3.org/2001/XMLSchema#double']));HRc(a.u,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'EDouble',RTd,'EDouble:Object']));HRc(a.F,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'http://www.w3.org/2001/XMLSchema#float']));HRc(a.G,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'EFloat',RTd,'EFloat:Object']));HRc(a.I,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'http://www.w3.org/2001/XMLSchema#int']));HRc(a.J,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'EInt',RTd,'EInt:Object']));HRc(a.N,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'http://www.w3.org/2001/XMLSchema#long']));HRc(a.O,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'ELong',RTd,'ELong:Object']));HRc(a.Z,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'http://www.w3.org/2001/XMLSchema#short']));HRc(a.$,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'EShort',RTd,'EShort:Object']));HRc(a._,xVd,xz(pz(UE,1),cKd,2,6,[KVd,'http://www.w3.org/2001/XMLSchema#string']))} -function zIb(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;rIb(b);i=kA(WXc((!b.b&&(b.b=new pxd(HV,b,4,7)),b.b),0),97);k=kA(WXc((!b.c&&(b.c=new pxd(HV,b,5,8)),b.c),0),97);h=UWc(i);j=UWc(k);g=(!b.a&&(b.a=new zkd(IV,b,6,6)),b.a).i==0?null:kA(WXc((!b.a&&(b.a=new zkd(IV,b,6,6)),b.a),0),270);A=kA(F8(a.a,h),8);F=kA(F8(a.a,j),8);B=null;G=null;if(sA(i,187)){w=kA(F8(a.a,i),279);if(sA(w,11)){B=kA(w,11)}else if(sA(w,8)){A=kA(w,8);B=kA(xbb(A.i,0),11)}}if(sA(k,187)){D=kA(F8(a.a,k),279);if(sA(D,11)){G=kA(D,11)}else if(sA(D,8)){F=kA(D,8);G=kA(xbb(F.i,0),11)}}if(!A||!F){return null}p=new PEb;lub(p,b);qub(p,(E2b(),i2b),b);qub(p,(J6b(),p5b),null);n=kA(nub(d,X1b),19);A==F&&n.nc((Z0b(),Y0b));if(!B){v=(U7b(),S7b);C=null;if(!!g&&XCc(kA(nub(A,Z5b),83))){C=new Jyc(g.j,g.k);JFc(C,XPc(b));KFc(C,c);if(dXc(j,h)){v=R7b;vyc(C,A.k)}}B=NFb(A,C,v,d)}if(!G){v=(U7b(),R7b);H=null;if(!!g&&XCc(kA(nub(F,Z5b),83))){H=new Jyc(g.b,g.c);JFc(H,XPc(b));KFc(H,c)}G=NFb(F,H,v,uGb(F))}LEb(p,B);MEb(p,G);for(m=new a0c((!b.n&&(b.n=new zkd(LV,b,1,7)),b.n));m.e!=m.i._b();){l=kA($_c(m),137);if(!Vpb(mA(AOc(l,N5b)))&&!!l.a){q=BIb(l);tbb(p.b,q);switch(kA(nub(q,$4b),226).g){case 2:case 3:n.nc((Z0b(),R0b));break;case 1:case 0:n.nc((Z0b(),P0b));qub(q,$4b,(tBc(),pBc));}}}f=kA(nub(d,T4b),317);r=kA(nub(d,I5b),292);e=f==(t_b(),r_b)||r==(u7b(),q7b);if(!!g&&(!g.a&&(g.a=new fdd(GV,g,5)),g.a).i!=0&&e){s=DFc(g);o=new Vyc;for(u=sib(s,0);u.b!=u.d.c;){t=kA(Gib(u),9);mib(o,new Kyc(t))}qub(p,j2b,o)}return p} -function gKb(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;h=kA(xbb(a.d.c.b,d),26);F=new Jgb;n=new Jgb;for(m=0;mc&&(B=n.a.Zb(r,n),B==null)}G=new Jgb;o=new Jgb;for(t=F.a.Xb().tc();t.hc();){r=kA(t.ic(),8);g=b==1?zGb(r):vGb(r);for(j=(Zn(),new Zo(Rn(Dn(g.a,new Hn))));So(j);){i=kA(To(j),14);kIb(r.c)!=kIb(i.d.g.c)&&Ggb(G,i.d.g)}}for(u=n.a.Xb().tc();u.hc();){r=kA(u.ic(),8);g=b==1?zGb(r):vGb(r);for(j=(Zn(),new Zo(Rn(Dn(g.a,new Hn))));So(j);){i=kA(To(j),14);kIb(r.c)!=kIb(i.d.g.c)&&Ggb(o,i.d.g)}}if(bKb){S6()}A=kA(xbb(a.d.c.b,d+(b==1?1:-1)),26);p=oKd;q=jJd;for(l=0;ll?p:l):o.a.Qb(r)&&(q=ql){F=0;G+=k+A;k=0}Hnc(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 Bgb;c=new Bgb;for(C=new ccb(a);C.a=2){m=true;s=(Mpb(1,l.c.length),kA(l.c[1],26));for(p=new ccb(g.a);p.a=2){m=true;t=kA(xbb(l,l.c.length-2),26);for(p=new ccb(i.a);p.abic(f))&&(l=f)}}!l&&(l=(Mpb(0,q.c.length),kA(q.c[0],164)));for(p=new ccb(b.b);p.a0){o=(v+1)*a.d;o=0&&(R+=(v+2)*a.d)}t=D;h=i}while(D);for(e=new ccb(a.j);e.a=-1900?1:0;c>=4?I6(a,xz(pz(UE,1),cKd,2,6,[PKd,QKd])[h]):I6(a,xz(pz(UE,1),cKd,2,6,['BC','AD'])[h]);break;case 121:Vw(a,c,d);break;case 77:Uw(a,c,d);break;case 107:i=e.q.getHours();i==0?nx(a,24,c):nx(a,i,c);break;case 83:Tw(a,c,e);break;case 69:k=d.q.getDay();c==5?I6(a,xz(pz(UE,1),cKd,2,6,['S','M','T','W','T','F','S'])[k]):c==4?I6(a,xz(pz(UE,1),cKd,2,6,[RKd,SKd,TKd,UKd,VKd,WKd,XKd])[k]):I6(a,xz(pz(UE,1),cKd,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?I6(a,xz(pz(UE,1),cKd,2,6,['AM','PM'])[1]):I6(a,xz(pz(UE,1),cKd,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?nx(a,12,c):nx(a,l,c);break;case 75:m=e.q.getHours()%12;nx(a,m,c);break;case 72:n=e.q.getHours();nx(a,n,c);break;case 99:o=d.q.getDay();c==5?I6(a,xz(pz(UE,1),cKd,2,6,['S','M','T','W','T','F','S'])[o]):c==4?I6(a,xz(pz(UE,1),cKd,2,6,[RKd,SKd,TKd,UKd,VKd,WKd,XKd])[o]):c==3?I6(a,xz(pz(UE,1),cKd,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):nx(a,o,1);break;case 76:p=d.q.getMonth();c==5?I6(a,xz(pz(UE,1),cKd,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?I6(a,xz(pz(UE,1),cKd,2,6,[BKd,CKd,DKd,EKd,FKd,GKd,HKd,IKd,JKd,KKd,LKd,MKd])[p]):c==3?I6(a,xz(pz(UE,1),cKd,2,6,['Jan','Feb','Mar','Apr',FKd,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):nx(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?I6(a,xz(pz(UE,1),cKd,2,6,['Q1','Q2','Q3','Q4'])[q]):I6(a,xz(pz(UE,1),cKd,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();nx(a,r,c);break;case 109:j=e.q.getMinutes();nx(a,j,c);break;case 115:g=e.q.getSeconds();nx(a,g,c);break;case 122:c<4?I6(a,f.c[0]):I6(a,f.c[1]);break;case 118:I6(a,f.b);break;case 90:c<3?I6(a,xx(f)):c==3?I6(a,wx(f)):I6(a,zx(f.a));break;default:return false;}return true} -function F4b(){F4b=d3;var a;W2b=(a=kA(e4(eP),10),new ngb(a,kA(ypb(a,a.length),10),0));V2b=new FWc(EOd,W2b);p3b=new FWc(FOd,(B3(),B3(),false));u3b=(x1b(),v1b);t3b=new FWc(GOd,u3b);M3b=new FWc(HOd,(null,false));N3b=new FWc(IOd,(null,true));d5(1);j4b=new FWc(JOd,d5(7));k4b=new FWc(KOd,(null,false));c4b=new FWc(LOd,(null,false));d3b=(O_b(),M_b);c3b=new FWc(MOd,d3b);J3b=(W6b(),U6b);I3b=new FWc(NOd,J3b);A3b=(K2b(),J2b);z3b=new FWc(OOd,A3b);L3b=(F8b(),E8b);K3b=new FWc(POd,L3b);d5(-1);B3b=new FWc(QOd,d5(4));d5(-1);D3b=new FWc(ROd,d5(2));H3b=(L7b(),J7b);G3b=new FWc(SOd,H3b);d5(0);F3b=new FWc(TOd,d5(0));x3b=new FWc(UOd,d5(jJd));b3b=(t_b(),s_b);a3b=new FWc(VOd,b3b);$2b=new FWc(WOd,0.1);_2b=new FWc(XOd,(null,false));d5(0);X2b=new FWc(YOd,d5(40));Z2b=(g1b(),f1b);Y2b=new FWc(ZOd,Z2b);b4b=(u7b(),p7b);a4b=new FWc($Od,b4b);U3b=new DWc(_Od);P3b=(Vic(),Tic);O3b=new FWc(aPd,P3b);S3b=(x0b(),u0b);R3b=new FWc(bPd,S3b);new UFc;W3b=new FWc(cPd,0.3);Y3b=new DWc(dPd);$3b=(h7b(),f7b);Z3b=new FWc(ePd,$3b);j3b=(b8b(),a8b);i3b=new FWc(fPd,j3b);n3b=new FWc(gPd,(null,true));l3b=new FWc(hPd,0.4);h4b=new FWc(iPd,10);g4b=new FWc(jPd,10);i4b=new FWc(kPd,20);d5(0);d4b=new FWc(lPd,d5(0));d5(0);e4b=new FWc(mPd,d5(0));d5(0);f4b=new FWc(nPd,d5(0));Q2b=new FWc(oPd,(null,false));U2b=(J0b(),H0b);T2b=new FWc(pPd,U2b);S2b=(_$b(),$$b);R2b=new FWc(qPd,S2b);r3b=new FWc(rPd,(null,false));d5(0);q3b=new FWc(sPd,d5(16));d5(0);s3b=new FWc(tPd,d5(5));E4b=(O8b(),M8b);D4b=new FWc(uPd,E4b);l4b=new FWc(vPd,10);m4b=new FWc(wPd,1);t4b=(F_b(),E_b);s4b=new FWc(xPd,t4b);n4b=new DWc(yPd);q4b=d5(1);d5(0);p4b=new FWc(zPd,q4b);B4b=(w8b(),t8b);A4b=new FWc(APd,B4b);w4b=new FWc(BPd,(null,true));u4b=new FWc(CPd,2);y4b=new FWc(DPd,(null,true));h3b=(k0b(),i0b);g3b=new FWc(EPd,h3b);f3b=(T$b(),Q$b);e3b=new FWc(FPd,f3b);w3b=N_b;v3b=r_b;C3b=T6b;E3b=T6b;y3b=Q6b;V3b=s7b;Q3b=p7b;T3b=p7b;X3b=r7b;_3b=s7b;k3b=(DBc(),BBc);o3b=BBc;m3b=BBc;o4b=D_b;r4b=E_b;C4b=N8b;x4b=L8b;v4b=L8b;z4b=L8b} -function $Ac(){$Ac=d3;var a,b;Czc=new DWc(_Rd);Ezc=(ezc(),$yc);Dzc=new FWc(iQd,Ezc);new UFc;Fzc=new FWc(VMd,null);Gzc=new DWc(aSd);Kzc=new FWc(hQd,(B3(),B3(),false));Mzc=(gBc(),eBc);Lzc=new FWc(oQd,Mzc);Rzc=(DBc(),CBc);Qzc=new FWc(OPd,Rzc);Uzc=new FWc(ZRd,(null,false));Wzc=(jCc(),hCc);Vzc=new FWc(jQd,Wzc);pAc=new YGb(12);oAc=new FWc(WMd,pAc);$zc=new FWc(vNd,(null,false));CAc=(VCc(),UCc);BAc=new FWc(wNd,CAc);JAc=new DWc(HQd);KAc=new DWc(qNd);LAc=new DWc(tNd);NAc=new DWc(uNd);aAc=new Vyc;_zc=new FWc(yQd,aAc);Jzc=new FWc(CQd,(null,false));Xzc=new FWc(DQd,(null,false));new DWc(bSd);cAc=new mGb;bAc=new FWc(IQd,cAc);nAc=new FWc(fQd,(null,false));new UFc;MAc=new FWc(cSd,1);new FWc(dSd,(null,true));d5(0);new FWc(eSd,d5(100));new FWc(fSd,(null,false));d5(0);new FWc(gSd,d5(4000));d5(0);new FWc(hSd,d5(400));new FWc(iSd,(null,false));new FWc(jSd,(null,true));new FWc(kSd,(null,false));Izc=(gFc(),fFc);Hzc=new FWc($Rd,Izc);OAc=new FWc(TMd,12);PAc=new FWc(ZPd,10);QAc=new FWc(sNd,2);RAc=new FWc($Pd,10);TAc=new FWc(_Pd,0);UAc=new FWc(bQd,5);VAc=new FWc(aQd,1);WAc=new FWc(rNd,20);ZAc=new FWc(cQd,10);SAc=new DWc(dQd);YAc=new nGb;XAc=new FWc(JQd,YAc);sAc=new DWc(GQd);rAc=(null,false);qAc=new FWc(FQd,rAc);eAc=new YGb(5);dAc=new FWc(lSd,eAc);gAc=(yCc(),b=kA(e4(nU),10),new ngb(b,kA(ypb(b,b.length),10),0));fAc=new FWc(pQd,gAc);uAc=(JCc(),GCc);tAc=new FWc(sQd,uAc);wAc=new DWc(tQd);xAc=new DWc(uQd);yAc=new DWc(vQd);vAc=new DWc(wQd);iAc=(a=kA(e4(uU),10),new ngb(a,kA(ypb(a,a.length),10),0));hAc=new FWc(mQd,iAc);mAc=fgb((qEc(),jEc));lAc=new FWc(nQd,mAc);kAc=new Jyc(0,0);jAc=new FWc(xQd,kAc);Pzc=(tBc(),sBc);Ozc=new FWc(zQd,Pzc);Nzc=new FWc(AQd,(null,false));new DWc(mSd);d5(1);new FWc(nSd,null);zAc=new DWc(EQd);DAc=new DWc(BQd);IAc=(FDc(),DDc);HAc=new FWc(gQd,IAc);AAc=new DWc(eQd);GAc=(eDc(),dDc);FAc=new FWc(qQd,GAc);EAc=new FWc(rQd,(null,false));Yzc=new FWc(kQd,(null,false));Zzc=new FWc(lQd,(null,false));Szc=new FWc(UMd,1);Tzc=(PBc(),NBc);new FWc(oSd,Tzc)} -function zpd(a){if(a.gb)return;a.gb=true;a.b=RRc(a,0);QRc(a.b,18);WRc(a.b,19);a.a=RRc(a,1);QRc(a.a,1);WRc(a.a,2);WRc(a.a,3);WRc(a.a,4);WRc(a.a,5);a.o=RRc(a,2);QRc(a.o,8);QRc(a.o,9);WRc(a.o,10);WRc(a.o,11);WRc(a.o,12);WRc(a.o,13);WRc(a.o,14);WRc(a.o,15);WRc(a.o,16);WRc(a.o,17);WRc(a.o,18);WRc(a.o,19);WRc(a.o,20);WRc(a.o,21);WRc(a.o,22);WRc(a.o,23);VRc(a.o);VRc(a.o);VRc(a.o);VRc(a.o);VRc(a.o);VRc(a.o);VRc(a.o);VRc(a.o);VRc(a.o);VRc(a.o);a.p=RRc(a,3);QRc(a.p,2);QRc(a.p,3);QRc(a.p,4);QRc(a.p,5);WRc(a.p,6);WRc(a.p,7);VRc(a.p);VRc(a.p);a.q=RRc(a,4);QRc(a.q,8);a.v=RRc(a,5);WRc(a.v,9);VRc(a.v);VRc(a.v);VRc(a.v);a.w=RRc(a,6);QRc(a.w,2);QRc(a.w,3);QRc(a.w,4);WRc(a.w,5);a.B=RRc(a,7);WRc(a.B,1);VRc(a.B);VRc(a.B);VRc(a.B);a.Q=RRc(a,8);WRc(a.Q,0);VRc(a.Q);a.R=RRc(a,9);QRc(a.R,1);a.S=RRc(a,10);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);VRc(a.S);a.T=RRc(a,11);WRc(a.T,10);WRc(a.T,11);WRc(a.T,12);WRc(a.T,13);WRc(a.T,14);VRc(a.T);VRc(a.T);a.U=RRc(a,12);QRc(a.U,2);QRc(a.U,3);WRc(a.U,4);WRc(a.U,5);WRc(a.U,6);WRc(a.U,7);VRc(a.U);a.V=RRc(a,13);WRc(a.V,10);a.W=RRc(a,14);QRc(a.W,18);QRc(a.W,19);QRc(a.W,20);WRc(a.W,21);WRc(a.W,22);WRc(a.W,23);a.bb=RRc(a,15);QRc(a.bb,10);QRc(a.bb,11);QRc(a.bb,12);QRc(a.bb,13);QRc(a.bb,14);QRc(a.bb,15);QRc(a.bb,16);WRc(a.bb,17);VRc(a.bb);VRc(a.bb);a.eb=RRc(a,16);QRc(a.eb,2);QRc(a.eb,3);QRc(a.eb,4);QRc(a.eb,5);QRc(a.eb,6);QRc(a.eb,7);WRc(a.eb,8);WRc(a.eb,9);a.ab=RRc(a,17);QRc(a.ab,0);QRc(a.ab,1);a.H=RRc(a,18);WRc(a.H,0);WRc(a.H,1);WRc(a.H,2);WRc(a.H,3);WRc(a.H,4);WRc(a.H,5);VRc(a.H);a.db=RRc(a,19);WRc(a.db,2);a.c=SRc(a,20);a.d=SRc(a,21);a.e=SRc(a,22);a.f=SRc(a,23);a.i=SRc(a,24);a.g=SRc(a,25);a.j=SRc(a,26);a.k=SRc(a,27);a.n=SRc(a,28);a.r=SRc(a,29);a.s=SRc(a,30);a.t=SRc(a,31);a.u=SRc(a,32);a.fb=SRc(a,33);a.A=SRc(a,34);a.C=SRc(a,35);a.D=SRc(a,36);a.F=SRc(a,37);a.G=SRc(a,38);a.I=SRc(a,39);a.J=SRc(a,40);a.L=SRc(a,41);a.M=SRc(a,42);a.N=SRc(a,43);a.O=SRc(a,44);a.P=SRc(a,45);a.X=SRc(a,46);a.Y=SRc(a,47);a.Z=SRc(a,48);a.$=SRc(a,49);a._=SRc(a,50);a.cb=SRc(a,51);a.K=SRc(a,52)} -function E2b(){E2b=d3;var a,b;i2b=new DWc(xNd);M1b=new DWc('coordinateOrigin');r2b=new DWc('processors');L1b=new EWc('compoundNode',(B3(),B3(),false));Z1b=new EWc('insideConnections',(null,false));h2b=new DWc('nestedLGraph');n2b=new DWc('parentLNode');j2b=new DWc('originalBendpoints');k2b=new DWc('originalDummyNodePosition');l2b=new DWc('originalLabelEdge');t2b=new DWc('representedLabels');R1b=new DWc('endLabels');b2b=new EWc('labelSide',(jHc(),iHc));g2b=new EWc('maxEdgeThickness',0);u2b=new EWc('reversed',(null,false));s2b=new DWc(yNd);e2b=new EWc('longEdgeSource',null);f2b=new EWc('longEdgeTarget',null);d2b=new EWc('longEdgeHasLabelDummies',(null,false));c2b=new EWc('longEdgeBeforeLabelDummy',(null,false));Q1b=new EWc('edgeConstraint',($_b(),Y_b));_1b=new DWc('inLayerLayoutUnit');$1b=new EWc('inLayerConstraint',(p1b(),n1b));a2b=new EWc('inLayerSuccessorConstraint',new Gbb);p2b=new DWc('portDummy');N1b=new EWc('crossingHint',d5(0));X1b=new EWc('graphProperties',(b=kA(e4(mP),10),new ngb(b,kA(ypb(b,b.length),10),0)));V1b=new EWc('externalPortSide',(FDc(),DDc));W1b=new EWc('externalPortSize',new Hyc);T1b=new DWc('externalPortReplacedDummies');U1b=new DWc('externalPortReplacedDummy');S1b=new EWc('externalPortConnections',(a=kA(e4(rU),10),new ngb(a,kA(ypb(a,a.length),10),0)));q2b=new EWc(DOd,0);D1b=new DWc('barycenterAssociates');D2b=new DWc('TopSideComments');I1b=new DWc('BottomSideComments');K1b=new DWc('CommentConnectionPort');Y1b=new EWc('inputCollect',(null,false));m2b=new EWc('outputCollect',(null,false));P1b=new EWc('cyclic',(null,false));H1b=new EWc('bigNodeOriginalSize',new F4(0));G1b=new EWc('bigNodeInitial',(null,false));E1b=new EWc('org.eclipse.elk.alg.layered.bigNodeLabels',new Gbb);F1b=new EWc('org.eclipse.elk.alg.layered.postProcess',null);O1b=new DWc('crossHierarchyMap');C2b=new DWc('targetOffset');x2b=new EWc('splineLabelSize',new Hyc);y2b=new EWc('splineLoopSide',(Flc(),Clc));A2b=new EWc('splineSelfLoopComponents',new Gbb);B2b=new EWc('splineSelfLoopMargins',new mGb);v2b=new DWc('spacings');o2b=new EWc('partitionConstraint',(null,false));J1b=new DWc('breakingPoint.info');z2b=new DWc('splines.route.start');w2b=new DWc('splines.edgeChain')} -function lPb(){lPb=d3;ROb=new mPb('LEFT_DIR_PREPROCESSOR',0);rOb=new mPb('DOWN_DIR_PREPROCESSOR',1);kPb=new mPb('UP_DIR_PREPROCESSOR',2);pOb=new mPb('COMMENT_PREPROCESSOR',3);sOb=new mPb('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',4);gPb=new mPb('SPLINE_SELF_LOOP_PREPROCESSOR',5);GOb=new mPb('INTERACTIVE_EXTERNAL_PORT_POSITIONER',6);$Ob=new mPb('PARTITION_PREPROCESSOR',7);iOb=new mPb('BIG_NODES_PREPROCESSOR',8);KOb=new mPb('LABEL_DUMMY_INSERTER',9);COb=new mPb('HIGH_DEGREE_NODE_LAYER_PROCESSOR',10);ZOb=new mPb('PARTITION_POSTPROCESSOR',11);VOb=new mPb('NODE_PROMOTION',12);OOb=new mPb('LAYER_CONSTRAINT_PROCESSOR',13);yOb=new mPb('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',14);gOb=new mPb('BIG_NODES_INTERMEDIATEPROCESSOR',15);dPb=new mPb('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',16);kOb=new mPb('BREAKING_POINT_INSERTER',17);TOb=new mPb('LONG_EDGE_SPLITTER',18);aPb=new mPb('PORT_SIDE_PROCESSOR',19);HOb=new mPb('INVERTED_PORT_PROCESSOR',20);cPb=new mPb('SELF_LOOP_PROCESSOR',21);_Ob=new mPb('PORT_LIST_SORTER',22);XOb=new mPb('NORTH_SOUTH_PORT_PREPROCESSOR',23);lOb=new mPb('BREAKING_POINT_PROCESSOR',24);YOb=new mPb(gOd,25);iPb=new mPb(hOd,26);fPb=new mPb('SPLINE_SELF_LOOP_POSITIONER',27);ePb=new mPb('SINGLE_EDGE_GRAPH_WRAPPER',28);IOb=new mPb('IN_LAYER_CONSTRAINT_PROCESSOR',29);jOb=new mPb('BIG_NODES_SPLITTER',30);vOb=new mPb('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',31);JOb=new mPb('LABEL_AND_NODE_SIZE_PROCESSOR',32);hPb=new mPb('SPLINE_SELF_LOOP_ROUTER',33);UOb=new mPb('NODE_MARGIN_CALCULATOR',34);uOb=new mPb('END_LABEL_PREPROCESSOR',35);MOb=new mPb('LABEL_DUMMY_SWITCHER',36);nOb=new mPb('CENTER_LABEL_MANAGEMENT_PROCESSOR',37);NOb=new mPb('LABEL_SIDE_SELECTOR',38);EOb=new mPb('HYPEREDGE_DUMMY_MERGER',39);zOb=new mPb('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',40);POb=new mPb('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',41);BOb=new mPb('HIERARCHICAL_PORT_POSITION_PROCESSOR',42);hOb=new mPb('BIG_NODES_POSTPROCESSOR',43);oOb=new mPb('COMMENT_POSTPROCESSOR',44);FOb=new mPb('HYPERNODE_PROCESSOR',45);AOb=new mPb('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',46);SOb=new mPb('LONG_EDGE_JOINER',47);mOb=new mPb('BREAKING_POINT_REMOVER',48);WOb=new mPb('NORTH_SOUTH_PORT_POSTPROCESSOR',49);DOb=new mPb('HORIZONTAL_COMPACTOR',50);LOb=new mPb('LABEL_DUMMY_REMOVER',51);wOb=new mPb('FINAL_SPLINE_BENDPOINTS_CALCULATOR',52);bPb=new mPb('REVERSED_EDGE_RESTORER',53);tOb=new mPb('END_LABEL_POSTPROCESSOR',54);xOb=new mPb('HIERARCHICAL_NODE_RESIZER',55);QOb=new mPb('LEFT_DIR_POSTPROCESSOR',56);qOb=new mPb('DOWN_DIR_POSTPROCESSOR',57);jPb=new mPb('UP_DIR_POSTPROCESSOR',58)} -function Mec(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;Z=0;for(G=0,J=b.length;G0&&(a.a[Q.o]=Z++)}}db=0;for(H=0,K=c.length;H0){Q=(Lpb(U.b>0),kA(U.a.cd(U.c=--U.b),11));T=0;for(h=new ccb(Q.d);h.a0){if(Q.i==(FDc(),lDc)){a.a[Q.o]=db;++db}else{a.a[Q.o]=db+L+N;++N}}}db+=N}S=(Es(),new Bgb);n=new iib;for(F=0,I=b.length;Fj.b&&(j.b=V)}else if(Q.g.c==Y){Vj.c&&(j.c=V)}}}Acb(o,0,o.length,null);cb=tz(FA,OKd,22,o.length,15,1);d=tz(FA,OKd,22,db+1,15,1);for(q=0;q0){w%2>0&&(e+=gb[w+1]);w=(w-1)/2|0;++gb[w]}}B=tz(vQ,oJd,336,o.length*2,0,1);for(t=0;t'?":Z5(bUd,a)?"'(?<' or '(? toIndex: ',XLd=', toIndex: ',YLd='org.eclipse.elk.alg.common.compaction',ZLd='Scanline/EventHandler',$Ld='org.eclipse.elk.alg.common.compaction.oned',_Ld='CNode belongs to another CGroup.',aMd='ISpacingsHandler/1',bMd='The ',cMd=' instance has been finished already.',dMd='The direction ',eMd=' is not supported by the CGraph instance.',fMd='OneDimensionalCompactor',gMd='OneDimensionalCompactor/lambda$0$Type',hMd='Quadruplet',iMd='ScanlineConstraintCalculator',jMd='ScanlineConstraintCalculator/ConstraintsScanlineHandler',kMd='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',lMd='ScanlineConstraintCalculator/Timestamp',mMd='ScanlineConstraintCalculator/lambda$0$Type',nMd={138:1,56:1},oMd='org.eclipse.elk.alg.common.compaction.options',pMd='org.eclipse.elk.core.data',qMd='org.eclipse.elk.polyomino.traversalStrategy',rMd='org.eclipse.elk.polyomino.lowLevelSort',sMd='org.eclipse.elk.polyomino.highLevelSort',tMd='org.eclipse.elk.polyomino.fill',uMd={154:1},vMd='polyomino',wMd='org.eclipse.elk.alg.common.compaction.polyomino',xMd='org.eclipse.elk.alg.common.compaction.polyomino.structures',yMd='Direction',zMd='Grid is only of size ',AMd='. Requested point (',BMd=') is out of bounds.',CMd=' Given center based coordinates were (',DMd='org.eclipse.elk.graph.properties',EMd='IPropertyHolder',FMd={3:1,93:1,131:1},GMd={244:1},HMd='org.eclipse.elk.core',IMd='Connected Components Compaction',JMd='org.eclipse.elk.alg.disco',KMd='org.eclipse.elk.alg.disco.graph',LMd='org.eclipse.elk.alg.disco.options',MMd='CompactionStrategy',NMd='org.eclipse.elk.disco.componentCompaction.strategy',OMd='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',PMd='org.eclipse.elk.disco.debug.discoGraph',QMd='org.eclipse.elk.disco.debug.discoPolys',RMd='componentCompaction',SMd='org.eclipse.elk.disco',TMd='org.eclipse.elk.spacing.componentComponent',UMd='org.eclipse.elk.edge.thickness',VMd='org.eclipse.elk.aspectRatio',WMd='org.eclipse.elk.padding',XMd='org.eclipse.elk.alg.disco.transform',YMd=1.5707963267948966,ZMd={3:1,4:1,5:1,175:1},$Md={221:1,3:1,4:1},_Md={3:1,6:1,4:1,5:1,63:1,73:1},aNd='org.eclipse.elk.alg.force',bNd='ComponentsProcessor',cNd='ComponentsProcessor/1',dNd='org.eclipse.elk.alg.force.graph',eNd='Component Layout',fNd='org.eclipse.elk.alg.force.model',gNd=0.01,hNd='org.eclipse.elk.force.model',iNd='org.eclipse.elk.force.iterations',jNd='org.eclipse.elk.force.repulsivePower',kNd='org.eclipse.elk.force.temperature',lNd=0.001,mNd='org.eclipse.elk.force.repulsion',nNd='org.eclipse.elk.alg.force.options',oNd=1.600000023841858,pNd='org.eclipse.elk.force',qNd='org.eclipse.elk.priority',rNd='org.eclipse.elk.spacing.nodeNode',sNd='org.eclipse.elk.spacing.edgeLabel',tNd='org.eclipse.elk.randomSeed',uNd='org.eclipse.elk.separateConnectedComponents',vNd='org.eclipse.elk.interactive',wNd='org.eclipse.elk.portConstraints',xNd='origin',yNd='random',zNd='boundingBox.upLeft',ANd='boundingBox.lowRight',BNd='org.eclipse.elk.stress.fixed',CNd='org.eclipse.elk.stress.desiredEdgeLength',DNd='org.eclipse.elk.stress.dimension',ENd='org.eclipse.elk.stress.epsilon',FNd='org.eclipse.elk.stress.iterationLimit',GNd='org.eclipse.elk.stress',HNd='ELK Stress',INd='org.eclipse.elk.alg.force.stress',JNd='Layered layout',KNd='org.eclipse.elk.alg.layered',LNd='org.eclipse.elk.alg.layered.compaction.components',MNd='org.eclipse.elk.alg.layered.compaction.oned',NNd='org.eclipse.elk.alg.layered.compaction.oned.algs',ONd='org.eclipse.elk.alg.layered.compaction.recthull',PNd='org.eclipse.elk.alg.layered.components',QNd={3:1,6:1,4:1,5:1,85:1,63:1,73:1},RNd='org.eclipse.elk.alg.layered.compound',SNd={3:1,6:1,4:1,5:1,99:1,85:1,63:1,73:1},TNd={50:1},UNd='org.eclipse.elk.alg.layered.graph',VNd={3:1,6:1,4:1,5:1,85:1,123:1,148:1,63:1,73:1},WNd='Not supported by LGraph',XNd='([{"\' \t\r\n',YNd=')]}"\' \t\r\n',ZNd='The given string contains parts that cannot be parsed as numbers.',$Nd='org.eclipse.elk.core.math',_Nd={3:1,4:1,135:1,211:1,428:1},aOd={3:1,4:1,119:1,211:1,428:1},bOd='org.eclipse.elk.alg.layered.graph.transform',cOd='org.eclipse.elk.alg.layered.intermediate',dOd='Big nodes pre-processing',eOd={3:1,6:1,4:1,5:1,85:1,619:1,148:1,63:1,73:1},fOd={3:1,4:1,5:1,537:1},gOd='ONE_SIDED_GREEDY_SWITCH',hOd='TWO_SIDED_GREEDY_SWITCH',iOd='No implementation is available for the layout processor ',jOd='IntermediateProcessorStrategy',kOd="Node '",lOd='NodeMarginCalculator',mOd='Odd port side processing',nOd=1.0E-8,oOd='org.eclipse.elk.alg.layered.intermediate.compaction',pOd='org.eclipse.elk.alg.layered.intermediate.greedyswitch',qOd='org.eclipse.elk.alg.layered.p3order.counting',rOd={208:1},sOd='org.eclipse.elk.alg.layered.intermediate.wrapping',tOd='org.eclipse.elk.alg.layered.networksimplex',uOd='org.eclipse.elk.alg.layered.options',vOd='INTERACTIVE',wOd='NONE',xOd='LEFT',yOd='RIGHT',zOd='EDGE_LENGTH',AOd='SELF_LOOPS',BOd='BOTTOM',COd='CENTER',DOd='portRatioOrPosition',EOd='org.eclipse.elk.layered.contentAlignment',FOd='org.eclipse.elk.layered.feedbackEdges',GOd='org.eclipse.elk.layered.interactiveReferencePoint',HOd='org.eclipse.elk.layered.mergeEdges',IOd='org.eclipse.elk.layered.mergeHierarchyEdges',JOd='org.eclipse.elk.layered.thoroughness',KOd='org.eclipse.elk.layered.unnecessaryBendpoints',LOd='org.eclipse.elk.layered.northOrSouthPort',MOd='org.eclipse.elk.layered.cycleBreaking.strategy',NOd='org.eclipse.elk.layered.layering.strategy',OOd='org.eclipse.elk.layered.layering.layerConstraint',POd='org.eclipse.elk.layered.layering.wideNodesOnMultipleLayers',QOd='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',ROd='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',SOd='org.eclipse.elk.layered.layering.nodePromotion.strategy',TOd='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',UOd='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',VOd='org.eclipse.elk.layered.crossingMinimization.strategy',WOd='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',XOd='org.eclipse.elk.layered.crossingMinimization.semiInteractive',YOd='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',ZOd='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',$Od='org.eclipse.elk.layered.nodePlacement.strategy',_Od='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',aPd='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',bPd='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',cPd='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',dPd='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',ePd='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',fPd='org.eclipse.elk.layered.edgeRouting.selfLoopPlacement',gPd='org.eclipse.elk.layered.edgeRouting.sloppySplineRouting',hPd='org.eclipse.elk.layered.edgeRouting.sloppySplineLayerSpacing',iPd='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',jPd='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',kPd='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',lPd='org.eclipse.elk.layered.priority.direction',mPd='org.eclipse.elk.layered.priority.shortness',nPd='org.eclipse.elk.layered.priority.straightness',oPd='org.eclipse.elk.layered.compaction.connectedComponents',pPd='org.eclipse.elk.layered.compaction.postCompaction.strategy',qPd='org.eclipse.elk.layered.compaction.postCompaction.constraints',rPd='org.eclipse.elk.layered.highDegreeNodes.treatment',sPd='org.eclipse.elk.layered.highDegreeNodes.threshold',tPd='org.eclipse.elk.layered.highDegreeNodes.treeHeight',uPd='org.eclipse.elk.layered.wrapping.strategy',vPd='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',wPd='org.eclipse.elk.layered.wrapping.correctionFactor',xPd='org.eclipse.elk.layered.wrapping.cutting.strategy',yPd='org.eclipse.elk.layered.wrapping.cutting.cuts',zPd='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',APd='org.eclipse.elk.layered.wrapping.singleEdge.validify.strategy',BPd='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',CPd='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',DPd='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',EPd='org.eclipse.elk.layered.edgeLabels.sideSelection',FPd='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',GPd='layering',HPd='layering.minWidth',IPd='layering.nodePromotion',JPd='crossingMinimization',KPd='crossingMinimization.greedySwitch',LPd='nodePlacement',MPd='nodePlacement.bk',NPd='edgeRouting',OPd='org.eclipse.elk.edgeRouting',PPd='spacing',QPd='priority',RPd='compaction.postCompaction',SPd='Specifies whether and how post-process compaction is applied.',TPd='highDegreeNodes',UPd='wrapping',VPd='wrapping.cutting',WPd='wrapping.multiEdge',XPd='edgeLabels',YPd='org.eclipse.elk.layered',ZPd='org.eclipse.elk.spacing.edgeEdge',$Pd='org.eclipse.elk.spacing.edgeNode',_Pd='org.eclipse.elk.spacing.labelLabel',aQd='org.eclipse.elk.spacing.labelPort',bQd='org.eclipse.elk.spacing.labelNode',cQd='org.eclipse.elk.spacing.portPort',dQd='org.eclipse.elk.spacing.individualOverride',eQd='org.eclipse.elk.port.borderOffset',fQd='org.eclipse.elk.noLayout',gQd='org.eclipse.elk.port.side',hQd='org.eclipse.elk.debugMode',iQd='org.eclipse.elk.alignment',jQd='org.eclipse.elk.hierarchyHandling',kQd='org.eclipse.elk.insideSelfLoops.activate',lQd='org.eclipse.elk.insideSelfLoops.yo',mQd='org.eclipse.elk.nodeSize.constraints',nQd='org.eclipse.elk.nodeSize.options',oQd='org.eclipse.elk.direction',pQd='org.eclipse.elk.nodeLabels.placement',qQd='org.eclipse.elk.portLabels.placement',rQd='org.eclipse.elk.portLabels.nextToPortIfPossible',sQd='org.eclipse.elk.portAlignment.default',tQd='org.eclipse.elk.portAlignment.north',uQd='org.eclipse.elk.portAlignment.south',vQd='org.eclipse.elk.portAlignment.west',wQd='org.eclipse.elk.portAlignment.east',xQd='org.eclipse.elk.nodeSize.minimum',yQd='org.eclipse.elk.junctionPoints',zQd='org.eclipse.elk.edgeLabels.placement',AQd='org.eclipse.elk.edgeLabels.inline',BQd='org.eclipse.elk.port.index',CQd='org.eclipse.elk.commentBox',DQd='org.eclipse.elk.hypernode',EQd='org.eclipse.elk.port.anchor',FQd='org.eclipse.elk.partitioning.activate',GQd='org.eclipse.elk.partitioning.partition',HQd='org.eclipse.elk.position',IQd='org.eclipse.elk.margins',JQd='org.eclipse.elk.spacing.portsSurrounding',KQd='NETWORK_SIMPLEX',LQd='UNDEFINED',MQd={3:1,4:1,5:1,616:1},NQd={141:1,50:1},OQd='org.eclipse.elk.alg.layered.p1cycles',PQd='org.eclipse.elk.alg.layered.p2layers',QQd={422:1,208:1},RQd={736:1,3:1,4:1},SQd='org.eclipse.elk.alg.layered.p3order',TQd='org.eclipse.elk.alg.layered.p4nodes',UQd={3:1,4:1,5:1,745:1},VQd=1.0E-5,WQd='DOWN',XQd='org.eclipse.elk.alg.layered.p4nodes.bk',YQd=1.7976931348623157E308,ZQd='org.eclipse.elk.alg.layered.p5edges',$Qd='org.eclipse.elk.alg.layered.p5edges.splines',_Qd=1.0E-6,aRd=-1.0E-6,bRd='The list of vectors may not be empty.',cRd=-1.7976931348623157E308,dRd=0.09999999999999998,eRd=4.71238898038469,fRd=3.141592653589793,gRd='org.eclipse.elk.alg.mrtree',hRd='org.eclipse.elk.alg.mrtree.graph',iRd='org.eclipse.elk.alg.mrtree.intermediate',jRd='Set neighbors in level',kRd='DESCENDANTS',lRd='org.eclipse.elk.mrtree.weighting',mRd='org.eclipse.elk.mrtree.searchOrder',nRd='org.eclipse.elk.alg.mrtree.options',oRd='org.eclipse.elk.mrtree',pRd='org.eclipse.elk.tree',qRd='org.eclipse.elk.alg.radial',rRd=6.283185307179586,sRd=4.9E-324,tRd='org.eclipse.elk.alg.radial.intermediate',uRd='org.eclipse.elk.alg.radial.intermediate.compaction',vRd={3:1,4:1,5:1,63:1},wRd='org.eclipse.elk.alg.radial.intermediate.optimization',xRd='No implementation is available for the layout option ',yRd='org.eclipse.elk.alg.radial.options',zRd='org.eclipse.elk.radial.orderId',ARd='org.eclipse.elk.radial.radius',BRd='org.eclipse.elk.radial.compactor',CRd='org.eclipse.elk.radial.compactionStepSize',DRd='org.eclipse.elk.radial.sorter',ERd='org.eclipse.elk.radial.wedgeCriteria',FRd='org.eclipse.elk.radial.optimizationCriteria',GRd='org.eclipse.elk.radial',HRd='org.eclipse.elk.alg.radial.p1position.wedge',IRd='org.eclipse.elk.alg.radial.sorting',JRd=5.497787143782138,KRd=3.9269908169872414,LRd=2.356194490192345,MRd='org.eclipse.elk.core.util',NRd='Invalid index: ',ORd='org.eclipse.elk.core.alg',PRd={337:1},QRd={284:1},RRd="Make sure it's type is registered with the ",SRd=' utility class.',TRd='true',URd='false',VRd="Couldn't clone property '",WRd='org.eclipse.elk.core.options',XRd=1.2999999523162842,YRd='org.eclipse.elk.box',ZRd='org.eclipse.elk.expandNodes',$Rd='org.eclipse.elk.box.packingMode',_Rd='org.eclipse.elk.algorithm',aSd='org.eclipse.elk.bendPoints',bSd='org.eclipse.elk.labelManager',cSd='org.eclipse.elk.scaleFactor',dSd='org.eclipse.elk.animate',eSd='org.eclipse.elk.animTimeFactor',fSd='org.eclipse.elk.layoutAncestors',gSd='org.eclipse.elk.maxAnimTime',hSd='org.eclipse.elk.minAnimTime',iSd='org.eclipse.elk.progressBar',jSd='org.eclipse.elk.validateOptions',kSd='org.eclipse.elk.zoomToFit',lSd='org.eclipse.elk.nodeLabels.padding',mSd='org.eclipse.elk.font.name',nSd='org.eclipse.elk.font.size',oSd='org.eclipse.elk.edge.type',pSd='de.cau.cs.kieler.labelSpacing',qSd='partitioning',rSd='nodeLabels',sSd='portAlignment',tSd='nodeSize',uSd='port',vSd='portLabels',wSd='insideSelfLoops',xSd='de.cau.cs.kieler.selfLoopInside',ySd='org.eclipse.elk.fixed',zSd='Fixed Layout',ASd='org.eclipse.elk.random',BSd='port must have a parent node to calculate the port side',CSd='org.eclipse.elk.core.util.adapters',DSd='org.eclipse.elk.core.util.nodespacing',ESd='org.eclipse.elk.core.util.nodespacing.cellsystem',FSd={171:1,307:1},GSd='Vertical alignment cannot be null',HSd='org.eclipse.elk.core.util.nodespacing.internal',ISd='org.eclipse.elk.core.util.nodespacing.internal.algorithm',JSd='org.eclipse.elk.core.util.overlaps',KSd='org.eclipse.emf.ecore',LSd='org.eclipse.elk.graph',MSd='EMapPropertyHolder',NSd='ElkBendPoint',OSd='ElkGraphElement',PSd='ElkConnectableShape',QSd='ElkEdge',RSd='ElkEdgeSection',SSd='EModelElement',TSd='ENamedElement',USd='ElkLabel',VSd='ElkNode',WSd='ElkPort',XSd={91:1,87:1},YSd='org.eclipse.emf.common.notify.impl',ZSd="The feature '",$Sd="' is not a valid changeable feature",_Sd='Expecting null',aTd="' is not a valid feature",bTd=32768,cTd={95:1,91:1,87:1,51:1,42:1,92:1},dTd='org.eclipse.emf.ecore.impl',eTd='org.eclipse.elk.graph.impl',fTd='Recursive containment not allowed for ',gTd="The datatype '",hTd="' is not a valid classifier",iTd="The value '",jTd={173:1,3:1,4:1},kTd="The class '",lTd='http://www.eclipse.org/elk/ElkGraph',mTd='property',nTd='value',oTd='source',pTd='properties',qTd='identifier',rTd='height',sTd='width',tTd='parent',uTd='text',vTd='children',wTd='hierarchical',xTd='sources',yTd='targets',zTd='sections',ATd='bendPoints',BTd='outgoingShape',CTd='incomingShape',DTd='outgoingSections',ETd='incomingSections',FTd='org.eclipse.emf.common.util',GTd='Severe implementation error in the Json to ElkGraph importer.',HTd='id',ITd='org.eclipse.elk.graph.json',JTd='Unhandled parameter types: ',KTd='startPoint',LTd="An edge must have at least one source and one target (edge id: '",MTd="').",NTd='Referenced edge section does not exist: ',OTd=" (edge id: '",PTd='target',QTd='group',RTd='name',STd='connectableShape cannot be null',TTd="Passed edge is not 'simple'.",UTd="The 'no duplicates' constraint is violated",VTd={3:1,4:1,20:1,25:1,41:1,13:1,15:1,49:1,59:1,55:1,52:1},WTd={3:1,4:1,20:1,25:1,41:1,13:1,43:1,15:1,49:1,59:1,55:1,52:1,532:1},XTd='org.eclipse.elk.graph.util',YTd='undefined',ZTd='parser.parse.1',$Td='parser.parse.2',_Td='parser.next.1',aUd='parser.next.2',bUd='parser.next.3',cUd='parser.next.4',dUd='parser.factor.1',eUd='parser.factor.2',fUd='parser.factor.3',gUd='parser.factor.4',hUd='parser.factor.5',iUd='parser.factor.6',jUd='parser.atom.1',kUd='parser.atom.2',lUd='parser.atom.3',mUd='parser.atom.4',nUd='parser.atom.5',oUd='parser.cc.1',pUd='parser.cc.2',qUd='parser.cc.3',rUd='parser.cc.5',sUd='parser.cc.6',tUd='parser.cc.7',uUd='parser.cc.8',vUd='parser.ope.1',wUd='parser.ope.2',xUd='parser.ope.3',yUd='parser.descape.1',zUd='parser.descape.2',AUd='parser.descape.3',BUd='parser.descape.4',CUd='parser.descape.5',DUd='parser.process.1',EUd='parser.quantifier.1',FUd='parser.quantifier.2',GUd='parser.quantifier.3',HUd='parser.quantifier.4',IUd='parser.quantifier.5',JUd='org.eclipse.emf.common.notify',KUd={380:1,610:1},LUd={3:1,4:1,20:1,25:1,41:1,13:1,15:1,59:1,52:1},MUd={338:1,136:1},NUd='index=',OUd=', size=',PUd={3:1,4:1,5:1,116:1},QUd={3:1,4:1,20:1,25:1,41:1,13:1,15:1,49:1,59:1,52:1},RUd={3:1,6:1,4:1,5:1,175:1},SUd={3:1,4:1,5:1,339:1},TUd=';/?:@&=+$,',UUd='invalid authority: ',VUd='EAnnotation',WUd='ETypedElement',XUd='EStructuralFeature',YUd='EAttribute',ZUd='EClassifier',$Ud='EEnumLiteral',_Ud='EGenericType',aVd='EOperation',bVd='EParameter',cVd='EReference',dVd='ETypeParameter',eVd='org.eclipse.emf.ecore.util',fVd={3:1,20:1,13:1,15:1,52:1,533:1,81:1,64:1},gVd='org.eclipse.emf.ecore.util.FeatureMap$Entry',hVd=1024,iVd=8192,jVd=2048,kVd='byte',lVd='char',mVd='double',nVd='float',oVd='int',pVd='long',qVd='short',rVd='java.lang.Object',sVd={3:1,4:1,5:1,222:1},tVd={3:1,4:1,5:1,611:1},uVd={3:1,4:1,20:1,25:1,41:1,13:1,15:1,49:1,59:1,55:1,52:1,64:1},vVd={3:1,4:1,20:1,25:1,41:1,13:1,15:1,49:1,59:1,55:1,52:1,81:1,64:1},wVd='mixed',xVd='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',yVd='kind',zVd={3:1,4:1,5:1,612:1},AVd={3:1,4:1,20:1,25:1,41:1,13:1,15:1,59:1,52:1,81:1,64:1},BVd={20:1,25:1,41:1,13:1,15:1,52:1,64:1},CVd={43:1,120:1,260:1},DVd={75:1,311:1},EVd="The value of type '",FVd="' must be of type '",GVd=1365,HVd='http://www.eclipse.org/emf/2002/Ecore',IVd=-32768,JVd='constraints',KVd='baseType',LVd='getEStructuralFeature',MVd='getFeatureID',NVd='feature',OVd='getOperationID',PVd='operation',QVd='defaultValue',RVd='eTypeParameters',SVd='isInstance',TVd='getEEnumLiteral',UVd='eContainingClass',VVd={47:1},WVd={3:1,4:1,5:1,124:1},XVd='org.eclipse.emf.ecore.resource',YVd={91:1,87:1,534:1,1628:1},ZVd='org.eclipse.emf.ecore.resource.impl',$Vd='unspecified',_Vd='simple',aWd='attribute',bWd='attributeWildcard',cWd='element',dWd='elementWildcard',eWd='collapse',fWd='itemType',gWd='namespace',hWd='##targetNamespace',iWd='whiteSpace',jWd='wildcards',kWd='http://www.eclipse.org/emf/2003/XMLType',lWd='##any',mWd='uninitialized',nWd='The multiplicity constraint is violated',oWd='org.eclipse.emf.ecore.xml.type',pWd='ProcessingInstruction',qWd='SimpleAnyType',rWd='XMLTypeDocumentRoot',sWd='org.eclipse.emf.ecore.xml.type.impl',tWd='INF',uWd='processing',vWd='ENTITIES_._base',wWd='minLength',xWd='ENTITY',yWd='NCName',zWd='IDREFS_._base',AWd='integer',BWd='token',CWd='pattern',DWd='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',EWd='\\i\\c*',FWd='[\\i-[:]][\\c-[:]]*',GWd='nonPositiveInteger',HWd='maxInclusive',IWd='NMTOKEN',JWd='NMTOKENS_._base',KWd='nonNegativeInteger',LWd='minInclusive',MWd='normalizedString',NWd='unsignedByte',OWd='unsignedInt',PWd='18446744073709551615',QWd='unsignedShort',RWd='processingInstruction',SWd='org.eclipse.emf.ecore.xml.type.internal',TWd=1114111,UWd='Internal Error: shorthands: \\u',VWd='xml:isDigit',WWd='xml:isWord',XWd='xml:isSpace',YWd='xml:isNameChar',ZWd='xml:isInitialNameChar',$Wd='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',_Wd='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',aXd='Private Use',bXd='ASSIGNED',cXd='\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',dXd='UNASSIGNED',eXd={3:1,112:1},fXd='org.eclipse.emf.ecore.xml.type.util',gXd={3:1,4:1,5:1,342:1},hXd='org.eclipse.xtext.xbase.lib',iXd='Cannot add elements to a Range',jXd='Cannot set elements in a Range',kXd='Cannot remove elements from a Range',lXd='locale',mXd='default',nXd='user.agent';var _,a3,X2,v2=-1;b3();c3(1,null,{},ib);_.Fb=function jb(a){return this===a};_.Gb=function lb(){return this.ql};_.Hb=function nb(){return bqb(this)};_.Ib=function pb(){return f4(mb(this))+'@'+(ob(this)>>>0).toString(16)};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var gA,hA,iA;c3(274,1,{274:1,1712:1},h4);_._d=function i4(a){var b;b=new h4;b.i=4;a>1?(b.c=p4(this,a-1)):(b.c=this);return b};_.ae=function o4(){d4(this);return this.b};_.be=function q4(){return f4(this)};_.ce=function s4(){return d4(this),this.k};_.de=function u4(){return (this.i&4)!=0};_.ee=function v4(){return (this.i&1)!=0};_.Ib=function y4(){return g4(this)};_.i=0;var c4=1;var NE=k4(kJd,'Object',1);var xE=k4(kJd,'Class',274);c3(1692,1,{3:1});var MA=k4(lJd,'Optional',1692);c3(1060,1692,{3:1},sb);_.Fb=function tb(a){return a===this};_.Hb=function ub(){return 2040732332};_.Ib=function vb(){return 'Optional.absent()'};_.Jb=function wb(a){Pb(a);return rb(),qb};var qb;var HA=k4(lJd,'Absent',1060);var IA=m4(lJd,'Function');c3(393,1,{},Cb);_.Lb=function Db(a){return Ab(a)};var LA=k4(lJd,'Joiner',393);c3(875,393,{},Eb);_.Lb=function Fb(a){return a==null?this.b:Ab(a)};var JA=k4(lJd,'Joiner/1',875);c3(874,1,{},Gb);var KA=k4(lJd,'Joiner/MapJoiner',874);var NA=m4(lJd,'Predicate');var Wb;c3(494,1,{138:1,494:1,3:1,56:1},Yb);_.Nb=function ac(a){return this.Mb(a)};_.Mb=function Zb(a){var b;for(b=0;b0};_.ic=function oe(){if(this.b>=this.c){throw x2(new djb)}return fn(this,this.b++)};_.Dc=function pe(){return this.b};_.Ec=function qe(){if(this.b<=0){throw x2(new djb)}return fn(this,--this.b)};_.Fc=function re(){return this.b-1};_.b=0;_.c=0;var YA=k4(sJd,'AbstractIndexedListIterator',847);c3(949,257,CJd);_.hc=function ve(){return se(this)};_.ic=function we(){return te(this)};_.d=1;var ZA=k4(sJd,'AbstractIterator',949);c3(1677,1,{238:1});_.Hc=function Be(){var a;return a=this.f,!a?(this.f=this.Ic()):a};_.Jc=function Ce(){return new hh(this.Hc())};_.Lc=function De(){return new gkb(this.Kc(),this._b(),sA(this,475)?1:0)};_.Fb=function Ee(a){return xt(this,a)};_.Hb=function Fe(){return ob(this.Hc())};_.Wb=function Ge(){return this._b()==0};_.Xb=function He(){return ze(this)};_.Ib=function Ie(){return f3(this.Hc())};var CB=k4(sJd,'AbstractMultimap',1677);c3(654,1677,EJd);_.Pb=function Se(){Je(this)};_.Qb=function Te(a){return this.c.Qb(a)};_.Ic=function Ue(){return sA(this.c,122)?new Ih(this,kA(this.c,122)):sA(this.c,115)?new Ch(this,kA(this.c,115)):new eg(this,this.c)};_.Pc=function Ve(a){return this.Oc()};_.Jc=function We(){return sA(this.c,122)?new Ph(this,kA(this.c,122)):sA(this.c,115)?new Nh(this,kA(this.c,115)):new ph(this,this.c)};_.Qc=function Xe(){return df(this.Oc())};_.Kc=function Ye(){return new zf(this)};_.Lc=function Ze(){return Xj(this.c.Tb().wc(),new Oi,64,this.d)};_.Mc=function $e(a){return Ke(this,a)};_.Nc=function bf(a){return Me(this,a)};_._b=function cf(){return this.d};_.Rc=function ef(){return new vf(this)};_.Sc=function ff(){return Xj(this.c.ac().wc(),new xf,64,this.d)};_.d=0;var xB=k4(sJd,'AbstractMapBasedMultimap',654);c3(1483,654,EJd);_.Oc=function jf(){return new Hbb(this.a)};_.Qc=function kf(){return Gl(),Gl(),Fl};_.Mc=function mf(a){return kA(Ke(this,a),15)};_.Nc=function of(a){return kA(Me(this,a),15)};_.Hc=function hf(){var a;return a=this.f,!a?(this.f=sA(this.c,122)?new Ih(this,kA(this.c,122)):sA(this.c,115)?new Ch(this,kA(this.c,115)):new eg(this,this.c)):a};_.Fb=function lf(a){return xt(this,a)};_.Tc=function nf(a){return kA(Ke(this,a),15)};_.Uc=function pf(a){return kA(Me(this,a),15)};var $A=k4(sJd,'AbstractListMultimap',1483);c3(661,1,wJd);_.gc=function rf(a){Bhb(this,a)};_.hc=function sf(){return this.c.hc()||this.e.hc()};_.ic=function tf(){var a;if(!this.e.hc()){a=kA(this.c.ic(),38);this.b=a.kc();this.a=kA(a.lc(),13);this.e=this.a.tc()}return this.Vc(this.b,this.e.ic())};_.jc=function uf(){this.e.jc();this.a.Wb()&&this.c.jc();--this.d.d};var gB=k4(sJd,'AbstractMapBasedMultimap/Itr',661);c3(970,661,wJd,vf);_.Vc=function wf(a,b){return b};var _A=k4(sJd,'AbstractMapBasedMultimap/1',970);c3(971,1,FJd,xf);_.Kb=function yf(a){return kA(a,13).wc()};var aB=k4(sJd,'AbstractMapBasedMultimap/1methodref$spliterator$Type',971);c3(972,661,wJd,zf);_.Vc=function Af(a,b){return Es(),new _m(a,b)};var bB=k4(sJd,'AbstractMapBasedMultimap/2',972);c3(1666,1,uJd);_.Ub=function Lf(a){bjb(this,a)};_.Yb=function Sf(a,b,c){return cjb(this,a,b,c)};_.Pb=function Gf(){this.Tb().Pb()};_.Wc=function Hf(a){return Bf(this,a)};_.Qb=function If(a){return !!Df(this,a,false)};_.Rb=function Jf(a){var b,c,d;for(c=this.Tb().tc();c.hc();){b=kA(c.ic(),38);d=b.lc();if(yA(a)===yA(d)||a!=null&&kb(a,d)){return true}}return false};_.Fb=function Kf(a){return Cf(this,a)};_.Vb=function Mf(a){return Of(Df(this,a,false))};_.Hb=function Pf(){return edb(this.Tb())};_.Wb=function Qf(){return this._b()==0};_.Xb=function Rf(){return new G9(this)};_.Zb=function Tf(a,b){throw x2(new V6('Put not supported on this map'))};_.$b=function Uf(a){return Of(Df(this,a,true))};_._b=function Vf(){return this.Tb()._b()};_.Ib=function Wf(){var a,b,c;c=new slb('{','}');for(b=this.Tb().tc();b.hc();){a=kA(b.ic(),38);rlb(c,Ff(this,a.kc())+'='+Ff(this,a.lc()))}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)};_.ac=function Xf(){return new R9(this)};var mF=k4(tJd,'AbstractMap',1666);c3(1678,1666,uJd);_.Jc=function Zf(){return new hh(this)};_.Tb=function $f(){return Yf(this)};_.Xb=function _f(){var a;a=this.g;return !a?(this.g=this.Jc()):a};_.ac=function ag(){var a;a=this.i;return !a?(this.i=new nt(this)):a};var hD=k4(sJd,'Maps/ViewCachingAbstractMap',1678);c3(357,1678,uJd,eg);_.Vb=function jg(a){return bg(this,a)};_.$b=function mg(a){return cg(this,a)};_.Pb=function fg(){this.d==this.e.c?this.e.Pb():bo(new bh(this))};_.Qb=function gg(a){return Is(this.d,a)};_.Yc=function hg(){return new Vg(this)};_.Xc=function(){return this.Yc()};_.Fb=function ig(a){return this===a||kb(this.d,a)};_.Hb=function kg(){return ob(this.d)};_.Xb=function lg(){return this.e.Xb()};_._b=function ng(){return this.d._b()};_.Ib=function og(){return f3(this.d)};var fB=k4(sJd,'AbstractMapBasedMultimap/AsMap',357);c3(25,1,HJd);_.sc=function Bg(a){i5(this,a)};_.uc=function Dg(){return new Zob(null,this.wc())};_.wc=function Fg(){return new ekb(this,0)};_.xc=function Gg(){return new Zob(null,this.wc())};_.nc=function wg(a){throw x2(new V6('Add not supported on this collection'))};_.oc=function xg(a){return pg(this,a)};_.Pb=function yg(){rg(this)};_.pc=function zg(a){return qg(this,a,false)};_.qc=function Ag(a){return sg(this,a)};_.Wb=function Cg(){return this._b()==0};_.vc=function Eg(a){return qg(this,a,true)};_.yc=function Hg(){return tg(this)};_.zc=function Ig(a){return ug(this,a)};_.Ib=function Jg(){return vg(this)};var ZE=k4(tJd,'AbstractCollection',25);c3(IJd,25,JJd);_.wc=function Og(){return new ekb(this,1)};_.Fb=function Mg(a){return Kg(this,a)};_.Hb=function Ng(){return edb(this)};var tF=k4(tJd,'AbstractSet',IJd);c3(1660,IJd,JJd);var ED=k4(sJd,'Sets/ImprovedAbstractSet',1660);c3(1679,1660,JJd);_.Pb=function Qg(){this.Zc().Pb()};_.pc=function Rg(a){return Pg(this,a)};_.Wb=function Sg(){return this.Zc().Wb()};_.vc=function Tg(a){var b;if(this.pc(a)){b=kA(a,38);return this.Zc().Xb().vc(b.kc())}return false};_._b=function Ug(){return this.Zc()._b()};var cD=k4(sJd,'Maps/EntrySet',1679);c3(968,1679,JJd,Vg);_.pc=function Wg(a){return uk(this.a.d.Tb(),a)};_.tc=function Xg(){return new bh(this.a)};_.Zc=function Yg(){return this.a};_.vc=function Zg(a){var b;if(!uk(this.a.d.Tb(),a)){return false}b=kA(a,38);Ne(this.a.e,b.kc());return true};_.wc=function $g(){return Yj(this.a.d.Tb().wc(),new _g(this.a))};var dB=k4(sJd,'AbstractMapBasedMultimap/AsMap/AsMapEntries',968);c3(969,1,FJd,_g);_.Kb=function ah(a){return dg(this.a,kA(a,38))};var cB=k4(sJd,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',969);c3(659,1,wJd,bh);_.gc=function dh(a){Bhb(this,a)};_.ic=function fh(){var a;return a=kA(this.b.ic(),38),this.a=kA(a.lc(),13),dg(this.c,a)};_.hc=function eh(){return this.b.hc()};_.jc=function gh(){this.b.jc();this.c.e.d-=this.a._b();this.a.Pb()};var eB=k4(sJd,'AbstractMapBasedMultimap/AsMap/AsMapIterator',659);c3(541,1660,JJd,hh);_.Pb=function ih(){this.b.Pb()};_.pc=function jh(a){return this.b.Qb(a)};_.sc=function kh(a){Pb(a);this.b.Ub(new lt(a))};_.Wb=function lh(){return this.b.Wb()};_.tc=function mh(){return Es(),oo(this.b.Tb().tc(),(bt(),_s))};_.vc=function nh(a){if(this.b.Qb(a)){this.b.$b(a);return true}return false};_._b=function oh(){return this.b._b()};var eD=k4(sJd,'Maps/KeySet',541);c3(356,541,JJd,ph);_.Pb=function qh(){var a;bo((a=this.b.Tb().tc(),new xh(this,a)))};_.qc=function rh(a){return this.b.Xb().qc(a)};_.Fb=function sh(a){return this===a||kb(this.b.Xb(),a)};_.Hb=function th(){return ob(this.b.Xb())};_.tc=function uh(){var a;return a=this.b.Tb().tc(),new xh(this,a)};_.vc=function vh(a){var b,c;c=0;b=kA(this.b.$b(a),13);if(b){c=b._b();b.Pb();this.a.d-=c}return c>0};_.wc=function wh(){return this.b.Xb().wc()};var iB=k4(sJd,'AbstractMapBasedMultimap/KeySet',356);c3(660,1,wJd,xh);_.gc=function yh(a){Bhb(this,a)};_.hc=function zh(){return this.c.hc()};_.ic=function Ah(){this.a=kA(this.c.ic(),38);return this.a.kc()};_.jc=function Bh(){var a;Ub(!!this.a,xJd);a=kA(this.a.lc(),13);this.c.jc();this.b.a.d-=a._b();a.Pb()};var hB=k4(sJd,'AbstractMapBasedMultimap/KeySet/1',660);c3(358,357,{109:1,115:1},Ch);_.Jc=function Dh(){return this.$c()};_.Xb=function Fh(){return this._c()};_.$c=function Eh(){return new Nh(this.c,this.ad())};_._c=function Gh(){var a;return a=this.b,!a?(this.b=this.$c()):a};_.ad=function Hh(){return kA(this.d,115)};var mB=k4(sJd,'AbstractMapBasedMultimap/SortedAsMap',358);c3(396,358,KJd,Ih);_.$c=function Jh(){return new Ph(this.a,kA(kA(this.d,115),122))};_.Xb=function Kh(){var a;return a=this.b,kA(!a?(this.b=new Ph(this.a,kA(kA(this.d,115),122))):a,196)};_._c=function Lh(){var a;return a=this.b,kA(!a?(this.b=new Ph(this.a,kA(kA(this.d,115),122))):a,196)};_.ad=function Mh(){return kA(kA(this.d,115),122)};var jB=k4(sJd,'AbstractMapBasedMultimap/NavigableAsMap',396);c3(327,356,LJd,Nh);_.wc=function Oh(){return this.b.Xb().wc()};var nB=k4(sJd,'AbstractMapBasedMultimap/SortedKeySet',327);c3(299,327,MJd,Ph);var kB=k4(sJd,'AbstractMapBasedMultimap/NavigableKeySet',299);c3(448,25,HJd,Uh);_.nc=function Vh(a){var b,c;Rh(this);c=this.d.Wb();b=this.d.nc(a);if(b){++this.f.d;c&&Qh(this)}return b};_.oc=function Wh(a){var b,c,d;if(a.Wb()){return false}d=(Rh(this),this.d._b());b=this.d.oc(a);if(b){c=this.d._b();this.f.d+=c-d;d==0&&Qh(this)}return b};_.Pb=function Xh(){var a;a=(Rh(this),this.d._b());if(a==0){return}this.d.Pb();this.f.d-=a;Sh(this)};_.pc=function Yh(a){Rh(this);return this.d.pc(a)};_.qc=function Zh(a){Rh(this);return this.d.qc(a)};_.Fb=function $h(a){if(a===this){return true}Rh(this);return kb(this.d,a)};_.Hb=function _h(){Rh(this);return ob(this.d)};_.tc=function ai(){Rh(this);return new ui(this)};_.vc=function bi(a){var b;Rh(this);b=this.d.vc(a);if(b){--this.f.d;Sh(this)}return b};_._b=function ci(){return Th(this)};_.wc=function di(){return Rh(this),this.d.wc()};_.Ib=function ei(){Rh(this);return f3(this.d)};var pB=k4(sJd,'AbstractMapBasedMultimap/WrappedCollection',448);var mG=m4(tJd,'List');c3(657,448,{20:1,25:1,13:1,15:1},fi);_.jd=function ni(a){Vib(this,a)};_.wc=function oi(){return Rh(this),this.d.wc()};_.bd=function gi(a,b){var c;Rh(this);c=this.d.Wb();kA(this.d,15).bd(a,b);++this.a.d;c&&Qh(this)};_.cd=function hi(a){Rh(this);return kA(this.d,15).cd(a)};_.dd=function ii(a){Rh(this);return kA(this.d,15).dd(a)};_.ed=function ji(){Rh(this);return new Ai(this)};_.fd=function ki(a){Rh(this);return new Bi(this,a)};_.gd=function li(a){var b;Rh(this);b=kA(this.d,15).gd(a);--this.a.d;Sh(this);return b};_.hd=function mi(a,b){Rh(this);return kA(this.d,15).hd(a,b)};_.kd=function pi(a,b){Rh(this);return Qe(this.a,this.e,kA(this.d,15).kd(a,b),!this.b?this:this.b)};var rB=k4(sJd,'AbstractMapBasedMultimap/WrappedList',657);c3(967,657,{20:1,25:1,13:1,15:1,49:1},qi);var lB=k4(sJd,'AbstractMapBasedMultimap/RandomAccessWrappedList',967);c3(558,1,wJd,ui);_.gc=function wi(a){Bhb(this,a)};_.hc=function xi(){ti(this);return this.b.hc()};_.ic=function yi(){ti(this);return this.b.ic()};_.jc=function zi(){si(this)};var oB=k4(sJd,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',558);c3(658,558,NJd,Ai,Bi);_.jc=function Hi(){si(this)};_.Bc=function Ci(a){var b;b=Th(this.a)==0;(ti(this),kA(this.b,120)).Bc(a);++this.a.a.d;b&&Qh(this.a)};_.Cc=function Di(){return (ti(this),kA(this.b,120)).Cc()};_.Dc=function Ei(){return (ti(this),kA(this.b,120)).Dc()};_.Ec=function Fi(){return (ti(this),kA(this.b,120)).Ec()};_.Fc=function Gi(){return (ti(this),kA(this.b,120)).Fc()};_.Gc=function Ii(a){(ti(this),kA(this.b,120)).Gc(a)};var qB=k4(sJd,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',658);c3(559,448,LJd,Ji);_.wc=function Ki(){return Rh(this),this.d.wc()};var uB=k4(sJd,'AbstractMapBasedMultimap/WrappedSortedSet',559);c3(656,559,MJd,Li);var sB=k4(sJd,'AbstractMapBasedMultimap/WrappedNavigableSet',656);c3(655,448,JJd,Mi);_.wc=function Ni(){return Rh(this),this.d.wc()};var tB=k4(sJd,'AbstractMapBasedMultimap/WrappedSet',655);c3(974,1,FJd,Oi);_.Kb=function Pi(a){var b,c;return b=a.kc(),c=kA(a.lc(),13),Yj(c.wc(),new Qi(b))};var vB=k4(sJd,'AbstractMapBasedMultimap/lambda$0$Type',974);c3(973,1,FJd,Qi);_.Kb=function Ri(a){return af(this.a,a)};var wB=k4(sJd,'AbstractMapBasedMultimap/lambda$2$Type',973);c3(392,1,OJd);_.Fb=function Si(a){var b;if(sA(a,38)){b=kA(a,38);return Hb(this.kc(),b.kc())&&Hb(this.lc(),b.lc())}return false};_.Hb=function Ti(){var a,b;a=this.kc();b=this.lc();return (a==null?0:ob(a))^(b==null?0:ob(b))};_.mc=function Ui(a){throw x2(new U6)};_.Ib=function Vi(){return this.kc()+'='+this.lc()};var yB=k4(sJd,PJd,392);c3(1680,25,HJd);_.Pb=function Wi(){this.ld().Pb()};_.pc=function Xi(a){var b;if(sA(a,38)){b=kA(a,38);return xe(this.ld(),b.kc(),b.lc())}return false};_.vc=function Yi(a){var b;if(sA(a,38)){b=kA(a,38);return Ae(this.ld(),b.kc(),b.lc())}return false};_._b=function Zi(){return this.ld()._b()};var lD=k4(sJd,'Multimaps/Entries',1680);c3(975,1680,HJd);_.tc=function $i(){return this.a.Kc()};_.ld=function _i(){return this.a};_.wc=function aj(){return this.a.Lc()};var zB=k4(sJd,'AbstractMultimap/Entries',975);c3(662,975,JJd,bj);_.wc=function ej(){return this.a.Lc()};_.Fb=function cj(a){return dv(this,a)};_.Hb=function dj(){return ev(this)};var AB=k4(sJd,'AbstractMultimap/EntrySet',662);c3(663,25,HJd,fj);_.Pb=function gj(){this.a.Pb()};_.pc=function hj(a){return ye(this.a,a)};_.tc=function ij(){return this.a.Rc()};_._b=function jj(){return this.a.d};_.wc=function kj(){return this.a.Sc()};var BB=k4(sJd,'AbstractMultimap/Values',663);c3(1681,25,{738:1,20:1,25:1,13:1});_.sc=function sj(a){Pb(a);mj(this).sc(new su(a))};_.wc=function yj(){var a;return a=mj(this).wc(),Xj(a,new Du,64|a.qd()&1296,xu(this))};_.nc=function nj(a){lj();return true};_.oc=function oj(a){return uu(this,a)};_.Pb=function pj(){bo(new au(Yf(Tp(this.a)).tc()))};_.pc=function qj(a){var b;return b=kA(Js(Tp(this.a),a),13),(!b?0:b._b())>0};_.Fb=function rj(a){return vu(this,a)};_.Hb=function tj(){return ob(mj(this))};_.Wb=function uj(){return mj(this).Wb()};_.tc=function vj(){return new yu(this,mj(this).tc())};_.vc=function wj(a){return Tt(this,a,1)>0};_._b=function xj(){return xu(this)};_.Ib=function zj(){return f3(mj(this))};var DB=k4(sJd,'AbstractMultiset',1681);c3(557,654,QJd);_.Oc=function Cj(){return this.md()};_.Qc=function Dj(){return this.nd()};_.Mc=function Gj(a){return this.od(a)};_.Nc=function Ij(a){return this.pd(a)};_.Hc=function Bj(){var a;return a=this.f,!a?(this.f=sA(this.c,122)?new Ih(this,kA(this.c,122)):sA(this.c,115)?new Ch(this,kA(this.c,115)):new eg(this,this.c)):a};_.nd=function Ej(){return nl(),av(),_u};_.Fb=function Fj(a){return xt(this,a)};_.od=function Hj(a){return kA(Ke(this,a),19)};_.pd=function Jj(a){return kA(Me(this,a),19)};var EB=k4(sJd,'AbstractSetMultimap',557);c3(1413,557,QJd);_.md=function Mj(){return new Cmb(this.b)};_.nd=function Nj(){var a;return a=this.b,!a?(bdb(),new Teb(new Cmb(this.b))):nn(this.b)};_.Mc=function Oj(a){return kA(kA(Ke(this,a),19),60)};_.od=function Pj(a){return kA(kA(Ke(this,a),19),60)};_.Nc=function Qj(a){return kA(kA(Me(this,a),19),60)};_.pd=function Rj(a){return kA(kA(Me(this,a),19),60)};_.Hc=function Lj(){var a;return a=this.f,!a?(this.f=sA(this.c,122)?new Ih(this,kA(this.c,122)):sA(this.c,115)?new Ch(this,kA(this.c,115)):new eg(this,this.c)):a};var GB=k4(sJd,'AbstractSortedSetMultimap',1413);c3(1414,1413,QJd);_.Hc=function Tj(){var a;return a=this.f,kA(kA(!a?(this.f=sA(this.c,122)?new Ih(this,kA(this.c,122)):sA(this.c,115)?new Ch(this,kA(this.c,115)):new eg(this,this.c)):a,115),122)};_.Xb=function Uj(){var a;return a=this.i,kA(kA(!a?(this.i=sA(this.c,122)?new Ph(this,kA(this.c,122)):sA(this.c,115)?new Nh(this,kA(this.c,115)):new ph(this,this.c)):a,60),196)};var FB=k4(sJd,'AbstractSortedKeySortedSetMultimap',1414);c3(521,1483,EJd,Vj);_.a=0;var HB=k4(sJd,'ArrayListMultimap',521);c3(1156,1,SJd,Zj);_.qd=function $j(){return this.a.qd()&-262};_.rd=function _j(){return this.a.rd()};_.gc=function ak(a){this.a.gc(new ek(a,this.b))};_.sd=function bk(a){return this.a.sd(new ck(a,this.b))};var NB=k4(sJd,'CollectSpliterators/1',1156);c3(1157,1,{},ck);_.td=function dk(a){this.a.td(this.b.Kb(a))};var IB=k4(sJd,'CollectSpliterators/1/lambda$0$Type',1157);c3(1158,1,{},ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var JB=k4(sJd,'CollectSpliterators/1/lambda$1$Type',1158);c3(1159,1,SJd,hk);_.qd=function ik(){return this.a};_.rd=function jk(){!!this.d&&(this.b=w5(this.b,this.d.rd()));return w5(this.b,0)};_.gc=function kk(a){if(this.d){this.d.gc(a);this.d=null}this.c.gc(new pk(this.e,a));this.b=0};_.sd=function mk(a){while(true){if(!!this.d&&this.d.sd(a)){L2(this.b,TJd)&&(this.b=R2(this.b,1));return true}else{this.d=null}if(!this.c.sd(new nk(this,this.e))){return false}}};_.a=0;_.b=0;var MB=k4(sJd,'CollectSpliterators/1FlatMapSpliterator',1159);c3(1160,1,{},nk);_.td=function ok(a){gk(this.a,this.b,a)};var KB=k4(sJd,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1160);c3(1161,1,{},pk);_.td=function qk(a){lk(this.b,this.a,a)};var LB=k4(sJd,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1161);var rk;c3(844,1,VJd,vk);_.Fb=function xk(a){return this===a};_.Kb=function wk(a){return yA(a)===yA(this.a)?GJd:a};var OB=k4(sJd,'Collections2/1',844);c3(220,1,WJd);_.vd=function Bk(a){return this.ud(kA(a,220))};_.ud=function Ak(a){var b;if(a==(Uk(),Tk)){return 1}if(a==(Fk(),Ek)){return -1}b=(Pu(),E3(this.a,a.a));if(b!=0){return b}return sA(this,467)==sA(a,467)?0:sA(this,467)?1:-1};_.yd=function Ck(){return this.a};_.Fb=function Dk(a){return yk(this,a)};var TB=k4(sJd,'Cut',220);c3(1508,220,WJd,Gk);_.ud=function Hk(a){return a==this?0:1};_.wd=function Ik(a){throw x2(new x3)};_.xd=function Jk(a){a.a+='+\u221E)'};_.yd=function Kk(){throw x2(new Q4(XJd))};_.zd=function Lk(a){return false};_.Ib=function Mk(){return '+\u221E'};var Ek;var PB=k4(sJd,'Cut/AboveAll',1508);c3(467,220,{220:1,467:1,3:1,34:1},Nk);_.wd=function Ok(a){H6((a.a+='(',a),this.a)};_.xd=function Pk(a){C6(H6(a,this.a),93)};_.Hb=function Qk(){return ~ob(this.a)};_.zd=function Rk(a){return Pu(),E3(this.a,a)<0};_.Ib=function Sk(){return '/'+this.a+'\\'};var QB=k4(sJd,'Cut/AboveValue',467);c3(1507,220,WJd,Vk);_.ud=function Wk(a){return a==this?0:-1};_.wd=function Xk(a){a.a+='(-\u221E'};_.xd=function Yk(a){throw x2(new x3)};_.yd=function Zk(){throw x2(new Q4(XJd))};_.zd=function $k(a){return true};_.Ib=function _k(){return '-\u221E'};var Tk;var RB=k4(sJd,'Cut/BelowAll',1507);c3(1509,220,WJd,al);_.wd=function bl(a){H6((a.a+='[',a),this.a)};_.xd=function cl(a){C6(H6(a,this.a),41)};_.Hb=function dl(){return ob(this.a)};_.zd=function el(a){return Pu(),E3(this.a,a)<=0};_.Ib=function fl(){return '\\'+this.a+'/'};var SB=k4(sJd,'Cut/BelowValue',1509);c3(482,1,YJd);_.sc=function il(a){i5(this,a)};_.Ib=function jl(){return no(kA(Qb(this,'use Optional.orNull() instead of Optional.or(null)'),20).tc())};var VB=k4(sJd,'FluentIterable',482);c3(325,482,YJd,ll);_.tc=function ml(){return kl(this)};var UB=k4(sJd,'FluentIterable/2',325);c3(1670,25,ZJd);_.tc=function tl(){return this.Ad()};_.nc=function pl(a){throw x2(new U6)};_.oc=function ql(a){throw x2(new U6)};_.Pb=function rl(){throw x2(new U6)};_.pc=function sl(a){return a!=null&&qg(this,a,false)};_.vc=function ul(a){throw x2(new U6)};var iC=k4(sJd,'ImmutableCollection',1670);c3(912,1670,ZJd,vl);_.tc=function Al(){return po((bdb(),sdb(),rdb))};_.pc=function wl(a){return false};_.qc=function xl(a){return sg(this.a,a)};_.Wb=function yl(){return true};_.Ad=function zl(){return po((bdb(),sdb(),rdb))};_._b=function Bl(){return 0};_.yc=function Cl(){return tg(this.a)};_.zc=function Dl(a){return ug(this.a,a)};_.Ib=function El(){return vg(this.a)};var XB=k4(sJd,'ForwardingImmutableCollection',912);c3(193,1670,$Jd);_.tc=function Nl(){return this.Ad()};_.ed=function Ol(){return new gn(this,this._b(),0)};_.fd=function Pl(a){return new gn(this,this._b(),a)};_.jd=function Tl(a){Vib(this,a)};_.wc=function Ul(){return new ekb(this,16)};_.kd=function Wl(a,b){return this.Bd(a,b)};_.bd=function Il(a,b){throw x2(new U6)};_.Fb=function Jl(a){return Nr(this,a)};_.Hb=function Kl(){return Or(this)};_.dd=function Ll(a){return a==null?-1:Pr(this,a)};_.Ad=function Ml(){return new gn(this,this._b(),0)};_.gd=function Rl(a){throw x2(new U6)};_.hd=function Sl(a,b){throw x2(new U6)};_.Bd=function Vl(a,b){var c;return Xl((c=new bs(this),new A9(c,a,b)))};var Fl;var mC=k4(sJd,'ImmutableList',193);c3(1675,193,$Jd);_.tc=function em(){return po(this.Cd().tc())};_.kd=function hm(a,b){return Xl(this.Cd().kd(a,b))};_.pc=function Yl(a){return a!=null&&this.Cd().pc(a)};_.qc=function Zl(a){return this.Cd().qc(a)};_.Fb=function $l(a){return kb(this.Cd(),a)};_.cd=function _l(a){return this.Cd().cd(a)};_.Hb=function am(){return ob(this.Cd())};_.dd=function bm(a){return this.Cd().dd(a)};_.Wb=function cm(){return this.Cd().Wb()};_.Ad=function dm(){return po(this.Cd().tc())};_._b=function fm(){return this.Cd()._b()};_.Bd=function gm(a,b){return Xl(this.Cd().kd(a,b))};_.yc=function im(){return this.Cd().zc(tz(NE,oJd,1,this.Cd()._b(),5,1))};_.zc=function jm(a){return this.Cd().zc(a)};_.Ib=function km(){return f3(this.Cd())};var YB=k4(sJd,'ForwardingImmutableList',1675);c3(1671,1670,_Jd);_.tc=function pm(){return this.Ad()};_.wc=function rm(){return new ekb(this,1)};_.Fb=function nm(a){return dv(this,a)};_.Hb=function om(){return ev(this)};var nC=k4(sJd,'ImmutableSet',1671);c3(550,1671,_Jd);_.tc=function zm(){return this.Ad()};_.pc=function um(a){return a!=null&&Udb(this.b,a)};_.qc=function vm(a){return Vdb(this.b,a)};_.Hb=function wm(){return ob(this.b.b)};_.Wb=function xm(){return this.b.b.Wb()};_.Ad=function ym(){return po(new neb(this.b.b.tc()))};_._b=function Am(){return this.b.b._b()};_.yc=function Bm(){return this.b.b.yc()};_.zc=function Cm(a){return Wdb(this.b,a)};_.Ib=function Dm(){return f3(this.b.b)};var ZB=k4(sJd,'ForwardingImmutableSet',550);c3(1664,1663,aKd);_.Ac=function Em(){return bdb(),new Teb(this.a)};_.wc=function Fm(){return new lkb(this)};var cC=k4(sJd,'ForwardingSortedSet',1664);c3(481,632,vJd,Gm);_.ec=function Hm(a){return new Jm(this,a,this)};_.Zb=function Im(a,b){return Lc(this,a,b,false)};var gC=k4(sJd,'HashBiMap',481);c3(892,633,vJd,Jm);_.dc=function Km(){return new Rm(this,this.a.b.Tb().tc())};var fC=k4(sJd,'HashBiMap/1',892);c3(479,1,wJd);_.gc=function Nm(a){Bhb(this,a)};_.hc=function Om(){return this.b.hc()};_.ic=function Pm(){return Lm(this)};_.jc=function Qm(){this.b.jc()};var ID=k4(sJd,'TransformedIterator',479);c3(893,479,wJd,Rm);_.Ed=function Sm(a){return new Tm(this,kA(a,38))};_.Dd=function(a){return this.Ed(a)};var eC=k4(sJd,'HashBiMap/1/1',893);c3(894,392,OJd,Tm);_.kc=function Um(){return this.c};_.lc=function Vm(){return this.a.a.b.Vb(this.c)};_.mc=function Wm(a){var b;Ub(Kd(Jc(this.a.a),this),zJd);b=this.a.a.b.Vb(this.c);if(yA(a)===yA(b)||a!=null&&kb(a,b)){return a}Lc(this.a.a,this.c,a,true);return b};var dC=k4(sJd,'HashBiMap/1/1/1',894);c3(298,557,QJd,Xm);_.md=function Ym(){return new Kgb(Gs(this.a))};_.a=2;var hC=k4(sJd,'HashMultimap',298);c3(372,392,{392:1,372:1,3:1,38:1},_m);_.kc=function an(){return this.g};_.lc=function bn(){return this.i};_.mc=function cn(a){throw x2(new U6)};var jC=k4(sJd,'ImmutableEntry',372);c3(903,550,_Jd,dn);var kC=k4(sJd,'ImmutableEnumSet',903);c3(544,847,DJd,gn);var lC=k4(sJd,'ImmutableList/1',544);c3(1561,550,bKd);_.tc=function pn(){return po(new neb(this.b.b.tc()))};_.wc=function qn(){return new lkb(this)};_.pc=function ln(b){try{return b!=null&&Udb(this.a,b)}catch(a){a=w2(a);if(sA(a,177)){return false}else throw x2(a)}};_.qc=function mn(b){var c,d;for(d=b.tc();d.hc();){c=d.ic();if(c==null){return false}}try{return Vdb(this.a,b)}catch(a){a=w2(a);if(sA(a,177)){return false}else throw x2(a)}};_.Ad=function on(){return po(new neb(this.b.b.tc()))};_.yc=function rn(){return Nu(this,tz(NE,oJd,1,this.b.b._b(),5,1))};_.zc=function sn(a){return Ou(this,a)};var hn,jn;var oC=k4(sJd,'ImmutableSortedSet',1561);c3(904,482,YJd,En);_.tc=function Fn(){return co(this.a)};_.Ib=function Gn(){return vg(this.a)+' (cycled)'};var qC=k4(sJd,'Iterables/1',904);c3(200,1,VJd,Hn);_.Kb=function In(a){return kA(a,20).tc()};_.Fb=function Jn(a){return this===a};var pC=k4(sJd,'Iterables/12',200);c3(905,482,YJd,Ln);_.sc=function Mn(a){Pb(a);this.b.sc(new Pn(this.a,a))};_.tc=function Nn(){return Kn(this)};var sC=k4(sJd,'Iterables/4',905);c3(906,1,{},Pn);_.td=function Qn(a){On(this.b,this.a,a)};var rC=k4(sJd,'Iterables/4/lambda$0$Type',906);c3(907,482,YJd,Sn);_.sc=function Tn(a){Pb(a);this.a.sc(new Vn(a,this.b))};_.tc=function Un(){return Rn(this)};var uC=k4(sJd,'Iterables/5',907);c3(908,1,{},Vn);_.td=function Wn(a){this.a.td(this.b.Kb(a))};var tC=k4(sJd,'Iterables/5/lambda$0$Type',908);var Xn,Yn;c3(945,1665,DJd,qo);_.hc=function ro(){return false};_.Cc=function so(){return false};_.ic=function to(){throw x2(new djb)};_.Dc=function uo(){return 0};_.Ec=function vo(){throw x2(new djb)};_.Fc=function wo(){return -1};var wC=k4(sJd,'Iterators/1',945);c3(555,257,CJd,xo);_.hc=function yo(){return !this.a};_.ic=function zo(){if(this.a){throw x2(new djb)}this.a=true;return this.b};_.a=false;var vC=k4(sJd,'Iterators/11',555);c3(946,1,wJd,Ao);_.gc=function Bo(a){Bhb(this,a)};_.hc=function Co(){return false};_.ic=function Do(){throw x2(new djb)};_.jc=function Eo(){Ub(false,xJd)};var xC=k4(sJd,'Iterators/2',946);c3(947,257,CJd,Fo);_.hc=function Go(){return this.a.hc()};_.ic=function Ho(){return this.a.ic()};var yC=k4(sJd,'Iterators/3',947);c3(948,1,wJd,Jo);_.gc=function Ko(a){Bhb(this,a)};_.hc=function Lo(){return this.a.hc()||this.b.tc().hc()};_.ic=function Mo(){return Io(this)};_.jc=function No(){this.a.jc()};var zC=k4(sJd,'Iterators/4',948);c3(950,949,CJd,Po);var AC=k4(sJd,'Iterators/6',950);c3(951,479,wJd,Qo);_.Dd=function Ro(a){return this.a.Kb(a)};var BC=k4(sJd,'Iterators/7',951);c3(647,1,wJd);_.gc=function Vo(a){Bhb(this,a)};_.hc=function Wo(){return So(this)};_.ic=function Xo(){return To(this)};_.jc=function Yo(){Ub(!!this.c,xJd);this.c.jc();this.c=null};var xD=k4(sJd,'MultitransformedIterator',647);c3(182,647,{182:1,43:1},Zo);_.Fd=function $o(a){return kA(a,43)};var DC=k4(sJd,'Iterators/ConcatenatedIterator',182);c3(648,647,wJd,ap);_.Fd=function bp(a){return _o(kA(a,43))};var CC=k4(sJd,'Iterators/ConcatenatedIterator/1',648);c3(1540,557,QJd,cp);_.Pb=function dp(){Je(this);jp(this.a,this.a)};_.md=function ep(){return new jib(this.b)};_.Pc=function fp(a){return new Bp(this,a,this.b)};_.Kc=function gp(){return new qp(this)};_.Lc=function hp(){var a;return new ekb((a=this.g,kA(!a?(this.g=new bj(this)):a,19)),17)};_.Xb=function ip(){var a;return a=this.i,!a?(this.i=sA(this.c,122)?new Ph(this,kA(this.c,122)):sA(this.c,115)?new Nh(this,kA(this.c,115)):new ph(this,this.c)):a};_.Rc=function lp(){return Es(),oo(new qp(this),(bt(),at))};_.Sc=function mp(){var a;return Yj(new ekb((a=this.g,kA(!a?(this.g=new bj(this)):a,19)),17),new np)};_.b=2;var JC=k4(sJd,'LinkedHashMultimap',1540);c3(1543,1,FJd,np);_.Kb=function op(a){return kA(a,38).lc()};var EC=k4(sJd,'LinkedHashMultimap/0methodref$getValue$Type',1543);c3(728,1,wJd,qp);_.gc=function rp(a){Bhb(this,a)};_.ic=function tp(){return pp(this)};_.hc=function sp(){return this.a!=this.b.a};_.jc=function up(){Ub(!!this.c,xJd);Ae(this.b,this.c.g,this.c.i);this.c=null};var FC=k4(sJd,'LinkedHashMultimap/1',728);c3(310,372,{392:1,372:1,310:1,1706:1,3:1,38:1},vp);_.Gd=function wp(){return this.f};_.Hd=function xp(a){this.c=a};_.Id=function yp(a){this.f=a};_.d=0;var GC=k4(sJd,'LinkedHashMultimap/ValueEntry',310);c3(1541,1660,{1706:1,20:1,25:1,13:1,19:1},Bp);_.nc=function Cp(a){var b,c,d,e,f;f=dKd*b5((a==null?0:ob(a))*eKd,15);b=f&this.b.length-1;e=this.b[b];for(c=e;c;c=c.a){if(c.d==f&&Hb(c.i,a)){return false}}d=new vp(this.c,a,f,e);kp(this.d,d);d.f=this;this.d=d;jp(this.g.a.b,d);jp(d,this.g.a);this.b[b]=d;++this.f;++this.e;zp(this);return true};_.Pb=function Dp(){var a,b;qcb(this.b,null);this.f=0;for(a=this.a;a!=this;a=a.Gd()){b=kA(a,310);jp(b.b,b.e)}this.a=this;this.d=this;++this.e};_.pc=function Ep(a){var b,c;c=dKd*b5((a==null?0:ob(a))*eKd,15);for(b=this.b[c&this.b.length-1];b;b=b.a){if(b.d==c&&Hb(b.i,a)){return true}}return false};_.sc=function Fp(a){var b;Pb(a);for(b=this.a;b!=this;b=b.Gd()){a.td(kA(b,310).i)}};_.Gd=function Gp(){return this.a};_.tc=function Hp(){return new Np(this)};_.vc=function Ip(a){return Ap(this,a)};_.Hd=function Jp(a){this.d=a};_.Id=function Kp(a){this.a=a};_._b=function Lp(){return this.f};_.e=0;_.f=0;var IC=k4(sJd,'LinkedHashMultimap/ValueSet',1541);c3(1542,1,wJd,Np);_.gc=function Op(a){Bhb(this,a)};_.hc=function Pp(){return Mp(this),this.b!=this.c};_.ic=function Qp(){var a,b;Mp(this);if(this.b==this.c){throw x2(new djb)}a=kA(this.b,310);b=a.i;this.d=a;this.b=a.f;return b};_.jc=function Rp(){Mp(this);Ub(!!this.d,xJd);Ap(this.c,this.d.i);this.a=this.c.e;this.d=null};_.a=0;var HC=k4(sJd,'LinkedHashMultimap/ValueSet/1',1542);c3(689,1677,EJd,Zp);_.Hc=function $p(){return Tp(this)};_.Fb=function fq(a){return xt(this,a)};_.Mc=function gq(a){return new Nq(this,a)};_.Nc=function jq(a){return Xp(this,a)};_.Pb=function aq(){Up(this)};_.Qb=function bq(a){return Vp(this,a)};_.Ic=function cq(){return new At(this)};_.Jc=function dq(){return new Uq(this)};_.Kc=function eq(){throw x2(new y3('should never be called'))};_.Tc=function hq(a){return new Nq(this,a)};_.Wb=function iq(){return !this.a};_.Uc=function kq(a){return Xp(this,a)};_._b=function lq(){return this.d};_.c=0;_.d=0;var SC=k4(sJd,'LinkedListMultimap',689);c3(41,25,fKd);_.jd=function Aq(a){Vib(this,a)};_.wc=function Bq(){return new ekb(this,16)};_.bd=function oq(a,b){throw x2(new V6('Add not supported on this list'))};_.nc=function pq(a){this.bd(this._b(),a);return true};_.Pb=function qq(){this.Jd(0,this._b())};_.Fb=function rq(a){return mq(this,a)};_.Hb=function sq(){return fdb(this)};_.dd=function tq(a){return nq(this,a)};_.tc=function uq(){return new m9(this)};_.ed=function vq(){return this.fd(0)};_.fd=function wq(a){return new s9(this,a)};_.gd=function xq(a){throw x2(new V6('Remove not supported on this list'))};_.Jd=function yq(a,b){var c,d;d=this.fd(a);for(c=a;c0||this.c.hc()};_.ic=function Bu(){if(!(this.d>0||this.c.hc())){throw x2(new djb)}if(this.d==0){this.b=kA(this.c.ic(),312);this.f=this.d=kA(this.b.a.lc(),13)._b()}--this.d;this.a=true;return this.b.a.kc()};_.jc=function Cu(){Ub(this.a,xJd);this.f==1?this.c.jc():Tt(this.e,this.b.a.kc(),1)>0;--this.f;this.a=false};_.a=false;_.d=0;_.f=0;var vD=k4(sJd,'Multisets/MultisetIteratorImpl',981);c3(667,1,FJd,Du);_.Kb=function Eu(a){return new ekb(gdb(kA(kA(a,300).a.lc(),13)._b(),kA(a,300).a.kc()),16)};var wD=k4(sJd,'Multisets/lambda$0$Type',667);c3(1684,1,lKd);_.Fb=function Fu(a){return this===a};_.Md=function Gu(){return new jfb(this)};var zD=k4(sJd,'Ordering',1684);c3(1565,1684,mKd,Ku);_.Ld=function Lu(a,b){return Ju(kA(a,34),kA(b,34))};_.Ib=function Mu(){return 'Ordering.natural()'};var Hu;var yD=k4(sJd,'NaturalOrdering',1565);c3(464,1,{138:1,464:1,3:1,56:1},Ru);_.Mb=function Su(a){return Qu(this,kA(a,34))};_.Nb=function Wu(a){return this.Mb(a)};_.Fb=function Uu(a){var b;if(sA(a,464)){b=kA(a,464);return yk(this.a,b.a)&&yk(this.b,b.b)}return false};_.Hb=function Vu(){return ob(this.a)*31+ob(this.b)};_.Ib=function Xu(){return Yu(this.a,this.b)};var AD=k4(sJd,'Range',464);c3(485,1675,$Jd,Zu);_.Cd=function $u(){return this.a};var BD=k4(sJd,'RegularImmutableList',485);c3(554,550,_Jd,bv);var _u;var CD=k4(sJd,'RegularImmutableSet',554);c3(729,1561,bKd,cv);var DD=k4(sJd,'RegularImmutableSortedSet',729);c3(543,1664,{543:1,3:1,20:1,13:1,196:1,19:1,60:1},lv);var FD=k4(sJd,'Sets/UnmodifiableNavigableSet',543);c3(1165,1675,$Jd,mv);_.Cd=function nv(){return this.a};var GD=k4(sJd,'SingletonImmutableList',1165);c3(326,1671,_Jd,ov);_.tc=function rv(){return Zn(),new xo(this.a)};_.pc=function pv(a){return kb(this.a,a)};_.Ad=function qv(){return Zn(),new xo(this.a)};_._b=function sv(){return 1};var HD=k4(sJd,'SingletonImmutableSet',326);c3(1415,1414,QJd,tv);_.Hc=function uv(){var a;return a=this.f,kA(kA(!a?(this.f=sA(this.c,122)?new Ih(this,kA(this.c,122)):sA(this.c,115)?new Ch(this,kA(this.c,115)):new eg(this,this.c)):a,115),122)};_.Xb=function xv(){var a;return a=this.i,kA(kA(!a?(this.i=sA(this.c,122)?new Ph(this,kA(this.c,122)):sA(this.c,115)?new Nh(this,kA(this.c,115)):new ph(this,this.c)):a,60),196)};_.Pc=function wv(a){a==null&&this.a.Ld(null,null);return new Cmb(this.b)};var JD=k4(sJd,'TreeMultimap',1415);c3(78,1,{3:1,78:1});_.Nd=function Nv(a){return new $wnd.Error(a)};_.Od=function Pv(){return this.g};_.Pd=function Qv(){var a,b,c;c=this.g==null?null:this.g.replace(new $wnd.RegExp('\n','g'),' ');b=(a=f4(this.ql),c==null?a:a+': '+c);Jv(this,Ov(this.Nd(b)));Cw(this)};_.Ib=function Rv(){return Kv(this,this.Od())};_.e=pKd;_.i=false;_.n=true;var VE=k4(kJd,'Throwable',78);c3(104,78,{3:1,104:1,78:1});var BE=k4(kJd,'Exception',104);c3(54,104,rKd,Sv,Tv);var OE=k4(kJd,'RuntimeException',54);c3(539,54,rKd);var HE=k4(kJd,'JsException',539);c3(760,539,rKd);var PD=k4(sKd,'JavaScriptExceptionBase',760);c3(435,760,{435:1,3:1,104:1,54:1,78:1},Xv);_.Od=function $v(){Wv(this);return this.c};_.Qd=function _v(){return yA(this.b)===yA(Uv)?null:this.b};var Uv;var MD=k4(uKd,'JavaScriptException',435);var ND=k4(uKd,'JavaScriptObject$',0);var dw;c3(1640,1,{});var OD=k4(uKd,'Scheduler',1640);var hw=0,iw=0,jw=-1;c3(787,1640,{},xw);var tw;var QD=k4(sKd,'SchedulerImpl',787);var Aw;c3(1653,1,{});var UD=k4(sKd,'StackTraceCreator/Collector',1653);c3(761,1653,{},Hw);_.Rd=function Iw(a){var b={},j;var c=[];a[wKd]=c;var d=arguments.callee.caller;while(d){var e=(Bw(),d.name||(d.name=Ew(d.toString())));c.push(e);var f=':'+e;var g=b[f];if(g){var h,i;for(h=0,i=g.length;h=0?'+':'')+(c/60|0);b=(c<0?-c:c)%60<10?'0'+(c<0?-c:c)%60:''+(c<0?-c:c)%60;return (tfb(),rfb)[this.q.getDay()]+' '+sfb[this.q.getMonth()]+' '+Vx(this.q.getDate())+' '+Vx(this.q.getHours())+':'+Vx(this.q.getMinutes())+':'+Vx(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var PF=k4(tJd,'Date',181);c3(1622,181,aLd,Yx);_.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 bE=k4('com.google.gwt.i18n.shared.impl','DateRecord',1622);c3(1659,1,{});_.Vd=function Zx(){return null};_.Wd=function $x(){return null};_.Xd=function _x(){return null};_.Yd=function ay(){return null};_.Zd=function by(){return null};var kE=k4(bLd,'JSONValue',1659);c3(209,1659,{209:1},fy,gy);_.Fb=function hy(a){if(!sA(a,209)){return false}return aw(this.a,kA(a,209).a)};_.Ud=function iy(){return my};_.Hb=function jy(){return bw(this.a)};_.Vd=function ky(){return this};_.Ib=function ly(){var a,b,c;c=new O6('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);H6(c,cy(this,b))}c.a+=']';return c.a};var cE=k4(bLd,'JSONArray',209);c3(443,1659,{443:1},qy);_.Ud=function ry(){return uy};_.Wd=function sy(){return this};_.Ib=function ty(){return B3(),''+this.a};_.a=false;var ny,oy;var dE=k4(bLd,'JSONBoolean',443);c3(877,54,rKd,vy);var eE=k4(bLd,'JSONException',877);c3(913,1659,{},yy);_.Ud=function zy(){return By};_.Ib=function Ay(){return mJd};var wy;var fE=k4(bLd,'JSONNull',913);c3(259,1659,{259:1},Cy);_.Fb=function Dy(a){if(!sA(a,259)){return false}return this.a==kA(a,259).a};_.Ud=function Ey(){return Iy};_.Hb=function Fy(){return zA(Vpb(this.a))};_.Xd=function Gy(){return this};_.Ib=function Hy(){return this.a+''};_.a=0;var gE=k4(bLd,'JSONNumber',259);c3(191,1659,{191:1},Py,Qy);_.Fb=function Ry(a){if(!sA(a,191)){return false}return aw(this.a,kA(a,191).a)};_.Ud=function Sy(){return Wy};_.Hb=function Ty(){return bw(this.a)};_.Yd=function Uy(){return this};_.Ib=function Vy(){var a,b,c,d,e,f;f=new O6('{');a=true;e=Jy(this,tz(UE,cKd,2,0,6,1));for(c=0,d=e.length;c=0?':'+this.c:'')+')'};_.c=0;var QE=k4(kJd,'StackTraceElement',287);iA={3:1,476:1,34:1,2:1};var UE=k4(kJd,tKd,2);c3(100,381,{476:1},z6,A6,B6);var RE=k4(kJd,'StringBuffer',100);c3(98,381,{476:1},M6,N6,O6);var SE=k4(kJd,'StringBuilder',98);c3(763,79,kLd,P6);var TE=k4(kJd,'StringIndexOutOfBoundsException',763);c3(1722,1,{});var Q6,R6;c3(46,54,{3:1,104:1,54:1,78:1,46:1},U6,V6);var WE=k4(kJd,'UnsupportedOperationException',46);c3(216,210,{3:1,34:1,210:1,216:1},j7,k7);_.vd=function n7(a){return d7(this,kA(a,216))};_.$d=function o7(){return G3(i7(this))};_.Fb=function p7(a){var b;if(this===a){return true}if(sA(a,216)){b=kA(a,216);return this.e==b.e&&d7(this,b)==0}return false};_.Hb=function q7(){var a;if(this.b!=0){return this.b}if(this.a<54){a=E2(this.f);this.b=U2(z2(a,-1));this.b=33*this.b+U2(z2(P2(a,32),-1));this.b=17*this.b+zA(this.e);return this.b}this.b=17*E7(this.c)+zA(this.e);return this.b};_.Ib=function r7(){return i7(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var W6,X6,Y6,Z6,$6,_6,a7,b7;var XE=k4('java.math','BigDecimal',216);c3(89,210,{3:1,34:1,210:1,89:1},K7,L7,M7,N7,O7,P7);_.vd=function R7(a){return z7(this,kA(a,89))};_.$d=function S7(){return G3(j8(this,0))};_.Fb=function T7(a){return B7(this,a)};_.Hb=function V7(){return E7(this)};_.Ib=function X7(){return j8(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var s7,t7,u7,v7,w7,x7;var YE=k4('java.math','BigInteger',89);var e8,f8;var s8,t8;c3(441,1666,uJd);_.Pb=function O8(){L8(this)};_.Qb=function P8(a){return D8(this,a)};_.Rb=function Q8(a){return E8(this,a,this.e)||E8(this,a,this.d)};_.Tb=function R8(){return new X8(this)};_.Vb=function S8(a){return F8(this,a)};_.Zb=function T8(a,b){return I8(this,a,b)};_.$b=function U8(a){return K8(this,a)};_._b=function V8(){return M8(this)};var aF=k4(tJd,'AbstractHashMap',441);c3(242,IJd,JJd,X8);_.Pb=function Y8(){this.a.Pb()};_.pc=function Z8(a){return W8(this,a)};_.tc=function $8(){return new e9(this.a)};_.vc=function _8(a){var b;if(W8(this,a)){b=kA(a,38).kc();this.a.$b(b);return true}return false};_._b=function a9(){return this.a._b()};var _E=k4(tJd,'AbstractHashMap/EntrySet',242);c3(243,1,wJd,e9);_.gc=function f9(a){Bhb(this,a)};_.ic=function h9(){return c9(this)};_.hc=function g9(){return this.b};_.jc=function i9(){d9(this)};_.b=false;var $E=k4(tJd,'AbstractHashMap/EntrySetIterator',243);c3(433,1,wJd,m9);_.gc=function n9(a){Bhb(this,a)};_.hc=function o9(){return j9(this)};_.ic=function p9(){return k9(this)};_.jc=function q9(){l9(this)};_.b=0;_.c=-1;var bF=k4(tJd,'AbstractList/IteratorImpl',433);c3(94,433,NJd,s9);_.jc=function y9(){l9(this)};_.Bc=function t9(a){r9(this,a)};_.Cc=function u9(){return this.b>0};_.Dc=function v9(){return this.b};_.Ec=function w9(){return Lpb(this.b>0),this.a.cd(this.c=--this.b)};_.Fc=function x9(){return this.b-1};_.Gc=function z9(a){Rpb(this.c!=-1);this.a.hd(this.c,a)};var cF=k4(tJd,'AbstractList/ListIteratorImpl',94);c3(227,41,fKd,A9);_.bd=function B9(a,b){Ppb(a,this.b);this.c.bd(this.a+a,b);++this.b};_.cd=function C9(a){Mpb(a,this.b);return this.c.cd(this.a+a)};_.gd=function D9(a){var b;Mpb(a,this.b);b=this.c.gd(this.a+a);--this.b;return b};_.hd=function E9(a,b){Mpb(a,this.b);return this.c.hd(this.a+a,b)};_._b=function F9(){return this.b};_.a=0;_.b=0;var dF=k4(tJd,'AbstractList/SubList',227);c3(352,IJd,JJd,G9);_.Pb=function H9(){this.a.Pb()};_.pc=function I9(a){return this.a.Qb(a)};_.tc=function J9(){var a;return a=this.a.Tb().tc(),new M9(a)};_.vc=function K9(a){if(this.a.Qb(a)){this.a.$b(a);return true}return false};_._b=function L9(){return this.a._b()};var gF=k4(tJd,'AbstractMap/1',352);c3(542,1,wJd,M9);_.gc=function N9(a){Bhb(this,a)};_.hc=function O9(){return this.a.hc()};_.ic=function P9(){var a;return a=kA(this.a.ic(),38),a.kc()};_.jc=function Q9(){this.a.jc()};var fF=k4(tJd,'AbstractMap/1/1',542);c3(223,25,HJd,R9);_.Pb=function S9(){this.a.Pb()};_.pc=function T9(a){return this.a.Rb(a)};_.tc=function U9(){var a;return a=this.a.Tb().tc(),new W9(a)};_._b=function V9(){return this.a._b()};var iF=k4(tJd,'AbstractMap/2',223);c3(321,1,wJd,W9);_.gc=function X9(a){Bhb(this,a)};_.hc=function Y9(){return this.a.hc()};_.ic=function Z9(){var a;return a=kA(this.a.ic(),38),a.lc()};_.jc=function $9(){this.a.jc()};var hF=k4(tJd,'AbstractMap/2/1',321);c3(440,1,{440:1,38:1});_.Fb=function aab(a){var b;if(!sA(a,38)){return false}b=kA(a,38);return ejb(this.d,b.kc())&&ejb(this.e,b.lc())};_.kc=function bab(){return this.d};_.lc=function cab(){return this.e};_.Hb=function dab(){return fjb(this.d)^fjb(this.e)};_.mc=function eab(a){return _9(this,a)};_.Ib=function fab(){return this.d+'='+this.e};var jF=k4(tJd,'AbstractMap/AbstractEntry',440);c3(351,440,{440:1,351:1,38:1},gab);var kF=k4(tJd,'AbstractMap/SimpleEntry',351);c3(1672,1,yJd);_.Fb=function hab(a){var b;if(!sA(a,38)){return false}b=kA(a,38);return ejb(this.kc(),b.kc())&&ejb(this.lc(),b.lc())};_.Hb=function iab(){return fjb(this.kc())^fjb(this.lc())};_.Ib=function jab(){return this.kc()+'='+this.lc()};var lF=k4(tJd,PJd,1672);c3(1685,1666,KJd);_.Wc=function mab(a){return kab(this,a)};_.Qb=function nab(a){return lab(this,a)};_.Tb=function oab(){return new sab(this)};_.Vb=function pab(a){return Of(vlb(this,a))};_.Xb=function rab(){return new xab(this)};var qF=k4(tJd,'AbstractNavigableMap',1685);c3(668,IJd,JJd,sab);_.pc=function tab(a){return sA(a,38)&&kab(this.b,kA(a,38))};_.tc=function uab(){return new Tlb(this.b)};_.vc=function vab(a){var b;if(sA(a,38)){b=kA(a,38);return Flb(this.b,b)}return false};_._b=function wab(){return this.b.c};var nF=k4(tJd,'AbstractNavigableMap/EntrySet',668);c3(488,IJd,MJd,xab);_.wc=function Dab(){return new lkb(this)};_.Pb=function yab(){ulb(this.a)};_.pc=function zab(a){return lab(this.a,a)};_.tc=function Aab(){var a;return a=new Tlb((new Zlb(this.a)).b),new Eab(a)};_.vc=function Bab(a){if(lab(this.a,a)){Elb(this.a,a);return true}return false};_._b=function Cab(){return this.a.c};var pF=k4(tJd,'AbstractNavigableMap/NavigableKeySet',488);c3(489,1,wJd,Eab);_.gc=function Fab(a){Bhb(this,a)};_.hc=function Gab(){return j9(this.a.a)};_.ic=function Hab(){var a;return a=Rlb(this.a),a.kc()};_.jc=function Iab(){Slb(this.a)};var oF=k4(tJd,'AbstractNavigableMap/NavigableKeySet/1',489);c3(1693,25,HJd);_.nc=function Jab(a){return Spb(Djb(this,a)),true};_.oc=function Kab(a){Npb(a);Fpb(a!=this,"Can't add a queue to itself");return pg(this,a)};_.Pb=function Lab(){while(Ejb(this)!=null);};var rF=k4(tJd,'AbstractQueue',1693);c3(407,25,{4:1,20:1,25:1,13:1},$ab,_ab);_.nc=function abb(a){return Oab(this,a),true};_.Pb=function cbb(){Pab(this)};_.pc=function dbb(a){return Qab(new mbb(this),a)};_.Wb=function ebb(){return Tab(this)};_.tc=function fbb(){return new mbb(this)};_.vc=function gbb(a){return Vab(new mbb(this),a)};_._b=function hbb(){return this.c-this.b&this.a.length-1};_.wc=function ibb(){return new ekb(this,272)};_.zc=function jbb(a){var b,c;c=this.c-this.b&this.a.length-1;a.lengthc&&wz(a,c,null);return a};_.b=0;_.c=0;var vF=k4(tJd,'ArrayDeque',407);c3(408,1,wJd,mbb);_.gc=function nbb(a){Bhb(this,a)};_.hc=function obb(){return this.a!=this.b};_.ic=function pbb(){return kbb(this)};_.jc=function qbb(){lbb(this)};_.a=0;_.b=0;_.c=-1;var uF=k4(tJd,'ArrayDeque/IteratorImpl',408);c3(12,41,CLd,Gbb,Hbb,Ibb);_.bd=function Jbb(a,b){sbb(this,a,b)};_.nc=function Kbb(a){return tbb(this,a)};_.oc=function Lbb(a){return vbb(this,a)};_.Pb=function Mbb(){this.c=tz(NE,oJd,1,0,5,1)};_.pc=function Nbb(a){return ybb(this,a,0)!=-1};_.sc=function Obb(a){wbb(this,a)};_.cd=function Pbb(a){return xbb(this,a)};_.dd=function Qbb(a){return ybb(this,a,0)};_.Wb=function Rbb(){return this.c.length==0};_.tc=function Sbb(){return new ccb(this)};_.gd=function Tbb(a){return zbb(this,a)};_.vc=function Ubb(a){return Abb(this,a)};_.Jd=function Vbb(a,b){Bbb(this,a,b)};_.hd=function Wbb(a,b){return Cbb(this,a,b)};_._b=function Xbb(){return this.c.length};_.jd=function Ybb(a){Dbb(this,a)};_.yc=function Zbb(){return Ebb(this)};_.zc=function $bb(a){return Fbb(this,a)};var xF=k4(tJd,'ArrayList',12);c3(7,1,wJd,ccb);_.gc=function dcb(a){Bhb(this,a)};_.hc=function ecb(){return _bb(this)};_.ic=function fcb(){return acb(this)};_.jc=function gcb(){bcb(this)};_.a=0;_.b=-1;var wF=k4(tJd,'ArrayList/1',7);c3(155,41,DLd,Rcb);_.pc=function Scb(a){return nq(this,a)!=-1};_.sc=function Tcb(a){var b,c,d,e;Npb(a);for(c=this.a,d=0,e=c.length;d=0};_.qc=function Ljb(a){return sg(this.b,a)};_.tc=function Mjb(){return new neb(jdb(this.b).b.tc())};_.vc=function Njb(a){return Fjb(this,a)};_._b=function Ojb(){return this.b.c.length};_.wc=function Pjb(){return new ekb(this,256)};_.yc=function Qjb(){return Ebb(this.b)};_.zc=function Rjb(a){return Fbb(this.b,a)};var wG=k4(tJd,'PriorityQueue',453);c3(214,1,{214:1},akb,bkb);_.a=0;_.b=0;var Sjb,Tjb,Ujb=0;var xG=k4(tJd,'Random',214);c3(39,1,SJd,ekb,fkb,gkb);_.qd=function hkb(){return this.a};_.rd=function ikb(){ckb(this);return this.c};_.gc=function jkb(a){ckb(this);this.d.gc(a)};_.sd=function kkb(a){return dkb(this,a)};_.a=0;_.c=0;var IG=k4(tJd,'Spliterators/IteratorSpliterator',39);c3(382,39,SJd,lkb);var zG=k4(tJd,'SortedSet/1',382);c3(625,1,{},nkb);_.ie=function okb(a){this.a.td(a)};var AG=k4(tJd,'Spliterator/OfDouble/0methodref$accept$Type',625);c3(626,1,{},pkb);_.ie=function qkb(a){this.a.td(a)};var BG=k4(tJd,'Spliterator/OfDouble/1methodref$accept$Type',626);c3(642,1,SJd);_.gc=function wkb(a){mkb(this,a)};_.qd=function ukb(){return this.d};_.rd=function vkb(){return this.e};_.d=0;_.e=0;var GG=k4(tJd,'Spliterators/BaseSpliterator',642);c3(929,642,SJd);_.gc=function ykb(a){sA(a,273)?rkb(this,kA(a,273)):rkb(this,new pkb(a))};_.sd=function zkb(a){return sA(a,273)?Cob(this,kA(a,273)):Cob(this,new nkb(a))};var CG=k4(tJd,'Spliterators/AbstractDoubleSpliterator',929);c3(446,642,SJd);var DG=k4(tJd,'Spliterators/AbstractSpliterator',446);c3(790,1,SJd);_.gc=function Fkb(a){mkb(this,a)};_.qd=function Dkb(){return this.b};_.rd=function Ekb(){return this.d-this.c};_.b=0;_.c=0;_.d=0;var FG=k4(tJd,'Spliterators/BaseArraySpliterator',790);c3(791,790,SJd,Hkb);_.gc=function Ikb(a){Bkb(this,a)};_.sd=function Jkb(a){return Ckb(this,a)};var EG=k4(tJd,'Spliterators/ArraySpliterator',791);c3(789,1,wJd,Lkb);_.gc=function Nkb(a){sA(a,273)?xjb(this,kA(a,273)):xjb(this,new yjb(a))};_.ic=function Pkb(){return Kkb(this)};_.jc=function Qkb(){Chb()};_.ie=function Mkb(a){this.b=a};_.hc=function Okb(){return this.a||(this.a=Cob(this.c,this)),this.a};_.a=false;_.b=0;var HG=k4(tJd,'Spliterators/DoubleConsumerIterator',789);c3(523,41,PLd,Ukb);_.bd=function Vkb(a,b){Ykb(a,this.a.c.length+1);sbb(this.a,a,b)};_.nc=function Wkb(a){return tbb(this.a,a)};_.oc=function Xkb(a){return vbb(this.a,a)};_.Pb=function Zkb(){this.a.c=tz(NE,oJd,1,0,5,1)};_.pc=function $kb(a){return ybb(this.a,a,0)!=-1};_.qc=function _kb(a){return sg(this.a,a)};_.sc=function alb(a){wbb(this.a,a)};_.cd=function blb(a){return Ykb(a,this.a.c.length),xbb(this.a,a)};_.dd=function clb(a){return ybb(this.a,a,0)};_.Wb=function dlb(){return this.a.c.length==0};_.tc=function elb(){return new ccb(this.a)};_.gd=function flb(a){return Ykb(a,this.a.c.length),zbb(this.a,a)};_.Jd=function glb(a,b){Bbb(this.a,a,b)};_.hd=function hlb(a,b){return Ykb(a,this.a.c.length),Cbb(this.a,a,b)};_._b=function ilb(){return this.a.c.length};_.jd=function jlb(a){Dbb(this.a,a)};_.kd=function klb(a,b){return new A9(this.a,a,b)};_.yc=function llb(){return Ebb(this.a)};_.zc=function mlb(a){return Fbb(this.a,a)};_.Ib=function nlb(){return vg(this.a)};var VG=k4(tJd,'Vector',523);c3(596,523,PLd,qlb);var JG=k4(tJd,'Stack',596);c3(254,1,{},slb);_.Ib=function tlb(){return !this.a?this.c:this.e.length==0?this.a.a:this.a.a+(''+this.e)};var KG=k4(tJd,'StringJoiner',254);c3(487,1685,{3:1,109:1,122:1,115:1},Klb,Llb);_.Pb=function Mlb(){ulb(this)};_.Tb=function Nlb(){return new Zlb(this)};_.Zb=function Olb(a,b){return Dlb(this,a,b)};_.$b=function Plb(a){return Elb(this,a)};_._b=function Qlb(){return this.c};_.c=0;var TG=k4(tJd,'TreeMap',487);c3(397,1,wJd,Tlb);_.gc=function Vlb(a){Bhb(this,a)};_.ic=function Xlb(){return Rlb(this)};_.hc=function Wlb(){return j9(this.a)};_.jc=function Ylb(){Slb(this)};var LG=k4(tJd,'TreeMap/EntryIterator',397);c3(449,668,JJd,Zlb);_.Pb=function $lb(){ulb(this.a)};var MG=k4(tJd,'TreeMap/EntrySet',449);c3(398,351,{440:1,351:1,38:1,398:1},_lb);_.b=false;var NG=k4(tJd,'TreeMap/Node',398);c3(560,1,{},amb);_.Ib=function bmb(){return 'State: mv='+this.c+' value='+this.d+' done='+this.a+' found='+this.b};_.a=false;_.b=false;_.c=false;var OG=k4(tJd,'TreeMap/State',560);c3(278,23,QLd,hmb);_.je=function imb(){return false};_.ke=function jmb(){return false};var cmb,dmb,emb,fmb;var SG=l4(tJd,'TreeMap/SubMapType',278,zE,lmb,kmb);c3(982,278,QLd,mmb);_.ke=function nmb(){return true};var PG=l4(tJd,'TreeMap/SubMapType/1',982,SG,null,null);c3(983,278,QLd,omb);_.je=function pmb(){return true};_.ke=function qmb(){return true};var QG=l4(tJd,'TreeMap/SubMapType/2',983,SG,null,null);c3(984,278,QLd,rmb);_.je=function smb(){return true};var RG=l4(tJd,'TreeMap/SubMapType/3',984,SG,null,null);var tmb;c3(212,IJd,{3:1,20:1,25:1,13:1,196:1,19:1,60:1,212:1},Bmb,Cmb);_.wc=function Jmb(){return new lkb(this)};_.nc=function Dmb(a){return vmb(this,a)};_.Pb=function Emb(){ulb(this.a)};_.pc=function Fmb(a){return lab(this.a,a)};_.tc=function Gmb(){var a;return a=new Tlb((new Zlb((new xab(this.a)).a)).b),new Eab(a)};_.vc=function Hmb(a){return Amb(this,a)};_._b=function Imb(){return this.a.c};var UG=k4(tJd,'TreeSet',212);c3(845,1,{},Lmb);_.le=function Mmb(a,b){return Kmb(this.a,a,b)};var WG=k4(RLd,'BinaryOperator/lambda$0$Type',845);c3(846,1,{},Nmb);_.le=function Omb(a,b){return U4(kA(a,21).a,kA(b,21).a)<=0?a:b};var XG=k4(RLd,'BinaryOperator/lambda$1$Type',846);c3(843,1,FJd,Pmb);_.Kb=function Qmb(a){return a};var YG=k4(RLd,'Function/lambda$0$Type',843);c3(627,1,SLd,Rmb);_.Nb=function Smb(a){return !this.a.Nb(a)};var ZG=k4(RLd,'Predicate/lambda$0$Type',627);c3(150,23,{3:1,34:1,23:1,150:1},Zmb);var Vmb,Wmb,Xmb;var $G=l4(TLd,'Collector/Characteristics',150,zE,_mb,$mb);var anb;c3(684,1,{},cnb,dnb);var _G=k4(TLd,'Collector/CollectorImpl',684);c3(1053,1,FJd,onb);_.Kb=function pnb(a){return B3(),_vb(a)?true:false};var aH=k4(TLd,'Collectors/12methodref$test$Type',1053);c3(365,1,{},qnb);_.Kd=function rnb(a,b){kA(a,13).nc(b)};var bH=k4(TLd,'Collectors/20methodref$add$Type',365);c3(367,1,{},snb);_.ne=function tnb(){return new Gbb};var cH=k4(TLd,'Collectors/21methodref$ctor$Type',367);c3(331,1,{},unb);_.ne=function vnb(){return new Jgb};var dH=k4(TLd,'Collectors/23methodref$ctor$Type',331);c3(332,1,{},wnb);_.Kd=function xnb(a,b){Ggb(kA(a,67),b)};var eH=k4(TLd,'Collectors/24methodref$add$Type',332);c3(1050,1,{},ynb);_.le=function znb(a,b){return enb(kA(a,15),kA(b,13))};var fH=k4(TLd,'Collectors/4methodref$addAll$Type',1050);c3(683,1,{},Bnb);_.le=function Cnb(a,b){return Anb(a,b)};var gH=k4(TLd,'Collectors/lambda$1$Type',683);c3(1055,1,{},Dnb);_.ne=function Enb(){return xz(pz(NE,1),oJd,1,5,[this.a])};var hH=k4(TLd,'Collectors/lambda$10$Type',1055);c3(1056,1,{},Fnb);_.Kd=function Gnb(a,b){gnb(this.a,a)};var iH=k4(TLd,'Collectors/lambda$11$Type',1056);c3(1057,1,{},Hnb);_.le=function Inb(a,b){return hnb(this.a,a,b)};var jH=k4(TLd,'Collectors/lambda$12$Type',1057);c3(1058,1,FJd,Jnb);_.Kb=function Knb(a){return lA(a)[0]};var kH=k4(TLd,'Collectors/lambda$13$Type',1058);c3(366,1,{},Lnb);_.le=function Mnb(a,b){return kA(a,13).oc(kA(b,13)),kA(a,13)};var lH=k4(TLd,'Collectors/lambda$21$Type',366);c3(333,1,{},Nnb);_.le=function Onb(a,b){return pg(kA(a,67),kA(b,67)),kA(a,67)};var mH=k4(TLd,'Collectors/lambda$25$Type',333);c3(334,1,FJd,Pnb);_.Kb=function Qnb(a){return kA(a,67)};var nH=k4(TLd,'Collectors/lambda$26$Type',334);c3(1049,1,{},Rnb);_.Kd=function Snb(a,b){inb(this.a,a,b)};var oH=k4(TLd,'Collectors/lambda$3$Type',1049);c3(1051,1,{},Tnb);_.le=function Unb(a,b){return knb(kA(a,109),kA(b,109),new ynb)};var pH=k4(TLd,'Collectors/lambda$4$Type',1051);c3(1052,1,FJd,Vnb);_.Kb=function Wnb(a){return jnb(this.a,a)};var qH=k4(TLd,'Collectors/lambda$5$Type',1052);c3(1054,1,{},Xnb);_.ne=function Ynb(){var a;return a=new Jhb,Ghb(a,(B3(),B3(),false),new Gbb),Ghb(a,(null,true),new Gbb),a};var rH=k4(TLd,'Collectors/lambda$8$Type',1054);c3(645,1,{});_.d=false;var PH=k4(TLd,'TerminatableStream',645);c3(1416,645,{607:1,1701:1},iob);var tH=k4(TLd,'DoubleStream/DoubleStreamSource',1416);c3(1417,1,{},job);_.ie=function kob(a){ufb(this.a,a)};var sH=k4(TLd,'DoubleStream/DoubleStreamSource/lambda$2$Type',1417);var NH=m4(TLd,'Stream');c3(940,446,SJd,oob);_.sd=function pob(a){while(mob(this)){if(this.a.sd(a)){return true}else{this.a=null}}return false};var vH=k4(TLd,'Stream/2',940);c3(941,1,{},qob);_.td=function rob(a){nob(this.a,a)};var uH=k4(TLd,'Stream/2/lambda$0$Type',941);c3(942,1,ULd,sob);_.fe=function tob(){Znb(this.a)};var wH=k4(TLd,'Stream/3methodref$close$Type',942);c3(943,1,ULd,uob);_.fe=function vob(){Znb(this.a)};var xH=k4(TLd,'Stream/4methodref$close$Type',943);c3(644,446,SJd,xob);_.sd=function yob(a){this.b=false;while(!this.b&&this.c.sd(new zob(this,a)));return this.b};_.b=false;var zH=k4(TLd,'Stream/FilterSpliterator',644);c3(932,1,{},zob);_.td=function Aob(a){wob(this.a,this.b,a)};var yH=k4(TLd,'Stream/FilterSpliterator/lambda$0$Type',932);c3(930,929,SJd,Dob);var BH=k4(TLd,'Stream/MapToDoubleSpliterator',930);c3(646,1,{},Eob);_.td=function Fob(a){Bob(this.a,this.b,a)};var AH=k4(TLd,'Stream/MapToDoubleSpliterator/lambda$0$Type',646);c3(643,446,SJd,Iob);_.sd=function Job(a){return Hob(this,a)};var DH=k4(TLd,'Stream/MapToObjSpliterator',643);c3(931,1,{},Kob);_.td=function Lob(a){Gob(this.a,this.b,a)};var CH=k4(TLd,'Stream/MapToObjSpliterator/lambda$0$Type',931);c3(45,645,{607:1,1701:1,1700:1},Zob);var LH=k4(TLd,'Stream/StreamSource',45);c3(936,446,SJd,cpb);_.sd=function dpb(a){while(apb(this)){if(this.a.sd(a)){return true}else{Znb(this.b);this.b=null;this.a=null}}return false};var FH=k4(TLd,'Stream/StreamSource/1',936);c3(937,1,{},epb);_.td=function fpb(a){bpb(this.a,a)};var EH=k4(TLd,'Stream/StreamSource/1/lambda$0$Type',937);c3(938,446,SJd,gpb);_.sd=function hpb(a){var b;if(!this.a){b=new Gbb;this.b.a.gc(new ipb(b));bdb();Dbb(b,this.c);this.a=new ekb(b,16)}return dkb(this.a,a)};_.a=null;var HH=k4(TLd,'Stream/StreamSource/5',938);c3(939,1,{},ipb);_.td=function jpb(a){tbb(this.a,a)};var GH=k4(TLd,'Stream/StreamSource/5/2methodref$add$Type',939);c3(933,1,{},kpb);_.td=function lpb(a){};var IH=k4(TLd,'Stream/StreamSource/lambda$0$Type',933);c3(934,1,{},mpb);_.le=function npb(a,b){return $ob(this.a,a,b)};var JH=k4(TLd,'Stream/StreamSource/lambda$3$Type',934);c3(935,1,{},opb);_.td=function ppb(a){_ob(this.b,this.a,a)};var KH=k4(TLd,'Stream/StreamSource/lambda$4$Type',935);c3(553,1,{},rpb);_.td=function spb(a){qpb(this,a)};var MH=k4(TLd,'Stream/ValueConsumer',553);c3(944,1,{},tpb);_.td=function upb(a){dob(this.a,a)};var OH=k4(TLd,'TerminatableStream/lambda$0$Type',944);var aqb=0;var cqb,dqb=0,eqb;c3(1480,1,{},kqb);var RH=k4(YLd,'Scanline',1480);var QH=m4(YLd,ZLd);c3(1450,1,{},nqb);var SH=k4($Ld,'CGraph',1450);c3(309,1,{309:1},pqb);_.b=0;_.c=0;_.d=0;_.g=0;_.i=0;_.k=pLd;var UH=k4($Ld,'CGroup',309);c3(723,1,{},tqb);var TH=k4($Ld,'CGroup/CGroupBuilder',723);c3(57,1,{57:1},uqb);_.Ib=function vqb(){if(this.j){return pA(this.j.Kb(this))}return d4(WH),WH.o+'@'+(bqb(this)>>>0).toString(16)};_.f=0;_.i=pLd;var WH=k4($Ld,'CNode',57);c3(722,1,{},Aqb);var VH=k4($Ld,'CNode/CNodeBuilder',722);var Fqb;c3(1236,1,{},Hqb);_.se=function Iqb(a,b){return 0};_.te=function Jqb(a,b){return 0};var XH=k4($Ld,aMd,1236);c3(1505,1,{},Kqb);_.pe=function Lqb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=oLd;for(d=new ccb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b=0?'b'+a+'['+fxb(this.a)+']':'b['+fxb(this.a)+']'}return 'b_'+bqb(this)};var iJ=k4(dNd,'FBendpoint',497);c3(262,131,{3:1,262:1,93:1,131:1},gxb);_.Ib=function hxb(){return fxb(this)};var jJ=k4(dNd,'FEdge',262);c3(202,131,{3:1,202:1,93:1,131:1},kxb);var kJ=k4(dNd,'FGraph',202);c3(454,329,{3:1,454:1,329:1,93:1,131:1},mxb);_.Ib=function nxb(){return this.b==null||this.b.length==0?'l['+fxb(this.a)+']':'l_'+this.b};var lJ=k4(dNd,'FLabel',454);c3(146,329,{3:1,146:1,329:1,93:1,131:1},pxb);_.Ib=function qxb(){return oxb(this)};_.b=0;var mJ=k4(dNd,'FNode',146);c3(1691,1,{});_.Ee=function vxb(a){rxb(this,a)};_.Fe=function wxb(){sxb(this)};_.d=0;var oJ=k4(fNd,'AbstractForceModel',1691);c3(568,1691,{568:1},xxb);_.De=function zxb(a,b){var c,d,e,f,g;uxb(this.f,a,b);e=Gyc(xyc(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-Ayc(a.e)/2-Ayc(b.e)/2);c=jxb(this.e,a,b);c>0?(f=-yxb(d,this.c)*c):(f=Cxb(d,this.b)*kA(nub(a,(qyb(),iyb)),21).a);Dyc(e,f/g);return e};_.Ee=function Axb(a){rxb(this,a);this.a=kA(nub(a,(qyb(),dyb)),21).a;this.c=Vpb(nA(nub(a,oyb)));this.b=Vpb(nA(nub(a,kyb)))};_.Ge=function Bxb(a){return a0&&(f-=Exb(d,this.a)*c);Dyc(e,f*this.b/g);return e};_.Ee=function Gxb(a){var b,c,d,e,f,g,h;rxb(this,a);this.b=Vpb(nA(nub(a,(qyb(),pyb))));this.c=this.b/kA(nub(a,dyb),21).a;d=a.e.c.length;f=0;e=0;for(h=new ccb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var qJ=k4(fNd,'FruchtermanReingoldModel',569);c3(748,1,uMd,Txb);_.ue=function Uxb(a){qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,hNd),''),'Force Model'),'Determines the model for force calculation.'),Mxb),(Uxc(),Oxc)),sJ),fgb((Gxc(),Exc)))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,iNd),''),'Iterations'),'The number of iterations on the force model.'),d5(300)),Qxc),GE),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,jNd),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),d5(0)),Qxc),GE),fgb(Bxc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,kNd),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),lNd),Nxc),yE),fgb(Exc))));lwc(a,kNd,hNd,Rxb);qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,mNd),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),Nxc),yE),fgb(Exc))));lwc(a,mNd,hNd,Oxb);ryb((new syb,a))};var Kxb,Lxb,Mxb,Nxb,Oxb,Pxb,Qxb,Rxb;var rJ=k4(nNd,'ForceMetaDataProvider',748);c3(387,23,{3:1,34:1,23:1,387:1},Yxb);var Vxb,Wxb;var sJ=l4(nNd,'ForceModelStrategy',387,zE,$xb,Zxb);var _xb;c3(880,1,uMd,syb);_.ue=function tyb(a){ryb(a)};var byb,cyb,dyb,eyb,fyb,gyb,hyb,iyb,jyb,kyb,lyb,myb,nyb,oyb,pyb;var uJ=k4(nNd,'ForceOptions',880);c3(881,1,{},uyb);_.Be=function vyb(){var a;return a=new Zwb,a};_.Ce=function wyb(a){};var tJ=k4(nNd,'ForceOptions/ForceFactory',881);var xyb,yyb,zyb,Ayb;c3(749,1,uMd,Jyb);_.ue=function Kyb(a){qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,BNd),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(B3(),B3(),false)),(Uxc(),Mxc)),tE),fgb((Gxc(),Dxc)))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,CNd),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),Nxc),yE),ggb(Exc,xz(pz(UT,1),jKd,163,0,[Bxc])))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,DNd),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),Eyb),Oxc),zJ),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,ENd),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),lNd),Nxc),yE),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,FNd),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),d5(jJd)),Qxc),GE),fgb(Exc))));Syb((new Tyb,a))};var Cyb,Dyb,Eyb,Fyb,Gyb,Hyb;var vJ=k4(nNd,'StressMetaDataProvider',749);c3(884,1,uMd,Tyb);_.ue=function Uyb(a){Syb(a)};var Lyb,Myb,Nyb,Oyb,Pyb,Qyb;var xJ=k4(nNd,'StressOptions',884);c3(885,1,{},Vyb);_.Be=function Wyb(){var a;return a=new Yyb,a};_.Ce=function Xyb(a){};var wJ=k4(nNd,'StressOptions/StressFactory',885);c3(959,244,GMd,Yyb);_.Ae=function Zyb(a,b){var c,d,e,f;xEc(b,HNd,1);Vpb(mA(AOc(a,(Ryb(),Pyb))))||Wwb(new Zwb,a,BEc(b,1));d=Twb(a);c=Lwb(this.a,d);for(f=c.tc();f.hc();){e=kA(f.ic(),202);ezb(this.b,e);czb(this.b)}d=Kwb(c);Swb(d);zEc(b)};var yJ=k4(INd,'StressLayoutProvider',959);c3(882,1,{},fzb);_.c=0;_.e=0;_.g=0;var BJ=k4(INd,'StressMajorization',882);c3(348,23,{3:1,34:1,23:1,348:1},lzb);var hzb,izb,jzb;var zJ=l4(INd,'StressMajorization/Dimension',348,zE,nzb,mzb);var ozb;c3(883,1,lKd,qzb);_.Fb=function szb(a){return this===a};_.Md=function tzb(){return new jfb(this)};_.Ld=function rzb(a,b){return gzb(this.a,a,b)};var AJ=k4(INd,'StressMajorization/lambda$0$Type',883);c3(985,1,{},Bzb);var EJ=k4(KNd,'ElkLayered',985);c3(986,1,{},Dzb);_.td=function Ezb(a){Czb(this.a,a)};var CJ=k4(KNd,'ElkLayered/lambda$0$Type',986);c3(987,1,{},Fzb);_.td=function Gzb(a){qub(kA(a,31),(J6b(),Q4b),(g1b(),d1b))};var DJ=k4(KNd,'ElkLayered/lambda$1$Type',987);c3(1033,1,{},Nzb);var Hzb,Izb,Jzb;var FJ=k4(KNd,'GraphConfigurator',1033);c3(958,244,GMd,Pzb);_.Ae=function Qzb(a,b){var c;c=xIb(new EIb,a);yA(AOc(a,(J6b(),h5b)))===yA((jCc(),gCc))?vzb(this.a,c,b):wzb(this.a,c,b);YIb(new aJb,c)};var GJ=k4(KNd,'LayeredLayoutProvider',958);c3(328,23,{3:1,34:1,23:1,328:1},Xzb);var Rzb,Szb,Tzb,Uzb,Vzb;var HJ=l4(KNd,'LayeredPhases',328,zE,Zzb,Yzb);var $zb;c3(1407,1,{},gAb);_.i=0;var aAb;var KJ=k4(LNd,'ComponentsToCGraphTransformer',1407);var LAb;c3(1408,1,{},hAb);_.He=function iAb(a,b){return $wnd.Math.min(a.a!=null?Vpb(a.a):a.c.i,b.a!=null?Vpb(b.a):b.c.i)};_.Ie=function jAb(a,b){return $wnd.Math.min(a.a!=null?Vpb(a.a):a.c.i,b.a!=null?Vpb(b.a):b.c.i)};var IJ=k4(LNd,'ComponentsToCGraphTransformer/1',1408);c3(80,1,{80:1});_.i=0;_.k=true;_.o=pLd;var QJ=k4(MNd,'CNode',80);c3(282,80,{282:1,80:1},kAb,lAb);_.Ib=function mAb(){return ''};var JJ=k4(LNd,'ComponentsToCGraphTransformer/CRectNode',282);c3(1391,1,{},zAb);var nAb,oAb;var NJ=k4(LNd,'OneDimensionalComponentsCompaction',1391);c3(1392,1,VJd,AAb);_.Fb=function CAb(a){return this===a};_.Kb=function BAb(a){return pAb(),B3(),kA(kA(a,48).a,80).d.e!=0?true:false};var LJ=k4(LNd,'OneDimensionalComponentsCompaction/lambda$0$Type',1392);c3(1393,1,VJd,DAb);_.Fb=function FAb(a){return this===a};_.Kb=function EAb(a){return pAb(),B3(),iBb(kA(kA(a,48).a,80).j,kA(kA(a,48).b,110))||kA(kA(a,48).a,80).d.e!=0&&iBb(kA(kA(a,48).a,80).j,kA(kA(a,48).b,110))?true:false};var MJ=k4(LNd,'OneDimensionalComponentsCompaction/lambda$1$Type',1393);c3(1410,1,{},HAb);var OJ=k4(MNd,'CGraph',1410);c3(172,1,{172:1},KAb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=pLd;var PJ=k4(MNd,'CGroup',172);c3(1409,1,{},NAb);_.He=function OAb(a,b){return $wnd.Math.max(a.a!=null?Vpb(a.a):a.c.i,b.a!=null?Vpb(b.a):b.c.i)};_.Ie=function PAb(a,b){return $wnd.Math.max(a.a!=null?Vpb(a.a):a.c.i,b.a!=null?Vpb(b.a):b.c.i)};var RJ=k4(MNd,aMd,1409);c3(1411,1,{},eBb);_.d=false;var QAb;var TJ=k4(MNd,fMd,1411);c3(1412,1,VJd,fBb);_.Fb=function hBb(a){return this===a};_.Kb=function gBb(a){return RAb(),B3(),kA(kA(a,48).a,80).d.e!=0?true:false};var SJ=k4(MNd,gMd,1412);c3(726,1,{},kBb);_.a=false;_.b=false;_.c=false;_.d=false;var UJ=k4(MNd,hMd,726);c3(1521,1,{},qBb);var ZJ=k4(NNd,iMd,1521);var jK=m4(ONd,ZLd);c3(1522,1,{341:1},uBb);_.Ne=function vBb(a){sBb(this,kA(a,524))};var WJ=k4(NNd,jMd,1522);c3(1523,1,lKd,wBb);_.Fb=function yBb(a){return this===a};_.Md=function zBb(){return new jfb(this)};_.Ld=function xBb(a,b){return C4(kA(a,282).g.c+kA(a,282).g.b/2,kA(b,282).g.c+kA(b,282).g.b/2)};var VJ=k4(NNd,kMd,1523);c3(524,1,{524:1},ABb);_.a=false;var XJ=k4(NNd,lMd,524);c3(1524,1,lKd,BBb);_.Fb=function DBb(a){return this===a};_.Md=function EBb(){return new jfb(this)};_.Ld=function CBb(a,b){return rBb(a,b)};var YJ=k4(NNd,mMd,1524);c3(102,1,{102:1},FBb,GBb);_.Fb=function HBb(a){var b;if(a==null){return false}if(_J!=mb(a)){return false}b=kA(a,102);return ejb(this.c,b.c)&&ejb(this.d,b.d)};_.Hb=function IBb(){return xcb(xz(pz(NE,1),oJd,1,5,[this.c,this.d]))};_.Ib=function JBb(){return '('+this.c+qJd+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var _J=k4(ONd,'Point',102);c3(373,23,{3:1,34:1,23:1,373:1},RBb);var KBb,LBb,MBb,NBb;var $J=l4(ONd,'Point/Quadrant',373,zE,VBb,UBb);var WBb;c3(1398,1,{},dCb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var YBb,ZBb,$Bb,_Bb,aCb;var iK=k4(ONd,'RectilinearConvexHull',1398);c3(516,1,{341:1},kCb);_.Ne=function lCb(a){jCb(this,kA(a,102))};_.b=0;var hCb;var bK=k4(ONd,'RectilinearConvexHull/MaximalElementsEventHandler',516);c3(1400,1,lKd,mCb);_.Fb=function oCb(a){return this===a};_.Md=function pCb(){return new jfb(this)};_.Ld=function nCb(a,b){return iCb(),C4(Vpb(nA(a)),Vpb(nA(b)))};var aK=k4(ONd,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1400);c3(1399,1,{341:1},rCb);_.Ne=function sCb(a){qCb(this,kA(a,102))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var cK=k4(ONd,'RectilinearConvexHull/RectangleEventHandler',1399);c3(1401,1,lKd,tCb);_.Fb=function vCb(a){return this===a};_.Md=function wCb(){return new jfb(this)};_.Ld=function uCb(a,b){return bCb(),kA(a,102).c==kA(b,102).c?C4(kA(b,102).d,kA(a,102).d):C4(kA(a,102).c,kA(b,102).c)};var dK=k4(ONd,'RectilinearConvexHull/lambda$0$Type',1401);c3(1402,1,lKd,xCb);_.Fb=function zCb(a){return this===a};_.Md=function ACb(){return new jfb(this)};_.Ld=function yCb(a,b){return bCb(),kA(a,102).c==kA(b,102).c?C4(kA(a,102).d,kA(b,102).d):C4(kA(a,102).c,kA(b,102).c)};var eK=k4(ONd,'RectilinearConvexHull/lambda$1$Type',1402);c3(1403,1,lKd,BCb);_.Fb=function DCb(a){return this===a};_.Md=function ECb(){return new jfb(this)};_.Ld=function CCb(a,b){return bCb(),kA(a,102).c==kA(b,102).c?C4(kA(b,102).d,kA(a,102).d):C4(kA(b,102).c,kA(a,102).c)};var fK=k4(ONd,'RectilinearConvexHull/lambda$2$Type',1403);c3(1404,1,lKd,FCb);_.Fb=function HCb(a){return this===a};_.Md=function ICb(){return new jfb(this)};_.Ld=function GCb(a,b){return bCb(),kA(a,102).c==kA(b,102).c?C4(kA(a,102).d,kA(b,102).d):C4(kA(b,102).c,kA(a,102).c)};var gK=k4(ONd,'RectilinearConvexHull/lambda$3$Type',1404);c3(1405,1,lKd,JCb);_.Fb=function LCb(a){return this===a};_.Md=function MCb(){return new jfb(this)};_.Ld=function KCb(a,b){return fCb(a,b)};var hK=k4(ONd,'RectilinearConvexHull/lambda$4$Type',1405);c3(1406,1,{},OCb);var kK=k4(ONd,'Scanline',1406);c3(1694,1,{});var lK=k4(PNd,'AbstractGraphPlacer',1694);c3(458,1,{458:1},ZCb);var UCb;var nK=k4(PNd,'ComponentGroup',458);c3(1076,1694,{},dDb);_.Oe=function eDb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;this.a.c=tz(NE,oJd,1,0,5,1);b.a.c=tz(NE,oJd,1,0,5,1);if(a.Wb()){b.e.a=0;b.e.b=0;return}g=kA(a.cd(0),31);lub(b,g);for(e=a.tc();e.hc();){d=kA(e.ic(),31);$Cb(this,d)}o=new Hyc;f=Vpb(nA(nub(g,(J6b(),j6b))));for(j=new ccb(this.a);j.an){v=0;w+=m+e;m=0}q=g.c;SCb(g,v+q.a,w+q.b);Cyc(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.e.a=c;b.e.b=w+m;if(Vpb(mA(nub(f,L4b)))){d=new qDb;gDb(d,a,e);for(l=a.tc();l.hc();){k=kA(l.ic(),31);vyc(Cyc(k.c),d.e)}vyc(Cyc(b.e),d.a)}RCb(b,a)};var yK=k4(PNd,'SimpleRowGraphPlacer',1074);c3(1075,1,lKd,TDb);_.Ld=function UDb(a,b){return SDb(kA(a,31),kA(b,31))};_.Fb=function VDb(a){return this===a};_.Md=function WDb(){return new jfb(this)};var xK=k4(PNd,'SimpleRowGraphPlacer/1',1075);var XDb;c3(1032,1,nMd,bEb);_.Mb=function cEb(a){var b;return b=kA(nub(kA(a,234).b,(J6b(),p5b)),74),!!b&&b.b!=0};_.Fb=function dEb(a){return this===a};_.Nb=function eEb(a){return this.Mb(a)};var zK=k4(RNd,'CompoundGraphPostprocessor/1',1032);c3(1031,1,TNd,tEb);_.Pe=function uEb(a,b){nEb(this,kA(a,31),b)};var BK=k4(RNd,'CompoundGraphPreprocessor',1031);c3(400,1,{400:1},vEb);_.c=false;var AK=k4(RNd,'CompoundGraphPreprocessor/ExternalPort',400);c3(234,1,{234:1},yEb);_.Ib=function zEb(){return Ss(this.c)+':'+OEb(this.b)};var DK=k4(RNd,'CrossHierarchyEdge',234);c3(687,1,lKd,BEb);_.Ld=function CEb(a,b){return AEb(this,kA(a,234),kA(b,234))};_.Fb=function DEb(a){return this===a};_.Md=function FEb(){return new jfb(this)};var CK=k4(RNd,'CrossHierarchyEdgeComparator',687);c3(279,131,{3:1,279:1,93:1,131:1});_.o=0;var MK=k4(UNd,'LGraphElement',279);c3(14,279,{3:1,14:1,279:1,93:1,131:1},PEb);_.Ib=function QEb(){return OEb(this)};var EK=k4(UNd,'LEdge',14);c3(31,279,{3:1,20:1,31:1,279:1,93:1,131:1},SEb);_.sc=function TEb(a){i5(this,a)};_.tc=function UEb(){return new ccb(this.b)};_.Ib=function VEb(){if(this.b.c.length==0){return 'G-unlayered'+vg(this.a)}else if(this.a.c.length==0){return 'G-layered'+vg(this.b)}return 'G[layerless'+vg(this.a)+', layers'+vg(this.b)+']'};var NK=k4(UNd,'LGraph',31);c3(591,1,{});_.Qe=function WEb(){return this.e.k};_.xe=function XEb(a){return nub(this.e,a)};_.Re=function YEb(){return this.e.n};_.Se=function ZEb(){return this.e.o};_.ye=function $Eb(a){return oub(this.e,a)};_.Te=function _Eb(a){this.e.k.a=a.a;this.e.k.b=a.b};_.Ue=function aFb(a){this.e.n.a=a.a;this.e.n.b=a.b};_.Ve=function bFb(a){this.e.o=a};var FK=k4(UNd,'LGraphAdapters/AbstractLShapeAdapter',591);c3(520,1,{741:1},cFb);_.We=function dFb(){var a,b;if(!this.b){this.b=Tr(this.a.b.c.length);for(b=new ccb(this.a.b);b.a0&&jGb(b.charCodeAt(c-1),YNd)){--c}if(g '+this.a+' '+Ss(this.c)};_.a=0;_.b=0;_.d=0;var tN=k4(cOd,'SplineSelfLoopRouter/LoopPadding',188);c3(1294,1,nMd,LTb);_.Mb=function MTb(a){return KTb(this,kA(a,188))};_.Fb=function NTb(a){return this===a};_.Nb=function OTb(a){return this.Mb(a)};_.a=0;_.c=0;var qN=k4(cOd,'SplineSelfLoopRouter/LoopPadding/EnclosingPredicate',1294);c3(1293,1,lKd,QTb);_.Ld=function RTb(a,b){return PTb(kA(a,188),kA(b,188))};_.Fb=function STb(a){return this===a};_.Md=function TTb(){return new jfb(this)};var rN=k4(cOd,'SplineSelfLoopRouter/LoopPadding/MarginComparator',1293);c3(415,1,nMd,UTb);_.Mb=function VTb(a){return kA(a,188).c==this.a};_.Fb=function WTb(a){return this===a};_.Nb=function XTb(a){return this.Mb(a)};var sN=k4(cOd,'SplineSelfLoopRouter/LoopPadding/PortSidePredicate',415);c3(414,1,{414:1},YTb);_.c=0;_.d=0;_.e=0;var vN=k4(cOd,'SplineSelfLoopRouter/SelfLoopEdge',414);c3(1292,1,lKd,$Tb);_.Ld=function _Tb(a,b){return ZTb(kA(a,414),kA(b,414))};_.Fb=function aUb(a){return this===a};_.Md=function bUb(){return new jfb(this)};var uN=k4(cOd,'SplineSelfLoopRouter/SelfLoopEdge/StepSizeComparator',1292);c3(1451,715,{},kUb);_.qe=function lUb(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Gbb;Sob(Pob(new Zob(null,new ekb(this.c.a.b,16)),new iVb),new kVb(this,b));orb(this,new mVb);wbb(b,new sUb);b.c=tz(NE,oJd,1,0,5,1);Sob(Pob(new Zob(null,new ekb(this.c.a.b,16)),new uUb),new wUb(b));orb(this,new yUb);wbb(b,new CUb);b.c=tz(NE,oJd,1,0,5,1);c=rjb(hob(Uob(new Zob(null,new ekb(this.c.a.b,16)),new EUb(this))),new GUb);Sob(new Zob(null,new ekb(this.c.a.a,16)),new IUb(c,b));orb(this,new KUb);wbb(b,new OUb);b.c=tz(NE,oJd,1,0,5,1);break;case 3:d=new Gbb;orb(this,new mUb);e=rjb(hob(Uob(new Zob(null,new ekb(this.c.a.b,16)),new qUb(this))),new QUb);Sob(Pob(new Zob(null,new ekb(this.c.a.b,16)),new $Ub),new aVb(e,d));orb(this,new cVb);wbb(d,new gVb);d.c=tz(NE,oJd,1,0,5,1);break;default:throw x2(new Muc);}};_.b=0;var VN=k4(oOd,'EdgeAwareScanlineConstraintCalculation',1451);c3(1452,1,nMd,mUb);_.Fb=function oUb(a){return this===a};_.Nb=function pUb(a){return this.Mb(a)};_.Mb=function nUb(a){return sA(kA(a,57).g,153)};var xN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1452);c3(1453,1,{},qUb);_.oe=function rUb(a){return eUb(this.a,a)};var yN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1453);c3(1464,1,{},sUb);_.td=function tUb(a){kA(a,340).fe()};var zN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1464);c3(1465,1,SLd,uUb);_.Nb=function vUb(a){return sA(kA(a,57).g,8)};var AN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1465);c3(1467,1,{},wUb);_.td=function xUb(a){fUb(this.a,a)};var BN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1467);c3(1468,1,nMd,yUb);_.Fb=function AUb(a){return this===a};_.Nb=function BUb(a){return this.Mb(a)};_.Mb=function zUb(a){return sA(kA(a,57).g,8)};var CN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1468);c3(1469,1,{},CUb);_.td=function DUb(a){kA(a,340).fe()};var DN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1469);c3(1470,1,{},EUb);_.oe=function FUb(a){return gUb(this.a,a)};var EN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1470);c3(1471,1,{},GUb);_.me=function HUb(){return 0};var FN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1471);c3(1473,1,{},IUb);_.td=function JUb(a){hUb(this.a,this.b,a)};_.a=0;var GN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1473);c3(1474,1,nMd,KUb);_.Fb=function MUb(a){return this===a};_.Nb=function NUb(a){return this.Mb(a)};_.Mb=function LUb(a){return true};var HN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1474);c3(1475,1,{},OUb);_.td=function PUb(a){kA(a,340).fe()};var IN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1475);c3(1454,1,{},QUb);_.me=function RUb(){return 0};var JN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1454);c3(1456,1,ULd,SUb);_.fe=function TUb(){dUb(this.b,this.a,-1)};_.a=0;var KN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1456);c3(1461,1,ULd,UUb);_.fe=function VUb(){dUb(this.a,this.b,-1)};_.b=0;var LN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1461);c3(1466,1,ULd,WUb);_.fe=function XUb(){dUb(this.b,this.a,-1)};_.a=0;var MN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1466);c3(1472,1,ULd,YUb);_.fe=function ZUb(){cUb(this.a,this.b,-1)};_.b=0;var NN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1472);c3(1455,1,SLd,$Ub);_.Nb=function _Ub(a){return sA(kA(a,57).g,8)};var ON=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1455);c3(1457,1,{},aVb);_.td=function bVb(a){iUb(this.a,this.b,a)};_.a=0;var PN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1457);c3(1458,1,nMd,cVb);_.Fb=function eVb(a){return this===a};_.Nb=function fVb(a){return this.Mb(a)};_.Mb=function dVb(a){return true};var QN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1458);c3(1459,1,{},gVb);_.td=function hVb(a){kA(a,340).fe()};var RN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1459);c3(1460,1,SLd,iVb);_.Nb=function jVb(a){return sA(kA(a,57).g,153)};var SN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1460);c3(1462,1,{},kVb);_.td=function lVb(a){jUb(this.a,this.b,a)};var TN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1462);c3(1463,1,nMd,mVb);_.Fb=function oVb(a){return this===a};_.Nb=function pVb(a){return this.Mb(a)};_.Mb=function nVb(a){return sA(kA(a,57).g,153)};var UN=k4(oOd,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1463);c3(1232,1,TNd,tVb);_.Pe=function yVb(a,b){sVb(this,kA(a,31),b)};var qVb;var ZN=k4(oOd,'HorizontalGraphCompactor',1232);c3(1233,1,{},zVb);_.se=function AVb(a,b){var c,d,e;if(yA(nub(this.a.a,(J6b(),a5b)))===yA((DBc(),BBc))){if(sA(a.g,153)&&sA(b.g,8)||sA(b.g,153)&&sA(a.g,8)){return Vpb(mA(nub(this.a.a,e5b)))?0:10}}if(wVb(a,b)){return 0}c=uVb(a);d=uVb(b);if(!!c&&c.j==(RGb(),MGb)||!!d&&d.j==(RGb(),MGb)){return 0}e=kA(nub(this.a.a,(E2b(),v2b)),266);return h8b(e,c?c.j:(RGb(),OGb),d?d.j:(RGb(),OGb))};_.te=function BVb(a,b){var c,d,e;if(wVb(a,b)){return 1}c=uVb(a);d=uVb(b);e=kA(nub(this.a.a,(E2b(),v2b)),266);return k8b(e,c?c.j:(RGb(),OGb),d?d.j:(RGb(),OGb))};var WN=k4(oOd,'HorizontalGraphCompactor/1',1233);c3(1234,1,{},CVb);_.re=function DVb(a,b){return rVb(),a.a.i==0};var XN=k4(oOd,'HorizontalGraphCompactor/lambda$0$Type',1234);c3(1235,1,{},EVb);_.re=function FVb(a,b){return xVb(this.a,a,b)};var YN=k4(oOd,'HorizontalGraphCompactor/lambda$1$Type',1235);c3(1422,1,{},ZVb);var GVb,HVb;var xO=k4(oOd,'LGraphToCGraphTransformer',1422);c3(1430,1,SLd,cWb);_.Nb=function dWb(a){return a!=null};var $N=k4(oOd,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1430);c3(1423,1,FJd,eWb);_.Kb=function fWb(a){return IVb(),f3(nub(kA(kA(a,57).g,8),(E2b(),i2b)))};var _N=k4(oOd,'LGraphToCGraphTransformer/lambda$0$Type',1423);c3(1424,1,FJd,gWb);_.Kb=function hWb(a){return IVb(),eXb(kA(kA(a,57).g,153))};var aO=k4(oOd,'LGraphToCGraphTransformer/lambda$1$Type',1424);c3(1435,1,SLd,iWb);_.Nb=function jWb(a){return IVb(),sA(kA(a,57).g,153)};var bO=k4(oOd,'LGraphToCGraphTransformer/lambda$10$Type',1435);c3(1439,1,{},kWb);_.td=function lWb(a){var b,c;IVb();b=a.d.c-a.e.c;c=kA(a.g,153);wbb(c.b,new GWb(b));wbb(c.c,new IWb(b));i5(c.i,new KWb(b))};var cO=k4(oOd,'LGraphToCGraphTransformer/lambda$11$Type',1439);c3(1440,1,FJd,mWb);_.Kb=function nWb(a){return IVb(),new Zob(null,new fkb(kl(zGb(kA(a,8)))))};var dO=k4(oOd,'LGraphToCGraphTransformer/lambda$12$Type',1440);c3(1441,1,SLd,oWb);_.Nb=function pWb(a){return IVb(),JEb(kA(a,14))};var eO=k4(oOd,'LGraphToCGraphTransformer/lambda$13$Type',1441);c3(1442,1,{},qWb);_.td=function rWb(a){RVb(this.a,a)};var fO=k4(oOd,'LGraphToCGraphTransformer/lambda$14$Type',1442);c3(1443,1,FJd,sWb);_.Kb=function tWb(a){return IVb(),new Zob(null,new ekb(kA(a,26).a,16))};var gO=k4(oOd,'LGraphToCGraphTransformer/lambda$15$Type',1443);c3(1444,1,FJd,uWb);_.Kb=function vWb(a){return IVb(),new Zob(null,new fkb(kl(zGb(kA(a,8)))))};var hO=k4(oOd,'LGraphToCGraphTransformer/lambda$16$Type',1444);c3(1445,1,FJd,wWb);_.Kb=function xWb(a){return IVb(),kA(nub(kA(a,14),(E2b(),z2b)),15)};var iO=k4(oOd,'LGraphToCGraphTransformer/lambda$17$Type',1445);c3(1446,1,SLd,yWb);_.Nb=function zWb(a){return IVb(),!!kA(a,15)&&!kA(a,15).Wb()};var jO=k4(oOd,'LGraphToCGraphTransformer/lambda$18$Type',1446);c3(1447,1,{},AWb);_.td=function BWb(a){KVb(this.a,kA(a,15))};var kO=k4(oOd,'LGraphToCGraphTransformer/lambda$19$Type',1447);c3(1426,1,{},CWb);_.td=function DWb(a){SVb(this.a,a)};var lO=k4(oOd,'LGraphToCGraphTransformer/lambda$2$Type',1426);c3(1425,1,{},EWb);_.td=function FWb(a){TVb(this.a,this.b,a)};var mO=k4(oOd,'LGraphToCGraphTransformer/lambda$20$Type',1425);c3(1436,1,{},GWb);_.td=function HWb(a){$Vb(this.a,a)};_.a=0;var nO=k4(oOd,'LGraphToCGraphTransformer/lambda$21$Type',1436);c3(1437,1,{},IWb);_.td=function JWb(a){_Vb(this.a,a)};_.a=0;var oO=k4(oOd,'LGraphToCGraphTransformer/lambda$22$Type',1437);c3(1438,1,{},KWb);_.td=function LWb(a){aWb(this.a,a)};_.a=0;var pO=k4(oOd,'LGraphToCGraphTransformer/lambda$23$Type',1438);c3(1427,1,FJd,MWb);_.Kb=function NWb(a){return IVb(),new Zob(null,new ekb(kA(a,26).a,16))};var qO=k4(oOd,'LGraphToCGraphTransformer/lambda$3$Type',1427);c3(1428,1,FJd,OWb);_.Kb=function PWb(a){return IVb(),new Zob(null,new fkb(kl(zGb(kA(a,8)))))};var rO=k4(oOd,'LGraphToCGraphTransformer/lambda$4$Type',1428);c3(1429,1,FJd,QWb);_.Kb=function RWb(a){return IVb(),kA(nub(kA(a,14),(E2b(),z2b)),15)};var sO=k4(oOd,'LGraphToCGraphTransformer/lambda$5$Type',1429);c3(1431,1,{},SWb);_.td=function TWb(a){bWb(this.a,a)};var tO=k4(oOd,'LGraphToCGraphTransformer/lambda$6$Type',1431);c3(1432,1,{},UWb);_.td=function VWb(a){UVb(this.a,this.b,a)};var uO=k4(oOd,'LGraphToCGraphTransformer/lambda$7$Type',1432);c3(1433,1,SLd,WWb);_.Nb=function XWb(a){return IVb(),sA(kA(a,57).g,8)};var vO=k4(oOd,'LGraphToCGraphTransformer/lambda$8$Type',1433);c3(1434,1,{},YWb);_.td=function ZWb(a){var b;IVb();b=kA(a.g,8);b.k.a=a.d.c+b.d.b};var wO=k4(oOd,'LGraphToCGraphTransformer/lambda$9$Type',1434);c3(1421,1,{},bXb);_.pe=function cXb(a){var b,c,d,e,f;this.a=a;this.d=new NZb;this.c=tz(aP,oJd,113,this.a.a.a.c.length,0,1);this.b=0;for(c=new ccb(this.a.a.a);c.ae-g?0:e-g;m<=x5(b.f-1,e+g);m++){p=r/(m+1);q=0;k=1;f=new Gbb;s=pLd;l=0;h=0;o=i[0];if(m==0){s=r;h=(b.g==null&&(b.g=ZYb(b,new iZb)),Vpb(b.g))}else{while(k=p){tbb(f,d5(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};_.tf=function tZb(){return false};var VO=k4(sOd,'MSDCutIndexHeuristic',714);c3(1279,1,TNd,yZb);_.Pe=function zZb(a,b){vZb(kA(a,31),b)};var WO=k4(sOd,'SingleEdgeGraphWrapper',1279);c3(189,1,{189:1},BZb);_.Ib=function CZb(){return 'NEdge[id='+this.b+' w='+this.g+' d='+this.a+']'};_.a=1;_.b=0;_.c=0;_.f=false;_.g=0;var YO=k4(tOd,'NEdge',189);c3(162,1,{},IZb);var XO=k4(tOd,'NEdge/NEdgeBuilder',162);c3(592,1,{},NZb);var ZO=k4(tOd,'NGraph',592);c3(113,1,{113:1},PZb);_.c=-1;_.d=0;_.e=0;_.i=-1;_.j=false;var aP=k4(tOd,'NNode',113);c3(717,1,ELd,SZb);_.sc=function ZZb(a){i5(this,a)};_.uc=function e$b(){return this.xc()};_.jd=function j$b(a){Vib(this,a)};_.wc=function k$b(){return new ekb(this,16)};_.xc=function l$b(){return new Zob(null,this.wc())};_.bd=function TZb(a,b){++this.b;sbb(this.a,a,b)};_.nc=function UZb(a){return QZb(this,a)};_.oc=function VZb(a){++this.b;return vbb(this.a,a)};_.Pb=function WZb(){++this.b;this.a.c=tz(NE,oJd,1,0,5,1)};_.pc=function XZb(a){return ybb(this.a,a,0)!=-1};_.qc=function YZb(a){return sg(this.a,a)};_.cd=function $Zb(a){return xbb(this.a,a)};_.dd=function _Zb(a){return ybb(this.a,a,0)};_.Wb=function a$b(){return this.a.c.length==0};_.tc=function b$b(){return po(new ccb(this.a))};_.ed=function c$b(){throw x2(new U6)};_.fd=function d$b(a){throw x2(new U6)};_.gd=function f$b(a){++this.b;return zbb(this.a,a)};_.vc=function g$b(a){return RZb(this,a)};_.hd=function h$b(a,b){++this.b;return Cbb(this.a,a,b)};_._b=function i$b(){return this.a.c.length};_.kd=function m$b(a,b){return new A9(this.a,a,b)};_.yc=function n$b(){return Ebb(this.a)};_.zc=function o$b(a){return Fbb(this.a,a)};_.b=0;var $O=k4(tOd,'NNode/ChangeAwareArrayList',717);c3(251,1,{},r$b);var _O=k4(tOd,'NNode/NNodeBuilder',251);c3(1482,1,{},M$b);_.a=false;_.f=jJd;_.j=0;var bP=k4(tOd,'NetworkSimplex',1482);c3(276,23,{3:1,34:1,23:1,276:1},U$b);var O$b,P$b,Q$b,R$b,S$b;var cP=l4(uOd,'CenterEdgeLabelPlacementStrategy',276,zE,W$b,V$b);var X$b;c3(386,23,{3:1,34:1,23:1,386:1},a_b);var Z$b,$$b;var dP=l4(uOd,'ConstraintCalculationStrategy',386,zE,c_b,b_b);var d_b;c3(290,23,{3:1,34:1,23:1,290:1},m_b);var f_b,g_b,h_b,i_b,j_b,k_b;var eP=l4(uOd,'ContentAlignment',290,zE,o_b,n_b);var p_b;c3(317,23,{3:1,34:1,23:1,317:1,285:1,286:1},v_b);_.hf=function x_b(){return u_b(this)};_.uf=function w_b(){return u_b(this)};var r_b,s_b;var fP=l4(uOd,'CrossingMinimizationStrategy',317,zE,z_b,y_b);var A_b;c3(319,23,{3:1,34:1,23:1,319:1},G_b);var C_b,D_b,E_b;var gP=l4(uOd,'CuttingStrategy',319,zE,I_b,H_b);var J_b;c3(384,23,{3:1,34:1,23:1,384:1,285:1,286:1},Q_b);_.hf=function S_b(){return P_b(this)};_.uf=function R_b(){return P_b(this)};var L_b,M_b,N_b;var hP=l4(uOd,'CycleBreakingStrategy',384,zE,U_b,T_b);var V_b;c3(406,23,{3:1,34:1,23:1,406:1},__b);var X_b,Y_b,Z_b;var iP=l4(uOd,'EdgeConstraint',406,zE,b0b,a0b);var c0b;c3(241,23,{3:1,34:1,23:1,241:1},m0b);var e0b,f0b,g0b,h0b,i0b,j0b;var jP=l4(uOd,'EdgeLabelSideSelection',241,zE,o0b,n0b);var p0b;c3(255,23,{3:1,34:1,23:1,255:1},y0b);var r0b,s0b,t0b,u0b,v0b,w0b;var kP=l4(uOd,'FixedAlignment',255,zE,A0b,z0b);var B0b;c3(256,23,{3:1,34:1,23:1,256:1},K0b);var D0b,E0b,F0b,G0b,H0b,I0b;var lP=l4(uOd,'GraphCompactionStrategy',256,zE,M0b,L0b);var N0b;c3(233,23,{3:1,34:1,23:1,233:1},$0b);var P0b,Q0b,R0b,S0b,T0b,U0b,V0b,W0b,X0b,Y0b;var mP=l4(uOd,'GraphProperties',233,zE,a1b,_0b);var b1b;c3(318,23,{3:1,34:1,23:1,318:1},h1b);var d1b,e1b,f1b;var nP=l4(uOd,'GreedySwitchType',318,zE,j1b,i1b);var k1b;c3(280,23,{3:1,34:1,23:1,280:1},q1b);var m1b,n1b,o1b;var oP=l4(uOd,'InLayerConstraint',280,zE,s1b,r1b);var t1b;c3(383,23,{3:1,34:1,23:1,383:1},y1b);var v1b,w1b;var pP=l4(uOd,'InteractiveReferencePoint',383,zE,A1b,z1b);var B1b;var D1b,E1b,F1b,G1b,H1b,I1b,J1b,K1b,L1b,M1b,N1b,O1b,P1b,Q1b,R1b,S1b,T1b,U1b,V1b,W1b,X1b,Y1b,Z1b,$1b,_1b,a2b,b2b,c2b,d2b,e2b,f2b,g2b,h2b,i2b,j2b,k2b,l2b,m2b,n2b,o2b,p2b,q2b,r2b,s2b,t2b,u2b,v2b,w2b,x2b,y2b,z2b,A2b,B2b,C2b,D2b;c3(178,23,{3:1,34:1,23:1,178:1},L2b);var F2b,G2b,H2b,I2b,J2b;var qP=l4(uOd,'LayerConstraint',178,zE,N2b,M2b);var O2b;c3(747,1,uMd,G4b);_.ue=function H4b(a){qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,EOd),''),'Content Alignment'),'Specifies how the content of compound nodes is to be aligned, e.g. top-left.'),W2b),(Uxc(),Pxc)),eP),fgb((Gxc(),Exc))),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.contentAlignment']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,FOd),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(B3(),B3(),false)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.feedBackEdges']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,GOd),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),u3b),Oxc),pP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.interactiveReferencePoint']))));lwc(a,GOd,MOd,w3b);lwc(a,GOd,VOd,v3b);qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,HOd),''),'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.'),(null,false)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.mergeEdges']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,IOd),''),'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.'),(null,true)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.mergeHierarchyEdges']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,JOd),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),d5(7)),Qxc),GE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.thoroughness']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,KOd),''),'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.'),(null,false)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.unnecessaryBendpoints']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,LOd),''),'North or South Port'),'Specifies that this port can either be placed on the north side of a node or on the south side (if port constraints permit)'),(null,false)),Mxc),tE),fgb(Fxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.northOrSouthPort']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,MOd),'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).'),d3b),Oxc),hP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.cycleBreaking']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,NOd),GPd),'Node Layering Strategy'),'Strategy for node layering.'),J3b),Oxc),uP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.nodeLayering']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,OOd),GPd),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),A3b),Oxc),qP),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.layerConstraint']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,POd),GPd),'Wide Nodes on Multiple Layers'),'Strategy to distribute wide nodes over multiple layers.'),L3b),Oxc),CP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.wideNodesOnMultipleLayers']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,QOd),HPd),'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."),d5(4)),Qxc),GE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.minWidthUpperBoundOnWidth']))));lwc(a,QOd,NOd,C3b);qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,ROd),HPd),'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."),d5(2)),Qxc),GE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.minWidthUpperLayerEstimationScalingFactor']))));lwc(a,ROd,NOd,E3b);qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,SOd),IPd),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),H3b),Oxc),xP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.nodePromotion']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,TOd),IPd),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),d5(0)),Qxc),GE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.nodePromotionBoundary']))));lwc(a,TOd,SOd,null);qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,UOd),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),d5(jJd)),Qxc),GE),fgb(Exc))));lwc(a,UOd,NOd,y3b);qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,VOd),JPd),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),b3b),Oxc),fP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.crossMin']))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,WOd),JPd),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),Nxc),yE),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,XOd),JPd),'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."),(null,false)),Mxc),tE),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,YOd),KPd),'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."),d5(40)),Qxc),GE),fgb(Exc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,ZOd),KPd),'Greedy Switch Crossing Minimization'),'Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular layer sweep as a post-processor.'),Z2b),Oxc),nP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.greedySwitch']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,$Od),LPd),'Node Placement Strategy'),'Strategy for node placement.'),b4b),Oxc),wP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.nodePlace']))));qwc(a,new ixc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,_Od),LPd),'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."),Mxc),tE),fgb(Exc))));lwc(a,_Od,$Od,V3b);qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,aPd),MPd),'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."),P3b),Oxc),wR),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.nodeplace.compactionStrategy']))));lwc(a,aPd,$Od,Q3b);qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,bPd),MPd),'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.'),S3b),Oxc),kP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.fixedAlignment']))));lwc(a,bPd,$Od,T3b);qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,cPd),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),Nxc),yE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.linearSegmentsDeflectionDampening']))));lwc(a,cPd,$Od,X3b);qwc(a,new ixc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,dPd),'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."),Oxc),vP),fgb(Dxc))));lwc(a,dPd,$Od,_3b);qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,ePd),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),$3b),Oxc),vP),fgb(Exc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,fPd),NPd),'Spline Self-Loop Placement'),null),j3b),Oxc),zP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.splines.selfLoopPlacement']))));lwc(a,fPd,OPd,k3b);qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,gPd),NPd),'Sloppy Spline Routing'),'Use less spline control points at the start and end of an edge. Might lead to crossings edge/node overlap.'),(null,true)),Mxc),tE),fgb(Exc))));lwc(a,gPd,OPd,o3b);qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,hPd),NPd),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.4),Nxc),yE),fgb(Exc))));lwc(a,hPd,OPd,m3b);lwc(a,hPd,gPd,(null,true));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,iPd),PPd),'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),Nxc),yE),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,jPd),PPd),'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),Nxc),yE),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,kPd),PPd),'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),Nxc),yE),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,lPd),QPd),'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.'),d5(0)),Qxc),GE),fgb(Bxc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,mPd),QPd),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),d5(0)),Qxc),GE),fgb(Bxc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,nPd),QPd),'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.'),d5(0)),Qxc),GE),fgb(Bxc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,oPd),'compaction'),IMd),'Tries to further compact components (disconnected sub-graphs).'),(null,false)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.components.compact']))));lwc(a,oPd,uNd,(null,true));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,pPd),RPd),'Post Compaction Strategy'),SPd),U2b),Oxc),lP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.postCompaction']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,qPd),RPd),'Post Compaction Constraint Calculation'),SPd),S2b),Oxc),dP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.postCompaction.constraints']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,rPd),TPd),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),(null,false)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.highDegreeNode.treatment']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,sPd),TPd),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),d5(16)),Qxc),GE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.highDegreeNode.threshold']))));lwc(a,sPd,rPd,(null,true));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,tPd),TPd),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),d5(5)),Qxc),GE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.highDegreeNode.treeHeight']))));lwc(a,tPd,rPd,(null,true));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,uPd),UPd),'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'."),E4b),Oxc),DP),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,vPd),UPd),'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),Nxc),yE),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,wPd),UPd),'Correction factor for the 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 simplay multiplied with the 'aspect ratio' layout option."),1),Nxc),yE),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,xPd),VPd),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),t4b),Oxc),gP),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,yPd),VPd),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Rxc),mG),fgb(Exc))));lwc(a,yPd,xPd,o4b);qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,zPd),'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.'),q4b),Qxc),GE),fgb(Exc))));lwc(a,zPd,xPd,r4b);qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,APd),'wrapping.singleEdge.validify'),'Path-Like Validify Strategy'),'When wrapping path-like graphs, the graph must not be split between any pair of layers. The validify strategy makes sure every computed split point is allowed.'),B4b),Oxc),BP),fgb(Exc))));lwc(a,APd,uPd,C4b);qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,BPd),WPd),'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.'),(null,true)),Mxc),tE),fgb(Exc))));lwc(a,BPd,uPd,x4b);qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,CPd),WPd),'Distance Penalty When Improving Cuts'),null),2),Nxc),yE),fgb(Exc))));lwc(a,CPd,uPd,v4b);lwc(a,CPd,BPd,(null,true));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,DPd),WPd),'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.'),(null,true)),Mxc),tE),fgb(Exc))));lwc(a,DPd,uPd,z4b);qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,EPd),XPd),'Edge Label Side Selection'),'Method to decide on edge label sides.'),h3b),Oxc),jP),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.klay.layered.edgeLabelSideSelection']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,FPd),XPd),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),f3b),Oxc),cP),ggb(Exc,xz(pz(UT,1),jKd,163,0,[Cxc]))),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.edgeLabelPlacementStrategy']))));K6b((new L6b,a))};var Q2b,R2b,S2b,T2b,U2b,V2b,W2b,X2b,Y2b,Z2b,$2b,_2b,a3b,b3b,c3b,d3b,e3b,f3b,g3b,h3b,i3b,j3b,k3b,l3b,m3b,n3b,o3b,p3b,q3b,r3b,s3b,t3b,u3b,v3b,w3b,x3b,y3b,z3b,A3b,B3b,C3b,D3b,E3b,F3b,G3b,H3b,I3b,J3b,K3b,L3b,M3b,N3b,O3b,P3b,Q3b,R3b,S3b,T3b,U3b,V3b,W3b,X3b,Y3b,Z3b,$3b,_3b,a4b,b4b,c4b,d4b,e4b,f4b,g4b,h4b,i4b,j4b,k4b,l4b,m4b,n4b,o4b,p4b,q4b,r4b,s4b,t4b,u4b,v4b,w4b,x4b,y4b,z4b,A4b,B4b,C4b,D4b,E4b;var rP=k4(uOd,'LayeredMetaDataProvider',747);c3(878,1,uMd,L6b);_.ue=function M6b(a){K6b(a)};var I4b,J4b,K4b,L4b,M4b,N4b,O4b,P4b,Q4b,R4b,S4b,T4b,U4b,V4b,W4b,X4b,Y4b,Z4b,$4b,_4b,a5b,b5b,c5b,d5b,e5b,f5b,g5b,h5b,i5b,j5b,k5b,l5b,m5b,n5b,o5b,p5b,q5b,r5b,s5b,t5b,u5b,v5b,w5b,x5b,y5b,z5b,A5b,B5b,C5b,D5b,E5b,F5b,G5b,H5b,I5b,J5b,K5b,L5b,M5b,N5b,O5b,P5b,Q5b,R5b,S5b,T5b,U5b,V5b,W5b,X5b,Y5b,Z5b,$5b,_5b,a6b,b6b,c6b,d6b,e6b,f6b,g6b,h6b,i6b,j6b,k6b,l6b,m6b,n6b,o6b,p6b,q6b,r6b,s6b,t6b,u6b,v6b,w6b,x6b,y6b,z6b,A6b,B6b,C6b,D6b,E6b,F6b,G6b,H6b,I6b;var tP=k4(uOd,'LayeredOptions',878);c3(879,1,{},N6b);_.Be=function O6b(){var a;return a=new Pzb,a};_.Ce=function P6b(a){};var sP=k4(uOd,'LayeredOptions/LayeredFactory',879);c3(291,23,{3:1,34:1,23:1,291:1,285:1,286:1},Y6b);_.hf=function $6b(){return X6b(this)};_.uf=function Z6b(){return X6b(this)};var Q6b,R6b,S6b,T6b,U6b,V6b;var uP=l4(uOd,'LayeringStrategy',291,zE,a7b,_6b);var b7b;c3(179,23,{3:1,34:1,23:1,179:1},j7b);var d7b,e7b,f7b,g7b;var vP=l4(uOd,'NodeFlexibility',179,zE,m7b,l7b);var n7b;c3(292,23,{3:1,34:1,23:1,292:1,285:1,286:1},w7b);_.hf=function y7b(){return v7b(this)};_.uf=function x7b(){return v7b(this)};var p7b,q7b,r7b,s7b,t7b;var wP=l4(uOd,'NodePlacementStrategy',292,zE,A7b,z7b);var B7b;c3(240,23,{3:1,34:1,23:1,240:1},M7b);var D7b,E7b,F7b,G7b,H7b,I7b,J7b,K7b;var xP=l4(uOd,'NodePromotionStrategy',240,zE,O7b,N7b);var P7b;c3(410,23,{3:1,34:1,23:1,410:1},V7b);var R7b,S7b,T7b;var yP=l4(uOd,'PortType',410,zE,X7b,W7b);var Y7b;c3(345,23,{3:1,34:1,23:1,345:1},c8b);var $7b,_7b,a8b;var zP=l4(uOd,'SelfLoopPlacement',345,zE,e8b,d8b);var f8b;c3(266,1,{266:1},r8b);var AP=k4(uOd,'Spacings',266);c3(347,23,{3:1,34:1,23:1,347:1},x8b);var t8b,u8b,v8b;var BP=l4(uOd,'ValidifyStrategy',347,zE,z8b,y8b);var A8b;c3(385,23,{3:1,34:1,23:1,385:1},G8b);var C8b,D8b,E8b;var CP=l4(uOd,'WideNodesStrategy',385,zE,I8b,H8b);var J8b;c3(346,23,{3:1,34:1,23:1,346:1},P8b);var L8b,M8b,N8b;var DP=l4(uOd,'WrappingStrategy',346,zE,R8b,Q8b);var S8b;c3(1296,1,NQd,Y8b);_.vf=function Z8b(a){return kA(a,31),U8b};_.Pe=function $8b(a,b){X8b(this,kA(a,31),b)};var U8b;var EP=k4(OQd,'DepthFirstCycleBreaker',1296);c3(1295,1,NQd,d9b);_.vf=function e9b(a){return kA(a,31),_8b};_.Pe=function f9b(a,b){b9b(this,kA(a,31),b)};var _8b;var FP=k4(OQd,'GreedyCycleBreaker',1295);c3(1297,1,NQd,k9b);_.vf=function l9b(a){return kA(a,31),g9b};_.Pe=function m9b(a,b){j9b(this,kA(a,31),b)};var g9b;var GP=k4(OQd,'InteractiveCycleBreaker',1297);c3(1300,1,NQd,w9b);_.vf=function x9b(a){return kA(a,31),n9b};_.Pe=function y9b(a,b){u9b(this,kA(a,31),b)};var n9b;var JP=k4(PQd,'CoffmanGrahamLayerer',1300);c3(1301,1,lKd,z9b);_.Fb=function B9b(a){return this===a};_.Md=function C9b(){return new jfb(this)};_.Ld=function A9b(a,b){return q9b(this.a,kA(a,8),kA(b,8))};var HP=k4(PQd,'CoffmanGrahamLayerer/lambda$0$Type',1301);c3(1302,1,lKd,D9b);_.Fb=function F9b(a){return this===a};_.Md=function G9b(){return new jfb(this)};_.Ld=function E9b(a,b){return t9b(this.a,a,b)};var IP=k4(PQd,'CoffmanGrahamLayerer/lambda$1$Type',1302);c3(1303,1,NQd,J9b);_.vf=function K9b(a){return kA(a,31),tvc(tvc(new yvc,(Wzb(),Rzb),(lPb(),GOb)),Tzb,OOb)};_.Pe=function L9b(a,b){I9b(this,kA(a,31),b)};var LP=k4(PQd,'InteractiveLayerer',1303);c3(511,1,{511:1},M9b);_.a=0;_.c=0;var KP=k4(PQd,'InteractiveLayerer/LayerSpan',511);c3(1299,1,NQd,V9b);_.vf=function W9b(a){return R9b(kA(a,31))};_.Pe=function X9b(a,b){S9b(this,kA(a,31),b)};var N9b,O9b,P9b;var MP=k4(PQd,'LongestPathLayerer',1299);c3(1306,1,NQd,eac);_.vf=function fac(a){return kA(a,31),tvc(tvc(new yvc,(Wzb(),Rzb),(lPb(),sOb)),Tzb,OOb)};_.Pe=function gac(a,b){cac(this,kA(a,31),b)};_.a=0;_.b=0;_.d=0;var Y9b,Z9b;var OP=k4(PQd,'MinWidthLayerer',1306);c3(1307,1,lKd,iac);_.Ld=function jac(a,b){return hac(this,kA(a,8),kA(b,8))};_.Fb=function kac(a){return this===a};_.Md=function lac(){return new jfb(this)};var NP=k4(PQd,'MinWidthLayerer/MinOutgoingEdgesComparator',1307);c3(1298,1,NQd,wac);_.vf=function xac(a){return sac(this,kA(a,31))};_.Pe=function yac(a,b){vac(this,kA(a,31),b)};var mac,nac,oac;var PP=k4(PQd,'NetworkSimplexLayerer',1298);c3(1304,1,NQd,Kac);_.vf=function Lac(a){return kA(a,31),tvc(tvc(new yvc,(Wzb(),Rzb),(lPb(),sOb)),Tzb,OOb)};_.Pe=function Mac(a,b){Hac(this,kA(a,31),b)};_.d=0;_.f=0;_.g=0;_.i=0;_.s=0;_.t=0;_.u=0;var RP=k4(PQd,'StretchWidthLayerer',1304);c3(1305,1,lKd,Oac);_.Ld=function Pac(a,b){return Nac(kA(a,8),kA(b,8))};_.Fb=function Qac(a){return this===a};_.Md=function Rac(){return new jfb(this)};var QP=k4(PQd,'StretchWidthLayerer/1',1305);c3(422,1,QQd);_.lf=function ebc(a,b,c,d,e,f){};_.xf=function cbc(a,b,c){return Xac(this,a,b,c)};_.kf=function dbc(){this.g=tz(EA,RQd,22,this.d,15,1);this.f=tz(EA,RQd,22,this.d,15,1)};_.mf=function fbc(a,b){this.e[a]=tz(FA,OKd,22,b[a].length,15,1)};_.nf=function gbc(a,b,c){var d;d=c[a][b];d.o=b;this.e[a][b]=b};_.of=function hbc(a,b,c,d){kA(xbb(d[a][b].i,c),11).o=this.d++};_.b=0;_.c=0;_.d=0;var TP=k4(SQd,'AbstractBarycenterPortDistributor',422);c3(1484,1,lKd,ibc);_.Fb=function kbc(a){return this===a};_.Md=function lbc(){return new jfb(this)};_.Ld=function jbc(a,b){return $ac(this.a,a,b)};var SP=k4(SQd,'AbstractBarycenterPortDistributor/lambda$0$Type',1484);c3(1532,1,rOd,ubc);_.lf=function xbc(a,b,c,d,e,f){};_.nf=function zbc(a,b,c){};_.of=function Abc(a,b,c,d){};_.jf=function vbc(){return false};_.kf=function wbc(){this.a=this.c.a;this.e=this.d.g};_.mf=function ybc(a,b){b[a][0].c.o=a};_.pf=function Bbc(){return false};_.qf=function Cbc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sbc(c,a.length)){f=a[b-(c?1:-1)];Tac(this.d,f,c?(U7b(),S7b):(U7b(),R7b))}e=a[b][0];k=!d||e.j==(RGb(),MGb);j=Sr(a[b]);qbc(this,j,k,false,c);g=0;for(i=new ccb(j);i.a');a0?(jec(this.a,a[b-1],a[b]),undefined):!c&&b1&&(e.i==(FDc(),kDc)?(this.b[a]=true):e.i==EDc&&a>0&&(this.b[a-1]=true))};_.f=0;var nQ=k4(qOd,'AllCrossingsCounter',1528);c3(602,1,{},_dc);_.b=0;_.d=0;var oQ=k4(qOd,'BinaryIndexedTree',602);c3(473,1,{},vec);var tQ=k4(qOd,'CrossingsCounter',473);c3(1557,1,lKd,wec);_.Fb=function yec(a){return this===a};_.Md=function zec(){return new jfb(this)};_.Ld=function xec(a,b){return nec(this.a,a,b)};var pQ=k4(qOd,'CrossingsCounter/lambda$0$Type',1557);c3(1558,1,lKd,Aec);_.Fb=function Cec(a){return this===a};_.Md=function Dec(){return new jfb(this)};_.Ld=function Bec(a,b){return oec(this.a,a,b)};var qQ=k4(qOd,'CrossingsCounter/lambda$1$Type',1558);c3(1559,1,lKd,Eec);_.Fb=function Gec(a){return this===a};_.Md=function Hec(){return new jfb(this)};_.Ld=function Fec(a,b){return pec(this.a,a,b)};var rQ=k4(qOd,'CrossingsCounter/lambda$2$Type',1559);c3(1560,1,lKd,Iec);_.Fb=function Kec(a){return this===a};_.Md=function Lec(){return new jfb(this)};_.Ld=function Jec(a,b){return qec(this.a,a,b)};var sQ=k4(qOd,'CrossingsCounter/lambda$3$Type',1560);c3(1555,1,{},Nec);var xQ=k4(qOd,'HyperedgeCrossingsCounter',1555);c3(426,1,{34:1,426:1},Pec);_.vd=function Qec(a){return Oec(this,kA(a,426))};_.b=0;_.c=0;_.e=0;_.f=0;var wQ=k4(qOd,'HyperedgeCrossingsCounter/Hyperedge',426);c3(336,1,{34:1,336:1},Sec);_.vd=function Tec(a){return Rec(this,kA(a,336))};_.b=0;_.c=0;var vQ=k4(qOd,'HyperedgeCrossingsCounter/HyperedgeCorner',336);c3(472,23,{3:1,34:1,23:1,472:1},Xec);var Uec,Vec;var uQ=l4(qOd,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',472,zE,Zec,Yec);var $ec;c3(1556,1,{},kfc);_.e=true;_.f=0;_.g=0;var zQ=k4(qOd,'NorthSouthEdgeAllCrossingsCounter',1556);c3(1311,1,NQd,pfc);_.vf=function qfc(a){return kA(nub(kA(a,31),(E2b(),X1b)),19).pc((Z0b(),S0b))?lfc:null};_.Pe=function rfc(a,b){ofc(this,kA(a,31),b)};var lfc;var AQ=k4(TQd,'InteractiveNodePlacer',1311);c3(1312,1,NQd,Ffc);_.vf=function Gfc(a){return kA(nub(kA(a,31),(E2b(),X1b)),19).pc((Z0b(),S0b))?sfc:null};_.Pe=function Hfc(a,b){Dfc(this,kA(a,31),b)};var sfc,tfc,ufc;var CQ=k4(TQd,'LinearSegmentsNodePlacer',1312);c3(235,1,{34:1,235:1},Lfc);_.vd=function Mfc(a){return Ifc(this,kA(a,235))};_.Fb=function Nfc(a){var b;if(sA(a,235)){b=kA(a,235);return this.b==b.b}return false};_.Hb=function Ofc(){return this.b};_.Ib=function Pfc(){return 'ls'+vg(this.f)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.i=0;var BQ=k4(TQd,'LinearSegmentsNodePlacer/LinearSegment',235);c3(1314,1,NQd,kgc);_.vf=function lgc(a){return kA(nub(kA(a,31),(E2b(),X1b)),19).pc((Z0b(),S0b))?Qfc:null};_.Pe=function sgc(a,b){ggc(this,kA(a,31),b)};_.b=0;_.g=0;var Qfc;var mR=k4(TQd,'NetworkSimplexPlacer',1314);c3(1333,1,lKd,tgc);_.Fb=function vgc(a){return this===a};_.Md=function wgc(){return new jfb(this)};_.Ld=function ugc(a,b){return U4(kA(a,21).a,kA(b,21).a)};var DQ=k4(TQd,'NetworkSimplexPlacer/0methodref$compare$Type',1333);c3(1335,1,lKd,xgc);_.Fb=function zgc(a){return this===a};_.Md=function Agc(){return new jfb(this)};_.Ld=function ygc(a,b){return U4(kA(a,21).a,kA(b,21).a)};var EQ=k4(TQd,'NetworkSimplexPlacer/1methodref$compare$Type',1335);c3(584,1,{584:1},Bgc);var FQ=k4(TQd,'NetworkSimplexPlacer/EdgeRep',584);c3(416,1,{416:1},Cgc);_.b=false;var GQ=k4(TQd,'NetworkSimplexPlacer/NodeRep',416);c3(460,12,{3:1,4:1,20:1,25:1,41:1,12:1,13:1,15:1,49:1,460:1},Ggc);var LQ=k4(TQd,'NetworkSimplexPlacer/Path',460);c3(1315,1,FJd,Hgc);_.Kb=function Igc(a){return kA(a,14).d.g.j};var HQ=k4(TQd,'NetworkSimplexPlacer/Path/lambda$0$Type',1315);c3(1316,1,SLd,Jgc);_.Nb=function Kgc(a){return kA(a,232)==(RGb(),OGb)};var IQ=k4(TQd,'NetworkSimplexPlacer/Path/lambda$1$Type',1316);c3(1317,1,FJd,Lgc);_.Kb=function Mgc(a){return kA(a,14).d.g};var JQ=k4(TQd,'NetworkSimplexPlacer/Path/lambda$2$Type',1317);c3(1318,1,SLd,Ngc);_.Nb=function Ogc(a){return phc(k7b(kA(a,8)))};var KQ=k4(TQd,'NetworkSimplexPlacer/Path/lambda$3$Type',1318);c3(1319,1,SLd,Pgc);_.Nb=function Qgc(a){return Rfc(),(FDc(),pDc).pc(kA(a,11).i)};var MQ=k4(TQd,'NetworkSimplexPlacer/lambda$0$Type',1319);c3(1320,1,{},Rgc);_.td=function Sgc(a){Xfc(this.a,this.b,a)};var NQ=k4(TQd,'NetworkSimplexPlacer/lambda$1$Type',1320);c3(1329,1,{},Tgc);_.td=function Ugc(a){Yfc(this.a,a)};var OQ=k4(TQd,'NetworkSimplexPlacer/lambda$10$Type',1329);c3(1330,1,FJd,Vgc);_.Kb=function Wgc(a){return Rfc(),new Zob(null,new ekb(kA(a,26).a,16))};var PQ=k4(TQd,'NetworkSimplexPlacer/lambda$11$Type',1330);c3(1331,1,{},Xgc);_.td=function Ygc(a){Zfc(this.a,a)};var QQ=k4(TQd,'NetworkSimplexPlacer/lambda$12$Type',1331);c3(1332,1,FJd,Zgc);_.Kb=function $gc(a){return Rfc(),d5(kA(a,113).e)};var RQ=k4(TQd,'NetworkSimplexPlacer/lambda$13$Type',1332);c3(1334,1,FJd,_gc);_.Kb=function ahc(a){return Rfc(),d5(kA(a,113).e)};var SQ=k4(TQd,'NetworkSimplexPlacer/lambda$14$Type',1334);c3(1336,1,SLd,bhc);_.Nb=function chc(a){return Rfc(),kA(a,416).c.j==(RGb(),PGb)};var TQ=k4(TQd,'NetworkSimplexPlacer/lambda$15$Type',1336);c3(1337,1,SLd,dhc);_.Nb=function ehc(a){return Rfc(),kA(a,416).c.i.c.length>1};var UQ=k4(TQd,'NetworkSimplexPlacer/lambda$16$Type',1337);c3(1338,1,{},fhc);_.td=function ghc(a){pgc(this.c,this.b,this.d,this.a,a)};_.c=0;_.d=0;var VQ=k4(TQd,'NetworkSimplexPlacer/lambda$17$Type',1338);c3(1339,1,{},hhc);_.td=function ihc(a){qgc(this.a,a)};_.a=0;var WQ=k4(TQd,'NetworkSimplexPlacer/lambda$18$Type',1339);c3(1340,1,FJd,jhc);_.Kb=function khc(a){return Rfc(),new Zob(null,new ekb(kA(a,26).a,16))};var XQ=k4(TQd,'NetworkSimplexPlacer/lambda$19$Type',1340);c3(1321,1,FJd,lhc);_.Kb=function mhc(a){return Rfc(),new Zob(null,new ekb(kA(a,26).a,16))};var YQ=k4(TQd,'NetworkSimplexPlacer/lambda$2$Type',1321);c3(1341,1,{},nhc);_.td=function ohc(a){$fc(this.a,a)};var ZQ=k4(TQd,'NetworkSimplexPlacer/lambda$20$Type',1341);c3(1342,1,SLd,qhc);_.Nb=function rhc(a){return phc(a)};var $Q=k4(TQd,'NetworkSimplexPlacer/lambda$21$Type',1342);c3(1343,1,FJd,shc);_.Kb=function thc(a){return Rfc(),new Zob(null,new ekb(kA(a,26).a,16))};var _Q=k4(TQd,'NetworkSimplexPlacer/lambda$22$Type',1343);c3(1344,1,SLd,uhc);_.Nb=function vhc(a){return _fc(this.a,a)};var aR=k4(TQd,'NetworkSimplexPlacer/lambda$23$Type',1344);c3(1345,1,{},whc);_.td=function xhc(a){agc(this.a,this.b,a)};var bR=k4(TQd,'NetworkSimplexPlacer/lambda$24$Type',1345);c3(1346,1,SLd,yhc);_.Nb=function zhc(a){return Rfc(),!JEb(kA(a,14))};var cR=k4(TQd,'NetworkSimplexPlacer/lambda$25$Type',1346);c3(1347,1,SLd,Ahc);_.Nb=function Bhc(a){return Rfc(),!JEb(kA(a,14))};var dR=k4(TQd,'NetworkSimplexPlacer/lambda$26$Type',1347);c3(1348,1,{},Chc);_.le=function Dhc(a,b){return bgc(this.a,a,b)};var eR=k4(TQd,'NetworkSimplexPlacer/lambda$27$Type',1348);c3(1322,1,FJd,Ehc);_.Kb=function Fhc(a){return Rfc(),new Zob(null,new fkb(kl(zGb(kA(a,8)))))};var fR=k4(TQd,'NetworkSimplexPlacer/lambda$3$Type',1322);c3(1323,1,SLd,Ghc);_.Nb=function Hhc(a){return Rfc(),ogc(kA(a,14))};var gR=k4(TQd,'NetworkSimplexPlacer/lambda$4$Type',1323);c3(1324,1,{},Ihc);_.td=function Jhc(a){hgc(this.a,kA(a,14))};var hR=k4(TQd,'NetworkSimplexPlacer/lambda$5$Type',1324);c3(1325,1,FJd,Khc);_.Kb=function Lhc(a){return Rfc(),new Zob(null,new ekb(kA(a,26).a,16))};var iR=k4(TQd,'NetworkSimplexPlacer/lambda$6$Type',1325);c3(1326,1,SLd,Mhc);_.Nb=function Nhc(a){return Rfc(),kA(a,8).j==(RGb(),PGb)};var jR=k4(TQd,'NetworkSimplexPlacer/lambda$7$Type',1326);c3(1327,1,FJd,Ohc);_.Kb=function Phc(a){return Rfc(),new Zob(null,new fkb(kl(tGb(kA(a,8)))))};var kR=k4(TQd,'NetworkSimplexPlacer/lambda$8$Type',1327);c3(1328,1,SLd,Qhc);_.Nb=function Rhc(a){return Rfc(),IEb(kA(a,14))};var lR=k4(TQd,'NetworkSimplexPlacer/lambda$9$Type',1328);c3(1310,1,NQd,Vhc);_.vf=function Whc(a){return kA(nub(kA(a,31),(E2b(),X1b)),19).pc((Z0b(),S0b))?Shc:null};_.Pe=function Xhc(a,b){Uhc(kA(a,31),b)};var Shc;var nR=k4(TQd,'SimpleNodePlacer',1310);c3(164,1,{164:1},dic);_.Ib=function eic(){var a;a='';this.c==(hic(),gic)?(a+=yOd):this.c==fic&&(a+=xOd);this.o==(pic(),nic)?(a+=WQd):this.o==oic?(a+='UP'):(a+='BALANCED');return a};var qR=k4(XQd,'BKAlignedLayout',164);c3(466,23,{3:1,34:1,23:1,466:1},iic);var fic,gic;var oR=l4(XQd,'BKAlignedLayout/HDirection',466,zE,kic,jic);var lic;c3(465,23,{3:1,34:1,23:1,465:1},qic);var nic,oic;var pR=l4(XQd,'BKAlignedLayout/VDirection',465,zE,sic,ric);var tic;c3(1485,1,{},xic);var rR=k4(XQd,'BKAligner',1485);c3(1488,1,{},Cic);var uR=k4(XQd,'BKCompactor',1488);c3(593,1,{593:1},Dic);_.a=0;var sR=k4(XQd,'BKCompactor/ClassEdge',593);c3(423,1,{423:1},Fic);_.a=null;_.b=0;var tR=k4(XQd,'BKCompactor/ClassNode',423);c3(1313,1,NQd,Nic);_.vf=function Ric(a){return kA(nub(kA(a,31),(E2b(),X1b)),19).pc((Z0b(),S0b))?Gic:null};_.Pe=function Sic(a,b){Mic(this,kA(a,31),b)};_.a=false;_.e=false;var Gic;var vR=k4(XQd,'BKNodePlacer',1313);c3(437,23,{3:1,34:1,23:1,437:1},Wic);var Tic,Uic;var wR=l4(XQd,'EdgeStraighteningStrategy',437,zE,Yic,Xic);var Zic;c3(1486,1,{},ajc);_.d=0;var yR=k4(XQd,'NeighborhoodInformation',1486);c3(1487,1,lKd,fjc);_.Ld=function gjc(a,b){return ejc(this,kA(a,48),kA(b,48))};_.Fb=function hjc(a){return this===a};_.Md=function ijc(){return new jfb(this)};var xR=k4(XQd,'NeighborhoodInformation/NeighborComparator',1487);c3(724,1,{});var CR=k4(XQd,'ThresholdStrategy',724);c3(1510,724,{},njc);_.yf=function ojc(a,b,c){return this.a.o==(pic(),oic)?oLd:pLd};_.zf=function pjc(){};var zR=k4(XQd,'ThresholdStrategy/NullThresholdStrategy',1510);c3(522,1,{522:1},qjc);_.c=false;_.d=false;var AR=k4(XQd,'ThresholdStrategy/Postprocessable',522);c3(1511,724,{},ujc);_.yf=function vjc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.o]==b;if(!(e||d)){return a}f=a;if(this.a.c==(hic(),gic)){e&&(f=rjc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=rjc(this,c,false))}else{e&&(f=rjc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=rjc(this,c,false))}return f};_.zf=function wjc(){var a,b,c,d,e;while(this.c.b!=0){e=kA(tib(this.c),522);d=sjc(this,e);if(!d.a){continue}a=d.a;c=Vpb(this.a.f[this.a.g[e.b.o].o]);if(!c&&!JEb(a)&&a.c.g.c==a.d.g.c){continue}b=tjc(this,e);b||plb(this.d,e)}while(this.d.a.c.length!=0){tjc(this,kA(olb(this.d),522))}};var BR=k4(XQd,'ThresholdStrategy/SimpleThresholdStrategy',1511);c3(573,1,{573:1,285:1,286:1},Ajc);_.hf=function Cjc(){return zjc(this)};_.uf=function Bjc(){return zjc(this)};var xjc;var DR=k4(ZQd,'EdgeRouterFactory',573);c3(1356,1,NQd,Pjc);_.vf=function Qjc(a){return Njc(kA(a,31))};_.Pe=function Rjc(a,b){Ojc(kA(a,31),b)};var Ejc,Fjc,Gjc,Hjc,Ijc,Jjc,Kjc,Ljc;var ER=k4(ZQd,'OrthogonalEdgeRouter',1356);c3(594,1,{},Vjc);_.a=0;_.c=0;var KR=k4(ZQd,'OrthogonalRoutingGenerator',594);c3(252,1,{252:1},bkc);_.Ib=function ckc(){return this.a+'->'+this.b};_.c=0;var FR=k4(ZQd,'OrthogonalRoutingGenerator/Dependency',252);c3(165,1,{34:1,165:1},fkc);_.vd=function gkc(a){return ekc(this,kA(a,165))};_.Fb=function hkc(a){var b;if(sA(a,165)){b=kA(a,165);return this.d==b.d}return false};_.Hb=function ikc(){return this.d};_.Ib=function jkc(){var a,b,c,d;a=new O6('{');d=new ccb(this.g);while(d.alNd){e=new Jyc(i,l);mib(c.a,e);Sjc(this.a,c,a,e,false);f=new Jyc(k,l);mib(c.a,f);Sjc(this.a,c,a,f,false)}}}};_.Bf=function mkc(a){return a.g.k.a+a.k.a+a.a.a};_.Cf=function nkc(){return FDc(),CDc};_.Df=function okc(){return FDc(),lDc};var HR=k4(ZQd,'OrthogonalRoutingGenerator/NorthToSouthRoutingStrategy',1490);c3(1491,1,{},pkc);_.Af=function qkc(a,b){var c,d,e,f,g,h,i,j,k,l;l=b-a.i*this.a.c;for(h=new ccb(a.g);h.alNd){e=new Jyc(i,l);mib(c.a,e);Sjc(this.a,c,a,e,false);f=new Jyc(k,l);mib(c.a,f);Sjc(this.a,c,a,f,false)}}}};_.Bf=function rkc(a){return a.g.k.a+a.k.a+a.a.a};_.Cf=function skc(){return FDc(),lDc};_.Df=function tkc(){return FDc(),CDc};var IR=k4(ZQd,'OrthogonalRoutingGenerator/SouthToNorthRoutingStrategy',1491);c3(1489,1,{},ukc);_.Af=function vkc(a,b){var c,d,e,f,g,h,i,j,k,l;l=b+a.i*this.a.c;for(h=new ccb(a.g);h.alNd){e=new Jyc(l,i);mib(c.a,e);Sjc(this.a,c,a,e,true);f=new Jyc(l,k);mib(c.a,f);Sjc(this.a,c,a,f,true)}}}};_.Bf=function wkc(a){return a.g.k.b+a.k.b+a.a.b};_.Cf=function xkc(){return FDc(),kDc};_.Df=function ykc(){return FDc(),EDc};var JR=k4(ZQd,'OrthogonalRoutingGenerator/WestToEastRoutingStrategy',1489);c3(1351,1,NQd,Mkc);_.vf=function Nkc(a){return Hkc(kA(a,31))};_.Pe=function Okc(a,b){Jkc(this,kA(a,31),b)};var zkc,Akc,Bkc,Ckc,Dkc;var MR=k4(ZQd,'PolylineEdgeRouter',1351);c3(1352,1,nMd,Qkc);_.Mb=function Rkc(a){return Pkc(kA(a,8))};_.Fb=function Skc(a){return this===a};_.Nb=function Tkc(a){return this.Mb(a)};var LR=k4(ZQd,'PolylineEdgeRouter/1',1352);c3(151,1,{151:1},alc);_.Ib=function blc(){var a,b,c,d;c=new M6;!!this.e&&I6(I6(c,Ss(this.e)),': ');for(b=sib(Wkc(this),0);b.b!=b.d.c;){a=kA(Gib(b),11);I6(I6(C6(I6(c,(d=iHb(a),d==null?'p_'+a.o:'p_'+d)),32),Ss(a.i)),' / ')}return l3(c,c.a.length-2-1)};_.j=0;_.k=0;var NR=k4($Qd,'ConnectedSelfLoopComponent',151);c3(129,23,{3:1,34:1,23:1,129:1},Mlc);_.c=0;var clc,dlc,elc,flc,glc,hlc,ilc,jlc,klc,llc,mlc,nlc,olc,plc,qlc,rlc,slc,tlc,ulc,vlc,wlc,xlc,ylc,zlc,Alc,Blc,Clc,Dlc,Elc;var OR=l4($Qd,'LoopSide',129,zE,Qlc,Plc);var Rlc;c3(424,1,{},dmc,emc,fmc);_.Ib=function pmc(){return this.b.Ib()};_.c=0;_.d=false;_.e=false;_.f=false;_.i=0;_.j=0;var QR=k4($Qd,'NubSpline',424);c3(190,1,{190:1},smc,tmc);var PR=k4($Qd,'NubSpline/PolarCP',190);c3(599,424,{},umc);var RR=k4($Qd,'NubsSelfLoop',599);c3(236,1,{},Bmc,Cmc,Dmc,Emc,Fmc);_.a=cRd;_.b=YQd;_.c=cRd;_.d=YQd;var SR=k4($Qd,'Rectangle',236);c3(1353,1,NQd,$mc);_.vf=function anc(a){return Umc(kA(a,31))};_.Pe=function bnc(a,b){Zmc(this,kA(a,31),b)};_.d=3;var Hmc,Imc,Jmc,Kmc,Lmc,Mmc;var XR=k4($Qd,'SplineEdgeRouter',1353);c3(250,1,{250:1},enc);_.Ib=function fnc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var TR=k4($Qd,'SplineEdgeRouter/Dependency',250);c3(417,23,{3:1,34:1,23:1,417:1},jnc);var gnc,hnc;var UR=l4($Qd,'SplineEdgeRouter/SideToProcess',417,zE,lnc,knc);var mnc;c3(1354,1,{},onc);_.td=function pnc(a){Wmc(this.a,this.b,a)};var VR=k4($Qd,'SplineEdgeRouter/lambda$0$Type',1354);c3(1355,1,{},qnc);_.td=function rnc(a){Xmc(this.a,this.b,a)};var WR=k4($Qd,'SplineEdgeRouter/lambda$1$Type',1355);c3(125,1,{34:1,125:1},wnc,xnc);_.vd=function ync(a){return unc(this,kA(a,125))};_.b=0;_.e=0;_.f=0;_.i=false;_.j=0;_.k=false;_.n=false;_.p=0;_.r=0;_.s=0;var ZR=k4($Qd,'SplineSegment',125);c3(589,1,{589:1},znc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var YR=k4($Qd,'SplineSegment/EdgeInformation',589);c3(990,1,{},Knc);var _R=k4(gRd,bNd,990);c3(991,1,lKd,Mnc);_.Ld=function Nnc(a,b){return Lnc(kA(a,128),kA(b,128))};_.Fb=function Onc(a){return this===a};_.Md=function Pnc(){return new jfb(this)};var $R=k4(gRd,cNd,991);c3(989,1,{},Wnc);var aS=k4(gRd,'MrTree',989);c3(360,23,{3:1,34:1,23:1,360:1,285:1,286:1},boc);_.hf=function doc(){return aoc(this)};_.uf=function coc(){return aoc(this)};var Xnc,Ync,Znc,$nc;var bS=l4(gRd,'TreeLayoutPhases',360,zE,foc,eoc);var goc;c3(960,244,GMd,ioc);_.Ae=function joc(a,b){var c,d,e,f,g,h;f=(g=new toc,lub(g,a),qub(g,(Ppc(),Gpc),a),h=new Bgb,Snc(a,g,h),Rnc(a,g,h),g);e=Jnc(this.a,f);for(d=new ccb(e);d.a'+xoc(this.c):'e_'+ob(this)};var fS=k4(hRd,'TEdge',170);c3(128,131,{3:1,128:1,93:1,131:1},toc);_.Ib=function uoc(){var a,b,c,d,e;e=null;for(d=sib(this.b,0);d.b!=d.d.c;){c=kA(Gib(d),76);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=sib(this.a,0);b.b!=b.d.c;){a=kA(Gib(b),170);e+=(!!a.b&&!!a.c?xoc(a.b)+'->'+xoc(a.c):'e_'+ob(a))+'\n'}return e};var hS=k4(hRd,'TGraph',128);c3(570,452,{3:1,452:1,570:1,93:1,131:1});var lS=k4(hRd,'TShape',570);c3(76,570,{3:1,452:1,76:1,570:1,93:1,131:1},yoc);_.Ib=function zoc(){return xoc(this)};var kS=k4(hRd,'TNode',76);c3(231,1,YJd,Aoc);_.sc=function Boc(a){i5(this,a)};_.tc=function Coc(){var a;return a=sib(this.a.d,0),new Doc(a)};var jS=k4(hRd,'TNode/2',231);c3(330,1,wJd,Doc);_.gc=function Eoc(a){Bhb(this,a)};_.ic=function Goc(){return kA(Gib(this.a),170).c};_.hc=function Foc(){return Fib(this.a)};_.jc=function Hoc(){Iib(this.a)};var iS=k4(hRd,'TNode/2/1',330);c3(1545,1,TNd,Koc);_.Pe=function Moc(a,b){Joc(this,kA(a,128),b)};var mS=k4(iRd,'FanProcessor',1545);c3(308,23,{3:1,34:1,23:1,308:1,286:1},Uoc);_.hf=function Voc(){switch(this.g){case 0:return new rpc;case 1:return new Koc;case 2:return new hpc;case 3:return new apc;case 4:return new opc;case 5:return new upc;default:throw x2(new O4(iOd+(this.f!=null?this.f:''+this.g)));}};var Noc,Ooc,Poc,Qoc,Roc,Soc;var nS=l4(iRd,jOd,308,zE,Xoc,Woc);var Yoc;c3(1548,1,TNd,apc);_.Pe=function bpc(a,b){$oc(this,kA(a,128),b)};_.a=0;var pS=k4(iRd,'LevelHeightProcessor',1548);c3(1549,1,YJd,cpc);_.sc=function dpc(a){i5(this,a)};_.tc=function epc(){return bdb(),sdb(),rdb};var oS=k4(iRd,'LevelHeightProcessor/1',1549);c3(1546,1,TNd,hpc);_.Pe=function ipc(a,b){fpc(this,kA(a,128),b)};_.a=0;var rS=k4(iRd,'NeighborsProcessor',1546);c3(1547,1,YJd,jpc);_.sc=function kpc(a){i5(this,a)};_.tc=function lpc(){return bdb(),sdb(),rdb};var qS=k4(iRd,'NeighborsProcessor/1',1547);c3(1550,1,TNd,opc);_.Pe=function ppc(a,b){mpc(this,kA(a,128),b)};_.a=0;var sS=k4(iRd,'NodePositionProcessor',1550);c3(1544,1,TNd,rpc);_.Pe=function spc(a,b){qpc(this,kA(a,128))};var tS=k4(iRd,'RootProcessor',1544);c3(1551,1,TNd,upc);_.Pe=function vpc(a,b){tpc(kA(a,128))};var uS=k4(iRd,'Untreeifyer',1551);var wpc,xpc,ypc,zpc,Apc,Bpc,Cpc,Dpc,Epc,Fpc,Gpc,Hpc,Ipc,Jpc,Kpc,Lpc,Mpc,Npc,Opc;c3(750,1,uMd,Vpc);_.ue=function Wpc(a){qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,lRd),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),Tpc),(Uxc(),Oxc)),yS),fgb((Gxc(),Exc)))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,mRd),''),'Search Order'),'Which search order to use when computing a spanning tree.'),Rpc),Oxc),zS),fgb(Exc))));gqc((new hqc,a))};var Qpc,Rpc,Spc,Tpc;var vS=k4(nRd,'MrTreeMetaDataProvider',750);c3(886,1,uMd,hqc);_.ue=function iqc(a){gqc(a)};var Xpc,Ypc,Zpc,$pc,_pc,aqc,bqc,cqc,dqc,eqc;var xS=k4(nRd,'MrTreeOptions',886);c3(887,1,{},jqc);_.Be=function kqc(){var a;return a=new ioc,a};_.Ce=function lqc(a){};var wS=k4(nRd,'MrTreeOptions/MrtreeFactory',887);c3(438,23,{3:1,34:1,23:1,438:1},pqc);var mqc,nqc;var yS=l4(nRd,'OrderWeighting',438,zE,rqc,qqc);var sqc;c3(388,23,{3:1,34:1,23:1,388:1},xqc);var uqc,vqc;var zS=l4(nRd,'TreeifyingOrder',388,zE,zqc,yqc);var Aqc;c3(1357,1,NQd,Jqc);_.vf=function Kqc(a){return kA(a,128),Cqc};_.Pe=function Lqc(a,b){Iqc(this,kA(a,128),b)};var Cqc;var AS=k4('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1357);c3(1358,1,NQd,Qqc);_.vf=function Rqc(a){return kA(a,128),Mqc};_.Pe=function Sqc(a,b){Pqc(this,kA(a,128),b)};var Mqc;var BS=k4('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1358);c3(1359,1,NQd,$qc);_.vf=function _qc(a){return kA(a,128),Tqc};_.Pe=function arc(a,b){Yqc(this,kA(a,128),b)};_.a=0;var Tqc;var CS=k4('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1359);c3(1360,1,NQd,erc);_.vf=function frc(a){return kA(a,128),brc};_.Pe=function grc(a,b){drc(kA(a,128),b)};var brc;var DS=k4('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1360);var hrc;c3(447,23,{3:1,34:1,23:1,447:1,285:1,286:1},nrc);_.hf=function prc(){return mrc(this)};_.uf=function orc(){return mrc(this)};var jrc,krc;var ES=l4(qRd,'RadialLayoutPhases',447,zE,rrc,qrc);var trc;c3(961,244,GMd,wrc);_.Ae=function xrc(a,b){var c,d,e,f,g,h,i;d=vrc(this,a);xEc(b,'Radial layout',d.c.length);i=zrc(a);COc(a,(irc(),hrc),i);if(!i){throw x2(new O4('The given graph is not a tree!'))}f=Vpb(nA(AOc(a,(otc(),ktc))));f==0&&(f=yrc(a));COc(a,ktc,f);c=new LGc(a);wbb(KGc(c),new sHc);e=new AHc(c);wHc(e);for(h=new ccb(vrc(this,a));h.a0&&Nyc(b.charCodeAt(c-1),YNd)){--c}if(e>=c){throw x2(new O4('The given string does not contain any numbers.'))}f=f6(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw x2(new O4('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=G3(m6(f[0]));this.b=G3(m6(f[1]))}catch(a){a=w2(a);if(sA(a,118)){d=a;throw x2(new O4(ZNd+d))}else throw x2(a)}};_.Ib=function Qyc(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var aU=k4($Nd,'KVector',9);c3(74,66,{3:1,4:1,20:1,25:1,41:1,13:1,66:1,15:1,74:1,428:1},Vyc,Wyc);_.gf=function Xyc(b){var c,d,e,f,g,h;e=f6(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');xib(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=G3(e[d])):(h=G3(e[d]));g>0&&g%2!=0&&mib(this,new Jyc(f,h));++g}++d}}catch(a){a=w2(a);if(sA(a,118)){c=a;throw x2(new O4('The given string does not match the expected format for vectors.'+c))}else throw x2(a)}};_.Ib=function Zyc(){var a,b,c;a=new O6('(');b=sib(this,0);while(b.b!=b.d.c){c=kA(Gib(b),9);I6(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var _T=k4($Nd,'KVectorChain',74);c3(224,23,{3:1,34:1,23:1,224:1},fzc);var $yc,_yc,azc,bzc,czc,dzc;var cU=l4(WRd,'Alignment',224,zE,hzc,gzc);var izc;c3(855,1,uMd,xzc);_.ue=function yzc(a){wzc(a)};var kzc,lzc,mzc,nzc,ozc,pzc,qzc,rzc,szc,tzc,uzc;var eU=k4(WRd,'BoxLayouterOptions',855);c3(856,1,{},zzc);_.Be=function Azc(){var a;return a=new NEc,a};_.Ce=function Bzc(a){};var dU=k4(WRd,'BoxLayouterOptions/BoxFactory',856);c3(785,1,uMd,_Ac);_.ue=function aBc(a){qwc(a,new ixc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,_Rd),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(Uxc(),Sxc)),UE),fgb((Gxc(),Exc)))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,iQd),''),'Alignment'),'Alignment of the selected node relative to other nodes, the exact meaning depends on the used algorithm.'),Ezc),Oxc),cU),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.alignment']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,VMd),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),Nxc),yE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.aspectRatio']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,aSd),''),'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."),Rxc),_T),fgb(Bxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.bendPoints']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,hQd),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(B3(),B3(),false)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.debugMode']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,oQd),''),yMd),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),Mzc),Oxc),gU),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.direction']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,OPd),''),'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.'),Rzc),Oxc),iU),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.edgeRouting']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,ZRd),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),(null,false)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.expandNodes']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,jQd),''),'Hierarchy Handling'),'If this option is set to SEPARATE_CHILDREN, each hierarchy level of the graph is processed independently, possibly by different layout algorithms, beginning with the lowest level. If it is set to INCLUDE_CHILDREN, the algorithm is responsible to process all hierarchy levels that are contained in the associated parent node. If the root node is set to inherit (or not set at all), the default behavior is SEPARATE_CHILDREN.'),Wzc),Oxc),mU),ggb(Exc,xz(pz(UT,1),jKd,163,0,[Dxc]))),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.hierarchyHandling']))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,WMd),''),'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."),pAc),Rxc),ZT),ggb(Exc,xz(pz(UT,1),jKd,163,0,[Dxc])))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,vNd),''),'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.'),(null,false)),Mxc),tE),fgb(Exc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,wNd),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),CAc),Oxc),pU),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.portConstraints']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,HQd),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Rxc),aU),ggb(Dxc,xz(pz(UT,1),jKd,163,0,[Fxc,Cxc]))),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.position']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,qNd),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),Qxc),GE),ggb(Dxc,xz(pz(UT,1),jKd,163,0,[Bxc]))),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.priority']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,tNd),''),'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).'),Qxc),GE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.randomSeed']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,uNd),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.separateConnComp']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,yQd),''),'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.'),aAc),Rxc),_T),fgb(Bxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.junctionPoints']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,CQd),''),'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.'),(null,false)),Mxc),tE),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.commentBox']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,DQd),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),(null,false)),Mxc),tE),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.hypernode']))));qwc(a,new ixc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,bSd),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Rxc),XT),ggb(Exc,xz(pz(UT,1),jKd,163,0,[Cxc])))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,IQd),''),'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."),cAc),Rxc),YT),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.margins']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,fQd),''),'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."),(null,false)),Mxc),tE),ggb(Dxc,xz(pz(UT,1),jKd,163,0,[Bxc,Fxc,Cxc]))),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.noLayout']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,cSd),''),'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),Nxc),yE),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.scaleFactor']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,dSd),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),(null,true)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.animate']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,eSd),''),'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'."),d5(100)),Qxc),GE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.animTimeFactor']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,fSd),''),'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.'),(null,false)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.layoutAncestors']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,gSd),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),d5(4000)),Qxc),GE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.maxAnimTime']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,hSd),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),d5(400)),Qxc),GE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.minAnimTime']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,iSd),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),(null,false)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.progressBar']))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,jSd),''),'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.'),(null,true)),Mxc),tE),fgb(Exc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,kSd),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),(null,false)),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.zoomToFit']))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,$Rd),'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.'),Izc),Oxc),zU),fgb(Exc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,TMd),PPd),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),12),Nxc),yE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.borderSpacing']))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,ZPd),PPd),'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),Nxc),yE),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,sNd),PPd),'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),Nxc),yE),fgb(Exc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,$Pd),PPd),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),Nxc),yE),fgb(Exc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,_Pd),PPd),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),Nxc),yE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,[pSd]))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,bQd),PPd),'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),Nxc),yE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,[pSd]))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,aQd),PPd),'Label Port Spacing'),"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),Nxc),yE),fgb(Exc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,rNd),PPd),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),Nxc),yE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.spacing']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,cQd),PPd),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),Nxc),yE),ggb(Exc,xz(pz(UT,1),jKd,163,0,[Dxc]))),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.portSpacing']))));qwc(a,new ixc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,dQd),PPd),'Individual Spacing Override'),'In general spacing values apply to the children of the hierarchical node (possibly the root node) for which the values are actually specified. Hereby, the children include ports, edges, and labels.'),Rxc),KU),ggb(Dxc,xz(pz(UT,1),jKd,163,0,[Bxc,Fxc,Cxc])))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,JQd),PPd),'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.'),YAc),Rxc),YT),fgb(Exc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,GQd),qSd),'Layout Partition'),"Partition to which the node belongs to. If 'layoutPartitions' is true, all nodes are expected to have a partition."),Qxc),GE),ggb(Exc,xz(pz(UT,1),jKd,163,0,[Dxc]))),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.partition']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,FQd),qSd),'Layout Partitioning'),'Whether to activate partitioned layout.'),rAc),Mxc),tE),fgb(Exc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.layoutPartitions']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,lSd),rSd),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),eAc),Rxc),ZT),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.nodeLabelInset']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,pQd),rSd),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),gAc),Pxc),nU),ggb(Dxc,xz(pz(UT,1),jKd,163,0,[Cxc]))),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.nodeLabelPlacement']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,sQd),sSd),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),uAc),Oxc),oU),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.portAlignment']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,tQd),sSd),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),Oxc),oU),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.portAlignment.north']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,uQd),sSd),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),Oxc),oU),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.portAlignment.south']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,vQd),sSd),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),Oxc),oU),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.portAlignment.west']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,wQd),sSd),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),Oxc),oU),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.portAlignment.east']))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,mQd),tSd),'Node Size Constraints'),'Constraints for determining node sizes. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to node sizes being fixed.'),iAc),Pxc),uU),fgb(Dxc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,nQd),tSd),'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.'),mAc),Pxc),vU),fgb(Dxc))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,xQd),tSd),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),kAc),Rxc),aU),fgb(Dxc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,zQd),XPd),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),Pzc),Oxc),hU),fgb(Cxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.edgeLabelPlacement']))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,AQd),XPd),'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."),(null,false)),Mxc),tE),fgb(Cxc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,mSd),'font'),'Font Name'),'Font name used for a label.'),Sxc),UE),fgb(Cxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.fontName']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,nSd),'font'),'Font Size'),'Font size used for a label.'),Qxc),GE),fgb(Cxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.fontSize']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,EQd),uSd),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Rxc),aU),fgb(Fxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.portAnchor']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,BQd),uSd),'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."),Qxc),GE),fgb(Fxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.portIndex']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,gQd),uSd),'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."),IAc),Oxc),rU),fgb(Fxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.portSide']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(sxc(wxc(txc(uxc(new Axc,eQd),uSd),'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."),Nxc),yE),fgb(Fxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.offset']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,qQd),vSd),'Port Label Placement'),'Decides on a placement method for port labels.'),GAc),Oxc),qU),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.portLabelPlacement']))));qwc(a,new ixc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,rQd),vSd),'Port Labels Next to Port'),"Usually, inside port labels of hierarchical nodes are placed not next to their port, but with an offset to avoid edge-label crossings. The offset is not necessary if the port has no connections that would cross the label, but is usually applied anyway to keep things uniform. Setting this option to true places labels next to their ports if they won't be crossed by edges."),(null,false)),Mxc),tE),fgb(Dxc))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,kQd),wSd),'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."),(null,false)),Mxc),tE),fgb(Dxc)),xz(pz(UE,1),cKd,2,6,[xSd]))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,lQd),wSd),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),(null,false)),Mxc),tE),fgb(Bxc)),xz(pz(UE,1),cKd,2,6,[xSd]))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,UMd),'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),Nxc),yE),fgb(Bxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.thickness']))));qwc(a,new ixc(vxc(yxc(xxc(zxc(rxc(sxc(wxc(txc(uxc(new Axc,oSd),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),Tzc),Oxc),jU),fgb(Bxc)),xz(pz(UE,1),cKd,2,6,['de.cau.cs.kieler.edgeType']))));pwc(a,new Svc(Zvc(_vc($vc(new awc,YPd),'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.')));pwc(a,new Svc(Zvc(_vc($vc(new awc,'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.')));pwc(a,new Svc(Zvc(_vc($vc(new awc,pNd),'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.')));pwc(a,new Svc(Zvc(_vc($vc(new awc,'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.')));pwc(a,new Svc(Zvc(_vc($vc(new awc,pRd),'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.')));pwc(a,new Svc(Zvc(_vc($vc(new awc,'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.')));pwc(a,new Svc(Zvc(_vc($vc(new awc,GRd),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));aCc((new bCc,a));wzc((new xzc,a));TDc((new UDc,a))};var Czc,Dzc,Ezc,Fzc,Gzc,Hzc,Izc,Jzc,Kzc,Lzc,Mzc,Nzc,Ozc,Pzc,Qzc,Rzc,Szc,Tzc,Uzc,Vzc,Wzc,Xzc,Yzc,Zzc,$zc,_zc,aAc,bAc,cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc,kAc,lAc,mAc,nAc,oAc,pAc,qAc,rAc,sAc,tAc,uAc,vAc,wAc,xAc,yAc,zAc,AAc,BAc,CAc,DAc,EAc,FAc,GAc,HAc,IAc,JAc,KAc,LAc,MAc,NAc,OAc,PAc,QAc,RAc,SAc,TAc,UAc,VAc,WAc,XAc,YAc,ZAc;var fU=k4(WRd,'CoreOptions',785);c3(110,23,{3:1,34:1,23:1,110:1},kBc);var bBc,cBc,dBc,eBc,fBc;var gU=l4(WRd,yMd,110,zE,mBc,lBc);var nBc;c3(226,23,{3:1,34:1,23:1,226:1},uBc);var pBc,qBc,rBc,sBc;var hU=l4(WRd,'EdgeLabelPlacement',226,zE,wBc,vBc);var xBc;c3(197,23,{3:1,34:1,23:1,197:1},EBc);var zBc,ABc,BBc,CBc;var iU=l4(WRd,'EdgeRouting',197,zE,GBc,FBc);var HBc;c3(289,23,{3:1,34:1,23:1,289:1},QBc);var JBc,KBc,LBc,MBc,NBc,OBc;var jU=l4(WRd,'EdgeType',289,zE,SBc,RBc);var TBc;c3(853,1,uMd,bCc);_.ue=function cCc(a){aCc(a)};var VBc,WBc,XBc,YBc,ZBc,$Bc;var lU=k4(WRd,'FixedLayouterOptions',853);c3(854,1,{},dCc);_.Be=function eCc(){var a;return a=new $Fc,a};_.Ce=function fCc(a){};var kU=k4(WRd,'FixedLayouterOptions/FixedFactory',854);c3(316,23,{3:1,34:1,23:1,316:1},kCc);var gCc,hCc,iCc;var mU=l4(WRd,'HierarchyHandling',316,zE,mCc,lCc);var nCc;c3(86,23,{3:1,34:1,23:1,86:1},zCc);var pCc,qCc,rCc,sCc,tCc,uCc,vCc,wCc,xCc;var nU=l4(WRd,'NodeLabelPlacement',86,zE,BCc,ACc);var CCc;c3(225,23,{3:1,34:1,23:1,225:1},KCc);var ECc,FCc,GCc,HCc,ICc;var oU=l4(WRd,'PortAlignment',225,zE,MCc,LCc);var NCc;c3(83,23,{3:1,34:1,23:1,83:1},YCc);var PCc,QCc,RCc,SCc,TCc,UCc;var pU=l4(WRd,'PortConstraints',83,zE,$Cc,ZCc);var _Cc;c3(275,23,{3:1,34:1,23:1,275:1},fDc);var bDc,cDc,dDc;var qU=l4(WRd,'PortLabelPlacement',275,zE,hDc,gDc);var iDc;c3(69,23,{3:1,34:1,23:1,69:1},HDc);var kDc,lDc,mDc,nDc,oDc,pDc,qDc,rDc,sDc,tDc,uDc,vDc,wDc,xDc,yDc,zDc,ADc,BDc,CDc,DDc,EDc;var rU=l4(WRd,'PortSide',69,zE,KDc,JDc);var LDc;c3(857,1,uMd,UDc);_.ue=function VDc(a){TDc(a)};var NDc,ODc,PDc,QDc,RDc;var tU=k4(WRd,'RandomLayouterOptions',857);c3(858,1,{},WDc);_.Be=function XDc(){var a;return a=new wGc,a};_.Ce=function YDc(a){};var sU=k4(WRd,'RandomLayouterOptions/RandomFactory',858);c3(344,23,{3:1,34:1,23:1,344:1},cEc);var ZDc,$Dc,_Dc,aEc;var uU=l4(WRd,'SizeConstraint',344,zE,eEc,dEc);var fEc;c3(239,23,{3:1,34:1,23:1,239:1},rEc);var hEc,iEc,jEc,kEc,lEc,mEc,nEc,oEc,pEc;var vU=l4(WRd,'SizeOptions',239,zE,tEc,sEc);var uEc;c3(313,1,{},CEc,DEc,EEc);_.b=false;_.c=0;_.d=-1;_.e=0;_.f=false;_.j=0;var wU=k4(MRd,'BasicProgressMonitor',313);c3(848,244,GMd,NEc);_.Ae=function OEc(a,b){var c,d,e,f,g,h,i,j,k,l;xEc(b,'Box layout',2);f=Vpb(nA(AOc(a,(vzc(),uzc))));g=kA(AOc(a,rzc),119);c=Vpb(mA(AOc(a,mzc)));d=Vpb(mA(AOc(a,nzc)));e=kA(AOc(a,lzc),288);switch(e.g){case 0:h=(i=new zib((!a.a&&(a.a=new zkd(MV,a,10,11)),a.a)),bdb(),Vib(i,new QEc(d)),i);j=kA(AOc(a,pzc),9);j.a=$wnd.Math.max(j.a-g.b-g.c,0);j.b=$wnd.Math.max(j.b-g.d-g.a,0);k=nA(AOc(a,kzc));(k==null||(Npb(k),k)<=0)&&(k=1.3);l=KEc(h,f,g,j.a,j.b,c,(Npb(k),k));IFc(a,l.a,l.b,false,true);break;default:LEc(a,f,g,c);}zEc(b)};var DU=k4(MRd,'BoxLayoutProvider',848);c3(849,1,lKd,QEc);_.Ld=function REc(a,b){return PEc(this,kA(a,35),kA(b,35))};_.Fb=function SEc(a){return this===a};_.Md=function TEc(){return new jfb(this)};_.a=false;var xU=k4(MRd,'BoxLayoutProvider/1',849);c3(145,1,{145:1},_Ec,aFc);_.Ib=function bFc(){return this.c?aTc(this.c):vg(this.b)};var yU=k4(MRd,'BoxLayoutProvider/Group',145);c3(288,23,{3:1,34:1,23:1,288:1},hFc);var cFc,dFc,eFc,fFc;var zU=l4(MRd,'BoxLayoutProvider/PackingMode',288,zE,jFc,iFc);var kFc;c3(850,1,lKd,mFc);_.Fb=function oFc(a){return this===a};_.Md=function pFc(){return new jfb(this)};_.Ld=function nFc(a,b){return -C4(UEc(kA(a,145)),UEc(kA(b,145)))};var AU=k4(MRd,'BoxLayoutProvider/lambda$0$Type',850);c3(851,1,lKd,qFc);_.Fb=function sFc(a){return this===a};_.Md=function tFc(){return new jfb(this)};_.Ld=function rFc(a,b){return C4(UEc(kA(a,145)),UEc(kA(b,145)))};var BU=k4(MRd,'BoxLayoutProvider/lambda$1$Type',851);c3(852,1,lKd,uFc);_.Fb=function wFc(a){return this===a};_.Md=function xFc(){return new jfb(this)};_.Ld=function vFc(a,b){return C4(UEc(kA(a,145)),UEc(kA(b,145)))};var CU=k4(MRd,'BoxLayoutProvider/lambda$2$Type',852);c3(833,1,{},NFc);_.td=function OFc(a){EFc(this.a,this.b,a)};_.a=0;_.b=0;var EU=k4(MRd,'ElkUtil/lambda$0$Type',833);c3(834,1,{},PFc);_.td=function QFc(a){FFc(this.a,this.b,a)};_.a=0;_.b=0;var FU=k4(MRd,'ElkUtil/lambda$1$Type',834);c3(835,1,{},RFc);_.td=function SFc(a){GFc(this.a,this.b,a)};_.a=0;_.b=0;var GU=k4(MRd,'ElkUtil/lambda$2$Type',835);c3(322,1,{34:1,322:1},UFc);_.vd=function VFc(a){return TFc(this,kA(a,210))};_.Fb=function WFc(a){var b;if(sA(a,322)){b=kA(a,322);return this.a==b.a}return false};_.Hb=function XFc(){return zA(this.a)};_.Ib=function YFc(){return this.a+' (exclusive)'};_.a=0;var HU=k4(MRd,'ExclusiveBounds/ExclusiveLowerBound',322);c3(963,244,GMd,$Fc);_.Ae=function _Fc(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;xEc(b,zSd,1);f=kA(AOc(a,($Ac(),Qzc)),197);m=0;n=0;for(t=new a0c((!a.a&&(a.a=new zkd(MV,a,10,11)),a.a));t.e!=t.i._b();){r=kA($_c(t),35);C=kA(AOc(r,(_Bc(),$Bc)),9);if(C){pPc(r,C.a,C.b);if(kA(AOc(r,WBc),185).pc((bEc(),ZDc))){o=kA(AOc(r,XBc),9);o.a>0&&o.b>0&&IFc(r,o.a,o.b,true,true)}}m=$wnd.Math.max(m,r.i+r.g);n=$wnd.Math.max(n,r.j+r.f);for(k=new a0c((!r.n&&(r.n=new zkd(LV,r,1,7)),r.n));k.e!=k.i._b();){i=kA($_c(k),137);C=kA(AOc(i,$Bc),9);!!C&&pPc(i,C.a,C.b);m=$wnd.Math.max(m,r.i+i.i+i.g);n=$wnd.Math.max(n,r.j+i.j+i.f)}for(w=new a0c((!r.c&&(r.c=new zkd(NV,r,9,9)),r.c));w.e!=w.i._b();){v=kA($_c(w),121);C=kA(AOc(v,$Bc),9);!!C&&pPc(v,C.a,C.b);A=r.i+v.i;B=r.j+v.j;m=$wnd.Math.max(m,A+v.g);n=$wnd.Math.max(n,B+v.f);for(j=new a0c((!v.n&&(v.n=new zkd(LV,v,1,7)),v.n));j.e!=j.i._b();){i=kA($_c(j),137);C=kA(AOc(i,$Bc),9);!!C&&pPc(i,C.a,C.b);m=$wnd.Math.max(m,A+i.i+i.g);n=$wnd.Math.max(n,B+i.j+i.f)}}for(e=kl(TWc(r));So(e);){c=kA(To(e),105);l=ZFc(c);m=$wnd.Math.max(m,l.a);n=$wnd.Math.max(n,l.b)}for(d=kl(SWc(r));So(d);){c=kA(To(d),105);if(UWc(kA(WXc((!c.b&&(c.b=new pxd(HV,c,4,7)),c.b),0),97))!=a){l=ZFc(c);m=$wnd.Math.max(m,l.a);n=$wnd.Math.max(n,l.b)}}}if(f==(DBc(),zBc)){for(s=new a0c((!a.a&&(a.a=new zkd(MV,a,10,11)),a.a));s.e!=s.i._b();){r=kA($_c(s),35);for(d=kl(TWc(r));So(d);){c=kA(To(d),105);h=(g=new Vyc,g);h.b==0?COc(c,_zc,null):COc(c,_zc,h)}}}u=kA(AOc(a,(_Bc(),YBc)),119);q=m+u.b+u.c;p=n+u.d+u.a;IFc(a,q,p,true,true);zEc(b)};var IU=k4(MRd,'FixedLayoutProvider',963);c3(786,131,FMd,aGc);var KU=k4(MRd,'IndividualSpacings',786);c3(635,1,{},eGc);_.c=0;var LU=k4(MRd,'InstancePool',635);c3(48,1,{20:1,48:1},fGc);_.sc=function hGc(a){i5(this,a)};_.Fb=function gGc(a){var b,c,d;if(sA(a,48)){c=kA(a,48);b=this.a==null?c.a==null:kb(this.a,c.a);d=this.b==null?c.b==null:kb(this.b,c.b);return b&&d}else{return false}};_.Hb=function iGc(){var a,b,c,d,e,f;c=this.a==null?0:ob(this.a);a=c&AKd;b=c&-65536;f=this.b==null?0:ob(this.b);d=f&AKd;e=f&-65536;return a^e>>16&AKd|b^d<<16};_.tc=function jGc(){return new lGc(this)};_.Ib=function kGc(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+f3(this.b)+')':this.b==null?'pair('+f3(this.a)+',null)':'pair('+f3(this.a)+','+f3(this.b)+')'};var NU=k4(MRd,'Pair',48);c3(859,1,wJd,lGc);_.gc=function mGc(a){Bhb(this,a)};_.hc=function nGc(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.ic=function oGc(){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 x2(new djb)};_.jc=function pGc(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw x2(new P4)};_.b=false;_.c=false;var MU=k4(MRd,'Pair/1',859);c3(404,1,{404:1},qGc);_.Fb=function rGc(a){return ejb(this.a,kA(a,404).a)&&ejb(this.c,kA(a,404).c)&&ejb(this.d,kA(a,404).d)&&ejb(this.b,kA(a,404).b)};_.Hb=function sGc(){return xcb(xz(pz(NE,1),oJd,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function tGc(){return '('+this.a+qJd+this.c+qJd+this.d+qJd+this.b+')'};var OU=k4(MRd,'Quadruple',404);c3(957,244,GMd,wGc);_.Ae=function xGc(a,b){var c,d,e,f,g;xEc(b,'Random Layout',1);if((!a.a&&(a.a=new zkd(MV,a,10,11)),a.a).i==0){zEc(b);return}f=kA(AOc(a,(SDc(),QDc)),21);!!f&&f.a!=0?(e=new bkb(f.a)):(e=new akb);c=Vpb(nA(AOc(a,NDc)));g=Vpb(nA(AOc(a,RDc)));d=kA(AOc(a,ODc),119);vGc(a,e,c,g,d);zEc(b)};var PU=k4(MRd,'RandomLayoutProvider',957);c3(490,1,{});_.Qe=function AGc(){return new Jyc(this.f.i,this.f.j)};_.xe=function BGc(a){if(BWc(a,($Ac(),AAc))){return AOc(this.f,yGc)}return AOc(this.f,a)};_.Re=function CGc(){return new Jyc(this.f.g,this.f.f)};_.Se=function DGc(){return this.g};_.ye=function EGc(a){return BOc(this.f,a)};_.Te=function FGc(a){rPc(this.f,a.a);sPc(this.f,a.b)};_.Ue=function GGc(a){qPc(this.f,a.a);oPc(this.f,a.b)};_.Ve=function HGc(a){this.g=a};_.g=0;var yGc;var QU=k4(CSd,'ElkGraphAdapters/AbstractElkGraphElementAdapter',490);c3(491,1,{741:1},IGc);_.We=function JGc(){var a,b;if(!this.b){this.b=Ur(_Oc(this.a).i);for(b=new a0c(_Oc(this.a));b.e!=b.i._b();){a=kA($_c(b),137);tbb(this.b,new NGc(a))}}return this.b};_.b=null;var RU=k4(CSd,'ElkGraphAdapters/ElkEdgeAdapter',491);c3(562,490,{},LGc);_.Xe=function MGc(){return KGc(this)};_.a=null;var SU=k4(CSd,'ElkGraphAdapters/ElkGraphAdapter',562);c3(564,490,{271:1},NGc);var TU=k4(CSd,'ElkGraphAdapters/ElkLabelAdapter',564);c3(563,490,{739:1},QGc);_.We=function TGc(){return OGc(this)};_.$e=function UGc(){var a;return a=kA(AOc(this.f,($Ac(),bAc)),135),!a&&(a=new mGb),a};_.af=function WGc(){return PGc(this)};_.cf=function YGc(a){var b;b=new pGb(a);COc(this.f,($Ac(),bAc),b)};_.df=function ZGc(a){COc(this.f,($Ac(),oAc),new ZGb(a))};_.Ye=function RGc(){return this.d};_.Ze=function SGc(){var a,b;if(!this.a){this.a=new Gbb;for(b=kl(SWc(kA(this.f,35)));So(b);){a=kA(To(b),105);tbb(this.a,new IGc(a))}}return this.a};_._e=function VGc(){var a,b;if(!this.c){this.c=new Gbb;for(b=kl(TWc(kA(this.f,35)));So(b);){a=kA(To(b),105);tbb(this.c,new IGc(a))}}return this.c};_.bf=function XGc(){return YSc(kA(this.f,35)).i!=0||Vpb(mA(kA(this.f,35).xe(($Ac(),Yzc))))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var UU=k4(CSd,'ElkGraphAdapters/ElkNodeAdapter',563);c3(997,490,{740:1},_Gc);_.We=function bHc(){return $Gc(this)};_.Ze=function aHc(){var a,b;if(!this.a){this.a=Tr(kA(this.f,121).Tf().i);for(b=new a0c(kA(this.f,121).Tf());b.e!=b.i._b();){a=kA($_c(b),105);tbb(this.a,new IGc(a))}}return this.a};_._e=function cHc(){var a,b;if(!this.c){this.c=Tr(kA(this.f,121).Uf().i);for(b=new a0c(kA(this.f,121).Uf());b.e!=b.i._b();){a=kA($_c(b),105);tbb(this.c,new IGc(a))}}return this.c};_.ef=function dHc(){return kA(kA(this.f,121).xe(($Ac(),HAc)),69)};_.ff=function eHc(){var a,b,c,d,e,f,g,h;d=mTc(kA(this.f,121));for(c=new a0c(kA(this.f,121).Uf());c.e!=c.i._b();){a=kA($_c(c),105);for(h=new a0c((!a.c&&(a.c=new pxd(HV,a,5,8)),a.c));h.e!=h.i._b();){g=kA($_c(h),97);if(dXc(UWc(g),d)){return true}else if(UWc(g)==d&&Vpb(mA(AOc(a,($Ac(),Zzc))))){return true}}}for(b=new a0c(kA(this.f,121).Tf());b.e!=b.i._b();){a=kA($_c(b),105);for(f=new a0c((!a.b&&(a.b=new pxd(HV,a,4,7)),a.b));f.e!=f.i._b();){e=kA($_c(f),97);if(dXc(UWc(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var VU=k4(CSd,'ElkGraphAdapters/ElkPortAdapter',997);c3(265,23,{3:1,34:1,23:1,265:1},lHc);var fHc,gHc,hHc,iHc;var WU=l4(DSd,'LabelSide',265,zE,nHc,mHc);var oHc;c3(676,1,{},sHc);_.td=function tHc(a){rHc(kA(a,739),true,false)};var XU=k4(DSd,'NodeLabelAndSizeCalculator/lambda$0$Type',676);c3(571,1,{},AHc);_.b=true;_.c=true;_.d=true;_.e=true;var YU=k4(DSd,lOd,571);c3(171,1,{171:1});_.j=false;_.k=false;var $U=k4(ESd,'Cell',171);c3(114,171,{114:1,171:1},EHc);_.Pf=function FHc(){return DHc(this)};_.Qf=function GHc(){var a;a=this.n;return this.a.a+a.b+a.c};var ZU=k4(ESd,'AtomicCell',114);c3(203,23,{3:1,34:1,23:1,203:1},LHc);var HHc,IHc,JHc;var _U=l4(ESd,'ContainerArea',203,zE,NHc,MHc);var OHc;c3(307,171,FSd);var aV=k4(ESd,'ContainerCell',307);c3(1179,307,FSd,hIc);_.Pf=function iIc(){var a;a=0;this.e?this.b?(a=this.b.b):!!this.a[1][1]&&(a=this.a[1][1].Pf()):(a=gIc(this,cIc(this,true)));return a>0?a+this.n.d+this.n.a:0};_.Qf=function jIc(){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].Qf())}else if(this.g){e=gIc(this,aIc(this,null,true))}else{for(b=(KHc(),xz(pz(_U,1),jKd,203,0,[HHc,IHc,JHc])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Rf=function kIc(){var a,b,c,d,e;if(this.g){a=aIc(this,null,false);for(c=(KHc(),xz(pz(_U,1),jKd,203,0,[HHc,IHc,JHc])),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);YHc(this,IHc,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var VHc=0,WHc=0;var bV=k4(ESd,'GridContainerCell',1179);c3(419,23,{3:1,34:1,23:1,419:1},qIc);var mIc,nIc,oIc;var cV=l4(ESd,'HorizontalLabelAlignment',419,zE,sIc,rIc);var tIc;c3(267,171,{171:1,267:1},EIc,FIc,GIc);_.Pf=function HIc(){return AIc(this)};_.Qf=function IIc(){return BIc(this)};_.a=0;_.c=false;var dV=k4(ESd,'LabelCell',267);c3(219,307,{171:1,307:1,219:1},QIc);_.Pf=function RIc(){return JIc(this)};_.Qf=function SIc(){return KIc(this)};_.Rf=function TIc(){LIc(this)};_.Sf=function UIc(){MIc(this)};_.b=0;_.c=0;_.d=false;var iV=k4(ESd,'StripContainerCell',219);c3(1394,1,SLd,VIc);_.Nb=function WIc(a){return !!kA(a,171)&&kA(a,171).k};var eV=k4(ESd,'StripContainerCell/lambda$0$Type',1394);c3(1395,1,{},XIc);_.oe=function YIc(a){return kA(a,171).Qf()};var fV=k4(ESd,'StripContainerCell/lambda$1$Type',1395);c3(1396,1,SLd,ZIc);_.Nb=function $Ic(a){return !!kA(a,171)&&kA(a,171).j};var gV=k4(ESd,'StripContainerCell/lambda$2$Type',1396);c3(1397,1,{},_Ic);_.oe=function aJc(a){return kA(a,171).Pf()};var hV=k4(ESd,'StripContainerCell/lambda$3$Type',1397);c3(420,23,{3:1,34:1,23:1,420:1},fJc);var bJc,cJc,dJc;var jV=l4(ESd,'VerticalLabelAlignment',420,zE,hJc,gJc);var iJc;c3(697,1,{},lJc);_.c=0;_.d=0;_.k=0;_.s=0;_.u=0;_.B=false;var mV=k4(HSd,'NodeContext',697);c3(1177,1,lKd,oJc);_.Fb=function qJc(a){return this===a};_.Md=function rJc(){return new jfb(this)};_.Ld=function pJc(a,b){return nJc(kA(a,69),kA(b,69))};var kV=k4(HSd,'NodeContext/0methodref$comparePortSides$Type',1177);c3(1178,1,lKd,sJc);_.Fb=function uJc(a){return this===a};_.Md=function vJc(){return new jfb(this)};_.Ld=function tJc(a,b){return mJc(kA(a,111),kA(b,111))};var lV=k4(HSd,'NodeContext/1methodref$comparePortContexts$Type',1178);c3(147,23,{3:1,34:1,23:1,147:1},VJc);var wJc,xJc,yJc,zJc,AJc,BJc,CJc,DJc,EJc,FJc,GJc,HJc,IJc,JJc,KJc,LJc,MJc,NJc,OJc,PJc,QJc,RJc;var nV=l4(HSd,'NodeLabelLocation',147,zE,YJc,XJc);var ZJc;c3(111,1,{111:1},aKc);var oV=k4(HSd,'PortContext',111);c3(1182,1,{},mKc);_.oe=function nKc(a){return !kA(a,111).c?0:BIc(kA(a,111).c)};var pV=k4(ISd,'HorizontalPortPlacementSizeCalculator/lambda$0$Type',1182);c3(1184,1,{},vKc);_.td=function wKc(a){yIc(kA(a,267))};var qV=k4(ISd,'LabelPlacer/lambda$0$Type',1184);c3(1185,1,SLd,xKc);_.Nb=function yKc(a){return !!kA(a,111).c};var rV=k4(ISd,'LabelPlacer/lambda$1$Type',1185);c3(1186,1,{},zKc);_.td=function AKc(a){yIc(kA(a,111).c)};var sV=k4(ISd,'LabelPlacer/lambda$2$Type',1186);var BKc;c3(1181,1,{},HKc);_.td=function IKc(a){CKc();_Jc(kA(a,111))};var tV=k4(ISd,'NodeLabelAndSizeUtilities/lambda$0$Type',1181);c3(698,1,{},NKc);_.td=function OKc(a){LKc(this.a,this.b,a)};_.b=false;var uV=k4(ISd,'NodeLabelCellCreator/lambda$0$Type',698);c3(1180,1,{},UKc);_.td=function VKc(a){TKc(this.a,a)};var vV=k4(ISd,'PortContextCreator/lambda$0$Type',1180);var aLc;c3(1183,1,{},tLc);_.oe=function uLc(a){return !kA(a,111).c?0:AIc(kA(a,111).c)};var wV=k4(ISd,'VerticalPortPlacementSizeCalculator/lambda$0$Type',1183);c3(1525,1,{},wLc);var yV=k4(JSd,'GreedyRectangleStripOverlapRemover',1525);c3(1526,1,lKd,yLc);_.Fb=function ALc(a){return this===a};_.Md=function BLc(){return new jfb(this)};_.Ld=function zLc(a,b){return xLc(kA(a,194),kA(b,194))};var xV=k4(JSd,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1526);c3(1497,1,{},ILc);_.a=5;_.e=0;var EV=k4(JSd,'RectangleStripOverlapRemover',1497);c3(1498,1,lKd,MLc);_.Fb=function OLc(a){return this===a};_.Md=function PLc(){return new jfb(this)};_.Ld=function NLc(a,b){return JLc(kA(a,194),kA(b,194))};var zV=k4(JSd,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1498);c3(1500,1,lKd,QLc);_.Fb=function SLc(a){return this===a};_.Md=function TLc(){return new jfb(this)};_.Ld=function RLc(a,b){return KLc(kA(a,194),kA(b,194))};var AV=k4(JSd,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1500);c3(374,23,{3:1,34:1,23:1,374:1},ZLc);var ULc,VLc,WLc,XLc;var BV=l4(JSd,'RectangleStripOverlapRemover/OverlapRemovalDirection',374,zE,_Lc,$Lc);var aMc;c3(194,1,{194:1},cMc);var CV=k4(JSd,'RectangleStripOverlapRemover/RectangleNode',194);c3(1499,1,{},dMc);_.td=function eMc(a){DLc(this.a,kA(a,194))};var DV=k4(JSd,'RectangleStripOverlapRemover/lambda$0$Type',1499);var sY=m4(KSd,'EObject');var FV=m4(LSd,MSd);var GV=m4(LSd,NSd);var KV=m4(LSd,OSd);var OV=m4(LSd,'ElkShape');var HV=m4(LSd,PSd);var JV=m4(LSd,QSd);var IV=m4(LSd,RSd);var qY=m4(KSd,SSd);var oY=m4(KSd,'EFactory');var fMc;var rY=m4(KSd,TSd);var uY=m4(KSd,'EPackage');var hMc;var jMc,kMc,lMc,mMc,nMc,oMc,pMc,qMc,rMc,sMc,tMc;var LV=m4(LSd,USd);var MV=m4(LSd,VSd);var NV=m4(LSd,WSd);c3(87,1,XSd);_.cg=function wMc(){this.dg();return null};_.dg=function xMc(){return null};_.eg=function yMc(){return this.dg(),false};_.fg=function zMc(){return false};_.gg=function AMc(a){vMc(this,a)};var hX=k4(YSd,'BasicNotifierImpl',87);c3(92,87,cTd);_.Hg=function DNc(){return PMc(this)};_.hg=function bNc(a,b){return a};_.ig=function cNc(){throw x2(new U6)};_.jg=function dNc(a){var b;return b=Wkd(kA(Gbd(this.mg(),this.og()),17)),this.yg().Cg(this,b.n,b.f,a)};_.kg=function eNc(a,b){throw x2(new U6)};_.lg=function fNc(a,b,c){return CMc(this,a,b,c)};_.mg=function gNc(){var a;if(this.ig()){a=this.ig().pj();if(a){return a}}return this.Rg()};_.ng=function hNc(){return DMc(this)};_.og=function iNc(){throw x2(new U6)};_.pg=function kNc(){var a,b;b=this.Jg().qj();!b&&this.ig().vj(b=(Ohd(),a=Xdd(Cbd(this.mg())),a==null?Nhd:new Rhd(this,a)));return b};_.qg=function mNc(a,b){return a};_.rg=function nNc(a){var b;b=a.Vi();return !b?Mbd(this.mg(),a):a.pi()};_.sg=function oNc(){var a;a=this.ig();return !a?null:a.sj()};_.tg=function pNc(){return !this.ig()?null:this.ig().pj()};_.ug=function qNc(a,b,c){return HMc(this,a,b,c)};_.vg=function rNc(a){return IMc(this,a)};_.wg=function sNc(a,b){return JMc(this,a,b)};_.xg=function tNc(){var a;a=this.ig();return !!a&&a.tj()};_.yg=function uNc(){throw x2(new U6)};_.zg=function vNc(){return LMc(this)};_.Ag=function wNc(a,b,c,d){return MMc(this,a,b,d)};_.Bg=function xNc(a,b,c){var d;return d=kA(Gbd(this.mg(),b),61),d.aj().dj(this,this.Qg(),b-this.Sg(),a,c)};_.Cg=function yNc(a,b,c,d){return NMc(this,a,b,d)};_.Dg=function zNc(a,b,c){var d;return d=kA(Gbd(this.mg(),b),61),d.aj().ej(this,this.Qg(),b-this.Sg(),a,c)};_.Eg=function ANc(){return !!this.ig()&&(this.ig().rj(),false)};_.Fg=function BNc(a){return OMc(this,a)};_.Gg=function CNc(a){var b;return b=this.rg(a),b>=0?this.Fg(b):UMc(this,a)};_.Ig=function ENc(a){return SMc(this,a)};_.Jg=function FNc(){throw x2(new U6)};_.Kg=function GNc(){return !this.ig()?null:this.ig().rj()};_.Lg=function HNc(){return LMc(this)};_.Mg=function INc(a,b){YMc(this,a,b)};_.Ng=function JNc(a){this.Jg().uj(a)};_.Og=function KNc(a){this.Jg().wj(a)};_.Pg=function LNc(a,b){var c,d,e,f;f=this.sg();if(!!f&&!!a){b=q_c(f.fk(),this,b);f.jk(this)}d=this.yg();if(d){if((jNc(this,this.yg(),this.og()).Bb&sLd)!=0){e=d.zg();!!e&&(!a?e.ik(this):!f&&e.jk(this))}else{b=(c=this.og(),c>=0?this.jg(b):this.yg().Cg(this,-1-c,null,b));b=this.lg(null,-1,b)}}this.Og(a);return b};_.Qg=function MNc(){return $Mc(this)};_.Rg=function NNc(){return (P6c(),O6c).S};_.Sg=function ONc(){return Lbd(this.Rg())};_.Ib=function PNc(){return aNc(this)};var GY=k4(dTd,'BasicEObjectImpl',92);var B6c;c3(107,92,{95:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1});_.Tg=function YNc(a){var b;b=SNc(this);return b[a]};_.Ug=function ZNc(a,b){var c;c=SNc(this);wz(c,a,b)};_.Vg=function $Nc(a){var b;b=SNc(this);wz(b,a,null)};_.cg=function _Nc(){return kA(VNc(this,4),116)};_.dg=function aOc(){throw x2(new U6)};_.eg=function bOc(){return (this.Db&4)!=0};_.ig=function cOc(){throw x2(new U6)};_.Wg=function dOc(a){XNc(this,2,a)};_.kg=function eOc(a,b){this.Db=b<<16|this.Db&255;this.Wg(a)};_.mg=function fOc(){return RNc(this)};_.og=function gOc(){return this.Db>>16};_.pg=function hOc(){var a,b;return Ohd(),b=Xdd(Cbd((a=kA(VNc(this,16),24),!a?this.Rg():a))),b==null?(null,Nhd):new Rhd(this,b)};_.fg=function iOc(){return (this.Db&1)==0};_.sg=function jOc(){return kA(VNc(this,128),1628)};_.tg=function kOc(){return kA(VNc(this,16),24)};_.xg=function lOc(){return (this.Db&32)!=0};_.yg=function mOc(){return kA(VNc(this,2),42)};_.Eg=function nOc(){return (this.Db&64)!=0};_.Jg=function oOc(){throw x2(new U6)};_.Kg=function pOc(){return kA(VNc(this,64),261)};_.Ng=function qOc(a){XNc(this,16,a)};_.Og=function rOc(a){XNc(this,128,a)};_.Qg=function sOc(){return TNc(this)};_.Db=0;var v_=k4(dTd,'MinimalEObjectImpl',107);c3(108,107,{95:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1,108:1});_.Wg=function tOc(a){this.Cb=a};_.yg=function uOc(){return this.Cb};var u_=k4(dTd,'MinimalEObjectImpl/Container',108);c3(1676,108,{95:1,379:1,93:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1,108:1});_.ve=function DOc(a){!this.o&&(this.o=new T8c((uMc(),rMc),$V,this,0));Z1c(this.o,!a.p?(bdb(),bdb(),_cb):a.p);return this};_.ug=function EOc(a,b,c){return vOc(this,a,b,c)};_.Dg=function FOc(a,b,c){return wOc(this,a,b,c)};_.Fg=function GOc(a){return xOc(this,a)};_.Mg=function HOc(a,b){yOc(this,a,b)};_.Rg=function IOc(){return uMc(),tMc};_.we=function JOc(){return zOc(this)};_.xe=function KOc(a){return AOc(this,a)};_.ye=function LOc(a){return BOc(this,a)};_.ze=function MOc(a,b){return COc(this,a,b)};var PV=k4(eTd,'EMapPropertyHolderImpl',1676);c3(502,108,{95:1,531:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1,108:1},QOc);_.ug=function ROc(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return HMc(this,a,b,c)};_.Fg=function SOc(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return OMc(this,a)};_.Mg=function TOc(a,b){switch(a){case 0:OOc(this,Vpb(nA(b)));return;case 1:POc(this,Vpb(nA(b)));return;}YMc(this,a,b)};_.Rg=function UOc(){return uMc(),jMc};_.Ib=function VOc(){var a;if((this.Db&64)!=0)return aNc(this);a=new B6(aNc(this));a.a+=' (x: ';t6(a,this.a);a.a+=', y: ';t6(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var QV=k4(eTd,'ElkBendPointImpl',502);c3(651,1676,{95:1,379:1,253:1,93:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1,108:1});_.ug=function cPc(a,b,c){return WOc(this,a,b,c)};_.Bg=function dPc(a,b,c){return XOc(this,a,b,c)};_.Dg=function ePc(a,b,c){return YOc(this,a,b,c)};_.Fg=function fPc(a){return ZOc(this,a)};_.Mg=function gPc(a,b){$Oc(this,a,b)};_.Rg=function hPc(){return uMc(),nMc};_.Vf=function iPc(){return _Oc(this)};_.Ib=function jPc(){return bPc(this)};_.k=null;var UV=k4(eTd,'ElkGraphElementImpl',651);c3(652,651,{95:1,379:1,253:1,429:1,93:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1,108:1});_.ug=function uPc(a,b,c){return kPc(this,a,b,c)};_.Fg=function vPc(a){return lPc(this,a)};_.Mg=function wPc(a,b){mPc(this,a,b)};_.Rg=function xPc(){return uMc(),sMc};_.Wf=function yPc(){return this.f};_.Xf=function zPc(){return this.g};_.Yf=function APc(){return this.i};_.Zf=function BPc(){return this.j};_.$f=function CPc(a,b){nPc(this,a,b)};_._f=function DPc(a,b){pPc(this,a,b)};_.ag=function EPc(a){rPc(this,a)};_.bg=function FPc(a){sPc(this,a)};_.Ib=function GPc(){return tPc(this)};_.f=0;_.g=0;_.i=0;_.j=0;var _V=k4(eTd,'ElkShapeImpl',652);c3(653,652,{95:1,379:1,97:1,253:1,429:1,93:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1,108:1});_.ug=function NPc(a,b,c){return HPc(this,a,b,c)};_.Bg=function OPc(a,b,c){return IPc(this,a,b,c)};_.Dg=function PPc(a,b,c){return JPc(this,a,b,c)};_.Fg=function QPc(a){return KPc(this,a)};_.Mg=function RPc(a,b){LPc(this,a,b)};_.Rg=function SPc(){return uMc(),kMc};_.Tf=function TPc(){return !this.d&&(this.d=new pxd(JV,this,8,5)),this.d};_.Uf=function UPc(){return !this.e&&(this.e=new pxd(JV,this,7,4)),this.e};var RV=k4(eTd,'ElkConnectableShapeImpl',653);c3(183,651,{95:1,379:1,105:1,253:1,183:1,93:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1,108:1},cQc);_.jg=function dQc(a){return WPc(this,a)};_.ug=function eQc(a,b,c){switch(a){case 3:return XPc(this);case 4:return !this.b&&(this.b=new pxd(HV,this,4,7)),this.b;case 5:return !this.c&&(this.c=new pxd(HV,this,5,8)),this.c;case 6:return !this.a&&(this.a=new zkd(IV,this,6,6)),this.a;case 7:return B3(),!this.b&&(this.b=new pxd(HV,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new pxd(HV,this,5,8)),this.c.i<=1)?false:true;case 8:return B3(),$Pc(this)?true:false;case 9:return B3(),_Pc(this)?true:false;case 10:return B3(),!this.b&&(this.b=new pxd(HV,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new pxd(HV,this,5,8)),this.c.i!=0)?true:false;}return WOc(this,a,b,c)};_.Bg=function fQc(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?WPc(this,c):this.Cb.Cg(this,-1-d,null,c)));return VPc(this,kA(a,35),c);case 4:return !this.b&&(this.b=new pxd(HV,this,4,7)),p_c(this.b,a,c);case 5:return !this.c&&(this.c=new pxd(HV,this,5,8)),p_c(this.c,a,c);case 6:return !this.a&&(this.a=new zkd(IV,this,6,6)),p_c(this.a,a,c);}return XOc(this,a,b,c)};_.Dg=function gQc(a,b,c){switch(b){case 3:return VPc(this,null,c);case 4:return !this.b&&(this.b=new pxd(HV,this,4,7)),q_c(this.b,a,c);case 5:return !this.c&&(this.c=new pxd(HV,this,5,8)),q_c(this.c,a,c);case 6:return !this.a&&(this.a=new zkd(IV,this,6,6)),q_c(this.a,a,c);}return YOc(this,a,b,c)};_.Fg=function hQc(a){switch(a){case 3:return !!XPc(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 pxd(HV,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new pxd(HV,this,5,8)),this.c.i<=1));case 8:return $Pc(this);case 9:return _Pc(this);case 10:return !this.b&&(this.b=new pxd(HV,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new pxd(HV,this,5,8)),this.c.i!=0);}return ZOc(this,a)};_.Mg=function iQc(a,b){switch(a){case 3:aQc(this,kA(b,35));return;case 4:!this.b&&(this.b=new pxd(HV,this,4,7));r_c(this.b);!this.b&&(this.b=new pxd(HV,this,4,7));gXc(this.b,kA(b,13));return;case 5:!this.c&&(this.c=new pxd(HV,this,5,8));r_c(this.c);!this.c&&(this.c=new pxd(HV,this,5,8));gXc(this.c,kA(b,13));return;case 6:!this.a&&(this.a=new zkd(IV,this,6,6));r_c(this.a);!this.a&&(this.a=new zkd(IV,this,6,6));gXc(this.a,kA(b,13));return;}$Oc(this,a,b)};_.Rg=function jQc(){return uMc(),lMc};_.Ib=function kQc(){return bQc(this)};var SV=k4(eTd,'ElkEdgeImpl',183);c3(405,1676,{95:1,379:1,270:1,405:1,93:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1,108:1},BQc);_.jg=function CQc(a){return mQc(this,a)};_.ug=function DQc(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 fdd(GV,this,5)),this.a;case 6:return pQc(this);case 7:if(b)return oQc(this);return this.i;case 8:if(b)return nQc(this);return this.f;case 9:return !this.g&&(this.g=new pxd(IV,this,9,10)),this.g;case 10:return !this.e&&(this.e=new pxd(IV,this,10,9)),this.e;case 11:return this.d;}return vOc(this,a,b,c)};_.Bg=function EQc(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQc(this,c):this.Cb.Cg(this,-1-e,null,c)));return lQc(this,kA(a,105),c);case 9:return !this.g&&(this.g=new pxd(IV,this,9,10)),p_c(this.g,a,c);case 10:return !this.e&&(this.e=new pxd(IV,this,10,9)),p_c(this.e,a,c);}return f=kA(Gbd((d=kA(VNc(this,16),24),!d?(uMc(),mMc):d),b),61),f.aj().dj(this,TNc(this),b-Lbd((uMc(),mMc)),a,c)};_.Dg=function FQc(a,b,c){switch(b){case 5:return !this.a&&(this.a=new fdd(GV,this,5)),q_c(this.a,a,c);case 6:return lQc(this,null,c);case 9:return !this.g&&(this.g=new pxd(IV,this,9,10)),q_c(this.g,a,c);case 10:return !this.e&&(this.e=new pxd(IV,this,10,9)),q_c(this.e,a,c);}return wOc(this,a,b,c)};_.Fg=function GQc(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 !!pQc(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 xOc(this,a)};_.Mg=function HQc(a,b){switch(a){case 1:yQc(this,Vpb(nA(b)));return;case 2:zQc(this,Vpb(nA(b)));return;case 3:rQc(this,Vpb(nA(b)));return;case 4:sQc(this,Vpb(nA(b)));return;case 5:!this.a&&(this.a=new fdd(GV,this,5));r_c(this.a);!this.a&&(this.a=new fdd(GV,this,5));gXc(this.a,kA(b,13));return;case 6:wQc(this,kA(b,105));return;case 7:vQc(this,kA(b,97));return;case 8:uQc(this,kA(b,97));return;case 9:!this.g&&(this.g=new pxd(IV,this,9,10));r_c(this.g);!this.g&&(this.g=new pxd(IV,this,9,10));gXc(this.g,kA(b,13));return;case 10:!this.e&&(this.e=new pxd(IV,this,10,9));r_c(this.e);!this.e&&(this.e=new pxd(IV,this,10,9));gXc(this.e,kA(b,13));return;case 11:tQc(this,pA(b));return;}yOc(this,a,b)};_.Rg=function IQc(){return uMc(),mMc};_.Ib=function JQc(){return AQc(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var TV=k4(eTd,'ElkEdgeSectionImpl',405);c3(142,108,{95:1,91:1,87:1,139:1,51:1,103:1,42:1,92:1,142:1,107:1,108:1});_.ug=function NQc(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab}return EMc(this,a-Lbd(this.Rg()),Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),a),b,c)};_.Bg=function OQc(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),p_c(this.Ab,a,c)}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),b),61),e.aj().dj(this,TNc(this),b-Lbd(this.Rg()),a,c)};_.Dg=function PQc(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c)}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),b),61),e.aj().ej(this,TNc(this),b-Lbd(this.Rg()),a,c)};_.Fg=function QQc(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return FMc(this,a-Lbd(this.Rg()),Gbd((b=kA(VNc(this,16),24),!b?this.Rg():b),a))};_.Ig=function RQc(a){return KQc(this,a)};_.Mg=function SQc(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;}GMc(this,a-Lbd(this.Rg()),Gbd((c=kA(VNc(this,16),24),!c?this.Rg():c),a),b)};_.Og=function TQc(a){XNc(this,128,a)};_.Rg=function UQc(){return j7c(),$6c};_.Xg=function VQc(){this.Bb|=1};_.Yg=function WQc(a){return MQc(this,a)};_.Bb=0;var kZ=k4(dTd,'EModelElementImpl',142);c3(638,142,{95:1,91:1,87:1,430:1,139:1,51:1,103:1,42:1,92:1,142:1,107:1,108:1},gRc);_.Zg=function hRc(a,b){return bRc(this,a,b)};_.$g=function iRc(a){var b,c,d,e,f;if(this.a!=Nad(a)||(a.Bb&256)!=0){throw x2(new O4(kTd+a.zb+hTd))}for(d=Kbd(a);Ebd(d.a).i!=0;){c=kA(Ved(d,0,(b=kA(WXc(Ebd(d.a),0),84),f=b.c,sA(f,96)?kA(f,24):(j7c(),a7c))),24);if(Pad(c)){e=Nad(c).dh().$g(c);kA(e,42).Ng(a);return e}d=Kbd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new d8c(a):new T7c(a)};_._g=function jRc(a,b){return cRc(this,a,b)};_.ug=function kRc(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.a;}return EMc(this,a-Lbd((j7c(),X6c)),Gbd((d=kA(VNc(this,16),24),!d?X6c:d),a),b,c)};_.Bg=function lRc(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),p_c(this.Ab,a,c);case 1:!!this.a&&(c=kA(this.a,42).Cg(this,4,uY,c));return _Qc(this,kA(a,207),c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),X6c):d),b),61),e.aj().dj(this,TNc(this),b-Lbd((j7c(),X6c)),a,c)};_.Dg=function mRc(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 1:return _Qc(this,null,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),X6c):d),b),61),e.aj().ej(this,TNc(this),b-Lbd((j7c(),X6c)),a,c)};_.Fg=function nRc(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return FMc(this,a-Lbd((j7c(),X6c)),Gbd((b=kA(VNc(this,16),24),!b?X6c:b),a))};_.Mg=function oRc(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:eRc(this,kA(b,207));return;}GMc(this,a-Lbd((j7c(),X6c)),Gbd((c=kA(VNc(this,16),24),!c?X6c:c),a),b)};_.Rg=function pRc(){return j7c(),X6c};var XQc,YQc,ZQc;var iZ=k4(dTd,'EFactoryImpl',638);c3(914,638,{95:1,1698:1,91:1,87:1,430:1,139:1,51:1,103:1,42:1,92:1,142:1,107:1,108:1},rRc);_.Zg=function sRc(a,b){switch(a.Ni()){case 12:return kA(b,166).Lf();case 13:return f3(b);default:throw x2(new O4(gTd+a.be()+hTd));}};_.$g=function tRc(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=Nad(a),b?pcd(b.bh(),a):-1)),a.G){case 4:return f=new NSc,f;case 6:return g=new bTc,g;case 7:return h=new pTc,h;case 8:return d=new cQc,d;case 9:return c=new QOc,c;case 10:return e=new BQc,e;case 11:return i=new ATc,i;default:throw x2(new O4(kTd+a.zb+hTd));}};_._g=function uRc(a,b){switch(a.Ni()){case 13:case 12:return null;default:throw x2(new O4(gTd+a.be()+hTd));}};var VV=k4(eTd,'ElkGraphFactoryImpl',914);c3(399,142,{95:1,91:1,87:1,139:1,174:1,51:1,103:1,42:1,92:1,142:1,107:1,108:1});_.pg=function yRc(){var a,b;b=(a=kA(VNc(this,16),24),Xdd(Cbd(!a?this.Rg():a)));return b==null?(Ohd(),Ohd(),Nhd):new did(this,b)};_.ug=function zRc(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.be();}return EMc(this,a-Lbd(this.Rg()),Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),a),b,c)};_.Fg=function ARc(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return FMc(this,a-Lbd(this.Rg()),Gbd((b=kA(VNc(this,16),24),!b?this.Rg():b),a))};_.Mg=function BRc(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:this.ah(pA(b));return;}GMc(this,a-Lbd(this.Rg()),Gbd((c=kA(VNc(this,16),24),!c?this.Rg():c),a),b)};_.Rg=function CRc(){return j7c(),_6c};_.be=function DRc(){return this.zb};_.ah=function ERc(a){wRc(this,a)};_.Ib=function FRc(){return xRc(this)};_.zb=null;var oZ=k4(dTd,'ENamedElementImpl',399);c3(248,399,{95:1,91:1,87:1,139:1,174:1,51:1,207:1,103:1,42:1,92:1,142:1,248:1,107:1,108:1,613:1},kSc);_.jg=function mSc(a){return YRc(this,a)};_.ug=function nSc(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,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 Gkd(this,jY,this)),this.rb;case 6:return !this.vb&&(this.vb=new Dkd(uY,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?kA(this.Cb,207):null;return ORc(this);}return EMc(this,a-Lbd((j7c(),c7c)),Gbd((d=kA(VNc(this,16),24),!d?c7c:d),a),b,c)};_.Bg=function oSc(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),p_c(this.Ab,a,c);case 4:!!this.sb&&(c=kA(this.sb,42).Cg(this,1,oY,c));return PRc(this,kA(a,430),c);case 5:return !this.rb&&(this.rb=new Gkd(this,jY,this)),p_c(this.rb,a,c);case 6:return !this.vb&&(this.vb=new Dkd(uY,this,6,7)),p_c(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?YRc(this,c):this.Cb.Cg(this,-1-e,null,c)));return CMc(this,a,7,c);}return f=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),c7c):d),b),61),f.aj().dj(this,TNc(this),b-Lbd((j7c(),c7c)),a,c)};_.Dg=function pSc(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 4:return PRc(this,null,c);case 5:return !this.rb&&(this.rb=new Gkd(this,jY,this)),q_c(this.rb,a,c);case 6:return !this.vb&&(this.vb=new Dkd(uY,this,6,7)),q_c(this.vb,a,c);case 7:return CMc(this,null,7,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),c7c):d),b),61),e.aj().ej(this,TNc(this),b-Lbd((j7c(),c7c)),a,c)};_.Fg=function qSc(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 !!ORc(this);}return FMc(this,a-Lbd((j7c(),c7c)),Gbd((b=kA(VNc(this,16),24),!b?c7c:b),a))};_.Ig=function rSc(a){var b;b=$Rc(this,a);return b?b:KQc(this,a)};_.Mg=function sSc(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:wRc(this,pA(b));return;case 2:jSc(this,pA(b));return;case 3:iSc(this,pA(b));return;case 4:hSc(this,kA(b,430));return;case 5:!this.rb&&(this.rb=new Gkd(this,jY,this));r_c(this.rb);!this.rb&&(this.rb=new Gkd(this,jY,this));gXc(this.rb,kA(b,13));return;case 6:!this.vb&&(this.vb=new Dkd(uY,this,6,7));r_c(this.vb);!this.vb&&(this.vb=new Dkd(uY,this,6,7));gXc(this.vb,kA(b,13));return;}GMc(this,a-Lbd((j7c(),c7c)),Gbd((c=kA(VNc(this,16),24),!c?c7c:c),a),b)};_.Rg=function tSc(){return j7c(),c7c};_.Xg=function uSc(){ZRc(this)};_.bh=function vSc(){return !this.rb&&(this.rb=new Gkd(this,jY,this)),this.rb};_.dh=function wSc(){return this.sb};_.eh=function xSc(){return this.ub};_.fh=function ySc(){return this.xb};_.gh=function zSc(){return this.yb};_.hh=function ASc(a){this.ub=a};_.Ib=function BSc(){var a;if((this.Db&64)!=0)return xRc(this);a=new B6(xRc(this));a.a+=' (nsURI: ';w6(a,this.yb);a.a+=', nsPrefix: ';w6(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var GRc;var yZ=k4(dTd,'EPackageImpl',248);c3(506,248,{95:1,1702:1,506:1,91:1,87:1,139:1,174:1,51:1,207:1,103:1,42:1,92:1,142:1,248:1,107:1,108:1,613:1},FSc);_.q=false;_.r=false;var CSc=false;var WV=k4(eTd,'ElkGraphPackageImpl',506);c3(263,652,{95:1,379:1,253:1,137:1,429:1,263:1,93:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1,108:1},NSc);_.jg=function OSc(a){return ISc(this,a)};_.ug=function PSc(a,b,c){switch(a){case 7:return JSc(this);case 8:return this.a;}return kPc(this,a,b,c)};_.Bg=function QSc(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?ISc(this,c):this.Cb.Cg(this,-1-d,null,c)));return HSc(this,kA(a,253),c);}return XOc(this,a,b,c)};_.Dg=function RSc(a,b,c){if(b==7){return HSc(this,null,c)}return YOc(this,a,b,c)};_.Fg=function SSc(a){switch(a){case 7:return !!JSc(this);case 8:return !Z5('',this.a);}return lPc(this,a)};_.Mg=function TSc(a,b){switch(a){case 7:KSc(this,kA(b,253));return;case 8:LSc(this,pA(b));return;}mPc(this,a,b)};_.Rg=function USc(){return uMc(),oMc};_.Ib=function VSc(){return MSc(this)};_.a='';var XV=k4(eTd,'ElkLabelImpl',263);c3(246,653,{95:1,379:1,97:1,253:1,35:1,429:1,246:1,93:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1,108:1},bTc);_.jg=function cTc(a){return XSc(this,a)};_.ug=function dTc(a,b,c){switch(a){case 9:return !this.c&&(this.c=new zkd(NV,this,9,9)),this.c;case 10:return !this.a&&(this.a=new zkd(MV,this,10,11)),this.a;case 11:return ZSc(this);case 12:return !this.b&&(this.b=new zkd(JV,this,12,3)),this.b;case 13:return B3(),!this.a&&(this.a=new zkd(MV,this,10,11)),this.a.i>0?true:false;}return HPc(this,a,b,c)};_.Bg=function eTc(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new zkd(NV,this,9,9)),p_c(this.c,a,c);case 10:return !this.a&&(this.a=new zkd(MV,this,10,11)),p_c(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?XSc(this,c):this.Cb.Cg(this,-1-d,null,c)));return WSc(this,kA(a,35),c);case 12:return !this.b&&(this.b=new zkd(JV,this,12,3)),p_c(this.b,a,c);}return IPc(this,a,b,c)};_.Dg=function fTc(a,b,c){switch(b){case 9:return !this.c&&(this.c=new zkd(NV,this,9,9)),q_c(this.c,a,c);case 10:return !this.a&&(this.a=new zkd(MV,this,10,11)),q_c(this.a,a,c);case 11:return WSc(this,null,c);case 12:return !this.b&&(this.b=new zkd(JV,this,12,3)),q_c(this.b,a,c);}return JPc(this,a,b,c)};_.Fg=function gTc(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!ZSc(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new zkd(MV,this,10,11)),this.a.i>0;}return KPc(this,a)};_.Mg=function hTc(a,b){switch(a){case 9:!this.c&&(this.c=new zkd(NV,this,9,9));r_c(this.c);!this.c&&(this.c=new zkd(NV,this,9,9));gXc(this.c,kA(b,13));return;case 10:!this.a&&(this.a=new zkd(MV,this,10,11));r_c(this.a);!this.a&&(this.a=new zkd(MV,this,10,11));gXc(this.a,kA(b,13));return;case 11:_Sc(this,kA(b,35));return;case 12:!this.b&&(this.b=new zkd(JV,this,12,3));r_c(this.b);!this.b&&(this.b=new zkd(JV,this,12,3));gXc(this.b,kA(b,13));return;}LPc(this,a,b)};_.Rg=function iTc(){return uMc(),pMc};_.Ib=function jTc(){return aTc(this)};var YV=k4(eTd,'ElkNodeImpl',246);c3(187,653,{95:1,379:1,97:1,253:1,121:1,429:1,187:1,93:1,91:1,87:1,51:1,103:1,42:1,92:1,107:1,108:1},pTc);_.jg=function qTc(a){return lTc(this,a)};_.ug=function rTc(a,b,c){if(a==9){return mTc(this)}return HPc(this,a,b,c)};_.Bg=function sTc(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lTc(this,c):this.Cb.Cg(this,-1-d,null,c)));return kTc(this,kA(a,35),c);}return IPc(this,a,b,c)};_.Dg=function tTc(a,b,c){if(b==9){return kTc(this,null,c)}return JPc(this,a,b,c)};_.Fg=function uTc(a){if(a==9){return !!mTc(this)}return KPc(this,a)};_.Mg=function vTc(a,b){switch(a){case 9:nTc(this,kA(b,35));return;}LPc(this,a,b)};_.Rg=function wTc(){return uMc(),qMc};_.Ib=function xTc(){return oTc(this)};var ZV=k4(eTd,'ElkPortImpl',187);var PX=m4(FTd,'BasicEMap/Entry');c3(966,108,{95:1,38:1,91:1,87:1,134:1,51:1,103:1,42:1,92:1,107:1,108:1},ATc);_.Fb=function FTc(a){return this===a};_.kc=function HTc(){return this.b};_.Hb=function JTc(){return bqb(this)};_.kh=function LTc(a){yTc(this,kA(a,166))};_.ug=function BTc(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return HMc(this,a,b,c)};_.Fg=function CTc(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return OMc(this,a)};_.Mg=function DTc(a,b){switch(a){case 0:yTc(this,kA(b,166));return;case 1:zTc(this,b);return;}YMc(this,a,b)};_.Rg=function ETc(){return uMc(),rMc};_.ih=function GTc(){var a;if(this.a==-1){a=this.b;this.a=!a?0:ob(a)}return this.a};_.lc=function ITc(){return this.c};_.jh=function KTc(a){this.a=a};_.mc=function MTc(a){var b;b=this.c;zTc(this,a);return b};_.Ib=function NTc(){var a;if((this.Db&64)!=0)return aNc(this);a=new M6;I6(I6(I6(a,this.b?this.b.Lf():mJd),' -> '),p6(this.c));return a.a};_.a=-1;_.c=null;var $V=k4(eTd,'ElkPropertyToValueMapEntryImpl',966);c3(876,1,{},_Tc);var aW=k4(ITd,'JsonAdapter',876);c3(186,54,rKd,aUc);var bW=k4(ITd,'JsonImportException',186);c3(754,1,{},cVc);var QW=k4(ITd,'JsonImporter',754);c3(792,1,{},dVc);var cW=k4(ITd,'JsonImporter/lambda$0$Type',792);c3(793,1,{},eVc);var dW=k4(ITd,'JsonImporter/lambda$1$Type',793);c3(816,1,{},fVc);var eW=k4(ITd,'JsonImporter/lambda$10$Type',816);c3(818,1,{},gVc);var fW=k4(ITd,'JsonImporter/lambda$11$Type',818);c3(819,1,{},hVc);_.td=function iVc(a){nUc(this.b,this.a,a)};var gW=k4(ITd,'JsonImporter/lambda$12$Type',819);c3(820,1,{},jVc);var hW=k4(ITd,'JsonImporter/lambda$13$Type',820);c3(821,1,{},kVc);var iW=k4(ITd,'JsonImporter/lambda$14$Type',821);c3(822,1,{},lVc);var jW=k4(ITd,'JsonImporter/lambda$15$Type',822);c3(823,1,{},mVc);var kW=k4(ITd,'JsonImporter/lambda$16$Type',823);c3(824,1,{},nVc);var lW=k4(ITd,'JsonImporter/lambda$17$Type',824);c3(825,1,{},oVc);var mW=k4(ITd,'JsonImporter/lambda$18$Type',825);c3(756,1,{},qVc);var nW=k4(ITd,'JsonImporter/lambda$19$Type',756);c3(794,1,{},rVc);var oW=k4(ITd,'JsonImporter/lambda$2$Type',794);c3(829,1,{},tVc);var pW=k4(ITd,'JsonImporter/lambda$20$Type',829);c3(830,1,{},uVc);_.td=function vVc(a){wUc(this.a,a)};var qW=k4(ITd,'JsonImporter/lambda$21$Type',830);c3(795,1,{},wVc);var rW=k4(ITd,'JsonImporter/lambda$22$Type',795);c3(796,1,{},xVc);var sW=k4(ITd,'JsonImporter/lambda$23$Type',796);c3(798,1,{},yVc);var tW=k4(ITd,'JsonImporter/lambda$24$Type',798);c3(799,1,{},zVc);var uW=k4(ITd,'JsonImporter/lambda$25$Type',799);c3(801,1,{},AVc);var vW=k4(ITd,'JsonImporter/lambda$26$Type',801);c3(809,1,{},BVc);var wW=k4(ITd,'JsonImporter/lambda$27$Type',809);c3(811,1,{},CVc);var xW=k4(ITd,'JsonImporter/lambda$28$Type',811);c3(812,1,{},DVc);var yW=k4(ITd,'JsonImporter/lambda$29$Type',812);c3(797,1,{},EVc);var zW=k4(ITd,'JsonImporter/lambda$3$Type',797);c3(814,1,{},FVc);var AW=k4(ITd,'JsonImporter/lambda$30$Type',814);c3(815,1,{},GVc);var BW=k4(ITd,'JsonImporter/lambda$31$Type',815);c3(817,1,{},HVc);var CW=k4(ITd,'JsonImporter/lambda$32$Type',817);c3(826,1,{},IVc);_.td=function JVc(a){BUc(this.a,a)};var DW=k4(ITd,'JsonImporter/lambda$33$Type',826);c3(827,1,{},KVc);_.td=function LVc(a){CUc(this.a,this.b,a)};var EW=k4(ITd,'JsonImporter/lambda$34$Type',827);c3(828,1,{},MVc);_.td=function NVc(a){DUc(this.a,this.b,a)};var FW=k4(ITd,'JsonImporter/lambda$35$Type',828);c3(805,1,{},OVc);var GW=k4(ITd,'JsonImporter/lambda$36$Type',805);c3(806,1,{},PVc);var HW=k4(ITd,'JsonImporter/lambda$37$Type',806);c3(807,1,{},QVc);var IW=k4(ITd,'JsonImporter/lambda$38$Type',807);c3(808,1,{},RVc);var JW=k4(ITd,'JsonImporter/lambda$39$Type',808);c3(800,1,{},SVc);var KW=k4(ITd,'JsonImporter/lambda$4$Type',800);c3(802,1,{},TVc);var LW=k4(ITd,'JsonImporter/lambda$5$Type',802);c3(803,1,{},UVc);var MW=k4(ITd,'JsonImporter/lambda$6$Type',803);c3(804,1,{},VVc);var NW=k4(ITd,'JsonImporter/lambda$7$Type',804);c3(810,1,{},WVc);var OW=k4(ITd,'JsonImporter/lambda$8$Type',810);c3(813,1,{},XVc);var PW=k4(ITd,'JsonImporter/lambda$9$Type',813);c3(864,1,{},eWc);_.td=function fWc(a){OTc(this.a,new hz(pA(a)))};var RW=k4(ITd,'JsonMetaDataConverter/lambda$0$Type',864);c3(865,1,{},gWc);_.td=function hWc(a){aWc(this.a,a)};var SW=k4(ITd,'JsonMetaDataConverter/lambda$1$Type',865);c3(866,1,{},iWc);_.td=function jWc(a){bWc(this.a,a)};var TW=k4(ITd,'JsonMetaDataConverter/lambda$2$Type',866);c3(867,1,{},kWc);_.td=function lWc(a){cWc(this.a,a)};var UW=k4(ITd,'JsonMetaDataConverter/lambda$3$Type',867);c3(229,23,{3:1,34:1,23:1,229:1},vWc);var mWc,nWc,oWc,pWc,qWc,rWc,sWc,tWc;var VW=l4(DMd,'GraphFeature',229,zE,xWc,wWc);var yWc;c3(16,1,{34:1,166:1},DWc,EWc,FWc,GWc);_.vd=function HWc(a){return AWc(this,kA(a,166))};_.Fb=function IWc(a){return BWc(this,a)};_.Of=function JWc(){return CWc(this)};_.Lf=function KWc(){return this.b};_.Hb=function LWc(){return hqb(this.b)};_.Ib=function MWc(){return this.b};var $W=k4(DMd,'Property',16);c3(727,1,lKd,OWc);_.Ld=function PWc(a,b){return NWc(this,kA(a,93),kA(b,93))};_.Fb=function QWc(a){return this===a};_.Md=function RWc(){return new jfb(this)};var ZW=k4(DMd,'PropertyHolderComparator',727);var ZX=m4(FTd,'EList');c3(59,41,{20:1,25:1,41:1,13:1,15:1,59:1,52:1});_.bd=function qXc(a,b){eXc(this,a,b)};_.nc=function rXc(a){return fXc(this,a)};_.oc=function sXc(a){return gXc(this,a)};_.oh=function tXc(){return new v0c(this)};_.ph=function uXc(){return new y0c(this)};_.qh=function vXc(a){return hXc(this,a)};_.rh=function wXc(){return true};_.sh=function xXc(a,b){};_.th=function yXc(){};_.uh=function zXc(a,b){iXc(this,a,b)};_.vh=function AXc(a,b){};_.wh=function BXc(a,b,c){};_.Fb=function CXc(a){return jXc(this,a)};_.Hb=function DXc(){return lXc(this)};_.xh=function EXc(){return false};_.tc=function FXc(){return new a0c(this)};_.ed=function GXc(){return new j0c(this)};_.fd=function HXc(a){var b;b=this._b();if(a<0||a>b)throw x2(new Z_c(a,b));return new k0c(this,a)};_.vc=function IXc(a){return mXc(this,a)};_.zh=function JXc(a,b){return b};_.hd=function KXc(a,b){return nXc(this,a,b)};_.Ib=function LXc(){return oXc(this)};_.Bh=function MXc(){return true};_.Ch=function NXc(a,b){return pXc(this,b)};var vX=k4(FTd,'AbstractEList',59);c3(55,59,VTd,cYc,dYc,eYc);_.lh=function fYc(a){return PXc(this,a)};_.mh=function gYc(a,b){QXc(this,a,b)};_.nh=function hYc(a){RXc(this,a)};_.Dh=function iYc(a){return TXc(this,a)};_.Pb=function jYc(){UXc(this)};_.pc=function kYc(a){return VXc(this,a)};_.cd=function lYc(a){return WXc(this,a)};_.Eh=function mYc(a){XXc(this,a)};_.dd=function nYc(a){return YXc(this,a)};_.Wb=function oYc(){return this.i==0};_.Fh=function pYc(a){return tz(NE,oJd,1,a,5,1)};_.yh=function qYc(a){return this.g[a]};_.gd=function rYc(a){return ZXc(this,a)};_.Ah=function sYc(a,b){return $Xc(this,a,b)};_._b=function tYc(){return this.i};_.yc=function uYc(){return aYc(this)};_.zc=function vYc(a){return bYc(this,a)};_.i=0;var EX=k4(FTd,'BasicEList',55);var bY=m4(FTd,'TreeIterator');c3(629,55,WTd);_.gc=function zYc(a){Bhb(this,a)};_.hc=function AYc(){return this.g==null&&!this.c?wYc(this):this.g==null||this.i!=0&&kA(this.g[this.i-1],43).hc()};_.ic=function BYc(){return xYc(this)};_.jc=function CYc(){if(!this.e){throw x2(new Q4('There is no valid object to remove.'))}this.e.jc()};_.c=false;var wX=k4(FTd,'AbstractTreeIterator',629);c3(621,629,WTd,DYc);_.Gh=function EYc(a){var b;b=kA(a,51).pg().tc();sA(b,260)&&kA(b,260).Zj(new FYc);return b};var aX=k4(XTd,'ElkGraphUtil/PropertiesSkippingTreeIterator',621);c3(868,1,{},FYc);var _W=k4(XTd,'ElkGraphUtil/PropertiesSkippingTreeIterator/1',868);var GYc,HYc;var cX=k4(XTd,'ElkReflect',null);c3(784,1,QRd,NYc);_.Nf=function OYc(a){return IYc(),igb(kA(a,185))};var bX=k4(XTd,'ElkReflect/lambda$0$Type',784);var PYc;var aY=m4(FTd,'ResourceLocator');c3(953,1,{});var TX=k4(FTd,'DelegatingResourceLocator',953);c3(954,953,{});var dX=k4('org.eclipse.emf.common','EMFPlugin',954);var eX=m4(JUd,'Adapter');var fX=m4(JUd,'Notification');c3(1016,1,KUd);_.Hh=function YYc(){return this.d};_.Ih=function ZYc(a){};_.Jh=function $Yc(a){this.d=a};_.Kh=function _Yc(a){this.d==a&&(this.d=null)};_.d=null;var gX=k4(YSd,'AdapterImpl',1016);c3(1688,59,LUd);_.lh=function fZc(a){var b,c,d;++this.j;if(a.Wb()){return false}else{b=this.hi();for(d=a.tc();d.hc();){c=d.ic();this.Wh(this.Ch(b,c));++b}return true}};_.mh=function gZc(a,b){bZc(this,a,b)};_.nh=function hZc(a){cZc(this,a)};_.Uh=function iZc(){return this.Xh()};_.Pb=function jZc(){dZc(this,this.hi(),this.ii())};_.pc=function kZc(a){return this.Zh(a)};_.qc=function lZc(a){return this.$h(a)};_.Vh=function mZc(a,b){this.ei().tl()};_.Wh=function nZc(a){this.ei().tl()};_.Xh=function oZc(){return this.ei()};_.Yh=function pZc(){this.ei().tl()};_.Zh=function qZc(a){return this.ei().tl()};_.$h=function rZc(a){return this.ei().tl()};_._h=function sZc(a){return this.ei().tl()};_.ai=function tZc(a){return this.ei().tl()};_.bi=function uZc(){return this.ei().tl()};_.ci=function vZc(a){return this.ei().tl()};_.di=function wZc(){return this.ei().tl()};_.fi=function xZc(a){return this.ei().tl()};_.gi=function yZc(a,b){return this.ei().tl()};_.hi=function zZc(){return this.ei().tl()};_.ii=function AZc(){return this.ei().tl()};_.ji=function BZc(a){return this.ei().tl()};_.ki=function CZc(){return this.ei().tl()};_.Fb=function DZc(a){return this._h(a)};_.cd=function EZc(a){return this.zh(a,this.ai(a))};_.Hb=function FZc(){return this.bi()};_.dd=function GZc(a){return this.ci(a)};_.Wb=function HZc(){return this.di()};_.yh=function IZc(a){return this.ai(a)};_.gd=function JZc(a){return eZc(this,a)};_.vc=function KZc(a){var b;b=this.dd(a);if(b>=0){this.gd(b);return true}else{return false}};_.Ah=function LZc(a,b){return this.gi(a,this.Ch(a,b))};_._b=function MZc(){return this.hi()};_.yc=function NZc(){return this.ii()};_.zc=function OZc(a){return this.ji(a)};_.Ib=function PZc(){return this.ki()};var SX=k4(FTd,'DelegatingEList',1688);c3(1689,1688,LUd);_.li=function XZc(a,b){return QZc(this,a,b)};_.lh=function YZc(a){return this.li(this.hi(),a)};_.mh=function ZZc(a,b){RZc(this,a,b)};_.nh=function $Zc(a){SZc(this,a)};_.rh=function _Zc(){return !this.qi()};_.Pb=function a$c(){VZc(this)};_.mi=function b$c(a,b,c,d,e){return new _$c(this,a,b,c,d,e)};_.ni=function c$c(a){vMc(this.Oh(),a)};_.oi=function d$c(){return null};_.pi=function e$c(){return -1};_.Oh=function f$c(){return null};_.qi=function g$c(){return false};_.ri=function h$c(a,b){return b};_.si=function i$c(a,b){return b};_.ti=function j$c(){return false};_.ui=function k$c(){return !this.di()};_.gd=function l$c(a){var b,c,d,e;if(this.ti()){d=this.ui();b=this.mi(4,e=eZc(this,a),null,a,d);if(this.qi()&&!!e){c=this.si(e,null);if(!c){this.ni(b)}else{c.Sh(b);c.Th()}}else{this.ni(b)}return e}else{e=eZc(this,a);if(this.qi()&&!!e){c=this.si(e,null);!!c&&c.Th()}return e}};_.Ah=function m$c(a,b){return WZc(this,a,b)};var jX=k4(YSd,'DelegatingNotifyingListImpl',1689);c3(136,1,MUd);_.Sh=function O$c(a){return n$c(this,a)};_.Th=function P$c(){o$c(this)};_.Lh=function Q$c(){return this.d};_.oi=function R$c(){return null};_.vi=function S$c(){return null};_.Mh=function T$c(a){return -1};_.Nh=function U$c(){return x$c(this)};_.Oh=function V$c(){return null};_.Ph=function W$c(){return G$c(this)};_.Qh=function X$c(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.wi=function Y$c(){return false};_.Rh=function Z$c(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.Lh();switch(e){case 1:case 2:{f=a.Oh();if(yA(f)===yA(this.Oh())&&this.Mh(null)==a.Mh(null)){this.g=a.Nh();a.Lh()==1&&(this.d=1);return true}}}}case 4:{e=a.Lh();switch(e){case 4:{f=a.Oh();if(yA(f)===yA(this.Oh())&&this.Mh(null)==a.Mh(null)){j=I$c(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Qh();this.d=6;l=new dYc(2);if(i<=g){fXc(l,this.n);fXc(l,a.Ph());this.g=xz(pz(FA,1),OKd,22,15,[this.o=i,g+1])}else{fXc(l,a.Ph());fXc(l,this.n);this.g=xz(pz(FA,1),OKd,22,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.Lh();switch(e){case 4:{f=a.Oh();if(yA(f)===yA(this.Oh())&&this.Mh(null)==a.Mh(null)){j=I$c(this);g=a.Qh();k=kA(this.g,37);d=tz(FA,OKd,22,k.length+1,15,1);b=0;while(b>>0).toString(16));c.a+=' (eventType: ';switch(this.d){case 1:{c.a+='SET';break}case 2:{c.a+='UNSET';break}case 3:{c.a+='ADD';break}case 5:{c.a+='ADD_MANY';break}case 4:{c.a+='REMOVE';break}case 6:{c.a+='REMOVE_MANY';break}case 7:{c.a+='MOVE';break}case 8:{c.a+='REMOVING_ADAPTER';break}case 9:{c.a+='RESOLVE';break}default:{u6(c,this.d);break}}H$c(this)&&(c.a+=', touch: true',c);c.a+=', position: ';u6(c,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);c.a+=', notifier: ';v6(c,this.Oh());c.a+=', feature: ';v6(c,this.oi());c.a+=', oldValue: ';v6(c,G$c(this));c.a+=', newValue: ';if(this.d==6&&sA(this.g,37)){b=kA(this.g,37);c.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Lgb(this);this.a=this.j}return Hgb(this.b,a)}else{return VXc(this,a)}};_.Bh=function Y_c(){return true};_.a=0;var pX=k4(FTd,'AbstractEList/1',869);c3(295,79,kLd,Z_c);var qX=k4(FTd,'AbstractEList/BasicIndexOutOfBoundsException',295);c3(36,1,wJd,a0c);_.gc=function d0c(a){Bhb(this,a)};_.Bi=function b0c(){if(this.i.j!=this.f){throw x2(new qfb)}};_.Ci=function c0c(){return $_c(this)};_.hc=function e0c(){return this.e!=this.i._b()};_.ic=function f0c(){return this.Ci()};_.jc=function g0c(){__c(this)};_.e=0;_.f=0;_.g=-1;var rX=k4(FTd,'AbstractEList/EIterator',36);c3(296,36,NJd,j0c,k0c);_.jc=function s0c(){__c(this)};_.Bc=function l0c(a){h0c(this,a)};_.Di=function m0c(){var b;try{b=this.d.cd(--this.e);this.Bi();this.g=this.e;return b}catch(a){a=w2(a);if(sA(a,79)){this.Bi();throw x2(new djb)}else throw x2(a)}};_.Ei=function n0c(a){i0c(this,a)};_.Cc=function o0c(){return this.e!=0};_.Dc=function p0c(){return this.e};_.Ec=function q0c(){return this.Di()};_.Fc=function r0c(){return this.e-1};_.Gc=function t0c(a){this.Ei(a)};var sX=k4(FTd,'AbstractEList/EListIterator',296);c3(324,36,wJd,v0c);_.Ci=function w0c(){return u0c(this)};_.jc=function x0c(){throw x2(new U6)};var tX=k4(FTd,'AbstractEList/NonResolvingEIterator',324);c3(355,296,NJd,y0c,z0c);_.Bc=function A0c(a){throw x2(new U6)};_.Ci=function B0c(){var b;try{b=this.c.yh(this.e);this.Bi();this.g=this.e++;return b}catch(a){a=w2(a);if(sA(a,79)){this.Bi();throw x2(new djb)}else throw x2(a)}};_.Di=function C0c(){var b;try{b=this.c.yh(--this.e);this.Bi();this.g=this.e;return b}catch(a){a=w2(a);if(sA(a,79)){this.Bi();throw x2(new djb)}else throw x2(a)}};_.jc=function D0c(){throw x2(new U6)};_.Gc=function E0c(a){throw x2(new U6)};var uX=k4(FTd,'AbstractEList/NonResolvingEListIterator',355);c3(1673,59,QUd);_.lh=function M0c(a){var b,c,d,e,f,g,h,i,j;d=a._b();if(d!=0){i=(c=kA(VNc(this.a,4),116),c==null?0:c.length);j=i+d;b=K0c(this,j);h=a.tc();for(f=i;fc)throw x2(new Z_c(a,c));return new r1c(this,a)};_.Pb=function S0c(){var a,b;++this.j;a=kA(VNc(this.a,4),116);b=a==null?0:a.length;csd(this,null);iXc(this,b,a)};_.pc=function T0c(a){var b,c,d,e;b=kA(VNc(this.a,4),116);if(b!=null){if(a!=null){for(d=0,e=b.length;d=c)throw x2(new Z_c(a,c));return b[a]};_.dd=function V0c(a){var b,c,d;b=kA(VNc(this.a,4),116);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw x2(new Z_c(a,c));return new j1c(this,a)};_.yh=function $0c(a){return kA(VNc(this.a,4),116)[a]};_.gd=function _0c(a){return L0c(this,a)};_.Ah=function a1c(a,b){var c,d;c=J0c(this);d=c[a];I0c(c,a,pXc(this,b));csd(this,c);return d};_._b=function b1c(){var a;return a=kA(VNc(this.a,4),116),a==null?0:a.length};_.yc=function c1c(){var a,b,c;a=kA(VNc(this.a,4),116);c=a==null?0:a.length;b=tz(eX,PUd,380,c,0,1);c>0&&T6(a,0,b,0,c);return b};_.zc=function d1c(a){var b,c,d;b=kA(VNc(this.a,4),116);d=b==null?0:b.length;if(d>0){if(a.lengthd&&wz(a,d,null);return a};var G0c;var BX=k4(FTd,'ArrayDelegatingEList',1673);c3(927,36,wJd,e1c);_.Bi=function f1c(){if(this.b.j!=this.f||yA(kA(VNc(this.b.a,4),116))!==yA(this.a)){throw x2(new qfb)}};_.jc=function g1c(){__c(this);this.a=kA(VNc(this.b.a,4),116)};var xX=k4(FTd,'ArrayDelegatingEList/EIterator',927);c3(640,296,NJd,i1c,j1c);_.Bi=function k1c(){if(this.b.j!=this.f||yA(kA(VNc(this.b.a,4),116))!==yA(this.a)){throw x2(new qfb)}};_.Ei=function l1c(a){i0c(this,a);this.a=kA(VNc(this.b.a,4),116)};_.jc=function m1c(){__c(this);this.a=kA(VNc(this.b.a,4),116)};var yX=k4(FTd,'ArrayDelegatingEList/EListIterator',640);c3(928,324,wJd,n1c);_.Bi=function o1c(){if(this.b.j!=this.f||yA(kA(VNc(this.b.a,4),116))!==yA(this.a)){throw x2(new qfb)}};var zX=k4(FTd,'ArrayDelegatingEList/NonResolvingEIterator',928);c3(641,355,NJd,q1c,r1c);_.Bi=function s1c(){if(this.b.j!=this.f||yA(kA(VNc(this.b.a,4),116))!==yA(this.a)){throw x2(new qfb)}};var AX=k4(FTd,'ArrayDelegatingEList/NonResolvingEListIterator',641);c3(549,295,kLd,t1c);var CX=k4(FTd,'BasicEList/BasicIndexOutOfBoundsException',549);c3(630,55,VTd,u1c);_.bd=function v1c(a,b){throw x2(new U6)};_.nc=function w1c(a){throw x2(new U6)};_.oc=function x1c(a){throw x2(new U6)};_.Pb=function y1c(){throw x2(new U6)};_.Eh=function z1c(a){throw x2(new U6)};_.tc=function A1c(){return this.oh()};_.ed=function B1c(){return this.ph()};_.fd=function C1c(a){return this.qh(a)};_.gd=function D1c(a){throw x2(new U6)};_.vc=function E1c(a){throw x2(new U6)};_.hd=function F1c(a,b){throw x2(new U6)};var DX=k4(FTd,'BasicEList/UnmodifiableEList',630);c3(639,1,{3:1,20:1,13:1,15:1,52:1,533:1});_.bd=function d2c(a,b){G1c(this,a,kA(b,38))};_.nc=function e2c(a){return H1c(this,kA(a,38))};_.sc=function l2c(a){i5(this,a)};_.cd=function m2c(a){return kA(WXc(this.c,a),134)};_.uc=function x2c(){return this.xc()};_.gd=function y2c(a){return kA(this.c.gd(a),38)};_.hd=function A2c(a,b){return b2c(this,a,kA(b,38))};_.jd=function C2c(a){Vib(this,a)};_.wc=function D2c(){return new ekb(this,16)};_.xc=function E2c(){return new Zob(null,this.wc())};_.oc=function f2c(a){return this.c.oc(a)};_.Pb=function g2c(){this.c.Pb()};_.pc=function h2c(a){return this.c.pc(a)};_.qc=function i2c(a){return sg(this.c,a)};_.Fi=function j2c(){var a,b,c;if(this.d==null){this.d=tz(EX,RUd,55,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.tc();b.e!=b.i._b();){a=kA(b.Ci(),134);M1c(this,a)}this.e=c}};_.Fb=function k2c(a){return R1c(this,a)};_.Hb=function n2c(){return lXc(this.c)};_.dd=function o2c(a){return this.c.dd(a)};_.Gi=function p2c(){this.c=new M2c(this)};_.Wb=function q2c(){return this.f==0};_.tc=function r2c(){return this.c.tc()};_.ed=function s2c(){return this.c.ed()};_.fd=function t2c(a){return this.c.fd(a)};_.Hi=function u2c(){return X1c(this)};_.Ii=function v2c(a,b,c){return new M3c(a,b,c)};_.Ji=function w2c(){return new R2c};_.vc=function z2c(a){return $1c(this,a)};_._b=function B2c(){return this.f};_.kd=function F2c(a,b){return new A9(this.c,a,b)};_.yc=function G2c(){return this.c.yc()};_.zc=function H2c(a){return this.c.zc(a)};_.Ib=function I2c(){return oXc(this.c)};_.e=0;_.f=0;var RX=k4(FTd,'BasicEMap',639);c3(922,55,VTd,M2c);_.sh=function N2c(a,b){J2c(this,kA(b,134))};_.vh=function P2c(a,b){K2c(this,kA(b,134))};_.wh=function Q2c(a,b,c){L2c(this,kA(b,134),kA(c,134))};_.uh=function O2c(a,b){L1c(this.a)};var FX=k4(FTd,'BasicEMap/1',922);c3(923,55,VTd,R2c);_.Fh=function S2c(a){return tz(OX,SUd,551,a,0,1)};var GX=k4(FTd,'BasicEMap/2',923);c3(924,IJd,JJd,T2c);_.Pb=function U2c(){this.a.c.Pb()};_.pc=function V2c(a){return I1c(this.a,a)};_.tc=function W2c(){return this.a.f==0?(Y3c(),X3c.a):new q3c(this.a)};_.vc=function X2c(a){var b;b=this.a.f;a2c(this.a,a);return this.a.f!=b};_._b=function Y2c(){return this.a.f};var HX=k4(FTd,'BasicEMap/3',924);c3(925,25,HJd,Z2c);_.Pb=function $2c(){this.a.c.Pb()};_.pc=function _2c(a){return J1c(this.a,a)};_.tc=function a3c(){return this.a.f==0?(Y3c(),X3c.a):new s3c(this.a)};_._b=function b3c(){return this.a.f};var IX=k4(FTd,'BasicEMap/4',925);c3(926,IJd,JJd,d3c);_.Pb=function e3c(){this.a.c.Pb()};_.pc=function f3c(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&sA(a,38)){this.a.Fi();i=kA(a,38);h=i.kc();e=h==null?0:ob(h);f=V1c(this.a,e);b=this.a.d[f];if(b){c=kA(b.g,339);j=b.i;for(g=0;g'+this.c};_.a=0;var OX=k4(FTd,'BasicEMap/EntryImpl',551);c3(484,1,{},W3c);var QX=k4(FTd,'BasicEMap/View',484);var X3c;c3(695,1,{});_.Fb=function f4c(a){return mq((bdb(),$cb),a)};_.Hb=function g4c(){return fdb((bdb(),$cb))};_.Ib=function h4c(){return vg((bdb(),$cb))};var WX=k4(FTd,'ECollections/BasicEmptyUnmodifiableEList',695);c3(1164,1,NJd,i4c);_.gc=function k4c(a){Bhb(this,a)};_.Bc=function j4c(a){throw x2(new U6)};_.hc=function l4c(){return false};_.Cc=function m4c(){return false};_.ic=function n4c(){throw x2(new djb)};_.Dc=function o4c(){return 0};_.Ec=function p4c(){throw x2(new djb)};_.Fc=function q4c(){return -1};_.jc=function r4c(){throw x2(new U6)};_.Gc=function s4c(a){throw x2(new U6)};var VX=k4(FTd,'ECollections/BasicEmptyUnmodifiableEList/1',1164);c3(1162,695,{20:1,13:1,15:1,52:1},t4c);_.bd=function u4c(a,b){Z3c()};_.nc=function v4c(a){return $3c()};_.oc=function w4c(a){return _3c()};_.Pb=function x4c(){a4c()};_.pc=function y4c(a){return false};_.qc=function z4c(a){return false};_.sc=function A4c(a){i5(this,a)};_.cd=function B4c(a){return kdb((bdb(),$cb,a)),null};_.dd=function C4c(a){return -1};_.Wb=function D4c(){return true};_.tc=function E4c(){return this.a};_.ed=function F4c(){return this.a};_.fd=function G4c(a){return this.a};_.uc=function H4c(){return this.xc()};_.gd=function I4c(a){return b4c()};_.vc=function J4c(a){return c4c()};_.hd=function K4c(a,b){return d4c()};_._b=function L4c(){return 0};_.jd=function M4c(a){Vib(this,a)};_.wc=function N4c(){return new ekb(this,16)};_.xc=function O4c(){return new Zob(null,this.wc())};_.kd=function P4c(a,b){return bdb(),new A9($cb,a,b)};_.yc=function Q4c(){return tg((bdb(),$cb))};_.zc=function R4c(a){return bdb(),ug($cb,a)};var XX=k4(FTd,'ECollections/EmptyUnmodifiableEList',1162);c3(1163,695,{20:1,13:1,15:1,52:1,533:1},S4c);_.bd=function T4c(a,b){Z3c()};_.nc=function U4c(a){return $3c()};_.oc=function V4c(a){return _3c()};_.Pb=function W4c(){a4c()};_.pc=function X4c(a){return false};_.qc=function Y4c(a){return false};_.sc=function Z4c(a){i5(this,a)};_.cd=function $4c(a){return kdb((bdb(),$cb,a)),null};_.dd=function _4c(a){return -1};_.Wb=function a5c(){return true};_.tc=function b5c(){return this.a};_.ed=function c5c(){return this.a};_.fd=function d5c(a){return this.a};_.uc=function f5c(){return this.xc()};_.gd=function g5c(a){return b4c()};_.vc=function h5c(a){return c4c()};_.hd=function i5c(a,b){return d4c()};_._b=function j5c(){return 0};_.jd=function k5c(a){Vib(this,a)};_.wc=function l5c(){return new ekb(this,16)};_.xc=function m5c(){return new Zob(null,this.wc())};_.kd=function n5c(a,b){return bdb(),new A9($cb,a,b)};_.yc=function o5c(){return tg((bdb(),$cb))};_.zc=function p5c(a){return bdb(),ug($cb,a)};_.Hi=function e5c(){return bdb(),bdb(),_cb};var YX=k4(FTd,'ECollections/EmptyUnmodifiableEMap',1163);var $X=m4(FTd,'Enumerator');var q5c;c3(261,1,{261:1},P5c);_.Fb=function T5c(a){var b;if(this===a)return true;if(!sA(a,261))return false;b=kA(a,261);return this.f==b.f&&V5c(this.i,b.i)&&U5c(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&U5c(this.d,b.d)&&U5c(this.g,b.g)&&U5c(this.e,b.e)&&M5c(this,b)};_.Hb=function Y5c(){return this.f};_.Ib=function e6c(){return N5c(this)};_.f=0;var u5c=0,v5c=0,w5c=0,x5c=0,y5c=0,z5c=0,A5c=0,B5c=0,C5c=0,D5c,E5c=0,F5c=0,G5c=0,H5c=0,I5c,J5c;var dY=k4(FTd,'URI',261);c3(965,44,FLd,o6c);_.Zb=function p6c(a,b){return kA(J8(this,pA(a),kA(b,261)),261)};var cY=k4(FTd,'URI/URICache',965);c3(451,55,VTd,q6c,r6c);_.xh=function s6c(){return true};var eY=k4(FTd,'UniqueEList',451);c3(526,54,rKd,t6c);var fY=k4(FTd,'WrappedException',526);var gY=m4(KSd,VUd);var BY=m4(KSd,WUd);var zY=m4(KSd,XUd);var hY=m4(KSd,YUd);var jY=m4(KSd,ZUd);var iY=m4(KSd,'EClass');var lY=m4(KSd,'EDataType');var u6c;c3(1096,44,FLd,x6c);_.Vb=function y6c(a){return wA(a)?G8(this,a):Of(Wgb(this.d,a))};var kY=k4(KSd,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1096);var nY=m4(KSd,'EEnum');var mY=m4(KSd,$Ud);var pY=m4(KSd,_Ud);var tY=m4(KSd,aVd);var z6c;var vY=m4(KSd,bVd);var wY=m4(KSd,cVd);c3(918,1,{},D6c);_.Ib=function E6c(){return 'NIL'};var xY=k4(KSd,'EStructuralFeature/Internal/DynamicValueHolder/1',918);var F6c;c3(917,44,FLd,I6c);_.Vb=function J6c(a){return wA(a)?G8(this,a):Of(Wgb(this.d,a))};var yY=k4(KSd,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',917);var AY=m4(KSd,dVd);var CY=m4(KSd,'EValidator/PatternMatcher');var K6c;var M6c;var O6c;var Q6c,R6c,S6c,T6c,U6c,V6c,W6c,X6c,Y6c,Z6c,$6c,_6c,a7c,b7c,c7c,d7c,e7c,f7c,g7c,h7c,i7c;var G0=m4(eVd,'FeatureMap/Entry');c3(483,1,{75:1},k7c);_.nj=function l7c(){return this.a};_.lc=function m7c(){return this.b};var DY=k4(dTd,'BasicEObjectImpl/1',483);c3(1674,1,{103:1});_.oj=function p7c(a){this.e=a==0?n7c:tz(NE,oJd,1,a,5,1)};_.Tg=function q7c(a){return this.e[a]};_.Ug=function r7c(a,b){this.e[a]=b};_.Vg=function s7c(a){this.e[a]=null};_.pj=function t7c(){return this.c};_.qj=function u7c(){throw x2(new U6)};_.rj=function v7c(){throw x2(new U6)};_.sj=function w7c(){return this.d};_.tj=function x7c(){return this.e!=null};_.uj=function y7c(a){this.c=a};_.vj=function z7c(a){throw x2(new U6)};_.wj=function A7c(a){this.d=a};var n7c;var EY=k4(dTd,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1674);c3(201,1674,{103:1},B7c);_.qj=function C7c(){return this.a};_.rj=function D7c(){return this.b};_.vj=function E7c(a){this.a=a};var FY=k4(dTd,'BasicEObjectImpl/EPropertiesHolderImpl',201);c3(463,92,cTd,F7c);_.dg=function G7c(){return this.f};_.ig=function H7c(){return this.k};_.kg=function I7c(a,b){this.g=a;this.i=b};_.mg=function J7c(){return (this.j&2)==0?this.Rg():this.Jg().pj()};_.og=function K7c(){return this.i};_.fg=function L7c(){return (this.j&1)!=0};_.yg=function M7c(){return this.g};_.Eg=function N7c(){return (this.j&4)!=0};_.Jg=function O7c(){return !this.k&&(this.k=new B7c),this.k};_.Ng=function P7c(a){this.Jg().uj(a);a?(this.j|=2):(this.j&=-3)};_.Rg=function Q7c(){return (P6c(),O6c).S};_.i=0;_.j=1;var qZ=k4(dTd,'EObjectImpl',463);c3(710,463,{95:1,91:1,87:1,51:1,103:1,42:1,92:1},T7c);_.Tg=function U7c(a){return this.e[a]};_.Ug=function V7c(a,b){this.e[a]=b};_.Vg=function W7c(a){this.e[a]=null};_.mg=function X7c(){return this.d};_.rg=function Y7c(a){return Mbd(this.d,a)};_.tg=function Z7c(){return this.d};_.xg=function $7c(){return this.e!=null};_.Jg=function _7c(){!this.k&&(this.k=new n8c);return this.k};_.Ng=function a8c(a){this.d=a};_.Qg=function b8c(){var a;if(this.e==null){a=Lbd(this.d);this.e=a==0?R7c:tz(NE,oJd,1,a,5,1)}return this};_.Sg=function c8c(){return 0};var R7c;var JY=k4(dTd,'DynamicEObjectImpl',710);c3(1389,710,{95:1,38:1,91:1,87:1,134:1,51:1,103:1,42:1,92:1},d8c);_.Fb=function f8c(a){return this===a};_.Hb=function j8c(){return bqb(this)};_.Ng=function e8c(a){this.d=a;this.b=Hbd(a,'key');this.c=Hbd(a,nTd)};_.ih=function g8c(){var a;if(this.a==-1){a=KMc(this,this.b);this.a=a==null?0:ob(a)}return this.a};_.kc=function h8c(){return KMc(this,this.b)};_.lc=function i8c(){return KMc(this,this.c)};_.jh=function k8c(a){this.a=a};_.kh=function l8c(a){ZMc(this,this.b,a)};_.mc=function m8c(a){var b;b=KMc(this,this.c);ZMc(this,this.c,a);return b};_.a=0;var HY=k4(dTd,'DynamicEObjectImpl/BasicEMapEntry',1389);c3(1390,1,{103:1},n8c);_.oj=function o8c(a){throw x2(new U6)};_.Tg=function p8c(a){throw x2(new U6)};_.Ug=function q8c(a,b){throw x2(new U6)};_.Vg=function r8c(a){throw x2(new U6)};_.pj=function s8c(){throw x2(new U6)};_.qj=function t8c(){return this.a};_.rj=function u8c(){return this.b};_.sj=function v8c(){return this.c};_.tj=function w8c(){throw x2(new U6)};_.uj=function x8c(a){throw x2(new U6)};_.vj=function y8c(a){this.a=a};_.wj=function z8c(a){this.c=a};var IY=k4(dTd,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1390);c3(469,142,{95:1,91:1,87:1,609:1,139:1,51:1,103:1,42:1,92:1,469:1,142:1,107:1,108:1},H8c);_.jg=function I8c(a){return B8c(this,a)};_.ug=function J8c(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new f9c((j7c(),f7c),CZ,this)),this.b):(!this.b&&(this.b=new f9c((j7c(),f7c),CZ,this)),X1c(this.b));case 3:return C8c(this);case 4:return !this.a&&(this.a=new fdd(sY,this,4)),this.a;case 5:return !this.c&&(this.c=new Swd(sY,this,5)),this.c;}return EMc(this,a-Lbd((j7c(),Q6c)),Gbd((d=kA(VNc(this,16),24),!d?Q6c:d),a),b,c)};_.Bg=function K8c(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),p_c(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?B8c(this,c):this.Cb.Cg(this,-1-e,null,c)));return A8c(this,kA(a,139),c);}return f=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),Q6c):d),b),61),f.aj().dj(this,TNc(this),b-Lbd((j7c(),Q6c)),a,c)};_.Dg=function L8c(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 2:return !this.b&&(this.b=new f9c((j7c(),f7c),CZ,this)),R8c(this.b,a,c);case 3:return A8c(this,null,c);case 4:return !this.a&&(this.a=new fdd(sY,this,4)),q_c(this.a,a,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),Q6c):d),b),61),e.aj().ej(this,TNc(this),b-Lbd((j7c(),Q6c)),a,c)};_.Fg=function M8c(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 !!C8c(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return FMc(this,a-Lbd((j7c(),Q6c)),Gbd((b=kA(VNc(this,16),24),!b?Q6c:b),a))};_.Mg=function N8c(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:E8c(this,pA(b));return;case 2:!this.b&&(this.b=new f9c((j7c(),f7c),CZ,this));S8c(this.b,b);return;case 3:D8c(this,kA(b,139));return;case 4:!this.a&&(this.a=new fdd(sY,this,4));r_c(this.a);!this.a&&(this.a=new fdd(sY,this,4));gXc(this.a,kA(b,13));return;case 5:!this.c&&(this.c=new Swd(sY,this,5));r_c(this.c);!this.c&&(this.c=new Swd(sY,this,5));gXc(this.c,kA(b,13));return;}GMc(this,a-Lbd((j7c(),Q6c)),Gbd((c=kA(VNc(this,16),24),!c?Q6c:c),a),b)};_.Rg=function O8c(){return j7c(),Q6c};_.Ib=function P8c(){return G8c(this)};_.d=null;var LY=k4(dTd,'EAnnotationImpl',469);c3(143,639,fVd,T8c);_.xj=function U8c(a,b){return Q8c(this,kA(a,38),b)};_.Dh=function V8c(a){return kA(kA(this.c,64).Dh(a),134)};_.oh=function W8c(){return kA(this.c,64).oh()};_.ph=function X8c(){return kA(this.c,64).ph()};_.qh=function Y8c(a){return kA(this.c,64).qh(a)};_.yj=function Z8c(a,b){return R8c(this,a,b)};_.hj=function $8c(a){return kA(this.c,81).hj(a)};_.Gi=function _8c(){};_.ui=function a9c(){return kA(this.c,81).ui()};_.Ii=function b9c(a,b,c){var d;d=kA(Nad(this.b).dh().$g(this.b),134);d.jh(a);d.kh(b);d.mc(c);return d};_.Ji=function c9c(){return new Nxd(this)};_.Gc=function d9c(a){S8c(this,a)};_.ij=function e9c(){kA(this.c,81).ij()};var B0=k4(eVd,'EcoreEMap',143);c3(152,143,fVd,f9c);_.Fi=function g9c(){var a,b,c,d,e,f;if(this.d==null){f=tz(EX,RUd,55,2*this.f+1,0,1);for(c=this.c.tc();c.e!=c.i._b();){b=kA(c.Ci(),134);d=b.ih();e=(d&jJd)%f.length;a=f[e];!a&&(a=f[e]=new Nxd(this));a.nc(b)}this.d=f}};var KY=k4(dTd,'EAnnotationImpl/1',152);c3(268,399,{95:1,91:1,87:1,139:1,174:1,51:1,103:1,431:1,42:1,92:1,142:1,268:1,107:1,108:1});_.ug=function t9c(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.zb;case 2:return B3(),(this.Bb&256)!=0?true:false;case 3:return B3(),(this.Bb&512)!=0?true:false;case 4:return d5(this.s);case 5:return d5(this.t);case 6:return B3(),this.lj()?true:false;case 7:return B3(),e=this.s,e>=1?true:false;case 8:if(b)return j9c(this);return this.r;case 9:return this.q;}return EMc(this,a-Lbd(this.Rg()),Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),a),b,c)};_.Dg=function u9c(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 9:return i9c(this,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),b),61),e.aj().ej(this,TNc(this),b-Lbd(this.Rg()),a,c)};_.Fg=function v9c(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.lj();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&ohd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&ohd(this.q).i==0);}return FMc(this,a-Lbd(this.Rg()),Gbd((b=kA(VNc(this,16),24),!b?this.Rg():b),a))};_.Mg=function w9c(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:this.ah(pA(b));return;case 2:o9c(this,Vpb(mA(b)));return;case 3:p9c(this,Vpb(mA(b)));return;case 4:n9c(this,kA(b,21).a);return;case 5:this.Aj(kA(b,21).a);return;case 8:l9c(this,kA(b,133));return;case 9:d=k9c(this,kA(b,84),null);!!d&&d.Th();return;}GMc(this,a-Lbd(this.Rg()),Gbd((c=kA(VNc(this,16),24),!c?this.Rg():c),a),b)};_.Rg=function x9c(){return j7c(),h7c};_.Xg=function y9c(){j9c(this);this.Bb|=1};_.jj=function z9c(){return j9c(this)};_.kj=function A9c(){return this.t};_.lj=function B9c(){var a;return a=this.t,a>1||a==-1};_.xh=function C9c(){return (this.Bb&512)!=0};_.zj=function D9c(a,b){return m9c(this,a,b)};_.Aj=function E9c(a){q9c(this,a)};_.Ib=function F9c(){return r9c(this)};_.s=0;_.t=1;var y$=k4(dTd,'ETypedElementImpl',268);c3(418,268,{95:1,91:1,87:1,139:1,174:1,51:1,158:1,61:1,103:1,431:1,42:1,92:1,142:1,418:1,268:1,107:1,108:1,615:1});_.jg=function W9c(a){return G9c(this,a)};_.ug=function X9c(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.zb;case 2:return B3(),(this.Bb&256)!=0?true:false;case 3:return B3(),(this.Bb&512)!=0?true:false;case 4:return d5(this.s);case 5:return d5(this.t);case 6:return B3(),this.lj()?true:false;case 7:return B3(),e=this.s,e>=1?true:false;case 8:if(b)return j9c(this);return this.r;case 9:return this.q;case 10:return B3(),(this.Bb&hVd)!=0?true:false;case 11:return B3(),(this.Bb&jVd)!=0?true:false;case 12:return B3(),(this.Bb&qLd)!=0?true:false;case 13:return this.j;case 14:return H9c(this);case 15:return B3(),(this.Bb&iVd)!=0?true:false;case 16:return B3(),(this.Bb&RJd)!=0?true:false;case 17:return I9c(this);}return EMc(this,a-Lbd(this.Rg()),Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),a),b,c)};_.Bg=function Y9c(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),p_c(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?G9c(this,c):this.Cb.Cg(this,-1-e,null,c)));return CMc(this,a,17,c);}return f=kA(Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),b),61),f.aj().dj(this,TNc(this),b-Lbd(this.Rg()),a,c)};_.Dg=function Z9c(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 9:return i9c(this,c);case 17:return CMc(this,null,17,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),b),61),e.aj().ej(this,TNc(this),b-Lbd(this.Rg()),a,c)};_.Fg=function $9c(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.lj();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&ohd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&ohd(this.q).i==0);case 10:return (this.Bb&hVd)==0;case 11:return (this.Bb&jVd)!=0;case 12:return (this.Bb&qLd)!=0;case 13:return this.j!=null;case 14:return H9c(this)!=null;case 15:return (this.Bb&iVd)!=0;case 16:return (this.Bb&RJd)!=0;case 17:return !!I9c(this);}return FMc(this,a-Lbd(this.Rg()),Gbd((b=kA(VNc(this,16),24),!b?this.Rg():b),a))};_.Mg=function _9c(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:Q9c(this,pA(b));return;case 2:o9c(this,Vpb(mA(b)));return;case 3:p9c(this,Vpb(mA(b)));return;case 4:n9c(this,kA(b,21).a);return;case 5:this.Aj(kA(b,21).a);return;case 8:l9c(this,kA(b,133));return;case 9:d=k9c(this,kA(b,84),null);!!d&&d.Th();return;case 10:L9c(this,Vpb(mA(b)));return;case 11:T9c(this,Vpb(mA(b)));return;case 12:R9c(this,Vpb(mA(b)));return;case 13:M9c(this,pA(b));return;case 15:S9c(this,Vpb(mA(b)));return;case 16:O9c(this,Vpb(mA(b)));return;}GMc(this,a-Lbd(this.Rg()),Gbd((c=kA(VNc(this,16),24),!c?this.Rg():c),a),b)};_.Rg=function aad(){return j7c(),g7c};_.Xg=function bad(){bud(rtd((uyd(),syd),this));j9c(this);this.Bb|=1};_.Vi=function cad(){return this.f};_.Oi=function dad(){return H9c(this)};_.Wi=function ead(){return I9c(this)};_.$i=function fad(){return null};_.Bj=function gad(){return this.k};_.pi=function had(){return this.n};_._i=function iad(){return J9c(this)};_.aj=function jad(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=I9c(this);(c.i==null&&Cbd(c),c.i).length;d=this.$i();!!d&&Lbd(I9c(d));e=j9c(this);g=e.Qi();a=!g?null:(g.i&1)!=0?g==u2?tE:g==FA?GE:g==EA?CE:g==DA?yE:g==GA?IE:g==t2?PE:g==BA?uE:vE:g;b=H9c(this);h=e.Oi();cyd(this);(this.Bb&RJd)!=0&&(!!(f=utd((uyd(),syd),c))&&f!=this||!!(f=aud(rtd(syd,this))))?(this.p=new Uld(this,f)):this.lj()?this.Dj()?!d?(this.Bb&iVd)!=0?!a?this.Ej()?(this.p=new bmd(42,this)):(this.p=new bmd(0,this)):a==qG?(this.p=new _ld(50,PX,this)):this.Ej()?(this.p=new _ld(43,a,this)):(this.p=new _ld(1,a,this)):!a?this.Ej()?(this.p=new bmd(44,this)):(this.p=new bmd(2,this)):a==qG?(this.p=new _ld(41,PX,this)):this.Ej()?(this.p=new _ld(45,a,this)):(this.p=new _ld(3,a,this)):(this.Bb&iVd)!=0?!a?this.Ej()?(this.p=new cmd(46,this,d)):(this.p=new cmd(4,this,d)):this.Ej()?(this.p=new amd(47,a,this,d)):(this.p=new amd(5,a,this,d)):!a?this.Ej()?(this.p=new cmd(48,this,d)):(this.p=new cmd(6,this,d)):this.Ej()?(this.p=new amd(49,a,this,d)):(this.p=new amd(7,a,this,d)):sA(e,140)?a==G0?(this.p=new bmd(40,this)):(this.Bb&512)!=0?(this.Bb&iVd)!=0?!a?(this.p=new bmd(8,this)):(this.p=new _ld(9,a,this)):!a?(this.p=new bmd(10,this)):(this.p=new _ld(11,a,this)):(this.Bb&iVd)!=0?!a?(this.p=new bmd(12,this)):(this.p=new _ld(13,a,this)):!a?(this.p=new bmd(14,this)):(this.p=new _ld(15,a,this)):!d?this.Ej()?(this.Bb&iVd)!=0?!a?(this.p=new bmd(16,this)):(this.p=new _ld(17,a,this)):!a?(this.p=new bmd(18,this)):(this.p=new _ld(19,a,this)):(this.Bb&iVd)!=0?!a?(this.p=new bmd(20,this)):(this.p=new _ld(21,a,this)):!a?(this.p=new bmd(22,this)):(this.p=new _ld(23,a,this)):(i=d.t,i>1||i==-1?this.Ej()?(this.Bb&iVd)!=0?!a?(this.p=new cmd(24,this,d)):(this.p=new amd(25,a,this,d)):!a?(this.p=new cmd(26,this,d)):(this.p=new amd(27,a,this,d)):(this.Bb&iVd)!=0?!a?(this.p=new cmd(28,this,d)):(this.p=new amd(29,a,this,d)):!a?(this.p=new cmd(30,this,d)):(this.p=new amd(31,a,this,d)):this.Ej()?(this.Bb&iVd)!=0?!a?(this.p=new cmd(32,this,d)):(this.p=new amd(33,a,this,d)):!a?(this.p=new cmd(34,this,d)):(this.p=new amd(35,a,this,d)):(this.Bb&iVd)!=0?!a?(this.p=new cmd(36,this,d)):(this.p=new amd(37,a,this,d)):!a?(this.p=new cmd(38,this,d)):(this.p=new amd(39,a,this,d))):this.Cj()?this.Ej()?(this.p=new umd(kA(e,24),this,d)):(this.p=new nmd(kA(e,24),this,d)):sA(e,140)?a==G0?(this.p=new bmd(40,this)):(this.Bb&iVd)!=0?!a?(this.p=new rnd(kA(e,140),b,h,this)):(this.p=new tnd(b,h,this,(Lmd(),g==FA?Hmd:g==u2?Cmd:g==GA?Imd:g==EA?Gmd:g==DA?Fmd:g==t2?Kmd:g==BA?Dmd:g==CA?Emd:Jmd))):!a?(this.p=new lnd(kA(e,140),b,h,this)):(this.p=new nnd(b,h,this,(Lmd(),g==FA?Hmd:g==u2?Cmd:g==GA?Imd:g==EA?Gmd:g==DA?Fmd:g==t2?Kmd:g==BA?Dmd:g==CA?Emd:Jmd))):this.Dj()?!d?(this.Bb&iVd)!=0?this.Ej()?(this.p=new Mnd(kA(e,24),this)):(this.p=new Knd(kA(e,24),this)):this.Ej()?(this.p=new Ind(kA(e,24),this)):(this.p=new Gnd(kA(e,24),this)):(this.Bb&iVd)!=0?this.Ej()?(this.p=new Und(kA(e,24),this,d)):(this.p=new Snd(kA(e,24),this,d)):this.Ej()?(this.p=new Qnd(kA(e,24),this,d)):(this.p=new Ond(kA(e,24),this,d)):this.Ej()?!d?(this.Bb&iVd)!=0?(this.p=new Ynd(kA(e,24),this)):(this.p=new Wnd(kA(e,24),this)):(this.Bb&iVd)!=0?(this.p=new aod(kA(e,24),this,d)):(this.p=new $nd(kA(e,24),this,d)):!d?(this.Bb&iVd)!=0?(this.p=new cod(kA(e,24),this)):(this.p=new vnd(kA(e,24),this)):(this.Bb&iVd)!=0?(this.p=new god(kA(e,24),this,d)):(this.p=new eod(kA(e,24),this,d))}return this.p};_.Xi=function kad(){return (this.Bb&hVd)!=0};_.Cj=function lad(){return false};_.Dj=function mad(){return false};_.Yi=function nad(){return (this.Bb&RJd)!=0};_.bj=function oad(){return K9c(this)};_.Ej=function pad(){return false};_.Zi=function qad(){return (this.Bb&iVd)!=0};_.Fj=function rad(a){this.k=a};_.ah=function sad(a){Q9c(this,a)};_.Ib=function tad(){return U9c(this)};_.e=false;_.n=0;var q$=k4(dTd,'EStructuralFeatureImpl',418);c3(335,418,{95:1,91:1,87:1,29:1,139:1,174:1,51:1,158:1,61:1,103:1,431:1,42:1,92:1,335:1,142:1,418:1,268:1,107:1,108:1,615:1},zad);_.ug=function Aad(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.zb;case 2:return B3(),(this.Bb&256)!=0?true:false;case 3:return B3(),(this.Bb&512)!=0?true:false;case 4:return d5(this.s);case 5:return d5(this.t);case 6:return B3(),wad(this)?true:false;case 7:return B3(),e=this.s,e>=1?true:false;case 8:if(b)return j9c(this);return this.r;case 9:return this.q;case 10:return B3(),(this.Bb&hVd)!=0?true:false;case 11:return B3(),(this.Bb&jVd)!=0?true:false;case 12:return B3(),(this.Bb&qLd)!=0?true:false;case 13:return this.j;case 14:return H9c(this);case 15:return B3(),(this.Bb&iVd)!=0?true:false;case 16:return B3(),(this.Bb&RJd)!=0?true:false;case 17:return I9c(this);case 18:return B3(),(this.Bb&bTd)!=0?true:false;case 19:if(b)return vad(this);return uad(this);}return EMc(this,a-Lbd((j7c(),R6c)),Gbd((d=kA(VNc(this,16),24),!d?R6c:d),a),b,c)};_.Fg=function Bad(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 wad(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&ohd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&ohd(this.q).i==0);case 10:return (this.Bb&hVd)==0;case 11:return (this.Bb&jVd)!=0;case 12:return (this.Bb&qLd)!=0;case 13:return this.j!=null;case 14:return H9c(this)!=null;case 15:return (this.Bb&iVd)!=0;case 16:return (this.Bb&RJd)!=0;case 17:return !!I9c(this);case 18:return (this.Bb&bTd)!=0;case 19:return !!uad(this);}return FMc(this,a-Lbd((j7c(),R6c)),Gbd((b=kA(VNc(this,16),24),!b?R6c:b),a))};_.Mg=function Cad(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:Q9c(this,pA(b));return;case 2:o9c(this,Vpb(mA(b)));return;case 3:p9c(this,Vpb(mA(b)));return;case 4:n9c(this,kA(b,21).a);return;case 5:yad(this,kA(b,21).a);return;case 8:l9c(this,kA(b,133));return;case 9:d=k9c(this,kA(b,84),null);!!d&&d.Th();return;case 10:L9c(this,Vpb(mA(b)));return;case 11:T9c(this,Vpb(mA(b)));return;case 12:R9c(this,Vpb(mA(b)));return;case 13:M9c(this,pA(b));return;case 15:S9c(this,Vpb(mA(b)));return;case 16:O9c(this,Vpb(mA(b)));return;case 18:xad(this,Vpb(mA(b)));return;}GMc(this,a-Lbd((j7c(),R6c)),Gbd((c=kA(VNc(this,16),24),!c?R6c:c),a),b)};_.Rg=function Dad(){return j7c(),R6c};_.Xg=function Ead(){vad(this);bud(rtd((uyd(),syd),this));j9c(this);this.Bb|=1};_.lj=function Fad(){return wad(this)};_.zj=function Gad(a,b){this.b=0;this.a=null;return m9c(this,a,b)};_.Aj=function Had(a){yad(this,a)};_.Ib=function Iad(){var a;if((this.Db&64)!=0)return U9c(this);a=new B6(U9c(this));a.a+=' (iD: ';x6(a,(this.Bb&bTd)!=0);a.a+=')';return a.a};_.b=0;var MY=k4(dTd,'EAttributeImpl',335);c3(672,399,{95:1,91:1,87:1,133:1,139:1,174:1,51:1,103:1,42:1,92:1,142:1,107:1,108:1,614:1});_.Gj=function Zad(a){return a.mg()==this};_.jg=function $ad(a){return Mad(this,a)};_.kg=function _ad(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_.ug=function abd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return Pad(this);case 4:return this.Oi();case 5:return this.F;case 6:if(b)return Nad(this);return Jad(this);case 7:return !this.A&&(this.A=new Bwd(AY,this,7)),this.A;}return EMc(this,a-Lbd(this.Rg()),Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),a),b,c)};_.Bg=function bbd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),p_c(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Mad(this,c):this.Cb.Cg(this,-1-e,null,c)));return CMc(this,a,6,c);}return f=kA(Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),b),61),f.aj().dj(this,TNc(this),b-Lbd(this.Rg()),a,c)};_.Dg=function cbd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 6:return CMc(this,null,6,c);case 7:return !this.A&&(this.A=new Bwd(AY,this,7)),q_c(this.A,a,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?this.Rg():d),b),61),e.aj().ej(this,TNc(this),b-Lbd(this.Rg()),a,c)};_.Fg=function dbd(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 !!Pad(this);case 4:return this.Oi()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!Jad(this);case 7:return !!this.A&&this.A.i!=0;}return FMc(this,a-Lbd(this.Rg()),Gbd((b=kA(VNc(this,16),24),!b?this.Rg():b),a))};_.Mg=function ebd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:Xad(this,pA(b));return;case 2:Uad(this,pA(b));return;case 5:Wad(this,pA(b));return;case 7:!this.A&&(this.A=new Bwd(AY,this,7));r_c(this.A);!this.A&&(this.A=new Bwd(AY,this,7));gXc(this.A,kA(b,13));return;}GMc(this,a-Lbd(this.Rg()),Gbd((c=kA(VNc(this,16),24),!c?this.Rg():c),a),b)};_.Rg=function fbd(){return j7c(),T6c};_.Ni=function gbd(){var a;return this.G==-1&&(this.G=(a=Nad(this),a?pcd(a.bh(),this):-1)),this.G};_.Oi=function hbd(){return null};_.Pi=function ibd(){return Nad(this)};_.Hj=function jbd(){return this.v};_.Qi=function kbd(){return Pad(this)};_.Ri=function lbd(){return this.D!=null?this.D:this.B};_.Si=function mbd(){return this.F};_.Li=function nbd(a){return Rad(this,a)};_.Ij=function obd(a){this.v=a};_.Jj=function pbd(a){Sad(this,a)};_.Kj=function qbd(a){this.C=a};_.ah=function rbd(a){Xad(this,a)};_.Ib=function sbd(){return Yad(this)};_.C=null;_.D=null;_.G=-1;var cZ=k4(dTd,'EClassifierImpl',672);c3(96,672,{95:1,91:1,87:1,24:1,133:1,139:1,174:1,51:1,103:1,42:1,92:1,96:1,142:1,432:1,107:1,108:1,614:1},Sbd);_.Gj=function Tbd(a){return Obd(this,a.mg())};_.ug=function Ubd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return Pad(this);case 4:return null;case 5:return this.F;case 6:if(b)return Nad(this);return Jad(this);case 7:return !this.A&&(this.A=new Bwd(AY,this,7)),this.A;case 8:return B3(),(this.Bb&256)!=0?true:false;case 9:return B3(),(this.Bb&512)!=0?true:false;case 10:return Kbd(this);case 11:return !this.q&&(this.q=new zkd(tY,this,11,10)),this.q;case 12:return xbd(this);case 13:return Bbd(this);case 14:return Bbd(this),this.r;case 15:return xbd(this),this.k;case 16:return ybd(this);case 17:return Abd(this);case 18:return Cbd(this);case 19:return Dbd(this);case 20:return xbd(this),this.o;case 21:return !this.s&&(this.s=new zkd(zY,this,21,17)),this.s;case 22:return Ebd(this);case 23:return zbd(this);}return EMc(this,a-Lbd((j7c(),S6c)),Gbd((d=kA(VNc(this,16),24),!d?S6c:d),a),b,c)};_.Bg=function Vbd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),p_c(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Mad(this,c):this.Cb.Cg(this,-1-e,null,c)));return CMc(this,a,6,c);case 11:return !this.q&&(this.q=new zkd(tY,this,11,10)),p_c(this.q,a,c);case 21:return !this.s&&(this.s=new zkd(zY,this,21,17)),p_c(this.s,a,c);}return f=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),S6c):d),b),61),f.aj().dj(this,TNc(this),b-Lbd((j7c(),S6c)),a,c)};_.Dg=function Wbd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 6:return CMc(this,null,6,c);case 7:return !this.A&&(this.A=new Bwd(AY,this,7)),q_c(this.A,a,c);case 11:return !this.q&&(this.q=new zkd(tY,this,11,10)),q_c(this.q,a,c);case 21:return !this.s&&(this.s=new zkd(zY,this,21,17)),q_c(this.s,a,c);case 22:return q_c(Ebd(this),a,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),S6c):d),b),61),e.aj().ej(this,TNc(this),b-Lbd((j7c(),S6c)),a,c)};_.Fg=function Xbd(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 !!Pad(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!Jad(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&&Ebd(this.u.a).i!=0&&!(!!this.n&&ndd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return xbd(this).i!=0;case 13:return Bbd(this).i!=0;case 14:return Bbd(this),this.r.i!=0;case 15:return xbd(this),this.k.i!=0;case 16:return ybd(this).i!=0;case 17:return Abd(this).i!=0;case 18:return Cbd(this).i!=0;case 19:return Dbd(this).i!=0;case 20:return xbd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&ndd(this.n);case 23:return zbd(this).i!=0;}return FMc(this,a-Lbd((j7c(),S6c)),Gbd((b=kA(VNc(this,16),24),!b?S6c:b),a))};_.Ig=function Ybd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:Hbd(this,a);return b?b:KQc(this,a)};_.Mg=function Zbd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:Xad(this,pA(b));return;case 2:Uad(this,pA(b));return;case 5:Wad(this,pA(b));return;case 7:!this.A&&(this.A=new Bwd(AY,this,7));r_c(this.A);!this.A&&(this.A=new Bwd(AY,this,7));gXc(this.A,kA(b,13));return;case 8:Pbd(this,Vpb(mA(b)));return;case 9:Qbd(this,Vpb(mA(b)));return;case 10:VZc(Kbd(this));gXc(Kbd(this),kA(b,13));return;case 11:!this.q&&(this.q=new zkd(tY,this,11,10));r_c(this.q);!this.q&&(this.q=new zkd(tY,this,11,10));gXc(this.q,kA(b,13));return;case 21:!this.s&&(this.s=new zkd(zY,this,21,17));r_c(this.s);!this.s&&(this.s=new zkd(zY,this,21,17));gXc(this.s,kA(b,13));return;case 22:r_c(Ebd(this));gXc(Ebd(this),kA(b,13));return;}GMc(this,a-Lbd((j7c(),S6c)),Gbd((c=kA(VNc(this,16),24),!c?S6c:c),a),b)};_.Rg=function $bd(){return j7c(),S6c};_.Xg=function _bd(){var a,b;xbd(this);Bbd(this);ybd(this);Abd(this);Cbd(this);Dbd(this);zbd(this);UXc(zdd(Jbd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--a){WXc(this,a)}}return aYc(this)};_.zc=function Vcd(a){var b;if(this.Qj()){for(b=this.i-1;b>=0;--b){WXc(this,b)}}return bYc(this,a)};_.ij=function Wcd(){r_c(this)};_.Ch=function Xcd(a,b){return scd(this,a,b)};var w0=k4(eVd,'EcoreEList',565);c3(450,565,vVd,Ycd);_.rh=function Zcd(){return false};_.pi=function $cd(){return this.c};_.qi=function _cd(){return false};_.Rj=function bdd(){return true};_.xh=function cdd(){return true};_.zh=function ddd(a,b){return b};_.Bh=function edd(){return false};_.c=0;var g0=k4(eVd,'EObjectEList',450);c3(88,450,vVd,fdd);_.qi=function gdd(){return true};_.Pj=function hdd(){return false};_.Dj=function idd(){return true};var a0=k4(eVd,'EObjectContainmentEList',88);c3(493,88,vVd,jdd);_.th=function kdd(){this.a=true};_.ui=function ldd(){return this.a};_.ij=function mdd(){var a;r_c(this);if(PMc(this.e)){a=this.a;this.a=false;vMc(this.e,new Pid(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var __=k4(eVd,'EObjectContainmentEList/Unsettable',493);c3(1003,493,vVd,rdd);_.yi=function vdd(a,b){return odd(this,kA(a,84),b)};_.zi=function wdd(a,b){return pdd(this,kA(a,84),b)};_.Ai=function xdd(a,b,c){return qdd(this,kA(a,84),kA(b,84),c)};_.mi=function sdd(a,b,c,d,e){switch(a){case 3:{return ncd(this,3,b,c,d,this.i>1)}case 5:{return ncd(this,5,b,c,d,this.i-kA(c,15)._b()>0)}default:{return new Oid(this.e,a,this.c,b,c,d,true)}}};_.xi=function tdd(){return true};_.ui=function udd(){return ndd(this)};_.ij=function ydd(){r_c(this)};var SY=k4(dTd,'EClassImpl/1',1003);c3(1017,1016,KUd);_.Ih=function Cdd(a){var b,c,d,e,f,g,h;c=a.Lh();if(c!=8){d=Bdd(a);if(d==0){switch(c){case 1:case 9:{h=a.Ph();if(h!=null){b=Jbd(kA(h,432));!b.c&&(b.c=new zod);mXc(b.c,a.Oh())}g=a.Nh();if(g!=null){e=kA(g,432);if((e.Bb&1)==0){b=Jbd(e);!b.c&&(b.c=new zod);fXc(b.c,kA(a.Oh(),24))}}break}case 3:{g=a.Nh();if(g!=null){e=kA(g,432);if((e.Bb&1)==0){b=Jbd(e);!b.c&&(b.c=new zod);fXc(b.c,kA(a.Oh(),24))}}break}case 5:{g=a.Nh();if(g!=null){for(f=kA(g,13).tc();f.hc();){e=kA(f.ic(),432);if((e.Bb&1)==0){b=Jbd(e);!b.c&&(b.c=new zod);fXc(b.c,kA(a.Oh(),24))}}}break}case 4:{h=a.Ph();if(h!=null){e=kA(h,432);if((e.Bb&1)==0){b=Jbd(e);!b.c&&(b.c=new zod);mXc(b.c,a.Oh())}}break}case 6:{h=a.Ph();if(h!=null){for(f=kA(h,13).tc();f.hc();){e=kA(f.ic(),432);if((e.Bb&1)==0){b=Jbd(e);!b.c&&(b.c=new zod);mXc(b.c,a.Oh())}}}break}}}this.Tj(d)}};_.Tj=function Ddd(a){Add(this,a)};_.b=63;var s$=k4(dTd,'ESuperAdapter',1017);c3(1018,1017,KUd,Fdd);_.Tj=function Gdd(a){Edd(this,a)};var NY=k4(dTd,'EClassImpl/10',1018);c3(1007,630,vVd);_.lh=function Hdd(a){return PXc(this,a)};_.mh=function Idd(a,b){QXc(this,a,b)};_.nh=function Jdd(a){RXc(this,a)};_.Dh=function Ldd(a){return TXc(this,a)};_.Ah=function Tdd(a,b){return $Xc(this,a,b)};_.xj=function Kdd(a,b){throw x2(new U6)};_.oh=function Mdd(){return new v0c(this)};_.ph=function Ndd(){return new y0c(this)};_.qh=function Odd(a){return hXc(this,a)};_.yj=function Pdd(a,b){throw x2(new U6)};_.hj=function Qdd(a){return this};_.ui=function Rdd(){return this.i!=0};_.Gc=function Sdd(a){throw x2(new U6)};_.ij=function Udd(){throw x2(new U6)};var v0=k4(eVd,'EcoreEList/UnmodifiableEList',1007);c3(301,1007,vVd,Vdd);_.Bh=function Wdd(){return false};var u0=k4(eVd,'EcoreEList/UnmodifiableEList/FastCompare',301);c3(1010,301,vVd,Zdd);_.dd=function $dd(a){var b,c,d;if(sA(a,158)){b=kA(a,158);c=b.pi();if(c!=-1){for(d=this.i;c4){if(this.Li(a)){if(this.Dj()){d=kA(a,42);c=d.ng();h=c==this.b&&(this.Pj()?d.hg(d.og(),kA(Gbd(RNc(this.b),this.pi()).jj(),24).Qi())==Wkd(kA(Gbd(RNc(this.b),this.pi()),17)).n:-1-d.og()==this.pi());if(this.Qj()&&!h&&!c&&!!d.sg()){for(e=0;e1||d==-1)}else{return false}};_.Pj=function ifd(){var a,b,c;b=Gbd(RNc(this.b),this.pi());if(sA(b,62)){a=kA(b,17);c=Wkd(a);return !!c}else{return false}};_.Qj=function jfd(){var a,b;b=Gbd(RNc(this.b),this.pi());if(sA(b,62)){a=kA(b,17);return (a.Bb&sLd)!=0}else{return false}};_.dd=function kfd(a){var b,c,d,e;d=this.ci(a);if(d>=0)return d;if(this.Rj()){for(c=0,e=this.hi();c=0;--a){Ved(this,a,this.ai(a))}}return this.ii()};_.zc=function wfd(a){var b;if(this.Qj()){for(b=this.hi()-1;b>=0;--b){Ved(this,b,this.ai(b))}}return this.ji(a)};_.ij=function xfd(){VZc(this)};_.Ch=function yfd(a,b){return Xed(this,a,b)};var N_=k4(eVd,'DelegatingEcoreEList',674);c3(1013,674,AVd,Efd);_.Vh=function Hfd(a,b){zfd(this,a,kA(b,24))};_.Wh=function Ifd(a){Afd(this,kA(a,24))};_.ai=function Ofd(a){var b,c;return b=kA(WXc(Ebd(this.a),a),84),c=b.c,sA(c,96)?kA(c,24):(j7c(),a7c)};_.fi=function Tfd(a){var b,c;return b=kA(t_c(Ebd(this.a),a),84),c=b.c,sA(c,96)?kA(c,24):(j7c(),a7c)};_.gi=function Ufd(a,b){return Cfd(this,a,kA(b,24))};_.rh=function Ffd(){return false};_.mi=function Gfd(a,b,c,d,e){return null};_.Xh=function Jfd(){return new kgd(this)};_.Yh=function Kfd(){r_c(Ebd(this.a))};_.Zh=function Lfd(a){return Bfd(this,a)};_.$h=function Mfd(a){var b,c;for(c=a.tc();c.hc();){b=c.ic();if(!Bfd(this,b)){return false}}return true};_._h=function Nfd(a){var b,c,d;if(sA(a,15)){d=kA(a,15);if(d._b()==Ebd(this.a).i){for(b=d.tc(),c=new a0c(this);b.hc();){if(yA(b.ic())!==yA($_c(c))){return false}}return true}}return false};_.bi=function Pfd(){var a,b,c,d,e;c=1;for(b=new a0c(Ebd(this.a));b.e!=b.i._b();){a=kA($_c(b),84);d=(e=a.c,sA(e,96)?kA(e,24):(j7c(),a7c));c=31*c+(!d?0:bqb(d))}return c};_.ci=function Qfd(a){var b,c,d,e;d=0;for(c=new a0c(Ebd(this.a));c.e!=c.i._b();){b=kA($_c(c),84);if(yA(a)===yA((e=b.c,sA(e,96)?kA(e,24):(j7c(),a7c)))){return d}++d}return -1};_.di=function Rfd(){return Ebd(this.a).i==0};_.ei=function Sfd(){return null};_.hi=function Vfd(){return Ebd(this.a).i};_.ii=function Wfd(){var a,b,c,d,e,f;f=Ebd(this.a).i;e=tz(NE,oJd,1,f,5,1);c=0;for(b=new a0c(Ebd(this.a));b.e!=b.i._b();){a=kA($_c(b),84);e[c++]=(d=a.c,sA(d,96)?kA(d,24):(j7c(),a7c))}return e};_.ji=function Xfd(a){var b,c,d,e,f,g,h;h=Ebd(this.a).i;if(a.lengthh&&wz(a,h,null);d=0;for(c=new a0c(Ebd(this.a));c.e!=c.i._b();){b=kA($_c(c),84);f=(g=b.c,sA(g,96)?kA(g,24):(j7c(),a7c));wz(a,d++,f)}return a};_.ki=function Yfd(){var a,b,c,d,e;e=new z6;e.a+='[';a=Ebd(this.a);for(b=0,d=Ebd(this.a).i;b>16,e>=0?Mad(this,c):this.Cb.Cg(this,-1-e,null,c)));return CMc(this,a,6,c);case 9:return !this.a&&(this.a=new zkd(mY,this,9,5)),p_c(this.a,a,c);}return f=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),V6c):d),b),61),f.aj().dj(this,TNc(this),b-Lbd((j7c(),V6c)),a,c)};_.Dg=function Kgd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 6:return CMc(this,null,6,c);case 7:return !this.A&&(this.A=new Bwd(AY,this,7)),q_c(this.A,a,c);case 9:return !this.a&&(this.a=new zkd(mY,this,9,5)),q_c(this.a,a,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),V6c):d),b),61),e.aj().ej(this,TNc(this),b-Lbd((j7c(),V6c)),a,c)};_.Fg=function Lgd(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 !!Pad(this);case 4:return !!Fgd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!Jad(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 FMc(this,a-Lbd((j7c(),V6c)),Gbd((b=kA(VNc(this,16),24),!b?V6c:b),a))};_.Mg=function Mgd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:Xad(this,pA(b));return;case 2:Uad(this,pA(b));return;case 5:Wad(this,pA(b));return;case 7:!this.A&&(this.A=new Bwd(AY,this,7));r_c(this.A);!this.A&&(this.A=new Bwd(AY,this,7));gXc(this.A,kA(b,13));return;case 8:rgd(this,Vpb(mA(b)));return;case 9:!this.a&&(this.a=new zkd(mY,this,9,5));r_c(this.a);!this.a&&(this.a=new zkd(mY,this,9,5));gXc(this.a,kA(b,13));return;}GMc(this,a-Lbd((j7c(),V6c)),Gbd((c=kA(VNc(this,16),24),!c?V6c:c),a),b)};_.Rg=function Ngd(){return j7c(),V6c};_.Xg=function Ogd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?kA(this.Cb,608):null;}return EMc(this,a-Lbd((j7c(),W6c)),Gbd((d=kA(VNc(this,16),24),!d?W6c:d),a),b,c)};_.Bg=function $gd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),p_c(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Sgd(this,c):this.Cb.Cg(this,-1-e,null,c)));return CMc(this,a,5,c);}return f=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),W6c):d),b),61),f.aj().dj(this,TNc(this),b-Lbd((j7c(),W6c)),a,c)};_.Dg=function _gd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 5:return CMc(this,null,5,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),W6c):d),b),61),e.aj().ej(this,TNc(this),b-Lbd((j7c(),W6c)),a,c)};_.Fg=function ahd(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?kA(this.Cb,608):null);}return FMc(this,a-Lbd((j7c(),W6c)),Gbd((b=kA(VNc(this,16),24),!b?W6c:b),a))};_.Mg=function bhd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:wRc(this,pA(b));return;case 2:Wgd(this,kA(b,21).a);return;case 3:Ugd(this,kA(b,1634));return;case 4:Vgd(this,pA(b));return;}GMc(this,a-Lbd((j7c(),W6c)),Gbd((c=kA(VNc(this,16),24),!c?W6c:c),a),b)};_.Rg=function chd(){return j7c(),W6c};_.Ib=function ehd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var fZ=k4(dTd,'EEnumLiteralImpl',525);var hZ=m4(dTd,'EFactoryImpl/InternalEDateTimeFormat');c3(445,1,{1699:1},hhd);var gZ=k4(dTd,'EFactoryImpl/1ClientInternalEDateTimeFormat',445);c3(217,108,{95:1,91:1,87:1,84:1,51:1,103:1,42:1,92:1,217:1,107:1,108:1},xhd);_.lg=function yhd(a,b,c){var d;c=CMc(this,a,b,c);if(!!this.e&&sA(a,158)){d=phd(this,this.e);d!=this.c&&(c=thd(this,d,c))}return c};_.ug=function zhd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new fdd(pY,this,1)),this.d;case 2:if(b)return nhd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return mhd(this);return this.a;}return EMc(this,a-Lbd((j7c(),Y6c)),Gbd((d=kA(VNc(this,16),24),!d?Y6c:d),a),b,c)};_.Dg=function Ahd(a,b,c){var d,e;switch(b){case 0:return lhd(this,null,c);case 1:return !this.d&&(this.d=new fdd(pY,this,1)),q_c(this.d,a,c);case 3:return jhd(this,null,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),Y6c):d),b),61),e.aj().ej(this,TNc(this),b-Lbd((j7c(),Y6c)),a,c)};_.Fg=function Bhd(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 FMc(this,a-Lbd((j7c(),Y6c)),Gbd((b=kA(VNc(this,16),24),!b?Y6c:b),a))};_.Mg=function Chd(a,b){var c;switch(a){case 0:vhd(this,kA(b,84));return;case 1:!this.d&&(this.d=new fdd(pY,this,1));r_c(this.d);!this.d&&(this.d=new fdd(pY,this,1));gXc(this.d,kA(b,13));return;case 3:shd(this,kA(b,84));return;case 4:uhd(this,kA(b,742));return;case 5:qhd(this,kA(b,133));return;}GMc(this,a-Lbd((j7c(),Y6c)),Gbd((c=kA(VNc(this,16),24),!c?Y6c:c),a),b)};_.Rg=function Dhd(){return j7c(),Y6c};_.Ib=function Ehd(){var a;a=new O6(aNc(this));a.a+=' (expression: ';whd(this,a);a.a+=')';return a.a};var ihd;var jZ=k4(dTd,'EGenericTypeImpl',217);c3(1667,1657,BVd);_.xj=function Ghd(a,b){Fhd(this,this._b(),a);return b};_.Dh=function Hhd(a){return Fq(this.Uh(),a)};_.oh=function Ihd(){return this.ph()};_.Uh=function Jhd(){return new Psd(this)};_.ph=function Khd(){return this.qh(0)};_.qh=function Lhd(a){return this.Uh().fd(a)};_.yj=function Mhd(a,b){qg(this,a,true);return b};var E_=k4(eVd,'AbstractSequentialInternalEList',1667);c3(444,1667,BVd,Rhd);_.Dh=function Shd(a){return Fq(this.Uh(),a)};_.oh=function Thd(){if(this.b==null){return iid(),iid(),hid}return this.Vj()};_.Uh=function Uhd(){return new nwd(this.a,this.b)};_.ph=function Vhd(){if(this.b==null){return iid(),iid(),hid}return this.Vj()};_.qh=function Whd(a){var b,c;if(this.b==null){if(a<0||a>1){throw x2(new q3(NUd+a+', size=0'))}return iid(),iid(),hid}c=this.Vj();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Vi()!=FV||b.pi()!=0)&&(!this.Yj()||this.b.Gg(b))){f=this.b.wg(b,this.Xj());this.f=(wyd(),kA(b,61).bj());if(this.f||b.lj()){if(this.Xj()){d=kA(f,15);this.k=d}else{d=kA(f,64);this.k=this.j=d}if(sA(this.k,49)){this.o=this.k._b();this.n=this.o}else{this.p=!this.j?this.k.fd(this.k._b()):this.j.qh(this.k._b())}if(!this.p?mid(this):nid(this,this.p)){e=!this.p?!this.j?this.k.cd(--this.n):this.j.Dh(--this.n):this.p.Ec();if(this.f){a=kA(e,75);a.nj();c=a.lc();this.i=c}else{this.i=e}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;this.i=f;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.cd(--this.n):this.j.Dh(--this.n):this.p.Ec();if(this.f){a=kA(e,75);a.nj();c=a.lc();this.i=c}else{this.i=e}this.g=-3;return true}}}};_.ic=function uid(){return jid(this)};_.Dc=function vid(){return this.a};_.Ec=function wid(){var a;if(this.g<-1||this.Cc()){--this.a;this.g=0;a=this.i;this.Cc();return a}else{throw x2(new djb)}};_.Fc=function xid(){return this.a-1};_.jc=function yid(){throw x2(new U6)};_.Xj=function zid(){return false};_.Gc=function Aid(a){throw x2(new U6)};_.Yj=function Bid(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var hid;var S_=k4(eVd,'EContentsEList/FeatureIteratorImpl',260);c3(631,260,CVd,Cid);_.Xj=function Did(){return true};var T_=k4(eVd,'EContentsEList/ResolvingFeatureIteratorImpl',631);c3(1020,631,CVd,Eid);_.Yj=function Fid(){return false};var lZ=k4(dTd,'ENamedElementImpl/1/1',1020);c3(1021,260,CVd,Gid);_.Yj=function Hid(){return false};var mZ=k4(dTd,'ENamedElementImpl/1/2',1021);c3(32,136,MUd,Kid,Lid,Mid,Nid,Oid,Pid,Qid,Rid,Sid,Tid,Uid,Vid,Wid,Xid,Yid,Zid,$id,_id,ajd,cjd,djd,ejd,fjd,gjd);_.oi=function hjd(){return Jid(this)};_.vi=function ijd(){var a;a=Jid(this);if(a){return a.Oi()}return null};_.Mh=function jjd(a){this.b==-1&&!!this.a&&(this.b=this.c.qg(this.a.pi(),this.a.Vi()));return this.c.hg(this.b,a)};_.Oh=function kjd(){return this.c};_.wi=function ljd(){var a;a=Jid(this);if(a){return a.Zi()}return false};_.b=-1;var pZ=k4(dTd,'ENotificationImpl',32);c3(371,268,{95:1,91:1,87:1,139:1,174:1,51:1,53:1,103:1,431:1,42:1,92:1,142:1,371:1,268:1,107:1,108:1},pjd);_.jg=function qjd(a){return mjd(this,a)};_.ug=function rjd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.zb;case 2:return B3(),(this.Bb&256)!=0?true:false;case 3:return B3(),(this.Bb&512)!=0?true:false;case 4:return d5(this.s);case 5:return d5(this.t);case 6:return B3(),f=this.t,f>1||f==-1?true:false;case 7:return B3(),e=this.s,e>=1?true:false;case 8:if(b)return j9c(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?kA(this.Cb,24):null;case 11:return !this.d&&(this.d=new Bwd(AY,this,11)),this.d;case 12:return !this.c&&(this.c=new zkd(vY,this,12,10)),this.c;case 13:return !this.a&&(this.a=new Djd(this,this)),this.a;case 14:return njd(this);}return EMc(this,a-Lbd((j7c(),b7c)),Gbd((d=kA(VNc(this,16),24),!d?b7c:d),a),b,c)};_.Bg=function sjd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),p_c(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mjd(this,c):this.Cb.Cg(this,-1-e,null,c)));return CMc(this,a,10,c);case 12:return !this.c&&(this.c=new zkd(vY,this,12,10)),p_c(this.c,a,c);}return f=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),b7c):d),b),61),f.aj().dj(this,TNc(this),b-Lbd((j7c(),b7c)),a,c)};_.Dg=function tjd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 9:return i9c(this,c);case 10:return CMc(this,null,10,c);case 11:return !this.d&&(this.d=new Bwd(AY,this,11)),q_c(this.d,a,c);case 12:return !this.c&&(this.c=new zkd(vY,this,12,10)),q_c(this.c,a,c);case 14:return q_c(njd(this),a,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),b7c):d),b),61),e.aj().ej(this,TNc(this),b-Lbd((j7c(),b7c)),a,c)};_.Fg=function ujd(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&&ohd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&ohd(this.q).i==0);case 10:return !!(this.Db>>16==10?kA(this.Cb,24):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&njd(this.a.a).i!=0&&!(!!this.b&&mkd(this.b));case 14:return !!this.b&&mkd(this.b);}return FMc(this,a-Lbd((j7c(),b7c)),Gbd((b=kA(VNc(this,16),24),!b?b7c:b),a))};_.Mg=function vjd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:wRc(this,pA(b));return;case 2:o9c(this,Vpb(mA(b)));return;case 3:p9c(this,Vpb(mA(b)));return;case 4:n9c(this,kA(b,21).a);return;case 5:q9c(this,kA(b,21).a);return;case 8:l9c(this,kA(b,133));return;case 9:d=k9c(this,kA(b,84),null);!!d&&d.Th();return;case 11:!this.d&&(this.d=new Bwd(AY,this,11));r_c(this.d);!this.d&&(this.d=new Bwd(AY,this,11));gXc(this.d,kA(b,13));return;case 12:!this.c&&(this.c=new zkd(vY,this,12,10));r_c(this.c);!this.c&&(this.c=new zkd(vY,this,12,10));gXc(this.c,kA(b,13));return;case 13:!this.a&&(this.a=new Djd(this,this));VZc(this.a);!this.a&&(this.a=new Djd(this,this));gXc(this.a,kA(b,13));return;case 14:r_c(njd(this));gXc(njd(this),kA(b,13));return;}GMc(this,a-Lbd((j7c(),b7c)),Gbd((c=kA(VNc(this,16),24),!c?b7c:c),a),b)};_.Rg=function wjd(){return j7c(),b7c};_.Xg=function xjd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&wz(a,h,null);d=0;for(c=new a0c(njd(this.a));c.e!=c.i._b();){b=kA($_c(c),84);f=(g=b.c,g?g:(j7c(),Z6c));wz(a,d++,f)}return a};_.ki=function Xjd(){var a,b,c,d,e;e=new z6;e.a+='[';a=njd(this.a);for(b=0,d=njd(this.a).i;b1)}case 5:{return ncd(this,5,b,c,d,this.i-kA(c,15)._b()>0)}default:{return new Oid(this.e,a,this.c,b,c,d,true)}}};_.xi=function skd(){return true};_.ui=function tkd(){return mkd(this)};_.ij=function xkd(){r_c(this)};var tZ=k4(dTd,'EOperationImpl/2',1388);c3(456,1,{1631:1,456:1},ykd);var vZ=k4(dTd,'EPackageImpl/1',456);c3(18,88,vVd,zkd);_.Lj=function Akd(){return this.d};_.Mj=function Bkd(){return this.b};_.Pj=function Ckd(){return true};_.b=0;var e0=k4(eVd,'EObjectContainmentWithInverseEList',18);c3(364,18,vVd,Dkd);_.Qj=function Ekd(){return true};_.zh=function Fkd(a,b){return qcd(this,a,kA(b,51))};var b0=k4(eVd,'EObjectContainmentWithInverseEList/Resolving',364);c3(303,364,vVd,Gkd);_.th=function Hkd(){this.a.tb=null};var wZ=k4(dTd,'EPackageImpl/2',303);c3(1155,1,{},Ikd);var xZ=k4(dTd,'EPackageImpl/3',1155);c3(650,44,FLd,Lkd);_.Qb=function Mkd(a){return wA(a)?H8(this,a):!!Wgb(this.d,a)};var zZ=k4(dTd,'EPackageRegistryImpl',650);c3(468,268,{95:1,91:1,87:1,139:1,174:1,51:1,1703:1,103:1,431:1,42:1,92:1,142:1,468:1,268:1,107:1,108:1},Okd);_.jg=function Pkd(a){return Nkd(this,a)};_.ug=function Qkd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.zb;case 2:return B3(),(this.Bb&256)!=0?true:false;case 3:return B3(),(this.Bb&512)!=0?true:false;case 4:return d5(this.s);case 5:return d5(this.t);case 6:return B3(),f=this.t,f>1||f==-1?true:false;case 7:return B3(),e=this.s,e>=1?true:false;case 8:if(b)return j9c(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?kA(this.Cb,53):null;}return EMc(this,a-Lbd((j7c(),d7c)),Gbd((d=kA(VNc(this,16),24),!d?d7c:d),a),b,c)};_.Bg=function Rkd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),p_c(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Nkd(this,c):this.Cb.Cg(this,-1-e,null,c)));return CMc(this,a,10,c);}return f=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),d7c):d),b),61),f.aj().dj(this,TNc(this),b-Lbd((j7c(),d7c)),a,c)};_.Dg=function Skd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 9:return i9c(this,c);case 10:return CMc(this,null,10,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),d7c):d),b),61),e.aj().ej(this,TNc(this),b-Lbd((j7c(),d7c)),a,c)};_.Fg=function Tkd(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&&ohd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&ohd(this.q).i==0);case 10:return !!(this.Db>>16==10?kA(this.Cb,53):null);}return FMc(this,a-Lbd((j7c(),d7c)),Gbd((b=kA(VNc(this,16),24),!b?d7c:b),a))};_.Rg=function Ukd(){return j7c(),d7c};var AZ=k4(dTd,'EParameterImpl',468);c3(62,418,{95:1,91:1,87:1,139:1,174:1,51:1,17:1,158:1,61:1,103:1,431:1,42:1,92:1,142:1,62:1,418:1,268:1,107:1,108:1,615:1},ald);_.ug=function bld(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.zb;case 2:return B3(),(this.Bb&256)!=0?true:false;case 3:return B3(),(this.Bb&512)!=0?true:false;case 4:return d5(this.s);case 5:return d5(this.t);case 6:return B3(),g=this.t,g>1||g==-1?true:false;case 7:return B3(),e=this.s,e>=1?true:false;case 8:if(b)return j9c(this);return this.r;case 9:return this.q;case 10:return B3(),(this.Bb&hVd)!=0?true:false;case 11:return B3(),(this.Bb&jVd)!=0?true:false;case 12:return B3(),(this.Bb&qLd)!=0?true:false;case 13:return this.j;case 14:return H9c(this);case 15:return B3(),(this.Bb&iVd)!=0?true:false;case 16:return B3(),(this.Bb&RJd)!=0?true:false;case 17:return I9c(this);case 18:return B3(),(this.Bb&bTd)!=0?true:false;case 19:return B3(),f=Wkd(this),!!f&&(f.Bb&bTd)!=0?true:false;case 20:return B3(),(this.Bb&sLd)!=0?true:false;case 21:if(b)return Wkd(this);return this.b;case 22:if(b)return Xkd(this);return Vkd(this);case 23:return !this.a&&(this.a=new Swd(hY,this,23)),this.a;}return EMc(this,a-Lbd((j7c(),e7c)),Gbd((d=kA(VNc(this,16),24),!d?e7c:d),a),b,c)};_.Fg=function cld(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&&ohd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&ohd(this.q).i==0);case 10:return (this.Bb&hVd)==0;case 11:return (this.Bb&jVd)!=0;case 12:return (this.Bb&qLd)!=0;case 13:return this.j!=null;case 14:return H9c(this)!=null;case 15:return (this.Bb&iVd)!=0;case 16:return (this.Bb&RJd)!=0;case 17:return !!I9c(this);case 18:return (this.Bb&bTd)!=0;case 19:return d=Wkd(this),!!d&&(d.Bb&bTd)!=0;case 20:return (this.Bb&sLd)==0;case 21:return !!this.b;case 22:return !!Vkd(this);case 23:return !!this.a&&this.a.i!=0;}return FMc(this,a-Lbd((j7c(),e7c)),Gbd((b=kA(VNc(this,16),24),!b?e7c:b),a))};_.Mg=function dld(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:Q9c(this,pA(b));return;case 2:o9c(this,Vpb(mA(b)));return;case 3:p9c(this,Vpb(mA(b)));return;case 4:n9c(this,kA(b,21).a);return;case 5:q9c(this,kA(b,21).a);return;case 8:l9c(this,kA(b,133));return;case 9:d=k9c(this,kA(b,84),null);!!d&&d.Th();return;case 10:L9c(this,Vpb(mA(b)));return;case 11:T9c(this,Vpb(mA(b)));return;case 12:R9c(this,Vpb(mA(b)));return;case 13:M9c(this,pA(b));return;case 15:S9c(this,Vpb(mA(b)));return;case 16:O9c(this,Vpb(mA(b)));return;case 18:Ykd(this,Vpb(mA(b)));return;case 20:_kd(this,Vpb(mA(b)));return;case 21:$kd(this,kA(b,17));return;case 23:!this.a&&(this.a=new Swd(hY,this,23));r_c(this.a);!this.a&&(this.a=new Swd(hY,this,23));gXc(this.a,kA(b,13));return;}GMc(this,a-Lbd((j7c(),e7c)),Gbd((c=kA(VNc(this,16),24),!c?e7c:c),a),b)};_.Rg=function eld(){return j7c(),e7c};_.Xg=function fld(){Xkd(this);bud(rtd((uyd(),syd),this));j9c(this);this.Bb|=1};_.$i=function gld(){return Wkd(this)};_.Cj=function hld(){var a;return a=Wkd(this),!!a&&(a.Bb&bTd)!=0};_.Dj=function ild(){return (this.Bb&bTd)!=0};_.Ej=function jld(){return (this.Bb&sLd)!=0};_.zj=function kld(a,b){this.c=null;return m9c(this,a,b)};_.Ib=function lld(){var a;if((this.Db&64)!=0)return U9c(this);a=new B6(U9c(this));a.a+=' (containment: ';x6(a,(this.Bb&bTd)!=0);a.a+=', resolveProxies: ';x6(a,(this.Bb&sLd)!=0);a.a+=')';return a.a};var BZ=k4(dTd,'EReferenceImpl',62);c3(505,108,{95:1,38:1,91:1,87:1,134:1,51:1,103:1,42:1,92:1,505:1,107:1,108:1},rld);_.Fb=function wld(a){return this===a};_.kc=function yld(){return this.b};_.lc=function zld(){return this.c};_.Hb=function Ald(){return bqb(this)};_.kh=function Cld(a){mld(this,pA(a))};_.mc=function Dld(a){return qld(this,pA(a))};_.ug=function sld(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return EMc(this,a-Lbd((j7c(),f7c)),Gbd((d=kA(VNc(this,16),24),!d?f7c:d),a),b,c)};_.Fg=function tld(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return FMc(this,a-Lbd((j7c(),f7c)),Gbd((b=kA(VNc(this,16),24),!b?f7c:b),a))};_.Mg=function uld(a,b){var c;switch(a){case 0:nld(this,pA(b));return;case 1:pld(this,pA(b));return;}GMc(this,a-Lbd((j7c(),f7c)),Gbd((c=kA(VNc(this,16),24),!c?f7c:c),a),b)};_.Rg=function vld(){return j7c(),f7c};_.ih=function xld(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:hqb(a)}return this.a};_.jh=function Bld(a){this.a=a};_.Ib=function Eld(){var a;if((this.Db&64)!=0)return aNc(this);a=new B6(aNc(this));a.a+=' (key: ';w6(a,this.b);a.a+=', value: ';w6(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var CZ=k4(dTd,'EStringToStringMapEntryImpl',505);var F0=m4(eVd,'FeatureMap/Entry/Internal');c3(514,1,DVd);_.$j=function Hld(a){return this._j(kA(a,42))};_._j=function Ild(a){return this.$j(a)};_.Fb=function Jld(a){var b,c;if(this===a){return true}else if(sA(a,75)){b=kA(a,75);if(b.nj()==this.c){c=this.lc();return c==null?b.lc()==null:kb(c,b.lc())}else{return false}}else{return false}};_.nj=function Kld(){return this.c};_.Hb=function Lld(){var a;a=this.lc();return ob(this.c)^(a==null?0:ob(a))};_.Ib=function Mld(){var a,b;a=this.c;b=Nad(a.Wi()).fh();a.be();return (b!=null&&b.length!=0?b+':'+a.be():a.be())+'='+this.lc()};var DZ=k4(dTd,'EStructuralFeatureImpl/BasicFeatureMapEntry',514);c3(709,514,DVd,Pld);_._j=function Qld(a){return new Pld(this.c,a)};_.lc=function Rld(){return this.a};_.ak=function Sld(a,b,c){return Nld(this,a,this.a,b,c)};_.bk=function Tld(a,b,c){return Old(this,a,this.a,b,c)};var EZ=k4(dTd,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',709);c3(1363,1,{},Uld);_.cj=function Vld(a,b,c,d,e){var f;f=kA(IMc(a,this.b),237);return f.yk(this.a).hj(d)};_.dj=function Wld(a,b,c,d,e){var f;f=kA(IMc(a,this.b),237);return f.pk(this.a,d,e)};_.ej=function Xld(a,b,c,d,e){var f;f=kA(IMc(a,this.b),237);return f.qk(this.a,d,e)};_.fj=function Yld(a,b,c){var d;d=kA(IMc(a,this.b),237);return d.yk(this.a).ui()};_.gj=function Zld(a,b,c,d){var e;e=kA(IMc(a,this.b),237);e.yk(this.a).Gc(d)};var FZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1363);c3(82,1,{},_ld,amd,bmd,cmd);_.cj=function dmd(a,b,c,d,e){var f;f=b.Tg(c);f==null&&b.Ug(c,f=$ld(this,a));if(!e){switch(this.e){case 50:case 41:return kA(f,533).Hi();case 40:return kA(f,237).vk();}}return f};_.dj=function emd(a,b,c,d,e){var f,g;g=b.Tg(c);g==null&&b.Ug(c,g=$ld(this,a));f=kA(g,64).xj(d,e);return f};_.ej=function fmd(a,b,c,d,e){var f;f=b.Tg(c);f!=null&&(e=kA(f,64).yj(d,e));return e};_.fj=function gmd(a,b,c){var d;d=b.Tg(c);return d!=null&&kA(d,81).ui()};_.gj=function hmd(a,b,c,d){var e;e=kA(b.Tg(c),81);!e&&b.Ug(c,e=$ld(this,a));e.Gc(d)};_.b=0;_.e=0;var GZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateMany',82);c3(461,1,{});_.dj=function lmd(a,b,c,d,e){throw x2(new U6)};_.ej=function mmd(a,b,c,d,e){throw x2(new U6)};var imd;var m$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingle',461);c3(702,461,{},nmd);_.cj=function omd(a,b,c,d,e){return jNc(a,a.yg(),a.og())==this.b?this.Ej()&&d?DMc(a):a.yg():null};_.dj=function pmd(a,b,c,d,e){var f,g;!!a.yg()&&(e=(f=a.og(),f>=0?a.jg(e):a.yg().Cg(a,-1-f,null,e)));g=Mbd(a.mg(),this.e);return a.lg(d,g,e)};_.ej=function qmd(a,b,c,d,e){var f;f=Mbd(a.mg(),this.e);return a.lg(null,f,e)};_.fj=function rmd(a,b,c){var d;d=Mbd(a.mg(),this.e);return !!a.yg()&&a.og()==d};_.gj=function smd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!Rad(this.a,d)){throw x2(new A4(EVd+(sA(d,51)?Rbd(kA(d,51).mg()):g4(mb(d)))+FVd+this.a+"'"))}e=a.yg();g=Mbd(a.mg(),this.e);if(yA(d)!==yA(e)||a.og()!=g&&d!=null){if(eyd(a,kA(d,51)))throw x2(new O4(fTd+a.Ib()));i=null;!!e&&(i=(f=a.og(),f>=0?a.jg(null):a.yg().Cg(a,-1-f,null,null)));h=kA(d,42);!!h&&(i=h.Ag(a,Mbd(h.mg(),this.b),null,i));i=a.lg(h,g,i);!!i&&i.Th()}else{a.eg()&&a.fg()&&vMc(a,new Mid(a,1,g,d,d))}};_.Ej=function tmd(){return false};var IZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',702);c3(1364,702,{},umd);_.Ej=function vmd(){return true};var HZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1364);c3(512,461,{});_.cj=function ymd(a,b,c,d,e){var f;return f=b.Tg(c),f==null?this.b:yA(f)===yA(imd)?null:f};_.fj=function zmd(a,b,c){var d;d=b.Tg(c);return d!=null&&(yA(d)===yA(imd)||!kb(d,this.b))};_.gj=function Amd(a,b,c,d){var e,f;if(a.eg()&&a.fg()){e=(f=b.Tg(c),f==null?this.b:yA(f)===yA(imd)?null:f);if(d==null){if(this.c!=null){b.Ug(c,null);d=this.b}else this.b!=null?b.Ug(c,imd):b.Ug(c,null)}else{this.ck(d);b.Ug(c,d)}vMc(a,this.d.dk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Ug(c,null):this.b!=null?b.Ug(c,imd):b.Ug(c,null)}else{this.ck(d);b.Ug(c,d)}}};_.ck=function Bmd(a){throw x2(new z4)};var XZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',512);c3(GVd,1,{},Mmd);_.dk=function Nmd(a,b,c,d,e){return new ajd(a,b,c,d,e)};_.ek=function Omd(a,b,c,d,e,f){return new cjd(a,b,c,d,e,f)};var Cmd,Dmd,Emd,Fmd,Gmd,Hmd,Imd,Jmd,Kmd;var RZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',GVd);c3(1379,GVd,{},Pmd);_.dk=function Qmd(a,b,c,d,e){return new fjd(a,b,c,Vpb(mA(d)),Vpb(mA(e)))};_.ek=function Rmd(a,b,c,d,e,f){return new gjd(a,b,c,Vpb(mA(d)),Vpb(mA(e)),f)};var JZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1379);c3(1380,GVd,{},Smd);_.dk=function Tmd(a,b,c,d,e){return new Qid(a,b,c,kA(d,192).a,kA(e,192).a)};_.ek=function Umd(a,b,c,d,e,f){return new Rid(a,b,c,kA(d,192).a,kA(e,192).a,f)};var KZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1380);c3(1381,GVd,{},Vmd);_.dk=function Wmd(a,b,c,d,e){return new Sid(a,b,c,kA(d,159).a,kA(e,159).a)};_.ek=function Xmd(a,b,c,d,e,f){return new Tid(a,b,c,kA(d,159).a,kA(e,159).a,f)};var LZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1381);c3(1382,GVd,{},Ymd);_.dk=function Zmd(a,b,c,d,e){return new Uid(a,b,c,Vpb(nA(d)),Vpb(nA(e)))};_.ek=function $md(a,b,c,d,e,f){return new Vid(a,b,c,Vpb(nA(d)),Vpb(nA(e)),f)};var MZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1382);c3(1383,GVd,{},_md);_.dk=function and(a,b,c,d,e){return new Wid(a,b,c,kA(d,126).a,kA(e,126).a)};_.ek=function bnd(a,b,c,d,e,f){return new Xid(a,b,c,kA(d,126).a,kA(e,126).a,f)};var NZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1383);c3(1384,GVd,{},cnd);_.dk=function dnd(a,b,c,d,e){return new Yid(a,b,c,kA(d,21).a,kA(e,21).a)};_.ek=function end(a,b,c,d,e,f){return new Zid(a,b,c,kA(d,21).a,kA(e,21).a,f)};var OZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1384);c3(1385,GVd,{},fnd);_.dk=function gnd(a,b,c,d,e){return new $id(a,b,c,kA(d,149).a,kA(e,149).a)};_.ek=function hnd(a,b,c,d,e,f){return new _id(a,b,c,kA(d,149).a,kA(e,149).a,f)};var PZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1385);c3(1386,GVd,{},ind);_.dk=function jnd(a,b,c,d,e){return new djd(a,b,c,kA(d,168).a,kA(e,168).a)};_.ek=function knd(a,b,c,d,e,f){return new ejd(a,b,c,kA(d,168).a,kA(e,168).a,f)};var QZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1386);c3(1366,512,{},lnd);_.ck=function mnd(a){if(!this.a.Li(a)){throw x2(new A4(EVd+mb(a)+FVd+this.a+"'"))}};var SZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1366);c3(1367,512,{},nnd);_.ck=function ond(a){};var TZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1367);c3(703,512,{});_.fj=function pnd(a,b,c){var d;d=b.Tg(c);return d!=null};_.gj=function qnd(a,b,c,d){var e,f;if(a.eg()&&a.fg()){e=true;f=b.Tg(c);if(f==null){e=false;f=this.b}else yA(f)===yA(imd)&&(f=null);if(d==null){if(this.c!=null){b.Ug(c,null);d=this.b}else{b.Ug(c,imd)}}else{this.ck(d);b.Ug(c,d)}vMc(a,this.d.ek(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Ug(c,null):b.Ug(c,imd)}else{this.ck(d);b.Ug(c,d)}}};var WZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',703);c3(1368,703,{},rnd);_.ck=function snd(a){if(!this.a.Li(a)){throw x2(new A4(EVd+mb(a)+FVd+this.a+"'"))}};var UZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1368);c3(1369,703,{},tnd);_.ck=function und(a){};var VZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1369);c3(370,461,{},vnd);_.cj=function xnd(a,b,c,d,e){var f,g,h,i,j;j=b.Tg(c);if(this.Zi()&&yA(j)===yA(imd)){return null}else if(this.Ej()&&d&&j!=null){h=kA(j,42);if(h.Eg()){i=XMc(a,h);if(h!=i){if(!Rad(this.a,i)){throw x2(new A4(EVd+mb(i)+FVd+this.a+"'"))}b.Ug(c,j=i);if(this.Dj()){f=kA(i,42);g=h.Cg(a,!this.b?-1-Mbd(a.mg(),this.e):Mbd(h.mg(),this.b),null,null);!f.yg()&&(g=f.Ag(a,!this.b?-1-Mbd(a.mg(),this.e):Mbd(f.mg(),this.b),null,g));!!g&&g.Th()}a.eg()&&a.fg()&&vMc(a,new ajd(a,9,this.e,h,i))}}return j}else{return j}};_.dj=function ynd(a,b,c,d,e){var f,g;g=b.Tg(c);yA(g)===yA(imd)&&(g=null);b.Ug(c,d);if(this.qi()){if(yA(g)!==yA(d)&&g!=null){f=kA(g,42);e=f.Cg(a,Mbd(f.mg(),this.b),null,e)}}else this.Dj()&&g!=null&&(e=kA(g,42).Cg(a,-1-Mbd(a.mg(),this.e),null,e));if(a.eg()&&a.fg()){!e&&(e=new f_c(4));e.Sh(new ajd(a,1,this.e,g,d))}return e};_.ej=function znd(a,b,c,d,e){var f;f=b.Tg(c);yA(f)===yA(imd)&&(f=null);b.Vg(c);if(a.eg()&&a.fg()){!e&&(e=new f_c(4));this.Zi()?e.Sh(new ajd(a,2,this.e,f,null)):e.Sh(new ajd(a,1,this.e,f,null))}return e};_.fj=function And(a,b,c){var d;d=b.Tg(c);return d!=null};_.gj=function Bnd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!Rad(this.a,d)){throw x2(new A4(EVd+(sA(d,51)?Rbd(kA(d,51).mg()):g4(mb(d)))+FVd+this.a+"'"))}i=b.Tg(c);h=i!=null;this.Zi()&&yA(i)===yA(imd)&&(i=null);g=null;if(this.qi()){if(yA(i)!==yA(d)){if(i!=null){e=kA(i,42);g=e.Cg(a,Mbd(e.mg(),this.b),null,null)}if(d!=null){e=kA(d,42);g=e.Ag(a,Mbd(e.mg(),this.b),null,g)}}}else if(this.Dj()){if(yA(i)!==yA(d)){i!=null&&(g=kA(i,42).Cg(a,-1-Mbd(a.mg(),this.e),null,null));d!=null&&(g=kA(d,42).Ag(a,-1-Mbd(a.mg(),this.e),null,g))}}d==null&&this.Zi()?b.Ug(c,imd):b.Ug(c,d);if(a.eg()&&a.fg()){f=new cjd(a,1,this.e,i,d,this.Zi()&&!h);if(!g){vMc(a,f)}else{g.Sh(f);g.Th()}}else !!g&&g.Th()};_.qi=function Cnd(){return false};_.Dj=function Dnd(){return false};_.Ej=function End(){return false};_.Zi=function Fnd(){return false};var l$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',370);c3(513,370,{},Gnd);_.Dj=function Hnd(){return true};var d$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',513);c3(1372,513,{},Ind);_.Ej=function Jnd(){return true};var YZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1372);c3(705,513,{},Knd);_.Zi=function Lnd(){return true};var $Z=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',705);c3(1374,705,{},Mnd);_.Ej=function Nnd(){return true};var ZZ=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1374);c3(585,513,{},Ond);_.qi=function Pnd(){return true};var c$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',585);c3(1373,585,{},Qnd);_.Ej=function Rnd(){return true};var _Z=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1373);c3(706,585,{},Snd);_.Zi=function Tnd(){return true};var b$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',706);c3(1375,706,{},Und);_.Ej=function Vnd(){return true};var a$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1375);c3(586,370,{},Wnd);_.Ej=function Xnd(){return true};var h$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',586);c3(1376,586,{},Ynd);_.Zi=function Znd(){return true};var e$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1376);c3(707,586,{},$nd);_.qi=function _nd(){return true};var g$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',707);c3(1377,707,{},aod);_.Zi=function bod(){return true};var f$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1377);c3(1370,370,{},cod);_.Zi=function dod(){return true};var i$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1370);c3(704,370,{},eod);_.qi=function fod(){return true};var k$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',704);c3(1371,704,{},god);_.Zi=function hod(){return true};var j$=k4(dTd,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1371);c3(708,514,DVd,kod);_._j=function lod(a){return new kod(this.a,this.c,a)};_.lc=function mod(){return this.b};_.ak=function nod(a,b,c){return iod(this,a,this.b,c)};_.bk=function ood(a,b,c){return jod(this,a,this.b,c)};var n$=k4(dTd,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',708);c3(1378,514,DVd,pod);_.$j=function qod(a){return new uod((qAd(),pAd),this.b.Zg(this.a,a))};_.lc=function rod(){return null};_.ak=function sod(a,b,c){return c};_.bk=function tod(a,b,c){return c};var o$=k4(dTd,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1378);c3(587,514,DVd,uod);_.$j=function vod(a){return new uod(this.c,a)};_.lc=function wod(){return this.a};_.ak=function xod(a,b,c){return c};_.bk=function yod(a,b,c){return c};var p$=k4(dTd,'EStructuralFeatureImpl/SimpleFeatureMapEntry',587);c3(361,451,VTd,zod);_.Fh=function Aod(a){return tz(iY,oJd,24,a,0,1)};_.Bh=function Bod(){return false};var r$=k4(dTd,'ESuperAdapter/1',361);c3(411,399,{95:1,91:1,87:1,139:1,174:1,51:1,103:1,742:1,42:1,92:1,142:1,411:1,107:1,108:1},Dod);_.ug=function Eod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new Lod(this,pY,this)),this.a;}return EMc(this,a-Lbd((j7c(),i7c)),Gbd((d=kA(VNc(this,16),24),!d?i7c:d),a),b,c)};_.Dg=function Fod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new zkd(gY,this,0,3)),q_c(this.Ab,a,c);case 2:return !this.a&&(this.a=new Lod(this,pY,this)),q_c(this.a,a,c);}return e=kA(Gbd((d=kA(VNc(this,16),24),!d?(j7c(),i7c):d),b),61),e.aj().ej(this,TNc(this),b-Lbd((j7c(),i7c)),a,c)};_.Fg=function God(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 FMc(this,a-Lbd((j7c(),i7c)),Gbd((b=kA(VNc(this,16),24),!b?i7c:b),a))};_.Mg=function Hod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new zkd(gY,this,0,3));r_c(this.Ab);!this.Ab&&(this.Ab=new zkd(gY,this,0,3));gXc(this.Ab,kA(b,13));return;case 1:wRc(this,pA(b));return;case 2:!this.a&&(this.a=new Lod(this,pY,this));r_c(this.a);!this.a&&(this.a=new Lod(this,pY,this));gXc(this.a,kA(b,13));return;}GMc(this,a-Lbd((j7c(),i7c)),Gbd((c=kA(VNc(this,16),24),!c?i7c:c),a),b)};_.Rg=function Iod(){return j7c(),i7c};var x$=k4(dTd,'ETypeParameterImpl',411);c3(457,88,vVd,Lod);_.ri=function Mod(a,b){return Jod(this,kA(a,84),b)};_.si=function Nod(a,b){return Kod(this,kA(a,84),b)};var t$=k4(dTd,'ETypeParameterImpl/1',457);c3(579,44,FLd,Ood);_.Xb=function Pod(){return new Sod(this)};var w$=k4(dTd,'ETypeParameterImpl/2',579);c3(508,IJd,JJd,Sod);_.nc=function Tod(a){return Qod(this,kA(a,84))};_.oc=function Uod(a){var b,c,d;d=false;for(c=a.tc();c.hc();){b=kA(c.ic(),84);I8(this.a,b,'')==null&&(d=true)}return d};_.Pb=function Vod(){L8(this.a)};_.pc=function Wod(a){return D8(this.a,a)};_.tc=function Xod(){var a;return a=new e9((new X8(this.a)).a),new $od(a)};_.vc=function Yod(a){return Rod(this,a)};_._b=function Zod(){return M8(this.a)};var v$=k4(dTd,'ETypeParameterImpl/2/1',508);c3(509,1,wJd,$od);_.gc=function _od(a){Bhb(this,a)};_.ic=function bpd(){return kA(c9(this.a).kc(),84)};_.hc=function apd(){return this.a.b};_.jc=function cpd(){d9(this.a)};var u$=k4(dTd,'ETypeParameterImpl/2/1/1',509);c3(1169,44,FLd,dpd);_.Qb=function epd(a){return wA(a)?H8(this,a):!!Wgb(this.d,a)};_.Vb=function fpd(a){var b,c;b=wA(a)?G8(this,a):Of(Wgb(this.d,a));if(sA(b,743)){c=kA(b,743);b=c.mj();I8(this,kA(a,207),b);return b}else return b!=null?b:a==null?(Zwd(),Ywd):null};var z$=k4(dTd,'EValidatorRegistryImpl',1169);c3(1362,638,{95:1,91:1,87:1,430:1,139:1,51:1,103:1,1635:1,42:1,92:1,142:1,107:1,108:1},npd);_.Zg=function opd(a,b){switch(a.Ni()){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:f3(b);case 25:return hpd(b);case 27:return ipd(b);case 28:return jpd(b);case 29:return b==null?null:fhd(XQc[0],kA(b,181));case 41:return b==null?'':f4(kA(b,274));case 42:return f3(b);case 50:return pA(b);default:throw x2(new O4(gTd+a.be()+hTd));}};_.$g=function ppd(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=Nad(a),m?pcd(m.bh(),a):-1)),a.G){case 0:return c=new zad,c;case 1:return b=new H8c,b;case 2:return d=new Sbd,d;case 4:return e=new sgd,e;case 5:return f=new Hgd,f;case 6:return g=new Xgd,g;case 7:return h=new gRc,h;case 10:return j=new F7c,j;case 11:return k=new pjd,k;case 12:return l=new kSc,l;case 13:return n=new Okd,n;case 14:return o=new ald,o;case 17:return p=new rld,p;case 18:return i=new xhd,i;case 19:return q=new Dod,q;default:throw x2(new O4(kTd+a.zb+hTd));}};_._g=function qpd(a,b){switch(a.Ni()){case 20:return b==null?null:new k7(b);case 21:return b==null?null:new P7(b);case 23:case 22:return b==null?null:gpd(b);case 26:case 24:return b==null?null:R3(H3(b,-128,127)<<24>>24);case 25:return dRc(b);case 27:return kpd(b);case 28:return lpd(b);case 29:return mpd(b);case 32:case 31:return b==null?null:G3(b);case 38:case 37:return b==null?null:new G4(b);case 40:case 39:return b==null?null:d5(H3(b,oKd,jJd));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:r5(I3(b));case 49:case 48:return b==null?null:Q5(H3(b,IVd,32767)<<16>>16);case 50:return b;default:throw x2(new O4(gTd+a.be()+hTd));}};var A$=k4(dTd,'EcoreFactoryImpl',1362);c3(504,248,{95:1,91:1,87:1,139:1,174:1,51:1,207:1,103:1,1633:1,42:1,92:1,142:1,248:1,504:1,107:1,108:1,613:1},Bpd);_.gb=false;_.hb=false;var spd,tpd=false;var r_=k4(dTd,'EcorePackageImpl',504);c3(1111,1,{743:1},Fpd);_.mj=function Gpd(){return oyd(),nyd};var L$=k4(dTd,'EcorePackageImpl/1',1111);c3(1120,1,VVd,Hpd);_.Li=function Ipd(a){return sA(a,139)};_.Mi=function Jpd(a){return tz(qY,oJd,139,a,0,1)};var B$=k4(dTd,'EcorePackageImpl/10',1120);c3(1121,1,VVd,Kpd);_.Li=function Lpd(a){return sA(a,174)};_.Mi=function Mpd(a){return tz(rY,oJd,174,a,0,1)};var C$=k4(dTd,'EcorePackageImpl/11',1121);c3(1122,1,VVd,Npd);_.Li=function Opd(a){return sA(a,51)};_.Mi=function Ppd(a){return tz(sY,oJd,51,a,0,1)};var D$=k4(dTd,'EcorePackageImpl/12',1122);c3(1123,1,VVd,Qpd);_.Li=function Rpd(a){return sA(a,371)};_.Mi=function Spd(a){return tz(tY,tVd,53,a,0,1)};var E$=k4(dTd,'EcorePackageImpl/13',1123);c3(1124,1,VVd,Tpd);_.Li=function Upd(a){return sA(a,207)};_.Mi=function Vpd(a){return tz(uY,oJd,207,a,0,1)};var F$=k4(dTd,'EcorePackageImpl/14',1124);c3(1125,1,VVd,Wpd);_.Li=function Xpd(a){return sA(a,468)};_.Mi=function Ypd(a){return tz(vY,oJd,1703,a,0,1)};var G$=k4(dTd,'EcorePackageImpl/15',1125);c3(1126,1,VVd,Zpd);_.Li=function $pd(a){return sA(a,62)};_.Mi=function _pd(a){return tz(wY,sVd,17,a,0,1)};var H$=k4(dTd,'EcorePackageImpl/16',1126);c3(1127,1,VVd,aqd);_.Li=function bqd(a){return sA(a,158)};_.Mi=function cqd(a){return tz(zY,sVd,158,a,0,1)};var I$=k4(dTd,'EcorePackageImpl/17',1127);c3(1128,1,VVd,dqd);_.Li=function eqd(a){return sA(a,431)};_.Mi=function fqd(a){return tz(BY,oJd,431,a,0,1)};var J$=k4(dTd,'EcorePackageImpl/18',1128);c3(1129,1,VVd,gqd);_.Li=function hqd(a){return sA(a,505)};_.Mi=function iqd(a){return tz(CZ,SUd,505,a,0,1)};var K$=k4(dTd,'EcorePackageImpl/19',1129);c3(1112,1,VVd,jqd);_.Li=function kqd(a){return sA(a,335)};_.Mi=function lqd(a){return tz(hY,sVd,29,a,0,1)};var W$=k4(dTd,'EcorePackageImpl/2',1112);c3(1130,1,VVd,mqd);_.Li=function nqd(a){return sA(a,217)};_.Mi=function oqd(a){return tz(pY,zVd,84,a,0,1)};var M$=k4(dTd,'EcorePackageImpl/20',1130);c3(1131,1,VVd,pqd);_.Li=function qqd(a){return sA(a,411)};_.Mi=function rqd(a){return tz(AY,oJd,742,a,0,1)};var N$=k4(dTd,'EcorePackageImpl/21',1131);c3(1132,1,VVd,sqd);_.Li=function tqd(a){return tA(a)};_.Mi=function uqd(a){return tz(tE,cKd,434,a,8,1)};var O$=k4(dTd,'EcorePackageImpl/22',1132);c3(1133,1,VVd,vqd);_.Li=function wqd(a){return sA(a,173)};_.Mi=function xqd(a){return tz(BA,cKd,173,a,0,2)};var P$=k4(dTd,'EcorePackageImpl/23',1133);c3(1134,1,VVd,yqd);_.Li=function zqd(a){return sA(a,192)};_.Mi=function Aqd(a){return tz(uE,cKd,192,a,0,1)};var Q$=k4(dTd,'EcorePackageImpl/24',1134);c3(1135,1,VVd,Bqd);_.Li=function Cqd(a){return sA(a,159)};_.Mi=function Dqd(a){return tz(vE,cKd,159,a,0,1)};var R$=k4(dTd,'EcorePackageImpl/25',1135);c3(1136,1,VVd,Eqd);_.Li=function Fqd(a){return sA(a,181)};_.Mi=function Gqd(a){return tz(PF,cKd,181,a,0,1)};var S$=k4(dTd,'EcorePackageImpl/26',1136);c3(1137,1,VVd,Hqd);_.Li=function Iqd(a){return false};_.Mi=function Jqd(a){return tz(UX,oJd,1787,a,0,1)};var T$=k4(dTd,'EcorePackageImpl/27',1137);c3(1138,1,VVd,Kqd);_.Li=function Lqd(a){return uA(a)};_.Mi=function Mqd(a){return tz(yE,cKd,315,a,7,1)};var U$=k4(dTd,'EcorePackageImpl/28',1138);c3(1139,1,VVd,Nqd);_.Li=function Oqd(a){return sA(a,52)};_.Mi=function Pqd(a){return tz(ZX,ZMd,52,a,0,1)};var V$=k4(dTd,'EcorePackageImpl/29',1139);c3(1113,1,VVd,Qqd);_.Li=function Rqd(a){return sA(a,469)};_.Mi=function Sqd(a){return tz(gY,{3:1,4:1,5:1,1627:1},609,a,0,1)};var f_=k4(dTd,'EcorePackageImpl/3',1113);c3(1140,1,VVd,Tqd);_.Li=function Uqd(a){return sA(a,525)};_.Mi=function Vqd(a){return tz($X,oJd,1634,a,0,1)};var X$=k4(dTd,'EcorePackageImpl/30',1140);c3(1141,1,VVd,Wqd);_.Li=function Xqd(a){return sA(a,184)};_.Mi=function Yqd(a){return tz(Q0,ZMd,184,a,0,1)};var Y$=k4(dTd,'EcorePackageImpl/31',1141);c3(1142,1,VVd,Zqd);_.Li=function $qd(a){return sA(a,75)};_.Mi=function _qd(a){return tz(G0,WVd,75,a,0,1)};var Z$=k4(dTd,'EcorePackageImpl/32',1142);c3(1143,1,VVd,ard);_.Li=function brd(a){return sA(a,126)};_.Mi=function crd(a){return tz(CE,cKd,126,a,0,1)};var $$=k4(dTd,'EcorePackageImpl/33',1143);c3(1144,1,VVd,drd);_.Li=function erd(a){return sA(a,21)};_.Mi=function frd(a){return tz(GE,cKd,21,a,0,1)};var _$=k4(dTd,'EcorePackageImpl/34',1144);c3(1145,1,VVd,grd);_.Li=function hrd(a){return sA(a,274)};_.Mi=function ird(a){return tz(xE,oJd,274,a,0,1)};var a_=k4(dTd,'EcorePackageImpl/35',1145);c3(1146,1,VVd,jrd);_.Li=function krd(a){return sA(a,149)};_.Mi=function lrd(a){return tz(IE,cKd,149,a,0,1)};var b_=k4(dTd,'EcorePackageImpl/36',1146);c3(1147,1,VVd,mrd);_.Li=function nrd(a){return sA(a,109)};_.Mi=function ord(a){return tz(rG,oJd,109,a,0,1)};var c_=k4(dTd,'EcorePackageImpl/37',1147);c3(1148,1,VVd,prd);_.Li=function qrd(a){return sA(a,534)};_.Mi=function rrd(a){return tz(y_,oJd,534,a,0,1)};var d_=k4(dTd,'EcorePackageImpl/38',1148);c3(1149,1,VVd,srd);_.Li=function trd(a){return false};_.Mi=function urd(a){return tz(x_,oJd,1788,a,0,1)};var e_=k4(dTd,'EcorePackageImpl/39',1149);c3(1114,1,VVd,vrd);_.Li=function wrd(a){return sA(a,96)};_.Mi=function xrd(a){return tz(iY,oJd,24,a,0,1)};var l_=k4(dTd,'EcorePackageImpl/4',1114);c3(1150,1,VVd,yrd);_.Li=function zrd(a){return sA(a,168)};_.Mi=function Ard(a){return tz(PE,cKd,168,a,0,1)};var g_=k4(dTd,'EcorePackageImpl/40',1150);c3(1151,1,VVd,Brd);_.Li=function Crd(a){return wA(a)};_.Mi=function Drd(a){return tz(UE,cKd,2,a,6,1)};var h_=k4(dTd,'EcorePackageImpl/41',1151);c3(1152,1,VVd,Erd);_.Li=function Frd(a){return sA(a,532)};_.Mi=function Grd(a){return tz(bY,oJd,532,a,0,1)};var i_=k4(dTd,'EcorePackageImpl/42',1152);c3(1153,1,VVd,Hrd);_.Li=function Ird(a){return false};_.Mi=function Jrd(a){return tz(_X,cKd,1789,a,0,1)};var j_=k4(dTd,'EcorePackageImpl/43',1153);c3(1154,1,VVd,Krd);_.Li=function Lrd(a){return sA(a,38)};_.Mi=function Mrd(a){return tz(qG,oJd,38,a,0,1)};var k_=k4(dTd,'EcorePackageImpl/44',1154);c3(1115,1,VVd,Nrd);_.Li=function Ord(a){return sA(a,133)};_.Mi=function Prd(a){return tz(jY,oJd,133,a,0,1)};var m_=k4(dTd,'EcorePackageImpl/5',1115);c3(1116,1,VVd,Qrd);_.Li=function Rrd(a){return sA(a,140)};_.Mi=function Srd(a){return tz(lY,oJd,140,a,0,1)};var n_=k4(dTd,'EcorePackageImpl/6',1116);c3(1117,1,VVd,Trd);_.Li=function Urd(a){return sA(a,425)};_.Mi=function Vrd(a){return tz(nY,oJd,608,a,0,1)};var o_=k4(dTd,'EcorePackageImpl/7',1117);c3(1118,1,VVd,Wrd);_.Li=function Xrd(a){return sA(a,525)};_.Mi=function Yrd(a){return tz(mY,oJd,617,a,0,1)};var p_=k4(dTd,'EcorePackageImpl/8',1118);c3(1119,1,VVd,Zrd);_.Li=function $rd(a){return sA(a,430)};_.Mi=function _rd(a){return tz(oY,oJd,430,a,0,1)};var q_=k4(dTd,'EcorePackageImpl/9',1119);c3(915,1673,QUd,dsd);_.sh=function esd(a,b){asd(this,kA(b,380))};_.vh=function fsd(a,b){bsd(this,a,kA(b,380))};var t_=k4(dTd,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',915);c3(916,136,MUd,gsd);_.Oh=function hsd(){return this.a.a};var s_=k4(dTd,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',916);c3(955,954,{},jsd);var w_=k4('org.eclipse.emf.ecore.plugin','EcorePlugin',955);var y_=m4(XVd,'Resource');c3(719,1492,YVd);_.ik=function nsd(a){};_.jk=function osd(a){};_.fk=function psd(){return !this.a&&(this.a=new Asd(this)),this.a};_.gk=function qsd(a){var b,c,d,e,f;d=a.length;if(d>0){if(a.charCodeAt(0)==47){f=new Hbb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}return lsd(this,a)};_.hk=function rsd(){return this.c};_.Ib=function ssd(){return f4(this.ql)+'@'+(ob(this)>>>0).toString(16)+" uri='"+this.d+"'"};_.b=false;var C_=k4(ZVd,'ResourceImpl',719);c3(1493,719,YVd,tsd);var z_=k4(ZVd,'BinaryResourceImpl',1493);c3(1048,629,WTd);_.Gh=function wsd(a){return sA(a,51)?usd(this,kA(a,51)):sA(a,534)?new a0c(kA(a,534).fk()):yA(a)===yA(this.f)?kA(a,13).tc():(Y3c(),X3c.a)};_.hc=function xsd(){return vsd(this)};_.a=false;var C0=k4(eVd,'EcoreUtil/ContentTreeIterator',1048);c3(1494,1048,WTd,ysd);_.Gh=function zsd(a){return yA(a)===yA(this.f)?kA(a,15).tc():new iyd(kA(a,51))};var A_=k4(ZVd,'ResourceImpl/5',1494);c3(595,1687,uVd,Asd);_.pc=function Bsd(a){return this.i<=4?VXc(this,a):sA(a,42)&&kA(a,42).sg()==this.a};_.sh=function Csd(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.uh=function Dsd(a,b){a==0?this.a.b||(this.a.b=true,null):iXc(this,a,b)};_.vh=function Esd(a,b){};_.wh=function Fsd(a,b,c){};_.pi=function Gsd(){return 2};_.Oh=function Hsd(){return this.a};_.qi=function Isd(){return true};_.ri=function Jsd(a,b){var c;c=kA(a,42);b=c.Pg(this.a,b);return b};_.si=function Ksd(a,b){var c;c=kA(a,42);return c.Pg(null,b)};_.ti=function Lsd(){return false};_.xh=function Msd(){return true};_.Fh=function Nsd(a){return tz(sY,oJd,51,a,0,1)};_.Bh=function Osd(){return false};var B_=k4(ZVd,'ResourceImpl/ContentsEList',595);c3(873,1657,fKd,Psd);_.fd=function Qsd(a){return this.a.qh(a)};_._b=function Rsd(){return this.a._b()};var D_=k4(eVd,'AbstractSequentialInternalEList/1',873);var qyd,ryd,syd,tyd;c3(567,1,{},ztd);var Ssd,Tsd;var J_=k4(eVd,'BasicExtendedMetaData',567);c3(1023,1,{},Dtd);_.kk=function Etd(){return null};_.lk=function Ftd(){this.a==-2&&Btd(this,Xsd(this.d,this.b));return this.a};_.mk=function Gtd(){return null};_.nk=function Htd(){return bdb(),bdb(),$cb};_.be=function Itd(){this.c==mWd&&Ctd(this,atd(this.d,this.b));return this.c};_.ok=function Jtd(){return 0};_.a=-2;_.c=mWd;var F_=k4(eVd,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1023);c3(hVd,1,{},Ptd);_.kk=function Qtd(){this.a==(Usd(),Ssd)&&Ktd(this,Wsd(this.f,this.b));return this.a};_.lk=function Rtd(){return 0};_.mk=function Std(){this.c==(Usd(),Ssd)&&Ltd(this,$sd(this.f,this.b));return this.c};_.nk=function Ttd(){!this.d&&Mtd(this,_sd(this.f,this.b));return this.d};_.be=function Utd(){this.e==mWd&&Ntd(this,atd(this.f,this.b));return this.e};_.ok=function Vtd(){this.g==-2&&Otd(this,dtd(this.f,this.b));return this.g};_.e=mWd;_.g=-2;var G_=k4(eVd,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',hVd);c3(1022,1,{},Ztd);_.b=false;_.c=false;var H_=k4(eVd,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1022);c3(1025,1,{},kud);_.c=-2;_.e=mWd;_.f=mWd;var I_=k4(eVd,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1025);c3(529,565,vVd,lud);_.pi=function mud(){return this.c};_.Rj=function nud(){return false};_.zh=function oud(a,b){return b};_.c=0;var W_=k4(eVd,'EDataTypeEList',529);var Q0=m4(eVd,'FeatureMap');c3(90,529,{3:1,4:1,20:1,25:1,41:1,13:1,15:1,49:1,59:1,55:1,52:1,81:1,184:1,237:1,1630:1,64:1},pvd);_.bd=function qvd(a,b){pud(this,a,kA(b,75))};_.nc=function rvd(a){return sud(this,kA(a,75))};_.nh=function uvd(a){vud(this,kA(a,75))};_.ri=function Fvd(a,b){return Nud(this,kA(a,75),b)};_.si=function Gvd(a,b){return Pud(this,kA(a,75),b)};_.zh=function Jvd(a,b){return Xud(this,a,kA(b,75))};_.hd=function Lvd(a,b){return $ud(this,a,kA(b,75))};_.yi=function Pvd(a,b){return evd(this,kA(a,75),b)};_.zi=function Qvd(a,b){return gvd(this,kA(a,75),b)};_.Ai=function Rvd(a,b,c){return hvd(this,kA(a,75),kA(b,75),c)};_.Ch=function Svd(a,b){return ovd(this,a,kA(b,75))};_.oc=function svd(a){var b,c,d,e,f,g,h,i,j;i=new dYc(a._b());for(d=a.tc();d.hc();){c=kA(d.ic(),75);e=c.nj();if(zyd(this.e,e)){(!e.xh()||!Dud(this,e,c.lc())&&!VXc(i,c))&&fXc(i,c)}else{j=yyd(this.e.mg(),e);b=kA(this.g,124);f=true;for(g=0;g=0){b=a[this.c];if(this.k.Bk(b.nj())){this.j=this.f?b:b.lc();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var K_=k4(eVd,'BasicFeatureMap/FeatureEIterator',377);c3(601,377,NJd,jwd);_.Xj=function kwd(){return true};var L_=k4(eVd,'BasicFeatureMap/ResolvingFeatureEIterator',601);c3(871,444,BVd,lwd);_.Uh=function mwd(){return this};var P_=k4(eVd,'EContentsEList/1',871);c3(872,444,BVd,nwd);_.Xj=function owd(){return false};var Q_=k4(eVd,'EContentsEList/2',872);c3(870,260,CVd,pwd);_.Zj=function qwd(a){};_.hc=function rwd(){return false};_.Cc=function swd(){return false};var R_=k4(eVd,'EContentsEList/FeatureIteratorImpl/1',870);c3(734,529,vVd,twd);_.th=function uwd(){this.a=true};_.ui=function vwd(){return this.a};_.ij=function wwd(){var a;r_c(this);if(PMc(this.e)){a=this.a;this.a=false;vMc(this.e,new Pid(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var V_=k4(eVd,'EDataTypeEList/Unsettable',734);c3(1566,529,vVd,xwd);_.xh=function ywd(){return true};var Y_=k4(eVd,'EDataTypeUniqueEList',1566);c3(1567,734,vVd,zwd);_.xh=function Awd(){return true};var X_=k4(eVd,'EDataTypeUniqueEList/Unsettable',1567);c3(156,88,vVd,Bwd);_.Qj=function Cwd(){return true};_.zh=function Dwd(a,b){return qcd(this,a,kA(b,51))};var Z_=k4(eVd,'EObjectContainmentEList/Resolving',156);c3(1026,493,vVd,Ewd);_.Qj=function Fwd(){return true};_.zh=function Gwd(a,b){return qcd(this,a,kA(b,51))};var $_=k4(eVd,'EObjectContainmentEList/Unsettable/Resolving',1026);c3(679,18,vVd,Hwd);_.th=function Iwd(){this.a=true};_.ui=function Jwd(){return this.a};_.ij=function Kwd(){var a;r_c(this);if(PMc(this.e)){a=this.a;this.a=false;vMc(this.e,new Pid(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var d0=k4(eVd,'EObjectContainmentWithInverseEList/Unsettable',679);c3(1044,679,vVd,Lwd);_.Qj=function Mwd(){return true};_.zh=function Nwd(a,b){return qcd(this,a,kA(b,51))};var c0=k4(eVd,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1044);c3(675,450,vVd,Owd);_.th=function Pwd(){this.a=true};_.ui=function Qwd(){return this.a};_.ij=function Rwd(){var a;r_c(this);if(PMc(this.e)){a=this.a;this.a=false;vMc(this.e,new Pid(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var f0=k4(eVd,'EObjectEList/Unsettable',675);c3(376,450,vVd,Swd);_.Qj=function Twd(){return true};_.zh=function Uwd(a,b){return qcd(this,a,kA(b,51))};var i0=k4(eVd,'EObjectResolvingEList',376);c3(1554,675,vVd,Vwd);_.Qj=function Wwd(){return true};_.zh=function Xwd(a,b){return qcd(this,a,kA(b,51))};var h0=k4(eVd,'EObjectResolvingEList/Unsettable',1554);c3(1495,1,{},$wd);var Ywd;var j0=k4(eVd,'EObjectValidator',1495);c3(496,450,vVd,_wd);_.Lj=function axd(){return this.d};_.Mj=function bxd(){return this.b};_.qi=function cxd(){return true};_.Pj=function dxd(){return true};_.b=0;var n0=k4(eVd,'EObjectWithInverseEList',496);c3(1047,496,vVd,exd);_.Oj=function fxd(){return true};var k0=k4(eVd,'EObjectWithInverseEList/ManyInverse',1047);c3(572,496,vVd,gxd);_.th=function hxd(){this.a=true};_.ui=function ixd(){return this.a};_.ij=function jxd(){var a;r_c(this);if(PMc(this.e)){a=this.a;this.a=false;vMc(this.e,new Pid(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var m0=k4(eVd,'EObjectWithInverseEList/Unsettable',572);c3(1046,572,vVd,kxd);_.Oj=function lxd(){return true};var l0=k4(eVd,'EObjectWithInverseEList/Unsettable/ManyInverse',1046);c3(680,496,vVd,mxd);_.Qj=function nxd(){return true};_.zh=function oxd(a,b){return qcd(this,a,kA(b,51))};var r0=k4(eVd,'EObjectWithInverseResolvingEList',680);c3(33,680,vVd,pxd);_.Oj=function qxd(){return true};var o0=k4(eVd,'EObjectWithInverseResolvingEList/ManyInverse',33);c3(681,572,vVd,rxd);_.Qj=function sxd(){return true};_.zh=function txd(a,b){return qcd(this,a,kA(b,51))};var q0=k4(eVd,'EObjectWithInverseResolvingEList/Unsettable',681);c3(1045,681,vVd,uxd);_.Oj=function vxd(){return true};var p0=k4(eVd,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1045);c3(1027,565,vVd);_.rh=function wxd(){return (this.b&1792)==0};_.th=function xxd(){this.b|=1};_.Nj=function yxd(){return (this.b&4)!=0};_.qi=function zxd(){return (this.b&40)!=0};_.Oj=function Axd(){return (this.b&16)!=0};_.Pj=function Bxd(){return (this.b&8)!=0};_.Qj=function Cxd(){return (this.b&jVd)!=0};_.Dj=function Dxd(){return (this.b&32)!=0};_.Rj=function Exd(){return (this.b&hVd)!=0};_.Li=function Fxd(a){return !this.d?this.nj().jj().Li(a):s5c(this.d,a)};_.ui=function Gxd(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.xh=function Hxd(){return (this.b&128)!=0};_.ij=function Jxd(){var a;r_c(this);if((this.b&2)!=0){if(PMc(this.e)){a=(this.b&1)!=0;this.b&=-2;ocd(this,new Pid(this.e,2,Mbd(this.e.mg(),this.nj()),a,false))}else{this.b&=-2}}};_.Bh=function Kxd(){return (this.b&1536)==0};_.b=0;var t0=k4(eVd,'EcoreEList/Generic',1027);c3(1028,1027,vVd,Lxd);_.nj=function Mxd(){return this.a};var s0=k4(eVd,'EcoreEList/Dynamic',1028);c3(678,55,VTd,Nxd);_.Fh=function Oxd(a){return F0c(this.a.a,a)};var x0=k4(eVd,'EcoreEMap/1',678);c3(677,88,vVd,Pxd);_.sh=function Qxd(a,b){M1c(this.b,kA(b,134))};_.uh=function Rxd(a,b){L1c(this.b)};_.vh=function Sxd(a,b){N1c(this.b,kA(b,134))};_.wh=function Txd(a,b,c){N1c(this.b,kA(c,134));yA(c)===yA(b)&&kA(c,134).jh(U1c(kA(b,134).kc()));M1c(this.b,kA(b,134))};var y0=k4(eVd,'EcoreEMap/DelegateEObjectContainmentEList',677);c3(1042,143,fVd,Uxd);var A0=k4(eVd,'EcoreEMap/Unsettable',1042);c3(1043,677,vVd,Vxd);_.th=function Wxd(){this.a=true};_.ui=function Xxd(){return this.a};_.ij=function Yxd(){var a;r_c(this);if(PMc(this.e)){a=this.a;this.a=false;vMc(this.e,new Pid(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var z0=k4(eVd,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1043);c3(682,1,wJd,iyd);_.gc=function jyd(a){Bhb(this,a)};_.hc=function kyd(){return hyd(this)};_.ic=function lyd(){var a;hyd(this);a=this.b;this.b=null;return a};_.jc=function myd(){this.a.jc()};var D0=k4(eVd,'EcoreUtil/ProperContentIterator',682);c3(1496,1495,{},pyd);var nyd;var E0=k4(eVd,'EcoreValidator',1496);var vyd;var P0=m4(eVd,'FeatureMapUtil/Validator');c3(1095,1,{1632:1},Ayd);_.Bk=function Byd(a){return true};var H0=k4(eVd,'FeatureMapUtil/1',1095);c3(692,1,{1632:1},Fyd);_.Bk=function Gyd(a){var b;if(this.c==a)return true;b=mA(F8(this.a,a));if(b==null){if(Eyd(this,a)){Hyd(this.a,a,(B3(),A3));return true}else{Hyd(this.a,a,(B3(),z3));return false}}else{return b==(B3(),A3)}};_.e=false;var Cyd;var K0=k4(eVd,'FeatureMapUtil/BasicValidator',692);c3(693,44,FLd,Iyd);var J0=k4(eVd,'FeatureMapUtil/BasicValidator/Cache',693);c3(455,41,{20:1,25:1,41:1,13:1,15:1,52:1,81:1,64:1},Nyd);_.bd=function Oyd(a,b){qud(this.c,this.b,a,b)};_.nc=function Pyd(a){return rud(this.c,this.b,a)};_.oc=function Qyd(a){return Jyd(this,a)};_.xj=function Ryd(a,b){return wud(this.c,this.b,a,b)};_.Dh=function Syd(a){return Iud(this.c,this.b,a,false)};_.oh=function Tyd(){return xud(this.c,this.b)};_.ph=function Uyd(){return yud(this.c,this.b)};_.qh=function Vyd(a){return zud(this.c,this.b,a)};_.yj=function Wyd(a,b){return Kyd(this,a,b)};_.Pb=function Xyd(){Lyd(this)};_.pc=function Yyd(a){return Dud(this.c,this.b,a)};_.qc=function Zyd(a){return Fud(this.c,this.b,a)};_.cd=function $yd(a){return Iud(this.c,this.b,a,true)};_.hj=function _yd(a){return this};_.dd=function azd(a){return Kud(this.c,this.b,a)};_.Wb=function bzd(){return Myd(this)};_.ui=function czd(){return !Qud(this.c,this.b)};_.tc=function dzd(){return Rud(this.c,this.b)};_.ed=function ezd(){return Tud(this.c,this.b)};_.fd=function fzd(a){return Uud(this.c,this.b,a)};_.gd=function gzd(a){return Vud(this.c,this.b,a)};_.vc=function hzd(a){return Wud(this.c,this.b,a)};_.hd=function izd(a,b){return avd(this.c,this.b,a,b)};_.Gc=function jzd(a){Cud(this.c,this.b);Jyd(this,kA(a,15))};_._b=function kzd(){return jvd(this.c,this.b)};_.yc=function lzd(){return kvd(this.c,this.b)};_.zc=function mzd(a){return mvd(this.c,this.b,a)};_.Ib=function nzd(){var a,b;b=new z6;b.a+='[';for(a=xud(this.c,this.b);Uvd(a);){w6(b,p6(Wvd(a)));Uvd(a)&&(b.a+=qJd,b)}b.a+=']';return b.a};_.ij=function ozd(){Cud(this.c,this.b)};var L0=k4(eVd,'FeatureMapUtil/FeatureEList',455);c3(575,32,MUd,qzd);_.Mh=function rzd(a){return pzd(this,a)};_.Rh=function szd(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Oh();if(yA(f)===yA(this.c)&&pzd(this,null)==a.Mh(null)){this.g=a.Nh();a.Lh()==1&&(this.d=1);return true}break}case 3:{e=a.Lh();switch(e){case 3:{f=a.Oh();if(yA(f)===yA(this.c)&&pzd(this,null)==a.Mh(null)){this.d=5;b=new dYc(2);fXc(b,this.g);fXc(b,a.Nh());this.g=b;return true}break}}break}case 5:{e=a.Lh();switch(e){case 3:{f=a.Oh();if(yA(f)===yA(this.c)&&pzd(this,null)==a.Mh(null)){c=kA(this.g,13);c.nc(a.Nh());return true}break}}break}case 4:{e=a.Lh();switch(e){case 3:{f=a.Oh();if(yA(f)===yA(this.c)&&pzd(this,null)==a.Mh(null)){this.d=1;this.g=a.Nh();return true}break}case 4:{f=a.Oh();if(yA(f)===yA(this.c)&&pzd(this,null)==a.Mh(null)){this.d=6;h=new dYc(2);fXc(h,this.n);fXc(h,a.Ph());this.n=h;g=xz(pz(FA,1),OKd,22,15,[this.o,a.Qh()]);this.g=g;return true}break}}break}case 6:{e=a.Lh();switch(e){case 4:{f=a.Oh();if(yA(f)===yA(this.c)&&pzd(this,null)==a.Mh(null)){c=kA(this.n,13);c.nc(a.Ph());g=kA(this.g,37);d=tz(FA,OKd,22,g.length+1,15,1);T6(g,0,d,0,g.length);d[g.length]=a.Qh();this.g=d;return true}break}}break}}return false};var M0=k4(eVd,'FeatureMapUtil/FeatureENotificationImpl',575);c3(501,455,{20:1,25:1,41:1,13:1,15:1,52:1,81:1,184:1,237:1,1630:1,64:1},tzd);_.pk=function uzd(a,b,c){return wud(this.c,a,b,c)};_.qk=function vzd(a,b,c){return Bud(this.c,a,b,c)};_.rk=function wzd(){return this};_.sk=function xzd(a,b){return Jud(this.c,a,b)};_.tk=function yzd(a){return kA(Iud(this.c,this.b,a,false),75).nj()};_.uk=function zzd(a){return kA(Iud(this.c,this.b,a,false),75).lc()};_.vk=function Azd(){return this.a};_.wk=function Bzd(a){return !Qud(this.c,a)};_.xk=function Czd(a,b){bvd(this.c,a,b)};_.yk=function Dzd(a){return cvd(this.c,a)};var N0=k4(eVd,'FeatureMapUtil/FeatureFeatureMap',501);c3(1094,1,{81:1},Ezd);_.hj=function Fzd(a){return Iud(this.b,this.a,-1,a)};_.ui=function Gzd(){return !Qud(this.b,this.a)};_.Gc=function Hzd(a){bvd(this.b,this.a,a)};_.ij=function Izd(){Cud(this.b,this.a)};var O0=k4(eVd,'FeatureMapUtil/FeatureValue',1094);var Jzd,Kzd,Lzd,Mzd,Nzd;var S0=m4(oWd,'AnyType');c3(603,54,rKd,Pzd);var T0=k4(oWd,'InvalidDatatypeValueException',603);var U0=m4(oWd,pWd);var V0=m4(oWd,qWd);var W0=m4(oWd,rWd);var Qzd;var Szd;var Uzd,Vzd,Wzd,Xzd,Yzd,Zzd,$zd,_zd,aAd,bAd,cAd,dAd,eAd,fAd,gAd,hAd,iAd,jAd,kAd,lAd,mAd,nAd,oAd,pAd;c3(735,463,{95:1,91:1,87:1,51:1,42:1,92:1,746:1},rAd);_.ug=function sAd(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new pvd(this,0)),this.c;return !this.c&&(this.c=new pvd(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new pvd(this,0)),kA(Sud(this.c,(qAd(),Vzd)),184);return (!this.c&&(this.c=new pvd(this,0)),kA(kA(Sud(this.c,(qAd(),Vzd)),184),237)).vk();case 2:if(c)return !this.b&&(this.b=new pvd(this,2)),this.b;return !this.b&&(this.b=new pvd(this,2)),this.b.b;}return EMc(this,a-Lbd(this.Rg()),Gbd((this.j&2)==0?this.Rg():(!this.k&&(this.k=new B7c),this.k).pj(),a),b,c)};_.Dg=function tAd(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new pvd(this,0)),Aud(this.c,a,c);case 1:return (!this.c&&(this.c=new pvd(this,0)),kA(kA(Sud(this.c,(qAd(),Vzd)),184),64)).yj(a,c);case 2:return !this.b&&(this.b=new pvd(this,2)),Aud(this.b,a,c);}return d=kA(Gbd((this.j&2)==0?this.Rg():(!this.k&&(this.k=new B7c),this.k).pj(),b),61),d.aj().ej(this,$Mc(this),b-Lbd(this.Rg()),a,c)};_.Fg=function uAd(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new pvd(this,0)),kA(Sud(this.c,(qAd(),Vzd)),184)).Wb();case 2:return !!this.b&&this.b.i!=0;}return FMc(this,a-Lbd(this.Rg()),Gbd((this.j&2)==0?this.Rg():(!this.k&&(this.k=new B7c),this.k).pj(),a))};_.Mg=function vAd(a,b){switch(a){case 0:!this.c&&(this.c=new pvd(this,0));_ud(this.c,b);return;case 1:(!this.c&&(this.c=new pvd(this,0)),kA(kA(Sud(this.c,(qAd(),Vzd)),184),237)).Gc(b);return;case 2:!this.b&&(this.b=new pvd(this,2));_ud(this.b,b);return;}GMc(this,a-Lbd(this.Rg()),Gbd((this.j&2)==0?this.Rg():(!this.k&&(this.k=new B7c),this.k).pj(),a),b)};_.Rg=function wAd(){return qAd(),Uzd};_.Ib=function xAd(){var a;if((this.j&4)!=0)return aNc(this);a=new B6(aNc(this));a.a+=' (mixed: ';v6(a,this.c);a.a+=', anyAttribute: ';v6(a,this.b);a.a+=')';return a.a};var X0=k4(sWd,'AnyTypeImpl',735);c3(604,463,{95:1,91:1,87:1,51:1,42:1,92:1,1707:1,604:1},AAd);_.ug=function BAd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return EMc(this,a-Lbd((qAd(),fAd)),Gbd((this.j&2)==0?fAd:(!this.k&&(this.k=new B7c),this.k).pj(),a),b,c)};_.Fg=function CAd(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return FMc(this,a-Lbd((qAd(),fAd)),Gbd((this.j&2)==0?fAd:(!this.k&&(this.k=new B7c),this.k).pj(),a))};_.Mg=function DAd(a,b){switch(a){case 0:yAd(this,pA(b));return;case 1:zAd(this,pA(b));return;}GMc(this,a-Lbd((qAd(),fAd)),Gbd((this.j&2)==0?fAd:(!this.k&&(this.k=new B7c),this.k).pj(),a),b)};_.Rg=function EAd(){return qAd(),fAd};_.Ib=function FAd(){var a;if((this.j&4)!=0)return aNc(this);a=new B6(aNc(this));a.a+=' (data: ';w6(a,this.a);a.a+=', target: ';w6(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var Y0=k4(sWd,'ProcessingInstructionImpl',604);c3(605,735,{95:1,91:1,87:1,51:1,42:1,92:1,746:1,1708:1,605:1},IAd);_.ug=function JAd(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new pvd(this,0)),this.c;return !this.c&&(this.c=new pvd(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new pvd(this,0)),kA(Sud(this.c,(qAd(),Vzd)),184);return (!this.c&&(this.c=new pvd(this,0)),kA(kA(Sud(this.c,(qAd(),Vzd)),184),237)).vk();case 2:if(c)return !this.b&&(this.b=new pvd(this,2)),this.b;return !this.b&&(this.b=new pvd(this,2)),this.b.b;case 3:return !this.c&&(this.c=new pvd(this,0)),pA(Jud(this.c,(qAd(),iAd),true));case 4:return $xd(this.a,(!this.c&&(this.c=new pvd(this,0)),pA(Jud(this.c,(qAd(),iAd),true))));case 5:return this.a;}return EMc(this,a-Lbd((qAd(),hAd)),Gbd((this.j&2)==0?hAd:(!this.k&&(this.k=new B7c),this.k).pj(),a),b,c)};_.Fg=function KAd(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new pvd(this,0)),kA(Sud(this.c,(qAd(),Vzd)),184)).Wb();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new pvd(this,0)),pA(Jud(this.c,(qAd(),iAd),true))!=null;case 4:return $xd(this.a,(!this.c&&(this.c=new pvd(this,0)),pA(Jud(this.c,(qAd(),iAd),true))))!=null;case 5:return !!this.a;}return FMc(this,a-Lbd((qAd(),hAd)),Gbd((this.j&2)==0?hAd:(!this.k&&(this.k=new B7c),this.k).pj(),a))};_.Mg=function LAd(a,b){switch(a){case 0:!this.c&&(this.c=new pvd(this,0));_ud(this.c,b);return;case 1:(!this.c&&(this.c=new pvd(this,0)),kA(kA(Sud(this.c,(qAd(),Vzd)),184),237)).Gc(b);return;case 2:!this.b&&(this.b=new pvd(this,2));_ud(this.b,b);return;case 3:HAd(this,pA(b));return;case 4:HAd(this,Zxd(this.a,b));return;case 5:GAd(this,kA(b,140));return;}GMc(this,a-Lbd((qAd(),hAd)),Gbd((this.j&2)==0?hAd:(!this.k&&(this.k=new B7c),this.k).pj(),a),b)};_.Rg=function MAd(){return qAd(),hAd};var Z0=k4(sWd,'SimpleAnyTypeImpl',605);c3(606,463,{95:1,91:1,87:1,51:1,42:1,92:1,1709:1,606:1},NAd);_.ug=function OAd(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new pvd(this,0)),this.a;return !this.a&&(this.a=new pvd(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new T8c((j7c(),f7c),CZ,this,1)),this.b):(!this.b&&(this.b=new T8c((j7c(),f7c),CZ,this,1)),X1c(this.b));case 2:return c?(!this.c&&(this.c=new T8c((j7c(),f7c),CZ,this,2)),this.c):(!this.c&&(this.c=new T8c((j7c(),f7c),CZ,this,2)),X1c(this.c));case 3:return !this.a&&(this.a=new pvd(this,0)),Sud(this.a,(qAd(),lAd));case 4:return !this.a&&(this.a=new pvd(this,0)),Sud(this.a,(qAd(),mAd));case 5:return !this.a&&(this.a=new pvd(this,0)),Sud(this.a,(qAd(),oAd));case 6:return !this.a&&(this.a=new pvd(this,0)),Sud(this.a,(qAd(),pAd));}return EMc(this,a-Lbd((qAd(),kAd)),Gbd((this.j&2)==0?kAd:(!this.k&&(this.k=new B7c),this.k).pj(),a),b,c)};_.Dg=function PAd(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new pvd(this,0)),Aud(this.a,a,c);case 1:return !this.b&&(this.b=new T8c((j7c(),f7c),CZ,this,1)),R8c(this.b,a,c);case 2:return !this.c&&(this.c=new T8c((j7c(),f7c),CZ,this,2)),R8c(this.c,a,c);case 5:return !this.a&&(this.a=new pvd(this,0)),Kyd(Sud(this.a,(qAd(),oAd)),a,c);}return d=kA(Gbd((this.j&2)==0?(qAd(),kAd):(!this.k&&(this.k=new B7c),this.k).pj(),b),61),d.aj().ej(this,$Mc(this),b-Lbd((qAd(),kAd)),a,c)};_.Fg=function QAd(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 pvd(this,0)),!Myd(Sud(this.a,(qAd(),lAd)));case 4:return !this.a&&(this.a=new pvd(this,0)),!Myd(Sud(this.a,(qAd(),mAd)));case 5:return !this.a&&(this.a=new pvd(this,0)),!Myd(Sud(this.a,(qAd(),oAd)));case 6:return !this.a&&(this.a=new pvd(this,0)),!Myd(Sud(this.a,(qAd(),pAd)));}return FMc(this,a-Lbd((qAd(),kAd)),Gbd((this.j&2)==0?kAd:(!this.k&&(this.k=new B7c),this.k).pj(),a))};_.Mg=function RAd(a,b){switch(a){case 0:!this.a&&(this.a=new pvd(this,0));_ud(this.a,b);return;case 1:!this.b&&(this.b=new T8c((j7c(),f7c),CZ,this,1));S8c(this.b,b);return;case 2:!this.c&&(this.c=new T8c((j7c(),f7c),CZ,this,2));S8c(this.c,b);return;case 3:!this.a&&(this.a=new pvd(this,0));Lyd(Sud(this.a,(qAd(),lAd)));!this.a&&(this.a=new pvd(this,0));Jyd(Sud(this.a,lAd),kA(b,13));return;case 4:!this.a&&(this.a=new pvd(this,0));Lyd(Sud(this.a,(qAd(),mAd)));!this.a&&(this.a=new pvd(this,0));Jyd(Sud(this.a,mAd),kA(b,13));return;case 5:!this.a&&(this.a=new pvd(this,0));Lyd(Sud(this.a,(qAd(),oAd)));!this.a&&(this.a=new pvd(this,0));Jyd(Sud(this.a,oAd),kA(b,13));return;case 6:!this.a&&(this.a=new pvd(this,0));Lyd(Sud(this.a,(qAd(),pAd)));!this.a&&(this.a=new pvd(this,0));Jyd(Sud(this.a,pAd),kA(b,13));return;}GMc(this,a-Lbd((qAd(),kAd)),Gbd((this.j&2)==0?kAd:(!this.k&&(this.k=new B7c),this.k).pj(),a),b)};_.Rg=function SAd(){return qAd(),kAd};_.Ib=function TAd(){var a;if((this.j&4)!=0)return aNc(this);a=new B6(aNc(this));a.a+=' (mixed: ';v6(a,this.a);a.a+=')';return a.a};var $0=k4(sWd,'XMLTypeDocumentRootImpl',606);c3(1626,638,{95:1,91:1,87:1,430:1,139:1,51:1,103:1,42:1,92:1,142:1,107:1,108:1,1710:1},qBd);_.Zg=function rBd(a,b){switch(a.Ni()){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:f3(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return pA(b);case 6:return $Ad(kA(b,173));case 12:case 47:case 49:case 11:return bRc(this,a,b);case 13:return b==null?null:h7(kA(b,216));case 15:case 14:return b==null?null:_Ad(Vpb(nA(b)));case 17:return aBd((qAd(),b));case 18:return aBd(b);case 21:case 20:return b==null?null:bBd(kA(b,126).a);case 27:return cBd(kA(b,173));case 30:return dBd((qAd(),kA(b,15)));case 31:return dBd(kA(b,15));case 40:return gBd((qAd(),b));case 42:return eBd((qAd(),b));case 43:return eBd(b);case 59:case 48:return fBd((qAd(),b));default:throw x2(new O4(gTd+a.be()+hTd));}};_.$g=function sBd(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=Nad(a),c?pcd(c.bh(),a):-1)),a.G){case 0:return b=new rAd,b;case 1:return d=new AAd,d;case 2:return e=new IAd,e;case 3:return f=new NAd,f;default:throw x2(new O4(kTd+a.zb+hTd));}};_._g=function tBd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.Ni()){case 5:case 52:case 4:return b;case 6:return hBd(b);case 8:case 7:return b==null?null:ZAd(b);case 9:return b==null?null:R3(H3((d=mId(b,true),d.length>0&&d.charCodeAt(0)==43?d.substr(1,d.length-1):d),-128,127)<<24>>24);case 10:return b==null?null:R3(H3((e=mId(b,true),e.length>0&&e.charCodeAt(0)==43?e.substr(1,e.length-1):e),-128,127)<<24>>24);case 11:return pA(cRc(this,(qAd(),Yzd),b));case 12:return pA(cRc(this,(qAd(),Zzd),b));case 13:return b==null?null:new k7(mId(b,true));case 15:case 14:return iBd(b);case 16:return pA(cRc(this,(qAd(),$zd),b));case 17:return jBd((qAd(),b));case 18:return jBd(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return mId(b,true);case 21:case 20:return kBd(b);case 22:return pA(cRc(this,(qAd(),_zd),b));case 23:return pA(cRc(this,(qAd(),aAd),b));case 24:return pA(cRc(this,(qAd(),bAd),b));case 25:return pA(cRc(this,(qAd(),cAd),b));case 26:return pA(cRc(this,(qAd(),dAd),b));case 27:return lBd(b);case 30:return mBd((qAd(),b));case 31:return mBd(b);case 32:return b==null?null:d5(H3((k=mId(b,true),k.length>0&&k.charCodeAt(0)==43?k.substr(1,k.length-1):k),oKd,jJd));case 33:return b==null?null:new P7((l=mId(b,true),l.length>0&&l.charCodeAt(0)==43?l.substr(1,l.length-1):l));case 34:return b==null?null:d5(H3((m=mId(b,true),m.length>0&&m.charCodeAt(0)==43?m.substr(1,m.length-1):m),oKd,jJd));case 36:return b==null?null:r5(I3((n=mId(b,true),n.length>0&&n.charCodeAt(0)==43?n.substr(1,n.length-1):n)));case 37:return b==null?null:r5(I3((o=mId(b,true),o.length>0&&o.charCodeAt(0)==43?o.substr(1,o.length-1):o)));case 40:return pBd((qAd(),b));case 42:return nBd((qAd(),b));case 43:return nBd(b);case 44:return b==null?null:new P7((p=mId(b,true),p.length>0&&p.charCodeAt(0)==43?p.substr(1,p.length-1):p));case 45:return b==null?null:new P7((q=mId(b,true),q.length>0&&q.charCodeAt(0)==43?q.substr(1,q.length-1):q));case 46:return mId(b,false);case 47:return pA(cRc(this,(qAd(),eAd),b));case 59:case 48:return oBd((qAd(),b));case 49:return pA(cRc(this,(qAd(),gAd),b));case 50:return b==null?null:Q5(H3((r=mId(b,true),r.length>0&&r.charCodeAt(0)==43?r.substr(1,r.length-1):r),IVd,32767)<<16>>16);case 51:return b==null?null:Q5(H3((f=mId(b,true),f.length>0&&f.charCodeAt(0)==43?f.substr(1,f.length-1):f),IVd,32767)<<16>>16);case 53:return pA(cRc(this,(qAd(),jAd),b));case 55:return b==null?null:Q5(H3((g=mId(b,true),g.length>0&&g.charCodeAt(0)==43?g.substr(1,g.length-1):g),IVd,32767)<<16>>16);case 56:return b==null?null:Q5(H3((h=mId(b,true),h.length>0&&h.charCodeAt(0)==43?h.substr(1,h.length-1):h),IVd,32767)<<16>>16);case 57:return b==null?null:r5(I3((i=mId(b,true),i.length>0&&i.charCodeAt(0)==43?i.substr(1,i.length-1):i)));case 58:return b==null?null:r5(I3((j=mId(b,true),j.length>0&&j.charCodeAt(0)==43?j.substr(1,j.length-1):j)));case 60:return b==null?null:d5(H3((c=mId(b,true),c.length>0&&c.charCodeAt(0)==43?c.substr(1,c.length-1):c),oKd,jJd));case 61:return b==null?null:d5(H3(mId(b,true),oKd,jJd));default:throw x2(new O4(gTd+a.be()+hTd));}};var UAd,VAd,WAd,XAd;var _0=k4(sWd,'XMLTypeFactoryImpl',1626);c3(530,248,{95:1,91:1,87:1,139:1,174:1,51:1,207:1,103:1,42:1,92:1,142:1,248:1,107:1,108:1,613:1,1639:1,530:1},ABd);_.N=false;_.O=false;var vBd=false;var $1=k4(sWd,'XMLTypePackageImpl',530);c3(1569,1,{743:1},DBd);_.mj=function EBd(){return qId(),pId};var k1=k4(sWd,'XMLTypePackageImpl/1',1569);c3(1578,1,VVd,FBd);_.Li=function GBd(a){return wA(a)};_.Mi=function HBd(a){return tz(UE,cKd,2,a,6,1)};var a1=k4(sWd,'XMLTypePackageImpl/10',1578);c3(1579,1,VVd,IBd);_.Li=function JBd(a){return wA(a)};_.Mi=function KBd(a){return tz(UE,cKd,2,a,6,1)};var b1=k4(sWd,'XMLTypePackageImpl/11',1579);c3(1580,1,VVd,LBd);_.Li=function MBd(a){return wA(a)};_.Mi=function NBd(a){return tz(UE,cKd,2,a,6,1)};var c1=k4(sWd,'XMLTypePackageImpl/12',1580);c3(1581,1,VVd,OBd);_.Li=function PBd(a){return uA(a)};_.Mi=function QBd(a){return tz(yE,cKd,315,a,7,1)};var d1=k4(sWd,'XMLTypePackageImpl/13',1581);c3(1582,1,VVd,RBd);_.Li=function SBd(a){return wA(a)};_.Mi=function TBd(a){return tz(UE,cKd,2,a,6,1)};var e1=k4(sWd,'XMLTypePackageImpl/14',1582);c3(1583,1,VVd,UBd);_.Li=function VBd(a){return sA(a,15)};_.Mi=function WBd(a){return tz(mG,ZMd,15,a,0,1)};var f1=k4(sWd,'XMLTypePackageImpl/15',1583);c3(1584,1,VVd,XBd);_.Li=function YBd(a){return sA(a,15)};_.Mi=function ZBd(a){return tz(mG,ZMd,15,a,0,1)};var g1=k4(sWd,'XMLTypePackageImpl/16',1584);c3(1585,1,VVd,$Bd);_.Li=function _Bd(a){return wA(a)};_.Mi=function aCd(a){return tz(UE,cKd,2,a,6,1)};var h1=k4(sWd,'XMLTypePackageImpl/17',1585);c3(1586,1,VVd,bCd);_.Li=function cCd(a){return sA(a,126)};_.Mi=function dCd(a){return tz(CE,cKd,126,a,0,1)};var i1=k4(sWd,'XMLTypePackageImpl/18',1586);c3(1587,1,VVd,eCd);_.Li=function fCd(a){return wA(a)};_.Mi=function gCd(a){return tz(UE,cKd,2,a,6,1)};var j1=k4(sWd,'XMLTypePackageImpl/19',1587);c3(1570,1,VVd,hCd);_.Li=function iCd(a){return sA(a,746)};_.Mi=function jCd(a){return tz(S0,oJd,746,a,0,1)};var v1=k4(sWd,'XMLTypePackageImpl/2',1570);c3(1588,1,VVd,kCd);_.Li=function lCd(a){return wA(a)};_.Mi=function mCd(a){return tz(UE,cKd,2,a,6,1)};var l1=k4(sWd,'XMLTypePackageImpl/20',1588);c3(1589,1,VVd,nCd);_.Li=function oCd(a){return wA(a)};_.Mi=function pCd(a){return tz(UE,cKd,2,a,6,1)};var m1=k4(sWd,'XMLTypePackageImpl/21',1589);c3(1590,1,VVd,qCd);_.Li=function rCd(a){return wA(a)};_.Mi=function sCd(a){return tz(UE,cKd,2,a,6,1)};var n1=k4(sWd,'XMLTypePackageImpl/22',1590);c3(1591,1,VVd,tCd);_.Li=function uCd(a){return wA(a)};_.Mi=function vCd(a){return tz(UE,cKd,2,a,6,1)};var o1=k4(sWd,'XMLTypePackageImpl/23',1591);c3(1592,1,VVd,wCd);_.Li=function xCd(a){return sA(a,173)};_.Mi=function yCd(a){return tz(BA,cKd,173,a,0,2)};var p1=k4(sWd,'XMLTypePackageImpl/24',1592);c3(1593,1,VVd,zCd);_.Li=function ACd(a){return wA(a)};_.Mi=function BCd(a){return tz(UE,cKd,2,a,6,1)};var q1=k4(sWd,'XMLTypePackageImpl/25',1593);c3(1594,1,VVd,CCd);_.Li=function DCd(a){return wA(a)};_.Mi=function ECd(a){return tz(UE,cKd,2,a,6,1)};var r1=k4(sWd,'XMLTypePackageImpl/26',1594);c3(1595,1,VVd,FCd);_.Li=function GCd(a){return sA(a,15)};_.Mi=function HCd(a){return tz(mG,ZMd,15,a,0,1)};var s1=k4(sWd,'XMLTypePackageImpl/27',1595);c3(1596,1,VVd,ICd);_.Li=function JCd(a){return sA(a,15)};_.Mi=function KCd(a){return tz(mG,ZMd,15,a,0,1)};var t1=k4(sWd,'XMLTypePackageImpl/28',1596);c3(1597,1,VVd,LCd);_.Li=function MCd(a){return wA(a)};_.Mi=function NCd(a){return tz(UE,cKd,2,a,6,1)};var u1=k4(sWd,'XMLTypePackageImpl/29',1597);c3(1571,1,VVd,OCd);_.Li=function PCd(a){return sA(a,604)};_.Mi=function QCd(a){return tz(U0,oJd,1707,a,0,1)};var G1=k4(sWd,'XMLTypePackageImpl/3',1571);c3(1598,1,VVd,RCd);_.Li=function SCd(a){return sA(a,21)};_.Mi=function TCd(a){return tz(GE,cKd,21,a,0,1)};var w1=k4(sWd,'XMLTypePackageImpl/30',1598);c3(1599,1,VVd,UCd);_.Li=function VCd(a){return wA(a)};_.Mi=function WCd(a){return tz(UE,cKd,2,a,6,1)};var x1=k4(sWd,'XMLTypePackageImpl/31',1599);c3(1600,1,VVd,XCd);_.Li=function YCd(a){return sA(a,149)};_.Mi=function ZCd(a){return tz(IE,cKd,149,a,0,1)};var y1=k4(sWd,'XMLTypePackageImpl/32',1600);c3(1601,1,VVd,$Cd);_.Li=function _Cd(a){return wA(a)};_.Mi=function aDd(a){return tz(UE,cKd,2,a,6,1)};var z1=k4(sWd,'XMLTypePackageImpl/33',1601);c3(1602,1,VVd,bDd);_.Li=function cDd(a){return wA(a)};_.Mi=function dDd(a){return tz(UE,cKd,2,a,6,1)};var A1=k4(sWd,'XMLTypePackageImpl/34',1602);c3(1603,1,VVd,eDd);_.Li=function fDd(a){return wA(a)};_.Mi=function gDd(a){return tz(UE,cKd,2,a,6,1)};var B1=k4(sWd,'XMLTypePackageImpl/35',1603);c3(1604,1,VVd,hDd);_.Li=function iDd(a){return wA(a)};_.Mi=function jDd(a){return tz(UE,cKd,2,a,6,1)};var C1=k4(sWd,'XMLTypePackageImpl/36',1604);c3(1605,1,VVd,kDd);_.Li=function lDd(a){return sA(a,15)};_.Mi=function mDd(a){return tz(mG,ZMd,15,a,0,1)};var D1=k4(sWd,'XMLTypePackageImpl/37',1605);c3(1606,1,VVd,nDd);_.Li=function oDd(a){return sA(a,15)};_.Mi=function pDd(a){return tz(mG,ZMd,15,a,0,1)};var E1=k4(sWd,'XMLTypePackageImpl/38',1606);c3(1607,1,VVd,qDd);_.Li=function rDd(a){return wA(a)};_.Mi=function sDd(a){return tz(UE,cKd,2,a,6,1)};var F1=k4(sWd,'XMLTypePackageImpl/39',1607);c3(1572,1,VVd,tDd);_.Li=function uDd(a){return sA(a,605)};_.Mi=function vDd(a){return tz(V0,oJd,1708,a,0,1)};var R1=k4(sWd,'XMLTypePackageImpl/4',1572);c3(1608,1,VVd,wDd);_.Li=function xDd(a){return wA(a)};_.Mi=function yDd(a){return tz(UE,cKd,2,a,6,1)};var H1=k4(sWd,'XMLTypePackageImpl/40',1608);c3(1609,1,VVd,zDd);_.Li=function ADd(a){return wA(a)};_.Mi=function BDd(a){return tz(UE,cKd,2,a,6,1)};var I1=k4(sWd,'XMLTypePackageImpl/41',1609);c3(1610,1,VVd,CDd);_.Li=function DDd(a){return wA(a)};_.Mi=function EDd(a){return tz(UE,cKd,2,a,6,1)};var J1=k4(sWd,'XMLTypePackageImpl/42',1610);c3(1611,1,VVd,FDd);_.Li=function GDd(a){return wA(a)};_.Mi=function HDd(a){return tz(UE,cKd,2,a,6,1)};var K1=k4(sWd,'XMLTypePackageImpl/43',1611);c3(1612,1,VVd,IDd);_.Li=function JDd(a){return wA(a)};_.Mi=function KDd(a){return tz(UE,cKd,2,a,6,1)};var L1=k4(sWd,'XMLTypePackageImpl/44',1612);c3(1613,1,VVd,LDd);_.Li=function MDd(a){return sA(a,168)};_.Mi=function NDd(a){return tz(PE,cKd,168,a,0,1)};var M1=k4(sWd,'XMLTypePackageImpl/45',1613);c3(1614,1,VVd,ODd);_.Li=function PDd(a){return wA(a)};_.Mi=function QDd(a){return tz(UE,cKd,2,a,6,1)};var N1=k4(sWd,'XMLTypePackageImpl/46',1614);c3(1615,1,VVd,RDd);_.Li=function SDd(a){return wA(a)};_.Mi=function TDd(a){return tz(UE,cKd,2,a,6,1)};var O1=k4(sWd,'XMLTypePackageImpl/47',1615);c3(1616,1,VVd,UDd);_.Li=function VDd(a){return wA(a)};_.Mi=function WDd(a){return tz(UE,cKd,2,a,6,1)};var P1=k4(sWd,'XMLTypePackageImpl/48',1616);c3(1617,1,VVd,XDd);_.Li=function YDd(a){return sA(a,168)};_.Mi=function ZDd(a){return tz(PE,cKd,168,a,0,1)};var Q1=k4(sWd,'XMLTypePackageImpl/49',1617);c3(1573,1,VVd,$Dd);_.Li=function _Dd(a){return sA(a,606)};_.Mi=function aEd(a){return tz(W0,oJd,1709,a,0,1)};var V1=k4(sWd,'XMLTypePackageImpl/5',1573);c3(1618,1,VVd,bEd);_.Li=function cEd(a){return sA(a,149)};_.Mi=function dEd(a){return tz(IE,cKd,149,a,0,1)};var S1=k4(sWd,'XMLTypePackageImpl/50',1618);c3(1619,1,VVd,eEd);_.Li=function fEd(a){return wA(a)};_.Mi=function gEd(a){return tz(UE,cKd,2,a,6,1)};var T1=k4(sWd,'XMLTypePackageImpl/51',1619);c3(1620,1,VVd,hEd);_.Li=function iEd(a){return sA(a,21)};_.Mi=function jEd(a){return tz(GE,cKd,21,a,0,1)};var U1=k4(sWd,'XMLTypePackageImpl/52',1620);c3(1574,1,VVd,kEd);_.Li=function lEd(a){return wA(a)};_.Mi=function mEd(a){return tz(UE,cKd,2,a,6,1)};var W1=k4(sWd,'XMLTypePackageImpl/6',1574);c3(1575,1,VVd,nEd);_.Li=function oEd(a){return sA(a,173)};_.Mi=function pEd(a){return tz(BA,cKd,173,a,0,2)};var X1=k4(sWd,'XMLTypePackageImpl/7',1575);c3(1576,1,VVd,qEd);_.Li=function rEd(a){return tA(a)};_.Mi=function sEd(a){return tz(tE,cKd,434,a,8,1)};var Y1=k4(sWd,'XMLTypePackageImpl/8',1576);c3(1577,1,VVd,tEd);_.Li=function uEd(a){return sA(a,192)};_.Mi=function vEd(a){return tz(uE,cKd,192,a,0,1)};var Z1=k4(sWd,'XMLTypePackageImpl/9',1577);var wEd,xEd;var DEd,EEd;var IEd;c3(40,54,rKd,KEd);var _1=k4(SWd,'RegEx/ParseException',40);c3(730,1,{},SEd);_.Ck=function TEd(a){return ac*16)throw x2(new KEd(WYc((isd(),zUd))));c=c*16+e}while(true);if(this.a!=125)throw x2(new KEd(WYc((isd(),AUd))));if(c>TWd)throw x2(new KEd(WYc((isd(),BUd))));a=c}else{e=0;if(this.c!=0||(e=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));c=e;LEd(this);if(this.c!=0||(e=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));c=c*16+e;a=c}break;case 117:d=0;LEd(this);if(this.c!=0||(d=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));b=d;LEd(this);if(this.c!=0||(d=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));b=b*16+d;LEd(this);if(this.c!=0||(d=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));b=b*16+d;LEd(this);if(this.c!=0||(d=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));b=b*16+d;a=b;break;case 118:LEd(this);if(this.c!=0||(d=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));b=d;LEd(this);if(this.c!=0||(d=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));b=b*16+d;LEd(this);if(this.c!=0||(d=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));b=b*16+d;LEd(this);if(this.c!=0||(d=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));b=b*16+d;LEd(this);if(this.c!=0||(d=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));b=b*16+d;LEd(this);if(this.c!=0||(d=WEd(this.a))<0)throw x2(new KEd(WYc((isd(),yUd))));b=b*16+d;if(b>TWd)throw x2(new KEd(WYc((isd(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw x2(new KEd(WYc((isd(),CUd))));}return a};_.Ek=function VEd(a){var b;switch(a){case 100:b=(this.e&32)==32?gHd('Nd',true):(UGd(),AGd);break;case 68:b=(this.e&32)==32?gHd('Nd',false):(UGd(),HGd);break;case 119:b=(this.e&32)==32?gHd('IsWord',true):(UGd(),QGd);break;case 87:b=(this.e&32)==32?gHd('IsWord',false):(UGd(),JGd);break;case 115:b=(this.e&32)==32?gHd('IsSpace',true):(UGd(),LGd);break;case 83:b=(this.e&32)==32?gHd('IsSpace',false):(UGd(),IGd);break;default:throw x2(new Tv(UWd+a.toString(16)));}return b};_.Fk=function XEd(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;LEd(this);b=null;if(this.c==0&&this.a==94){LEd(this);if(a){k=(UGd(),UGd(),++TGd,new wHd(5))}else{b=(UGd(),UGd(),++TGd,new wHd(4));qHd(b,0,TWd);k=(null,++TGd,new wHd(4))}}else{k=(UGd(),UGd(),++TGd,new wHd(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:tHd(k,this.Ek(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Vk(k,c);c<0&&(d=true);break;case 112:case 80:l=REd(this,c);if(!l)throw x2(new KEd(WYc((isd(),nUd))));tHd(k,l);d=true;break;default:c=this.Dk();}}else if(m==20){g=a6(this.i,58,this.d);if(g<0)throw x2(new KEd(WYc((isd(),oUd))));h=true;if(X5(this.i,this.d)==94){++this.d;h=false}f=j6(this.i,this.d,g);i=hHd(f,h,(this.e&512)==512);if(!i)throw x2(new KEd(WYc((isd(),qUd))));tHd(k,i);d=true;if(g+1>=this.j||X5(this.i,g+1)!=93)throw x2(new KEd(WYc((isd(),oUd))));this.d=g+2}LEd(this);if(!d){if(this.c!=0||this.a!=45){qHd(k,c,c)}else{LEd(this);if((m=this.c)==1)throw x2(new KEd(WYc((isd(),pUd))));if(m==0&&this.a==93){qHd(k,c,c);qHd(k,45,45)}else{j=this.a;m==10&&(j=this.Dk());LEd(this);qHd(k,c,j)}}}(this.e&hVd)==hVd&&this.c==0&&this.a==44&&LEd(this)}if(this.c==1)throw x2(new KEd(WYc((isd(),pUd))));if(b){vHd(b,k);k=b}uHd(k);rHd(k);this.b=0;LEd(this);return k};_.Gk=function YEd(){var a,b,c,d;c=this.Fk(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){LEd(this);if(this.c!=9)throw x2(new KEd(WYc((isd(),vUd))));b=this.Fk(false);if(d==4)tHd(c,b);else if(a==45)vHd(c,b);else if(a==38)sHd(c,b);else throw x2(new Tv('ASSERT'))}else{throw x2(new KEd(WYc((isd(),wUd))))}}LEd(this);return c};_.Hk=function ZEd(){var a,b;a=this.a-48;b=(UGd(),UGd(),++TGd,new dId(12,null,a));!this.g&&(this.g=new Ukb);Rkb(this.g,new AHd(a));LEd(this);return b};_.Ik=function $Ed(){LEd(this);return UGd(),MGd};_.Jk=function _Ed(){LEd(this);return UGd(),KGd};_.Kk=function aFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Lk=function bFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Mk=function cFd(){LEd(this);return eHd()};_.Nk=function dFd(){LEd(this);return UGd(),OGd};_.Ok=function eFd(){LEd(this);return UGd(),RGd};_.Pk=function fFd(){var a;if(this.d>=this.j||((a=X5(this.i,this.d++))&65504)!=64)throw x2(new KEd(WYc((isd(),jUd))));LEd(this);return UGd(),UGd(),++TGd,new GHd(0,a-64)};_.Qk=function gFd(){LEd(this);return fHd()};_.Rk=function hFd(){LEd(this);return UGd(),SGd};_.Sk=function iFd(){var a;a=(UGd(),UGd(),++TGd,new GHd(0,105));LEd(this);return a};_.Tk=function jFd(){LEd(this);return UGd(),PGd};_.Uk=function kFd(){LEd(this);return UGd(),NGd};_.Vk=function lFd(a,b){return this.Dk()};_.Wk=function mFd(){LEd(this);return UGd(),FGd};_.Xk=function nFd(){var a,b,c,d,e;if(this.d+1>=this.j)throw x2(new KEd(WYc((isd(),gUd))));d=-1;b=null;a=X5(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Ukb);Rkb(this.g,new AHd(d));++this.d;if(X5(this.i,this.d)!=41)throw x2(new KEd(WYc((isd(),dUd))));++this.d}else{a==63&&--this.d;LEd(this);b=OEd(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw x2(new KEd(WYc((isd(),dUd))));break;default:throw x2(new KEd(WYc((isd(),hUd))));}}LEd(this);e=PEd(this);c=null;if(e.e==2){if(e.ol()!=2)throw x2(new KEd(WYc((isd(),iUd))));c=e.kl(1);e=e.kl(0)}if(this.c!=7)throw x2(new KEd(WYc((isd(),dUd))));LEd(this);return UGd(),UGd(),++TGd,new THd(d,b,e,c)};_.Yk=function oFd(){LEd(this);return UGd(),GGd};_.Zk=function pFd(){var a;LEd(this);a=$Gd(24,PEd(this));if(this.c!=7)throw x2(new KEd(WYc((isd(),dUd))));LEd(this);return a};_.$k=function qFd(){var a;LEd(this);a=$Gd(20,PEd(this));if(this.c!=7)throw x2(new KEd(WYc((isd(),dUd))));LEd(this);return a};_._k=function rFd(){var a;LEd(this);a=$Gd(22,PEd(this));if(this.c!=7)throw x2(new KEd(WYc((isd(),dUd))));LEd(this);return a};_.al=function sFd(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw x2(new KEd(WYc((isd(),eUd))));if(b==45){++this.d;while(this.d=this.j)throw x2(new KEd(WYc((isd(),eUd))))}if(b==58){++this.d;LEd(this);d=_Gd(PEd(this),a,c);if(this.c!=7)throw x2(new KEd(WYc((isd(),dUd))));LEd(this)}else if(b==41){++this.d;LEd(this);d=_Gd(PEd(this),a,c)}else throw x2(new KEd(WYc((isd(),fUd))));return d};_.bl=function tFd(){var a;LEd(this);a=$Gd(21,PEd(this));if(this.c!=7)throw x2(new KEd(WYc((isd(),dUd))));LEd(this);return a};_.cl=function uFd(){var a;LEd(this);a=$Gd(23,PEd(this));if(this.c!=7)throw x2(new KEd(WYc((isd(),dUd))));LEd(this);return a};_.dl=function vFd(){var a,b;LEd(this);a=this.f++;b=aHd(PEd(this),a);if(this.c!=7)throw x2(new KEd(WYc((isd(),dUd))));LEd(this);return b};_.el=function wFd(){var a;LEd(this);a=aHd(PEd(this),0);if(this.c!=7)throw x2(new KEd(WYc((isd(),dUd))));LEd(this);return a};_.fl=function xFd(a){LEd(this);if(this.c==5){LEd(this);return ZGd(a,(UGd(),UGd(),++TGd,new JHd(9,a)))}else return ZGd(a,(UGd(),UGd(),++TGd,new JHd(3,a)))};_.gl=function yFd(a){var b;LEd(this);b=(UGd(),UGd(),++TGd,new hId(2));if(this.c==5){LEd(this);gId(b,(null,DGd));gId(b,a)}else{gId(b,a);gId(b,(null,DGd))}return b};_.hl=function zFd(a){LEd(this);if(this.c==5){LEd(this);return UGd(),UGd(),++TGd,new JHd(9,a)}else return UGd(),UGd(),++TGd,new JHd(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var d2=k4(SWd,'RegEx/RegexParser',730);c3(1564,730,{},FFd);_.Ck=function GFd(a){return false};_.Dk=function HFd(){return CFd(this)};_.Ek=function JFd(a){return DFd(a)};_.Fk=function KFd(a){return EFd(this)};_.Gk=function LFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Hk=function MFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Ik=function NFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Jk=function OFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Kk=function PFd(){LEd(this);return DFd(67)};_.Lk=function QFd(){LEd(this);return DFd(73)};_.Mk=function RFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Nk=function SFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Ok=function TFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Pk=function UFd(){LEd(this);return DFd(99)};_.Qk=function VFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Rk=function WFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Sk=function XFd(){LEd(this);return DFd(105)};_.Tk=function YFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Uk=function ZFd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Vk=function $Fd(a,b){return tHd(a,DFd(b)),-1};_.Wk=function _Fd(){LEd(this);return UGd(),UGd(),++TGd,new GHd(0,94)};_.Xk=function aGd(){throw x2(new KEd(WYc((isd(),DUd))))};_.Yk=function bGd(){LEd(this);return UGd(),UGd(),++TGd,new GHd(0,36)};_.Zk=function cGd(){throw x2(new KEd(WYc((isd(),DUd))))};_.$k=function dGd(){throw x2(new KEd(WYc((isd(),DUd))))};_._k=function eGd(){throw x2(new KEd(WYc((isd(),DUd))))};_.al=function fGd(){throw x2(new KEd(WYc((isd(),DUd))))};_.bl=function gGd(){throw x2(new KEd(WYc((isd(),DUd))))};_.cl=function hGd(){throw x2(new KEd(WYc((isd(),DUd))))};_.dl=function iGd(){var a;LEd(this);a=aHd(PEd(this),0);if(this.c!=7)throw x2(new KEd(WYc((isd(),dUd))));LEd(this);return a};_.el=function jGd(){throw x2(new KEd(WYc((isd(),DUd))))};_.fl=function kGd(a){LEd(this);return ZGd(a,(UGd(),UGd(),++TGd,new JHd(3,a)))};_.gl=function lGd(a){var b;LEd(this);b=(UGd(),UGd(),++TGd,new hId(2));gId(b,a);gId(b,(null,DGd));return b};_.hl=function mGd(a){LEd(this);return UGd(),UGd(),++TGd,new JHd(3,a)};var AFd=null,BFd=null;var a2=k4(SWd,'RegEx/ParserForXMLSchema',1564);c3(112,1,eXd,VGd);_.il=function WGd(a){throw x2(new Tv('Not supported.'))};_.jl=function cHd(){return -1};_.kl=function dHd(a){return null};_.ll=function iHd(){return null};_.ml=function lHd(a){};_.nl=function mHd(a){};_.ol=function nHd(){return 0};_.Ib=function oHd(){return this.pl(0)};_.pl=function pHd(a){return this.e==11?'.':''};_.e=0;var uGd,vGd,wGd,xGd,yGd,zGd=null,AGd,BGd=null,CGd,DGd,EGd=null,FGd,GGd,HGd,IGd,JGd,KGd,LGd,MGd,NGd,OGd,PGd,QGd,RGd,SGd,TGd=0;var n2=k4(SWd,'RegEx/Token',112);c3(130,112,{3:1,130:1,112:1},wHd);_.pl=function zHd(a){var b,c,d;if(this.e==4){if(this==CGd)c='.';else if(this==AGd)c='\\d';else if(this==QGd)c='\\w';else if(this==LGd)c='\\s';else{d=new z6;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){w6(d,yHd(this.b[b]))}else{w6(d,yHd(this.b[b]));d.a+='-';w6(d,yHd(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==HGd)c='\\D';else if(this==JGd)c='\\W';else if(this==IGd)c='\\S';else{d=new z6;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){w6(d,yHd(this.b[b]))}else{w6(d,yHd(this.b[b]));d.a+='-';w6(d,yHd(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var b2=k4(SWd,'RegEx/RangeToken',130);c3(528,1,{528:1},AHd);_.a=0;var c2=k4(SWd,'RegEx/RegexParser/ReferencePosition',528);c3(527,1,{3:1,527:1},CHd);_.Fb=function DHd(a){var b;if(a==null)return false;if(!sA(a,527))return false;b=kA(a,527);return Z5(this.b,b.b)&&this.a==b.a};_.Hb=function EHd(){return hqb(this.b+'/'+oGd(this.a))};_.Ib=function FHd(){return this.c.pl(this.a)};_.a=0;var e2=k4(SWd,'RegEx/RegularExpression',527);c3(195,112,eXd,GHd);_.jl=function HHd(){return this.a};_.pl=function IHd(a){var b,c;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:c='\\'+qA(this.a&AKd);break;case 12:c='\\f';break;case 10:c='\\n';break;case 13:c='\\r';break;case 9:c='\\t';break;case 27:c='\\e';break;default:if(this.a>=sLd){b='0'+(this.a>>>0).toString(16);c='\\v'+j6(b,b.length-6,b.length)}else c=''+qA(this.a&AKd);}break;case 8:this==FGd||this==GGd?(c=''+qA(this.a&AKd)):(c='\\'+qA(this.a&AKd));break;default:c=null;}return c};_.a=0;var f2=k4(SWd,'RegEx/Token/CharToken',195);c3(283,112,eXd,JHd);_.kl=function KHd(a){return this.a};_.ml=function LHd(a){this.b=a};_.nl=function MHd(a){this.c=a};_.ol=function NHd(){return 1};_.pl=function OHd(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.pl(a)+'*'}else if(this.c==this.b){b=this.a.pl(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.pl(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.pl(a)+'{'+this.c+',}'}else throw x2(new Tv('Token#toString(): CLOSURE '+this.c+qJd+this.b))}else{if(this.c<0&&this.b<0){b=this.a.pl(a)+'*?'}else if(this.c==this.b){b=this.a.pl(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.pl(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.pl(a)+'{'+this.c+',}?'}else throw x2(new Tv('Token#toString(): NONGREEDYCLOSURE '+this.c+qJd+this.b))}return b};_.b=0;_.c=0;var g2=k4(SWd,'RegEx/Token/ClosureToken',283);c3(731,112,eXd,PHd);_.kl=function QHd(a){return a==0?this.a:this.b};_.ol=function RHd(){return 2};_.pl=function SHd(a){var b;this.b.e==3&&this.b.kl(0)==this.a?(b=this.a.pl(a)+'+'):this.b.e==9&&this.b.kl(0)==this.a?(b=this.a.pl(a)+'+?'):(b=this.a.pl(a)+(''+this.b.pl(a)));return b};var h2=k4(SWd,'RegEx/Token/ConcatToken',731);c3(1562,112,eXd,THd);_.kl=function UHd(a){if(a==0)return this.d;if(a==1)return this.b;throw x2(new Tv('Internal Error: '+a))};_.ol=function VHd(){return !this.b?1:2};_.pl=function WHd(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 i2=k4(SWd,'RegEx/Token/ConditionToken',1562);c3(1563,112,eXd,XHd);_.kl=function YHd(a){return this.b};_.ol=function ZHd(){return 1};_.pl=function $Hd(a){return '(?'+(this.a==0?'':oGd(this.a))+(this.c==0?'':oGd(this.c))+':'+this.b.pl(a)+')'};_.a=0;_.c=0;var j2=k4(SWd,'RegEx/Token/ModifierToken',1563);c3(732,112,eXd,_Hd);_.kl=function aId(a){return this.a};_.ol=function bId(){return 1};_.pl=function cId(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.pl(a)+')'):(b='('+this.a.pl(a)+')');break;case 20:b='(?='+this.a.pl(a)+')';break;case 21:b='(?!'+this.a.pl(a)+')';break;case 22:b='(?<='+this.a.pl(a)+')';break;case 23:b='(?'+this.a.pl(a)+')';}return b};_.b=0;var k2=k4(SWd,'RegEx/Token/ParenToken',732);c3(474,112,{3:1,112:1,474:1},dId);_.ll=function eId(){return this.b};_.pl=function fId(a){return this.e==12?'\\'+this.a:sGd(this.b)};_.a=0;var l2=k4(SWd,'RegEx/Token/StringToken',474);c3(427,112,eXd,hId);_.il=function iId(a){gId(this,a)};_.kl=function jId(a){return kA(Skb(this.a,a),112)};_.ol=function kId(){return !this.a?0:this.a.a.c.length};_.pl=function lId(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=kA(Skb(this.a,0),112);c=kA(Skb(this.a,1),112);c.e==3&&c.kl(0)==b?(e=b.pl(a)+'+'):c.e==9&&c.kl(0)==b?(e=b.pl(a)+'+?'):(e=b.pl(a)+(''+c.pl(a)))}else{f=new z6;for(d=0;d=this.c.b:this.a<=this.c.b};_.Cc=function UId(){return this.b>0};_.Dc=function WId(){return this.b};_.Fc=function YId(){return this.b-1};_.jc=function ZId(){throw x2(new V6(kXd))};_.a=0;_.b=0;var r2=k4(hXd,'ExclusiveRange/RangeIterator',230);var CA=n4(lVd,'C');var FA=n4(oVd,'I');var u2=n4(gJd,'Z');var GA=n4(pVd,'J');var BA=n4(kVd,'B');var DA=n4(mVd,'D');var EA=n4(nVd,'F');var t2=n4(qVd,'S');var XT=m4('org.eclipse.elk.core.labels','ILabelManager');var UX=m4(FTd,'DiagnosticChain');var x_=m4(XVd,'ResourceSet');var _X=k4(FTd,'InvocationTargetException',null);var eJd=(kw(),nw);var gwtOnLoad=gwtOnLoad=$2;Y2(h3);_2('permProps',[[[lXd,mXd],[nXd,'gecko1_8']],[[lXd,mXd],[nXd,'ie10']],[[lXd,mXd],[nXd,'ie8']],[[lXd,mXd],[nXd,'ie9']],[[lXd,mXd],[nXd,'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; } - -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('webworker-threads'); - workerThreadsExist = true; - } catch (e) {} - - // user requested a worker - if (options.workerUrl) { - if (workerThreadsExist) { - var _require = require('webworker-threads'), - Worker = _require.Worker; - - optionsClone.workerFactory = function (url) { - return new Worker(url); - }; - } else { - console.warn('Web worker requested but \'webworker-threads\' 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 _require2 = require('./elk-worker.min.js'), - _Worker = _require2.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,"webworker-threads":8}],4:[function(require,module,exports){ -(function (process,__filename){ - -/** - * Module dependencies. - */ - -var fs = require('fs') - , path = require('path') - , join = path.join - , dirname = path.dirname - , exists = ((fs.accessSync && function (path) { try { fs.accessSync(path); } catch (e) { return false; } return true; }) - || fs.existsSync || path.existsSync) - , defaults = { - arrow: process.env.NODE_BINDINGS_ARROW || ' → ' - , compiled: process.env.NODE_BINDINGS_COMPILED_DIR || 'compiled' - , platform: process.platform - , arch: process.arch - , version: process.versions.node - , bindings: 'bindings.node' - , try: [ - // node-gyp's linked version in the "build" dir - [ 'module_root', 'build', 'bindings' ] - // node-waf and gyp_addon (a.k.a node-gyp) - , [ 'module_root', 'build', 'Debug', 'bindings' ] - , [ 'module_root', 'build', 'Release', 'bindings' ] - // Debug files, for development (legacy behavior, remove for node v0.9) - , [ 'module_root', 'out', 'Debug', 'bindings' ] - , [ 'module_root', 'Debug', 'bindings' ] - // Release files, but manually compiled (legacy behavior, remove for node v0.9) - , [ 'module_root', 'out', 'Release', 'bindings' ] - , [ 'module_root', 'Release', 'bindings' ] - // Legacy from node-waf, node <= 0.4.x - , [ 'module_root', 'build', 'default', 'bindings' ] - // Production "Release" buildtype binary (meh...) - , [ 'module_root', 'compiled', 'version', 'platform', 'arch', 'bindings' ] - ] - } - -/** - * The main `bindings()` function loads the compiled bindings for a given module. - * It uses V8's Error API to determine the parent filename that this function is - * being invoked from, which is then used to find the root directory. - */ - -function bindings (opts) { - - // Argument surgery - if (typeof opts == 'string') { - opts = { bindings: opts } - } else if (!opts) { - opts = {} - } - - // maps `defaults` onto `opts` object - Object.keys(defaults).map(function(i) { - if (!(i in opts)) opts[i] = defaults[i]; - }); - - // Get the module root - if (!opts.module_root) { - opts.module_root = exports.getRoot(exports.getFileName()) - } - - // Ensure the given bindings name ends with .node - if (path.extname(opts.bindings) != '.node') { - opts.bindings += '.node' - } - - var tries = [] - , i = 0 - , l = opts.try.length - , n - , b - , err - - for (; i 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up--; up) { - parts.unshift('..'); - } - } - - return parts; -} - -// Split a filename into [root, dir, basename, ext], unix version -// 'root' is just a slash, or nothing. -var splitPathRe = - /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; -var splitPath = function(filename) { - return splitPathRe.exec(filename).slice(1); -}; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { - var resolvedPath = '', - resolvedAbsolute = false; - - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - continue; - } - - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { - var isAbsolute = exports.isAbsolute(path), - trailingSlash = substr(path, -1) === '/'; - - // Normalize the path - path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - -// posix version -exports.isAbsolute = function(path) { - return path.charAt(0) === '/'; -}; - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - if (typeof p !== 'string') { - throw new TypeError('Arguments to path.join must be strings'); - } - return p; - }).join('/')); -}; - - -// path.relative(from, to) -// posix version -exports.relative = function(from, to) { - from = exports.resolve(from).substr(1); - to = exports.resolve(to).substr(1); - - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - - return outputParts.join('/'); -}; - -exports.sep = '/'; -exports.delimiter = ':'; - -exports.dirname = function(path) { - var result = splitPath(path), - root = result[0], - dir = result[1]; - - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - - return root + dir; -}; - - -exports.basename = function(path, ext) { - var f = splitPath(path)[2]; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPath(path)[3]; -}; - -function filter (xs, f) { - if (xs.filter) return xs.filter(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - if (f(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// String.prototype.substr - negative index don't work in IE8 -var substr = 'ab'.substr(-1) === 'b' - ? function (str, start, len) { return str.substr(start, len) } - : function (str, start, len) { - if (start < 0) start = str.length + start; - return str.substr(start, len); - } -; - -}).call(this,require('_process')) -},{"_process":7}],7:[function(require,module,exports){ -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],8:[function(require,module,exports){ -var WebWorkerThreads = require('bindings')('WebWorkerThreads'); - -module.exports = WebWorkerThreads; - -},{"bindings":4}]},{},[3])(3) -}); \ No newline at end of file diff --git a/src/OneWare.NetListSvgIntegration/Assets/netlistsvg.bundle.js b/src/OneWare.NetListSvgIntegration/Assets/netlistsvg.bundle.js deleted file mode 100644 index 2118feb7..00000000 --- a/src/OneWare.NetListSvgIntegration/Assets/netlistsvg.bundle.js +++ /dev/null @@ -1,35057 +0,0 @@ -(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.netlistsvg = 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 1 && - !('ADDR' in yCell.parameters)) { - // turn into a bus version - yCell.type = yCell.type + '-bus'; - } - } - }; - Object.defineProperty(Cell.prototype, "Type", { - get: function () { - return this.type; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(Cell.prototype, "Key", { - get: function () { - return this.key; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(Cell.prototype, "InputPorts", { - get: function () { - return this.inputPorts; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(Cell.prototype, "OutputPorts", { - get: function () { - return this.outputPorts; - }, - enumerable: false, - configurable: true - }); - Cell.prototype.maxOutVal = function (atLeast) { - var maxVal = _.max(this.outputPorts.map(function (op) { return op.maxVal(); })); - return _.max([maxVal, atLeast]); - }; - Cell.prototype.findConstants = function (sigsByConstantName, maxNum, constantCollector) { - this.inputPorts.forEach(function (ip) { - maxNum = ip.findConstants(sigsByConstantName, maxNum, constantCollector); - }); - return maxNum; - }; - Cell.prototype.inputPortVals = function () { - return this.inputPorts.map(function (port) { return port.valString(); }); - }; - Cell.prototype.outputPortVals = function () { - return this.outputPorts.map(function (port) { return port.valString(); }); - }; - Cell.prototype.collectPortsByDirection = function (ridersByNet, driversByNet, lateralsByNet, genericsLaterals) { - var template = Skin_1.default.findSkinType(this.type); - var lateralPids = Skin_1.default.getLateralPortPids(template); - // find all ports connected to the same net - this.inputPorts.forEach(function (port) { - var isLateral = port.keyIn(lateralPids); - if (isLateral || (template[1]['s:type'] === 'generic' && genericsLaterals)) { - FlatModule_1.addToDefaultDict(lateralsByNet, port.valString(), port); - } - else { - FlatModule_1.addToDefaultDict(ridersByNet, port.valString(), port); - } - }); - this.outputPorts.forEach(function (port) { - var isLateral = port.keyIn(lateralPids); - if (isLateral || (template[1]['s:type'] === 'generic' && genericsLaterals)) { - FlatModule_1.addToDefaultDict(lateralsByNet, port.valString(), port); - } - else { - FlatModule_1.addToDefaultDict(driversByNet, port.valString(), port); - } - }); - }; - Cell.prototype.getValueAttribute = function () { - if (this.attributes && this.attributes.value) { - return this.attributes.value; - } - return null; - }; - Cell.prototype.getTemplate = function () { - return Skin_1.default.findSkinType(this.type); - }; - Cell.prototype.buildElkChild = function () { - var _this = this; - var template = this.getTemplate(); - var type = template[1]['s:type']; - var layoutAttrs = { 'org.eclipse.elk.portConstraints': 'FIXED_POS' }; - var fixedPosX = null; - var fixedPosY = null; - for (var attr in this.attributes) { - if (attr.startsWith('org.eclipse.elk')) { - if (attr === 'org.eclipse.elk.x') { - fixedPosX = this.attributes[attr]; - continue; - } - if (attr === 'org.eclipse.elk.y') { - fixedPosY = this.attributes[attr]; - continue; - } - layoutAttrs[attr] = this.attributes[attr]; - } - } - if (type === 'join' || - type === 'split' || - type === 'generic') { - var inTemplates_1 = Skin_1.default.getPortsWithPrefix(template, 'in'); - var outTemplates_1 = Skin_1.default.getPortsWithPrefix(template, 'out'); - var inPorts = this.inputPorts.map(function (ip, i) { - return ip.getGenericElkPort(i, inTemplates_1, 'in'); - }); - var outPorts = this.outputPorts.map(function (op, i) { - return op.getGenericElkPort(i, outTemplates_1, 'out'); - }); - var cell = { - id: this.key, - width: Number(template[1]['s:width']), - height: Number(this.getGenericHeight()), - ports: inPorts.concat(outPorts), - layoutOptions: layoutAttrs, - labels: [], - }; - if (fixedPosX) { - cell.x = fixedPosX; - } - if (fixedPosY) { - cell.y = fixedPosY; - } - this.addLabels(template, cell); - return cell; - } - var ports = Skin_1.default.getPortsWithPrefix(template, '').map(function (tp) { - return { - id: _this.key + '.' + tp[1]['s:pid'], - width: 0, - height: 0, - x: Number(tp[1]['s:x']), - y: Number(tp[1]['s:y']), - }; - }); - var nodeWidth = Number(template[1]['s:width']); - var ret = { - id: this.key, - width: nodeWidth, - height: Number(template[1]['s:height']), - ports: ports, - layoutOptions: layoutAttrs, - labels: [], - }; - if (fixedPosX) { - ret.x = fixedPosX; - } - if (fixedPosY) { - ret.y = fixedPosY; - } - this.addLabels(template, ret); - return ret; - }; - Cell.prototype.render = function (cell) { - var template = this.getTemplate(); - var tempclone = clone(template); - for (var _i = 0, _a = cell.labels; _i < _a.length; _i++) { - var label = _a[_i]; - var labelIDSplit = label.id.split('.'); - var attrName = labelIDSplit[labelIDSplit.length - 1]; - setTextAttribute(tempclone, attrName, label.text); - } - for (var i = 2; i < tempclone.length; i++) { - var node = tempclone[i]; - if (node[0] === 'text' && node[1]['s:attribute']) { - var attrib = node[1]['s:attribute']; - if (!(attrib in this.attributes)) { - node[2] = ''; - } - } - } - tempclone[1].id = 'cell_' + this.key; - tempclone[1].transform = 'translate(' + cell.x + ',' + cell.y + ')'; - if (this.type === '$_split_') { - setGenericSize(tempclone, Number(this.getGenericHeight())); - var outPorts_1 = Skin_1.default.getPortsWithPrefix(template, 'out'); - var gap_1 = Number(outPorts_1[1][1]['s:y']) - Number(outPorts_1[0][1]['s:y']); - var startY_1 = Number(outPorts_1[0][1]['s:y']); - tempclone.pop(); - tempclone.pop(); - this.outputPorts.forEach(function (op, i) { - var portClone = clone(outPorts_1[0]); - portClone[portClone.length - 1][2] = op.Key; - portClone[1].transform = 'translate(' + outPorts_1[1][1]['s:x'] + ',' - + (startY_1 + i * gap_1) + ')'; - tempclone.push(portClone); - }); - } - else if (this.type === '$_join_') { - setGenericSize(tempclone, Number(this.getGenericHeight())); - var inPorts_1 = Skin_1.default.getPortsWithPrefix(template, 'in'); - var gap_2 = Number(inPorts_1[1][1]['s:y']) - Number(inPorts_1[0][1]['s:y']); - var startY_2 = Number(inPorts_1[0][1]['s:y']); - tempclone.pop(); - tempclone.pop(); - this.inputPorts.forEach(function (port, i) { - var portClone = clone(inPorts_1[0]); - portClone[portClone.length - 1][2] = port.Key; - portClone[1].transform = 'translate(' + inPorts_1[1][1]['s:x'] + ',' - + (startY_2 + i * gap_2) + ')'; - tempclone.push(portClone); - }); - } - else if (template[1]['s:type'] === 'generic') { - setGenericSize(tempclone, Number(this.getGenericHeight())); - var inPorts_2 = Skin_1.default.getPortsWithPrefix(template, 'in'); - var ingap_1 = Number(inPorts_2[1][1]['s:y']) - Number(inPorts_2[0][1]['s:y']); - var instartY_1 = Number(inPorts_2[0][1]['s:y']); - var outPorts_2 = Skin_1.default.getPortsWithPrefix(template, 'out'); - var outgap_1 = Number(outPorts_2[1][1]['s:y']) - Number(outPorts_2[0][1]['s:y']); - var outstartY_1 = Number(outPorts_2[0][1]['s:y']); - tempclone.pop(); - tempclone.pop(); - tempclone.pop(); - tempclone.pop(); - this.inputPorts.forEach(function (port, i) { - var portClone = clone(inPorts_2[0]); - portClone[portClone.length - 1][2] = port.Key; - portClone[1].transform = 'translate(' + inPorts_2[1][1]['s:x'] + ',' - + (instartY_1 + i * ingap_1) + ')'; - portClone[1].id = 'port_' + port.parentNode.Key + '~' + port.Key; - tempclone.push(portClone); - }); - this.outputPorts.forEach(function (port, i) { - var portClone = clone(outPorts_2[0]); - portClone[portClone.length - 1][2] = port.Key; - portClone[1].transform = 'translate(' + outPorts_2[1][1]['s:x'] + ',' - + (outstartY_1 + i * outgap_1) + ')'; - portClone[1].id = 'port_' + port.parentNode.Key + '~' + port.Key; - tempclone.push(portClone); - }); - // first child of generic must be a text node. - tempclone[2][2] = this.type; - } - setClass(tempclone, '$cell_id', 'cell_' + this.key); - return tempclone; - }; - Cell.prototype.addLabels = function (template, cell) { - var _this = this; - onml.traverse(template, { - enter: function (node) { - if (node.name === 'text' && node.attr['s:attribute']) { - var attrName = node.attr['s:attribute']; - var newString = void 0; - if (attrName === 'ref' || attrName === 'id') { - if (_this.type === '$_constant_' && _this.key.length > 3) { - var num = parseInt(_this.key, 2); - newString = '0x' + num.toString(16); - } - else { - newString = _this.key; - } - _this.attributes[attrName] = _this.key; - } - else if (attrName in _this.attributes) { - newString = _this.attributes[attrName]; - } - else { - return; - } - cell.labels.push({ - id: _this.key + '.label.' + attrName, - text: newString, - x: node.attr.x, - y: node.attr.y - 6, - height: 11, - width: (6 * newString.length), - }); - } - }, - }); - }; - Cell.prototype.getGenericHeight = function () { - var template = this.getTemplate(); - var inPorts = Skin_1.default.getPortsWithPrefix(template, 'in'); - var outPorts = Skin_1.default.getPortsWithPrefix(template, 'out'); - if (this.inputPorts.length > this.outputPorts.length) { - var gap = Number(inPorts[1][1]['s:y']) - Number(inPorts[0][1]['s:y']); - return Number(template[1]['s:height']) + gap * (this.inputPorts.length - 2); - } - if (outPorts.length > 1) { - var gap = Number(outPorts[1][1]['s:y']) - Number(outPorts[0][1]['s:y']); - return Number(template[1]['s:height']) + gap * (this.outputPorts.length - 2); - } - return Number(template[1]['s:height']); - }; - return Cell; - }()); - exports.default = Cell; - function setGenericSize(tempclone, height) { - onml.traverse(tempclone, { - enter: function (node) { - if (node.name === 'rect' && node.attr['s:generic'] === 'body') { - node.attr.height = height; - } - }, - }); - } - function setTextAttribute(tempclone, attribute, value) { - onml.traverse(tempclone, { - enter: function (node) { - if (node.name === 'text' && node.attr['s:attribute'] === attribute) { - node.full[2] = value; - } - }, - }); - } - function setClass(tempclone, searchKey, className) { - onml.traverse(tempclone, { - enter: function (node) { - var currentClass = node.attr.class; - if (currentClass && currentClass.includes(searchKey)) { - node.attr.class = currentClass.replace(searchKey, className); - } - }, - }); - } - function getBits(signals, indicesString) { - var index = indicesString.indexOf(':'); - // is it the whole thing? - if (index === -1) { - return [signals[Number(indicesString)]]; - } - else { - var start = indicesString.slice(0, index); - var end = indicesString.slice(index + 1); - var slice = signals.slice(Number(start), Number(end) + 1); - return slice; - } - } - - },{"./FlatModule":2,"./Port":3,"./Skin":4,"./YosysModel":5,"clone":57,"lodash":68,"onml":69}],2:[function(require,module,exports){ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.removeDups = exports.addToDefaultDict = exports.arrayToBitstring = exports.FlatModule = void 0; - var Skin_1 = require("./Skin"); - var Cell_1 = require("./Cell"); - var _ = require("lodash"); - var FlatModule = /** @class */ (function () { - function FlatModule(netlist) { - var _this = this; - this.moduleName = null; - _.forEach(netlist.modules, function (mod, name) { - if (mod.attributes && Number(mod.attributes.top) === 1) { - _this.moduleName = name; - } - }); - // Otherwise default the first one in the file... - if (this.moduleName == null) { - this.moduleName = Object.keys(netlist.modules)[0]; - } - var top = netlist.modules[this.moduleName]; - var ports = _.map(top.ports, Cell_1.default.fromPort); - var cells = _.map(top.cells, function (c, key) { return Cell_1.default.fromYosysCell(c, key); }); - this.nodes = cells.concat(ports); - // populated by createWires - this.wires = []; - } - // converts input ports with constant assignments to constant nodes - FlatModule.prototype.addConstants = function () { - // find the maximum signal number - var maxNum = this.nodes.reduce((function (acc, v) { return v.maxOutVal(acc); }), -1); - // add constants to nodes - var signalsByConstantName = {}; - var cells = []; - this.nodes.forEach(function (n) { - maxNum = n.findConstants(signalsByConstantName, maxNum, cells); - }); - this.nodes = this.nodes.concat(cells); - }; - // solves for minimal bus splits and joins and adds them to module - FlatModule.prototype.addSplitsJoins = function () { - var allInputs = _.flatMap(this.nodes, function (n) { return n.inputPortVals(); }); - var allOutputs = _.flatMap(this.nodes, function (n) { return n.outputPortVals(); }); - var allInputsCopy = allInputs.slice(); - var splits = {}; - var joins = {}; - allInputs.forEach(function (input) { - gather(allOutputs, allInputsCopy, input, 0, input.length, splits, joins); - }); - this.nodes = this.nodes.concat(_.map(joins, function (joinOutput, joinInputs) { - return Cell_1.default.fromJoinInfo(joinInputs, joinOutput); - })).concat(_.map(splits, function (splitOutputs, splitInput) { - return Cell_1.default.fromSplitInfo(splitInput, splitOutputs); - })); - }; - // search through all the ports to find all of the wires - FlatModule.prototype.createWires = function () { - var layoutProps = Skin_1.default.getProperties(); - var ridersByNet = {}; - var driversByNet = {}; - var lateralsByNet = {}; - this.nodes.forEach(function (n) { - n.collectPortsByDirection(ridersByNet, driversByNet, lateralsByNet, layoutProps.genericsLaterals); - }); - // list of unique nets - var nets = removeDups(_.keys(ridersByNet).concat(_.keys(driversByNet)).concat(_.keys(lateralsByNet))); - var wires = nets.map(function (net) { - var drivers = driversByNet[net] || []; - var riders = ridersByNet[net] || []; - var laterals = lateralsByNet[net] || []; - var wire = { netName: net, drivers: drivers, riders: riders, laterals: laterals }; - drivers.concat(riders).concat(laterals).forEach(function (port) { - port.wire = wire; - }); - return wire; - }); - this.wires = wires; - }; - return FlatModule; - }()); - exports.FlatModule = FlatModule; -// returns a string that represents the values of the array of integers -// [1, 2, 3] -> ',1,2,3,' - function arrayToBitstring(bitArray) { - var ret = ''; - bitArray.forEach(function (bit) { - var sbit = String(bit); - if (ret === '') { - ret = sbit; - } - else { - ret += ',' + sbit; - } - }); - return ',' + ret + ','; - } - exports.arrayToBitstring = arrayToBitstring; -// returns whether needle is a substring of haystack - function arrayContains(needle, haystack) { - return (haystack.indexOf(needle) > -1); - } -// returns the index of the string that contains a substring -// given arrhaystack, an array of strings - function indexOfContains(needle, arrhaystack) { - return _.findIndex(arrhaystack, function (haystack) { - return arrayContains(needle, haystack); - }); - } - function addToDefaultDict(dict, key, value) { - if (dict[key] === undefined) { - dict[key] = [value]; - } - else { - dict[key].push(value); - } - } - exports.addToDefaultDict = addToDefaultDict; -// string (for labels), that represents an index -// or range of indices. - function getIndicesString(bitstring, query, start) { - var splitStart = _.max([bitstring.indexOf(query), start]); - var startIndex = bitstring.substring(0, splitStart).split(',').length - 1; - var endIndex = startIndex + query.split(',').length - 3; - if (startIndex === endIndex) { - return String(startIndex); - } - else { - return String(startIndex) + ':' + String(endIndex); - } - } -// gather splits and joins - function gather(inputs, // all inputs - outputs, // all outputs - toSolve, // an input array we are trying to solve - start, // index of toSolve to start from - end, // index of toSolve to end at - splits, // container collecting the splits - joins) { - // remove myself from outputs list if present - var outputIndex = outputs.indexOf(toSolve); - if (outputIndex !== -1) { - outputs.splice(outputIndex, 1); - } - // This toSolve is compconste - if (start >= toSolve.length || end - start < 2) { - return; - } - var query = toSolve.slice(start, end); - // are there are perfect matches? - if (arrayContains(query, inputs)) { - if (query !== toSolve) { - addToDefaultDict(joins, toSolve, getIndicesString(toSolve, query, start)); - } - gather(inputs, outputs, toSolve, end - 1, toSolve.length, splits, joins); - return; - } - var index = indexOfContains(query, inputs); - // are there any partial matches? - if (index !== -1) { - if (query !== toSolve) { - addToDefaultDict(joins, toSolve, getIndicesString(toSolve, query, start)); - } - // found a split - addToDefaultDict(splits, inputs[index], getIndicesString(inputs[index], query, 0)); - // we can match to this now - inputs.push(query); - gather(inputs, outputs, toSolve, end - 1, toSolve.length, splits, joins); - return; - } - // are there any output matches? - if (indexOfContains(query, outputs) !== -1) { - if (query !== toSolve) { - // add to join - addToDefaultDict(joins, toSolve, getIndicesString(toSolve, query, start)); - } - // gather without outputs - gather(inputs, [], query, 0, query.length, splits, joins); - inputs.push(query); - return; - } - gather(inputs, outputs, toSolve, start, start + query.slice(0, -1).lastIndexOf(',') + 1, splits, joins); - } - function removeDups(inStrs) { - var map = {}; - inStrs.forEach(function (str) { - map[str] = true; - }); - return _.keys(map); - } - exports.removeDups = removeDups; - - },{"./Cell":1,"./Skin":4,"lodash":68}],3:[function(require,module,exports){ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Port = void 0; - var Cell_1 = require("./Cell"); - var _ = require("lodash"); - var Port = /** @class */ (function () { - function Port(key, value) { - this.key = key; - this.value = value; - } - Object.defineProperty(Port.prototype, "Key", { - get: function () { - return this.key; - }, - enumerable: false, - configurable: true - }); - Port.prototype.keyIn = function (pids) { - return _.includes(pids, this.key); - }; - Port.prototype.maxVal = function () { - return _.max(_.map(this.value, function (v) { return Number(v); })); - }; - Port.prototype.valString = function () { - return ',' + this.value.join() + ','; - }; - Port.prototype.findConstants = function (sigsByConstantName, maxNum, constantCollector) { - var _this = this; - var constNameCollector = ''; - var constNumCollector = []; - var portSigs = this.value; - portSigs.forEach(function (portSig, portSigIndex) { - // is constant? - if (portSig === '0' || portSig === '1') { - maxNum += 1; - constNameCollector += portSig; - // replace the constant with new signal num - portSigs[portSigIndex] = maxNum; - constNumCollector.push(maxNum); - // string of constants ended before end of p.value - } - else if (constNumCollector.length > 0) { - _this.assignConstant(constNameCollector, constNumCollector, portSigIndex, sigsByConstantName, constantCollector); - // reset name and num collectors - constNameCollector = ''; - constNumCollector = []; - } - }); - if (constNumCollector.length > 0) { - this.assignConstant(constNameCollector, constNumCollector, portSigs.length, sigsByConstantName, constantCollector); - } - return maxNum; - }; - Port.prototype.getGenericElkPort = function (index, templatePorts, dir) { - var nkey = this.parentNode.Key; - var type = this.parentNode.getTemplate()[1]['s:type']; - if (index === 0) { - var ret = { - id: nkey + '.' + this.key, - width: 1, - height: 1, - x: Number(templatePorts[0][1]['s:x']), - y: Number(templatePorts[0][1]['s:y']), - }; - if ((type === 'generic' || type === 'join') && dir === 'in') { - ret.labels = [{ - id: nkey + '.' + this.key + '.label', - text: this.key, - x: Number(templatePorts[0][2][1].x) - 10, - y: Number(templatePorts[0][2][1].y) - 6, - width: (6 * this.key.length), - height: 11, - }]; - } - if ((type === 'generic' || type === 'split') && dir === 'out') { - ret.labels = [{ - id: nkey + '.' + this.key + '.label', - text: this.key, - x: Number(templatePorts[0][2][1].x) - 10, - y: Number(templatePorts[0][2][1].y) - 6, - width: (6 * this.key.length), - height: 11, - }]; - } - return ret; - } - else { - var gap = Number(templatePorts[1][1]['s:y']) - Number(templatePorts[0][1]['s:y']); - var ret = { - id: nkey + '.' + this.key, - width: 1, - height: 1, - x: Number(templatePorts[0][1]['s:x']), - y: (index) * gap + Number(templatePorts[0][1]['s:y']), - }; - if (type === 'generic') { - ret.labels = [{ - id: nkey + '.' + this.key + '.label', - text: this.key, - x: Number(templatePorts[0][2][1].x) - 10, - y: Number(templatePorts[0][2][1].y) - 6, - width: (6 * this.key.length), - height: 11, - }]; - } - return ret; - } - }; - Port.prototype.assignConstant = function (nameCollector, constants, currIndex, signalsByConstantName, constantCollector) { - var _this = this; - // we've been appending to nameCollector, so reverse to get const name - var constName = nameCollector.split('').reverse().join(''); - // if the constant has already been used - if (signalsByConstantName.hasOwnProperty(constName)) { - var constSigs = signalsByConstantName[constName]; - // go back and fix signal values - var constLength_1 = constSigs.length; - constSigs.forEach(function (constSig, constIndex) { - // i is where in port_signals we need to update - var i = currIndex - constLength_1 + constIndex; - _this.value[i] = constSig; - }); - } - else { - constantCollector.push(Cell_1.default.fromConstantInfo(constName, constants)); - signalsByConstantName[constName] = constants; - } - }; - return Port; - }()); - exports.Port = Port; - - },{"./Cell":1,"lodash":68}],4:[function(require,module,exports){ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Skin = void 0; - var onml = require("onml"); - var _ = require("lodash"); - var Skin; - (function (Skin) { - Skin.skin = null; - function getPortsWithPrefix(template, prefix) { - var ports = _.filter(template, function (e) { - try { - if (e instanceof Array && e[0] === 'g') { - return e[1]['s:pid'].startsWith(prefix); - } - } - catch (exception) { - // Do nothing if the SVG group doesn't have a pin id. - } - }); - return ports; - } - Skin.getPortsWithPrefix = getPortsWithPrefix; - function filterPortPids(template, filter) { - var ports = _.filter(template, function (element) { - var tag = element[0]; - if (element instanceof Array && tag === 'g') { - var attrs = element[1]; - return filter(attrs); - } - return false; - }); - return ports.map(function (port) { - return port[1]['s:pid']; - }); - } - function getInputPids(template) { - return filterPortPids(template, function (attrs) { - if (attrs['s:position']) { - return attrs['s:position'] === 'top'; - } - return false; - }); - } - Skin.getInputPids = getInputPids; - function getOutputPids(template) { - return filterPortPids(template, function (attrs) { - if (attrs['s:position']) { - return attrs['s:position'] === 'bottom'; - } - return false; - }); - } - Skin.getOutputPids = getOutputPids; - function getLateralPortPids(template) { - return filterPortPids(template, function (attrs) { - if (attrs['s:dir']) { - return attrs['s:dir'] === 'lateral'; - } - if (attrs['s:position']) { - return attrs['s:position'] === 'left' || - attrs['s:position'] === 'right'; - } - return false; - }); - } - Skin.getLateralPortPids = getLateralPortPids; - function findSkinType(type) { - var ret = null; - onml.traverse(Skin.skin, { - enter: function (node, parent) { - if (node.name === 's:alias' && node.attr.val === type) { - ret = parent; - } - }, - }); - if (ret == null) { - onml.traverse(Skin.skin, { - enter: function (node) { - if (node.attr['s:type'] === 'generic') { - ret = node; - } - }, - }); - } - return ret.full; - } - Skin.findSkinType = findSkinType; - function getLowPriorityAliases() { - var ret = []; - onml.t(Skin.skin, { - enter: function (node) { - if (node.name === 's:low_priority_alias') { - ret.push(node.attr.value); - } - }, - }); - return ret; - } - Skin.getLowPriorityAliases = getLowPriorityAliases; - function getProperties() { - var vals; - onml.t(Skin.skin, { - enter: function (node) { - if (node.name === 's:properties') { - vals = _.mapValues(node.attr, function (val) { - if (!isNaN(Number(val))) { - return Number(val); - } - if (val === 'true') { - return true; - } - if (val === 'false') { - return false; - } - return val; - }); - } - else if (node.name === 's:layoutEngine') { - vals.layoutEngine = node.attr; - } - }, - }); - if (!vals.layoutEngine) { - vals.layoutEngine = {}; - } - return vals; - } - Skin.getProperties = getProperties; - })(Skin = exports.Skin || (exports.Skin = {})); - exports.default = Skin; - - },{"lodash":68,"onml":69}],5:[function(require,module,exports){ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Yosys; - (function (Yosys) { - var ConstantVal; - (function (ConstantVal) { - ConstantVal["Zero"] = "0"; - ConstantVal["One"] = "1"; - ConstantVal["X"] = "x"; - })(ConstantVal || (ConstantVal = {})); - var Direction; - (function (Direction) { - Direction["Input"] = "input"; - Direction["Output"] = "output"; - })(Direction = Yosys.Direction || (Yosys.Direction = {})); - function getInputPortPids(cell) { - if (cell.port_directions) { - return Object.keys(cell.port_directions).filter(function (k) { - return cell.port_directions[k] === Direction.Input; - }); - } - return []; - } - Yosys.getInputPortPids = getInputPortPids; - function getOutputPortPids(cell) { - if (cell.port_directions) { - return Object.keys(cell.port_directions).filter(function (k) { - return cell.port_directions[k] === Direction.Output; - }); - } - return []; - } - Yosys.getOutputPortPids = getOutputPortPids; - var HideName; - (function (HideName) { - HideName[HideName["Hide"] = 0] = "Hide"; - HideName[HideName["NoHide"] = 1] = "NoHide"; - })(HideName || (HideName = {})); - })(Yosys || (Yosys = {})); - exports.default = Yosys; - - },{}],6:[function(require,module,exports){ - "use strict"; - var __spreadArrays = (this && this.__spreadArrays) || function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; - for (var r = Array(s), k = 0, i = 0; i < il; i++) - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) - r[k] = a[j]; - return r; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.removeDummyEdges = void 0; - var elkGraph_1 = require("./elkGraph"); - var Skin_1 = require("./Skin"); - var _ = require("lodash"); - var onml = require("onml"); - var WireDirection; - (function (WireDirection) { - WireDirection[WireDirection["Up"] = 0] = "Up"; - WireDirection[WireDirection["Down"] = 1] = "Down"; - WireDirection[WireDirection["Left"] = 2] = "Left"; - WireDirection[WireDirection["Right"] = 3] = "Right"; - })(WireDirection || (WireDirection = {})); - function drawModule(g, module) { - var nodes = module.nodes.map(function (n) { - var kchild = _.find(g.children, function (c) { return c.id === n.Key; }); - return n.render(kchild); - }); - removeDummyEdges(g); - var lines = _.flatMap(g.edges, function (e) { - var netId = elkGraph_1.ElkModel.wireNameLookup[e.id]; - var numWires = netId.split(',').length - 2; - var lineStyle = 'stroke-width: ' + (numWires > 1 ? 2 : 1); - var netName = 'net_' + netId.slice(1, netId.length - 1) + ' width_' + numWires; - return _.flatMap(e.sections, function (s) { - var startPoint = s.startPoint; - s.bendPoints = s.bendPoints || []; - var bends = s.bendPoints.map(function (b) { - var l = ['line', { - x1: startPoint.x, - x2: b.x, - y1: startPoint.y, - y2: b.y, - class: netName, - style: lineStyle, - }]; - startPoint = b; - return l; - }); - if (e.junctionPoints) { - var circles = e.junctionPoints.map(function (j) { - return ['circle', { - cx: j.x, - cy: j.y, - r: (numWires > 1 ? 3 : 2), - style: 'fill:#000', - class: netName, - }]; - }); - bends = bends.concat(circles); - } - var line = [['line', { - x1: startPoint.x, - x2: s.endPoint.x, - y1: startPoint.y, - y2: s.endPoint.y, - class: netName, - style: lineStyle, - }]]; - return bends.concat(line); - }); - }); - var labels; - for (var index in g.edges) { - if (g.edges.hasOwnProperty(index)) { - var e = g.edges[index]; - var netId = elkGraph_1.ElkModel.wireNameLookup[e.id]; - var numWires = netId.split(',').length - 2; - var netName = 'net_' + netId.slice(1, netId.length - 1) + - ' width_' + numWires + - ' busLabel_' + numWires; - if (e.labels !== undefined && - e.labels[0] !== undefined && - e.labels[0].text !== undefined) { - var label = [ - ['rect', - { - x: e.labels[0].x + 1, - y: e.labels[0].y - 1, - width: (e.labels[0].text.length + 2) * 6 - 2, - height: 9, - class: netName, - style: 'fill: white; stroke: none', - }, - ], ['text', - { - x: e.labels[0].x, - y: e.labels[0].y + 7, - class: netName, - }, - '/' + e.labels[0].text + '/', - ], - ]; - if (labels !== undefined) { - labels = labels.concat(label); - } - else { - labels = label; - } - } - } - } - if (labels !== undefined && labels.length > 0) { - lines = lines.concat(labels); - } - var svgAttrs = Skin_1.default.skin[1]; - svgAttrs.width = g.width.toString(); - svgAttrs.height = g.height.toString(); - var styles = ['style', {}, '']; - onml.t(Skin_1.default.skin, { - enter: function (node) { - if (node.name === 'style') { - styles[2] += node.full[2]; - } - }, - }); - var elements = __spreadArrays([styles], nodes, lines); - var ret = __spreadArrays(['svg', svgAttrs], elements); - return onml.s(ret); - } - exports.default = drawModule; - function which_dir(start, end) { - if (end.x === start.x && end.y === start.y) { - throw new Error('start and end are the same'); - } - if (end.x !== start.x && end.y !== start.y) { - throw new Error('start and end arent orthogonal'); - } - if (end.x > start.x) { - return WireDirection.Right; - } - if (end.x < start.x) { - return WireDirection.Left; - } - if (end.y > start.y) { - return WireDirection.Down; - } - if (end.y < start.y) { - return WireDirection.Up; - } - throw new Error('unexpected direction'); - } - function findBendNearDummy(net, dummyIsSource, dummyLoc) { - var candidates = net.map(function (edge) { - var bends = edge.sections[0].bendPoints || [null]; - if (dummyIsSource) { - return _.first(bends); - } - else { - return _.last(bends); - } - }).filter(function (p) { return p !== null; }); - return _.minBy(candidates, function (pt) { - return Math.abs(dummyLoc.x - pt.x) + Math.abs(dummyLoc.y - pt.y); - }); - } - function removeDummyEdges(g) { - // go through each edge group for each dummy - var dummyNum = 0; - var _loop_1 = function () { - var dummyId = '$d_' + String(dummyNum); - // find all edges connected to this dummy - var edgeGroup = _.filter(g.edges, function (e) { - return e.source === dummyId || e.target === dummyId; - }); - if (edgeGroup.length === 0) { - return "break"; - } - var dummyIsSource; - var dummyLoc = void 0; - var firstEdge = edgeGroup[0]; - if (firstEdge.source === dummyId) { - dummyIsSource = true; - dummyLoc = firstEdge.sections[0].startPoint; - } - else { - dummyIsSource = false; - dummyLoc = firstEdge.sections[0].endPoint; - } - var newEnd = findBendNearDummy(edgeGroup, dummyIsSource, dummyLoc); - for (var _i = 0, edgeGroup_1 = edgeGroup; _i < edgeGroup_1.length; _i++) { - var edge = edgeGroup_1[_i]; - var e = edge; - var section = e.sections[0]; - if (dummyIsSource) { - section.startPoint = newEnd; - if (section.bendPoints) { - section.bendPoints.shift(); - } - } - else { - section.endPoint = newEnd; - if (section.bendPoints) { - section.bendPoints.pop(); - } - } - } - // delete junction point if necessary - var directions = new Set(_.flatMap(edgeGroup, function (edge) { - var section = edge.sections[0]; - if (dummyIsSource) { - // get first bend or endPoint - if (section.bendPoints && section.bendPoints.length > 0) { - return [section.bendPoints[0]]; - } - return section.endPoint; - } - else { - if (section.bendPoints && section.bendPoints.length > 0) { - return [_.last(section.bendPoints)]; - } - return section.startPoint; - } - }).map(function (pt) { - if (pt.x > newEnd.x) { - return WireDirection.Right; - } - if (pt.x < newEnd.x) { - return WireDirection.Left; - } - if (pt.y > newEnd.y) { - return WireDirection.Down; - } - return WireDirection.Up; - })); - if (directions.size < 3) { - // remove junctions at newEnd - edgeGroup.forEach(function (edge) { - if (edge.junctionPoints) { - edge.junctionPoints = edge.junctionPoints.filter(function (junct) { - return !_.isEqual(junct, newEnd); - }); - } - }); - } - dummyNum += 1; - }; - // loop until we can't find an edge group or we hit 10,000 - while (dummyNum < 10000) { - var state_1 = _loop_1(); - if (state_1 === "break") - break; - } - } - exports.removeDummyEdges = removeDummyEdges; - - },{"./Skin":4,"./elkGraph":7,"lodash":68,"onml":69}],7:[function(require,module,exports){ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.buildElkGraph = exports.ElkModel = void 0; - var _ = require("lodash"); - var ElkModel; - (function (ElkModel) { - ElkModel.wireNameLookup = {}; - ElkModel.dummyNum = 0; - ElkModel.edgeIndex = 0; - })(ElkModel = exports.ElkModel || (exports.ElkModel = {})); - function buildElkGraph(module) { - var children = module.nodes.map(function (n) { - return n.buildElkChild(); - }); - ElkModel.edgeIndex = 0; - ElkModel.dummyNum = 0; - var edges = _.flatMap(module.wires, function (w) { - var numWires = w.netName.split(',').length - 2; - // at least one driver and at least one rider and no laterals - if (w.drivers.length > 0 && w.riders.length > 0 && w.laterals.length === 0) { - var ret = []; - route(w.drivers, w.riders, ret, numWires); - return ret; - // at least one driver or rider and at least one lateral - } - else if (w.drivers.concat(w.riders).length > 0 && w.laterals.length > 0) { - var ret = []; - route(w.drivers, w.laterals, ret, numWires); - route(w.laterals, w.riders, ret, numWires); - return ret; - // at least two drivers and no riders - } - else if (w.riders.length === 0 && w.drivers.length > 1) { - // create a dummy node and add it to children - var dummyId_1 = addDummy(children); - ElkModel.dummyNum += 1; - var dummyEdges = w.drivers.map(function (driver) { - var sourceParentKey = driver.parentNode.Key; - var id = 'e' + String(ElkModel.edgeIndex); - ElkModel.edgeIndex += 1; - var d = { - id: id, - source: sourceParentKey, - sourcePort: sourceParentKey + '.' + driver.key, - target: dummyId_1, - targetPort: dummyId_1 + '.p', - }; - ElkModel.wireNameLookup[id] = driver.wire.netName; - return d; - }); - return dummyEdges; - // at least one rider and no drivers - } - else if (w.riders.length > 1 && w.drivers.length === 0) { - // create a dummy node and add it to children - var dummyId_2 = addDummy(children); - ElkModel.dummyNum += 1; - var dummyEdges = w.riders.map(function (rider) { - var sourceParentKey = rider.parentNode.Key; - var id = 'e' + String(ElkModel.edgeIndex); - ElkModel.edgeIndex += 1; - var edge = { - id: id, - source: dummyId_2, - sourcePort: dummyId_2 + '.p', - target: sourceParentKey, - targetPort: sourceParentKey + '.' + rider.key, - }; - ElkModel.wireNameLookup[id] = rider.wire.netName; - return edge; - }); - return dummyEdges; - } - else if (w.laterals.length > 1) { - var source_1 = w.laterals[0]; - var sourceParentKey_1 = source_1.parentNode.Key; - var lateralEdges = w.laterals.slice(1).map(function (lateral) { - var lateralParentKey = lateral.parentNode.Key; - var id = 'e' + String(ElkModel.edgeIndex); - ElkModel.edgeIndex += 1; - var edge = { - id: id, - source: sourceParentKey_1, - sourcePort: sourceParentKey_1 + '.' + source_1.key, - target: lateralParentKey, - targetPort: lateralParentKey + '.' + lateral.key, - }; - ElkModel.wireNameLookup[id] = lateral.wire.netName; - return edge; - }); - return lateralEdges; - } - // for only one driver or only one rider, don't create any edges - return []; - }); - return { - id: module.moduleName, - children: children, - edges: edges, - }; - } - exports.buildElkGraph = buildElkGraph; - function addDummy(children) { - var dummyId = '$d_' + String(ElkModel.dummyNum); - var child = { - id: dummyId, - width: 0, - height: 0, - ports: [{ - id: dummyId + '.p', - width: 0, - height: 0, - }], - layoutOptions: { 'org.eclipse.elk.portConstraints': 'FIXED_SIDE' }, - }; - children.push(child); - return dummyId; - } - function route(sourcePorts, targetPorts, edges, numWires) { - var newEdges = (_.flatMap(sourcePorts, function (sourcePort) { - var sourceParentKey = sourcePort.parentNode.key; - var sourceKey = sourceParentKey + '.' + sourcePort.key; - var edgeLabel; - if (numWires > 1) { - edgeLabel = [{ - id: '', - text: String(numWires), - width: 4, - height: 6, - x: 0, - y: 0, - layoutOptions: { - 'org.eclipse.elk.edgeLabels.inline': true, - }, - }]; - } - return targetPorts.map(function (targetPort) { - var targetParentKey = targetPort.parentNode.key; - var targetKey = targetParentKey + '.' + targetPort.key; - var id = 'e' + ElkModel.edgeIndex; - var edge = { - id: id, - labels: edgeLabel, - sources: [sourceKey], - targets: [targetKey], - }; - ElkModel.wireNameLookup[id] = targetPort.wire.netName; - if (sourcePort.parentNode.type !== '$dff') { - edge.layoutOptions = { 'org.eclipse.elk.layered.priority.direction': 10, - 'org.eclipse.elk.edge.thickness': (numWires > 1 ? 2 : 1) }; - } - else { - edge.layoutOptions = { 'org.eclipse.elk.edge.thickness': (numWires > 1 ? 2 : 1) }; - } - ElkModel.edgeIndex += 1; - return edge; - }); - })); - edges.push.apply(edges, newEdges); - } - - },{"lodash":68}],8:[function(require,module,exports){ - (function (global){(function (){ - 'use strict'; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.render = exports.dumpLayout = void 0; - var ELK = (typeof window !== "undefined" ? window['ELK'] : typeof global !== "undefined" ? global['ELK'] : null); - var onml = require("onml"); - var FlatModule_1 = require("./FlatModule"); - var Skin_1 = require("./Skin"); - var elkGraph_1 = require("./elkGraph"); - var drawModule_1 = require("./drawModule"); - var elk = new ELK(); - function createFlatModule(skinData, yosysNetlist) { - Skin_1.default.skin = onml.p(skinData); - var layoutProps = Skin_1.default.getProperties(); - var flatModule = new FlatModule_1.FlatModule(yosysNetlist); - // this can be skipped if there are no 0's or 1's - if (layoutProps.constants !== false) { - flatModule.addConstants(); - } - // this can be skipped if there are no splits or joins - if (layoutProps.splitsAndJoins !== false) { - flatModule.addSplitsJoins(); - } - flatModule.createWires(); - return flatModule; - } - function dumpLayout(skinData, yosysNetlist, prelayout, done) { - var flatModule = createFlatModule(skinData, yosysNetlist); - var kgraph = elkGraph_1.buildElkGraph(flatModule); - if (prelayout) { - done(null, JSON.stringify(kgraph, null, 2)); - return; - } - var layoutProps = Skin_1.default.getProperties(); - var promise = elk.layout(kgraph, { layoutOptions: layoutProps.layoutEngine }); - promise.then(function (graph) { - done(null, JSON.stringify(graph, null, 2)); - }).catch(function (reason) { - throw Error(reason); - }); - } - exports.dumpLayout = dumpLayout; - function render(skinData, yosysNetlist, done, elkData) { - var flatModule = createFlatModule(skinData, yosysNetlist); - var kgraph = elkGraph_1.buildElkGraph(flatModule); - var layoutProps = Skin_1.default.getProperties(); - var promise; - // if we already have a layout then use it - if (elkData) { - promise = new Promise(function (resolve) { - drawModule_1.default(elkData, flatModule); - resolve(); - }); - } - else { - // otherwise use ELK to generate the layout - promise = elk.layout(kgraph, { layoutOptions: layoutProps.layoutEngine }) - .then(function (g) { return drawModule_1.default(g, flatModule); }) - // tslint:disable-next-line:no-console - .catch(function (e) { console.error(e); }); - } - // support legacy callback style - if (typeof done === 'function') { - promise.then(function (output) { - done(null, output); - return output; - }).catch(function (reason) { - throw Error(reason); - }); - } - return promise; - } - exports.render = render; - - }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) - },{"./FlatModule":2,"./Skin":4,"./drawModule":6,"./elkGraph":7,"onml":69}],9:[function(require,module,exports){ - (function (Buffer){(function (){ - const lib = require('../built'); - - const json5 = require('json5'); - const Ajv = require('ajv'); - var ajv = new Ajv({allErrors: true, jsonPointers: true}); - require('ajv-errors')(ajv); - - const digital = "\n \n \n \n \n\n \n \n \n \n\n \n\n 1\n 0\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n\n 1\n 0\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n\n \n \n \n \n\n \n \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n\n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n \n \n\n \n \n\n \n \n \n\n \n \n\n \n \n \n\n \n \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n\n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n\n \n \n \n\n \n \n \n \n\n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n\n \n \n \n\n \n \n \n \n\n \n input\n \n \n \n \n\n \n constant\n\n \n \n\n \n \n\n \n output\n \n \n\n \n \n\n \n \n \n\n \n \n hi:lo\n \n \n hi:lo\n \n \n\n \n \n \n \n \n hi:lo\n \n \n hi:lo\n \n \n\n \n \n\n generic\n \n\n \n out0\n \n \n out1\n \n \n in0\n \n \n in1\n \n \n\n\n"; - const analog = "\n \n \n \n\n\n\n\n \n name\n \n \n\n\n\n\t \n\t name\n\t \n\t \n\t\n\n\n \n name\n \n \n\n\n\n\n\n input\n \n \n \n\n\n\n output\n \n \n \n\n\n\n\n\n \n X1\n Xk\n \n \n \n \n\n\n\n \n X1\n Xk\n \n \n \n \n\n\n\n \n X1\n Xu\n \n \n \n \n\n\n\n \n X1\n Xu\n \n \n \n \n\n\n\n \n X1\n XpF\n \n \n \n \n\n\n\n \n X1\n XpF\n \n \n \n \n\n\n\n\n\n \n X1\n XV\n \n \n \n \n \n\n\n\n \n X1\n XA\n \n \n \n \n \n\n\n\n\n\n \n X1\n \n \n \n \n\n\n\n \n X1\n \n \n \n \n\n\n\n \n X1\n \n \n \n \n \n \n\n\n\n \n X1\n \n \n \n \n \n \n\n\n\n \n X1\n \n \n \n \n \n \n \n \n \n\n\n\n \n X1\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n \n X1\n \n \n \n \n \n \n \n \n \n\n\n\n \n X1\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n generic\n \n \n out0\n \n \n out1\n \n \n in0\n \n \n in1\n \n\n\n\n\n\n \n X1\n \n \n \n \n \n \n \n \n \n\n\n\n \n X1\n \n \n \n \n\n\n\n \n X1\n \n \n \n \n \n \n \n \n\n\n\n"; - const exampleDigital = Buffer("ewogICJjcmVhdG9yIjogIllvc3lzIDAuNSsyMjAgKGdpdCBzaGExIDk0ZmJhZmYsIGVtY2MgIC1PcykiLAogICJtb2R1bGVzIjogewogICAgInVwM2Rvd241IjogewogICAgICAicG9ydHMiOiB7CiAgICAgICAgImNsb2NrIjogewogICAgICAgICAgImRpcmVjdGlvbiI6ICJpbnB1dCIsCiAgICAgICAgICAiYml0cyI6IFsgMiBdCiAgICAgICAgfSwKICAgICAgICAiZGF0YV9pbiI6IHsKICAgICAgICAgICJkaXJlY3Rpb24iOiAiaW5wdXQiLAogICAgICAgICAgImJpdHMiOiBbIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSBdCiAgICAgICAgfSwKICAgICAgICAidXAiOiB7CiAgICAgICAgICAiZGlyZWN0aW9uIjogImlucHV0IiwKICAgICAgICAgICJiaXRzIjogWyAxMiBdCiAgICAgICAgfSwKICAgICAgICAiZG93biI6IHsKICAgICAgICAgICJkaXJlY3Rpb24iOiAiaW5wdXQiLAogICAgICAgICAgImJpdHMiOiBbIDEzIF0KICAgICAgICB9LAogICAgICAgICJjYXJyeV9vdXQiOiB7CiAgICAgICAgICAiZGlyZWN0aW9uIjogIm91dHB1dCIsCiAgICAgICAgICAiYml0cyI6IFsgMTQgXQogICAgICAgIH0sCiAgICAgICAgImJvcnJvd19vdXQiOiB7CiAgICAgICAgICAiZGlyZWN0aW9uIjogIm91dHB1dCIsCiAgICAgICAgICAiYml0cyI6IFsgMTUgXQogICAgICAgIH0sCiAgICAgICAgImNvdW50X291dCI6IHsKICAgICAgICAgICJkaXJlY3Rpb24iOiAib3V0cHV0IiwKICAgICAgICAgICJiaXRzIjogWyAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0IF0KICAgICAgICB9LAogICAgICAgICJwYXJpdHlfb3V0IjogewogICAgICAgICAgImRpcmVjdGlvbiI6ICJvdXRwdXQiLAogICAgICAgICAgImJpdHMiOiBbIDI1IF0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJjZWxscyI6IHsKICAgICAgICAiJGFkZCRpbnB1dC52OjE3JDMiOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMSwKICAgICAgICAgICJ0eXBlIjogIiRhZGQiLAogICAgICAgICAgInBhcmFtZXRlcnMiOiB7CiAgICAgICAgICAgICJBX1NJR05FRCI6IDAsCiAgICAgICAgICAgICJBX1dJRFRIIjogOSwKICAgICAgICAgICAgIkJfU0lHTkVEIjogMCwKICAgICAgICAgICAgIkJfV0lEVEgiOiAyLAogICAgICAgICAgICAiWV9XSURUSCI6IDEwCiAgICAgICAgICB9LAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICJzcmMiOiAiaW5wdXQudjoxNyIKICAgICAgICAgIH0sCiAgICAgICAgICAicG9ydF9kaXJlY3Rpb25zIjogewogICAgICAgICAgICAiQSI6ICJpbnB1dCIsCiAgICAgICAgICAgICJCIjogImlucHV0IiwKICAgICAgICAgICAgIlkiOiAib3V0cHV0IgogICAgICAgICAgfSwKICAgICAgICAgICJjb25uZWN0aW9ucyI6IHsKICAgICAgICAgICAgIkEiOiBbIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQgXSwKICAgICAgICAgICAgIkIiOiBbICIxIiwgIjEiIF0sCiAgICAgICAgICAgICJZIjogWyAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSBdCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiJGFuZCRpbnB1dC52OjI4JDUiOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMSwKICAgICAgICAgICJ0eXBlIjogIiRhbmQiLAogICAgICAgICAgInBhcmFtZXRlcnMiOiB7CiAgICAgICAgICAgICJBX1NJR05FRCI6IDAsCiAgICAgICAgICAgICJBX1dJRFRIIjogMSwKICAgICAgICAgICAgIkJfU0lHTkVEIjogMCwKICAgICAgICAgICAgIkJfV0lEVEgiOiAxLAogICAgICAgICAgICAiWV9XSURUSCI6IDEKICAgICAgICAgIH0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInNyYyI6ICJpbnB1dC52OjI4IgogICAgICAgICAgfSwKICAgICAgICAgICJwb3J0X2RpcmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogImlucHV0IiwKICAgICAgICAgICAgIkIiOiAiaW5wdXQiLAogICAgICAgICAgICAiWSI6ICJvdXRwdXQiCiAgICAgICAgICB9LAogICAgICAgICAgImNvbm5lY3Rpb25zIjogewogICAgICAgICAgICAiQSI6IFsgMTIgXSwKICAgICAgICAgICAgIkIiOiBbIDM1IF0sCiAgICAgICAgICAgICJZIjogWyAzNiBdCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiJGFuZCRpbnB1dC52OjI5JDYiOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMSwKICAgICAgICAgICJ0eXBlIjogIiRhbmQiLAogICAgICAgICAgInBhcmFtZXRlcnMiOiB7CiAgICAgICAgICAgICJBX1NJR05FRCI6IDAsCiAgICAgICAgICAgICJBX1dJRFRIIjogMSwKICAgICAgICAgICAgIkJfU0lHTkVEIjogMCwKICAgICAgICAgICAgIkJfV0lEVEgiOiAxLAogICAgICAgICAgICAiWV9XSURUSCI6IDEKICAgICAgICAgIH0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInNyYyI6ICJpbnB1dC52OjI5IgogICAgICAgICAgfSwKICAgICAgICAgICJwb3J0X2RpcmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogImlucHV0IiwKICAgICAgICAgICAgIkIiOiAiaW5wdXQiLAogICAgICAgICAgICAiWSI6ICJvdXRwdXQiCiAgICAgICAgICB9LAogICAgICAgICAgImNvbm5lY3Rpb25zIjogewogICAgICAgICAgICAiQSI6IFsgMTMgXSwKICAgICAgICAgICAgIkIiOiBbIDM3IF0sCiAgICAgICAgICAgICJZIjogWyAzOCBdCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiJHByb2NkZmYkNDAiOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMSwKICAgICAgICAgICJ0eXBlIjogIiRkZmYiLAogICAgICAgICAgInBhcmFtZXRlcnMiOiB7CiAgICAgICAgICAgICJDTEtfUE9MQVJJVFkiOiAxLAogICAgICAgICAgICAiV0lEVEgiOiA5CiAgICAgICAgICB9LAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICJzcmMiOiAiaW5wdXQudjoxNCIKICAgICAgICAgIH0sCiAgICAgICAgICAicG9ydF9kaXJlY3Rpb25zIjogewogICAgICAgICAgICAiQ0xLIjogImlucHV0IiwKICAgICAgICAgICAgIkQiOiAiaW5wdXQiLAogICAgICAgICAgICAiUSI6ICJvdXRwdXQiCiAgICAgICAgICB9LAogICAgICAgICAgImNvbm5lY3Rpb25zIjogewogICAgICAgICAgICAiQ0xLIjogWyAyIF0sCiAgICAgICAgICAgICJEIjogWyAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3IF0sCiAgICAgICAgICAgICJRIjogWyAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0IF0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICIkcHJvY2RmZiQ0MSI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAxLAogICAgICAgICAgInR5cGUiOiAiJGRmZiIsCiAgICAgICAgICAicGFyYW1ldGVycyI6IHsKICAgICAgICAgICAgIkNMS19QT0xBUklUWSI6IDEsCiAgICAgICAgICAgICJXSURUSCI6IDEKICAgICAgICAgIH0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInNyYyI6ICJpbnB1dC52OjE0IgogICAgICAgICAgfSwKICAgICAgICAgICJwb3J0X2RpcmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJDTEsiOiAiaW5wdXQiLAogICAgICAgICAgICAiRCI6ICJpbnB1dCIsCiAgICAgICAgICAgICJRIjogIm91dHB1dCIKICAgICAgICAgIH0sCiAgICAgICAgICAiY29ubmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJDTEsiOiBbIDIgXSwKICAgICAgICAgICAgIkQiOiBbIDM2IF0sCiAgICAgICAgICAgICJRIjogWyAxNCBdCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiJHByb2NkZmYkNDIiOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMSwKICAgICAgICAgICJ0eXBlIjogIiRkZmYiLAogICAgICAgICAgInBhcmFtZXRlcnMiOiB7CiAgICAgICAgICAgICJDTEtfUE9MQVJJVFkiOiAxLAogICAgICAgICAgICAiV0lEVEgiOiAxCiAgICAgICAgICB9LAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICJzcmMiOiAiaW5wdXQudjoxNCIKICAgICAgICAgIH0sCiAgICAgICAgICAicG9ydF9kaXJlY3Rpb25zIjogewogICAgICAgICAgICAiQ0xLIjogImlucHV0IiwKICAgICAgICAgICAgIkQiOiAiaW5wdXQiLAogICAgICAgICAgICAiUSI6ICJvdXRwdXQiCiAgICAgICAgICB9LAogICAgICAgICAgImNvbm5lY3Rpb25zIjogewogICAgICAgICAgICAiQ0xLIjogWyAyIF0sCiAgICAgICAgICAgICJEIjogWyAzOCBdLAogICAgICAgICAgICAiUSI6IFsgMTUgXQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIiRwcm9jZGZmJDQzIjogewogICAgICAgICAgImhpZGVfbmFtZSI6IDEsCiAgICAgICAgICAidHlwZSI6ICIkZGZmIiwKICAgICAgICAgICJwYXJhbWV0ZXJzIjogewogICAgICAgICAgICAiQ0xLX1BPTEFSSVRZIjogMSwKICAgICAgICAgICAgIldJRFRIIjogMQogICAgICAgICAgfSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgICAic3JjIjogImlucHV0LnY6MTQiCiAgICAgICAgICB9LAogICAgICAgICAgInBvcnRfZGlyZWN0aW9ucyI6IHsKICAgICAgICAgICAgIkNMSyI6ICJpbnB1dCIsCiAgICAgICAgICAgICJEIjogImlucHV0IiwKICAgICAgICAgICAgIlEiOiAib3V0cHV0IgogICAgICAgICAgfSwKICAgICAgICAgICJjb25uZWN0aW9ucyI6IHsKICAgICAgICAgICAgIkNMSyI6IFsgMiBdLAogICAgICAgICAgICAiRCI6IFsgNDggXSwKICAgICAgICAgICAgIlEiOiBbIDI1IF0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICIkcHJvY211eCQzNiI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAxLAogICAgICAgICAgInR5cGUiOiAiJHBtdXgiLAogICAgICAgICAgInBhcmFtZXRlcnMiOiB7CiAgICAgICAgICAgICJTX1dJRFRIIjogMywKICAgICAgICAgICAgIldJRFRIIjogOQogICAgICAgICAgfSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgfSwKICAgICAgICAgICJwb3J0X2RpcmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogImlucHV0IiwKICAgICAgICAgICAgIkIiOiAiaW5wdXQiLAogICAgICAgICAgICAiUyI6ICJpbnB1dCIsCiAgICAgICAgICAgICJZIjogIm91dHB1dCIKICAgICAgICAgIH0sCiAgICAgICAgICAiY29ubmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogWyAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0IF0sCiAgICAgICAgICAgICJCIjogWyAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEgXSwKICAgICAgICAgICAgIlMiOiBbIDU4LCA1OSwgNjAgXSwKICAgICAgICAgICAgIlkiOiBbIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcgXQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIiRwcm9jbXV4JDM3X0NNUDAiOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMSwKICAgICAgICAgICJ0eXBlIjogIiRlcSIsCiAgICAgICAgICAicGFyYW1ldGVycyI6IHsKICAgICAgICAgICAgIkFfU0lHTkVEIjogMCwKICAgICAgICAgICAgIkFfV0lEVEgiOiAyLAogICAgICAgICAgICAiQl9TSUdORUQiOiAwLAogICAgICAgICAgICAiQl9XSURUSCI6IDIsCiAgICAgICAgICAgICJZX1dJRFRIIjogMQogICAgICAgICAgfSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgfSwKICAgICAgICAgICJwb3J0X2RpcmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogImlucHV0IiwKICAgICAgICAgICAgIkIiOiAiaW5wdXQiLAogICAgICAgICAgICAiWSI6ICJvdXRwdXQiCiAgICAgICAgICB9LAogICAgICAgICAgImNvbm5lY3Rpb25zIjogewogICAgICAgICAgICAiQSI6IFsgMTMsIDEyIF0sCiAgICAgICAgICAgICJCIjogWyAiMCIsICIxIiBdLAogICAgICAgICAgICAiWSI6IFsgNTggXQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIiRwcm9jbXV4JDM4X0NNUDAiOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMSwKICAgICAgICAgICJ0eXBlIjogIiRlcSIsCiAgICAgICAgICAicGFyYW1ldGVycyI6IHsKICAgICAgICAgICAgIkFfU0lHTkVEIjogMCwKICAgICAgICAgICAgIkFfV0lEVEgiOiAyLAogICAgICAgICAgICAiQl9TSUdORUQiOiAwLAogICAgICAgICAgICAiQl9XSURUSCI6IDIsCiAgICAgICAgICAgICJZX1dJRFRIIjogMQogICAgICAgICAgfSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgfSwKICAgICAgICAgICJwb3J0X2RpcmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogImlucHV0IiwKICAgICAgICAgICAgIkIiOiAiaW5wdXQiLAogICAgICAgICAgICAiWSI6ICJvdXRwdXQiCiAgICAgICAgICB9LAogICAgICAgICAgImNvbm5lY3Rpb25zIjogewogICAgICAgICAgICAiQSI6IFsgMTMsIDEyIF0sCiAgICAgICAgICAgICJCIjogWyAiMSIsICIwIiBdLAogICAgICAgICAgICAiWSI6IFsgNTkgXQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIiRwcm9jbXV4JDM5X0NNUDAiOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMSwKICAgICAgICAgICJ0eXBlIjogIiRlcSIsCiAgICAgICAgICAicGFyYW1ldGVycyI6IHsKICAgICAgICAgICAgIkFfU0lHTkVEIjogMCwKICAgICAgICAgICAgIkFfV0lEVEgiOiAyLAogICAgICAgICAgICAiQl9TSUdORUQiOiAwLAogICAgICAgICAgICAiQl9XSURUSCI6IDIsCiAgICAgICAgICAgICJZX1dJRFRIIjogMQogICAgICAgICAgfSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgfSwKICAgICAgICAgICJwb3J0X2RpcmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogImlucHV0IiwKICAgICAgICAgICAgIkIiOiAiaW5wdXQiLAogICAgICAgICAgICAiWSI6ICJvdXRwdXQiCiAgICAgICAgICB9LAogICAgICAgICAgImNvbm5lY3Rpb25zIjogewogICAgICAgICAgICAiQSI6IFsgMTMsIDEyIF0sCiAgICAgICAgICAgICJCIjogWyAiMCIsICIwIiBdLAogICAgICAgICAgICAiWSI6IFsgNjAgXQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIiRyZWR1Y2VfeG9yJGlucHV0LnY6MjckNCI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAxLAogICAgICAgICAgInR5cGUiOiAiJHJlZHVjZV94b3IiLAogICAgICAgICAgInBhcmFtZXRlcnMiOiB7CiAgICAgICAgICAgICJBX1NJR05FRCI6IDAsCiAgICAgICAgICAgICJBX1dJRFRIIjogOSwKICAgICAgICAgICAgIllfV0lEVEgiOiAxCiAgICAgICAgICB9LAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICJzcmMiOiAiaW5wdXQudjoyNyIKICAgICAgICAgIH0sCiAgICAgICAgICAicG9ydF9kaXJlY3Rpb25zIjogewogICAgICAgICAgICAiQSI6ICJpbnB1dCIsCiAgICAgICAgICAgICJZIjogIm91dHB1dCIKICAgICAgICAgIH0sCiAgICAgICAgICAiY29ubmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogWyAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3IF0sCiAgICAgICAgICAgICJZIjogWyA0OCBdCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiJHN1YiRpbnB1dC52OjE2JDIiOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMSwKICAgICAgICAgICJ0eXBlIjogIiRzdWIiLAogICAgICAgICAgInBhcmFtZXRlcnMiOiB7CiAgICAgICAgICAgICJBX1NJR05FRCI6IDAsCiAgICAgICAgICAgICJBX1dJRFRIIjogOSwKICAgICAgICAgICAgIkJfU0lHTkVEIjogMCwKICAgICAgICAgICAgIkJfV0lEVEgiOiAzLAogICAgICAgICAgICAiWV9XSURUSCI6IDEwCiAgICAgICAgICB9LAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICJzcmMiOiAiaW5wdXQudjoxNiIKICAgICAgICAgIH0sCiAgICAgICAgICAicG9ydF9kaXJlY3Rpb25zIjogewogICAgICAgICAgICAiQSI6ICJpbnB1dCIsCiAgICAgICAgICAgICJCIjogImlucHV0IiwKICAgICAgICAgICAgIlkiOiAib3V0cHV0IgogICAgICAgICAgfSwKICAgICAgICAgICJjb25uZWN0aW9ucyI6IHsKICAgICAgICAgICAgIkEiOiBbIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQgXSwKICAgICAgICAgICAgIkIiOiBbICIxIiwgIjAiLCAiMSIgXSwKICAgICAgICAgICAgIlkiOiBbIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDM3IF0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJuZXRuYW1lcyI6IHsKICAgICAgICAiJDBcXGJvcnJvd19vdXRbMDowXSI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAxLAogICAgICAgICAgImJpdHMiOiBbIDM4IF0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInNyYyI6ICJpbnB1dC52OjE0IgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIiQwXFxjYXJyeV9vdXRbMDowXSI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAxLAogICAgICAgICAgImJpdHMiOiBbIDM2IF0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInNyYyI6ICJpbnB1dC52OjE0IgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIiQwXFxjbnRfZG5bOTowXSI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAxLAogICAgICAgICAgImJpdHMiOiBbIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDM3IF0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInNyYyI6ICJpbnB1dC52OjE0IgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIiQwXFxjbnRfdXBbOTowXSI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAxLAogICAgICAgICAgImJpdHMiOiBbIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1IF0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInNyYyI6ICJpbnB1dC52OjE0IgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIiQwXFxjb3VudF9vdXRbODowXSI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAxLAogICAgICAgICAgImJpdHMiOiBbIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcgXSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgICAic3JjIjogImlucHV0LnY6MTQiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiJDBcXHBhcml0eV9vdXRbMDowXSI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAxLAogICAgICAgICAgImJpdHMiOiBbIDQ4IF0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInNyYyI6ICJpbnB1dC52OjE0IgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIiRwcm9jbXV4JDM3X0NNUCI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAxLAogICAgICAgICAgImJpdHMiOiBbIDU4IF0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICIkcHJvY211eCQzOF9DTVAiOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMSwKICAgICAgICAgICJiaXRzIjogWyA1OSBdLAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiJHByb2NtdXgkMzlfQ01QIjogewogICAgICAgICAgImhpZGVfbmFtZSI6IDEsCiAgICAgICAgICAiYml0cyI6IFsgNjAgXSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImJvcnJvd19vdXQiOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMCwKICAgICAgICAgICJiaXRzIjogWyAxNSBdLAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICJzcmMiOiAiaW5wdXQudjo5IgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImNhcnJ5X291dCI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAwLAogICAgICAgICAgImJpdHMiOiBbIDE0IF0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInNyYyI6ICJpbnB1dC52OjkiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiY2xvY2siOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMCwKICAgICAgICAgICJiaXRzIjogWyAyIF0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInNyYyI6ICJpbnB1dC52OjYiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiY291bnRfb3V0IjogewogICAgICAgICAgImhpZGVfbmFtZSI6IDAsCiAgICAgICAgICAiYml0cyI6IFsgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCBdLAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICJzcmMiOiAiaW5wdXQudjo4IgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImRhdGFfaW4iOiB7CiAgICAgICAgICAiaGlkZV9uYW1lIjogMCwKICAgICAgICAgICJiaXRzIjogWyAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEgXSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgICAic3JjIjogImlucHV0LnY6NSIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJkb3duIjogewogICAgICAgICAgImhpZGVfbmFtZSI6IDAsCiAgICAgICAgICAiYml0cyI6IFsgMTMgXSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgICAic3JjIjogImlucHV0LnY6NiIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJwYXJpdHlfb3V0IjogewogICAgICAgICAgImhpZGVfbmFtZSI6IDAsCiAgICAgICAgICAiYml0cyI6IFsgMjUgXSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgICAic3JjIjogImlucHV0LnY6OSIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJ1cCI6IHsKICAgICAgICAgICJoaWRlX25hbWUiOiAwLAogICAgICAgICAgImJpdHMiOiBbIDEyIF0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInNyYyI6ICJpbnB1dC52OjYiCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQp9","base64"); - const exampleAnalog = Buffer("ewogICJtb2R1bGVzIjogewogICAgInJlc2lzdG9yX2RpdmlkZXIiOiB7CiAgICAgICJwb3J0cyI6IHsKICAgICAgICAiQSI6IHsKICAgICAgICAgICJkaXJlY3Rpb24iOiAiaW5wdXQiLAogICAgICAgICAgImJpdHMiOiBbMl0KICAgICAgICB9LAogICAgICAgICJCIjogewogICAgICAgICAgImRpcmVjdGlvbiI6ICJpbnB1dCIsCiAgICAgICAgICAiYml0cyI6IFszXQogICAgICAgIH0sCiAgICAgICAgIkEgQU5EIEIiOiB7CiAgICAgICAgICAiZGlyZWN0aW9uIjogIm91dHB1dCIsCiAgICAgICAgICAiYml0cyI6IFs0XQogICAgICAgIH0KICAgICAgfSwKICAgICAgImNlbGxzIjogewogICAgICAgICJSMSI6IHsKICAgICAgICAgICJ0eXBlIjogInJfdiIsCiAgICAgICAgICAiY29ubmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogWzJdLAogICAgICAgICAgICAiQiI6IFs1XQogICAgICAgICAgfSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgICAidmFsdWUiOiIxMGsiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiUjIiOiB7CiAgICAgICAgICAidHlwZSI6ICJyX3YiLAogICAgICAgICAgImNvbm5lY3Rpb25zIjogewogICAgICAgICAgICAiQSI6IFszXSwKICAgICAgICAgICAgIkIiOiBbNV0KICAgICAgICAgIH0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInZhbHVlIjoiMTBrIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIlExIjogewogICAgICAgICAgInR5cGUiOiAicV9wbnAiLAogICAgICAgICAgInBvcnRfZGlyZWN0aW9ucyI6IHsKICAgICAgICAgICAgIkMiOiAiaW5wdXQiLAogICAgICAgICAgICAiQiI6ICJpbnB1dCIsCiAgICAgICAgICAgICJFIjogIm91dHB1dCIKICAgICAgICAgIH0sCiAgICAgICAgICAiY29ubmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJDIjogWzZdLAogICAgICAgICAgICAiQiI6IFs1XSwKICAgICAgICAgICAgIkUiOiBbN10KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJSMyI6IHsKICAgICAgICAgICJ0eXBlIjogInJfdiIsCiAgICAgICAgICAiY29ubmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogWzddLAogICAgICAgICAgICAiQiI6IFs4XQogICAgICAgICAgfSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgICAidmFsdWUiOiIxMGsiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiUjQiOiB7CiAgICAgICAgICAidHlwZSI6ICJyX3YiLAogICAgICAgICAgImNvbm5lY3Rpb25zIjogewogICAgICAgICAgICAiQSI6IFs3XSwKICAgICAgICAgICAgIkIiOiBbOV0KICAgICAgICAgIH0sCiAgICAgICAgICAiYXR0cmlidXRlcyI6IHsKICAgICAgICAgICAgInZhbHVlIjoiMTBrIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgIlI1IjogewogICAgICAgICAgInR5cGUiOiAicl92IiwKICAgICAgICAgICJjb25uZWN0aW9ucyI6IHsKICAgICAgICAgICAgIkEiOiBbNF0sCiAgICAgICAgICAgICJCIjogWzEyXQogICAgICAgICAgfSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgICAidmFsdWUiOiIxMGsiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiUTIiOiB7CiAgICAgICAgICAidHlwZSI6ICJxX3BucCIsCiAgICAgICAgICAicG9ydF9kaXJlY3Rpb25zIjogewogICAgICAgICAgICAiQyI6ICJpbnB1dCIsCiAgICAgICAgICAgICJCIjogImlucHV0IiwKICAgICAgICAgICAgIkUiOiAib3V0cHV0IgogICAgICAgICAgfSwKICAgICAgICAgICJjb25uZWN0aW9ucyI6IHsKICAgICAgICAgICAgIkMiOiBbMTBdLAogICAgICAgICAgICAiQiI6IFs5XSwKICAgICAgICAgICAgIkUiOiBbNF0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJ2Y2MiOiB7CiAgICAgICAgICAidHlwZSI6ICJ2Y2MiLAogICAgICAgICAgImNvbm5lY3Rpb25zIjogewogICAgICAgICAgICAiQSI6IFs2XQogICAgICAgICAgfSwKICAgICAgICAgICJhdHRyaWJ1dGVzIjogewogICAgICAgICAgICAibmFtZSI6IlZDQyIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJ2Y2MyIjogewogICAgICAgICAgInR5cGUiOiAidmNjIiwKICAgICAgICAgICJjb25uZWN0aW9ucyI6IHsKICAgICAgICAgICAgIkEiOiBbMTBdCiAgICAgICAgICB9LAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICJuYW1lIjoiVkNDIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImduZCI6IHsKICAgICAgICAgICJ0eXBlIjogImduZCIsCiAgICAgICAgICAicG9ydF9kaXJlY3Rpb25zIjogewogICAgICAgICAgICAiQSI6ICJpbnB1dCIKICAgICAgICAgIH0sCiAgICAgICAgICAiY29ubmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogWzhdCiAgICAgICAgICB9LAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICJuYW1lIjoiREdORCIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJnbmQyIjogewogICAgICAgICAgInR5cGUiOiAiZ25kIiwKICAgICAgICAgICJwb3J0X2RpcmVjdGlvbnMiOiB7CiAgICAgICAgICAgICJBIjogImlucHV0IgogICAgICAgICAgfSwKICAgICAgICAgICJjb25uZWN0aW9ucyI6IHsKICAgICAgICAgICAgIkEiOiBbMTJdCiAgICAgICAgICB9LAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICJuYW1lIjoiREdORCIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0K","base64"); - const schema = Buffer("ewogICJkZXNjcmlwdGlvbiI6ICJKU09OIFNjaGVtYSBZb3N5cyBuZXRsaXN0cyBKU09OIGZvcm1hdCIsCiAgInR5cGUiOiAib2JqZWN0IiwKICAvLyBhbiBlbXB0eSBvYmplY3QgaXMgaW52YWxpZAogICJyZXF1aXJlZCI6IFsibW9kdWxlcyJdLAogICJlcnJvck1lc3NhZ2UiOiB7CiAgICAidHlwZSI6ICJuZXRsaXN0IG11c3QgYmUgYSBKU09OIG9iamVjdCIsCiAgICAicmVxdWlyZWQiOiAibmV0bGlzdCBtdXN0IGhhdmUgYSBtb2R1bGVzIHByb3BlcnR5IiwKICB9LAogICJwcm9wZXJ0aWVzIjogewogICAgIm1vZHVsZXMiOiB7CiAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgIC8vIHRoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIG1vZHVsZQogICAgICAibWluUHJvcGVydGllcyI6IDEsCiAgICAgICAgImVycm9yTWVzc2FnZSI6IHsKICAgICAgICAgICJ0eXBlIjogIm5ldGxpc3QgbW9kdWxlcyBtdXN0IGJlIG9iamVjdHMiLAogICAgICAgICAgIm1pblByb3BlcnRpZXMiOiAibmV0bGlzdCBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIG1vZHVsZSIsCiAgICAgICAgfSwKICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjogewogICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAicG9ydHMiOiB7CiAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICJhZGRpdGlvbmFsUHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgIC8vIGFsbCBwb3J0cyBtdXN0IGhhdmUgYml0cyBhbmQgYSBkaXJlY3Rpb24KICAgICAgICAgICAgICAicmVxdWlyZWQiOiBbImRpcmVjdGlvbiIsICJiaXRzIl0sCiAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAiZGlyZWN0aW9uIjogewogICAgICAgICAgICAgICAgICAiZW51bSI6IFsiaW5wdXQiLCAib3V0cHV0IiwgImlub3V0Il0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAiYml0cyI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgICAgICAgICAvLyBiaXRzIGNhbiBiZSB0aGUgc3RyaW5nICIwIiwgIjEiLCAieCIsICJ6Iiwgb3IgYSBudW1iZXIuCiAgICAgICAgICAgICAgICAgICJpdGVtcyI6IHsKICAgICAgICAgICAgICAgICAgICAib25lT2YiOlt7InR5cGUiOiJudW1iZXIifSwgeyJlbnVtIjpbIjAiLCIxIiwieCIsInoiXX1dCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiY2VsbHMiOiB7CiAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICJhZGRpdGlvbmFsUHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgIC8vIGFsbCBjZWxscyBtdXN0IGhhdmUgYSB0eXBlIGFuZCBjb25uZWN0aW9ucwogICAgICAgICAgICAgICJyZXF1aXJlZCI6IFsKICAgICAgICAgICAgICAgICJ0eXBlIiwKICAgICAgICAgICAgICAgICJjb25uZWN0aW9ucyIKICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgInR5cGUiOnsidHlwZSI6InN0cmluZyJ9LAogICAgICAgICAgICAgICAgImNvbm5lY3Rpb25zIjogewogICAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICAiYWRkaXRpb25hbFByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgInR5cGUiOiJhcnJheSIsCiAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogewogICAgICAgICAgICAgICAgICAgICAgIm9uZU9mIjpbeyJ0eXBlIjoibnVtYmVyIn0sIHsiZW51bSI6WyIwIiwiMSIsIngiLCJ6Il19XQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIC8vIHBvcnQgZGlyZWN0aW9ucyBhcmUgb3B0aW9uYWwKICAgICAgICAgICAgICAgICJwb3J0X2RpcmVjdGlvbnMiOnsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAgICAgICJlbnVtIjogWyJpbnB1dCIsICJvdXRwdXQiLCAiaW5vdXQiXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgLy8gbmV0bGlzdHN2ZyBkb2Vzbid0IHVzZSB0aGVzZSB5ZXQKICAgICAgICAgICAgICAgICJoaWRlX25hbWUiOiB7ImVudW0iOlswLCAxXX0sCiAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IHsidHlwZSI6ICJvYmplY3QifSwKICAgICAgICAgICAgICAgICJhdHRyaWJ1dGVzIjogeyJ0eXBlIjogIm9iamVjdCJ9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgLy8gbm90IHlldCB1c2VkIGJ5IG5ldGxpc3RzdmcKICAgICAgICAgICJuZXRuYW1lcyI6IHsKICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgICAgICAgICAiYml0cyI6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiAiYXJyYXkiLAogICAgICAgICAgICAgICAgICAvLyBiaXRzIGNhbiBiZSB0aGUgc3RyaW5nICIwIiwgIjEiLCAieCIsICJ6Iiwgb3IgYSBudW1iZXIuCiAgICAgICAgICAgICAgICAgICJpdGVtcyI6IHsKICAgICAgICAgICAgICAgICAgICAib25lT2YiOiBbeyJ0eXBlIjogIm51bWJlciJ9LCB7ImVudW0iOiBbIjAiLCAiMSIsICJ4IiwgInoiXX1dCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAiaGlkZV9uYW1lIjogeyJlbnVtIjogWzAsIDFdfSwKICAgICAgICAgICAgICAgICJhdHRyaWJ1dGVzIjogeyJ0eXBlIjogIm9iamVjdCJ9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICJ0b3AiOiB7ImVudW0iOiBbMCwgMSwgIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwgIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIl19CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIC8vIHRoZXJlIG11c3QgZWl0aGVyIGJlIHBvcnRzIG9yIGNlbGxzIGF0dHJpYnV0ZQogICAgICAgICJhbnlPZiI6IFt7InJlcXVpcmVkIjogWyJwb3J0cyJdfSx7InJlcXVpcmVkIjogWyJjZWxscyJdfV0KICAgICAgfQogICAgfQogIH0KfQo=","base64"); - const exampleDigitalJson = json5.parse(exampleDigital); - const exampleAnalogJson = json5.parse(exampleAnalog); - - function render(skinData, netlistData, cb) { - var valid = ajv.validate(json5.parse(schema), netlistData); - if (!valid) { - throw Error(JSON.stringify(ajv.errors, null, 2)); - } - return lib.render(skinData, netlistData, cb); - } - - module.exports = { - render: render, - digitalSkin: digital, - analogSkin: analog, - exampleDigital: exampleDigitalJson, - exampleAnalog: exampleAnalogJson - }; - - }).call(this)}).call(this,require("buffer").Buffer) - },{"../built":8,"ajv":12,"ajv-errors":10,"buffer":56,"json5":67}],10:[function(require,module,exports){ - 'use strict'; - - module.exports = function (ajv, options) { - if (!ajv._opts.allErrors) throw new Error('ajv-errors: Ajv option allErrors must be true'); - if (!ajv._opts.jsonPointers) { - console.warn('ajv-errors: Ajv option jsonPointers changed to true'); - ajv._opts.jsonPointers = true; - } - - ajv.addKeyword('errorMessage', { - inline: require('./lib/dotjs/errorMessage'), - statements: true, - valid: true, - errors: 'full', - config: { - KEYWORD_PROPERTY_PARAMS: { - required: 'missingProperty', - dependencies: 'property' - }, - options: options || {} - }, - metaSchema: { - 'type': ['string', 'object'], - properties: { - properties: {$ref: '#/definitions/stringMap'}, - items: {$ref: '#/definitions/stringList'}, - required: {$ref: '#/definitions/stringOrMap'}, - dependencies: {$ref: '#/definitions/stringOrMap'} - }, - additionalProperties: {'type': 'string'}, - definitions: { - stringMap: { - 'type': ['object'], - additionalProperties: {'type': 'string'} - }, - stringOrMap: { - 'type': ['string', 'object'], - additionalProperties: {'type': 'string'} - }, - stringList: { - 'type': ['array'], - items: {'type': 'string'} - } - } - } - }); - return ajv; - }; - - },{"./lib/dotjs/errorMessage":11}],11:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_errorMessage(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - if (it.createErrors !== false) { - var INTERPOLATION = /\$\{[^\}]+\}/; - var INTERPOLATION_REPLACE = /\$\{([^\}]+)\}/g; - var EMPTY_STR = /^\'\'\s*\+\s*|\s*\+\s*\'\'$/g; - var $config = it.self.getKeyword($keyword).config, - $dataPath = '_em_dataPath' + $lvl, - $i = '_em_i' + $lvl, - $key = '_em_key' + $lvl, - $keyProp = '_em_keyProp' + $lvl, - $err = '_em_err' + $lvl, - $child = '_em_child' + $lvl, - $childKeyword = '_em_childKeyword' + $lvl, - $matches = '_em_matches' + $lvl, - $isArray = '_em_isArray' + $lvl, - $errors = '_em_errors' + $lvl, - $message = '_em_message' + $lvl, - $paramsErrors = '_em_paramsErrors' + $lvl, - $propParam = '_em_propParam' + $lvl, - $keywordPropParams = '_em_keywordPropParams' + $lvl, - $templates = '_em_templates' + $lvl, - $errSchemaPathString = it.util.toQuotedString(it.errSchemaPath); - out += ' if (errors > 0) { var ' + ($dataPath) + ' = (dataPath || \'\') + ' + (it.errorPath) + '; var ' + ($i) + ', ' + ($err) + ', ' + ($errors) + '; '; - if (typeof $schema == 'object') { - var $keywordErrors = {}, - $keywordPropErrors = {}, - $childErrors = { - properties: {}, - items: {} - }, - $hasKeywordProps = false, - $hasProperties = false, - $hasItems = false; - for (var $k in $schema) { - switch ($k) { - case 'properties': - for (var $prop in $schema.properties) { - $hasProperties = true; - $childErrors.properties[$prop] = []; - } - break; - case 'items': - for (var $item = 0; $item < $schema.items.length; $item++) { - $hasItems = true; - $childErrors.items[$item] = []; - } - break; - default: - if (typeof $schema[$k] == 'object') { - $hasKeywordProps = true; - $keywordPropErrors[$k] = {}; - for (var $prop in $schema[$k]) { - $keywordPropErrors[$k][$prop] = []; - } - } else { - $keywordErrors[$k] = []; - } - } - } - var $keywordErrorsArr = Object.keys($keywordErrors); - if ($keywordErrorsArr.length) { - out += ' ' + ($i) + ' = 0; ' + ($errors) + ' = ' + (JSON.stringify($keywordErrors)) + '; var ' + ($templates) + ' = { '; - var $comma = false; - var arr1 = $keywordErrorsArr; - if (arr1) { - var $k, i1 = -1, - l1 = arr1.length - 1; - while (i1 < l1) { - $k = arr1[i1 += 1]; - if (INTERPOLATION.test($schema[$k])) { - if ($comma) { - out += ','; - } - out += '' + (it.util.toQuotedString($k)) + ': ' + (templateFunc($schema[$k])) + ' '; - $comma = true; - } - } - } - out += ' }; while (' + ($i) + ' < errors) { ' + ($err) + ' = vErrors[' + ($i) + ']; if ( ' + ($err) + '.keyword != \'' + ($keyword) + '\' '; - if ($config.options.keepErrors) { - out += ' && !' + ($err) + '.emUsed '; - } - out += ' && ' + ($err) + '.keyword in ' + ($errors) + ' && ' + ($err) + '.dataPath == ' + ($dataPath) + ' && ' + ($err) + '.schemaPath.indexOf(' + ($errSchemaPathString) + ') == 0 && /^\\/[^\\/]*$/.test(' + ($err) + '.schemaPath.slice(' + (it.errSchemaPath.length) + '))) { ' + ($errors) + '[' + ($err) + '.keyword].push(' + ($err) + '); '; - if ($config.options.keepErrors) { - out += ' ' + ($err) + '.emUsed = true; '; - } else { - out += ' vErrors.splice(' + ($i) + ', 1); errors--; '; - } - out += ' } else { ' + ($i) + '++; } } '; - if ($config.options.singleError) { - out += ' var ' + ($message) + ' = \'\'; var ' + ($paramsErrors) + ' = []; '; - } - out += ' for (var ' + ($key) + ' in ' + ($errors) + ') { if (' + ($errors) + '[' + ($key) + '].length) { '; - if ($config.options.singleError) { - out += ' if (' + ($message) + ') { ' + ($message) + ' += '; - if (typeof $config.options.singleError == 'string') { - out += ' ' + (it.util.toQuotedString($config.options.singleError)) + ' '; - } else { - out += ' \'; \' '; - } - out += '; } ' + ($message) + ' += ' + ($key) + ' in ' + ($templates) + ' ? ' + ($templates) + '[' + ($key) + '] () : validate.schema' + ($schemaPath) + '[' + ($key) + ']; ' + ($paramsErrors) + ' = ' + ($paramsErrors) + '.concat(' + ($errors) + '[' + ($key) + ']); } } '; - } else { - out += ' var ' + ($message) + ' = ' + ($key) + ' in ' + ($templates) + ' ? ' + ($templates) + '[' + ($key) + '] () : validate.schema' + ($schemaPath) + '[' + ($key) + ']; var ' + ($paramsErrors) + ' = ' + ($errors) + '[' + ($key) + ']; '; - } - out += ' var err = { keyword: \'' + ($keyword) + '\' , dataPath: ' + ($dataPath) + ' , schemaPath: ' + ($errSchemaPathString) + ' + \'/' + ($keyword) + '\' , params: { errors: ' + ($paramsErrors) + ' } , message: ' + ($message) + ' '; - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' }; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!$config.options.singleError) { - out += ' } } '; - } - } - if ($hasKeywordProps) { - out += ' ' + ($i) + ' = 0; ' + ($errors) + ' = ' + (JSON.stringify($keywordPropErrors)) + '; var ' + ($paramsErrors) + ', ' + ($propParam) + '; var ' + ($keywordPropParams) + ' = ' + (JSON.stringify($config.KEYWORD_PROPERTY_PARAMS)) + '; var ' + ($templates) + ' = { '; - var $comma = false; - var arr2 = Object.keys($keywordPropErrors); - if (arr2) { - var $k, i2 = -1, - l2 = arr2.length - 1; - while (i2 < l2) { - $k = arr2[i2 += 1]; - var $keywordMsgs = $schema[$k]; - if ($comma) { - out += ','; - } - out += '' + (it.util.toQuotedString($k)) + ': { '; - $comma = true; - var $innerComma = false; - var arr3 = Object.keys($keywordMsgs); - if (arr3) { - var $prop, i3 = -1, - l3 = arr3.length - 1; - while (i3 < l3) { - $prop = arr3[i3 += 1]; - if (INTERPOLATION.test($keywordMsgs[$prop])) { - if ($innerComma) { - out += ','; - } - out += '' + (it.util.toQuotedString($prop)) + ': ' + (templateFunc($keywordMsgs[$prop])) + ' '; - $innerComma = true; - } - } - } - out += ' } '; - } - } - out += ' }; while (' + ($i) + ' < errors) { ' + ($err) + ' = vErrors[' + ($i) + ']; if ( ' + ($err) + '.keyword != \'' + ($keyword) + '\' '; - if ($config.options.keepErrors) { - out += ' && !' + ($err) + '.emUsed '; - } - out += ' && ' + ($err) + '.keyword in ' + ($errors) + ' && ' + ($err) + '.dataPath == ' + ($dataPath) + ' && ' + ($err) + '.schemaPath.indexOf(' + ($errSchemaPathString) + ') == 0 && /^\\/[^\\/]*$/.test(' + ($err) + '.schemaPath.slice(' + (it.errSchemaPath.length) + '))) { ' + ($propParam) + ' = ' + ($keywordPropParams) + '[' + ($err) + '.keyword]; ' + ($paramsErrors) + ' = ' + ($errors) + '[' + ($err) + '.keyword][' + ($err) + '.params[' + ($propParam) + ']]; if (' + ($paramsErrors) + ') { ' + ($paramsErrors) + '.push(' + ($err) + '); '; - if ($config.options.keepErrors) { - out += ' ' + ($err) + '.emUsed = true; '; - } else { - out += ' vErrors.splice(' + ($i) + ', 1); errors--; '; - } - out += ' } else { ' + ($i) + '++; } } else { ' + ($i) + '++; } } for (var ' + ($key) + ' in ' + ($errors) + ') { for (var ' + ($keyProp) + ' in ' + ($errors) + '[' + ($key) + ']) { ' + ($paramsErrors) + ' = ' + ($errors) + '[' + ($key) + '][' + ($keyProp) + ']; if (' + ($paramsErrors) + '.length) { var ' + ($message) + ' = ' + ($key) + ' in ' + ($templates) + ' && ' + ($keyProp) + ' in ' + ($templates) + '[' + ($key) + '] ? ' + ($templates) + '[' + ($key) + '][' + ($keyProp) + '] () : validate.schema' + ($schemaPath) + '[' + ($key) + '][' + ($keyProp) + ']; var err = { keyword: \'' + ($keyword) + '\' , dataPath: ' + ($dataPath) + ' , schemaPath: ' + ($errSchemaPathString) + ' + \'/' + ($keyword) + '\' , params: { errors: ' + ($paramsErrors) + ' } , message: ' + ($message) + ' '; - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' }; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } } '; - } - if ($hasProperties || $hasItems) { - out += ' var ' + ($isArray) + ' = Array.isArray(' + ($data) + '); if '; - if ($hasProperties && $hasItems) { - out += ' (typeof ' + ($data) + ' == \'object\') { '; - var $childProp = '[' + $childKeyword + ']'; - out += ' ' + ($i) + ' = 0; if (' + ($isArray) + ') { var ' + ($childKeyword) + ' = \'items\'; ' + ($errors) + ' = ' + (JSON.stringify($childErrors.items)) + '; '; - var _keysArray = Object.keys($childErrors.items); - out += ' var ' + ($templates) + ' = { '; - var $comma = false; - var arr4 = _keysArray; - if (arr4) { - var $k, i4 = -1, - l4 = arr4.length - 1; - while (i4 < l4) { - $k = arr4[i4 += 1]; - if (INTERPOLATION.test($schema.items[$k])) { - if ($comma) { - out += ','; - } - out += '' + (it.util.toQuotedString($k)) + ': ' + (templateFunc($schema.items[$k])) + ' '; - $comma = true; - } - } - } - out += ' }; } else { var ' + ($childKeyword) + ' = \'properties\'; ' + ($errors) + ' = ' + (JSON.stringify($childErrors.properties)) + '; '; - var _keysArray = Object.keys($childErrors.properties); - out += ' var ' + ($templates) + ' = { '; - var $comma = false; - var arr5 = _keysArray; - if (arr5) { - var $k, i5 = -1, - l5 = arr5.length - 1; - while (i5 < l5) { - $k = arr5[i5 += 1]; - if (INTERPOLATION.test($schema.properties[$k])) { - if ($comma) { - out += ','; - } - out += '' + (it.util.toQuotedString($k)) + ': ' + (templateFunc($schema.properties[$k])) + ' '; - $comma = true; - } - } - } - out += ' }; } '; - } else if ($hasProperties) { - out += ' (typeof ' + ($data) + ' == \'object\' && !' + ($isArray) + ') { '; - var $childProp = '.properties'; - out += ' ' + ($i) + ' = 0; ' + ($errors) + ' = ' + (JSON.stringify($childErrors.properties)) + '; '; - var _keysArray = Object.keys($childErrors.properties); - out += ' var ' + ($templates) + ' = { '; - var $comma = false; - var arr6 = _keysArray; - if (arr6) { - var $k, i6 = -1, - l6 = arr6.length - 1; - while (i6 < l6) { - $k = arr6[i6 += 1]; - if (INTERPOLATION.test($schema.properties[$k])) { - if ($comma) { - out += ','; - } - out += '' + (it.util.toQuotedString($k)) + ': ' + (templateFunc($schema.properties[$k])) + ' '; - $comma = true; - } - } - } - out += ' }; '; - } else { - out += ' (' + ($isArray) + ') { '; - var $childProp = '.items'; - out += ' ' + ($i) + ' = 0; ' + ($errors) + ' = ' + (JSON.stringify($childErrors.items)) + '; '; - var _keysArray = Object.keys($childErrors.items); - out += ' var ' + ($templates) + ' = { '; - var $comma = false; - var arr7 = _keysArray; - if (arr7) { - var $k, i7 = -1, - l7 = arr7.length - 1; - while (i7 < l7) { - $k = arr7[i7 += 1]; - if (INTERPOLATION.test($schema.items[$k])) { - if ($comma) { - out += ','; - } - out += '' + (it.util.toQuotedString($k)) + ': ' + (templateFunc($schema.items[$k])) + ' '; - $comma = true; - } - } - } - out += ' }; '; - } - out += ' var ' + ($child) + ', ' + ($matches) + '; while (' + ($i) + ' < errors) { ' + ($err) + ' = vErrors[' + ($i) + ']; if ( ' + ($err) + '.keyword != \'' + ($keyword) + '\' '; - if ($config.options.keepErrors) { - out += ' && !' + ($err) + '.emUsed '; - } - out += ' && ' + ($err) + '.dataPath.indexOf(' + ($dataPath) + ') == 0 && (' + ($matches) + ' = ' + ($err) + '.dataPath.slice(' + ($dataPath) + '.length).match(/^\\/([^\\/]*)(?:\\/|$)/), ' + ($child) + ' = ' + ($matches) + ' && ' + ($matches) + '[1].replace(/~1/g, \'/\').replace(/~0/g, \'~\') ) !== undefined && ' + ($child) + ' in ' + ($errors) + ') { ' + ($errors) + '[' + ($child) + '].push(' + ($err) + '); '; - if ($config.options.keepErrors) { - out += ' ' + ($err) + '.emUsed = true; '; - } else { - out += ' vErrors.splice(' + ($i) + ', 1); errors--; '; - } - out += ' } else { ' + ($i) + '++; } } for (var ' + ($key) + ' in ' + ($errors) + ') { if (' + ($errors) + '[' + ($key) + '].length) { var err = { keyword: \'' + ($keyword) + '\' , dataPath: ' + ($dataPath) + ' + \'/\' + ' + ($key) + '.replace(/~/g, \'~0\').replace(/\\//g, \'~1\') , schemaPath: ' + ($errSchemaPathString) + ' + \'/' + ($keyword) + '\' , params: { errors: ' + ($errors) + '[' + ($key) + '] } , message: ' + ($key) + ' in ' + ($templates) + ' ? ' + ($templates) + '[' + ($key) + '] () : validate.schema' + ($schemaPath) + ($childProp) + '[' + ($key) + '] '; - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' }; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } } '; - } - } - var $schemaMessage = typeof $schema == 'string' ? $schema : $schema._; - if ($schemaMessage) { - out += ' ' + ($i) + ' = 0; ' + ($errors) + ' = []; while (' + ($i) + ' < errors) { ' + ($err) + ' = vErrors[' + ($i) + ']; if ( ' + ($err) + '.keyword != \'' + ($keyword) + '\' '; - if ($config.options.keepErrors) { - out += ' && !' + ($err) + '.emUsed '; - } - out += ' && (' + ($err) + '.dataPath == ' + ($dataPath) + ' || (' + ($err) + '.dataPath.indexOf(' + ($dataPath) + ') == 0 && ' + ($err) + '.dataPath[' + ($dataPath) + '.length] == \'/\')) && ' + ($err) + '.schemaPath.indexOf(' + ($errSchemaPathString) + ') == 0 && ' + ($err) + '.schemaPath[' + (it.errSchemaPath.length) + '] == \'/\') { ' + ($errors) + '.push(' + ($err) + '); '; - if ($config.options.keepErrors) { - out += ' ' + ($err) + '.emUsed = true; '; - } else { - out += ' vErrors.splice(' + ($i) + ', 1); errors--; '; - } - out += ' } else { ' + ($i) + '++; } } if (' + ($errors) + '.length) { var err = { keyword: \'' + ($keyword) + '\' , dataPath: ' + ($dataPath) + ' , schemaPath: ' + ($errSchemaPathString) + ' + \'/' + ($keyword) + '\' , params: { errors: ' + ($errors) + ' } , message: ' + (templateExpr($schemaMessage)) + ' '; - if (it.opts.verbose) { - out += ' , schema: ' + (it.util.toQuotedString($schemaMessage)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' }; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } '; - } - out += ' }'; - } - - function templateExpr(str) { - str = it.util.escapeQuotes(str); - if (!INTERPOLATION.test(str)) return "'" + str + "'"; - var expr = "'" + str.replace(INTERPOLATION_REPLACE, function($0, $1) { - return "' + JSON.stringify(" + it.util.getData($1, $dataLvl, it.dataPathArr) + ") + '"; - }) + "'"; - return expr.replace(EMPTY_STR, ''); - } - - function templateFunc(str) { - return 'function() { return ' + templateExpr(str) + '; }'; - } - return out; - } - - },{}],12:[function(require,module,exports){ - 'use strict'; - - var compileSchema = require('./compile') - , resolve = require('./compile/resolve') - , Cache = require('./cache') - , SchemaObject = require('./compile/schema_obj') - , stableStringify = require('fast-json-stable-stringify') - , formats = require('./compile/formats') - , rules = require('./compile/rules') - , $dataMetaSchema = require('./data') - , util = require('./compile/util'); - - module.exports = Ajv; - - Ajv.prototype.validate = validate; - Ajv.prototype.compile = compile; - Ajv.prototype.addSchema = addSchema; - Ajv.prototype.addMetaSchema = addMetaSchema; - Ajv.prototype.validateSchema = validateSchema; - Ajv.prototype.getSchema = getSchema; - Ajv.prototype.removeSchema = removeSchema; - Ajv.prototype.addFormat = addFormat; - Ajv.prototype.errorsText = errorsText; - - Ajv.prototype._addSchema = _addSchema; - Ajv.prototype._compile = _compile; - - Ajv.prototype.compileAsync = require('./compile/async'); - var customKeyword = require('./keyword'); - Ajv.prototype.addKeyword = customKeyword.add; - Ajv.prototype.getKeyword = customKeyword.get; - Ajv.prototype.removeKeyword = customKeyword.remove; - Ajv.prototype.validateKeyword = customKeyword.validate; - - var errorClasses = require('./compile/error_classes'); - Ajv.ValidationError = errorClasses.Validation; - Ajv.MissingRefError = errorClasses.MissingRef; - Ajv.$dataMetaSchema = $dataMetaSchema; - - var META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema'; - - var META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ]; - var META_SUPPORT_DATA = ['/properties']; - - /** - * Creates validator instance. - * Usage: `Ajv(opts)` - * @param {Object} opts optional options - * @return {Object} ajv instance - */ - function Ajv(opts) { - if (!(this instanceof Ajv)) return new Ajv(opts); - opts = this._opts = util.copy(opts) || {}; - setLogger(this); - this._schemas = {}; - this._refs = {}; - this._fragments = {}; - this._formats = formats(opts.format); - - this._cache = opts.cache || new Cache; - this._loadingSchemas = {}; - this._compilations = []; - this.RULES = rules(); - this._getId = chooseGetId(opts); - - opts.loopRequired = opts.loopRequired || Infinity; - if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true; - if (opts.serialize === undefined) opts.serialize = stableStringify; - this._metaOpts = getMetaSchemaOptions(this); - - if (opts.formats) addInitialFormats(this); - if (opts.keywords) addInitialKeywords(this); - addDefaultMetaSchema(this); - if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta); - if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}}); - addInitialSchemas(this); - } - - - - /** - * Validate data using schema - * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize. - * @this Ajv - * @param {String|Object} schemaKeyRef key, ref or schema object - * @param {Any} data to be validated - * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`). - */ - function validate(schemaKeyRef, data) { - var v; - if (typeof schemaKeyRef == 'string') { - v = this.getSchema(schemaKeyRef); - if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"'); - } else { - var schemaObj = this._addSchema(schemaKeyRef); - v = schemaObj.validate || this._compile(schemaObj); - } - - var valid = v(data); - if (v.$async !== true) this.errors = v.errors; - return valid; - } - - - /** - * Create validating function for passed schema. - * @this Ajv - * @param {Object} schema schema object - * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords. - * @return {Function} validating function - */ - function compile(schema, _meta) { - var schemaObj = this._addSchema(schema, undefined, _meta); - return schemaObj.validate || this._compile(schemaObj); - } - - - /** - * Adds schema to the instance. - * @this Ajv - * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored. - * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`. - * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead. - * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead. - * @return {Ajv} this for method chaining - */ - function addSchema(schema, key, _skipValidation, _meta) { - if (Array.isArray(schema)){ - for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used. - * @param {Object} options optional options with properties `separator` and `dataVar`. - * @return {String} human readable string with all errors descriptions - */ - function errorsText(errors, options) { - errors = errors || this.errors; - if (!errors) return 'No errors'; - options = options || {}; - var separator = options.separator === undefined ? ', ' : options.separator; - var dataVar = options.dataVar === undefined ? 'data' : options.dataVar; - - var text = ''; - for (var i=0; i%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i; -// For the source: https://gist.github.com/dperini/729294 -// For test cases: https://mathiasbynens.be/demo/url-regex -// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983. -// var URL = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu; - var URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i; - var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i; - var JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$/; - var JSON_POINTER_URI_FRAGMENT = /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i; - var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/; - - - module.exports = formats; - - function formats(mode) { - mode = mode == 'full' ? 'full' : 'fast'; - return util.copy(formats[mode]); - } - - - formats.fast = { - // date: http://tools.ietf.org/html/rfc3339#section-5.6 - date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/, - // date-time: http://tools.ietf.org/html/rfc3339#section-5.6 - time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, - 'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, - // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js - uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i, - 'uri-reference': /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i, - 'uri-template': URITEMPLATE, - url: URL, - // email (sources from jsen validator): - // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363 - // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation') - email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i, - hostname: HOSTNAME, - // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html - ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, - // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses - ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, - regex: regex, - // uuid: http://tools.ietf.org/html/rfc4122 - uuid: UUID, - // JSON-pointer: https://tools.ietf.org/html/rfc6901 - // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A - 'json-pointer': JSON_POINTER, - 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT, - // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00 - 'relative-json-pointer': RELATIVE_JSON_POINTER - }; - - - formats.full = { - date: date, - time: time, - 'date-time': date_time, - uri: uri, - 'uri-reference': URIREF, - 'uri-template': URITEMPLATE, - url: URL, - email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, - hostname: HOSTNAME, - ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, - ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, - regex: regex, - uuid: UUID, - 'json-pointer': JSON_POINTER, - 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT, - 'relative-json-pointer': RELATIVE_JSON_POINTER - }; - - - function isLeapYear(year) { - // https://tools.ietf.org/html/rfc3339#appendix-C - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); - } - - - function date(str) { - // full-date from http://tools.ietf.org/html/rfc3339#section-5.6 - var matches = str.match(DATE); - if (!matches) return false; - - var year = +matches[1]; - var month = +matches[2]; - var day = +matches[3]; - - return month >= 1 && month <= 12 && day >= 1 && - day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]); - } - - - function time(str, full) { - var matches = str.match(TIME); - if (!matches) return false; - - var hour = matches[1]; - var minute = matches[2]; - var second = matches[3]; - var timeZone = matches[5]; - return ((hour <= 23 && minute <= 59 && second <= 59) || - (hour == 23 && minute == 59 && second == 60)) && - (!full || timeZone); - } - - - var DATE_TIME_SEPARATOR = /t|\s/i; - function date_time(str) { - // http://tools.ietf.org/html/rfc3339#section-5.6 - var dateTime = str.split(DATE_TIME_SEPARATOR); - return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true); - } - - - var NOT_URI_FRAGMENT = /\/|:/; - function uri(str) { - // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "." - return NOT_URI_FRAGMENT.test(str) && URI.test(str); - } - - - var Z_ANCHOR = /[^\\]\\Z/; - function regex(str) { - if (Z_ANCHOR.test(str)) return false; - try { - new RegExp(str); - return true; - } catch(e) { - return false; - } - } - - },{"./util":22}],17:[function(require,module,exports){ - 'use strict'; - - var resolve = require('./resolve') - , util = require('./util') - , errorClasses = require('./error_classes') - , stableStringify = require('fast-json-stable-stringify'); - - var validateGenerator = require('../dotjs/validate'); - - /** - * Functions below are used inside compiled validations function - */ - - var ucs2length = util.ucs2length; - var equal = require('fast-deep-equal'); - -// this error is thrown by async schemas to return validation errors via exception - var ValidationError = errorClasses.Validation; - - module.exports = compile; - - - /** - * Compiles schema to validation function - * @this Ajv - * @param {Object} schema schema object - * @param {Object} root object with information about the root schema for this schema - * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution - * @param {String} baseId base ID for IDs in the schema - * @return {Function} validation function - */ - function compile(schema, root, localRefs, baseId) { - /* jshint validthis: true, evil: true */ - /* eslint no-shadow: 0 */ - var self = this - , opts = this._opts - , refVal = [ undefined ] - , refs = {} - , patterns = [] - , patternsHash = {} - , defaults = [] - , defaultsHash = {} - , customRules = []; - - root = root || { schema: schema, refVal: refVal, refs: refs }; - - var c = checkCompiling.call(this, schema, root, baseId); - var compilation = this._compilations[c.index]; - if (c.compiling) return (compilation.callValidate = callValidate); - - var formats = this._formats; - var RULES = this.RULES; - - try { - var v = localCompile(schema, root, localRefs, baseId); - compilation.validate = v; - var cv = compilation.callValidate; - if (cv) { - cv.schema = v.schema; - cv.errors = null; - cv.refs = v.refs; - cv.refVal = v.refVal; - cv.root = v.root; - cv.$async = v.$async; - if (opts.sourceCode) cv.source = v.source; - } - return v; - } finally { - endCompiling.call(this, schema, root, baseId); - } - - /* @this {*} - custom context, see passContext option */ - function callValidate() { - /* jshint validthis: true */ - var validate = compilation.validate; - var result = validate.apply(this, arguments); - callValidate.errors = validate.errors; - return result; - } - - function localCompile(_schema, _root, localRefs, baseId) { - var isRoot = !_root || (_root && _root.schema == _schema); - if (_root.schema != root.schema) - return compile.call(self, _schema, _root, localRefs, baseId); - - var $async = _schema.$async === true; - - var sourceCode = validateGenerator({ - isTop: true, - schema: _schema, - isRoot: isRoot, - baseId: baseId, - root: _root, - schemaPath: '', - errSchemaPath: '#', - errorPath: '""', - MissingRefError: errorClasses.MissingRef, - RULES: RULES, - validate: validateGenerator, - util: util, - resolve: resolve, - resolveRef: resolveRef, - usePattern: usePattern, - useDefault: useDefault, - useCustomRule: useCustomRule, - opts: opts, - formats: formats, - logger: self.logger, - self: self - }); - - sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode) - + vars(defaults, defaultCode) + vars(customRules, customRuleCode) - + sourceCode; - - if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema); - // console.log('\n\n\n *** \n', JSON.stringify(sourceCode)); - var validate; - try { - var makeValidate = new Function( - 'self', - 'RULES', - 'formats', - 'root', - 'refVal', - 'defaults', - 'customRules', - 'equal', - 'ucs2length', - 'ValidationError', - sourceCode - ); - - validate = makeValidate( - self, - RULES, - formats, - root, - refVal, - defaults, - customRules, - equal, - ucs2length, - ValidationError - ); - - refVal[0] = validate; - } catch(e) { - self.logger.error('Error compiling schema, function code:', sourceCode); - throw e; - } - - validate.schema = _schema; - validate.errors = null; - validate.refs = refs; - validate.refVal = refVal; - validate.root = isRoot ? validate : _root; - if ($async) validate.$async = true; - if (opts.sourceCode === true) { - validate.source = { - code: sourceCode, - patterns: patterns, - defaults: defaults - }; - } - - return validate; - } - - function resolveRef(baseId, ref, isRoot) { - ref = resolve.url(baseId, ref); - var refIndex = refs[ref]; - var _refVal, refCode; - if (refIndex !== undefined) { - _refVal = refVal[refIndex]; - refCode = 'refVal[' + refIndex + ']'; - return resolvedRef(_refVal, refCode); - } - if (!isRoot && root.refs) { - var rootRefId = root.refs[ref]; - if (rootRefId !== undefined) { - _refVal = root.refVal[rootRefId]; - refCode = addLocalRef(ref, _refVal); - return resolvedRef(_refVal, refCode); - } - } - - refCode = addLocalRef(ref); - var v = resolve.call(self, localCompile, root, ref); - if (v === undefined) { - var localSchema = localRefs && localRefs[ref]; - if (localSchema) { - v = resolve.inlineRef(localSchema, opts.inlineRefs) - ? localSchema - : compile.call(self, localSchema, root, localRefs, baseId); - } - } - - if (v === undefined) { - removeLocalRef(ref); - } else { - replaceLocalRef(ref, v); - return resolvedRef(v, refCode); - } - } - - function addLocalRef(ref, v) { - var refId = refVal.length; - refVal[refId] = v; - refs[ref] = refId; - return 'refVal' + refId; - } - - function removeLocalRef(ref) { - delete refs[ref]; - } - - function replaceLocalRef(ref, v) { - var refId = refs[ref]; - refVal[refId] = v; - } - - function resolvedRef(refVal, code) { - return typeof refVal == 'object' || typeof refVal == 'boolean' - ? { code: code, schema: refVal, inline: true } - : { code: code, $async: refVal && !!refVal.$async }; - } - - function usePattern(regexStr) { - var index = patternsHash[regexStr]; - if (index === undefined) { - index = patternsHash[regexStr] = patterns.length; - patterns[index] = regexStr; - } - return 'pattern' + index; - } - - function useDefault(value) { - switch (typeof value) { - case 'boolean': - case 'number': - return '' + value; - case 'string': - return util.toQuotedString(value); - case 'object': - if (value === null) return 'null'; - var valueStr = stableStringify(value); - var index = defaultsHash[valueStr]; - if (index === undefined) { - index = defaultsHash[valueStr] = defaults.length; - defaults[index] = value; - } - return 'default' + index; - } - } - - function useCustomRule(rule, schema, parentSchema, it) { - if (self._opts.validateSchema !== false) { - var deps = rule.definition.dependencies; - if (deps && !deps.every(function(keyword) { - return Object.prototype.hasOwnProperty.call(parentSchema, keyword); - })) - throw new Error('parent schema must have all required keywords: ' + deps.join(',')); - - var validateSchema = rule.definition.validateSchema; - if (validateSchema) { - var valid = validateSchema(schema); - if (!valid) { - var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors); - if (self._opts.validateSchema == 'log') self.logger.error(message); - else throw new Error(message); - } - } - } - - var compile = rule.definition.compile - , inline = rule.definition.inline - , macro = rule.definition.macro; - - var validate; - if (compile) { - validate = compile.call(self, schema, parentSchema, it); - } else if (macro) { - validate = macro.call(self, schema, parentSchema, it); - if (opts.validateSchema !== false) self.validateSchema(validate, true); - } else if (inline) { - validate = inline.call(self, it, rule.keyword, schema, parentSchema); - } else { - validate = rule.definition.validate; - if (!validate) return; - } - - if (validate === undefined) - throw new Error('custom keyword "' + rule.keyword + '"failed to compile'); - - var index = customRules.length; - customRules[index] = validate; - - return { - code: 'customRule' + index, - validate: validate - }; - } - } - - - /** - * Checks if the schema is currently compiled - * @this Ajv - * @param {Object} schema schema to compile - * @param {Object} root root object - * @param {String} baseId base schema ID - * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean) - */ - function checkCompiling(schema, root, baseId) { - /* jshint validthis: true */ - var index = compIndex.call(this, schema, root, baseId); - if (index >= 0) return { index: index, compiling: true }; - index = this._compilations.length; - this._compilations[index] = { - schema: schema, - root: root, - baseId: baseId - }; - return { index: index, compiling: false }; - } - - - /** - * Removes the schema from the currently compiled list - * @this Ajv - * @param {Object} schema schema to compile - * @param {Object} root root object - * @param {String} baseId base schema ID - */ - function endCompiling(schema, root, baseId) { - /* jshint validthis: true */ - var i = compIndex.call(this, schema, root, baseId); - if (i >= 0) this._compilations.splice(i, 1); - } - - - /** - * Index of schema compilation in the currently compiled list - * @this Ajv - * @param {Object} schema schema to compile - * @param {Object} root root object - * @param {String} baseId base schema ID - * @return {Integer} compilation index - */ - function compIndex(schema, root, baseId) { - /* jshint validthis: true */ - for (var i=0; i= 0xD800 && value <= 0xDBFF && pos < len) { - // high surrogate, and there is a next character - value = str.charCodeAt(pos); - if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate - } - } - return length; - }; - - },{}],22:[function(require,module,exports){ - 'use strict'; - - - module.exports = { - copy: copy, - checkDataType: checkDataType, - checkDataTypes: checkDataTypes, - coerceToTypes: coerceToTypes, - toHash: toHash, - getProperty: getProperty, - escapeQuotes: escapeQuotes, - equal: require('fast-deep-equal'), - ucs2length: require('./ucs2length'), - varOccurences: varOccurences, - varReplace: varReplace, - schemaHasRules: schemaHasRules, - schemaHasRulesExcept: schemaHasRulesExcept, - schemaUnknownRules: schemaUnknownRules, - toQuotedString: toQuotedString, - getPathExpr: getPathExpr, - getPath: getPath, - getData: getData, - unescapeFragment: unescapeFragment, - unescapeJsonPointer: unescapeJsonPointer, - escapeFragment: escapeFragment, - escapeJsonPointer: escapeJsonPointer - }; - - - function copy(o, to) { - to = to || {}; - for (var key in o) to[key] = o[key]; - return to; - } - - - function checkDataType(dataType, data, strictNumbers, negate) { - var EQUAL = negate ? ' !== ' : ' === ' - , AND = negate ? ' || ' : ' && ' - , OK = negate ? '!' : '' - , NOT = negate ? '' : '!'; - switch (dataType) { - case 'null': return data + EQUAL + 'null'; - case 'array': return OK + 'Array.isArray(' + data + ')'; - case 'object': return '(' + OK + data + AND + - 'typeof ' + data + EQUAL + '"object"' + AND + - NOT + 'Array.isArray(' + data + '))'; - case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND + - NOT + '(' + data + ' % 1)' + - AND + data + EQUAL + data + - (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; - case 'number': return '(typeof ' + data + EQUAL + '"' + dataType + '"' + - (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')'; - default: return 'typeof ' + data + EQUAL + '"' + dataType + '"'; - } - } - - - function checkDataTypes(dataTypes, data, strictNumbers) { - switch (dataTypes.length) { - case 1: return checkDataType(dataTypes[0], data, strictNumbers, true); - default: - var code = ''; - var types = toHash(dataTypes); - if (types.array && types.object) { - code = types.null ? '(': '(!' + data + ' || '; - code += 'typeof ' + data + ' !== "object")'; - delete types.null; - delete types.array; - delete types.object; - } - if (types.number) delete types.integer; - for (var t in types) - code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true); - - return code; - } - } - - - var COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]); - function coerceToTypes(optionCoerceTypes, dataTypes) { - if (Array.isArray(dataTypes)) { - var types = []; - for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl); - return paths[lvl - up]; - } - - if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl); - data = 'data' + ((lvl - up) || ''); - if (!jsonPointer) return data; - } - - var expr = data; - var segments = jsonPointer.split('/'); - for (var i=0; i', - $notOp = $isMax ? '>' : '<', - $errorKeyword = undefined; - if (!($isData || typeof $schema == 'number' || $schema === undefined)) { - throw new Error($keyword + ' must be number'); - } - if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) { - throw new Error($exclusiveKeyword + ' must be number or boolean'); - } - if ($isDataExcl) { - var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr), - $exclusive = 'exclusive' + $lvl, - $exclType = 'exclType' + $lvl, - $exclIsNumber = 'exclIsNumber' + $lvl, - $opExpr = 'op' + $lvl, - $opStr = '\' + ' + $opExpr + ' + \''; - out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; '; - $schemaValueExcl = 'schemaExcl' + $lvl; - out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \'boolean\' && ' + ($exclType) + ' != \'undefined\' && ' + ($exclType) + ' != \'number\') { '; - var $errorKeyword = $exclusiveKeyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_exclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ' + ($exclType) + ' == \'number\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\'; '; - if ($schema === undefined) { - $errorKeyword = $exclusiveKeyword; - $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; - $schemaValue = $schemaValueExcl; - $isData = $isDataExcl; - } - } else { - var $exclIsNumber = typeof $schemaExcl == 'number', - $opStr = $op; - if ($exclIsNumber && $isData) { - var $opExpr = '\'' + $opStr + '\''; - out += ' if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { '; - } else { - if ($exclIsNumber && $schema === undefined) { - $exclusive = true; - $errorKeyword = $exclusiveKeyword; - $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; - $schemaValue = $schemaExcl; - $notOp += '='; - } else { - if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema); - if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) { - $exclusive = true; - $errorKeyword = $exclusiveKeyword; - $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; - $notOp += '='; - } else { - $exclusive = false; - $opStr += '='; - } - } - var $opExpr = '\'' + $opStr + '\''; - out += ' if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { '; - } - } - $errorKeyword = $errorKeyword || $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be ' + ($opStr) + ' '; - if ($isData) { - out += '\' + ' + ($schemaValue); - } else { - out += '' + ($schemaValue) + '\''; - } - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - return out; - } - - },{}],26:[function(require,module,exports){ - 'use strict'; - module.exports = function generate__limitItems(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - var $op = $keyword == 'maxItems' ? '>' : '<'; - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { '; - var $errorKeyword = $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limitItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have '; - if ($keyword == 'maxItems') { - out += 'more'; - } else { - out += 'fewer'; - } - out += ' than '; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + ($schema); - } - out += ' items\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; - } - - },{}],27:[function(require,module,exports){ - 'use strict'; - module.exports = function generate__limitLength(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - var $op = $keyword == 'maxLength' ? '>' : '<'; - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - if (it.opts.unicode === false) { - out += ' ' + ($data) + '.length '; - } else { - out += ' ucs2length(' + ($data) + ') '; - } - out += ' ' + ($op) + ' ' + ($schemaValue) + ') { '; - var $errorKeyword = $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limitLength') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT be '; - if ($keyword == 'maxLength') { - out += 'longer'; - } else { - out += 'shorter'; - } - out += ' than '; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + ($schema); - } - out += ' characters\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; - } - - },{}],28:[function(require,module,exports){ - 'use strict'; - module.exports = function generate__limitProperties(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - var $op = $keyword == 'maxProperties' ? '>' : '<'; - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; - } - out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { '; - var $errorKeyword = $keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || '_limitProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have '; - if ($keyword == 'maxProperties') { - out += 'more'; - } else { - out += 'fewer'; - } - out += ' than '; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + ($schema); - } - out += ' properties\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; - } - - },{}],29:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_allOf(it, $keyword, $ruleType) { - var out = ' '; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $currentBaseId = $it.baseId, - $allSchemasEmpty = true; - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - $allSchemasEmpty = false; - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - if ($breakOnError) { - if ($allSchemasEmpty) { - out += ' if (true) { '; - } else { - out += ' ' + ($closingBraces.slice(0, -1)) + ' '; - } - } - return out; - } - - },{}],30:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_anyOf(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $noEmptySchema = $schema.every(function($sch) { - return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)); - }); - if ($noEmptySchema) { - var $currentBaseId = $it.baseId; - out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { '; - $closingBraces += '}'; - } - } - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('anyOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should match some schema in anyOf\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; return false; '; - } - } - out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - if (it.opts.allErrors) { - out += ' } '; - } - } else { - if ($breakOnError) { - out += ' if (true) { '; - } - } - return out; - } - - },{}],31:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_comment(it, $keyword, $ruleType) { - var out = ' '; - var $schema = it.schema[$keyword]; - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $comment = it.util.toQuotedString($schema); - if (it.opts.$comment === true) { - out += ' console.log(' + ($comment) + ');'; - } else if (typeof it.opts.$comment == 'function') { - out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);'; - } - return out; - } - - },{}],32:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_const(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!$isData) { - out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';'; - } - out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('const') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be equal to constant\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' }'; - if ($breakOnError) { - out += ' else { '; - } - return out; - } - - },{}],33:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_contains(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $idx = 'i' + $lvl, - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $currentBaseId = it.baseId, - $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)); - out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; - if ($nonEmptySchema) { - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); - var $passData = $data + '[' + $idx + ']'; - $it.dataPathArr[$dataNxt] = $idx; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - out += ' if (' + ($nextValid) + ') break; } '; - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {'; - } else { - out += ' if (' + ($data) + '.length == 0) {'; - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('contains') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should contain a valid item\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { '; - if ($nonEmptySchema) { - out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - } - if (it.opts.allErrors) { - out += ' } '; - } - return out; - } - - },{}],34:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_custom(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $rule = this, - $definition = 'definition' + $lvl, - $rDef = $rule.definition, - $closingBraces = ''; - var $compile, $inline, $macro, $ruleValidate, $validateCode; - if ($isData && $rDef.$data) { - $validateCode = 'keywordValidate' + $lvl; - var $validateSchema = $rDef.validateSchema; - out += ' var ' + ($definition) + ' = RULES.custom[\'' + ($keyword) + '\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;'; - } else { - $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it); - if (!$ruleValidate) return; - $schemaValue = 'validate.schema' + $schemaPath; - $validateCode = $ruleValidate.code; - $compile = $rDef.compile; - $inline = $rDef.inline; - $macro = $rDef.macro; - } - var $ruleErrs = $validateCode + '.errors', - $i = 'i' + $lvl, - $ruleErr = 'ruleErr' + $lvl, - $asyncKeyword = $rDef.async; - if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema'); - if (!($inline || $macro)) { - out += '' + ($ruleErrs) + ' = null;'; - } - out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; - if ($isData && $rDef.$data) { - $closingBraces += '}'; - out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { '; - if ($validateSchema) { - $closingBraces += '}'; - out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { '; - } - } - if ($inline) { - if ($rDef.statements) { - out += ' ' + ($ruleValidate.validate) + ' '; - } else { - out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; '; - } - } else if ($macro) { - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - $it.schema = $ruleValidate.validate; - $it.schemaPath = ''; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var $code = it.validate($it).replace(/validate\.schema/g, $validateCode); - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' ' + ($code); - } else { - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; - out += ' ' + ($validateCode) + '.call( '; - if (it.opts.passContext) { - out += 'this'; - } else { - out += 'self'; - } - if ($compile || $rDef.schema === false) { - out += ' , ' + ($data) + ' '; - } else { - out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' '; - } - out += ' , (dataPath || \'\')'; - if (it.errorPath != '""') { - out += ' + ' + (it.errorPath); - } - var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', - $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; - out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) '; - var def_callRuleValidate = out; - out = $$outStack.pop(); - if ($rDef.errors === false) { - out += ' ' + ($valid) + ' = '; - if ($asyncKeyword) { - out += 'await '; - } - out += '' + (def_callRuleValidate) + '; '; - } else { - if ($asyncKeyword) { - $ruleErrs = 'customErrors' + $lvl; - out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } '; - } else { - out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; '; - } - } - } - if ($rDef.modifying) { - out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];'; - } - out += '' + ($closingBraces); - if ($rDef.valid) { - if ($breakOnError) { - out += ' if (true) { '; - } - } else { - out += ' if ( '; - if ($rDef.valid === undefined) { - out += ' !'; - if ($macro) { - out += '' + ($nextValid); - } else { - out += '' + ($valid); - } - } else { - out += ' ' + (!$rDef.valid) + ' '; - } - out += ') { '; - $errorKeyword = $rule.keyword; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - var def_customError = out; - out = $$outStack.pop(); - if ($inline) { - if ($rDef.errors) { - if ($rDef.errors != 'full') { - out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + ' 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined '; - if ($ownProperties) { - out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($property)) + '\') '; - } - out += ') { '; - $it.schema = $sch; - $it.schemaPath = $schemaPath + it.util.getProperty($property); - $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property); - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; - } - return out; - } - - },{}],36:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_enum(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $i = 'i' + $lvl, - $vSchema = 'schema' + $lvl; - if (!$isData) { - out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';'; - } - out += 'var ' + ($valid) + ';'; - if ($isData) { - out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {'; - } - out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }'; - if ($isData) { - out += ' } '; - } - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('enum') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be equal to one of the allowed values\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' }'; - if ($breakOnError) { - out += ' else { '; - } - return out; - } - - },{}],37:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_format(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - if (it.opts.format === false) { - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $unknownFormats = it.opts.unknownFormats, - $allowUnknown = Array.isArray($unknownFormats); - if ($isData) { - var $format = 'format' + $lvl, - $isObject = 'isObject' + $lvl, - $formatType = 'formatType' + $lvl; - out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \'object\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \'string\'; if (' + ($isObject) + ') { '; - if (it.async) { - out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; '; - } - out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || '; - } - out += ' ('; - if ($unknownFormats != 'ignore') { - out += ' (' + ($schemaValue) + ' && !' + ($format) + ' '; - if ($allowUnknown) { - out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 '; - } - out += ') || '; - } - out += ' (' + ($format) + ' && ' + ($formatType) + ' == \'' + ($ruleType) + '\' && !(typeof ' + ($format) + ' == \'function\' ? '; - if (it.async) { - out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) '; - } else { - out += ' ' + ($format) + '(' + ($data) + ') '; - } - out += ' : ' + ($format) + '.test(' + ($data) + '))))) {'; - } else { - var $format = it.formats[$schema]; - if (!$format) { - if ($unknownFormats == 'ignore') { - it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"'); - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) { - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } else { - throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); - } - } - var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate; - var $formatType = $isObject && $format.type || 'string'; - if ($isObject) { - var $async = $format.async === true; - $format = $format.validate; - } - if ($formatType != $ruleType) { - if ($breakOnError) { - out += ' if (true) { '; - } - return out; - } - if ($async) { - if (!it.async) throw new Error('async format in sync schema'); - var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate'; - out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { '; - } else { - out += ' if (! '; - var $formatRef = 'formats' + it.util.getProperty($schema); - if ($isObject) $formatRef += '.validate'; - if (typeof $format == 'function') { - out += ' ' + ($formatRef) + '(' + ($data) + ') '; - } else { - out += ' ' + ($formatRef) + '.test(' + ($data) + ') '; - } - out += ') { '; - } - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('format') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: '; - if ($isData) { - out += '' + ($schemaValue); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match format "'; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + (it.util.escapeQuotes($schema)); - } - out += '"\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - return out; - } - - },{}],38:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_if(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - $it.level++; - var $nextValid = 'valid' + $it.level; - var $thenSch = it.schema['then'], - $elseSch = it.schema['else'], - $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)), - $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)), - $currentBaseId = $it.baseId; - if ($thenPresent || $elsePresent) { - var $ifClause; - $it.createErrors = false; - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - $it.createErrors = true; - out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - it.compositeRule = $it.compositeRule = $wasComposite; - if ($thenPresent) { - out += ' if (' + ($nextValid) + ') { '; - $it.schema = it.schema['then']; - $it.schemaPath = it.schemaPath + '.then'; - $it.errSchemaPath = it.errSchemaPath + '/then'; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' ' + ($valid) + ' = ' + ($nextValid) + '; '; - if ($thenPresent && $elsePresent) { - $ifClause = 'ifClause' + $lvl; - out += ' var ' + ($ifClause) + ' = \'then\'; '; - } else { - $ifClause = '\'then\''; - } - out += ' } '; - if ($elsePresent) { - out += ' else { '; - } - } else { - out += ' if (!' + ($nextValid) + ') { '; - } - if ($elsePresent) { - $it.schema = it.schema['else']; - $it.schemaPath = it.schemaPath + '.else'; - $it.errSchemaPath = it.errSchemaPath + '/else'; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - out += ' ' + ($valid) + ' = ' + ($nextValid) + '; '; - if ($thenPresent && $elsePresent) { - $ifClause = 'ifClause' + $lvl; - out += ' var ' + ($ifClause) + ' = \'else\'; '; - } else { - $ifClause = '\'else\''; - } - out += ' } '; - } - out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('if') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match "\' + ' + ($ifClause) + ' + \'" schema\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; return false; '; - } - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - } else { - if ($breakOnError) { - out += ' if (true) { '; - } - } - return out; - } - - },{}],39:[function(require,module,exports){ - 'use strict'; - -//all requires must be explicit because browserify won't work with dynamic requires - module.exports = { - '$ref': require('./ref'), - allOf: require('./allOf'), - anyOf: require('./anyOf'), - '$comment': require('./comment'), - const: require('./const'), - contains: require('./contains'), - dependencies: require('./dependencies'), - 'enum': require('./enum'), - format: require('./format'), - 'if': require('./if'), - items: require('./items'), - maximum: require('./_limit'), - minimum: require('./_limit'), - maxItems: require('./_limitItems'), - minItems: require('./_limitItems'), - maxLength: require('./_limitLength'), - minLength: require('./_limitLength'), - maxProperties: require('./_limitProperties'), - minProperties: require('./_limitProperties'), - multipleOf: require('./multipleOf'), - not: require('./not'), - oneOf: require('./oneOf'), - pattern: require('./pattern'), - properties: require('./properties'), - propertyNames: require('./propertyNames'), - required: require('./required'), - uniqueItems: require('./uniqueItems'), - validate: require('./validate') - }; - - },{"./_limit":25,"./_limitItems":26,"./_limitLength":27,"./_limitProperties":28,"./allOf":29,"./anyOf":30,"./comment":31,"./const":32,"./contains":33,"./dependencies":35,"./enum":36,"./format":37,"./if":38,"./items":40,"./multipleOf":41,"./not":42,"./oneOf":43,"./pattern":44,"./properties":45,"./propertyNames":46,"./ref":47,"./required":48,"./uniqueItems":49,"./validate":50}],40:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_items(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $idx = 'i' + $lvl, - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $currentBaseId = it.baseId; - out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; - if (Array.isArray($schema)) { - var $additionalItems = it.schema.additionalItems; - if ($additionalItems === false) { - out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; '; - var $currErrSchemaPath = $errSchemaPath; - $errSchemaPath = it.errSchemaPath + '/additionalItems'; - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('additionalItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have more than ' + ($schema.length) + ' items\' '; - } - if (it.opts.verbose) { - out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - $errSchemaPath = $currErrSchemaPath; - if ($breakOnError) { - $closingBraces += '}'; - out += ' else { '; - } - } - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { '; - var $passData = $data + '[' + $i + ']'; - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true); - $it.dataPathArr[$dataNxt] = $i; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) { - $it.schema = $additionalItems; - $it.schemaPath = it.schemaPath + '.additionalItems'; - $it.errSchemaPath = it.errSchemaPath + '/additionalItems'; - out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); - var $passData = $data + '[' + $idx + ']'; - $it.dataPathArr[$dataNxt] = $idx; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - out += ' } } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) { - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); - var $passData = $data + '[' + $idx + ']'; - $it.dataPathArr[$dataNxt] = $idx; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - out += ' }'; - } - if ($breakOnError) { - out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; - } - return out; - } - - },{}],41:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_multipleOf(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (!($isData || typeof $schema == 'number')) { - throw new Error($keyword + ' must be number'); - } - out += 'var division' + ($lvl) + ';if ('; - if ($isData) { - out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || '; - } - out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', '; - if (it.opts.multipleOfPrecision) { - out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' '; - } else { - out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') '; - } - out += ' ) '; - if ($isData) { - out += ' ) '; - } - out += ' ) { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('multipleOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be multiple of '; - if ($isData) { - out += '\' + ' + ($schemaValue); - } else { - out += '' + ($schemaValue) + '\''; - } - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; - } - - },{}],42:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_not(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - $it.level++; - var $nextValid = 'valid' + $it.level; - if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) { - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - out += ' var ' + ($errs) + ' = errors; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - $it.createErrors = false; - var $allErrorsOption; - if ($it.opts.allErrors) { - $allErrorsOption = $it.opts.allErrors; - $it.opts.allErrors = false; - } - out += ' ' + (it.validate($it)) + ' '; - $it.createErrors = true; - if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption; - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' if (' + ($nextValid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT be valid\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; - if (it.opts.allErrors) { - out += ' } '; - } - } else { - out += ' var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT be valid\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if ($breakOnError) { - out += ' if (false) { '; - } - } - return out; - } - - },{}],43:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_oneOf(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $currentBaseId = $it.baseId, - $prevValid = 'prevValid' + $lvl, - $passingSchemas = 'passingSchemas' + $lvl; - out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var arr1 = $schema; - if (arr1) { - var $sch, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $sch = arr1[$i += 1]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - $it.schema = $sch; - $it.schemaPath = $schemaPath + '[' + $i + ']'; - $it.errSchemaPath = $errSchemaPath + '/' + $i; - out += ' ' + (it.validate($it)) + ' '; - $it.baseId = $currentBaseId; - } else { - out += ' var ' + ($nextValid) + ' = true; '; - } - if ($i) { - out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { '; - $closingBraces += '}'; - } - out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }'; - } - } - it.compositeRule = $it.compositeRule = $wasComposite; - out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('oneOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match exactly one schema in oneOf\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; return false; '; - } - } - out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }'; - if (it.opts.allErrors) { - out += ' } '; - } - return out; - } - - },{}],44:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_pattern(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema); - out += 'if ( '; - if ($isData) { - out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || '; - } - out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('pattern') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: '; - if ($isData) { - out += '' + ($schemaValue); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should match pattern "'; - if ($isData) { - out += '\' + ' + ($schemaValue) + ' + \''; - } else { - out += '' + (it.util.escapeQuotes($schema)); - } - out += '"\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + (it.util.toQuotedString($schema)); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += '} '; - if ($breakOnError) { - out += ' else { '; - } - return out; - } - - },{}],45:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_properties(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - var $key = 'key' + $lvl, - $idx = 'idx' + $lvl, - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $dataProperties = 'dataProperties' + $lvl; - var $schemaKeys = Object.keys($schema || {}).filter(notProto), - $pProperties = it.schema.patternProperties || {}, - $pPropertyKeys = Object.keys($pProperties).filter(notProto), - $aProperties = it.schema.additionalProperties, - $someProperties = $schemaKeys.length || $pPropertyKeys.length, - $noAdditional = $aProperties === false, - $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length, - $removeAdditional = it.opts.removeAdditional, - $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional, - $ownProperties = it.opts.ownProperties, - $currentBaseId = it.baseId; - var $required = it.schema.required; - if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) { - var $requiredHash = it.util.toHash($required); - } - - function notProto(p) { - return p !== '__proto__'; - } - out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;'; - if ($ownProperties) { - out += ' var ' + ($dataProperties) + ' = undefined;'; - } - if ($checkAdditional) { - if ($ownProperties) { - out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; - } else { - out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; - } - if ($someProperties) { - out += ' var isAdditional' + ($lvl) + ' = !(false '; - if ($schemaKeys.length) { - if ($schemaKeys.length > 8) { - out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') '; - } else { - var arr1 = $schemaKeys; - if (arr1) { - var $propertyKey, i1 = -1, - l1 = arr1.length - 1; - while (i1 < l1) { - $propertyKey = arr1[i1 += 1]; - out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' '; - } - } - } - } - if ($pPropertyKeys.length) { - var arr2 = $pPropertyKeys; - if (arr2) { - var $pProperty, $i = -1, - l2 = arr2.length - 1; - while ($i < l2) { - $pProperty = arr2[$i += 1]; - out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') '; - } - } - } - out += ' ); if (isAdditional' + ($lvl) + ') { '; - } - if ($removeAdditional == 'all') { - out += ' delete ' + ($data) + '[' + ($key) + ']; '; - } else { - var $currentErrorPath = it.errorPath; - var $additionalProperty = '\' + ' + $key + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - } - if ($noAdditional) { - if ($removeAdditional) { - out += ' delete ' + ($data) + '[' + ($key) + ']; '; - } else { - out += ' ' + ($nextValid) + ' = false; '; - var $currErrSchemaPath = $errSchemaPath; - $errSchemaPath = it.errSchemaPath + '/additionalProperties'; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('additionalProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \'' + ($additionalProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is an invalid additional property'; - } else { - out += 'should NOT have additional properties'; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - $errSchemaPath = $currErrSchemaPath; - if ($breakOnError) { - out += ' break; '; - } - } - } else if ($additionalIsSchema) { - if ($removeAdditional == 'failing') { - out += ' var ' + ($errs) + ' = errors; '; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - $it.schema = $aProperties; - $it.schemaPath = it.schemaPath + '.additionalProperties'; - $it.errSchemaPath = it.errSchemaPath + '/additionalProperties'; - $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - var $passData = $data + '[' + $key + ']'; - $it.dataPathArr[$dataNxt] = $key; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } '; - it.compositeRule = $it.compositeRule = $wasComposite; - } else { - $it.schema = $aProperties; - $it.schemaPath = it.schemaPath + '.additionalProperties'; - $it.errSchemaPath = it.errSchemaPath + '/additionalProperties'; - $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - var $passData = $data + '[' + $key + ']'; - $it.dataPathArr[$dataNxt] = $key; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - } - } - it.errorPath = $currentErrorPath; - } - if ($someProperties) { - out += ' } '; - } - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - var $useDefaults = it.opts.useDefaults && !it.compositeRule; - if ($schemaKeys.length) { - var arr3 = $schemaKeys; - if (arr3) { - var $propertyKey, i3 = -1, - l3 = arr3.length - 1; - while (i3 < l3) { - $propertyKey = arr3[i3 += 1]; - var $sch = $schema[$propertyKey]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - var $prop = it.util.getProperty($propertyKey), - $passData = $data + $prop, - $hasDefault = $useDefaults && $sch.default !== undefined; - $it.schema = $sch; - $it.schemaPath = $schemaPath + $prop; - $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey); - $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers); - $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey); - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - $code = it.util.varReplace($code, $nextData, $passData); - var $useData = $passData; - } else { - var $useData = $nextData; - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; '; - } - if ($hasDefault) { - out += ' ' + ($code) + ' '; - } else { - if ($requiredHash && $requiredHash[$propertyKey]) { - out += ' if ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') { ' + ($nextValid) + ' = false; '; - var $currentErrorPath = it.errorPath, - $currErrSchemaPath = $errSchemaPath, - $missingProperty = it.util.escapeQuotes($propertyKey); - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); - } - $errSchemaPath = it.errSchemaPath + '/required'; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - $errSchemaPath = $currErrSchemaPath; - it.errorPath = $currentErrorPath; - out += ' } else { '; - } else { - if ($breakOnError) { - out += ' if ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') { ' + ($nextValid) + ' = true; } else { '; - } else { - out += ' if (' + ($useData) + ' !== undefined '; - if ($ownProperties) { - out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ' ) { '; - } - } - out += ' ' + ($code) + ' } '; - } - } - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - if ($pPropertyKeys.length) { - var arr4 = $pPropertyKeys; - if (arr4) { - var $pProperty, i4 = -1, - l4 = arr4.length - 1; - while (i4 < l4) { - $pProperty = arr4[i4 += 1]; - var $sch = $pProperties[$pProperty]; - if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) { - $it.schema = $sch; - $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty); - $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty); - if ($ownProperties) { - out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; - } else { - out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; - } - out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { '; - $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); - var $passData = $data + '[' + $key + ']'; - $it.dataPathArr[$dataNxt] = $key; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - if ($breakOnError) { - out += ' if (!' + ($nextValid) + ') break; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else ' + ($nextValid) + ' = true; '; - } - out += ' } '; - if ($breakOnError) { - out += ' if (' + ($nextValid) + ') { '; - $closingBraces += '}'; - } - } - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; - } - return out; - } - - },{}],46:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_propertyNames(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $errs = 'errs__' + $lvl; - var $it = it.util.copy(it); - var $closingBraces = ''; - $it.level++; - var $nextValid = 'valid' + $it.level; - out += 'var ' + ($errs) + ' = errors;'; - if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) { - $it.schema = $schema; - $it.schemaPath = $schemaPath; - $it.errSchemaPath = $errSchemaPath; - var $key = 'key' + $lvl, - $idx = 'idx' + $lvl, - $i = 'i' + $lvl, - $invalidName = '\' + ' + $key + ' + \'', - $dataNxt = $it.dataLevel = it.dataLevel + 1, - $nextData = 'data' + $dataNxt, - $dataProperties = 'dataProperties' + $lvl, - $ownProperties = it.opts.ownProperties, - $currentBaseId = it.baseId; - if ($ownProperties) { - out += ' var ' + ($dataProperties) + ' = undefined; '; - } - if ($ownProperties) { - out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; - } else { - out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; - } - out += ' var startErrs' + ($lvl) + ' = errors; '; - var $passData = $key; - var $wasComposite = it.compositeRule; - it.compositeRule = $it.compositeRule = true; - var $code = it.validate($it); - $it.baseId = $currentBaseId; - if (it.util.varOccurences($code, $nextData) < 2) { - out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; - } else { - out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; - } - it.compositeRule = $it.compositeRule = $wasComposite; - out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) { - $required[$required.length] = $property; - } - } - } - } else { - var $required = $schema; - } - } - if ($isData || $required.length) { - var $currentErrorPath = it.errorPath, - $loopRequired = $isData || $required.length >= it.opts.loopRequired, - $ownProperties = it.opts.ownProperties; - if ($breakOnError) { - out += ' var missing' + ($lvl) + '; '; - if ($loopRequired) { - if (!$isData) { - out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; '; - } - var $i = 'i' + $lvl, - $propertyPath = 'schema' + $lvl + '[' + $i + ']', - $missingProperty = '\' + ' + $propertyPath + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); - } - out += ' var ' + ($valid) + ' = true; '; - if ($isData) { - out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {'; - } - out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined '; - if ($ownProperties) { - out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) '; - } - out += '; if (!' + ($valid) + ') break; } '; - if ($isData) { - out += ' } '; - } - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { '; - } else { - out += ' if ( '; - var arr2 = $required; - if (arr2) { - var $propertyKey, $i = -1, - l2 = arr2.length - 1; - while ($i < l2) { - $propertyKey = arr2[$i += 1]; - if ($i) { - out += ' || '; - } - var $prop = it.util.getProperty($propertyKey), - $useData = $data + $prop; - out += ' ( ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) '; - } - } - out += ') { '; - var $propertyPath = 'missing' + $lvl, - $missingProperty = '\' + ' + $propertyPath + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath; - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } else { '; - } - } else { - if ($loopRequired) { - if (!$isData) { - out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; '; - } - var $i = 'i' + $lvl, - $propertyPath = 'schema' + $lvl + '[' + $i + ']', - $missingProperty = '\' + ' + $propertyPath + ' + \''; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); - } - if ($isData) { - out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { '; - } - out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) '; - } - out += ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } '; - if ($isData) { - out += ' } '; - } - } else { - var arr3 = $required; - if (arr3) { - var $propertyKey, i3 = -1, - l3 = arr3.length - 1; - while (i3 < l3) { - $propertyKey = arr3[i3 += 1]; - var $prop = it.util.getProperty($propertyKey), - $missingProperty = it.util.escapeQuotes($propertyKey), - $useData = $data + $prop; - if (it.opts._errorDataPathProperty) { - it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); - } - out += ' if ( ' + ($useData) + ' === undefined '; - if ($ownProperties) { - out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; - } - out += ') { var err = '; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \''; - if (it.opts._errorDataPathProperty) { - out += 'is a required property'; - } else { - out += 'should have required property \\\'' + ($missingProperty) + '\\\''; - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } '; - } - } - } - } - it.errorPath = $currentErrorPath; - } else if ($breakOnError) { - out += ' if (true) {'; - } - return out; - } - - },{}],49:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_uniqueItems(it, $keyword, $ruleType) { - var out = ' '; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - var $isData = it.opts.$data && $schema && $schema.$data, - $schemaValue; - if ($isData) { - out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; - $schemaValue = 'schema' + $lvl; - } else { - $schemaValue = $schema; - } - if (($schema || $isData) && it.opts.uniqueItems !== false) { - if ($isData) { - out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'boolean\') ' + ($valid) + ' = false; else { '; - } - out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { '; - var $itemType = it.schema.items && it.schema.items.type, - $typeIsArray = Array.isArray($itemType); - if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) { - out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } '; - } else { - out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; '; - var $method = 'checkDataType' + ($typeIsArray ? 's' : ''); - out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; '; - if ($typeIsArray) { - out += ' if (typeof item == \'string\') item = \'"\' + item; '; - } - out += ' if (typeof itemIndices[item] == \'number\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } '; - } - out += ' } '; - if ($isData) { - out += ' } '; - } - out += ' if (!' + ($valid) + ') { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ('uniqueItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } '; - if (it.opts.messages !== false) { - out += ' , message: \'should NOT have duplicate items (items ## \' + j + \' and \' + i + \' are identical)\' '; - } - if (it.opts.verbose) { - out += ' , schema: '; - if ($isData) { - out += 'validate.schema' + ($schemaPath); - } else { - out += '' + ($schema); - } - out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - if ($breakOnError) { - out += ' else { '; - } - } else { - if ($breakOnError) { - out += ' if (true) { '; - } - } - return out; - } - - },{}],50:[function(require,module,exports){ - 'use strict'; - module.exports = function generate_validate(it, $keyword, $ruleType) { - var out = ''; - var $async = it.schema.$async === true, - $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'), - $id = it.self._getId(it.schema); - if (it.opts.strictKeywords) { - var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords); - if ($unknownKwd) { - var $keywordsMsg = 'unknown keyword: ' + $unknownKwd; - if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg); - else throw new Error($keywordsMsg); - } - } - if (it.isTop) { - out += ' var validate = '; - if ($async) { - it.async = true; - out += 'async '; - } - out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \'use strict\'; '; - if ($id && (it.opts.sourceCode || it.opts.processCode)) { - out += ' ' + ('/\*# sourceURL=' + $id + ' */') + ' '; - } - } - if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) { - var $keyword = 'false schema'; - var $lvl = it.level; - var $dataLvl = it.dataLevel; - var $schema = it.schema[$keyword]; - var $schemaPath = it.schemaPath + it.util.getProperty($keyword); - var $errSchemaPath = it.errSchemaPath + '/' + $keyword; - var $breakOnError = !it.opts.allErrors; - var $errorKeyword; - var $data = 'data' + ($dataLvl || ''); - var $valid = 'valid' + $lvl; - if (it.schema === false) { - if (it.isTop) { - $breakOnError = true; - } else { - out += ' var ' + ($valid) + ' = false; '; - } - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'false schema') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; - if (it.opts.messages !== false) { - out += ' , message: \'boolean schema is false\' '; - } - if (it.opts.verbose) { - out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - } else { - if (it.isTop) { - if ($async) { - out += ' return data; '; - } else { - out += ' validate.errors = null; return true; '; - } - } else { - out += ' var ' + ($valid) + ' = true; '; - } - } - if (it.isTop) { - out += ' }; return validate; '; - } - return out; - } - if (it.isTop) { - var $top = it.isTop, - $lvl = it.level = 0, - $dataLvl = it.dataLevel = 0, - $data = 'data'; - it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema)); - it.baseId = it.baseId || it.rootId; - delete it.isTop; - it.dataPathArr = [""]; - if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) { - var $defaultMsg = 'default is ignored in the schema root'; - if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); - else throw new Error($defaultMsg); - } - out += ' var vErrors = null; '; - out += ' var errors = 0; '; - out += ' if (rootData === undefined) rootData = data; '; - } else { - var $lvl = it.level, - $dataLvl = it.dataLevel, - $data = 'data' + ($dataLvl || ''); - if ($id) it.baseId = it.resolve.url(it.baseId, $id); - if ($async && !it.async) throw new Error('async schema in sync schema'); - out += ' var errs_' + ($lvl) + ' = errors;'; - } - var $valid = 'valid' + $lvl, - $breakOnError = !it.opts.allErrors, - $closingBraces1 = '', - $closingBraces2 = ''; - var $errorKeyword; - var $typeSchema = it.schema.type, - $typeIsArray = Array.isArray($typeSchema); - if ($typeSchema && it.opts.nullable && it.schema.nullable === true) { - if ($typeIsArray) { - if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null'); - } else if ($typeSchema != 'null') { - $typeSchema = [$typeSchema, 'null']; - $typeIsArray = true; - } - } - if ($typeIsArray && $typeSchema.length == 1) { - $typeSchema = $typeSchema[0]; - $typeIsArray = false; - } - if (it.schema.$ref && $refKeywords) { - if (it.opts.extendRefs == 'fail') { - throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)'); - } else if (it.opts.extendRefs !== true) { - $refKeywords = false; - it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"'); - } - } - if (it.schema.$comment && it.opts.$comment) { - out += ' ' + (it.RULES.all.$comment.code(it, '$comment')); - } - if ($typeSchema) { - if (it.opts.coerceTypes) { - var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema); - } - var $rulesGroup = it.RULES.types[$typeSchema]; - if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) { - var $schemaPath = it.schemaPath + '.type', - $errSchemaPath = it.errSchemaPath + '/type'; - var $schemaPath = it.schemaPath + '.type', - $errSchemaPath = it.errSchemaPath + '/type', - $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType'; - out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { '; - if ($coerceToTypes) { - var $dataType = 'dataType' + $lvl, - $coerced = 'coerced' + $lvl; - out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; '; - if (it.opts.coerceTypes == 'array') { - out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } '; - } - out += ' if (' + ($coerced) + ' !== undefined) ; '; - var arr1 = $coerceToTypes; - if (arr1) { - var $type, $i = -1, - l1 = arr1.length - 1; - while ($i < l1) { - $type = arr1[$i += 1]; - if ($type == 'string') { - out += ' else if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; '; - } else if ($type == 'number' || $type == 'integer') { - out += ' else if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' '; - if ($type == 'integer') { - out += ' && !(' + ($data) + ' % 1)'; - } - out += ')) ' + ($coerced) + ' = +' + ($data) + '; '; - } else if ($type == 'boolean') { - out += ' else if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; '; - } else if ($type == 'null') { - out += ' else if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; '; - } else if (it.opts.coerceTypes == 'array' && $type == 'array') { - out += ' else if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; '; - } - } - } - out += ' else { '; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be '; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } if (' + ($coerced) + ' !== undefined) { '; - var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', - $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; - out += ' ' + ($data) + ' = ' + ($coerced) + '; '; - if (!$dataLvl) { - out += 'if (' + ($parentData) + ' !== undefined)'; - } - out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } '; - } else { - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be '; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - } - out += ' } '; - } - } - if (it.schema.$ref && !$refKeywords) { - out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' '; - if ($breakOnError) { - out += ' } if (errors === '; - if ($top) { - out += '0'; - } else { - out += 'errs_' + ($lvl); - } - out += ') { '; - $closingBraces2 += '}'; - } - } else { - var arr2 = it.RULES; - if (arr2) { - var $rulesGroup, i2 = -1, - l2 = arr2.length - 1; - while (i2 < l2) { - $rulesGroup = arr2[i2 += 1]; - if ($shouldUseGroup($rulesGroup)) { - if ($rulesGroup.type) { - out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { '; - } - if (it.opts.useDefaults) { - if ($rulesGroup.type == 'object' && it.schema.properties) { - var $schema = it.schema.properties, - $schemaKeys = Object.keys($schema); - var arr3 = $schemaKeys; - if (arr3) { - var $propertyKey, i3 = -1, - l3 = arr3.length - 1; - while (i3 < l3) { - $propertyKey = arr3[i3 += 1]; - var $sch = $schema[$propertyKey]; - if ($sch.default !== undefined) { - var $passData = $data + it.util.getProperty($propertyKey); - if (it.compositeRule) { - if (it.opts.strictDefaults) { - var $defaultMsg = 'default is ignored for: ' + $passData; - if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); - else throw new Error($defaultMsg); - } - } else { - out += ' if (' + ($passData) + ' === undefined '; - if (it.opts.useDefaults == 'empty') { - out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' '; - } - out += ' ) ' + ($passData) + ' = '; - if (it.opts.useDefaults == 'shared') { - out += ' ' + (it.useDefault($sch.default)) + ' '; - } else { - out += ' ' + (JSON.stringify($sch.default)) + ' '; - } - out += '; '; - } - } - } - } - } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) { - var arr4 = it.schema.items; - if (arr4) { - var $sch, $i = -1, - l4 = arr4.length - 1; - while ($i < l4) { - $sch = arr4[$i += 1]; - if ($sch.default !== undefined) { - var $passData = $data + '[' + $i + ']'; - if (it.compositeRule) { - if (it.opts.strictDefaults) { - var $defaultMsg = 'default is ignored for: ' + $passData; - if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg); - else throw new Error($defaultMsg); - } - } else { - out += ' if (' + ($passData) + ' === undefined '; - if (it.opts.useDefaults == 'empty') { - out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' '; - } - out += ' ) ' + ($passData) + ' = '; - if (it.opts.useDefaults == 'shared') { - out += ' ' + (it.useDefault($sch.default)) + ' '; - } else { - out += ' ' + (JSON.stringify($sch.default)) + ' '; - } - out += '; '; - } - } - } - } - } - } - var arr5 = $rulesGroup.rules; - if (arr5) { - var $rule, i5 = -1, - l5 = arr5.length - 1; - while (i5 < l5) { - $rule = arr5[i5 += 1]; - if ($shouldUseRule($rule)) { - var $code = $rule.code(it, $rule.keyword, $rulesGroup.type); - if ($code) { - out += ' ' + ($code) + ' '; - if ($breakOnError) { - $closingBraces1 += '}'; - } - } - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces1) + ' '; - $closingBraces1 = ''; - } - if ($rulesGroup.type) { - out += ' } '; - if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) { - out += ' else { '; - var $schemaPath = it.schemaPath + '.type', - $errSchemaPath = it.errSchemaPath + '/type'; - var $$outStack = $$outStack || []; - $$outStack.push(out); - out = ''; /* istanbul ignore else */ - if (it.createErrors !== false) { - out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' } '; - if (it.opts.messages !== false) { - out += ' , message: \'should be '; - if ($typeIsArray) { - out += '' + ($typeSchema.join(",")); - } else { - out += '' + ($typeSchema); - } - out += '\' '; - } - if (it.opts.verbose) { - out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; - } - out += ' } '; - } else { - out += ' {} '; - } - var __err = out; - out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { - /* istanbul ignore if */ - if (it.async) { - out += ' throw new ValidationError([' + (__err) + ']); '; - } else { - out += ' validate.errors = [' + (__err) + ']; return false; '; - } - } else { - out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - } - out += ' } '; - } - } - if ($breakOnError) { - out += ' if (errors === '; - if ($top) { - out += '0'; - } else { - out += 'errs_' + ($lvl); - } - out += ') { '; - $closingBraces2 += '}'; - } - } - } - } - } - if ($breakOnError) { - out += ' ' + ($closingBraces2) + ' '; - } - if ($top) { - if ($async) { - out += ' if (errors === 0) return data; '; - out += ' else throw new ValidationError(vErrors); '; - } else { - out += ' validate.errors = vErrors; '; - out += ' return errors === 0; '; - } - out += ' }; return validate;'; - } else { - out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';'; - } - - function $shouldUseGroup($rulesGroup) { - var rules = $rulesGroup.rules; - for (var i = 0; i < rules.length; i++) - if ($shouldUseRule(rules[i])) return true; - } - - function $shouldUseRule($rule) { - return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule)); - } - - function $ruleImplementsSomeKeyword($rule) { - var impl = $rule.implements; - for (var i = 0; i < impl.length; i++) - if (it.schema[impl[i]] !== undefined) return true; - } - return out; - } - - },{}],51:[function(require,module,exports){ - 'use strict'; - - var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i; - var customRuleCode = require('./dotjs/custom'); - var definitionSchema = require('./definition_schema'); - - module.exports = { - add: addKeyword, - get: getKeyword, - remove: removeKeyword, - validate: validateKeyword - }; - - - /** - * Define custom keyword - * @this Ajv - * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords). - * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`. - * @return {Ajv} this for method chaining - */ - function addKeyword(keyword, definition) { - /* jshint validthis: true */ - /* eslint no-shadow: 0 */ - var RULES = this.RULES; - if (RULES.keywords[keyword]) - throw new Error('Keyword ' + keyword + ' is already defined'); - - if (!IDENTIFIER.test(keyword)) - throw new Error('Keyword ' + keyword + ' is not a valid identifier'); - - if (definition) { - this.validateKeyword(definition, true); - - var dataType = definition.type; - if (Array.isArray(dataType)) { - for (var i=0; i 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // Trim off extra bytes after placeholder bytes are found - // See: https://github.com/beatgammit/base64-js/issues/42 - var validLen = b64.indexOf('=') - if (validLen === -1) validLen = len - - var placeHoldersLen = validLen === len - ? 0 - : 4 - (validLen % 4) - - return [validLen, placeHoldersLen] - } - -// base64 is 4/3 + up to two characters of the original data - function byteLength (b64) { - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen - } - - function _byteLength (b64, validLen, placeHoldersLen) { - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen - } - - function toByteArray (b64) { - var tmp - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - - var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) - - var curByte = 0 - - // if there are placeholders, only get up to the last complete 4 chars - var len = placeHoldersLen > 0 - ? validLen - 4 - : validLen - - var i - for (i = 0; i < len; i += 4) { - tmp = - (revLookup[b64.charCodeAt(i)] << 18) | - (revLookup[b64.charCodeAt(i + 1)] << 12) | - (revLookup[b64.charCodeAt(i + 2)] << 6) | - revLookup[b64.charCodeAt(i + 3)] - arr[curByte++] = (tmp >> 16) & 0xFF - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 2) { - tmp = - (revLookup[b64.charCodeAt(i)] << 2) | - (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 1) { - tmp = - (revLookup[b64.charCodeAt(i)] << 10) | - (revLookup[b64.charCodeAt(i + 1)] << 4) | - (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - return arr - } - - function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + - lookup[num >> 12 & 0x3F] + - lookup[num >> 6 & 0x3F] + - lookup[num & 0x3F] - } - - function encodeChunk (uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = - ((uint8[i] << 16) & 0xFF0000) + - ((uint8[i + 1] << 8) & 0xFF00) + - (uint8[i + 2] & 0xFF) - output.push(tripletToBase64(tmp)) - } - return output.join('') - } - - function fromByteArray (uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes - var parts = [] - var maxChunkLength = 16383 // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1] - parts.push( - lookup[tmp >> 2] + - lookup[(tmp << 4) & 0x3F] + - '==' - ) - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + uint8[len - 1] - parts.push( - lookup[tmp >> 10] + - lookup[(tmp >> 4) & 0x3F] + - lookup[(tmp << 2) & 0x3F] + - '=' - ) - } - - return parts.join('') - } - - },{}],55:[function(require,module,exports){ - - },{}],56:[function(require,module,exports){ - (function (Buffer){(function (){ - /*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - /* eslint-disable no-proto */ - - 'use strict' - - var base64 = require('base64-js') - var ieee754 = require('ieee754') - - exports.Buffer = Buffer - exports.SlowBuffer = SlowBuffer - exports.INSPECT_MAX_BYTES = 50 - - var K_MAX_LENGTH = 0x7fffffff - exports.kMaxLength = K_MAX_LENGTH - - /** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Print warning and recommend using `buffer` v4.x which has an Object - * implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * We report that the browser does not support typed arrays if the are not subclassable - * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` - * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support - * for __proto__ and has a buggy typed array implementation. - */ - Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() - - if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && - typeof console.error === 'function') { - console.error( - 'This browser lacks typed array (Uint8Array) support which is required by ' + - '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' - ) - } - - function typedArraySupport () { - // Can typed array instances can be augmented? - try { - var arr = new Uint8Array(1) - arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } } - return arr.foo() === 42 - } catch (e) { - return false - } - } - - Object.defineProperty(Buffer.prototype, 'parent', { - enumerable: true, - get: function () { - if (!Buffer.isBuffer(this)) return undefined - return this.buffer - } - }) - - Object.defineProperty(Buffer.prototype, 'offset', { - enumerable: true, - get: function () { - if (!Buffer.isBuffer(this)) return undefined - return this.byteOffset - } - }) - - function createBuffer (length) { - if (length > K_MAX_LENGTH) { - throw new RangeError('The value "' + length + '" is invalid for option "size"') - } - // Return an augmented `Uint8Array` instance - var buf = new Uint8Array(length) - buf.__proto__ = Buffer.prototype - return buf - } - - /** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - - function Buffer (arg, encodingOrOffset, length) { - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new TypeError( - 'The "string" argument must be of type string. Received type number' - ) - } - return allocUnsafe(arg) - } - return from(arg, encodingOrOffset, length) - } - -// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 - if (typeof Symbol !== 'undefined' && Symbol.species != null && - Buffer[Symbol.species] === Buffer) { - Object.defineProperty(Buffer, Symbol.species, { - value: null, - configurable: true, - enumerable: false, - writable: false - }) - } - - Buffer.poolSize = 8192 // not used by this implementation - - function from (value, encodingOrOffset, length) { - if (typeof value === 'string') { - return fromString(value, encodingOrOffset) - } - - if (ArrayBuffer.isView(value)) { - return fromArrayLike(value) - } - - if (value == null) { - throw TypeError( - 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + - 'or Array-like Object. Received type ' + (typeof value) - ) - } - - if (isInstance(value, ArrayBuffer) || - (value && isInstance(value.buffer, ArrayBuffer))) { - return fromArrayBuffer(value, encodingOrOffset, length) - } - - if (typeof value === 'number') { - throw new TypeError( - 'The "value" argument must not be of type number. Received type number' - ) - } - - var valueOf = value.valueOf && value.valueOf() - if (valueOf != null && valueOf !== value) { - return Buffer.from(valueOf, encodingOrOffset, length) - } - - var b = fromObject(value) - if (b) return b - - if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && - typeof value[Symbol.toPrimitive] === 'function') { - return Buffer.from( - value[Symbol.toPrimitive]('string'), encodingOrOffset, length - ) - } - - throw new TypeError( - 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + - 'or Array-like Object. Received type ' + (typeof value) - ) - } - - /** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ - Buffer.from = function (value, encodingOrOffset, length) { - return from(value, encodingOrOffset, length) - } - -// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: -// https://github.com/feross/buffer/pull/148 - Buffer.prototype.__proto__ = Uint8Array.prototype - Buffer.__proto__ = Uint8Array - - function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be of type number') - } else if (size < 0) { - throw new RangeError('The value "' + size + '" is invalid for option "size"') - } - } - - function alloc (size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(size).fill(fill, encoding) - : createBuffer(size).fill(fill) - } - return createBuffer(size) - } - - /** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ - Buffer.alloc = function (size, fill, encoding) { - return alloc(size, fill, encoding) - } - - function allocUnsafe (size) { - assertSize(size) - return createBuffer(size < 0 ? 0 : checked(size) | 0) - } - - /** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ - Buffer.allocUnsafe = function (size) { - return allocUnsafe(size) - } - /** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ - Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(size) - } - - function fromString (string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - - var length = byteLength(string, encoding) | 0 - var buf = createBuffer(length) - - var actual = buf.write(string, encoding) - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - buf = buf.slice(0, actual) - } - - return buf - } - - function fromArrayLike (array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0 - var buf = createBuffer(length) - for (var i = 0; i < length; i += 1) { - buf[i] = array[i] & 255 - } - return buf - } - - function fromArrayBuffer (array, byteOffset, length) { - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('"offset" is outside of buffer bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('"length" is outside of buffer bounds') - } - - var buf - if (byteOffset === undefined && length === undefined) { - buf = new Uint8Array(array) - } else if (length === undefined) { - buf = new Uint8Array(array, byteOffset) - } else { - buf = new Uint8Array(array, byteOffset, length) - } - - // Return an augmented `Uint8Array` instance - buf.__proto__ = Buffer.prototype - return buf - } - - function fromObject (obj) { - if (Buffer.isBuffer(obj)) { - var len = checked(obj.length) | 0 - var buf = createBuffer(len) - - if (buf.length === 0) { - return buf - } - - obj.copy(buf, 0, 0, len) - return buf - } - - if (obj.length !== undefined) { - if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { - return createBuffer(0) - } - return fromArrayLike(obj) - } - - if (obj.type === 'Buffer' && Array.isArray(obj.data)) { - return fromArrayLike(obj.data) - } - } - - function checked (length) { - // Note: cannot use `length < K_MAX_LENGTH` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= K_MAX_LENGTH) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') - } - return length | 0 - } - - function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) - } - - Buffer.isBuffer = function isBuffer (b) { - return b != null && b._isBuffer === true && - b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false - } - - Buffer.compare = function compare (a, b) { - if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength) - if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength) - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError( - 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' - ) - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - } - - Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } - } - - Buffer.concat = function concat (list, length) { - if (!Array.isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer.alloc(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } - - var buffer = Buffer.allocUnsafe(length) - var pos = 0 - for (i = 0; i < list.length; ++i) { - var buf = list[i] - if (isInstance(buf, Uint8Array)) { - buf = Buffer.from(buf) - } - if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos) - pos += buf.length - } - return buffer - } - - function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - throw new TypeError( - 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + - 'Received type ' + typeof string - ) - } - - var len = string.length - var mustMatch = (arguments.length > 2 && arguments[2] === true) - if (!mustMatch && len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) { - return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8 - } - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - Buffer.byteLength = byteLength - - function slowToString (encoding, start, end) { - var loweredCase = false - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } - } - -// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) -// to detect a Buffer instance. It's not possible to use `instanceof Buffer` -// reliably in a browserify context because there could be multiple different -// copies of the 'buffer' package in use. This method works even for Buffer -// instances that were created from another copy of the `buffer` package. -// See: https://github.com/feross/buffer/issues/154 - Buffer.prototype._isBuffer = true - - function swap (b, n, m) { - var i = b[n] - b[n] = b[m] - b[m] = i - } - - Buffer.prototype.swap16 = function swap16 () { - var len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this - } - - Buffer.prototype.swap32 = function swap32 () { - var len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this - } - - Buffer.prototype.swap64 = function swap64 () { - var len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this - } - - Buffer.prototype.toString = function toString () { - var length = this.length - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) - } - - Buffer.prototype.toLocaleString = Buffer.prototype.toString - - Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 - } - - Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim() - if (this.length > max) str += ' ... ' - return '' - } - - Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (isInstance(target, Uint8Array)) { - target = Buffer.from(target, target.offset, target.byteLength) - } - if (!Buffer.isBuffer(target)) { - throw new TypeError( - 'The "target" argument must be one of type Buffer or Uint8Array. ' + - 'Received type ' + (typeof target) - ) - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - var x = thisEnd - thisStart - var y = end - start - var len = Math.min(x, y) - - var thisCopy = this.slice(thisStart, thisEnd) - var targetCopy = target.slice(start, end) - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - } - -// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, -// OR the last index of `val` in `buffer` at offset <= `byteOffset`. -// -// Arguments: -// - buffer - a Buffer to search -// - val - a string, Buffer, or number -// - byteOffset - an index into `buffer`; will be clamped to an int32 -// - encoding - an optional encoding, relevant is val is a string -// - dir - true for indexOf, false for lastIndexOf - function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (numberIsNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') - } - - function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1 - var arrLength = arr.length - var valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i - if (dir) { - var foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - var found = true - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i - } - } - - return -1 - } - - Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 - } - - Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) - } - - Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) - } - - function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - var strLen = string.length - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (numberIsNaN(parsed)) return i - buf[offset + i] = parsed - } - return i - } - - function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) - } - - function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) - } - - function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) - } - - function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) - } - - function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) - } - - Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset >>> 0 - if (isFinite(length)) { - length = length >>> 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - - Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } - } - - function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } - } - - function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) - } - -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety - var MAX_ARGUMENTS_LENGTH = 0x1000 - - function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res - } - - function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret - } - - function latin1Slice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret - } - - function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; ++i) { - out += toHex(buf[i]) - } - return out - } - - function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) - } - return res - } - - Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf = this.subarray(start, end) - // Return an augmented `Uint8Array` instance - newBuf.__proto__ = Buffer.prototype - return newBuf - } - - /* - * Need to make sure that buffer isn't trying to write out of bounds. - */ - function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') - } - - Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val - } - - Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val - } - - Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] - } - - Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) - } - - Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] - } - - Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) - } - - Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) - } - - Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val - } - - Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val - } - - Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) - } - - Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val - } - - Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val - } - - Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) - } - - Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) - } - - Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) - } - - Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) - } - - Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) - } - - Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) - } - - function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') - } - - Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - this[offset] = (value & 0xff) - return offset + 1 - } - - Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 - } - - Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 - } - - Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - return offset + 4 - } - - Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 - } - - Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 - } - - Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 - } - - Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 - } - - Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - return offset + 4 - } - - Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 - } - - function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') - } - - function writeFloat (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 - } - - Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) - } - - Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) - } - - function writeDouble (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 - } - - Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) - } - - Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) - } - -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) - Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('Index out of range') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - - if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { - // Use built-in when available, missing from IE11 - this.copyWithin(targetStart, start, end) - } else if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (var i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start] - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, end), - targetStart - ) - } - - return len - } - -// Usage: -// buffer.fill(number[, offset[, end]]) -// buffer.fill(buffer[, offset[, end]]) -// buffer.fill(string[, offset[, end]][, encoding]) - Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - if (val.length === 1) { - var code = val.charCodeAt(0) - if ((encoding === 'utf8' && code < 128) || - encoding === 'latin1') { - // Fast path: If `val` fits into a single byte, use that numeric value. - val = code - } - } - } else if (typeof val === 'number') { - val = val & 255 - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - - if (!val) val = 0 - - var i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - var bytes = Buffer.isBuffer(val) - ? val - : Buffer.from(val, encoding) - var len = bytes.length - if (len === 0) { - throw new TypeError('The value "' + val + - '" is invalid for argument "value"') - } - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } - - return this - } - -// HELPER FUNCTIONS -// ================ - - var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g - - function base64clean (str) { - // Node takes equal signs as end of the Base64 encoding - str = str.split('=')[0] - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = str.trim().replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str - } - - function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) - } - - function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes - } - - function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray - } - - function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray - } - - function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) - } - - function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i - } - -// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass -// the `instanceof` check but they should be treated as of that type. -// See: https://github.com/feross/buffer/issues/166 - function isInstance (obj, type) { - return obj instanceof type || - (obj != null && obj.constructor != null && obj.constructor.name != null && - obj.constructor.name === type.name) - } - function numberIsNaN (obj) { - // For IE11 support - return obj !== obj // eslint-disable-line no-self-compare - } - - }).call(this)}).call(this,require("buffer").Buffer) - },{"base64-js":54,"buffer":56,"ieee754":62}],57:[function(require,module,exports){ - (function (Buffer){(function (){ - var clone = (function() { - 'use strict'; - - function _instanceof(obj, type) { - return type != null && obj instanceof type; - } - - var nativeMap; - try { - nativeMap = Map; - } catch(_) { - // maybe a reference error because no `Map`. Give it a dummy value that no - // value will ever be an instanceof. - nativeMap = function() {}; - } - - var nativeSet; - try { - nativeSet = Set; - } catch(_) { - nativeSet = function() {}; - } - - var nativePromise; - try { - nativePromise = Promise; - } catch(_) { - nativePromise = function() {}; - } - - /** - * Clones (copies) an Object using deep copying. - * - * This function supports circular references by default, but if you are certain - * there are no circular references in your object, you can save some CPU time - * by calling clone(obj, false). - * - * Caution: if `circular` is false and `parent` contains circular references, - * your program may enter an infinite loop and crash. - * - * @param `parent` - the object to be cloned - * @param `circular` - set to true if the object to be cloned may contain - * circular references. (optional - true by default) - * @param `depth` - set to a number if the object is only to be cloned to - * a particular depth. (optional - defaults to Infinity) - * @param `prototype` - sets the prototype to be used when cloning an object. - * (optional - defaults to parent prototype). - * @param `includeNonEnumerable` - set to true if the non-enumerable properties - * should be cloned as well. Non-enumerable properties on the prototype - * chain will be ignored. (optional - false by default) - */ - function clone(parent, circular, depth, prototype, includeNonEnumerable) { - if (typeof circular === 'object') { - depth = circular.depth; - prototype = circular.prototype; - includeNonEnumerable = circular.includeNonEnumerable; - circular = circular.circular; - } - // maintain two arrays for circular references, where corresponding parents - // and children have the same index - var allParents = []; - var allChildren = []; - - var useBuffer = typeof Buffer != 'undefined'; - - if (typeof circular == 'undefined') - circular = true; - - if (typeof depth == 'undefined') - depth = Infinity; - - // recurse this function so we don't reset allParents and allChildren - function _clone(parent, depth) { - // cloning null always returns null - if (parent === null) - return null; - - if (depth === 0) - return parent; - - var child; - var proto; - if (typeof parent != 'object') { - return parent; - } - - if (_instanceof(parent, nativeMap)) { - child = new nativeMap(); - } else if (_instanceof(parent, nativeSet)) { - child = new nativeSet(); - } else if (_instanceof(parent, nativePromise)) { - child = new nativePromise(function (resolve, reject) { - parent.then(function(value) { - resolve(_clone(value, depth - 1)); - }, function(err) { - reject(_clone(err, depth - 1)); - }); - }); - } else if (clone.__isArray(parent)) { - child = []; - } else if (clone.__isRegExp(parent)) { - child = new RegExp(parent.source, __getRegExpFlags(parent)); - if (parent.lastIndex) child.lastIndex = parent.lastIndex; - } else if (clone.__isDate(parent)) { - child = new Date(parent.getTime()); - } else if (useBuffer && Buffer.isBuffer(parent)) { - if (Buffer.allocUnsafe) { - // Node.js >= 4.5.0 - child = Buffer.allocUnsafe(parent.length); - } else { - // Older Node.js versions - child = new Buffer(parent.length); - } - parent.copy(child); - return child; - } else if (_instanceof(parent, Error)) { - child = Object.create(parent); - } else { - if (typeof prototype == 'undefined') { - proto = Object.getPrototypeOf(parent); - child = Object.create(proto); - } - else { - child = Object.create(prototype); - proto = prototype; - } - } - - if (circular) { - var index = allParents.indexOf(parent); - - if (index != -1) { - return allChildren[index]; - } - allParents.push(parent); - allChildren.push(child); - } - - if (_instanceof(parent, nativeMap)) { - parent.forEach(function(value, key) { - var keyChild = _clone(key, depth - 1); - var valueChild = _clone(value, depth - 1); - child.set(keyChild, valueChild); - }); - } - if (_instanceof(parent, nativeSet)) { - parent.forEach(function(value) { - var entryChild = _clone(value, depth - 1); - child.add(entryChild); - }); - } - - for (var i in parent) { - var attrs; - if (proto) { - attrs = Object.getOwnPropertyDescriptor(proto, i); - } - - if (attrs && attrs.set == null) { - continue; - } - child[i] = _clone(parent[i], depth - 1); - } - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(parent); - for (var i = 0; i < symbols.length; i++) { - // Don't need to worry about cloning a symbol because it is a primitive, - // like a number or string. - var symbol = symbols[i]; - var descriptor = Object.getOwnPropertyDescriptor(parent, symbol); - if (descriptor && !descriptor.enumerable && !includeNonEnumerable) { - continue; - } - child[symbol] = _clone(parent[symbol], depth - 1); - if (!descriptor.enumerable) { - Object.defineProperty(child, symbol, { - enumerable: false - }); - } - } - } - - if (includeNonEnumerable) { - var allPropertyNames = Object.getOwnPropertyNames(parent); - for (var i = 0; i < allPropertyNames.length; i++) { - var propertyName = allPropertyNames[i]; - var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName); - if (descriptor && descriptor.enumerable) { - continue; - } - child[propertyName] = _clone(parent[propertyName], depth - 1); - Object.defineProperty(child, propertyName, { - enumerable: false - }); - } - } - - return child; - } - - return _clone(parent, depth); - } - - /** - * Simple flat clone using prototype, accepts only objects, usefull for property - * override on FLAT configuration object (no nested props). - * - * USE WITH CAUTION! This may not behave as you wish if you do not know how this - * works. - */ - clone.clonePrototype = function clonePrototype(parent) { - if (parent === null) - return null; - - var c = function () {}; - c.prototype = parent; - return new c(); - }; - -// private utility functions - - function __objToStr(o) { - return Object.prototype.toString.call(o); - } - clone.__objToStr = __objToStr; - - function __isDate(o) { - return typeof o === 'object' && __objToStr(o) === '[object Date]'; - } - clone.__isDate = __isDate; - - function __isArray(o) { - return typeof o === 'object' && __objToStr(o) === '[object Array]'; - } - clone.__isArray = __isArray; - - function __isRegExp(o) { - return typeof o === 'object' && __objToStr(o) === '[object RegExp]'; - } - clone.__isRegExp = __isRegExp; - - function __getRegExpFlags(re) { - var flags = ''; - if (re.global) flags += 'g'; - if (re.ignoreCase) flags += 'i'; - if (re.multiline) flags += 'm'; - return flags; - } - clone.__getRegExpFlags = __getRegExpFlags; - - return clone; - })(); - - if (typeof module === 'object' && module.exports) { - module.exports = clone; - } - - }).call(this)}).call(this,require("buffer").Buffer) - },{"buffer":56}],58:[function(require,module,exports){ - (function (Buffer){(function (){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. - - function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; - } - exports.isArray = isArray; - - function isBoolean(arg) { - return typeof arg === 'boolean'; - } - exports.isBoolean = isBoolean; - - function isNull(arg) { - return arg === null; - } - exports.isNull = isNull; - - function isNullOrUndefined(arg) { - return arg == null; - } - exports.isNullOrUndefined = isNullOrUndefined; - - function isNumber(arg) { - return typeof arg === 'number'; - } - exports.isNumber = isNumber; - - function isString(arg) { - return typeof arg === 'string'; - } - exports.isString = isString; - - function isSymbol(arg) { - return typeof arg === 'symbol'; - } - exports.isSymbol = isSymbol; - - function isUndefined(arg) { - return arg === void 0; - } - exports.isUndefined = isUndefined; - - function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; - } - exports.isRegExp = isRegExp; - - function isObject(arg) { - return typeof arg === 'object' && arg !== null; - } - exports.isObject = isObject; - - function isDate(d) { - return objectToString(d) === '[object Date]'; - } - exports.isDate = isDate; - - function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); - } - exports.isError = isError; - - function isFunction(arg) { - return typeof arg === 'function'; - } - exports.isFunction = isFunction; - - function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; - } - exports.isPrimitive = isPrimitive; - - exports.isBuffer = Buffer.isBuffer; - - function objectToString(o) { - return Object.prototype.toString.call(o); - } - - }).call(this)}).call(this,{"isBuffer":require("../../is-buffer/index.js")}) - },{"../../is-buffer/index.js":64}],59:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - - var objectCreate = Object.create || objectCreatePolyfill - var objectKeys = Object.keys || objectKeysPolyfill - var bind = Function.prototype.bind || functionBindPolyfill - - function EventEmitter() { - if (!this._events || !Object.prototype.hasOwnProperty.call(this, '_events')) { - this._events = objectCreate(null); - this._eventsCount = 0; - } - - this._maxListeners = this._maxListeners || undefined; - } - module.exports = EventEmitter; - -// Backwards-compat with node 0.10.x - EventEmitter.EventEmitter = EventEmitter; - - EventEmitter.prototype._events = undefined; - EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. - var defaultMaxListeners = 10; - - var hasDefineProperty; - try { - var o = {}; - if (Object.defineProperty) Object.defineProperty(o, 'x', { value: 0 }); - hasDefineProperty = o.x === 0; - } catch (err) { hasDefineProperty = false } - if (hasDefineProperty) { - Object.defineProperty(EventEmitter, 'defaultMaxListeners', { - enumerable: true, - get: function() { - return defaultMaxListeners; - }, - set: function(arg) { - // check whether the input is a positive number (whose value is zero or - // greater and not a NaN). - if (typeof arg !== 'number' || arg < 0 || arg !== arg) - throw new TypeError('"defaultMaxListeners" must be a positive number'); - defaultMaxListeners = arg; - } - }); - } else { - EventEmitter.defaultMaxListeners = defaultMaxListeners; - } - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. - EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) { - if (typeof n !== 'number' || n < 0 || isNaN(n)) - throw new TypeError('"n" argument must be a positive number'); - this._maxListeners = n; - return this; - }; - - function $getMaxListeners(that) { - if (that._maxListeners === undefined) - return EventEmitter.defaultMaxListeners; - return that._maxListeners; - } - - EventEmitter.prototype.getMaxListeners = function getMaxListeners() { - return $getMaxListeners(this); - }; - -// These standalone emit* functions are used to optimize calling of event -// handlers for fast cases because emit() itself often has a variable number of -// arguments and can be deoptimized because of that. These functions always have -// the same number of arguments and thus do not get deoptimized, so the code -// inside them can execute faster. - function emitNone(handler, isFn, self) { - if (isFn) - handler.call(self); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self); - } - } - function emitOne(handler, isFn, self, arg1) { - if (isFn) - handler.call(self, arg1); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self, arg1); - } - } - function emitTwo(handler, isFn, self, arg1, arg2) { - if (isFn) - handler.call(self, arg1, arg2); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self, arg1, arg2); - } - } - function emitThree(handler, isFn, self, arg1, arg2, arg3) { - if (isFn) - handler.call(self, arg1, arg2, arg3); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self, arg1, arg2, arg3); - } - } - - function emitMany(handler, isFn, self, args) { - if (isFn) - handler.apply(self, args); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].apply(self, args); - } - } - - EventEmitter.prototype.emit = function emit(type) { - var er, handler, len, args, i, events; - var doError = (type === 'error'); - - events = this._events; - if (events) - doError = (doError && events.error == null); - else if (!doError) - return false; - - // If there is no 'error' event listener then throw. - if (doError) { - if (arguments.length > 1) - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } else { - // At least give some kind of context to the user - var err = new Error('Unhandled "error" event. (' + er + ')'); - err.context = er; - throw err; - } - return false; - } - - handler = events[type]; - - if (!handler) - return false; - - var isFn = typeof handler === 'function'; - len = arguments.length; - switch (len) { - // fast cases - case 1: - emitNone(handler, isFn, this); - break; - case 2: - emitOne(handler, isFn, this, arguments[1]); - break; - case 3: - emitTwo(handler, isFn, this, arguments[1], arguments[2]); - break; - case 4: - emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]); - break; - // slower - default: - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - emitMany(handler, isFn, this, args); - } - - return true; - }; - - function _addListener(target, type, listener, prepend) { - var m; - var events; - var existing; - - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - - events = target._events; - if (!events) { - events = target._events = objectCreate(null); - target._eventsCount = 0; - } else { - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (events.newListener) { - target.emit('newListener', type, - listener.listener ? listener.listener : listener); - - // Re-assign `events` because a newListener handler could have caused the - // this._events to be assigned to a new object - events = target._events; - } - existing = events[type]; - } - - if (!existing) { - // Optimize the case of one listener. Don't need the extra array object. - existing = events[type] = listener; - ++target._eventsCount; - } else { - if (typeof existing === 'function') { - // Adding the second element, need to change to array. - existing = events[type] = - prepend ? [listener, existing] : [existing, listener]; - } else { - // If we've already got an array, just append. - if (prepend) { - existing.unshift(listener); - } else { - existing.push(listener); - } - } - - // Check for listener leak - if (!existing.warned) { - m = $getMaxListeners(target); - if (m && m > 0 && existing.length > m) { - existing.warned = true; - var w = new Error('Possible EventEmitter memory leak detected. ' + - existing.length + ' "' + String(type) + '" listeners ' + - 'added. Use emitter.setMaxListeners() to ' + - 'increase limit.'); - w.name = 'MaxListenersExceededWarning'; - w.emitter = target; - w.type = type; - w.count = existing.length; - if (typeof console === 'object' && console.warn) { - console.warn('%s: %s', w.name, w.message); - } - } - } - } - - return target; - } - - EventEmitter.prototype.addListener = function addListener(type, listener) { - return _addListener(this, type, listener, false); - }; - - EventEmitter.prototype.on = EventEmitter.prototype.addListener; - - EventEmitter.prototype.prependListener = - function prependListener(type, listener) { - return _addListener(this, type, listener, true); - }; - - function onceWrapper() { - if (!this.fired) { - this.target.removeListener(this.type, this.wrapFn); - this.fired = true; - switch (arguments.length) { - case 0: - return this.listener.call(this.target); - case 1: - return this.listener.call(this.target, arguments[0]); - case 2: - return this.listener.call(this.target, arguments[0], arguments[1]); - case 3: - return this.listener.call(this.target, arguments[0], arguments[1], - arguments[2]); - default: - var args = new Array(arguments.length); - for (var i = 0; i < args.length; ++i) - args[i] = arguments[i]; - this.listener.apply(this.target, args); - } - } - } - - function _onceWrap(target, type, listener) { - var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener }; - var wrapped = bind.call(onceWrapper, state); - wrapped.listener = listener; - state.wrapFn = wrapped; - return wrapped; - } - - EventEmitter.prototype.once = function once(type, listener) { - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - this.on(type, _onceWrap(this, type, listener)); - return this; - }; - - EventEmitter.prototype.prependOnceListener = - function prependOnceListener(type, listener) { - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - this.prependListener(type, _onceWrap(this, type, listener)); - return this; - }; - -// Emits a 'removeListener' event if and only if the listener was removed. - EventEmitter.prototype.removeListener = - function removeListener(type, listener) { - var list, events, position, i, originalListener; - - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - - events = this._events; - if (!events) - return this; - - list = events[type]; - if (!list) - return this; - - if (list === listener || list.listener === listener) { - if (--this._eventsCount === 0) - this._events = objectCreate(null); - else { - delete events[type]; - if (events.removeListener) - this.emit('removeListener', type, list.listener || listener); - } - } else if (typeof list !== 'function') { - position = -1; - - for (i = list.length - 1; i >= 0; i--) { - if (list[i] === listener || list[i].listener === listener) { - originalListener = list[i].listener; - position = i; - break; - } - } - - if (position < 0) - return this; - - if (position === 0) - list.shift(); - else - spliceOne(list, position); - - if (list.length === 1) - events[type] = list[0]; - - if (events.removeListener) - this.emit('removeListener', type, originalListener || listener); - } - - return this; - }; - - EventEmitter.prototype.removeAllListeners = - function removeAllListeners(type) { - var listeners, events, i; - - events = this._events; - if (!events) - return this; - - // not listening for removeListener, no need to emit - if (!events.removeListener) { - if (arguments.length === 0) { - this._events = objectCreate(null); - this._eventsCount = 0; - } else if (events[type]) { - if (--this._eventsCount === 0) - this._events = objectCreate(null); - else - delete events[type]; - } - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - var keys = objectKeys(events); - var key; - for (i = 0; i < keys.length; ++i) { - key = keys[i]; - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = objectCreate(null); - this._eventsCount = 0; - return this; - } - - listeners = events[type]; - - if (typeof listeners === 'function') { - this.removeListener(type, listeners); - } else if (listeners) { - // LIFO order - for (i = listeners.length - 1; i >= 0; i--) { - this.removeListener(type, listeners[i]); - } - } - - return this; - }; - - function _listeners(target, type, unwrap) { - var events = target._events; - - if (!events) - return []; - - var evlistener = events[type]; - if (!evlistener) - return []; - - if (typeof evlistener === 'function') - return unwrap ? [evlistener.listener || evlistener] : [evlistener]; - - return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); - } - - EventEmitter.prototype.listeners = function listeners(type) { - return _listeners(this, type, true); - }; - - EventEmitter.prototype.rawListeners = function rawListeners(type) { - return _listeners(this, type, false); - }; - - EventEmitter.listenerCount = function(emitter, type) { - if (typeof emitter.listenerCount === 'function') { - return emitter.listenerCount(type); - } else { - return listenerCount.call(emitter, type); - } - }; - - EventEmitter.prototype.listenerCount = listenerCount; - function listenerCount(type) { - var events = this._events; - - if (events) { - var evlistener = events[type]; - - if (typeof evlistener === 'function') { - return 1; - } else if (evlistener) { - return evlistener.length; - } - } - - return 0; - } - - EventEmitter.prototype.eventNames = function eventNames() { - return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : []; - }; - -// About 1.5x faster than the two-arg version of Array#splice(). - function spliceOne(list, index) { - for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) - list[i] = list[k]; - list.pop(); - } - - function arrayClone(arr, n) { - var copy = new Array(n); - for (var i = 0; i < n; ++i) - copy[i] = arr[i]; - return copy; - } - - function unwrapListeners(arr) { - var ret = new Array(arr.length); - for (var i = 0; i < ret.length; ++i) { - ret[i] = arr[i].listener || arr[i]; - } - return ret; - } - - function objectCreatePolyfill(proto) { - var F = function() {}; - F.prototype = proto; - return new F; - } - function objectKeysPolyfill(obj) { - var keys = []; - for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k)) { - keys.push(k); - } - return k; - } - function functionBindPolyfill(context) { - var fn = this; - return function () { - return fn.apply(context, arguments); - }; - } - - },{}],60:[function(require,module,exports){ - 'use strict'; - -// do not edit .js files directly - edit src/index.jst - - - - module.exports = function equal(a, b) { - if (a === b) return true; - - if (a && b && typeof a == 'object' && typeof b == 'object') { - if (a.constructor !== b.constructor) return false; - - var length, i, keys; - if (Array.isArray(a)) { - length = a.length; - if (length != b.length) return false; - for (i = length; i-- !== 0;) - if (!equal(a[i], b[i])) return false; - return true; - } - - - - if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; - if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); - if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); - - keys = Object.keys(a); - length = keys.length; - if (length !== Object.keys(b).length) return false; - - for (i = length; i-- !== 0;) - if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; - - for (i = length; i-- !== 0;) { - var key = keys[i]; - - if (!equal(a[key], b[key])) return false; - } - - return true; - } - - // true if both NaN, false otherwise - return a!==a && b!==b; - }; - - },{}],61:[function(require,module,exports){ - 'use strict'; - - module.exports = function (data, opts) { - if (!opts) opts = {}; - if (typeof opts === 'function') opts = { cmp: opts }; - var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false; - - var cmp = opts.cmp && (function (f) { - return function (node) { - return function (a, b) { - var aobj = { key: a, value: node[a] }; - var bobj = { key: b, value: node[b] }; - return f(aobj, bobj); - }; - }; - })(opts.cmp); - - var seen = []; - return (function stringify (node) { - if (node && node.toJSON && typeof node.toJSON === 'function') { - node = node.toJSON(); - } - - if (node === undefined) return; - if (typeof node == 'number') return isFinite(node) ? '' + node : 'null'; - if (typeof node !== 'object') return JSON.stringify(node); - - var i, out; - if (Array.isArray(node)) { - out = '['; - for (i = 0; i < node.length; i++) { - if (i) out += ','; - out += stringify(node[i]) || 'null'; - } - return out + ']'; - } - - if (node === null) return 'null'; - - if (seen.indexOf(node) !== -1) { - if (cycles) return JSON.stringify('__cycle__'); - throw new TypeError('Converting circular structure to JSON'); - } - - var seenIndex = seen.push(node) - 1; - var keys = Object.keys(node).sort(cmp && cmp(node)); - out = ''; - for (i = 0; i < keys.length; i++) { - var key = keys[i]; - var value = stringify(node[key]); - - if (!value) continue; - if (out) out += ','; - out += JSON.stringify(key) + ':' + value; - } - seen.splice(seenIndex, 1); - return '{' + out + '}'; - })(data); - }; - - },{}],62:[function(require,module,exports){ - /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ - exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = (nBytes * 8) - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) - } - - exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = (nBytes * 8) - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = ((value * c) - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 - } - - },{}],63:[function(require,module,exports){ - if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }) - } - }; - } else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - } - } - - },{}],64:[function(require,module,exports){ - /*! - * Determine if an object is a Buffer - * - * @author Feross Aboukhadijeh - * @license MIT - */ - -// The _isBuffer check is for Safari 5-7 support, because it's missing -// Object.prototype.constructor. Remove this eventually - module.exports = function (obj) { - return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) - } - - function isBuffer (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) - } - -// For Node v0.10 support. Remove this eventually. - function isSlowBuffer (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) - } - - },{}],65:[function(require,module,exports){ - var toString = {}.toString; - - module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; - }; - - },{}],66:[function(require,module,exports){ - 'use strict'; - - var traverse = module.exports = function (schema, opts, cb) { - // Legacy support for v0.3.1 and earlier. - if (typeof opts == 'function') { - cb = opts; - opts = {}; - } - - cb = opts.cb || cb; - var pre = (typeof cb == 'function') ? cb : cb.pre || function() {}; - var post = cb.post || function() {}; - - _traverse(opts, pre, post, schema, '', schema); - }; - - - traverse.keywords = { - additionalItems: true, - items: true, - contains: true, - additionalProperties: true, - propertyNames: true, - not: true - }; - - traverse.arrayKeywords = { - items: true, - allOf: true, - anyOf: true, - oneOf: true - }; - - traverse.propsKeywords = { - definitions: true, - properties: true, - patternProperties: true, - dependencies: true - }; - - traverse.skipKeywords = { - default: true, - enum: true, - const: true, - required: true, - maximum: true, - minimum: true, - exclusiveMaximum: true, - exclusiveMinimum: true, - multipleOf: true, - maxLength: true, - minLength: true, - pattern: true, - format: true, - maxItems: true, - minItems: true, - uniqueItems: true, - maxProperties: true, - minProperties: true - }; - - - function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) { - if (schema && typeof schema == 'object' && !Array.isArray(schema)) { - pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); - for (var key in schema) { - var sch = schema[key]; - if (Array.isArray(sch)) { - if (key in traverse.arrayKeywords) { - for (var i=0; i 'z') && - (ch < 'A' || ch > 'Z')) { - error("Bad identifier as unquoted key"); - } - - // Subsequent characters can contain digits. - while (next() && ( - ch === '_' || ch === '$' || - (ch >= 'a' && ch <= 'z') || - (ch >= 'A' && ch <= 'Z') || - (ch >= '0' && ch <= '9'))) { - key += ch; - } - - return key; - }, - - number = function () { - -// Parse a number value. - - var number, - sign = '', - string = '', - base = 10; - - if (ch === '-' || ch === '+') { - sign = ch; - next(ch); - } - - // support for Infinity (could tweak to allow other words): - if (ch === 'I') { - number = word(); - if (typeof number !== 'number' || isNaN(number)) { - error('Unexpected word for number'); - } - return (sign === '-') ? -number : number; - } - - // support for NaN - if (ch === 'N' ) { - number = word(); - if (!isNaN(number)) { - error('expected word to be NaN'); - } - // ignore sign as -NaN also is NaN - return number; - } - - if (ch === '0') { - string += ch; - next(); - if (ch === 'x' || ch === 'X') { - string += ch; - next(); - base = 16; - } else if (ch >= '0' && ch <= '9') { - error('Octal literal'); - } - } - - switch (base) { - case 10: - while (ch >= '0' && ch <= '9' ) { - string += ch; - next(); - } - if (ch === '.') { - string += '.'; - while (next() && ch >= '0' && ch <= '9') { - string += ch; - } - } - if (ch === 'e' || ch === 'E') { - string += ch; - next(); - if (ch === '-' || ch === '+') { - string += ch; - next(); - } - while (ch >= '0' && ch <= '9') { - string += ch; - next(); - } - } - break; - case 16: - while (ch >= '0' && ch <= '9' || ch >= 'A' && ch <= 'F' || ch >= 'a' && ch <= 'f') { - string += ch; - next(); - } - break; - } - - if(sign === '-') { - number = -string; - } else { - number = +string; - } - - if (!isFinite(number)) { - error("Bad number"); - } else { - return number; - } - }, - - string = function () { - -// Parse a string value. - - var hex, - i, - string = '', - delim, // double quote or single quote - uffff; - -// When parsing for string values, we must look for ' or " and \ characters. - - if (ch === '"' || ch === "'") { - delim = ch; - while (next()) { - if (ch === delim) { - next(); - return string; - } else if (ch === '\\') { - next(); - if (ch === 'u') { - uffff = 0; - for (i = 0; i < 4; i += 1) { - hex = parseInt(next(), 16); - if (!isFinite(hex)) { - break; - } - uffff = uffff * 16 + hex; - } - string += String.fromCharCode(uffff); - } else if (ch === '\r') { - if (peek() === '\n') { - next(); - } - } else if (typeof escapee[ch] === 'string') { - string += escapee[ch]; - } else { - break; - } - } else if (ch === '\n') { - // unescaped newlines are invalid; see: - // https://github.com/aseemk/json5/issues/24 - // TODO this feels special-cased; are there other - // invalid unescaped chars? - break; - } else { - string += ch; - } - } - } - error("Bad string"); - }, - - inlineComment = function () { - -// Skip an inline comment, assuming this is one. The current character should -// be the second / character in the // pair that begins this inline comment. -// To finish the inline comment, we look for a newline or the end of the text. - - if (ch !== '/') { - error("Not an inline comment"); - } - - do { - next(); - if (ch === '\n' || ch === '\r') { - next(); - return; - } - } while (ch); - }, - - blockComment = function () { - -// Skip a block comment, assuming this is one. The current character should be -// the * character in the /* pair that begins this block comment. -// To finish the block comment, we look for an ending */ pair of characters, -// but we also watch for the end of text before the comment is terminated. - - if (ch !== '*') { - error("Not a block comment"); - } - - do { - next(); - while (ch === '*') { - next('*'); - if (ch === '/') { - next('/'); - return; - } - } - } while (ch); - - error("Unterminated block comment"); - }, - - comment = function () { - -// Skip a comment, whether inline or block-level, assuming this is one. -// Comments always begin with a / character. - - if (ch !== '/') { - error("Not a comment"); - } - - next('/'); - - if (ch === '/') { - inlineComment(); - } else if (ch === '*') { - blockComment(); - } else { - error("Unrecognized comment"); - } - }, - - white = function () { - -// Skip whitespace and comments. -// Note that we're detecting comments by only a single / character. -// This works since regular expressions are not valid JSON(5), but this will -// break if there are other valid values that begin with a / character! - - while (ch) { - if (ch === '/') { - comment(); - } else if (ws.indexOf(ch) >= 0) { - next(); - } else { - return; - } - } - }, - - word = function () { - -// true, false, or null. - - switch (ch) { - case 't': - next('t'); - next('r'); - next('u'); - next('e'); - return true; - case 'f': - next('f'); - next('a'); - next('l'); - next('s'); - next('e'); - return false; - case 'n': - next('n'); - next('u'); - next('l'); - next('l'); - return null; - case 'I': - next('I'); - next('n'); - next('f'); - next('i'); - next('n'); - next('i'); - next('t'); - next('y'); - return Infinity; - case 'N': - next( 'N' ); - next( 'a' ); - next( 'N' ); - return NaN; - } - error("Unexpected " + renderChar(ch)); - }, - - value, // Place holder for the value function. - - array = function () { - -// Parse an array value. - - var array = []; - - if (ch === '[') { - next('['); - white(); - while (ch) { - if (ch === ']') { - next(']'); - return array; // Potentially empty array - } - // ES5 allows omitting elements in arrays, e.g. [,] and - // [,null]. We don't allow this in JSON5. - if (ch === ',') { - error("Missing array element"); - } else { - array.push(value()); - } - white(); - // If there's no comma after this value, this needs to - // be the end of the array. - if (ch !== ',') { - next(']'); - return array; - } - next(','); - white(); - } - } - error("Bad array"); - }, - - object = function () { - -// Parse an object value. - - var key, - object = {}; - - if (ch === '{') { - next('{'); - white(); - while (ch) { - if (ch === '}') { - next('}'); - return object; // Potentially empty object - } - - // Keys can be unquoted. If they are, they need to be - // valid JS identifiers. - if (ch === '"' || ch === "'") { - key = string(); - } else { - key = identifier(); - } - - white(); - next(':'); - object[key] = value(); - white(); - // If there's no comma after this pair, this needs to be - // the end of the object. - if (ch !== ',') { - next('}'); - return object; - } - next(','); - white(); - } - } - error("Bad object"); - }; - - value = function () { - -// Parse a JSON value. It could be an object, an array, a string, a number, -// or a word. - - white(); - switch (ch) { - case '{': - return object(); - case '[': - return array(); - case '"': - case "'": - return string(); - case '-': - case '+': - case '.': - return number(); - default: - return ch >= '0' && ch <= '9' ? number() : word(); - } - }; - -// Return the json_parse function. It will have access to all of the above -// functions and variables. - - return function (source, reviver) { - var result; - - text = String(source); - at = 0; - lineNumber = 1; - columnNumber = 1; - ch = ' '; - result = value(); - white(); - if (ch) { - error("Syntax error"); - } - -// If there is a reviver function, we recursively walk the new structure, -// passing each name/value pair to the reviver function for possible -// transformation, starting with a temporary root object that holds the result -// in an empty key. If there is not a reviver function, we simply return the -// result. - - return typeof reviver === 'function' ? (function walk(holder, key) { - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } - } - } - } - return reviver.call(holder, key, value); - }({'': result}, '')) : result; - }; - }()); - -// JSON5 stringify will not quote keys where appropriate - JSON5.stringify = function (obj, replacer, space) { - if (replacer && (typeof(replacer) !== "function" && !isArray(replacer))) { - throw new Error('Replacer must be a function or an array'); - } - var getReplacedValueOrUndefined = function(holder, key, isTopLevel) { - var value = holder[key]; - - // Replace the value with its toJSON value first, if possible - if (value && value.toJSON && typeof value.toJSON === "function") { - value = value.toJSON(); - } - - // If the user-supplied replacer if a function, call it. If it's an array, check objects' string keys for - // presence in the array (removing the key/value pair from the resulting JSON if the key is missing). - if (typeof(replacer) === "function") { - return replacer.call(holder, key, value); - } else if(replacer) { - if (isTopLevel || isArray(holder) || replacer.indexOf(key) >= 0) { - return value; - } else { - return undefined; - } - } else { - return value; - } - }; - - function isWordChar(c) { - return (c >= 'a' && c <= 'z') || - (c >= 'A' && c <= 'Z') || - (c >= '0' && c <= '9') || - c === '_' || c === '$'; - } - - function isWordStart(c) { - return (c >= 'a' && c <= 'z') || - (c >= 'A' && c <= 'Z') || - c === '_' || c === '$'; - } - - function isWord(key) { - if (typeof key !== 'string') { - return false; - } - if (!isWordStart(key[0])) { - return false; - } - var i = 1, length = key.length; - while (i < length) { - if (!isWordChar(key[i])) { - return false; - } - i++; - } - return true; - } - - // export for use in tests - JSON5.isWord = isWord; - - // polyfills - function isArray(obj) { - if (Array.isArray) { - return Array.isArray(obj); - } else { - return Object.prototype.toString.call(obj) === '[object Array]'; - } - } - - function isDate(obj) { - return Object.prototype.toString.call(obj) === '[object Date]'; - } - - var objStack = []; - function checkForCircular(obj) { - for (var i = 0; i < objStack.length; i++) { - if (objStack[i] === obj) { - throw new TypeError("Converting circular structure to JSON"); - } - } - } - - function makeIndent(str, num, noNewLine) { - if (!str) { - return ""; - } - // indentation no more than 10 chars - if (str.length > 10) { - str = str.substring(0, 10); - } - - var indent = noNewLine ? "" : "\n"; - for (var i = 0; i < num; i++) { - indent += str; - } - - return indent; - } - - var indentStr; - if (space) { - if (typeof space === "string") { - indentStr = space; - } else if (typeof space === "number" && space >= 0) { - indentStr = makeIndent(" ", space, true); - } else { - // ignore space parameter - } - } - - // Copied from Crokford's implementation of JSON - // See https://github.com/douglascrockford/JSON-js/blob/e39db4b7e6249f04a195e7dd0840e610cc9e941e/json2.js#L195 - // Begin - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }; - function escapeString(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' ? - c : - '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - // End - - function internalStringify(holder, key, isTopLevel) { - var buffer, res; - - // Replace the value, if necessary - var obj_part = getReplacedValueOrUndefined(holder, key, isTopLevel); - - if (obj_part && !isDate(obj_part)) { - // unbox objects - // don't unbox dates, since will turn it into number - obj_part = obj_part.valueOf(); - } - switch(typeof obj_part) { - case "boolean": - return obj_part.toString(); - - case "number": - if (isNaN(obj_part) || !isFinite(obj_part)) { - return "null"; - } - return obj_part.toString(); - - case "string": - return escapeString(obj_part.toString()); - - case "object": - if (obj_part === null) { - return "null"; - } else if (isArray(obj_part)) { - checkForCircular(obj_part); - buffer = "["; - objStack.push(obj_part); - - for (var i = 0; i < obj_part.length; i++) { - res = internalStringify(obj_part, i, false); - buffer += makeIndent(indentStr, objStack.length); - if (res === null || typeof res === "undefined") { - buffer += "null"; - } else { - buffer += res; - } - if (i < obj_part.length-1) { - buffer += ","; - } else if (indentStr) { - buffer += "\n"; - } - } - objStack.pop(); - if (obj_part.length) { - buffer += makeIndent(indentStr, objStack.length, true) - } - buffer += "]"; - } else { - checkForCircular(obj_part); - buffer = "{"; - var nonEmpty = false; - objStack.push(obj_part); - for (var prop in obj_part) { - if (obj_part.hasOwnProperty(prop)) { - var value = internalStringify(obj_part, prop, false); - isTopLevel = false; - if (typeof value !== "undefined" && value !== null) { - buffer += makeIndent(indentStr, objStack.length); - nonEmpty = true; - key = isWord(prop) ? prop : escapeString(prop); - buffer += key + ":" + (indentStr ? ' ' : '') + value + ","; - } - } - } - objStack.pop(); - if (nonEmpty) { - buffer = buffer.substring(0, buffer.length-1) + makeIndent(indentStr, objStack.length) + "}"; - } else { - buffer = '{}'; - } - } - return buffer; - default: - // functions and undefined should be ignored - return undefined; - } - } - - // special case...when undefined is used inside of - // a compound object/array, return null. - // but when top-level, return undefined - var topLevelHolder = {"":obj}; - if (obj === undefined) { - return getReplacedValueOrUndefined(topLevelHolder, '', true); - } - return internalStringify(topLevelHolder, '', true); - }; - - },{}],68:[function(require,module,exports){ - (function (global){(function (){ - /** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ - ;(function() { - - /** Used as a safe reference for `undefined` in pre-ES5 environments. */ - var undefined; - - /** Used as the semantic version number. */ - var VERSION = '4.17.21'; - - /** Used as the size to enable large array optimizations. */ - var LARGE_ARRAY_SIZE = 200; - - /** Error message constants. */ - var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', - FUNC_ERROR_TEXT = 'Expected a function', - INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`'; - - /** Used to stand-in for `undefined` hash values. */ - var HASH_UNDEFINED = '__lodash_hash_undefined__'; - - /** Used as the maximum memoize cache size. */ - var MAX_MEMOIZE_SIZE = 500; - - /** Used as the internal argument placeholder. */ - var PLACEHOLDER = '__lodash_placeholder__'; - - /** Used to compose bitmasks for cloning. */ - var CLONE_DEEP_FLAG = 1, - CLONE_FLAT_FLAG = 2, - CLONE_SYMBOLS_FLAG = 4; - - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; - - /** Used to compose bitmasks for function metadata. */ - var WRAP_BIND_FLAG = 1, - WRAP_BIND_KEY_FLAG = 2, - WRAP_CURRY_BOUND_FLAG = 4, - WRAP_CURRY_FLAG = 8, - WRAP_CURRY_RIGHT_FLAG = 16, - WRAP_PARTIAL_FLAG = 32, - WRAP_PARTIAL_RIGHT_FLAG = 64, - WRAP_ARY_FLAG = 128, - WRAP_REARG_FLAG = 256, - WRAP_FLIP_FLAG = 512; - - /** Used as default options for `_.truncate`. */ - var DEFAULT_TRUNC_LENGTH = 30, - DEFAULT_TRUNC_OMISSION = '...'; - - /** Used to detect hot functions by number of calls within a span of milliseconds. */ - var HOT_COUNT = 800, - HOT_SPAN = 16; - - /** Used to indicate the type of lazy iteratees. */ - var LAZY_FILTER_FLAG = 1, - LAZY_MAP_FLAG = 2, - LAZY_WHILE_FLAG = 3; - - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0, - MAX_SAFE_INTEGER = 9007199254740991, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - - /** Used as references for the maximum length and index of an array. */ - var MAX_ARRAY_LENGTH = 4294967295, - MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, - HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; - - /** Used to associate wrap methods with their bit flags. */ - var wrapFlags = [ - ['ary', WRAP_ARY_FLAG], - ['bind', WRAP_BIND_FLAG], - ['bindKey', WRAP_BIND_KEY_FLAG], - ['curry', WRAP_CURRY_FLAG], - ['curryRight', WRAP_CURRY_RIGHT_FLAG], - ['flip', WRAP_FLIP_FLAG], - ['partial', WRAP_PARTIAL_FLAG], - ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], - ['rearg', WRAP_REARG_FLAG] - ]; - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - asyncTag = '[object AsyncFunction]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - domExcTag = '[object DOMException]', - errorTag = '[object Error]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - mapTag = '[object Map]', - numberTag = '[object Number]', - nullTag = '[object Null]', - objectTag = '[object Object]', - promiseTag = '[object Promise]', - proxyTag = '[object Proxy]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]', - undefinedTag = '[object Undefined]', - weakMapTag = '[object WeakMap]', - weakSetTag = '[object WeakSet]'; - - var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** Used to match empty string literals in compiled template source. */ - var reEmptyStringLeading = /\b__p \+= '';/g, - reEmptyStringMiddle = /\b(__p \+=) '' \+/g, - reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; - - /** Used to match HTML entities and HTML characters. */ - var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, - reUnescapedHtml = /[&<>"']/g, - reHasEscapedHtml = RegExp(reEscapedHtml.source), - reHasUnescapedHtml = RegExp(reUnescapedHtml.source); - - /** Used to match template delimiters. */ - var reEscape = /<%-([\s\S]+?)%>/g, - reEvaluate = /<%([\s\S]+?)%>/g, - reInterpolate = /<%=([\s\S]+?)%>/g; - - /** Used to match property names within property paths. */ - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/, - rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - - /** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, - reHasRegExpChar = RegExp(reRegExpChar.source); - - /** Used to match leading whitespace. */ - var reTrimStart = /^\s+/; - - /** Used to match a single whitespace character. */ - var reWhitespace = /\s/; - - /** Used to match wrap detail comments. */ - var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, - reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, - reSplitDetails = /,? & /; - - /** Used to match words composed of alphanumeric characters. */ - var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; - - /** - * Used to validate the `validate` option in `_.template` variable. - * - * Forbids characters which could potentially change the meaning of the function argument definition: - * - "()," (modification of function parameters) - * - "=" (default value) - * - "[]{}" (destructuring of function parameters) - * - "/" (beginning of a comment) - * - whitespace - */ - var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; - - /** Used to match backslashes in property paths. */ - var reEscapeChar = /\\(\\)?/g; - - /** - * Used to match - * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components). - */ - var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; - - /** Used to match `RegExp` flags from their coerced string values. */ - var reFlags = /\w*$/; - - /** Used to detect bad signed hexadecimal string values. */ - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - - /** Used to detect binary string values. */ - var reIsBinary = /^0b[01]+$/i; - - /** Used to detect host constructors (Safari). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; - - /** Used to detect octal string values. */ - var reIsOctal = /^0o[0-7]+$/i; - - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; - - /** Used to match Latin Unicode letters (excluding mathematical operators). */ - var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; - - /** Used to ensure capturing order of template delimiters. */ - var reNoMatch = /($^)/; - - /** Used to match unescaped characters in compiled string literals. */ - var reUnescapedString = /['\n\r\u2028\u2029\\]/g; - - /** Used to compose unicode character classes. */ - var rsAstralRange = '\\ud800-\\udfff', - rsComboMarksRange = '\\u0300-\\u036f', - reComboHalfMarksRange = '\\ufe20-\\ufe2f', - rsComboSymbolsRange = '\\u20d0-\\u20ff', - rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, - rsDingbatRange = '\\u2700-\\u27bf', - rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', - rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', - rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', - rsPunctuationRange = '\\u2000-\\u206f', - rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', - rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', - rsVarRange = '\\ufe0e\\ufe0f', - rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; - - /** Used to compose unicode capture groups. */ - var rsApos = "['\u2019]", - rsAstral = '[' + rsAstralRange + ']', - rsBreak = '[' + rsBreakRange + ']', - rsCombo = '[' + rsComboRange + ']', - rsDigits = '\\d+', - rsDingbat = '[' + rsDingbatRange + ']', - rsLower = '[' + rsLowerRange + ']', - rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', - rsFitz = '\\ud83c[\\udffb-\\udfff]', - rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', - rsNonAstral = '[^' + rsAstralRange + ']', - rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', - rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', - rsUpper = '[' + rsUpperRange + ']', - rsZWJ = '\\u200d'; - - /** Used to compose unicode regexes. */ - var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', - rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', - rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', - rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', - reOptMod = rsModifier + '?', - rsOptVar = '[' + rsVarRange + ']?', - rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', - rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', - rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', - rsSeq = rsOptVar + reOptMod + rsOptJoin, - rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, - rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - - /** Used to match apostrophes. */ - var reApos = RegExp(rsApos, 'g'); - - /** - * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and - * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). - */ - var reComboMark = RegExp(rsCombo, 'g'); - - /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ - var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); - - /** Used to match complex or compound words. */ - var reUnicodeWord = RegExp([ - rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', - rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', - rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, - rsUpper + '+' + rsOptContrUpper, - rsOrdUpper, - rsOrdLower, - rsDigits, - rsEmoji - ].join('|'), 'g'); - - /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ - var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); - - /** Used to detect strings that need a more robust regexp to match words. */ - var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; - - /** Used to assign default `context` object properties. */ - var contextProps = [ - 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', - 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', - 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', - 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', - '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout' - ]; - - /** Used to make template sourceURLs easier to identify. */ - var templateCounter = -1; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = - typedArrayTags[errorTag] = typedArrayTags[funcTag] = - typedArrayTags[mapTag] = typedArrayTags[numberTag] = - typedArrayTags[objectTag] = typedArrayTags[regexpTag] = - typedArrayTags[setTag] = typedArrayTags[stringTag] = - typedArrayTags[weakMapTag] = false; - - /** Used to identify `toStringTag` values supported by `_.clone`. */ - var cloneableTags = {}; - cloneableTags[argsTag] = cloneableTags[arrayTag] = - cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = - cloneableTags[boolTag] = cloneableTags[dateTag] = - cloneableTags[float32Tag] = cloneableTags[float64Tag] = - cloneableTags[int8Tag] = cloneableTags[int16Tag] = - cloneableTags[int32Tag] = cloneableTags[mapTag] = - cloneableTags[numberTag] = cloneableTags[objectTag] = - cloneableTags[regexpTag] = cloneableTags[setTag] = - cloneableTags[stringTag] = cloneableTags[symbolTag] = - cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = - cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; - cloneableTags[errorTag] = cloneableTags[funcTag] = - cloneableTags[weakMapTag] = false; - - /** Used to map Latin Unicode letters to basic Latin letters. */ - var deburredLetters = { - // Latin-1 Supplement block. - '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', - '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', - '\xc7': 'C', '\xe7': 'c', - '\xd0': 'D', '\xf0': 'd', - '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', - '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', - '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', - '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', - '\xd1': 'N', '\xf1': 'n', - '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', - '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', - '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', - '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', - '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', - '\xc6': 'Ae', '\xe6': 'ae', - '\xde': 'Th', '\xfe': 'th', - '\xdf': 'ss', - // Latin Extended-A block. - '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', - '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', - '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', - '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', - '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', - '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', - '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', - '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', - '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', - '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', - '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', - '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', - '\u0134': 'J', '\u0135': 'j', - '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', - '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', - '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', - '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', - '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', - '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', - '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', - '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', - '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', - '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', - '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', - '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', - '\u0163': 't', '\u0165': 't', '\u0167': 't', - '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', - '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', - '\u0174': 'W', '\u0175': 'w', - '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', - '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', - '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', - '\u0132': 'IJ', '\u0133': 'ij', - '\u0152': 'Oe', '\u0153': 'oe', - '\u0149': "'n", '\u017f': 's' - }; - - /** Used to map characters to HTML entities. */ - var htmlEscapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''' - }; - - /** Used to map HTML entities to characters. */ - var htmlUnescapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - ''': "'" - }; - - /** Used to escape characters for inclusion in compiled string literals. */ - var stringEscapes = { - '\\': '\\', - "'": "'", - '\n': 'n', - '\r': 'r', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - /** Built-in method references without a dependency on `root`. */ - var freeParseFloat = parseFloat, - freeParseInt = parseInt; - - /** Detect free variable `global` from Node.js. */ - var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - - /** Detect free variable `self`. */ - var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - - /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || Function('return this')(); - - /** Detect free variable `exports`. */ - var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; - - /** Detect free variable `process` from Node.js. */ - var freeProcess = moduleExports && freeGlobal.process; - - /** Used to access faster Node.js helpers. */ - var nodeUtil = (function() { - try { - // Use `util.types` for Node.js 10+. - var types = freeModule && freeModule.require && freeModule.require('util').types; - - if (types) { - return types; - } - - // Legacy `process.binding('util')` for Node.js < 10. - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }()); - - /* Node.js helper references. */ - var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, - nodeIsDate = nodeUtil && nodeUtil.isDate, - nodeIsMap = nodeUtil && nodeUtil.isMap, - nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, - nodeIsSet = nodeUtil && nodeUtil.isSet, - nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - - /*--------------------------------------------------------------------------*/ - - /** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ - function apply(func, thisArg, args) { - switch (args.length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - - /** - * A specialized version of `baseAggregator` for arrays. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ - function arrayAggregator(array, setter, iteratee, accumulator) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - var value = array[index]; - setter(accumulator, value, iteratee(value), array); - } - return accumulator; - } - - /** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.forEachRight` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEachRight(array, iteratee) { - var length = array == null ? 0 : array.length; - - while (length--) { - if (iteratee(array[length], length, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.every` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - */ - function arrayEvery(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; - } - } - return true; - } - - /** - * A specialized version of `_.filter` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function arrayFilter(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; - } - } - return result; - } - - /** - * A specialized version of `_.includes` for arrays without support for - * specifying an index to search from. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ - function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && baseIndexOf(array, value, 0) > -1; - } - - /** - * This function is like `arrayIncludes` except that it accepts a comparator. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @param {Function} comparator The comparator invoked per element. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ - function arrayIncludesWith(array, value, comparator) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - return false; - } - - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function arrayMap(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length, - result = Array(length); - - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } - - /** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ - function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; - } - return array; - } - - /** - * A specialized version of `_.reduce` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the first element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduce(array, iteratee, accumulator, initAccum) { - var index = -1, - length = array == null ? 0 : array.length; - - if (initAccum && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; - } - - /** - * A specialized version of `_.reduceRight` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the last element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduceRight(array, iteratee, accumulator, initAccum) { - var length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[--length]; - } - while (length--) { - accumulator = iteratee(accumulator, array[length], length, array); - } - return accumulator; - } - - /** - * A specialized version of `_.some` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function arraySome(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; - } - - /** - * Gets the size of an ASCII `string`. - * - * @private - * @param {string} string The string inspect. - * @returns {number} Returns the string size. - */ - var asciiSize = baseProperty('length'); - - /** - * Converts an ASCII `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function asciiToArray(string) { - return string.split(''); - } - - /** - * Splits an ASCII `string` into an array of its words. - * - * @private - * @param {string} The string to inspect. - * @returns {Array} Returns the words of `string`. - */ - function asciiWords(string) { - return string.match(reAsciiWord) || []; - } - - /** - * The base implementation of methods like `_.findKey` and `_.findLastKey`, - * without support for iteratee shorthands, which iterates over `collection` - * using `eachFunc`. - * - * @private - * @param {Array|Object} collection The collection to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the found element or its key, else `undefined`. - */ - function baseFindKey(collection, predicate, eachFunc) { - var result; - eachFunc(collection, function(value, key, collection) { - if (predicate(value, key, collection)) { - result = key; - return false; - } - }); - return result; - } - - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); - - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - return value === value - ? strictIndexOf(array, value, fromIndex) - : baseFindIndex(array, baseIsNaN, fromIndex); - } - - /** - * This function is like `baseIndexOf` except that it accepts a comparator. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @param {Function} comparator The comparator invoked per element. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOfWith(array, value, fromIndex, comparator) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (comparator(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.isNaN` without support for number objects. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - */ - function baseIsNaN(value) { - return value !== value; - } - - /** - * The base implementation of `_.mean` and `_.meanBy` without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the mean. - */ - function baseMean(array, iteratee) { - var length = array == null ? 0 : array.length; - return length ? (baseSum(array, iteratee) / length) : NAN; - } - - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; - } - - /** - * The base implementation of `_.propertyOf` without support for deep paths. - * - * @private - * @param {Object} object The object to query. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyOf(object) { - return function(key) { - return object == null ? undefined : object[key]; - }; - } - - /** - * The base implementation of `_.reduce` and `_.reduceRight`, without support - * for iteratee shorthands, which iterates over `collection` using `eachFunc`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} accumulator The initial value. - * @param {boolean} initAccum Specify using the first or last element of - * `collection` as the initial value. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the accumulated value. - */ - function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function(value, index, collection) { - accumulator = initAccum - ? (initAccum = false, value) - : iteratee(accumulator, value, index, collection); - }); - return accumulator; - } - - /** - * The base implementation of `_.sortBy` which uses `comparer` to define the - * sort order of `array` and replaces criteria objects with their corresponding - * values. - * - * @private - * @param {Array} array The array to sort. - * @param {Function} comparer The function to define sort order. - * @returns {Array} Returns `array`. - */ - function baseSortBy(array, comparer) { - var length = array.length; - - array.sort(comparer); - while (length--) { - array[length] = array[length].value; - } - return array; - } - - /** - * The base implementation of `_.sum` and `_.sumBy` without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the sum. - */ - function baseSum(array, iteratee) { - var result, - index = -1, - length = array.length; - - while (++index < length) { - var current = iteratee(array[index]); - if (current !== undefined) { - result = result === undefined ? current : (result + current); - } - } - return result; - } - - /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ - function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - - /** - * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array - * of key-value pairs for `object` corresponding to the property names of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the key-value pairs. - */ - function baseToPairs(object, props) { - return arrayMap(props, function(key) { - return [key, object[key]]; - }); - } - - /** - * The base implementation of `_.trim`. - * - * @private - * @param {string} string The string to trim. - * @returns {string} Returns the trimmed string. - */ - function baseTrim(string) { - return string - ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') - : string; - } - - /** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ - function baseUnary(func) { - return function(value) { - return func(value); - }; - } - - /** - * The base implementation of `_.values` and `_.valuesIn` which creates an - * array of `object` property values corresponding to the property names - * of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the array of property values. - */ - function baseValues(object, props) { - return arrayMap(props, function(key) { - return object[key]; - }); - } - - /** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function cacheHas(cache, key) { - return cache.has(key); - } - - /** - * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the first unmatched string symbol. - */ - function charsStartIndex(strSymbols, chrSymbols) { - var index = -1, - length = strSymbols.length; - - while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** - * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the last unmatched string symbol. - */ - function charsEndIndex(strSymbols, chrSymbols) { - var index = strSymbols.length; - - while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** - * Gets the number of `placeholder` occurrences in `array`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} placeholder The placeholder to search for. - * @returns {number} Returns the placeholder count. - */ - function countHolders(array, placeholder) { - var length = array.length, - result = 0; - - while (length--) { - if (array[length] === placeholder) { - ++result; - } - } - return result; - } - - /** - * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A - * letters to basic Latin letters. - * - * @private - * @param {string} letter The matched letter to deburr. - * @returns {string} Returns the deburred letter. - */ - var deburrLetter = basePropertyOf(deburredLetters); - - /** - * Used by `_.escape` to convert characters to HTML entities. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - var escapeHtmlChar = basePropertyOf(htmlEscapes); - - /** - * Used by `_.template` to escape characters for inclusion in compiled string literals. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - function escapeStringChar(chr) { - return '\\' + stringEscapes[chr]; - } - - /** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ - function getValue(object, key) { - return object == null ? undefined : object[key]; - } - - /** - * Checks if `string` contains Unicode symbols. - * - * @private - * @param {string} string The string to inspect. - * @returns {boolean} Returns `true` if a symbol is found, else `false`. - */ - function hasUnicode(string) { - return reHasUnicode.test(string); - } - - /** - * Checks if `string` contains a word composed of Unicode symbols. - * - * @private - * @param {string} string The string to inspect. - * @returns {boolean} Returns `true` if a word is found, else `false`. - */ - function hasUnicodeWord(string) { - return reHasUnicodeWord.test(string); - } - - /** - * Converts `iterator` to an array. - * - * @private - * @param {Object} iterator The iterator to convert. - * @returns {Array} Returns the converted array. - */ - function iteratorToArray(iterator) { - var data, - result = []; - - while (!(data = iterator.next()).done) { - result.push(data.value); - } - return result; - } - - /** - * Converts `map` to its key-value pairs. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. - */ - function mapToArray(map) { - var index = -1, - result = Array(map.size); - - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; - } - - /** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ - function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; - } - - /** - * Replaces all `placeholder` elements in `array` with an internal placeholder - * and returns an array of their indexes. - * - * @private - * @param {Array} array The array to modify. - * @param {*} placeholder The placeholder to replace. - * @returns {Array} Returns the new array of placeholder indexes. - */ - function replaceHolders(array, placeholder) { - var index = -1, - length = array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (value === placeholder || value === PLACEHOLDER) { - array[index] = PLACEHOLDER; - result[resIndex++] = index; - } - } - return result; - } - - /** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ - function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; - } - - /** - * Converts `set` to its value-value pairs. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the value-value pairs. - */ - function setToPairs(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = [value, value]; - }); - return result; - } - - /** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * A specialized version of `_.lastIndexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictLastIndexOf(array, value, fromIndex) { - var index = fromIndex + 1; - while (index--) { - if (array[index] === value) { - return index; - } - } - return index; - } - - /** - * Gets the number of symbols in `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the string size. - */ - function stringSize(string) { - return hasUnicode(string) - ? unicodeSize(string) - : asciiSize(string); - } - - /** - * Converts `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function stringToArray(string) { - return hasUnicode(string) - ? unicodeToArray(string) - : asciiToArray(string); - } - - /** - * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace - * character of `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the index of the last non-whitespace character. - */ - function trimmedEndIndex(string) { - var index = string.length; - - while (index-- && reWhitespace.test(string.charAt(index))) {} - return index; - } - - /** - * Used by `_.unescape` to convert HTML entities to characters. - * - * @private - * @param {string} chr The matched character to unescape. - * @returns {string} Returns the unescaped character. - */ - var unescapeHtmlChar = basePropertyOf(htmlUnescapes); - - /** - * Gets the size of a Unicode `string`. - * - * @private - * @param {string} string The string inspect. - * @returns {number} Returns the string size. - */ - function unicodeSize(string) { - var result = reUnicode.lastIndex = 0; - while (reUnicode.test(string)) { - ++result; - } - return result; - } - - /** - * Converts a Unicode `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function unicodeToArray(string) { - return string.match(reUnicode) || []; - } - - /** - * Splits a Unicode `string` into an array of its words. - * - * @private - * @param {string} The string to inspect. - * @returns {Array} Returns the words of `string`. - */ - function unicodeWords(string) { - return string.match(reUnicodeWord) || []; - } - - /*--------------------------------------------------------------------------*/ - - /** - * Create a new pristine `lodash` function using the `context` object. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Util - * @param {Object} [context=root] The context object. - * @returns {Function} Returns a new `lodash` function. - * @example - * - * _.mixin({ 'foo': _.constant('foo') }); - * - * var lodash = _.runInContext(); - * lodash.mixin({ 'bar': lodash.constant('bar') }); - * - * _.isFunction(_.foo); - * // => true - * _.isFunction(_.bar); - * // => false - * - * lodash.isFunction(lodash.foo); - * // => false - * lodash.isFunction(lodash.bar); - * // => true - * - * // Create a suped-up `defer` in Node.js. - * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; - */ - var runInContext = (function runInContext(context) { - context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); - - /** Built-in constructor references. */ - var Array = context.Array, - Date = context.Date, - Error = context.Error, - Function = context.Function, - Math = context.Math, - Object = context.Object, - RegExp = context.RegExp, - String = context.String, - TypeError = context.TypeError; - - /** Used for built-in method references. */ - var arrayProto = Array.prototype, - funcProto = Function.prototype, - objectProto = Object.prototype; - - /** Used to detect overreaching core-js shims. */ - var coreJsData = context['__core-js_shared__']; - - /** Used to resolve the decompiled source of functions. */ - var funcToString = funcProto.toString; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Used to generate unique IDs. */ - var idCounter = 0; - - /** Used to detect methods masquerading as native. */ - var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; - }()); - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString = objectProto.toString; - - /** Used to infer the `Object` constructor. */ - var objectCtorString = funcToString.call(Object); - - /** Used to restore the original `_` reference in `_.noConflict`. */ - var oldDash = root._; - - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); - - /** Built-in value references. */ - var Buffer = moduleExports ? context.Buffer : undefined, - Symbol = context.Symbol, - Uint8Array = context.Uint8Array, - allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined, - getPrototype = overArg(Object.getPrototypeOf, Object), - objectCreate = Object.create, - propertyIsEnumerable = objectProto.propertyIsEnumerable, - splice = arrayProto.splice, - spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined, - symIterator = Symbol ? Symbol.iterator : undefined, - symToStringTag = Symbol ? Symbol.toStringTag : undefined; - - var defineProperty = (function() { - try { - var func = getNative(Object, 'defineProperty'); - func({}, '', {}); - return func; - } catch (e) {} - }()); - - /** Mocked built-ins. */ - var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, - ctxNow = Date && Date.now !== root.Date.now && Date.now, - ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeCeil = Math.ceil, - nativeFloor = Math.floor, - nativeGetSymbols = Object.getOwnPropertySymbols, - nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, - nativeIsFinite = context.isFinite, - nativeJoin = arrayProto.join, - nativeKeys = overArg(Object.keys, Object), - nativeMax = Math.max, - nativeMin = Math.min, - nativeNow = Date.now, - nativeParseInt = context.parseInt, - nativeRandom = Math.random, - nativeReverse = arrayProto.reverse; - - /* Built-in method references that are verified to be native. */ - var DataView = getNative(context, 'DataView'), - Map = getNative(context, 'Map'), - Promise = getNative(context, 'Promise'), - Set = getNative(context, 'Set'), - WeakMap = getNative(context, 'WeakMap'), - nativeCreate = getNative(Object, 'create'); - - /** Used to store function metadata. */ - var metaMap = WeakMap && new WeakMap; - - /** Used to lookup unminified function names. */ - var realNames = {}; - - /** Used to detect maps, sets, and weakmaps. */ - var dataViewCtorString = toSource(DataView), - mapCtorString = toSource(Map), - promiseCtorString = toSource(Promise), - setCtorString = toSource(Set), - weakMapCtorString = toSource(WeakMap); - - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` object which wraps `value` to enable implicit method - * chain sequences. Methods that operate on and return arrays, collections, - * and functions can be chained together. Methods that retrieve a single value - * or may return a primitive value will automatically end the chain sequence - * and return the unwrapped value. Otherwise, the value must be unwrapped - * with `_#value`. - * - * Explicit chain sequences, which must be unwrapped with `_#value`, may be - * enabled using `_.chain`. - * - * The execution of chained methods is lazy, that is, it's deferred until - * `_#value` is implicitly or explicitly called. - * - * Lazy evaluation allows several methods to support shortcut fusion. - * Shortcut fusion is an optimization to merge iteratee calls; this avoids - * the creation of intermediate arrays and can greatly reduce the number of - * iteratee executions. Sections of a chain sequence qualify for shortcut - * fusion if the section is applied to an array and iteratees accept only - * one argument. The heuristic for whether a section qualifies for shortcut - * fusion is subject to change. - * - * Chaining is supported in custom builds as long as the `_#value` method is - * directly or indirectly included in the build. - * - * In addition to lodash methods, wrappers have `Array` and `String` methods. - * - * The wrapper `Array` methods are: - * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` - * - * The wrapper `String` methods are: - * `replace` and `split` - * - * The wrapper methods that support shortcut fusion are: - * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, - * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, - * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` - * - * The chainable wrapper methods are: - * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, - * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, - * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, - * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, - * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, - * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, - * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, - * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, - * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, - * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, - * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, - * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, - * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, - * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, - * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, - * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, - * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, - * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, - * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, - * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, - * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, - * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, - * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, - * `zipObject`, `zipObjectDeep`, and `zipWith` - * - * The wrapper methods that are **not** chainable by default are: - * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, - * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, - * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, - * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, - * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, - * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, - * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, - * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, - * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, - * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, - * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, - * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, - * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, - * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, - * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, - * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, - * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, - * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, - * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, - * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, - * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, - * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, - * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, - * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, - * `upperFirst`, `value`, and `words` - * - * @name _ - * @constructor - * @category Seq - * @param {*} value The value to wrap in a `lodash` instance. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var wrapped = _([1, 2, 3]); - * - * // Returns an unwrapped value. - * wrapped.reduce(_.add); - * // => 6 - * - * // Returns a wrapped value. - * var squares = wrapped.map(square); - * - * _.isArray(squares); - * // => false - * - * _.isArray(squares.value()); - * // => true - */ - function lodash(value) { - if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { - if (value instanceof LodashWrapper) { - return value; - } - if (hasOwnProperty.call(value, '__wrapped__')) { - return wrapperClone(value); - } - } - return new LodashWrapper(value); - } - - /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} proto The object to inherit from. - * @returns {Object} Returns the new object. - */ - var baseCreate = (function() { - function object() {} - return function(proto) { - if (!isObject(proto)) { - return {}; - } - if (objectCreate) { - return objectCreate(proto); - } - object.prototype = proto; - var result = new object; - object.prototype = undefined; - return result; - }; - }()); - - /** - * The function whose prototype chain sequence wrappers inherit from. - * - * @private - */ - function baseLodash() { - // No operation performed. - } - - /** - * The base constructor for creating `lodash` wrapper objects. - * - * @private - * @param {*} value The value to wrap. - * @param {boolean} [chainAll] Enable explicit method chain sequences. - */ - function LodashWrapper(value, chainAll) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__chain__ = !!chainAll; - this.__index__ = 0; - this.__values__ = undefined; - } - - /** - * By default, the template delimiters used by lodash are like those in - * embedded Ruby (ERB) as well as ES2015 template strings. Change the - * following template settings to use alternative delimiters. - * - * @static - * @memberOf _ - * @type {Object} - */ - lodash.templateSettings = { - - /** - * Used to detect `data` property values to be HTML-escaped. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'escape': reEscape, - - /** - * Used to detect code to be evaluated. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'evaluate': reEvaluate, - - /** - * Used to detect `data` property values to inject. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'interpolate': reInterpolate, - - /** - * Used to reference the data object in the template text. - * - * @memberOf _.templateSettings - * @type {string} - */ - 'variable': '', - - /** - * Used to import variables into the compiled template. - * - * @memberOf _.templateSettings - * @type {Object} - */ - 'imports': { - - /** - * A reference to the `lodash` function. - * - * @memberOf _.templateSettings.imports - * @type {Function} - */ - '_': lodash - } - }; - - // Ensure wrappers are instances of `baseLodash`. - lodash.prototype = baseLodash.prototype; - lodash.prototype.constructor = lodash; - - LodashWrapper.prototype = baseCreate(baseLodash.prototype); - LodashWrapper.prototype.constructor = LodashWrapper; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. - * - * @private - * @constructor - * @param {*} value The value to wrap. - */ - function LazyWrapper(value) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__dir__ = 1; - this.__filtered__ = false; - this.__iteratees__ = []; - this.__takeCount__ = MAX_ARRAY_LENGTH; - this.__views__ = []; - } - - /** - * Creates a clone of the lazy wrapper object. - * - * @private - * @name clone - * @memberOf LazyWrapper - * @returns {Object} Returns the cloned `LazyWrapper` object. - */ - function lazyClone() { - var result = new LazyWrapper(this.__wrapped__); - result.__actions__ = copyArray(this.__actions__); - result.__dir__ = this.__dir__; - result.__filtered__ = this.__filtered__; - result.__iteratees__ = copyArray(this.__iteratees__); - result.__takeCount__ = this.__takeCount__; - result.__views__ = copyArray(this.__views__); - return result; - } - - /** - * Reverses the direction of lazy iteration. - * - * @private - * @name reverse - * @memberOf LazyWrapper - * @returns {Object} Returns the new reversed `LazyWrapper` object. - */ - function lazyReverse() { - if (this.__filtered__) { - var result = new LazyWrapper(this); - result.__dir__ = -1; - result.__filtered__ = true; - } else { - result = this.clone(); - result.__dir__ *= -1; - } - return result; - } - - /** - * Extracts the unwrapped value from its lazy wrapper. - * - * @private - * @name value - * @memberOf LazyWrapper - * @returns {*} Returns the unwrapped value. - */ - function lazyValue() { - var array = this.__wrapped__.value(), - dir = this.__dir__, - isArr = isArray(array), - isRight = dir < 0, - arrLength = isArr ? array.length : 0, - view = getView(0, arrLength, this.__views__), - start = view.start, - end = view.end, - length = end - start, - index = isRight ? end : (start - 1), - iteratees = this.__iteratees__, - iterLength = iteratees.length, - resIndex = 0, - takeCount = nativeMin(length, this.__takeCount__); - - if (!isArr || (!isRight && arrLength == length && takeCount == length)) { - return baseWrapperValue(array, this.__actions__); - } - var result = []; - - outer: - while (length-- && resIndex < takeCount) { - index += dir; - - var iterIndex = -1, - value = array[index]; - - while (++iterIndex < iterLength) { - var data = iteratees[iterIndex], - iteratee = data.iteratee, - type = data.type, - computed = iteratee(value); - - if (type == LAZY_MAP_FLAG) { - value = computed; - } else if (!computed) { - if (type == LAZY_FILTER_FLAG) { - continue outer; - } else { - break outer; - } - } - } - result[resIndex++] = value; - } - return result; - } - - // Ensure `LazyWrapper` is an instance of `baseLodash`. - LazyWrapper.prototype = baseCreate(baseLodash.prototype); - LazyWrapper.prototype.constructor = LazyWrapper; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Hash(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; - } - - /** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; - } - - /** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined; - } - - /** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function hashHas(key) { - var data = this.__data__; - return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); - } - - /** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ - function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; - return this; - } - - // Add methods to `Hash`. - Hash.prototype.clear = hashClear; - Hash.prototype['delete'] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function ListCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ - function listCacheClear() { - this.__data__ = []; - this.size = 0; - } - - /** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; - } - - /** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - return index < 0 ? undefined : data[index][1]; - } - - /** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; - } - - /** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ - function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; - } - - // Add methods to `ListCache`. - ListCache.prototype.clear = listCacheClear; - ListCache.prototype['delete'] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ - function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new Hash, - 'map': new (Map || ListCache), - 'string': new Hash - }; - } - - /** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function mapCacheDelete(key) { - var result = getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; - return result; - } - - /** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function mapCacheGet(key) { - return getMapData(this, key).get(key); - } - - /** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function mapCacheHas(key) { - return getMapData(this, key).has(key); - } - - /** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ - function mapCacheSet(key, value) { - var data = getMapData(this, key), - size = data.size; - - data.set(key, value); - this.size += data.size == size ? 0 : 1; - return this; - } - - // Add methods to `MapCache`. - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype['delete'] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - - /*------------------------------------------------------------------------*/ - - /** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ - function SetCache(values) { - var index = -1, - length = values == null ? 0 : values.length; - - this.__data__ = new MapCache; - while (++index < length) { - this.add(values[index]); - } - } - - /** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. - */ - function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; - } - - /** - * Checks if `value` is in the array cache. - * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. - */ - function setCacheHas(value) { - return this.__data__.has(value); - } - - // Add methods to `SetCache`. - SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; - SetCache.prototype.has = setCacheHas; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Stack(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; - } - - /** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ - function stackClear() { - this.__data__ = new ListCache; - this.size = 0; - } - - /** - * Removes `key` and its value from the stack. - * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function stackDelete(key) { - var data = this.__data__, - result = data['delete'](key); - - this.size = data.size; - return result; - } - - /** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function stackGet(key) { - return this.__data__.get(key); - } - - /** - * Checks if a stack value for `key` exists. - * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function stackHas(key) { - return this.__data__.has(key); - } - - /** - * Sets the stack `key` to `value`. - * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. - */ - function stackSet(key, value) { - var data = this.__data__; - if (data instanceof ListCache) { - var pairs = data.__data__; - if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new MapCache(pairs); - } - data.set(key, value); - this.size = data.size; - return this; - } - - // Add methods to `Stack`. - Stack.prototype.clear = stackClear; - Stack.prototype['delete'] = stackDelete; - Stack.prototype.get = stackGet; - Stack.prototype.has = stackHas; - Stack.prototype.set = stackSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ - function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), - isArg = !isArr && isArguments(value), - isBuff = !isArr && !isArg && isBuffer(value), - isType = !isArr && !isArg && !isBuff && isTypedArray(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? baseTimes(value.length, String) : [], - length = result.length; - - for (var key in value) { - if ((inherited || hasOwnProperty.call(value, key)) && - !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - (isBuff && (key == 'offset' || key == 'parent')) || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || - // Skip index properties. - isIndex(key, length) - ))) { - result.push(key); - } - } - return result; - } - - /** - * A specialized version of `_.sample` for arrays. - * - * @private - * @param {Array} array The array to sample. - * @returns {*} Returns the random element. - */ - function arraySample(array) { - var length = array.length; - return length ? array[baseRandom(0, length - 1)] : undefined; - } - - /** - * A specialized version of `_.sampleSize` for arrays. - * - * @private - * @param {Array} array The array to sample. - * @param {number} n The number of elements to sample. - * @returns {Array} Returns the random elements. - */ - function arraySampleSize(array, n) { - return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); - } - - /** - * A specialized version of `_.shuffle` for arrays. - * - * @private - * @param {Array} array The array to shuffle. - * @returns {Array} Returns the new shuffled array. - */ - function arrayShuffle(array) { - return shuffleSelf(copyArray(array)); - } - - /** - * This function is like `assignValue` except that it doesn't assign - * `undefined` values. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignMergeValue(object, key, value) { - if ((value !== undefined && !eq(object[key], value)) || - (value === undefined && !(key in object))) { - baseAssignValue(object, key, value); - } - } - - /** - * Assigns `value` to `key` of `object` if the existing value is not equivalent - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || - (value === undefined && !(key in object))) { - baseAssignValue(object, key, value); - } - } - - /** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; - } - - /** - * Aggregates elements of `collection` on `accumulator` with keys transformed - * by `iteratee` and values set by `setter`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ - function baseAggregator(collection, setter, iteratee, accumulator) { - baseEach(collection, function(value, key, collection) { - setter(accumulator, value, iteratee(value), collection); - }); - return accumulator; - } - - /** - * The base implementation of `_.assign` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssign(object, source) { - return object && copyObject(source, keys(source), object); - } - - /** - * The base implementation of `_.assignIn` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssignIn(object, source) { - return object && copyObject(source, keysIn(source), object); - } - - /** - * The base implementation of `assignValue` and `assignMergeValue` without - * value checks. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function baseAssignValue(object, key, value) { - if (key == '__proto__' && defineProperty) { - defineProperty(object, key, { - 'configurable': true, - 'enumerable': true, - 'value': value, - 'writable': true - }); - } else { - object[key] = value; - } - } - - /** - * The base implementation of `_.at` without support for individual paths. - * - * @private - * @param {Object} object The object to iterate over. - * @param {string[]} paths The property paths to pick. - * @returns {Array} Returns the picked elements. - */ - function baseAt(object, paths) { - var index = -1, - length = paths.length, - result = Array(length), - skip = object == null; - - while (++index < length) { - result[index] = skip ? undefined : get(object, paths[index]); - } - return result; - } - - /** - * The base implementation of `_.clamp` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - */ - function baseClamp(number, lower, upper) { - if (number === number) { - if (upper !== undefined) { - number = number <= upper ? number : upper; - } - if (lower !== undefined) { - number = number >= lower ? number : lower; - } - } - return number; - } - - /** - * The base implementation of `_.clone` and `_.cloneDeep` which tracks - * traversed objects. - * - * @private - * @param {*} value The value to clone. - * @param {boolean} bitmask The bitmask flags. - * 1 - Deep clone - * 2 - Flatten inherited properties - * 4 - Clone symbols - * @param {Function} [customizer] The function to customize cloning. - * @param {string} [key] The key of `value`. - * @param {Object} [object] The parent object of `value`. - * @param {Object} [stack] Tracks traversed objects and their clone counterparts. - * @returns {*} Returns the cloned value. - */ - function baseClone(value, bitmask, customizer, key, object, stack) { - var result, - isDeep = bitmask & CLONE_DEEP_FLAG, - isFlat = bitmask & CLONE_FLAT_FLAG, - isFull = bitmask & CLONE_SYMBOLS_FLAG; - - if (customizer) { - result = object ? customizer(value, key, object, stack) : customizer(value); - } - if (result !== undefined) { - return result; - } - if (!isObject(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result = initCloneArray(value); - if (!isDeep) { - return copyArray(value, result); - } - } else { - var tag = getTag(value), - isFunc = tag == funcTag || tag == genTag; - - if (isBuffer(value)) { - return cloneBuffer(value, isDeep); - } - if (tag == objectTag || tag == argsTag || (isFunc && !object)) { - result = (isFlat || isFunc) ? {} : initCloneObject(value); - if (!isDeep) { - return isFlat - ? copySymbolsIn(value, baseAssignIn(result, value)) - : copySymbols(value, baseAssign(result, value)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value : {}; - } - result = initCloneByTag(value, tag, isDeep); - } - } - // Check for circular references and return its corresponding clone. - stack || (stack = new Stack); - var stacked = stack.get(value); - if (stacked) { - return stacked; - } - stack.set(value, result); - - if (isSet(value)) { - value.forEach(function(subValue) { - result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); - }); - } else if (isMap(value)) { - value.forEach(function(subValue, key) { - result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); - }); - } - - var keysFunc = isFull - ? (isFlat ? getAllKeysIn : getAllKeys) - : (isFlat ? keysIn : keys); - - var props = isArr ? undefined : keysFunc(value); - arrayEach(props || value, function(subValue, key) { - if (props) { - key = subValue; - subValue = value[key]; - } - // Recursively populate clone (susceptible to call stack limits). - assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); - }); - return result; - } - - /** - * The base implementation of `_.conforms` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property predicates to conform to. - * @returns {Function} Returns the new spec function. - */ - function baseConforms(source) { - var props = keys(source); - return function(object) { - return baseConformsTo(object, source, props); - }; - } - - /** - * The base implementation of `_.conformsTo` which accepts `props` to check. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property predicates to conform to. - * @returns {boolean} Returns `true` if `object` conforms, else `false`. - */ - function baseConformsTo(object, source, props) { - var length = props.length; - if (object == null) { - return !length; - } - object = Object(object); - while (length--) { - var key = props[length], - predicate = source[key], - value = object[key]; - - if ((value === undefined && !(key in object)) || !predicate(value)) { - return false; - } - } - return true; - } - - /** - * The base implementation of `_.delay` and `_.defer` which accepts `args` - * to provide to `func`. - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {Array} args The arguments to provide to `func`. - * @returns {number|Object} Returns the timer id or timeout object. - */ - function baseDelay(func, wait, args) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return setTimeout(function() { func.apply(undefined, args); }, wait); - } - - /** - * The base implementation of methods like `_.difference` without support - * for excluding multiple arrays or iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Array} values The values to exclude. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - */ - function baseDifference(array, values, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - isCommon = true, - length = array.length, - result = [], - valuesLength = values.length; - - if (!length) { - return result; - } - if (iteratee) { - values = arrayMap(values, baseUnary(iteratee)); - } - if (comparator) { - includes = arrayIncludesWith; - isCommon = false; - } - else if (values.length >= LARGE_ARRAY_SIZE) { - includes = cacheHas; - isCommon = false; - values = new SetCache(values); - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee == null ? value : iteratee(value); - - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values[valuesIndex] === computed) { - continue outer; - } - } - result.push(value); - } - else if (!includes(values, computed, comparator)) { - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.forEach` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ - var baseEach = createBaseEach(baseForOwn); - - /** - * The base implementation of `_.forEachRight` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ - var baseEachRight = createBaseEach(baseForOwnRight, true); - - /** - * The base implementation of `_.every` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false` - */ - function baseEvery(collection, predicate) { - var result = true; - baseEach(collection, function(value, index, collection) { - result = !!predicate(value, index, collection); - return result; - }); - return result; - } - - /** - * The base implementation of methods like `_.max` and `_.min` which accepts a - * `comparator` to determine the extremum value. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The iteratee invoked per iteration. - * @param {Function} comparator The comparator used to compare values. - * @returns {*} Returns the extremum value. - */ - function baseExtremum(array, iteratee, comparator) { - var index = -1, - length = array.length; - - while (++index < length) { - var value = array[index], - current = iteratee(value); - - if (current != null && (computed === undefined - ? (current === current && !isSymbol(current)) - : comparator(current, computed) - )) { - var computed = current, - result = value; - } - } - return result; - } - - /** - * The base implementation of `_.fill` without an iteratee call guard. - * - * @private - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - */ - function baseFill(array, value, start, end) { - var length = array.length; - - start = toInteger(start); - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = (end === undefined || end > length) ? length : toInteger(end); - if (end < 0) { - end += length; - } - end = start > end ? 0 : toLength(end); - while (start < end) { - array[start++] = value; - } - return array; - } - - /** - * The base implementation of `_.filter` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function baseFilter(collection, predicate) { - var result = []; - baseEach(collection, function(value, index, collection) { - if (predicate(value, index, collection)) { - result.push(value); - } - }); - return result; - } - - /** - * The base implementation of `_.flatten` with support for restricting flattening. - * - * @private - * @param {Array} array The array to flatten. - * @param {number} depth The maximum recursion depth. - * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. - * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ - function baseFlatten(array, depth, predicate, isStrict, result) { - var index = -1, - length = array.length; - - predicate || (predicate = isFlattenable); - result || (result = []); - - while (++index < length) { - var value = array[index]; - if (depth > 0 && predicate(value)) { - if (depth > 1) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, depth - 1, predicate, isStrict, result); - } else { - arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } - return result; - } - - /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - /** - * This function is like `baseFor` except that it iterates over properties - * in the opposite order. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseForRight = createBaseFor(true); - - /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); - } - - /** - * The base implementation of `_.forOwnRight` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwnRight(object, iteratee) { - return object && baseForRight(object, iteratee, keys); - } - - /** - * The base implementation of `_.functions` which creates an array of - * `object` function property names filtered from `props`. - * - * @private - * @param {Object} object The object to inspect. - * @param {Array} props The property names to filter. - * @returns {Array} Returns the function names. - */ - function baseFunctions(object, props) { - return arrayFilter(props, function(key) { - return isFunction(object[key]); - }); - } - - /** - * The base implementation of `_.get` without support for default values. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @returns {*} Returns the resolved value. - */ - function baseGet(object, path) { - path = castPath(path, object); - - var index = 0, - length = path.length; - - while (object != null && index < length) { - object = object[toKey(path[index++])]; - } - return (index && index == length) ? object : undefined; - } - - /** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. - */ - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); - } - - /** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); - } - - /** - * The base implementation of `_.gt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, - * else `false`. - */ - function baseGt(value, other) { - return value > other; - } - - /** - * The base implementation of `_.has` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHas(object, key) { - return object != null && hasOwnProperty.call(object, key); - } - - /** - * The base implementation of `_.hasIn` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHasIn(object, key) { - return object != null && key in Object(object); - } - - /** - * The base implementation of `_.inRange` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to check. - * @param {number} start The start of the range. - * @param {number} end The end of the range. - * @returns {boolean} Returns `true` if `number` is in the range, else `false`. - */ - function baseInRange(number, start, end) { - return number >= nativeMin(start, end) && number < nativeMax(start, end); - } - - /** - * The base implementation of methods like `_.intersection`, without support - * for iteratee shorthands, that accepts an array of arrays to inspect. - * - * @private - * @param {Array} arrays The arrays to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of shared values. - */ - function baseIntersection(arrays, iteratee, comparator) { - var includes = comparator ? arrayIncludesWith : arrayIncludes, - length = arrays[0].length, - othLength = arrays.length, - othIndex = othLength, - caches = Array(othLength), - maxLength = Infinity, - result = []; - - while (othIndex--) { - var array = arrays[othIndex]; - if (othIndex && iteratee) { - array = arrayMap(array, baseUnary(iteratee)); - } - maxLength = nativeMin(array.length, maxLength); - caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) - ? new SetCache(othIndex && array) - : undefined; - } - array = arrays[0]; - - var index = -1, - seen = caches[0]; - - outer: - while (++index < length && result.length < maxLength) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - value = (comparator || value !== 0) ? value : 0; - if (!(seen - ? cacheHas(seen, computed) - : includes(result, computed, comparator) - )) { - othIndex = othLength; - while (--othIndex) { - var cache = caches[othIndex]; - if (!(cache - ? cacheHas(cache, computed) - : includes(arrays[othIndex], computed, comparator)) - ) { - continue outer; - } - } - if (seen) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.invert` and `_.invertBy` which inverts - * `object` with values transformed by `iteratee` and set by `setter`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform values. - * @param {Object} accumulator The initial inverted object. - * @returns {Function} Returns `accumulator`. - */ - function baseInverter(object, setter, iteratee, accumulator) { - baseForOwn(object, function(value, key, object) { - setter(accumulator, iteratee(value), key, object); - }); - return accumulator; - } - - /** - * The base implementation of `_.invoke` without support for individual - * method arguments. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the method to invoke. - * @param {Array} args The arguments to invoke the method with. - * @returns {*} Returns the result of the invoked method. - */ - function baseInvoke(object, path, args) { - path = castPath(path, object); - object = parent(object, path); - var func = object == null ? object : object[toKey(last(path))]; - return func == null ? undefined : apply(func, object, args); - } - - /** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; - } - - /** - * The base implementation of `_.isArrayBuffer` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. - */ - function baseIsArrayBuffer(value) { - return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; - } - - /** - * The base implementation of `_.isDate` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - */ - function baseIsDate(value) { - return isObjectLike(value) && baseGetTag(value) == dateTag; - } - - /** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ - function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); - } - - /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = objIsArr ? arrayTag : getTag(object), - othTag = othIsArr ? arrayTag : getTag(other); - - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; - - var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; - - if (isSameTag && isBuffer(object)) { - if (!isBuffer(other)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack); - return (objIsArr || isTypedArray(object)) - ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) - : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; - - stack || (stack = new Stack); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack); - return equalObjects(object, other, bitmask, customizer, equalFunc, stack); - } - - /** - * The base implementation of `_.isMap` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - */ - function baseIsMap(value) { - return isObjectLike(value) && getTag(value) == mapTag; - } - - /** - * The base implementation of `_.isMatch` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Array} matchData The property names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - */ - function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; - - if (object == null) { - return !length; - } - object = Object(object); - while (index--) { - var data = matchData[index]; - if ((noCustomizer && data[2]) - ? data[1] !== object[data[0]] - : !(data[0] in object) - ) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; - - if (noCustomizer && data[2]) { - if (objValue === undefined && !(key in object)) { - return false; - } - } else { - var stack = new Stack; - if (customizer) { - var result = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result === undefined - ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) - : result - )) { - return false; - } - } - } - return true; - } - - /** - * The base implementation of `_.isNative` without bad shim checks. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - */ - function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; - } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); - } - - /** - * The base implementation of `_.isRegExp` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - */ - function baseIsRegExp(value) { - return isObjectLike(value) && baseGetTag(value) == regexpTag; - } - - /** - * The base implementation of `_.isSet` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - */ - function baseIsSet(value) { - return isObjectLike(value) && getTag(value) == setTag; - } - - /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ - function baseIsTypedArray(value) { - return isObjectLike(value) && - isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; - } - - /** - * The base implementation of `_.iteratee`. - * - * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. - */ - function baseIteratee(value) { - // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. - // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. - if (typeof value == 'function') { - return value; - } - if (value == null) { - return identity; - } - if (typeof value == 'object') { - return isArray(value) - ? baseMatchesProperty(value[0], value[1]) - : baseMatches(value); - } - return property(value); - } - - /** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty.call(object, key) && key != 'constructor') { - result.push(key); - } - } - return result; - } - - /** - * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeysIn(object) { - if (!isObject(object)) { - return nativeKeysIn(object); - } - var isProto = isPrototype(object), - result = []; - - for (var key in object) { - if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; - } - - /** - * The base implementation of `_.lt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, - * else `false`. - */ - function baseLt(value, other) { - return value < other; - } - - /** - * The base implementation of `_.map` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function baseMap(collection, iteratee) { - var index = -1, - result = isArrayLike(collection) ? Array(collection.length) : []; - - baseEach(collection, function(value, key, collection) { - result[++index] = iteratee(value, key, collection); - }); - return result; - } - - /** - * The base implementation of `_.matches` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable(matchData[0][0], matchData[0][1]); - } - return function(object) { - return object === source || baseIsMatch(object, source, matchData); - }; - } - - /** - * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. - * - * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatchesProperty(path, srcValue) { - if (isKey(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path), srcValue); - } - return function(object) { - var objValue = get(object, path); - return (objValue === undefined && objValue === srcValue) - ? hasIn(object, path) - : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; - } - - /** - * The base implementation of `_.merge` without support for multiple sources. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {number} srcIndex The index of `source`. - * @param {Function} [customizer] The function to customize merged values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ - function baseMerge(object, source, srcIndex, customizer, stack) { - if (object === source) { - return; - } - baseFor(source, function(srcValue, key) { - stack || (stack = new Stack); - if (isObject(srcValue)) { - baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); - } - else { - var newValue = customizer - ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) - : undefined; - - if (newValue === undefined) { - newValue = srcValue; - } - assignMergeValue(object, key, newValue); - } - }, keysIn); - } - - /** - * A specialized version of `baseMerge` for arrays and objects which performs - * deep merges and tracks traversed objects enabling objects with circular - * references to be merged. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {string} key The key of the value to merge. - * @param {number} srcIndex The index of `source`. - * @param {Function} mergeFunc The function to merge values. - * @param {Function} [customizer] The function to customize assigned values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ - function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { - var objValue = safeGet(object, key), - srcValue = safeGet(source, key), - stacked = stack.get(srcValue); - - if (stacked) { - assignMergeValue(object, key, stacked); - return; - } - var newValue = customizer - ? customizer(objValue, srcValue, (key + ''), object, source, stack) - : undefined; - - var isCommon = newValue === undefined; - - if (isCommon) { - var isArr = isArray(srcValue), - isBuff = !isArr && isBuffer(srcValue), - isTyped = !isArr && !isBuff && isTypedArray(srcValue); - - newValue = srcValue; - if (isArr || isBuff || isTyped) { - if (isArray(objValue)) { - newValue = objValue; - } - else if (isArrayLikeObject(objValue)) { - newValue = copyArray(objValue); - } - else if (isBuff) { - isCommon = false; - newValue = cloneBuffer(srcValue, true); - } - else if (isTyped) { - isCommon = false; - newValue = cloneTypedArray(srcValue, true); - } - else { - newValue = []; - } - } - else if (isPlainObject(srcValue) || isArguments(srcValue)) { - newValue = objValue; - if (isArguments(objValue)) { - newValue = toPlainObject(objValue); - } - else if (!isObject(objValue) || isFunction(objValue)) { - newValue = initCloneObject(srcValue); - } - } - else { - isCommon = false; - } - } - if (isCommon) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, newValue); - mergeFunc(newValue, srcValue, srcIndex, customizer, stack); - stack['delete'](srcValue); - } - assignMergeValue(object, key, newValue); - } - - /** - * The base implementation of `_.nth` which doesn't coerce arguments. - * - * @private - * @param {Array} array The array to query. - * @param {number} n The index of the element to return. - * @returns {*} Returns the nth element of `array`. - */ - function baseNth(array, n) { - var length = array.length; - if (!length) { - return; - } - n += n < 0 ? length : 0; - return isIndex(n, length) ? array[n] : undefined; - } - - /** - * The base implementation of `_.orderBy` without param guards. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. - * @param {string[]} orders The sort orders of `iteratees`. - * @returns {Array} Returns the new sorted array. - */ - function baseOrderBy(collection, iteratees, orders) { - if (iteratees.length) { - iteratees = arrayMap(iteratees, function(iteratee) { - if (isArray(iteratee)) { - return function(value) { - return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee); - } - } - return iteratee; - }); - } else { - iteratees = [identity]; - } - - var index = -1; - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - - var result = baseMap(collection, function(value, key, collection) { - var criteria = arrayMap(iteratees, function(iteratee) { - return iteratee(value); - }); - return { 'criteria': criteria, 'index': ++index, 'value': value }; - }); - - return baseSortBy(result, function(object, other) { - return compareMultiple(object, other, orders); - }); - } - - /** - * The base implementation of `_.pick` without support for individual - * property identifiers. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @returns {Object} Returns the new object. - */ - function basePick(object, paths) { - return basePickBy(object, paths, function(value, path) { - return hasIn(object, path); - }); - } - - /** - * The base implementation of `_.pickBy` without support for iteratee shorthands. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @param {Function} predicate The function invoked per property. - * @returns {Object} Returns the new object. - */ - function basePickBy(object, paths, predicate) { - var index = -1, - length = paths.length, - result = {}; - - while (++index < length) { - var path = paths[index], - value = baseGet(object, path); - - if (predicate(value, path)) { - baseSet(result, castPath(path, object), value); - } - } - return result; - } - - /** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyDeep(path) { - return function(object) { - return baseGet(object, path); - }; - } - - /** - * The base implementation of `_.pullAllBy` without support for iteratee - * shorthands. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns `array`. - */ - function basePullAll(array, values, iteratee, comparator) { - var indexOf = comparator ? baseIndexOfWith : baseIndexOf, - index = -1, - length = values.length, - seen = array; - - if (array === values) { - values = copyArray(values); - } - if (iteratee) { - seen = arrayMap(array, baseUnary(iteratee)); - } - while (++index < length) { - var fromIndex = 0, - value = values[index], - computed = iteratee ? iteratee(value) : value; - - while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { - if (seen !== array) { - splice.call(seen, fromIndex, 1); - } - splice.call(array, fromIndex, 1); - } - } - return array; - } - - /** - * The base implementation of `_.pullAt` without support for individual - * indexes or capturing the removed elements. - * - * @private - * @param {Array} array The array to modify. - * @param {number[]} indexes The indexes of elements to remove. - * @returns {Array} Returns `array`. - */ - function basePullAt(array, indexes) { - var length = array ? indexes.length : 0, - lastIndex = length - 1; - - while (length--) { - var index = indexes[length]; - if (length == lastIndex || index !== previous) { - var previous = index; - if (isIndex(index)) { - splice.call(array, index, 1); - } else { - baseUnset(array, index); - } - } - } - return array; - } - - /** - * The base implementation of `_.random` without support for returning - * floating-point numbers. - * - * @private - * @param {number} lower The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the random number. - */ - function baseRandom(lower, upper) { - return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); - } - - /** - * The base implementation of `_.range` and `_.rangeRight` which doesn't - * coerce arguments. - * - * @private - * @param {number} start The start of the range. - * @param {number} end The end of the range. - * @param {number} step The value to increment or decrement by. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the range of numbers. - */ - function baseRange(start, end, step, fromRight) { - var index = -1, - length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), - result = Array(length); - - while (length--) { - result[fromRight ? length : ++index] = start; - start += step; - } - return result; - } - - /** - * The base implementation of `_.repeat` which doesn't coerce arguments. - * - * @private - * @param {string} string The string to repeat. - * @param {number} n The number of times to repeat the string. - * @returns {string} Returns the repeated string. - */ - function baseRepeat(string, n) { - var result = ''; - if (!string || n < 1 || n > MAX_SAFE_INTEGER) { - return result; - } - // Leverage the exponentiation by squaring algorithm for a faster repeat. - // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. - do { - if (n % 2) { - result += string; - } - n = nativeFloor(n / 2); - if (n) { - string += string; - } - } while (n); - - return result; - } - - /** - * The base implementation of `_.rest` which doesn't validate or coerce arguments. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - */ - function baseRest(func, start) { - return setToString(overRest(func, start, identity), func + ''); - } - - /** - * The base implementation of `_.sample`. - * - * @private - * @param {Array|Object} collection The collection to sample. - * @returns {*} Returns the random element. - */ - function baseSample(collection) { - return arraySample(values(collection)); - } - - /** - * The base implementation of `_.sampleSize` without param guards. - * - * @private - * @param {Array|Object} collection The collection to sample. - * @param {number} n The number of elements to sample. - * @returns {Array} Returns the random elements. - */ - function baseSampleSize(collection, n) { - var array = values(collection); - return shuffleSelf(array, baseClamp(n, 0, array.length)); - } - - /** - * The base implementation of `_.set`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @param {Function} [customizer] The function to customize path creation. - * @returns {Object} Returns `object`. - */ - function baseSet(object, path, value, customizer) { - if (!isObject(object)) { - return object; - } - path = castPath(path, object); - - var index = -1, - length = path.length, - lastIndex = length - 1, - nested = object; - - while (nested != null && ++index < length) { - var key = toKey(path[index]), - newValue = value; - - if (key === '__proto__' || key === 'constructor' || key === 'prototype') { - return object; - } - - if (index != lastIndex) { - var objValue = nested[key]; - newValue = customizer ? customizer(objValue, key, nested) : undefined; - if (newValue === undefined) { - newValue = isObject(objValue) - ? objValue - : (isIndex(path[index + 1]) ? [] : {}); - } - } - assignValue(nested, key, newValue); - nested = nested[key]; - } - return object; - } - - /** - * The base implementation of `setData` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var baseSetData = !metaMap ? identity : function(func, data) { - metaMap.set(func, data); - return func; - }; - - /** - * The base implementation of `setToString` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var baseSetToString = !defineProperty ? identity : function(func, string) { - return defineProperty(func, 'toString', { - 'configurable': true, - 'enumerable': false, - 'value': constant(string), - 'writable': true - }); - }; - - /** - * The base implementation of `_.shuffle`. - * - * @private - * @param {Array|Object} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - */ - function baseShuffle(collection) { - return shuffleSelf(values(collection)); - } - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function baseSlice(array, start, end) { - var index = -1, - length = array.length; - - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : ((end - start) >>> 0); - start >>>= 0; - - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; - } - return result; - } - - /** - * The base implementation of `_.some` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function baseSome(collection, predicate) { - var result; - - baseEach(collection, function(value, index, collection) { - result = predicate(value, index, collection); - return !result; - }); - return !!result; - } - - /** - * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which - * performs a binary search of `array` to determine the index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function baseSortedIndex(array, value, retHighest) { - var low = 0, - high = array == null ? low : array.length; - - if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { - while (low < high) { - var mid = (low + high) >>> 1, - computed = array[mid]; - - if (computed !== null && !isSymbol(computed) && - (retHighest ? (computed <= value) : (computed < value))) { - low = mid + 1; - } else { - high = mid; - } - } - return high; - } - return baseSortedIndexBy(array, value, identity, retHighest); - } - - /** - * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy` - * which invokes `iteratee` for `value` and each element of `array` to compute - * their sort ranking. The iteratee is invoked with one argument; (value). - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} iteratee The iteratee invoked per element. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function baseSortedIndexBy(array, value, iteratee, retHighest) { - var low = 0, - high = array == null ? 0 : array.length; - if (high === 0) { - return 0; - } - - value = iteratee(value); - var valIsNaN = value !== value, - valIsNull = value === null, - valIsSymbol = isSymbol(value), - valIsUndefined = value === undefined; - - while (low < high) { - var mid = nativeFloor((low + high) / 2), - computed = iteratee(array[mid]), - othIsDefined = computed !== undefined, - othIsNull = computed === null, - othIsReflexive = computed === computed, - othIsSymbol = isSymbol(computed); - - if (valIsNaN) { - var setLow = retHighest || othIsReflexive; - } else if (valIsUndefined) { - setLow = othIsReflexive && (retHighest || othIsDefined); - } else if (valIsNull) { - setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); - } else if (valIsSymbol) { - setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); - } else if (othIsNull || othIsSymbol) { - setLow = false; - } else { - setLow = retHighest ? (computed <= value) : (computed < value); - } - if (setLow) { - low = mid + 1; - } else { - high = mid; - } - } - return nativeMin(high, MAX_ARRAY_INDEX); - } - - /** - * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ - function baseSortedUniq(array, iteratee) { - var index = -1, - length = array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - if (!index || !eq(computed, seen)) { - var seen = computed; - result[resIndex++] = value === 0 ? 0 : value; - } - } - return result; - } - - /** - * The base implementation of `_.toNumber` which doesn't ensure correct - * conversions of binary, hexadecimal, or octal string values. - * - * @private - * @param {*} value The value to process. - * @returns {number} Returns the number. - */ - function baseToNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - return +value; - } - - /** - * The base implementation of `_.toString` which doesn't convert nullish - * values to empty strings. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (isArray(value)) { - // Recursively convert values (susceptible to call stack limits). - return arrayMap(value, baseToString) + ''; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } - - /** - * The base implementation of `_.uniqBy` without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ - function baseUniq(array, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - length = array.length, - isCommon = true, - result = [], - seen = result; - - if (comparator) { - isCommon = false; - includes = arrayIncludesWith; - } - else if (length >= LARGE_ARRAY_SIZE) { - var set = iteratee ? null : createSet(array); - if (set) { - return setToArray(set); - } - isCommon = false; - includes = cacheHas; - seen = new SetCache; - } - else { - seen = iteratee ? [] : result; - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee) { - seen.push(computed); - } - result.push(value); - } - else if (!includes(seen, computed, comparator)) { - if (seen !== result) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.unset`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The property path to unset. - * @returns {boolean} Returns `true` if the property is deleted, else `false`. - */ - function baseUnset(object, path) { - path = castPath(path, object); - object = parent(object, path); - return object == null || delete object[toKey(last(path))]; - } - - /** - * The base implementation of `_.update`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to update. - * @param {Function} updater The function to produce the updated value. - * @param {Function} [customizer] The function to customize path creation. - * @returns {Object} Returns `object`. - */ - function baseUpdate(object, path, updater, customizer) { - return baseSet(object, path, updater(baseGet(object, path)), customizer); - } - - /** - * The base implementation of methods like `_.dropWhile` and `_.takeWhile` - * without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to query. - * @param {Function} predicate The function invoked per iteration. - * @param {boolean} [isDrop] Specify dropping elements instead of taking them. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the slice of `array`. - */ - function baseWhile(array, predicate, isDrop, fromRight) { - var length = array.length, - index = fromRight ? length : -1; - - while ((fromRight ? index-- : ++index < length) && - predicate(array[index], index, array)) {} - - return isDrop - ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length)) - : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index)); - } - - /** - * The base implementation of `wrapperValue` which returns the result of - * performing a sequence of actions on the unwrapped `value`, where each - * successive action is supplied the return value of the previous. - * - * @private - * @param {*} value The unwrapped value. - * @param {Array} actions Actions to perform to resolve the unwrapped value. - * @returns {*} Returns the resolved value. - */ - function baseWrapperValue(value, actions) { - var result = value; - if (result instanceof LazyWrapper) { - result = result.value(); - } - return arrayReduce(actions, function(result, action) { - return action.func.apply(action.thisArg, arrayPush([result], action.args)); - }, result); - } - - /** - * The base implementation of methods like `_.xor`, without support for - * iteratee shorthands, that accepts an array of arrays to inspect. - * - * @private - * @param {Array} arrays The arrays to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of values. - */ - function baseXor(arrays, iteratee, comparator) { - var length = arrays.length; - if (length < 2) { - return length ? baseUniq(arrays[0]) : []; - } - var index = -1, - result = Array(length); - - while (++index < length) { - var array = arrays[index], - othIndex = -1; - - while (++othIndex < length) { - if (othIndex != index) { - result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); - } - } - } - return baseUniq(baseFlatten(result, 1), iteratee, comparator); - } - - /** - * This base implementation of `_.zipObject` which assigns values using `assignFunc`. - * - * @private - * @param {Array} props The property identifiers. - * @param {Array} values The property values. - * @param {Function} assignFunc The function to assign values. - * @returns {Object} Returns the new object. - */ - function baseZipObject(props, values, assignFunc) { - var index = -1, - length = props.length, - valsLength = values.length, - result = {}; - - while (++index < length) { - var value = index < valsLength ? values[index] : undefined; - assignFunc(result, props[index], value); - } - return result; - } - - /** - * Casts `value` to an empty array if it's not an array like object. - * - * @private - * @param {*} value The value to inspect. - * @returns {Array|Object} Returns the cast array-like object. - */ - function castArrayLikeObject(value) { - return isArrayLikeObject(value) ? value : []; - } - - /** - * Casts `value` to `identity` if it's not a function. - * - * @private - * @param {*} value The value to inspect. - * @returns {Function} Returns cast function. - */ - function castFunction(value) { - return typeof value == 'function' ? value : identity; - } - - /** - * Casts `value` to a path array if it's not one. - * - * @private - * @param {*} value The value to inspect. - * @param {Object} [object] The object to query keys on. - * @returns {Array} Returns the cast property path array. - */ - function castPath(value, object) { - if (isArray(value)) { - return value; - } - return isKey(value, object) ? [value] : stringToPath(toString(value)); - } - - /** - * A `baseRest` alias which can be replaced with `identity` by module - * replacement plugins. - * - * @private - * @type {Function} - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - var castRest = baseRest; - - /** - * Casts `array` to a slice if it's needed. - * - * @private - * @param {Array} array The array to inspect. - * @param {number} start The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the cast slice. - */ - function castSlice(array, start, end) { - var length = array.length; - end = end === undefined ? length : end; - return (!start && end >= length) ? array : baseSlice(array, start, end); - } - - /** - * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout). - * - * @private - * @param {number|Object} id The timer id or timeout object of the timer to clear. - */ - var clearTimeout = ctxClearTimeout || function(id) { - return root.clearTimeout(id); - }; - - /** - * Creates a clone of `buffer`. - * - * @private - * @param {Buffer} buffer The buffer to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Buffer} Returns the cloned buffer. - */ - function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); - } - var length = buffer.length, - result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); - - buffer.copy(result); - return result; - } - - /** - * Creates a clone of `arrayBuffer`. - * - * @private - * @param {ArrayBuffer} arrayBuffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. - */ - function cloneArrayBuffer(arrayBuffer) { - var result = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array(result).set(new Uint8Array(arrayBuffer)); - return result; - } - - /** - * Creates a clone of `dataView`. - * - * @private - * @param {Object} dataView The data view to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned data view. - */ - function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); - } - - /** - * Creates a clone of `regexp`. - * - * @private - * @param {Object} regexp The regexp to clone. - * @returns {Object} Returns the cloned regexp. - */ - function cloneRegExp(regexp) { - var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result.lastIndex = regexp.lastIndex; - return result; - } - - /** - * Creates a clone of the `symbol` object. - * - * @private - * @param {Object} symbol The symbol object to clone. - * @returns {Object} Returns the cloned symbol object. - */ - function cloneSymbol(symbol) { - return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; - } - - /** - * Creates a clone of `typedArray`. - * - * @private - * @param {Object} typedArray The typed array to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned typed array. - */ - function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); - } - - /** - * Compares values to sort them in ascending order. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {number} Returns the sort order indicator for `value`. - */ - function compareAscending(value, other) { - if (value !== other) { - var valIsDefined = value !== undefined, - valIsNull = value === null, - valIsReflexive = value === value, - valIsSymbol = isSymbol(value); - - var othIsDefined = other !== undefined, - othIsNull = other === null, - othIsReflexive = other === other, - othIsSymbol = isSymbol(other); - - if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || - (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || - (valIsNull && othIsDefined && othIsReflexive) || - (!valIsDefined && othIsReflexive) || - !valIsReflexive) { - return 1; - } - if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || - (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || - (othIsNull && valIsDefined && valIsReflexive) || - (!othIsDefined && valIsReflexive) || - !othIsReflexive) { - return -1; - } - } - return 0; - } - - /** - * Used by `_.orderBy` to compare multiple properties of a value to another - * and stable sort them. - * - * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, - * specify an order of "desc" for descending or "asc" for ascending sort order - * of corresponding values. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {boolean[]|string[]} orders The order to sort by for each property. - * @returns {number} Returns the sort order indicator for `object`. - */ - function compareMultiple(object, other, orders) { - var index = -1, - objCriteria = object.criteria, - othCriteria = other.criteria, - length = objCriteria.length, - ordersLength = orders.length; - - while (++index < length) { - var result = compareAscending(objCriteria[index], othCriteria[index]); - if (result) { - if (index >= ordersLength) { - return result; - } - var order = orders[index]; - return result * (order == 'desc' ? -1 : 1); - } - } - // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications - // that causes it, under certain circumstances, to provide the same value for - // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 - // for more details. - // - // This also ensures a stable sort in V8 and other engines. - // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. - return object.index - other.index; - } - - /** - * Creates an array that is the composition of partially applied arguments, - * placeholders, and provided arguments into a single array of arguments. - * - * @private - * @param {Array} args The provided arguments. - * @param {Array} partials The arguments to prepend to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @params {boolean} [isCurried] Specify composing for a curried function. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgs(args, partials, holders, isCurried) { - var argsIndex = -1, - argsLength = args.length, - holdersLength = holders.length, - leftIndex = -1, - leftLength = partials.length, - rangeLength = nativeMax(argsLength - holdersLength, 0), - result = Array(leftLength + rangeLength), - isUncurried = !isCurried; - - while (++leftIndex < leftLength) { - result[leftIndex] = partials[leftIndex]; - } - while (++argsIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result[holders[argsIndex]] = args[argsIndex]; - } - } - while (rangeLength--) { - result[leftIndex++] = args[argsIndex++]; - } - return result; - } - - /** - * This function is like `composeArgs` except that the arguments composition - * is tailored for `_.partialRight`. - * - * @private - * @param {Array} args The provided arguments. - * @param {Array} partials The arguments to append to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @params {boolean} [isCurried] Specify composing for a curried function. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgsRight(args, partials, holders, isCurried) { - var argsIndex = -1, - argsLength = args.length, - holdersIndex = -1, - holdersLength = holders.length, - rightIndex = -1, - rightLength = partials.length, - rangeLength = nativeMax(argsLength - holdersLength, 0), - result = Array(rangeLength + rightLength), - isUncurried = !isCurried; - - while (++argsIndex < rangeLength) { - result[argsIndex] = args[argsIndex]; - } - var offset = argsIndex; - while (++rightIndex < rightLength) { - result[offset + rightIndex] = partials[rightIndex]; - } - while (++holdersIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result[offset + holders[holdersIndex]] = args[argsIndex++]; - } - } - return result; - } - - /** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ - function copyArray(source, array) { - var index = -1, - length = source.length; - - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; - } - - /** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property identifiers to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. - * @returns {Object} Returns `object`. - */ - function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); - - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - - var newValue = customizer - ? customizer(object[key], source[key], key, object, source) - : undefined; - - if (newValue === undefined) { - newValue = source[key]; - } - if (isNew) { - baseAssignValue(object, key, newValue); - } else { - assignValue(object, key, newValue); - } - } - return object; - } - - /** - * Copies own symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); - } - - /** - * Copies own and inherited symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbolsIn(source, object) { - return copyObject(source, getSymbolsIn(source), object); - } - - /** - * Creates a function like `_.groupBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} [initializer] The accumulator object initializer. - * @returns {Function} Returns the new aggregator function. - */ - function createAggregator(setter, initializer) { - return function(collection, iteratee) { - var func = isArray(collection) ? arrayAggregator : baseAggregator, - accumulator = initializer ? initializer() : {}; - - return func(collection, setter, getIteratee(iteratee, 2), accumulator); - }; - } - - /** - * Creates a function like `_.assign`. - * - * @private - * @param {Function} assigner The function to assign values. - * @returns {Function} Returns the new assigner function. - */ - function createAssigner(assigner) { - return baseRest(function(object, sources) { - var index = -1, - length = sources.length, - customizer = length > 1 ? sources[length - 1] : undefined, - guard = length > 2 ? sources[2] : undefined; - - customizer = (assigner.length > 3 && typeof customizer == 'function') - ? (length--, customizer) - : undefined; - - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - customizer = length < 3 ? undefined : customizer; - length = 1; - } - object = Object(object); - while (++index < length) { - var source = sources[index]; - if (source) { - assigner(object, source, index, customizer); - } - } - return object; - }); - } - - /** - * Creates a `baseEach` or `baseEachRight` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee) { - if (collection == null) { - return collection; - } - if (!isArrayLike(collection)) { - return eachFunc(collection, iteratee); - } - var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); - - while ((fromRight ? index-- : ++index < length)) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; - } - - /** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; - - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - /** - * Creates a function that wraps `func` to invoke it with the optional `this` - * binding of `thisArg`. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createBind(func, bitmask, thisArg) { - var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); - - function wrapper() { - var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - return fn.apply(isBind ? thisArg : this, arguments); - } - return wrapper; - } - - /** - * Creates a function like `_.lowerFirst`. - * - * @private - * @param {string} methodName The name of the `String` case method to use. - * @returns {Function} Returns the new case function. - */ - function createCaseFirst(methodName) { - return function(string) { - string = toString(string); - - var strSymbols = hasUnicode(string) - ? stringToArray(string) - : undefined; - - var chr = strSymbols - ? strSymbols[0] - : string.charAt(0); - - var trailing = strSymbols - ? castSlice(strSymbols, 1).join('') - : string.slice(1); - - return chr[methodName]() + trailing; - }; - } - - /** - * Creates a function like `_.camelCase`. - * - * @private - * @param {Function} callback The function to combine each word. - * @returns {Function} Returns the new compounder function. - */ - function createCompounder(callback) { - return function(string) { - return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); - }; - } - - /** - * Creates a function that produces an instance of `Ctor` regardless of - * whether it was invoked as part of a `new` expression or by `call` or `apply`. - * - * @private - * @param {Function} Ctor The constructor to wrap. - * @returns {Function} Returns the new wrapped function. - */ - function createCtor(Ctor) { - return function() { - // Use a `switch` statement to work with class constructors. See - // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist - // for more details. - var args = arguments; - switch (args.length) { - case 0: return new Ctor; - case 1: return new Ctor(args[0]); - case 2: return new Ctor(args[0], args[1]); - case 3: return new Ctor(args[0], args[1], args[2]); - case 4: return new Ctor(args[0], args[1], args[2], args[3]); - case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); - case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); - case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); - } - var thisBinding = baseCreate(Ctor.prototype), - result = Ctor.apply(thisBinding, args); - - // Mimic the constructor's `return` behavior. - // See https://es5.github.io/#x13.2.2 for more details. - return isObject(result) ? result : thisBinding; - }; - } - - /** - * Creates a function that wraps `func` to enable currying. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {number} arity The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createCurry(func, bitmask, arity) { - var Ctor = createCtor(func); - - function wrapper() { - var length = arguments.length, - args = Array(length), - index = length, - placeholder = getHolder(wrapper); - - while (index--) { - args[index] = arguments[index]; - } - var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder) - ? [] - : replaceHolders(args, placeholder); - - length -= holders.length; - if (length < arity) { - return createRecurry( - func, bitmask, createHybrid, wrapper.placeholder, undefined, - args, holders, undefined, undefined, arity - length); - } - var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - return apply(fn, this, args); - } - return wrapper; - } - - /** - * Creates a `_.find` or `_.findLast` function. - * - * @private - * @param {Function} findIndexFunc The function to find the collection index. - * @returns {Function} Returns the new find function. - */ - function createFind(findIndexFunc) { - return function(collection, predicate, fromIndex) { - var iterable = Object(collection); - if (!isArrayLike(collection)) { - var iteratee = getIteratee(predicate, 3); - collection = keys(collection); - predicate = function(key) { return iteratee(iterable[key], key, iterable); }; - } - var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; - }; - } - - /** - * Creates a `_.flow` or `_.flowRight` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new flow function. - */ - function createFlow(fromRight) { - return flatRest(function(funcs) { - var length = funcs.length, - index = length, - prereq = LodashWrapper.prototype.thru; - - if (fromRight) { - funcs.reverse(); - } - while (index--) { - var func = funcs[index]; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (prereq && !wrapper && getFuncName(func) == 'wrapper') { - var wrapper = new LodashWrapper([], true); - } - } - index = wrapper ? index : length; - while (++index < length) { - func = funcs[index]; - - var funcName = getFuncName(func), - data = funcName == 'wrapper' ? getData(func) : undefined; - - if (data && isLaziable(data[0]) && - data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && - !data[4].length && data[9] == 1 - ) { - wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); - } else { - wrapper = (func.length == 1 && isLaziable(func)) - ? wrapper[funcName]() - : wrapper.thru(func); - } - } - return function() { - var args = arguments, - value = args[0]; - - if (wrapper && args.length == 1 && isArray(value)) { - return wrapper.plant(value).value(); - } - var index = 0, - result = length ? funcs[index].apply(this, args) : value; - - while (++index < length) { - result = funcs[index].call(this, result); - } - return result; - }; - }); - } - - /** - * Creates a function that wraps `func` to invoke it with optional `this` - * binding of `thisArg`, partial application, and currying. - * - * @private - * @param {Function|string} func The function or method name to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to - * the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [partialsRight] The arguments to append to those provided - * to the new function. - * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { - var isAry = bitmask & WRAP_ARY_FLAG, - isBind = bitmask & WRAP_BIND_FLAG, - isBindKey = bitmask & WRAP_BIND_KEY_FLAG, - isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), - isFlip = bitmask & WRAP_FLIP_FLAG, - Ctor = isBindKey ? undefined : createCtor(func); - - function wrapper() { - var length = arguments.length, - args = Array(length), - index = length; - - while (index--) { - args[index] = arguments[index]; - } - if (isCurried) { - var placeholder = getHolder(wrapper), - holdersCount = countHolders(args, placeholder); - } - if (partials) { - args = composeArgs(args, partials, holders, isCurried); - } - if (partialsRight) { - args = composeArgsRight(args, partialsRight, holdersRight, isCurried); - } - length -= holdersCount; - if (isCurried && length < arity) { - var newHolders = replaceHolders(args, placeholder); - return createRecurry( - func, bitmask, createHybrid, wrapper.placeholder, thisArg, - args, newHolders, argPos, ary, arity - length - ); - } - var thisBinding = isBind ? thisArg : this, - fn = isBindKey ? thisBinding[func] : func; - - length = args.length; - if (argPos) { - args = reorder(args, argPos); - } else if (isFlip && length > 1) { - args.reverse(); - } - if (isAry && ary < length) { - args.length = ary; - } - if (this && this !== root && this instanceof wrapper) { - fn = Ctor || createCtor(fn); - } - return fn.apply(thisBinding, args); - } - return wrapper; - } - - /** - * Creates a function like `_.invertBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} toIteratee The function to resolve iteratees. - * @returns {Function} Returns the new inverter function. - */ - function createInverter(setter, toIteratee) { - return function(object, iteratee) { - return baseInverter(object, setter, toIteratee(iteratee), {}); - }; - } - - /** - * Creates a function that performs a mathematical operation on two values. - * - * @private - * @param {Function} operator The function to perform the operation. - * @param {number} [defaultValue] The value used for `undefined` arguments. - * @returns {Function} Returns the new mathematical operation function. - */ - function createMathOperation(operator, defaultValue) { - return function(value, other) { - var result; - if (value === undefined && other === undefined) { - return defaultValue; - } - if (value !== undefined) { - result = value; - } - if (other !== undefined) { - if (result === undefined) { - return other; - } - if (typeof value == 'string' || typeof other == 'string') { - value = baseToString(value); - other = baseToString(other); - } else { - value = baseToNumber(value); - other = baseToNumber(other); - } - result = operator(value, other); - } - return result; - }; - } - - /** - * Creates a function like `_.over`. - * - * @private - * @param {Function} arrayFunc The function to iterate over iteratees. - * @returns {Function} Returns the new over function. - */ - function createOver(arrayFunc) { - return flatRest(function(iteratees) { - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - return baseRest(function(args) { - var thisArg = this; - return arrayFunc(iteratees, function(iteratee) { - return apply(iteratee, thisArg, args); - }); - }); - }); - } - - /** - * Creates the padding for `string` based on `length`. The `chars` string - * is truncated if the number of characters exceeds `length`. - * - * @private - * @param {number} length The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padding for `string`. - */ - function createPadding(length, chars) { - chars = chars === undefined ? ' ' : baseToString(chars); - - var charsLength = chars.length; - if (charsLength < 2) { - return charsLength ? baseRepeat(chars, length) : chars; - } - var result = baseRepeat(chars, nativeCeil(length / stringSize(chars))); - return hasUnicode(chars) - ? castSlice(stringToArray(result), 0, length).join('') - : result.slice(0, length); - } - - /** - * Creates a function that wraps `func` to invoke it with the `this` binding - * of `thisArg` and `partials` prepended to the arguments it receives. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} partials The arguments to prepend to those provided to - * the new function. - * @returns {Function} Returns the new wrapped function. - */ - function createPartial(func, bitmask, thisArg, partials) { - var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); - - function wrapper() { - var argsIndex = -1, - argsLength = arguments.length, - leftIndex = -1, - leftLength = partials.length, - args = Array(leftLength + argsLength), - fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; - } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; - } - return apply(fn, isBind ? thisArg : this, args); - } - return wrapper; - } - - /** - * Creates a `_.range` or `_.rangeRight` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new range function. - */ - function createRange(fromRight) { - return function(start, end, step) { - if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { - end = step = undefined; - } - // Ensure the sign of `-0` is preserved. - start = toFinite(start); - if (end === undefined) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - step = step === undefined ? (start < end ? 1 : -1) : toFinite(step); - return baseRange(start, end, step, fromRight); - }; - } - - /** - * Creates a function that performs a relational operation on two values. - * - * @private - * @param {Function} operator The function to perform the operation. - * @returns {Function} Returns the new relational operation function. - */ - function createRelationalOperation(operator) { - return function(value, other) { - if (!(typeof value == 'string' && typeof other == 'string')) { - value = toNumber(value); - other = toNumber(other); - } - return operator(value, other); - }; - } - - /** - * Creates a function that wraps `func` to continue currying. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {Function} wrapFunc The function to create the `func` wrapper. - * @param {*} placeholder The placeholder value. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to - * the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { - var isCurry = bitmask & WRAP_CURRY_FLAG, - newHolders = isCurry ? holders : undefined, - newHoldersRight = isCurry ? undefined : holders, - newPartials = isCurry ? partials : undefined, - newPartialsRight = isCurry ? undefined : partials; - - bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG); - bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); - - if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { - bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); - } - var newData = [ - func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, - newHoldersRight, argPos, ary, arity - ]; - - var result = wrapFunc.apply(undefined, newData); - if (isLaziable(func)) { - setData(result, newData); - } - result.placeholder = placeholder; - return setWrapToString(result, func, bitmask); - } - - /** - * Creates a function like `_.round`. - * - * @private - * @param {string} methodName The name of the `Math` method to use when rounding. - * @returns {Function} Returns the new round function. - */ - function createRound(methodName) { - var func = Math[methodName]; - return function(number, precision) { - number = toNumber(number); - precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); - if (precision && nativeIsFinite(number)) { - // Shift with exponential notation to avoid floating-point issues. - // See [MDN](https://mdn.io/round#Examples) for more details. - var pair = (toString(number) + 'e').split('e'), - value = func(pair[0] + 'e' + (+pair[1] + precision)); - - pair = (toString(value) + 'e').split('e'); - return +(pair[0] + 'e' + (+pair[1] - precision)); - } - return func(number); - }; - } - - /** - * Creates a set object of `values`. - * - * @private - * @param {Array} values The values to add to the set. - * @returns {Object} Returns the new set. - */ - var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { - return new Set(values); - }; - - /** - * Creates a `_.toPairs` or `_.toPairsIn` function. - * - * @private - * @param {Function} keysFunc The function to get the keys of a given object. - * @returns {Function} Returns the new pairs function. - */ - function createToPairs(keysFunc) { - return function(object) { - var tag = getTag(object); - if (tag == mapTag) { - return mapToArray(object); - } - if (tag == setTag) { - return setToPairs(object); - } - return baseToPairs(object, keysFunc(object)); - }; - } - - /** - * Creates a function that either curries or invokes `func` with optional - * `this` binding and partially applied arguments. - * - * @private - * @param {Function|string} func The function or method name to wrap. - * @param {number} bitmask The bitmask flags. - * 1 - `_.bind` - * 2 - `_.bindKey` - * 4 - `_.curry` or `_.curryRight` of a bound function - * 8 - `_.curry` - * 16 - `_.curryRight` - * 32 - `_.partial` - * 64 - `_.partialRight` - * 128 - `_.rearg` - * 256 - `_.ary` - * 512 - `_.flip` - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to be partially applied. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { - var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; - if (!isBindKey && typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - var length = partials ? partials.length : 0; - if (!length) { - bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); - partials = holders = undefined; - } - ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0); - arity = arity === undefined ? arity : toInteger(arity); - length -= holders ? holders.length : 0; - - if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { - var partialsRight = partials, - holdersRight = holders; - - partials = holders = undefined; - } - var data = isBindKey ? undefined : getData(func); - - var newData = [ - func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, - argPos, ary, arity - ]; - - if (data) { - mergeData(newData, data); - } - func = newData[0]; - bitmask = newData[1]; - thisArg = newData[2]; - partials = newData[3]; - holders = newData[4]; - arity = newData[9] = newData[9] === undefined - ? (isBindKey ? 0 : func.length) - : nativeMax(newData[9] - length, 0); - - if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { - bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); - } - if (!bitmask || bitmask == WRAP_BIND_FLAG) { - var result = createBind(func, bitmask, thisArg); - } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { - result = createCurry(func, bitmask, arity); - } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { - result = createPartial(func, bitmask, thisArg, partials); - } else { - result = createHybrid.apply(undefined, newData); - } - var setter = data ? baseSetData : setData; - return setWrapToString(setter(result, newData), func, bitmask); - } - - /** - * Used by `_.defaults` to customize its `_.assignIn` use to assign properties - * of source objects to the destination object for all destination properties - * that resolve to `undefined`. - * - * @private - * @param {*} objValue The destination value. - * @param {*} srcValue The source value. - * @param {string} key The key of the property to assign. - * @param {Object} object The parent object of `objValue`. - * @returns {*} Returns the value to assign. - */ - function customDefaultsAssignIn(objValue, srcValue, key, object) { - if (objValue === undefined || - (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) { - return srcValue; - } - return objValue; - } - - /** - * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source - * objects into destination objects that are passed thru. - * - * @private - * @param {*} objValue The destination value. - * @param {*} srcValue The source value. - * @param {string} key The key of the property to merge. - * @param {Object} object The parent object of `objValue`. - * @param {Object} source The parent object of `srcValue`. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - * @returns {*} Returns the value to assign. - */ - function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { - if (isObject(objValue) && isObject(srcValue)) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, objValue); - baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack); - stack['delete'](srcValue); - } - return objValue; - } - - /** - * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain - * objects. - * - * @private - * @param {*} value The value to inspect. - * @param {string} key The key of the property to inspect. - * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. - */ - function customOmitClone(value) { - return isPlainObject(value) ? undefined : value; - } - - /** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; - - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - // Check that cyclic values are equal. - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - var index = -1, - result = true, - seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; - - stack.set(array, other); - stack.set(other, array); - - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; - - if (customizer) { - var compared = isPartial - ? customizer(othValue, arrValue, index, other, array, stack) - : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== undefined) { - if (compared) { - continue; - } - result = false; - break; - } - // Recursively compare arrays (susceptible to call stack limits). - if (seen) { - if (!arraySome(other, function(othValue, othIndex) { - if (!cacheHas(seen, othIndex) && - (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!( - arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack) - )) { - result = false; - break; - } - } - stack['delete'](array); - stack['delete'](other); - return result; - } - - /** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag: - if ((object.byteLength != other.byteLength) || - (object.byteOffset != other.byteOffset)) { - return false; - } - object = object.buffer; - other = other.buffer; - - case arrayBufferTag: - if ((object.byteLength != other.byteLength) || - !equalFunc(new Uint8Array(object), new Uint8Array(other))) { - return false; - } - return true; - - case boolTag: - case dateTag: - case numberTag: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq(+object, +other); - - case errorTag: - return object.name == other.name && object.message == other.message; - - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == (other + ''); - - case mapTag: - var convert = mapToArray; - - case setTag: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG; - convert || (convert = setToArray); - - if (object.size != other.size && !isPartial) { - return false; - } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG; - - // Recursively compare objects (susceptible to call stack limits). - stack.set(object, other); - var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack['delete'](object); - return result; - - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } - } - return false; - } - - /** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - objProps = getAllKeys(object), - objLength = objProps.length, - othProps = getAllKeys(other), - othLength = othProps.length; - - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - // Check that cyclic values are equal. - var objStacked = stack.get(object); - var othStacked = stack.get(other); - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } - var result = true; - stack.set(object, other); - stack.set(other, object); - - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; - - if (customizer) { - var compared = isPartial - ? customizer(othValue, objValue, key, other, object, stack) - : customizer(objValue, othValue, key, object, other, stack); - } - // Recursively compare objects (susceptible to call stack limits). - if (!(compared === undefined - ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) - : compared - )) { - result = false; - break; - } - skipCtor || (skipCtor = key == 'constructor'); - } - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; - - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; - } - } - stack['delete'](object); - stack['delete'](other); - return result; - } - - /** - * A specialized version of `baseRest` which flattens the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - function flatRest(func) { - return setToString(overRest(func, undefined, flatten), func + ''); - } - - /** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); - } - - /** - * Creates an array of own and inherited enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeysIn(object) { - return baseGetAllKeys(object, keysIn, getSymbolsIn); - } - - /** - * Gets metadata for `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {*} Returns the metadata for `func`. - */ - var getData = !metaMap ? noop : function(func) { - return metaMap.get(func); - }; - - /** - * Gets the name of `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {string} Returns the function name. - */ - function getFuncName(func) { - var result = (func.name + ''), - array = realNames[result], - length = hasOwnProperty.call(realNames, result) ? array.length : 0; - - while (length--) { - var data = array[length], - otherFunc = data.func; - if (otherFunc == null || otherFunc == func) { - return data.name; - } - } - return result; - } - - /** - * Gets the argument placeholder value for `func`. - * - * @private - * @param {Function} func The function to inspect. - * @returns {*} Returns the placeholder value. - */ - function getHolder(func) { - var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func; - return object.placeholder; - } - - /** - * Gets the appropriate "iteratee" function. If `_.iteratee` is customized, - * this function returns the custom method, otherwise it returns `baseIteratee`. - * If arguments are provided, the chosen function is invoked with them and - * its result is returned. - * - * @private - * @param {*} [value] The value to convert to an iteratee. - * @param {number} [arity] The arity of the created iteratee. - * @returns {Function} Returns the chosen function or its result. - */ - function getIteratee() { - var result = lodash.iteratee || iteratee; - result = result === iteratee ? baseIteratee : result; - return arguments.length ? result(arguments[0], arguments[1]) : result; - } - - /** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ - function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; - } - - /** - * Gets the property names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. - */ - function getMatchData(object) { - var result = keys(object), - length = result.length; - - while (length--) { - var key = result[length], - value = object[key]; - - result[length] = [key, value, isStrictComparable(value)]; - } - return result; - } - - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined; - } - - /** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ - function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; - - try { - value[symToStringTag] = undefined; - var unmasked = true; - } catch (e) {} - - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; - } - } - return result; - } - - /** - * Creates an array of the own enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbols = !nativeGetSymbols ? stubArray : function(object) { - if (object == null) { - return []; - } - object = Object(object); - return arrayFilter(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable.call(object, symbol); - }); - }; - - /** - * Creates an array of the own and inherited enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { - var result = []; - while (object) { - arrayPush(result, getSymbols(object)); - object = getPrototype(object); - } - return result; - }; - - /** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - var getTag = baseGetTag; - - // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. - if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || - (Map && getTag(new Map) != mapTag) || - (Promise && getTag(Promise.resolve()) != promiseTag) || - (Set && getTag(new Set) != setTag) || - (WeakMap && getTag(new WeakMap) != weakMapTag)) { - getTag = function(value) { - var result = baseGetTag(value), - Ctor = result == objectTag ? value.constructor : undefined, - ctorString = Ctor ? toSource(Ctor) : ''; - - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: return dataViewTag; - case mapCtorString: return mapTag; - case promiseCtorString: return promiseTag; - case setCtorString: return setTag; - case weakMapCtorString: return weakMapTag; - } - } - return result; - }; - } - - /** - * Gets the view, applying any `transforms` to the `start` and `end` positions. - * - * @private - * @param {number} start The start of the view. - * @param {number} end The end of the view. - * @param {Array} transforms The transformations to apply to the view. - * @returns {Object} Returns an object containing the `start` and `end` - * positions of the view. - */ - function getView(start, end, transforms) { - var index = -1, - length = transforms.length; - - while (++index < length) { - var data = transforms[index], - size = data.size; - - switch (data.type) { - case 'drop': start += size; break; - case 'dropRight': end -= size; break; - case 'take': end = nativeMin(end, start + size); break; - case 'takeRight': start = nativeMax(start, end - size); break; - } - } - return { 'start': start, 'end': end }; - } - - /** - * Extracts wrapper details from the `source` body comment. - * - * @private - * @param {string} source The source to inspect. - * @returns {Array} Returns the wrapper details. - */ - function getWrapDetails(source) { - var match = source.match(reWrapDetails); - return match ? match[1].split(reSplitDetails) : []; - } - - /** - * Checks if `path` exists on `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @param {Function} hasFunc The function to check properties. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - */ - function hasPath(object, path, hasFunc) { - path = castPath(path, object); - - var index = -1, - length = path.length, - result = false; - - while (++index < length) { - var key = toKey(path[index]); - if (!(result = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result || ++index != length) { - return result; - } - length = object == null ? 0 : object.length; - return !!length && isLength(length) && isIndex(key, length) && - (isArray(object) || isArguments(object)); - } - - /** - * Initializes an array clone. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the initialized clone. - */ - function initCloneArray(array) { - var length = array.length, - result = new array.constructor(length); - - // Add properties assigned by `RegExp#exec`. - if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { - result.index = array.index; - result.input = array.input; - } - return result; - } - - /** - * Initializes an object clone. - * - * @private - * @param {Object} object The object to clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneObject(object) { - return (typeof object.constructor == 'function' && !isPrototype(object)) - ? baseCreate(getPrototype(object)) - : {}; - } - - /** - * Initializes an object clone based on its `toStringTag`. - * - * **Note:** This function only supports cloning values with tags of - * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. - * - * @private - * @param {Object} object The object to clone. - * @param {string} tag The `toStringTag` of the object to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer(object); - - case boolTag: - case dateTag: - return new Ctor(+object); - - case dataViewTag: - return cloneDataView(object, isDeep); - - case float32Tag: case float64Tag: - case int8Tag: case int16Tag: case int32Tag: - case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: - return cloneTypedArray(object, isDeep); - - case mapTag: - return new Ctor; - - case numberTag: - case stringTag: - return new Ctor(object); - - case regexpTag: - return cloneRegExp(object); - - case setTag: - return new Ctor; - - case symbolTag: - return cloneSymbol(object); - } - } - - /** - * Inserts wrapper `details` in a comment at the top of the `source` body. - * - * @private - * @param {string} source The source to modify. - * @returns {Array} details The details to insert. - * @returns {string} Returns the modified source. - */ - function insertWrapDetails(source, details) { - var length = details.length; - if (!length) { - return source; - } - var lastIndex = length - 1; - details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; - details = details.join(length > 2 ? ', ' : ' '); - return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); - } - - /** - * Checks if `value` is a flattenable `arguments` object or array. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. - */ - function isFlattenable(value) { - return isArray(value) || isArguments(value) || - !!(spreadableSymbol && value && value[spreadableSymbol]); - } - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - var type = typeof value; - length = length == null ? MAX_SAFE_INTEGER : length; - - return !!length && - (type == 'number' || - (type != 'symbol' && reIsUint.test(value))) && - (value > -1 && value % 1 == 0 && value < length); - } - - /** - * Checks if the given arguments are from an iteratee call. - * - * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, - * else `false`. - */ - function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object) - ) { - return eq(object[index], value); - } - return false; - } - - /** - * Checks if `value` is a property name and not a property path. - * - * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. - */ - function isKey(value, object) { - if (isArray(value)) { - return false; - } - var type = typeof value; - if (type == 'number' || type == 'symbol' || type == 'boolean' || - value == null || isSymbol(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || - (object != null && value in Object(object)); - } - - /** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ - function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); - } - - /** - * Checks if `func` has a lazy counterpart. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` has a lazy counterpart, - * else `false`. - */ - function isLaziable(func) { - var funcName = getFuncName(func), - other = lodash[funcName]; - - if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { - return false; - } - if (func === other) { - return true; - } - var data = getData(other); - return !!data && func === data[0]; - } - - /** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ - function isMasked(func) { - return !!maskSrcKey && (maskSrcKey in func); - } - - /** - * Checks if `func` is capable of being masked. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `func` is maskable, else `false`. - */ - var isMaskable = coreJsData ? isFunction : stubFalse; - - /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ - function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; - - return value === proto; - } - - /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. - */ - function isStrictComparable(value) { - return value === value && !isObject(value); - } - - /** - * A specialized version of `matchesProperty` for source values suitable - * for strict equality comparisons, i.e. `===`. - * - * @private - * @param {string} key The key of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ - function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && - (srcValue !== undefined || (key in Object(object))); - }; - } - - /** - * A specialized version of `_.memoize` which clears the memoized function's - * cache when it exceeds `MAX_MEMOIZE_SIZE`. - * - * @private - * @param {Function} func The function to have its output memoized. - * @returns {Function} Returns the new memoized function. - */ - function memoizeCapped(func) { - var result = memoize(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - - var cache = result.cache; - return result; - } - - /** - * Merges the function metadata of `source` into `data`. - * - * Merging metadata reduces the number of wrappers used to invoke a function. - * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` - * may be applied regardless of execution order. Methods like `_.ary` and - * `_.rearg` modify function arguments, making the order in which they are - * executed important, preventing the merging of metadata. However, we make - * an exception for a safe combined case where curried functions have `_.ary` - * and or `_.rearg` applied. - * - * @private - * @param {Array} data The destination metadata. - * @param {Array} source The source metadata. - * @returns {Array} Returns `data`. - */ - function mergeData(data, source) { - var bitmask = data[1], - srcBitmask = source[1], - newBitmask = bitmask | srcBitmask, - isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); - - var isCombo = - ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || - ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || - ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); - - // Exit early if metadata can't be merged. - if (!(isCommon || isCombo)) { - return data; - } - // Use source `thisArg` if available. - if (srcBitmask & WRAP_BIND_FLAG) { - data[2] = source[2]; - // Set when currying a bound function. - newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; - } - // Compose partial arguments. - var value = source[3]; - if (value) { - var partials = data[3]; - data[3] = partials ? composeArgs(partials, value, source[4]) : value; - data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; - } - // Compose partial right arguments. - value = source[5]; - if (value) { - partials = data[5]; - data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; - data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; - } - // Use source `argPos` if available. - value = source[7]; - if (value) { - data[7] = value; - } - // Use source `ary` if it's smaller. - if (srcBitmask & WRAP_ARY_FLAG) { - data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); - } - // Use source `arity` if one is not provided. - if (data[9] == null) { - data[9] = source[9]; - } - // Use source `func` and merge bitmasks. - data[0] = source[0]; - data[1] = newBitmask; - - return data; - } - - /** - * This function is like - * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * except that it includes inherited enumerable properties. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function nativeKeysIn(object) { - var result = []; - if (object != null) { - for (var key in Object(object)) { - result.push(key); - } - } - return result; - } - - /** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ - function objectToString(value) { - return nativeObjectToString.call(value); - } - - /** - * A specialized version of `baseRest` which transforms the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @param {Function} transform The rest array transform. - * @returns {Function} Returns the new function. - */ - function overRest(func, start, transform) { - start = nativeMax(start === undefined ? (func.length - 1) : start, 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform(array); - return apply(func, this, otherArgs); - }; - } - - /** - * Gets the parent value at `path` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} path The path to get the parent value of. - * @returns {*} Returns the parent value. - */ - function parent(object, path) { - return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); - } - - /** - * Reorder `array` according to the specified indexes where the element at - * the first index is assigned as the first element, the element at - * the second index is assigned as the second element, and so on. - * - * @private - * @param {Array} array The array to reorder. - * @param {Array} indexes The arranged array indexes. - * @returns {Array} Returns `array`. - */ - function reorder(array, indexes) { - var arrLength = array.length, - length = nativeMin(indexes.length, arrLength), - oldArray = copyArray(array); - - while (length--) { - var index = indexes[length]; - array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; - } - return array; - } - - /** - * Gets the value at `key`, unless `key` is "__proto__" or "constructor". - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ - function safeGet(object, key) { - if (key === 'constructor' && typeof object[key] === 'function') { - return; - } - - if (key == '__proto__') { - return; - } - - return object[key]; - } - - /** - * Sets metadata for `func`. - * - * **Note:** If this function becomes hot, i.e. is invoked a lot in a short - * period of time, it will trip its breaker and transition to an identity - * function to avoid garbage collection pauses in V8. See - * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070) - * for more details. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var setData = shortOut(baseSetData); - - /** - * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout). - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @returns {number|Object} Returns the timer id or timeout object. - */ - var setTimeout = ctxSetTimeout || function(func, wait) { - return root.setTimeout(func, wait); - }; - - /** - * Sets the `toString` method of `func` to return `string`. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var setToString = shortOut(baseSetToString); - - /** - * Sets the `toString` method of `wrapper` to mimic the source of `reference` - * with wrapper details in a comment at the top of the source body. - * - * @private - * @param {Function} wrapper The function to modify. - * @param {Function} reference The reference function. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @returns {Function} Returns `wrapper`. - */ - function setWrapToString(wrapper, reference, bitmask) { - var source = (reference + ''); - return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); - } - - /** - * Creates a function that'll short out and invoke `identity` instead - * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` - * milliseconds. - * - * @private - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new shortable function. - */ - function shortOut(func) { - var count = 0, - lastCalled = 0; - - return function() { - var stamp = nativeNow(), - remaining = HOT_SPAN - (stamp - lastCalled); - - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return arguments[0]; - } - } else { - count = 0; - } - return func.apply(undefined, arguments); - }; - } - - /** - * A specialized version of `_.shuffle` which mutates and sets the size of `array`. - * - * @private - * @param {Array} array The array to shuffle. - * @param {number} [size=array.length] The size of `array`. - * @returns {Array} Returns `array`. - */ - function shuffleSelf(array, size) { - var index = -1, - length = array.length, - lastIndex = length - 1; - - size = size === undefined ? length : size; - while (++index < size) { - var rand = baseRandom(index, lastIndex), - value = array[rand]; - - array[rand] = array[index]; - array[index] = value; - } - array.length = size; - return array; - } - - /** - * Converts `string` to a property path array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the property path array. - */ - var stringToPath = memoizeCapped(function(string) { - var result = []; - if (string.charCodeAt(0) === 46 /* . */) { - result.push(''); - } - string.replace(rePropName, function(match, number, quote, subString) { - result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); - }); - return result; - }); - - /** - * Converts `value` to a string key if it's not a string or symbol. - * - * @private - * @param {*} value The value to inspect. - * @returns {string|symbol} Returns the key. - */ - function toKey(value) { - if (typeof value == 'string' || isSymbol(value)) { - return value; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } - - /** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. - */ - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; - } - - /** - * Updates wrapper `details` based on `bitmask` flags. - * - * @private - * @returns {Array} details The details to modify. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @returns {Array} Returns `details`. - */ - function updateWrapDetails(details, bitmask) { - arrayEach(wrapFlags, function(pair) { - var value = '_.' + pair[0]; - if ((bitmask & pair[1]) && !arrayIncludes(details, value)) { - details.push(value); - } - }); - return details.sort(); - } - - /** - * Creates a clone of `wrapper`. - * - * @private - * @param {Object} wrapper The wrapper to clone. - * @returns {Object} Returns the cloned wrapper. - */ - function wrapperClone(wrapper) { - if (wrapper instanceof LazyWrapper) { - return wrapper.clone(); - } - var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); - result.__actions__ = copyArray(wrapper.__actions__); - result.__index__ = wrapper.__index__; - result.__values__ = wrapper.__values__; - return result; - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of elements split into groups the length of `size`. - * If `array` can't be split evenly, the final chunk will be the remaining - * elements. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to process. - * @param {number} [size=1] The length of each chunk - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the new array of chunks. - * @example - * - * _.chunk(['a', 'b', 'c', 'd'], 2); - * // => [['a', 'b'], ['c', 'd']] - * - * _.chunk(['a', 'b', 'c', 'd'], 3); - * // => [['a', 'b', 'c'], ['d']] - */ - function chunk(array, size, guard) { - if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) { - size = 1; - } else { - size = nativeMax(toInteger(size), 0); - } - var length = array == null ? 0 : array.length; - if (!length || size < 1) { - return []; - } - var index = 0, - resIndex = 0, - result = Array(nativeCeil(length / size)); - - while (index < length) { - result[resIndex++] = baseSlice(array, index, (index += size)); - } - return result; - } - - /** - * Creates an array with all falsey values removed. The values `false`, `null`, - * `0`, `""`, `undefined`, and `NaN` are falsey. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to compact. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.compact([0, 1, false, 2, '', 3]); - * // => [1, 2, 3] - */ - function compact(array) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (value) { - result[resIndex++] = value; - } - } - return result; - } - - /** - * Creates a new array concatenating `array` with any additional arrays - * and/or values. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to concatenate. - * @param {...*} [values] The values to concatenate. - * @returns {Array} Returns the new concatenated array. - * @example - * - * var array = [1]; - * var other = _.concat(array, 2, [3], [[4]]); - * - * console.log(other); - * // => [1, 2, 3, [4]] - * - * console.log(array); - * // => [1] - */ - function concat() { - var length = arguments.length; - if (!length) { - return []; - } - var args = Array(length - 1), - array = arguments[0], - index = length; - - while (index--) { - args[index - 1] = arguments[index]; - } - return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); - } - - /** - * Creates an array of `array` values not included in the other given arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order and references of result values are - * determined by the first array. - * - * **Note:** Unlike `_.pullAll`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.without, _.xor - * @example - * - * _.difference([2, 1], [2, 3]); - * // => [1] - */ - var difference = baseRest(function(array, values) { - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) - : []; - }); - - /** - * This method is like `_.difference` except that it accepts `iteratee` which - * is invoked for each element of `array` and `values` to generate the criterion - * by which they're compared. The order and references of result values are - * determined by the first array. The iteratee is invoked with one argument: - * (value). - * - * **Note:** Unlike `_.pullAllBy`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [1.2] - * - * // The `_.property` iteratee shorthand. - * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); - * // => [{ 'x': 2 }] - */ - var differenceBy = baseRest(function(array, values) { - var iteratee = last(values); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) - : []; - }); - - /** - * This method is like `_.difference` except that it accepts `comparator` - * which is invoked to compare elements of `array` to `values`. The order and - * references of result values are determined by the first array. The comparator - * is invoked with two arguments: (arrVal, othVal). - * - * **Note:** Unlike `_.pullAllWith`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * - * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); - * // => [{ 'x': 2, 'y': 1 }] - */ - var differenceWith = baseRest(function(array, values) { - var comparator = last(values); - if (isArrayLikeObject(comparator)) { - comparator = undefined; - } - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) - : []; - }); - - /** - * Creates a slice of `array` with `n` elements dropped from the beginning. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.drop([1, 2, 3]); - * // => [2, 3] - * - * _.drop([1, 2, 3], 2); - * // => [3] - * - * _.drop([1, 2, 3], 5); - * // => [] - * - * _.drop([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function drop(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - return baseSlice(array, n < 0 ? 0 : n, length); - } - - /** - * Creates a slice of `array` with `n` elements dropped from the end. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.dropRight([1, 2, 3]); - * // => [1, 2] - * - * _.dropRight([1, 2, 3], 2); - * // => [1] - * - * _.dropRight([1, 2, 3], 5); - * // => [] - * - * _.dropRight([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function dropRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` excluding elements dropped from the end. - * Elements are dropped until `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.dropRightWhile(users, function(o) { return !o.active; }); - * // => objects for ['barney'] - * - * // The `_.matches` iteratee shorthand. - * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); - * // => objects for ['barney', 'fred'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.dropRightWhile(users, ['active', false]); - * // => objects for ['barney'] - * - * // The `_.property` iteratee shorthand. - * _.dropRightWhile(users, 'active'); - * // => objects for ['barney', 'fred', 'pebbles'] - */ - function dropRightWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), true, true) - : []; - } - - /** - * Creates a slice of `array` excluding elements dropped from the beginning. - * Elements are dropped until `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.dropWhile(users, function(o) { return !o.active; }); - * // => objects for ['pebbles'] - * - * // The `_.matches` iteratee shorthand. - * _.dropWhile(users, { 'user': 'barney', 'active': false }); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.dropWhile(users, ['active', false]); - * // => objects for ['pebbles'] - * - * // The `_.property` iteratee shorthand. - * _.dropWhile(users, 'active'); - * // => objects for ['barney', 'fred', 'pebbles'] - */ - function dropWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), true) - : []; - } - - /** - * Fills elements of `array` with `value` from `start` up to, but not - * including, `end`. - * - * **Note:** This method mutates `array`. - * - * @static - * @memberOf _ - * @since 3.2.0 - * @category Array - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3]; - * - * _.fill(array, 'a'); - * console.log(array); - * // => ['a', 'a', 'a'] - * - * _.fill(Array(3), 2); - * // => [2, 2, 2] - * - * _.fill([4, 6, 8, 10], '*', 1, 3); - * // => [4, '*', '*', 10] - */ - function fill(array, value, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { - start = 0; - end = length; - } - return baseFill(array, value, start, end); - } - - /** - * This method is like `_.find` except that it returns the index of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.findIndex(users, function(o) { return o.user == 'barney'; }); - * // => 0 - * - * // The `_.matches` iteratee shorthand. - * _.findIndex(users, { 'user': 'fred', 'active': false }); - * // => 1 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findIndex(users, ['active', false]); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.findIndex(users, 'active'); - * // => 2 - */ - function findIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseFindIndex(array, getIteratee(predicate, 3), index); - } - - /** - * This method is like `_.findIndex` except that it iterates over elements - * of `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); - * // => 2 - * - * // The `_.matches` iteratee shorthand. - * _.findLastIndex(users, { 'user': 'barney', 'active': true }); - * // => 0 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findLastIndex(users, ['active', false]); - * // => 2 - * - * // The `_.property` iteratee shorthand. - * _.findLastIndex(users, 'active'); - * // => 0 - */ - function findLastIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length - 1; - if (fromIndex !== undefined) { - index = toInteger(fromIndex); - index = fromIndex < 0 - ? nativeMax(length + index, 0) - : nativeMin(index, length - 1); - } - return baseFindIndex(array, getIteratee(predicate, 3), index, true); - } - - /** - * Flattens `array` a single level deep. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flatten([1, [2, [3, [4]], 5]]); - * // => [1, 2, [3, [4]], 5] - */ - function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, 1) : []; - } - - /** - * Recursively flattens `array`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flattenDeep([1, [2, [3, [4]], 5]]); - * // => [1, 2, 3, 4, 5] - */ - function flattenDeep(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, INFINITY) : []; - } - - /** - * Recursively flatten `array` up to `depth` times. - * - * @static - * @memberOf _ - * @since 4.4.0 - * @category Array - * @param {Array} array The array to flatten. - * @param {number} [depth=1] The maximum recursion depth. - * @returns {Array} Returns the new flattened array. - * @example - * - * var array = [1, [2, [3, [4]], 5]]; - * - * _.flattenDepth(array, 1); - * // => [1, 2, [3, [4]], 5] - * - * _.flattenDepth(array, 2); - * // => [1, 2, 3, [4], 5] - */ - function flattenDepth(array, depth) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - depth = depth === undefined ? 1 : toInteger(depth); - return baseFlatten(array, depth); - } - - /** - * The inverse of `_.toPairs`; this method returns an object composed - * from key-value `pairs`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} pairs The key-value pairs. - * @returns {Object} Returns the new object. - * @example - * - * _.fromPairs([['a', 1], ['b', 2]]); - * // => { 'a': 1, 'b': 2 } - */ - function fromPairs(pairs) { - var index = -1, - length = pairs == null ? 0 : pairs.length, - result = {}; - - while (++index < length) { - var pair = pairs[index]; - result[pair[0]] = pair[1]; - } - return result; - } - - /** - * Gets the first element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias first - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the first element of `array`. - * @example - * - * _.head([1, 2, 3]); - * // => 1 - * - * _.head([]); - * // => undefined - */ - function head(array) { - return (array && array.length) ? array[0] : undefined; - } - - /** - * Gets the index at which the first occurrence of `value` is found in `array` - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. If `fromIndex` is negative, it's used as the - * offset from the end of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.indexOf([1, 2, 1, 2], 2); - * // => 1 - * - * // Search from the `fromIndex`. - * _.indexOf([1, 2, 1, 2], 2, 2); - * // => 3 - */ - function indexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseIndexOf(array, value, index); - } - - /** - * Gets all but the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.initial([1, 2, 3]); - * // => [1, 2] - */ - function initial(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 0, -1) : []; - } - - /** - * Creates an array of unique values that are included in all given arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order and references of result values are - * determined by the first array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * _.intersection([2, 1], [2, 3]); - * // => [2] - */ - var intersection = baseRest(function(arrays) { - var mapped = arrayMap(arrays, castArrayLikeObject); - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped) - : []; - }); - - /** - * This method is like `_.intersection` except that it accepts `iteratee` - * which is invoked for each element of each `arrays` to generate the criterion - * by which they're compared. The order and references of result values are - * determined by the first array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [2.1] - * - * // The `_.property` iteratee shorthand. - * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }] - */ - var intersectionBy = baseRest(function(arrays) { - var iteratee = last(arrays), - mapped = arrayMap(arrays, castArrayLikeObject); - - if (iteratee === last(mapped)) { - iteratee = undefined; - } else { - mapped.pop(); - } - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped, getIteratee(iteratee, 2)) - : []; - }); - - /** - * This method is like `_.intersection` except that it accepts `comparator` - * which is invoked to compare elements of `arrays`. The order and references - * of result values are determined by the first array. The comparator is - * invoked with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.intersectionWith(objects, others, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }] - */ - var intersectionWith = baseRest(function(arrays) { - var comparator = last(arrays), - mapped = arrayMap(arrays, castArrayLikeObject); - - comparator = typeof comparator == 'function' ? comparator : undefined; - if (comparator) { - mapped.pop(); - } - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped, undefined, comparator) - : []; - }); - - /** - * Converts all elements in `array` into a string separated by `separator`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to convert. - * @param {string} [separator=','] The element separator. - * @returns {string} Returns the joined string. - * @example - * - * _.join(['a', 'b', 'c'], '~'); - * // => 'a~b~c' - */ - function join(array, separator) { - return array == null ? '' : nativeJoin.call(array, separator); - } - - /** - * Gets the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the last element of `array`. - * @example - * - * _.last([1, 2, 3]); - * // => 3 - */ - function last(array) { - var length = array == null ? 0 : array.length; - return length ? array[length - 1] : undefined; - } - - /** - * This method is like `_.indexOf` except that it iterates over elements of - * `array` from right to left. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.lastIndexOf([1, 2, 1, 2], 2); - * // => 3 - * - * // Search from the `fromIndex`. - * _.lastIndexOf([1, 2, 1, 2], 2, 2); - * // => 1 - */ - function lastIndexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length; - if (fromIndex !== undefined) { - index = toInteger(fromIndex); - index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); - } - return value === value - ? strictLastIndexOf(array, value, index) - : baseFindIndex(array, baseIsNaN, index, true); - } - - /** - * Gets the element at index `n` of `array`. If `n` is negative, the nth - * element from the end is returned. - * - * @static - * @memberOf _ - * @since 4.11.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=0] The index of the element to return. - * @returns {*} Returns the nth element of `array`. - * @example - * - * var array = ['a', 'b', 'c', 'd']; - * - * _.nth(array, 1); - * // => 'b' - * - * _.nth(array, -2); - * // => 'c'; - */ - function nth(array, n) { - return (array && array.length) ? baseNth(array, toInteger(n)) : undefined; - } - - /** - * Removes all given values from `array` using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` - * to remove elements from an array by predicate. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {...*} [values] The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = ['a', 'b', 'c', 'a', 'b', 'c']; - * - * _.pull(array, 'a', 'c'); - * console.log(array); - * // => ['b', 'b'] - */ - var pull = baseRest(pullAll); - - /** - * This method is like `_.pull` except that it accepts an array of values to remove. - * - * **Note:** Unlike `_.difference`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = ['a', 'b', 'c', 'a', 'b', 'c']; - * - * _.pullAll(array, ['a', 'c']); - * console.log(array); - * // => ['b', 'b'] - */ - function pullAll(array, values) { - return (array && array.length && values && values.length) - ? basePullAll(array, values) - : array; - } - - /** - * This method is like `_.pullAll` except that it accepts `iteratee` which is - * invoked for each element of `array` and `values` to generate the criterion - * by which they're compared. The iteratee is invoked with one argument: (value). - * - * **Note:** Unlike `_.differenceBy`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns `array`. - * @example - * - * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; - * - * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); - * console.log(array); - * // => [{ 'x': 2 }] - */ - function pullAllBy(array, values, iteratee) { - return (array && array.length && values && values.length) - ? basePullAll(array, values, getIteratee(iteratee, 2)) - : array; - } - - /** - * This method is like `_.pullAll` except that it accepts `comparator` which - * is invoked to compare elements of `array` to `values`. The comparator is - * invoked with two arguments: (arrVal, othVal). - * - * **Note:** Unlike `_.differenceWith`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns `array`. - * @example - * - * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; - * - * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); - * console.log(array); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] - */ - function pullAllWith(array, values, comparator) { - return (array && array.length && values && values.length) - ? basePullAll(array, values, undefined, comparator) - : array; - } - - /** - * Removes elements from `array` corresponding to `indexes` and returns an - * array of removed elements. - * - * **Note:** Unlike `_.at`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {...(number|number[])} [indexes] The indexes of elements to remove. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = ['a', 'b', 'c', 'd']; - * var pulled = _.pullAt(array, [1, 3]); - * - * console.log(array); - * // => ['a', 'c'] - * - * console.log(pulled); - * // => ['b', 'd'] - */ - var pullAt = flatRest(function(array, indexes) { - var length = array == null ? 0 : array.length, - result = baseAt(array, indexes); - - basePullAt(array, arrayMap(indexes, function(index) { - return isIndex(index, length) ? +index : index; - }).sort(compareAscending)); - - return result; - }); - - /** - * Removes all elements from `array` that `predicate` returns truthy for - * and returns an array of the removed elements. The predicate is invoked - * with three arguments: (value, index, array). - * - * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` - * to pull elements from an array by value. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = [1, 2, 3, 4]; - * var evens = _.remove(array, function(n) { - * return n % 2 == 0; - * }); - * - * console.log(array); - * // => [1, 3] - * - * console.log(evens); - * // => [2, 4] - */ - function remove(array, predicate) { - var result = []; - if (!(array && array.length)) { - return result; - } - var index = -1, - indexes = [], - length = array.length; - - predicate = getIteratee(predicate, 3); - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result.push(value); - indexes.push(index); - } - } - basePullAt(array, indexes); - return result; - } - - /** - * Reverses `array` so that the first element becomes the last, the second - * element becomes the second to last, and so on. - * - * **Note:** This method mutates `array` and is based on - * [`Array#reverse`](https://mdn.io/Array/reverse). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3]; - * - * _.reverse(array); - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function reverse(array) { - return array == null ? array : nativeReverse.call(array); - } - - /** - * Creates a slice of `array` from `start` up to, but not including, `end`. - * - * **Note:** This method is used instead of - * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are - * returned. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function slice(array, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { - start = 0; - end = length; - } - else { - start = start == null ? 0 : toInteger(start); - end = end === undefined ? length : toInteger(end); - } - return baseSlice(array, start, end); - } - - /** - * Uses a binary search to determine the lowest index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedIndex([30, 50], 40); - * // => 1 - */ - function sortedIndex(array, value) { - return baseSortedIndex(array, value); - } - - /** - * This method is like `_.sortedIndex` except that it accepts `iteratee` - * which is invoked for `value` and each element of `array` to compute their - * sort ranking. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * var objects = [{ 'x': 4 }, { 'x': 5 }]; - * - * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.sortedIndexBy(objects, { 'x': 4 }, 'x'); - * // => 0 - */ - function sortedIndexBy(array, value, iteratee) { - return baseSortedIndexBy(array, value, getIteratee(iteratee, 2)); - } - - /** - * This method is like `_.indexOf` except that it performs a binary - * search on a sorted `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.sortedIndexOf([4, 5, 5, 5, 6], 5); - * // => 1 - */ - function sortedIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value); - if (index < length && eq(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * This method is like `_.sortedIndex` except that it returns the highest - * index at which `value` should be inserted into `array` in order to - * maintain its sort order. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedLastIndex([4, 5, 5, 5, 6], 5); - * // => 4 - */ - function sortedLastIndex(array, value) { - return baseSortedIndex(array, value, true); - } - - /** - * This method is like `_.sortedLastIndex` except that it accepts `iteratee` - * which is invoked for `value` and each element of `array` to compute their - * sort ranking. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * var objects = [{ 'x': 4 }, { 'x': 5 }]; - * - * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); - * // => 1 - * - * // The `_.property` iteratee shorthand. - * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); - * // => 1 - */ - function sortedLastIndexBy(array, value, iteratee) { - return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true); - } - - /** - * This method is like `_.lastIndexOf` except that it performs a binary - * search on a sorted `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5); - * // => 3 - */ - function sortedLastIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value, true) - 1; - if (eq(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * This method is like `_.uniq` except that it's designed and optimized - * for sorted arrays. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.sortedUniq([1, 1, 2]); - * // => [1, 2] - */ - function sortedUniq(array) { - return (array && array.length) - ? baseSortedUniq(array) - : []; - } - - /** - * This method is like `_.uniqBy` except that it's designed and optimized - * for sorted arrays. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); - * // => [1.1, 2.3] - */ - function sortedUniqBy(array, iteratee) { - return (array && array.length) - ? baseSortedUniq(array, getIteratee(iteratee, 2)) - : []; - } - - /** - * Gets all but the first element of `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.tail([1, 2, 3]); - * // => [2, 3] - */ - function tail(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 1, length) : []; - } - - /** - * Creates a slice of `array` with `n` elements taken from the beginning. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.take([1, 2, 3]); - * // => [1] - * - * _.take([1, 2, 3], 2); - * // => [1, 2] - * - * _.take([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.take([1, 2, 3], 0); - * // => [] - */ - function take(array, n, guard) { - if (!(array && array.length)) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` with `n` elements taken from the end. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.takeRight([1, 2, 3]); - * // => [3] - * - * _.takeRight([1, 2, 3], 2); - * // => [2, 3] - * - * _.takeRight([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.takeRight([1, 2, 3], 0); - * // => [] - */ - function takeRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, n < 0 ? 0 : n, length); - } - - /** - * Creates a slice of `array` with elements taken from the end. Elements are - * taken until `predicate` returns falsey. The predicate is invoked with - * three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.takeRightWhile(users, function(o) { return !o.active; }); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.matches` iteratee shorthand. - * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); - * // => objects for ['pebbles'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.takeRightWhile(users, ['active', false]); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.property` iteratee shorthand. - * _.takeRightWhile(users, 'active'); - * // => [] - */ - function takeRightWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), false, true) - : []; - } - - /** - * Creates a slice of `array` with elements taken from the beginning. Elements - * are taken until `predicate` returns falsey. The predicate is invoked with - * three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.takeWhile(users, function(o) { return !o.active; }); - * // => objects for ['barney', 'fred'] - * - * // The `_.matches` iteratee shorthand. - * _.takeWhile(users, { 'user': 'barney', 'active': false }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.takeWhile(users, ['active', false]); - * // => objects for ['barney', 'fred'] - * - * // The `_.property` iteratee shorthand. - * _.takeWhile(users, 'active'); - * // => [] - */ - function takeWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3)) - : []; - } - - /** - * Creates an array of unique values, in order, from all given arrays using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.union([2], [1, 2]); - * // => [2, 1] - */ - var union = baseRest(function(arrays) { - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); - }); - - /** - * This method is like `_.union` except that it accepts `iteratee` which is - * invoked for each element of each `arrays` to generate the criterion by - * which uniqueness is computed. Result values are chosen from the first - * array in which the value occurs. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.unionBy([2.1], [1.2, 2.3], Math.floor); - * // => [2.1, 1.2] - * - * // The `_.property` iteratee shorthand. - * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - var unionBy = baseRest(function(arrays) { - var iteratee = last(arrays); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)); - }); - - /** - * This method is like `_.union` except that it accepts `comparator` which - * is invoked to compare elements of `arrays`. Result values are chosen from - * the first array in which the value occurs. The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of combined values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.unionWith(objects, others, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] - */ - var unionWith = baseRest(function(arrays) { - var comparator = last(arrays); - comparator = typeof comparator == 'function' ? comparator : undefined; - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator); - }); - - /** - * Creates a duplicate-free version of an array, using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons, in which only the first occurrence of each element - * is kept. The order of result values is determined by the order they occur - * in the array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniq([2, 1, 2]); - * // => [2, 1] - */ - function uniq(array) { - return (array && array.length) ? baseUniq(array) : []; - } - - /** - * This method is like `_.uniq` except that it accepts `iteratee` which is - * invoked for each element in `array` to generate the criterion by which - * uniqueness is computed. The order of result values is determined by the - * order they occur in the array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniqBy([2.1, 1.2, 2.3], Math.floor); - * // => [2.1, 1.2] - * - * // The `_.property` iteratee shorthand. - * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - function uniqBy(array, iteratee) { - return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : []; - } - - /** - * This method is like `_.uniq` except that it accepts `comparator` which - * is invoked to compare elements of `array`. The order of result values is - * determined by the order they occur in the array.The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.uniqWith(objects, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] - */ - function uniqWith(array, comparator) { - comparator = typeof comparator == 'function' ? comparator : undefined; - return (array && array.length) ? baseUniq(array, undefined, comparator) : []; - } - - /** - * This method is like `_.zip` except that it accepts an array of grouped - * elements and creates an array regrouping the elements to their pre-zip - * configuration. - * - * @static - * @memberOf _ - * @since 1.2.0 - * @category Array - * @param {Array} array The array of grouped elements to process. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); - * // => [['a', 1, true], ['b', 2, false]] - * - * _.unzip(zipped); - * // => [['a', 'b'], [1, 2], [true, false]] - */ - function unzip(array) { - if (!(array && array.length)) { - return []; - } - var length = 0; - array = arrayFilter(array, function(group) { - if (isArrayLikeObject(group)) { - length = nativeMax(group.length, length); - return true; - } - }); - return baseTimes(length, function(index) { - return arrayMap(array, baseProperty(index)); - }); - } - - /** - * This method is like `_.unzip` except that it accepts `iteratee` to specify - * how regrouped values should be combined. The iteratee is invoked with the - * elements of each group: (...group). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Array - * @param {Array} array The array of grouped elements to process. - * @param {Function} [iteratee=_.identity] The function to combine - * regrouped values. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip([1, 2], [10, 20], [100, 200]); - * // => [[1, 10, 100], [2, 20, 200]] - * - * _.unzipWith(zipped, _.add); - * // => [3, 30, 300] - */ - function unzipWith(array, iteratee) { - if (!(array && array.length)) { - return []; - } - var result = unzip(array); - if (iteratee == null) { - return result; - } - return arrayMap(result, function(group) { - return apply(iteratee, undefined, group); - }); - } - - /** - * Creates an array excluding all given values using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * **Note:** Unlike `_.pull`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...*} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.difference, _.xor - * @example - * - * _.without([2, 1, 2, 3], 1, 2); - * // => [3] - */ - var without = baseRest(function(array, values) { - return isArrayLikeObject(array) - ? baseDifference(array, values) - : []; - }); - - /** - * Creates an array of unique values that is the - * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) - * of the given arrays. The order of result values is determined by the order - * they occur in the arrays. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of filtered values. - * @see _.difference, _.without - * @example - * - * _.xor([2, 1], [2, 3]); - * // => [1, 3] - */ - var xor = baseRest(function(arrays) { - return baseXor(arrayFilter(arrays, isArrayLikeObject)); - }); - - /** - * This method is like `_.xor` except that it accepts `iteratee` which is - * invoked for each element of each `arrays` to generate the criterion by - * which by which they're compared. The order of result values is determined - * by the order they occur in the arrays. The iteratee is invoked with one - * argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [1.2, 3.4] - * - * // The `_.property` iteratee shorthand. - * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 2 }] - */ - var xorBy = baseRest(function(arrays) { - var iteratee = last(arrays); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2)); - }); - - /** - * This method is like `_.xor` except that it accepts `comparator` which is - * invoked to compare elements of `arrays`. The order of result values is - * determined by the order they occur in the arrays. The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.xorWith(objects, others, _.isEqual); - * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] - */ - var xorWith = baseRest(function(arrays) { - var comparator = last(arrays); - comparator = typeof comparator == 'function' ? comparator : undefined; - return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator); - }); - - /** - * Creates an array of grouped elements, the first of which contains the - * first elements of the given arrays, the second of which contains the - * second elements of the given arrays, and so on. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zip(['a', 'b'], [1, 2], [true, false]); - * // => [['a', 1, true], ['b', 2, false]] - */ - var zip = baseRest(unzip); - - /** - * This method is like `_.fromPairs` except that it accepts two arrays, - * one of property identifiers and one of corresponding values. - * - * @static - * @memberOf _ - * @since 0.4.0 - * @category Array - * @param {Array} [props=[]] The property identifiers. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObject(['a', 'b'], [1, 2]); - * // => { 'a': 1, 'b': 2 } - */ - function zipObject(props, values) { - return baseZipObject(props || [], values || [], assignValue); - } - - /** - * This method is like `_.zipObject` except that it supports property paths. - * - * @static - * @memberOf _ - * @since 4.1.0 - * @category Array - * @param {Array} [props=[]] The property identifiers. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); - * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } - */ - function zipObjectDeep(props, values) { - return baseZipObject(props || [], values || [], baseSet); - } - - /** - * This method is like `_.zip` except that it accepts `iteratee` to specify - * how grouped values should be combined. The iteratee is invoked with the - * elements of each group: (...group). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @param {Function} [iteratee=_.identity] The function to combine - * grouped values. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { - * return a + b + c; - * }); - * // => [111, 222] - */ - var zipWith = baseRest(function(arrays) { - var length = arrays.length, - iteratee = length > 1 ? arrays[length - 1] : undefined; - - iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined; - return unzipWith(arrays, iteratee); - }); - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` wrapper instance that wraps `value` with explicit method - * chain sequences enabled. The result of such sequences must be unwrapped - * with `_#value`. - * - * @static - * @memberOf _ - * @since 1.3.0 - * @category Seq - * @param {*} value The value to wrap. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'pebbles', 'age': 1 } - * ]; - * - * var youngest = _ - * .chain(users) - * .sortBy('age') - * .map(function(o) { - * return o.user + ' is ' + o.age; - * }) - * .head() - * .value(); - * // => 'pebbles is 1' - */ - function chain(value) { - var result = lodash(value); - result.__chain__ = true; - return result; - } - - /** - * This method invokes `interceptor` and returns `value`. The interceptor - * is invoked with one argument; (value). The purpose of this method is to - * "tap into" a method chain sequence in order to modify intermediate results. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns `value`. - * @example - * - * _([1, 2, 3]) - * .tap(function(array) { - * // Mutate input array. - * array.pop(); - * }) - * .reverse() - * .value(); - * // => [2, 1] - */ - function tap(value, interceptor) { - interceptor(value); - return value; - } - - /** - * This method is like `_.tap` except that it returns the result of `interceptor`. - * The purpose of this method is to "pass thru" values replacing intermediate - * results in a method chain sequence. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns the result of `interceptor`. - * @example - * - * _(' abc ') - * .chain() - * .trim() - * .thru(function(value) { - * return [value]; - * }) - * .value(); - * // => ['abc'] - */ - function thru(value, interceptor) { - return interceptor(value); - } - - /** - * This method is the wrapper version of `_.at`. - * - * @name at - * @memberOf _ - * @since 1.0.0 - * @category Seq - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - * - * _(object).at(['a[0].b.c', 'a[1]']).value(); - * // => [3, 4] - */ - var wrapperAt = flatRest(function(paths) { - var length = paths.length, - start = length ? paths[0] : 0, - value = this.__wrapped__, - interceptor = function(object) { return baseAt(object, paths); }; - - if (length > 1 || this.__actions__.length || - !(value instanceof LazyWrapper) || !isIndex(start)) { - return this.thru(interceptor); - } - value = value.slice(start, +start + (length ? 1 : 0)); - value.__actions__.push({ - 'func': thru, - 'args': [interceptor], - 'thisArg': undefined - }); - return new LodashWrapper(value, this.__chain__).thru(function(array) { - if (length && !array.length) { - array.push(undefined); - } - return array; - }); - }); - - /** - * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. - * - * @name chain - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * // A sequence without explicit chaining. - * _(users).head(); - * // => { 'user': 'barney', 'age': 36 } - * - * // A sequence with explicit chaining. - * _(users) - * .chain() - * .head() - * .pick('user') - * .value(); - * // => { 'user': 'barney' } - */ - function wrapperChain() { - return chain(this); - } - - /** - * Executes the chain sequence and returns the wrapped result. - * - * @name commit - * @memberOf _ - * @since 3.2.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2]; - * var wrapped = _(array).push(3); - * - * console.log(array); - * // => [1, 2] - * - * wrapped = wrapped.commit(); - * console.log(array); - * // => [1, 2, 3] - * - * wrapped.last(); - * // => 3 - * - * console.log(array); - * // => [1, 2, 3] - */ - function wrapperCommit() { - return new LodashWrapper(this.value(), this.__chain__); - } - - /** - * Gets the next value on a wrapped object following the - * [iterator protocol](https://mdn.io/iteration_protocols#iterator). - * - * @name next - * @memberOf _ - * @since 4.0.0 - * @category Seq - * @returns {Object} Returns the next iterator value. - * @example - * - * var wrapped = _([1, 2]); - * - * wrapped.next(); - * // => { 'done': false, 'value': 1 } - * - * wrapped.next(); - * // => { 'done': false, 'value': 2 } - * - * wrapped.next(); - * // => { 'done': true, 'value': undefined } - */ - function wrapperNext() { - if (this.__values__ === undefined) { - this.__values__ = toArray(this.value()); - } - var done = this.__index__ >= this.__values__.length, - value = done ? undefined : this.__values__[this.__index__++]; - - return { 'done': done, 'value': value }; - } - - /** - * Enables the wrapper to be iterable. - * - * @name Symbol.iterator - * @memberOf _ - * @since 4.0.0 - * @category Seq - * @returns {Object} Returns the wrapper object. - * @example - * - * var wrapped = _([1, 2]); - * - * wrapped[Symbol.iterator]() === wrapped; - * // => true - * - * Array.from(wrapped); - * // => [1, 2] - */ - function wrapperToIterator() { - return this; - } - - /** - * Creates a clone of the chain sequence planting `value` as the wrapped value. - * - * @name plant - * @memberOf _ - * @since 3.2.0 - * @category Seq - * @param {*} value The value to plant. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var wrapped = _([1, 2]).map(square); - * var other = wrapped.plant([3, 4]); - * - * other.value(); - * // => [9, 16] - * - * wrapped.value(); - * // => [1, 4] - */ - function wrapperPlant(value) { - var result, - parent = this; - - while (parent instanceof baseLodash) { - var clone = wrapperClone(parent); - clone.__index__ = 0; - clone.__values__ = undefined; - if (result) { - previous.__wrapped__ = clone; - } else { - result = clone; - } - var previous = clone; - parent = parent.__wrapped__; - } - previous.__wrapped__ = value; - return result; - } - - /** - * This method is the wrapper version of `_.reverse`. - * - * **Note:** This method mutates the wrapped array. - * - * @name reverse - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2, 3]; - * - * _(array).reverse().value() - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function wrapperReverse() { - var value = this.__wrapped__; - if (value instanceof LazyWrapper) { - var wrapped = value; - if (this.__actions__.length) { - wrapped = new LazyWrapper(this); - } - wrapped = wrapped.reverse(); - wrapped.__actions__.push({ - 'func': thru, - 'args': [reverse], - 'thisArg': undefined - }); - return new LodashWrapper(wrapped, this.__chain__); - } - return this.thru(reverse); - } - - /** - * Executes the chain sequence to resolve the unwrapped value. - * - * @name value - * @memberOf _ - * @since 0.1.0 - * @alias toJSON, valueOf - * @category Seq - * @returns {*} Returns the resolved unwrapped value. - * @example - * - * _([1, 2, 3]).value(); - * // => [1, 2, 3] - */ - function wrapperValue() { - return baseWrapperValue(this.__wrapped__, this.__actions__); - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the number of times the key was returned by `iteratee`. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.countBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': 1, '6': 2 } - * - * // The `_.property` iteratee shorthand. - * _.countBy(['one', 'two', 'three'], 'length'); - * // => { '3': 2, '5': 1 } - */ - var countBy = createAggregator(function(result, value, key) { - if (hasOwnProperty.call(result, key)) { - ++result[key]; - } else { - baseAssignValue(result, key, 1); - } - }); - - /** - * Checks if `predicate` returns truthy for **all** elements of `collection`. - * Iteration is stopped once `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * **Note:** This method returns `true` for - * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because - * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of - * elements of empty collections. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - * @example - * - * _.every([true, 1, null, 'yes'], Boolean); - * // => false - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.every(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.every(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.every(users, 'active'); - * // => false - */ - function every(collection, predicate, guard) { - var func = isArray(collection) ? arrayEvery : baseEvery; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined; - } - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Iterates over elements of `collection`, returning an array of all elements - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * **Note:** Unlike `_.remove`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - * @see _.reject - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * _.filter(users, function(o) { return !o.active; }); - * // => objects for ['fred'] - * - * // The `_.matches` iteratee shorthand. - * _.filter(users, { 'age': 36, 'active': true }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.filter(users, ['active', false]); - * // => objects for ['fred'] - * - * // The `_.property` iteratee shorthand. - * _.filter(users, 'active'); - * // => objects for ['barney'] - * - * // Combining several predicates using `_.overEvery` or `_.overSome`. - * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); - * // => objects for ['fred', 'barney'] - */ - function filter(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Iterates over elements of `collection`, returning the first element - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false }, - * { 'user': 'pebbles', 'age': 1, 'active': true } - * ]; - * - * _.find(users, function(o) { return o.age < 40; }); - * // => object for 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.find(users, { 'age': 1, 'active': true }); - * // => object for 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.find(users, ['active', false]); - * // => object for 'fred' - * - * // The `_.property` iteratee shorthand. - * _.find(users, 'active'); - * // => object for 'barney' - */ - var find = createFind(findIndex); - - /** - * This method is like `_.find` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=collection.length-1] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * _.findLast([1, 2, 3, 4], function(n) { - * return n % 2 == 1; - * }); - * // => 3 - */ - var findLast = createFind(findLastIndex); - - /** - * Creates a flattened array of values by running each element in `collection` - * thru `iteratee` and flattening the mapped results. The iteratee is invoked - * with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [n, n]; - * } - * - * _.flatMap([1, 2], duplicate); - * // => [1, 1, 2, 2] - */ - function flatMap(collection, iteratee) { - return baseFlatten(map(collection, iteratee), 1); - } - - /** - * This method is like `_.flatMap` except that it recursively flattens the - * mapped results. - * - * @static - * @memberOf _ - * @since 4.7.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [[[n, n]]]; - * } - * - * _.flatMapDeep([1, 2], duplicate); - * // => [1, 1, 2, 2] - */ - function flatMapDeep(collection, iteratee) { - return baseFlatten(map(collection, iteratee), INFINITY); - } - - /** - * This method is like `_.flatMap` except that it recursively flattens the - * mapped results up to `depth` times. - * - * @static - * @memberOf _ - * @since 4.7.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {number} [depth=1] The maximum recursion depth. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [[[n, n]]]; - * } - * - * _.flatMapDepth([1, 2], duplicate, 2); - * // => [[1, 1], [2, 2]] - */ - function flatMapDepth(collection, iteratee, depth) { - depth = depth === undefined ? 1 : toInteger(depth); - return baseFlatten(map(collection, iteratee), depth); - } - - /** - * Iterates over elements of `collection` and invokes `iteratee` for each element. - * The iteratee is invoked with three arguments: (value, index|key, collection). - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * **Note:** As with other "Collections" methods, objects with a "length" - * property are iterated like arrays. To avoid this behavior use `_.forIn` - * or `_.forOwn` for object iteration. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias each - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - * @see _.forEachRight - * @example - * - * _.forEach([1, 2], function(value) { - * console.log(value); - * }); - * // => Logs `1` then `2`. - * - * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a' then 'b' (iteration order is not guaranteed). - */ - function forEach(collection, iteratee) { - var func = isArray(collection) ? arrayEach : baseEach; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.forEach` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @alias eachRight - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - * @see _.forEach - * @example - * - * _.forEachRight([1, 2], function(value) { - * console.log(value); - * }); - * // => Logs `2` then `1`. - */ - function forEachRight(collection, iteratee) { - var func = isArray(collection) ? arrayEachRight : baseEachRight; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The order of grouped values - * is determined by the order they occur in `collection`. The corresponding - * value of each key is an array of elements responsible for generating the - * key. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.groupBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': [4.2], '6': [6.1, 6.3] } - * - * // The `_.property` iteratee shorthand. - * _.groupBy(['one', 'two', 'three'], 'length'); - * // => { '3': ['one', 'two'], '5': ['three'] } - */ - var groupBy = createAggregator(function(result, value, key) { - if (hasOwnProperty.call(result, key)) { - result[key].push(value); - } else { - baseAssignValue(result, key, [value]); - } - }); - - /** - * Checks if `value` is in `collection`. If `collection` is a string, it's - * checked for a substring of `value`, otherwise - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * is used for equality comparisons. If `fromIndex` is negative, it's used as - * the offset from the end of `collection`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. - * @returns {boolean} Returns `true` if `value` is found, else `false`. - * @example - * - * _.includes([1, 2, 3], 1); - * // => true - * - * _.includes([1, 2, 3], 1, 2); - * // => false - * - * _.includes({ 'a': 1, 'b': 2 }, 1); - * // => true - * - * _.includes('abcd', 'bc'); - * // => true - */ - function includes(collection, value, fromIndex, guard) { - collection = isArrayLike(collection) ? collection : values(collection); - fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; - - var length = collection.length; - if (fromIndex < 0) { - fromIndex = nativeMax(length + fromIndex, 0); - } - return isString(collection) - ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) - : (!!length && baseIndexOf(collection, value, fromIndex) > -1); - } - - /** - * Invokes the method at `path` of each element in `collection`, returning - * an array of the results of each invoked method. Any additional arguments - * are provided to each invoked method. If `path` is a function, it's invoked - * for, and `this` bound to, each element in `collection`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Array|Function|string} path The path of the method to invoke or - * the function invoked per iteration. - * @param {...*} [args] The arguments to invoke each method with. - * @returns {Array} Returns the array of results. - * @example - * - * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); - * // => [[1, 5, 7], [1, 2, 3]] - * - * _.invokeMap([123, 456], String.prototype.split, ''); - * // => [['1', '2', '3'], ['4', '5', '6']] - */ - var invokeMap = baseRest(function(collection, path, args) { - var index = -1, - isFunc = typeof path == 'function', - result = isArrayLike(collection) ? Array(collection.length) : []; - - baseEach(collection, function(value) { - result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); - }); - return result; - }); - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the last element responsible for generating the key. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * var array = [ - * { 'dir': 'left', 'code': 97 }, - * { 'dir': 'right', 'code': 100 } - * ]; - * - * _.keyBy(array, function(o) { - * return String.fromCharCode(o.code); - * }); - * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } - * - * _.keyBy(array, 'dir'); - * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } - */ - var keyBy = createAggregator(function(result, value, key) { - baseAssignValue(result, key, value); - }); - - /** - * Creates an array of values by running each element in `collection` thru - * `iteratee`. The iteratee is invoked with three arguments: - * (value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. - * - * The guarded methods are: - * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, - * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, - * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, - * `template`, `trim`, `trimEnd`, `trimStart`, and `words` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - * @example - * - * function square(n) { - * return n * n; - * } - * - * _.map([4, 8], square); - * // => [16, 64] - * - * _.map({ 'a': 4, 'b': 8 }, square); - * // => [16, 64] (iteration order is not guaranteed) - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * // The `_.property` iteratee shorthand. - * _.map(users, 'user'); - * // => ['barney', 'fred'] - */ - function map(collection, iteratee) { - var func = isArray(collection) ? arrayMap : baseMap; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.sortBy` except that it allows specifying the sort - * orders of the iteratees to sort by. If `orders` is unspecified, all values - * are sorted in ascending order. Otherwise, specify an order of "desc" for - * descending or "asc" for ascending sort order of corresponding values. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]] - * The iteratees to sort by. - * @param {string[]} [orders] The sort orders of `iteratees`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 34 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'barney', 'age': 36 } - * ]; - * - * // Sort by `user` in ascending order and by `age` in descending order. - * _.orderBy(users, ['user', 'age'], ['asc', 'desc']); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] - */ - function orderBy(collection, iteratees, orders, guard) { - if (collection == null) { - return []; - } - if (!isArray(iteratees)) { - iteratees = iteratees == null ? [] : [iteratees]; - } - orders = guard ? undefined : orders; - if (!isArray(orders)) { - orders = orders == null ? [] : [orders]; - } - return baseOrderBy(collection, iteratees, orders); - } - - /** - * Creates an array of elements split into two groups, the first of which - * contains elements `predicate` returns truthy for, the second of which - * contains elements `predicate` returns falsey for. The predicate is - * invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the array of grouped elements. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * _.partition(users, function(o) { return o.active; }); - * // => objects for [['fred'], ['barney', 'pebbles']] - * - * // The `_.matches` iteratee shorthand. - * _.partition(users, { 'age': 1, 'active': false }); - * // => objects for [['pebbles'], ['barney', 'fred']] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.partition(users, ['active', false]); - * // => objects for [['barney', 'pebbles'], ['fred']] - * - * // The `_.property` iteratee shorthand. - * _.partition(users, 'active'); - * // => objects for [['fred'], ['barney', 'pebbles']] - */ - var partition = createAggregator(function(result, value, key) { - result[key ? 0 : 1].push(value); - }, function() { return [[], []]; }); - - /** - * Reduces `collection` to a value which is the accumulated result of running - * each element in `collection` thru `iteratee`, where each successive - * invocation is supplied the return value of the previous. If `accumulator` - * is not given, the first element of `collection` is used as the initial - * value. The iteratee is invoked with four arguments: - * (accumulator, value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.reduce`, `_.reduceRight`, and `_.transform`. - * - * The guarded methods are: - * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, - * and `sortBy` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @returns {*} Returns the accumulated value. - * @see _.reduceRight - * @example - * - * _.reduce([1, 2], function(sum, n) { - * return sum + n; - * }, 0); - * // => 3 - * - * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - * (result[value] || (result[value] = [])).push(key); - * return result; - * }, {}); - * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) - */ - function reduce(collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduce : baseReduce, - initAccum = arguments.length < 3; - - return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach); - } - - /** - * This method is like `_.reduce` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @returns {*} Returns the accumulated value. - * @see _.reduce - * @example - * - * var array = [[0, 1], [2, 3], [4, 5]]; - * - * _.reduceRight(array, function(flattened, other) { - * return flattened.concat(other); - * }, []); - * // => [4, 5, 2, 3, 0, 1] - */ - function reduceRight(collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduceRight : baseReduce, - initAccum = arguments.length < 3; - - return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight); - } - - /** - * The opposite of `_.filter`; this method returns the elements of `collection` - * that `predicate` does **not** return truthy for. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - * @see _.filter - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true } - * ]; - * - * _.reject(users, function(o) { return !o.active; }); - * // => objects for ['fred'] - * - * // The `_.matches` iteratee shorthand. - * _.reject(users, { 'age': 40, 'active': true }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.reject(users, ['active', false]); - * // => objects for ['fred'] - * - * // The `_.property` iteratee shorthand. - * _.reject(users, 'active'); - * // => objects for ['barney'] - */ - function reject(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, negate(getIteratee(predicate, 3))); - } - - /** - * Gets a random element from `collection`. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Collection - * @param {Array|Object} collection The collection to sample. - * @returns {*} Returns the random element. - * @example - * - * _.sample([1, 2, 3, 4]); - * // => 2 - */ - function sample(collection) { - var func = isArray(collection) ? arraySample : baseSample; - return func(collection); - } - - /** - * Gets `n` random elements at unique keys from `collection` up to the - * size of `collection`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to sample. - * @param {number} [n=1] The number of elements to sample. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the random elements. - * @example - * - * _.sampleSize([1, 2, 3], 2); - * // => [3, 1] - * - * _.sampleSize([1, 2, 3], 4); - * // => [2, 3, 1] - */ - function sampleSize(collection, n, guard) { - if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) { - n = 1; - } else { - n = toInteger(n); - } - var func = isArray(collection) ? arraySampleSize : baseSampleSize; - return func(collection, n); - } - - /** - * Creates an array of shuffled values, using a version of the - * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - * @example - * - * _.shuffle([1, 2, 3, 4]); - * // => [4, 1, 3, 2] - */ - function shuffle(collection) { - var func = isArray(collection) ? arrayShuffle : baseShuffle; - return func(collection); - } - - /** - * Gets the size of `collection` by returning its length for array-like - * values or the number of own enumerable string keyed properties for objects. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @returns {number} Returns the collection size. - * @example - * - * _.size([1, 2, 3]); - * // => 3 - * - * _.size({ 'a': 1, 'b': 2 }); - * // => 2 - * - * _.size('pebbles'); - * // => 7 - */ - function size(collection) { - if (collection == null) { - return 0; - } - if (isArrayLike(collection)) { - return isString(collection) ? stringSize(collection) : collection.length; - } - var tag = getTag(collection); - if (tag == mapTag || tag == setTag) { - return collection.size; - } - return baseKeys(collection).length; - } - - /** - * Checks if `predicate` returns truthy for **any** element of `collection`. - * Iteration is stopped once `predicate` returns truthy. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - * @example - * - * _.some([null, 0, 'yes', false], Boolean); - * // => true - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.some(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.some(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.some(users, 'active'); - * // => true - */ - function some(collection, predicate, guard) { - var func = isArray(collection) ? arraySome : baseSome; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined; - } - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Creates an array of elements, sorted in ascending order by the results of - * running each element in a collection thru each iteratee. This method - * performs a stable sort, that is, it preserves the original sort order of - * equal elements. The iteratees are invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {...(Function|Function[])} [iteratees=[_.identity]] - * The iteratees to sort by. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 30 }, - * { 'user': 'barney', 'age': 34 } - * ]; - * - * _.sortBy(users, [function(o) { return o.user; }]); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] - * - * _.sortBy(users, ['user', 'age']); - * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] - */ - var sortBy = baseRest(function(collection, iteratees) { - if (collection == null) { - return []; - } - var length = iteratees.length; - if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { - iteratees = []; - } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { - iteratees = [iteratees[0]]; - } - return baseOrderBy(collection, baseFlatten(iteratees, 1), []); - }); - - /*------------------------------------------------------------------------*/ - - /** - * Gets the timestamp of the number of milliseconds that have elapsed since - * the Unix epoch (1 January 1970 00:00:00 UTC). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Date - * @returns {number} Returns the timestamp. - * @example - * - * _.defer(function(stamp) { - * console.log(_.now() - stamp); - * }, _.now()); - * // => Logs the number of milliseconds it took for the deferred invocation. - */ - var now = ctxNow || function() { - return root.Date.now(); - }; - - /*------------------------------------------------------------------------*/ - - /** - * The opposite of `_.before`; this method creates a function that invokes - * `func` once it's called `n` or more times. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {number} n The number of calls before `func` is invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var saves = ['profile', 'settings']; - * - * var done = _.after(saves.length, function() { - * console.log('done saving!'); - * }); - * - * _.forEach(saves, function(type) { - * asyncSave({ 'type': type, 'complete': done }); - * }); - * // => Logs 'done saving!' after the two async saves have completed. - */ - function after(n, func) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n < 1) { - return func.apply(this, arguments); - } - }; - } - - /** - * Creates a function that invokes `func`, with up to `n` arguments, - * ignoring any additional arguments. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to cap arguments for. - * @param {number} [n=func.length] The arity cap. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new capped function. - * @example - * - * _.map(['6', '8', '10'], _.ary(parseInt, 1)); - * // => [6, 8, 10] - */ - function ary(func, n, guard) { - n = guard ? undefined : n; - n = (func && n == null) ? func.length : n; - return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n); - } - - /** - * Creates a function that invokes `func`, with the `this` binding and arguments - * of the created function, while it's called less than `n` times. Subsequent - * calls to the created function return the result of the last `func` invocation. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {number} n The number of calls at which `func` is no longer invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * jQuery(element).on('click', _.before(5, addContactToList)); - * // => Allows adding up to 4 contacts to the list. - */ - function before(n, func) { - var result; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n > 0) { - result = func.apply(this, arguments); - } - if (n <= 1) { - func = undefined; - } - return result; - }; - } - - /** - * Creates a function that invokes `func` with the `this` binding of `thisArg` - * and `partials` prepended to the arguments it receives. - * - * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for partially applied arguments. - * - * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" - * property of bound functions. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * function greet(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * - * var object = { 'user': 'fred' }; - * - * var bound = _.bind(greet, object, 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * // Bound with placeholders. - * var bound = _.bind(greet, object, _, '!'); - * bound('hi'); - * // => 'hi fred!' - */ - var bind = baseRest(function(func, thisArg, partials) { - var bitmask = WRAP_BIND_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bind)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(func, bitmask, thisArg, partials, holders); - }); - - /** - * Creates a function that invokes the method at `object[key]` with `partials` - * prepended to the arguments it receives. - * - * This method differs from `_.bind` by allowing bound functions to reference - * methods that may be redefined or don't yet exist. See - * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) - * for more details. - * - * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * @static - * @memberOf _ - * @since 0.10.0 - * @category Function - * @param {Object} object The object to invoke the method on. - * @param {string} key The key of the method. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * var object = { - * 'user': 'fred', - * 'greet': function(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * }; - * - * var bound = _.bindKey(object, 'greet', 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * object.greet = function(greeting, punctuation) { - * return greeting + 'ya ' + this.user + punctuation; - * }; - * - * bound('!'); - * // => 'hiya fred!' - * - * // Bound with placeholders. - * var bound = _.bindKey(object, 'greet', _, '!'); - * bound('hi'); - * // => 'hiya fred!' - */ - var bindKey = baseRest(function(object, key, partials) { - var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bindKey)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(key, bitmask, object, partials, holders); - }); - - /** - * Creates a function that accepts arguments of `func` and either invokes - * `func` returning its result, if at least `arity` number of arguments have - * been provided, or returns a function that accepts the remaining `func` - * arguments, and so on. The arity of `func` may be specified if `func.length` - * is not sufficient. - * - * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for provided arguments. - * - * **Note:** This method doesn't set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curry(abc); - * - * curried(1)(2)(3); - * // => [1, 2, 3] - * - * curried(1, 2)(3); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // Curried with placeholders. - * curried(1)(_, 3)(2); - * // => [1, 2, 3] - */ - function curry(func, arity, guard) { - arity = guard ? undefined : arity; - var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); - result.placeholder = curry.placeholder; - return result; - } - - /** - * This method is like `_.curry` except that arguments are applied to `func` - * in the manner of `_.partialRight` instead of `_.partial`. - * - * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for provided arguments. - * - * **Note:** This method doesn't set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curryRight(abc); - * - * curried(3)(2)(1); - * // => [1, 2, 3] - * - * curried(2, 3)(1); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // Curried with placeholders. - * curried(3)(1, _)(2); - * // => [1, 2, 3] - */ - function curryRight(func, arity, guard) { - arity = guard ? undefined : arity; - var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); - result.placeholder = curryRight.placeholder; - return result; - } - - /** - * Creates a debounced function that delays invoking `func` until after `wait` - * milliseconds have elapsed since the last time the debounced function was - * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * Provide `options` to indicate whether `func` should be invoked on the - * leading and/or trailing edge of the `wait` timeout. The `func` is invoked - * with the last arguments provided to the debounced function. Subsequent - * calls to the debounced function return the result of the last `func` - * invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the debounced function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.debounce` and `_.throttle`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to debounce. - * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new debounced function. - * @example - * - * // Avoid costly calculations while the window size is in flux. - * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * jQuery(element).on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * })); - * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); - * var source = new EventSource('/stream'); - * jQuery(source).on('message', debounced); - * - * // Cancel the trailing debounced invocation. - * jQuery(window).on('popstate', debounced.cancel); - */ - function debounce(func, wait, options) { - var lastArgs, - lastThis, - maxWait, - result, - timerId, - lastCallTime, - lastInvokeTime = 0, - leading = false, - maxing = false, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - wait = toNumber(wait) || 0; - if (isObject(options)) { - leading = !!options.leading; - maxing = 'maxWait' in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - - function invokeFunc(time) { - var args = lastArgs, - thisArg = lastThis; - - lastArgs = lastThis = undefined; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - // Invoke the leading edge. - return leading ? invokeFunc(time) : result; - } - - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime, - timeWaiting = wait - timeSinceLastCall; - - return maxing - ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) - : timeWaiting; - } - - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return (lastCallTime === undefined || (timeSinceLastCall >= wait) || - (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); - } - - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); - } - - function trailingEdge(time) { - timerId = undefined; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = undefined; - return result; - } - - function cancel() { - if (timerId !== undefined) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined; - } - - function flush() { - return timerId === undefined ? result : trailingEdge(now()); - } - - function debounced() { - var time = now(), - isInvoking = shouldInvoke(time); - - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - - if (isInvoking) { - if (timerId === undefined) { - return leadingEdge(lastCallTime); - } - if (maxing) { - // Handle invocations in a tight loop. - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined) { - timerId = setTimeout(timerExpired, wait); - } - return result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; - } - - /** - * Defers invoking the `func` until the current call stack has cleared. Any - * additional arguments are provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to defer. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example - * - * _.defer(function(text) { - * console.log(text); - * }, 'deferred'); - * // => Logs 'deferred' after one millisecond. - */ - var defer = baseRest(function(func, args) { - return baseDelay(func, 1, args); - }); - - /** - * Invokes `func` after `wait` milliseconds. Any additional arguments are - * provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example - * - * _.delay(function(text) { - * console.log(text); - * }, 1000, 'later'); - * // => Logs 'later' after one second. - */ - var delay = baseRest(function(func, wait, args) { - return baseDelay(func, toNumber(wait) || 0, args); - }); - - /** - * Creates a function that invokes `func` with arguments reversed. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to flip arguments for. - * @returns {Function} Returns the new flipped function. - * @example - * - * var flipped = _.flip(function() { - * return _.toArray(arguments); - * }); - * - * flipped('a', 'b', 'c', 'd'); - * // => ['d', 'c', 'b', 'a'] - */ - function flip(func) { - return createWrap(func, WRAP_FLIP_FLAG); - } - - /** - * Creates a function that memoizes the result of `func`. If `resolver` is - * provided, it determines the cache key for storing the result based on the - * arguments provided to the memoized function. By default, the first argument - * provided to the memoized function is used as the map cache key. The `func` - * is invoked with the `this` binding of the memoized function. - * - * **Note:** The cache is exposed as the `cache` property on the memoized - * function. Its creation may be customized by replacing the `_.memoize.Cache` - * constructor with one whose instances implement the - * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) - * method interface of `clear`, `delete`, `get`, `has`, and `set`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to have its output memoized. - * @param {Function} [resolver] The function to resolve the cache key. - * @returns {Function} Returns the new memoized function. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * var other = { 'c': 3, 'd': 4 }; - * - * var values = _.memoize(_.values); - * values(object); - * // => [1, 2] - * - * values(other); - * // => [3, 4] - * - * object.a = 2; - * values(object); - * // => [1, 2] - * - * // Modify the result cache. - * values.cache.set(object, ['a', 'b']); - * values(object); - * // => ['a', 'b'] - * - * // Replace `_.memoize.Cache`. - * _.memoize.Cache = WeakMap; - */ - function memoize(func, resolver) { - if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; - - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; - memoized.cache = new (memoize.Cache || MapCache); - return memoized; - } - - // Expose `MapCache`. - memoize.Cache = MapCache; - - /** - * Creates a function that negates the result of the predicate `func`. The - * `func` predicate is invoked with the `this` binding and arguments of the - * created function. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} predicate The predicate to negate. - * @returns {Function} Returns the new negated function. - * @example - * - * function isEven(n) { - * return n % 2 == 0; - * } - * - * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); - * // => [1, 3, 5] - */ - function negate(predicate) { - if (typeof predicate != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return function() { - var args = arguments; - switch (args.length) { - case 0: return !predicate.call(this); - case 1: return !predicate.call(this, args[0]); - case 2: return !predicate.call(this, args[0], args[1]); - case 3: return !predicate.call(this, args[0], args[1], args[2]); - } - return !predicate.apply(this, args); - }; - } - - /** - * Creates a function that is restricted to invoking `func` once. Repeat calls - * to the function return the value of the first invocation. The `func` is - * invoked with the `this` binding and arguments of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var initialize = _.once(createApplication); - * initialize(); - * initialize(); - * // => `createApplication` is invoked once - */ - function once(func) { - return before(2, func); - } - - /** - * Creates a function that invokes `func` with its arguments transformed. - * - * @static - * @since 4.0.0 - * @memberOf _ - * @category Function - * @param {Function} func The function to wrap. - * @param {...(Function|Function[])} [transforms=[_.identity]] - * The argument transforms. - * @returns {Function} Returns the new function. - * @example - * - * function doubled(n) { - * return n * 2; - * } - * - * function square(n) { - * return n * n; - * } - * - * var func = _.overArgs(function(x, y) { - * return [x, y]; - * }, [square, doubled]); - * - * func(9, 3); - * // => [81, 6] - * - * func(10, 5); - * // => [100, 10] - */ - var overArgs = castRest(function(func, transforms) { - transforms = (transforms.length == 1 && isArray(transforms[0])) - ? arrayMap(transforms[0], baseUnary(getIteratee())) - : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); - - var funcsLength = transforms.length; - return baseRest(function(args) { - var index = -1, - length = nativeMin(args.length, funcsLength); - - while (++index < length) { - args[index] = transforms[index].call(this, args[index]); - } - return apply(func, this, args); - }); - }); - - /** - * Creates a function that invokes `func` with `partials` prepended to the - * arguments it receives. This method is like `_.bind` except it does **not** - * alter the `this` binding. - * - * The `_.partial.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method doesn't set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @since 0.2.0 - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * function greet(greeting, name) { - * return greeting + ' ' + name; - * } - * - * var sayHelloTo = _.partial(greet, 'hello'); - * sayHelloTo('fred'); - * // => 'hello fred' - * - * // Partially applied with placeholders. - * var greetFred = _.partial(greet, _, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - */ - var partial = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partial)); - return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders); - }); - - /** - * This method is like `_.partial` except that partially applied arguments - * are appended to the arguments it receives. - * - * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method doesn't set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * function greet(greeting, name) { - * return greeting + ' ' + name; - * } - * - * var greetFred = _.partialRight(greet, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - * - * // Partially applied with placeholders. - * var sayHelloTo = _.partialRight(greet, 'hello', _); - * sayHelloTo('fred'); - * // => 'hello fred' - */ - var partialRight = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partialRight)); - return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders); - }); - - /** - * Creates a function that invokes `func` with arguments arranged according - * to the specified `indexes` where the argument value at the first index is - * provided as the first argument, the argument value at the second index is - * provided as the second argument, and so on. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to rearrange arguments for. - * @param {...(number|number[])} indexes The arranged argument indexes. - * @returns {Function} Returns the new function. - * @example - * - * var rearged = _.rearg(function(a, b, c) { - * return [a, b, c]; - * }, [2, 0, 1]); - * - * rearged('b', 'c', 'a') - * // => ['a', 'b', 'c'] - */ - var rearg = flatRest(function(func, indexes) { - return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes); - }); - - /** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as - * an array. - * - * **Note:** This method is based on the - * [rest parameter](https://mdn.io/rest_parameters). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.rest(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ - function rest(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = start === undefined ? start : toInteger(start); - return baseRest(func, start); - } - - /** - * Creates a function that invokes `func` with the `this` binding of the - * create function and an array of arguments much like - * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply). - * - * **Note:** This method is based on the - * [spread operator](https://mdn.io/spread_operator). - * - * @static - * @memberOf _ - * @since 3.2.0 - * @category Function - * @param {Function} func The function to spread arguments over. - * @param {number} [start=0] The start position of the spread. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.spread(function(who, what) { - * return who + ' says ' + what; - * }); - * - * say(['fred', 'hello']); - * // => 'fred says hello' - * - * var numbers = Promise.all([ - * Promise.resolve(40), - * Promise.resolve(36) - * ]); - * - * numbers.then(_.spread(function(x, y) { - * return x + y; - * })); - * // => a Promise of 76 - */ - function spread(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = start == null ? 0 : nativeMax(toInteger(start), 0); - return baseRest(function(args) { - var array = args[start], - otherArgs = castSlice(args, 0, start); - - if (array) { - arrayPush(otherArgs, array); - } - return apply(func, this, otherArgs); - }); - } - - /** - * Creates a throttled function that only invokes `func` at most once per - * every `wait` milliseconds. The throttled function comes with a `cancel` - * method to cancel delayed `func` invocations and a `flush` method to - * immediately invoke them. Provide `options` to indicate whether `func` - * should be invoked on the leading and/or trailing edge of the `wait` - * timeout. The `func` is invoked with the last arguments provided to the - * throttled function. Subsequent calls to the throttled function return the - * result of the last `func` invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the throttled function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.throttle` and `_.debounce`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to throttle. - * @param {number} [wait=0] The number of milliseconds to throttle invocations to. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=true] - * Specify invoking on the leading edge of the timeout. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new throttled function. - * @example - * - * // Avoid excessively updating the position while scrolling. - * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); - * - * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. - * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); - * jQuery(element).on('click', throttled); - * - * // Cancel the trailing throttled invocation. - * jQuery(window).on('popstate', throttled.cancel); - */ - function throttle(func, wait, options) { - var leading = true, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (isObject(options)) { - leading = 'leading' in options ? !!options.leading : leading; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - return debounce(func, wait, { - 'leading': leading, - 'maxWait': wait, - 'trailing': trailing - }); - } - - /** - * Creates a function that accepts up to one argument, ignoring any - * additional arguments. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - * @example - * - * _.map(['6', '8', '10'], _.unary(parseInt)); - * // => [6, 8, 10] - */ - function unary(func) { - return ary(func, 1); - } - - /** - * Creates a function that provides `value` to `wrapper` as its first - * argument. Any additional arguments provided to the function are appended - * to those provided to the `wrapper`. The wrapper is invoked with the `this` - * binding of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {*} value The value to wrap. - * @param {Function} [wrapper=identity] The wrapper function. - * @returns {Function} Returns the new function. - * @example - * - * var p = _.wrap(_.escape, function(func, text) { - * return '

' + func(text) + '

'; - * }); - * - * p('fred, barney, & pebbles'); - * // => '

fred, barney, & pebbles

' - */ - function wrap(value, wrapper) { - return partial(castFunction(wrapper), value); - } - - /*------------------------------------------------------------------------*/ - - /** - * Casts `value` as an array if it's not one. - * - * @static - * @memberOf _ - * @since 4.4.0 - * @category Lang - * @param {*} value The value to inspect. - * @returns {Array} Returns the cast array. - * @example - * - * _.castArray(1); - * // => [1] - * - * _.castArray({ 'a': 1 }); - * // => [{ 'a': 1 }] - * - * _.castArray('abc'); - * // => ['abc'] - * - * _.castArray(null); - * // => [null] - * - * _.castArray(undefined); - * // => [undefined] - * - * _.castArray(); - * // => [] - * - * var array = [1, 2, 3]; - * console.log(_.castArray(array) === array); - * // => true - */ - function castArray() { - if (!arguments.length) { - return []; - } - var value = arguments[0]; - return isArray(value) ? value : [value]; - } - - /** - * Creates a shallow clone of `value`. - * - * **Note:** This method is loosely based on the - * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) - * and supports cloning arrays, array buffers, booleans, date objects, maps, - * numbers, `Object` objects, regexes, sets, strings, symbols, and typed - * arrays. The own enumerable properties of `arguments` objects are cloned - * as plain objects. An empty object is returned for uncloneable values such - * as error objects, functions, DOM nodes, and WeakMaps. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to clone. - * @returns {*} Returns the cloned value. - * @see _.cloneDeep - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var shallow = _.clone(objects); - * console.log(shallow[0] === objects[0]); - * // => true - */ - function clone(value) { - return baseClone(value, CLONE_SYMBOLS_FLAG); - } - - /** - * This method is like `_.clone` except that it accepts `customizer` which - * is invoked to produce the cloned value. If `customizer` returns `undefined`, - * cloning is handled by the method instead. The `customizer` is invoked with - * up to four arguments; (value [, index|key, object, stack]). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to clone. - * @param {Function} [customizer] The function to customize cloning. - * @returns {*} Returns the cloned value. - * @see _.cloneDeepWith - * @example - * - * function customizer(value) { - * if (_.isElement(value)) { - * return value.cloneNode(false); - * } - * } - * - * var el = _.cloneWith(document.body, customizer); - * - * console.log(el === document.body); - * // => false - * console.log(el.nodeName); - * // => 'BODY' - * console.log(el.childNodes.length); - * // => 0 - */ - function cloneWith(value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); - } - - /** - * This method is like `_.clone` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @returns {*} Returns the deep cloned value. - * @see _.clone - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var deep = _.cloneDeep(objects); - * console.log(deep[0] === objects[0]); - * // => false - */ - function cloneDeep(value) { - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); - } - - /** - * This method is like `_.cloneWith` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @param {Function} [customizer] The function to customize cloning. - * @returns {*} Returns the deep cloned value. - * @see _.cloneWith - * @example - * - * function customizer(value) { - * if (_.isElement(value)) { - * return value.cloneNode(true); - * } - * } - * - * var el = _.cloneDeepWith(document.body, customizer); - * - * console.log(el === document.body); - * // => false - * console.log(el.nodeName); - * // => 'BODY' - * console.log(el.childNodes.length); - * // => 20 - */ - function cloneDeepWith(value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); - } - - /** - * Checks if `object` conforms to `source` by invoking the predicate - * properties of `source` with the corresponding property values of `object`. - * - * **Note:** This method is equivalent to `_.conforms` when `source` is - * partially applied. - * - * @static - * @memberOf _ - * @since 4.14.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property predicates to conform to. - * @returns {boolean} Returns `true` if `object` conforms, else `false`. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * - * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); - * // => true - * - * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); - * // => false - */ - function conformsTo(object, source) { - return source == null || baseConformsTo(object, source, keys(source)); - } - - /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ - function eq(value, other) { - return value === other || (value !== value && other !== other); - } - - /** - * Checks if `value` is greater than `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, - * else `false`. - * @see _.lt - * @example - * - * _.gt(3, 1); - * // => true - * - * _.gt(3, 3); - * // => false - * - * _.gt(1, 3); - * // => false - */ - var gt = createRelationalOperation(baseGt); - - /** - * Checks if `value` is greater than or equal to `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than or equal to - * `other`, else `false`. - * @see _.lte - * @example - * - * _.gte(3, 1); - * // => true - * - * _.gte(3, 3); - * // => true - * - * _.gte(1, 3); - * // => false - */ - var gte = createRelationalOperation(function(value, other) { - return value >= other; - }); - - /** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); - }; - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ - var isArray = Array.isArray; - - /** - * Checks if `value` is classified as an `ArrayBuffer` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. - * @example - * - * _.isArrayBuffer(new ArrayBuffer(2)); - * // => true - * - * _.isArrayBuffer(new Array(2)); - * // => false - */ - var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; - - /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } - - /** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ - function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); - } - - /** - * Checks if `value` is classified as a boolean primitive or object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. - * @example - * - * _.isBoolean(false); - * // => true - * - * _.isBoolean(null); - * // => false - */ - function isBoolean(value) { - return value === true || value === false || - (isObjectLike(value) && baseGetTag(value) == boolTag); - } - - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ - var isBuffer = nativeIsBuffer || stubFalse; - - /** - * Checks if `value` is classified as a `Date` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - * @example - * - * _.isDate(new Date); - * // => true - * - * _.isDate('Mon April 23 2012'); - * // => false - */ - var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; - - /** - * Checks if `value` is likely a DOM element. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. - * @example - * - * _.isElement(document.body); - * // => true - * - * _.isElement(''); - * // => false - */ - function isElement(value) { - return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); - } - - /** - * Checks if `value` is an empty object, collection, map, or set. - * - * Objects are considered empty if they have no own enumerable string keyed - * properties. - * - * Array-like values such as `arguments` objects, arrays, buffers, strings, or - * jQuery-like collections are considered empty if they have a `length` of `0`. - * Similarly, maps and sets are considered empty if they have a `size` of `0`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is empty, else `false`. - * @example - * - * _.isEmpty(null); - * // => true - * - * _.isEmpty(true); - * // => true - * - * _.isEmpty(1); - * // => true - * - * _.isEmpty([1, 2, 3]); - * // => false - * - * _.isEmpty({ 'a': 1 }); - * // => false - */ - function isEmpty(value) { - if (value == null) { - return true; - } - if (isArrayLike(value) && - (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || - isBuffer(value) || isTypedArray(value) || isArguments(value))) { - return !value.length; - } - var tag = getTag(value); - if (tag == mapTag || tag == setTag) { - return !value.size; - } - if (isPrototype(value)) { - return !baseKeys(value).length; - } - for (var key in value) { - if (hasOwnProperty.call(value, key)) { - return false; - } - } - return true; - } - - /** - * Performs a deep comparison between two values to determine if they are - * equivalent. - * - * **Note:** This method supports comparing arrays, array buffers, booleans, - * date objects, error objects, maps, numbers, `Object` objects, regexes, - * sets, strings, symbols, and typed arrays. `Object` objects are compared - * by their own, not inherited, enumerable properties. Functions and DOM - * nodes are compared by strict equality, i.e. `===`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.isEqual(object, other); - * // => true - * - * object === other; - * // => false - */ - function isEqual(value, other) { - return baseIsEqual(value, other); - } - - /** - * This method is like `_.isEqual` except that it accepts `customizer` which - * is invoked to compare values. If `customizer` returns `undefined`, comparisons - * are handled by the method instead. The `customizer` is invoked with up to - * six arguments: (objValue, othValue [, index|key, object, other, stack]). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * function isGreeting(value) { - * return /^h(?:i|ello)$/.test(value); - * } - * - * function customizer(objValue, othValue) { - * if (isGreeting(objValue) && isGreeting(othValue)) { - * return true; - * } - * } - * - * var array = ['hello', 'goodbye']; - * var other = ['hi', 'goodbye']; - * - * _.isEqualWith(array, other, customizer); - * // => true - */ - function isEqualWith(value, other, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - var result = customizer ? customizer(value, other) : undefined; - return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result; - } - - /** - * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, - * `SyntaxError`, `TypeError`, or `URIError` object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an error object, else `false`. - * @example - * - * _.isError(new Error); - * // => true - * - * _.isError(Error); - * // => false - */ - function isError(value) { - if (!isObjectLike(value)) { - return false; - } - var tag = baseGetTag(value); - return tag == errorTag || tag == domExcTag || - (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); - } - - /** - * Checks if `value` is a finite primitive number. - * - * **Note:** This method is based on - * [`Number.isFinite`](https://mdn.io/Number/isFinite). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. - * @example - * - * _.isFinite(3); - * // => true - * - * _.isFinite(Number.MIN_VALUE); - * // => true - * - * _.isFinite(Infinity); - * // => false - * - * _.isFinite('3'); - * // => false - */ - function isFinite(value) { - return typeof value == 'number' && nativeIsFinite(value); - } - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - if (!isObject(value)) { - return false; - } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - - /** - * Checks if `value` is an integer. - * - * **Note:** This method is based on - * [`Number.isInteger`](https://mdn.io/Number/isInteger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an integer, else `false`. - * @example - * - * _.isInteger(3); - * // => true - * - * _.isInteger(Number.MIN_VALUE); - * // => false - * - * _.isInteger(Infinity); - * // => false - * - * _.isInteger('3'); - * // => false - */ - function isInteger(value) { - return typeof value == 'number' && value == toInteger(value); - } - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ - function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ - function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); - } - - /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ - function isObjectLike(value) { - return value != null && typeof value == 'object'; - } - - /** - * Checks if `value` is classified as a `Map` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - * @example - * - * _.isMap(new Map); - * // => true - * - * _.isMap(new WeakMap); - * // => false - */ - var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; - - /** - * Performs a partial deep comparison between `object` and `source` to - * determine if `object` contains equivalent property values. - * - * **Note:** This method is equivalent to `_.matches` when `source` is - * partially applied. - * - * Partial comparisons will match empty array and empty object `source` - * values against any array or object value, respectively. See `_.isEqual` - * for a list of supported value comparisons. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * - * _.isMatch(object, { 'b': 2 }); - * // => true - * - * _.isMatch(object, { 'b': 1 }); - * // => false - */ - function isMatch(object, source) { - return object === source || baseIsMatch(object, source, getMatchData(source)); - } - - /** - * This method is like `_.isMatch` except that it accepts `customizer` which - * is invoked to compare values. If `customizer` returns `undefined`, comparisons - * are handled by the method instead. The `customizer` is invoked with five - * arguments: (objValue, srcValue, index|key, object, source). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * function isGreeting(value) { - * return /^h(?:i|ello)$/.test(value); - * } - * - * function customizer(objValue, srcValue) { - * if (isGreeting(objValue) && isGreeting(srcValue)) { - * return true; - * } - * } - * - * var object = { 'greeting': 'hello' }; - * var source = { 'greeting': 'hi' }; - * - * _.isMatchWith(object, source, customizer); - * // => true - */ - function isMatchWith(object, source, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseIsMatch(object, source, getMatchData(source), customizer); - } - - /** - * Checks if `value` is `NaN`. - * - * **Note:** This method is based on - * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as - * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for - * `undefined` and other non-number values. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - * @example - * - * _.isNaN(NaN); - * // => true - * - * _.isNaN(new Number(NaN)); - * // => true - * - * isNaN(undefined); - * // => true - * - * _.isNaN(undefined); - * // => false - */ - function isNaN(value) { - // An `NaN` primitive is the only value that is not equal to itself. - // Perform the `toStringTag` check first to avoid errors with some - // ActiveX objects in IE. - return isNumber(value) && value != +value; - } - - /** - * Checks if `value` is a pristine native function. - * - * **Note:** This method can't reliably detect native functions in the presence - * of the core-js package because core-js circumvents this kind of detection. - * Despite multiple requests, the core-js maintainer has made it clear: any - * attempt to fix the detection will be obstructed. As a result, we're left - * with little choice but to throw an error. Unfortunately, this also affects - * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), - * which rely on core-js. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ - function isNative(value) { - if (isMaskable(value)) { - throw new Error(CORE_ERROR_TEXT); - } - return baseIsNative(value); - } - - /** - * Checks if `value` is `null`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `null`, else `false`. - * @example - * - * _.isNull(null); - * // => true - * - * _.isNull(void 0); - * // => false - */ - function isNull(value) { - return value === null; - } - - /** - * Checks if `value` is `null` or `undefined`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is nullish, else `false`. - * @example - * - * _.isNil(null); - * // => true - * - * _.isNil(void 0); - * // => true - * - * _.isNil(NaN); - * // => false - */ - function isNil(value) { - return value == null; - } - - /** - * Checks if `value` is classified as a `Number` primitive or object. - * - * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are - * classified as numbers, use the `_.isFinite` method. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a number, else `false`. - * @example - * - * _.isNumber(3); - * // => true - * - * _.isNumber(Number.MIN_VALUE); - * // => true - * - * _.isNumber(Infinity); - * // => true - * - * _.isNumber('3'); - * // => false - */ - function isNumber(value) { - return typeof value == 'number' || - (isObjectLike(value) && baseGetTag(value) == numberTag); - } - - /** - * Checks if `value` is a plain object, that is, an object created by the - * `Object` constructor or one with a `[[Prototype]]` of `null`. - * - * @static - * @memberOf _ - * @since 0.8.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * _.isPlainObject(new Foo); - * // => false - * - * _.isPlainObject([1, 2, 3]); - * // => false - * - * _.isPlainObject({ 'x': 0, 'y': 0 }); - * // => true - * - * _.isPlainObject(Object.create(null)); - * // => true - */ - function isPlainObject(value) { - if (!isObjectLike(value) || baseGetTag(value) != objectTag) { - return false; - } - var proto = getPrototype(value); - if (proto === null) { - return true; - } - var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; - return typeof Ctor == 'function' && Ctor instanceof Ctor && - funcToString.call(Ctor) == objectCtorString; - } - - /** - * Checks if `value` is classified as a `RegExp` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - * @example - * - * _.isRegExp(/abc/); - * // => true - * - * _.isRegExp('/abc/'); - * // => false - */ - var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; - - /** - * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 - * double precision number which isn't the result of a rounded unsafe integer. - * - * **Note:** This method is based on - * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. - * @example - * - * _.isSafeInteger(3); - * // => true - * - * _.isSafeInteger(Number.MIN_VALUE); - * // => false - * - * _.isSafeInteger(Infinity); - * // => false - * - * _.isSafeInteger('3'); - * // => false - */ - function isSafeInteger(value) { - return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is classified as a `Set` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - * @example - * - * _.isSet(new Set); - * // => true - * - * _.isSet(new WeakSet); - * // => false - */ - var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; - - /** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a string, else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ - function isString(value) { - return typeof value == 'string' || - (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); - } - - /** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ - function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && baseGetTag(value) == symbolTag); - } - - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - - /** - * Checks if `value` is `undefined`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. - * @example - * - * _.isUndefined(void 0); - * // => true - * - * _.isUndefined(null); - * // => false - */ - function isUndefined(value) { - return value === undefined; - } - - /** - * Checks if `value` is classified as a `WeakMap` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. - * @example - * - * _.isWeakMap(new WeakMap); - * // => true - * - * _.isWeakMap(new Map); - * // => false - */ - function isWeakMap(value) { - return isObjectLike(value) && getTag(value) == weakMapTag; - } - - /** - * Checks if `value` is classified as a `WeakSet` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. - * @example - * - * _.isWeakSet(new WeakSet); - * // => true - * - * _.isWeakSet(new Set); - * // => false - */ - function isWeakSet(value) { - return isObjectLike(value) && baseGetTag(value) == weakSetTag; - } - - /** - * Checks if `value` is less than `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, - * else `false`. - * @see _.gt - * @example - * - * _.lt(1, 3); - * // => true - * - * _.lt(3, 3); - * // => false - * - * _.lt(3, 1); - * // => false - */ - var lt = createRelationalOperation(baseLt); - - /** - * Checks if `value` is less than or equal to `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than or equal to - * `other`, else `false`. - * @see _.gte - * @example - * - * _.lte(1, 3); - * // => true - * - * _.lte(3, 3); - * // => true - * - * _.lte(3, 1); - * // => false - */ - var lte = createRelationalOperation(function(value, other) { - return value <= other; - }); - - /** - * Converts `value` to an array. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {Array} Returns the converted array. - * @example - * - * _.toArray({ 'a': 1, 'b': 2 }); - * // => [1, 2] - * - * _.toArray('abc'); - * // => ['a', 'b', 'c'] - * - * _.toArray(1); - * // => [] - * - * _.toArray(null); - * // => [] - */ - function toArray(value) { - if (!value) { - return []; - } - if (isArrayLike(value)) { - return isString(value) ? stringToArray(value) : copyArray(value); - } - if (symIterator && value[symIterator]) { - return iteratorToArray(value[symIterator]()); - } - var tag = getTag(value), - func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values); - - return func(value); - } - - /** - * Converts `value` to a finite number. - * - * @static - * @memberOf _ - * @since 4.12.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted number. - * @example - * - * _.toFinite(3.2); - * // => 3.2 - * - * _.toFinite(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toFinite(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toFinite('3.2'); - * // => 3.2 - */ - function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - return value === value ? value : 0; - } - - /** - * Converts `value` to an integer. - * - * **Note:** This method is loosely based on - * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3.2); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3.2'); - * // => 3 - */ - function toInteger(value) { - var result = toFinite(value), - remainder = result % 1; - - return result === result ? (remainder ? result - remainder : result) : 0; - } - - /** - * Converts `value` to an integer suitable for use as the length of an - * array-like object. - * - * **Note:** This method is based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toLength(3.2); - * // => 3 - * - * _.toLength(Number.MIN_VALUE); - * // => 0 - * - * _.toLength(Infinity); - * // => 4294967295 - * - * _.toLength('3.2'); - * // => 3 - */ - function toLength(value) { - return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; - } - - /** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ - function toNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = typeof value.valueOf == 'function' ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = baseTrim(value); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); - } - - /** - * Converts `value` to a plain object flattening inherited enumerable string - * keyed properties of `value` to own properties of the plain object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {Object} Returns the converted plain object. - * @example - * - * function Foo() { - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.assign({ 'a': 1 }, new Foo); - * // => { 'a': 1, 'b': 2 } - * - * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); - * // => { 'a': 1, 'b': 2, 'c': 3 } - */ - function toPlainObject(value) { - return copyObject(value, keysIn(value)); - } - - /** - * Converts `value` to a safe integer. A safe integer can be compared and - * represented correctly. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toSafeInteger(3.2); - * // => 3 - * - * _.toSafeInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toSafeInteger(Infinity); - * // => 9007199254740991 - * - * _.toSafeInteger('3.2'); - * // => 3 - */ - function toSafeInteger(value) { - return value - ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) - : (value === 0 ? value : 0); - } - - /** - * Converts `value` to a string. An empty string is returned for `null` - * and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ - function toString(value) { - return value == null ? '' : baseToString(value); - } - - /*------------------------------------------------------------------------*/ - - /** - * Assigns own enumerable string keyed properties of source objects to the - * destination object. Source objects are applied from left to right. - * Subsequent sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object` and is loosely based on - * [`Object.assign`](https://mdn.io/Object/assign). - * - * @static - * @memberOf _ - * @since 0.10.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assignIn - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } - * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; - * - * _.assign({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'c': 3 } - */ - var assign = createAssigner(function(object, source) { - if (isPrototype(source) || isArrayLike(source)) { - copyObject(source, keys(source), object); - return; - } - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - assignValue(object, key, source[key]); - } - } - }); - - /** - * This method is like `_.assign` except that it iterates over own and - * inherited source properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias extend - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assign - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } - * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; - * - * _.assignIn({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } - */ - var assignIn = createAssigner(function(object, source) { - copyObject(source, keysIn(source), object); - }); - - /** - * This method is like `_.assignIn` except that it accepts `customizer` - * which is invoked to produce the assigned values. If `customizer` returns - * `undefined`, assignment is handled by the method instead. The `customizer` - * is invoked with five arguments: (objValue, srcValue, key, object, source). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias extendWith - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @see _.assignWith - * @example - * - * function customizer(objValue, srcValue) { - * return _.isUndefined(objValue) ? srcValue : objValue; - * } - * - * var defaults = _.partialRight(_.assignInWith, customizer); - * - * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keysIn(source), object, customizer); - }); - - /** - * This method is like `_.assign` except that it accepts `customizer` - * which is invoked to produce the assigned values. If `customizer` returns - * `undefined`, assignment is handled by the method instead. The `customizer` - * is invoked with five arguments: (objValue, srcValue, key, object, source). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @see _.assignInWith - * @example - * - * function customizer(objValue, srcValue) { - * return _.isUndefined(objValue) ? srcValue : objValue; - * } - * - * var defaults = _.partialRight(_.assignWith, customizer); - * - * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var assignWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keys(source), object, customizer); - }); - - /** - * Creates an array of values corresponding to `paths` of `object`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Array} Returns the picked values. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - * - * _.at(object, ['a[0].b.c', 'a[1]']); - * // => [3, 4] - */ - var at = flatRest(baseAt); - - /** - * Creates an object that inherits from the `prototype` object. If a - * `properties` object is given, its own enumerable string keyed properties - * are assigned to the created object. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Object - * @param {Object} prototype The object to inherit from. - * @param {Object} [properties] The properties to assign to the object. - * @returns {Object} Returns the new object. - * @example - * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } - * - * function Circle() { - * Shape.call(this); - * } - * - * Circle.prototype = _.create(Shape.prototype, { - * 'constructor': Circle - * }); - * - * var circle = new Circle; - * circle instanceof Circle; - * // => true - * - * circle instanceof Shape; - * // => true - */ - function create(prototype, properties) { - var result = baseCreate(prototype); - return properties == null ? result : baseAssign(result, properties); - } - - /** - * Assigns own and inherited enumerable string keyed properties of source - * objects to the destination object for all destination properties that - * resolve to `undefined`. Source objects are applied from left to right. - * Once a property is set, additional values of the same property are ignored. - * - * **Note:** This method mutates `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.defaultsDeep - * @example - * - * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var defaults = baseRest(function(object, sources) { - object = Object(object); - - var index = -1; - var length = sources.length; - var guard = length > 2 ? sources[2] : undefined; - - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - length = 1; - } - - while (++index < length) { - var source = sources[index]; - var props = keysIn(source); - var propsIndex = -1; - var propsLength = props.length; - - while (++propsIndex < propsLength) { - var key = props[propsIndex]; - var value = object[key]; - - if (value === undefined || - (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { - object[key] = source[key]; - } - } - } - - return object; - }); - - /** - * This method is like `_.defaults` except that it recursively assigns - * default properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 3.10.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.defaults - * @example - * - * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); - * // => { 'a': { 'b': 2, 'c': 3 } } - */ - var defaultsDeep = baseRest(function(args) { - args.push(undefined, customDefaultsMerge); - return apply(mergeWith, undefined, args); - }); - - /** - * This method is like `_.find` except that it returns the key of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Object - * @param {Object} object The object to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {string|undefined} Returns the key of the matched element, - * else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findKey(users, function(o) { return o.age < 40; }); - * // => 'barney' (iteration order is not guaranteed) - * - * // The `_.matches` iteratee shorthand. - * _.findKey(users, { 'age': 1, 'active': true }); - * // => 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findKey(users, ['active', false]); - * // => 'fred' - * - * // The `_.property` iteratee shorthand. - * _.findKey(users, 'active'); - * // => 'barney' - */ - function findKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); - } - - /** - * This method is like `_.findKey` except that it iterates over elements of - * a collection in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {string|undefined} Returns the key of the matched element, - * else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findLastKey(users, function(o) { return o.age < 40; }); - * // => returns 'pebbles' assuming `_.findKey` returns 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.findLastKey(users, { 'age': 36, 'active': true }); - * // => 'barney' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findLastKey(users, ['active', false]); - * // => 'fred' - * - * // The `_.property` iteratee shorthand. - * _.findLastKey(users, 'active'); - * // => 'pebbles' - */ - function findLastKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); - } - - /** - * Iterates over own and inherited enumerable string keyed properties of an - * object and invokes `iteratee` for each property. The iteratee is invoked - * with three arguments: (value, key, object). Iteratee functions may exit - * iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 0.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forInRight - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forIn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). - */ - function forIn(object, iteratee) { - return object == null - ? object - : baseFor(object, getIteratee(iteratee, 3), keysIn); - } - - /** - * This method is like `_.forIn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forIn - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forInRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. - */ - function forInRight(object, iteratee) { - return object == null - ? object - : baseForRight(object, getIteratee(iteratee, 3), keysIn); - } - - /** - * Iterates over own enumerable string keyed properties of an object and - * invokes `iteratee` for each property. The iteratee is invoked with three - * arguments: (value, key, object). Iteratee functions may exit iteration - * early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 0.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forOwnRight - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a' then 'b' (iteration order is not guaranteed). - */ - function forOwn(object, iteratee) { - return object && baseForOwn(object, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.forOwn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forOwn - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwnRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. - */ - function forOwnRight(object, iteratee) { - return object && baseForOwnRight(object, getIteratee(iteratee, 3)); - } - - /** - * Creates an array of function property names from own enumerable properties - * of `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the function names. - * @see _.functionsIn - * @example - * - * function Foo() { - * this.a = _.constant('a'); - * this.b = _.constant('b'); - * } - * - * Foo.prototype.c = _.constant('c'); - * - * _.functions(new Foo); - * // => ['a', 'b'] - */ - function functions(object) { - return object == null ? [] : baseFunctions(object, keys(object)); - } - - /** - * Creates an array of function property names from own and inherited - * enumerable properties of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the function names. - * @see _.functions - * @example - * - * function Foo() { - * this.a = _.constant('a'); - * this.b = _.constant('b'); - * } - * - * Foo.prototype.c = _.constant('c'); - * - * _.functionsIn(new Foo); - * // => ['a', 'b', 'c'] - */ - function functionsIn(object) { - return object == null ? [] : baseFunctions(object, keysIn(object)); - } - - /** - * Gets the value at `path` of `object`. If the resolved value is - * `undefined`, the `defaultValue` is returned in its place. - * - * @static - * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.get(object, 'a[0].b.c'); - * // => 3 - * - * _.get(object, ['a', '0', 'b', 'c']); - * // => 3 - * - * _.get(object, 'a.b.c', 'default'); - * // => 'default' - */ - function get(object, path, defaultValue) { - var result = object == null ? undefined : baseGet(object, path); - return result === undefined ? defaultValue : result; - } - - /** - * Checks if `path` is a direct property of `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = { 'a': { 'b': 2 } }; - * var other = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.has(object, 'a'); - * // => true - * - * _.has(object, 'a.b'); - * // => true - * - * _.has(object, ['a', 'b']); - * // => true - * - * _.has(other, 'a'); - * // => false - */ - function has(object, path) { - return object != null && hasPath(object, path, baseHas); - } - - /** - * Checks if `path` is a direct or inherited property of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.hasIn(object, 'a'); - * // => true - * - * _.hasIn(object, 'a.b'); - * // => true - * - * _.hasIn(object, ['a', 'b']); - * // => true - * - * _.hasIn(object, 'b'); - * // => false - */ - function hasIn(object, path) { - return object != null && hasPath(object, path, baseHasIn); - } - - /** - * Creates an object composed of the inverted keys and values of `object`. - * If `object` contains duplicate values, subsequent values overwrite - * property assignments of previous values. - * - * @static - * @memberOf _ - * @since 0.7.0 - * @category Object - * @param {Object} object The object to invert. - * @returns {Object} Returns the new inverted object. - * @example - * - * var object = { 'a': 1, 'b': 2, 'c': 1 }; - * - * _.invert(object); - * // => { '1': 'c', '2': 'b' } - */ - var invert = createInverter(function(result, value, key) { - if (value != null && - typeof value.toString != 'function') { - value = nativeObjectToString.call(value); - } - - result[value] = key; - }, constant(identity)); - - /** - * This method is like `_.invert` except that the inverted object is generated - * from the results of running each element of `object` thru `iteratee`. The - * corresponding inverted value of each inverted key is an array of keys - * responsible for generating the inverted value. The iteratee is invoked - * with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.1.0 - * @category Object - * @param {Object} object The object to invert. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Object} Returns the new inverted object. - * @example - * - * var object = { 'a': 1, 'b': 2, 'c': 1 }; - * - * _.invertBy(object); - * // => { '1': ['a', 'c'], '2': ['b'] } - * - * _.invertBy(object, function(value) { - * return 'group' + value; - * }); - * // => { 'group1': ['a', 'c'], 'group2': ['b'] } - */ - var invertBy = createInverter(function(result, value, key) { - if (value != null && - typeof value.toString != 'function') { - value = nativeObjectToString.call(value); - } - - if (hasOwnProperty.call(result, value)) { - result[value].push(key); - } else { - result[value] = [key]; - } - }, getIteratee); - - /** - * Invokes the method at `path` of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the method to invoke. - * @param {...*} [args] The arguments to invoke the method with. - * @returns {*} Returns the result of the invoked method. - * @example - * - * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; - * - * _.invoke(object, 'a[0].b.c.slice', 1, 3); - * // => [2, 3] - */ - var invoke = baseRest(baseInvoke); - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } - - /** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ - function keysIn(object) { - return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); - } - - /** - * The opposite of `_.mapValues`; this method creates an object with the - * same values as `object` and keys generated by running each own enumerable - * string keyed property of `object` thru `iteratee`. The iteratee is invoked - * with three arguments: (value, key, object). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns the new mapped object. - * @see _.mapValues - * @example - * - * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { - * return key + value; - * }); - * // => { 'a1': 1, 'b2': 2 } - */ - function mapKeys(object, iteratee) { - var result = {}; - iteratee = getIteratee(iteratee, 3); - - baseForOwn(object, function(value, key, object) { - baseAssignValue(result, iteratee(value, key, object), value); - }); - return result; - } - - /** - * Creates an object with the same keys as `object` and values generated - * by running each own enumerable string keyed property of `object` thru - * `iteratee`. The iteratee is invoked with three arguments: - * (value, key, object). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns the new mapped object. - * @see _.mapKeys - * @example - * - * var users = { - * 'fred': { 'user': 'fred', 'age': 40 }, - * 'pebbles': { 'user': 'pebbles', 'age': 1 } - * }; - * - * _.mapValues(users, function(o) { return o.age; }); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - * - * // The `_.property` iteratee shorthand. - * _.mapValues(users, 'age'); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - */ - function mapValues(object, iteratee) { - var result = {}; - iteratee = getIteratee(iteratee, 3); - - baseForOwn(object, function(value, key, object) { - baseAssignValue(result, key, iteratee(value, key, object)); - }); - return result; - } - - /** - * This method is like `_.assign` except that it recursively merges own and - * inherited enumerable string keyed properties of source objects into the - * destination object. Source properties that resolve to `undefined` are - * skipped if a destination value exists. Array and plain object properties - * are merged recursively. Other objects and value types are overridden by - * assignment. Source objects are applied from left to right. Subsequent - * sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @example - * - * var object = { - * 'a': [{ 'b': 2 }, { 'd': 4 }] - * }; - * - * var other = { - * 'a': [{ 'c': 3 }, { 'e': 5 }] - * }; - * - * _.merge(object, other); - * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } - */ - var merge = createAssigner(function(object, source, srcIndex) { - baseMerge(object, source, srcIndex); - }); - - /** - * This method is like `_.merge` except that it accepts `customizer` which - * is invoked to produce the merged values of the destination and source - * properties. If `customizer` returns `undefined`, merging is handled by the - * method instead. The `customizer` is invoked with six arguments: - * (objValue, srcValue, key, object, source, stack). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} customizer The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * function customizer(objValue, srcValue) { - * if (_.isArray(objValue)) { - * return objValue.concat(srcValue); - * } - * } - * - * var object = { 'a': [1], 'b': [2] }; - * var other = { 'a': [3], 'b': [4] }; - * - * _.mergeWith(object, other, customizer); - * // => { 'a': [1, 3], 'b': [2, 4] } - */ - var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { - baseMerge(object, source, srcIndex, customizer); - }); - - /** - * The opposite of `_.pick`; this method creates an object composed of the - * own and inherited enumerable property paths of `object` that are not omitted. - * - * **Note:** This method is considerably slower than `_.pick`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to omit. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.omit(object, ['a', 'c']); - * // => { 'b': '2' } - */ - var omit = flatRest(function(object, paths) { - var result = {}; - if (object == null) { - return result; - } - var isDeep = false; - paths = arrayMap(paths, function(path) { - path = castPath(path, object); - isDeep || (isDeep = path.length > 1); - return path; - }); - copyObject(object, getAllKeysIn(object), result); - if (isDeep) { - result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); - } - var length = paths.length; - while (length--) { - baseUnset(result, paths[length]); - } - return result; - }); - - /** - * The opposite of `_.pickBy`; this method creates an object composed of - * the own and inherited enumerable string keyed properties of `object` that - * `predicate` doesn't return truthy for. The predicate is invoked with two - * arguments: (value, key). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The source object. - * @param {Function} [predicate=_.identity] The function invoked per property. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.omitBy(object, _.isNumber); - * // => { 'b': '2' } - */ - function omitBy(object, predicate) { - return pickBy(object, negate(getIteratee(predicate))); - } - - /** - * Creates an object composed of the picked `object` properties. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pick(object, ['a', 'c']); - * // => { 'a': 1, 'c': 3 } - */ - var pick = flatRest(function(object, paths) { - return object == null ? {} : basePick(object, paths); - }); - - /** - * Creates an object composed of the `object` properties `predicate` returns - * truthy for. The predicate is invoked with two arguments: (value, key). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The source object. - * @param {Function} [predicate=_.identity] The function invoked per property. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pickBy(object, _.isNumber); - * // => { 'a': 1, 'c': 3 } - */ - function pickBy(object, predicate) { - if (object == null) { - return {}; - } - var props = arrayMap(getAllKeysIn(object), function(prop) { - return [prop]; - }); - predicate = getIteratee(predicate); - return basePickBy(object, props, function(value, path) { - return predicate(value, path[0]); - }); - } - - /** - * This method is like `_.get` except that if the resolved value is a - * function it's invoked with the `this` binding of its parent object and - * its result is returned. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to resolve. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; - * - * _.result(object, 'a[0].b.c1'); - * // => 3 - * - * _.result(object, 'a[0].b.c2'); - * // => 4 - * - * _.result(object, 'a[0].b.c3', 'default'); - * // => 'default' - * - * _.result(object, 'a[0].b.c3', _.constant('default')); - * // => 'default' - */ - function result(object, path, defaultValue) { - path = castPath(path, object); - - var index = -1, - length = path.length; - - // Ensure the loop is entered when path is empty. - if (!length) { - length = 1; - object = undefined; - } - while (++index < length) { - var value = object == null ? undefined : object[toKey(path[index])]; - if (value === undefined) { - index = length; - value = defaultValue; - } - object = isFunction(value) ? value.call(object) : value; - } - return object; - } - - /** - * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, - * it's created. Arrays are created for missing index properties while objects - * are created for all other missing properties. Use `_.setWith` to customize - * `path` creation. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @returns {Object} Returns `object`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.set(object, 'a[0].b.c', 4); - * console.log(object.a[0].b.c); - * // => 4 - * - * _.set(object, ['x', '0', 'y', 'z'], 5); - * console.log(object.x[0].y.z); - * // => 5 - */ - function set(object, path, value) { - return object == null ? object : baseSet(object, path, value); - } - - /** - * This method is like `_.set` except that it accepts `customizer` which is - * invoked to produce the objects of `path`. If `customizer` returns `undefined` - * path creation is handled by the method instead. The `customizer` is invoked - * with three arguments: (nsValue, key, nsObject). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * var object = {}; - * - * _.setWith(object, '[0][1]', 'a', Object); - * // => { '0': { '1': 'a' } } - */ - function setWith(object, path, value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return object == null ? object : baseSet(object, path, value, customizer); - } - - /** - * Creates an array of own enumerable string keyed-value pairs for `object` - * which can be consumed by `_.fromPairs`. If `object` is a map or set, its - * entries are returned. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias entries - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the key-value pairs. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.toPairs(new Foo); - * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) - */ - var toPairs = createToPairs(keys); - - /** - * Creates an array of own and inherited enumerable string keyed-value pairs - * for `object` which can be consumed by `_.fromPairs`. If `object` is a map - * or set, its entries are returned. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias entriesIn - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the key-value pairs. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.toPairsIn(new Foo); - * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) - */ - var toPairsIn = createToPairs(keysIn); - - /** - * An alternative to `_.reduce`; this method transforms `object` to a new - * `accumulator` object which is the result of running each of its own - * enumerable string keyed properties thru `iteratee`, with each invocation - * potentially mutating the `accumulator` object. If `accumulator` is not - * provided, a new object with the same `[[Prototype]]` will be used. The - * iteratee is invoked with four arguments: (accumulator, value, key, object). - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 1.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The custom accumulator value. - * @returns {*} Returns the accumulated value. - * @example - * - * _.transform([2, 3, 4], function(result, n) { - * result.push(n *= n); - * return n % 2 == 0; - * }, []); - * // => [4, 9] - * - * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - * (result[value] || (result[value] = [])).push(key); - * }, {}); - * // => { '1': ['a', 'c'], '2': ['b'] } - */ - function transform(object, iteratee, accumulator) { - var isArr = isArray(object), - isArrLike = isArr || isBuffer(object) || isTypedArray(object); - - iteratee = getIteratee(iteratee, 4); - if (accumulator == null) { - var Ctor = object && object.constructor; - if (isArrLike) { - accumulator = isArr ? new Ctor : []; - } - else if (isObject(object)) { - accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; - } - else { - accumulator = {}; - } - } - (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) { - return iteratee(accumulator, value, index, object); - }); - return accumulator; - } - - /** - * Removes the property at `path` of `object`. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to unset. - * @returns {boolean} Returns `true` if the property is deleted, else `false`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 7 } }] }; - * _.unset(object, 'a[0].b.c'); - * // => true - * - * console.log(object); - * // => { 'a': [{ 'b': {} }] }; - * - * _.unset(object, ['a', '0', 'b', 'c']); - * // => true - * - * console.log(object); - * // => { 'a': [{ 'b': {} }] }; - */ - function unset(object, path) { - return object == null ? true : baseUnset(object, path); - } - - /** - * This method is like `_.set` except that accepts `updater` to produce the - * value to set. Use `_.updateWith` to customize `path` creation. The `updater` - * is invoked with one argument: (value). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {Function} updater The function to produce the updated value. - * @returns {Object} Returns `object`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.update(object, 'a[0].b.c', function(n) { return n * n; }); - * console.log(object.a[0].b.c); - * // => 9 - * - * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); - * console.log(object.x[0].y.z); - * // => 0 - */ - function update(object, path, updater) { - return object == null ? object : baseUpdate(object, path, castFunction(updater)); - } - - /** - * This method is like `_.update` except that it accepts `customizer` which is - * invoked to produce the objects of `path`. If `customizer` returns `undefined` - * path creation is handled by the method instead. The `customizer` is invoked - * with three arguments: (nsValue, key, nsObject). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {Function} updater The function to produce the updated value. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * var object = {}; - * - * _.updateWith(object, '[0][1]', _.constant('a'), Object); - * // => { '0': { '1': 'a' } } - */ - function updateWith(object, path, updater, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); - } - - /** - * Creates an array of the own enumerable string keyed property values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.values(new Foo); - * // => [1, 2] (iteration order is not guaranteed) - * - * _.values('hi'); - * // => ['h', 'i'] - */ - function values(object) { - return object == null ? [] : baseValues(object, keys(object)); - } - - /** - * Creates an array of the own and inherited enumerable string keyed property - * values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.valuesIn(new Foo); - * // => [1, 2, 3] (iteration order is not guaranteed) - */ - function valuesIn(object) { - return object == null ? [] : baseValues(object, keysIn(object)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Clamps `number` within the inclusive `lower` and `upper` bounds. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Number - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - * @example - * - * _.clamp(-10, -5, 5); - * // => -5 - * - * _.clamp(10, -5, 5); - * // => 5 - */ - function clamp(number, lower, upper) { - if (upper === undefined) { - upper = lower; - lower = undefined; - } - if (upper !== undefined) { - upper = toNumber(upper); - upper = upper === upper ? upper : 0; - } - if (lower !== undefined) { - lower = toNumber(lower); - lower = lower === lower ? lower : 0; - } - return baseClamp(toNumber(number), lower, upper); - } - - /** - * Checks if `n` is between `start` and up to, but not including, `end`. If - * `end` is not specified, it's set to `start` with `start` then set to `0`. - * If `start` is greater than `end` the params are swapped to support - * negative ranges. - * - * @static - * @memberOf _ - * @since 3.3.0 - * @category Number - * @param {number} number The number to check. - * @param {number} [start=0] The start of the range. - * @param {number} end The end of the range. - * @returns {boolean} Returns `true` if `number` is in the range, else `false`. - * @see _.range, _.rangeRight - * @example - * - * _.inRange(3, 2, 4); - * // => true - * - * _.inRange(4, 8); - * // => true - * - * _.inRange(4, 2); - * // => false - * - * _.inRange(2, 2); - * // => false - * - * _.inRange(1.2, 2); - * // => true - * - * _.inRange(5.2, 4); - * // => false - * - * _.inRange(-3, -2, -6); - * // => true - */ - function inRange(number, start, end) { - start = toFinite(start); - if (end === undefined) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - number = toNumber(number); - return baseInRange(number, start, end); - } - - /** - * Produces a random number between the inclusive `lower` and `upper` bounds. - * If only one argument is provided a number between `0` and the given number - * is returned. If `floating` is `true`, or either `lower` or `upper` are - * floats, a floating-point number is returned instead of an integer. - * - * **Note:** JavaScript follows the IEEE-754 standard for resolving - * floating-point values which can produce unexpected results. - * - * @static - * @memberOf _ - * @since 0.7.0 - * @category Number - * @param {number} [lower=0] The lower bound. - * @param {number} [upper=1] The upper bound. - * @param {boolean} [floating] Specify returning a floating-point number. - * @returns {number} Returns the random number. - * @example - * - * _.random(0, 5); - * // => an integer between 0 and 5 - * - * _.random(5); - * // => also an integer between 0 and 5 - * - * _.random(5, true); - * // => a floating-point number between 0 and 5 - * - * _.random(1.2, 5.2); - * // => a floating-point number between 1.2 and 5.2 - */ - function random(lower, upper, floating) { - if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) { - upper = floating = undefined; - } - if (floating === undefined) { - if (typeof upper == 'boolean') { - floating = upper; - upper = undefined; - } - else if (typeof lower == 'boolean') { - floating = lower; - lower = undefined; - } - } - if (lower === undefined && upper === undefined) { - lower = 0; - upper = 1; - } - else { - lower = toFinite(lower); - if (upper === undefined) { - upper = lower; - lower = 0; - } else { - upper = toFinite(upper); - } - } - if (lower > upper) { - var temp = lower; - lower = upper; - upper = temp; - } - if (floating || lower % 1 || upper % 1) { - var rand = nativeRandom(); - return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper); - } - return baseRandom(lower, upper); - } - - /*------------------------------------------------------------------------*/ - - /** - * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the camel cased string. - * @example - * - * _.camelCase('Foo Bar'); - * // => 'fooBar' - * - * _.camelCase('--foo-bar--'); - * // => 'fooBar' - * - * _.camelCase('__FOO_BAR__'); - * // => 'fooBar' - */ - var camelCase = createCompounder(function(result, word, index) { - word = word.toLowerCase(); - return result + (index ? capitalize(word) : word); - }); - - /** - * Converts the first character of `string` to upper case and the remaining - * to lower case. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to capitalize. - * @returns {string} Returns the capitalized string. - * @example - * - * _.capitalize('FRED'); - * // => 'Fred' - */ - function capitalize(string) { - return upperFirst(toString(string).toLowerCase()); - } - - /** - * Deburrs `string` by converting - * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) - * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) - * letters to basic Latin letters and removing - * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to deburr. - * @returns {string} Returns the deburred string. - * @example - * - * _.deburr('déjà vu'); - * // => 'deja vu' - */ - function deburr(string) { - string = toString(string); - return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); - } - - /** - * Checks if `string` ends with the given target string. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to inspect. - * @param {string} [target] The string to search for. - * @param {number} [position=string.length] The position to search up to. - * @returns {boolean} Returns `true` if `string` ends with `target`, - * else `false`. - * @example - * - * _.endsWith('abc', 'c'); - * // => true - * - * _.endsWith('abc', 'b'); - * // => false - * - * _.endsWith('abc', 'b', 2); - * // => true - */ - function endsWith(string, target, position) { - string = toString(string); - target = baseToString(target); - - var length = string.length; - position = position === undefined - ? length - : baseClamp(toInteger(position), 0, length); - - var end = position; - position -= target.length; - return position >= 0 && string.slice(position, end) == target; - } - - /** - * Converts the characters "&", "<", ">", '"', and "'" in `string` to their - * corresponding HTML entities. - * - * **Note:** No other characters are escaped. To escape additional - * characters use a third-party library like [_he_](https://mths.be/he). - * - * Though the ">" character is escaped for symmetry, characters like - * ">" and "/" don't need escaping in HTML and have no special meaning - * unless they're part of a tag or unquoted attribute value. See - * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) - * (under "semi-related fun fact") for more details. - * - * When working with HTML you should always - * [quote attribute values](http://wonko.com/post/html-escaping) to reduce - * XSS vectors. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escape('fred, barney, & pebbles'); - * // => 'fred, barney, & pebbles' - */ - function escape(string) { - string = toString(string); - return (string && reHasUnescapedHtml.test(string)) - ? string.replace(reUnescapedHtml, escapeHtmlChar) - : string; - } - - /** - * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", - * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https://lodash\.com/\)' - */ - function escapeRegExp(string) { - string = toString(string); - return (string && reHasRegExpChar.test(string)) - ? string.replace(reRegExpChar, '\\$&') - : string; - } - - /** - * Converts `string` to - * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the kebab cased string. - * @example - * - * _.kebabCase('Foo Bar'); - * // => 'foo-bar' - * - * _.kebabCase('fooBar'); - * // => 'foo-bar' - * - * _.kebabCase('__FOO_BAR__'); - * // => 'foo-bar' - */ - var kebabCase = createCompounder(function(result, word, index) { - return result + (index ? '-' : '') + word.toLowerCase(); - }); - - /** - * Converts `string`, as space separated words, to lower case. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the lower cased string. - * @example - * - * _.lowerCase('--Foo-Bar--'); - * // => 'foo bar' - * - * _.lowerCase('fooBar'); - * // => 'foo bar' - * - * _.lowerCase('__FOO_BAR__'); - * // => 'foo bar' - */ - var lowerCase = createCompounder(function(result, word, index) { - return result + (index ? ' ' : '') + word.toLowerCase(); - }); - - /** - * Converts the first character of `string` to lower case. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.lowerFirst('Fred'); - * // => 'fred' - * - * _.lowerFirst('FRED'); - * // => 'fRED' - */ - var lowerFirst = createCaseFirst('toLowerCase'); - - /** - * Pads `string` on the left and right sides if it's shorter than `length`. - * Padding characters are truncated if they can't be evenly divided by `length`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.pad('abc', 8); - * // => ' abc ' - * - * _.pad('abc', 8, '_-'); - * // => '_-abc_-_' - * - * _.pad('abc', 3); - * // => 'abc' - */ - function pad(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - if (!length || strLength >= length) { - return string; - } - var mid = (length - strLength) / 2; - return ( - createPadding(nativeFloor(mid), chars) + - string + - createPadding(nativeCeil(mid), chars) - ); - } - - /** - * Pads `string` on the right side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padEnd('abc', 6); - * // => 'abc ' - * - * _.padEnd('abc', 6, '_-'); - * // => 'abc_-_' - * - * _.padEnd('abc', 3); - * // => 'abc' - */ - function padEnd(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - return (length && strLength < length) - ? (string + createPadding(length - strLength, chars)) - : string; - } - - /** - * Pads `string` on the left side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padStart('abc', 6); - * // => ' abc' - * - * _.padStart('abc', 6, '_-'); - * // => '_-_abc' - * - * _.padStart('abc', 3); - * // => 'abc' - */ - function padStart(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - return (length && strLength < length) - ? (createPadding(length - strLength, chars) + string) - : string; - } - - /** - * Converts `string` to an integer of the specified radix. If `radix` is - * `undefined` or `0`, a `radix` of `10` is used unless `value` is a - * hexadecimal, in which case a `radix` of `16` is used. - * - * **Note:** This method aligns with the - * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category String - * @param {string} string The string to convert. - * @param {number} [radix=10] The radix to interpret `value` by. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {number} Returns the converted integer. - * @example - * - * _.parseInt('08'); - * // => 8 - * - * _.map(['6', '08', '10'], _.parseInt); - * // => [6, 8, 10] - */ - function parseInt(string, radix, guard) { - if (guard || radix == null) { - radix = 0; - } else if (radix) { - radix = +radix; - } - return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0); - } - - /** - * Repeats the given string `n` times. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to repeat. - * @param {number} [n=1] The number of times to repeat the string. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {string} Returns the repeated string. - * @example - * - * _.repeat('*', 3); - * // => '***' - * - * _.repeat('abc', 2); - * // => 'abcabc' - * - * _.repeat('abc', 0); - * // => '' - */ - function repeat(string, n, guard) { - if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) { - n = 1; - } else { - n = toInteger(n); - } - return baseRepeat(toString(string), n); - } - - /** - * Replaces matches for `pattern` in `string` with `replacement`. - * - * **Note:** This method is based on - * [`String#replace`](https://mdn.io/String/replace). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to modify. - * @param {RegExp|string} pattern The pattern to replace. - * @param {Function|string} replacement The match replacement. - * @returns {string} Returns the modified string. - * @example - * - * _.replace('Hi Fred', 'Fred', 'Barney'); - * // => 'Hi Barney' - */ - function replace() { - var args = arguments, - string = toString(args[0]); - - return args.length < 3 ? string : string.replace(args[1], args[2]); - } - - /** - * Converts `string` to - * [snake case](https://en.wikipedia.org/wiki/Snake_case). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the snake cased string. - * @example - * - * _.snakeCase('Foo Bar'); - * // => 'foo_bar' - * - * _.snakeCase('fooBar'); - * // => 'foo_bar' - * - * _.snakeCase('--FOO-BAR--'); - * // => 'foo_bar' - */ - var snakeCase = createCompounder(function(result, word, index) { - return result + (index ? '_' : '') + word.toLowerCase(); - }); - - /** - * Splits `string` by `separator`. - * - * **Note:** This method is based on - * [`String#split`](https://mdn.io/String/split). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to split. - * @param {RegExp|string} separator The separator pattern to split by. - * @param {number} [limit] The length to truncate results to. - * @returns {Array} Returns the string segments. - * @example - * - * _.split('a-b-c', '-', 2); - * // => ['a', 'b'] - */ - function split(string, separator, limit) { - if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { - separator = limit = undefined; - } - limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; - if (!limit) { - return []; - } - string = toString(string); - if (string && ( - typeof separator == 'string' || - (separator != null && !isRegExp(separator)) - )) { - separator = baseToString(separator); - if (!separator && hasUnicode(string)) { - return castSlice(stringToArray(string), 0, limit); - } - } - return string.split(separator, limit); - } - - /** - * Converts `string` to - * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). - * - * @static - * @memberOf _ - * @since 3.1.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the start cased string. - * @example - * - * _.startCase('--foo-bar--'); - * // => 'Foo Bar' - * - * _.startCase('fooBar'); - * // => 'Foo Bar' - * - * _.startCase('__FOO_BAR__'); - * // => 'FOO BAR' - */ - var startCase = createCompounder(function(result, word, index) { - return result + (index ? ' ' : '') + upperFirst(word); - }); - - /** - * Checks if `string` starts with the given target string. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to inspect. - * @param {string} [target] The string to search for. - * @param {number} [position=0] The position to search from. - * @returns {boolean} Returns `true` if `string` starts with `target`, - * else `false`. - * @example - * - * _.startsWith('abc', 'a'); - * // => true - * - * _.startsWith('abc', 'b'); - * // => false - * - * _.startsWith('abc', 'b', 1); - * // => true - */ - function startsWith(string, target, position) { - string = toString(string); - position = position == null - ? 0 - : baseClamp(toInteger(position), 0, string.length); - - target = baseToString(target); - return string.slice(position, position + target.length) == target; - } - - /** - * Creates a compiled template function that can interpolate data properties - * in "interpolate" delimiters, HTML-escape interpolated data properties in - * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data - * properties may be accessed as free variables in the template. If a setting - * object is given, it takes precedence over `_.templateSettings` values. - * - * **Note:** In the development build `_.template` utilizes - * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) - * for easier debugging. - * - * For more information on precompiling templates see - * [lodash's custom builds documentation](https://lodash.com/custom-builds). - * - * For more information on Chrome extension sandboxes see - * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category String - * @param {string} [string=''] The template string. - * @param {Object} [options={}] The options object. - * @param {RegExp} [options.escape=_.templateSettings.escape] - * The HTML "escape" delimiter. - * @param {RegExp} [options.evaluate=_.templateSettings.evaluate] - * The "evaluate" delimiter. - * @param {Object} [options.imports=_.templateSettings.imports] - * An object to import into the template as free variables. - * @param {RegExp} [options.interpolate=_.templateSettings.interpolate] - * The "interpolate" delimiter. - * @param {string} [options.sourceURL='lodash.templateSources[n]'] - * The sourceURL of the compiled template. - * @param {string} [options.variable='obj'] - * The data object variable name. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the compiled template function. - * @example - * - * // Use the "interpolate" delimiter to create a compiled template. - * var compiled = _.template('hello <%= user %>!'); - * compiled({ 'user': 'fred' }); - * // => 'hello fred!' - * - * // Use the HTML "escape" delimiter to escape data property values. - * var compiled = _.template('<%- value %>'); - * compiled({ 'value': '