jssm 5.142.2 → 5.142.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cdn/viz.js CHANGED
@@ -453,11 +453,11 @@ function peg$parse(input, options) {
453
453
  return { config_kind: "action", config_items: action_items || [] };
454
454
  }, peg$c1359 = function (key, value) { return { key, value }; }, peg$c1360 = peg$otherExpectation("graph default edge color"), peg$c1361 = function (value) { return { key: 'graph_default_edge_color', value }; }, peg$c1362 = "transition", peg$c1363 = peg$literalExpectation("transition", false), peg$c1364 = function (transition_items) {
455
455
  return { config_kind: "transition", config_items: transition_items || [] };
456
- }, peg$c1365 = "graph_layout", peg$c1366 = peg$literalExpectation("graph_layout", false), peg$c1367 = function (value) { return { key: "graph_layout", value: value }; }, peg$c1368 = "start_states", peg$c1369 = peg$literalExpectation("start_states", false), peg$c1370 = function (value) { return { key: "start_states", value: value }; }, peg$c1371 = "end_states", peg$c1372 = peg$literalExpectation("end_states", false), peg$c1373 = function (value) { return { key: "end_states", value: value }; }, peg$c1374 = "failed_outputs", peg$c1375 = peg$literalExpectation("failed_outputs", false), peg$c1376 = function (value) { return { key: "failed_outputs", value: typeof value === 'string' ? [value] : value }; }, peg$c1377 = "graph_bg_color", peg$c1378 = peg$literalExpectation("graph_bg_color", false), peg$c1379 = function (value) { return { key: "graph_bg_color", value: value }; }, peg$c1380 = "allows_override", peg$c1381 = peg$literalExpectation("allows_override", false), peg$c1382 = function (value) { return { key: "allows_override", value: value }; }, peg$c1383 = function () { return true; }, peg$c1384 = function () { return false; }, peg$c1385 = peg$otherExpectation("configuration"), peg$c1386 = "MIT", peg$c1387 = peg$literalExpectation("MIT", false), peg$c1388 = "BSD 2-clause", peg$c1389 = peg$literalExpectation("BSD 2-clause", false), peg$c1390 = "BSD 3-clause", peg$c1391 = peg$literalExpectation("BSD 3-clause", false), peg$c1392 = "Apache 2.0", peg$c1393 = peg$literalExpectation("Apache 2.0", false), peg$c1394 = "Mozilla 2.0", peg$c1395 = peg$literalExpectation("Mozilla 2.0", false), peg$c1396 = "Public domain", peg$c1397 = peg$literalExpectation("Public domain", false), peg$c1398 = "GPL v2", peg$c1399 = peg$literalExpectation("GPL v2", false), peg$c1400 = "GPL v3", peg$c1401 = peg$literalExpectation("GPL v3", false), peg$c1402 = "LGPL v2.1", peg$c1403 = peg$literalExpectation("LGPL v2.1", false), peg$c1404 = "LGPL v3.0", peg$c1405 = peg$literalExpectation("LGPL v3.0", false), peg$c1406 = "Unknown", peg$c1407 = peg$literalExpectation("Unknown", false), peg$c1408 = peg$otherExpectation("direction"), peg$c1409 = "up", peg$c1410 = peg$literalExpectation("up", false), peg$c1411 = "right", peg$c1412 = peg$literalExpectation("right", false), peg$c1413 = "down", peg$c1414 = peg$literalExpectation("down", false), peg$c1415 = "left", peg$c1416 = peg$literalExpectation("left", false), peg$c1417 = peg$otherExpectation("hook definition (open/closed)"), peg$c1418 = "open", peg$c1419 = peg$literalExpectation("open", false), peg$c1420 = "closed", peg$c1421 = peg$literalExpectation("closed", false), peg$c1422 = "machine_author", peg$c1423 = peg$literalExpectation("machine_author", false), peg$c1424 = function (value) { return { key: "machine_author", value }; }, peg$c1425 = "machine_contributor", peg$c1426 = peg$literalExpectation("machine_contributor", false), peg$c1427 = function (value) { return { key: "machine_contributor", value }; }, peg$c1428 = "machine_comment", peg$c1429 = peg$literalExpectation("machine_comment", false), peg$c1430 = function (value) { return { key: "machine_comment", value }; }, peg$c1431 = "machine_definition", peg$c1432 = peg$literalExpectation("machine_definition", false), peg$c1433 = function (value) { return { key: "machine_definition", value }; }, peg$c1434 = "machine_name", peg$c1435 = peg$literalExpectation("machine_name", false), peg$c1436 = function (value) { return { key: "machine_name", value }; }, peg$c1437 = "npm_name", peg$c1438 = peg$literalExpectation("npm_name", false), peg$c1439 = function (value) { return { key: "npm_name", value }; }, peg$c1440 = "machine_reference", peg$c1441 = peg$literalExpectation("machine_reference", false), peg$c1442 = function (value) { return { key: "machine_reference", value }; }, peg$c1443 = "machine_version", peg$c1444 = peg$literalExpectation("machine_version", false), peg$c1445 = function (value) { return { key: "machine_version", value }; }, peg$c1446 = "machine_license", peg$c1447 = peg$literalExpectation("machine_license", false), peg$c1448 = function (value) { return { key: "machine_license", value }; }, peg$c1449 = "machine_language", peg$c1450 = peg$literalExpectation("machine_language", false), peg$c1451 = function (value) { return { key: "machine_language", value }; }, peg$c1452 = "fsl_version", peg$c1453 = peg$literalExpectation("fsl_version", false), peg$c1454 = function (value) { return { key: "fsl_version", value }; }, peg$c1455 = "theme", peg$c1456 = peg$literalExpectation("theme", false), peg$c1457 = function (value) { return { key: "theme", value }; }, peg$c1458 = "flow", peg$c1459 = peg$literalExpectation("flow", false), peg$c1460 = function (value) { return { key: "flow", value }; }, peg$c1461 = "hooks", peg$c1462 = peg$literalExpectation("hooks", false), peg$c1463 = function (value) { return { key: "hook_definition", value }; }, peg$c1464 = "dot_preamble", peg$c1465 = peg$literalExpectation("dot_preamble", false), peg$c1466 = function (value) { return { key: "dot_preamble", value }; }, peg$c1467 = peg$otherExpectation("machine attribute"), peg$c1468 = "label", peg$c1469 = peg$literalExpectation("label", false), peg$c1470 = function (value) { return { key: 'state-label', value }; }, peg$c1471 = "color", peg$c1472 = peg$literalExpectation("color", false), peg$c1473 = function (value) { return { key: 'color', value }; }, peg$c1474 = peg$otherExpectation("text color"), peg$c1475 = "text-color", peg$c1476 = peg$literalExpectation("text-color", false), peg$c1477 = function (value) { return { key: 'text-color', value }; }, peg$c1478 = peg$otherExpectation("background color"), peg$c1479 = "background-color", peg$c1480 = peg$literalExpectation("background-color", false), peg$c1481 = function (value) { return { key: 'background-color', value }; }, peg$c1482 = peg$otherExpectation("border color"), peg$c1483 = "border-color", peg$c1484 = peg$literalExpectation("border-color", false), peg$c1485 = function (value) { return { key: 'border-color', value }; }, peg$c1486 = peg$otherExpectation("shape"), peg$c1487 = "shape", peg$c1488 = peg$literalExpectation("shape", false), peg$c1489 = function (value) { return { key: 'shape', value }; }, peg$c1490 = peg$otherExpectation("corners"), peg$c1491 = "corners", peg$c1492 = peg$literalExpectation("corners", false), peg$c1493 = function (value) { return { key: 'corners', value }; }, peg$c1494 = peg$otherExpectation("linestyle"), peg$c1495 = function (value) { return { key: 'line-style', value }; }, peg$c1496 = "linestyle", peg$c1497 = peg$literalExpectation("linestyle", false), peg$c1498 = peg$otherExpectation("image"), peg$c1499 = "image", peg$c1500 = peg$literalExpectation("image", false), peg$c1501 = function (value) { return { key: 'image', value }; }, peg$c1502 = peg$otherExpectation("url"), peg$c1503 = "url", peg$c1504 = peg$literalExpectation("url", false), peg$c1505 = function (value) { return { key: 'url', value }; }, peg$c1506 = peg$otherExpectation("state property"), peg$c1507 = "property", peg$c1508 = peg$literalExpectation("property", false), peg$c1509 = function (name, value) {
456
+ }, peg$c1365 = "graph_layout", peg$c1366 = peg$literalExpectation("graph_layout", false), peg$c1367 = function (value) { return { key: "graph_layout", value: value }; }, peg$c1368 = "start_states", peg$c1369 = peg$literalExpectation("start_states", false), peg$c1370 = function (value) { return { key: "start_states", value: value }; }, peg$c1371 = "end_states", peg$c1372 = peg$literalExpectation("end_states", false), peg$c1373 = function (value) { return { key: "end_states", value: value }; }, peg$c1374 = "failed_outputs", peg$c1375 = peg$literalExpectation("failed_outputs", false), peg$c1376 = function (value) { return { key: "failed_outputs", value: typeof value === 'string' ? [value] : value }; }, peg$c1377 = "graph_bg_color", peg$c1378 = peg$literalExpectation("graph_bg_color", false), peg$c1379 = function (value) { return { key: "graph_bg_color", value: value }; }, peg$c1380 = "allows_override", peg$c1381 = peg$literalExpectation("allows_override", false), peg$c1382 = function (value) { return { key: "allows_override", value: value }; }, peg$c1383 = "allow_islands", peg$c1384 = peg$literalExpectation("allow_islands", false), peg$c1385 = function (value) { return { key: "allow_islands", value: value }; }, peg$c1386 = function () { return true; }, peg$c1387 = function () { return false; }, peg$c1388 = "with_start", peg$c1389 = peg$literalExpectation("with_start", false), peg$c1390 = function () { return 'with_start'; }, peg$c1391 = function () { return true; }, peg$c1392 = function () { return false; }, peg$c1393 = peg$otherExpectation("configuration"), peg$c1394 = "MIT", peg$c1395 = peg$literalExpectation("MIT", false), peg$c1396 = "BSD 2-clause", peg$c1397 = peg$literalExpectation("BSD 2-clause", false), peg$c1398 = "BSD 3-clause", peg$c1399 = peg$literalExpectation("BSD 3-clause", false), peg$c1400 = "Apache 2.0", peg$c1401 = peg$literalExpectation("Apache 2.0", false), peg$c1402 = "Mozilla 2.0", peg$c1403 = peg$literalExpectation("Mozilla 2.0", false), peg$c1404 = "Public domain", peg$c1405 = peg$literalExpectation("Public domain", false), peg$c1406 = "GPL v2", peg$c1407 = peg$literalExpectation("GPL v2", false), peg$c1408 = "GPL v3", peg$c1409 = peg$literalExpectation("GPL v3", false), peg$c1410 = "LGPL v2.1", peg$c1411 = peg$literalExpectation("LGPL v2.1", false), peg$c1412 = "LGPL v3.0", peg$c1413 = peg$literalExpectation("LGPL v3.0", false), peg$c1414 = "Unknown", peg$c1415 = peg$literalExpectation("Unknown", false), peg$c1416 = peg$otherExpectation("direction"), peg$c1417 = "up", peg$c1418 = peg$literalExpectation("up", false), peg$c1419 = "right", peg$c1420 = peg$literalExpectation("right", false), peg$c1421 = "down", peg$c1422 = peg$literalExpectation("down", false), peg$c1423 = "left", peg$c1424 = peg$literalExpectation("left", false), peg$c1425 = peg$otherExpectation("hook definition (open/closed)"), peg$c1426 = "open", peg$c1427 = peg$literalExpectation("open", false), peg$c1428 = "closed", peg$c1429 = peg$literalExpectation("closed", false), peg$c1430 = "machine_author", peg$c1431 = peg$literalExpectation("machine_author", false), peg$c1432 = function (value) { return { key: "machine_author", value }; }, peg$c1433 = "machine_contributor", peg$c1434 = peg$literalExpectation("machine_contributor", false), peg$c1435 = function (value) { return { key: "machine_contributor", value }; }, peg$c1436 = "machine_comment", peg$c1437 = peg$literalExpectation("machine_comment", false), peg$c1438 = function (value) { return { key: "machine_comment", value }; }, peg$c1439 = "machine_definition", peg$c1440 = peg$literalExpectation("machine_definition", false), peg$c1441 = function (value) { return { key: "machine_definition", value }; }, peg$c1442 = "machine_name", peg$c1443 = peg$literalExpectation("machine_name", false), peg$c1444 = function (value) { return { key: "machine_name", value }; }, peg$c1445 = "npm_name", peg$c1446 = peg$literalExpectation("npm_name", false), peg$c1447 = function (value) { return { key: "npm_name", value }; }, peg$c1448 = "machine_reference", peg$c1449 = peg$literalExpectation("machine_reference", false), peg$c1450 = function (value) { return { key: "machine_reference", value }; }, peg$c1451 = "machine_version", peg$c1452 = peg$literalExpectation("machine_version", false), peg$c1453 = function (value) { return { key: "machine_version", value }; }, peg$c1454 = "machine_license", peg$c1455 = peg$literalExpectation("machine_license", false), peg$c1456 = function (value) { return { key: "machine_license", value }; }, peg$c1457 = "machine_language", peg$c1458 = peg$literalExpectation("machine_language", false), peg$c1459 = function (value) { return { key: "machine_language", value }; }, peg$c1460 = "fsl_version", peg$c1461 = peg$literalExpectation("fsl_version", false), peg$c1462 = function (value) { return { key: "fsl_version", value }; }, peg$c1463 = "theme", peg$c1464 = peg$literalExpectation("theme", false), peg$c1465 = function (value) { return { key: "theme", value }; }, peg$c1466 = "flow", peg$c1467 = peg$literalExpectation("flow", false), peg$c1468 = function (value) { return { key: "flow", value }; }, peg$c1469 = "hooks", peg$c1470 = peg$literalExpectation("hooks", false), peg$c1471 = function (value) { return { key: "hook_definition", value }; }, peg$c1472 = "dot_preamble", peg$c1473 = peg$literalExpectation("dot_preamble", false), peg$c1474 = function (value) { return { key: "dot_preamble", value }; }, peg$c1475 = "height", peg$c1476 = peg$literalExpectation("height", false), peg$c1477 = function (n) { return { height: n }; }, peg$c1478 = function (w, h) { return { width: w, height: h }; }, peg$c1479 = function (w) { return { width: w }; }, peg$c1480 = "default_size", peg$c1481 = peg$literalExpectation("default_size", false), peg$c1482 = function (value) { return { key: "default_size", value }; }, peg$c1483 = peg$otherExpectation("machine attribute"), peg$c1484 = "label", peg$c1485 = peg$literalExpectation("label", false), peg$c1486 = function (value) { return { key: 'state-label', value }; }, peg$c1487 = "color", peg$c1488 = peg$literalExpectation("color", false), peg$c1489 = function (value) { return { key: 'color', value }; }, peg$c1490 = peg$otherExpectation("text color"), peg$c1491 = "text-color", peg$c1492 = peg$literalExpectation("text-color", false), peg$c1493 = function (value) { return { key: 'text-color', value }; }, peg$c1494 = peg$otherExpectation("background color"), peg$c1495 = "background-color", peg$c1496 = peg$literalExpectation("background-color", false), peg$c1497 = function (value) { return { key: 'background-color', value }; }, peg$c1498 = peg$otherExpectation("border color"), peg$c1499 = "border-color", peg$c1500 = peg$literalExpectation("border-color", false), peg$c1501 = function (value) { return { key: 'border-color', value }; }, peg$c1502 = peg$otherExpectation("shape"), peg$c1503 = "shape", peg$c1504 = peg$literalExpectation("shape", false), peg$c1505 = function (value) { return { key: 'shape', value }; }, peg$c1506 = peg$otherExpectation("corners"), peg$c1507 = "corners", peg$c1508 = peg$literalExpectation("corners", false), peg$c1509 = function (value) { return { key: 'corners', value }; }, peg$c1510 = peg$otherExpectation("linestyle"), peg$c1511 = function (value) { return { key: 'line-style', value }; }, peg$c1512 = "linestyle", peg$c1513 = peg$literalExpectation("linestyle", false), peg$c1514 = peg$otherExpectation("image"), peg$c1515 = "image", peg$c1516 = peg$literalExpectation("image", false), peg$c1517 = function (value) { return { key: 'image', value }; }, peg$c1518 = peg$otherExpectation("url"), peg$c1519 = "url", peg$c1520 = peg$literalExpectation("url", false), peg$c1521 = function (value) { return { key: 'url', value }; }, peg$c1522 = peg$otherExpectation("state property"), peg$c1523 = "property", peg$c1524 = peg$literalExpectation("property", false), peg$c1525 = function (name, value) {
457
457
  return { key: 'state_property', name, value };
458
- }, peg$c1510 = "required", peg$c1511 = peg$literalExpectation("required", false), peg$c1512 = function (name, value) {
458
+ }, peg$c1526 = "required", peg$c1527 = peg$literalExpectation("required", false), peg$c1528 = function (name, value) {
459
459
  return { key: 'state_property', name, value, required: true };
460
- }, peg$c1513 = function (name, value) { return { key: 'state_declaration', name, value }; }, peg$c1514 = "&", peg$c1515 = peg$literalExpectation("&", false), peg$c1516 = function (name, value) { return { key: 'named_list', name, value }; }, peg$c1517 = function (name, default_value) { return { key: 'property_definition', name, default_value, required: true }; }, peg$c1518 = function (name) { return { key: 'property_definition', name, required: true }; }, peg$c1519 = function (name, default_value) { return { key: 'property_definition', name, default_value }; }, peg$c1520 = function (name) { return { key: 'property_definition', name }; }, peg$c1521 = "arrange", peg$c1522 = peg$literalExpectation("arrange", false), peg$c1523 = function (value) { return { key: 'arrange_declaration', value }; }, peg$c1524 = "arrange-start", peg$c1525 = peg$literalExpectation("arrange-start", false), peg$c1526 = function (value) { return { key: 'arrange_start_declaration', value }; }, peg$c1527 = "arrange-end", peg$c1528 = peg$literalExpectation("arrange-end", false), peg$c1529 = function (value) { return { key: 'arrange_end_declaration', value }; }, peg$c1530 = peg$otherExpectation("arrange declaration"), peg$currPos = 0, peg$savedPos = 0, peg$posDetailsCache = [{ line: 1, column: 1 }], peg$maxFailPos = 0, peg$maxFailExpected = [], peg$silentFails = 0, peg$result;
460
+ }, peg$c1529 = function (name, value) { return { key: 'state_declaration', name, value }; }, peg$c1530 = "&", peg$c1531 = peg$literalExpectation("&", false), peg$c1532 = function (name, value) { return { key: 'named_list', name, value }; }, peg$c1533 = function (name, default_value) { return { key: 'property_definition', name, default_value, required: true }; }, peg$c1534 = function (name) { return { key: 'property_definition', name, required: true }; }, peg$c1535 = function (name, default_value) { return { key: 'property_definition', name, default_value }; }, peg$c1536 = function (name) { return { key: 'property_definition', name }; }, peg$c1537 = "arrange", peg$c1538 = peg$literalExpectation("arrange", false), peg$c1539 = function (value) { return { key: 'arrange_declaration', value }; }, peg$c1540 = "arrange-start", peg$c1541 = peg$literalExpectation("arrange-start", false), peg$c1542 = function (value) { return { key: 'arrange_start_declaration', value }; }, peg$c1543 = "arrange-end", peg$c1544 = peg$literalExpectation("arrange-end", false), peg$c1545 = function (value) { return { key: 'arrange_end_declaration', value }; }, peg$c1546 = peg$otherExpectation("arrange declaration"), peg$currPos = 0, peg$savedPos = 0, peg$posDetailsCache = [{ line: 1, column: 1 }], peg$maxFailPos = 0, peg$maxFailExpected = [], peg$silentFails = 0, peg$result;
461
461
  if ("startRule" in options) {
462
462
  if (!(options.startRule in peg$startRuleFunctions)) {
463
463
  throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
@@ -14985,6 +14985,119 @@ function peg$parse(input, options) {
14985
14985
  }
14986
14986
  return s0;
14987
14987
  }
14988
+ function peg$parseConfigAllowIslands() {
14989
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
14990
+ s0 = peg$currPos;
14991
+ s1 = peg$parseWS();
14992
+ if (s1 === peg$FAILED) {
14993
+ s1 = null;
14994
+ }
14995
+ if (s1 !== peg$FAILED) {
14996
+ if (input.substr(peg$currPos, 13) === peg$c1383) {
14997
+ s2 = peg$c1383;
14998
+ peg$currPos += 13;
14999
+ }
15000
+ else {
15001
+ s2 = peg$FAILED;
15002
+ if (peg$silentFails === 0) {
15003
+ peg$fail(peg$c1384);
15004
+ }
15005
+ }
15006
+ if (s2 !== peg$FAILED) {
15007
+ s3 = peg$parseWS();
15008
+ if (s3 === peg$FAILED) {
15009
+ s3 = null;
15010
+ }
15011
+ if (s3 !== peg$FAILED) {
15012
+ if (input.charCodeAt(peg$currPos) === 58) {
15013
+ s4 = peg$c1206;
15014
+ peg$currPos++;
15015
+ }
15016
+ else {
15017
+ s4 = peg$FAILED;
15018
+ if (peg$silentFails === 0) {
15019
+ peg$fail(peg$c1207);
15020
+ }
15021
+ }
15022
+ if (s4 !== peg$FAILED) {
15023
+ s5 = peg$parseWS();
15024
+ if (s5 === peg$FAILED) {
15025
+ s5 = null;
15026
+ }
15027
+ if (s5 !== peg$FAILED) {
15028
+ s6 = peg$parseIslandsT();
15029
+ if (s6 !== peg$FAILED) {
15030
+ s7 = peg$parseWS();
15031
+ if (s7 === peg$FAILED) {
15032
+ s7 = null;
15033
+ }
15034
+ if (s7 !== peg$FAILED) {
15035
+ if (input.charCodeAt(peg$currPos) === 59) {
15036
+ s8 = peg$c1208;
15037
+ peg$currPos++;
15038
+ }
15039
+ else {
15040
+ s8 = peg$FAILED;
15041
+ if (peg$silentFails === 0) {
15042
+ peg$fail(peg$c1209);
15043
+ }
15044
+ }
15045
+ if (s8 !== peg$FAILED) {
15046
+ s9 = peg$parseWS();
15047
+ if (s9 === peg$FAILED) {
15048
+ s9 = null;
15049
+ }
15050
+ if (s9 !== peg$FAILED) {
15051
+ peg$savedPos = s0;
15052
+ s1 = peg$c1385(s6);
15053
+ s0 = s1;
15054
+ }
15055
+ else {
15056
+ peg$currPos = s0;
15057
+ s0 = peg$FAILED;
15058
+ }
15059
+ }
15060
+ else {
15061
+ peg$currPos = s0;
15062
+ s0 = peg$FAILED;
15063
+ }
15064
+ }
15065
+ else {
15066
+ peg$currPos = s0;
15067
+ s0 = peg$FAILED;
15068
+ }
15069
+ }
15070
+ else {
15071
+ peg$currPos = s0;
15072
+ s0 = peg$FAILED;
15073
+ }
15074
+ }
15075
+ else {
15076
+ peg$currPos = s0;
15077
+ s0 = peg$FAILED;
15078
+ }
15079
+ }
15080
+ else {
15081
+ peg$currPos = s0;
15082
+ s0 = peg$FAILED;
15083
+ }
15084
+ }
15085
+ else {
15086
+ peg$currPos = s0;
15087
+ s0 = peg$FAILED;
15088
+ }
15089
+ }
15090
+ else {
15091
+ peg$currPos = s0;
15092
+ s0 = peg$FAILED;
15093
+ }
15094
+ }
15095
+ else {
15096
+ peg$currPos = s0;
15097
+ s0 = peg$FAILED;
15098
+ }
15099
+ return s0;
15100
+ }
14988
15101
  function peg$parseOverrideT() {
14989
15102
  var s0, s1;
14990
15103
  s0 = peg$currPos;
@@ -15000,7 +15113,7 @@ function peg$parse(input, options) {
15000
15113
  }
15001
15114
  if (s1 !== peg$FAILED) {
15002
15115
  peg$savedPos = s0;
15003
- s1 = peg$c1383();
15116
+ s1 = peg$c1386();
15004
15117
  }
15005
15118
  s0 = s1;
15006
15119
  if (s0 === peg$FAILED) {
@@ -15017,7 +15130,7 @@ function peg$parse(input, options) {
15017
15130
  }
15018
15131
  if (s1 !== peg$FAILED) {
15019
15132
  peg$savedPos = s0;
15020
- s1 = peg$c1384();
15133
+ s1 = peg$c1387();
15021
15134
  }
15022
15135
  s0 = s1;
15023
15136
  if (s0 === peg$FAILED) {
@@ -15041,6 +15154,62 @@ function peg$parse(input, options) {
15041
15154
  }
15042
15155
  return s0;
15043
15156
  }
15157
+ function peg$parseIslandsT() {
15158
+ var s0, s1;
15159
+ s0 = peg$currPos;
15160
+ if (input.substr(peg$currPos, 10) === peg$c1388) {
15161
+ s1 = peg$c1388;
15162
+ peg$currPos += 10;
15163
+ }
15164
+ else {
15165
+ s1 = peg$FAILED;
15166
+ if (peg$silentFails === 0) {
15167
+ peg$fail(peg$c1389);
15168
+ }
15169
+ }
15170
+ if (s1 !== peg$FAILED) {
15171
+ peg$savedPos = s0;
15172
+ s1 = peg$c1390();
15173
+ }
15174
+ s0 = s1;
15175
+ if (s0 === peg$FAILED) {
15176
+ s0 = peg$currPos;
15177
+ if (input.substr(peg$currPos, 4) === peg$c230) {
15178
+ s1 = peg$c230;
15179
+ peg$currPos += 4;
15180
+ }
15181
+ else {
15182
+ s1 = peg$FAILED;
15183
+ if (peg$silentFails === 0) {
15184
+ peg$fail(peg$c231);
15185
+ }
15186
+ }
15187
+ if (s1 !== peg$FAILED) {
15188
+ peg$savedPos = s0;
15189
+ s1 = peg$c1391();
15190
+ }
15191
+ s0 = s1;
15192
+ if (s0 === peg$FAILED) {
15193
+ s0 = peg$currPos;
15194
+ if (input.substr(peg$currPos, 5) === peg$c233) {
15195
+ s1 = peg$c233;
15196
+ peg$currPos += 5;
15197
+ }
15198
+ else {
15199
+ s1 = peg$FAILED;
15200
+ if (peg$silentFails === 0) {
15201
+ peg$fail(peg$c234);
15202
+ }
15203
+ }
15204
+ if (s1 !== peg$FAILED) {
15205
+ peg$savedPos = s0;
15206
+ s1 = peg$c1392();
15207
+ }
15208
+ s0 = s1;
15209
+ }
15210
+ }
15211
+ return s0;
15212
+ }
15044
15213
  function peg$parseConfig() {
15045
15214
  var s0;
15046
15215
  peg$silentFails++;
@@ -15063,6 +15232,9 @@ function peg$parse(input, options) {
15063
15232
  s0 = peg$parseConfigGraphBgColor();
15064
15233
  if (s0 === peg$FAILED) {
15065
15234
  s0 = peg$parseConfigAllowsOverride();
15235
+ if (s0 === peg$FAILED) {
15236
+ s0 = peg$parseConfigAllowIslands();
15237
+ }
15066
15238
  }
15067
15239
  }
15068
15240
  }
@@ -15075,131 +15247,131 @@ function peg$parse(input, options) {
15075
15247
  peg$silentFails--;
15076
15248
  if (s0 === peg$FAILED) {
15077
15249
  if (peg$silentFails === 0) {
15078
- peg$fail(peg$c1385);
15250
+ peg$fail(peg$c1393);
15079
15251
  }
15080
15252
  }
15081
15253
  return s0;
15082
15254
  }
15083
15255
  function peg$parseLicenseOrLabelOrList() {
15084
15256
  var s0;
15085
- if (input.substr(peg$currPos, 3) === peg$c1386) {
15086
- s0 = peg$c1386;
15257
+ if (input.substr(peg$currPos, 3) === peg$c1394) {
15258
+ s0 = peg$c1394;
15087
15259
  peg$currPos += 3;
15088
15260
  }
15089
15261
  else {
15090
15262
  s0 = peg$FAILED;
15091
15263
  if (peg$silentFails === 0) {
15092
- peg$fail(peg$c1387);
15264
+ peg$fail(peg$c1395);
15093
15265
  }
15094
15266
  }
15095
15267
  if (s0 === peg$FAILED) {
15096
- if (input.substr(peg$currPos, 12) === peg$c1388) {
15097
- s0 = peg$c1388;
15268
+ if (input.substr(peg$currPos, 12) === peg$c1396) {
15269
+ s0 = peg$c1396;
15098
15270
  peg$currPos += 12;
15099
15271
  }
15100
15272
  else {
15101
15273
  s0 = peg$FAILED;
15102
15274
  if (peg$silentFails === 0) {
15103
- peg$fail(peg$c1389);
15275
+ peg$fail(peg$c1397);
15104
15276
  }
15105
15277
  }
15106
15278
  if (s0 === peg$FAILED) {
15107
- if (input.substr(peg$currPos, 12) === peg$c1390) {
15108
- s0 = peg$c1390;
15279
+ if (input.substr(peg$currPos, 12) === peg$c1398) {
15280
+ s0 = peg$c1398;
15109
15281
  peg$currPos += 12;
15110
15282
  }
15111
15283
  else {
15112
15284
  s0 = peg$FAILED;
15113
15285
  if (peg$silentFails === 0) {
15114
- peg$fail(peg$c1391);
15286
+ peg$fail(peg$c1399);
15115
15287
  }
15116
15288
  }
15117
15289
  if (s0 === peg$FAILED) {
15118
- if (input.substr(peg$currPos, 10) === peg$c1392) {
15119
- s0 = peg$c1392;
15290
+ if (input.substr(peg$currPos, 10) === peg$c1400) {
15291
+ s0 = peg$c1400;
15120
15292
  peg$currPos += 10;
15121
15293
  }
15122
15294
  else {
15123
15295
  s0 = peg$FAILED;
15124
15296
  if (peg$silentFails === 0) {
15125
- peg$fail(peg$c1393);
15297
+ peg$fail(peg$c1401);
15126
15298
  }
15127
15299
  }
15128
15300
  if (s0 === peg$FAILED) {
15129
- if (input.substr(peg$currPos, 11) === peg$c1394) {
15130
- s0 = peg$c1394;
15301
+ if (input.substr(peg$currPos, 11) === peg$c1402) {
15302
+ s0 = peg$c1402;
15131
15303
  peg$currPos += 11;
15132
15304
  }
15133
15305
  else {
15134
15306
  s0 = peg$FAILED;
15135
15307
  if (peg$silentFails === 0) {
15136
- peg$fail(peg$c1395);
15308
+ peg$fail(peg$c1403);
15137
15309
  }
15138
15310
  }
15139
15311
  if (s0 === peg$FAILED) {
15140
- if (input.substr(peg$currPos, 13) === peg$c1396) {
15141
- s0 = peg$c1396;
15312
+ if (input.substr(peg$currPos, 13) === peg$c1404) {
15313
+ s0 = peg$c1404;
15142
15314
  peg$currPos += 13;
15143
15315
  }
15144
15316
  else {
15145
15317
  s0 = peg$FAILED;
15146
15318
  if (peg$silentFails === 0) {
15147
- peg$fail(peg$c1397);
15319
+ peg$fail(peg$c1405);
15148
15320
  }
15149
15321
  }
15150
15322
  if (s0 === peg$FAILED) {
15151
- if (input.substr(peg$currPos, 6) === peg$c1398) {
15152
- s0 = peg$c1398;
15323
+ if (input.substr(peg$currPos, 6) === peg$c1406) {
15324
+ s0 = peg$c1406;
15153
15325
  peg$currPos += 6;
15154
15326
  }
15155
15327
  else {
15156
15328
  s0 = peg$FAILED;
15157
15329
  if (peg$silentFails === 0) {
15158
- peg$fail(peg$c1399);
15330
+ peg$fail(peg$c1407);
15159
15331
  }
15160
15332
  }
15161
15333
  if (s0 === peg$FAILED) {
15162
- if (input.substr(peg$currPos, 6) === peg$c1400) {
15163
- s0 = peg$c1400;
15334
+ if (input.substr(peg$currPos, 6) === peg$c1408) {
15335
+ s0 = peg$c1408;
15164
15336
  peg$currPos += 6;
15165
15337
  }
15166
15338
  else {
15167
15339
  s0 = peg$FAILED;
15168
15340
  if (peg$silentFails === 0) {
15169
- peg$fail(peg$c1401);
15341
+ peg$fail(peg$c1409);
15170
15342
  }
15171
15343
  }
15172
15344
  if (s0 === peg$FAILED) {
15173
- if (input.substr(peg$currPos, 9) === peg$c1402) {
15174
- s0 = peg$c1402;
15345
+ if (input.substr(peg$currPos, 9) === peg$c1410) {
15346
+ s0 = peg$c1410;
15175
15347
  peg$currPos += 9;
15176
15348
  }
15177
15349
  else {
15178
15350
  s0 = peg$FAILED;
15179
15351
  if (peg$silentFails === 0) {
15180
- peg$fail(peg$c1403);
15352
+ peg$fail(peg$c1411);
15181
15353
  }
15182
15354
  }
15183
15355
  if (s0 === peg$FAILED) {
15184
- if (input.substr(peg$currPos, 9) === peg$c1404) {
15185
- s0 = peg$c1404;
15356
+ if (input.substr(peg$currPos, 9) === peg$c1412) {
15357
+ s0 = peg$c1412;
15186
15358
  peg$currPos += 9;
15187
15359
  }
15188
15360
  else {
15189
15361
  s0 = peg$FAILED;
15190
15362
  if (peg$silentFails === 0) {
15191
- peg$fail(peg$c1405);
15363
+ peg$fail(peg$c1413);
15192
15364
  }
15193
15365
  }
15194
15366
  if (s0 === peg$FAILED) {
15195
- if (input.substr(peg$currPos, 7) === peg$c1406) {
15196
- s0 = peg$c1406;
15367
+ if (input.substr(peg$currPos, 7) === peg$c1414) {
15368
+ s0 = peg$c1414;
15197
15369
  peg$currPos += 7;
15198
15370
  }
15199
15371
  else {
15200
15372
  s0 = peg$FAILED;
15201
15373
  if (peg$silentFails === 0) {
15202
- peg$fail(peg$c1407);
15374
+ peg$fail(peg$c1415);
15203
15375
  }
15204
15376
  }
15205
15377
  if (s0 === peg$FAILED) {
@@ -15223,47 +15395,47 @@ function peg$parse(input, options) {
15223
15395
  function peg$parseDirection() {
15224
15396
  var s0;
15225
15397
  peg$silentFails++;
15226
- if (input.substr(peg$currPos, 2) === peg$c1409) {
15227
- s0 = peg$c1409;
15398
+ if (input.substr(peg$currPos, 2) === peg$c1417) {
15399
+ s0 = peg$c1417;
15228
15400
  peg$currPos += 2;
15229
15401
  }
15230
15402
  else {
15231
15403
  s0 = peg$FAILED;
15232
15404
  if (peg$silentFails === 0) {
15233
- peg$fail(peg$c1410);
15405
+ peg$fail(peg$c1418);
15234
15406
  }
15235
15407
  }
15236
15408
  if (s0 === peg$FAILED) {
15237
- if (input.substr(peg$currPos, 5) === peg$c1411) {
15238
- s0 = peg$c1411;
15409
+ if (input.substr(peg$currPos, 5) === peg$c1419) {
15410
+ s0 = peg$c1419;
15239
15411
  peg$currPos += 5;
15240
15412
  }
15241
15413
  else {
15242
15414
  s0 = peg$FAILED;
15243
15415
  if (peg$silentFails === 0) {
15244
- peg$fail(peg$c1412);
15416
+ peg$fail(peg$c1420);
15245
15417
  }
15246
15418
  }
15247
15419
  if (s0 === peg$FAILED) {
15248
- if (input.substr(peg$currPos, 4) === peg$c1413) {
15249
- s0 = peg$c1413;
15420
+ if (input.substr(peg$currPos, 4) === peg$c1421) {
15421
+ s0 = peg$c1421;
15250
15422
  peg$currPos += 4;
15251
15423
  }
15252
15424
  else {
15253
15425
  s0 = peg$FAILED;
15254
15426
  if (peg$silentFails === 0) {
15255
- peg$fail(peg$c1414);
15427
+ peg$fail(peg$c1422);
15256
15428
  }
15257
15429
  }
15258
15430
  if (s0 === peg$FAILED) {
15259
- if (input.substr(peg$currPos, 4) === peg$c1415) {
15260
- s0 = peg$c1415;
15431
+ if (input.substr(peg$currPos, 4) === peg$c1423) {
15432
+ s0 = peg$c1423;
15261
15433
  peg$currPos += 4;
15262
15434
  }
15263
15435
  else {
15264
15436
  s0 = peg$FAILED;
15265
15437
  if (peg$silentFails === 0) {
15266
- peg$fail(peg$c1416);
15438
+ peg$fail(peg$c1424);
15267
15439
  }
15268
15440
  }
15269
15441
  }
@@ -15272,7 +15444,7 @@ function peg$parse(input, options) {
15272
15444
  peg$silentFails--;
15273
15445
  if (s0 === peg$FAILED) {
15274
15446
  if (peg$silentFails === 0) {
15275
- peg$fail(peg$c1408);
15447
+ peg$fail(peg$c1416);
15276
15448
  }
15277
15449
  }
15278
15450
  return s0;
@@ -15280,32 +15452,32 @@ function peg$parse(input, options) {
15280
15452
  function peg$parseHookDefinition() {
15281
15453
  var s0;
15282
15454
  peg$silentFails++;
15283
- if (input.substr(peg$currPos, 4) === peg$c1418) {
15284
- s0 = peg$c1418;
15455
+ if (input.substr(peg$currPos, 4) === peg$c1426) {
15456
+ s0 = peg$c1426;
15285
15457
  peg$currPos += 4;
15286
15458
  }
15287
15459
  else {
15288
15460
  s0 = peg$FAILED;
15289
15461
  if (peg$silentFails === 0) {
15290
- peg$fail(peg$c1419);
15462
+ peg$fail(peg$c1427);
15291
15463
  }
15292
15464
  }
15293
15465
  if (s0 === peg$FAILED) {
15294
- if (input.substr(peg$currPos, 6) === peg$c1420) {
15295
- s0 = peg$c1420;
15466
+ if (input.substr(peg$currPos, 6) === peg$c1428) {
15467
+ s0 = peg$c1428;
15296
15468
  peg$currPos += 6;
15297
15469
  }
15298
15470
  else {
15299
15471
  s0 = peg$FAILED;
15300
15472
  if (peg$silentFails === 0) {
15301
- peg$fail(peg$c1421);
15473
+ peg$fail(peg$c1429);
15302
15474
  }
15303
15475
  }
15304
15476
  }
15305
15477
  peg$silentFails--;
15306
15478
  if (s0 === peg$FAILED) {
15307
15479
  if (peg$silentFails === 0) {
15308
- peg$fail(peg$c1417);
15480
+ peg$fail(peg$c1425);
15309
15481
  }
15310
15482
  }
15311
15483
  return s0;
@@ -15318,14 +15490,14 @@ function peg$parse(input, options) {
15318
15490
  s1 = null;
15319
15491
  }
15320
15492
  if (s1 !== peg$FAILED) {
15321
- if (input.substr(peg$currPos, 14) === peg$c1422) {
15322
- s2 = peg$c1422;
15493
+ if (input.substr(peg$currPos, 14) === peg$c1430) {
15494
+ s2 = peg$c1430;
15323
15495
  peg$currPos += 14;
15324
15496
  }
15325
15497
  else {
15326
15498
  s2 = peg$FAILED;
15327
15499
  if (peg$silentFails === 0) {
15328
- peg$fail(peg$c1423);
15500
+ peg$fail(peg$c1431);
15329
15501
  }
15330
15502
  }
15331
15503
  if (s2 !== peg$FAILED) {
@@ -15374,7 +15546,7 @@ function peg$parse(input, options) {
15374
15546
  }
15375
15547
  if (s9 !== peg$FAILED) {
15376
15548
  peg$savedPos = s0;
15377
- s1 = peg$c1424(s6);
15549
+ s1 = peg$c1432(s6);
15378
15550
  s0 = s1;
15379
15551
  }
15380
15552
  else {
@@ -15431,14 +15603,14 @@ function peg$parse(input, options) {
15431
15603
  s1 = null;
15432
15604
  }
15433
15605
  if (s1 !== peg$FAILED) {
15434
- if (input.substr(peg$currPos, 19) === peg$c1425) {
15435
- s2 = peg$c1425;
15606
+ if (input.substr(peg$currPos, 19) === peg$c1433) {
15607
+ s2 = peg$c1433;
15436
15608
  peg$currPos += 19;
15437
15609
  }
15438
15610
  else {
15439
15611
  s2 = peg$FAILED;
15440
15612
  if (peg$silentFails === 0) {
15441
- peg$fail(peg$c1426);
15613
+ peg$fail(peg$c1434);
15442
15614
  }
15443
15615
  }
15444
15616
  if (s2 !== peg$FAILED) {
@@ -15487,7 +15659,7 @@ function peg$parse(input, options) {
15487
15659
  }
15488
15660
  if (s9 !== peg$FAILED) {
15489
15661
  peg$savedPos = s0;
15490
- s1 = peg$c1427(s6);
15662
+ s1 = peg$c1435(s6);
15491
15663
  s0 = s1;
15492
15664
  }
15493
15665
  else {
@@ -15544,14 +15716,14 @@ function peg$parse(input, options) {
15544
15716
  s1 = null;
15545
15717
  }
15546
15718
  if (s1 !== peg$FAILED) {
15547
- if (input.substr(peg$currPos, 15) === peg$c1428) {
15548
- s2 = peg$c1428;
15719
+ if (input.substr(peg$currPos, 15) === peg$c1436) {
15720
+ s2 = peg$c1436;
15549
15721
  peg$currPos += 15;
15550
15722
  }
15551
15723
  else {
15552
15724
  s2 = peg$FAILED;
15553
15725
  if (peg$silentFails === 0) {
15554
- peg$fail(peg$c1429);
15726
+ peg$fail(peg$c1437);
15555
15727
  }
15556
15728
  }
15557
15729
  if (s2 !== peg$FAILED) {
@@ -15600,7 +15772,7 @@ function peg$parse(input, options) {
15600
15772
  }
15601
15773
  if (s9 !== peg$FAILED) {
15602
15774
  peg$savedPos = s0;
15603
- s1 = peg$c1430(s6);
15775
+ s1 = peg$c1438(s6);
15604
15776
  s0 = s1;
15605
15777
  }
15606
15778
  else {
@@ -15657,14 +15829,14 @@ function peg$parse(input, options) {
15657
15829
  s1 = null;
15658
15830
  }
15659
15831
  if (s1 !== peg$FAILED) {
15660
- if (input.substr(peg$currPos, 18) === peg$c1431) {
15661
- s2 = peg$c1431;
15832
+ if (input.substr(peg$currPos, 18) === peg$c1439) {
15833
+ s2 = peg$c1439;
15662
15834
  peg$currPos += 18;
15663
15835
  }
15664
15836
  else {
15665
15837
  s2 = peg$FAILED;
15666
15838
  if (peg$silentFails === 0) {
15667
- peg$fail(peg$c1432);
15839
+ peg$fail(peg$c1440);
15668
15840
  }
15669
15841
  }
15670
15842
  if (s2 !== peg$FAILED) {
@@ -15713,7 +15885,7 @@ function peg$parse(input, options) {
15713
15885
  }
15714
15886
  if (s9 !== peg$FAILED) {
15715
15887
  peg$savedPos = s0;
15716
- s1 = peg$c1433(s6);
15888
+ s1 = peg$c1441(s6);
15717
15889
  s0 = s1;
15718
15890
  }
15719
15891
  else {
@@ -15770,14 +15942,14 @@ function peg$parse(input, options) {
15770
15942
  s1 = null;
15771
15943
  }
15772
15944
  if (s1 !== peg$FAILED) {
15773
- if (input.substr(peg$currPos, 12) === peg$c1434) {
15774
- s2 = peg$c1434;
15945
+ if (input.substr(peg$currPos, 12) === peg$c1442) {
15946
+ s2 = peg$c1442;
15775
15947
  peg$currPos += 12;
15776
15948
  }
15777
15949
  else {
15778
15950
  s2 = peg$FAILED;
15779
15951
  if (peg$silentFails === 0) {
15780
- peg$fail(peg$c1435);
15952
+ peg$fail(peg$c1443);
15781
15953
  }
15782
15954
  }
15783
15955
  if (s2 !== peg$FAILED) {
@@ -15826,7 +15998,7 @@ function peg$parse(input, options) {
15826
15998
  }
15827
15999
  if (s9 !== peg$FAILED) {
15828
16000
  peg$savedPos = s0;
15829
- s1 = peg$c1436(s6);
16001
+ s1 = peg$c1444(s6);
15830
16002
  s0 = s1;
15831
16003
  }
15832
16004
  else {
@@ -15883,14 +16055,14 @@ function peg$parse(input, options) {
15883
16055
  s1 = null;
15884
16056
  }
15885
16057
  if (s1 !== peg$FAILED) {
15886
- if (input.substr(peg$currPos, 8) === peg$c1437) {
15887
- s2 = peg$c1437;
16058
+ if (input.substr(peg$currPos, 8) === peg$c1445) {
16059
+ s2 = peg$c1445;
15888
16060
  peg$currPos += 8;
15889
16061
  }
15890
16062
  else {
15891
16063
  s2 = peg$FAILED;
15892
16064
  if (peg$silentFails === 0) {
15893
- peg$fail(peg$c1438);
16065
+ peg$fail(peg$c1446);
15894
16066
  }
15895
16067
  }
15896
16068
  if (s2 !== peg$FAILED) {
@@ -15939,7 +16111,7 @@ function peg$parse(input, options) {
15939
16111
  }
15940
16112
  if (s9 !== peg$FAILED) {
15941
16113
  peg$savedPos = s0;
15942
- s1 = peg$c1439(s6);
16114
+ s1 = peg$c1447(s6);
15943
16115
  s0 = s1;
15944
16116
  }
15945
16117
  else {
@@ -15996,14 +16168,14 @@ function peg$parse(input, options) {
15996
16168
  s1 = null;
15997
16169
  }
15998
16170
  if (s1 !== peg$FAILED) {
15999
- if (input.substr(peg$currPos, 17) === peg$c1440) {
16000
- s2 = peg$c1440;
16171
+ if (input.substr(peg$currPos, 17) === peg$c1448) {
16172
+ s2 = peg$c1448;
16001
16173
  peg$currPos += 17;
16002
16174
  }
16003
16175
  else {
16004
16176
  s2 = peg$FAILED;
16005
16177
  if (peg$silentFails === 0) {
16006
- peg$fail(peg$c1441);
16178
+ peg$fail(peg$c1449);
16007
16179
  }
16008
16180
  }
16009
16181
  if (s2 !== peg$FAILED) {
@@ -16052,7 +16224,7 @@ function peg$parse(input, options) {
16052
16224
  }
16053
16225
  if (s9 !== peg$FAILED) {
16054
16226
  peg$savedPos = s0;
16055
- s1 = peg$c1442(s6);
16227
+ s1 = peg$c1450(s6);
16056
16228
  s0 = s1;
16057
16229
  }
16058
16230
  else {
@@ -16109,14 +16281,14 @@ function peg$parse(input, options) {
16109
16281
  s1 = null;
16110
16282
  }
16111
16283
  if (s1 !== peg$FAILED) {
16112
- if (input.substr(peg$currPos, 15) === peg$c1443) {
16113
- s2 = peg$c1443;
16284
+ if (input.substr(peg$currPos, 15) === peg$c1451) {
16285
+ s2 = peg$c1451;
16114
16286
  peg$currPos += 15;
16115
16287
  }
16116
16288
  else {
16117
16289
  s2 = peg$FAILED;
16118
16290
  if (peg$silentFails === 0) {
16119
- peg$fail(peg$c1444);
16291
+ peg$fail(peg$c1452);
16120
16292
  }
16121
16293
  }
16122
16294
  if (s2 !== peg$FAILED) {
@@ -16165,7 +16337,7 @@ function peg$parse(input, options) {
16165
16337
  }
16166
16338
  if (s9 !== peg$FAILED) {
16167
16339
  peg$savedPos = s0;
16168
- s1 = peg$c1445(s6);
16340
+ s1 = peg$c1453(s6);
16169
16341
  s0 = s1;
16170
16342
  }
16171
16343
  else {
@@ -16222,14 +16394,14 @@ function peg$parse(input, options) {
16222
16394
  s1 = null;
16223
16395
  }
16224
16396
  if (s1 !== peg$FAILED) {
16225
- if (input.substr(peg$currPos, 15) === peg$c1446) {
16226
- s2 = peg$c1446;
16397
+ if (input.substr(peg$currPos, 15) === peg$c1454) {
16398
+ s2 = peg$c1454;
16227
16399
  peg$currPos += 15;
16228
16400
  }
16229
16401
  else {
16230
16402
  s2 = peg$FAILED;
16231
16403
  if (peg$silentFails === 0) {
16232
- peg$fail(peg$c1447);
16404
+ peg$fail(peg$c1455);
16233
16405
  }
16234
16406
  }
16235
16407
  if (s2 !== peg$FAILED) {
@@ -16278,7 +16450,7 @@ function peg$parse(input, options) {
16278
16450
  }
16279
16451
  if (s9 !== peg$FAILED) {
16280
16452
  peg$savedPos = s0;
16281
- s1 = peg$c1448(s6);
16453
+ s1 = peg$c1456(s6);
16282
16454
  s0 = s1;
16283
16455
  }
16284
16456
  else {
@@ -16335,14 +16507,14 @@ function peg$parse(input, options) {
16335
16507
  s1 = null;
16336
16508
  }
16337
16509
  if (s1 !== peg$FAILED) {
16338
- if (input.substr(peg$currPos, 16) === peg$c1449) {
16339
- s2 = peg$c1449;
16510
+ if (input.substr(peg$currPos, 16) === peg$c1457) {
16511
+ s2 = peg$c1457;
16340
16512
  peg$currPos += 16;
16341
16513
  }
16342
16514
  else {
16343
16515
  s2 = peg$FAILED;
16344
16516
  if (peg$silentFails === 0) {
16345
- peg$fail(peg$c1450);
16517
+ peg$fail(peg$c1458);
16346
16518
  }
16347
16519
  }
16348
16520
  if (s2 !== peg$FAILED) {
@@ -16391,7 +16563,7 @@ function peg$parse(input, options) {
16391
16563
  }
16392
16564
  if (s9 !== peg$FAILED) {
16393
16565
  peg$savedPos = s0;
16394
- s1 = peg$c1451(s6);
16566
+ s1 = peg$c1459(s6);
16395
16567
  s0 = s1;
16396
16568
  }
16397
16569
  else {
@@ -16448,14 +16620,14 @@ function peg$parse(input, options) {
16448
16620
  s1 = null;
16449
16621
  }
16450
16622
  if (s1 !== peg$FAILED) {
16451
- if (input.substr(peg$currPos, 11) === peg$c1452) {
16452
- s2 = peg$c1452;
16623
+ if (input.substr(peg$currPos, 11) === peg$c1460) {
16624
+ s2 = peg$c1460;
16453
16625
  peg$currPos += 11;
16454
16626
  }
16455
16627
  else {
16456
16628
  s2 = peg$FAILED;
16457
16629
  if (peg$silentFails === 0) {
16458
- peg$fail(peg$c1453);
16630
+ peg$fail(peg$c1461);
16459
16631
  }
16460
16632
  }
16461
16633
  if (s2 !== peg$FAILED) {
@@ -16504,7 +16676,7 @@ function peg$parse(input, options) {
16504
16676
  }
16505
16677
  if (s9 !== peg$FAILED) {
16506
16678
  peg$savedPos = s0;
16507
- s1 = peg$c1454(s6);
16679
+ s1 = peg$c1462(s6);
16508
16680
  s0 = s1;
16509
16681
  }
16510
16682
  else {
@@ -16561,14 +16733,14 @@ function peg$parse(input, options) {
16561
16733
  s1 = null;
16562
16734
  }
16563
16735
  if (s1 !== peg$FAILED) {
16564
- if (input.substr(peg$currPos, 5) === peg$c1455) {
16565
- s2 = peg$c1455;
16736
+ if (input.substr(peg$currPos, 5) === peg$c1463) {
16737
+ s2 = peg$c1463;
16566
16738
  peg$currPos += 5;
16567
16739
  }
16568
16740
  else {
16569
16741
  s2 = peg$FAILED;
16570
16742
  if (peg$silentFails === 0) {
16571
- peg$fail(peg$c1456);
16743
+ peg$fail(peg$c1464);
16572
16744
  }
16573
16745
  }
16574
16746
  if (s2 !== peg$FAILED) {
@@ -16617,7 +16789,7 @@ function peg$parse(input, options) {
16617
16789
  }
16618
16790
  if (s9 !== peg$FAILED) {
16619
16791
  peg$savedPos = s0;
16620
- s1 = peg$c1457(s6);
16792
+ s1 = peg$c1465(s6);
16621
16793
  s0 = s1;
16622
16794
  }
16623
16795
  else {
@@ -16674,14 +16846,14 @@ function peg$parse(input, options) {
16674
16846
  s1 = null;
16675
16847
  }
16676
16848
  if (s1 !== peg$FAILED) {
16677
- if (input.substr(peg$currPos, 4) === peg$c1458) {
16678
- s2 = peg$c1458;
16849
+ if (input.substr(peg$currPos, 4) === peg$c1466) {
16850
+ s2 = peg$c1466;
16679
16851
  peg$currPos += 4;
16680
16852
  }
16681
16853
  else {
16682
16854
  s2 = peg$FAILED;
16683
16855
  if (peg$silentFails === 0) {
16684
- peg$fail(peg$c1459);
16856
+ peg$fail(peg$c1467);
16685
16857
  }
16686
16858
  }
16687
16859
  if (s2 !== peg$FAILED) {
@@ -16730,7 +16902,7 @@ function peg$parse(input, options) {
16730
16902
  }
16731
16903
  if (s9 !== peg$FAILED) {
16732
16904
  peg$savedPos = s0;
16733
- s1 = peg$c1460(s6);
16905
+ s1 = peg$c1468(s6);
16734
16906
  s0 = s1;
16735
16907
  }
16736
16908
  else {
@@ -16787,14 +16959,14 @@ function peg$parse(input, options) {
16787
16959
  s1 = null;
16788
16960
  }
16789
16961
  if (s1 !== peg$FAILED) {
16790
- if (input.substr(peg$currPos, 5) === peg$c1461) {
16791
- s2 = peg$c1461;
16962
+ if (input.substr(peg$currPos, 5) === peg$c1469) {
16963
+ s2 = peg$c1469;
16792
16964
  peg$currPos += 5;
16793
16965
  }
16794
16966
  else {
16795
16967
  s2 = peg$FAILED;
16796
16968
  if (peg$silentFails === 0) {
16797
- peg$fail(peg$c1462);
16969
+ peg$fail(peg$c1470);
16798
16970
  }
16799
16971
  }
16800
16972
  if (s2 !== peg$FAILED) {
@@ -16843,7 +17015,7 @@ function peg$parse(input, options) {
16843
17015
  }
16844
17016
  if (s9 !== peg$FAILED) {
16845
17017
  peg$savedPos = s0;
16846
- s1 = peg$c1463(s6);
17018
+ s1 = peg$c1471(s6);
16847
17019
  s0 = s1;
16848
17020
  }
16849
17021
  else {
@@ -16900,14 +17072,14 @@ function peg$parse(input, options) {
16900
17072
  s1 = null;
16901
17073
  }
16902
17074
  if (s1 !== peg$FAILED) {
16903
- if (input.substr(peg$currPos, 12) === peg$c1464) {
16904
- s2 = peg$c1464;
17075
+ if (input.substr(peg$currPos, 12) === peg$c1472) {
17076
+ s2 = peg$c1472;
16905
17077
  peg$currPos += 12;
16906
17078
  }
16907
17079
  else {
16908
17080
  s2 = peg$FAILED;
16909
17081
  if (peg$silentFails === 0) {
16910
- peg$fail(peg$c1465);
17082
+ peg$fail(peg$c1473);
16911
17083
  }
16912
17084
  }
16913
17085
  if (s2 !== peg$FAILED) {
@@ -16956,7 +17128,187 @@ function peg$parse(input, options) {
16956
17128
  }
16957
17129
  if (s9 !== peg$FAILED) {
16958
17130
  peg$savedPos = s0;
16959
- s1 = peg$c1466(s6);
17131
+ s1 = peg$c1474(s6);
17132
+ s0 = s1;
17133
+ }
17134
+ else {
17135
+ peg$currPos = s0;
17136
+ s0 = peg$FAILED;
17137
+ }
17138
+ }
17139
+ else {
17140
+ peg$currPos = s0;
17141
+ s0 = peg$FAILED;
17142
+ }
17143
+ }
17144
+ else {
17145
+ peg$currPos = s0;
17146
+ s0 = peg$FAILED;
17147
+ }
17148
+ }
17149
+ else {
17150
+ peg$currPos = s0;
17151
+ s0 = peg$FAILED;
17152
+ }
17153
+ }
17154
+ else {
17155
+ peg$currPos = s0;
17156
+ s0 = peg$FAILED;
17157
+ }
17158
+ }
17159
+ else {
17160
+ peg$currPos = s0;
17161
+ s0 = peg$FAILED;
17162
+ }
17163
+ }
17164
+ else {
17165
+ peg$currPos = s0;
17166
+ s0 = peg$FAILED;
17167
+ }
17168
+ }
17169
+ else {
17170
+ peg$currPos = s0;
17171
+ s0 = peg$FAILED;
17172
+ }
17173
+ }
17174
+ else {
17175
+ peg$currPos = s0;
17176
+ s0 = peg$FAILED;
17177
+ }
17178
+ return s0;
17179
+ }
17180
+ function peg$parseDefaultSizeVal() {
17181
+ var s0, s1, s2, s3;
17182
+ s0 = peg$currPos;
17183
+ if (input.substr(peg$currPos, 6) === peg$c1475) {
17184
+ s1 = peg$c1475;
17185
+ peg$currPos += 6;
17186
+ }
17187
+ else {
17188
+ s1 = peg$FAILED;
17189
+ if (peg$silentFails === 0) {
17190
+ peg$fail(peg$c1476);
17191
+ }
17192
+ }
17193
+ if (s1 !== peg$FAILED) {
17194
+ s2 = peg$parseWS();
17195
+ if (s2 !== peg$FAILED) {
17196
+ s3 = peg$parseNonNegNumber();
17197
+ if (s3 !== peg$FAILED) {
17198
+ peg$savedPos = s0;
17199
+ s1 = peg$c1477(s3);
17200
+ s0 = s1;
17201
+ }
17202
+ else {
17203
+ peg$currPos = s0;
17204
+ s0 = peg$FAILED;
17205
+ }
17206
+ }
17207
+ else {
17208
+ peg$currPos = s0;
17209
+ s0 = peg$FAILED;
17210
+ }
17211
+ }
17212
+ else {
17213
+ peg$currPos = s0;
17214
+ s0 = peg$FAILED;
17215
+ }
17216
+ if (s0 === peg$FAILED) {
17217
+ s0 = peg$currPos;
17218
+ s1 = peg$parseNonNegNumber();
17219
+ if (s1 !== peg$FAILED) {
17220
+ s2 = peg$parseNonNegNumber();
17221
+ if (s2 !== peg$FAILED) {
17222
+ peg$savedPos = s0;
17223
+ s1 = peg$c1478(s1, s2);
17224
+ s0 = s1;
17225
+ }
17226
+ else {
17227
+ peg$currPos = s0;
17228
+ s0 = peg$FAILED;
17229
+ }
17230
+ }
17231
+ else {
17232
+ peg$currPos = s0;
17233
+ s0 = peg$FAILED;
17234
+ }
17235
+ if (s0 === peg$FAILED) {
17236
+ s0 = peg$currPos;
17237
+ s1 = peg$parseNonNegNumber();
17238
+ if (s1 !== peg$FAILED) {
17239
+ peg$savedPos = s0;
17240
+ s1 = peg$c1479(s1);
17241
+ }
17242
+ s0 = s1;
17243
+ }
17244
+ }
17245
+ return s0;
17246
+ }
17247
+ function peg$parseDefaultSize() {
17248
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
17249
+ s0 = peg$currPos;
17250
+ s1 = peg$parseWS();
17251
+ if (s1 === peg$FAILED) {
17252
+ s1 = null;
17253
+ }
17254
+ if (s1 !== peg$FAILED) {
17255
+ if (input.substr(peg$currPos, 12) === peg$c1480) {
17256
+ s2 = peg$c1480;
17257
+ peg$currPos += 12;
17258
+ }
17259
+ else {
17260
+ s2 = peg$FAILED;
17261
+ if (peg$silentFails === 0) {
17262
+ peg$fail(peg$c1481);
17263
+ }
17264
+ }
17265
+ if (s2 !== peg$FAILED) {
17266
+ s3 = peg$parseWS();
17267
+ if (s3 === peg$FAILED) {
17268
+ s3 = null;
17269
+ }
17270
+ if (s3 !== peg$FAILED) {
17271
+ if (input.charCodeAt(peg$currPos) === 58) {
17272
+ s4 = peg$c1206;
17273
+ peg$currPos++;
17274
+ }
17275
+ else {
17276
+ s4 = peg$FAILED;
17277
+ if (peg$silentFails === 0) {
17278
+ peg$fail(peg$c1207);
17279
+ }
17280
+ }
17281
+ if (s4 !== peg$FAILED) {
17282
+ s5 = peg$parseWS();
17283
+ if (s5 === peg$FAILED) {
17284
+ s5 = null;
17285
+ }
17286
+ if (s5 !== peg$FAILED) {
17287
+ s6 = peg$parseDefaultSizeVal();
17288
+ if (s6 !== peg$FAILED) {
17289
+ s7 = peg$parseWS();
17290
+ if (s7 === peg$FAILED) {
17291
+ s7 = null;
17292
+ }
17293
+ if (s7 !== peg$FAILED) {
17294
+ if (input.charCodeAt(peg$currPos) === 59) {
17295
+ s8 = peg$c1208;
17296
+ peg$currPos++;
17297
+ }
17298
+ else {
17299
+ s8 = peg$FAILED;
17300
+ if (peg$silentFails === 0) {
17301
+ peg$fail(peg$c1209);
17302
+ }
17303
+ }
17304
+ if (s8 !== peg$FAILED) {
17305
+ s9 = peg$parseWS();
17306
+ if (s9 === peg$FAILED) {
17307
+ s9 = null;
17308
+ }
17309
+ if (s9 !== peg$FAILED) {
17310
+ peg$savedPos = s0;
17311
+ s1 = peg$c1482(s6);
16960
17312
  s0 = s1;
16961
17313
  }
16962
17314
  else {
@@ -17037,6 +17389,9 @@ function peg$parse(input, options) {
17037
17389
  s0 = peg$parseMachineFlow();
17038
17390
  if (s0 === peg$FAILED) {
17039
17391
  s0 = peg$parseMachineHookDefinition();
17392
+ if (s0 === peg$FAILED) {
17393
+ s0 = peg$parseDefaultSize();
17394
+ }
17040
17395
  }
17041
17396
  }
17042
17397
  }
@@ -17054,7 +17409,7 @@ function peg$parse(input, options) {
17054
17409
  peg$silentFails--;
17055
17410
  if (s0 === peg$FAILED) {
17056
17411
  if (peg$silentFails === 0) {
17057
- peg$fail(peg$c1467);
17412
+ peg$fail(peg$c1483);
17058
17413
  }
17059
17414
  }
17060
17415
  return s0;
@@ -17085,14 +17440,14 @@ function peg$parse(input, options) {
17085
17440
  s1 = null;
17086
17441
  }
17087
17442
  if (s1 !== peg$FAILED) {
17088
- if (input.substr(peg$currPos, 5) === peg$c1468) {
17089
- s2 = peg$c1468;
17443
+ if (input.substr(peg$currPos, 5) === peg$c1484) {
17444
+ s2 = peg$c1484;
17090
17445
  peg$currPos += 5;
17091
17446
  }
17092
17447
  else {
17093
17448
  s2 = peg$FAILED;
17094
17449
  if (peg$silentFails === 0) {
17095
- peg$fail(peg$c1469);
17450
+ peg$fail(peg$c1485);
17096
17451
  }
17097
17452
  }
17098
17453
  if (s2 !== peg$FAILED) {
@@ -17141,7 +17496,7 @@ function peg$parse(input, options) {
17141
17496
  }
17142
17497
  if (s9 !== peg$FAILED) {
17143
17498
  peg$savedPos = s0;
17144
- s1 = peg$c1470(s6);
17499
+ s1 = peg$c1486(s6);
17145
17500
  s0 = s1;
17146
17501
  }
17147
17502
  else {
@@ -17206,14 +17561,14 @@ function peg$parse(input, options) {
17206
17561
  s1 = null;
17207
17562
  }
17208
17563
  if (s1 !== peg$FAILED) {
17209
- if (input.substr(peg$currPos, 5) === peg$c1471) {
17210
- s2 = peg$c1471;
17564
+ if (input.substr(peg$currPos, 5) === peg$c1487) {
17565
+ s2 = peg$c1487;
17211
17566
  peg$currPos += 5;
17212
17567
  }
17213
17568
  else {
17214
17569
  s2 = peg$FAILED;
17215
17570
  if (peg$silentFails === 0) {
17216
- peg$fail(peg$c1472);
17571
+ peg$fail(peg$c1488);
17217
17572
  }
17218
17573
  }
17219
17574
  if (s2 !== peg$FAILED) {
@@ -17262,7 +17617,7 @@ function peg$parse(input, options) {
17262
17617
  }
17263
17618
  if (s9 !== peg$FAILED) {
17264
17619
  peg$savedPos = s0;
17265
- s1 = peg$c1473(s6);
17620
+ s1 = peg$c1489(s6);
17266
17621
  s0 = s1;
17267
17622
  }
17268
17623
  else {
@@ -17327,14 +17682,14 @@ function peg$parse(input, options) {
17327
17682
  s1 = null;
17328
17683
  }
17329
17684
  if (s1 !== peg$FAILED) {
17330
- if (input.substr(peg$currPos, 10) === peg$c1475) {
17331
- s2 = peg$c1475;
17685
+ if (input.substr(peg$currPos, 10) === peg$c1491) {
17686
+ s2 = peg$c1491;
17332
17687
  peg$currPos += 10;
17333
17688
  }
17334
17689
  else {
17335
17690
  s2 = peg$FAILED;
17336
17691
  if (peg$silentFails === 0) {
17337
- peg$fail(peg$c1476);
17692
+ peg$fail(peg$c1492);
17338
17693
  }
17339
17694
  }
17340
17695
  if (s2 !== peg$FAILED) {
@@ -17383,7 +17738,7 @@ function peg$parse(input, options) {
17383
17738
  }
17384
17739
  if (s9 !== peg$FAILED) {
17385
17740
  peg$savedPos = s0;
17386
- s1 = peg$c1477(s6);
17741
+ s1 = peg$c1493(s6);
17387
17742
  s0 = s1;
17388
17743
  }
17389
17744
  else {
@@ -17434,7 +17789,7 @@ function peg$parse(input, options) {
17434
17789
  if (s0 === peg$FAILED) {
17435
17790
  s1 = peg$FAILED;
17436
17791
  if (peg$silentFails === 0) {
17437
- peg$fail(peg$c1474);
17792
+ peg$fail(peg$c1490);
17438
17793
  }
17439
17794
  }
17440
17795
  return s0;
@@ -17448,14 +17803,14 @@ function peg$parse(input, options) {
17448
17803
  s1 = null;
17449
17804
  }
17450
17805
  if (s1 !== peg$FAILED) {
17451
- if (input.substr(peg$currPos, 16) === peg$c1479) {
17452
- s2 = peg$c1479;
17806
+ if (input.substr(peg$currPos, 16) === peg$c1495) {
17807
+ s2 = peg$c1495;
17453
17808
  peg$currPos += 16;
17454
17809
  }
17455
17810
  else {
17456
17811
  s2 = peg$FAILED;
17457
17812
  if (peg$silentFails === 0) {
17458
- peg$fail(peg$c1480);
17813
+ peg$fail(peg$c1496);
17459
17814
  }
17460
17815
  }
17461
17816
  if (s2 !== peg$FAILED) {
@@ -17504,7 +17859,7 @@ function peg$parse(input, options) {
17504
17859
  }
17505
17860
  if (s9 !== peg$FAILED) {
17506
17861
  peg$savedPos = s0;
17507
- s1 = peg$c1481(s6);
17862
+ s1 = peg$c1497(s6);
17508
17863
  s0 = s1;
17509
17864
  }
17510
17865
  else {
@@ -17555,7 +17910,7 @@ function peg$parse(input, options) {
17555
17910
  if (s0 === peg$FAILED) {
17556
17911
  s1 = peg$FAILED;
17557
17912
  if (peg$silentFails === 0) {
17558
- peg$fail(peg$c1478);
17913
+ peg$fail(peg$c1494);
17559
17914
  }
17560
17915
  }
17561
17916
  return s0;
@@ -17569,14 +17924,14 @@ function peg$parse(input, options) {
17569
17924
  s1 = null;
17570
17925
  }
17571
17926
  if (s1 !== peg$FAILED) {
17572
- if (input.substr(peg$currPos, 12) === peg$c1483) {
17573
- s2 = peg$c1483;
17927
+ if (input.substr(peg$currPos, 12) === peg$c1499) {
17928
+ s2 = peg$c1499;
17574
17929
  peg$currPos += 12;
17575
17930
  }
17576
17931
  else {
17577
17932
  s2 = peg$FAILED;
17578
17933
  if (peg$silentFails === 0) {
17579
- peg$fail(peg$c1484);
17934
+ peg$fail(peg$c1500);
17580
17935
  }
17581
17936
  }
17582
17937
  if (s2 !== peg$FAILED) {
@@ -17625,7 +17980,7 @@ function peg$parse(input, options) {
17625
17980
  }
17626
17981
  if (s9 !== peg$FAILED) {
17627
17982
  peg$savedPos = s0;
17628
- s1 = peg$c1485(s6);
17983
+ s1 = peg$c1501(s6);
17629
17984
  s0 = s1;
17630
17985
  }
17631
17986
  else {
@@ -17676,7 +18031,7 @@ function peg$parse(input, options) {
17676
18031
  if (s0 === peg$FAILED) {
17677
18032
  s1 = peg$FAILED;
17678
18033
  if (peg$silentFails === 0) {
17679
- peg$fail(peg$c1482);
18034
+ peg$fail(peg$c1498);
17680
18035
  }
17681
18036
  }
17682
18037
  return s0;
@@ -17690,14 +18045,14 @@ function peg$parse(input, options) {
17690
18045
  s1 = null;
17691
18046
  }
17692
18047
  if (s1 !== peg$FAILED) {
17693
- if (input.substr(peg$currPos, 5) === peg$c1487) {
17694
- s2 = peg$c1487;
18048
+ if (input.substr(peg$currPos, 5) === peg$c1503) {
18049
+ s2 = peg$c1503;
17695
18050
  peg$currPos += 5;
17696
18051
  }
17697
18052
  else {
17698
18053
  s2 = peg$FAILED;
17699
18054
  if (peg$silentFails === 0) {
17700
- peg$fail(peg$c1488);
18055
+ peg$fail(peg$c1504);
17701
18056
  }
17702
18057
  }
17703
18058
  if (s2 !== peg$FAILED) {
@@ -17746,7 +18101,7 @@ function peg$parse(input, options) {
17746
18101
  }
17747
18102
  if (s9 !== peg$FAILED) {
17748
18103
  peg$savedPos = s0;
17749
- s1 = peg$c1489(s6);
18104
+ s1 = peg$c1505(s6);
17750
18105
  s0 = s1;
17751
18106
  }
17752
18107
  else {
@@ -17797,7 +18152,7 @@ function peg$parse(input, options) {
17797
18152
  if (s0 === peg$FAILED) {
17798
18153
  s1 = peg$FAILED;
17799
18154
  if (peg$silentFails === 0) {
17800
- peg$fail(peg$c1486);
18155
+ peg$fail(peg$c1502);
17801
18156
  }
17802
18157
  }
17803
18158
  return s0;
@@ -17811,14 +18166,14 @@ function peg$parse(input, options) {
17811
18166
  s1 = null;
17812
18167
  }
17813
18168
  if (s1 !== peg$FAILED) {
17814
- if (input.substr(peg$currPos, 7) === peg$c1491) {
17815
- s2 = peg$c1491;
18169
+ if (input.substr(peg$currPos, 7) === peg$c1507) {
18170
+ s2 = peg$c1507;
17816
18171
  peg$currPos += 7;
17817
18172
  }
17818
18173
  else {
17819
18174
  s2 = peg$FAILED;
17820
18175
  if (peg$silentFails === 0) {
17821
- peg$fail(peg$c1492);
18176
+ peg$fail(peg$c1508);
17822
18177
  }
17823
18178
  }
17824
18179
  if (s2 !== peg$FAILED) {
@@ -17867,7 +18222,7 @@ function peg$parse(input, options) {
17867
18222
  }
17868
18223
  if (s9 !== peg$FAILED) {
17869
18224
  peg$savedPos = s0;
17870
- s1 = peg$c1493(s6);
18225
+ s1 = peg$c1509(s6);
17871
18226
  s0 = s1;
17872
18227
  }
17873
18228
  else {
@@ -17918,7 +18273,7 @@ function peg$parse(input, options) {
17918
18273
  if (s0 === peg$FAILED) {
17919
18274
  s1 = peg$FAILED;
17920
18275
  if (peg$silentFails === 0) {
17921
- peg$fail(peg$c1490);
18276
+ peg$fail(peg$c1506);
17922
18277
  }
17923
18278
  }
17924
18279
  return s0;
@@ -17988,7 +18343,7 @@ function peg$parse(input, options) {
17988
18343
  }
17989
18344
  if (s9 !== peg$FAILED) {
17990
18345
  peg$savedPos = s0;
17991
- s1 = peg$c1495(s6);
18346
+ s1 = peg$c1511(s6);
17992
18347
  s0 = s1;
17993
18348
  }
17994
18349
  else {
@@ -18042,14 +18397,14 @@ function peg$parse(input, options) {
18042
18397
  s1 = null;
18043
18398
  }
18044
18399
  if (s1 !== peg$FAILED) {
18045
- if (input.substr(peg$currPos, 9) === peg$c1496) {
18046
- s2 = peg$c1496;
18400
+ if (input.substr(peg$currPos, 9) === peg$c1512) {
18401
+ s2 = peg$c1512;
18047
18402
  peg$currPos += 9;
18048
18403
  }
18049
18404
  else {
18050
18405
  s2 = peg$FAILED;
18051
18406
  if (peg$silentFails === 0) {
18052
- peg$fail(peg$c1497);
18407
+ peg$fail(peg$c1513);
18053
18408
  }
18054
18409
  }
18055
18410
  if (s2 !== peg$FAILED) {
@@ -18098,7 +18453,7 @@ function peg$parse(input, options) {
18098
18453
  }
18099
18454
  if (s9 !== peg$FAILED) {
18100
18455
  peg$savedPos = s0;
18101
- s1 = peg$c1495(s6);
18456
+ s1 = peg$c1511(s6);
18102
18457
  s0 = s1;
18103
18458
  }
18104
18459
  else {
@@ -18150,7 +18505,7 @@ function peg$parse(input, options) {
18150
18505
  if (s0 === peg$FAILED) {
18151
18506
  s1 = peg$FAILED;
18152
18507
  if (peg$silentFails === 0) {
18153
- peg$fail(peg$c1494);
18508
+ peg$fail(peg$c1510);
18154
18509
  }
18155
18510
  }
18156
18511
  return s0;
@@ -18164,14 +18519,14 @@ function peg$parse(input, options) {
18164
18519
  s1 = null;
18165
18520
  }
18166
18521
  if (s1 !== peg$FAILED) {
18167
- if (input.substr(peg$currPos, 5) === peg$c1499) {
18168
- s2 = peg$c1499;
18522
+ if (input.substr(peg$currPos, 5) === peg$c1515) {
18523
+ s2 = peg$c1515;
18169
18524
  peg$currPos += 5;
18170
18525
  }
18171
18526
  else {
18172
18527
  s2 = peg$FAILED;
18173
18528
  if (peg$silentFails === 0) {
18174
- peg$fail(peg$c1500);
18529
+ peg$fail(peg$c1516);
18175
18530
  }
18176
18531
  }
18177
18532
  if (s2 !== peg$FAILED) {
@@ -18220,7 +18575,7 @@ function peg$parse(input, options) {
18220
18575
  }
18221
18576
  if (s9 !== peg$FAILED) {
18222
18577
  peg$savedPos = s0;
18223
- s1 = peg$c1501(s6);
18578
+ s1 = peg$c1517(s6);
18224
18579
  s0 = s1;
18225
18580
  }
18226
18581
  else {
@@ -18271,7 +18626,7 @@ function peg$parse(input, options) {
18271
18626
  if (s0 === peg$FAILED) {
18272
18627
  s1 = peg$FAILED;
18273
18628
  if (peg$silentFails === 0) {
18274
- peg$fail(peg$c1498);
18629
+ peg$fail(peg$c1514);
18275
18630
  }
18276
18631
  }
18277
18632
  return s0;
@@ -18285,14 +18640,14 @@ function peg$parse(input, options) {
18285
18640
  s1 = null;
18286
18641
  }
18287
18642
  if (s1 !== peg$FAILED) {
18288
- if (input.substr(peg$currPos, 3) === peg$c1503) {
18289
- s2 = peg$c1503;
18643
+ if (input.substr(peg$currPos, 3) === peg$c1519) {
18644
+ s2 = peg$c1519;
18290
18645
  peg$currPos += 3;
18291
18646
  }
18292
18647
  else {
18293
18648
  s2 = peg$FAILED;
18294
18649
  if (peg$silentFails === 0) {
18295
- peg$fail(peg$c1504);
18650
+ peg$fail(peg$c1520);
18296
18651
  }
18297
18652
  }
18298
18653
  if (s2 !== peg$FAILED) {
@@ -18341,7 +18696,7 @@ function peg$parse(input, options) {
18341
18696
  }
18342
18697
  if (s9 !== peg$FAILED) {
18343
18698
  peg$savedPos = s0;
18344
- s1 = peg$c1505(s6);
18699
+ s1 = peg$c1521(s6);
18345
18700
  s0 = s1;
18346
18701
  }
18347
18702
  else {
@@ -18392,7 +18747,7 @@ function peg$parse(input, options) {
18392
18747
  if (s0 === peg$FAILED) {
18393
18748
  s1 = peg$FAILED;
18394
18749
  if (peg$silentFails === 0) {
18395
- peg$fail(peg$c1502);
18750
+ peg$fail(peg$c1518);
18396
18751
  }
18397
18752
  }
18398
18753
  return s0;
@@ -18406,14 +18761,14 @@ function peg$parse(input, options) {
18406
18761
  s1 = null;
18407
18762
  }
18408
18763
  if (s1 !== peg$FAILED) {
18409
- if (input.substr(peg$currPos, 8) === peg$c1507) {
18410
- s2 = peg$c1507;
18764
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
18765
+ s2 = peg$c1523;
18411
18766
  peg$currPos += 8;
18412
18767
  }
18413
18768
  else {
18414
18769
  s2 = peg$FAILED;
18415
18770
  if (peg$silentFails === 0) {
18416
- peg$fail(peg$c1508);
18771
+ peg$fail(peg$c1524);
18417
18772
  }
18418
18773
  }
18419
18774
  if (s2 !== peg$FAILED) {
@@ -18466,7 +18821,7 @@ function peg$parse(input, options) {
18466
18821
  }
18467
18822
  if (s11 !== peg$FAILED) {
18468
18823
  peg$savedPos = s0;
18469
- s1 = peg$c1509(s6, s8);
18824
+ s1 = peg$c1525(s6, s8);
18470
18825
  s0 = s1;
18471
18826
  }
18472
18827
  else {
@@ -18530,14 +18885,14 @@ function peg$parse(input, options) {
18530
18885
  s1 = null;
18531
18886
  }
18532
18887
  if (s1 !== peg$FAILED) {
18533
- if (input.substr(peg$currPos, 8) === peg$c1507) {
18534
- s2 = peg$c1507;
18888
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
18889
+ s2 = peg$c1523;
18535
18890
  peg$currPos += 8;
18536
18891
  }
18537
18892
  else {
18538
18893
  s2 = peg$FAILED;
18539
18894
  if (peg$silentFails === 0) {
18540
- peg$fail(peg$c1508);
18895
+ peg$fail(peg$c1524);
18541
18896
  }
18542
18897
  }
18543
18898
  if (s2 !== peg$FAILED) {
@@ -18570,14 +18925,14 @@ function peg$parse(input, options) {
18570
18925
  if (s8 !== peg$FAILED) {
18571
18926
  s9 = peg$parseWS();
18572
18927
  if (s9 !== peg$FAILED) {
18573
- if (input.substr(peg$currPos, 8) === peg$c1510) {
18574
- s10 = peg$c1510;
18928
+ if (input.substr(peg$currPos, 8) === peg$c1526) {
18929
+ s10 = peg$c1526;
18575
18930
  peg$currPos += 8;
18576
18931
  }
18577
18932
  else {
18578
18933
  s10 = peg$FAILED;
18579
18934
  if (peg$silentFails === 0) {
18580
- peg$fail(peg$c1511);
18935
+ peg$fail(peg$c1527);
18581
18936
  }
18582
18937
  }
18583
18938
  if (s10 !== peg$FAILED) {
@@ -18603,7 +18958,7 @@ function peg$parse(input, options) {
18603
18958
  }
18604
18959
  if (s13 !== peg$FAILED) {
18605
18960
  peg$savedPos = s0;
18606
- s1 = peg$c1512(s6, s8);
18961
+ s1 = peg$c1528(s6, s8);
18607
18962
  s0 = s1;
18608
18963
  }
18609
18964
  else {
@@ -18675,7 +19030,7 @@ function peg$parse(input, options) {
18675
19030
  if (s0 === peg$FAILED) {
18676
19031
  s1 = peg$FAILED;
18677
19032
  if (peg$silentFails === 0) {
18678
- peg$fail(peg$c1506);
19033
+ peg$fail(peg$c1522);
18679
19034
  }
18680
19035
  }
18681
19036
  return s0;
@@ -18855,7 +19210,7 @@ function peg$parse(input, options) {
18855
19210
  }
18856
19211
  if (s11 !== peg$FAILED) {
18857
19212
  peg$savedPos = s0;
18858
- s1 = peg$c1513(s4, s8);
19213
+ s1 = peg$c1529(s4, s8);
18859
19214
  s0 = s1;
18860
19215
  }
18861
19216
  else {
@@ -18923,13 +19278,13 @@ function peg$parse(input, options) {
18923
19278
  }
18924
19279
  if (s1 !== peg$FAILED) {
18925
19280
  if (input.charCodeAt(peg$currPos) === 38) {
18926
- s2 = peg$c1514;
19281
+ s2 = peg$c1530;
18927
19282
  peg$currPos++;
18928
19283
  }
18929
19284
  else {
18930
19285
  s2 = peg$FAILED;
18931
19286
  if (peg$silentFails === 0) {
18932
- peg$fail(peg$c1515);
19287
+ peg$fail(peg$c1531);
18933
19288
  }
18934
19289
  }
18935
19290
  if (s2 !== peg$FAILED) {
@@ -18985,7 +19340,7 @@ function peg$parse(input, options) {
18985
19340
  }
18986
19341
  if (s11 !== peg$FAILED) {
18987
19342
  peg$savedPos = s0;
18988
- s1 = peg$c1516(s4, s8);
19343
+ s1 = peg$c1532(s4, s8);
18989
19344
  s0 = s1;
18990
19345
  }
18991
19346
  else {
@@ -19052,14 +19407,14 @@ function peg$parse(input, options) {
19052
19407
  s1 = null;
19053
19408
  }
19054
19409
  if (s1 !== peg$FAILED) {
19055
- if (input.substr(peg$currPos, 8) === peg$c1507) {
19056
- s2 = peg$c1507;
19410
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
19411
+ s2 = peg$c1523;
19057
19412
  peg$currPos += 8;
19058
19413
  }
19059
19414
  else {
19060
19415
  s2 = peg$FAILED;
19061
19416
  if (peg$silentFails === 0) {
19062
- peg$fail(peg$c1508);
19417
+ peg$fail(peg$c1524);
19063
19418
  }
19064
19419
  }
19065
19420
  if (s2 !== peg$FAILED) {
@@ -19086,14 +19441,14 @@ function peg$parse(input, options) {
19086
19441
  if (s8 !== peg$FAILED) {
19087
19442
  s9 = peg$parseWS();
19088
19443
  if (s9 !== peg$FAILED) {
19089
- if (input.substr(peg$currPos, 8) === peg$c1510) {
19090
- s10 = peg$c1510;
19444
+ if (input.substr(peg$currPos, 8) === peg$c1526) {
19445
+ s10 = peg$c1526;
19091
19446
  peg$currPos += 8;
19092
19447
  }
19093
19448
  else {
19094
19449
  s10 = peg$FAILED;
19095
19450
  if (peg$silentFails === 0) {
19096
- peg$fail(peg$c1511);
19451
+ peg$fail(peg$c1527);
19097
19452
  }
19098
19453
  }
19099
19454
  if (s10 !== peg$FAILED) {
@@ -19119,7 +19474,7 @@ function peg$parse(input, options) {
19119
19474
  }
19120
19475
  if (s13 !== peg$FAILED) {
19121
19476
  peg$savedPos = s0;
19122
- s1 = peg$c1517(s4, s8);
19477
+ s1 = peg$c1533(s4, s8);
19123
19478
  s0 = s1;
19124
19479
  }
19125
19480
  else {
@@ -19193,14 +19548,14 @@ function peg$parse(input, options) {
19193
19548
  s1 = null;
19194
19549
  }
19195
19550
  if (s1 !== peg$FAILED) {
19196
- if (input.substr(peg$currPos, 8) === peg$c1507) {
19197
- s2 = peg$c1507;
19551
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
19552
+ s2 = peg$c1523;
19198
19553
  peg$currPos += 8;
19199
19554
  }
19200
19555
  else {
19201
19556
  s2 = peg$FAILED;
19202
19557
  if (peg$silentFails === 0) {
19203
- peg$fail(peg$c1508);
19558
+ peg$fail(peg$c1524);
19204
19559
  }
19205
19560
  }
19206
19561
  if (s2 !== peg$FAILED) {
@@ -19210,14 +19565,14 @@ function peg$parse(input, options) {
19210
19565
  if (s4 !== peg$FAILED) {
19211
19566
  s5 = peg$parseWS();
19212
19567
  if (s5 !== peg$FAILED) {
19213
- if (input.substr(peg$currPos, 8) === peg$c1510) {
19214
- s6 = peg$c1510;
19568
+ if (input.substr(peg$currPos, 8) === peg$c1526) {
19569
+ s6 = peg$c1526;
19215
19570
  peg$currPos += 8;
19216
19571
  }
19217
19572
  else {
19218
19573
  s6 = peg$FAILED;
19219
19574
  if (peg$silentFails === 0) {
19220
- peg$fail(peg$c1511);
19575
+ peg$fail(peg$c1527);
19221
19576
  }
19222
19577
  }
19223
19578
  if (s6 !== peg$FAILED) {
@@ -19243,7 +19598,7 @@ function peg$parse(input, options) {
19243
19598
  }
19244
19599
  if (s9 !== peg$FAILED) {
19245
19600
  peg$savedPos = s0;
19246
- s1 = peg$c1518(s4);
19601
+ s1 = peg$c1534(s4);
19247
19602
  s0 = s1;
19248
19603
  }
19249
19604
  else {
@@ -19297,14 +19652,14 @@ function peg$parse(input, options) {
19297
19652
  s1 = null;
19298
19653
  }
19299
19654
  if (s1 !== peg$FAILED) {
19300
- if (input.substr(peg$currPos, 8) === peg$c1507) {
19301
- s2 = peg$c1507;
19655
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
19656
+ s2 = peg$c1523;
19302
19657
  peg$currPos += 8;
19303
19658
  }
19304
19659
  else {
19305
19660
  s2 = peg$FAILED;
19306
19661
  if (peg$silentFails === 0) {
19307
- peg$fail(peg$c1508);
19662
+ peg$fail(peg$c1524);
19308
19663
  }
19309
19664
  }
19310
19665
  if (s2 !== peg$FAILED) {
@@ -19351,7 +19706,7 @@ function peg$parse(input, options) {
19351
19706
  }
19352
19707
  if (s11 !== peg$FAILED) {
19353
19708
  peg$savedPos = s0;
19354
- s1 = peg$c1519(s4, s8);
19709
+ s1 = peg$c1535(s4, s8);
19355
19710
  s0 = s1;
19356
19711
  }
19357
19712
  else {
@@ -19415,14 +19770,14 @@ function peg$parse(input, options) {
19415
19770
  s1 = null;
19416
19771
  }
19417
19772
  if (s1 !== peg$FAILED) {
19418
- if (input.substr(peg$currPos, 8) === peg$c1507) {
19419
- s2 = peg$c1507;
19773
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
19774
+ s2 = peg$c1523;
19420
19775
  peg$currPos += 8;
19421
19776
  }
19422
19777
  else {
19423
19778
  s2 = peg$FAILED;
19424
19779
  if (peg$silentFails === 0) {
19425
- peg$fail(peg$c1508);
19780
+ peg$fail(peg$c1524);
19426
19781
  }
19427
19782
  }
19428
19783
  if (s2 !== peg$FAILED) {
@@ -19452,7 +19807,7 @@ function peg$parse(input, options) {
19452
19807
  }
19453
19808
  if (s7 !== peg$FAILED) {
19454
19809
  peg$savedPos = s0;
19455
- s1 = peg$c1520(s4);
19810
+ s1 = peg$c1536(s4);
19456
19811
  s0 = s1;
19457
19812
  }
19458
19813
  else {
@@ -19497,14 +19852,14 @@ function peg$parse(input, options) {
19497
19852
  function peg$parseRegularArrangeDeclaration() {
19498
19853
  var s0, s1, s2, s3, s4, s5, s6;
19499
19854
  s0 = peg$currPos;
19500
- if (input.substr(peg$currPos, 7) === peg$c1521) {
19501
- s1 = peg$c1521;
19855
+ if (input.substr(peg$currPos, 7) === peg$c1537) {
19856
+ s1 = peg$c1537;
19502
19857
  peg$currPos += 7;
19503
19858
  }
19504
19859
  else {
19505
19860
  s1 = peg$FAILED;
19506
19861
  if (peg$silentFails === 0) {
19507
- peg$fail(peg$c1522);
19862
+ peg$fail(peg$c1538);
19508
19863
  }
19509
19864
  }
19510
19865
  if (s1 !== peg$FAILED) {
@@ -19537,7 +19892,7 @@ function peg$parse(input, options) {
19537
19892
  }
19538
19893
  if (s6 !== peg$FAILED) {
19539
19894
  peg$savedPos = s0;
19540
- s1 = peg$c1523(s3);
19895
+ s1 = peg$c1539(s3);
19541
19896
  s0 = s1;
19542
19897
  }
19543
19898
  else {
@@ -19574,14 +19929,14 @@ function peg$parse(input, options) {
19574
19929
  function peg$parseArrangeStartDeclaration() {
19575
19930
  var s0, s1, s2, s3, s4, s5, s6;
19576
19931
  s0 = peg$currPos;
19577
- if (input.substr(peg$currPos, 13) === peg$c1524) {
19578
- s1 = peg$c1524;
19932
+ if (input.substr(peg$currPos, 13) === peg$c1540) {
19933
+ s1 = peg$c1540;
19579
19934
  peg$currPos += 13;
19580
19935
  }
19581
19936
  else {
19582
19937
  s1 = peg$FAILED;
19583
19938
  if (peg$silentFails === 0) {
19584
- peg$fail(peg$c1525);
19939
+ peg$fail(peg$c1541);
19585
19940
  }
19586
19941
  }
19587
19942
  if (s1 !== peg$FAILED) {
@@ -19614,7 +19969,7 @@ function peg$parse(input, options) {
19614
19969
  }
19615
19970
  if (s6 !== peg$FAILED) {
19616
19971
  peg$savedPos = s0;
19617
- s1 = peg$c1526(s3);
19972
+ s1 = peg$c1542(s3);
19618
19973
  s0 = s1;
19619
19974
  }
19620
19975
  else {
@@ -19651,14 +20006,14 @@ function peg$parse(input, options) {
19651
20006
  function peg$parseArrangeEndDeclaration() {
19652
20007
  var s0, s1, s2, s3, s4, s5, s6;
19653
20008
  s0 = peg$currPos;
19654
- if (input.substr(peg$currPos, 11) === peg$c1527) {
19655
- s1 = peg$c1527;
20009
+ if (input.substr(peg$currPos, 11) === peg$c1543) {
20010
+ s1 = peg$c1543;
19656
20011
  peg$currPos += 11;
19657
20012
  }
19658
20013
  else {
19659
20014
  s1 = peg$FAILED;
19660
20015
  if (peg$silentFails === 0) {
19661
- peg$fail(peg$c1528);
20016
+ peg$fail(peg$c1544);
19662
20017
  }
19663
20018
  }
19664
20019
  if (s1 !== peg$FAILED) {
@@ -19691,7 +20046,7 @@ function peg$parse(input, options) {
19691
20046
  }
19692
20047
  if (s6 !== peg$FAILED) {
19693
20048
  peg$savedPos = s0;
19694
- s1 = peg$c1529(s3);
20049
+ s1 = peg$c1545(s3);
19695
20050
  s0 = s1;
19696
20051
  }
19697
20052
  else {
@@ -19738,7 +20093,7 @@ function peg$parse(input, options) {
19738
20093
  peg$silentFails--;
19739
20094
  if (s0 === peg$FAILED) {
19740
20095
  if (peg$silentFails === 0) {
19741
- peg$fail(peg$c1530);
20096
+ peg$fail(peg$c1546);
19742
20097
  }
19743
20098
  }
19744
20099
  return s0;
@@ -21059,10 +21414,10 @@ function compile_rule_handler(rule) {
21059
21414
  'graph_layout', 'start_states', 'end_states', 'failed_outputs', 'machine_name', 'machine_version',
21060
21415
  'machine_comment', 'machine_author', 'machine_contributor', 'machine_definition',
21061
21416
  'machine_reference', 'machine_license', 'fsl_version', 'state_config', 'theme',
21062
- 'flow', 'dot_preamble', 'allows_override', 'default_state_config',
21417
+ 'flow', 'dot_preamble', 'allows_override', 'allow_islands', 'default_state_config',
21063
21418
  'default_start_state_config', 'default_end_state_config',
21064
21419
  'default_hooked_state_config', 'default_active_state_config',
21065
- 'default_terminal_state_config', 'npm_name'
21420
+ 'default_terminal_state_config', 'npm_name', 'default_size'
21066
21421
  ];
21067
21422
  if (tautologies.includes(rule.key)) {
21068
21423
  return { agg_as: rule.key, val: rule.value };
@@ -21139,6 +21494,7 @@ function compile(tree) {
21139
21494
  machine_name: [],
21140
21495
  machine_reference: [],
21141
21496
  npm_name: [],
21497
+ default_size: [],
21142
21498
  property_definition: [],
21143
21499
  state_property: {},
21144
21500
  theme: [],
@@ -21154,7 +21510,8 @@ function compile(tree) {
21154
21510
  default_terminal_state_config: [],
21155
21511
  default_start_state_config: [],
21156
21512
  default_end_state_config: [],
21157
- allows_override: []
21513
+ allows_override: [],
21514
+ allow_islands: []
21158
21515
  };
21159
21516
  tree.map((tr) => {
21160
21517
  const rule = compile_rule_handler(tr), agg_as = rule.agg_as, val = rule.val; // TODO FIXME no any
@@ -21175,7 +21532,7 @@ function compile(tree) {
21175
21532
  const oneOnlyKeys = [
21176
21533
  'graph_layout', 'machine_name', 'machine_version', 'machine_comment',
21177
21534
  'fsl_version', 'machine_license', 'machine_definition', 'machine_language',
21178
- 'flow', 'dot_preamble', 'allows_override', 'npm_name'
21535
+ 'flow', 'dot_preamble', 'allows_override', 'allow_islands', 'npm_name', 'default_size'
21179
21536
  ];
21180
21537
  oneOnlyKeys.map((oneOnlyKey) => {
21181
21538
  if (results[oneOnlyKey].length > 1) {
@@ -21690,7 +22047,7 @@ var constants = /*#__PURE__*/Object.freeze({
21690
22047
  * Useful for runtime diagnostics and for embedding in serialized machine
21691
22048
  * snapshots so that deserializers can detect version-skew.
21692
22049
  */
21693
- const version = "5.142.2";
22050
+ const version = "5.142.4";
21694
22051
 
21695
22052
  // whargarbl lots of these return arrays could/should be sets
21696
22053
  const { state_name_chars, state_name_first_chars, action_label_chars } = constants;
@@ -21880,9 +22237,56 @@ function state_style_condense(jssk, machine) {
21880
22237
  * `.data()`. Defaults to `undefined` when no data is used.
21881
22238
  *
21882
22239
  */
22240
+ /*********
22241
+ *
22242
+ * Partition a state graph into its connected components using an undirected
22243
+ * BFS over state names. Each edge (from, to) is treated as bidirectional so
22244
+ * that island membership is topology-based rather than flow-based.
22245
+ *
22246
+ * Used at construction time to enforce the `allow_islands` constraint.
22247
+ *
22248
+ * @param states The machine's state map (keys are state names).
22249
+ * @param edges The machine's edge list; only `from` and `to` are used.
22250
+ * @returns An array of components, each component an array of state names.
22251
+ *
22252
+ */
22253
+ function find_connected_components(states, edges) {
22254
+ // Build undirected adjacency list
22255
+ const adj = new Map();
22256
+ for (const name of states.keys()) {
22257
+ adj.set(name, new Set());
22258
+ }
22259
+ for (const edge of edges) {
22260
+ adj.get(edge.from).add(edge.to);
22261
+ adj.get(edge.to).add(edge.from);
22262
+ }
22263
+ const visited = new Set();
22264
+ const result = [];
22265
+ for (const start of states.keys()) {
22266
+ if (visited.has(start)) {
22267
+ continue;
22268
+ }
22269
+ // BFS to collect this component
22270
+ const component = [];
22271
+ const queue = [start];
22272
+ visited.add(start);
22273
+ while (queue.length > 0) {
22274
+ const node = queue.shift();
22275
+ component.push(node);
22276
+ for (const neighbor of adj.get(node)) {
22277
+ if (!visited.has(neighbor)) {
22278
+ visited.add(neighbor);
22279
+ queue.push(neighbor);
22280
+ }
22281
+ }
22282
+ }
22283
+ result.push(component);
22284
+ }
22285
+ return result;
22286
+ }
21883
22287
  class Machine {
21884
22288
  // whargarbl this badly needs to be broken up, monolith master
21885
- constructor({ start_states, end_states = [], failed_outputs = [], initial_state, start_states_no_enforce, complete = [], transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, npm_name, state_declaration, property_definition, state_property, fsl_version, dot_preamble = undefined, arrange_declaration = [], arrange_start_declaration = [], arrange_end_declaration = [], theme = ['default'], flow = 'down', graph_layout = 'dot', instance_name, history, data, default_state_config, default_active_state_config, default_hooked_state_config, default_terminal_state_config, default_start_state_config, default_end_state_config, allows_override, config_allows_override, rng_seed, time_source, timeout_source, clear_timeout_source }) {
22289
+ constructor({ start_states, end_states = [], failed_outputs = [], initial_state, start_states_no_enforce, complete = [], transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, npm_name, default_size, state_declaration, property_definition, state_property, fsl_version, dot_preamble = undefined, arrange_declaration = [], arrange_start_declaration = [], arrange_end_declaration = [], theme = ['default'], flow = 'down', graph_layout = 'dot', instance_name, history, data, default_state_config, default_active_state_config, default_hooked_state_config, default_terminal_state_config, default_start_state_config, default_end_state_config, allows_override, config_allows_override, allow_islands, rng_seed, time_source, timeout_source, clear_timeout_source }) {
21886
22290
  this._time_source = () => new Date().getTime();
21887
22291
  this._create_started = this._time_source();
21888
22292
  this._instance_name = instance_name;
@@ -21907,6 +22311,7 @@ class Machine {
21907
22311
  this._machine_name = machine_name;
21908
22312
  this._machine_version = machine_version;
21909
22313
  this._npm_name = npm_name;
22314
+ this._default_size = default_size;
21910
22315
  this._raw_state_declaration = state_declaration || [];
21911
22316
  this._fsl_version = fsl_version;
21912
22317
  this._arrange_declaration = arrange_declaration;
@@ -21947,6 +22352,7 @@ class Machine {
21947
22352
  // no need for a boolean for single hooks, just test for undefinedness
21948
22353
  this._code_allows_override = allows_override;
21949
22354
  this._config_allows_override = config_allows_override;
22355
+ this._allow_islands = allow_islands !== null && allow_islands !== void 0 ? allow_islands : true;
21950
22356
  if ((allows_override === false) && (config_allows_override === true)) {
21951
22357
  throw new JssmError(undefined, "Code specifies no override, but config tries to permit; config may not be less strict than code");
21952
22358
  }
@@ -22205,6 +22611,24 @@ class Machine {
22205
22611
  if (!(start_states.length === this._start_states.size)) {
22206
22612
  throw new JssmError(this, `Start states cannot be repeated`);
22207
22613
  }
22614
+ // assert connectivity constraints imposed by allow_islands
22615
+ if (this._allow_islands !== true) {
22616
+ const components = find_connected_components(this._states, this._edges);
22617
+ if (this._allow_islands === false) {
22618
+ if (components.length > 1) {
22619
+ throw new JssmError(this, `allow_islands is false but the state graph has ${components.length} disconnected components`);
22620
+ }
22621
+ }
22622
+ else {
22623
+ // 'with_start': every component must contain at least one start state
22624
+ for (const component of components) {
22625
+ const has_start = component.some(s => this._start_states.has(s));
22626
+ if (!has_start) {
22627
+ throw new JssmError(this, `allow_islands is 'with_start' but a connected component has no start state: [${[...component].join(', ')}]`);
22628
+ }
22629
+ }
22630
+ }
22631
+ }
22208
22632
  this._created = this._time_source();
22209
22633
  this.auto_set_state_timeout();
22210
22634
  this._arrange_declaration.forEach((arrange_pair) => arrange_pair.forEach((possibleState) => {
@@ -22699,6 +23123,23 @@ class Machine {
22699
23123
  npm_name() {
22700
23124
  return this._npm_name;
22701
23125
  }
23126
+ /** Get the render-size hint for the machine's visualization. Set via the
23127
+ * FSL `default_size` directive. Returns `undefined` when not present.
23128
+ *
23129
+ * The three FSL forms each produce a different subset of fields:
23130
+ *
23131
+ * - `default_size: 800;` → `{ width: 800 }`
23132
+ * - `default_size: 800 600;` → `{ width: 800, height: 600 }`
23133
+ * - `default_size: height 600;` → `{ height: 600 }`
23134
+ *
23135
+ * This is a hint, not a hard constraint. Renderers may ignore it.
23136
+ *
23137
+ * @returns The size-hint object, or `undefined` if not set.
23138
+ * @see npm_name
23139
+ */
23140
+ default_size() {
23141
+ return this._default_size;
23142
+ }
22702
23143
  /** Get the machine's version string. Set via the FSL `machine_version` directive.
22703
23144
  * @returns The version string.
22704
23145
  */
@@ -22925,6 +23366,19 @@ class Machine {
22925
23366
  return false;
22926
23367
  }
22927
23368
  }
23369
+ /*********
23370
+ *
23371
+ * Return the effective island policy for this machine. `true` means
23372
+ * disconnected components are allowed (the default), `false` requires a
23373
+ * single connected component, and `'with_start'` allows islands only when
23374
+ * every component contains at least one start state.
23375
+ *
23376
+ * @returns The island policy stored in the machine.
23377
+ *
23378
+ */
23379
+ get allow_islands() {
23380
+ return this._allow_islands;
23381
+ }
22928
23382
  /** List all available theme names.
22929
23383
  * @returns An array of theme name strings.
22930
23384
  */