From a7119cd7b24be07c60dce84f5364c353b31c5594 Mon Sep 17 00:00:00 2001 From: IjzerenHein Date: Wed, 10 Feb 2016 12:53:14 +0100 Subject: [PATCH] Updated dist --- dist/autolayout.js | 547 ++++++++++++++++++++++++++++++---------- dist/autolayout.kiwi.js | 547 ++++++++++++++++++++++++++++++---------- dist/autolayout.min.js | 10 +- dist/autolayout.min.map | 2 +- 4 files changed, 826 insertions(+), 280 deletions(-) diff --git a/dist/autolayout.js b/dist/autolayout.js index 0f94b20..be613ce 100644 --- a/dist/autolayout.js +++ b/dist/autolayout.js @@ -5,10 +5,10 @@ * * @author: Hein Rutjes (IjzerenHein) * @license MIT -* @copyright Gloey Apps, 2015 +* @copyright Gloey Apps, 2016 * * @library autolayout.js -* @version 0.5.2 +* @version 0.5.3 */ /** * Parts Copyright (C) 2011-2012, Alex Russell (slightlyoff@chromium.org) @@ -1362,90 +1362,107 @@ var parserExt = (function () { peg$c70 = function peg$c70(n) { return { constant: n }; }, - peg$c71 = "%", - peg$c72 = { type: "literal", value: "%", description: "\"%\"" }, - peg$c73 = function peg$c73(n) { + peg$c71 = function peg$c71(n) { + return { constant: -n }; + }, + peg$c72 = "+", + peg$c73 = { type: "literal", value: "+", description: "\"+\"" }, + peg$c74 = "%", + peg$c75 = { type: "literal", value: "%", description: "\"%\"" }, + peg$c76 = function peg$c76(n) { return { view: null, multiplier: n / 100 }; }, - peg$c74 = function peg$c74(vn, a, m, c) { + peg$c77 = function peg$c77(n) { + return { view: null, multiplier: n / -100 }; + }, + peg$c78 = function peg$c78(vn, a, m, c) { return { view: vn.view, attribute: a ? a : undefined, multiplier: m ? m : 1, constant: c ? c : undefined }; }, - peg$c75 = ".left", - peg$c76 = { type: "literal", value: ".left", description: "\".left\"" }, - peg$c77 = function peg$c77() { + peg$c79 = ".left", + peg$c80 = { type: "literal", value: ".left", description: "\".left\"" }, + peg$c81 = function peg$c81() { return 'left'; }, - peg$c78 = ".right", - peg$c79 = { type: "literal", value: ".right", description: "\".right\"" }, - peg$c80 = function peg$c80() { + peg$c82 = ".right", + peg$c83 = { type: "literal", value: ".right", description: "\".right\"" }, + peg$c84 = function peg$c84() { return 'right'; }, - peg$c81 = ".top", - peg$c82 = { type: "literal", value: ".top", description: "\".top\"" }, - peg$c83 = function peg$c83() { + peg$c85 = ".top", + peg$c86 = { type: "literal", value: ".top", description: "\".top\"" }, + peg$c87 = function peg$c87() { return 'top'; }, - peg$c84 = ".bottom", - peg$c85 = { type: "literal", value: ".bottom", description: "\".bottom\"" }, - peg$c86 = function peg$c86() { + peg$c88 = ".bottom", + peg$c89 = { type: "literal", value: ".bottom", description: "\".bottom\"" }, + peg$c90 = function peg$c90() { return 'bottom'; }, - peg$c87 = ".width", - peg$c88 = { type: "literal", value: ".width", description: "\".width\"" }, - peg$c89 = function peg$c89() { + peg$c91 = ".width", + peg$c92 = { type: "literal", value: ".width", description: "\".width\"" }, + peg$c93 = function peg$c93() { return 'width'; }, - peg$c90 = ".height", - peg$c91 = { type: "literal", value: ".height", description: "\".height\"" }, - peg$c92 = function peg$c92() { + peg$c94 = ".height", + peg$c95 = { type: "literal", value: ".height", description: "\".height\"" }, + peg$c96 = function peg$c96() { return 'height'; }, - peg$c93 = ".centerX", - peg$c94 = { type: "literal", value: ".centerX", description: "\".centerX\"" }, - peg$c95 = function peg$c95() { + peg$c97 = ".centerX", + peg$c98 = { type: "literal", value: ".centerX", description: "\".centerX\"" }, + peg$c99 = function peg$c99() { return 'centerX'; }, - peg$c96 = ".centerY", - peg$c97 = { type: "literal", value: ".centerY", description: "\".centerY\"" }, - peg$c98 = function peg$c98() { + peg$c100 = ".centerY", + peg$c101 = { type: "literal", value: ".centerY", description: "\".centerY\"" }, + peg$c102 = function peg$c102() { return 'centerY'; }, - peg$c99 = "/", - peg$c100 = { type: "literal", value: "/", description: "\"/\"" }, - peg$c101 = function peg$c101(n) { + peg$c103 = "/", + peg$c104 = { type: "literal", value: "/", description: "\"/\"" }, + peg$c105 = function peg$c105(n) { return 1 / n; }, - peg$c102 = "*", - peg$c103 = { type: "literal", value: "*", description: "\"*\"" }, - peg$c104 = function peg$c104(n) { + peg$c106 = "/+", + peg$c107 = { type: "literal", value: "/+", description: "\"/+\"" }, + peg$c108 = "/-", + peg$c109 = { type: "literal", value: "/-", description: "\"/-\"" }, + peg$c110 = function peg$c110(n) { + return -1 / n; + }, + peg$c111 = "*", + peg$c112 = { type: "literal", value: "*", description: "\"*\"" }, + peg$c113 = function peg$c113(n) { return n; }, - peg$c105 = function peg$c105(n) { + peg$c114 = "*+", + peg$c115 = { type: "literal", value: "*+", description: "\"*+\"" }, + peg$c116 = "*-", + peg$c117 = { type: "literal", value: "*-", description: "\"*-\"" }, + peg$c118 = function peg$c118(n) { return -n; }, - peg$c106 = "+", - peg$c107 = { type: "literal", value: "+", description: "\"+\"" }, - peg$c108 = /^[a-zA-Z_]/, - peg$c109 = { type: "class", value: "[a-zA-Z_]", description: "[a-zA-Z_]" }, - peg$c110 = /^[a-zA-Z0-9_]/, - peg$c111 = { type: "class", value: "[a-zA-Z0-9_]", description: "[a-zA-Z0-9_]" }, - peg$c112 = function peg$c112(f, v, r) { + peg$c119 = /^[a-zA-Z_]/, + peg$c120 = { type: "class", value: "[a-zA-Z_]", description: "[a-zA-Z_]" }, + peg$c121 = /^[a-zA-Z0-9_]/, + peg$c122 = { type: "class", value: "[a-zA-Z0-9_]", description: "[a-zA-Z0-9_]" }, + peg$c123 = function peg$c123(f, v, r) { return { view: f + v, range: r, $parserOffset: offset() }; }, - peg$c113 = function peg$c113(f, v) { + peg$c124 = function peg$c124(f, v) { return { view: f + v, $parserOffset: offset() }; }, - peg$c114 = "..", - peg$c115 = { type: "literal", value: "..", description: "\"..\"" }, - peg$c116 = function peg$c116(d) { + peg$c125 = "..", + peg$c126 = { type: "literal", value: "..", description: "\"..\"" }, + peg$c127 = function peg$c127(d) { return parseInt(d); }, - peg$c117 = ".", - peg$c118 = { type: "literal", value: ".", description: "\".\"" }, - peg$c119 = function peg$c119(digits, decimals) { + peg$c128 = ".", + peg$c129 = { type: "literal", value: ".", description: "\".\"" }, + peg$c130 = function peg$c130(digits, decimals) { return parseFloat(digits.concat(".").concat(decimals).join(""), 10); }, - peg$c120 = function peg$c120(digits) { + peg$c131 = function peg$c131(digits) { return parseInt(digits.join(""), 10); }, peg$currPos = 0, @@ -2730,7 +2747,7 @@ var parserExt = (function () { } function peg$parseconstant() { - var s0, s1; + var s0, s1, s2; s0 = peg$currPos; s1 = peg$parsenumber(); @@ -2739,28 +2756,80 @@ var parserExt = (function () { s1 = peg$c70(s1); } s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 45) { + s1 = peg$c38; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c39); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c71(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 43) { + s1 = peg$c72; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c73); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c70(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } + } return s0; } function peg$parsepercentage() { - var s0, s1, s2; + var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parsenumber(); if (s1 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 37) { - s2 = peg$c71; + s2 = peg$c74; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c72); + peg$fail(peg$c75); } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c73(s1); + s1 = peg$c76(s1); s0 = s1; } else { peg$currPos = s0; @@ -2770,6 +2839,86 @@ var parserExt = (function () { peg$currPos = s0; s0 = peg$c0; } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 45) { + s1 = peg$c38; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c39); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 37) { + s3 = peg$c74; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c75); + } + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c77(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 43) { + s1 = peg$c72; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c73); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 37) { + s3 = peg$c74; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c75); + } + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c76(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } + } return s0; } @@ -2796,7 +2945,7 @@ var parserExt = (function () { } if (s4 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c74(s1, s2, s3, s4); + s1 = peg$c78(s1, s2, s3, s4); s0 = s1; } else { peg$currPos = s0; @@ -2822,130 +2971,130 @@ var parserExt = (function () { var s0, s1; s0 = peg$currPos; - if (input.substr(peg$currPos, 5) === peg$c75) { - s1 = peg$c75; + if (input.substr(peg$currPos, 5) === peg$c79) { + s1 = peg$c79; peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c76); + peg$fail(peg$c80); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c77(); + s1 = peg$c81(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c78) { - s1 = peg$c78; + if (input.substr(peg$currPos, 6) === peg$c82) { + s1 = peg$c82; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c79); + peg$fail(peg$c83); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c80(); + s1 = peg$c84(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 4) === peg$c81) { - s1 = peg$c81; + if (input.substr(peg$currPos, 4) === peg$c85) { + s1 = peg$c85; peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c82); + peg$fail(peg$c86); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c83(); + s1 = peg$c87(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 7) === peg$c84) { - s1 = peg$c84; + if (input.substr(peg$currPos, 7) === peg$c88) { + s1 = peg$c88; peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c85); + peg$fail(peg$c89); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c86(); + s1 = peg$c90(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c87) { - s1 = peg$c87; + if (input.substr(peg$currPos, 6) === peg$c91) { + s1 = peg$c91; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c88); + peg$fail(peg$c92); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c89(); + s1 = peg$c93(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 7) === peg$c90) { - s1 = peg$c90; + if (input.substr(peg$currPos, 7) === peg$c94) { + s1 = peg$c94; peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c91); + peg$fail(peg$c95); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c92(); + s1 = peg$c96(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 8) === peg$c93) { - s1 = peg$c93; + if (input.substr(peg$currPos, 8) === peg$c97) { + s1 = peg$c97; peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c94); + peg$fail(peg$c98); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c95(); + s1 = peg$c99(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 8) === peg$c96) { - s1 = peg$c96; + if (input.substr(peg$currPos, 8) === peg$c100) { + s1 = peg$c100; peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c97); + peg$fail(peg$c101); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c98(); + s1 = peg$c102(); } s0 = s1; } @@ -2964,19 +3113,19 @@ var parserExt = (function () { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 47) { - s1 = peg$c99; + s1 = peg$c103; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c100); + peg$fail(peg$c104); } } if (s1 !== peg$FAILED) { s2 = peg$parsenumber(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c101(s2); + s1 = peg$c105(s2); s0 = s1; } else { peg$currPos = s0; @@ -2988,20 +3137,20 @@ var parserExt = (function () { } if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 42) { - s1 = peg$c102; - peg$currPos++; + if (input.substr(peg$currPos, 2) === peg$c106) { + s1 = peg$c106; + peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c103); + peg$fail(peg$c107); } } if (s1 !== peg$FAILED) { s2 = peg$parsenumber(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c104(s2); + s1 = peg$c105(s2); s0 = s1; } else { peg$currPos = s0; @@ -3011,6 +3160,110 @@ var parserExt = (function () { peg$currPos = s0; s0 = peg$c0; } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c108) { + s1 = peg$c108; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c109); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c110(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 42) { + s1 = peg$c111; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c112); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c113(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c114) { + s1 = peg$c114; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c115); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c113(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c116) { + s1 = peg$c116; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c117); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c118(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } + } + } + } } return s0; @@ -3033,7 +3286,7 @@ var parserExt = (function () { s2 = peg$parsenumber(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c105(s2); + s1 = peg$c118(s2); s0 = s1; } else { peg$currPos = s0; @@ -3046,19 +3299,19 @@ var parserExt = (function () { if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 43) { - s1 = peg$c106; + s1 = peg$c72; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c107); + peg$fail(peg$c73); } } if (s1 !== peg$FAILED) { s2 = peg$parsenumber(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c104(s2); + s1 = peg$c113(s2); s0 = s1; } else { peg$currPos = s0; @@ -3079,25 +3332,25 @@ var parserExt = (function () { s0 = peg$currPos; s1 = peg$currPos; s2 = []; - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } } @@ -3111,24 +3364,24 @@ var parserExt = (function () { if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = []; - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } while (s4 !== peg$FAILED) { s3.push(s4); - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } } @@ -3140,7 +3393,7 @@ var parserExt = (function () { s3 = peg$parserange(); if (s3 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c112(s1, s2, s3); + s1 = peg$c123(s1, s2, s3); s0 = s1; } else { peg$currPos = s0; @@ -3158,25 +3411,25 @@ var parserExt = (function () { s0 = peg$currPos; s1 = peg$currPos; s2 = []; - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } } @@ -3190,24 +3443,24 @@ var parserExt = (function () { if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = []; - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } while (s4 !== peg$FAILED) { s3.push(s4); - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } } @@ -3217,7 +3470,7 @@ var parserExt = (function () { s2 = s3; if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c113(s1, s2); + s1 = peg$c124(s1, s2); s0 = s1; } else { peg$currPos = s0; @@ -3238,25 +3491,25 @@ var parserExt = (function () { s0 = peg$currPos; s1 = peg$currPos; s2 = []; - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } } @@ -3270,24 +3523,24 @@ var parserExt = (function () { if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = []; - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } while (s4 !== peg$FAILED) { s3.push(s4); - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } } @@ -3297,7 +3550,7 @@ var parserExt = (function () { s2 = s3; if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c113(s1, s2); + s1 = peg$c124(s1, s2); s0 = s1; } else { peg$currPos = s0; @@ -3315,13 +3568,13 @@ var parserExt = (function () { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c114) { - s1 = peg$c114; + if (input.substr(peg$currPos, 2) === peg$c125) { + s1 = peg$c125; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c115); + peg$fail(peg$c126); } } if (s1 !== peg$FAILED) { @@ -3353,7 +3606,7 @@ var parserExt = (function () { } if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c116(s2); + s1 = peg$c127(s2); s0 = s1; } else { peg$currPos = s0; @@ -3399,12 +3652,12 @@ var parserExt = (function () { } if (s1 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 46) { - s2 = peg$c117; + s2 = peg$c128; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c118); + peg$fail(peg$c129); } } if (s2 !== peg$FAILED) { @@ -3436,7 +3689,7 @@ var parserExt = (function () { } if (s3 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c119(s1, s3); + s1 = peg$c130(s1, s3); s0 = s1; } else { peg$currPos = s0; @@ -3480,7 +3733,7 @@ var parserExt = (function () { } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c120(s1); + s1 = peg$c131(s1); } s0 = s1; } @@ -3877,6 +4130,12 @@ var VisualFormat = (function () { _classCallCheck(this, VisualFormat); } + /** + * A SubView is automatically generated when constraints are added to a View. + * + * @namespace SubView + */ + _createClass(VisualFormat, null, [{ key: 'parseLine', @@ -4666,6 +4925,20 @@ var View = (function () { } } + //import DOM from './DOM'; + + /** + * AutoLayout. + * + * @namespace AutoLayout + * @property {Attribute} Attribute + * @property {Relation} Relation + * @property {Priority} Priority + * @property {VisualFormat} VisualFormat + * @property {View} View + * @property {SubView} SubView + */ + /** * Sets the width and height of the view. * diff --git a/dist/autolayout.kiwi.js b/dist/autolayout.kiwi.js index 43f8c75..9a01ac5 100644 --- a/dist/autolayout.kiwi.js +++ b/dist/autolayout.kiwi.js @@ -5,10 +5,10 @@ * * @author: Hein Rutjes (IjzerenHein) * @license MIT -* @copyright Gloey Apps, 2015 +* @copyright Gloey Apps, 2016 * * @library autolayout.js -* @version 0.5.2 +* @version 0.5.3 */ /*----------------------------------------------------------------------------- | Kiwi (TypeScript version) @@ -1364,90 +1364,107 @@ var parserExt = (function () { peg$c70 = function peg$c70(n) { return { constant: n }; }, - peg$c71 = "%", - peg$c72 = { type: "literal", value: "%", description: "\"%\"" }, - peg$c73 = function peg$c73(n) { + peg$c71 = function peg$c71(n) { + return { constant: -n }; + }, + peg$c72 = "+", + peg$c73 = { type: "literal", value: "+", description: "\"+\"" }, + peg$c74 = "%", + peg$c75 = { type: "literal", value: "%", description: "\"%\"" }, + peg$c76 = function peg$c76(n) { return { view: null, multiplier: n / 100 }; }, - peg$c74 = function peg$c74(vn, a, m, c) { + peg$c77 = function peg$c77(n) { + return { view: null, multiplier: n / -100 }; + }, + peg$c78 = function peg$c78(vn, a, m, c) { return { view: vn.view, attribute: a ? a : undefined, multiplier: m ? m : 1, constant: c ? c : undefined }; }, - peg$c75 = ".left", - peg$c76 = { type: "literal", value: ".left", description: "\".left\"" }, - peg$c77 = function peg$c77() { + peg$c79 = ".left", + peg$c80 = { type: "literal", value: ".left", description: "\".left\"" }, + peg$c81 = function peg$c81() { return 'left'; }, - peg$c78 = ".right", - peg$c79 = { type: "literal", value: ".right", description: "\".right\"" }, - peg$c80 = function peg$c80() { + peg$c82 = ".right", + peg$c83 = { type: "literal", value: ".right", description: "\".right\"" }, + peg$c84 = function peg$c84() { return 'right'; }, - peg$c81 = ".top", - peg$c82 = { type: "literal", value: ".top", description: "\".top\"" }, - peg$c83 = function peg$c83() { + peg$c85 = ".top", + peg$c86 = { type: "literal", value: ".top", description: "\".top\"" }, + peg$c87 = function peg$c87() { return 'top'; }, - peg$c84 = ".bottom", - peg$c85 = { type: "literal", value: ".bottom", description: "\".bottom\"" }, - peg$c86 = function peg$c86() { + peg$c88 = ".bottom", + peg$c89 = { type: "literal", value: ".bottom", description: "\".bottom\"" }, + peg$c90 = function peg$c90() { return 'bottom'; }, - peg$c87 = ".width", - peg$c88 = { type: "literal", value: ".width", description: "\".width\"" }, - peg$c89 = function peg$c89() { + peg$c91 = ".width", + peg$c92 = { type: "literal", value: ".width", description: "\".width\"" }, + peg$c93 = function peg$c93() { return 'width'; }, - peg$c90 = ".height", - peg$c91 = { type: "literal", value: ".height", description: "\".height\"" }, - peg$c92 = function peg$c92() { + peg$c94 = ".height", + peg$c95 = { type: "literal", value: ".height", description: "\".height\"" }, + peg$c96 = function peg$c96() { return 'height'; }, - peg$c93 = ".centerX", - peg$c94 = { type: "literal", value: ".centerX", description: "\".centerX\"" }, - peg$c95 = function peg$c95() { + peg$c97 = ".centerX", + peg$c98 = { type: "literal", value: ".centerX", description: "\".centerX\"" }, + peg$c99 = function peg$c99() { return 'centerX'; }, - peg$c96 = ".centerY", - peg$c97 = { type: "literal", value: ".centerY", description: "\".centerY\"" }, - peg$c98 = function peg$c98() { + peg$c100 = ".centerY", + peg$c101 = { type: "literal", value: ".centerY", description: "\".centerY\"" }, + peg$c102 = function peg$c102() { return 'centerY'; }, - peg$c99 = "/", - peg$c100 = { type: "literal", value: "/", description: "\"/\"" }, - peg$c101 = function peg$c101(n) { + peg$c103 = "/", + peg$c104 = { type: "literal", value: "/", description: "\"/\"" }, + peg$c105 = function peg$c105(n) { return 1 / n; }, - peg$c102 = "*", - peg$c103 = { type: "literal", value: "*", description: "\"*\"" }, - peg$c104 = function peg$c104(n) { + peg$c106 = "/+", + peg$c107 = { type: "literal", value: "/+", description: "\"/+\"" }, + peg$c108 = "/-", + peg$c109 = { type: "literal", value: "/-", description: "\"/-\"" }, + peg$c110 = function peg$c110(n) { + return -1 / n; + }, + peg$c111 = "*", + peg$c112 = { type: "literal", value: "*", description: "\"*\"" }, + peg$c113 = function peg$c113(n) { return n; }, - peg$c105 = function peg$c105(n) { + peg$c114 = "*+", + peg$c115 = { type: "literal", value: "*+", description: "\"*+\"" }, + peg$c116 = "*-", + peg$c117 = { type: "literal", value: "*-", description: "\"*-\"" }, + peg$c118 = function peg$c118(n) { return -n; }, - peg$c106 = "+", - peg$c107 = { type: "literal", value: "+", description: "\"+\"" }, - peg$c108 = /^[a-zA-Z_]/, - peg$c109 = { type: "class", value: "[a-zA-Z_]", description: "[a-zA-Z_]" }, - peg$c110 = /^[a-zA-Z0-9_]/, - peg$c111 = { type: "class", value: "[a-zA-Z0-9_]", description: "[a-zA-Z0-9_]" }, - peg$c112 = function peg$c112(f, v, r) { + peg$c119 = /^[a-zA-Z_]/, + peg$c120 = { type: "class", value: "[a-zA-Z_]", description: "[a-zA-Z_]" }, + peg$c121 = /^[a-zA-Z0-9_]/, + peg$c122 = { type: "class", value: "[a-zA-Z0-9_]", description: "[a-zA-Z0-9_]" }, + peg$c123 = function peg$c123(f, v, r) { return { view: f + v, range: r, $parserOffset: offset() }; }, - peg$c113 = function peg$c113(f, v) { + peg$c124 = function peg$c124(f, v) { return { view: f + v, $parserOffset: offset() }; }, - peg$c114 = "..", - peg$c115 = { type: "literal", value: "..", description: "\"..\"" }, - peg$c116 = function peg$c116(d) { + peg$c125 = "..", + peg$c126 = { type: "literal", value: "..", description: "\"..\"" }, + peg$c127 = function peg$c127(d) { return parseInt(d); }, - peg$c117 = ".", - peg$c118 = { type: "literal", value: ".", description: "\".\"" }, - peg$c119 = function peg$c119(digits, decimals) { + peg$c128 = ".", + peg$c129 = { type: "literal", value: ".", description: "\".\"" }, + peg$c130 = function peg$c130(digits, decimals) { return parseFloat(digits.concat(".").concat(decimals).join(""), 10); }, - peg$c120 = function peg$c120(digits) { + peg$c131 = function peg$c131(digits) { return parseInt(digits.join(""), 10); }, peg$currPos = 0, @@ -2732,7 +2749,7 @@ var parserExt = (function () { } function peg$parseconstant() { - var s0, s1; + var s0, s1, s2; s0 = peg$currPos; s1 = peg$parsenumber(); @@ -2741,28 +2758,80 @@ var parserExt = (function () { s1 = peg$c70(s1); } s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 45) { + s1 = peg$c38; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c39); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c71(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 43) { + s1 = peg$c72; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c73); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c70(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } + } return s0; } function peg$parsepercentage() { - var s0, s1, s2; + var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parsenumber(); if (s1 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 37) { - s2 = peg$c71; + s2 = peg$c74; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c72); + peg$fail(peg$c75); } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c73(s1); + s1 = peg$c76(s1); s0 = s1; } else { peg$currPos = s0; @@ -2772,6 +2841,86 @@ var parserExt = (function () { peg$currPos = s0; s0 = peg$c0; } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 45) { + s1 = peg$c38; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c39); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 37) { + s3 = peg$c74; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c75); + } + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c77(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 43) { + s1 = peg$c72; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c73); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 37) { + s3 = peg$c74; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c75); + } + } + if (s3 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c76(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } + } return s0; } @@ -2798,7 +2947,7 @@ var parserExt = (function () { } if (s4 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c74(s1, s2, s3, s4); + s1 = peg$c78(s1, s2, s3, s4); s0 = s1; } else { peg$currPos = s0; @@ -2824,130 +2973,130 @@ var parserExt = (function () { var s0, s1; s0 = peg$currPos; - if (input.substr(peg$currPos, 5) === peg$c75) { - s1 = peg$c75; + if (input.substr(peg$currPos, 5) === peg$c79) { + s1 = peg$c79; peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c76); + peg$fail(peg$c80); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c77(); + s1 = peg$c81(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c78) { - s1 = peg$c78; + if (input.substr(peg$currPos, 6) === peg$c82) { + s1 = peg$c82; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c79); + peg$fail(peg$c83); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c80(); + s1 = peg$c84(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 4) === peg$c81) { - s1 = peg$c81; + if (input.substr(peg$currPos, 4) === peg$c85) { + s1 = peg$c85; peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c82); + peg$fail(peg$c86); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c83(); + s1 = peg$c87(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 7) === peg$c84) { - s1 = peg$c84; + if (input.substr(peg$currPos, 7) === peg$c88) { + s1 = peg$c88; peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c85); + peg$fail(peg$c89); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c86(); + s1 = peg$c90(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c87) { - s1 = peg$c87; + if (input.substr(peg$currPos, 6) === peg$c91) { + s1 = peg$c91; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c88); + peg$fail(peg$c92); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c89(); + s1 = peg$c93(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 7) === peg$c90) { - s1 = peg$c90; + if (input.substr(peg$currPos, 7) === peg$c94) { + s1 = peg$c94; peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c91); + peg$fail(peg$c95); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c92(); + s1 = peg$c96(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 8) === peg$c93) { - s1 = peg$c93; + if (input.substr(peg$currPos, 8) === peg$c97) { + s1 = peg$c97; peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c94); + peg$fail(peg$c98); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c95(); + s1 = peg$c99(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 8) === peg$c96) { - s1 = peg$c96; + if (input.substr(peg$currPos, 8) === peg$c100) { + s1 = peg$c100; peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c97); + peg$fail(peg$c101); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c98(); + s1 = peg$c102(); } s0 = s1; } @@ -2966,19 +3115,19 @@ var parserExt = (function () { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 47) { - s1 = peg$c99; + s1 = peg$c103; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c100); + peg$fail(peg$c104); } } if (s1 !== peg$FAILED) { s2 = peg$parsenumber(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c101(s2); + s1 = peg$c105(s2); s0 = s1; } else { peg$currPos = s0; @@ -2990,20 +3139,20 @@ var parserExt = (function () { } if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 42) { - s1 = peg$c102; - peg$currPos++; + if (input.substr(peg$currPos, 2) === peg$c106) { + s1 = peg$c106; + peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c103); + peg$fail(peg$c107); } } if (s1 !== peg$FAILED) { s2 = peg$parsenumber(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c104(s2); + s1 = peg$c105(s2); s0 = s1; } else { peg$currPos = s0; @@ -3013,6 +3162,110 @@ var parserExt = (function () { peg$currPos = s0; s0 = peg$c0; } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c108) { + s1 = peg$c108; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c109); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c110(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 42) { + s1 = peg$c111; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c112); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c113(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c114) { + s1 = peg$c114; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c115); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c113(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c116) { + s1 = peg$c116; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c117); + } + } + if (s1 !== peg$FAILED) { + s2 = peg$parsenumber(); + if (s2 !== peg$FAILED) { + peg$reportedPos = s0; + s1 = peg$c118(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } else { + peg$currPos = s0; + s0 = peg$c0; + } + } + } + } + } } return s0; @@ -3035,7 +3288,7 @@ var parserExt = (function () { s2 = peg$parsenumber(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c105(s2); + s1 = peg$c118(s2); s0 = s1; } else { peg$currPos = s0; @@ -3048,19 +3301,19 @@ var parserExt = (function () { if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 43) { - s1 = peg$c106; + s1 = peg$c72; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c107); + peg$fail(peg$c73); } } if (s1 !== peg$FAILED) { s2 = peg$parsenumber(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c104(s2); + s1 = peg$c113(s2); s0 = s1; } else { peg$currPos = s0; @@ -3081,25 +3334,25 @@ var parserExt = (function () { s0 = peg$currPos; s1 = peg$currPos; s2 = []; - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } } @@ -3113,24 +3366,24 @@ var parserExt = (function () { if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = []; - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } while (s4 !== peg$FAILED) { s3.push(s4); - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } } @@ -3142,7 +3395,7 @@ var parserExt = (function () { s3 = peg$parserange(); if (s3 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c112(s1, s2, s3); + s1 = peg$c123(s1, s2, s3); s0 = s1; } else { peg$currPos = s0; @@ -3160,25 +3413,25 @@ var parserExt = (function () { s0 = peg$currPos; s1 = peg$currPos; s2 = []; - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } } @@ -3192,24 +3445,24 @@ var parserExt = (function () { if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = []; - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } while (s4 !== peg$FAILED) { s3.push(s4); - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } } @@ -3219,7 +3472,7 @@ var parserExt = (function () { s2 = s3; if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c113(s1, s2); + s1 = peg$c124(s1, s2); s0 = s1; } else { peg$currPos = s0; @@ -3240,25 +3493,25 @@ var parserExt = (function () { s0 = peg$currPos; s1 = peg$currPos; s2 = []; - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); - if (peg$c108.test(input.charAt(peg$currPos))) { + if (peg$c119.test(input.charAt(peg$currPos))) { s3 = input.charAt(peg$currPos); peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c109); + peg$fail(peg$c120); } } } @@ -3272,24 +3525,24 @@ var parserExt = (function () { if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = []; - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } while (s4 !== peg$FAILED) { s3.push(s4); - if (peg$c110.test(input.charAt(peg$currPos))) { + if (peg$c121.test(input.charAt(peg$currPos))) { s4 = input.charAt(peg$currPos); peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c111); + peg$fail(peg$c122); } } } @@ -3299,7 +3552,7 @@ var parserExt = (function () { s2 = s3; if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c113(s1, s2); + s1 = peg$c124(s1, s2); s0 = s1; } else { peg$currPos = s0; @@ -3317,13 +3570,13 @@ var parserExt = (function () { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c114) { - s1 = peg$c114; + if (input.substr(peg$currPos, 2) === peg$c125) { + s1 = peg$c125; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c115); + peg$fail(peg$c126); } } if (s1 !== peg$FAILED) { @@ -3355,7 +3608,7 @@ var parserExt = (function () { } if (s2 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c116(s2); + s1 = peg$c127(s2); s0 = s1; } else { peg$currPos = s0; @@ -3401,12 +3654,12 @@ var parserExt = (function () { } if (s1 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 46) { - s2 = peg$c117; + s2 = peg$c128; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c118); + peg$fail(peg$c129); } } if (s2 !== peg$FAILED) { @@ -3438,7 +3691,7 @@ var parserExt = (function () { } if (s3 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c119(s1, s3); + s1 = peg$c130(s1, s3); s0 = s1; } else { peg$currPos = s0; @@ -3482,7 +3735,7 @@ var parserExt = (function () { } if (s1 !== peg$FAILED) { peg$reportedPos = s0; - s1 = peg$c120(s1); + s1 = peg$c131(s1); } s0 = s1; } @@ -3879,6 +4132,12 @@ var VisualFormat = (function () { _classCallCheck(this, VisualFormat); } + /** + * A SubView is automatically generated when constraints are added to a View. + * + * @namespace SubView + */ + _createClass(VisualFormat, null, [{ key: 'parseLine', @@ -4668,6 +4927,20 @@ var View = (function () { } } + //import DOM from './DOM'; + + /** + * AutoLayout. + * + * @namespace AutoLayout + * @property {Attribute} Attribute + * @property {Relation} Relation + * @property {Priority} Priority + * @property {VisualFormat} VisualFormat + * @property {View} View + * @property {SubView} SubView + */ + /** * Sets the width and height of the view. * diff --git a/dist/autolayout.min.js b/dist/autolayout.min.js index 484f2cb..fc3a8dd 100644 --- a/dist/autolayout.min.js +++ b/dist/autolayout.min.js @@ -5,10 +5,10 @@ * * @author: Hein Rutjes (IjzerenHein) * @license MIT -* @copyright Gloey Apps, 2015 +* @copyright Gloey Apps, 2016 * * @library autolayout.js -* @version 0.5.2 +* @version 0.5.3 */ /** * Parts Copyright (C) 2011-2012, Alex Russell (slightlyoff@chromium.org) @@ -18,11 +18,11 @@ * COPYING.LGPL file. */ (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.AutoLayout = 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;o1&&t.constraints.push({view1:"_~"+t.lineIndex+":1~",attr1:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,relation:t.relation.relation||Relation.EQU,view2:r,attr2:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,priority:t.relation.priority}),t.equalSpacerIndex++,t.relation.view||t.relation.multiplier&&1!==t.relation.multiplier?(t.constraints.push({view1:r,attr1:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,relation:t.relation.relation||Relation.EQU,view2:t.relation.view,attr2:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,priority:t.relation.priority,multiplier:t.relation.multiplier}),t.relation.multiplier=void 0):t.relation.constant&&(t.constraints.push({view1:r,attr1:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,relation:Relation.EQU,view2:null,attr2:Attribute.CONST,priority:t.relation.priority,constant:t.relation.constant}),t.relation.constant=void 0);for(var i=0;i=n;n*=2)if(r.orientations&n&&r.stack.orientation!==n&&!(r.stack.processedOrientations&n)){r.stack.processedOrientations=r.stack.processedOrientations|n,i=i||{name:e,type:"stack"};for(var a=0,s=r.stack.subViews.length;s>a;a++)n===Orientation.ZINDEX?t.constraints.push({view1:i,attr1:Attribute.ZINDEX,relation:Relation.EQU,view2:r.stack.subViews[a],attr2:Attribute.ZINDEX}):(t.constraints.push({view1:i,attr1:n===Orientation.VERTICAL?Attribute.HEIGHT:Attribute.WIDTH,relation:Relation.EQU,view2:r.stack.subViews[a],attr2:n===Orientation.VERTICAL?Attribute.HEIGHT:Attribute.WIDTH}),t.constraints.push({view1:i,attr1:n===Orientation.VERTICAL?Attribute.TOP:Attribute.LEFT,relation:Relation.EQU,view2:r.stack.subViews[a],attr2:n===Orientation.VERTICAL?Attribute.TOP:Attribute.LEFT}))}}function _getRange(t,e){if(e===!0&&(e=t.match(/\.\.\d+$/),e&&(t=t.substring(0,t.length-e[0].length),e=parseInt(e[0].substring(2)))),!e)return[t];var r,i=t.match(/\d+$/),n=[];if(i)for(t=t.substring(0,t.length-i[0].length),r=parseInt(i);e>=r;r++)n.push(t+r);else for(n.push(t),r=2;e>=r;r++)n.push(t+r);return n}function _processCascade(t,e,r){var i=r?r.view:null,n=[],a=[],s=void 0;i&&(e.push({view:i}),a.push(i));for(var o=0;or;r++)if(t[r]!==e[r])return!1;return!0}var _createClass=function(){function t(t,e){for(var r=0;rn;n++)a=t.charAt(n),"\n"===a?(e.seenCR||e.line++,e.column=1,e.seenCR=!1):"\r"===a||"\u2028"===a||"\u2029"===a?(e.line++,e.column=1,e.seenCR=!0):(e.column++,e.seenCR=!1)}return kt!==e&&(kt>e&&(kt=0,Rt={line:1,column:1,seenCR:!1}),r(Rt,kt,e),kt=e),Rt}function n(t){Ft>St||(St>Ft&&(Ft=St,Nt=[]),Nt.push(t))}function a(r,n,a){function s(t){var e=1;for(t.sort(function(t,e){return t.descriptione.description?1:0});e1?s.slice(0,-1).join(", ")+" or "+s[t.length-1]:s[0],n=e?'"'+r(e)+'"':"end of input","Expected "+i+" but "+n+" found."}var u=i(a),c=a1?arguments[1]:{},E={},T={visualFormatString:s},V=s,m=E,O=null,H=":",S={type:"literal",value:":",description:'":"'},x=function(t,e,r,i,n){return{orientation:t?t[0]:"horizontal",cascade:(e||[]).concat([r],[].concat.apply([],i),n||[])}},k="H",R={type:"literal",value:"H",description:'"H"'},F="V",N={type:"literal",value:"V",description:'"V"'},L=function(t){return"H"==t?"horizontal":"vertical"},q="|",Z={type:"literal",value:"|",description:'"|"'},D=function(){return{view:null}},z="[",G={type:"literal",value:"[",description:'"["'},X="]",P={type:"literal",value:"]",description:'"]"'},W=function(t,e){return _(t,e?{constraints:e}:{})},Q="-",U={type:"literal",value:"-",description:'"-"'},B=function(t){return t},$=function(){return[{relation:"equ",constant:"default",$parserOffset:r()}]},j="",Y=function(){return[{relation:"equ",constant:0,$parserOffset:r()}]},M=function(t){return[{relation:"equ",constant:t,$parserOffset:r()}]},J="(",K={type:"literal",value:"(",description:'"("'},tt=",",et={type:"literal",value:",",description:'","'},rt=")",it={type:"literal",value:")",description:'")"'},nt=function(t,e){return[t].concat(e.map(function(t){return t[1]}))},at="@",st={type:"literal",value:"@",description:'"@"'},ot=function(t,e,r){return _({relation:"equ"},t||{},e,r?r[1]:{})},ut="==",ct={type:"literal",value:"==",description:'"=="'},lt=function(){return{relation:"equ",$parserOffset:r()}},ht="<=",pt={type:"literal",value:"<=",description:'"<="'},ft=function(){return{relation:"leq",$parserOffset:r()}},dt=">=",vt={type:"literal",value:">=",description:'">="'},At=function(){return{relation:"geq",$parserOffset:r()}},gt=/^[0-9]/,bt={type:"class",value:"[0-9]",description:"[0-9]"},wt=function(t){return{priority:parseInt(t.join(""),10)}},yt=function(t){return{constant:t}},_t=/^[a-zA-Z_]/,Ct={type:"class",value:"[a-zA-Z_]",description:"[a-zA-Z_]"},It=/^[a-zA-Z0-9_]/,Et={type:"class",value:"[a-zA-Z0-9_]",description:"[a-zA-Z0-9_]"},Tt=function(t,e){return{view:t+e}},Vt=".",mt={type:"literal",value:".",description:'"."'},Ot=function(t,e){return parseFloat(t.concat(".").concat(e).join(""),10)},Ht=function(t){return parseInt(t.join(""),10)},St=0,xt=0,kt=0,Rt={line:1,column:1,seenCR:!1},Ft=0,Nt=[],Lt=0;if("startRule"in I){if(!(I.startRule in T))throw new Error("Can't start parsing from rule \""+I.startRule+'".');V=T[I.startRule]}if(C=V(),C!==E&&St===t.length)return C;throw C!==E&&Stn;n++)a=t.charAt(n),"\n"===a?(e.seenCR||e.line++,e.column=1,e.seenCR=!1):"\r"===a||"\u2028"===a||"\u2029"===a?(e.line++,e.column=1,e.seenCR=!0):(e.column++,e.seenCR=!1)}return Ke!==e&&(Ke>e&&(Ke=0,tr={line:1,column:1,seenCR:!1}),r(tr,Ke,e),Ke=e),tr}function n(t){er>Me||(Me>er&&(er=Me,rr=[]),rr.push(t))}function a(r,n,a){function s(t){var e=1;for(t.sort(function(t,e){return t.descriptione.description?1:0});e1?s.slice(0,-1).join(", ")+" or "+s[t.length-1]:s[0],n=e?'"'+r(e)+'"':"end of input","Expected "+i+" but "+n+" found."}var u=i(a),c=aMe?(s=t.charAt(Me),Me++):(s=L,0===ir&&n(st));s!==L;)a.push(s),t.length>Me?(s=t.charAt(Me),Me++):(s=L,0===ir&&n(st));a!==L?(r=[r,i,a],e=r):(Me=e,e=D)}else Me=e,e=D;else Me=e,e=D;return e}function c(){var e,r;return e=Me,124===t.charCodeAt(Me)?(r=ot,Me++):(r=L,0===ir&&n(ut)),r!==L&&(Je=e,r=ct()),e=r}function l(){var e,r,i,a,s,o,u;if(e=Me,91===t.charCodeAt(Me)?(r=lt,Me++):(r=L,0===ir&&n(ht)),r!==L)if(i=h(),i!==L){for(a=[],s=Me,44===t.charCodeAt(Me)?(o=pt,Me++):(o=L,0===ir&&n(ft)),o!==L?(u=h(),u!==L?(o=[o,u],s=o):(Me=s,s=D)):(Me=s,s=D);s!==L;)a.push(s),s=Me,44===t.charCodeAt(Me)?(o=pt,Me++):(o=L,0===ir&&n(ft)),o!==L?(u=h(),u!==L?(o=[o,u],s=o):(Me=s,s=D)):(Me=s,s=D);a!==L?(93===t.charCodeAt(Me)?(s=dt,Me++):(s=L,0===ir&&n(vt)),s!==L?(Je=e,r=At(i,a),e=r):(Me=e,e=D)):(Me=e,e=D)}else Me=e,e=D;else Me=e,e=D;return e}function h(){var t,e,r,i;return t=Me,e=H(),e!==L?(r=A(),r===L&&(r=z),r!==L?(i=p(),i===L&&(i=z),i!==L?(Je=t,e=gt(e,r,i),t=e):(Me=t,t=D)):(Me=t,t=D)):(Me=t,t=D),t}function p(){var e,r,i,a,s,o;if(e=Me,58===t.charCodeAt(Me)?(r=G,Me++):(r=L,0===ir&&n(X)),r!==L){if(i=[],a=Me,s=f(),s!==L?(o=l(),o!==L?(s=[s,o],a=s):(Me=a,a=D)):(Me=a,a=D),a!==L)for(;a!==L;)i.push(a),a=Me,s=f(),s!==L?(o=l(),o!==L?(s=[s,o],a=s):(Me=a,a=D)):(Me=a,a=D);else i=D;i!==L?(a=f(),a!==L?(Je=e,r=bt(i,a),e=r):(Me=e,e=D)):(Me=e,e=D)}else Me=e,e=D;return e}function f(){var e,r,i,a;return e=Me,t.substr(Me,2)===wt?(r=wt,Me+=2):(r=L,0===ir&&n(yt)),r!==L&&(Je=e,r=_t()),e=r,e===L&&(e=Me,45===t.charCodeAt(Me)?(r=Ct,Me++):(r=L,0===ir&&n(It)),r!==L?(i=d(),i!==L?(45===t.charCodeAt(Me)?(a=Ct,Me++):(a=L,0===ir&&n(It)),a!==L?(Je=e,r=Et(i),e=r):(Me=e,e=D)):(Me=e,e=D)):(Me=e,e=D),e===L&&(e=Me,45===t.charCodeAt(Me)?(r=Ct,Me++):(r=L,0===ir&&n(It)),r!==L&&(Je=e,r=Tt()),e=r,e===L&&(e=Me,126===t.charCodeAt(Me)?(r=Vt,Me++):(r=L,0===ir&&n(mt)),r!==L?(i=b(),i!==L?(126===t.charCodeAt(Me)?(a=Vt,Me++):(a=L,0===ir&&n(mt)),a!==L?(Je=e,r=Et(i),e=r):(Me=e,e=D)):(Me=e,e=D)):(Me=e,e=D),e===L&&(e=Me,126===t.charCodeAt(Me)?(r=Vt,Me++):(r=L,0===ir&&n(mt)),r!==L&&(Je=e,r=Ot()),e=r,e===L&&(e=Me,r=Ht,r!==L&&(Je=e,r=St()),e=r))))),e}function d(){var t;return t=v(),t===L&&(t=A()),t}function v(){var t,e;return t=Me,e=E(),e!==L&&(Je=t,e=xt(e)),t=e,t===L&&(t=Me,e=k(),e!==L&&(Je=t,e=kt(e)),t=e),t}function A(){var e,r,i,a,s,o,u;if(e=Me,40===t.charCodeAt(Me)?(r=Rt,Me++):(r=L,0===ir&&n(Ft)),r!==L)if(i=g(),i!==L){for(a=[],s=Me,44===t.charCodeAt(Me)?(o=pt,Me++):(o=L,0===ir&&n(ft)),o!==L?(u=g(),u!==L?(o=[o,u],s=o):(Me=s,s=D)):(Me=s,s=D);s!==L;)a.push(s),s=Me,44===t.charCodeAt(Me)?(o=pt,Me++):(o=L,0===ir&&n(ft)),o!==L?(u=g(),u!==L?(o=[o,u],s=o):(Me=s,s=D)):(Me=s,s=D);a!==L?(41===t.charCodeAt(Me)?(s=Nt,Me++):(s=L,0===ir&&n(Lt)),s!==L?(Je=e,r=qt(i,a),e=r):(Me=e,e=D)):(Me=e,e=D)}else Me=e,e=D;else Me=e,e=D;return e}function g(){var e,r,i,a,s,o;return e=Me,r=y(),r===L&&(r=z),r!==L?(i=_(),i!==L?(a=Me,64===t.charCodeAt(Me)?(s=Zt,Me++):(s=L,0===ir&&n(Dt)),s!==L?(o=C(),o!==L?(s=[s,o],a=s):(Me=a,a=D)):(Me=a,a=D),a===L&&(a=z),a!==L?(Je=e,r=zt(r,i,a),e=r):(Me=e,e=D)):(Me=e,e=D)):(Me=e,e=D),e}function b(){var e,r,i,a,s,o,u;if(e=Me,40===t.charCodeAt(Me)?(r=Rt,Me++):(r=L,0===ir&&n(Ft)),r!==L)if(i=w(),i!==L){for(a=[],s=Me,44===t.charCodeAt(Me)?(o=pt,Me++):(o=L,0===ir&&n(ft)),o!==L?(u=w(),u!==L?(o=[o,u],s=o):(Me=s,s=D)):(Me=s,s=D);s!==L;)a.push(s),s=Me,44===t.charCodeAt(Me)?(o=pt,Me++):(o=L,0===ir&&n(ft)),o!==L?(u=w(),u!==L?(o=[o,u],s=o):(Me=s,s=D)):(Me=s,s=D);a!==L?(41===t.charCodeAt(Me)?(s=Nt,Me++):(s=L,0===ir&&n(Lt)),s!==L?(Je=e,r=qt(i,a),e=r):(Me=e,e=D)):(Me=e,e=D)}else Me=e,e=D;else Me=e,e=D;return e}function w(){var e,r,i,a,s,o;return e=Me,r=y(),r===L&&(r=z),r!==L?(i=_(),i!==L?(a=Me,64===t.charCodeAt(Me)?(s=Zt,Me++):(s=L,0===ir&&n(Dt)),s!==L?(o=C(),o!==L?(s=[s,o],a=s):(Me=a,a=D)):(Me=a,a=D),a===L&&(a=z),a!==L?(Je=e,r=Gt(r,i,a),e=r):(Me=e,e=D)):(Me=e,e=D)):(Me=e,e=D),e}function y(){var e,r;return e=Me,t.substr(Me,2)===Xt?(r=Xt,Me+=2):(r=L,0===ir&&n(Pt)),r!==L&&(Je=e,r=Wt()),e=r,e===L&&(e=Me,t.substr(Me,2)===Qt?(r=Qt,Me+=2):(r=L,0===ir&&n(Ut)),r!==L&&(Je=e,r=Bt()),e=r,e===L&&(e=Me,t.substr(Me,2)===$t?(r=$t,Me+=2):(r=L,0===ir&&n(jt)),r!==L&&(Je=e,r=Yt()),e=r)),e}function _(){var t;return t=E(),t===L&&(t=I(),t===L&&(t=T())),t}function C(){var e,r,i;if(e=Me,r=[],Mt.test(t.charAt(Me))?(i=t.charAt(Me),Me++):(i=L,0===ir&&n(Jt)),i!==L)for(;i!==L;)r.push(i),Mt.test(t.charAt(Me))?(i=t.charAt(Me),Me++):(i=L,0===ir&&n(Jt));else r=D;return r!==L&&(Je=e,r=Kt(r)),e=r}function I(){var t,e;return t=Me,e=k(),e!==L&&(Je=t,e=te(e)),t=e}function E(){var e,r,i;return e=Me,r=k(),r!==L?(37===t.charCodeAt(Me)?(i=ee,Me++):(i=L,0===ir&&n(re)),i!==L?(Je=e,r=ie(r),e=r):(Me=e,e=D)):(Me=e,e=D),e}function T(){var t,e,r,i,n;return t=Me,e=S(),e!==L?(r=V(),r===L&&(r=z),r!==L?(i=m(),i===L&&(i=z),i!==L?(n=O(),n===L&&(n=z),n!==L?(Je=t,e=ne(e,r,i,n),t=e):(Me=t,t=D)):(Me=t,t=D)):(Me=t,t=D)):(Me=t,t=D),t}function V(){var e,r;return e=Me,t.substr(Me,5)===ae?(r=ae,Me+=5):(r=L,0===ir&&n(se)),r!==L&&(Je=e,r=oe()),e=r,e===L&&(e=Me,t.substr(Me,6)===ue?(r=ue,Me+=6):(r=L,0===ir&&n(ce)),r!==L&&(Je=e,r=le()),e=r,e===L&&(e=Me,t.substr(Me,4)===he?(r=he,Me+=4):(r=L,0===ir&&n(pe)),r!==L&&(Je=e,r=fe()),e=r,e===L&&(e=Me,t.substr(Me,7)===de?(r=de,Me+=7):(r=L,0===ir&&n(ve)),r!==L&&(Je=e,r=Ae()),e=r,e===L&&(e=Me,t.substr(Me,6)===ge?(r=ge,Me+=6):(r=L,0===ir&&n(be)),r!==L&&(Je=e,r=we()),e=r,e===L&&(e=Me,t.substr(Me,7)===ye?(r=ye,Me+=7):(r=L,0===ir&&n(_e)),r!==L&&(Je=e,r=Ce()),e=r,e===L&&(e=Me,t.substr(Me,8)===Ie?(r=Ie,Me+=8):(r=L,0===ir&&n(Ee)),r!==L&&(Je=e,r=Te()),e=r,e===L&&(e=Me,t.substr(Me,8)===Ve?(r=Ve,Me+=8):(r=L,0===ir&&n(me)),r!==L&&(Je=e,r=Oe()),e=r))))))),e}function m(){var e,r,i;return e=Me,47===t.charCodeAt(Me)?(r=He,Me++):(r=L,0===ir&&n(Se)),r!==L?(i=k(),i!==L?(Je=e,r=xe(i),e=r):(Me=e,e=D)):(Me=e,e=D),e===L&&(e=Me,42===t.charCodeAt(Me)?(r=ke,Me++):(r=L,0===ir&&n(Re)),r!==L?(i=k(),i!==L?(Je=e,r=Fe(i),e=r):(Me=e,e=D)):(Me=e,e=D)),e}function O(){var e,r,i;return e=Me,45===t.charCodeAt(Me)?(r=Ct,Me++):(r=L,0===ir&&n(It)),r!==L?(i=k(),i!==L?(Je=e,r=Ne(i),e=r):(Me=e,e=D)):(Me=e,e=D),e===L&&(e=Me,43===t.charCodeAt(Me)?(r=Le,Me++):(r=L,0===ir&&n(qe)),r!==L?(i=k(),i!==L?(Je=e,r=Fe(i),e=r):(Me=e,e=D)):(Me=e,e=D)),e}function H(){var e,r,i,a,s;if(e=Me,r=Me,i=[],Ze.test(t.charAt(Me))?(a=t.charAt(Me),Me++):(a=L,0===ir&&n(De)),a!==L)for(;a!==L;)i.push(a),Ze.test(t.charAt(Me))?(a=t.charAt(Me),Me++):(a=L,0===ir&&n(De));else i=D;if(i!==L&&(i=t.substring(r,Me)),r=i,r!==L){for(i=Me,a=[],ze.test(t.charAt(Me))?(s=t.charAt(Me),Me++):(s=L,0===ir&&n(Ge));s!==L;)a.push(s),ze.test(t.charAt(Me))?(s=t.charAt(Me),Me++):(s=L,0===ir&&n(Ge));a!==L&&(a=t.substring(i,Me)),i=a,i!==L?(a=x(),a!==L?(Je=e,r=Xe(r,i,a),e=r):(Me=e,e=D)):(Me=e,e=D)}else Me=e,e=D;if(e===L){if(e=Me,r=Me,i=[],Ze.test(t.charAt(Me))?(a=t.charAt(Me),Me++):(a=L,0===ir&&n(De)),a!==L)for(;a!==L;)i.push(a),Ze.test(t.charAt(Me))?(a=t.charAt(Me),Me++):(a=L,0===ir&&n(De));else i=D;if(i!==L&&(i=t.substring(r,Me)),r=i,r!==L){for(i=Me,a=[],ze.test(t.charAt(Me))?(s=t.charAt(Me),Me++):(s=L,0===ir&&n(Ge));s!==L;)a.push(s),ze.test(t.charAt(Me))?(s=t.charAt(Me),Me++):(s=L,0===ir&&n(Ge));a!==L&&(a=t.substring(i,Me)),i=a,i!==L?(Je=e,r=Pe(r,i),e=r):(Me=e,e=D)}else Me=e,e=D}return e}function S(){var e,r,i,a,s;if(e=Me,r=Me,i=[],Ze.test(t.charAt(Me))?(a=t.charAt(Me),Me++):(a=L,0===ir&&n(De)),a!==L)for(;a!==L;)i.push(a),Ze.test(t.charAt(Me))?(a=t.charAt(Me),Me++):(a=L,0===ir&&n(De));else i=D;if(i!==L&&(i=t.substring(r,Me)),r=i,r!==L){for(i=Me,a=[],ze.test(t.charAt(Me))?(s=t.charAt(Me),Me++):(s=L,0===ir&&n(Ge));s!==L;)a.push(s),ze.test(t.charAt(Me))?(s=t.charAt(Me),Me++):(s=L,0===ir&&n(Ge));a!==L&&(a=t.substring(i,Me)),i=a,i!==L?(Je=e,r=Pe(r,i),e=r):(Me=e,e=D)}else Me=e,e=D;return e}function x(){var e,r,i,a;if(e=Me,t.substr(Me,2)===We?(r=We,Me+=2):(r=L,0===ir&&n(Qe)),r!==L){if(i=[],Mt.test(t.charAt(Me))?(a=t.charAt(Me),Me++):(a=L,0===ir&&n(Jt)),a!==L)for(;a!==L;)i.push(a),Mt.test(t.charAt(Me))?(a=t.charAt(Me),Me++):(a=L,0===ir&&n(Jt));else i=D;i!==L?(Je=e,r=Ue(i),e=r):(Me=e,e=D)}else Me=e,e=D;return e}function k(){var e,r,i,a,s;if(e=Me,r=[],Mt.test(t.charAt(Me))?(i=t.charAt(Me),Me++):(i=L,0===ir&&n(Jt)),i!==L)for(;i!==L;)r.push(i),Mt.test(t.charAt(Me))?(i=t.charAt(Me),Me++):(i=L,0===ir&&n(Jt));else r=D;if(r!==L)if(46===t.charCodeAt(Me)?(i=Be,Me++):(i=L,0===ir&&n($e)),i!==L){if(a=[],Mt.test(t.charAt(Me))?(s=t.charAt(Me),Me++):(s=L,0===ir&&n(Jt)),s!==L)for(;s!==L;)a.push(s),Mt.test(t.charAt(Me))?(s=t.charAt(Me),Me++):(s=L,0===ir&&n(Jt));else a=D;a!==L?(Je=e,r=je(r,a),e=r):(Me=e,e=D)}else Me=e,e=D;else Me=e,e=D;if(e===L){if(e=Me,r=[],Mt.test(t.charAt(Me))?(i=t.charAt(Me),Me++):(i=L,0===ir&&n(Jt)),i!==L)for(;i!==L;)r.push(i),Mt.test(t.charAt(Me))?(i=t.charAt(Me),Me++):(i=L,0===ir&&n(Jt));else r=D;r!==L&&(Je=e,r=Ye(r)),e=r}return e}function R(t){for(var e=1;e1?arguments[1]:{},L={},q={visualFormatString:s},Z=s,D=L,z=null,G=":",X={type:"literal",value:":",description:'":"'},P=function(t,e,r,i,n,a){return{orientation:t?t[0]:"horizontal",cascade:(e||[]).concat(r,[].concat.apply([],i),n||[])}},W="HV",Q={type:"literal",value:"HV",description:'"HV"'},U=function(){return"horzvert"},B="H",$={type:"literal",value:"H",description:'"H"'},j=function(){return"horizontal"},Y="V",M={type:"literal",value:"V",description:'"V"'},J=function(){return"vertical"},K="Z",tt={type:"literal",value:"Z",description:'"Z"'},et=function(){return"zIndex"},rt=" ",it={type:"literal",value:" ",description:'" "'},nt="//",at={type:"literal",value:"//",description:'"//"'},st={type:"any",description:"any character"},ot="|",ut={type:"literal",value:"|",description:'"|"'},ct=function(){return{view:null}},lt="[",ht={type:"literal",value:"[",description:'"["'},pt=",",ft={type:"literal",value:",",description:'","'},dt="]",vt={type:"literal",value:"]",description:'"]"'},At=function(t,e){return e.length?[t].concat([].concat.apply([],e)):t},gt=function(t,e,r){return R(R(t,e?{constraints:e}:{}),r?{cascade:r}:{})},bt=function(t,e){return[].concat([].concat.apply([],t),[e])},wt="->",yt={type:"literal",value:"->",description:'"->"'},_t=function(){return[{relation:"none"}]},Ct="-",It={type:"literal",value:"-",description:'"-"'},Et=function(t){return t},Tt=function(){return[{relation:"equ",constant:"default"}]},Vt="~",mt={type:"literal",value:"~",description:'"~"'},Ot=function(){return[{relation:"equ",equalSpacing:!0}]},Ht="",St=function(){return[{relation:"equ",constant:0}]},xt=function(t){return[{relation:"equ",multiplier:t.multiplier}]},kt=function(t){return[{relation:"equ",constant:t}]},Rt="(",Ft={type:"literal",value:"(",description:'"("'},Nt=")",Lt={type:"literal",value:")",description:'")"'},qt=function(t,e){return[t].concat(e.map(function(t){return t[1]}))},Zt="@",Dt={type:"literal",value:"@",description:'"@"'},zt=function(t,e,r){return R({relation:"equ"},t||{},e,r?r[1]:{})},Gt=function(t,e,r){return R({relation:"equ",equalSpacing:!0},t||{},e,r?r[1]:{})},Xt="==",Pt={type:"literal",value:"==",description:'"=="'},Wt=function(){return{relation:"equ"}},Qt="<=",Ut={type:"literal",value:"<=",description:'"<="'},Bt=function(){return{relation:"leq"}},$t=">=",jt={type:"literal",value:">=",description:'">="'},Yt=function(){return{relation:"geq"}},Mt=/^[0-9]/,Jt={type:"class",value:"[0-9]",description:"[0-9]"},Kt=function(t){return{priority:parseInt(t.join(""),10)}},te=function(t){return{constant:t}},ee="%",re={type:"literal",value:"%",description:'"%"'},ie=function(t){return{view:null,multiplier:t/100}},ne=function(t,e,r,i){return{view:t.view,attribute:e?e:void 0,multiplier:r?r:1,constant:i?i:void 0}},ae=".left",se={type:"literal",value:".left",description:'".left"' -},oe=function(){return"left"},ue=".right",ce={type:"literal",value:".right",description:'".right"'},le=function(){return"right"},he=".top",pe={type:"literal",value:".top",description:'".top"'},fe=function(){return"top"},de=".bottom",ve={type:"literal",value:".bottom",description:'".bottom"'},Ae=function(){return"bottom"},ge=".width",be={type:"literal",value:".width",description:'".width"'},we=function(){return"width"},ye=".height",_e={type:"literal",value:".height",description:'".height"'},Ce=function(){return"height"},Ie=".centerX",Ee={type:"literal",value:".centerX",description:'".centerX"'},Te=function(){return"centerX"},Ve=".centerY",me={type:"literal",value:".centerY",description:'".centerY"'},Oe=function(){return"centerY"},He="/",Se={type:"literal",value:"/",description:'"/"'},xe=function(t){return 1/t},ke="*",Re={type:"literal",value:"*",description:'"*"'},Fe=function(t){return t},Ne=function(t){return-t},Le="+",qe={type:"literal",value:"+",description:'"+"'},Ze=/^[a-zA-Z_]/,De={type:"class",value:"[a-zA-Z_]",description:"[a-zA-Z_]"},ze=/^[a-zA-Z0-9_]/,Ge={type:"class",value:"[a-zA-Z0-9_]",description:"[a-zA-Z0-9_]"},Xe=function(t,e,i){return{view:t+e,range:i,$parserOffset:r()}},Pe=function(t,e){return{view:t+e,$parserOffset:r()}},We="..",Qe={type:"literal",value:"..",description:'".."'},Ue=function(t){return parseInt(t)},Be=".",$e={type:"literal",value:".",description:'"."'},je=function(t,e){return parseFloat(t.concat(".").concat(e).join(""),10)},Ye=function(t){return parseInt(t.join(""),10)},Me=0,Je=0,Ke=0,tr={line:1,column:1,seenCR:!1},er=0,rr=[],ir=0;if("startRule"in N){if(!(N.startRule in q))throw new Error("Can't start parsing from rule \""+N.startRule+'".');Z=q[N.startRule]}if(F=Z(),F!==L&&Me===t.length)return F;throw F!==L&&Meh;h++){var p=metaInfoCategories[l],f=(0===h?"":i)+p;if(0===c.indexOf("//"+f+" "))for(var d=c.substring(3+f.length).split(" "),v=0;v1?A[1]:""}else 0===c.indexOf("//"+f+":")&&(a[p]=c.substring(3+f.length))}if(a.viewport){var w=a.viewport,y=w["aspect-ratio"];y&&(y=y.split("/"),w["aspect-ratio"]=parseInt(y[0])/parseInt(y[1])),void 0!==w.height&&(w.height="intrinsic"===w.height?!0:parseInt(w.height)),void 0!==w.width&&(w.width="intrinsic"===w.width?!0:parseInt(w.width)),void 0!==w["max-height"]&&(w["max-height"]=parseInt(w["max-height"])),void 0!==w["max-width"]&&(w["max-width"]=parseInt(w["max-width"])),void 0!==w["min-height"]&&(w["min-height"]=parseInt(w["min-height"])),void 0!==w["min-width"]&&(w["min-width"]=parseInt(w["min-width"]))}if(a.widths)for(n in a.widths){var _="intrinsic"===a.widths[n]?!0:parseInt(a.widths[n]);a.widths[n]=_,(void 0===_||isNaN(_))&&delete a.widths[n]}if(a.heights)for(n in a.heights){var C="intrinsic"===a.heights[n]?!0:parseInt(a.heights[n]);a.heights[n]=C,(void 0===C||isNaN(C))&&delete a.heights[n]}if(a.spacing){var I=JSON.parse(a.spacing);if(a.spacing=I,Array.isArray(I)){for(var E=0,T=I.length;T>E;E++)if(isNaN(I[E])){delete a.spacing;break}}else(void 0===I||isNaN(I))&&delete a.spacing}return a}}]),t}(),SubView=function(){function t(e){_classCallCheck(this,t),this._name=e.name,this._type=e.type,this._solver=e.solver,this._attr={},e.name||(this._attr[Attribute.LEFT]=new c.Variable,this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.LEFT],c.Strength.required)),this._attr[Attribute.TOP]=new c.Variable,this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.TOP],c.Strength.required)),this._attr[Attribute.ZINDEX]=new c.Variable,this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.ZINDEX],c.Strength.required)))}return _createClass(t,[{key:"toJSON",value:function(){return{name:this.name,left:this.left,top:this.top,width:this.width,height:this.height}}},{key:"toString",value:function(){JSON.stringify(this.toJSON(),void 0,2)}},{key:"getValue",value:function(t){return this._attr[t]?this._attr[t].value():void 0}},{key:"_getAttr",value:function(t){if(this._attr[t])return this._attr[t];switch(this._attr[t]=new c.Variable,t){case Attribute.RIGHT:this._getAttr(Attribute.LEFT),this._getAttr(Attribute.WIDTH),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.LEFT],this._attr[Attribute.WIDTH])));break;case Attribute.BOTTOM:this._getAttr(Attribute.TOP),this._getAttr(Attribute.HEIGHT),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.TOP],this._attr[Attribute.HEIGHT])));break;case Attribute.CENTERX:this._getAttr(Attribute.LEFT),this._getAttr(Attribute.WIDTH),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.LEFT],c.divide(this._attr[Attribute.WIDTH],2))));break;case Attribute.CENTERY:this._getAttr(Attribute.TOP),this._getAttr(Attribute.HEIGHT),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.TOP],c.divide(this._attr[Attribute.HEIGHT],2))))}return this._attr[t]}},{key:"_getAttrValue",value:function(t){return this._getAttr(t).value}},{key:"name",get:function(){return this._name}},{key:"left",get:function(){return this._getAttrValue(Attribute.LEFT)}},{key:"right",get:function(){return this._getAttrValue(Attribute.RIGHT)}},{key:"width",get:function(){return this._getAttrValue(Attribute.WIDTH)}},{key:"height",get:function(){return this._getAttrValue(Attribute.HEIGHT)}},{key:"intrinsicWidth",get:function(){return this._intrinsicWidth},set:function(t){if(void 0!==t&&t!==this._intrinsicWidth){var e=this._getAttr(Attribute.WIDTH);void 0===this._intrinsicWidth&&this._solver.addEditVar(e,new c.Strength("required",this._name?998:999,1e3,1e3)),this._intrinsicWidth=t,this._solver.suggestValue(e,t),this._solver.resolve()}}},{key:"intrinsicHeight",get:function(){return this._intrinsicHeight},set:function(t){if(void 0!==t&&t!==this._intrinsicHeight){var e=this._getAttr(Attribute.HEIGHT);void 0===this._intrinsicHeight&&this._solver.addEditVar(e,new c.Strength("required",this._name?998:999,1e3,1e3)),this._intrinsicHeight=t,this._solver.suggestValue(e,t),this._solver.resolve()}}},{key:"top",get:function(){return this._getAttrValue(Attribute.TOP)}},{key:"bottom",get:function(){return this._getAttrValue(Attribute.BOTTOM)}},{key:"centerX",get:function(){return this._getAttrValue(Attribute.CENTERX)}},{key:"centerY",get:function(){return this._getAttrValue(Attribute.CENTERY)}},{key:"zIndex",get:function(){return this._getAttrValue(Attribute.ZINDEX)}},{key:"type",get:function(){return this._type}}]),t}(),defaultPriorityStrength=new c.Strength("defaultPriority",0,1e3,1e3),View=function(){function t(e){_classCallCheck(this,t),this._solver=new c.SimplexSolver,this._subViews={},this._parentSubView=new SubView({solver:this._solver}),this.setSpacing(e&&void 0!==e.spacing?e.spacing:8),e&&((void 0!==e.width||void 0!==e.height)&&this.setSize(e.width,e.height),e.constraints&&this.addConstraints(e.constraints))}return _createClass(t,[{key:"setSize",value:function(t,e){return this._parentSubView.intrinsicWidth=t,this._parentSubView.intrinsicHeight=e,this}},{key:"setSpacing",value:function(t){switch(Array.isArray(t)?t.length:-1){case-1:t=[t,t,t,t,t,t,1];break;case 1:t=[t[0],t[0],t[0],t[0],t[0],t[0],1];break;case 2:t=[t[1],t[0],t[1],t[0],t[0],t[1],1];break;case 3:t=[t[1],t[0],t[1],t[0],t[0],t[1],t[2]];break;case 6:t=[t[0],t[1],t[2],t[3],t[4],t[5],1];break;case 7:break;default:throw"Invalid spacing syntax"}if(!_compareSpacing(this._spacing,t)&&(this._spacing=t,this._spacingVars)){for(var e=0;e1&&t.constraints.push({view1:"_~"+t.lineIndex+":1~",attr1:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,relation:t.relation.relation||Relation.EQU,view2:r,attr2:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,priority:t.relation.priority}),t.equalSpacerIndex++,t.relation.view||t.relation.multiplier&&1!==t.relation.multiplier?(t.constraints.push({view1:r,attr1:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,relation:t.relation.relation||Relation.EQU,view2:t.relation.view,attr2:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,priority:t.relation.priority,multiplier:t.relation.multiplier}),t.relation.multiplier=void 0):t.relation.constant&&(t.constraints.push({view1:r,attr1:t.horizontal?Attribute.WIDTH:Attribute.HEIGHT,relation:Relation.EQU,view2:null,attr2:Attribute.CONST,priority:t.relation.priority,constant:t.relation.constant}),t.relation.constant=void 0);for(var i=0;i=n;n*=2)if(r.orientations&n&&r.stack.orientation!==n&&!(r.stack.processedOrientations&n)){r.stack.processedOrientations=r.stack.processedOrientations|n,i=i||{name:e,type:"stack"};for(var a=0,s=r.stack.subViews.length;s>a;a++)n===Orientation.ZINDEX?t.constraints.push({view1:i,attr1:Attribute.ZINDEX,relation:Relation.EQU,view2:r.stack.subViews[a],attr2:Attribute.ZINDEX}):(t.constraints.push({view1:i,attr1:n===Orientation.VERTICAL?Attribute.HEIGHT:Attribute.WIDTH,relation:Relation.EQU,view2:r.stack.subViews[a],attr2:n===Orientation.VERTICAL?Attribute.HEIGHT:Attribute.WIDTH}),t.constraints.push({view1:i,attr1:n===Orientation.VERTICAL?Attribute.TOP:Attribute.LEFT,relation:Relation.EQU,view2:r.stack.subViews[a],attr2:n===Orientation.VERTICAL?Attribute.TOP:Attribute.LEFT}))}}function _getRange(t,e){if(e===!0&&(e=t.match(/\.\.\d+$/),e&&(t=t.substring(0,t.length-e[0].length),e=parseInt(e[0].substring(2)))),!e)return[t];var r,i=t.match(/\d+$/),n=[];if(i)for(t=t.substring(0,t.length-i[0].length),r=parseInt(i);e>=r;r++)n.push(t+r);else for(n.push(t),r=2;e>=r;r++)n.push(t+r);return n}function _processCascade(t,e,r){var i=r?r.view:null,n=[],a=[],s=void 0;i&&(e.push({view:i}),a.push(i));for(var o=0;or;r++)if(t[r]!==e[r])return!1;return!0}var _createClass=function(){function t(t,e){for(var r=0;rn;n++)a=t.charAt(n),"\n"===a?(e.seenCR||e.line++,e.column=1,e.seenCR=!1):"\r"===a||"\u2028"===a||"\u2029"===a?(e.line++,e.column=1,e.seenCR=!0):(e.column++,e.seenCR=!1)}return kt!==e&&(kt>e&&(kt=0,Rt={line:1,column:1,seenCR:!1}),r(Rt,kt,e),kt=e),Rt}function n(t){Ft>St||(St>Ft&&(Ft=St,Nt=[]),Nt.push(t))}function a(r,n,a){function s(t){var e=1;for(t.sort(function(t,e){return t.descriptione.description?1:0});e1?s.slice(0,-1).join(", ")+" or "+s[t.length-1]:s[0],n=e?'"'+r(e)+'"':"end of input","Expected "+i+" but "+n+" found."}var u=i(a),c=a1?arguments[1]:{},E={},T={visualFormatString:s},V=s,m=E,O=null,H=":",S={type:"literal",value:":",description:'":"'},x=function(t,e,r,i,n){return{orientation:t?t[0]:"horizontal",cascade:(e||[]).concat([r],[].concat.apply([],i),n||[])}},k="H",R={type:"literal",value:"H",description:'"H"'},F="V",N={type:"literal",value:"V",description:'"V"'},L=function(t){return"H"==t?"horizontal":"vertical"},q="|",Z={type:"literal",value:"|",description:'"|"'},D=function(){return{view:null}},z="[",G={type:"literal",value:"[",description:'"["'},X="]",P={type:"literal",value:"]",description:'"]"'},W=function(t,e){return _(t,e?{constraints:e}:{})},Q="-",U={type:"literal",value:"-",description:'"-"'},B=function(t){return t},$=function(){return[{relation:"equ",constant:"default",$parserOffset:r()}]},j="",Y=function(){return[{relation:"equ",constant:0,$parserOffset:r()}]},M=function(t){return[{relation:"equ",constant:t,$parserOffset:r()}]},J="(",K={type:"literal",value:"(",description:'"("'},tt=",",et={type:"literal",value:",",description:'","'},rt=")",it={type:"literal",value:")",description:'")"'},nt=function(t,e){return[t].concat(e.map(function(t){return t[1]}))},at="@",st={type:"literal",value:"@",description:'"@"'},ot=function(t,e,r){return _({relation:"equ"},t||{},e,r?r[1]:{})},ut="==",ct={type:"literal",value:"==",description:'"=="'},lt=function(){return{relation:"equ",$parserOffset:r()}},ht="<=",pt={type:"literal",value:"<=",description:'"<="'},ft=function(){return{relation:"leq",$parserOffset:r()}},dt=">=",vt={type:"literal",value:">=",description:'">="'},At=function(){return{relation:"geq",$parserOffset:r()}},gt=/^[0-9]/,bt={type:"class",value:"[0-9]",description:"[0-9]"},wt=function(t){return{priority:parseInt(t.join(""),10)}},yt=function(t){return{constant:t}},_t=/^[a-zA-Z_]/,Ct={type:"class",value:"[a-zA-Z_]",description:"[a-zA-Z_]"},It=/^[a-zA-Z0-9_]/,Et={type:"class",value:"[a-zA-Z0-9_]",description:"[a-zA-Z0-9_]"},Tt=function(t,e){return{view:t+e}},Vt=".",mt={type:"literal",value:".",description:'"."'},Ot=function(t,e){return parseFloat(t.concat(".").concat(e).join(""),10)},Ht=function(t){return parseInt(t.join(""),10)},St=0,xt=0,kt=0,Rt={line:1,column:1,seenCR:!1},Ft=0,Nt=[],Lt=0;if("startRule"in I){if(!(I.startRule in T))throw new Error("Can't start parsing from rule \""+I.startRule+'".');V=T[I.startRule]}if(C=V(),C!==E&&St===t.length)return C;throw C!==E&&Stn;n++)a=t.charAt(n),"\n"===a?(e.seenCR||e.line++,e.column=1,e.seenCR=!1):"\r"===a||"\u2028"===a||"\u2029"===a?(e.line++,e.column=1,e.seenCR=!0):(e.column++,e.seenCR=!1)}return lr!==e&&(lr>e&&(lr=0,hr={line:1,column:1,seenCR:!1}),r(hr,lr,e),lr=e),hr}function n(t){pr>ur||(ur>pr&&(pr=ur,fr=[]),fr.push(t))}function a(r,n,a){function s(t){var e=1;for(t.sort(function(t,e){return t.descriptione.description?1:0});e1?s.slice(0,-1).join(", ")+" or "+s[t.length-1]:s[0],n=e?'"'+r(e)+'"':"end of input","Expected "+i+" but "+n+" found."}var u=i(a),c=aur?(s=t.charAt(ur),ur++):(s=L,0===dr&&n(st));s!==L;)a.push(s),t.length>ur?(s=t.charAt(ur),ur++):(s=L,0===dr&&n(st));a!==L?(r=[r,i,a],e=r):(ur=e,e=D)}else ur=e,e=D;else ur=e,e=D;return e}function c(){var e,r;return e=ur,124===t.charCodeAt(ur)?(r=ot,ur++):(r=L,0===dr&&n(ut)),r!==L&&(cr=e,r=ct()),e=r}function l(){var e,r,i,a,s,o,u;if(e=ur,91===t.charCodeAt(ur)?(r=lt,ur++):(r=L,0===dr&&n(ht)),r!==L)if(i=h(),i!==L){for(a=[],s=ur,44===t.charCodeAt(ur)?(o=pt,ur++):(o=L,0===dr&&n(ft)),o!==L?(u=h(),u!==L?(o=[o,u],s=o):(ur=s,s=D)):(ur=s,s=D);s!==L;)a.push(s),s=ur,44===t.charCodeAt(ur)?(o=pt,ur++):(o=L,0===dr&&n(ft)),o!==L?(u=h(),u!==L?(o=[o,u],s=o):(ur=s,s=D)):(ur=s,s=D);a!==L?(93===t.charCodeAt(ur)?(s=dt,ur++):(s=L,0===dr&&n(vt)),s!==L?(cr=e,r=At(i,a),e=r):(ur=e,e=D)):(ur=e,e=D)}else ur=e,e=D;else ur=e,e=D;return e}function h(){var t,e,r,i;return t=ur,e=H(),e!==L?(r=A(),r===L&&(r=z),r!==L?(i=p(),i===L&&(i=z),i!==L?(cr=t,e=gt(e,r,i),t=e):(ur=t,t=D)):(ur=t,t=D)):(ur=t,t=D),t}function p(){var e,r,i,a,s,o;if(e=ur,58===t.charCodeAt(ur)?(r=G,ur++):(r=L,0===dr&&n(X)),r!==L){if(i=[],a=ur,s=f(),s!==L?(o=l(),o!==L?(s=[s,o],a=s):(ur=a,a=D)):(ur=a,a=D),a!==L)for(;a!==L;)i.push(a),a=ur,s=f(),s!==L?(o=l(),o!==L?(s=[s,o],a=s):(ur=a,a=D)):(ur=a,a=D);else i=D;i!==L?(a=f(),a!==L?(cr=e,r=bt(i,a),e=r):(ur=e,e=D)):(ur=e,e=D)}else ur=e,e=D;return e}function f(){var e,r,i,a;return e=ur,t.substr(ur,2)===wt?(r=wt,ur+=2):(r=L,0===dr&&n(yt)),r!==L&&(cr=e,r=_t()),e=r,e===L&&(e=ur,45===t.charCodeAt(ur)?(r=Ct,ur++):(r=L,0===dr&&n(It)),r!==L?(i=d(),i!==L?(45===t.charCodeAt(ur)?(a=Ct,ur++):(a=L,0===dr&&n(It)),a!==L?(cr=e,r=Et(i),e=r):(ur=e,e=D)):(ur=e,e=D)):(ur=e,e=D),e===L&&(e=ur,45===t.charCodeAt(ur)?(r=Ct,ur++):(r=L,0===dr&&n(It)),r!==L&&(cr=e,r=Tt()),e=r,e===L&&(e=ur,126===t.charCodeAt(ur)?(r=Vt,ur++):(r=L,0===dr&&n(mt)),r!==L?(i=b(),i!==L?(126===t.charCodeAt(ur)?(a=Vt,ur++):(a=L,0===dr&&n(mt)),a!==L?(cr=e,r=Et(i),e=r):(ur=e,e=D)):(ur=e,e=D)):(ur=e,e=D),e===L&&(e=ur,126===t.charCodeAt(ur)?(r=Vt,ur++):(r=L,0===dr&&n(mt)),r!==L&&(cr=e,r=Ot()),e=r,e===L&&(e=ur,r=Ht,r!==L&&(cr=e,r=St()),e=r))))),e}function d(){var t;return t=v(),t===L&&(t=A()),t}function v(){var t,e;return t=ur,e=E(),e!==L&&(cr=t,e=xt(e)),t=e,t===L&&(t=ur,e=k(),e!==L&&(cr=t,e=kt(e)),t=e),t}function A(){var e,r,i,a,s,o,u;if(e=ur,40===t.charCodeAt(ur)?(r=Rt,ur++):(r=L,0===dr&&n(Ft)),r!==L)if(i=g(),i!==L){for(a=[],s=ur,44===t.charCodeAt(ur)?(o=pt,ur++):(o=L,0===dr&&n(ft)),o!==L?(u=g(),u!==L?(o=[o,u],s=o):(ur=s,s=D)):(ur=s,s=D);s!==L;)a.push(s),s=ur,44===t.charCodeAt(ur)?(o=pt,ur++):(o=L,0===dr&&n(ft)),o!==L?(u=g(),u!==L?(o=[o,u],s=o):(ur=s,s=D)):(ur=s,s=D);a!==L?(41===t.charCodeAt(ur)?(s=Nt,ur++):(s=L,0===dr&&n(Lt)),s!==L?(cr=e,r=qt(i,a),e=r):(ur=e,e=D)):(ur=e,e=D)}else ur=e,e=D;else ur=e,e=D;return e}function g(){var e,r,i,a,s,o;return e=ur,r=y(),r===L&&(r=z),r!==L?(i=_(),i!==L?(a=ur,64===t.charCodeAt(ur)?(s=Zt,ur++):(s=L,0===dr&&n(Dt)),s!==L?(o=C(),o!==L?(s=[s,o],a=s):(ur=a,a=D)):(ur=a,a=D),a===L&&(a=z),a!==L?(cr=e,r=zt(r,i,a),e=r):(ur=e,e=D)):(ur=e,e=D)):(ur=e,e=D),e}function b(){var e,r,i,a,s,o,u;if(e=ur,40===t.charCodeAt(ur)?(r=Rt,ur++):(r=L,0===dr&&n(Ft)),r!==L)if(i=w(),i!==L){for(a=[],s=ur,44===t.charCodeAt(ur)?(o=pt,ur++):(o=L,0===dr&&n(ft)),o!==L?(u=w(),u!==L?(o=[o,u],s=o):(ur=s,s=D)):(ur=s,s=D);s!==L;)a.push(s),s=ur,44===t.charCodeAt(ur)?(o=pt,ur++):(o=L,0===dr&&n(ft)),o!==L?(u=w(),u!==L?(o=[o,u],s=o):(ur=s,s=D)):(ur=s,s=D);a!==L?(41===t.charCodeAt(ur)?(s=Nt,ur++):(s=L,0===dr&&n(Lt)),s!==L?(cr=e,r=qt(i,a),e=r):(ur=e,e=D)):(ur=e,e=D)}else ur=e,e=D;else ur=e,e=D;return e}function w(){var e,r,i,a,s,o;return e=ur,r=y(),r===L&&(r=z),r!==L?(i=_(),i!==L?(a=ur,64===t.charCodeAt(ur)?(s=Zt,ur++):(s=L,0===dr&&n(Dt)),s!==L?(o=C(),o!==L?(s=[s,o],a=s):(ur=a,a=D)):(ur=a,a=D),a===L&&(a=z),a!==L?(cr=e,r=Gt(r,i,a),e=r):(ur=e,e=D)):(ur=e,e=D)):(ur=e,e=D),e}function y(){var e,r;return e=ur,t.substr(ur,2)===Xt?(r=Xt,ur+=2):(r=L,0===dr&&n(Pt)),r!==L&&(cr=e,r=Wt()),e=r,e===L&&(e=ur,t.substr(ur,2)===Qt?(r=Qt,ur+=2):(r=L,0===dr&&n(Ut)),r!==L&&(cr=e,r=Bt()),e=r,e===L&&(e=ur,t.substr(ur,2)===$t?(r=$t,ur+=2):(r=L,0===dr&&n(jt)),r!==L&&(cr=e,r=Yt()),e=r)),e}function _(){var t;return t=E(),t===L&&(t=I(),t===L&&(t=T())),t}function C(){var e,r,i;if(e=ur,r=[],Mt.test(t.charAt(ur))?(i=t.charAt(ur),ur++):(i=L,0===dr&&n(Jt)),i!==L)for(;i!==L;)r.push(i),Mt.test(t.charAt(ur))?(i=t.charAt(ur),ur++):(i=L,0===dr&&n(Jt));else r=D;return r!==L&&(cr=e,r=Kt(r)),e=r}function I(){var e,r,i;return e=ur,r=k(),r!==L&&(cr=e,r=te(r)),e=r,e===L&&(e=ur,45===t.charCodeAt(ur)?(r=Ct,ur++):(r=L,0===dr&&n(It)),r!==L?(i=k(),i!==L?(cr=e,r=ee(i),e=r):(ur=e,e=D)):(ur=e,e=D),e===L&&(e=ur,43===t.charCodeAt(ur)?(r=re,ur++):(r=L,0===dr&&n(ie)),r!==L?(i=k(),i!==L?(cr=e,r=te(i),e=r):(ur=e,e=D)):(ur=e,e=D))),e}function E(){var e,r,i,a;return e=ur,r=k(),r!==L?(37===t.charCodeAt(ur)?(i=ne,ur++):(i=L,0===dr&&n(ae)),i!==L?(cr=e,r=se(r),e=r):(ur=e,e=D)):(ur=e,e=D),e===L&&(e=ur,45===t.charCodeAt(ur)?(r=Ct,ur++):(r=L,0===dr&&n(It)),r!==L?(i=k(),i!==L?(37===t.charCodeAt(ur)?(a=ne,ur++):(a=L,0===dr&&n(ae)),a!==L?(cr=e,r=oe(i),e=r):(ur=e,e=D)):(ur=e,e=D)):(ur=e,e=D),e===L&&(e=ur,43===t.charCodeAt(ur)?(r=re,ur++):(r=L,0===dr&&n(ie)),r!==L?(i=k(),i!==L?(37===t.charCodeAt(ur)?(a=ne,ur++):(a=L,0===dr&&n(ae)),a!==L?(cr=e,r=se(i),e=r):(ur=e,e=D)):(ur=e,e=D)):(ur=e,e=D))),e}function T(){var t,e,r,i,n;return t=ur,e=S(),e!==L?(r=V(),r===L&&(r=z),r!==L?(i=m(),i===L&&(i=z),i!==L?(n=O(),n===L&&(n=z),n!==L?(cr=t,e=ue(e,r,i,n),t=e):(ur=t,t=D)):(ur=t,t=D)):(ur=t,t=D)):(ur=t,t=D),t}function V(){var e,r;return e=ur,t.substr(ur,5)===ce?(r=ce,ur+=5):(r=L,0===dr&&n(le)),r!==L&&(cr=e,r=he()),e=r,e===L&&(e=ur,t.substr(ur,6)===pe?(r=pe,ur+=6):(r=L,0===dr&&n(fe)),r!==L&&(cr=e,r=de()),e=r,e===L&&(e=ur,t.substr(ur,4)===ve?(r=ve,ur+=4):(r=L,0===dr&&n(Ae)),r!==L&&(cr=e,r=ge()),e=r,e===L&&(e=ur,t.substr(ur,7)===be?(r=be,ur+=7):(r=L,0===dr&&n(we)),r!==L&&(cr=e,r=ye()),e=r,e===L&&(e=ur,t.substr(ur,6)===_e?(r=_e,ur+=6):(r=L,0===dr&&n(Ce)),r!==L&&(cr=e,r=Ie()),e=r,e===L&&(e=ur,t.substr(ur,7)===Ee?(r=Ee,ur+=7):(r=L,0===dr&&n(Te)),r!==L&&(cr=e,r=Ve()),e=r,e===L&&(e=ur,t.substr(ur,8)===me?(r=me,ur+=8):(r=L,0===dr&&n(Oe)),r!==L&&(cr=e,r=He()),e=r,e===L&&(e=ur,t.substr(ur,8)===Se?(r=Se,ur+=8):(r=L,0===dr&&n(xe)),r!==L&&(cr=e,r=ke()),e=r))))))),e}function m(){var e,r,i;return e=ur,47===t.charCodeAt(ur)?(r=Re,ur++):(r=L,0===dr&&n(Fe)),r!==L?(i=k(),i!==L?(cr=e,r=Ne(i),e=r):(ur=e,e=D)):(ur=e,e=D),e===L&&(e=ur,t.substr(ur,2)===Le?(r=Le,ur+=2):(r=L,0===dr&&n(qe)),r!==L?(i=k(),i!==L?(cr=e,r=Ne(i),e=r):(ur=e,e=D)):(ur=e,e=D),e===L&&(e=ur,t.substr(ur,2)===Ze?(r=Ze,ur+=2):(r=L,0===dr&&n(De)),r!==L?(i=k(),i!==L?(cr=e,r=ze(i),e=r):(ur=e,e=D)):(ur=e,e=D),e===L&&(e=ur,42===t.charCodeAt(ur)?(r=Ge,ur++):(r=L,0===dr&&n(Xe)),r!==L?(i=k(),i!==L?(cr=e,r=Pe(i),e=r):(ur=e,e=D)):(ur=e,e=D),e===L&&(e=ur,t.substr(ur,2)===We?(r=We,ur+=2):(r=L,0===dr&&n(Qe)),r!==L?(i=k(),i!==L?(cr=e,r=Pe(i),e=r):(ur=e,e=D)):(ur=e,e=D),e===L&&(e=ur,t.substr(ur,2)===Ue?(r=Ue,ur+=2):(r=L,0===dr&&n(Be)),r!==L?(i=k(),i!==L?(cr=e,r=$e(i),e=r):(ur=e,e=D)):(ur=e,e=D)))))),e}function O(){var e,r,i;return e=ur,45===t.charCodeAt(ur)?(r=Ct,ur++):(r=L,0===dr&&n(It)),r!==L?(i=k(),i!==L?(cr=e,r=$e(i),e=r):(ur=e,e=D)):(ur=e,e=D),e===L&&(e=ur,43===t.charCodeAt(ur)?(r=re,ur++):(r=L,0===dr&&n(ie)),r!==L?(i=k(),i!==L?(cr=e,r=Pe(i),e=r):(ur=e,e=D)):(ur=e,e=D)),e}function H(){var e,r,i,a,s;if(e=ur,r=ur,i=[],je.test(t.charAt(ur))?(a=t.charAt(ur),ur++):(a=L,0===dr&&n(Ye)),a!==L)for(;a!==L;)i.push(a),je.test(t.charAt(ur))?(a=t.charAt(ur),ur++):(a=L,0===dr&&n(Ye));else i=D;if(i!==L&&(i=t.substring(r,ur)),r=i,r!==L){for(i=ur,a=[],Me.test(t.charAt(ur))?(s=t.charAt(ur),ur++):(s=L,0===dr&&n(Je));s!==L;)a.push(s),Me.test(t.charAt(ur))?(s=t.charAt(ur),ur++):(s=L,0===dr&&n(Je));a!==L&&(a=t.substring(i,ur)),i=a,i!==L?(a=x(),a!==L?(cr=e,r=Ke(r,i,a),e=r):(ur=e,e=D)):(ur=e,e=D)}else ur=e,e=D;if(e===L){if(e=ur,r=ur,i=[],je.test(t.charAt(ur))?(a=t.charAt(ur),ur++):(a=L,0===dr&&n(Ye)),a!==L)for(;a!==L;)i.push(a),je.test(t.charAt(ur))?(a=t.charAt(ur),ur++):(a=L,0===dr&&n(Ye));else i=D;if(i!==L&&(i=t.substring(r,ur)),r=i,r!==L){for(i=ur,a=[],Me.test(t.charAt(ur))?(s=t.charAt(ur),ur++):(s=L,0===dr&&n(Je));s!==L;)a.push(s),Me.test(t.charAt(ur))?(s=t.charAt(ur),ur++):(s=L,0===dr&&n(Je));a!==L&&(a=t.substring(i,ur)),i=a,i!==L?(cr=e,r=tr(r,i),e=r):(ur=e,e=D)}else ur=e,e=D}return e}function S(){var e,r,i,a,s;if(e=ur,r=ur,i=[],je.test(t.charAt(ur))?(a=t.charAt(ur),ur++):(a=L,0===dr&&n(Ye)),a!==L)for(;a!==L;)i.push(a),je.test(t.charAt(ur))?(a=t.charAt(ur),ur++):(a=L,0===dr&&n(Ye));else i=D;if(i!==L&&(i=t.substring(r,ur)),r=i,r!==L){for(i=ur,a=[],Me.test(t.charAt(ur))?(s=t.charAt(ur),ur++):(s=L,0===dr&&n(Je));s!==L;)a.push(s),Me.test(t.charAt(ur))?(s=t.charAt(ur),ur++):(s=L,0===dr&&n(Je));a!==L&&(a=t.substring(i,ur)),i=a,i!==L?(cr=e,r=tr(r,i),e=r):(ur=e,e=D)}else ur=e,e=D;return e}function x(){var e,r,i,a;if(e=ur,t.substr(ur,2)===er?(r=er,ur+=2):(r=L,0===dr&&n(rr)),r!==L){if(i=[],Mt.test(t.charAt(ur))?(a=t.charAt(ur),ur++):(a=L,0===dr&&n(Jt)),a!==L)for(;a!==L;)i.push(a),Mt.test(t.charAt(ur))?(a=t.charAt(ur),ur++):(a=L,0===dr&&n(Jt));else i=D;i!==L?(cr=e,r=ir(i),e=r):(ur=e,e=D)}else ur=e,e=D;return e}function k(){var e,r,i,a,s;if(e=ur,r=[],Mt.test(t.charAt(ur))?(i=t.charAt(ur),ur++):(i=L,0===dr&&n(Jt)),i!==L)for(;i!==L;)r.push(i),Mt.test(t.charAt(ur))?(i=t.charAt(ur),ur++):(i=L,0===dr&&n(Jt));else r=D;if(r!==L)if(46===t.charCodeAt(ur)?(i=nr,ur++):(i=L,0===dr&&n(ar)),i!==L){if(a=[],Mt.test(t.charAt(ur))?(s=t.charAt(ur),ur++):(s=L,0===dr&&n(Jt)),s!==L)for(;s!==L;)a.push(s),Mt.test(t.charAt(ur))?(s=t.charAt(ur),ur++):(s=L,0===dr&&n(Jt));else a=D;a!==L?(cr=e,r=sr(r,a),e=r):(ur=e,e=D)}else ur=e,e=D;else ur=e,e=D;if(e===L){if(e=ur,r=[],Mt.test(t.charAt(ur))?(i=t.charAt(ur),ur++):(i=L,0===dr&&n(Jt)),i!==L)for(;i!==L;)r.push(i),Mt.test(t.charAt(ur))?(i=t.charAt(ur),ur++):(i=L,0===dr&&n(Jt));else r=D;r!==L&&(cr=e,r=or(r)),e=r}return e}function R(t){for(var e=1;e1?arguments[1]:{},L={},q={visualFormatString:s},Z=s,D=L,z=null,G=":",X={type:"literal",value:":",description:'":"'},P=function(t,e,r,i,n,a){return{orientation:t?t[0]:"horizontal",cascade:(e||[]).concat(r,[].concat.apply([],i),n||[])}},W="HV",Q={type:"literal",value:"HV",description:'"HV"'},U=function(){return"horzvert"},B="H",$={type:"literal",value:"H",description:'"H"'},j=function(){return"horizontal"},Y="V",M={type:"literal",value:"V",description:'"V"'},J=function(){return"vertical"},K="Z",tt={type:"literal",value:"Z",description:'"Z"'},et=function(){return"zIndex"},rt=" ",it={type:"literal",value:" ",description:'" "'},nt="//",at={type:"literal",value:"//",description:'"//"'},st={type:"any",description:"any character"},ot="|",ut={type:"literal",value:"|",description:'"|"'},ct=function(){return{view:null}},lt="[",ht={type:"literal",value:"[",description:'"["'},pt=",",ft={type:"literal",value:",",description:'","'},dt="]",vt={type:"literal",value:"]",description:'"]"'},At=function(t,e){return e.length?[t].concat([].concat.apply([],e)):t},gt=function(t,e,r){return R(R(t,e?{constraints:e}:{}),r?{cascade:r}:{})},bt=function(t,e){return[].concat([].concat.apply([],t),[e])},wt="->",yt={type:"literal",value:"->",description:'"->"'},_t=function(){return[{relation:"none"}]},Ct="-",It={type:"literal",value:"-",description:'"-"'},Et=function(t){return t},Tt=function(){return[{relation:"equ",constant:"default"}]},Vt="~",mt={type:"literal",value:"~",description:'"~"'},Ot=function(){return[{relation:"equ",equalSpacing:!0}]},Ht="",St=function(){return[{relation:"equ",constant:0}]},xt=function(t){ +return[{relation:"equ",multiplier:t.multiplier}]},kt=function(t){return[{relation:"equ",constant:t}]},Rt="(",Ft={type:"literal",value:"(",description:'"("'},Nt=")",Lt={type:"literal",value:")",description:'")"'},qt=function(t,e){return[t].concat(e.map(function(t){return t[1]}))},Zt="@",Dt={type:"literal",value:"@",description:'"@"'},zt=function(t,e,r){return R({relation:"equ"},t||{},e,r?r[1]:{})},Gt=function(t,e,r){return R({relation:"equ",equalSpacing:!0},t||{},e,r?r[1]:{})},Xt="==",Pt={type:"literal",value:"==",description:'"=="'},Wt=function(){return{relation:"equ"}},Qt="<=",Ut={type:"literal",value:"<=",description:'"<="'},Bt=function(){return{relation:"leq"}},$t=">=",jt={type:"literal",value:">=",description:'">="'},Yt=function(){return{relation:"geq"}},Mt=/^[0-9]/,Jt={type:"class",value:"[0-9]",description:"[0-9]"},Kt=function(t){return{priority:parseInt(t.join(""),10)}},te=function(t){return{constant:t}},ee=function(t){return{constant:-t}},re="+",ie={type:"literal",value:"+",description:'"+"'},ne="%",ae={type:"literal",value:"%",description:'"%"'},se=function(t){return{view:null,multiplier:t/100}},oe=function(t){return{view:null,multiplier:t/-100}},ue=function(t,e,r,i){return{view:t.view,attribute:e?e:void 0,multiplier:r?r:1,constant:i?i:void 0}},ce=".left",le={type:"literal",value:".left",description:'".left"'},he=function(){return"left"},pe=".right",fe={type:"literal",value:".right",description:'".right"'},de=function(){return"right"},ve=".top",Ae={type:"literal",value:".top",description:'".top"'},ge=function(){return"top"},be=".bottom",we={type:"literal",value:".bottom",description:'".bottom"'},ye=function(){return"bottom"},_e=".width",Ce={type:"literal",value:".width",description:'".width"'},Ie=function(){return"width"},Ee=".height",Te={type:"literal",value:".height",description:'".height"'},Ve=function(){return"height"},me=".centerX",Oe={type:"literal",value:".centerX",description:'".centerX"'},He=function(){return"centerX"},Se=".centerY",xe={type:"literal",value:".centerY",description:'".centerY"'},ke=function(){return"centerY"},Re="/",Fe={type:"literal",value:"/",description:'"/"'},Ne=function(t){return 1/t},Le="/+",qe={type:"literal",value:"/+",description:'"/+"'},Ze="/-",De={type:"literal",value:"/-",description:'"/-"'},ze=function(t){return-1/t},Ge="*",Xe={type:"literal",value:"*",description:'"*"'},Pe=function(t){return t},We="*+",Qe={type:"literal",value:"*+",description:'"*+"'},Ue="*-",Be={type:"literal",value:"*-",description:'"*-"'},$e=function(t){return-t},je=/^[a-zA-Z_]/,Ye={type:"class",value:"[a-zA-Z_]",description:"[a-zA-Z_]"},Me=/^[a-zA-Z0-9_]/,Je={type:"class",value:"[a-zA-Z0-9_]",description:"[a-zA-Z0-9_]"},Ke=function(t,e,i){return{view:t+e,range:i,$parserOffset:r()}},tr=function(t,e){return{view:t+e,$parserOffset:r()}},er="..",rr={type:"literal",value:"..",description:'".."'},ir=function(t){return parseInt(t)},nr=".",ar={type:"literal",value:".",description:'"."'},sr=function(t,e){return parseFloat(t.concat(".").concat(e).join(""),10)},or=function(t){return parseInt(t.join(""),10)},ur=0,cr=0,lr=0,hr={line:1,column:1,seenCR:!1},pr=0,fr=[],dr=0;if("startRule"in N){if(!(N.startRule in q))throw new Error("Can't start parsing from rule \""+N.startRule+'".');Z=q[N.startRule]}if(F=Z(),F!==L&&ur===t.length)return F;throw F!==L&&urh;h++){var p=metaInfoCategories[l],f=(0===h?"":i)+p;if(0===c.indexOf("//"+f+" "))for(var d=c.substring(3+f.length).split(" "),v=0;v1?A[1]:""}else 0===c.indexOf("//"+f+":")&&(a[p]=c.substring(3+f.length))}if(a.viewport){var w=a.viewport,y=w["aspect-ratio"];y&&(y=y.split("/"),w["aspect-ratio"]=parseInt(y[0])/parseInt(y[1])),void 0!==w.height&&(w.height="intrinsic"===w.height?!0:parseInt(w.height)),void 0!==w.width&&(w.width="intrinsic"===w.width?!0:parseInt(w.width)),void 0!==w["max-height"]&&(w["max-height"]=parseInt(w["max-height"])),void 0!==w["max-width"]&&(w["max-width"]=parseInt(w["max-width"])),void 0!==w["min-height"]&&(w["min-height"]=parseInt(w["min-height"])),void 0!==w["min-width"]&&(w["min-width"]=parseInt(w["min-width"]))}if(a.widths)for(n in a.widths){var _="intrinsic"===a.widths[n]?!0:parseInt(a.widths[n]);a.widths[n]=_,(void 0===_||isNaN(_))&&delete a.widths[n]}if(a.heights)for(n in a.heights){var C="intrinsic"===a.heights[n]?!0:parseInt(a.heights[n]);a.heights[n]=C,(void 0===C||isNaN(C))&&delete a.heights[n]}if(a.spacing){var I=JSON.parse(a.spacing);if(a.spacing=I,Array.isArray(I)){for(var E=0,T=I.length;T>E;E++)if(isNaN(I[E])){delete a.spacing;break}}else(void 0===I||isNaN(I))&&delete a.spacing}return a}}]),t}(),SubView=function(){function t(e){_classCallCheck(this,t),this._name=e.name,this._type=e.type,this._solver=e.solver,this._attr={},e.name||(this._attr[Attribute.LEFT]=new c.Variable,this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.LEFT],c.Strength.required)),this._attr[Attribute.TOP]=new c.Variable,this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.TOP],c.Strength.required)),this._attr[Attribute.ZINDEX]=new c.Variable,this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.ZINDEX],c.Strength.required)))}return _createClass(t,[{key:"toJSON",value:function(){return{name:this.name,left:this.left,top:this.top,width:this.width,height:this.height}}},{key:"toString",value:function(){JSON.stringify(this.toJSON(),void 0,2)}},{key:"getValue",value:function(t){return this._attr[t]?this._attr[t].value():void 0}},{key:"_getAttr",value:function(t){if(this._attr[t])return this._attr[t];switch(this._attr[t]=new c.Variable,t){case Attribute.RIGHT:this._getAttr(Attribute.LEFT),this._getAttr(Attribute.WIDTH),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.LEFT],this._attr[Attribute.WIDTH])));break;case Attribute.BOTTOM:this._getAttr(Attribute.TOP),this._getAttr(Attribute.HEIGHT),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.TOP],this._attr[Attribute.HEIGHT])));break;case Attribute.CENTERX:this._getAttr(Attribute.LEFT),this._getAttr(Attribute.WIDTH),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.LEFT],c.divide(this._attr[Attribute.WIDTH],2))));break;case Attribute.CENTERY:this._getAttr(Attribute.TOP),this._getAttr(Attribute.HEIGHT),this._solver.addConstraint(new c.Equation(this._attr[t],c.plus(this._attr[Attribute.TOP],c.divide(this._attr[Attribute.HEIGHT],2))))}return this._attr[t]}},{key:"_getAttrValue",value:function(t){return this._getAttr(t).value}},{key:"name",get:function(){return this._name}},{key:"left",get:function(){return this._getAttrValue(Attribute.LEFT)}},{key:"right",get:function(){return this._getAttrValue(Attribute.RIGHT)}},{key:"width",get:function(){return this._getAttrValue(Attribute.WIDTH)}},{key:"height",get:function(){return this._getAttrValue(Attribute.HEIGHT)}},{key:"intrinsicWidth",get:function(){return this._intrinsicWidth},set:function(t){if(void 0!==t&&t!==this._intrinsicWidth){var e=this._getAttr(Attribute.WIDTH);void 0===this._intrinsicWidth&&this._solver.addEditVar(e,new c.Strength("required",this._name?998:999,1e3,1e3)),this._intrinsicWidth=t,this._solver.suggestValue(e,t),this._solver.resolve()}}},{key:"intrinsicHeight",get:function(){return this._intrinsicHeight},set:function(t){if(void 0!==t&&t!==this._intrinsicHeight){var e=this._getAttr(Attribute.HEIGHT);void 0===this._intrinsicHeight&&this._solver.addEditVar(e,new c.Strength("required",this._name?998:999,1e3,1e3)),this._intrinsicHeight=t,this._solver.suggestValue(e,t),this._solver.resolve()}}},{key:"top",get:function(){return this._getAttrValue(Attribute.TOP)}},{key:"bottom",get:function(){return this._getAttrValue(Attribute.BOTTOM)}},{key:"centerX",get:function(){return this._getAttrValue(Attribute.CENTERX)}},{key:"centerY",get:function(){return this._getAttrValue(Attribute.CENTERY)}},{key:"zIndex",get:function(){return this._getAttrValue(Attribute.ZINDEX)}},{key:"type",get:function(){return this._type}}]),t}(),defaultPriorityStrength=new c.Strength("defaultPriority",0,1e3,1e3),View=function(){function t(e){_classCallCheck(this,t),this._solver=new c.SimplexSolver,this._subViews={},this._parentSubView=new SubView({solver:this._solver}),this.setSpacing(e&&void 0!==e.spacing?e.spacing:8),e&&((void 0!==e.width||void 0!==e.height)&&this.setSize(e.width,e.height),e.constraints&&this.addConstraints(e.constraints))}return _createClass(t,[{key:"setSize",value:function(t,e){return this._parentSubView.intrinsicWidth=t,this._parentSubView.intrinsicHeight=e,this}},{key:"setSpacing",value:function(t){switch(Array.isArray(t)?t.length:-1){case-1:t=[t,t,t,t,t,t,1];break;case 1:t=[t[0],t[0],t[0],t[0],t[0],t[0],1];break;case 2:t=[t[1],t[0],t[1],t[0],t[0],t[1],1];break;case 3:t=[t[1],t[0],t[1],t[0],t[0],t[1],t[2]];break;case 6:t=[t[0],t[1],t[2],t[3],t[4],t[5],1];break;case 7:break;default:throw"Invalid spacing syntax"}if(!_compareSpacing(this._spacing,t)&&(this._spacing=t,this._spacingVars)){for(var e=0;eMath.abs(i):0==i?r>Math.abs(n):Math.abs(n-i)64||this._deleted>this._compactThreshold&&(this._compact(),this._deleted=0)},"delete":function(t){t=e(t),this._store.hasOwnProperty(t)&&(this._deleted++,delete this._store[t],this.size>0&&this.size--)},each:function(t,e){if(this.size){this._perhapsCompact();var n=this._store,i=this._keyStrMap;Object.keys(this._store).forEach(function(r){t.call(e||null,i[r],n[r])},this)}},escapingEach:function(t,e){if(this.size){this._perhapsCompact();for(var n=this,r=this._store,s=this._keyStrMap,a=i,l=Object.keys(r),o=0;l.length>o;o++)if(function(i){n._store.hasOwnProperty(i)&&(a=t.call(e||null,s[i],r[i]))}(l[o]),a){if(void 0!==a.retval)return a;if(a.brk)break}}},clone:function(){var e=new t.HashTable;return this.size&&(e.size=this.size,n(this._store,e._store),n(this._keyStrMap,e._keyStrMap)),e},equals:function(e){if(e===this)return!0;if(!(e instanceof t.HashTable)||e._size!==this._size)return!1;for(var n=Object.keys(this._store),i=0;n.length>i;i++){var r=n[i];if(this._keyStrMap[r]!==e._keyStrMap[r]||this._store[r]!==e._store[r])return!1}return!0},toString:function(){var t="";return this.each(function(e,n){t+=e+" => "+n+"\n"}),t}})}(this.c||module.parent.exports||{}),function(t){"use strict";t.HashSet=t.inherit({_t:"c.HashSet",initialize:function(){this.storage=[],this.size=0},add:function(t){var e=this.storage;e.indexOf(t),-1==e.indexOf(t)&&e.push(t),this.size=this.storage.length},values:function(){return this.storage},has:function(t){var e=this.storage;return-1!=e.indexOf(t)},"delete":function(t){var e=this.storage.indexOf(t);return-1==e?null:(this.storage.splice(e,1)[0],void(this.size=this.storage.length))},clear:function(){this.storage.length=0},each:function(t,e){this.size&&this.storage.forEach(t,e)},escapingEach:function(t,e){this.size&&this.storage.forEach(t,e)},toString:function(){var t=this.size+" {",e=!0;return this.each(function(n){e?e=!1:t+=", ",t+=n}),t+="}\n"},toJSON:function(){var t=[];return this.each(function(e){t.push(e.toJSON())}),{_t:"c.HashSet",data:t}},fromJSON:function(e){var n=new t.HashSet;return e.data&&(n.size=e.data.length,n.storage=e.data),n}})}(this.c||module.parent.exports||{}),function(t){"use strict";t.Error=t.inherit({initialize:function(t){t&&(this._description=t)},_name:"c.Error",_description:"An error has occured in Cassowary",set description(t){this._description=t},get description(){return"("+this._name+") "+this._description},get message(){return this.description},toString:function(){return this.description}});var e=function(e,n){return t.inherit({"extends":t.Error,initialize:function(){t.Error.apply(this,arguments)},_name:e||"",_description:n||""})};t.ConstraintNotFound=e("c.ConstraintNotFound","Tried to remove a constraint never added to the tableu"),t.InternalError=e("c.InternalError"),t.NonExpression=e("c.NonExpression","The resulting expression would be non"),t.NotEnoughStays=e("c.NotEnoughStays","There are not enough stays to give specific values to every variable"),t.RequiredFailure=e("c.RequiredFailure","A required constraint cannot be satisfied"),t.TooDifficult=e("c.TooDifficult","The constraints are too difficult to solve")}(this.c||module.parent.exports||{}),function(t){"use strict";var e=1e3;t.SymbolicWeight=t.inherit({_t:"c.SymbolicWeight",initialize:function(){this.value=0;for(var t=1,n=arguments.length-1;n>=0;--n)this.value+=arguments[n]*t,t*=e},toJSON:function(){return{_t:this._t,value:this.value}}})}(this.c||module.parent.exports||{}),function(t){t.Strength=t.inherit({initialize:function(e,n,i,r){this.name=e,this.symbolicWeight=n instanceof t.SymbolicWeight?n:new t.SymbolicWeight(n,i,r)},get required(){return this===t.Strength.required},toString:function(){return this.name+(this.isRequired?"":":"+this.symbolicWeight)}}),t.Strength.required=new t.Strength("",1e3,1e3,1e3),t.Strength.strong=new t.Strength("strong",1,0,0),t.Strength.medium=new t.Strength("medium",0,1,0),t.Strength.weak=new t.Strength("weak",0,0,1)}(this.c||("undefined"!=typeof module?module.parent.exports.c:{})),function(t){"use strict";t.AbstractVariable=t.inherit({isDummy:!1,isExternal:!1,isPivotable:!1,isRestricted:!1,_init:function(e,n){this.hashCode=t._inc(),this.name=(n||"")+this.hashCode,e&&(void 0!==e.name&&(this.name=e.name),void 0!==e.value&&(this.value=e.value),void 0!==e.prefix&&(this._prefix=e.prefix))},_prefix:"",name:"",value:0,toJSON:function(){var t={};return this._t&&(t._t=this._t),this.name&&(t.name=this.name),void 0!==this.value&&(t.value=this.value),this._prefix&&(t._prefix=this._prefix),this._t&&(t._t=this._t),t},fromJSON:function(e,n){var i=new n;return t.extend(i,e),i},toString:function(){return this._prefix+"["+this.name+":"+this.value+"]"}}),t.Variable=t.inherit({_t:"c.Variable","extends":t.AbstractVariable,initialize:function(e){this._init(e,"v");var n=t.Variable._map;n&&(n[this.name]=this)},isExternal:!0}),t.DummyVariable=t.inherit({_t:"c.DummyVariable","extends":t.AbstractVariable,initialize:function(t){this._init(t,"d")},isDummy:!0,isRestricted:!0,value:"dummy"}),t.ObjectiveVariable=t.inherit({_t:"c.ObjectiveVariable","extends":t.AbstractVariable,initialize:function(t){this._init(t,"o")},value:"obj"}),t.SlackVariable=t.inherit({_t:"c.SlackVariable","extends":t.AbstractVariable,initialize:function(t){this._init(t,"s")},isPivotable:!0,isRestricted:!0,value:"slack"})}(this.c||module.parent.exports||{}),function(t){"use strict";t.Point=t.inherit({initialize:function(e,n,i){if(e instanceof t.Variable)this._x=e;else{var r={value:e};i&&(r.name="x"+i),this._x=new t.Variable(r)}if(n instanceof t.Variable)this._y=n;else{var s={value:n};i&&(s.name="y"+i),this._y=new t.Variable(s)}},get x(){return this._x},set x(e){e instanceof t.Variable?this._x=e:this._x.value=e},get y(){return this._y},set y(e){e instanceof t.Variable?this._y=e:this._y.value=e},toString:function(){return"("+this.x+", "+this.y+")"}})}(this.c||module.parent.exports||{}),function(t){"use strict";t.Expression=t.inherit({initialize:function(e,n,i){t.GC&&console.log("new c.Expression"),this.constant="number"!=typeof i||isNaN(i)?0:i,this.terms=new t.HashTable,e instanceof t.AbstractVariable?this.setVariable(e,"number"==typeof n?n:1):"number"==typeof e&&(isNaN(e)?console.trace():this.constant=e)},initializeFromHash:function(e,n){return t.verbose&&(console.log("*******************************"),console.log("clone c.initializeFromHash"),console.log("*******************************")),t.GC&&console.log("clone c.Expression"),this.constant=e,this.terms=n.clone(),this},multiplyMe:function(t){this.constant*=t;var e=this.terms;return e.each(function(n,i){e.set(n,i*t)}),this},clone:function(){t.verbose&&(console.log("*******************************"),console.log("clone c.Expression"),console.log("*******************************"));var e=new t.Expression;return e.initializeFromHash(this.constant,this.terms),e},times:function(e){if("number"==typeof e)return this.clone().multiplyMe(e);if(this.isConstant)return e.times(this.constant);if(e.isConstant)return this.times(e.constant);throw new t.NonExpression},plus:function(e){return e instanceof t.Expression?this.clone().addExpression(e,1):e instanceof t.Variable?this.clone().addVariable(e,1):void 0},minus:function(e){return e instanceof t.Expression?this.clone().addExpression(e,-1):e instanceof t.Variable?this.clone().addVariable(e,-1):void 0},divide:function(e){if("number"==typeof e){if(t.approx(e,0))throw new t.NonExpression;return this.times(1/e)}if(e instanceof t.Expression){if(!e.isConstant)throw new t.NonExpression;return this.times(1/e.constant)}},addExpression:function(e,n,i,r){return e instanceof t.AbstractVariable&&(e=new t.Expression(e),t.trace&&console.log("addExpression: Had to cast a var to an expression")),n=n||1,this.constant+=n*e.constant,e.terms.each(function(t,e){this.addVariable(t,e*n,i,r)},this),this},addVariable:function(e,n,i,r){null==n&&(n=1),t.trace&&console.log("c.Expression::addVariable():",e,n);var s=this.terms.get(e);if(s){var a=s+n;0==a||t.approx(a,0)?(r&&r.noteRemovedVariable(e,i),this.terms["delete"](e)):this.setVariable(e,a)}else t.approx(n,0)||(this.setVariable(e,n),r&&r.noteAddedVariable(e,i));return this},setVariable:function(t,e){return this.terms.set(t,e),this},anyPivotableVariable:function(){if(this.isConstant)throw new t.InternalError("anyPivotableVariable called on a constant");var e=this.terms.escapingEach(function(t){return t.isPivotable?{retval:t}:void 0});return e&&void 0!==e.retval?e.retval:null},substituteOut:function(e,n,i,r){t.trace&&(t.fnenterprint("CLE:substituteOut: "+e+", "+n+", "+i+", ..."),t.traceprint("this = "+this));var s=this.setVariable.bind(this),a=this.terms,l=a.get(e);a["delete"](e),this.constant+=l*n.constant,n.terms.each(function(e,n){var o=a.get(e);if(o){var u=o+l*n;t.approx(u,0)?(r.noteRemovedVariable(e,i),a["delete"](e)):s(e,u)}else s(e,l*n),r&&r.noteAddedVariable(e,i)}),t.trace&&t.traceprint("Now this is "+this)},changeSubject:function(t,e){this.setVariable(t,this.newSubject(e))},newSubject:function(e){t.trace&&t.fnenterprint("newSubject:"+e);var n=1/this.terms.get(e);return this.terms["delete"](e),this.multiplyMe(-n),n},coefficientFor:function(t){return this.terms.get(t)||0},get isConstant(){return 0==this.terms.size},toString:function(){var e="",n=!1;if(!t.approx(this.constant,0)||this.isConstant){if(e+=this.constant,this.isConstant)return e;n=!0}return this.terms.each(function(t,i){n&&(e+=" + "),e+=i+"*"+t,n=!0}),e},equals:function(e){return e===this?!0:e instanceof t.Expression&&e.constant===this.constant&&e.terms.equals(this.terms)},Plus:function(t,e){return t.plus(e)},Minus:function(t,e){return t.minus(e)},Times:function(t,e){return t.times(e)},Divide:function(t,e){return t.divide(e)}})}(this.c||module.parent.exports||{}),function(t){"use strict";t.AbstractConstraint=t.inherit({initialize:function(e,n){this.hashCode=t._inc(),this.strength=e||t.Strength.required,this.weight=n||1},isEditConstraint:!1,isInequality:!1,isStayConstraint:!1,get required(){return this.strength===t.Strength.required},toString:function(){return this.strength+" {"+this.weight+"} ("+this.expression+")"}});var e=t.AbstractConstraint.prototype.toString,n=function(e,n,i){t.AbstractConstraint.call(this,n||t.Strength.strong,i),this.variable=e,this.expression=new t.Expression(e,-1,e.value)};t.EditConstraint=t.inherit({"extends":t.AbstractConstraint,initialize:function(){n.apply(this,arguments)},isEditConstraint:!0,toString:function(){return"edit:"+e.call(this)}}),t.StayConstraint=t.inherit({"extends":t.AbstractConstraint,initialize:function(){n.apply(this,arguments)},isStayConstraint:!0,toString:function(){return"stay:"+e.call(this)}});var i=t.Constraint=t.inherit({"extends":t.AbstractConstraint,initialize:function(e,n,i){t.AbstractConstraint.call(this,n,i),this.expression=e}});t.Inequality=t.inherit({"extends":t.Constraint,_cloneOrNewCle:function(e){return e.clone?e.clone():new t.Expression(e)},initialize:function(e,n,r,s,a){var l=e instanceof t.Expression,o=r instanceof t.Expression,u=e instanceof t.AbstractVariable,c=r instanceof t.AbstractVariable,h="number"==typeof e,f="number"==typeof r;if((l||h)&&c){var d=e,p=n,v=r,b=s,m=a;if(i.call(this,this._cloneOrNewCle(d),b,m),p==t.LEQ)this.expression.multiplyMe(-1),this.expression.addVariable(v);else{if(p!=t.GEQ)throw new t.InternalError("Invalid operator in c.Inequality constructor");this.expression.addVariable(v,-1)}}else if(u&&(o||f)){var d=r,p=n,v=e,b=s,m=a;if(i.call(this,this._cloneOrNewCle(d),b,m),p==t.GEQ)this.expression.multiplyMe(-1),this.expression.addVariable(v);else{if(p!=t.LEQ)throw new t.InternalError("Invalid operator in c.Inequality constructor");this.expression.addVariable(v,-1)}}else{if(l&&f){var g=e,p=n,_=r,b=s,m=a;if(i.call(this,this._cloneOrNewCle(g),b,m),p==t.LEQ)this.expression.multiplyMe(-1),this.expression.addExpression(this._cloneOrNewCle(_));else{if(p!=t.GEQ)throw new t.InternalError("Invalid operator in c.Inequality constructor");this.expression.addExpression(this._cloneOrNewCle(_),-1)}return this}if(h&&o){var g=r,p=n,_=e,b=s,m=a;if(i.call(this,this._cloneOrNewCle(g),b,m),p==t.GEQ)this.expression.multiplyMe(-1),this.expression.addExpression(this._cloneOrNewCle(_));else{if(p!=t.LEQ)throw new t.InternalError("Invalid operator in c.Inequality constructor");this.expression.addExpression(this._cloneOrNewCle(_),-1)}return this}if(l&&o){var g=e,p=n,_=r,b=s,m=a;if(i.call(this,this._cloneOrNewCle(_),b,m),p==t.GEQ)this.expression.multiplyMe(-1),this.expression.addExpression(this._cloneOrNewCle(g));else{if(p!=t.LEQ)throw new t.InternalError("Invalid operator in c.Inequality constructor");this.expression.addExpression(this._cloneOrNewCle(g),-1)}}else{if(l)return i.call(this,e,n,r);if(n==t.GEQ)i.call(this,new t.Expression(r),s,a),this.expression.multiplyMe(-1),this.expression.addVariable(e);else{if(n!=t.LEQ)throw new t.InternalError("Invalid operator in c.Inequality constructor");i.call(this,new t.Expression(r),s,a),this.expression.addVariable(e,-1)}}}},isInequality:!0,toString:function(){return i.prototype.toString.call(this)+" >= 0) id: "+this.hashCode}}),t.Equation=t.inherit({"extends":t.Constraint,initialize:function(e,n,r,s){if(e instanceof t.Expression&&!n||n instanceof t.Strength)i.call(this,e,n,r);else if(e instanceof t.AbstractVariable&&n instanceof t.Expression){var a=e,l=n,o=r,u=s;i.call(this,l.clone(),o,u),this.expression.addVariable(a,-1)}else if(e instanceof t.AbstractVariable&&"number"==typeof n){var a=e,c=n,o=r,u=s;i.call(this,new t.Expression(c),o,u),this.expression.addVariable(a,-1)}else if(e instanceof t.Expression&&n instanceof t.AbstractVariable){var l=e,a=n,o=r,u=s;i.call(this,l.clone(),o,u),this.expression.addVariable(a,-1)}else{if(!(e instanceof t.Expression||e instanceof t.AbstractVariable||"number"==typeof e)||!(n instanceof t.Expression||n instanceof t.AbstractVariable||"number"==typeof n))throw"Bad initializer to c.Equation";e=e instanceof t.Expression?e.clone():new t.Expression(e),n=n instanceof t.Expression?n.clone():new t.Expression(n),i.call(this,e,r,s),this.expression.addExpression(n,-1)}t.assert(this.strength instanceof t.Strength,"_strength not set")},toString:function(){return i.prototype.toString.call(this)+" = 0)"}})}(this.c||module.parent.exports||{}),function(t){"use strict";t.EditInfo=t.inherit({initialize:function(t,e,n,i,r){this.constraint=t,this.editPlus=e,this.editMinus=n,this.prevEditConstant=i,this.index=r},toString:function(){return""}})}(this.c||module.parent.exports||{}),function(t){"use strict";t.Tableau=t.inherit({initialize:function(){this.columns=new t.HashTable,this.rows=new t.HashTable,this._infeasibleRows=new t.HashSet,this._externalRows=new t.HashSet,this._externalParametricVars=new t.HashSet},noteRemovedVariable:function(e,n){t.trace&&console.log("c.Tableau::noteRemovedVariable: ",e,n);var i=this.columns.get(e);n&&i&&i["delete"](n)},noteAddedVariable:function(t,e){e&&this.insertColVar(t,e)},getInternalInfo:function(){var t="Tableau Information:\n";return t+="Rows: "+this.rows.size,t+=" (= "+(this.rows.size-1)+" constraints)",t+="\nColumns: "+this.columns.size,t+="\nInfeasible Rows: "+this._infeasibleRows.size,t+="\nExternal basic variables: "+this._externalRows.size,t+="\nExternal parametric variables: ",t+=this._externalParametricVars.size,t+="\n"},toString:function(){var t="Tableau:\n";return this.rows.each(function(e,n){t+=e,t+=" <==> ",t+=n,t+="\n"}),t+="\nColumns:\n",t+=this.columns,t+="\nInfeasible rows: ",t+=this._infeasibleRows,t+="External basic variables: ",t+=this._externalRows,t+="External parametric variables: ",t+=this._externalParametricVars},insertColVar:function(e,n){var i=this.columns.get(e);i||(i=new t.HashSet,this.columns.set(e,i)),i.add(n)},addRow:function(e,n){t.trace&&t.fnenterprint("addRow: "+e+", "+n),this.rows.set(e,n),n.terms.each(function(t){this.insertColVar(t,e),t.isExternal&&this._externalParametricVars.add(t)},this),e.isExternal&&this._externalRows.add(e),t.trace&&t.traceprint(""+this)},removeColumn:function(e){t.trace&&t.fnenterprint("removeColumn:"+e);var n=this.columns.get(e);n?(this.columns["delete"](e),n.each(function(t){var n=this.rows.get(t);n.terms["delete"](e)},this)):t.trace&&console.log("Could not find var",e,"in columns"),e.isExternal&&(this._externalRows["delete"](e),this._externalParametricVars["delete"](e))},removeRow:function(e){t.trace&&t.fnenterprint("removeRow:"+e);var n=this.rows.get(e);return t.assert(null!=n),n.terms.each(function(n){var i=this.columns.get(n);null!=i&&(t.trace&&console.log("removing from varset:",e),i["delete"](e))},this),this._infeasibleRows["delete"](e),e.isExternal&&this._externalRows["delete"](e),this.rows["delete"](e),t.trace&&t.fnexitprint("returning "+n),n},substituteOut:function(e,n){t.trace&&t.fnenterprint("substituteOut:"+e+", "+n),t.trace&&t.traceprint(""+this);var i=this.columns.get(e);i.each(function(t){var i=this.rows.get(t);i.substituteOut(e,n,t,this),t.isRestricted&&0>i.constant&&this._infeasibleRows.add(t)},this),e.isExternal&&(this._externalRows.add(e),this._externalParametricVars["delete"](e)),this.columns["delete"](e)},columnsHasKey:function(t){return!!this.columns.get(t)}})}(this.c||module.parent.exports||{}),function(t){var e=t.Tableau,n=e.prototype,i=1e-8,r=t.Strength.weak;t.SimplexSolver=t.inherit({"extends":t.Tableau,initialize:function(){t.Tableau.call(this),this._stayMinusErrorVars=[],this._stayPlusErrorVars=[],this._errorVars=new t.HashTable,this._markerVars=new t.HashTable,this._objective=new t.ObjectiveVariable({name:"Z"}),this._editVarMap=new t.HashTable,this._editVarList=[],this._slackCounter=0,this._artificialCounter=0,this._dummyCounter=0,this.autoSolve=!0,this._fNeedsSolving=!1,this._optimizeCount=0,this.rows.set(this._objective,new t.Expression),this._stkCedcns=[0],t.trace&&t.traceprint("objective expr == "+this.rows.get(this._objective))},addLowerBound:function(e,n){var i=new t.Inequality(e,t.GEQ,new t.Expression(n));return this.addConstraint(i)},addUpperBound:function(e,n){var i=new t.Inequality(e,t.LEQ,new t.Expression(n));return this.addConstraint(i)},addBounds:function(t,e,n){return this.addLowerBound(t,e),this.addUpperBound(t,n),this},add:function(){for(var t=0;arguments.length>t;t++)this.addConstraint(arguments[t]);return this},addConstraint:function(e){t.trace&&t.fnenterprint("addConstraint: "+e);var n=Array(2),i=Array(1),r=this.newExpression(e,n,i);if(i=i[0],this.tryAddingDirectly(r)||this.addWithArtificialVariable(r),this._fNeedsSolving=!0,e.isEditConstraint){var s=this._editVarMap.size,a=n[0],l=n[1];!a instanceof t.SlackVariable&&console.warn("cvEplus not a slack variable =",a),!l instanceof t.SlackVariable&&console.warn("cvEminus not a slack variable =",l),t.debug&&console.log("new c.EditInfo("+e+", "+a+", "+l+", "+i+", "+s+")");var o=new t.EditInfo(e,a,l,i,s);this._editVarMap.set(e.variable,o),this._editVarList[s]={v:e.variable,info:o}}return this.autoSolve&&(this.optimize(this._objective),this._setExternalVariables()),this},addConstraintNoException:function(e){t.trace&&t.fnenterprint("addConstraintNoException: "+e);try{return this.addConstraint(e),!0}catch(n){return!1}},addEditVar:function(e,n){return t.trace&&t.fnenterprint("addEditVar: "+e+" @ "+n),this.addConstraint(new t.EditConstraint(e,n||t.Strength.strong))},beginEdit:function(){return t.assert(this._editVarMap.size>0,"_editVarMap.size > 0"),this._infeasibleRows.clear(),this._resetStayConstants(),this._stkCedcns.push(this._editVarMap.size),this},endEdit:function(){return t.assert(this._editVarMap.size>0,"_editVarMap.size > 0"),this.resolve(),this._stkCedcns.pop(),this.removeEditVarsTo(this._stkCedcns[this._stkCedcns.length-1]),this},removeAllEditVars:function(){return this.removeEditVarsTo(0)},removeEditVarsTo:function(e){try{for(var n=this._editVarList.length,i=e;n>i;i++)this._editVarList[i]&&this.removeConstraint(this._editVarMap.get(this._editVarList[i].v).constraint);return this._editVarList.length=e,t.assert(this._editVarMap.size==e,"_editVarMap.size == n"),this}catch(r){throw new t.InternalError("Constraint not found in removeEditVarsTo")}},addPointStays:function(e){return t.trace&&console.log("addPointStays",e),e.forEach(function(t,e){this.addStay(t.x,r,Math.pow(2,e)),this.addStay(t.y,r,Math.pow(2,e))},this),this},addStay:function(e,n,i){var s=new t.StayConstraint(e,n||r,i||1);return this.addConstraint(s)},removeConstraint:function(t){return this.removeConstraintInternal(t),this},removeConstraintInternal:function(e){t.trace&&t.fnenterprint("removeConstraintInternal: "+e),t.trace&&t.traceprint(""+this),this._fNeedsSolving=!0,this._resetStayConstants();var n=this.rows.get(this._objective),i=this._errorVars.get(e);t.trace&&t.traceprint("eVars == "+i),null!=i&&i.each(function(r){var s=this.rows.get(r);null==s?n.addVariable(r,-e.weight*e.strength.symbolicWeight.value,this._objective,this):n.addExpression(s,-e.weight*e.strength.symbolicWeight.value,this._objective,this),t.trace&&t.traceprint("now eVars == "+i)},this);var r=this._markerVars.get(e);if(this._markerVars["delete"](e),null==r)throw new t.InternalError("Constraint not found in removeConstraintInternal");if(t.trace&&t.traceprint("Looking to remove var "+r),null==this.rows.get(r)){var s=this.columns.get(r);t.trace&&t.traceprint("Must pivot -- columns are "+s);var a=null,l=0;s.each(function(e){if(e.isRestricted){var n=this.rows.get(e),i=n.coefficientFor(r);if(t.trace&&t.traceprint("Marker "+r+"'s coefficient in "+n+" is "+i),0>i){var s=-n.constant/i;(null==a||l>s||t.approx(s,l)&&e.hashCodei)&&(l=i,a=t)}},this)),null==a&&(0==s.size?this.removeColumn(r):s.escapingEach(function(t){return t!=this._objective?(a=t,{brk:!0}):void 0},this)),null!=a&&this.pivot(r,a)}if(null!=this.rows.get(r)&&this.removeRow(r),null!=i&&i.each(function(t){t!=r&&this.removeColumn(t)},this),e.isStayConstraint){if(null!=i)for(var o=0;this._stayPlusErrorVars.length>o;o++)i["delete"](this._stayPlusErrorVars[o]),i["delete"](this._stayMinusErrorVars[o])}else if(e.isEditConstraint){t.assert(null!=i,"eVars != null");var u=this._editVarMap.get(e.variable);this.removeColumn(u.editMinus),this._editVarMap["delete"](e.variable)}return null!=i&&this._errorVars["delete"](i),this.autoSolve&&(this.optimize(this._objective),this._setExternalVariables()),this},reset:function(){throw t.trace&&t.fnenterprint("reset"),new t.InternalError("reset not implemented")},resolveArray:function(e){t.trace&&t.fnenterprint("resolveArray"+e);var n=e.length;this._editVarMap.each(function(t,i){var r=i.index;n>r&&this.suggestValue(t,e[r])},this),this.resolve()},resolvePair:function(t,e){this.suggestValue(this._editVarList[0].v,t),this.suggestValue(this._editVarList[1].v,e),this.resolve()},resolve:function(){t.trace&&t.fnenterprint("resolve()"),this.dualOptimize(),this._setExternalVariables(),this._infeasibleRows.clear(),this._resetStayConstants()},suggestValue:function(e,n){t.trace&&console.log("suggestValue("+e+", "+n+")");var i=this._editVarMap.get(e);if(!i)throw new t.Error("suggestValue for variable "+e+", but var is not an edit variable");var r=n-i.prevEditConstant;return i.prevEditConstant=n,this.deltaEditConstant(r,i.editPlus,i.editMinus),this},solve:function(){return this._fNeedsSolving&&(this.optimize(this._objective),this._setExternalVariables()),this},setEditedValue:function(e,n){if(!this.columnsHasKey(e)&&null==this.rows.get(e))return e.value=n,this;if(!t.approx(n,e.value)){this.addEditVar(e),this.beginEdit();try{this.suggestValue(e,n)}catch(i){throw new t.InternalError("Error in setEditedValue")}this.endEdit()}return this},addVar:function(e){if(!this.columnsHasKey(e)&&null==this.rows.get(e)){try{this.addStay(e)}catch(n){throw new t.InternalError("Error in addVar -- required failure is impossible")}t.trace&&t.traceprint("added initial stay on "+e)}return this},getInternalInfo:function(){var t=n.getInternalInfo.call(this);return t+="\nSolver info:\n",t+="Stay Error Variables: ",t+=this._stayPlusErrorVars.length+this._stayMinusErrorVars.length,t+=" ("+this._stayPlusErrorVars.length+" +, ",t+=this._stayMinusErrorVars.length+" -)\n",t+="Edit Variables: "+this._editVarMap.size,t+="\n"},getDebugInfo:function(){return""+this+this.getInternalInfo()+"\n"},toString:function(){var t=n.getInternalInfo.call(this);return t+="\n_stayPlusErrorVars: ",t+="["+this._stayPlusErrorVars+"]",t+="\n_stayMinusErrorVars: ",t+="["+this._stayMinusErrorVars+"]",t+="\n",t+="_editVarMap:\n"+this._editVarMap,t+="\n"},getConstraintMap:function(){return this._markerVars},addWithArtificialVariable:function(e){t.trace&&t.fnenterprint("addWithArtificialVariable: "+e);var n=new t.SlackVariable({value:++this._artificialCounter,prefix:"a"}),i=new t.ObjectiveVariable({name:"az"}),r=e.clone();t.trace&&t.traceprint("before addRows:\n"+this),this.addRow(i,r),this.addRow(n,e),t.trace&&t.traceprint("after addRows:\n"+this),this.optimize(i);var s=this.rows.get(i);if(t.trace&&t.traceprint("azTableauRow.constant == "+s.constant),!t.approx(s.constant,0))throw this.removeRow(i),this.removeColumn(n),new t.RequiredFailure;var a=this.rows.get(n);if(null!=a){if(a.isConstant)return this.removeRow(n),void this.removeRow(i);var l=a.anyPivotableVariable();this.pivot(l,n)}t.assert(null==this.rows.get(n),"rowExpression(av) == null"),this.removeColumn(n),this.removeRow(i)},tryAddingDirectly:function(e){t.trace&&t.fnenterprint("tryAddingDirectly: "+e);var n=this.chooseSubject(e);return null==n?(t.trace&&t.fnexitprint("returning false"),!1):(e.newSubject(n),this.columnsHasKey(n)&&this.substituteOut(n,e),this.addRow(n,e),t.trace&&t.fnexitprint("returning true"),!0)},chooseSubject:function(e){t.trace&&t.fnenterprint("chooseSubject: "+e);var n=null,i=!1,r=!1,s=e.terms,a=s.escapingEach(function(t,e){if(i){if(!t.isRestricted&&!this.columnsHasKey(t))return{retval:t}}else if(t.isRestricted){if(!r&&!t.isDummy&&0>e){var s=this.columns.get(t);(null==s||1==s.size&&this.columnsHasKey(this._objective))&&(n=t,r=!0)}}else n=t,i=!0},this);if(a&&void 0!==a.retval)return a.retval;if(null!=n)return n;var l=0,a=s.escapingEach(function(t,e){return t.isDummy?void(this.columnsHasKey(t)||(n=t,l=e)):{retval:null}},this);if(a&&void 0!==a.retval)return a.retval;if(!t.approx(e.constant,0))throw new t.RequiredFailure;return l>0&&e.multiplyMe(-1),n},deltaEditConstant:function(e,n,i){t.trace&&t.fnenterprint("deltaEditConstant :"+e+", "+n+", "+i);var r=this.rows.get(n);if(null!=r)return r.constant+=e,void(0>r.constant&&this._infeasibleRows.add(n));var s=this.rows.get(i);if(null!=s)return s.constant+=-e,void(0>s.constant&&this._infeasibleRows.add(i));var a=this.columns.get(i);a||console.log("columnVars is null -- tableau is:\n"+this),a.each(function(t){var n=this.rows.get(t),r=n.coefficientFor(i);n.constant+=r*e,t.isRestricted&&0>n.constant&&this._infeasibleRows.add(t)},this)},dualOptimize:function(){t.trace&&t.fnenterprint("dualOptimize:");for(var e=this.rows.get(this._objective);this._infeasibleRows.size;){var n=this._infeasibleRows.values()[0];this._infeasibleRows["delete"](n);var i=null,r=this.rows.get(n);if(r&&0>r.constant){var s,a=Number.MAX_VALUE,l=r.terms;if(l.each(function(n,r){if(r>0&&n.isPivotable){var l=e.coefficientFor(n);s=l/r,(a>s||t.approx(s,a)&&n.hashCodes.constant&&s.multiplyMe(-1),t.trace&&t.fnexitprint("returning "+s),s},optimize:function(e){t.trace&&t.fnenterprint("optimize: "+e),t.trace&&t.traceprint(""+this),this._optimizeCount++;var n=this.rows.get(e);t.assert(null!=n,"zRow != null");for(var r,s,a=null,l=null;;){if(r=0,s=n.terms,s.escapingEach(function(t,e){return t.isPivotable&&r>e?(r=e,a=t,{brk:1}):void 0},this),r>=-i)return;t.trace&&console.log("entryVar:",a,"objectiveCoeff:",r);var o=Number.MAX_VALUE,u=this.columns.get(a),c=0;if(u.each(function(e){if(t.trace&&t.traceprint("Checking "+e),e.isPivotable){var n=this.rows.get(e),i=n.coefficientFor(a);t.trace&&t.traceprint("pivotable, coeff = "+i),0>i&&(c=-n.constant/i,(o>c||t.approx(c,o)&&e.hashCodee;e++){var n=this.rows.get(this._stayPlusErrorVars[e]);null==n&&(n=this.rows.get(this._stayMinusErrorVars[e])),null!=n&&(n.constant=0)}},_setExternalVariables:function(){t.trace&&t.fnenterprint("_setExternalVariables:"),t.trace&&t.traceprint(""+this),this._externalParametricVars.each(function(e){null!=this.rows.get(e)?t.trace&&console.log("Error: variable"+e+" in _externalParametricVars is basic"):e.value=0},this),this._externalRows.each(function(t){var e=this.rows.get(t);t.value!=e.constant&&(t.value=e.constant)},this),this._fNeedsSolving=!1,this.onsolved()},onsolved:function(){},insertErrorVar:function(e,n){t.trace&&t.fnenterprint("insertErrorVar:"+e+", "+n);var i=this._errorVars.get(n);i||(i=new t.HashSet,this._errorVars.set(e,i)),i.add(n)}})}(this.c||module.parent.exports||{}),function(t){"use strict";t.Timer=t.inherit({initialize:function(){this.isRunning=!1,this._elapsedMs=0},start:function(){return this.isRunning=!0,this._startReading=new Date,this},stop:function(){return this.isRunning=!1,this._elapsedMs+=new Date-this._startReading,this},reset:function(){return this.isRunning=!1,this._elapsedMs=0,this},elapsedTime:function(){return this.isRunning?(this._elapsedMs+(new Date-this._startReading))/1e3:this._elapsedMs/1e3}})}(this.c||module.parent.exports||{}),__cassowary_parser=function(){function t(t){return'"'+t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape)+'"'}var e={parse:function(e,n){function i(t){H>T||(T>H&&(H=T,F=[]),F.push(t))}function r(){var t,e,n,i,r;if(i=T,r=T,t=g(),null!==t){if(n=s(),null!==n)for(e=[];null!==n;)e.push(n),n=s();else e=null;null!==e?(n=g(),null!==n?t=[t,e,n]:(t=null,T=r)):(t=null,T=r)}else t=null,T=r;return null!==t&&(t=function(t,e){return e}(i,t[1])),null===t&&(T=i),t}function s(){var t,e,n,i;return n=T,i=T,t=k(),null!==t?(e=h(),null!==e?t=[t,e]:(t=null,T=i)):(t=null,T=i),null!==t&&(t=function(t,e){return e}(n,t[0])),null===t&&(T=n),t}function a(){var t;return e.length>T?(t=e.charAt(T),T++):(t=null,0===L&&i("any character")),t}function l(){var t;return/^[a-zA-Z]/.test(e.charAt(T))?(t=e.charAt(T),T++):(t=null,0===L&&i("[a-zA-Z]")),null===t&&(36===e.charCodeAt(T)?(t="$",T++):(t=null,0===L&&i('"$"')),null===t&&(95===e.charCodeAt(T)?(t="_",T++):(t=null,0===L&&i('"_"')))),t}function o(){var t;return L++,/^[\t\x0B\f \xA0\uFEFF]/.test(e.charAt(T))?(t=e.charAt(T),T++):(t=null,0===L&&i("[\\t\\x0B\\f \\xA0\\uFEFF]")),L--,0===L&&null===t&&i("whitespace"),t}function u(){var t;return/^[\n\r\u2028\u2029]/.test(e.charAt(T))?(t=e.charAt(T),T++):(t=null,0===L&&i("[\\n\\r\\u2028\\u2029]")),t}function c(){var t;return L++,10===e.charCodeAt(T)?(t="\n",T++):(t=null,0===L&&i('"\\n"')),null===t&&("\r\n"===e.substr(T,2)?(t="\r\n",T+=2):(t=null,0===L&&i('"\\r\\n"')),null===t&&(13===e.charCodeAt(T)?(t="\r",T++):(t=null,0===L&&i('"\\r"')),null===t&&(8232===e.charCodeAt(T)?(t="\u2028",T++):(t=null,0===L&&i('"\\u2028"')),null===t&&(8233===e.charCodeAt(T)?(t="\u2029",T++):(t=null,0===L&&i('"\\u2029"')))))),L--,0===L&&null===t&&i("end of line"),t}function h(){var t,n,r;return r=T,t=g(),null!==t?(59===e.charCodeAt(T)?(n=";",T++):(n=null,0===L&&i('";"')),null!==n?t=[t,n]:(t=null,T=r)):(t=null,T=r),null===t&&(r=T,t=m(),null!==t?(n=c(),null!==n?t=[t,n]:(t=null,T=r)):(t=null,T=r),null===t&&(r=T,t=g(),null!==t?(n=f(),null!==n?t=[t,n]:(t=null,T=r)):(t=null,T=r))),t}function f(){var t,n;return n=T,L++,e.length>T?(t=e.charAt(T),T++):(t=null,0===L&&i("any character")),L--,null===t?t="":(t=null,T=n),t}function d(){var t;return L++,t=p(),null===t&&(t=b()),L--,0===L&&null===t&&i("comment"),t}function p(){var t,n,r,s,l,o,u;if(l=T,"/*"===e.substr(T,2)?(t="/*",T+=2):(t=null,0===L&&i('"/*"')),null!==t){for(n=[],o=T,u=T,L++,"*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),L--,null===r?r="":(r=null,T=u),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==r;)n.push(r),o=T,u=T,L++,"*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),L--,null===r?r="":(r=null,T=u),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==n?("*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),null!==r?t=[t,n,r]:(t=null,T=l)):(t=null,T=l)}else t=null,T=l;return t}function v(){var t,n,r,s,l,o,c;if(l=T,"/*"===e.substr(T,2)?(t="/*",T+=2):(t=null,0===L&&i('"/*"')),null!==t){for(n=[],o=T,c=T,L++,"*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),null===r&&(r=u()),L--,null===r?r="":(r=null,T=c),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==r;)n.push(r),o=T,c=T,L++,"*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),null===r&&(r=u()),L--,null===r?r="":(r=null,T=c),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==n?("*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),null!==r?t=[t,n,r]:(t=null,T=l)):(t=null,T=l)}else t=null,T=l;return t}function b(){var t,n,r,s,l,o,c;if(l=T,"//"===e.substr(T,2)?(t="//",T+=2):(t=null,0===L&&i('"//"')),null!==t){for(n=[],o=T,c=T,L++,r=u(),L--,null===r?r="":(r=null,T=c),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==r;)n.push(r),o=T,c=T,L++,r=u(),L--,null===r?r="":(r=null,T=c),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==n?t=[t,n]:(t=null,T=l)}else t=null,T=l;return t}function m(){var t,e;for(t=[],e=o(),null===e&&(e=v(),null===e&&(e=b()));null!==e;)t.push(e),e=o(),null===e&&(e=v(),null===e&&(e=b()));return t}function g(){var t,e;for(t=[],e=o(),null===e&&(e=c(),null===e&&(e=d()));null!==e;)t.push(e),e=o(),null===e&&(e=c(),null===e&&(e=d()));return t}function _(){var t,e;return e=T,t=x(),null===t&&(t=w()),null!==t&&(t=function(t,e){return{type:"NumericLiteral",value:e}}(e,t)),null===t&&(T=e),t}function w(){var t,n,r;if(r=T,/^[0-9]/.test(e.charAt(T))?(n=e.charAt(T),T++):(n=null,0===L&&i("[0-9]")),null!==n)for(t=[];null!==n;)t.push(n),/^[0-9]/.test(e.charAt(T))?(n=e.charAt(T),T++):(n=null,0===L&&i("[0-9]"));else t=null;return null!==t&&(t=function(t,e){return parseInt(e.join(""))}(r,t)),null===t&&(T=r),t}function x(){var t,n,r,s,a;return s=T,a=T,t=w(),null!==t?(46===e.charCodeAt(T)?(n=".",T++):(n=null,0===L&&i('"."')),null!==n?(r=w(),null!==r?t=[t,n,r]:(t=null,T=a)):(t=null,T=a)):(t=null,T=a),null!==t&&(t=function(t,e){return parseFloat(e.join(""))}(s,t)),null===t&&(T=s),t}function E(){var t,n,r,s;if(s=T,/^[\-+]/.test(e.charAt(T))?(t=e.charAt(T),T++):(t=null,0===L&&i("[\\-+]")),t=null!==t?t:"",null!==t){if(/^[0-9]/.test(e.charAt(T))?(r=e.charAt(T),T++):(r=null,0===L&&i("[0-9]")),null!==r)for(n=[];null!==r;)n.push(r),/^[0-9]/.test(e.charAt(T))?(r=e.charAt(T),T++):(r=null,0===L&&i("[0-9]"));else n=null;null!==n?t=[t,n]:(t=null,T=s)}else t=null,T=s;return t}function y(){var t,e;return L++,e=T,t=V(),null!==t&&(t=function(t,e){return e}(e,t)),null===t&&(T=e),L--,0===L&&null===t&&i("identifier"),t}function V(){var t,e,n,r,s;if(L++,r=T,s=T,t=l(),null!==t){for(e=[],n=l();null!==n;)e.push(n),n=l();null!==e?t=[t,e]:(t=null,T=s)}else t=null,T=s;return null!==t&&(t=function(t,e,n){return e+n.join("")}(r,t[0],t[1])),null===t&&(T=r),L--,0===L&&null===t&&i("identifier"),t}function C(){var t,n,r,s,a,l,o;return l=T,t=y(),null!==t&&(t=function(t,e){return{type:"Variable",name:e}}(l,t)),null===t&&(T=l),null===t&&(t=_(),null===t&&(l=T,o=T,40===e.charCodeAt(T)?(t="(",T++):(t=null,0===L&&i('"("')),null!==t?(n=g(),null!==n?(r=k(),null!==r?(s=g(),null!==s?(41===e.charCodeAt(T)?(a=")",T++):(a=null,0===L&&i('")"')),null!==a?t=[t,n,r,s,a]:(t=null,T=o)):(t=null,T=o)):(t=null,T=o)):(t=null,T=o)):(t=null,T=o),null!==t&&(t=function(t,e){return e}(l,t[2])),null===t&&(T=l))),t}function S(){var t,e,n,i,r;return t=C(),null===t&&(i=T,r=T,t=A(),null!==t?(e=g(),null!==e?(n=S(),null!==n?t=[t,e,n]:(t=null,T=r)):(t=null,T=r)):(t=null,T=r),null!==t&&(t=function(t,e,n){return{type:"UnaryExpression",operator:e,expression:n}}(i,t[0],t[2])),null===t&&(T=i)),t}function A(){var t;return 43===e.charCodeAt(T)?(t="+",T++):(t=null,0===L&&i('"+"')),null===t&&(45===e.charCodeAt(T)?(t="-",T++):(t=null,0===L&&i('"-"')),null===t&&(33===e.charCodeAt(T)?(t="!",T++):(t=null,0===L&&i('"!"')))),t}function z(){var t,e,n,i,r,s,a,l,o;if(a=T,l=T,t=S(),null!==t){for(e=[],o=T,n=g(),null!==n?(i=M(),null!==i?(r=g(),null!==r?(s=S(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==n;)e.push(n),o=T,n=g(),null!==n?(i=M(),null!==i?(r=g(),null!==r?(s=S(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==e?t=[t,e]:(t=null,T=l)}else t=null,T=l;return null!==t&&(t=function(t,e,n){for(var i=e,r=0;n.length>r;r++)i={type:"MultiplicativeExpression",operator:n[r][1],left:i,right:n[r][3]};return i}(a,t[0],t[1])),null===t&&(T=a),t}function M(){var t;return 42===e.charCodeAt(T)?(t="*",T++):(t=null,0===L&&i('"*"')),null===t&&(47===e.charCodeAt(T)?(t="/",T++):(t=null,0===L&&i('"/"'))),t}function O(){var t,e,n,i,r,s,a,l,o;if(a=T,l=T,t=z(),null!==t){for(e=[],o=T,n=g(),null!==n?(i=j(),null!==i?(r=g(),null!==r?(s=z(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==n;)e.push(n),o=T,n=g(),null!==n?(i=j(),null!==i?(r=g(),null!==r?(s=z(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==e?t=[t,e]:(t=null,T=l)}else t=null,T=l;return null!==t&&(t=function(t,e,n){for(var i=e,r=0;n.length>r;r++)i={type:"AdditiveExpression",operator:n[r][1],left:i,right:n[r][3]};return i}(a,t[0],t[1])),null===t&&(T=a),t}function j(){var t;return 43===e.charCodeAt(T)?(t="+",T++):(t=null,0===L&&i('"+"')),null===t&&(45===e.charCodeAt(T)?(t="-",T++):(t=null,0===L&&i('"-"'))),t}function R(){var t,e,n,i,r,s,a,l,o;if(a=T,l=T,t=O(),null!==t){for(e=[],o=T,n=g(),null!==n?(i=I(),null!==i?(r=g(),null!==r?(s=O(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==n;)e.push(n),o=T,n=g(),null!==n?(i=I(),null!==i?(r=g(),null!==r?(s=O(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==e?t=[t,e]:(t=null,T=l)}else t=null,T=l;return null!==t&&(t=function(t,e,n){for(var i=e,r=0;n.length>r;r++)i={type:"Inequality",operator:n[r][1],left:i,right:n[r][3]};return i}(a,t[0],t[1])),null===t&&(T=a),t}function I(){var t;return"<="===e.substr(T,2)?(t="<=",T+=2):(t=null,0===L&&i('"<="')),null===t&&(">="===e.substr(T,2)?(t=">=",T+=2):(t=null,0===L&&i('">="')),null===t&&(60===e.charCodeAt(T)?(t="<",T++):(t=null,0===L&&i('"<"')),null===t&&(62===e.charCodeAt(T)?(t=">",T++):(t=null,0===L&&i('">"'))))),t}function k(){var t,n,r,s,a,l,o,u,c;if(o=T,u=T,t=R(),null!==t){for(n=[],c=T,r=g(),null!==r?("=="===e.substr(T,2)?(s="==",T+=2):(s=null,0===L&&i('"=="')),null!==s?(a=g(),null!==a?(l=R(),null!==l?r=[r,s,a,l]:(r=null,T=c)):(r=null,T=c)):(r=null,T=c)):(r=null,T=c);null!==r;)n.push(r),c=T,r=g(),null!==r?("=="===e.substr(T,2)?(s="==",T+=2):(s=null,0===L&&i('"=="')),null!==s?(a=g(),null!==a?(l=R(),null!==l?r=[r,s,a,l]:(r=null,T=c)):(r=null,T=c)):(r=null,T=c)):(r=null,T=c);null!==n?t=[t,n]:(t=null,T=u)}else t=null,T=u;return null!==t&&(t=function(t,e,n){for(var i=e,r=0;n.length>r;r++)i={type:"Equality",operator:n[r][1],left:i,right:n[r][3]};return i}(o,t[0],t[1])),null===t&&(T=o),t}function N(t){t.sort();for(var e=null,n=[],i=0;t.length>i;i++)t[i]!==e&&(n.push(t[i]),e=t[i]);return n}function q(){for(var t=1,n=1,i=!1,r=0;Math.max(T,H)>r;r++){var s=e.charAt(r);"\n"===s?(i||t++,n=1,i=!1):"\r"===s||"\u2028"===s||"\u2029"===s?(t++,n=1,i=!0):(n++,i=!1)}return{line:t,column:n}}var P={start:r,Statement:s,SourceCharacter:a,IdentifierStart:l,WhiteSpace:o,LineTerminator:u,LineTerminatorSequence:c,EOS:h,EOF:f,Comment:d,MultiLineComment:p,MultiLineCommentNoLineTerminator:v,SingleLineComment:b,_:m,__:g,Literal:_,Integer:w,Real:x,SignedInteger:E,Identifier:y,IdentifierName:V,PrimaryExpression:C,UnaryExpression:S,UnaryOperator:A,MultiplicativeExpression:z,MultiplicativeOperator:M,AdditiveExpression:O,AdditiveOperator:j,InequalityExpression:R,InequalityOperator:I,LinearExpression:k};if(void 0!==n){if(void 0===P[n])throw Error("Invalid rule name: "+t(n)+".")}else n="start";var T=0,L=0,H=0,F=[],D=P[n]();if(null===D||T!==e.length){var Q=Math.max(T,H),W=e.length>Q?e.charAt(Q):null,G=q();throw new this.SyntaxError(N(F),W,Q,G.line,G.column)}return D},toSource:function(){return this._source}};return e.SyntaxError=function(e,n,i,r,s){function a(e,n){var i,r;switch(e.length){case 0:i="end of input";break;case 1:i=e[0];break;default:i=e.slice(0,e.length-1).join(", ")+" or "+e[e.length-1]}return r=n?t(n):"end of input","Expected "+i+" but "+r+" found."}this.name="SyntaxError",this.expected=e,this.found=n,this.message=a(e,n),this.offset=i,this.line=r,this.column=s},e.SyntaxError.prototype=Error.prototype,e}()}).call("undefined"!=typeof module?module.compiled=!0&&module:this); +o=new t.SlackVariable({value:this._slackCounter,prefix:"em"}),s.setVariable(o,1);var h=this.rows.get(this._objective);h.setVariable(o,e.strength.symbolicWeight.value*e.weight),this.insertErrorVar(e,o),this.noteAddedVariable(o,this._objective)}}else if(e.required)t.trace&&t.traceprint("Equality, required"),++this._dummyCounter,l=new t.DummyVariable({value:this._dummyCounter,prefix:"d"}),s.setVariable(l,1),this._markerVars.set(e,l),t.trace&&t.traceprint("Adding dummyVar == d"+this._dummyCounter);else{t.trace&&t.traceprint("Equality, not required"),++this._slackCounter,u=new t.SlackVariable({value:this._slackCounter,prefix:"ep"}),o=new t.SlackVariable({value:this._slackCounter,prefix:"em"}),s.setVariable(u,-1),s.setVariable(o,1),this._markerVars.set(e,u);var h=this.rows.get(this._objective);t.trace&&console.log(h);var f=e.strength.symbolicWeight.value*e.weight;0==f&&(t.trace&&t.traceprint("cn == "+e),t.trace&&t.traceprint("adding "+u+" and "+o+" with swCoeff == "+f)),h.setVariable(u,f),this.noteAddedVariable(u,this._objective),h.setVariable(o,f),this.noteAddedVariable(o,this._objective),this.insertErrorVar(e,o),this.insertErrorVar(e,u),e.isStayConstraint?(this._stayPlusErrorVars.push(u),this._stayMinusErrorVars.push(o)):e.isEditConstraint&&(n[0]=u,n[1]=o,i[0]=r.constant)}return 0>s.constant&&s.multiplyMe(-1),t.trace&&t.fnexitprint("returning "+s),s},optimize:function(e){t.trace&&t.fnenterprint("optimize: "+e),t.trace&&t.traceprint(""+this),this._optimizeCount++;var n=this.rows.get(e);t.assert(null!=n,"zRow != null");for(var r,s,a=null,l=null;;){if(r=0,s=n.terms,s.escapingEach(function(t,e){return t.isPivotable&&r>e?(r=e,a=t,{brk:1}):void 0},this),r>=-i)return;t.trace&&console.log("entryVar:",a,"objectiveCoeff:",r);var o=Number.MAX_VALUE,u=this.columns.get(a),c=0;if(u.each(function(e){if(t.trace&&t.traceprint("Checking "+e),e.isPivotable){var n=this.rows.get(e),i=n.coefficientFor(a);t.trace&&t.traceprint("pivotable, coeff = "+i),0>i&&(c=-n.constant/i,(o>c||t.approx(c,o)&&e.hashCodee;e++){var n=this.rows.get(this._stayPlusErrorVars[e]);null==n&&(n=this.rows.get(this._stayMinusErrorVars[e])),null!=n&&(n.constant=0)}},_setExternalVariables:function(){t.trace&&t.fnenterprint("_setExternalVariables:"),t.trace&&t.traceprint(""+this),this._externalParametricVars.each(function(e){null!=this.rows.get(e)?t.trace&&console.log("Error: variable"+e+" in _externalParametricVars is basic"):e.value=0},this),this._externalRows.each(function(t){var e=this.rows.get(t);t.value!=e.constant&&(t.value=e.constant)},this),this._fNeedsSolving=!1,this.onsolved()},onsolved:function(){},insertErrorVar:function(e,n){t.trace&&t.fnenterprint("insertErrorVar:"+e+", "+n);var i=this._errorVars.get(n);i||(i=new t.HashSet,this._errorVars.set(e,i)),i.add(n)}})}(this.c||module.parent.exports||{}),function(t){"use strict";t.Timer=t.inherit({initialize:function(){this.isRunning=!1,this._elapsedMs=0},start:function(){return this.isRunning=!0,this._startReading=new Date,this},stop:function(){return this.isRunning=!1,this._elapsedMs+=new Date-this._startReading,this},reset:function(){return this.isRunning=!1,this._elapsedMs=0,this},elapsedTime:function(){return this.isRunning?(this._elapsedMs+(new Date-this._startReading))/1e3:this._elapsedMs/1e3}})}(this.c||module.parent.exports||{}),__cassowary_parser=function(){function t(t){return'"'+t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape)+'"'}var e={parse:function(e,n){function i(t){H>T||(T>H&&(H=T,F=[]),F.push(t))}function r(){var t,e,n,i,r;if(i=T,r=T,t=g(),null!==t){if(n=s(),null!==n)for(e=[];null!==n;)e.push(n),n=s();else e=null;null!==e?(n=g(),null!==n?t=[t,e,n]:(t=null,T=r)):(t=null,T=r)}else t=null,T=r;return null!==t&&(t=function(t,e){return e}(i,t[1])),null===t&&(T=i),t}function s(){var t,e,n,i;return n=T,i=T,t=k(),null!==t?(e=h(),null!==e?t=[t,e]:(t=null,T=i)):(t=null,T=i),null!==t&&(t=function(t,e){return e}(n,t[0])),null===t&&(T=n),t}function a(){var t;return e.length>T?(t=e.charAt(T),T++):(t=null,0===L&&i("any character")),t}function l(){var t;return/^[a-zA-Z]/.test(e.charAt(T))?(t=e.charAt(T),T++):(t=null,0===L&&i("[a-zA-Z]")),null===t&&(36===e.charCodeAt(T)?(t="$",T++):(t=null,0===L&&i('"$"')),null===t&&(95===e.charCodeAt(T)?(t="_",T++):(t=null,0===L&&i('"_"')))),t}function o(){var t;return L++,/^[\t\x0B\f \xA0\uFEFF]/.test(e.charAt(T))?(t=e.charAt(T),T++):(t=null,0===L&&i("[\\t\\x0B\\f \\xA0\\uFEFF]")),L--,0===L&&null===t&&i("whitespace"),t}function u(){var t;return/^[\n\r\u2028\u2029]/.test(e.charAt(T))?(t=e.charAt(T),T++):(t=null,0===L&&i("[\\n\\r\\u2028\\u2029]")),t}function c(){var t;return L++,10===e.charCodeAt(T)?(t="\n",T++):(t=null,0===L&&i('"\\n"')),null===t&&("\r\n"===e.substr(T,2)?(t="\r\n",T+=2):(t=null,0===L&&i('"\\r\\n"')),null===t&&(13===e.charCodeAt(T)?(t="\r",T++):(t=null,0===L&&i('"\\r"')),null===t&&(8232===e.charCodeAt(T)?(t="\u2028",T++):(t=null,0===L&&i('"\\u2028"')),null===t&&(8233===e.charCodeAt(T)?(t="\u2029",T++):(t=null,0===L&&i('"\\u2029"')))))),L--,0===L&&null===t&&i("end of line"),t}function h(){var t,n,r;return r=T,t=g(),null!==t?(59===e.charCodeAt(T)?(n=";",T++):(n=null,0===L&&i('";"')),null!==n?t=[t,n]:(t=null,T=r)):(t=null,T=r),null===t&&(r=T,t=m(),null!==t?(n=c(),null!==n?t=[t,n]:(t=null,T=r)):(t=null,T=r),null===t&&(r=T,t=g(),null!==t?(n=f(),null!==n?t=[t,n]:(t=null,T=r)):(t=null,T=r))),t}function f(){var t,n;return n=T,L++,e.length>T?(t=e.charAt(T),T++):(t=null,0===L&&i("any character")),L--,null===t?t="":(t=null,T=n),t}function d(){var t;return L++,t=p(),null===t&&(t=b()),L--,0===L&&null===t&&i("comment"),t}function p(){var t,n,r,s,l,o,u;if(l=T,"/*"===e.substr(T,2)?(t="/*",T+=2):(t=null,0===L&&i('"/*"')),null!==t){for(n=[],o=T,u=T,L++,"*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),L--,null===r?r="":(r=null,T=u),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==r;)n.push(r),o=T,u=T,L++,"*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),L--,null===r?r="":(r=null,T=u),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==n?("*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),null!==r?t=[t,n,r]:(t=null,T=l)):(t=null,T=l)}else t=null,T=l;return t}function v(){var t,n,r,s,l,o,c;if(l=T,"/*"===e.substr(T,2)?(t="/*",T+=2):(t=null,0===L&&i('"/*"')),null!==t){for(n=[],o=T,c=T,L++,"*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),null===r&&(r=u()),L--,null===r?r="":(r=null,T=c),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==r;)n.push(r),o=T,c=T,L++,"*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),null===r&&(r=u()),L--,null===r?r="":(r=null,T=c),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==n?("*/"===e.substr(T,2)?(r="*/",T+=2):(r=null,0===L&&i('"*/"')),null!==r?t=[t,n,r]:(t=null,T=l)):(t=null,T=l)}else t=null,T=l;return t}function b(){var t,n,r,s,l,o,c;if(l=T,"//"===e.substr(T,2)?(t="//",T+=2):(t=null,0===L&&i('"//"')),null!==t){for(n=[],o=T,c=T,L++,r=u(),L--,null===r?r="":(r=null,T=c),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==r;)n.push(r),o=T,c=T,L++,r=u(),L--,null===r?r="":(r=null,T=c),null!==r?(s=a(),null!==s?r=[r,s]:(r=null,T=o)):(r=null,T=o);null!==n?t=[t,n]:(t=null,T=l)}else t=null,T=l;return t}function m(){var t,e;for(t=[],e=o(),null===e&&(e=v(),null===e&&(e=b()));null!==e;)t.push(e),e=o(),null===e&&(e=v(),null===e&&(e=b()));return t}function g(){var t,e;for(t=[],e=o(),null===e&&(e=c(),null===e&&(e=d()));null!==e;)t.push(e),e=o(),null===e&&(e=c(),null===e&&(e=d()));return t}function _(){var t,e;return e=T,t=x(),null===t&&(t=w()),null!==t&&(t=function(t,e){return{type:"NumericLiteral",value:e}}(e,t)),null===t&&(T=e),t}function w(){var t,n,r;if(r=T,/^[0-9]/.test(e.charAt(T))?(n=e.charAt(T),T++):(n=null,0===L&&i("[0-9]")),null!==n)for(t=[];null!==n;)t.push(n),/^[0-9]/.test(e.charAt(T))?(n=e.charAt(T),T++):(n=null,0===L&&i("[0-9]"));else t=null;return null!==t&&(t=function(t,e){return parseInt(e.join(""))}(r,t)),null===t&&(T=r),t}function x(){var t,n,r,s,a;return s=T,a=T,t=w(),null!==t?(46===e.charCodeAt(T)?(n=".",T++):(n=null,0===L&&i('"."')),null!==n?(r=w(),null!==r?t=[t,n,r]:(t=null,T=a)):(t=null,T=a)):(t=null,T=a),null!==t&&(t=function(t,e){return parseFloat(e.join(""))}(s,t)),null===t&&(T=s),t}function E(){var t,n,r,s;if(s=T,/^[\-+]/.test(e.charAt(T))?(t=e.charAt(T),T++):(t=null,0===L&&i("[\\-+]")),t=null!==t?t:"",null!==t){if(/^[0-9]/.test(e.charAt(T))?(r=e.charAt(T),T++):(r=null,0===L&&i("[0-9]")),null!==r)for(n=[];null!==r;)n.push(r),/^[0-9]/.test(e.charAt(T))?(r=e.charAt(T),T++):(r=null,0===L&&i("[0-9]"));else n=null;null!==n?t=[t,n]:(t=null,T=s)}else t=null,T=s;return t}function y(){var t,e;return L++,e=T,t=V(),null!==t&&(t=function(t,e){return e}(e,t)),null===t&&(T=e),L--,0===L&&null===t&&i("identifier"),t}function V(){var t,e,n,r,s;if(L++,r=T,s=T,t=l(),null!==t){for(e=[],n=l();null!==n;)e.push(n),n=l();null!==e?t=[t,e]:(t=null,T=s)}else t=null,T=s;return null!==t&&(t=function(t,e,n){return e+n.join("")}(r,t[0],t[1])),null===t&&(T=r),L--,0===L&&null===t&&i("identifier"),t}function C(){var t,n,r,s,a,l,o;return l=T,t=y(),null!==t&&(t=function(t,e){return{type:"Variable",name:e}}(l,t)),null===t&&(T=l),null===t&&(t=_(),null===t&&(l=T,o=T,40===e.charCodeAt(T)?(t="(",T++):(t=null,0===L&&i('"("')),null!==t?(n=g(),null!==n?(r=k(),null!==r?(s=g(),null!==s?(41===e.charCodeAt(T)?(a=")",T++):(a=null,0===L&&i('")"')),null!==a?t=[t,n,r,s,a]:(t=null,T=o)):(t=null,T=o)):(t=null,T=o)):(t=null,T=o)):(t=null,T=o),null!==t&&(t=function(t,e){return e}(l,t[2])),null===t&&(T=l))),t}function S(){var t,e,n,i,r;return t=C(),null===t&&(i=T,r=T,t=A(),null!==t?(e=g(),null!==e?(n=S(),null!==n?t=[t,e,n]:(t=null,T=r)):(t=null,T=r)):(t=null,T=r),null!==t&&(t=function(t,e,n){return{type:"UnaryExpression",operator:e,expression:n}}(i,t[0],t[2])),null===t&&(T=i)),t}function A(){var t;return 43===e.charCodeAt(T)?(t="+",T++):(t=null,0===L&&i('"+"')),null===t&&(45===e.charCodeAt(T)?(t="-",T++):(t=null,0===L&&i('"-"')),null===t&&(33===e.charCodeAt(T)?(t="!",T++):(t=null,0===L&&i('"!"')))),t}function z(){var t,e,n,i,r,s,a,l,o;if(a=T,l=T,t=S(),null!==t){for(e=[],o=T,n=g(),null!==n?(i=M(),null!==i?(r=g(),null!==r?(s=S(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==n;)e.push(n),o=T,n=g(),null!==n?(i=M(),null!==i?(r=g(),null!==r?(s=S(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==e?t=[t,e]:(t=null,T=l)}else t=null,T=l;return null!==t&&(t=function(t,e,n){for(var i=e,r=0;n.length>r;r++)i={type:"MultiplicativeExpression",operator:n[r][1],left:i,right:n[r][3]};return i}(a,t[0],t[1])),null===t&&(T=a),t}function M(){var t;return 42===e.charCodeAt(T)?(t="*",T++):(t=null,0===L&&i('"*"')),null===t&&(47===e.charCodeAt(T)?(t="/",T++):(t=null,0===L&&i('"/"'))),t}function O(){var t,e,n,i,r,s,a,l,o;if(a=T,l=T,t=z(),null!==t){for(e=[],o=T,n=g(),null!==n?(i=j(),null!==i?(r=g(),null!==r?(s=z(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==n;)e.push(n),o=T,n=g(),null!==n?(i=j(),null!==i?(r=g(),null!==r?(s=z(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==e?t=[t,e]:(t=null,T=l)}else t=null,T=l;return null!==t&&(t=function(t,e,n){for(var i=e,r=0;n.length>r;r++)i={type:"AdditiveExpression",operator:n[r][1],left:i,right:n[r][3]};return i}(a,t[0],t[1])),null===t&&(T=a),t}function j(){var t;return 43===e.charCodeAt(T)?(t="+",T++):(t=null,0===L&&i('"+"')),null===t&&(45===e.charCodeAt(T)?(t="-",T++):(t=null,0===L&&i('"-"'))),t}function R(){var t,e,n,i,r,s,a,l,o;if(a=T,l=T,t=O(),null!==t){for(e=[],o=T,n=g(),null!==n?(i=I(),null!==i?(r=g(),null!==r?(s=O(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==n;)e.push(n),o=T,n=g(),null!==n?(i=I(),null!==i?(r=g(),null!==r?(s=O(),null!==s?n=[n,i,r,s]:(n=null,T=o)):(n=null,T=o)):(n=null,T=o)):(n=null,T=o);null!==e?t=[t,e]:(t=null,T=l)}else t=null,T=l;return null!==t&&(t=function(t,e,n){for(var i=e,r=0;n.length>r;r++)i={type:"Inequality",operator:n[r][1],left:i,right:n[r][3]};return i}(a,t[0],t[1])),null===t&&(T=a),t}function I(){var t;return"<="===e.substr(T,2)?(t="<=",T+=2):(t=null,0===L&&i('"<="')),null===t&&(">="===e.substr(T,2)?(t=">=",T+=2):(t=null,0===L&&i('">="')),null===t&&(60===e.charCodeAt(T)?(t="<",T++):(t=null,0===L&&i('"<"')),null===t&&(62===e.charCodeAt(T)?(t=">",T++):(t=null,0===L&&i('">"'))))),t}function k(){var t,n,r,s,a,l,o,u,c;if(o=T,u=T,t=R(),null!==t){for(n=[],c=T,r=g(),null!==r?("=="===e.substr(T,2)?(s="==",T+=2):(s=null,0===L&&i('"=="')),null!==s?(a=g(),null!==a?(l=R(),null!==l?r=[r,s,a,l]:(r=null,T=c)):(r=null,T=c)):(r=null,T=c)):(r=null,T=c);null!==r;)n.push(r),c=T,r=g(),null!==r?("=="===e.substr(T,2)?(s="==",T+=2):(s=null,0===L&&i('"=="')),null!==s?(a=g(),null!==a?(l=R(),null!==l?r=[r,s,a,l]:(r=null,T=c)):(r=null,T=c)):(r=null,T=c)):(r=null,T=c);null!==n?t=[t,n]:(t=null,T=u)}else t=null,T=u;return null!==t&&(t=function(t,e,n){for(var i=e,r=0;n.length>r;r++)i={type:"Equality",operator:n[r][1],left:i,right:n[r][3]};return i}(o,t[0],t[1])),null===t&&(T=o),t}function N(t){t.sort();for(var e=null,n=[],i=0;t.length>i;i++)t[i]!==e&&(n.push(t[i]),e=t[i]);return n}function q(){for(var t=1,n=1,i=!1,r=0;Math.max(T,H)>r;r++){var s=e.charAt(r);"\n"===s?(i||t++,n=1,i=!1):"\r"===s||"\u2028"===s||"\u2029"===s?(t++,n=1,i=!0):(n++,i=!1)}return{line:t,column:n}}var P={start:r,Statement:s,SourceCharacter:a,IdentifierStart:l,WhiteSpace:o,LineTerminator:u,LineTerminatorSequence:c,EOS:h,EOF:f,Comment:d,MultiLineComment:p,MultiLineCommentNoLineTerminator:v,SingleLineComment:b,_:m,__:g,Literal:_,Integer:w,Real:x,SignedInteger:E,Identifier:y,IdentifierName:V,PrimaryExpression:C,UnaryExpression:S,UnaryOperator:A,MultiplicativeExpression:z,MultiplicativeOperator:M,AdditiveExpression:O,AdditiveOperator:j,InequalityExpression:R,InequalityOperator:I,LinearExpression:k};if(void 0!==n){if(void 0===P[n])throw Error("Invalid rule name: "+t(n)+".")}else n="start";var T=0,L=0,H=0,F=[],D=P[n]();if(null===D||T!==e.length){var Q=Math.max(T,H),W=e.length>Q?e.charAt(Q):null,G=q();throw new this.SyntaxError(N(F),W,Q,G.line,G.column)}return D},toSource:function(){return this._source}};return e.SyntaxError=function(e,n,i,r,s){function a(e,n){var i,r;switch(e.length){case 0:i="end of input";break;case 1:i=e[0];break;default:i=e.slice(0,e.length-1).join(", ")+" or "+e[e.length-1]}return r=n?t(n):"end of input","Expected "+i+" but "+r+" found."}this.name="SyntaxError",this.expected=e,this.found=n,this.message=a(e,n),this.offset=i,this.line=r,this.column=s},e.SyntaxError.prototype=Error.prototype,e}()}).call("undefined"!=typeof module?module.compiled=module:this); },{}]},{},[1])(1) }); diff --git a/dist/autolayout.min.map b/dist/autolayout.min.map index 822af1d..1f1472d 100644 --- a/dist/autolayout.min.map +++ b/dist/autolayout.min.map @@ -1 +1 @@ -{"version":3,"sources":["../node_modules/browserify/node_modules/browser-pack/_prelude.js","../_stream_0.js","../node_modules/cassowary/bin/c.js"],"names":["_processEqualSpacer","context","stackView","equalSpacerIndex","name","lineIndex","constraints","push","view1","attr1","horizontal","Attribute","WIDTH","HEIGHT","relation","Relation","EQU","view2","attr2","priority","view","multiplier","undefined","constant","CONST","i","prevViews","length","prevView","orientation","Orientation","HORIZONTAL","prevAttr","RIGHT","LEFT","curAttr","VERTICAL","BOTTOM","TOP","ZINDEX","_processProportionalSpacer","proportionalSpacerIndex","_processStackView","subView","viewName","orientations","stack","processedOrientations","type","j","subViews","_getRange","range","match","substring","parseInt","start","res","_processCascade","cascade","parentItem","curViews","item","Array","isArray","hasOwnProperty","items","z","viewRange","r","curView","p","n","attribute","variable","VARIABLE","equalSpacing","err","Error","column","$parserOffset","_getConst","value","vr","c","Variable","this","_solver","addConstraint","StayConstraint","Strength","required","_getSubView","_subViews","SubView","solver","_type","_parentSubView","_getSpacing","constraint","index","_spacingVars","_spacingExpr","addEditVar","minus","suggestValue","_spacing","_addConstraint","call","strength","_getAttr","plus","times","defaultPriorityStrength","Equation","GEQ","Inequality","LEQ","_compareSpacing","old","newz","require","NOTANATTRIBUTE","CENTERX","CENTERY","Priority","REQUIRED","DEFAULTHIGH","DEFAULTLOW","parser","peg$subclass","child","parent","ctor","constructor","prototype","SyntaxError","message","expected","found","offset","line","parse","input","peg$reportedPos","peg$computePosDetails","pos","advance","details","startPos","endPos","ch","charAt","seenCR","peg$cachedPos","peg$cachedPosDetails","peg$fail","peg$maxFailPos","peg$currPos","peg$maxFailExpected","peg$buildException","cleanupExpected","sort","a","b","description","splice","buildMessage","stringEscape","s","hex","charCodeAt","toString","toUpperCase","replace","expectedDesc","foundDesc","expectedDescs","slice","join","posDetails","peg$parsevisualFormatString","s0","s1","s2","s3","s4","s5","s6","s7","peg$parseorientation","peg$FAILED","peg$c2","peg$silentFails","peg$c3","peg$c0","peg$c1","peg$parsesuperview","peg$parseconnection","peg$parseview","peg$c5","peg$c6","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$parseviewName","peg$parsepredicateListWithParens","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$parsepredicateList","peg$c21","peg$c22","peg$c23","peg$c24","peg$parsesimplePredicate","peg$parsenumber","peg$c25","peg$c26","peg$c27","peg$parsepredicate","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$parserelation","peg$parseobjectOfPredicate","peg$c33","peg$c34","peg$parsepriority","peg$c35","substr","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$parseconstant","peg$c45","test","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","extend","dst","arguments","k","peg$result","options","peg$startRuleFunctions","visualFormatString","peg$startRuleFunction","o","superto","views","tosuper","concat","apply","orient","predicates","predicateList","ps","map","digits","f","v","decimals","parseFloat","startRule","parserExt","peg$parseviewGroup","peg$parsecomments","peg$parseviewNameRange","peg$parsecascadedViews","peg$parseequalSpacingPredicateList","peg$parsepercentage","peg$parseequalSpacingPredicate","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$parseviewPredicate","peg$c67","peg$c68","peg$c69","peg$c70","peg$c71","peg$c72","peg$c73","peg$parseattribute","peg$parsemultiplier","peg$parseconstantExpr","peg$c74","peg$c75","peg$c76","peg$c77","peg$c78","peg$c79","peg$c80","peg$c81","peg$c82","peg$c83","peg$c84","peg$c85","peg$c86","peg$c87","peg$c88","peg$c89","peg$c90","peg$c91","peg$c92","peg$c93","peg$c94","peg$c95","peg$c96","peg$c97","peg$c98","peg$c99","peg$c100","peg$c101","peg$c102","peg$c103","peg$c104","peg$c105","peg$c106","peg$c107","peg$c108","peg$c109","peg$c110","peg$c111","peg$parserange","peg$c112","peg$c113","peg$c114","peg$c115","peg$c116","peg$c117","peg$c118","peg$c119","peg$c120","comments","cascadedViews","connection","vn","m","d","metaInfoCategories","VisualFormat","visualFormat","extended","indexOf","outFormat","lineSeperator","parseLine","source","lines","parseOptions","strict","split","trim","prefix","key","metaInfo","category","prefixedCategory","names","viewport","aspectRatio","height","width","widths","isNaN","heights","spacing","JSON","sIdx","len","_name","_attr","left","top","stringify","toJSON","attr","divide","_getAttrValue","_intrinsicWidth","resolve","_intrinsicHeight","View","SimplexSolver","setSpacing","setSize","addConstraints","intrinsicWidth","intrinsicHeight","AutoLayout","module","exports","bind","Object","defineProperty","Function","enumerable","configurable","writable","HTMLElement","tagName","e","g","__super__","h","debug","trace","verbose","traceAdded","GC","inherit","initialize","_t","create","l","__proto__","created","decorate","upgrade","document","createElement","own","getOwnPropertyDescriptor","get","set","getOwnPropertyNames","forEach","traceprint","console","log","fnenterprint","fnexitprint","assert","InternalError","Expression","approx","Math","abs","_inc","parseJSON","load","hashCode","keys","HashTable","size","_store","_keyStrMap","_deleted","clear","_compact","_compactThreshold","_perhapsCompact","_size","delete","each","escapingEach","retval","brk","clone","equals","HashSet","storage","add","values","has","data","fromJSON","_description",{"end":{"file":"?","comments_before":[],"nlb":false,"endpos":6565,"endcol":6125,"endline":16,"pos":6554,"col":6114,"line":16,"value":"description","type":"name"},"start":{"file":"?","comments_before":[],"nlb":false,"endpos":6565,"endcol":6125,"endline":16,"pos":6554,"col":6114,"line":16,"value":"description","type":"name"},"name":"description"},"extends","ConstraintNotFound","NonExpression","NotEnoughStays","RequiredFailure","TooDifficult","SymbolicWeight","symbolicWeight","isRequired","strong","medium","weak","AbstractVariable","isDummy","isExternal","isPivotable","isRestricted","_init","_prefix","_map","DummyVariable","ObjectiveVariable","SlackVariable","Point","_x","_y","x","y","terms","setVariable","initializeFromHash","multiplyMe","isConstant","addExpression","addVariable","noteRemovedVariable","noteAddedVariable","anyPivotableVariable","substituteOut","changeSubject","newSubject","coefficientFor","Plus","Minus","Times","Divide","AbstractConstraint","weight","isEditConstraint","isInequality","isStayConstraint","expression","EditConstraint","Constraint","_cloneOrNewCle","q","t","EditInfo","editPlus","editMinus","prevEditConstant","Tableau","columns","rows","_infeasibleRows","_externalRows","_externalParametricVars","insertColVar","getInternalInfo","addRow","removeColumn","removeRow","columnsHasKey","_stayMinusErrorVars","_stayPlusErrorVars","_errorVars","_markerVars","_objective","_editVarMap","_editVarList","_slackCounter","_artificialCounter","_dummyCounter","autoSolve","_fNeedsSolving","_optimizeCount","_stkCedcns","addLowerBound","addUpperBound","addBounds","newExpression","tryAddingDirectly","addWithArtificialVariable","warn","info","optimize","_setExternalVariables","addConstraintNoException","beginEdit","_resetStayConstants","endEdit","pop","removeEditVarsTo","removeAllEditVars","removeConstraint","addPointStays","addStay","pow","removeConstraintInternal","pivot","reset","resolveArray","resolvePair","dualOptimize","deltaEditConstant","solve","setEditedValue","addVar","getDebugInfo","getConstraintMap","chooseSubject","Number","MAX_VALUE","insertErrorVar","time","timeEnd","onsolved","Timer","isRunning","_elapsedMs","_startReading","Date","stop","elapsedTime","__cassowary_parser","escape","P","u","w","A","C","B","D","E","F","G","H","I","operator","J","K","right","L","M","N","O","Q","R","max","Statement","SourceCharacter","IdentifierStart","WhiteSpace","LineTerminator","LineTerminatorSequence","EOS","EOF","Comment","MultiLineComment","MultiLineCommentNoLineTerminator","SingleLineComment","_","__","Literal","Integer","Real","SignedInteger","Identifier","IdentifierName","PrimaryExpression","UnaryExpression","UnaryOperator","MultiplicativeExpression","MultiplicativeOperator","AdditiveExpression","AdditiveOperator","InequalityExpression","InequalityOperator","LinearExpression","S","T","U","V","toSource","_source","compiled"],"mappings":"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","file":"bundle.js","sourcesContent":["(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 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { visualFormatString: peg$parsevisualFormatString },\n peg$startRuleFunction = peg$parsevisualFormatString,\n\n peg$c0 = peg$FAILED,\n peg$c1 = null,\n peg$c2 = \":\",\n peg$c3 = { type: \"literal\", value: \":\", description: \"\\\":\\\"\" },\n peg$c4 = [],\n peg$c5 = function(o, superto, view, views, tosuper) { return {\n orientation: o ? o[0] : 'horizontal',\n cascade: (superto || []).concat(\n [view],\n [].concat.apply([], views),\n (tosuper || [])\n )\n }\n },\n peg$c6 = \"H\",\n peg$c7 = { type: \"literal\", value: \"H\", description: \"\\\"H\\\"\" },\n peg$c8 = \"V\",\n peg$c9 = { type: \"literal\", value: \"V\", description: \"\\\"V\\\"\" },\n peg$c10 = function(orient) { return orient == 'H' ? 'horizontal' : 'vertical' },\n peg$c11 = \"|\",\n peg$c12 = { type: \"literal\", value: \"|\", description: \"\\\"|\\\"\" },\n peg$c13 = function() { return { view: null } },\n peg$c14 = \"[\",\n peg$c15 = { type: \"literal\", value: \"[\", description: \"\\\"[\\\"\" },\n peg$c16 = \"]\",\n peg$c17 = { type: \"literal\", value: \"]\", description: \"\\\"]\\\"\" },\n peg$c18 = function(view, predicates) { return extend(view, predicates ? { constraints: predicates } : {}) },\n peg$c19 = \"-\",\n peg$c20 = { type: \"literal\", value: \"-\", description: \"\\\"-\\\"\" },\n peg$c21 = function(predicateList) { return predicateList },\n peg$c22 = function() { return [{ relation: 'equ', constant: 'default', $parserOffset: offset() }] },\n peg$c23 = \"\",\n peg$c24 = function() { return [{ relation: 'equ', constant: 0, $parserOffset: offset() }] },\n peg$c25 = function(n) { return [{ relation: 'equ', constant: n, $parserOffset: offset() }] },\n peg$c26 = \"(\",\n peg$c27 = { type: \"literal\", value: \"(\", description: \"\\\"(\\\"\" },\n peg$c28 = \",\",\n peg$c29 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c30 = \")\",\n peg$c31 = { type: \"literal\", value: \")\", description: \"\\\")\\\"\" },\n peg$c32 = function(p, ps) { return [p].concat(ps.map(function(p){ return p[1] })) },\n peg$c33 = \"@\",\n peg$c34 = { type: \"literal\", value: \"@\", description: \"\\\"@\\\"\" },\n peg$c35 = function(r, o, p) { return extend({ relation: 'equ' }, (r || {}), o, (p ? p[1]: {})) },\n peg$c36 = \"==\",\n peg$c37 = { type: \"literal\", value: \"==\", description: \"\\\"==\\\"\" },\n peg$c38 = function() { return { relation: 'equ', $parserOffset: offset() } },\n peg$c39 = \"<=\",\n peg$c40 = { type: \"literal\", value: \"<=\", description: \"\\\"<=\\\"\" },\n peg$c41 = function() { return { relation: 'leq', $parserOffset: offset() } },\n peg$c42 = \">=\",\n peg$c43 = { type: \"literal\", value: \">=\", description: \"\\\">=\\\"\" },\n peg$c44 = function() { return { relation: 'geq', $parserOffset: offset() } },\n peg$c45 = /^[0-9]/,\n peg$c46 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c47 = function(digits) { return { priority: parseInt(digits.join(\"\"), 10) } },\n peg$c48 = function(n) { return { constant: n } },\n peg$c49 = /^[a-zA-Z_]/,\n peg$c50 = { type: \"class\", value: \"[a-zA-Z_]\", description: \"[a-zA-Z_]\" },\n peg$c51 = /^[a-zA-Z0-9_]/,\n peg$c52 = { type: \"class\", value: \"[a-zA-Z0-9_]\", description: \"[a-zA-Z0-9_]\" },\n peg$c53 = function(f, v) { return { view: f + v } },\n peg$c54 = \".\",\n peg$c55 = { type: \"literal\", value: \".\", description: \"\\\".\\\"\" },\n peg$c56 = function(digits, decimals) { return parseFloat(digits.concat(\".\").concat(decimals).join(\"\"), 10); },\n peg$c57 = function(digits) { return parseInt(digits.join(\"\"), 10); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsevisualFormatString() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parseorientation();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s3 = peg$c2;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c0;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c0;\n }\n if (s1 === peg$FAILED) {\n s1 = peg$c1;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$parsesuperview();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseconnection();\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c0;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c0;\n }\n if (s2 === peg$FAILED) {\n s2 = peg$c1;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseview();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseview();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseview();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsesuperview();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c1;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c5(s1, s2, s3, s4, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseorientation() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 72) {\n s1 = peg$c6;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s1 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 86) {\n s1 = peg$c8;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c9); }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c10(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsesuperview() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 124) {\n s1 = peg$c11;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c12); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c13();\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseview() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c14;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c15); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseviewName();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsepredicateListWithParens();\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s4 = peg$c16;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c17); }\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c18(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseconnection() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c19;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepredicateList();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 45) {\n s3 = peg$c19;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c19;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c22();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$c23;\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24();\n }\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parsepredicateList() {\n var s0;\n\n s0 = peg$parsesimplePredicate();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepredicateListWithParens();\n }\n\n return s0;\n }\n\n function peg$parsesimplePredicate() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsenumber();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c25(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsepredicateListWithParens() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 40) {\n s1 = peg$c26;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c27); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepredicate();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsepredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsepredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s4 = peg$c30;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c31); }\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c32(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsepredicate() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = peg$parserelation();\n if (s1 === peg$FAILED) {\n s1 = peg$c1;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseobjectOfPredicate();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 64) {\n s4 = peg$c33;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c34); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepriority();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c35(s1, s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parserelation() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c36) {\n s1 = peg$c36;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c37); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c38();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c39) {\n s1 = peg$c39;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c41();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c42) {\n s1 = peg$c42;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c44();\n }\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parseobjectOfPredicate() {\n var s0;\n\n s0 = peg$parseconstant();\n if (s0 === peg$FAILED) {\n s0 = peg$parseviewName();\n }\n\n return s0;\n }\n\n function peg$parsepriority() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c47(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseconstant() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsenumber();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c48(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseviewName() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = [];\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c53(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s2 = peg$c54;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c55); }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n }\n } else {\n s3 = peg$c0;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c56(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c57(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n\n function extend(dst) {\n for (var i = 1; i < arguments.length; i++) {\n for (var k in arguments[i]) {\n dst[k] = arguments[i][k];\n }\n }\n return dst;\n }\n\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();\n\nvar parserExt = (function() {\n /*\n * Generated by PEG.js 0.8.0.\n *\n * http://pegjs.majda.cz/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function SyntaxError(message, expected, found, offset, line, column) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.offset = offset;\n this.line = line;\n this.column = column;\n\n this.name = \"SyntaxError\";\n }\n\n peg$subclass(SyntaxError, Error);\n\n function parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { visualFormatString: peg$parsevisualFormatString },\n peg$startRuleFunction = peg$parsevisualFormatString,\n\n peg$c0 = peg$FAILED,\n peg$c1 = null,\n peg$c2 = \":\",\n peg$c3 = { type: \"literal\", value: \":\", description: \"\\\":\\\"\" },\n peg$c4 = [],\n peg$c5 = function(o, superto, view, views, tosuper, comments) { return {\n orientation: o ? o[0] : 'horizontal',\n cascade: (superto || []).concat(\n view,\n [].concat.apply([], views),\n (tosuper || [])\n )\n }\n },\n peg$c6 = \"HV\",\n peg$c7 = { type: \"literal\", value: \"HV\", description: \"\\\"HV\\\"\" },\n peg$c8 = function() { return 'horzvert' },\n peg$c9 = \"H\",\n peg$c10 = { type: \"literal\", value: \"H\", description: \"\\\"H\\\"\" },\n peg$c11 = function() { return 'horizontal' },\n peg$c12 = \"V\",\n peg$c13 = { type: \"literal\", value: \"V\", description: \"\\\"V\\\"\" },\n peg$c14 = function() { return 'vertical' },\n peg$c15 = \"Z\",\n peg$c16 = { type: \"literal\", value: \"Z\", description: \"\\\"Z\\\"\" },\n peg$c17 = function() { return 'zIndex' },\n peg$c18 = \" \",\n peg$c19 = { type: \"literal\", value: \" \", description: \"\\\" \\\"\" },\n peg$c20 = \"//\",\n peg$c21 = { type: \"literal\", value: \"//\", description: \"\\\"//\\\"\" },\n peg$c22 = { type: \"any\", description: \"any character\" },\n peg$c23 = \"|\",\n peg$c24 = { type: \"literal\", value: \"|\", description: \"\\\"|\\\"\" },\n peg$c25 = function() { return { view: null } },\n peg$c26 = \"[\",\n peg$c27 = { type: \"literal\", value: \"[\", description: \"\\\"[\\\"\" },\n peg$c28 = \",\",\n peg$c29 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c30 = \"]\",\n peg$c31 = { type: \"literal\", value: \"]\", description: \"\\\"]\\\"\" },\n peg$c32 = function(view, views) { return views.length ? [view].concat([].concat.apply([], views)) : view },\n peg$c33 = function(view, predicates, cascadedViews) { return extend(extend(view, predicates ? { constraints: predicates } : {}), cascadedViews ? {\n cascade: cascadedViews\n } : {}) },\n peg$c34 = function(views, connection) { return [].concat([].concat.apply([], views),[connection]); },\n peg$c35 = \"->\",\n peg$c36 = { type: \"literal\", value: \"->\", description: \"\\\"->\\\"\" },\n peg$c37 = function() { return [{ relation: 'none' }] },\n peg$c38 = \"-\",\n peg$c39 = { type: \"literal\", value: \"-\", description: \"\\\"-\\\"\" },\n peg$c40 = function(predicateList) { return predicateList },\n peg$c41 = function() { return [{ relation: 'equ', constant: 'default' }] },\n peg$c42 = \"~\",\n peg$c43 = { type: \"literal\", value: \"~\", description: \"\\\"~\\\"\" },\n peg$c44 = function() { return [{ relation: 'equ', equalSpacing: true }] },\n peg$c45 = \"\",\n peg$c46 = function() { return [{ relation: 'equ', constant: 0 }] },\n peg$c47 = function(p) { return [{ relation: 'equ', multiplier: p.multiplier }] },\n peg$c48 = function(n) { return [{ relation: 'equ', constant: n }] },\n peg$c49 = \"(\",\n peg$c50 = { type: \"literal\", value: \"(\", description: \"\\\"(\\\"\" },\n peg$c51 = \")\",\n peg$c52 = { type: \"literal\", value: \")\", description: \"\\\")\\\"\" },\n peg$c53 = function(p, ps) { return [p].concat(ps.map(function(p){ return p[1] })) },\n peg$c54 = \"@\",\n peg$c55 = { type: \"literal\", value: \"@\", description: \"\\\"@\\\"\" },\n peg$c56 = function(r, o, p) { return extend({ relation: 'equ' }, (r || {}), o, (p ? p[1]: {})) },\n peg$c57 = function(r, o, p) { return extend({ relation: 'equ', equalSpacing: true }, (r || {}), o, (p ? p[1]: {})) },\n peg$c58 = \"==\",\n peg$c59 = { type: \"literal\", value: \"==\", description: \"\\\"==\\\"\" },\n peg$c60 = function() { return { relation: 'equ' } },\n peg$c61 = \"<=\",\n peg$c62 = { type: \"literal\", value: \"<=\", description: \"\\\"<=\\\"\" },\n peg$c63 = function() { return { relation: 'leq' } },\n peg$c64 = \">=\",\n peg$c65 = { type: \"literal\", value: \">=\", description: \"\\\">=\\\"\" },\n peg$c66 = function() { return { relation: 'geq' } },\n peg$c67 = /^[0-9]/,\n peg$c68 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c69 = function(digits) { return { priority: parseInt(digits.join(\"\"), 10) } },\n peg$c70 = function(n) { return { constant: n } },\n peg$c71 = \"%\",\n peg$c72 = { type: \"literal\", value: \"%\", description: \"\\\"%\\\"\" },\n peg$c73 = function(n) { return { view: null, multiplier: n / 100 } },\n peg$c74 = function(vn, a, m, c) { return { view: vn.view, attribute: a ? a : undefined, multiplier: m ? m : 1, constant: c ? c : undefined } },\n peg$c75 = \".left\",\n peg$c76 = { type: \"literal\", value: \".left\", description: \"\\\".left\\\"\" },\n peg$c77 = function() { return 'left'},\n peg$c78 = \".right\",\n peg$c79 = { type: \"literal\", value: \".right\", description: \"\\\".right\\\"\" },\n peg$c80 = function() { return 'right'},\n peg$c81 = \".top\",\n peg$c82 = { type: \"literal\", value: \".top\", description: \"\\\".top\\\"\" },\n peg$c83 = function() { return 'top'},\n peg$c84 = \".bottom\",\n peg$c85 = { type: \"literal\", value: \".bottom\", description: \"\\\".bottom\\\"\" },\n peg$c86 = function() { return 'bottom'},\n peg$c87 = \".width\",\n peg$c88 = { type: \"literal\", value: \".width\", description: \"\\\".width\\\"\" },\n peg$c89 = function() { return 'width'},\n peg$c90 = \".height\",\n peg$c91 = { type: \"literal\", value: \".height\", description: \"\\\".height\\\"\" },\n peg$c92 = function() { return 'height'},\n peg$c93 = \".centerX\",\n peg$c94 = { type: \"literal\", value: \".centerX\", description: \"\\\".centerX\\\"\" },\n peg$c95 = function() { return 'centerX'},\n peg$c96 = \".centerY\",\n peg$c97 = { type: \"literal\", value: \".centerY\", description: \"\\\".centerY\\\"\" },\n peg$c98 = function() { return 'centerY'},\n peg$c99 = \"/\",\n peg$c100 = { type: \"literal\", value: \"/\", description: \"\\\"/\\\"\" },\n peg$c101 = function(n) { return 1 / n; },\n peg$c102 = \"*\",\n peg$c103 = { type: \"literal\", value: \"*\", description: \"\\\"*\\\"\" },\n peg$c104 = function(n) { return n; },\n peg$c105 = function(n) { return -n; },\n peg$c106 = \"+\",\n peg$c107 = { type: \"literal\", value: \"+\", description: \"\\\"+\\\"\" },\n peg$c108 = /^[a-zA-Z_]/,\n peg$c109 = { type: \"class\", value: \"[a-zA-Z_]\", description: \"[a-zA-Z_]\" },\n peg$c110 = /^[a-zA-Z0-9_]/,\n peg$c111 = { type: \"class\", value: \"[a-zA-Z0-9_]\", description: \"[a-zA-Z0-9_]\" },\n peg$c112 = function(f, v, r) { return { view: f + v, range: r, $parserOffset: offset() } },\n peg$c113 = function(f, v) { return { view: f + v, $parserOffset: offset() } },\n peg$c114 = \"..\",\n peg$c115 = { type: \"literal\", value: \"..\", description: \"\\\"..\\\"\" },\n peg$c116 = function(d) { return parseInt(d) },\n peg$c117 = \".\",\n peg$c118 = { type: \"literal\", value: \".\", description: \"\\\".\\\"\" },\n peg$c119 = function(digits, decimals) { return parseFloat(digits.concat(\".\").concat(decimals).join(\"\"), 10); },\n peg$c120 = function(digits) { return parseInt(digits.join(\"\"), 10); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsevisualFormatString() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parseorientation();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s3 = peg$c2;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c0;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c0;\n }\n if (s1 === peg$FAILED) {\n s1 = peg$c1;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$parsesuperview();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseconnection();\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c0;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c0;\n }\n if (s2 === peg$FAILED) {\n s2 = peg$c1;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseviewGroup();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseviewGroup();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseviewGroup();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsesuperview();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c1;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsecomments();\n if (s6 === peg$FAILED) {\n s6 = peg$c1;\n }\n if (s6 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c5(s1, s2, s3, s4, s5, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseorientation() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c6) {\n s1 = peg$c6;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c8();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 72) {\n s1 = peg$c9;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c10); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c11();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 86) {\n s1 = peg$c12;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 90) {\n s1 = peg$c15;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c17();\n }\n s0 = s1;\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsecomments() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = [];\n if (input.charCodeAt(peg$currPos) === 32) {\n s2 = peg$c18;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c19); }\n }\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (input.charCodeAt(peg$currPos) === 32) {\n s2 = peg$c18;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c19); }\n }\n }\n if (s1 !== peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c20) {\n s2 = peg$c20;\n peg$currPos += 2;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c21); }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n }\n if (s3 !== peg$FAILED) {\n s1 = [s1, s2, s3];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsesuperview() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 124) {\n s1 = peg$c23;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c24); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c25();\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseviewGroup() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c26;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c27); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseview();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseview();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseview();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s4 = peg$c30;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c31); }\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c32(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseview() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$parseviewNameRange();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepredicateListWithParens();\n if (s2 === peg$FAILED) {\n s2 = peg$c1;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsecascadedViews();\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s1, s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsecascadedViews() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 58) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parseconnection();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseviewGroup();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parseconnection();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseviewGroup();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseconnection();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c34(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseconnection() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c35) {\n s1 = peg$c35;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c36); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c38;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c39); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepredicateList();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 45) {\n s3 = peg$c38;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c39); }\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c40(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c38;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c39); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c41();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 126) {\n s1 = peg$c42;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseequalSpacingPredicateList();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 126) {\n s3 = peg$c42;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c40(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 126) {\n s1 = peg$c42;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c44();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$c45;\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c46();\n }\n s0 = s1;\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsepredicateList() {\n var s0;\n\n s0 = peg$parsesimplePredicate();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepredicateListWithParens();\n }\n\n return s0;\n }\n\n function peg$parsesimplePredicate() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsepercentage();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c47(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsenumber();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c48(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsepredicateListWithParens() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 40) {\n s1 = peg$c49;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepredicate();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsepredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsepredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c53(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsepredicate() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = peg$parserelation();\n if (s1 === peg$FAILED) {\n s1 = peg$c1;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseobjectOfPredicate();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 64) {\n s4 = peg$c54;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c55); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepriority();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c56(s1, s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseequalSpacingPredicateList() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 40) {\n s1 = peg$c49;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseequalSpacingPredicate();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseequalSpacingPredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseequalSpacingPredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c53(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseequalSpacingPredicate() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = peg$parserelation();\n if (s1 === peg$FAILED) {\n s1 = peg$c1;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseobjectOfPredicate();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 64) {\n s4 = peg$c54;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c55); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepriority();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c57(s1, s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parserelation() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c58) {\n s1 = peg$c58;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c59); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c60();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c61) {\n s1 = peg$c61;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c62); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c63();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c64) {\n s1 = peg$c64;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c65); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c66();\n }\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parseobjectOfPredicate() {\n var s0;\n\n s0 = peg$parsepercentage();\n if (s0 === peg$FAILED) {\n s0 = peg$parseconstant();\n if (s0 === peg$FAILED) {\n s0 = peg$parseviewPredicate();\n }\n }\n\n return s0;\n }\n\n function peg$parsepriority() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c69(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseconstant() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsenumber();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c70(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsepercentage() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = peg$parsenumber();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 37) {\n s2 = peg$c71;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c72); }\n }\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c73(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseviewPredicate() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseviewName();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseattribute();\n if (s2 === peg$FAILED) {\n s2 = peg$c1;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsemultiplier();\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parseconstantExpr();\n if (s4 === peg$FAILED) {\n s4 = peg$c1;\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c74(s1, s2, s3, s4);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseattribute() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c75) {\n s1 = peg$c75;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c76); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c77();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c78) {\n s1 = peg$c78;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c79); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c80();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 4) === peg$c81) {\n s1 = peg$c81;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c82); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c83();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c84) {\n s1 = peg$c84;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c85); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c86();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c87) {\n s1 = peg$c87;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c88); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c89();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c90) {\n s1 = peg$c90;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c91); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c92();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 8) === peg$c93) {\n s1 = peg$c93;\n peg$currPos += 8;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c94); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c95();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 8) === peg$c96) {\n s1 = peg$c96;\n peg$currPos += 8;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c97); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c98();\n }\n s0 = s1;\n }\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsemultiplier() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c99;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c100); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c101(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 42) {\n s1 = peg$c102;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c103); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c104(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n }\n\n return s0;\n }\n\n function peg$parseconstantExpr() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c38;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c39); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c105(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 43) {\n s1 = peg$c106;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c107); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c104(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n }\n\n return s0;\n }\n\n function peg$parseviewNameRange() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$c108.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c109); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c108.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c109); }\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = [];\n if (peg$c110.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c111); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c110.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c111); }\n }\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n s3 = peg$parserange();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c112(s1, s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$c108.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c109); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c108.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c109); }\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = [];\n if (peg$c110.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c111); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c110.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c111); }\n }\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c113(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n }\n\n return s0;\n }\n\n function peg$parseviewName() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$c108.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c109); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c108.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c109); }\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = [];\n if (peg$c110.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c111); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c110.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c111); }\n }\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c113(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parserange() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c114) {\n s1 = peg$c114;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c115); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c116(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s2 = peg$c117;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c118); }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n }\n } else {\n s3 = peg$c0;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c119(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c120(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n\n function extend(dst) {\n for (var i = 1; i < arguments.length; i++) {\n for (var k in arguments[i]) {\n dst[k] = arguments[i][k];\n }\n }\n return dst;\n }\n\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();\n\nconst Orientation = {\n HORIZONTAL: 1,\n VERTICAL: 2,\n ZINDEX: 4\n};\n\n/**\n * Helper function that inserts equal spacers (~).\n * @private\n */\nfunction _processEqualSpacer(context, stackView) {\n\n // Determine unique name for the spacer\n context.equalSpacerIndex = context.equalSpacerIndex || 1;\n const name = '_~' + context.lineIndex + ':' + context.equalSpacerIndex + '~';\n if (context.equalSpacerIndex > 1) {\n\n // Ensure that all spacers have the same width/height\n context.constraints.push({\n view1: '_~' + context.lineIndex + ':1~',\n attr1: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n relation: context.relation.relation || Relation.EQU,\n view2: name,\n attr2: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n priority: context.relation.priority\n });\n }\n context.equalSpacerIndex++;\n\n // Enforce view/proportional width/height\n if (context.relation.view || (context.relation.multiplier && (context.relation.multiplier !== 1))) {\n context.constraints.push({\n view1: name,\n attr1: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n relation: context.relation.relation || Relation.EQU,\n view2: context.relation.view,\n attr2: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n priority: context.relation.priority,\n multiplier: context.relation.multiplier\n });\n context.relation.multiplier = undefined;\n }\n else if (context.relation.constant) {\n context.constraints.push({\n view1: name,\n attr1: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n relation: Relation.EQU,\n view2: null,\n attr2: Attribute.CONST,\n priority: context.relation.priority,\n constant: context.relation.constant\n });\n context.relation.constant = undefined;\n }\n\n // Add constraint\n for (var i = 0; i < context.prevViews.length; i++) {\n const prevView = context.prevViews[i];\n switch (context.orientation) {\n case Orientation.HORIZONTAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.RIGHT : Attribute.LEFT;\n context.curAttr = Attribute.LEFT;\n break;\n case Orientation.VERTICAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.BOTTOM : Attribute.TOP;\n context.curAttr = Attribute.TOP;\n break;\n case Orientation.ZINDEX:\n context.prevAttr = Attribute.ZINDEX;\n context.curAttr = Attribute.ZINDEX;\n context.relation.constant = (prevView !== stackView) ? 'default' : 0;\n break;\n }\n context.constraints.push({\n view1: prevView,\n attr1: context.prevAttr,\n relation: context.relation.relation,\n view2: name,\n attr2: context.curAttr,\n priority: context.relation.priority\n });\n }\n context.prevViews = [name];\n}\n\n/**\n * Helper function that inserts proportional spacers (-12%-).\n * @private\n */\nfunction _processProportionalSpacer(context, stackView) {\n context.proportionalSpacerIndex = context.proportionalSpacerIndex || 1;\n const name = '_-' + context.lineIndex + ':' + context.proportionalSpacerIndex + '-';\n context.proportionalSpacerIndex++;\n context.constraints.push({\n view1: name,\n attr1: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n relation: context.relation.relation || Relation.EQU,\n view2: context.relation.view, // or relative to the stackView... food for thought\n attr2: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n priority: context.relation.priority,\n multiplier: context.relation.multiplier\n });\n context.relation.multiplier = undefined;\n\n // Add constraint\n for (var i = 0; i < context.prevViews.length; i++) {\n const prevView = context.prevViews[i];\n switch (context.orientation) {\n case Orientation.HORIZONTAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.RIGHT : Attribute.LEFT;\n context.curAttr = Attribute.LEFT;\n break;\n case Orientation.VERTICAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.BOTTOM : Attribute.TOP;\n context.curAttr = Attribute.TOP;\n break;\n case Orientation.ZINDEX:\n context.prevAttr = Attribute.ZINDEX;\n context.curAttr = Attribute.ZINDEX;\n context.relation.constant = (prevView !== stackView) ? 'default' : 0;\n break;\n }\n context.constraints.push({\n view1: prevView,\n attr1: context.prevAttr,\n relation: context.relation.relation,\n view2: name,\n attr2: context.curAttr,\n priority: context.relation.priority\n });\n }\n context.prevViews = [name];\n}\n\n/**\n * In case of a stack-view, set constraints for opposite orientations\n * @private\n */\nfunction _processStackView(context, name, subView) {\n let viewName;\n for (var orientation = 1; orientation <= 4; orientation *= 2) {\n if ((subView.orientations & orientation) &&\n (subView.stack.orientation !== orientation) &&\n !(subView.stack.processedOrientations & orientation)) {\n subView.stack.processedOrientations = subView.stack.processedOrientations | orientation;\n viewName = viewName || {\n name: name,\n type: 'stack'\n };\n for (var i = 0, j = subView.stack.subViews.length; i < j; i++) {\n if (orientation === Orientation.ZINDEX) {\n context.constraints.push({\n view1: viewName,\n attr1: Attribute.ZINDEX,\n relation: Relation.EQU,\n view2: subView.stack.subViews[i],\n attr2: Attribute.ZINDEX\n });\n }\n else {\n context.constraints.push({\n view1: viewName,\n attr1: (orientation === Orientation.VERTICAL) ? Attribute.HEIGHT : Attribute.WIDTH,\n relation: Relation.EQU,\n view2: subView.stack.subViews[i],\n attr2: (orientation === Orientation.VERTICAL) ? Attribute.HEIGHT : Attribute.WIDTH\n });\n context.constraints.push({\n view1: viewName,\n attr1: (orientation === Orientation.VERTICAL) ? Attribute.TOP : Attribute.LEFT,\n relation: Relation.EQU,\n view2: subView.stack.subViews[i],\n attr2: (orientation === Orientation.VERTICAL) ? Attribute.TOP : Attribute.LEFT\n });\n }\n }\n }\n }\n}\n\n/**\n * Recursive helper function converts a view-name and a range to a series\n * of view-names (e.g. [child1, child2, child3, ...]).\n * @private\n */\nfunction _getRange(name, range) {\n if (range === true) {\n range = name.match(/\\.\\.\\d+$/);\n if (range) {\n name = name.substring(0, name.length - range[0].length);\n range = parseInt(range[0].substring(2));\n }\n }\n if (!range) {\n return [name];\n }\n var start = name.match(/\\d+$/);\n var res = [];\n var i;\n if (start) {\n name = name.substring(0, name.length - start[0].length);\n for (i = parseInt(start); i <= range; i++) {\n res.push(name + i);\n }\n }\n else {\n res.push(name);\n for (i = 2; i <= range; i++) {\n res.push(name + i);\n }\n }\n return res;\n}\n\n/**\n * Recursive helper function that processes the cascaded data.\n * @private\n */\nfunction _processCascade(context, cascade, parentItem) {\n const stackView = parentItem ? parentItem.view : null;\n const subViews = [];\n let curViews = [];\n let subView;\n if (stackView) {\n cascade.push({view: stackView});\n curViews.push(stackView);\n }\n for (var i = 0; i < cascade.length; i++) {\n let item = cascade[i];\n if ((!Array.isArray(item) && item.hasOwnProperty('view')) ||\n (Array.isArray(item) && item[0].view && !item[0].relation)) {\n const items = Array.isArray(item) ? item : [item];\n for (var z = 0; z < items.length; z++) {\n item = items[z];\n const viewRange = (item === ',') ? [] : item.view ? _getRange(item.view, item.range) : [null];\n for (var r = 0; r < viewRange.length; r++) {\n const curView = viewRange[r];\n curViews.push(curView);\n\n //\n // Add this view to the collection of subViews\n //\n if (curView !== stackView) {\n subViews.push(curView);\n subView = context.subViews[curView];\n if (!subView) {\n subView = {orientations: 0};\n context.subViews[curView] = subView;\n }\n subView.orientations = subView.orientations | context.orientation;\n if (subView.stack) {\n _processStackView(context, curView, subView);\n }\n }\n\n //\n // Process the relationship between this and the previous views\n //\n if ((context.prevViews !== undefined) && (curView !== undefined) && context.relation) {\n if (context.relation.relation !== 'none') {\n for (var p = 0; p < context.prevViews.length; p++) {\n const prevView = context.prevViews[p];\n switch (context.orientation) {\n case Orientation.HORIZONTAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.RIGHT : Attribute.LEFT;\n context.curAttr = (curView !== stackView) ? Attribute.LEFT : Attribute.RIGHT;\n break;\n case Orientation.VERTICAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.BOTTOM : Attribute.TOP;\n context.curAttr = (curView !== stackView) ? Attribute.TOP : Attribute.BOTTOM;\n break;\n case Orientation.ZINDEX:\n context.prevAttr = Attribute.ZINDEX;\n context.curAttr = Attribute.ZINDEX;\n context.relation.constant = !prevView ? 0 : (context.relation.constant || 'default');\n break;\n }\n context.constraints.push({\n view1: prevView,\n attr1: context.prevAttr,\n relation: context.relation.relation,\n view2: curView,\n attr2: context.curAttr,\n multiplier: context.relation.multiplier,\n constant: ((context.relation.constant === 'default') || !context.relation.constant) ? context.relation.constant : -context.relation.constant,\n priority: context.relation.priority\n });\n }\n }\n }\n\n //\n // Process view size constraints\n //\n const constraints = item.constraints;\n if (constraints) {\n for (var n = 0; n < constraints.length; n++) {\n context.prevAttr = context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT;\n context.curAttr = (constraints[n].view || constraints[n].multiplier) ?\n (constraints[n].attribute || context.prevAttr) :\n (constraints[n].variable ? Attribute.VARIABLE : Attribute.CONST);\n context.constraints.push({\n view1: curView,\n attr1: context.prevAttr,\n relation: constraints[n].relation,\n view2: constraints[n].view,\n attr2: context.curAttr,\n multiplier: constraints[n].multiplier,\n constant: constraints[n].constant,\n priority: constraints[n].priority\n });\n }\n }\n\n //\n // Process cascaded data (child stack-views)\n //\n if (item.cascade) {\n _processCascade(context, item.cascade, item);\n }\n }\n }\n }\n else if (item !== ',') {\n context.prevViews = curViews;\n curViews = [];\n context.relation = item[0];\n if (context.prevViews !== undefined) {\n if (context.relation.equalSpacing) {\n _processEqualSpacer(context, stackView);\n }\n if (context.relation.multiplier) {\n _processProportionalSpacer(context, stackView);\n }\n }\n }\n }\n\n if (stackView) {\n subView = context.subViews[stackView];\n if (!subView) {\n subView = {orientations: context.orientation};\n context.subViews[stackView] = subView;\n }\n else if (subView.stack) {\n const err = new Error('A stack named \"' + stackView + '\" has already been created');\n err.column = parentItem.$parserOffset + 1;\n throw err;\n }\n subView.stack = {\n orientation: context.orientation,\n processedOrientations: context.orientation,\n subViews: subViews\n };\n _processStackView(context, stackView, subView);\n }\n}\n\nconst metaInfoCategories = [\n 'viewport',\n 'spacing',\n 'colors',\n 'shapes',\n 'widths',\n 'heights'\n];\n\n/**\n * VisualFormat\n *\n * @namespace VisualFormat\n */\nclass VisualFormat {\n\n /**\n * Parses a single line of vfl into an array of constraint definitions.\n *\n * When the visual-format could not be succesfully parsed an exception is thrown containing\n * additional info about the parse error and column position.\n *\n * @param {String} visualFormat Visual format string (cannot contain line-endings!).\n * @param {Object} [options] Configuration options.\n * @param {Boolean} [options.extended] When set to true uses the extended syntax (default: false).\n * @param {String} [options.outFormat] Output format (`constraints` or `raw`) (default: `constraints`).\n * @param {Number} [options.lineIndex] Line-index used when auto generating equal-spacing constraints.\n * @return {Array} Array of constraint definitions.\n */\n static parseLine(visualFormat, options) {\n if ((visualFormat.length === 0) ||\n (options && options.extended && (visualFormat.indexOf('//') === 0))) {\n return [];\n }\n const res = (options && options.extended) ? parserExt.parse(visualFormat) : parser.parse(visualFormat);\n if (options && options.outFormat === 'raw') {\n return [res];\n }\n var context = {\n constraints: [],\n lineIndex: (options ? options.lineIndex : undefined) || 1,\n subViews: (options ? options.subViews : undefined) || {}\n };\n switch (res.orientation) {\n case 'horizontal':\n context.orientation = Orientation.HORIZONTAL;\n context.horizontal = true;\n _processCascade(context, res.cascade, null);\n break;\n case 'vertical':\n context.orientation = Orientation.VERTICAL;\n _processCascade(context, res.cascade, null);\n break;\n case 'horzvert':\n context.orientation = Orientation.HORIZONTAL;\n context.horizontal = true;\n _processCascade(context, res.cascade, null);\n context = {\n constraints: context.constraints,\n lineIndex: context.lineIndex,\n subViews: context.subViews,\n orientation: Orientation.VERTICAL\n };\n _processCascade(context, res.cascade, null);\n break;\n case 'zIndex':\n context.orientation = Orientation.ZINDEX;\n _processCascade(context, res.cascade, null);\n break;\n }\n return context.constraints;\n }\n\n /**\n * Parses one or more visual format strings into an array of constraint definitions.\n *\n * When the visual-format could not be succesfully parsed an exception is thrown containing\n * additional info about the parse error and column position.\n *\n * @param {String|Array} visualFormat One or more visual format strings.\n * @param {Object} [options] Configuration options.\n * @param {Boolean} [options.extended] When set to true uses the extended syntax (default: false).\n * @param {Boolean} [options.strict] When set to false trims any leading/trailing spaces and ignores empty lines (default: true).\n * @param {String} [options.lineSeperator] String that defines the end of a line (default `\\n`).\n * @param {String} [options.outFormat] Output format (`constraints` or `raw`) (default: `constraints`).\n * @return {Array} Array of constraint definitions.\n */\n static parse(visualFormat, options) {\n const lineSeperator = (options && options.lineSeperator) ? options.lineSeperator : '\\n';\n if (!Array.isArray(visualFormat) && (visualFormat.indexOf(lineSeperator) < 0)) {\n try {\n return this.parseLine(visualFormat, options);\n }\n catch (err) {\n err.source = visualFormat;\n throw err;\n }\n }\n\n // Decompose visual-format into an array of strings, and within those strings\n // search for line-endings, and treat each line as a seperate visual-format.\n visualFormat = Array.isArray(visualFormat) ? visualFormat : [visualFormat];\n let lines;\n let constraints = [];\n let lineIndex = 0;\n let line;\n const parseOptions = {\n lineIndex: lineIndex,\n extended: (options && options.extended),\n strict: (options && (options.strict !== undefined)) ? options.strict : true,\n outFormat: options ? options.outFormat : undefined,\n subViews: {}\n };\n try {\n for (var i = 0; i < visualFormat.length; i++) {\n lines = visualFormat[i].split(lineSeperator);\n for (var j = 0; j < lines.length; j++) {\n line = lines[j];\n lineIndex++;\n parseOptions.lineIndex = lineIndex;\n if (!parseOptions.strict) {\n line = line.trim();\n }\n if (parseOptions.strict || line.length) {\n constraints = constraints.concat(this.parseLine(line, parseOptions));\n }\n }\n }\n }\n catch (err) {\n err.source = line;\n err.line = lineIndex;\n throw err;\n }\n return constraints;\n }\n\n /**\n * Parses meta information from the comments in the VFL.\n *\n * Additional meta information can be specified in the comments\n * for previewing and rendering purposes. For instance, the view-port\n * aspect-ratio, sub-view widths and colors, can be specified. The\n * following example renders three colored circles in the visual-format editor:\n *\n * ```vfl\n * //viewport aspect-ratio:3/1 max-height:300\n * //colors red:#FF0000 green:#00FF00 blue:#0000FF\n * //shapes red:circle green:circle blue:circle\n * H:|-[row:[red(green,blue)]-[green]-[blue]]-|\n * V:|[row]|\n * ```\n *\n * Supported categories and properties:\n *\n * |Category|Property|Example|\n * |--------|--------|-------|\n * |`viewport`|`aspect-ratio:{width}/{height}`|`//viewport aspect-ratio:16/9`|\n * ||`width:[{number}/intrinsic]`|`//viewport width:10`|\n * ||`height:[{number}/intrinsic]`|`//viewport height:intrinsic`|\n * ||`min-width:{number}`|\n * ||`max-width:{number}`|\n * ||`min-height:{number}`|\n * ||`max-height:{number}`|\n * |`spacing`|`[{number}/array]`|`//spacing:8` or `//spacing:[10, 20, 5]`|\n * |`widths`|`{view-name}:[{number}/intrinsic]`|`//widths subview1:100`|\n * |`heights`|`{view-name}:[{number}/intrinsic]`|`//heights subview1:intrinsic`|\n * |`colors`|`{view-name}:{color}`|`//colors redview:#FF0000 blueview:#00FF00`|\n * |`shapes`|`{view-name}:[circle/square]`|`//shapes avatar:circle`|\n *\n * @param {String|Array} visualFormat One or more visual format strings.\n * @param {Object} [options] Configuration options.\n * @param {String} [options.lineSeperator] String that defines the end of a line (default `\\n`).\n * @param {String} [options.prefix] When specified, also processes the categories using that prefix (e.g. \"-dev-viewport max-height:10\").\n * @return {Object} meta-info\n */\n static parseMetaInfo(visualFormat, options) {\n const lineSeperator = (options && options.lineSeperator) ? options.lineSeperator : '\\n';\n const prefix = options ? options.prefix : undefined;\n visualFormat = Array.isArray(visualFormat) ? visualFormat : [visualFormat];\n const metaInfo = {};\n var key;\n for (var k = 0; k < visualFormat.length; k++) {\n const lines = visualFormat[k].split(lineSeperator);\n for (var i = 0; i < lines.length; i++) {\n const line = lines[i];\n for (var c = 0; c < metaInfoCategories.length; c++) {\n for (var s = 0; s < (prefix ? 2 : 1); s++) {\n const category = metaInfoCategories[c];\n const prefixedCategory = ((s === 0) ? '' : prefix) + category;\n if (line.indexOf('//' + prefixedCategory + ' ') === 0) {\n const items = line.substring(3 + prefixedCategory.length).split(' ');\n for (var j = 0; j < items.length; j++) {\n metaInfo[category] = metaInfo[category] || {};\n const item = items[j].split(':');\n const names = _getRange(item[0], true);\n for (var r = 0; r < names.length; r++) {\n metaInfo[category][names[r]] = (item.length > 1) ? item[1] : '';\n }\n }\n }\n else if (line.indexOf('//' + prefixedCategory + ':') === 0) {\n metaInfo[category] = line.substring(3 + prefixedCategory.length);\n }\n }\n }\n }\n }\n if (metaInfo.viewport) {\n const viewport = metaInfo.viewport;\n var aspectRatio = viewport['aspect-ratio'];\n if (aspectRatio) {\n aspectRatio = aspectRatio.split('/');\n viewport['aspect-ratio'] = parseInt(aspectRatio[0]) / parseInt(aspectRatio[1]);\n }\n if (viewport.height !== undefined) {\n viewport.height = (viewport.height === 'intrinsic') ? true : parseInt(viewport.height);\n }\n if (viewport.width !== undefined) {\n viewport.width = (viewport.width === 'intrinsic') ? true : parseInt(viewport.width);\n }\n if (viewport['max-height'] !== undefined) {\n viewport['max-height'] = parseInt(viewport['max-height']);\n }\n if (viewport['max-width'] !== undefined) {\n viewport['max-width'] = parseInt(viewport['max-width']);\n }\n if (viewport['min-height'] !== undefined) {\n viewport['min-height'] = parseInt(viewport['min-height']);\n }\n if (viewport['min-width'] !== undefined) {\n viewport['min-width'] = parseInt(viewport['min-width']);\n }\n }\n if (metaInfo.widths) {\n for (key in metaInfo.widths) {\n const width = (metaInfo.widths[key] === 'intrinsic') ? true : parseInt(metaInfo.widths[key]);\n metaInfo.widths[key] = width;\n if ((width === undefined) || isNaN(width)) {\n delete metaInfo.widths[key];\n }\n }\n }\n if (metaInfo.heights) {\n for (key in metaInfo.heights) {\n const height = (metaInfo.heights[key] === 'intrinsic') ? true : parseInt(metaInfo.heights[key]);\n metaInfo.heights[key] = height;\n if ((height === undefined) || isNaN(height)) {\n delete metaInfo.heights[key];\n }\n }\n }\n if (metaInfo.spacing) {\n const value = JSON.parse(metaInfo.spacing);\n metaInfo.spacing = value;\n if (Array.isArray(value)){\n for (var sIdx = 0, len = value.length; sIdx < len; sIdx++) {\n if (isNaN(value[sIdx])){\n delete metaInfo.spacing;\n break;\n }\n }\n } else if (value === undefined || isNaN(value)){\n delete metaInfo.spacing;\n }\n }\n return metaInfo;\n }\n}\n\nclass SubView {\n constructor(options) {\n this._name = options.name;\n this._type = options.type;\n this._solver = options.solver;\n this._attr = {};\n if (!options.name) {\n if (process.env.CASSOWARYJS) {\n this._attr[Attribute.LEFT] = new c.Variable();\n this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.LEFT], c.Strength.required));\n this._attr[Attribute.TOP] = new c.Variable();\n this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.TOP], c.Strength.required));\n this._attr[Attribute.ZINDEX] = new c.Variable();\n this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.ZINDEX], c.Strength.required));\n }\n else {\n this._attr[Attribute.LEFT] = new kiwi.Variable();\n this._solver.addConstraint(new kiwi.Constraint(this._attr[Attribute.LEFT], kiwi.Operator.Eq, 0));\n this._attr[Attribute.TOP] = new kiwi.Variable();\n this._solver.addConstraint(new kiwi.Constraint(this._attr[Attribute.TOP], kiwi.Operator.Eq, 0));\n this._attr[Attribute.ZINDEX] = new kiwi.Variable();\n this._solver.addConstraint(new kiwi.Constraint(this._attr[Attribute.ZINDEX], kiwi.Operator.Eq, 0));\n }\n }\n }\n toJSON() {\n return {\n name: this.name,\n left: this.left,\n top: this.top,\n width: this.width,\n height: this.height\n };\n }\n toString() {\n JSON.stringify(this.toJSON(), undefined, 2);\n }\n\n /**\n * Name of the sub-view.\n * @readonly\n * @type {String}\n */\n get name() {\n return this._name;\n }\n\n /**\n * Left value (`Attribute.LEFT`).\n * @readonly\n * @type {Number}\n */\n get left() {\n return this._getAttrValue(Attribute.LEFT);\n }\n\n /**\n * Right value (`Attribute.RIGHT`).\n * @readonly\n * @type {Number}\n */\n get right() {\n return this._getAttrValue(Attribute.RIGHT);\n }\n\n /**\n * Width value (`Attribute.WIDTH`).\n * @type {Number}\n */\n get width() {\n return this._getAttrValue(Attribute.WIDTH);\n }\n\n /**\n * Height value (`Attribute.HEIGHT`).\n * @readonly\n * @type {Number}\n */\n get height() {\n return this._getAttrValue(Attribute.HEIGHT);\n }\n\n /**\n * Intrinsic width of the sub-view.\n *\n * Use this property to explicitely set the width of the sub-view, e.g.:\n * ```javascript\n * var view = new AutoLayout.View(AutoLayout.VisualFormat.parse('|[child1][child2]|'), {\n * width: 500\n * });\n * view.subViews.child1.intrinsicWidth = 100;\n * console.log('child2 width: ' + view.subViews.child2.width); // 400\n * ```\n *\n * @type {Number}\n */\n get intrinsicWidth() {\n return this._intrinsicWidth;\n }\n set intrinsicWidth(value) {\n if ((value !== undefined) && (value !== this._intrinsicWidth)) {\n const attr = this._getAttr(Attribute.WIDTH);\n if (this._intrinsicWidth === undefined) {\n if (process.env.CASSOWARYJS) {\n this._solver.addEditVar(attr, new c.Strength('required', this._name ? 998 : 999, 1000, 1000));\n }\n else {\n this._solver.addEditVariable(attr, kiwi.Strength.create(this._name ? 998 : 999, 1000, 1000));\n }\n }\n this._intrinsicWidth = value;\n this._solver.suggestValue(attr, value);\n if (process.env.CASSOWARYJS) {\n this._solver.resolve();\n }\n else {\n this._solver.updateVariables();\n }\n }\n }\n\n /**\n * Intrinsic height of the sub-view.\n *\n * See `intrinsicWidth`.\n *\n * @type {Number}\n */\n get intrinsicHeight() {\n return this._intrinsicHeight;\n }\n set intrinsicHeight(value) {\n if ((value !== undefined) && (value !== this._intrinsicHeight)) {\n const attr = this._getAttr(Attribute.HEIGHT);\n if (this._intrinsicHeight === undefined) {\n if (process.env.CASSOWARYJS) {\n this._solver.addEditVar(attr, new c.Strength('required', this._name ? 998 : 999, 1000, 1000));\n }\n else {\n this._solver.addEditVariable(attr, kiwi.Strength.create(this._name ? 998 : 999, 1000, 1000));\n }\n }\n this._intrinsicHeight = value;\n this._solver.suggestValue(attr, value);\n if (process.env.CASSOWARYJS) {\n this._solver.resolve();\n }\n else {\n this._solver.updateVariables();\n }\n }\n }\n\n /**\n * Top value (`Attribute.TOP`).\n * @readonly\n * @type {Number}\n */\n get top() {\n return this._getAttrValue(Attribute.TOP);\n }\n\n /**\n * Bottom value (`Attribute.BOTTOM`).\n * @readonly\n * @type {Number}\n */\n get bottom() {\n return this._getAttrValue(Attribute.BOTTOM);\n }\n\n /**\n * Horizontal center (`Attribute.CENTERX`).\n * @readonly\n * @type {Number}\n */\n get centerX() {\n return this._getAttrValue(Attribute.CENTERX);\n }\n\n /**\n * Vertical center (`Attribute.CENTERY`).\n * @readonly\n * @type {Number}\n */\n get centerY() {\n return this._getAttrValue(Attribute.CENTERY);\n }\n\n /**\n * Z-index (`Attribute.ZINDEX`).\n * @readonly\n * @type {Number}\n */\n get zIndex() {\n return this._getAttrValue(Attribute.ZINDEX);\n }\n\n /**\n * Returns the type of the sub-view.\n * @readonly\n * @type {String}\n */\n get type() {\n return this._type;\n }\n\n /**\n * Gets the value of one of the attributes.\n *\n * @param {String|Attribute} attr Attribute name (e.g. 'right', 'centerY', Attribute.TOP).\n * @return {Number} value or `undefined`\n */\n getValue(attr) {\n return this._attr[attr] ? this._attr[attr].value() : undefined;\n }\n\n /**\n * @private\n */\n _getAttr(attr) {\n if (this._attr[attr]) {\n return this._attr[attr];\n }\n this._attr[attr] = process.env.CASSOWARYJS ? new c.Variable() : new kiwi.Variable();\n switch (attr) {\n case Attribute.RIGHT:\n this._getAttr(Attribute.LEFT);\n this._getAttr(Attribute.WIDTH);\n if (process.env.CASSOWARYJS) {\n this._solver.addConstraint(new c.Equation(this._attr[attr], c.plus(this._attr[Attribute.LEFT], this._attr[Attribute.WIDTH])));\n }\n else {\n this._solver.addConstraint(new kiwi.Constraint(this._attr[attr], kiwi.Operator.Eq, this._attr[Attribute.LEFT].plus(this._attr[Attribute.WIDTH])));\n }\n break;\n case Attribute.BOTTOM:\n this._getAttr(Attribute.TOP);\n this._getAttr(Attribute.HEIGHT);\n if (process.env.CASSOWARYJS) {\n this._solver.addConstraint(new c.Equation(this._attr[attr], c.plus(this._attr[Attribute.TOP], this._attr[Attribute.HEIGHT])));\n }\n else {\n this._solver.addConstraint(new kiwi.Constraint(this._attr[attr], kiwi.Operator.Eq, this._attr[Attribute.TOP].plus(this._attr[Attribute.HEIGHT])));\n }\n break;\n case Attribute.CENTERX:\n this._getAttr(Attribute.LEFT);\n this._getAttr(Attribute.WIDTH);\n if (process.env.CASSOWARYJS) {\n this._solver.addConstraint(new c.Equation(this._attr[attr], c.plus(this._attr[Attribute.LEFT], c.divide(this._attr[Attribute.WIDTH], 2))));\n }\n else {\n this._solver.addConstraint(new kiwi.Constraint(this._attr[attr], kiwi.Operator.Eq, this._attr[Attribute.LEFT].plus(this._attr[Attribute.WIDTH].divide(2))));\n }\n break;\n case Attribute.CENTERY:\n this._getAttr(Attribute.TOP);\n this._getAttr(Attribute.HEIGHT);\n if (process.env.CASSOWARYJS) {\n this._solver.addConstraint(new c.Equation(this._attr[attr], c.plus(this._attr[Attribute.TOP], c.divide(this._attr[Attribute.HEIGHT], 2))));\n }\n else {\n this._solver.addConstraint(new kiwi.Constraint(this._attr[attr], kiwi.Operator.Eq, this._attr[Attribute.TOP].plus(this._attr[Attribute.HEIGHT].divide(2))));\n }\n break;\n }\n if (!process.env.CASSOWARYJS) {\n this._solver.updateVariables();\n }\n return this._attr[attr];\n }\n\n /**\n * @private\n */\n _getAttrValue(attr) {\n if (process.env.CASSOWARYJS) {\n return this._getAttr(attr).value;\n }\n else {\n return this._getAttr(attr).value();\n }\n }\n}\n\nconst defaultPriorityStrength = process.env.CASSOWARYJS ? new c.Strength('defaultPriority', 0, 1000, 1000) : kiwi.Strength.create(0, 1000, 1000);\n\nfunction _getConst(name, value) {\n if (process.env.CASSOWARYJS) {\n const vr = new c.Variable({value: value});\n this._solver.addConstraint(new c.StayConstraint(vr, c.Strength.required, 0));\n return vr;\n }\n else {\n const vr = new kiwi.Variable();\n this._solver.addConstraint(new kiwi.Constraint(vr, kiwi.Operator.Eq, value));\n return vr;\n }\n}\n\nfunction _getSubView(viewName) {\n if (!viewName) {\n return this._parentSubView;\n }\n else if (viewName.name) {\n this._subViews[viewName.name] = this._subViews[viewName.name] || new SubView({\n name: viewName.name,\n solver: this._solver\n });\n this._subViews[viewName.name]._type = this._subViews[viewName.name]._type || viewName.type;\n return this._subViews[viewName.name];\n }\n else {\n this._subViews[viewName] = this._subViews[viewName] || new SubView({\n name: viewName,\n solver: this._solver\n });\n return this._subViews[viewName];\n }\n}\n\nfunction _getSpacing(constraint) {\n let index = 4;\n if (!constraint.view1 && (constraint.attr1 === 'left')) {\n index = 3;\n }\n else if (!constraint.view1 && (constraint.attr1 === 'top')) {\n index = 0;\n }\n else if (!constraint.view2 && (constraint.attr2 === 'right')) {\n index = 1;\n }\n else if (!constraint.view2 && (constraint.attr2 === 'bottom')) {\n index = 2;\n }\n else {\n switch (constraint.attr1) {\n case 'left':\n case 'right':\n case 'centerX':\n case 'leading':\n case 'trailing':\n index = 4;\n break;\n case 'zIndex':\n index = 6;\n break;\n default:\n index = 5;\n }\n }\n this._spacingVars = this._spacingVars || new Array(7);\n this._spacingExpr = this._spacingExpr || new Array(7);\n if (!this._spacingVars[index]) {\n if (process.env.CASSOWARYJS) {\n this._spacingVars[index] = new c.Variable();\n this._solver.addEditVar(this._spacingVars[index]);\n this._spacingExpr[index] = c.minus(0, this._spacingVars[index]);\n }\n else {\n this._spacingVars[index] = new kiwi.Variable();\n this._solver.addEditVariable(this._spacingVars[index], kiwi.Strength.create(999, 1000, 1000));\n this._spacingExpr[index] = this._spacingVars[index].multiply(-1);\n }\n this._solver.suggestValue(this._spacingVars[index], this._spacing[index]);\n }\n return this._spacingExpr[index];\n}\n\nfunction _addConstraint(constraint) {\n //this.constraints.push(constraint);\n let relation;\n const multiplier = (constraint.multiplier !== undefined) ? constraint.multiplier : 1;\n let constant = (constraint.constant !== undefined) ? constraint.constant : 0;\n if (constant === 'default') {\n constant = _getSpacing.call(this, constraint);\n }\n const attr1 = _getSubView.call(this, constraint.view1)._getAttr(constraint.attr1);\n let attr2;\n if (process.env.CASSOWARYJS) {\n if (constraint.attr2 === Attribute.CONST) {\n attr2 = _getConst.call(this, undefined, constraint.constant);\n }\n else {\n attr2 = _getSubView.call(this, constraint.view2)._getAttr(constraint.attr2);\n if ((multiplier !== 1) && constant) {\n attr2 = c.plus(c.times(attr2, multiplier), constant);\n }\n else if (constant) {\n attr2 = c.plus(attr2, constant);\n }\n else if (multiplier !== 1) {\n attr2 = c.times(attr2, multiplier);\n }\n }\n const strength = ((constraint.priority !== undefined) && (constraint.priority < 1000)) ? new c.Strength('priority', 0, constraint.priority, 1000) : defaultPriorityStrength;\n switch (constraint.relation) {\n case Relation.EQU:\n relation = new c.Equation(attr1, attr2, strength);\n break;\n case Relation.GEQ:\n relation = new c.Inequality(attr1, c.GEQ, attr2, strength);\n break;\n case Relation.LEQ:\n relation = new c.Inequality(attr1, c.LEQ, attr2, strength);\n break;\n default:\n throw 'Invalid relation specified: ' + constraint.relation;\n }\n }\n else {\n if (constraint.attr2 === Attribute.CONST) {\n attr2 = _getConst.call(this, undefined, constraint.constant);\n }\n else {\n attr2 = _getSubView.call(this, constraint.view2)._getAttr(constraint.attr2);\n if ((multiplier !== 1) && constant) {\n attr2 = attr2.multiply(multiplier).plus(constant);\n }\n else if (constant) {\n attr2 = attr2.plus(constant);\n }\n else if (multiplier !== 1) {\n attr2 = attr2.multiply(multiplier);\n }\n }\n const strength = ((constraint.priority !== undefined) && (constraint.priority < 1000)) ? kiwi.Strength.create(0, constraint.priority, 1000) : defaultPriorityStrength;\n switch (constraint.relation) {\n case Relation.EQU:\n relation = new kiwi.Constraint(attr1, kiwi.Operator.Eq, attr2, strength);\n break;\n case Relation.GEQ:\n relation = new kiwi.Constraint(attr1, kiwi.Operator.Ge, attr2, strength);\n break;\n case Relation.LEQ:\n relation = new kiwi.Constraint(attr1, kiwi.Operator.Le, attr2, strength);\n break;\n default:\n throw 'Invalid relation specified: ' + constraint.relation;\n }\n }\n this._solver.addConstraint(relation);\n}\n\nfunction _compareSpacing(old, newz) {\n if (old === newz) {\n return true;\n }\n if (!old || !newz) {\n return false;\n }\n for (var i = 0; i < 7; i++) {\n if (old[i] !== newz[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * AutoLayoutJS API reference.\n *\n * ### Index\n *\n * |Entity|Type|Description|\n * |---|---|---|\n * |[AutoLayout](#autolayout)|`namespace`|Top level AutoLayout object.|\n * |[VisualFormat](#autolayoutvisualformat--object)|`namespace`|Parses VFL into constraints.|\n * |[View](#autolayoutview)|`class`|Main entity for adding & evaluating constraints.|\n * |[SubView](#autolayoutsubview--object)|`class`|SubView's are automatically created when constraints are added to views. They give access to the evaluated results.|\n * |[Attribute](#autolayoutattribute--enum)|`enum`|Attribute types that are supported when adding constraints.|\n * |[Relation](#autolayoutrelation--enum)|`enum`|Relationship types that are supported when adding constraints.|\n * |[Priority](#autolayoutpriority--enum)|`enum`|Default priority values for when adding constraints.|\n *\n * ### AutoLayout\n *\n * @module AutoLayout\n */\nclass View {\n\n /**\n * @class View\n * @param {Object} [options] Configuration options.\n * @param {Number} [options.width] Initial width of the view.\n * @param {Number} [options.height] Initial height of the view.\n * @param {Number|Object} [options.spacing] Spacing for the view (default: 8) (see `setSpacing`).\n * @param {Array} [options.constraints] One or more constraint definitions (see `addConstraints`).\n */\n constructor(options) {\n this._solver = process.env.CASSOWARYJS ? new c.SimplexSolver() : new kiwi.Solver();\n this._subViews = {};\n //this._spacing = undefined;\n this._parentSubView = new SubView({\n solver: this._solver\n });\n this.setSpacing((options && (options.spacing !== undefined)) ? options.spacing : 8);\n //this.constraints = [];\n if (options) {\n if ((options.width !== undefined) || (options.height !== undefined)) {\n this.setSize(options.width, options.height);\n }\n if (options.constraints) {\n this.addConstraints(options.constraints);\n }\n }\n }\n\n /**\n * Sets the width and height of the view.\n *\n * @param {Number} width Width of the view.\n * @param {Number} height Height of the view.\n * @return {View} this\n */\n setSize(width, height /*, depth*/) {\n this._parentSubView.intrinsicWidth = width;\n this._parentSubView.intrinsicHeight = height;\n return this;\n }\n\n /**\n * Width that was set using `setSize`.\n * @readonly\n * @type {Number}\n */\n get width() {\n return this._parentSubView.intrinsicWidth;\n }\n\n /**\n * Height that was set using `setSize`.\n * @readonly\n * @type {Number}\n */\n get height() {\n return this._parentSubView.intrinsicHeight;\n }\n\n /**\n * Width that is calculated from the constraints and the `.intrinsicWidth` of\n * the sub-views.\n *\n * When the width has been explicitely set using `setSize`, the fittingWidth\n * will **always** be the same as the explicitely set width. To calculate the size\n * based on the content, use:\n * ```javascript\n * var view = new AutoLayout.View({\n * constraints: VisualFormat.parse('|-[view1]-[view2]-'),\n * spacing: 20\n * });\n * view.subViews.view1.intrinsicWidth = 100;\n * view.subViews.view2.intrinsicWidth = 100;\n * console.log('fittingWidth: ' + view.fittingWidth); // 260\n * ```\n *\n * @readonly\n * @type {Number}\n */\n get fittingWidth() {\n return this._parentSubView.width;\n }\n\n /**\n * Height that is calculated from the constraints and the `.intrinsicHeight` of\n * the sub-views.\n *\n * See `.fittingWidth`.\n *\n * @readonly\n * @type {Number}\n */\n get fittingHeight() {\n return this._parentSubView.height;\n }\n\n /**\n * Sets the spacing for the view.\n *\n * The spacing can be set for 7 different variables:\n * `top`, `right`, `bottom`, `left`, `width`, `height` and `zIndex`. The `left`-spacing is\n * used when a spacer is used between the parent-view and a sub-view (e.g. `|-[subView]`).\n * The same is true for the `right`, `top` and `bottom` spacers. The `width` and `height` are\n * used for spacers in between sub-views (e.g. `[view1]-[view2]`).\n *\n * Instead of using the full spacing syntax, it is also possible to use shorthand notations:\n *\n * |Syntax|Type|Description|\n * |---|---|---|\n * |`[top, right, bottom, left, width, height, zIndex]`|Array(7)|Full syntax including z-index **(clockwise order)**.|\n * |`[top, right, bottom, left, width, height]`|Array(6)|Full horizontal & vertical spacing syntax (no z-index) **(clockwise order)**.|\n * |`[horizontal, vertical, zIndex]`|Array(3)|Horizontal = left, right, width, vertical = top, bottom, height.|\n * |`[horizontal, vertical]`|Array(2)|Horizontal = left, right, width, vertical = top, bottom, height, z-index = 1.|\n * |`spacing`|Number|Horizontal & vertical spacing are all the same, z-index = 1.|\n *\n * Examples:\n * ```javascript\n * view.setSpacing(10); // horizontal & vertical spacing 10\n * view.setSpacing([10, 15, 2]); // horizontal spacing 10, vertical spacing 15, z-axis spacing 2\n * view.setSpacing([10, 20, 10, 20, 5, 5]); // top, right, bottom, left, horizontal, vertical\n * view.setSpacing([10, 20, 10, 20, 5, 5, 1]); // top, right, bottom, left, horizontal, vertical, z\n * ```\n *\n * @param {Number|Array} spacing\n * @return {View} this\n */\n setSpacing(spacing) {\n // convert spacing into array: [top, right, bottom, left, horz, vert, z-index]\n switch (Array.isArray(spacing) ? spacing.length : -1) {\n case -1: spacing = [spacing, spacing, spacing, spacing, spacing, spacing, 1]; break;\n case 1: spacing = [spacing[0], spacing[0], spacing[0], spacing[0], spacing[0], spacing[0], 1]; break;\n case 2: spacing = [spacing[1], spacing[0], spacing[1], spacing[0], spacing[0], spacing[1], 1]; break;\n case 3: spacing = [spacing[1], spacing[0], spacing[1], spacing[0], spacing[0], spacing[1], spacing[2]]; break;\n case 6: spacing = [spacing[0], spacing[1], spacing[2], spacing[3], spacing[4], spacing[5], 1]; break;\n case 7: break;\n default: throw 'Invalid spacing syntax';\n }\n if (!_compareSpacing(this._spacing, spacing)) {\n this._spacing = spacing;\n // update spacing variables\n if (this._spacingVars) {\n for (var i = 0; i < this._spacingVars.length; i++) {\n if (this._spacingVars[i]) {\n this._solver.suggestValue(this._spacingVars[i], this._spacing[i]);\n }\n }\n if (process.env.CASSOWARYJS) {\n this._solver.resolve();\n }\n else {\n this._solver.updateVariables();\n }\n }\n }\n return this;\n }\n\n /**\n * Adds a constraint definition.\n *\n * A constraint definition has the following format:\n *\n * ```javascript\n * constraint: {\n * view1: {String},\n * attr1: {AutoLayout.Attribute},\n * relation: {AutoLayout.Relation},\n * view2: {String},\n * attr2: {AutoLayout.Attribute},\n * multiplier: {Number},\n * constant: {Number},\n * priority: {Number}(0..1000)\n * }\n * ```\n * @param {Object} constraint Constraint definition.\n * @return {View} this\n */\n addConstraint(constraint) {\n _addConstraint.call(this, constraint);\n if (!process.env.CASSOWARYJS) {\n this._solver.updateVariables();\n }\n return this;\n }\n\n /**\n * Adds one or more constraint definitions.\n *\n * A constraint definition has the following format:\n *\n * ```javascript\n * constraint: {\n * view1: {String},\n * attr1: {AutoLayout.Attribute},\n * relation: {AutoLayout.Relation},\n * view2: {String},\n * attr2: {AutoLayout.Attribute},\n * multiplier: {Number},\n * constant: {Number},\n * priority: {Number}(0..1000)\n * }\n * ```\n * @param {Array} constraints One or more constraint definitions.\n * @return {View} this\n */\n addConstraints(constraints) {\n for (var j = 0; j < constraints.length; j++) {\n _addConstraint.call(this, constraints[j]);\n }\n if (!process.env.CASSOWARYJS) {\n this._solver.updateVariables();\n }\n return this;\n }\n\n /**\n * Dictionary of `SubView` objects that have been created when adding constraints.\n * @readonly\n * @type {Object.SubView}\n */\n get subViews() {\n return this._subViews;\n }\n\n /**\n * Checks whether the constraints incompletely specify the location\n * of the subViews.\n * @private\n */\n //get hasAmbiguousLayout() {\n // Todo\n //}\n}\n\nvar AutoLayout = {\n Attribute: Attribute,\n Relation: Relation,\n Priority: Priority,\n VisualFormat: VisualFormat,\n View: View,\n SubView: SubView\n //DOM: DOM\n};\n\nmodule.exports = AutoLayout;","/**\n * Parts Copyright (C) 2011-2012, Alex Russell (slightlyoff@chromium.org)\n * Parts Copyright (C) Copyright (C) 1998-2000 Greg J. Badros\n *\n * Use of this source code is governed by the LGPL, which can be found in the\n * COPYING.LGPL file.\n *\n * This is a compiled version of Cassowary/JS. For source versions or to\n * contribute, see the github project:\n *\n * https://github.com/slightlyoff/cassowary-js-refactor\n *\n */\n\n(function() {\n(function(a){\"use strict\";try{(function(){}).bind(a)}catch(b){Object.defineProperty(Function.prototype,\"bind\",{value:function(a){var b=this;return function(){return b.apply(a,arguments)}},enumerable:!1,configurable:!0,writable:!0})}var c=a.HTMLElement!==void 0,d=function(a){for(var b=null;a&&a!=Object.prototype;){if(a.tagName){b=a.tagName;break}a=a.prototype}return b||\"div\"},e=1e-8,f={},g=function(a,b){if(a&&b){if(\"function\"==typeof a[b])return a[b];var c=a.prototype;if(c&&\"function\"==typeof c[b])return c[b];if(c!==Object.prototype&&c!==Function.prototype)return\"function\"==typeof a.__super__?g(a.__super__,b):void 0}},h=a.c={debug:!1,trace:!1,verbose:!1,traceAdded:!1,GC:!1,GEQ:1,LEQ:2,inherit:function(b){var e=null,g=null;b[\"extends\"]&&(g=b[\"extends\"],delete b[\"extends\"]),b.initialize&&(e=b.initialize,delete b.initialize);var h=e||function(){};Object.defineProperty(h,\"__super__\",{value:g?g:Object,enumerable:!1,configurable:!0,writable:!1}),b._t&&(f[b._t]=h);var i=h.prototype=Object.create(g?g.prototype:Object.prototype);if(this.extend(i,b),c&&g&&g.prototype instanceof a.HTMLElement){var j=h,k=d(i),l=function(a){return a.__proto__=i,j.apply(a,arguments),i.created&&a.created(),i.decorate&&a.decorate(),a};this.extend(i,{upgrade:l}),h=function(){return l(a.document.createElement(k))},h.prototype=i,this.extend(h,{ctor:j})}return h},extend:function(a,b){return this.own(b,function(c){var d=Object.getOwnPropertyDescriptor(b,c);try{\"function\"==typeof d.get||\"function\"==typeof d.set?Object.defineProperty(a,c,d):\"function\"==typeof d.value||\"_\"===c.charAt(0)?(d.writable=!0,d.configurable=!0,d.enumerable=!1,Object.defineProperty(a,c,d)):a[c]=b[c]}catch(e){}}),a},own:function(b,c,d){return Object.getOwnPropertyNames(b).forEach(c,d||a),b},traceprint:function(a){h.verbose&&console.log(a)},fnenterprint:function(a){console.log(\"* \"+a)},fnexitprint:function(a){console.log(\"- \"+a)},assert:function(a,b){if(!a)throw new h.InternalError(\"Assertion failed: \"+b)},plus:function(a,b){return a instanceof h.Expression||(a=new h.Expression(a)),b instanceof h.Expression||(b=new h.Expression(b)),a.plus(b)},minus:function(a,b){return a instanceof h.Expression||(a=new h.Expression(a)),b instanceof h.Expression||(b=new h.Expression(b)),a.minus(b)},times:function(a,b){return(\"number\"==typeof a||a instanceof h.Variable)&&(a=new h.Expression(a)),(\"number\"==typeof b||b instanceof h.Variable)&&(b=new h.Expression(b)),a.times(b)},divide:function(a,b){return(\"number\"==typeof a||a instanceof h.Variable)&&(a=new h.Expression(a)),(\"number\"==typeof b||b instanceof h.Variable)&&(b=new h.Expression(b)),a.divide(b)},approx:function(a,b){if(a===b)return!0;var c,d;return c=a instanceof h.Variable?a.value:a,d=b instanceof h.Variable?b.value:b,0==c?e>Math.abs(d):0==d?e>Math.abs(c):Math.abs(c-d)64||this._deleted>this._compactThreshold&&(this._compact(),this._deleted=0)},\"delete\":function(a){a=b(a),this._store.hasOwnProperty(a)&&(this._deleted++,delete this._store[a],this.size>0&&this.size--)},each:function(a,b){if(this.size){this._perhapsCompact();var c=this._store,d=this._keyStrMap;Object.keys(this._store).forEach(function(e){a.call(b||null,d[e],c[e])},this)}},escapingEach:function(a,b){if(this.size){this._perhapsCompact();for(var c=this,e=this._store,f=this._keyStrMap,g=d,h=Object.keys(e),i=0;h.length>i;i++)if(function(d){c._store.hasOwnProperty(d)&&(g=a.call(b||null,f[d],e[d]))}(h[i]),g){if(void 0!==g.retval)return g;if(g.brk)break}}},clone:function(){var b=new a.HashTable;return this.size&&(b.size=this.size,c(this._store,b._store),c(this._keyStrMap,b._keyStrMap)),b},equals:function(b){if(b===this)return!0;if(!(b instanceof a.HashTable)||b._size!==this._size)return!1;for(var c=Object.keys(this._store),d=0;c.length>d;d++){var e=c[d];if(this._keyStrMap[e]!==b._keyStrMap[e]||this._store[e]!==b._store[e])return!1}return!0},toString:function(){var b=\"\";return this.each(function(a,c){b+=a+\" => \"+c+\"\\n\"}),b}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.HashSet=a.inherit({_t:\"c.HashSet\",initialize:function(){this.storage=[],this.size=0},add:function(a){var b=this.storage;b.indexOf(a),-1==b.indexOf(a)&&b.push(a),this.size=this.storage.length},values:function(){return this.storage},has:function(a){var b=this.storage;return-1!=b.indexOf(a)},\"delete\":function(a){var b=this.storage.indexOf(a);return-1==b?null:(this.storage.splice(b,1)[0],this.size=this.storage.length,void 0)},clear:function(){this.storage.length=0},each:function(a,b){this.size&&this.storage.forEach(a,b)},escapingEach:function(a,b){this.size&&this.storage.forEach(a,b)},toString:function(){var a=this.size+\" {\",b=!0;return this.each(function(c){b?b=!1:a+=\", \",a+=c}),a+=\"}\\n\"},toJSON:function(){var a=[];return this.each(function(b){a.push(b.toJSON())}),{_t:\"c.HashSet\",data:a}},fromJSON:function(b){var c=new a.HashSet;return b.data&&(c.size=b.data.length,c.storage=b.data),c}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.Error=a.inherit({initialize:function(a){a&&(this._description=a)},_name:\"c.Error\",_description:\"An error has occured in Cassowary\",set description(a){this._description=a},get description(){return\"(\"+this._name+\") \"+this._description},get message(){return this.description},toString:function(){return this.description}});var b=function(b,c){return a.inherit({\"extends\":a.Error,initialize:function(){a.Error.apply(this,arguments)},_name:b||\"\",_description:c||\"\"})};a.ConstraintNotFound=b(\"c.ConstraintNotFound\",\"Tried to remove a constraint never added to the tableu\"),a.InternalError=b(\"c.InternalError\"),a.NonExpression=b(\"c.NonExpression\",\"The resulting expression would be non\"),a.NotEnoughStays=b(\"c.NotEnoughStays\",\"There are not enough stays to give specific values to every variable\"),a.RequiredFailure=b(\"c.RequiredFailure\",\"A required constraint cannot be satisfied\"),a.TooDifficult=b(\"c.TooDifficult\",\"The constraints are too difficult to solve\")}(this.c||module.parent.exports||{}),function(a){\"use strict\";var b=1e3;a.SymbolicWeight=a.inherit({_t:\"c.SymbolicWeight\",initialize:function(){this.value=0;for(var a=1,c=arguments.length-1;c>=0;--c)this.value+=arguments[c]*a,a*=b},toJSON:function(){return{_t:this._t,value:this.value}}})}(this.c||module.parent.exports||{}),function(a){a.Strength=a.inherit({initialize:function(b,c,d,e){this.name=b,this.symbolicWeight=c instanceof a.SymbolicWeight?c:new a.SymbolicWeight(c,d,e)},get required(){return this===a.Strength.required},toString:function(){return this.name+(this.isRequired?\"\":\":\"+this.symbolicWeight)}}),a.Strength.required=new a.Strength(\"\",1e3,1e3,1e3),a.Strength.strong=new a.Strength(\"strong\",1,0,0),a.Strength.medium=new a.Strength(\"medium\",0,1,0),a.Strength.weak=new a.Strength(\"weak\",0,0,1)}(this.c||(\"undefined\"!=typeof module?module.parent.exports.c:{})),function(a){\"use strict\";a.AbstractVariable=a.inherit({isDummy:!1,isExternal:!1,isPivotable:!1,isRestricted:!1,_init:function(b,c){this.hashCode=a._inc(),this.name=(c||\"\")+this.hashCode,b&&(b.name!==void 0&&(this.name=b.name),b.value!==void 0&&(this.value=b.value),b.prefix!==void 0&&(this._prefix=b.prefix))},_prefix:\"\",name:\"\",value:0,toJSON:function(){var a={};return this._t&&(a._t=this._t),this.name&&(a.name=this.name),this.value!==void 0&&(a.value=this.value),this._prefix&&(a._prefix=this._prefix),this._t&&(a._t=this._t),a},fromJSON:function(b,c){var d=new c;return a.extend(d,b),d},toString:function(){return this._prefix+\"[\"+this.name+\":\"+this.value+\"]\"}}),a.Variable=a.inherit({_t:\"c.Variable\",\"extends\":a.AbstractVariable,initialize:function(b){this._init(b,\"v\");var c=a.Variable._map;c&&(c[this.name]=this)},isExternal:!0}),a.DummyVariable=a.inherit({_t:\"c.DummyVariable\",\"extends\":a.AbstractVariable,initialize:function(a){this._init(a,\"d\")},isDummy:!0,isRestricted:!0,value:\"dummy\"}),a.ObjectiveVariable=a.inherit({_t:\"c.ObjectiveVariable\",\"extends\":a.AbstractVariable,initialize:function(a){this._init(a,\"o\")},value:\"obj\"}),a.SlackVariable=a.inherit({_t:\"c.SlackVariable\",\"extends\":a.AbstractVariable,initialize:function(a){this._init(a,\"s\")},isPivotable:!0,isRestricted:!0,value:\"slack\"})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.Point=a.inherit({initialize:function(b,c,d){if(b instanceof a.Variable)this._x=b;else{var e={value:b};d&&(e.name=\"x\"+d),this._x=new a.Variable(e)}if(c instanceof a.Variable)this._y=c;else{var f={value:c};d&&(f.name=\"y\"+d),this._y=new a.Variable(f)}},get x(){return this._x},set x(b){b instanceof a.Variable?this._x=b:this._x.value=b},get y(){return this._y},set y(b){b instanceof a.Variable?this._y=b:this._y.value=b},toString:function(){return\"(\"+this.x+\", \"+this.y+\")\"}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.Expression=a.inherit({initialize:function(b,c,d){a.GC&&console.log(\"new c.Expression\"),this.constant=\"number\"!=typeof d||isNaN(d)?0:d,this.terms=new a.HashTable,b instanceof a.AbstractVariable?this.setVariable(b,\"number\"==typeof c?c:1):\"number\"==typeof b&&(isNaN(b)?console.trace():this.constant=b)},initializeFromHash:function(b,c){return a.verbose&&(console.log(\"*******************************\"),console.log(\"clone c.initializeFromHash\"),console.log(\"*******************************\")),a.GC&&console.log(\"clone c.Expression\"),this.constant=b,this.terms=c.clone(),this},multiplyMe:function(a){this.constant*=a;var b=this.terms;return b.each(function(c,d){b.set(c,d*a)}),this},clone:function(){a.verbose&&(console.log(\"*******************************\"),console.log(\"clone c.Expression\"),console.log(\"*******************************\"));var b=new a.Expression;return b.initializeFromHash(this.constant,this.terms),b},times:function(b){if(\"number\"==typeof b)return this.clone().multiplyMe(b);if(this.isConstant)return b.times(this.constant);if(b.isConstant)return this.times(b.constant);throw new a.NonExpression},plus:function(b){return b instanceof a.Expression?this.clone().addExpression(b,1):b instanceof a.Variable?this.clone().addVariable(b,1):void 0},minus:function(b){return b instanceof a.Expression?this.clone().addExpression(b,-1):b instanceof a.Variable?this.clone().addVariable(b,-1):void 0},divide:function(b){if(\"number\"==typeof b){if(a.approx(b,0))throw new a.NonExpression;return this.times(1/b)}if(b instanceof a.Expression){if(!b.isConstant)throw new a.NonExpression;return this.times(1/b.constant)}},addExpression:function(b,c,d,e){return b instanceof a.AbstractVariable&&(b=new a.Expression(b),a.trace&&console.log(\"addExpression: Had to cast a var to an expression\")),c=c||1,this.constant+=c*b.constant,b.terms.each(function(a,b){this.addVariable(a,b*c,d,e)},this),this},addVariable:function(b,c,d,e){null==c&&(c=1),a.trace&&console.log(\"c.Expression::addVariable():\",b,c);var f=this.terms.get(b);if(f){var g=f+c;0==g||a.approx(g,0)?(e&&e.noteRemovedVariable(b,d),this.terms.delete(b)):this.setVariable(b,g)}else a.approx(c,0)||(this.setVariable(b,c),e&&e.noteAddedVariable(b,d));return this},setVariable:function(a,b){return this.terms.set(a,b),this},anyPivotableVariable:function(){if(this.isConstant)throw new a.InternalError(\"anyPivotableVariable called on a constant\");var b=this.terms.escapingEach(function(a){return a.isPivotable?{retval:a}:void 0});return b&&void 0!==b.retval?b.retval:null},substituteOut:function(b,c,d,e){a.trace&&(a.fnenterprint(\"CLE:substituteOut: \"+b+\", \"+c+\", \"+d+\", ...\"),a.traceprint(\"this = \"+this));var f=this.setVariable.bind(this),g=this.terms,h=g.get(b);g.delete(b),this.constant+=h*c.constant,c.terms.each(function(b,c){var i=g.get(b);if(i){var j=i+h*c;a.approx(j,0)?(e.noteRemovedVariable(b,d),g.delete(b)):f(b,j)}else f(b,h*c),e&&e.noteAddedVariable(b,d)}),a.trace&&a.traceprint(\"Now this is \"+this)},changeSubject:function(a,b){this.setVariable(a,this.newSubject(b))},newSubject:function(b){a.trace&&a.fnenterprint(\"newSubject:\"+b);var c=1/this.terms.get(b);return this.terms.delete(b),this.multiplyMe(-c),c},coefficientFor:function(a){return this.terms.get(a)||0},get isConstant(){return 0==this.terms.size},toString:function(){var b=\"\",c=!1;if(!a.approx(this.constant,0)||this.isConstant){if(b+=this.constant,this.isConstant)return b;c=!0}return this.terms.each(function(a,d){c&&(b+=\" + \"),b+=d+\"*\"+a,c=!0}),b},equals:function(b){return b===this?!0:b instanceof a.Expression&&b.constant===this.constant&&b.terms.equals(this.terms)},Plus:function(a,b){return a.plus(b)},Minus:function(a,b){return a.minus(b)},Times:function(a,b){return a.times(b)},Divide:function(a,b){return a.divide(b)}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.AbstractConstraint=a.inherit({initialize:function(b,c){this.hashCode=a._inc(),this.strength=b||a.Strength.required,this.weight=c||1},isEditConstraint:!1,isInequality:!1,isStayConstraint:!1,get required(){return this.strength===a.Strength.required},toString:function(){return this.strength+\" {\"+this.weight+\"} (\"+this.expression+\")\"}});var b=a.AbstractConstraint.prototype.toString,c=function(b,c,d){a.AbstractConstraint.call(this,c||a.Strength.strong,d),this.variable=b,this.expression=new a.Expression(b,-1,b.value)};a.EditConstraint=a.inherit({\"extends\":a.AbstractConstraint,initialize:function(){c.apply(this,arguments)},isEditConstraint:!0,toString:function(){return\"edit:\"+b.call(this)}}),a.StayConstraint=a.inherit({\"extends\":a.AbstractConstraint,initialize:function(){c.apply(this,arguments)},isStayConstraint:!0,toString:function(){return\"stay:\"+b.call(this)}});var d=a.Constraint=a.inherit({\"extends\":a.AbstractConstraint,initialize:function(b,c,d){a.AbstractConstraint.call(this,c,d),this.expression=b}});a.Inequality=a.inherit({\"extends\":a.Constraint,_cloneOrNewCle:function(b){return b.clone?b.clone():new a.Expression(b)},initialize:function(b,c,e,f,g){var h=b instanceof a.Expression,i=e instanceof a.Expression,j=b instanceof a.AbstractVariable,k=e instanceof a.AbstractVariable,l=\"number\"==typeof b,m=\"number\"==typeof e;if((h||l)&&k){var n=b,o=c,p=e,q=f,r=g;if(d.call(this,this._cloneOrNewCle(n),q,r),o==a.LEQ)this.expression.multiplyMe(-1),this.expression.addVariable(p);else{if(o!=a.GEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");this.expression.addVariable(p,-1)}}else if(j&&(i||m)){var n=e,o=c,p=b,q=f,r=g;if(d.call(this,this._cloneOrNewCle(n),q,r),o==a.GEQ)this.expression.multiplyMe(-1),this.expression.addVariable(p);else{if(o!=a.LEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");this.expression.addVariable(p,-1)}}else{if(h&&m){var s=b,o=c,t=e,q=f,r=g;if(d.call(this,this._cloneOrNewCle(s),q,r),o==a.LEQ)this.expression.multiplyMe(-1),this.expression.addExpression(this._cloneOrNewCle(t));else{if(o!=a.GEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");this.expression.addExpression(this._cloneOrNewCle(t),-1)}return this}if(l&&i){var s=e,o=c,t=b,q=f,r=g;if(d.call(this,this._cloneOrNewCle(s),q,r),o==a.GEQ)this.expression.multiplyMe(-1),this.expression.addExpression(this._cloneOrNewCle(t));else{if(o!=a.LEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");this.expression.addExpression(this._cloneOrNewCle(t),-1)}return this}if(h&&i){var s=b,o=c,t=e,q=f,r=g;if(d.call(this,this._cloneOrNewCle(t),q,r),o==a.GEQ)this.expression.multiplyMe(-1),this.expression.addExpression(this._cloneOrNewCle(s));else{if(o!=a.LEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");this.expression.addExpression(this._cloneOrNewCle(s),-1)}}else{if(h)return d.call(this,b,c,e);if(c==a.GEQ)d.call(this,new a.Expression(e),f,g),this.expression.multiplyMe(-1),this.expression.addVariable(b);else{if(c!=a.LEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");d.call(this,new a.Expression(e),f,g),this.expression.addVariable(b,-1)}}}},isInequality:!0,toString:function(){return d.prototype.toString.call(this)+\" >= 0) id: \"+this.hashCode}}),a.Equation=a.inherit({\"extends\":a.Constraint,initialize:function(b,c,e,f){if(b instanceof a.Expression&&!c||c instanceof a.Strength)d.call(this,b,c,e);else if(b instanceof a.AbstractVariable&&c instanceof a.Expression){var g=b,h=c,i=e,j=f;d.call(this,h.clone(),i,j),this.expression.addVariable(g,-1)}else if(b instanceof a.AbstractVariable&&\"number\"==typeof c){var g=b,k=c,i=e,j=f;d.call(this,new a.Expression(k),i,j),this.expression.addVariable(g,-1)}else if(b instanceof a.Expression&&c instanceof a.AbstractVariable){var h=b,g=c,i=e,j=f;d.call(this,h.clone(),i,j),this.expression.addVariable(g,-1)}else{if(!(b instanceof a.Expression||b instanceof a.AbstractVariable||\"number\"==typeof b)||!(c instanceof a.Expression||c instanceof a.AbstractVariable||\"number\"==typeof c))throw\"Bad initializer to c.Equation\";b=b instanceof a.Expression?b.clone():new a.Expression(b),c=c instanceof a.Expression?c.clone():new a.Expression(c),d.call(this,b,e,f),this.expression.addExpression(c,-1)}a.assert(this.strength instanceof a.Strength,\"_strength not set\")},toString:function(){return d.prototype.toString.call(this)+\" = 0)\"}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.EditInfo=a.inherit({initialize:function(a,b,c,d,e){this.constraint=a,this.editPlus=b,this.editMinus=c,this.prevEditConstant=d,this.index=e},toString:function(){return\"\"}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.Tableau=a.inherit({initialize:function(){this.columns=new a.HashTable,this.rows=new a.HashTable,this._infeasibleRows=new a.HashSet,this._externalRows=new a.HashSet,this._externalParametricVars=new a.HashSet},noteRemovedVariable:function(b,c){a.trace&&console.log(\"c.Tableau::noteRemovedVariable: \",b,c);var d=this.columns.get(b);c&&d&&d.delete(c)},noteAddedVariable:function(a,b){b&&this.insertColVar(a,b)},getInternalInfo:function(){var a=\"Tableau Information:\\n\";return a+=\"Rows: \"+this.rows.size,a+=\" (= \"+(this.rows.size-1)+\" constraints)\",a+=\"\\nColumns: \"+this.columns.size,a+=\"\\nInfeasible Rows: \"+this._infeasibleRows.size,a+=\"\\nExternal basic variables: \"+this._externalRows.size,a+=\"\\nExternal parametric variables: \",a+=this._externalParametricVars.size,a+=\"\\n\"},toString:function(){var a=\"Tableau:\\n\";return this.rows.each(function(b,c){a+=b,a+=\" <==> \",a+=c,a+=\"\\n\"}),a+=\"\\nColumns:\\n\",a+=this.columns,a+=\"\\nInfeasible rows: \",a+=this._infeasibleRows,a+=\"External basic variables: \",a+=this._externalRows,a+=\"External parametric variables: \",a+=this._externalParametricVars},insertColVar:function(b,c){var d=this.columns.get(b);d||(d=new a.HashSet,this.columns.set(b,d)),d.add(c)},addRow:function(b,c){a.trace&&a.fnenterprint(\"addRow: \"+b+\", \"+c),this.rows.set(b,c),c.terms.each(function(a){this.insertColVar(a,b),a.isExternal&&this._externalParametricVars.add(a)},this),b.isExternal&&this._externalRows.add(b),a.trace&&a.traceprint(\"\"+this)},removeColumn:function(b){a.trace&&a.fnenterprint(\"removeColumn:\"+b);var c=this.columns.get(b);c?(this.columns.delete(b),c.each(function(a){var c=this.rows.get(a);c.terms.delete(b)},this)):a.trace&&console.log(\"Could not find var\",b,\"in columns\"),b.isExternal&&(this._externalRows.delete(b),this._externalParametricVars.delete(b))},removeRow:function(b){a.trace&&a.fnenterprint(\"removeRow:\"+b);var c=this.rows.get(b);return a.assert(null!=c),c.terms.each(function(c){var e=this.columns.get(c);null!=e&&(a.trace&&console.log(\"removing from varset:\",b),e.delete(b))},this),this._infeasibleRows.delete(b),b.isExternal&&this._externalRows.delete(b),this.rows.delete(b),a.trace&&a.fnexitprint(\"returning \"+c),c},substituteOut:function(b,c){a.trace&&a.fnenterprint(\"substituteOut:\"+b+\", \"+c),a.trace&&a.traceprint(\"\"+this);var d=this.columns.get(b);d.each(function(a){var d=this.rows.get(a);d.substituteOut(b,c,a,this),a.isRestricted&&0>d.constant&&this._infeasibleRows.add(a)},this),b.isExternal&&(this._externalRows.add(b),this._externalParametricVars.delete(b)),this.columns.delete(b)},columnsHasKey:function(a){return!!this.columns.get(a)}})}(this.c||module.parent.exports||{}),function(a){var b=a.Tableau,c=b.prototype,d=1e-8,e=a.Strength.weak;a.SimplexSolver=a.inherit({\"extends\":a.Tableau,initialize:function(){a.Tableau.call(this),this._stayMinusErrorVars=[],this._stayPlusErrorVars=[],this._errorVars=new a.HashTable,this._markerVars=new a.HashTable,this._objective=new a.ObjectiveVariable({name:\"Z\"}),this._editVarMap=new a.HashTable,this._editVarList=[],this._slackCounter=0,this._artificialCounter=0,this._dummyCounter=0,this.autoSolve=!0,this._fNeedsSolving=!1,this._optimizeCount=0,this.rows.set(this._objective,new a.Expression),this._stkCedcns=[0],a.trace&&a.traceprint(\"objective expr == \"+this.rows.get(this._objective))},addLowerBound:function(b,c){var d=new a.Inequality(b,a.GEQ,new a.Expression(c));return this.addConstraint(d)},addUpperBound:function(b,c){var d=new a.Inequality(b,a.LEQ,new a.Expression(c));return this.addConstraint(d)},addBounds:function(a,b,c){return this.addLowerBound(a,b),this.addUpperBound(a,c),this},add:function(){for(var a=0;arguments.length>a;a++)this.addConstraint(arguments[a]);return this},addConstraint:function(b){a.trace&&a.fnenterprint(\"addConstraint: \"+b);var c=Array(2),d=Array(1),e=this.newExpression(b,c,d);if(d=d[0],this.tryAddingDirectly(e)||this.addWithArtificialVariable(e),this._fNeedsSolving=!0,b.isEditConstraint){var f=this._editVarMap.size,g=c[0],h=c[1];!g instanceof a.SlackVariable&&console.warn(\"cvEplus not a slack variable =\",g),!h instanceof a.SlackVariable&&console.warn(\"cvEminus not a slack variable =\",h),a.debug&&console.log(\"new c.EditInfo(\"+b+\", \"+g+\", \"+h+\", \"+d+\", \"+f+\")\");var i=new a.EditInfo(b,g,h,d,f);this._editVarMap.set(b.variable,i),this._editVarList[f]={v:b.variable,info:i}}return this.autoSolve&&(this.optimize(this._objective),this._setExternalVariables()),this},addConstraintNoException:function(b){a.trace&&a.fnenterprint(\"addConstraintNoException: \"+b);try{return this.addConstraint(b),!0}catch(c){return!1}},addEditVar:function(b,c){return a.trace&&a.fnenterprint(\"addEditVar: \"+b+\" @ \"+c),this.addConstraint(new a.EditConstraint(b,c||a.Strength.strong))},beginEdit:function(){return a.assert(this._editVarMap.size>0,\"_editVarMap.size > 0\"),this._infeasibleRows.clear(),this._resetStayConstants(),this._stkCedcns.push(this._editVarMap.size),this},endEdit:function(){return a.assert(this._editVarMap.size>0,\"_editVarMap.size > 0\"),this.resolve(),this._stkCedcns.pop(),this.removeEditVarsTo(this._stkCedcns[this._stkCedcns.length-1]),this},removeAllEditVars:function(){return this.removeEditVarsTo(0)},removeEditVarsTo:function(b){try{for(var c=this._editVarList.length,d=b;c>d;d++)this._editVarList[d]&&this.removeConstraint(this._editVarMap.get(this._editVarList[d].v).constraint);return this._editVarList.length=b,a.assert(this._editVarMap.size==b,\"_editVarMap.size == n\"),this}catch(e){throw new a.InternalError(\"Constraint not found in removeEditVarsTo\")}},addPointStays:function(b){return a.trace&&console.log(\"addPointStays\",b),b.forEach(function(a,b){this.addStay(a.x,e,Math.pow(2,b)),this.addStay(a.y,e,Math.pow(2,b))},this),this},addStay:function(b,c,d){var f=new a.StayConstraint(b,c||e,d||1);return this.addConstraint(f)},removeConstraint:function(a){return this.removeConstraintInternal(a),this},removeConstraintInternal:function(b){a.trace&&a.fnenterprint(\"removeConstraintInternal: \"+b),a.trace&&a.traceprint(\"\"+this),this._fNeedsSolving=!0,this._resetStayConstants();var c=this.rows.get(this._objective),d=this._errorVars.get(b);a.trace&&a.traceprint(\"eVars == \"+d),null!=d&&d.each(function(e){var f=this.rows.get(e);null==f?c.addVariable(e,-b.weight*b.strength.symbolicWeight.value,this._objective,this):c.addExpression(f,-b.weight*b.strength.symbolicWeight.value,this._objective,this),a.trace&&a.traceprint(\"now eVars == \"+d)},this);var e=this._markerVars.get(b);if(this._markerVars.delete(b),null==e)throw new a.InternalError(\"Constraint not found in removeConstraintInternal\");if(a.trace&&a.traceprint(\"Looking to remove var \"+e),null==this.rows.get(e)){var f=this.columns.get(e);a.trace&&a.traceprint(\"Must pivot -- columns are \"+f);var g=null,h=0;f.each(function(b){if(b.isRestricted){var c=this.rows.get(b),d=c.coefficientFor(e);if(a.trace&&a.traceprint(\"Marker \"+e+\"'s coefficient in \"+c+\" is \"+d),0>d){var f=-c.constant/d;(null==g||h>f||a.approx(f,h)&&b.hashCoded)&&(h=d,g=a)}},this)),null==g&&(0==f.size?this.removeColumn(e):f.escapingEach(function(a){return a!=this._objective?(g=a,{brk:!0}):void 0},this)),null!=g&&this.pivot(e,g)}if(null!=this.rows.get(e)&&this.removeRow(e),null!=d&&d.each(function(a){a!=e&&this.removeColumn(a)},this),b.isStayConstraint){if(null!=d)for(var j=0;this._stayPlusErrorVars.length>j;j++)d.delete(this._stayPlusErrorVars[j]),d.delete(this._stayMinusErrorVars[j])}else if(b.isEditConstraint){a.assert(null!=d,\"eVars != null\");var k=this._editVarMap.get(b.variable);this.removeColumn(k.editMinus),this._editVarMap.delete(b.variable)}return null!=d&&this._errorVars.delete(d),this.autoSolve&&(this.optimize(this._objective),this._setExternalVariables()),this},reset:function(){throw a.trace&&a.fnenterprint(\"reset\"),new a.InternalError(\"reset not implemented\")},resolveArray:function(b){a.trace&&a.fnenterprint(\"resolveArray\"+b);var c=b.length;this._editVarMap.each(function(a,d){var e=d.index;c>e&&this.suggestValue(a,b[e])},this),this.resolve()},resolvePair:function(a,b){this.suggestValue(this._editVarList[0].v,a),this.suggestValue(this._editVarList[1].v,b),this.resolve()},resolve:function(){a.trace&&a.fnenterprint(\"resolve()\"),this.dualOptimize(),this._setExternalVariables(),this._infeasibleRows.clear(),this._resetStayConstants()},suggestValue:function(b,c){a.trace&&console.log(\"suggestValue(\"+b+\", \"+c+\")\");var d=this._editVarMap.get(b);if(!d)throw new a.Error(\"suggestValue for variable \"+b+\", but var is not an edit variable\");var e=c-d.prevEditConstant;return d.prevEditConstant=c,this.deltaEditConstant(e,d.editPlus,d.editMinus),this},solve:function(){return this._fNeedsSolving&&(this.optimize(this._objective),this._setExternalVariables()),this},setEditedValue:function(b,c){if(!this.columnsHasKey(b)&&null==this.rows.get(b))return b.value=c,this;if(!a.approx(c,b.value)){this.addEditVar(b),this.beginEdit();try{this.suggestValue(b,c)}catch(d){throw new a.InternalError(\"Error in setEditedValue\")}this.endEdit()}return this},addVar:function(b){if(!this.columnsHasKey(b)&&null==this.rows.get(b)){try{this.addStay(b)}catch(c){throw new a.InternalError(\"Error in addVar -- required failure is impossible\")}a.trace&&a.traceprint(\"added initial stay on \"+b)}return this},getInternalInfo:function(){var a=c.getInternalInfo.call(this);return a+=\"\\nSolver info:\\n\",a+=\"Stay Error Variables: \",a+=this._stayPlusErrorVars.length+this._stayMinusErrorVars.length,a+=\" (\"+this._stayPlusErrorVars.length+\" +, \",a+=this._stayMinusErrorVars.length+\" -)\\n\",a+=\"Edit Variables: \"+this._editVarMap.size,a+=\"\\n\"},getDebugInfo:function(){return\"\"+this+this.getInternalInfo()+\"\\n\"},toString:function(){var a=c.getInternalInfo.call(this);return a+=\"\\n_stayPlusErrorVars: \",a+=\"[\"+this._stayPlusErrorVars+\"]\",a+=\"\\n_stayMinusErrorVars: \",a+=\"[\"+this._stayMinusErrorVars+\"]\",a+=\"\\n\",a+=\"_editVarMap:\\n\"+this._editVarMap,a+=\"\\n\"},getConstraintMap:function(){return this._markerVars},addWithArtificialVariable:function(b){a.trace&&a.fnenterprint(\"addWithArtificialVariable: \"+b);var c=new a.SlackVariable({value:++this._artificialCounter,prefix:\"a\"}),d=new a.ObjectiveVariable({name:\"az\"}),e=b.clone();a.trace&&a.traceprint(\"before addRows:\\n\"+this),this.addRow(d,e),this.addRow(c,b),a.trace&&a.traceprint(\"after addRows:\\n\"+this),this.optimize(d);var f=this.rows.get(d);if(a.trace&&a.traceprint(\"azTableauRow.constant == \"+f.constant),!a.approx(f.constant,0))throw this.removeRow(d),this.removeColumn(c),new a.RequiredFailure;var g=this.rows.get(c);if(null!=g){if(g.isConstant)return this.removeRow(c),this.removeRow(d),void 0;var h=g.anyPivotableVariable();this.pivot(h,c)}a.assert(null==this.rows.get(c),\"rowExpression(av) == null\"),this.removeColumn(c),this.removeRow(d)},tryAddingDirectly:function(b){a.trace&&a.fnenterprint(\"tryAddingDirectly: \"+b);var c=this.chooseSubject(b);return null==c?(a.trace&&a.fnexitprint(\"returning false\"),!1):(b.newSubject(c),this.columnsHasKey(c)&&this.substituteOut(c,b),this.addRow(c,b),a.trace&&a.fnexitprint(\"returning true\"),!0)},chooseSubject:function(b){a.trace&&a.fnenterprint(\"chooseSubject: \"+b);var c=null,d=!1,e=!1,f=b.terms,g=f.escapingEach(function(a,b){if(d){if(!a.isRestricted&&!this.columnsHasKey(a))return{retval:a}}else if(a.isRestricted){if(!e&&!a.isDummy&&0>b){var f=this.columns.get(a);(null==f||1==f.size&&this.columnsHasKey(this._objective))&&(c=a,e=!0)}}else c=a,d=!0},this);if(g&&void 0!==g.retval)return g.retval;if(null!=c)return c;var h=0,g=f.escapingEach(function(a,b){return a.isDummy?(this.columnsHasKey(a)||(c=a,h=b),void 0):{retval:null}},this);if(g&&void 0!==g.retval)return g.retval;if(!a.approx(b.constant,0))throw new a.RequiredFailure;return h>0&&b.multiplyMe(-1),c},deltaEditConstant:function(b,c,d){a.trace&&a.fnenterprint(\"deltaEditConstant :\"+b+\", \"+c+\", \"+d);var e=this.rows.get(c);if(null!=e)return e.constant+=b,0>e.constant&&this._infeasibleRows.add(c),void 0;var f=this.rows.get(d);if(null!=f)return f.constant+=-b,0>f.constant&&this._infeasibleRows.add(d),void 0;var g=this.columns.get(d);g||console.log(\"columnVars is null -- tableau is:\\n\"+this),g.each(function(a){var c=this.rows.get(a),e=c.coefficientFor(d);c.constant+=e*b,a.isRestricted&&0>c.constant&&this._infeasibleRows.add(a)},this)},dualOptimize:function(){a.trace&&a.fnenterprint(\"dualOptimize:\");for(var b=this.rows.get(this._objective);this._infeasibleRows.size;){var c=this._infeasibleRows.values()[0];this._infeasibleRows.delete(c);var d=null,e=this.rows.get(c);if(e&&0>e.constant){var g,f=Number.MAX_VALUE,h=e.terms;if(h.each(function(c,e){if(e>0&&c.isPivotable){var h=b.coefficientFor(c);g=h/e,(f>g||a.approx(g,f)&&c.hashCodef.constant&&f.multiplyMe(-1),a.trace&&a.fnexitprint(\"returning \"+f),f},optimize:function(b){a.trace&&a.fnenterprint(\"optimize: \"+b),a.trace&&a.traceprint(\"\"+this),this._optimizeCount++;var c=this.rows.get(b);a.assert(null!=c,\"zRow != null\");for(var g,h,e=null,f=null;;){if(g=0,h=c.terms,h.escapingEach(function(a,b){return a.isPivotable&&g>b?(g=b,e=a,{brk:1}):void 0},this),g>=-d)return;a.trace&&console.log(\"entryVar:\",e,\"objectiveCoeff:\",g);var i=Number.MAX_VALUE,j=this.columns.get(e),k=0;if(j.each(function(b){if(a.trace&&a.traceprint(\"Checking \"+b),b.isPivotable){var c=this.rows.get(b),d=c.coefficientFor(e);a.trace&&a.traceprint(\"pivotable, coeff = \"+d),0>d&&(k=-c.constant/d,(i>k||a.approx(k,i)&&b.hashCodeb;b++){var c=this.rows.get(this._stayPlusErrorVars[b]);null==c&&(c=this.rows.get(this._stayMinusErrorVars[b])),null!=c&&(c.constant=0)}},_setExternalVariables:function(){a.trace&&a.fnenterprint(\"_setExternalVariables:\"),a.trace&&a.traceprint(\"\"+this),this._externalParametricVars.each(function(b){null!=this.rows.get(b)?a.trace&&console.log(\"Error: variable\"+b+\" in _externalParametricVars is basic\"):b.value=0},this),this._externalRows.each(function(a){var b=this.rows.get(a);a.value!=b.constant&&(a.value=b.constant)},this),this._fNeedsSolving=!1,this.onsolved()},onsolved:function(){},insertErrorVar:function(b,c){a.trace&&a.fnenterprint(\"insertErrorVar:\"+b+\", \"+c);var d=this._errorVars.get(c);d||(d=new a.HashSet,this._errorVars.set(b,d)),d.add(c)}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.Timer=a.inherit({initialize:function(){this.isRunning=!1,this._elapsedMs=0},start:function(){return this.isRunning=!0,this._startReading=new Date,this},stop:function(){return this.isRunning=!1,this._elapsedMs+=new Date-this._startReading,this},reset:function(){return this.isRunning=!1,this._elapsedMs=0,this},elapsedTime:function(){return this.isRunning?(this._elapsedMs+(new Date-this._startReading))/1e3:this._elapsedMs/1e3}})}(this.c||module.parent.exports||{}),__cassowary_parser=function(){function a(a){return'\"'+a.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\x08/g,\"\\\\b\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\f/g,\"\\\\f\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x07\\x0B\\x0E-\\x1F\\x80-\\uFFFF]/g,escape)+'\"'}var b={parse:function(b,c){function k(a){g>e||(e>g&&(g=e,h=[]),h.push(a))}function l(){var a,b,c,d,f;if(d=e,f=e,a=z(),null!==a){if(c=m(),null!==c)for(b=[];null!==c;)b.push(c),c=m();else b=null;null!==b?(c=z(),null!==c?a=[a,b,c]:(a=null,e=f)):(a=null,e=f)}else a=null,e=f;return null!==a&&(a=function(a,b){return b}(d,a[1])),null===a&&(e=d),a}function m(){var a,b,c,d;return c=e,d=e,a=P(),null!==a?(b=s(),null!==b?a=[a,b]:(a=null,e=d)):(a=null,e=d),null!==a&&(a=function(a,b){return b}(c,a[0])),null===a&&(e=c),a}function n(){var a;return b.length>e?(a=b.charAt(e),e++):(a=null,0===f&&k(\"any character\")),a}function o(){var a;return/^[a-zA-Z]/.test(b.charAt(e))?(a=b.charAt(e),e++):(a=null,0===f&&k(\"[a-zA-Z]\")),null===a&&(36===b.charCodeAt(e)?(a=\"$\",e++):(a=null,0===f&&k('\"$\"')),null===a&&(95===b.charCodeAt(e)?(a=\"_\",e++):(a=null,0===f&&k('\"_\"')))),a}function p(){var a;return f++,/^[\\t\\x0B\\f \\xA0\\uFEFF]/.test(b.charAt(e))?(a=b.charAt(e),e++):(a=null,0===f&&k(\"[\\\\t\\\\x0B\\\\f \\\\xA0\\\\uFEFF]\")),f--,0===f&&null===a&&k(\"whitespace\"),a}function q(){var a;return/^[\\n\\r\\u2028\\u2029]/.test(b.charAt(e))?(a=b.charAt(e),e++):(a=null,0===f&&k(\"[\\\\n\\\\r\\\\u2028\\\\u2029]\")),a}function r(){var a;return f++,10===b.charCodeAt(e)?(a=\"\\n\",e++):(a=null,0===f&&k('\"\\\\n\"')),null===a&&(\"\\r\\n\"===b.substr(e,2)?(a=\"\\r\\n\",e+=2):(a=null,0===f&&k('\"\\\\r\\\\n\"')),null===a&&(13===b.charCodeAt(e)?(a=\"\\r\",e++):(a=null,0===f&&k('\"\\\\r\"')),null===a&&(8232===b.charCodeAt(e)?(a=\"\\u2028\",e++):(a=null,0===f&&k('\"\\\\u2028\"')),null===a&&(8233===b.charCodeAt(e)?(a=\"\\u2029\",e++):(a=null,0===f&&k('\"\\\\u2029\"')))))),f--,0===f&&null===a&&k(\"end of line\"),a}function s(){var a,c,d;return d=e,a=z(),null!==a?(59===b.charCodeAt(e)?(c=\";\",e++):(c=null,0===f&&k('\";\"')),null!==c?a=[a,c]:(a=null,e=d)):(a=null,e=d),null===a&&(d=e,a=y(),null!==a?(c=r(),null!==c?a=[a,c]:(a=null,e=d)):(a=null,e=d),null===a&&(d=e,a=z(),null!==a?(c=t(),null!==c?a=[a,c]:(a=null,e=d)):(a=null,e=d))),a}function t(){var a,c;return c=e,f++,b.length>e?(a=b.charAt(e),e++):(a=null,0===f&&k(\"any character\")),f--,null===a?a=\"\":(a=null,e=c),a}function u(){var a;return f++,a=v(),null===a&&(a=x()),f--,0===f&&null===a&&k(\"comment\"),a}function v(){var a,c,d,g,h,i,j;if(h=e,\"/*\"===b.substr(e,2)?(a=\"/*\",e+=2):(a=null,0===f&&k('\"/*\"')),null!==a){for(c=[],i=e,j=e,f++,\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==d;)c.push(d),i=e,j=e,f++,\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==c?(\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),null!==d?a=[a,c,d]:(a=null,e=h)):(a=null,e=h)}else a=null,e=h;return a}function w(){var a,c,d,g,h,i,j;if(h=e,\"/*\"===b.substr(e,2)?(a=\"/*\",e+=2):(a=null,0===f&&k('\"/*\"')),null!==a){for(c=[],i=e,j=e,f++,\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),null===d&&(d=q()),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==d;)c.push(d),i=e,j=e,f++,\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),null===d&&(d=q()),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==c?(\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),null!==d?a=[a,c,d]:(a=null,e=h)):(a=null,e=h)}else a=null,e=h;return a}function x(){var a,c,d,g,h,i,j;if(h=e,\"//\"===b.substr(e,2)?(a=\"//\",e+=2):(a=null,0===f&&k('\"//\"')),null!==a){for(c=[],i=e,j=e,f++,d=q(),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==d;)c.push(d),i=e,j=e,f++,d=q(),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==c?a=[a,c]:(a=null,e=h)}else a=null,e=h;return a}function y(){var a,b;for(a=[],b=p(),null===b&&(b=w(),null===b&&(b=x()));null!==b;)a.push(b),b=p(),null===b&&(b=w(),null===b&&(b=x()));return a}function z(){var a,b;for(a=[],b=p(),null===b&&(b=r(),null===b&&(b=u()));null!==b;)a.push(b),b=p(),null===b&&(b=r(),null===b&&(b=u()));return a}function A(){var a,b;return b=e,a=C(),null===a&&(a=B()),null!==a&&(a=function(a,b){return{type:\"NumericLiteral\",value:b}}(b,a)),null===a&&(e=b),a}function B(){var a,c,d;if(d=e,/^[0-9]/.test(b.charAt(e))?(c=b.charAt(e),e++):(c=null,0===f&&k(\"[0-9]\")),null!==c)for(a=[];null!==c;)a.push(c),/^[0-9]/.test(b.charAt(e))?(c=b.charAt(e),e++):(c=null,0===f&&k(\"[0-9]\"));else a=null;return null!==a&&(a=function(a,b){return parseInt(b.join(\"\"))}(d,a)),null===a&&(e=d),a}function C(){var a,c,d,g,h;return g=e,h=e,a=B(),null!==a?(46===b.charCodeAt(e)?(c=\".\",e++):(c=null,0===f&&k('\".\"')),null!==c?(d=B(),null!==d?a=[a,c,d]:(a=null,e=h)):(a=null,e=h)):(a=null,e=h),null!==a&&(a=function(a,b){return parseFloat(b.join(\"\"))}(g,a)),null===a&&(e=g),a}function D(){var a,c,d,g;if(g=e,/^[\\-+]/.test(b.charAt(e))?(a=b.charAt(e),e++):(a=null,0===f&&k(\"[\\\\-+]\")),a=null!==a?a:\"\",null!==a){if(/^[0-9]/.test(b.charAt(e))?(d=b.charAt(e),e++):(d=null,0===f&&k(\"[0-9]\")),null!==d)for(c=[];null!==d;)c.push(d),/^[0-9]/.test(b.charAt(e))?(d=b.charAt(e),e++):(d=null,0===f&&k(\"[0-9]\"));else c=null;null!==c?a=[a,c]:(a=null,e=g)}else a=null,e=g;return a}function E(){var a,b;return f++,b=e,a=F(),null!==a&&(a=function(a,b){return b}(b,a)),null===a&&(e=b),f--,0===f&&null===a&&k(\"identifier\"),a}function F(){var a,b,c,d,g;if(f++,d=e,g=e,a=o(),null!==a){for(b=[],c=o();null!==c;)b.push(c),c=o();null!==b?a=[a,b]:(a=null,e=g)}else a=null,e=g;return null!==a&&(a=function(a,b,c){return b+c.join(\"\")}(d,a[0],a[1])),null===a&&(e=d),f--,0===f&&null===a&&k(\"identifier\"),a}function G(){var a,c,d,g,h,i,j;return i=e,a=E(),null!==a&&(a=function(a,b){return{type:\"Variable\",name:b}}(i,a)),null===a&&(e=i),null===a&&(a=A(),null===a&&(i=e,j=e,40===b.charCodeAt(e)?(a=\"(\",e++):(a=null,0===f&&k('\"(\"')),null!==a?(c=z(),null!==c?(d=P(),null!==d?(g=z(),null!==g?(41===b.charCodeAt(e)?(h=\")\",e++):(h=null,0===f&&k('\")\"')),null!==h?a=[a,c,d,g,h]:(a=null,e=j)):(a=null,e=j)):(a=null,e=j)):(a=null,e=j)):(a=null,e=j),null!==a&&(a=function(a,b){return b}(i,a[2])),null===a&&(e=i))),a}function H(){var a,b,c,d,f;return a=G(),null===a&&(d=e,f=e,a=I(),null!==a?(b=z(),null!==b?(c=H(),null!==c?a=[a,b,c]:(a=null,e=f)):(a=null,e=f)):(a=null,e=f),null!==a&&(a=function(a,b,c){return{type:\"UnaryExpression\",operator:b,expression:c}}(d,a[0],a[2])),null===a&&(e=d)),a}function I(){var a;return 43===b.charCodeAt(e)?(a=\"+\",e++):(a=null,0===f&&k('\"+\"')),null===a&&(45===b.charCodeAt(e)?(a=\"-\",e++):(a=null,0===f&&k('\"-\"')),null===a&&(33===b.charCodeAt(e)?(a=\"!\",e++):(a=null,0===f&&k('\"!\"')))),a}function J(){var a,b,c,d,f,g,h,i,j;if(h=e,i=e,a=H(),null!==a){for(b=[],j=e,c=z(),null!==c?(d=K(),null!==d?(f=z(),null!==f?(g=H(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==c;)b.push(c),j=e,c=z(),null!==c?(d=K(),null!==d?(f=z(),null!==f?(g=H(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==b?a=[a,b]:(a=null,e=i)}else a=null,e=i;return null!==a&&(a=function(a,b,c){for(var d=b,e=0;c.length>e;e++)d={type:\"MultiplicativeExpression\",operator:c[e][1],left:d,right:c[e][3]};return d}(h,a[0],a[1])),null===a&&(e=h),a}function K(){var a;return 42===b.charCodeAt(e)?(a=\"*\",e++):(a=null,0===f&&k('\"*\"')),null===a&&(47===b.charCodeAt(e)?(a=\"/\",e++):(a=null,0===f&&k('\"/\"'))),a}function L(){var a,b,c,d,f,g,h,i,j;if(h=e,i=e,a=J(),null!==a){for(b=[],j=e,c=z(),null!==c?(d=M(),null!==d?(f=z(),null!==f?(g=J(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==c;)b.push(c),j=e,c=z(),null!==c?(d=M(),null!==d?(f=z(),null!==f?(g=J(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==b?a=[a,b]:(a=null,e=i)}else a=null,e=i;return null!==a&&(a=function(a,b,c){for(var d=b,e=0;c.length>e;e++)d={type:\"AdditiveExpression\",operator:c[e][1],left:d,right:c[e][3]};return d}(h,a[0],a[1])),null===a&&(e=h),a}function M(){var a;return 43===b.charCodeAt(e)?(a=\"+\",e++):(a=null,0===f&&k('\"+\"')),null===a&&(45===b.charCodeAt(e)?(a=\"-\",e++):(a=null,0===f&&k('\"-\"'))),a}function N(){var a,b,c,d,f,g,h,i,j;if(h=e,i=e,a=L(),null!==a){for(b=[],j=e,c=z(),null!==c?(d=O(),null!==d?(f=z(),null!==f?(g=L(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==c;)b.push(c),j=e,c=z(),null!==c?(d=O(),null!==d?(f=z(),null!==f?(g=L(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==b?a=[a,b]:(a=null,e=i)}else a=null,e=i;return null!==a&&(a=function(a,b,c){for(var d=b,e=0;c.length>e;e++)d={type:\"Inequality\",operator:c[e][1],left:d,right:c[e][3]};return d}(h,a[0],a[1])),null===a&&(e=h),a}function O(){var a;return\"<=\"===b.substr(e,2)?(a=\"<=\",e+=2):(a=null,0===f&&k('\"<=\"')),null===a&&(\">=\"===b.substr(e,2)?(a=\">=\",e+=2):(a=null,0===f&&k('\">=\"')),null===a&&(60===b.charCodeAt(e)?(a=\"<\",e++):(a=null,0===f&&k('\"<\"')),null===a&&(62===b.charCodeAt(e)?(a=\">\",e++):(a=null,0===f&&k('\">\"'))))),a}function P(){var a,c,d,g,h,i,j,l,m;if(j=e,l=e,a=N(),null!==a){for(c=[],m=e,d=z(),null!==d?(\"==\"===b.substr(e,2)?(g=\"==\",e+=2):(g=null,0===f&&k('\"==\"')),null!==g?(h=z(),null!==h?(i=N(),null!==i?d=[d,g,h,i]:(d=null,e=m)):(d=null,e=m)):(d=null,e=m)):(d=null,e=m);null!==d;)c.push(d),m=e,d=z(),null!==d?(\"==\"===b.substr(e,2)?(g=\"==\",e+=2):(g=null,0===f&&k('\"==\"')),null!==g?(h=z(),null!==h?(i=N(),null!==i?d=[d,g,h,i]:(d=null,e=m)):(d=null,e=m)):(d=null,e=m)):(d=null,e=m);null!==c?a=[a,c]:(a=null,e=l)}else a=null,e=l;return null!==a&&(a=function(a,b,c){for(var d=b,e=0;c.length>e;e++)d={type:\"Equality\",operator:c[e][1],left:d,right:c[e][3]};return d}(j,a[0],a[1])),null===a&&(e=j),a}function Q(a){a.sort();for(var b=null,c=[],d=0;a.length>d;d++)a[d]!==b&&(c.push(a[d]),b=a[d]);return c}function R(){for(var a=1,c=1,d=!1,f=0;Math.max(e,g)>f;f++){var h=b.charAt(f);\"\\n\"===h?(d||a++,c=1,d=!1):\"\\r\"===h||\"\\u2028\"===h||\"\\u2029\"===h?(a++,c=1,d=!0):(c++,d=!1)}return{line:a,column:c}}var d={start:l,Statement:m,SourceCharacter:n,IdentifierStart:o,WhiteSpace:p,LineTerminator:q,LineTerminatorSequence:r,EOS:s,EOF:t,Comment:u,MultiLineComment:v,MultiLineCommentNoLineTerminator:w,SingleLineComment:x,_:y,__:z,Literal:A,Integer:B,Real:C,SignedInteger:D,Identifier:E,IdentifierName:F,PrimaryExpression:G,UnaryExpression:H,UnaryOperator:I,MultiplicativeExpression:J,MultiplicativeOperator:K,AdditiveExpression:L,AdditiveOperator:M,InequalityExpression:N,InequalityOperator:O,LinearExpression:P};if(void 0!==c){if(void 0===d[c])throw Error(\"Invalid rule name: \"+a(c)+\".\")}else c=\"start\";var e=0,f=0,g=0,h=[],S=d[c]();if(null===S||e!==b.length){var T=Math.max(e,g),U=b.length>T?b.charAt(T):null,V=R();throw new this.SyntaxError(Q(h),U,T,V.line,V.column)}return S},toSource:function(){return this._source}};return b.SyntaxError=function(b,c,d,e,f){function g(b,c){var d,e;switch(b.length){case 0:d=\"end of input\";break;case 1:d=b[0];break;default:d=b.slice(0,b.length-1).join(\", \")+\" or \"+b[b.length-1]}return e=c?a(c):\"end of input\",\"Expected \"+d+\" but \"+e+\" found.\"}this.name=\"SyntaxError\",this.expected=b,this.found=c,this.message=g(b,c),this.offset=d,this.line=e,this.column=f},b.SyntaxError.prototype=Error.prototype,b}();\n}).call(\n (typeof module != \"undefined\") ?\n (module.compiled = true && module) : this\n);\n"]} \ No newline at end of file +{"version":3,"sources":["../node_modules/browser-pack/_prelude.js","../_stream_0.js","../node_modules/cassowary/bin/c.js"],"names":["_processEqualSpacer","context","stackView","equalSpacerIndex","name","lineIndex","constraints","push","view1","attr1","horizontal","Attribute","WIDTH","HEIGHT","relation","Relation","EQU","view2","attr2","priority","view","multiplier","undefined","constant","CONST","i","prevViews","length","prevView","orientation","Orientation","HORIZONTAL","prevAttr","RIGHT","LEFT","curAttr","VERTICAL","BOTTOM","TOP","ZINDEX","_processProportionalSpacer","proportionalSpacerIndex","_processStackView","subView","viewName","orientations","stack","processedOrientations","type","j","subViews","_getRange","range","match","substring","parseInt","start","res","_processCascade","cascade","parentItem","curViews","item","Array","isArray","hasOwnProperty","items","z","viewRange","r","curView","p","n","attribute","variable","VARIABLE","equalSpacing","err","Error","column","$parserOffset","_getConst","value","vr","c","Variable","this","_solver","addConstraint","StayConstraint","Strength","required","_getSubView","_subViews","SubView","solver","_type","_parentSubView","_getSpacing","constraint","index","_spacingVars","_spacingExpr","addEditVar","minus","suggestValue","_spacing","_addConstraint","call","strength","_getAttr","plus","times","defaultPriorityStrength","Equation","GEQ","Inequality","LEQ","_compareSpacing","old","newz","require","NOTANATTRIBUTE","CENTERX","CENTERY","Priority","REQUIRED","DEFAULTHIGH","DEFAULTLOW","parser","peg$subclass","child","parent","ctor","constructor","prototype","SyntaxError","message","expected","found","offset","line","parse","input","peg$reportedPos","peg$computePosDetails","pos","advance","details","startPos","endPos","ch","charAt","seenCR","peg$cachedPos","peg$cachedPosDetails","peg$fail","peg$maxFailPos","peg$currPos","peg$maxFailExpected","peg$buildException","cleanupExpected","sort","a","b","description","splice","buildMessage","stringEscape","s","hex","charCodeAt","toString","toUpperCase","replace","expectedDesc","foundDesc","expectedDescs","slice","join","posDetails","peg$parsevisualFormatString","s0","s1","s2","s3","s4","s5","s6","s7","peg$parseorientation","peg$FAILED","peg$c2","peg$silentFails","peg$c3","peg$c0","peg$c1","peg$parsesuperview","peg$parseconnection","peg$parseview","peg$c5","peg$c6","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$parseviewName","peg$parsepredicateListWithParens","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$parsepredicateList","peg$c21","peg$c22","peg$c23","peg$c24","peg$parsesimplePredicate","peg$parsenumber","peg$c25","peg$c26","peg$c27","peg$parsepredicate","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$parserelation","peg$parseobjectOfPredicate","peg$c33","peg$c34","peg$parsepriority","peg$c35","substr","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$parseconstant","peg$c45","test","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","extend","dst","arguments","k","peg$result","options","peg$startRuleFunctions","visualFormatString","peg$startRuleFunction","o","superto","views","tosuper","concat","apply","orient","predicates","predicateList","ps","map","digits","f","v","decimals","parseFloat","startRule","parserExt","peg$parseviewGroup","peg$parsecomments","peg$parseviewNameRange","peg$parsecascadedViews","peg$parseequalSpacingPredicateList","peg$parsepercentage","peg$parseequalSpacingPredicate","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$parseviewPredicate","peg$c67","peg$c68","peg$c69","peg$c70","peg$c71","peg$c72","peg$c73","peg$c74","peg$c75","peg$c76","peg$c77","peg$parseattribute","peg$parsemultiplier","peg$parseconstantExpr","peg$c78","peg$c79","peg$c80","peg$c81","peg$c82","peg$c83","peg$c84","peg$c85","peg$c86","peg$c87","peg$c88","peg$c89","peg$c90","peg$c91","peg$c92","peg$c93","peg$c94","peg$c95","peg$c96","peg$c97","peg$c98","peg$c99","peg$c100","peg$c101","peg$c102","peg$c103","peg$c104","peg$c105","peg$c106","peg$c107","peg$c108","peg$c109","peg$c110","peg$c111","peg$c112","peg$c113","peg$c114","peg$c115","peg$c116","peg$c117","peg$c118","peg$c119","peg$c120","peg$c121","peg$c122","peg$parserange","peg$c123","peg$c124","peg$c125","peg$c126","peg$c127","peg$c128","peg$c129","peg$c130","peg$c131","comments","cascadedViews","connection","vn","m","d","metaInfoCategories","VisualFormat","visualFormat","extended","indexOf","outFormat","lineSeperator","parseLine","source","lines","parseOptions","strict","split","trim","prefix","key","metaInfo","category","prefixedCategory","names","viewport","aspectRatio","height","width","widths","isNaN","heights","spacing","JSON","sIdx","len","_name","_attr","left","top","stringify","toJSON","attr","divide","_getAttrValue","_intrinsicWidth","resolve","_intrinsicHeight","View","SimplexSolver","setSpacing","setSize","addConstraints","intrinsicWidth","intrinsicHeight","AutoLayout","module","exports","bind","Object","defineProperty","Function","enumerable","configurable","writable","HTMLElement","tagName","e","g","__super__","h","debug","trace","verbose","traceAdded","GC","inherit","initialize","_t","create","l","__proto__","created","decorate","upgrade","document","createElement","own","getOwnPropertyDescriptor","get","set","getOwnPropertyNames","forEach","traceprint","console","log","fnenterprint","fnexitprint","assert","InternalError","Expression","approx","Math","abs","_inc","parseJSON","load","hashCode","keys","HashTable","size","_store","_keyStrMap","_deleted","clear","_compact","_compactThreshold","_perhapsCompact","_size","delete","each","escapingEach","retval","brk","clone","equals","HashSet","storage","add","values","has","data","fromJSON","_description","extends","ConstraintNotFound","NonExpression","NotEnoughStays","RequiredFailure","TooDifficult","SymbolicWeight","symbolicWeight","isRequired","strong","medium","weak","AbstractVariable","isDummy","isExternal","isPivotable","isRestricted","_init","_prefix","_map","DummyVariable","ObjectiveVariable","SlackVariable","Point","_x","_y","x","y","terms","setVariable","initializeFromHash","multiplyMe","isConstant","addExpression","addVariable","noteRemovedVariable","noteAddedVariable","anyPivotableVariable","substituteOut","changeSubject","newSubject","coefficientFor","Plus","Minus","Times","Divide","AbstractConstraint","weight","isEditConstraint","isInequality","isStayConstraint","expression","EditConstraint","Constraint","_cloneOrNewCle","q","t","EditInfo","editPlus","editMinus","prevEditConstant","Tableau","columns","rows","_infeasibleRows","_externalRows","_externalParametricVars","insertColVar","getInternalInfo","addRow","removeColumn","removeRow","columnsHasKey","_stayMinusErrorVars","_stayPlusErrorVars","_errorVars","_markerVars","_objective","_editVarMap","_editVarList","_slackCounter","_artificialCounter","_dummyCounter","autoSolve","_fNeedsSolving","_optimizeCount","_stkCedcns","addLowerBound","addUpperBound","addBounds","newExpression","tryAddingDirectly","addWithArtificialVariable","warn","info","optimize","_setExternalVariables","addConstraintNoException","beginEdit","_resetStayConstants","endEdit","pop","removeEditVarsTo","removeAllEditVars","removeConstraint","addPointStays","addStay","pow","removeConstraintInternal","pivot","reset","resolveArray","resolvePair","dualOptimize","deltaEditConstant","solve","setEditedValue","addVar","getDebugInfo","getConstraintMap","chooseSubject","Number","MAX_VALUE","insertErrorVar","time","timeEnd","onsolved","Timer","isRunning","_elapsedMs","_startReading","Date","stop","elapsedTime","__cassowary_parser","escape","P","u","w","A","C","B","D","E","F","G","H","I","operator","J","K","right","L","M","N","O","Q","R","max","Statement","SourceCharacter","IdentifierStart","WhiteSpace","LineTerminator","LineTerminatorSequence","EOS","EOF","Comment","MultiLineComment","MultiLineCommentNoLineTerminator","SingleLineComment","_","__","Literal","Integer","Real","SignedInteger","Identifier","IdentifierName","PrimaryExpression","UnaryExpression","UnaryOperator","MultiplicativeExpression","MultiplicativeOperator","AdditiveExpression","AdditiveOperator","InequalityExpression","InequalityOperator","LinearExpression","S","T","U","V","toSource","_source","compiled"],"mappings":"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","file":"bundle.js","sourcesContent":["(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 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { visualFormatString: peg$parsevisualFormatString },\n peg$startRuleFunction = peg$parsevisualFormatString,\n\n peg$c0 = peg$FAILED,\n peg$c1 = null,\n peg$c2 = \":\",\n peg$c3 = { type: \"literal\", value: \":\", description: \"\\\":\\\"\" },\n peg$c4 = [],\n peg$c5 = function(o, superto, view, views, tosuper) { return {\n orientation: o ? o[0] : 'horizontal',\n cascade: (superto || []).concat(\n [view],\n [].concat.apply([], views),\n (tosuper || [])\n )\n }\n },\n peg$c6 = \"H\",\n peg$c7 = { type: \"literal\", value: \"H\", description: \"\\\"H\\\"\" },\n peg$c8 = \"V\",\n peg$c9 = { type: \"literal\", value: \"V\", description: \"\\\"V\\\"\" },\n peg$c10 = function(orient) { return orient == 'H' ? 'horizontal' : 'vertical' },\n peg$c11 = \"|\",\n peg$c12 = { type: \"literal\", value: \"|\", description: \"\\\"|\\\"\" },\n peg$c13 = function() { return { view: null } },\n peg$c14 = \"[\",\n peg$c15 = { type: \"literal\", value: \"[\", description: \"\\\"[\\\"\" },\n peg$c16 = \"]\",\n peg$c17 = { type: \"literal\", value: \"]\", description: \"\\\"]\\\"\" },\n peg$c18 = function(view, predicates) { return extend(view, predicates ? { constraints: predicates } : {}) },\n peg$c19 = \"-\",\n peg$c20 = { type: \"literal\", value: \"-\", description: \"\\\"-\\\"\" },\n peg$c21 = function(predicateList) { return predicateList },\n peg$c22 = function() { return [{ relation: 'equ', constant: 'default', $parserOffset: offset() }] },\n peg$c23 = \"\",\n peg$c24 = function() { return [{ relation: 'equ', constant: 0, $parserOffset: offset() }] },\n peg$c25 = function(n) { return [{ relation: 'equ', constant: n, $parserOffset: offset() }] },\n peg$c26 = \"(\",\n peg$c27 = { type: \"literal\", value: \"(\", description: \"\\\"(\\\"\" },\n peg$c28 = \",\",\n peg$c29 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c30 = \")\",\n peg$c31 = { type: \"literal\", value: \")\", description: \"\\\")\\\"\" },\n peg$c32 = function(p, ps) { return [p].concat(ps.map(function(p){ return p[1] })) },\n peg$c33 = \"@\",\n peg$c34 = { type: \"literal\", value: \"@\", description: \"\\\"@\\\"\" },\n peg$c35 = function(r, o, p) { return extend({ relation: 'equ' }, (r || {}), o, (p ? p[1]: {})) },\n peg$c36 = \"==\",\n peg$c37 = { type: \"literal\", value: \"==\", description: \"\\\"==\\\"\" },\n peg$c38 = function() { return { relation: 'equ', $parserOffset: offset() } },\n peg$c39 = \"<=\",\n peg$c40 = { type: \"literal\", value: \"<=\", description: \"\\\"<=\\\"\" },\n peg$c41 = function() { return { relation: 'leq', $parserOffset: offset() } },\n peg$c42 = \">=\",\n peg$c43 = { type: \"literal\", value: \">=\", description: \"\\\">=\\\"\" },\n peg$c44 = function() { return { relation: 'geq', $parserOffset: offset() } },\n peg$c45 = /^[0-9]/,\n peg$c46 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c47 = function(digits) { return { priority: parseInt(digits.join(\"\"), 10) } },\n peg$c48 = function(n) { return { constant: n } },\n peg$c49 = /^[a-zA-Z_]/,\n peg$c50 = { type: \"class\", value: \"[a-zA-Z_]\", description: \"[a-zA-Z_]\" },\n peg$c51 = /^[a-zA-Z0-9_]/,\n peg$c52 = { type: \"class\", value: \"[a-zA-Z0-9_]\", description: \"[a-zA-Z0-9_]\" },\n peg$c53 = function(f, v) { return { view: f + v } },\n peg$c54 = \".\",\n peg$c55 = { type: \"literal\", value: \".\", description: \"\\\".\\\"\" },\n peg$c56 = function(digits, decimals) { return parseFloat(digits.concat(\".\").concat(decimals).join(\"\"), 10); },\n peg$c57 = function(digits) { return parseInt(digits.join(\"\"), 10); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsevisualFormatString() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parseorientation();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s3 = peg$c2;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c0;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c0;\n }\n if (s1 === peg$FAILED) {\n s1 = peg$c1;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$parsesuperview();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseconnection();\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c0;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c0;\n }\n if (s2 === peg$FAILED) {\n s2 = peg$c1;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseview();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseview();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseview();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsesuperview();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c1;\n }\n if (s5 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c5(s1, s2, s3, s4, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseorientation() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 72) {\n s1 = peg$c6;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s1 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 86) {\n s1 = peg$c8;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c9); }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c10(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsesuperview() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 124) {\n s1 = peg$c11;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c12); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c13();\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseview() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c14;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c15); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseviewName();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsepredicateListWithParens();\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s4 = peg$c16;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c17); }\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c18(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseconnection() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c19;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepredicateList();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 45) {\n s3 = peg$c19;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c21(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c19;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c20); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c22();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$c23;\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c24();\n }\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parsepredicateList() {\n var s0;\n\n s0 = peg$parsesimplePredicate();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepredicateListWithParens();\n }\n\n return s0;\n }\n\n function peg$parsesimplePredicate() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsenumber();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c25(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parsepredicateListWithParens() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 40) {\n s1 = peg$c26;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c27); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepredicate();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsepredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsepredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s4 = peg$c30;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c31); }\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c32(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsepredicate() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = peg$parserelation();\n if (s1 === peg$FAILED) {\n s1 = peg$c1;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseobjectOfPredicate();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 64) {\n s4 = peg$c33;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c34); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepriority();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c35(s1, s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parserelation() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c36) {\n s1 = peg$c36;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c37); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c38();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c39) {\n s1 = peg$c39;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c40); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c41();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c42) {\n s1 = peg$c42;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c44();\n }\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parseobjectOfPredicate() {\n var s0;\n\n s0 = peg$parseconstant();\n if (s0 === peg$FAILED) {\n s0 = peg$parseviewName();\n }\n\n return s0;\n }\n\n function peg$parsepriority() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c47(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseconstant() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsenumber();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c48(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseviewName() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = [];\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c51.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c53(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s2 = peg$c54;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c55); }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n }\n } else {\n s3 = peg$c0;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c56(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c46); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c57(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n\n function extend(dst) {\n for (var i = 1; i < arguments.length; i++) {\n for (var k in arguments[i]) {\n dst[k] = arguments[i][k];\n }\n }\n return dst;\n }\n\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();\n\nvar parserExt = (function() {\n /*\n * Generated by PEG.js 0.8.0.\n *\n * http://pegjs.majda.cz/\n */\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function SyntaxError(message, expected, found, offset, line, column) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.offset = offset;\n this.line = line;\n this.column = column;\n\n this.name = \"SyntaxError\";\n }\n\n peg$subclass(SyntaxError, Error);\n\n function parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n\n peg$FAILED = {},\n\n peg$startRuleFunctions = { visualFormatString: peg$parsevisualFormatString },\n peg$startRuleFunction = peg$parsevisualFormatString,\n\n peg$c0 = peg$FAILED,\n peg$c1 = null,\n peg$c2 = \":\",\n peg$c3 = { type: \"literal\", value: \":\", description: \"\\\":\\\"\" },\n peg$c4 = [],\n peg$c5 = function(o, superto, view, views, tosuper, comments) { return {\n orientation: o ? o[0] : 'horizontal',\n cascade: (superto || []).concat(\n view,\n [].concat.apply([], views),\n (tosuper || [])\n )\n }\n },\n peg$c6 = \"HV\",\n peg$c7 = { type: \"literal\", value: \"HV\", description: \"\\\"HV\\\"\" },\n peg$c8 = function() { return 'horzvert' },\n peg$c9 = \"H\",\n peg$c10 = { type: \"literal\", value: \"H\", description: \"\\\"H\\\"\" },\n peg$c11 = function() { return 'horizontal' },\n peg$c12 = \"V\",\n peg$c13 = { type: \"literal\", value: \"V\", description: \"\\\"V\\\"\" },\n peg$c14 = function() { return 'vertical' },\n peg$c15 = \"Z\",\n peg$c16 = { type: \"literal\", value: \"Z\", description: \"\\\"Z\\\"\" },\n peg$c17 = function() { return 'zIndex' },\n peg$c18 = \" \",\n peg$c19 = { type: \"literal\", value: \" \", description: \"\\\" \\\"\" },\n peg$c20 = \"//\",\n peg$c21 = { type: \"literal\", value: \"//\", description: \"\\\"//\\\"\" },\n peg$c22 = { type: \"any\", description: \"any character\" },\n peg$c23 = \"|\",\n peg$c24 = { type: \"literal\", value: \"|\", description: \"\\\"|\\\"\" },\n peg$c25 = function() { return { view: null } },\n peg$c26 = \"[\",\n peg$c27 = { type: \"literal\", value: \"[\", description: \"\\\"[\\\"\" },\n peg$c28 = \",\",\n peg$c29 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n peg$c30 = \"]\",\n peg$c31 = { type: \"literal\", value: \"]\", description: \"\\\"]\\\"\" },\n peg$c32 = function(view, views) { return views.length ? [view].concat([].concat.apply([], views)) : view },\n peg$c33 = function(view, predicates, cascadedViews) { return extend(extend(view, predicates ? { constraints: predicates } : {}), cascadedViews ? {\n cascade: cascadedViews\n } : {}) },\n peg$c34 = function(views, connection) { return [].concat([].concat.apply([], views),[connection]); },\n peg$c35 = \"->\",\n peg$c36 = { type: \"literal\", value: \"->\", description: \"\\\"->\\\"\" },\n peg$c37 = function() { return [{ relation: 'none' }] },\n peg$c38 = \"-\",\n peg$c39 = { type: \"literal\", value: \"-\", description: \"\\\"-\\\"\" },\n peg$c40 = function(predicateList) { return predicateList },\n peg$c41 = function() { return [{ relation: 'equ', constant: 'default' }] },\n peg$c42 = \"~\",\n peg$c43 = { type: \"literal\", value: \"~\", description: \"\\\"~\\\"\" },\n peg$c44 = function() { return [{ relation: 'equ', equalSpacing: true }] },\n peg$c45 = \"\",\n peg$c46 = function() { return [{ relation: 'equ', constant: 0 }] },\n peg$c47 = function(p) { return [{ relation: 'equ', multiplier: p.multiplier }] },\n peg$c48 = function(n) { return [{ relation: 'equ', constant: n }] },\n peg$c49 = \"(\",\n peg$c50 = { type: \"literal\", value: \"(\", description: \"\\\"(\\\"\" },\n peg$c51 = \")\",\n peg$c52 = { type: \"literal\", value: \")\", description: \"\\\")\\\"\" },\n peg$c53 = function(p, ps) { return [p].concat(ps.map(function(p){ return p[1] })) },\n peg$c54 = \"@\",\n peg$c55 = { type: \"literal\", value: \"@\", description: \"\\\"@\\\"\" },\n peg$c56 = function(r, o, p) { return extend({ relation: 'equ' }, (r || {}), o, (p ? p[1]: {})) },\n peg$c57 = function(r, o, p) { return extend({ relation: 'equ', equalSpacing: true }, (r || {}), o, (p ? p[1]: {})) },\n peg$c58 = \"==\",\n peg$c59 = { type: \"literal\", value: \"==\", description: \"\\\"==\\\"\" },\n peg$c60 = function() { return { relation: 'equ' } },\n peg$c61 = \"<=\",\n peg$c62 = { type: \"literal\", value: \"<=\", description: \"\\\"<=\\\"\" },\n peg$c63 = function() { return { relation: 'leq' } },\n peg$c64 = \">=\",\n peg$c65 = { type: \"literal\", value: \">=\", description: \"\\\">=\\\"\" },\n peg$c66 = function() { return { relation: 'geq' } },\n peg$c67 = /^[0-9]/,\n peg$c68 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n peg$c69 = function(digits) { return { priority: parseInt(digits.join(\"\"), 10) } },\n peg$c70 = function(n) { return { constant: n } },\n peg$c71 = function(n) { return { constant: -n } },\n peg$c72 = \"+\",\n peg$c73 = { type: \"literal\", value: \"+\", description: \"\\\"+\\\"\" },\n peg$c74 = \"%\",\n peg$c75 = { type: \"literal\", value: \"%\", description: \"\\\"%\\\"\" },\n peg$c76 = function(n) { return { view: null, multiplier: n / 100 } },\n peg$c77 = function(n) { return { view: null, multiplier: n / -100 } },\n peg$c78 = function(vn, a, m, c) { return { view: vn.view, attribute: a ? a : undefined, multiplier: m ? m : 1, constant: c ? c : undefined } },\n peg$c79 = \".left\",\n peg$c80 = { type: \"literal\", value: \".left\", description: \"\\\".left\\\"\" },\n peg$c81 = function() { return 'left'},\n peg$c82 = \".right\",\n peg$c83 = { type: \"literal\", value: \".right\", description: \"\\\".right\\\"\" },\n peg$c84 = function() { return 'right'},\n peg$c85 = \".top\",\n peg$c86 = { type: \"literal\", value: \".top\", description: \"\\\".top\\\"\" },\n peg$c87 = function() { return 'top'},\n peg$c88 = \".bottom\",\n peg$c89 = { type: \"literal\", value: \".bottom\", description: \"\\\".bottom\\\"\" },\n peg$c90 = function() { return 'bottom'},\n peg$c91 = \".width\",\n peg$c92 = { type: \"literal\", value: \".width\", description: \"\\\".width\\\"\" },\n peg$c93 = function() { return 'width'},\n peg$c94 = \".height\",\n peg$c95 = { type: \"literal\", value: \".height\", description: \"\\\".height\\\"\" },\n peg$c96 = function() { return 'height'},\n peg$c97 = \".centerX\",\n peg$c98 = { type: \"literal\", value: \".centerX\", description: \"\\\".centerX\\\"\" },\n peg$c99 = function() { return 'centerX'},\n peg$c100 = \".centerY\",\n peg$c101 = { type: \"literal\", value: \".centerY\", description: \"\\\".centerY\\\"\" },\n peg$c102 = function() { return 'centerY'},\n peg$c103 = \"/\",\n peg$c104 = { type: \"literal\", value: \"/\", description: \"\\\"/\\\"\" },\n peg$c105 = function(n) { return 1 / n; },\n peg$c106 = \"/+\",\n peg$c107 = { type: \"literal\", value: \"/+\", description: \"\\\"/+\\\"\" },\n peg$c108 = \"/-\",\n peg$c109 = { type: \"literal\", value: \"/-\", description: \"\\\"/-\\\"\" },\n peg$c110 = function(n) { return -1 / n; },\n peg$c111 = \"*\",\n peg$c112 = { type: \"literal\", value: \"*\", description: \"\\\"*\\\"\" },\n peg$c113 = function(n) { return n; },\n peg$c114 = \"*+\",\n peg$c115 = { type: \"literal\", value: \"*+\", description: \"\\\"*+\\\"\" },\n peg$c116 = \"*-\",\n peg$c117 = { type: \"literal\", value: \"*-\", description: \"\\\"*-\\\"\" },\n peg$c118 = function(n) { return -n; },\n peg$c119 = /^[a-zA-Z_]/,\n peg$c120 = { type: \"class\", value: \"[a-zA-Z_]\", description: \"[a-zA-Z_]\" },\n peg$c121 = /^[a-zA-Z0-9_]/,\n peg$c122 = { type: \"class\", value: \"[a-zA-Z0-9_]\", description: \"[a-zA-Z0-9_]\" },\n peg$c123 = function(f, v, r) { return { view: f + v, range: r, $parserOffset: offset() } },\n peg$c124 = function(f, v) { return { view: f + v, $parserOffset: offset() } },\n peg$c125 = \"..\",\n peg$c126 = { type: \"literal\", value: \"..\", description: \"\\\"..\\\"\" },\n peg$c127 = function(d) { return parseInt(d) },\n peg$c128 = \".\",\n peg$c129 = { type: \"literal\", value: \".\", description: \"\\\".\\\"\" },\n peg$c130 = function(digits, decimals) { return parseFloat(digits.concat(\".\").concat(decimals).join(\"\"), 10); },\n peg$c131 = function(digits) { return parseInt(digits.join(\"\"), 10); },\n\n peg$currPos = 0,\n peg$reportedPos = 0,\n peg$cachedPos = 0,\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$reportedPos, peg$currPos);\n }\n\n function offset() {\n return peg$reportedPos;\n }\n\n function line() {\n return peg$computePosDetails(peg$reportedPos).line;\n }\n\n function column() {\n return peg$computePosDetails(peg$reportedPos).column;\n }\n\n function expected(description) {\n throw peg$buildException(\n null,\n [{ type: \"other\", description: description }],\n peg$reportedPos\n );\n }\n\n function error(message) {\n throw peg$buildException(message, null, peg$reportedPos);\n }\n\n function peg$computePosDetails(pos) {\n function advance(details, startPos, endPos) {\n var p, ch;\n\n for (p = startPos; p < endPos; p++) {\n ch = input.charAt(p);\n if (ch === \"\\n\") {\n if (!details.seenCR) { details.line++; }\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n }\n }\n\n if (peg$cachedPos !== pos) {\n if (peg$cachedPos > pos) {\n peg$cachedPos = 0;\n peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };\n }\n advance(peg$cachedPosDetails, peg$cachedPos, pos);\n peg$cachedPos = pos;\n }\n\n return peg$cachedPosDetails;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, pos) {\n function cleanupExpected(expected) {\n var i = 1;\n\n expected.sort(function(a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\x08/g, '\\\\b')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(ch) { return '\\\\x' + hex(ch); })\n .replace(/[\\u0180-\\u0FFF]/g, function(ch) { return '\\\\u0' + hex(ch); })\n .replace(/[\\u1080-\\uFFFF]/g, function(ch) { return '\\\\u' + hex(ch); });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc, foundDesc, i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1\n ? expectedDescs.slice(0, -1).join(\", \")\n + \" or \"\n + expectedDescs[expected.length - 1]\n : expectedDescs[0];\n\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n var posDetails = peg$computePosDetails(pos),\n found = pos < input.length ? input.charAt(pos) : null;\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new SyntaxError(\n message !== null ? message : buildMessage(expected, found),\n expected,\n found,\n pos,\n posDetails.line,\n posDetails.column\n );\n }\n\n function peg$parsevisualFormatString() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parseorientation();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s3 = peg$c2;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$c0;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$c0;\n }\n if (s1 === peg$FAILED) {\n s1 = peg$c1;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$parsesuperview();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseconnection();\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$c0;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$c0;\n }\n if (s2 === peg$FAILED) {\n s2 = peg$c1;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseviewGroup();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseviewGroup();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseviewGroup();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n s6 = peg$parseconnection();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsesuperview();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$c0;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$c1;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsecomments();\n if (s6 === peg$FAILED) {\n s6 = peg$c1;\n }\n if (s6 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c5(s1, s2, s3, s4, s5, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseorientation() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c6) {\n s1 = peg$c6;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c8();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 72) {\n s1 = peg$c9;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c10); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c11();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 86) {\n s1 = peg$c12;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c13); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c14();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 90) {\n s1 = peg$c15;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c17();\n }\n s0 = s1;\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsecomments() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = [];\n if (input.charCodeAt(peg$currPos) === 32) {\n s2 = peg$c18;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c19); }\n }\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (input.charCodeAt(peg$currPos) === 32) {\n s2 = peg$c18;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c19); }\n }\n }\n if (s1 !== peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c20) {\n s2 = peg$c20;\n peg$currPos += 2;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c21); }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n }\n if (s3 !== peg$FAILED) {\n s1 = [s1, s2, s3];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsesuperview() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 124) {\n s1 = peg$c23;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c24); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c25();\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseviewGroup() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c26;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c27); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseview();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseview();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseview();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s4 = peg$c30;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c31); }\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c32(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseview() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$parseviewNameRange();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepredicateListWithParens();\n if (s2 === peg$FAILED) {\n s2 = peg$c1;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsecascadedViews();\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c33(s1, s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsecascadedViews() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 58) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parseconnection();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseviewGroup();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parseconnection();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseviewGroup();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseconnection();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c34(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseconnection() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c35) {\n s1 = peg$c35;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c36); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c37();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c38;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c39); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepredicateList();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 45) {\n s3 = peg$c38;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c39); }\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c40(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c38;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c39); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c41();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 126) {\n s1 = peg$c42;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseequalSpacingPredicateList();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 126) {\n s3 = peg$c42;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c40(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 126) {\n s1 = peg$c42;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c44();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$c45;\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c46();\n }\n s0 = s1;\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsepredicateList() {\n var s0;\n\n s0 = peg$parsesimplePredicate();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepredicateListWithParens();\n }\n\n return s0;\n }\n\n function peg$parsesimplePredicate() {\n var s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsepercentage();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c47(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsenumber();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c48(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsepredicateListWithParens() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 40) {\n s1 = peg$c49;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepredicate();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsepredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsepredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c53(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsepredicate() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = peg$parserelation();\n if (s1 === peg$FAILED) {\n s1 = peg$c1;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseobjectOfPredicate();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 64) {\n s4 = peg$c54;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c55); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepriority();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c56(s1, s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseequalSpacingPredicateList() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 40) {\n s1 = peg$c49;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseequalSpacingPredicate();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseequalSpacingPredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c28;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseequalSpacingPredicate();\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$c0;\n }\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s4 = peg$c51;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c53(s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseequalSpacingPredicate() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = peg$parserelation();\n if (s1 === peg$FAILED) {\n s1 = peg$c1;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseobjectOfPredicate();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 64) {\n s4 = peg$c54;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c55); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepriority();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$c0;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c57(s1, s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parserelation() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c58) {\n s1 = peg$c58;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c59); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c60();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c61) {\n s1 = peg$c61;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c62); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c63();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c64) {\n s1 = peg$c64;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c65); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c66();\n }\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parseobjectOfPredicate() {\n var s0;\n\n s0 = peg$parsepercentage();\n if (s0 === peg$FAILED) {\n s0 = peg$parseconstant();\n if (s0 === peg$FAILED) {\n s0 = peg$parseviewPredicate();\n }\n }\n\n return s0;\n }\n\n function peg$parsepriority() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c69(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseconstant() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = peg$parsenumber();\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c70(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c38;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c39); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c71(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 43) {\n s1 = peg$c72;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c73); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c70(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsepercentage() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$parsenumber();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 37) {\n s2 = peg$c74;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c75); }\n }\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c76(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c38;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c39); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 37) {\n s3 = peg$c74;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c75); }\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c77(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 43) {\n s1 = peg$c72;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c73); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 37) {\n s3 = peg$c74;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c75); }\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c76(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n }\n }\n\n return s0;\n }\n\n function peg$parseviewPredicate() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseviewName();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseattribute();\n if (s2 === peg$FAILED) {\n s2 = peg$c1;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsemultiplier();\n if (s3 === peg$FAILED) {\n s3 = peg$c1;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parseconstantExpr();\n if (s4 === peg$FAILED) {\n s4 = peg$c1;\n }\n if (s4 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c78(s1, s2, s3, s4);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parseattribute() {\n var s0, s1;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c79) {\n s1 = peg$c79;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c80); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c81();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c82) {\n s1 = peg$c82;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c83); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c84();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 4) === peg$c85) {\n s1 = peg$c85;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c86); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c87();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c88) {\n s1 = peg$c88;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c89); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c90();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 6) === peg$c91) {\n s1 = peg$c91;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c92); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c93();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c94) {\n s1 = peg$c94;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c95); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c96();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 8) === peg$c97) {\n s1 = peg$c97;\n peg$currPos += 8;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c98); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c99();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 8) === peg$c100) {\n s1 = peg$c100;\n peg$currPos += 8;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c101); }\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c102();\n }\n s0 = s1;\n }\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsemultiplier() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c103;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c104); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c105(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c106) {\n s1 = peg$c106;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c107); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c105(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c108) {\n s1 = peg$c108;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c109); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c110(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 42) {\n s1 = peg$c111;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c112); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c113(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c114) {\n s1 = peg$c114;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c115); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c113(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c116) {\n s1 = peg$c116;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c117); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c118(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parseconstantExpr() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c38;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c39); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c118(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 43) {\n s1 = peg$c72;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c73); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c113(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n }\n\n return s0;\n }\n\n function peg$parseviewNameRange() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$c119.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c120); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c119.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c120); }\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = [];\n if (peg$c121.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c122); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c121.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c122); }\n }\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n s3 = peg$parserange();\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c123(s1, s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$c119.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c120); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c119.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c120); }\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = [];\n if (peg$c121.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c122); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c121.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c122); }\n }\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c124(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n }\n\n return s0;\n }\n\n function peg$parseviewName() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$c119.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c120); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c119.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c120); }\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n s2 = input.substring(s1, peg$currPos);\n }\n s1 = s2;\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = [];\n if (peg$c121.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c122); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c121.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c122); }\n }\n }\n if (s3 !== peg$FAILED) {\n s3 = input.substring(s2, peg$currPos);\n }\n s2 = s3;\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c124(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parserange() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c125) {\n s1 = peg$c125;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c126); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n }\n } else {\n s2 = peg$c0;\n }\n if (s2 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c127(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = [];\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s2 = peg$c128;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c129); }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n }\n } else {\n s3 = peg$c0;\n }\n if (s3 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c130(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$c0;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$c67.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c68); }\n }\n }\n } else {\n s1 = peg$c0;\n }\n if (s1 !== peg$FAILED) {\n peg$reportedPos = s0;\n s1 = peg$c131(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n\n function extend(dst) {\n for (var i = 1; i < arguments.length; i++) {\n for (var k in arguments[i]) {\n dst[k] = arguments[i][k];\n }\n }\n return dst;\n }\n\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({ type: \"end\", description: \"end of input\" });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\n }\n }\n\n return {\n SyntaxError: SyntaxError,\n parse: parse\n };\n})();\n\nconst Orientation = {\n HORIZONTAL: 1,\n VERTICAL: 2,\n ZINDEX: 4\n};\n\n/**\n * Helper function that inserts equal spacers (~).\n * @private\n */\nfunction _processEqualSpacer(context, stackView) {\n\n // Determine unique name for the spacer\n context.equalSpacerIndex = context.equalSpacerIndex || 1;\n const name = '_~' + context.lineIndex + ':' + context.equalSpacerIndex + '~';\n if (context.equalSpacerIndex > 1) {\n\n // Ensure that all spacers have the same width/height\n context.constraints.push({\n view1: '_~' + context.lineIndex + ':1~',\n attr1: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n relation: context.relation.relation || Relation.EQU,\n view2: name,\n attr2: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n priority: context.relation.priority\n });\n }\n context.equalSpacerIndex++;\n\n // Enforce view/proportional width/height\n if (context.relation.view || (context.relation.multiplier && (context.relation.multiplier !== 1))) {\n context.constraints.push({\n view1: name,\n attr1: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n relation: context.relation.relation || Relation.EQU,\n view2: context.relation.view,\n attr2: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n priority: context.relation.priority,\n multiplier: context.relation.multiplier\n });\n context.relation.multiplier = undefined;\n }\n else if (context.relation.constant) {\n context.constraints.push({\n view1: name,\n attr1: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n relation: Relation.EQU,\n view2: null,\n attr2: Attribute.CONST,\n priority: context.relation.priority,\n constant: context.relation.constant\n });\n context.relation.constant = undefined;\n }\n\n // Add constraint\n for (var i = 0; i < context.prevViews.length; i++) {\n const prevView = context.prevViews[i];\n switch (context.orientation) {\n case Orientation.HORIZONTAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.RIGHT : Attribute.LEFT;\n context.curAttr = Attribute.LEFT;\n break;\n case Orientation.VERTICAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.BOTTOM : Attribute.TOP;\n context.curAttr = Attribute.TOP;\n break;\n case Orientation.ZINDEX:\n context.prevAttr = Attribute.ZINDEX;\n context.curAttr = Attribute.ZINDEX;\n context.relation.constant = (prevView !== stackView) ? 'default' : 0;\n break;\n }\n context.constraints.push({\n view1: prevView,\n attr1: context.prevAttr,\n relation: context.relation.relation,\n view2: name,\n attr2: context.curAttr,\n priority: context.relation.priority\n });\n }\n context.prevViews = [name];\n}\n\n/**\n * Helper function that inserts proportional spacers (-12%-).\n * @private\n */\nfunction _processProportionalSpacer(context, stackView) {\n context.proportionalSpacerIndex = context.proportionalSpacerIndex || 1;\n const name = '_-' + context.lineIndex + ':' + context.proportionalSpacerIndex + '-';\n context.proportionalSpacerIndex++;\n context.constraints.push({\n view1: name,\n attr1: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n relation: context.relation.relation || Relation.EQU,\n view2: context.relation.view, // or relative to the stackView... food for thought\n attr2: context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT,\n priority: context.relation.priority,\n multiplier: context.relation.multiplier\n });\n context.relation.multiplier = undefined;\n\n // Add constraint\n for (var i = 0; i < context.prevViews.length; i++) {\n const prevView = context.prevViews[i];\n switch (context.orientation) {\n case Orientation.HORIZONTAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.RIGHT : Attribute.LEFT;\n context.curAttr = Attribute.LEFT;\n break;\n case Orientation.VERTICAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.BOTTOM : Attribute.TOP;\n context.curAttr = Attribute.TOP;\n break;\n case Orientation.ZINDEX:\n context.prevAttr = Attribute.ZINDEX;\n context.curAttr = Attribute.ZINDEX;\n context.relation.constant = (prevView !== stackView) ? 'default' : 0;\n break;\n }\n context.constraints.push({\n view1: prevView,\n attr1: context.prevAttr,\n relation: context.relation.relation,\n view2: name,\n attr2: context.curAttr,\n priority: context.relation.priority\n });\n }\n context.prevViews = [name];\n}\n\n/**\n * In case of a stack-view, set constraints for opposite orientations\n * @private\n */\nfunction _processStackView(context, name, subView) {\n let viewName;\n for (var orientation = 1; orientation <= 4; orientation *= 2) {\n if ((subView.orientations & orientation) &&\n (subView.stack.orientation !== orientation) &&\n !(subView.stack.processedOrientations & orientation)) {\n subView.stack.processedOrientations = subView.stack.processedOrientations | orientation;\n viewName = viewName || {\n name: name,\n type: 'stack'\n };\n for (var i = 0, j = subView.stack.subViews.length; i < j; i++) {\n if (orientation === Orientation.ZINDEX) {\n context.constraints.push({\n view1: viewName,\n attr1: Attribute.ZINDEX,\n relation: Relation.EQU,\n view2: subView.stack.subViews[i],\n attr2: Attribute.ZINDEX\n });\n }\n else {\n context.constraints.push({\n view1: viewName,\n attr1: (orientation === Orientation.VERTICAL) ? Attribute.HEIGHT : Attribute.WIDTH,\n relation: Relation.EQU,\n view2: subView.stack.subViews[i],\n attr2: (orientation === Orientation.VERTICAL) ? Attribute.HEIGHT : Attribute.WIDTH\n });\n context.constraints.push({\n view1: viewName,\n attr1: (orientation === Orientation.VERTICAL) ? Attribute.TOP : Attribute.LEFT,\n relation: Relation.EQU,\n view2: subView.stack.subViews[i],\n attr2: (orientation === Orientation.VERTICAL) ? Attribute.TOP : Attribute.LEFT\n });\n }\n }\n }\n }\n}\n\n/**\n * Recursive helper function converts a view-name and a range to a series\n * of view-names (e.g. [child1, child2, child3, ...]).\n * @private\n */\nfunction _getRange(name, range) {\n if (range === true) {\n range = name.match(/\\.\\.\\d+$/);\n if (range) {\n name = name.substring(0, name.length - range[0].length);\n range = parseInt(range[0].substring(2));\n }\n }\n if (!range) {\n return [name];\n }\n var start = name.match(/\\d+$/);\n var res = [];\n var i;\n if (start) {\n name = name.substring(0, name.length - start[0].length);\n for (i = parseInt(start); i <= range; i++) {\n res.push(name + i);\n }\n }\n else {\n res.push(name);\n for (i = 2; i <= range; i++) {\n res.push(name + i);\n }\n }\n return res;\n}\n\n/**\n * Recursive helper function that processes the cascaded data.\n * @private\n */\nfunction _processCascade(context, cascade, parentItem) {\n const stackView = parentItem ? parentItem.view : null;\n const subViews = [];\n let curViews = [];\n let subView;\n if (stackView) {\n cascade.push({view: stackView});\n curViews.push(stackView);\n }\n for (var i = 0; i < cascade.length; i++) {\n let item = cascade[i];\n if ((!Array.isArray(item) && item.hasOwnProperty('view')) ||\n (Array.isArray(item) && item[0].view && !item[0].relation)) {\n const items = Array.isArray(item) ? item : [item];\n for (var z = 0; z < items.length; z++) {\n item = items[z];\n const viewRange = (item === ',') ? [] : item.view ? _getRange(item.view, item.range) : [null];\n for (var r = 0; r < viewRange.length; r++) {\n const curView = viewRange[r];\n curViews.push(curView);\n\n //\n // Add this view to the collection of subViews\n //\n if (curView !== stackView) {\n subViews.push(curView);\n subView = context.subViews[curView];\n if (!subView) {\n subView = {orientations: 0};\n context.subViews[curView] = subView;\n }\n subView.orientations = subView.orientations | context.orientation;\n if (subView.stack) {\n _processStackView(context, curView, subView);\n }\n }\n\n //\n // Process the relationship between this and the previous views\n //\n if ((context.prevViews !== undefined) && (curView !== undefined) && context.relation) {\n if (context.relation.relation !== 'none') {\n for (var p = 0; p < context.prevViews.length; p++) {\n const prevView = context.prevViews[p];\n switch (context.orientation) {\n case Orientation.HORIZONTAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.RIGHT : Attribute.LEFT;\n context.curAttr = (curView !== stackView) ? Attribute.LEFT : Attribute.RIGHT;\n break;\n case Orientation.VERTICAL:\n context.prevAttr = (prevView !== stackView) ? Attribute.BOTTOM : Attribute.TOP;\n context.curAttr = (curView !== stackView) ? Attribute.TOP : Attribute.BOTTOM;\n break;\n case Orientation.ZINDEX:\n context.prevAttr = Attribute.ZINDEX;\n context.curAttr = Attribute.ZINDEX;\n context.relation.constant = !prevView ? 0 : (context.relation.constant || 'default');\n break;\n }\n context.constraints.push({\n view1: prevView,\n attr1: context.prevAttr,\n relation: context.relation.relation,\n view2: curView,\n attr2: context.curAttr,\n multiplier: context.relation.multiplier,\n constant: ((context.relation.constant === 'default') || !context.relation.constant) ? context.relation.constant : -context.relation.constant,\n priority: context.relation.priority\n });\n }\n }\n }\n\n //\n // Process view size constraints\n //\n const constraints = item.constraints;\n if (constraints) {\n for (var n = 0; n < constraints.length; n++) {\n context.prevAttr = context.horizontal ? Attribute.WIDTH : Attribute.HEIGHT;\n context.curAttr = (constraints[n].view || constraints[n].multiplier) ?\n (constraints[n].attribute || context.prevAttr) :\n (constraints[n].variable ? Attribute.VARIABLE : Attribute.CONST);\n context.constraints.push({\n view1: curView,\n attr1: context.prevAttr,\n relation: constraints[n].relation,\n view2: constraints[n].view,\n attr2: context.curAttr,\n multiplier: constraints[n].multiplier,\n constant: constraints[n].constant,\n priority: constraints[n].priority\n });\n }\n }\n\n //\n // Process cascaded data (child stack-views)\n //\n if (item.cascade) {\n _processCascade(context, item.cascade, item);\n }\n }\n }\n }\n else if (item !== ',') {\n context.prevViews = curViews;\n curViews = [];\n context.relation = item[0];\n if (context.prevViews !== undefined) {\n if (context.relation.equalSpacing) {\n _processEqualSpacer(context, stackView);\n }\n if (context.relation.multiplier) {\n _processProportionalSpacer(context, stackView);\n }\n }\n }\n }\n\n if (stackView) {\n subView = context.subViews[stackView];\n if (!subView) {\n subView = {orientations: context.orientation};\n context.subViews[stackView] = subView;\n }\n else if (subView.stack) {\n const err = new Error('A stack named \"' + stackView + '\" has already been created');\n err.column = parentItem.$parserOffset + 1;\n throw err;\n }\n subView.stack = {\n orientation: context.orientation,\n processedOrientations: context.orientation,\n subViews: subViews\n };\n _processStackView(context, stackView, subView);\n }\n}\n\nconst metaInfoCategories = [\n 'viewport',\n 'spacing',\n 'colors',\n 'shapes',\n 'widths',\n 'heights'\n];\n\n/**\n * VisualFormat\n *\n * @namespace VisualFormat\n */\nclass VisualFormat {\n\n /**\n * Parses a single line of vfl into an array of constraint definitions.\n *\n * When the visual-format could not be succesfully parsed an exception is thrown containing\n * additional info about the parse error and column position.\n *\n * @param {String} visualFormat Visual format string (cannot contain line-endings!).\n * @param {Object} [options] Configuration options.\n * @param {Boolean} [options.extended] When set to true uses the extended syntax (default: false).\n * @param {String} [options.outFormat] Output format (`constraints` or `raw`) (default: `constraints`).\n * @param {Number} [options.lineIndex] Line-index used when auto generating equal-spacing constraints.\n * @return {Array} Array of constraint definitions.\n */\n static parseLine(visualFormat, options) {\n if ((visualFormat.length === 0) ||\n (options && options.extended && (visualFormat.indexOf('//') === 0))) {\n return [];\n }\n const res = (options && options.extended) ? parserExt.parse(visualFormat) : parser.parse(visualFormat);\n if (options && options.outFormat === 'raw') {\n return [res];\n }\n var context = {\n constraints: [],\n lineIndex: (options ? options.lineIndex : undefined) || 1,\n subViews: (options ? options.subViews : undefined) || {}\n };\n switch (res.orientation) {\n case 'horizontal':\n context.orientation = Orientation.HORIZONTAL;\n context.horizontal = true;\n _processCascade(context, res.cascade, null);\n break;\n case 'vertical':\n context.orientation = Orientation.VERTICAL;\n _processCascade(context, res.cascade, null);\n break;\n case 'horzvert':\n context.orientation = Orientation.HORIZONTAL;\n context.horizontal = true;\n _processCascade(context, res.cascade, null);\n context = {\n constraints: context.constraints,\n lineIndex: context.lineIndex,\n subViews: context.subViews,\n orientation: Orientation.VERTICAL\n };\n _processCascade(context, res.cascade, null);\n break;\n case 'zIndex':\n context.orientation = Orientation.ZINDEX;\n _processCascade(context, res.cascade, null);\n break;\n }\n return context.constraints;\n }\n\n /**\n * Parses one or more visual format strings into an array of constraint definitions.\n *\n * When the visual-format could not be succesfully parsed an exception is thrown containing\n * additional info about the parse error and column position.\n *\n * @param {String|Array} visualFormat One or more visual format strings.\n * @param {Object} [options] Configuration options.\n * @param {Boolean} [options.extended] When set to true uses the extended syntax (default: false).\n * @param {Boolean} [options.strict] When set to false trims any leading/trailing spaces and ignores empty lines (default: true).\n * @param {String} [options.lineSeperator] String that defines the end of a line (default `\\n`).\n * @param {String} [options.outFormat] Output format (`constraints` or `raw`) (default: `constraints`).\n * @return {Array} Array of constraint definitions.\n */\n static parse(visualFormat, options) {\n const lineSeperator = (options && options.lineSeperator) ? options.lineSeperator : '\\n';\n if (!Array.isArray(visualFormat) && (visualFormat.indexOf(lineSeperator) < 0)) {\n try {\n return this.parseLine(visualFormat, options);\n }\n catch (err) {\n err.source = visualFormat;\n throw err;\n }\n }\n\n // Decompose visual-format into an array of strings, and within those strings\n // search for line-endings, and treat each line as a seperate visual-format.\n visualFormat = Array.isArray(visualFormat) ? visualFormat : [visualFormat];\n let lines;\n let constraints = [];\n let lineIndex = 0;\n let line;\n const parseOptions = {\n lineIndex: lineIndex,\n extended: (options && options.extended),\n strict: (options && (options.strict !== undefined)) ? options.strict : true,\n outFormat: options ? options.outFormat : undefined,\n subViews: {}\n };\n try {\n for (var i = 0; i < visualFormat.length; i++) {\n lines = visualFormat[i].split(lineSeperator);\n for (var j = 0; j < lines.length; j++) {\n line = lines[j];\n lineIndex++;\n parseOptions.lineIndex = lineIndex;\n if (!parseOptions.strict) {\n line = line.trim();\n }\n if (parseOptions.strict || line.length) {\n constraints = constraints.concat(this.parseLine(line, parseOptions));\n }\n }\n }\n }\n catch (err) {\n err.source = line;\n err.line = lineIndex;\n throw err;\n }\n return constraints;\n }\n\n /**\n * Parses meta information from the comments in the VFL.\n *\n * Additional meta information can be specified in the comments\n * for previewing and rendering purposes. For instance, the view-port\n * aspect-ratio, sub-view widths and colors, can be specified. The\n * following example renders three colored circles in the visual-format editor:\n *\n * ```vfl\n * //viewport aspect-ratio:3/1 max-height:300\n * //colors red:#FF0000 green:#00FF00 blue:#0000FF\n * //shapes red:circle green:circle blue:circle\n * H:|-[row:[red(green,blue)]-[green]-[blue]]-|\n * V:|[row]|\n * ```\n *\n * Supported categories and properties:\n *\n * |Category|Property|Example|\n * |--------|--------|-------|\n * |`viewport`|`aspect-ratio:{width}/{height}`|`//viewport aspect-ratio:16/9`|\n * ||`width:[{number}/intrinsic]`|`//viewport width:10`|\n * ||`height:[{number}/intrinsic]`|`//viewport height:intrinsic`|\n * ||`min-width:{number}`|\n * ||`max-width:{number}`|\n * ||`min-height:{number}`|\n * ||`max-height:{number}`|\n * |`spacing`|`[{number}/array]`|`//spacing:8` or `//spacing:[10, 20, 5]`|\n * |`widths`|`{view-name}:[{number}/intrinsic]`|`//widths subview1:100`|\n * |`heights`|`{view-name}:[{number}/intrinsic]`|`//heights subview1:intrinsic`|\n * |`colors`|`{view-name}:{color}`|`//colors redview:#FF0000 blueview:#00FF00`|\n * |`shapes`|`{view-name}:[circle/square]`|`//shapes avatar:circle`|\n *\n * @param {String|Array} visualFormat One or more visual format strings.\n * @param {Object} [options] Configuration options.\n * @param {String} [options.lineSeperator] String that defines the end of a line (default `\\n`).\n * @param {String} [options.prefix] When specified, also processes the categories using that prefix (e.g. \"-dev-viewport max-height:10\").\n * @return {Object} meta-info\n */\n static parseMetaInfo(visualFormat, options) {\n const lineSeperator = (options && options.lineSeperator) ? options.lineSeperator : '\\n';\n const prefix = options ? options.prefix : undefined;\n visualFormat = Array.isArray(visualFormat) ? visualFormat : [visualFormat];\n const metaInfo = {};\n var key;\n for (var k = 0; k < visualFormat.length; k++) {\n const lines = visualFormat[k].split(lineSeperator);\n for (var i = 0; i < lines.length; i++) {\n const line = lines[i];\n for (var c = 0; c < metaInfoCategories.length; c++) {\n for (var s = 0; s < (prefix ? 2 : 1); s++) {\n const category = metaInfoCategories[c];\n const prefixedCategory = ((s === 0) ? '' : prefix) + category;\n if (line.indexOf('//' + prefixedCategory + ' ') === 0) {\n const items = line.substring(3 + prefixedCategory.length).split(' ');\n for (var j = 0; j < items.length; j++) {\n metaInfo[category] = metaInfo[category] || {};\n const item = items[j].split(':');\n const names = _getRange(item[0], true);\n for (var r = 0; r < names.length; r++) {\n metaInfo[category][names[r]] = (item.length > 1) ? item[1] : '';\n }\n }\n }\n else if (line.indexOf('//' + prefixedCategory + ':') === 0) {\n metaInfo[category] = line.substring(3 + prefixedCategory.length);\n }\n }\n }\n }\n }\n if (metaInfo.viewport) {\n const viewport = metaInfo.viewport;\n var aspectRatio = viewport['aspect-ratio'];\n if (aspectRatio) {\n aspectRatio = aspectRatio.split('/');\n viewport['aspect-ratio'] = parseInt(aspectRatio[0]) / parseInt(aspectRatio[1]);\n }\n if (viewport.height !== undefined) {\n viewport.height = (viewport.height === 'intrinsic') ? true : parseInt(viewport.height);\n }\n if (viewport.width !== undefined) {\n viewport.width = (viewport.width === 'intrinsic') ? true : parseInt(viewport.width);\n }\n if (viewport['max-height'] !== undefined) {\n viewport['max-height'] = parseInt(viewport['max-height']);\n }\n if (viewport['max-width'] !== undefined) {\n viewport['max-width'] = parseInt(viewport['max-width']);\n }\n if (viewport['min-height'] !== undefined) {\n viewport['min-height'] = parseInt(viewport['min-height']);\n }\n if (viewport['min-width'] !== undefined) {\n viewport['min-width'] = parseInt(viewport['min-width']);\n }\n }\n if (metaInfo.widths) {\n for (key in metaInfo.widths) {\n const width = (metaInfo.widths[key] === 'intrinsic') ? true : parseInt(metaInfo.widths[key]);\n metaInfo.widths[key] = width;\n if ((width === undefined) || isNaN(width)) {\n delete metaInfo.widths[key];\n }\n }\n }\n if (metaInfo.heights) {\n for (key in metaInfo.heights) {\n const height = (metaInfo.heights[key] === 'intrinsic') ? true : parseInt(metaInfo.heights[key]);\n metaInfo.heights[key] = height;\n if ((height === undefined) || isNaN(height)) {\n delete metaInfo.heights[key];\n }\n }\n }\n if (metaInfo.spacing) {\n const value = JSON.parse(metaInfo.spacing);\n metaInfo.spacing = value;\n if (Array.isArray(value)){\n for (var sIdx = 0, len = value.length; sIdx < len; sIdx++) {\n if (isNaN(value[sIdx])){\n delete metaInfo.spacing;\n break;\n }\n }\n } else if (value === undefined || isNaN(value)){\n delete metaInfo.spacing;\n }\n }\n return metaInfo;\n }\n}\n\n/**\n * A SubView is automatically generated when constraints are added to a View.\n *\n * @namespace SubView\n */\nclass SubView {\n constructor(options) {\n this._name = options.name;\n this._type = options.type;\n this._solver = options.solver;\n this._attr = {};\n if (!options.name) {\n if (process.env.CASSOWARYJS) {\n this._attr[Attribute.LEFT] = new c.Variable();\n this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.LEFT], c.Strength.required));\n this._attr[Attribute.TOP] = new c.Variable();\n this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.TOP], c.Strength.required));\n this._attr[Attribute.ZINDEX] = new c.Variable();\n this._solver.addConstraint(new c.StayConstraint(this._attr[Attribute.ZINDEX], c.Strength.required));\n }\n else {\n this._attr[Attribute.LEFT] = new kiwi.Variable();\n this._solver.addConstraint(new kiwi.Constraint(this._attr[Attribute.LEFT], kiwi.Operator.Eq, 0));\n this._attr[Attribute.TOP] = new kiwi.Variable();\n this._solver.addConstraint(new kiwi.Constraint(this._attr[Attribute.TOP], kiwi.Operator.Eq, 0));\n this._attr[Attribute.ZINDEX] = new kiwi.Variable();\n this._solver.addConstraint(new kiwi.Constraint(this._attr[Attribute.ZINDEX], kiwi.Operator.Eq, 0));\n }\n }\n }\n toJSON() {\n return {\n name: this.name,\n left: this.left,\n top: this.top,\n width: this.width,\n height: this.height\n };\n }\n toString() {\n JSON.stringify(this.toJSON(), undefined, 2);\n }\n\n /**\n * Name of the sub-view.\n * @readonly\n * @type {String}\n */\n get name() {\n return this._name;\n }\n\n /**\n * Left value (`Attribute.LEFT`).\n * @readonly\n * @type {Number}\n */\n get left() {\n return this._getAttrValue(Attribute.LEFT);\n }\n\n /**\n * Right value (`Attribute.RIGHT`).\n * @readonly\n * @type {Number}\n */\n get right() {\n return this._getAttrValue(Attribute.RIGHT);\n }\n\n /**\n * Width value (`Attribute.WIDTH`).\n * @type {Number}\n */\n get width() {\n return this._getAttrValue(Attribute.WIDTH);\n }\n\n /**\n * Height value (`Attribute.HEIGHT`).\n * @readonly\n * @type {Number}\n */\n get height() {\n return this._getAttrValue(Attribute.HEIGHT);\n }\n\n /**\n * Intrinsic width of the sub-view.\n *\n * Use this property to explicitely set the width of the sub-view, e.g.:\n * ```javascript\n * var view = new AutoLayout.View(AutoLayout.VisualFormat.parse('|[child1][child2]|'), {\n * width: 500\n * });\n * view.subViews.child1.intrinsicWidth = 100;\n * console.log('child2 width: ' + view.subViews.child2.width); // 400\n * ```\n *\n * @type {Number}\n */\n get intrinsicWidth() {\n return this._intrinsicWidth;\n }\n set intrinsicWidth(value) {\n if ((value !== undefined) && (value !== this._intrinsicWidth)) {\n const attr = this._getAttr(Attribute.WIDTH);\n if (this._intrinsicWidth === undefined) {\n if (process.env.CASSOWARYJS) {\n this._solver.addEditVar(attr, new c.Strength('required', this._name ? 998 : 999, 1000, 1000));\n }\n else {\n this._solver.addEditVariable(attr, kiwi.Strength.create(this._name ? 998 : 999, 1000, 1000));\n }\n }\n this._intrinsicWidth = value;\n this._solver.suggestValue(attr, value);\n if (process.env.CASSOWARYJS) {\n this._solver.resolve();\n }\n else {\n this._solver.updateVariables();\n }\n }\n }\n\n /**\n * Intrinsic height of the sub-view.\n *\n * See `intrinsicWidth`.\n *\n * @type {Number}\n */\n get intrinsicHeight() {\n return this._intrinsicHeight;\n }\n set intrinsicHeight(value) {\n if ((value !== undefined) && (value !== this._intrinsicHeight)) {\n const attr = this._getAttr(Attribute.HEIGHT);\n if (this._intrinsicHeight === undefined) {\n if (process.env.CASSOWARYJS) {\n this._solver.addEditVar(attr, new c.Strength('required', this._name ? 998 : 999, 1000, 1000));\n }\n else {\n this._solver.addEditVariable(attr, kiwi.Strength.create(this._name ? 998 : 999, 1000, 1000));\n }\n }\n this._intrinsicHeight = value;\n this._solver.suggestValue(attr, value);\n if (process.env.CASSOWARYJS) {\n this._solver.resolve();\n }\n else {\n this._solver.updateVariables();\n }\n }\n }\n\n /**\n * Top value (`Attribute.TOP`).\n * @readonly\n * @type {Number}\n */\n get top() {\n return this._getAttrValue(Attribute.TOP);\n }\n\n /**\n * Bottom value (`Attribute.BOTTOM`).\n * @readonly\n * @type {Number}\n */\n get bottom() {\n return this._getAttrValue(Attribute.BOTTOM);\n }\n\n /**\n * Horizontal center (`Attribute.CENTERX`).\n * @readonly\n * @type {Number}\n */\n get centerX() {\n return this._getAttrValue(Attribute.CENTERX);\n }\n\n /**\n * Vertical center (`Attribute.CENTERY`).\n * @readonly\n * @type {Number}\n */\n get centerY() {\n return this._getAttrValue(Attribute.CENTERY);\n }\n\n /**\n * Z-index (`Attribute.ZINDEX`).\n * @readonly\n * @type {Number}\n */\n get zIndex() {\n return this._getAttrValue(Attribute.ZINDEX);\n }\n\n /**\n * Returns the type of the sub-view.\n * @readonly\n * @type {String}\n */\n get type() {\n return this._type;\n }\n\n /**\n * Gets the value of one of the attributes.\n *\n * @param {String|Attribute} attr Attribute name (e.g. 'right', 'centerY', Attribute.TOP).\n * @return {Number} value or `undefined`\n */\n getValue(attr) {\n return this._attr[attr] ? this._attr[attr].value() : undefined;\n }\n\n /**\n * @private\n */\n _getAttr(attr) {\n if (this._attr[attr]) {\n return this._attr[attr];\n }\n this._attr[attr] = process.env.CASSOWARYJS ? new c.Variable() : new kiwi.Variable();\n switch (attr) {\n case Attribute.RIGHT:\n this._getAttr(Attribute.LEFT);\n this._getAttr(Attribute.WIDTH);\n if (process.env.CASSOWARYJS) {\n this._solver.addConstraint(new c.Equation(this._attr[attr], c.plus(this._attr[Attribute.LEFT], this._attr[Attribute.WIDTH])));\n }\n else {\n this._solver.addConstraint(new kiwi.Constraint(this._attr[attr], kiwi.Operator.Eq, this._attr[Attribute.LEFT].plus(this._attr[Attribute.WIDTH])));\n }\n break;\n case Attribute.BOTTOM:\n this._getAttr(Attribute.TOP);\n this._getAttr(Attribute.HEIGHT);\n if (process.env.CASSOWARYJS) {\n this._solver.addConstraint(new c.Equation(this._attr[attr], c.plus(this._attr[Attribute.TOP], this._attr[Attribute.HEIGHT])));\n }\n else {\n this._solver.addConstraint(new kiwi.Constraint(this._attr[attr], kiwi.Operator.Eq, this._attr[Attribute.TOP].plus(this._attr[Attribute.HEIGHT])));\n }\n break;\n case Attribute.CENTERX:\n this._getAttr(Attribute.LEFT);\n this._getAttr(Attribute.WIDTH);\n if (process.env.CASSOWARYJS) {\n this._solver.addConstraint(new c.Equation(this._attr[attr], c.plus(this._attr[Attribute.LEFT], c.divide(this._attr[Attribute.WIDTH], 2))));\n }\n else {\n this._solver.addConstraint(new kiwi.Constraint(this._attr[attr], kiwi.Operator.Eq, this._attr[Attribute.LEFT].plus(this._attr[Attribute.WIDTH].divide(2))));\n }\n break;\n case Attribute.CENTERY:\n this._getAttr(Attribute.TOP);\n this._getAttr(Attribute.HEIGHT);\n if (process.env.CASSOWARYJS) {\n this._solver.addConstraint(new c.Equation(this._attr[attr], c.plus(this._attr[Attribute.TOP], c.divide(this._attr[Attribute.HEIGHT], 2))));\n }\n else {\n this._solver.addConstraint(new kiwi.Constraint(this._attr[attr], kiwi.Operator.Eq, this._attr[Attribute.TOP].plus(this._attr[Attribute.HEIGHT].divide(2))));\n }\n break;\n }\n if (!process.env.CASSOWARYJS) {\n this._solver.updateVariables();\n }\n return this._attr[attr];\n }\n\n /**\n * @private\n */\n _getAttrValue(attr) {\n if (process.env.CASSOWARYJS) {\n return this._getAttr(attr).value;\n }\n else {\n return this._getAttr(attr).value();\n }\n }\n}\n\nconst defaultPriorityStrength = process.env.CASSOWARYJS ? new c.Strength('defaultPriority', 0, 1000, 1000) : kiwi.Strength.create(0, 1000, 1000);\n\nfunction _getConst(name, value) {\n if (process.env.CASSOWARYJS) {\n const vr = new c.Variable({value: value});\n this._solver.addConstraint(new c.StayConstraint(vr, c.Strength.required, 0));\n return vr;\n }\n else {\n const vr = new kiwi.Variable();\n this._solver.addConstraint(new kiwi.Constraint(vr, kiwi.Operator.Eq, value));\n return vr;\n }\n}\n\nfunction _getSubView(viewName) {\n if (!viewName) {\n return this._parentSubView;\n }\n else if (viewName.name) {\n this._subViews[viewName.name] = this._subViews[viewName.name] || new SubView({\n name: viewName.name,\n solver: this._solver\n });\n this._subViews[viewName.name]._type = this._subViews[viewName.name]._type || viewName.type;\n return this._subViews[viewName.name];\n }\n else {\n this._subViews[viewName] = this._subViews[viewName] || new SubView({\n name: viewName,\n solver: this._solver\n });\n return this._subViews[viewName];\n }\n}\n\nfunction _getSpacing(constraint) {\n let index = 4;\n if (!constraint.view1 && (constraint.attr1 === 'left')) {\n index = 3;\n }\n else if (!constraint.view1 && (constraint.attr1 === 'top')) {\n index = 0;\n }\n else if (!constraint.view2 && (constraint.attr2 === 'right')) {\n index = 1;\n }\n else if (!constraint.view2 && (constraint.attr2 === 'bottom')) {\n index = 2;\n }\n else {\n switch (constraint.attr1) {\n case 'left':\n case 'right':\n case 'centerX':\n case 'leading':\n case 'trailing':\n index = 4;\n break;\n case 'zIndex':\n index = 6;\n break;\n default:\n index = 5;\n }\n }\n this._spacingVars = this._spacingVars || new Array(7);\n this._spacingExpr = this._spacingExpr || new Array(7);\n if (!this._spacingVars[index]) {\n if (process.env.CASSOWARYJS) {\n this._spacingVars[index] = new c.Variable();\n this._solver.addEditVar(this._spacingVars[index]);\n this._spacingExpr[index] = c.minus(0, this._spacingVars[index]);\n }\n else {\n this._spacingVars[index] = new kiwi.Variable();\n this._solver.addEditVariable(this._spacingVars[index], kiwi.Strength.create(999, 1000, 1000));\n this._spacingExpr[index] = this._spacingVars[index].multiply(-1);\n }\n this._solver.suggestValue(this._spacingVars[index], this._spacing[index]);\n }\n return this._spacingExpr[index];\n}\n\nfunction _addConstraint(constraint) {\n //this.constraints.push(constraint);\n let relation;\n const multiplier = (constraint.multiplier !== undefined) ? constraint.multiplier : 1;\n let constant = (constraint.constant !== undefined) ? constraint.constant : 0;\n if (constant === 'default') {\n constant = _getSpacing.call(this, constraint);\n }\n const attr1 = _getSubView.call(this, constraint.view1)._getAttr(constraint.attr1);\n let attr2;\n if (process.env.CASSOWARYJS) {\n if (constraint.attr2 === Attribute.CONST) {\n attr2 = _getConst.call(this, undefined, constraint.constant);\n }\n else {\n attr2 = _getSubView.call(this, constraint.view2)._getAttr(constraint.attr2);\n if ((multiplier !== 1) && constant) {\n attr2 = c.plus(c.times(attr2, multiplier), constant);\n }\n else if (constant) {\n attr2 = c.plus(attr2, constant);\n }\n else if (multiplier !== 1) {\n attr2 = c.times(attr2, multiplier);\n }\n }\n const strength = ((constraint.priority !== undefined) && (constraint.priority < 1000)) ? new c.Strength('priority', 0, constraint.priority, 1000) : defaultPriorityStrength;\n switch (constraint.relation) {\n case Relation.EQU:\n relation = new c.Equation(attr1, attr2, strength);\n break;\n case Relation.GEQ:\n relation = new c.Inequality(attr1, c.GEQ, attr2, strength);\n break;\n case Relation.LEQ:\n relation = new c.Inequality(attr1, c.LEQ, attr2, strength);\n break;\n default:\n throw 'Invalid relation specified: ' + constraint.relation;\n }\n }\n else {\n if (constraint.attr2 === Attribute.CONST) {\n attr2 = _getConst.call(this, undefined, constraint.constant);\n }\n else {\n attr2 = _getSubView.call(this, constraint.view2)._getAttr(constraint.attr2);\n if ((multiplier !== 1) && constant) {\n attr2 = attr2.multiply(multiplier).plus(constant);\n }\n else if (constant) {\n attr2 = attr2.plus(constant);\n }\n else if (multiplier !== 1) {\n attr2 = attr2.multiply(multiplier);\n }\n }\n const strength = ((constraint.priority !== undefined) && (constraint.priority < 1000)) ? kiwi.Strength.create(0, constraint.priority, 1000) : defaultPriorityStrength;\n switch (constraint.relation) {\n case Relation.EQU:\n relation = new kiwi.Constraint(attr1, kiwi.Operator.Eq, attr2, strength);\n break;\n case Relation.GEQ:\n relation = new kiwi.Constraint(attr1, kiwi.Operator.Ge, attr2, strength);\n break;\n case Relation.LEQ:\n relation = new kiwi.Constraint(attr1, kiwi.Operator.Le, attr2, strength);\n break;\n default:\n throw 'Invalid relation specified: ' + constraint.relation;\n }\n }\n this._solver.addConstraint(relation);\n}\n\nfunction _compareSpacing(old, newz) {\n if (old === newz) {\n return true;\n }\n if (!old || !newz) {\n return false;\n }\n for (var i = 0; i < 7; i++) {\n if (old[i] !== newz[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * AutoLayoutJS API reference.\n *\n * ### Index\n *\n * |Entity|Type|Description|\n * |---|---|---|\n * |[AutoLayout](#autolayout)|`namespace`|Top level AutoLayout object.|\n * |[VisualFormat](#autolayoutvisualformat--object)|`namespace`|Parses VFL into constraints.|\n * |[View](#autolayoutview)|`class`|Main entity for adding & evaluating constraints.|\n * |[SubView](#autolayoutsubview--object)|`class`|SubView's are automatically created when constraints are added to views. They give access to the evaluated results.|\n * |[Attribute](#autolayoutattribute--enum)|`enum`|Attribute types that are supported when adding constraints.|\n * |[Relation](#autolayoutrelation--enum)|`enum`|Relationship types that are supported when adding constraints.|\n * |[Priority](#autolayoutpriority--enum)|`enum`|Default priority values for when adding constraints.|\n *\n * ### AutoLayout\n *\n * @module AutoLayout\n */\nclass View {\n\n /**\n * @class View\n * @param {Object} [options] Configuration options.\n * @param {Number} [options.width] Initial width of the view.\n * @param {Number} [options.height] Initial height of the view.\n * @param {Number|Object} [options.spacing] Spacing for the view (default: 8) (see `setSpacing`).\n * @param {Array} [options.constraints] One or more constraint definitions (see `addConstraints`).\n */\n constructor(options) {\n this._solver = process.env.CASSOWARYJS ? new c.SimplexSolver() : new kiwi.Solver();\n this._subViews = {};\n //this._spacing = undefined;\n this._parentSubView = new SubView({\n solver: this._solver\n });\n this.setSpacing((options && (options.spacing !== undefined)) ? options.spacing : 8);\n //this.constraints = [];\n if (options) {\n if ((options.width !== undefined) || (options.height !== undefined)) {\n this.setSize(options.width, options.height);\n }\n if (options.constraints) {\n this.addConstraints(options.constraints);\n }\n }\n }\n\n /**\n * Sets the width and height of the view.\n *\n * @param {Number} width Width of the view.\n * @param {Number} height Height of the view.\n * @return {View} this\n */\n setSize(width, height /*, depth*/) {\n this._parentSubView.intrinsicWidth = width;\n this._parentSubView.intrinsicHeight = height;\n return this;\n }\n\n /**\n * Width that was set using `setSize`.\n * @readonly\n * @type {Number}\n */\n get width() {\n return this._parentSubView.intrinsicWidth;\n }\n\n /**\n * Height that was set using `setSize`.\n * @readonly\n * @type {Number}\n */\n get height() {\n return this._parentSubView.intrinsicHeight;\n }\n\n /**\n * Width that is calculated from the constraints and the `.intrinsicWidth` of\n * the sub-views.\n *\n * When the width has been explicitely set using `setSize`, the fittingWidth\n * will **always** be the same as the explicitely set width. To calculate the size\n * based on the content, use:\n * ```javascript\n * var view = new AutoLayout.View({\n * constraints: VisualFormat.parse('|-[view1]-[view2]-'),\n * spacing: 20\n * });\n * view.subViews.view1.intrinsicWidth = 100;\n * view.subViews.view2.intrinsicWidth = 100;\n * console.log('fittingWidth: ' + view.fittingWidth); // 260\n * ```\n *\n * @readonly\n * @type {Number}\n */\n get fittingWidth() {\n return this._parentSubView.width;\n }\n\n /**\n * Height that is calculated from the constraints and the `.intrinsicHeight` of\n * the sub-views.\n *\n * See `.fittingWidth`.\n *\n * @readonly\n * @type {Number}\n */\n get fittingHeight() {\n return this._parentSubView.height;\n }\n\n /**\n * Sets the spacing for the view.\n *\n * The spacing can be set for 7 different variables:\n * `top`, `right`, `bottom`, `left`, `width`, `height` and `zIndex`. The `left`-spacing is\n * used when a spacer is used between the parent-view and a sub-view (e.g. `|-[subView]`).\n * The same is true for the `right`, `top` and `bottom` spacers. The `width` and `height` are\n * used for spacers in between sub-views (e.g. `[view1]-[view2]`).\n *\n * Instead of using the full spacing syntax, it is also possible to use shorthand notations:\n *\n * |Syntax|Type|Description|\n * |---|---|---|\n * |`[top, right, bottom, left, width, height, zIndex]`|Array(7)|Full syntax including z-index **(clockwise order)**.|\n * |`[top, right, bottom, left, width, height]`|Array(6)|Full horizontal & vertical spacing syntax (no z-index) **(clockwise order)**.|\n * |`[horizontal, vertical, zIndex]`|Array(3)|Horizontal = left, right, width, vertical = top, bottom, height.|\n * |`[horizontal, vertical]`|Array(2)|Horizontal = left, right, width, vertical = top, bottom, height, z-index = 1.|\n * |`spacing`|Number|Horizontal & vertical spacing are all the same, z-index = 1.|\n *\n * Examples:\n * ```javascript\n * view.setSpacing(10); // horizontal & vertical spacing 10\n * view.setSpacing([10, 15, 2]); // horizontal spacing 10, vertical spacing 15, z-axis spacing 2\n * view.setSpacing([10, 20, 10, 20, 5, 5]); // top, right, bottom, left, horizontal, vertical\n * view.setSpacing([10, 20, 10, 20, 5, 5, 1]); // top, right, bottom, left, horizontal, vertical, z\n * ```\n *\n * @param {Number|Array} spacing\n * @return {View} this\n */\n setSpacing(spacing) {\n // convert spacing into array: [top, right, bottom, left, horz, vert, z-index]\n switch (Array.isArray(spacing) ? spacing.length : -1) {\n case -1: spacing = [spacing, spacing, spacing, spacing, spacing, spacing, 1]; break;\n case 1: spacing = [spacing[0], spacing[0], spacing[0], spacing[0], spacing[0], spacing[0], 1]; break;\n case 2: spacing = [spacing[1], spacing[0], spacing[1], spacing[0], spacing[0], spacing[1], 1]; break;\n case 3: spacing = [spacing[1], spacing[0], spacing[1], spacing[0], spacing[0], spacing[1], spacing[2]]; break;\n case 6: spacing = [spacing[0], spacing[1], spacing[2], spacing[3], spacing[4], spacing[5], 1]; break;\n case 7: break;\n default: throw 'Invalid spacing syntax';\n }\n if (!_compareSpacing(this._spacing, spacing)) {\n this._spacing = spacing;\n // update spacing variables\n if (this._spacingVars) {\n for (var i = 0; i < this._spacingVars.length; i++) {\n if (this._spacingVars[i]) {\n this._solver.suggestValue(this._spacingVars[i], this._spacing[i]);\n }\n }\n if (process.env.CASSOWARYJS) {\n this._solver.resolve();\n }\n else {\n this._solver.updateVariables();\n }\n }\n }\n return this;\n }\n\n /**\n * Adds a constraint definition.\n *\n * A constraint definition has the following format:\n *\n * ```javascript\n * constraint: {\n * view1: {String},\n * attr1: {AutoLayout.Attribute},\n * relation: {AutoLayout.Relation},\n * view2: {String},\n * attr2: {AutoLayout.Attribute},\n * multiplier: {Number},\n * constant: {Number},\n * priority: {Number}(0..1000)\n * }\n * ```\n * @param {Object} constraint Constraint definition.\n * @return {View} this\n */\n addConstraint(constraint) {\n _addConstraint.call(this, constraint);\n if (!process.env.CASSOWARYJS) {\n this._solver.updateVariables();\n }\n return this;\n }\n\n /**\n * Adds one or more constraint definitions.\n *\n * A constraint definition has the following format:\n *\n * ```javascript\n * constraint: {\n * view1: {String},\n * attr1: {AutoLayout.Attribute},\n * relation: {AutoLayout.Relation},\n * view2: {String},\n * attr2: {AutoLayout.Attribute},\n * multiplier: {Number},\n * constant: {Number},\n * priority: {Number}(0..1000)\n * }\n * ```\n * @param {Array} constraints One or more constraint definitions.\n * @return {View} this\n */\n addConstraints(constraints) {\n for (var j = 0; j < constraints.length; j++) {\n _addConstraint.call(this, constraints[j]);\n }\n if (!process.env.CASSOWARYJS) {\n this._solver.updateVariables();\n }\n return this;\n }\n\n /**\n * Dictionary of `SubView` objects that have been created when adding constraints.\n * @readonly\n * @type {Object.SubView}\n */\n get subViews() {\n return this._subViews;\n }\n\n /**\n * Checks whether the constraints incompletely specify the location\n * of the subViews.\n * @private\n */\n //get hasAmbiguousLayout() {\n // Todo\n //}\n}\n\n//import DOM from './DOM';\n\n/**\n * AutoLayout.\n *\n * @namespace AutoLayout\n * @property {Attribute} Attribute\n * @property {Relation} Relation\n * @property {Priority} Priority\n * @property {VisualFormat} VisualFormat\n * @property {View} View\n * @property {SubView} SubView\n */\nvar AutoLayout = {\n Attribute: Attribute,\n Relation: Relation,\n Priority: Priority,\n VisualFormat: VisualFormat,\n View: View,\n SubView: SubView\n //DOM: DOM\n};\n\nmodule.exports = AutoLayout;","/**\n * Parts Copyright (C) 2011-2012, Alex Russell (slightlyoff@chromium.org)\n * Parts Copyright (C) Copyright (C) 1998-2000 Greg J. Badros\n *\n * Use of this source code is governed by the LGPL, which can be found in the\n * COPYING.LGPL file.\n *\n * This is a compiled version of Cassowary/JS. For source versions or to\n * contribute, see the github project:\n *\n * https://github.com/slightlyoff/cassowary-js-refactor\n *\n */\n\n(function() {\n(function(a){\"use strict\";try{(function(){}).bind(a)}catch(b){Object.defineProperty(Function.prototype,\"bind\",{value:function(a){var b=this;return function(){return b.apply(a,arguments)}},enumerable:!1,configurable:!0,writable:!0})}var c=a.HTMLElement!==void 0,d=function(a){for(var b=null;a&&a!=Object.prototype;){if(a.tagName){b=a.tagName;break}a=a.prototype}return b||\"div\"},e=1e-8,f={},g=function(a,b){if(a&&b){if(\"function\"==typeof a[b])return a[b];var c=a.prototype;if(c&&\"function\"==typeof c[b])return c[b];if(c!==Object.prototype&&c!==Function.prototype)return\"function\"==typeof a.__super__?g(a.__super__,b):void 0}},h=a.c={debug:!1,trace:!1,verbose:!1,traceAdded:!1,GC:!1,GEQ:1,LEQ:2,inherit:function(b){var e=null,g=null;b[\"extends\"]&&(g=b[\"extends\"],delete b[\"extends\"]),b.initialize&&(e=b.initialize,delete b.initialize);var h=e||function(){};Object.defineProperty(h,\"__super__\",{value:g?g:Object,enumerable:!1,configurable:!0,writable:!1}),b._t&&(f[b._t]=h);var i=h.prototype=Object.create(g?g.prototype:Object.prototype);if(this.extend(i,b),c&&g&&g.prototype instanceof a.HTMLElement){var j=h,k=d(i),l=function(a){return a.__proto__=i,j.apply(a,arguments),i.created&&a.created(),i.decorate&&a.decorate(),a};this.extend(i,{upgrade:l}),h=function(){return l(a.document.createElement(k))},h.prototype=i,this.extend(h,{ctor:j})}return h},extend:function(a,b){return this.own(b,function(c){var d=Object.getOwnPropertyDescriptor(b,c);try{\"function\"==typeof d.get||\"function\"==typeof d.set?Object.defineProperty(a,c,d):\"function\"==typeof d.value||\"_\"===c.charAt(0)?(d.writable=!0,d.configurable=!0,d.enumerable=!1,Object.defineProperty(a,c,d)):a[c]=b[c]}catch(e){}}),a},own:function(b,c,d){return Object.getOwnPropertyNames(b).forEach(c,d||a),b},traceprint:function(a){h.verbose&&console.log(a)},fnenterprint:function(a){console.log(\"* \"+a)},fnexitprint:function(a){console.log(\"- \"+a)},assert:function(a,b){if(!a)throw new h.InternalError(\"Assertion failed: \"+b)},plus:function(a,b){return a instanceof h.Expression||(a=new h.Expression(a)),b instanceof h.Expression||(b=new h.Expression(b)),a.plus(b)},minus:function(a,b){return a instanceof h.Expression||(a=new h.Expression(a)),b instanceof h.Expression||(b=new h.Expression(b)),a.minus(b)},times:function(a,b){return(\"number\"==typeof a||a instanceof h.Variable)&&(a=new h.Expression(a)),(\"number\"==typeof b||b instanceof h.Variable)&&(b=new h.Expression(b)),a.times(b)},divide:function(a,b){return(\"number\"==typeof a||a instanceof h.Variable)&&(a=new h.Expression(a)),(\"number\"==typeof b||b instanceof h.Variable)&&(b=new h.Expression(b)),a.divide(b)},approx:function(a,b){if(a===b)return!0;var c,d;return c=a instanceof h.Variable?a.value:a,d=b instanceof h.Variable?b.value:b,0==c?e>Math.abs(d):0==d?e>Math.abs(c):Math.abs(c-d)64||this._deleted>this._compactThreshold&&(this._compact(),this._deleted=0)},\"delete\":function(a){a=b(a),this._store.hasOwnProperty(a)&&(this._deleted++,delete this._store[a],this.size>0&&this.size--)},each:function(a,b){if(this.size){this._perhapsCompact();var c=this._store,d=this._keyStrMap;Object.keys(this._store).forEach(function(e){a.call(b||null,d[e],c[e])},this)}},escapingEach:function(a,b){if(this.size){this._perhapsCompact();for(var c=this,e=this._store,f=this._keyStrMap,g=d,h=Object.keys(e),i=0;h.length>i;i++)if(function(d){c._store.hasOwnProperty(d)&&(g=a.call(b||null,f[d],e[d]))}(h[i]),g){if(void 0!==g.retval)return g;if(g.brk)break}}},clone:function(){var b=new a.HashTable;return this.size&&(b.size=this.size,c(this._store,b._store),c(this._keyStrMap,b._keyStrMap)),b},equals:function(b){if(b===this)return!0;if(!(b instanceof a.HashTable)||b._size!==this._size)return!1;for(var c=Object.keys(this._store),d=0;c.length>d;d++){var e=c[d];if(this._keyStrMap[e]!==b._keyStrMap[e]||this._store[e]!==b._store[e])return!1}return!0},toString:function(){var b=\"\";return this.each(function(a,c){b+=a+\" => \"+c+\"\\n\"}),b}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.HashSet=a.inherit({_t:\"c.HashSet\",initialize:function(){this.storage=[],this.size=0},add:function(a){var b=this.storage;b.indexOf(a),-1==b.indexOf(a)&&b.push(a),this.size=this.storage.length},values:function(){return this.storage},has:function(a){var b=this.storage;return-1!=b.indexOf(a)},\"delete\":function(a){var b=this.storage.indexOf(a);return-1==b?null:(this.storage.splice(b,1)[0],this.size=this.storage.length,void 0)},clear:function(){this.storage.length=0},each:function(a,b){this.size&&this.storage.forEach(a,b)},escapingEach:function(a,b){this.size&&this.storage.forEach(a,b)},toString:function(){var a=this.size+\" {\",b=!0;return this.each(function(c){b?b=!1:a+=\", \",a+=c}),a+=\"}\\n\"},toJSON:function(){var a=[];return this.each(function(b){a.push(b.toJSON())}),{_t:\"c.HashSet\",data:a}},fromJSON:function(b){var c=new a.HashSet;return b.data&&(c.size=b.data.length,c.storage=b.data),c}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.Error=a.inherit({initialize:function(a){a&&(this._description=a)},_name:\"c.Error\",_description:\"An error has occured in Cassowary\",set description(a){this._description=a},get description(){return\"(\"+this._name+\") \"+this._description},get message(){return this.description},toString:function(){return this.description}});var b=function(b,c){return a.inherit({\"extends\":a.Error,initialize:function(){a.Error.apply(this,arguments)},_name:b||\"\",_description:c||\"\"})};a.ConstraintNotFound=b(\"c.ConstraintNotFound\",\"Tried to remove a constraint never added to the tableu\"),a.InternalError=b(\"c.InternalError\"),a.NonExpression=b(\"c.NonExpression\",\"The resulting expression would be non\"),a.NotEnoughStays=b(\"c.NotEnoughStays\",\"There are not enough stays to give specific values to every variable\"),a.RequiredFailure=b(\"c.RequiredFailure\",\"A required constraint cannot be satisfied\"),a.TooDifficult=b(\"c.TooDifficult\",\"The constraints are too difficult to solve\")}(this.c||module.parent.exports||{}),function(a){\"use strict\";var b=1e3;a.SymbolicWeight=a.inherit({_t:\"c.SymbolicWeight\",initialize:function(){this.value=0;for(var a=1,c=arguments.length-1;c>=0;--c)this.value+=arguments[c]*a,a*=b},toJSON:function(){return{_t:this._t,value:this.value}}})}(this.c||module.parent.exports||{}),function(a){a.Strength=a.inherit({initialize:function(b,c,d,e){this.name=b,this.symbolicWeight=c instanceof a.SymbolicWeight?c:new a.SymbolicWeight(c,d,e)},get required(){return this===a.Strength.required},toString:function(){return this.name+(this.isRequired?\"\":\":\"+this.symbolicWeight)}}),a.Strength.required=new a.Strength(\"\",1e3,1e3,1e3),a.Strength.strong=new a.Strength(\"strong\",1,0,0),a.Strength.medium=new a.Strength(\"medium\",0,1,0),a.Strength.weak=new a.Strength(\"weak\",0,0,1)}(this.c||(\"undefined\"!=typeof module?module.parent.exports.c:{})),function(a){\"use strict\";a.AbstractVariable=a.inherit({isDummy:!1,isExternal:!1,isPivotable:!1,isRestricted:!1,_init:function(b,c){this.hashCode=a._inc(),this.name=(c||\"\")+this.hashCode,b&&(b.name!==void 0&&(this.name=b.name),b.value!==void 0&&(this.value=b.value),b.prefix!==void 0&&(this._prefix=b.prefix))},_prefix:\"\",name:\"\",value:0,toJSON:function(){var a={};return this._t&&(a._t=this._t),this.name&&(a.name=this.name),this.value!==void 0&&(a.value=this.value),this._prefix&&(a._prefix=this._prefix),this._t&&(a._t=this._t),a},fromJSON:function(b,c){var d=new c;return a.extend(d,b),d},toString:function(){return this._prefix+\"[\"+this.name+\":\"+this.value+\"]\"}}),a.Variable=a.inherit({_t:\"c.Variable\",\"extends\":a.AbstractVariable,initialize:function(b){this._init(b,\"v\");var c=a.Variable._map;c&&(c[this.name]=this)},isExternal:!0}),a.DummyVariable=a.inherit({_t:\"c.DummyVariable\",\"extends\":a.AbstractVariable,initialize:function(a){this._init(a,\"d\")},isDummy:!0,isRestricted:!0,value:\"dummy\"}),a.ObjectiveVariable=a.inherit({_t:\"c.ObjectiveVariable\",\"extends\":a.AbstractVariable,initialize:function(a){this._init(a,\"o\")},value:\"obj\"}),a.SlackVariable=a.inherit({_t:\"c.SlackVariable\",\"extends\":a.AbstractVariable,initialize:function(a){this._init(a,\"s\")},isPivotable:!0,isRestricted:!0,value:\"slack\"})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.Point=a.inherit({initialize:function(b,c,d){if(b instanceof a.Variable)this._x=b;else{var e={value:b};d&&(e.name=\"x\"+d),this._x=new a.Variable(e)}if(c instanceof a.Variable)this._y=c;else{var f={value:c};d&&(f.name=\"y\"+d),this._y=new a.Variable(f)}},get x(){return this._x},set x(b){b instanceof a.Variable?this._x=b:this._x.value=b},get y(){return this._y},set y(b){b instanceof a.Variable?this._y=b:this._y.value=b},toString:function(){return\"(\"+this.x+\", \"+this.y+\")\"}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.Expression=a.inherit({initialize:function(b,c,d){a.GC&&console.log(\"new c.Expression\"),this.constant=\"number\"!=typeof d||isNaN(d)?0:d,this.terms=new a.HashTable,b instanceof a.AbstractVariable?this.setVariable(b,\"number\"==typeof c?c:1):\"number\"==typeof b&&(isNaN(b)?console.trace():this.constant=b)},initializeFromHash:function(b,c){return a.verbose&&(console.log(\"*******************************\"),console.log(\"clone c.initializeFromHash\"),console.log(\"*******************************\")),a.GC&&console.log(\"clone c.Expression\"),this.constant=b,this.terms=c.clone(),this},multiplyMe:function(a){this.constant*=a;var b=this.terms;return b.each(function(c,d){b.set(c,d*a)}),this},clone:function(){a.verbose&&(console.log(\"*******************************\"),console.log(\"clone c.Expression\"),console.log(\"*******************************\"));var b=new a.Expression;return b.initializeFromHash(this.constant,this.terms),b},times:function(b){if(\"number\"==typeof b)return this.clone().multiplyMe(b);if(this.isConstant)return b.times(this.constant);if(b.isConstant)return this.times(b.constant);throw new a.NonExpression},plus:function(b){return b instanceof a.Expression?this.clone().addExpression(b,1):b instanceof a.Variable?this.clone().addVariable(b,1):void 0},minus:function(b){return b instanceof a.Expression?this.clone().addExpression(b,-1):b instanceof a.Variable?this.clone().addVariable(b,-1):void 0},divide:function(b){if(\"number\"==typeof b){if(a.approx(b,0))throw new a.NonExpression;return this.times(1/b)}if(b instanceof a.Expression){if(!b.isConstant)throw new a.NonExpression;return this.times(1/b.constant)}},addExpression:function(b,c,d,e){return b instanceof a.AbstractVariable&&(b=new a.Expression(b),a.trace&&console.log(\"addExpression: Had to cast a var to an expression\")),c=c||1,this.constant+=c*b.constant,b.terms.each(function(a,b){this.addVariable(a,b*c,d,e)},this),this},addVariable:function(b,c,d,e){null==c&&(c=1),a.trace&&console.log(\"c.Expression::addVariable():\",b,c);var f=this.terms.get(b);if(f){var g=f+c;0==g||a.approx(g,0)?(e&&e.noteRemovedVariable(b,d),this.terms.delete(b)):this.setVariable(b,g)}else a.approx(c,0)||(this.setVariable(b,c),e&&e.noteAddedVariable(b,d));return this},setVariable:function(a,b){return this.terms.set(a,b),this},anyPivotableVariable:function(){if(this.isConstant)throw new a.InternalError(\"anyPivotableVariable called on a constant\");var b=this.terms.escapingEach(function(a){return a.isPivotable?{retval:a}:void 0});return b&&void 0!==b.retval?b.retval:null},substituteOut:function(b,c,d,e){a.trace&&(a.fnenterprint(\"CLE:substituteOut: \"+b+\", \"+c+\", \"+d+\", ...\"),a.traceprint(\"this = \"+this));var f=this.setVariable.bind(this),g=this.terms,h=g.get(b);g.delete(b),this.constant+=h*c.constant,c.terms.each(function(b,c){var i=g.get(b);if(i){var j=i+h*c;a.approx(j,0)?(e.noteRemovedVariable(b,d),g.delete(b)):f(b,j)}else f(b,h*c),e&&e.noteAddedVariable(b,d)}),a.trace&&a.traceprint(\"Now this is \"+this)},changeSubject:function(a,b){this.setVariable(a,this.newSubject(b))},newSubject:function(b){a.trace&&a.fnenterprint(\"newSubject:\"+b);var c=1/this.terms.get(b);return this.terms.delete(b),this.multiplyMe(-c),c},coefficientFor:function(a){return this.terms.get(a)||0},get isConstant(){return 0==this.terms.size},toString:function(){var b=\"\",c=!1;if(!a.approx(this.constant,0)||this.isConstant){if(b+=this.constant,this.isConstant)return b;c=!0}return this.terms.each(function(a,d){c&&(b+=\" + \"),b+=d+\"*\"+a,c=!0}),b},equals:function(b){return b===this?!0:b instanceof a.Expression&&b.constant===this.constant&&b.terms.equals(this.terms)},Plus:function(a,b){return a.plus(b)},Minus:function(a,b){return a.minus(b)},Times:function(a,b){return a.times(b)},Divide:function(a,b){return a.divide(b)}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.AbstractConstraint=a.inherit({initialize:function(b,c){this.hashCode=a._inc(),this.strength=b||a.Strength.required,this.weight=c||1},isEditConstraint:!1,isInequality:!1,isStayConstraint:!1,get required(){return this.strength===a.Strength.required},toString:function(){return this.strength+\" {\"+this.weight+\"} (\"+this.expression+\")\"}});var b=a.AbstractConstraint.prototype.toString,c=function(b,c,d){a.AbstractConstraint.call(this,c||a.Strength.strong,d),this.variable=b,this.expression=new a.Expression(b,-1,b.value)};a.EditConstraint=a.inherit({\"extends\":a.AbstractConstraint,initialize:function(){c.apply(this,arguments)},isEditConstraint:!0,toString:function(){return\"edit:\"+b.call(this)}}),a.StayConstraint=a.inherit({\"extends\":a.AbstractConstraint,initialize:function(){c.apply(this,arguments)},isStayConstraint:!0,toString:function(){return\"stay:\"+b.call(this)}});var d=a.Constraint=a.inherit({\"extends\":a.AbstractConstraint,initialize:function(b,c,d){a.AbstractConstraint.call(this,c,d),this.expression=b}});a.Inequality=a.inherit({\"extends\":a.Constraint,_cloneOrNewCle:function(b){return b.clone?b.clone():new a.Expression(b)},initialize:function(b,c,e,f,g){var h=b instanceof a.Expression,i=e instanceof a.Expression,j=b instanceof a.AbstractVariable,k=e instanceof a.AbstractVariable,l=\"number\"==typeof b,m=\"number\"==typeof e;if((h||l)&&k){var n=b,o=c,p=e,q=f,r=g;if(d.call(this,this._cloneOrNewCle(n),q,r),o==a.LEQ)this.expression.multiplyMe(-1),this.expression.addVariable(p);else{if(o!=a.GEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");this.expression.addVariable(p,-1)}}else if(j&&(i||m)){var n=e,o=c,p=b,q=f,r=g;if(d.call(this,this._cloneOrNewCle(n),q,r),o==a.GEQ)this.expression.multiplyMe(-1),this.expression.addVariable(p);else{if(o!=a.LEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");this.expression.addVariable(p,-1)}}else{if(h&&m){var s=b,o=c,t=e,q=f,r=g;if(d.call(this,this._cloneOrNewCle(s),q,r),o==a.LEQ)this.expression.multiplyMe(-1),this.expression.addExpression(this._cloneOrNewCle(t));else{if(o!=a.GEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");this.expression.addExpression(this._cloneOrNewCle(t),-1)}return this}if(l&&i){var s=e,o=c,t=b,q=f,r=g;if(d.call(this,this._cloneOrNewCle(s),q,r),o==a.GEQ)this.expression.multiplyMe(-1),this.expression.addExpression(this._cloneOrNewCle(t));else{if(o!=a.LEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");this.expression.addExpression(this._cloneOrNewCle(t),-1)}return this}if(h&&i){var s=b,o=c,t=e,q=f,r=g;if(d.call(this,this._cloneOrNewCle(t),q,r),o==a.GEQ)this.expression.multiplyMe(-1),this.expression.addExpression(this._cloneOrNewCle(s));else{if(o!=a.LEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");this.expression.addExpression(this._cloneOrNewCle(s),-1)}}else{if(h)return d.call(this,b,c,e);if(c==a.GEQ)d.call(this,new a.Expression(e),f,g),this.expression.multiplyMe(-1),this.expression.addVariable(b);else{if(c!=a.LEQ)throw new a.InternalError(\"Invalid operator in c.Inequality constructor\");d.call(this,new a.Expression(e),f,g),this.expression.addVariable(b,-1)}}}},isInequality:!0,toString:function(){return d.prototype.toString.call(this)+\" >= 0) id: \"+this.hashCode}}),a.Equation=a.inherit({\"extends\":a.Constraint,initialize:function(b,c,e,f){if(b instanceof a.Expression&&!c||c instanceof a.Strength)d.call(this,b,c,e);else if(b instanceof a.AbstractVariable&&c instanceof a.Expression){var g=b,h=c,i=e,j=f;d.call(this,h.clone(),i,j),this.expression.addVariable(g,-1)}else if(b instanceof a.AbstractVariable&&\"number\"==typeof c){var g=b,k=c,i=e,j=f;d.call(this,new a.Expression(k),i,j),this.expression.addVariable(g,-1)}else if(b instanceof a.Expression&&c instanceof a.AbstractVariable){var h=b,g=c,i=e,j=f;d.call(this,h.clone(),i,j),this.expression.addVariable(g,-1)}else{if(!(b instanceof a.Expression||b instanceof a.AbstractVariable||\"number\"==typeof b)||!(c instanceof a.Expression||c instanceof a.AbstractVariable||\"number\"==typeof c))throw\"Bad initializer to c.Equation\";b=b instanceof a.Expression?b.clone():new a.Expression(b),c=c instanceof a.Expression?c.clone():new a.Expression(c),d.call(this,b,e,f),this.expression.addExpression(c,-1)}a.assert(this.strength instanceof a.Strength,\"_strength not set\")},toString:function(){return d.prototype.toString.call(this)+\" = 0)\"}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.EditInfo=a.inherit({initialize:function(a,b,c,d,e){this.constraint=a,this.editPlus=b,this.editMinus=c,this.prevEditConstant=d,this.index=e},toString:function(){return\"\"}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.Tableau=a.inherit({initialize:function(){this.columns=new a.HashTable,this.rows=new a.HashTable,this._infeasibleRows=new a.HashSet,this._externalRows=new a.HashSet,this._externalParametricVars=new a.HashSet},noteRemovedVariable:function(b,c){a.trace&&console.log(\"c.Tableau::noteRemovedVariable: \",b,c);var d=this.columns.get(b);c&&d&&d.delete(c)},noteAddedVariable:function(a,b){b&&this.insertColVar(a,b)},getInternalInfo:function(){var a=\"Tableau Information:\\n\";return a+=\"Rows: \"+this.rows.size,a+=\" (= \"+(this.rows.size-1)+\" constraints)\",a+=\"\\nColumns: \"+this.columns.size,a+=\"\\nInfeasible Rows: \"+this._infeasibleRows.size,a+=\"\\nExternal basic variables: \"+this._externalRows.size,a+=\"\\nExternal parametric variables: \",a+=this._externalParametricVars.size,a+=\"\\n\"},toString:function(){var a=\"Tableau:\\n\";return this.rows.each(function(b,c){a+=b,a+=\" <==> \",a+=c,a+=\"\\n\"}),a+=\"\\nColumns:\\n\",a+=this.columns,a+=\"\\nInfeasible rows: \",a+=this._infeasibleRows,a+=\"External basic variables: \",a+=this._externalRows,a+=\"External parametric variables: \",a+=this._externalParametricVars},insertColVar:function(b,c){var d=this.columns.get(b);d||(d=new a.HashSet,this.columns.set(b,d)),d.add(c)},addRow:function(b,c){a.trace&&a.fnenterprint(\"addRow: \"+b+\", \"+c),this.rows.set(b,c),c.terms.each(function(a){this.insertColVar(a,b),a.isExternal&&this._externalParametricVars.add(a)},this),b.isExternal&&this._externalRows.add(b),a.trace&&a.traceprint(\"\"+this)},removeColumn:function(b){a.trace&&a.fnenterprint(\"removeColumn:\"+b);var c=this.columns.get(b);c?(this.columns.delete(b),c.each(function(a){var c=this.rows.get(a);c.terms.delete(b)},this)):a.trace&&console.log(\"Could not find var\",b,\"in columns\"),b.isExternal&&(this._externalRows.delete(b),this._externalParametricVars.delete(b))},removeRow:function(b){a.trace&&a.fnenterprint(\"removeRow:\"+b);var c=this.rows.get(b);return a.assert(null!=c),c.terms.each(function(c){var e=this.columns.get(c);null!=e&&(a.trace&&console.log(\"removing from varset:\",b),e.delete(b))},this),this._infeasibleRows.delete(b),b.isExternal&&this._externalRows.delete(b),this.rows.delete(b),a.trace&&a.fnexitprint(\"returning \"+c),c},substituteOut:function(b,c){a.trace&&a.fnenterprint(\"substituteOut:\"+b+\", \"+c),a.trace&&a.traceprint(\"\"+this);var d=this.columns.get(b);d.each(function(a){var d=this.rows.get(a);d.substituteOut(b,c,a,this),a.isRestricted&&0>d.constant&&this._infeasibleRows.add(a)},this),b.isExternal&&(this._externalRows.add(b),this._externalParametricVars.delete(b)),this.columns.delete(b)},columnsHasKey:function(a){return!!this.columns.get(a)}})}(this.c||module.parent.exports||{}),function(a){var b=a.Tableau,c=b.prototype,d=1e-8,e=a.Strength.weak;a.SimplexSolver=a.inherit({\"extends\":a.Tableau,initialize:function(){a.Tableau.call(this),this._stayMinusErrorVars=[],this._stayPlusErrorVars=[],this._errorVars=new a.HashTable,this._markerVars=new a.HashTable,this._objective=new a.ObjectiveVariable({name:\"Z\"}),this._editVarMap=new a.HashTable,this._editVarList=[],this._slackCounter=0,this._artificialCounter=0,this._dummyCounter=0,this.autoSolve=!0,this._fNeedsSolving=!1,this._optimizeCount=0,this.rows.set(this._objective,new a.Expression),this._stkCedcns=[0],a.trace&&a.traceprint(\"objective expr == \"+this.rows.get(this._objective))},addLowerBound:function(b,c){var d=new a.Inequality(b,a.GEQ,new a.Expression(c));return this.addConstraint(d)},addUpperBound:function(b,c){var d=new a.Inequality(b,a.LEQ,new a.Expression(c));return this.addConstraint(d)},addBounds:function(a,b,c){return this.addLowerBound(a,b),this.addUpperBound(a,c),this},add:function(){for(var a=0;arguments.length>a;a++)this.addConstraint(arguments[a]);return this},addConstraint:function(b){a.trace&&a.fnenterprint(\"addConstraint: \"+b);var c=Array(2),d=Array(1),e=this.newExpression(b,c,d);if(d=d[0],this.tryAddingDirectly(e)||this.addWithArtificialVariable(e),this._fNeedsSolving=!0,b.isEditConstraint){var f=this._editVarMap.size,g=c[0],h=c[1];!g instanceof a.SlackVariable&&console.warn(\"cvEplus not a slack variable =\",g),!h instanceof a.SlackVariable&&console.warn(\"cvEminus not a slack variable =\",h),a.debug&&console.log(\"new c.EditInfo(\"+b+\", \"+g+\", \"+h+\", \"+d+\", \"+f+\")\");var i=new a.EditInfo(b,g,h,d,f);this._editVarMap.set(b.variable,i),this._editVarList[f]={v:b.variable,info:i}}return this.autoSolve&&(this.optimize(this._objective),this._setExternalVariables()),this},addConstraintNoException:function(b){a.trace&&a.fnenterprint(\"addConstraintNoException: \"+b);try{return this.addConstraint(b),!0}catch(c){return!1}},addEditVar:function(b,c){return a.trace&&a.fnenterprint(\"addEditVar: \"+b+\" @ \"+c),this.addConstraint(new a.EditConstraint(b,c||a.Strength.strong))},beginEdit:function(){return a.assert(this._editVarMap.size>0,\"_editVarMap.size > 0\"),this._infeasibleRows.clear(),this._resetStayConstants(),this._stkCedcns.push(this._editVarMap.size),this},endEdit:function(){return a.assert(this._editVarMap.size>0,\"_editVarMap.size > 0\"),this.resolve(),this._stkCedcns.pop(),this.removeEditVarsTo(this._stkCedcns[this._stkCedcns.length-1]),this},removeAllEditVars:function(){return this.removeEditVarsTo(0)},removeEditVarsTo:function(b){try{for(var c=this._editVarList.length,d=b;c>d;d++)this._editVarList[d]&&this.removeConstraint(this._editVarMap.get(this._editVarList[d].v).constraint);return this._editVarList.length=b,a.assert(this._editVarMap.size==b,\"_editVarMap.size == n\"),this}catch(e){throw new a.InternalError(\"Constraint not found in removeEditVarsTo\")}},addPointStays:function(b){return a.trace&&console.log(\"addPointStays\",b),b.forEach(function(a,b){this.addStay(a.x,e,Math.pow(2,b)),this.addStay(a.y,e,Math.pow(2,b))},this),this},addStay:function(b,c,d){var f=new a.StayConstraint(b,c||e,d||1);return this.addConstraint(f)},removeConstraint:function(a){return this.removeConstraintInternal(a),this},removeConstraintInternal:function(b){a.trace&&a.fnenterprint(\"removeConstraintInternal: \"+b),a.trace&&a.traceprint(\"\"+this),this._fNeedsSolving=!0,this._resetStayConstants();var c=this.rows.get(this._objective),d=this._errorVars.get(b);a.trace&&a.traceprint(\"eVars == \"+d),null!=d&&d.each(function(e){var f=this.rows.get(e);null==f?c.addVariable(e,-b.weight*b.strength.symbolicWeight.value,this._objective,this):c.addExpression(f,-b.weight*b.strength.symbolicWeight.value,this._objective,this),a.trace&&a.traceprint(\"now eVars == \"+d)},this);var e=this._markerVars.get(b);if(this._markerVars.delete(b),null==e)throw new a.InternalError(\"Constraint not found in removeConstraintInternal\");if(a.trace&&a.traceprint(\"Looking to remove var \"+e),null==this.rows.get(e)){var f=this.columns.get(e);a.trace&&a.traceprint(\"Must pivot -- columns are \"+f);var g=null,h=0;f.each(function(b){if(b.isRestricted){var c=this.rows.get(b),d=c.coefficientFor(e);if(a.trace&&a.traceprint(\"Marker \"+e+\"'s coefficient in \"+c+\" is \"+d),0>d){var f=-c.constant/d;(null==g||h>f||a.approx(f,h)&&b.hashCoded)&&(h=d,g=a)}},this)),null==g&&(0==f.size?this.removeColumn(e):f.escapingEach(function(a){return a!=this._objective?(g=a,{brk:!0}):void 0},this)),null!=g&&this.pivot(e,g)}if(null!=this.rows.get(e)&&this.removeRow(e),null!=d&&d.each(function(a){a!=e&&this.removeColumn(a)},this),b.isStayConstraint){if(null!=d)for(var j=0;this._stayPlusErrorVars.length>j;j++)d.delete(this._stayPlusErrorVars[j]),d.delete(this._stayMinusErrorVars[j])}else if(b.isEditConstraint){a.assert(null!=d,\"eVars != null\");var k=this._editVarMap.get(b.variable);this.removeColumn(k.editMinus),this._editVarMap.delete(b.variable)}return null!=d&&this._errorVars.delete(d),this.autoSolve&&(this.optimize(this._objective),this._setExternalVariables()),this},reset:function(){throw a.trace&&a.fnenterprint(\"reset\"),new a.InternalError(\"reset not implemented\")},resolveArray:function(b){a.trace&&a.fnenterprint(\"resolveArray\"+b);var c=b.length;this._editVarMap.each(function(a,d){var e=d.index;c>e&&this.suggestValue(a,b[e])},this),this.resolve()},resolvePair:function(a,b){this.suggestValue(this._editVarList[0].v,a),this.suggestValue(this._editVarList[1].v,b),this.resolve()},resolve:function(){a.trace&&a.fnenterprint(\"resolve()\"),this.dualOptimize(),this._setExternalVariables(),this._infeasibleRows.clear(),this._resetStayConstants()},suggestValue:function(b,c){a.trace&&console.log(\"suggestValue(\"+b+\", \"+c+\")\");var d=this._editVarMap.get(b);if(!d)throw new a.Error(\"suggestValue for variable \"+b+\", but var is not an edit variable\");var e=c-d.prevEditConstant;return d.prevEditConstant=c,this.deltaEditConstant(e,d.editPlus,d.editMinus),this},solve:function(){return this._fNeedsSolving&&(this.optimize(this._objective),this._setExternalVariables()),this},setEditedValue:function(b,c){if(!this.columnsHasKey(b)&&null==this.rows.get(b))return b.value=c,this;if(!a.approx(c,b.value)){this.addEditVar(b),this.beginEdit();try{this.suggestValue(b,c)}catch(d){throw new a.InternalError(\"Error in setEditedValue\")}this.endEdit()}return this},addVar:function(b){if(!this.columnsHasKey(b)&&null==this.rows.get(b)){try{this.addStay(b)}catch(c){throw new a.InternalError(\"Error in addVar -- required failure is impossible\")}a.trace&&a.traceprint(\"added initial stay on \"+b)}return this},getInternalInfo:function(){var a=c.getInternalInfo.call(this);return a+=\"\\nSolver info:\\n\",a+=\"Stay Error Variables: \",a+=this._stayPlusErrorVars.length+this._stayMinusErrorVars.length,a+=\" (\"+this._stayPlusErrorVars.length+\" +, \",a+=this._stayMinusErrorVars.length+\" -)\\n\",a+=\"Edit Variables: \"+this._editVarMap.size,a+=\"\\n\"},getDebugInfo:function(){return\"\"+this+this.getInternalInfo()+\"\\n\"},toString:function(){var a=c.getInternalInfo.call(this);return a+=\"\\n_stayPlusErrorVars: \",a+=\"[\"+this._stayPlusErrorVars+\"]\",a+=\"\\n_stayMinusErrorVars: \",a+=\"[\"+this._stayMinusErrorVars+\"]\",a+=\"\\n\",a+=\"_editVarMap:\\n\"+this._editVarMap,a+=\"\\n\"},getConstraintMap:function(){return this._markerVars},addWithArtificialVariable:function(b){a.trace&&a.fnenterprint(\"addWithArtificialVariable: \"+b);var c=new a.SlackVariable({value:++this._artificialCounter,prefix:\"a\"}),d=new a.ObjectiveVariable({name:\"az\"}),e=b.clone();a.trace&&a.traceprint(\"before addRows:\\n\"+this),this.addRow(d,e),this.addRow(c,b),a.trace&&a.traceprint(\"after addRows:\\n\"+this),this.optimize(d);var f=this.rows.get(d);if(a.trace&&a.traceprint(\"azTableauRow.constant == \"+f.constant),!a.approx(f.constant,0))throw this.removeRow(d),this.removeColumn(c),new a.RequiredFailure;var g=this.rows.get(c);if(null!=g){if(g.isConstant)return this.removeRow(c),this.removeRow(d),void 0;var h=g.anyPivotableVariable();this.pivot(h,c)}a.assert(null==this.rows.get(c),\"rowExpression(av) == null\"),this.removeColumn(c),this.removeRow(d)},tryAddingDirectly:function(b){a.trace&&a.fnenterprint(\"tryAddingDirectly: \"+b);var c=this.chooseSubject(b);return null==c?(a.trace&&a.fnexitprint(\"returning false\"),!1):(b.newSubject(c),this.columnsHasKey(c)&&this.substituteOut(c,b),this.addRow(c,b),a.trace&&a.fnexitprint(\"returning true\"),!0)},chooseSubject:function(b){a.trace&&a.fnenterprint(\"chooseSubject: \"+b);var c=null,d=!1,e=!1,f=b.terms,g=f.escapingEach(function(a,b){if(d){if(!a.isRestricted&&!this.columnsHasKey(a))return{retval:a}}else if(a.isRestricted){if(!e&&!a.isDummy&&0>b){var f=this.columns.get(a);(null==f||1==f.size&&this.columnsHasKey(this._objective))&&(c=a,e=!0)}}else c=a,d=!0},this);if(g&&void 0!==g.retval)return g.retval;if(null!=c)return c;var h=0,g=f.escapingEach(function(a,b){return a.isDummy?(this.columnsHasKey(a)||(c=a,h=b),void 0):{retval:null}},this);if(g&&void 0!==g.retval)return g.retval;if(!a.approx(b.constant,0))throw new a.RequiredFailure;return h>0&&b.multiplyMe(-1),c},deltaEditConstant:function(b,c,d){a.trace&&a.fnenterprint(\"deltaEditConstant :\"+b+\", \"+c+\", \"+d);var e=this.rows.get(c);if(null!=e)return e.constant+=b,0>e.constant&&this._infeasibleRows.add(c),void 0;var f=this.rows.get(d);if(null!=f)return f.constant+=-b,0>f.constant&&this._infeasibleRows.add(d),void 0;var g=this.columns.get(d);g||console.log(\"columnVars is null -- tableau is:\\n\"+this),g.each(function(a){var c=this.rows.get(a),e=c.coefficientFor(d);c.constant+=e*b,a.isRestricted&&0>c.constant&&this._infeasibleRows.add(a)},this)},dualOptimize:function(){a.trace&&a.fnenterprint(\"dualOptimize:\");for(var b=this.rows.get(this._objective);this._infeasibleRows.size;){var c=this._infeasibleRows.values()[0];this._infeasibleRows.delete(c);var d=null,e=this.rows.get(c);if(e&&0>e.constant){var g,f=Number.MAX_VALUE,h=e.terms;if(h.each(function(c,e){if(e>0&&c.isPivotable){var h=b.coefficientFor(c);g=h/e,(f>g||a.approx(g,f)&&c.hashCodef.constant&&f.multiplyMe(-1),a.trace&&a.fnexitprint(\"returning \"+f),f},optimize:function(b){a.trace&&a.fnenterprint(\"optimize: \"+b),a.trace&&a.traceprint(\"\"+this),this._optimizeCount++;var c=this.rows.get(b);a.assert(null!=c,\"zRow != null\");for(var g,h,e=null,f=null;;){if(g=0,h=c.terms,h.escapingEach(function(a,b){return a.isPivotable&&g>b?(g=b,e=a,{brk:1}):void 0},this),g>=-d)return;a.trace&&console.log(\"entryVar:\",e,\"objectiveCoeff:\",g);var i=Number.MAX_VALUE,j=this.columns.get(e),k=0;if(j.each(function(b){if(a.trace&&a.traceprint(\"Checking \"+b),b.isPivotable){var c=this.rows.get(b),d=c.coefficientFor(e);a.trace&&a.traceprint(\"pivotable, coeff = \"+d),0>d&&(k=-c.constant/d,(i>k||a.approx(k,i)&&b.hashCodeb;b++){var c=this.rows.get(this._stayPlusErrorVars[b]);null==c&&(c=this.rows.get(this._stayMinusErrorVars[b])),null!=c&&(c.constant=0)}},_setExternalVariables:function(){a.trace&&a.fnenterprint(\"_setExternalVariables:\"),a.trace&&a.traceprint(\"\"+this),this._externalParametricVars.each(function(b){null!=this.rows.get(b)?a.trace&&console.log(\"Error: variable\"+b+\" in _externalParametricVars is basic\"):b.value=0},this),this._externalRows.each(function(a){var b=this.rows.get(a);a.value!=b.constant&&(a.value=b.constant)},this),this._fNeedsSolving=!1,this.onsolved()},onsolved:function(){},insertErrorVar:function(b,c){a.trace&&a.fnenterprint(\"insertErrorVar:\"+b+\", \"+c);var d=this._errorVars.get(c);d||(d=new a.HashSet,this._errorVars.set(b,d)),d.add(c)}})}(this.c||module.parent.exports||{}),function(a){\"use strict\";a.Timer=a.inherit({initialize:function(){this.isRunning=!1,this._elapsedMs=0},start:function(){return this.isRunning=!0,this._startReading=new Date,this},stop:function(){return this.isRunning=!1,this._elapsedMs+=new Date-this._startReading,this},reset:function(){return this.isRunning=!1,this._elapsedMs=0,this},elapsedTime:function(){return this.isRunning?(this._elapsedMs+(new Date-this._startReading))/1e3:this._elapsedMs/1e3}})}(this.c||module.parent.exports||{}),__cassowary_parser=function(){function a(a){return'\"'+a.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\x08/g,\"\\\\b\").replace(/\\t/g,\"\\\\t\").replace(/\\n/g,\"\\\\n\").replace(/\\f/g,\"\\\\f\").replace(/\\r/g,\"\\\\r\").replace(/[\\x00-\\x07\\x0B\\x0E-\\x1F\\x80-\\uFFFF]/g,escape)+'\"'}var b={parse:function(b,c){function k(a){g>e||(e>g&&(g=e,h=[]),h.push(a))}function l(){var a,b,c,d,f;if(d=e,f=e,a=z(),null!==a){if(c=m(),null!==c)for(b=[];null!==c;)b.push(c),c=m();else b=null;null!==b?(c=z(),null!==c?a=[a,b,c]:(a=null,e=f)):(a=null,e=f)}else a=null,e=f;return null!==a&&(a=function(a,b){return b}(d,a[1])),null===a&&(e=d),a}function m(){var a,b,c,d;return c=e,d=e,a=P(),null!==a?(b=s(),null!==b?a=[a,b]:(a=null,e=d)):(a=null,e=d),null!==a&&(a=function(a,b){return b}(c,a[0])),null===a&&(e=c),a}function n(){var a;return b.length>e?(a=b.charAt(e),e++):(a=null,0===f&&k(\"any character\")),a}function o(){var a;return/^[a-zA-Z]/.test(b.charAt(e))?(a=b.charAt(e),e++):(a=null,0===f&&k(\"[a-zA-Z]\")),null===a&&(36===b.charCodeAt(e)?(a=\"$\",e++):(a=null,0===f&&k('\"$\"')),null===a&&(95===b.charCodeAt(e)?(a=\"_\",e++):(a=null,0===f&&k('\"_\"')))),a}function p(){var a;return f++,/^[\\t\\x0B\\f \\xA0\\uFEFF]/.test(b.charAt(e))?(a=b.charAt(e),e++):(a=null,0===f&&k(\"[\\\\t\\\\x0B\\\\f \\\\xA0\\\\uFEFF]\")),f--,0===f&&null===a&&k(\"whitespace\"),a}function q(){var a;return/^[\\n\\r\\u2028\\u2029]/.test(b.charAt(e))?(a=b.charAt(e),e++):(a=null,0===f&&k(\"[\\\\n\\\\r\\\\u2028\\\\u2029]\")),a}function r(){var a;return f++,10===b.charCodeAt(e)?(a=\"\\n\",e++):(a=null,0===f&&k('\"\\\\n\"')),null===a&&(\"\\r\\n\"===b.substr(e,2)?(a=\"\\r\\n\",e+=2):(a=null,0===f&&k('\"\\\\r\\\\n\"')),null===a&&(13===b.charCodeAt(e)?(a=\"\\r\",e++):(a=null,0===f&&k('\"\\\\r\"')),null===a&&(8232===b.charCodeAt(e)?(a=\"\\u2028\",e++):(a=null,0===f&&k('\"\\\\u2028\"')),null===a&&(8233===b.charCodeAt(e)?(a=\"\\u2029\",e++):(a=null,0===f&&k('\"\\\\u2029\"')))))),f--,0===f&&null===a&&k(\"end of line\"),a}function s(){var a,c,d;return d=e,a=z(),null!==a?(59===b.charCodeAt(e)?(c=\";\",e++):(c=null,0===f&&k('\";\"')),null!==c?a=[a,c]:(a=null,e=d)):(a=null,e=d),null===a&&(d=e,a=y(),null!==a?(c=r(),null!==c?a=[a,c]:(a=null,e=d)):(a=null,e=d),null===a&&(d=e,a=z(),null!==a?(c=t(),null!==c?a=[a,c]:(a=null,e=d)):(a=null,e=d))),a}function t(){var a,c;return c=e,f++,b.length>e?(a=b.charAt(e),e++):(a=null,0===f&&k(\"any character\")),f--,null===a?a=\"\":(a=null,e=c),a}function u(){var a;return f++,a=v(),null===a&&(a=x()),f--,0===f&&null===a&&k(\"comment\"),a}function v(){var a,c,d,g,h,i,j;if(h=e,\"/*\"===b.substr(e,2)?(a=\"/*\",e+=2):(a=null,0===f&&k('\"/*\"')),null!==a){for(c=[],i=e,j=e,f++,\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==d;)c.push(d),i=e,j=e,f++,\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==c?(\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),null!==d?a=[a,c,d]:(a=null,e=h)):(a=null,e=h)}else a=null,e=h;return a}function w(){var a,c,d,g,h,i,j;if(h=e,\"/*\"===b.substr(e,2)?(a=\"/*\",e+=2):(a=null,0===f&&k('\"/*\"')),null!==a){for(c=[],i=e,j=e,f++,\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),null===d&&(d=q()),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==d;)c.push(d),i=e,j=e,f++,\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),null===d&&(d=q()),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==c?(\"*/\"===b.substr(e,2)?(d=\"*/\",e+=2):(d=null,0===f&&k('\"*/\"')),null!==d?a=[a,c,d]:(a=null,e=h)):(a=null,e=h)}else a=null,e=h;return a}function x(){var a,c,d,g,h,i,j;if(h=e,\"//\"===b.substr(e,2)?(a=\"//\",e+=2):(a=null,0===f&&k('\"//\"')),null!==a){for(c=[],i=e,j=e,f++,d=q(),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==d;)c.push(d),i=e,j=e,f++,d=q(),f--,null===d?d=\"\":(d=null,e=j),null!==d?(g=n(),null!==g?d=[d,g]:(d=null,e=i)):(d=null,e=i);null!==c?a=[a,c]:(a=null,e=h)}else a=null,e=h;return a}function y(){var a,b;for(a=[],b=p(),null===b&&(b=w(),null===b&&(b=x()));null!==b;)a.push(b),b=p(),null===b&&(b=w(),null===b&&(b=x()));return a}function z(){var a,b;for(a=[],b=p(),null===b&&(b=r(),null===b&&(b=u()));null!==b;)a.push(b),b=p(),null===b&&(b=r(),null===b&&(b=u()));return a}function A(){var a,b;return b=e,a=C(),null===a&&(a=B()),null!==a&&(a=function(a,b){return{type:\"NumericLiteral\",value:b}}(b,a)),null===a&&(e=b),a}function B(){var a,c,d;if(d=e,/^[0-9]/.test(b.charAt(e))?(c=b.charAt(e),e++):(c=null,0===f&&k(\"[0-9]\")),null!==c)for(a=[];null!==c;)a.push(c),/^[0-9]/.test(b.charAt(e))?(c=b.charAt(e),e++):(c=null,0===f&&k(\"[0-9]\"));else a=null;return null!==a&&(a=function(a,b){return parseInt(b.join(\"\"))}(d,a)),null===a&&(e=d),a}function C(){var a,c,d,g,h;return g=e,h=e,a=B(),null!==a?(46===b.charCodeAt(e)?(c=\".\",e++):(c=null,0===f&&k('\".\"')),null!==c?(d=B(),null!==d?a=[a,c,d]:(a=null,e=h)):(a=null,e=h)):(a=null,e=h),null!==a&&(a=function(a,b){return parseFloat(b.join(\"\"))}(g,a)),null===a&&(e=g),a}function D(){var a,c,d,g;if(g=e,/^[\\-+]/.test(b.charAt(e))?(a=b.charAt(e),e++):(a=null,0===f&&k(\"[\\\\-+]\")),a=null!==a?a:\"\",null!==a){if(/^[0-9]/.test(b.charAt(e))?(d=b.charAt(e),e++):(d=null,0===f&&k(\"[0-9]\")),null!==d)for(c=[];null!==d;)c.push(d),/^[0-9]/.test(b.charAt(e))?(d=b.charAt(e),e++):(d=null,0===f&&k(\"[0-9]\"));else c=null;null!==c?a=[a,c]:(a=null,e=g)}else a=null,e=g;return a}function E(){var a,b;return f++,b=e,a=F(),null!==a&&(a=function(a,b){return b}(b,a)),null===a&&(e=b),f--,0===f&&null===a&&k(\"identifier\"),a}function F(){var a,b,c,d,g;if(f++,d=e,g=e,a=o(),null!==a){for(b=[],c=o();null!==c;)b.push(c),c=o();null!==b?a=[a,b]:(a=null,e=g)}else a=null,e=g;return null!==a&&(a=function(a,b,c){return b+c.join(\"\")}(d,a[0],a[1])),null===a&&(e=d),f--,0===f&&null===a&&k(\"identifier\"),a}function G(){var a,c,d,g,h,i,j;return i=e,a=E(),null!==a&&(a=function(a,b){return{type:\"Variable\",name:b}}(i,a)),null===a&&(e=i),null===a&&(a=A(),null===a&&(i=e,j=e,40===b.charCodeAt(e)?(a=\"(\",e++):(a=null,0===f&&k('\"(\"')),null!==a?(c=z(),null!==c?(d=P(),null!==d?(g=z(),null!==g?(41===b.charCodeAt(e)?(h=\")\",e++):(h=null,0===f&&k('\")\"')),null!==h?a=[a,c,d,g,h]:(a=null,e=j)):(a=null,e=j)):(a=null,e=j)):(a=null,e=j)):(a=null,e=j),null!==a&&(a=function(a,b){return b}(i,a[2])),null===a&&(e=i))),a}function H(){var a,b,c,d,f;return a=G(),null===a&&(d=e,f=e,a=I(),null!==a?(b=z(),null!==b?(c=H(),null!==c?a=[a,b,c]:(a=null,e=f)):(a=null,e=f)):(a=null,e=f),null!==a&&(a=function(a,b,c){return{type:\"UnaryExpression\",operator:b,expression:c}}(d,a[0],a[2])),null===a&&(e=d)),a}function I(){var a;return 43===b.charCodeAt(e)?(a=\"+\",e++):(a=null,0===f&&k('\"+\"')),null===a&&(45===b.charCodeAt(e)?(a=\"-\",e++):(a=null,0===f&&k('\"-\"')),null===a&&(33===b.charCodeAt(e)?(a=\"!\",e++):(a=null,0===f&&k('\"!\"')))),a}function J(){var a,b,c,d,f,g,h,i,j;if(h=e,i=e,a=H(),null!==a){for(b=[],j=e,c=z(),null!==c?(d=K(),null!==d?(f=z(),null!==f?(g=H(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==c;)b.push(c),j=e,c=z(),null!==c?(d=K(),null!==d?(f=z(),null!==f?(g=H(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==b?a=[a,b]:(a=null,e=i)}else a=null,e=i;return null!==a&&(a=function(a,b,c){for(var d=b,e=0;c.length>e;e++)d={type:\"MultiplicativeExpression\",operator:c[e][1],left:d,right:c[e][3]};return d}(h,a[0],a[1])),null===a&&(e=h),a}function K(){var a;return 42===b.charCodeAt(e)?(a=\"*\",e++):(a=null,0===f&&k('\"*\"')),null===a&&(47===b.charCodeAt(e)?(a=\"/\",e++):(a=null,0===f&&k('\"/\"'))),a}function L(){var a,b,c,d,f,g,h,i,j;if(h=e,i=e,a=J(),null!==a){for(b=[],j=e,c=z(),null!==c?(d=M(),null!==d?(f=z(),null!==f?(g=J(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==c;)b.push(c),j=e,c=z(),null!==c?(d=M(),null!==d?(f=z(),null!==f?(g=J(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==b?a=[a,b]:(a=null,e=i)}else a=null,e=i;return null!==a&&(a=function(a,b,c){for(var d=b,e=0;c.length>e;e++)d={type:\"AdditiveExpression\",operator:c[e][1],left:d,right:c[e][3]};return d}(h,a[0],a[1])),null===a&&(e=h),a}function M(){var a;return 43===b.charCodeAt(e)?(a=\"+\",e++):(a=null,0===f&&k('\"+\"')),null===a&&(45===b.charCodeAt(e)?(a=\"-\",e++):(a=null,0===f&&k('\"-\"'))),a}function N(){var a,b,c,d,f,g,h,i,j;if(h=e,i=e,a=L(),null!==a){for(b=[],j=e,c=z(),null!==c?(d=O(),null!==d?(f=z(),null!==f?(g=L(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==c;)b.push(c),j=e,c=z(),null!==c?(d=O(),null!==d?(f=z(),null!==f?(g=L(),null!==g?c=[c,d,f,g]:(c=null,e=j)):(c=null,e=j)):(c=null,e=j)):(c=null,e=j);null!==b?a=[a,b]:(a=null,e=i)}else a=null,e=i;return null!==a&&(a=function(a,b,c){for(var d=b,e=0;c.length>e;e++)d={type:\"Inequality\",operator:c[e][1],left:d,right:c[e][3]};return d}(h,a[0],a[1])),null===a&&(e=h),a}function O(){var a;return\"<=\"===b.substr(e,2)?(a=\"<=\",e+=2):(a=null,0===f&&k('\"<=\"')),null===a&&(\">=\"===b.substr(e,2)?(a=\">=\",e+=2):(a=null,0===f&&k('\">=\"')),null===a&&(60===b.charCodeAt(e)?(a=\"<\",e++):(a=null,0===f&&k('\"<\"')),null===a&&(62===b.charCodeAt(e)?(a=\">\",e++):(a=null,0===f&&k('\">\"'))))),a}function P(){var a,c,d,g,h,i,j,l,m;if(j=e,l=e,a=N(),null!==a){for(c=[],m=e,d=z(),null!==d?(\"==\"===b.substr(e,2)?(g=\"==\",e+=2):(g=null,0===f&&k('\"==\"')),null!==g?(h=z(),null!==h?(i=N(),null!==i?d=[d,g,h,i]:(d=null,e=m)):(d=null,e=m)):(d=null,e=m)):(d=null,e=m);null!==d;)c.push(d),m=e,d=z(),null!==d?(\"==\"===b.substr(e,2)?(g=\"==\",e+=2):(g=null,0===f&&k('\"==\"')),null!==g?(h=z(),null!==h?(i=N(),null!==i?d=[d,g,h,i]:(d=null,e=m)):(d=null,e=m)):(d=null,e=m)):(d=null,e=m);null!==c?a=[a,c]:(a=null,e=l)}else a=null,e=l;return null!==a&&(a=function(a,b,c){for(var d=b,e=0;c.length>e;e++)d={type:\"Equality\",operator:c[e][1],left:d,right:c[e][3]};return d}(j,a[0],a[1])),null===a&&(e=j),a}function Q(a){a.sort();for(var b=null,c=[],d=0;a.length>d;d++)a[d]!==b&&(c.push(a[d]),b=a[d]);return c}function R(){for(var a=1,c=1,d=!1,f=0;Math.max(e,g)>f;f++){var h=b.charAt(f);\"\\n\"===h?(d||a++,c=1,d=!1):\"\\r\"===h||\"\\u2028\"===h||\"\\u2029\"===h?(a++,c=1,d=!0):(c++,d=!1)}return{line:a,column:c}}var d={start:l,Statement:m,SourceCharacter:n,IdentifierStart:o,WhiteSpace:p,LineTerminator:q,LineTerminatorSequence:r,EOS:s,EOF:t,Comment:u,MultiLineComment:v,MultiLineCommentNoLineTerminator:w,SingleLineComment:x,_:y,__:z,Literal:A,Integer:B,Real:C,SignedInteger:D,Identifier:E,IdentifierName:F,PrimaryExpression:G,UnaryExpression:H,UnaryOperator:I,MultiplicativeExpression:J,MultiplicativeOperator:K,AdditiveExpression:L,AdditiveOperator:M,InequalityExpression:N,InequalityOperator:O,LinearExpression:P};if(void 0!==c){if(void 0===d[c])throw Error(\"Invalid rule name: \"+a(c)+\".\")}else c=\"start\";var e=0,f=0,g=0,h=[],S=d[c]();if(null===S||e!==b.length){var T=Math.max(e,g),U=b.length>T?b.charAt(T):null,V=R();throw new this.SyntaxError(Q(h),U,T,V.line,V.column)}return S},toSource:function(){return this._source}};return b.SyntaxError=function(b,c,d,e,f){function g(b,c){var d,e;switch(b.length){case 0:d=\"end of input\";break;case 1:d=b[0];break;default:d=b.slice(0,b.length-1).join(\", \")+\" or \"+b[b.length-1]}return e=c?a(c):\"end of input\",\"Expected \"+d+\" but \"+e+\" found.\"}this.name=\"SyntaxError\",this.expected=b,this.found=c,this.message=g(b,c),this.offset=d,this.line=e,this.column=f},b.SyntaxError.prototype=Error.prototype,b}();\n}).call(\n (typeof module != \"undefined\") ?\n (module.compiled = true && module) : this\n);\n"]} \ No newline at end of file