@prefecthq/graphs 3.0.2 → 3.0.3
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/assets/{runGraph.worker-wjnyJFtp.js.map → runGraph.worker-C4c20Jgu.js.map} +1 -1
- package/dist/graphs.mjs +517 -517
- package/dist/graphs.mjs.map +1 -1
- package/dist/graphs.umd.js +26 -26
- package/dist/graphs.umd.js.map +1 -1
- package/dist/types/src/models/RunGraph.d.ts +4 -4
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runGraph.worker-wjnyJFtp.js","sources":["../src/utilities/exhaustive.ts","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-scale/src/init.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-zoom/src/transform.js","../src/factories/position.ts","../src/utilities/columns.ts","../src/workers/layouts/horizontal.ts","../src/workers/layouts/nearestParentVertical.ts","../src/workers/layouts/vertical.ts","../src/workers/runGraph.worker.ts"],"sourcesContent":["export function exhaustive(value: never): void {\n throw new Error(`switch does not have case for value: ${value}`)\n}","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import { ScaleLinear, ScaleTime, scaleLinear, scaleTime } from 'd3'\nimport { HorizontalMode, VerticalMode } from '@/models/layout'\n\nexport type VerticalPositionSettings = {\n mode: VerticalMode,\n}\n\nexport type HorizontalPositionSettings = {\n mode: HorizontalMode,\n range: [number, number],\n domain: [Date, Date] | [number, number],\n}\n\nexport type HorizontalScale = ReturnType<typeof horizontalScaleFactory>\n\nexport function horizontalScaleFactory(settings: HorizontalPositionSettings): ScaleTime<number, number> | ScaleLinear<number, number> {\n if (settings.mode === 'temporal' || settings.mode === 'left-aligned') {\n return getTimeScale(settings)\n }\n\n return getLinearScale(settings)\n}\n\nfunction getTimeScale({ domain, range }: HorizontalPositionSettings): ScaleTime<number, number> {\n return scaleTime().domain(domain).range(range)\n}\n\nfunction getLinearScale({ domain, range }: HorizontalPositionSettings): ScaleLinear<number, number> {\n return scaleLinear().domain(domain).range(range)\n}","import { RunGraphData, RunGraphNodes } from '@/models/RunGraph'\n\n/**\n * A `Map` object that maps each node ID to its column.\n */\nexport type NodeColumns = Map<string, number>\n\n/**\n * Calculates the column for each node in the run graph using a faster or slower algorithm.\n *\n * This function first tries to calculate the columns using the faster `getColumnsFaster` function. If an error occurs during the calculation, it falls back to the slower `getColumnsSlower` function. The function takes in a `RunGraphData` object containing the root node IDs and nodes in the run graph.\n *\n * @param runGraphData - A `RunGraphData` object containing the root node IDs and nodes in the run graph.\n * @returns A `Map` object that maps each node ID to its column.\n */\nexport function getColumns({ root_node_ids, nodes }: RunGraphData): NodeColumns {\n try {\n return getColumnsFaster(root_node_ids, nodes)\n } catch (error) {\n console.error(error)\n return getColumnsSlower(root_node_ids, nodes)\n }\n}\n\n/**\n * Calculates the column for each node in the run graph using a faster algorithm.\n *\n * This function sets up the initial columns for the root nodes and then calls `getChildrenColumns` to process all the children.\n *\n * Performance: 200k operations per seconds processing 23 connected nodes\n * Performance: 54-58 operations per second processing 2,000 highly connected nodes.\n *\n * @param nodeIds - The IDs of the root nodes.\n * @param nodes - The nodes in the run graph.\n * @returns A `Map` object that maps each node ID to its column.\n */\nfunction getColumnsFaster(nodeIds: string[], nodes: RunGraphNodes): NodeColumns {\n const columns: NodeColumns = new Map()\n const childrenNodeIds: string[] = []\n\n for (const id of nodeIds) {\n columns.set(id, 0)\n const node = nodes.get(id)!\n\n for (const { id: childId } of node.children) {\n childrenNodeIds.push(childId)\n }\n }\n\n return getChildrenColumns(childrenNodeIds, nodes, columns)\n}\n\n/**\n * Calculates the column for each child node of the given nodes.\n *\n * This function processes the children of each node in the `nodeIds` array and calculates their columns based on the columns of their parents.\n *\n * @param nodeIds - The IDs of the nodes whose children should be processed.\n * @param nodes - The nodes in the run graph.\n * @param columns - A `Map` object that maps each node ID to its column.\n * @returns A `Map` object that maps each node ID to its column.\n * @throws An error if a node ID in `nodeIds` is not found in `nodes`.\n */\nfunction getChildrenColumns(nodeIds: string[], nodes: RunGraphNodes, columns: NodeColumns): NodeColumns {\n for (const nodeId of nodeIds) {\n if (columns.has(nodeId)) {\n continue\n }\n\n const node = nodes.get(nodeId)\n\n if (!node) {\n throw new Error('Node id not found in nodes')\n }\n\n const parentColumns: number[] = []\n\n for (const parent of node.parents) {\n\n const column = columns.get(parent.id)\n\n if (column !== undefined) {\n parentColumns.push(column)\n continue\n }\n\n getChildrenColumns([parent.id], nodes, columns)\n\n const parentColumn = columns.get(parent.id)\n\n if (parentColumn === undefined) {\n throw new Error('Could not determine parent column')\n }\n\n parentColumns.push(parentColumn)\n }\n\n const maxParentColumn = Math.max(...parentColumns)\n\n columns.set(nodeId, maxParentColumn + 1)\n\n const childNodeIds = node.children.map(({ id }) => id)\n\n if (childNodeIds.length) {\n getChildrenColumns(childNodeIds, nodes, columns)\n }\n }\n\n return columns\n}\n\n/**\n * Calculates the column for each child node of the given nodes.\n *\n * This function processes the children of each node in the `nodeIds` array and calculates their columns based on the columns of their parents.\n *\n * Performance: 45k operations per second processing 23 connected nodes\n * Performance: 23-25 operations per second processing 2,000 highly connected nodes\n *\n * @param nodeIds - The IDs of the nodes whose children should be processed.\n * @param nodes - The nodes in the run graph.\n * @param columns - A `Map` object that maps each node ID to its column.\n * @returns A `Map` object that maps each node ID to its column.\n * @throws An error if a node ID in `nodeIds` is not found in `nodes`.\n */\n// eslint-disable-next-line max-params\nfunction getColumnsSlower(nodeIds: string[], nodes: RunGraphNodes, currentColumn = 0, columns = new Map()): NodeColumns {\n for (const nodeId of nodeIds) {\n const nodeColumnAssignment = columns.get(nodeId)\n\n if (!nodeColumnAssignment || nodeColumnAssignment < currentColumn) {\n columns.set(nodeId, currentColumn)\n }\n\n const node = nodes.get(nodeId)!\n\n for (const { id: childId } of node.children) {\n getColumnsSlower([childId], nodes, currentColumn + 1, columns)\n }\n }\n\n return columns\n}","\nimport { horizontalScaleFactory } from '@/factories/position'\nimport { getColumns } from '@/utilities/columns'\nimport { ClientLayoutMessage } from '@/workers/runGraph'\n\nexport type HorizontalLayout = Map<string, {\n x: number,\n column: number,\n}>\n\nexport function getHorizontalLayout(message: ClientLayoutMessage): HorizontalLayout {\n if (message.horizontalSettings.mode === 'dependency') {\n return getHorizontalDependencyLayout(message)\n }\n\n if (message.horizontalSettings.mode === 'left-aligned') {\n return getHorizontalLeftAlignedLayout(message)\n }\n\n return getHorizontalTimeLayout(message)\n}\n\nfunction getHorizontalDependencyLayout({ data, horizontalSettings }: ClientLayoutMessage): HorizontalLayout {\n const columns = getColumns(data)\n const scale = horizontalScaleFactory(horizontalSettings)\n const layout: HorizontalLayout = new Map()\n\n for (const [nodeId] of data.nodes) {\n const column = columns.get(nodeId)\n\n if (column === undefined) {\n console.warn(`Node not found in columns: Skipping ${nodeId}`)\n continue\n }\n\n layout.set(nodeId, {\n x: scale(column),\n column,\n })\n }\n\n return layout\n}\n\nfunction getHorizontalTimeLayout({ data, horizontalSettings }: ClientLayoutMessage): HorizontalLayout {\n const scale = horizontalScaleFactory(horizontalSettings)\n const layout: HorizontalLayout = new Map()\n\n for (const [nodeId, node] of data.nodes) {\n const value = scale(new Date(node.start_time))\n\n layout.set(nodeId, {\n column: value,\n x: value,\n })\n }\n\n return layout\n}\n\nfunction getHorizontalLeftAlignedLayout({ data, horizontalSettings }: ClientLayoutMessage): HorizontalLayout {\n const scale = horizontalScaleFactory(horizontalSettings)\n const layout: HorizontalLayout = new Map()\n\n for (const [nodeId] of data.nodes) {\n layout.set(nodeId, {\n column: 0,\n x: scale(new Date(data.start_time)),\n })\n }\n\n return layout\n}","import { RunGraphNode } from '@/models'\nimport { HorizontalLayout } from '@/workers/layouts/horizontal'\nimport { VerticalLayout } from '@/workers/layouts/vertical'\nimport { ClientLayoutMessage } from '@/workers/runGraph'\n\ntype NodeShoveDirection = 1 | -1\n\nexport async function getVerticalNearestParentLayout(message: ClientLayoutMessage, horizontal: HorizontalLayout): Promise<VerticalLayout> {\n const defaultNearestParentPosition = 0\n const minimumNodeEdgeGap = 16\n const nodeShoveRecords = new Map<string, NodeShoveDirection>()\n const rowTracker = new Map<number, Set<string>>()\n let lowestRow = 0\n\n const layout: VerticalLayout = new Map()\n\n for await (const [nodeId] of message.data.nodes) {\n const node = message.data.nodes.get(nodeId)\n\n if (!node) {\n console.warn('NearestParentLayout: Node was not found in the data', nodeId)\n continue\n }\n\n const row = await getNearestParentPosition(node)\n\n setLayoutNode(nodeId, row)\n }\n\n purgeNegativeLayoutPositions()\n\n return layout\n\n async function getNearestParentPosition(node: RunGraphNode): Promise<number> {\n const { x: nodeStartX } = horizontal.get(node.id) ?? {}\n\n if (nodeStartX === undefined) {\n console.warn('NearestParentLayout: Node was not found in the horizontal layout', node.id)\n return defaultNearestParentPosition\n }\n\n // if one dependency\n if (node.parents.length === 1) {\n if (layout.has(node.parents[0].id)) {\n return await placeNearUpstreamNode(node.parents[0].id, nodeStartX)\n }\n\n console.warn('NearestParentLayout: Parent node not found in layout', node.parents[0].id)\n return defaultNearestParentPosition\n }\n\n // if more than one dependency – add to the middle of upstream dependencies\n if (node.parents.length > 0) {\n const upstreamRows = node.parents.map(({ id }) => {\n const row = layout.get(id)\n\n if (row === undefined) {\n console.warn('NearestParentLayout: Parent node not found in layout', id)\n return defaultNearestParentPosition\n }\n\n return row\n })\n\n const upstreamRowsSum = upstreamRows.reduce((sum, position) => sum + position, 0)\n const upstreamRowsAverage = upstreamRowsSum / upstreamRows.length\n const row = Math.round(upstreamRowsAverage)\n\n if (isPositionTaken(nodeStartX, row)) {\n const overlappingNodes = getOverlappingNodeIds(\n nodeStartX,\n row,\n )!\n\n const parentIds = node.parents.map(({ id }) => id)\n const overlappingParentNodes = overlappingNodes.filter(layoutId => {\n return parentIds.includes(layoutId)\n })\n\n if (overlappingParentNodes.length > 0 || overlappingNodes.length > 1) {\n // upstream node parents always win, or if there are more than one node in the way\n const [upstreamLayoutItemId] = overlappingParentNodes.length > 0\n ? overlappingParentNodes\n : overlappingNodes\n\n const shoveDirection = getShoveDirectionWeightedByDependencies(\n upstreamRows,\n row,\n nodeShoveRecords.get(upstreamLayoutItemId),\n )\n\n nodeShoveRecords.set(upstreamLayoutItemId, shoveDirection)\n\n return await placeNearUpstreamNode(upstreamLayoutItemId, nodeStartX)\n }\n\n return await argueWithCompetingUpstreamPlacement({\n competingNodeId: overlappingNodes[0],\n upstreamRows,\n nodeStartX,\n desiredRow: row,\n })\n }\n }\n\n // if zero dependencies\n return placeRootNode(nodeStartX, defaultNearestParentPosition)\n }\n\n function placeRootNode(nodeStartX: number, defaultPosition: number): number {\n if (isPositionTaken(nodeStartX, defaultPosition)) {\n return placeRootNode(nodeStartX, defaultPosition + 1)\n }\n\n return defaultPosition\n }\n\n async function placeNearUpstreamNode(upstreamNodeId: string, nodeStartX: number): Promise<number> {\n // See this diagram for how shove logic works in this scenario\n // https://www.figma.com/file/1u1oXkiYRxgtqWSRG9Yely/DAG-Design?node-id=385%3A2782&t=yRLIggko0TzbMaIG-4\n const upstreamRow = layout.get(upstreamNodeId)\n\n if (upstreamRow === undefined) {\n console.warn('NearestParentLayout: Upstream node not found in layout', upstreamNodeId)\n return defaultNearestParentPosition\n }\n\n if (!nodeShoveRecords.get(upstreamNodeId)) {\n nodeShoveRecords.set(upstreamNodeId, 1)\n }\n\n const nextDependencyShove = nodeShoveRecords.get(upstreamNodeId)!\n\n\n if (isPositionTaken(nodeStartX, upstreamRow)) {\n if (nextDependencyShove === 1 && !isPositionTaken(nodeStartX, upstreamRow + 1)) {\n nodeShoveRecords.set(upstreamNodeId, -1)\n return upstreamRow + 1\n } else if (!isPositionTaken(nodeStartX, upstreamRow - 1)) {\n nodeShoveRecords.set(upstreamNodeId, 1)\n return upstreamRow - 1\n }\n\n await shove({\n direction: nextDependencyShove,\n nodeStartX,\n desiredRow: upstreamRow + nextDependencyShove,\n })\n\n nodeShoveRecords.set(upstreamNodeId, nextDependencyShove === 1 ? -1 : 1)\n\n return upstreamRow + nextDependencyShove\n }\n return upstreamRow\n }\n\n function isPositionTaken(nodeStartX: number, row: number): boolean {\n if (layout.size === 0) {\n return false\n }\n\n let positionTaken = false\n\n const rowNodes = rowTracker.get(row) ?? []\n\n for (const nodeId of rowNodes) {\n const firstNodePosition = layout.get(nodeId)!\n const firstNodeEndX = getNodeEndX(nodeId)\n\n const overlapping = isNodesOverlapping({\n firstNodeEndX,\n firstNodeRow: firstNodePosition,\n lastNodeStartX: nodeStartX,\n lastNodeRow: row,\n })\n\n if (overlapping) {\n positionTaken = true\n break\n }\n }\n\n return positionTaken\n }\n\n type ShoveProps = {\n direction: NodeShoveDirection,\n nodeStartX: number,\n desiredRow: number,\n }\n async function shove({ direction, nodeStartX, desiredRow }: ShoveProps): Promise<void> {\n const overlappingNodeIds = getOverlappingNodeIds(nodeStartX, desiredRow)\n\n if (!overlappingNodeIds) {\n return\n }\n\n for await (const nodeId of overlappingNodeIds) {\n // push nodes and recursively shove as needed\n const overlappingRow = layout.get(nodeId)\n const { x: nodeStartX } = horizontal.get(nodeId) ?? {}\n\n if (overlappingRow === undefined || nodeStartX === undefined) {\n console.warn('NearestParentLayout - shove: Node was not found in the vertical or horizontal layout', nodeId)\n continue\n }\n\n const desiredRow = overlappingRow + direction\n\n await shove({\n direction,\n nodeStartX,\n desiredRow,\n })\n\n setLayoutNode(nodeId, desiredRow)\n }\n }\n\n type IsNodesOverlappingProps = {\n firstNodeEndX: number,\n firstNodeRow: number,\n lastNodeStartX: number,\n lastNodeRow: number,\n }\n function isNodesOverlapping({\n firstNodeEndX,\n firstNodeRow,\n lastNodeStartX,\n lastNodeRow,\n }: IsNodesOverlappingProps): boolean {\n return firstNodeRow === lastNodeRow\n && firstNodeEndX + minimumNodeEdgeGap >= lastNodeStartX\n }\n\n function getOverlappingNodeIds(nodeStartX: number, row: number): string[] | undefined {\n const overlappingNodeIds: string[] = []\n\n const rowNodes = rowTracker.get(row) ?? []\n\n for (const nodeId of rowNodes) {\n const firstNodeEndX = getNodeEndX(nodeId)\n const firstNodeRow = layout.get(nodeId)\n\n if (firstNodeRow === undefined) {\n console.warn('NearestParentLayout - getOverlappingNodeIds: Node was not found in the layout', nodeId)\n continue\n }\n\n const isItemOverlapping = isNodesOverlapping({\n firstNodeEndX,\n firstNodeRow,\n lastNodeStartX: nodeStartX,\n lastNodeRow: row,\n })\n\n if (isItemOverlapping) {\n overlappingNodeIds.push(nodeId)\n }\n }\n\n if (overlappingNodeIds.length === 0) {\n return\n }\n\n // sort last to first\n overlappingNodeIds.sort((itemAId, itemBId) => {\n const itemAEndX = getNodeEndX(itemAId)\n const itemBEndX = getNodeEndX(itemBId)\n if (itemAEndX < itemBEndX) {\n return 1\n }\n if (itemAEndX > itemBEndX) {\n return -1\n }\n return 0\n })\n\n return overlappingNodeIds\n }\n\n function getShoveDirectionWeightedByDependencies(\n parentRows: number[],\n position: number,\n defaultGravity?: NodeShoveDirection,\n ): NodeShoveDirection {\n // check if node has more connections above or below, prefer placement in that direction\n const upwardConnections = parentRows.filter((row) => row < position).length\n const downwardConnections = parentRows.filter((row) => row > position).length\n\n if (upwardConnections > downwardConnections) {\n return -1\n }\n\n return defaultGravity ?? 1\n }\n\n type ArgueWithCompetingUpstreamPlacementProps = {\n desiredRow: number,\n nodeStartX: number,\n upstreamRows: number[],\n competingNodeId: string,\n }\n async function argueWithCompetingUpstreamPlacement({\n desiredRow,\n nodeStartX,\n upstreamRows,\n competingNodeId,\n }: ArgueWithCompetingUpstreamPlacementProps): Promise<number> {\n const competitor = layout.get(competingNodeId)\n\n if (competitor === undefined) {\n console.warn('NearestParentLayout - argueWithCompetingUpstreamPlacement: Competitor node was not found in the layout', competingNodeId)\n return desiredRow\n }\n\n const [\n competitorAboveConnections,\n competitorBelowConnections,\n ] = getNodeParentDirectionCounts(competingNodeId)\n const nodeAboveConnections = upstreamRows.filter((upstreamPosition) => upstreamPosition < desiredRow).length\n const nodeBelowConnections = upstreamRows.filter((upstreamPosition) => upstreamPosition > desiredRow).length\n\n if (nodeAboveConnections > nodeBelowConnections) {\n // node has more above\n if (\n competitorAboveConnections > competitorBelowConnections && competitorAboveConnections > nodeAboveConnections\n ) {\n // competitor has more above than below, and more above than node\n // node wins, shove competitor up\n await shove({\n direction: -1,\n nodeStartX,\n desiredRow,\n })\n return desiredRow\n }\n if (competitorBelowConnections > competitorAboveConnections) {\n // competitor has more below than above\n // node wins, shove competitor down\n await shove({\n direction: 1,\n nodeStartX,\n desiredRow,\n })\n return desiredRow\n }\n\n // competitor has equal above and below, or node has more above\n // place node above competitor\n nodeShoveRecords.set(competingNodeId, -1)\n }\n\n if (nodeBelowConnections > nodeAboveConnections) {\n // node has more below\n if (\n competitorBelowConnections > competitorAboveConnections && competitorBelowConnections > nodeBelowConnections\n ) {\n // competitor has more below than above, and more below than node\n // node wins, shove competitor down\n await shove({\n direction: 1,\n nodeStartX,\n desiredRow,\n })\n return desiredRow\n }\n\n if (competitorAboveConnections > competitorBelowConnections) {\n // competitor has more above than below\n // node wins, shove competitor up\n await shove({\n direction: -1,\n nodeStartX,\n desiredRow,\n })\n return desiredRow\n }\n\n // competitor has equal above and below, or node has more below\n // place node below competitor\n nodeShoveRecords.set(competingNodeId, 1)\n }\n\n return await placeNearUpstreamNode(competingNodeId, nodeStartX)\n }\n\n function getNodeParentDirectionCounts(nodeId: string): [up: number, down: number] {\n const node = message.data.nodes.get(nodeId)\n const nodeRow = layout.get(nodeId)\n\n if (!node || nodeRow === undefined) {\n console.warn('NearestParentLayout: Node was not found in either the data or layout', nodeId)\n return [0, 0]\n }\n\n return node.parents.reduce((counts, parent) => {\n const parentRow = layout.get(parent.id)\n\n if (parentRow === undefined) {\n console.warn('NearestParentLayout - getNodeParentDirectionCounts: Parent node not found on layout data', nodeId)\n return counts\n }\n\n if (parentRow < nodeRow) {\n counts[0] += 1\n }\n\n if (parentRow > nodeRow) {\n counts[1] += 1\n }\n\n return counts\n }, [0, 0])\n }\n\n function getNodeEndX(nodeId: string): number {\n const { x: nodeStartX } = horizontal.get(nodeId) ?? {}\n const nodeWidth = message.widths.get(nodeId)\n\n if (nodeStartX === undefined || nodeWidth === undefined) {\n console.warn('NearestParentLayout: Node was not found in the horizontal layout and/or widths', nodeId)\n return 0\n }\n\n return nodeStartX + nodeWidth\n }\n\n function setLayoutNode(nodeId: string, row: number): void {\n if (row < lowestRow) {\n lowestRow = row\n }\n\n if (layout.has(nodeId)) {\n const previousRow = layout.get(nodeId)!\n rowTracker.get(previousRow)?.delete(nodeId)\n }\n\n if (!rowTracker.has(row)) {\n rowTracker.set(row, new Set())\n }\n\n rowTracker.get(row)?.add(nodeId)\n\n layout.set(nodeId, row)\n }\n\n function purgeNegativeLayoutPositions(): void {\n if (lowestRow < 0) {\n for (const [nodeId] of layout) {\n const row = layout.get(nodeId)!\n layout.set(nodeId, row + Math.abs(lowestRow))\n }\n }\n }\n}","import { HorizontalLayout } from '@/workers/layouts/horizontal'\nimport { getVerticalNearestParentLayout } from '@/workers/layouts/nearestParentVertical'\nimport { ClientLayoutMessage } from '@/workers/runGraph'\n\nexport type VerticalLayout = Map<string, number>\n\nexport async function getVerticalLayout(message: ClientLayoutMessage, horizontal: HorizontalLayout): Promise<VerticalLayout> {\n if (message.verticalSettings.mode === 'nearest-parent') {\n return await getVerticalNearestParentLayout(message, horizontal)\n }\n\n if (message.verticalSettings.mode === 'duration-sorted') {\n return getVerticalDurationSortedLayout(message)\n }\n\n return getVerticalWaterfallLayout(message)\n}\n\nfunction getVerticalWaterfallLayout(message: ClientLayoutMessage): VerticalLayout {\n const layout: VerticalLayout = new Map()\n\n let index = 0\n\n for (const [nodeId] of message.data.nodes) {\n layout.set(nodeId, index++)\n }\n\n return layout\n}\n\nfunction getVerticalDurationSortedLayout(message: ClientLayoutMessage): VerticalLayout {\n const layout: VerticalLayout = new Map()\n\n const nodes = [...message.data.nodes.values()].sort((nodeA, nodeB) => {\n const aDuration = (nodeA.end_time ? new Date(nodeA.end_time).getTime() : new Date().getTime()) - new Date(nodeA.start_time).getTime()\n const bDuration = (nodeB.end_time ? new Date(nodeB.end_time).getTime() : new Date().getTime()) - new Date(nodeB.start_time).getTime()\n\n return bDuration - aDuration\n })\n\n let index = 0\n\n for (const node of nodes) {\n layout.set(node.id, index++)\n }\n\n return layout\n}\n","import { NodesLayoutResponse } from '@/models/layout'\nimport { exhaustive } from '@/utilities/exhaustive'\nimport { getHorizontalLayout } from '@/workers/layouts/horizontal'\nimport { getVerticalLayout } from '@/workers/layouts/vertical'\nimport { WorkerMessage, ClientMessage, ClientLayoutMessage } from '@/workers/runGraph'\n\nonmessage = onMessageHandler\n\nfunction onMessageHandler({ data }: MessageEvent<ClientMessage>): void {\n const { type } = data\n\n switch (type) {\n case 'layout':\n handleLayoutMessage(data)\n return\n default:\n exhaustive(type)\n }\n}\n\nfunction post(message: WorkerMessage): void {\n postMessage(message)\n}\n\nasync function handleLayoutMessage(message: ClientLayoutMessage): Promise<void> {\n const { data } = message\n const horizontalLayout = getHorizontalLayout(message)\n const verticalLayout = await getVerticalLayout(message, horizontalLayout)\n const positions: NodesLayoutResponse['positions'] = new Map()\n\n let maxRow = 0\n let maxColumn = 0\n\n for (const [nodeId, node] of data.nodes) {\n const horizontal = horizontalLayout.get(nodeId)\n const vertical = verticalLayout.get(nodeId)\n\n if (horizontal === undefined) {\n console.warn(`NodeId not found in horizontal layout: Skipping ${node.label}`)\n continue\n }\n\n if (vertical === undefined) {\n console.warn(`NodeId not found in vertical layout: Skipping ${node.label}`)\n continue\n }\n\n maxRow = Math.max(maxRow, vertical)\n maxColumn = Math.max(maxColumn, horizontal.column)\n\n positions.set(nodeId, {\n ...horizontal,\n y: vertical,\n row: vertical,\n })\n }\n\n post({\n type: 'layout',\n layout: {\n maxRow,\n maxColumn,\n positions,\n },\n })\n}\n"],"names":["exhaustive","value","ascending","a","b","descending","bisector","f","compare1","compare2","delta","d","x","zero","left","lo","hi","mid","right","center","i","number","bisectRight","e10","e5","e2","tickSpec","start","stop","count","step","power","error","factor","i1","i2","inc","ticks","reverse","n","tickIncrement","tickStep","define","constructor","factory","prototype","extend","parent","definition","key","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","format","m","l","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","o","rgb","opacity","k","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","h","s","Hsl","min","max","hsl","m2","m1","hsl2rgb","clamph","clampt","constant","linear","exponential","y","t","gamma","nogamma","interpolateRgb","rgbGamma","end","colorRgb","numberArray","c","isNumberArray","genericArray","nb","na","date$1","interpolateNumber","object","reA","reB","one","interpolateString","bi","am","bm","bs","q","interpolate","string","date","interpolateRound","formatDecimal","formatDecimalParts","p","coefficient","exponent","formatGroup","grouping","thousands","width","j","length","formatNumerals","numerals","re","formatSpecifier","specifier","match","FormatSpecifier","formatTrim","out","i0","prefixExponent","formatPrefixAuto","formatRounded","formatTypes","identity$1","map","prefixes","formatLocale$1","locale","group","identity","currencyPrefix","currencySuffix","decimal","percent","minus","nan","newFormat","fill","align","sign","symbol","comma","precision","trim","type","prefix","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","e","defaultLocale","formatLocale","precisionFixed","precisionPrefix","precisionRound","initRange","domain","range","constants","unit","normalize","clamper","bimap","d0","d1","r0","r1","polymap","bisect","copy","source","target","transformer","interpolateValue","transform","untransform","unknown","clamp","piecewise","output","input","rescale","scale","_","u","continuous","tickFormat","linearish","prestep","maxIter","nice","interval","x0","x1","t0","t1","timeInterval","floori","offseti","field","previous","test","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","timeMinute","timeHour","timeDay","utcDay","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","timeYear","utcYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","timeTicks","timeTickInterval","localDate","utcDate","newDate","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","pad","pads","newParse","Z","parseSpecifier","parse","numberRe","percentRe","requoteRe","requote","names","name","dISO","z","dow","UTCdISO","timeFormat","calendar","invert","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","time","timeWeek","timeSecond","Transform","point","location","horizontalScaleFactory","settings","getTimeScale","getLinearScale","scaleTime","scaleLinear","getColumns","root_node_ids","nodes","getColumnsFaster","getColumnsSlower","nodeIds","columns","childrenNodeIds","id","node","childId","getChildrenColumns","nodeId","parentColumns","column","parentColumn","maxParentColumn","childNodeIds","currentColumn","nodeColumnAssignment","getHorizontalLayout","message","getHorizontalDependencyLayout","getHorizontalLeftAlignedLayout","getHorizontalTimeLayout","data","horizontalSettings","layout","getVerticalNearestParentLayout","horizontal","nodeShoveRecords","rowTracker","lowestRow","row","getNearestParentPosition","setLayoutNode","purgeNegativeLayoutPositions","nodeStartX","placeNearUpstreamNode","upstreamRows","upstreamRowsAverage","sum","position","isPositionTaken","overlappingNodes","getOverlappingNodeIds","parentIds","overlappingParentNodes","layoutId","upstreamLayoutItemId","shoveDirection","getShoveDirectionWeightedByDependencies","argueWithCompetingUpstreamPlacement","placeRootNode","defaultPosition","upstreamNodeId","upstreamRow","nextDependencyShove","shove","positionTaken","rowNodes","firstNodePosition","firstNodeEndX","getNodeEndX","isNodesOverlapping","direction","desiredRow","overlappingNodeIds","overlappingRow","firstNodeRow","lastNodeStartX","lastNodeRow","itemAId","itemBId","itemAEndX","itemBEndX","parentRows","defaultGravity","upwardConnections","downwardConnections","competingNodeId","competitorAboveConnections","competitorBelowConnections","getNodeParentDirectionCounts","nodeAboveConnections","upstreamPosition","nodeBelowConnections","nodeRow","counts","parentRow","nodeWidth","previousRow","_a","_b","getVerticalLayout","getVerticalDurationSortedLayout","getVerticalWaterfallLayout","index","nodeA","nodeB","aDuration","onMessageHandler","handleLayoutMessage","post","horizontalLayout","verticalLayout","positions","maxRow","maxColumn","vertical"],"mappings":"yBAAO,SAASA,GAAWC,EAAoB,CAC7C,MAAM,IAAI,MAAM,wCAAwCA,CAAK,EAAE,CACjE,CCFe,SAASC,GAAUC,EAAGC,EAAG,CACtC,OAAOD,GAAK,MAAQC,GAAK,KAAO,IAAMD,EAAIC,EAAI,GAAKD,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAI,GAC9E,CCFe,SAASC,GAAWF,EAAGC,EAAG,CACvC,OAAOD,GAAK,MAAQC,GAAK,KAAO,IAC5BA,EAAID,EAAI,GACRC,EAAID,EAAI,EACRC,GAAKD,EAAI,EACT,GACN,CCHe,SAASG,GAASC,EAAG,CAClC,IAAIC,EAAUC,EAAUC,EAOpBH,EAAE,SAAW,GACfC,EAAWN,GACXO,EAAW,CAACE,EAAGC,IAAMV,GAAUK,EAAEI,CAAC,EAAGC,CAAC,EACtCF,EAAQ,CAACC,EAAGC,IAAML,EAAEI,CAAC,EAAIC,IAEzBJ,EAAWD,IAAML,IAAaK,IAAMF,GAAaE,EAAIM,GACrDJ,EAAWF,EACXG,EAAQH,GAGV,SAASO,EAAKX,EAAGS,EAAGG,EAAK,EAAGC,EAAKb,EAAE,OAAQ,CACzC,GAAIY,EAAKC,EAAI,CACX,GAAIR,EAASI,EAAGA,CAAC,IAAM,EAAG,OAAOI,EACjC,EAAG,CACD,MAAMC,EAAOF,EAAKC,IAAQ,EACtBP,EAASN,EAAEc,CAAG,EAAGL,CAAC,EAAI,EAAGG,EAAKE,EAAM,EACnCD,EAAKC,CAClB,OAAeF,EAAKC,EACf,CACD,OAAOD,CACR,CAED,SAASG,EAAMf,EAAGS,EAAGG,EAAK,EAAGC,EAAKb,EAAE,OAAQ,CAC1C,GAAIY,EAAKC,EAAI,CACX,GAAIR,EAASI,EAAGA,CAAC,IAAM,EAAG,OAAOI,EACjC,EAAG,CACD,MAAMC,EAAOF,EAAKC,IAAQ,EACtBP,EAASN,EAAEc,CAAG,EAAGL,CAAC,GAAK,EAAGG,EAAKE,EAAM,EACpCD,EAAKC,CAClB,OAAeF,EAAKC,EACf,CACD,OAAOD,CACR,CAED,SAASI,EAAOhB,EAAGS,EAAGG,EAAK,EAAGC,EAAKb,EAAE,OAAQ,CAC3C,MAAMiB,EAAIN,EAAKX,EAAGS,EAAGG,EAAIC,EAAK,CAAC,EAC/B,OAAOI,EAAIL,GAAML,EAAMP,EAAEiB,EAAI,CAAC,EAAGR,CAAC,EAAI,CAACF,EAAMP,EAAEiB,CAAC,EAAGR,CAAC,EAAIQ,EAAI,EAAIA,CACjE,CAED,MAAO,CAAC,KAAAN,EAAM,OAAAK,EAAQ,MAAAD,CAAK,CAC7B,CAEA,SAASL,IAAO,CACd,MAAO,EACT,CCvDe,SAASQ,GAAOT,EAAG,CAChC,OAAOA,IAAM,KAAO,IAAM,CAACA,CAC7B,CCGO,MAAMU,GADWhB,GAASJ,EAAS,EACC,MAEfI,GAASe,EAAM,EAAE,OCP7C,MAAME,GAAM,KAAK,KAAK,EAAE,EACpBC,GAAK,KAAK,KAAK,EAAE,EACjBC,GAAK,KAAK,KAAK,CAAC,EAEpB,SAASC,GAASC,EAAOC,EAAMC,EAAO,CACpC,MAAMC,GAAQF,EAAOD,GAAS,KAAK,IAAI,EAAGE,CAAK,EAC3CE,EAAQ,KAAK,MAAM,KAAK,MAAMD,CAAI,CAAC,EACnCE,EAAQF,EAAO,KAAK,IAAI,GAAIC,CAAK,EACjCE,EAASD,GAAST,GAAM,GAAKS,GAASR,GAAK,EAAIQ,GAASP,GAAK,EAAI,EACrE,IAAIS,EAAIC,EAAIC,EAeZ,OAdIL,EAAQ,GACVK,EAAM,KAAK,IAAI,GAAI,CAACL,CAAK,EAAIE,EAC7BC,EAAK,KAAK,MAAMP,EAAQS,CAAG,EAC3BD,EAAK,KAAK,MAAMP,EAAOQ,CAAG,EACtBF,EAAKE,EAAMT,GAAO,EAAEO,EACpBC,EAAKC,EAAMR,GAAM,EAAEO,EACvBC,EAAM,CAACA,IAEPA,EAAM,KAAK,IAAI,GAAIL,CAAK,EAAIE,EAC5BC,EAAK,KAAK,MAAMP,EAAQS,CAAG,EAC3BD,EAAK,KAAK,MAAMP,EAAOQ,CAAG,EACtBF,EAAKE,EAAMT,GAAO,EAAEO,EACpBC,EAAKC,EAAMR,GAAM,EAAEO,GAErBA,EAAKD,GAAM,IAAOL,GAASA,EAAQ,EAAUH,GAASC,EAAOC,EAAMC,EAAQ,CAAC,EACzE,CAACK,EAAIC,EAAIC,CAAG,CACrB,CAEe,SAASC,GAAMV,EAAOC,EAAMC,EAAO,CAEhD,GADAD,EAAO,CAACA,EAAMD,EAAQ,CAACA,EAAOE,EAAQ,CAACA,EACnC,EAAEA,EAAQ,GAAI,MAAO,CAAA,EACzB,GAAIF,IAAUC,EAAM,MAAO,CAACD,CAAK,EACjC,MAAMW,EAAUV,EAAOD,EAAO,CAACO,EAAIC,EAAIC,CAAG,EAAIE,EAAUZ,GAASE,EAAMD,EAAOE,CAAK,EAAIH,GAASC,EAAOC,EAAMC,CAAK,EAClH,GAAI,EAAEM,GAAMD,GAAK,MAAO,CAAA,EACxB,MAAMK,EAAIJ,EAAKD,EAAK,EAAGG,EAAQ,IAAI,MAAME,CAAC,EAC1C,GAAID,EACF,GAAIF,EAAM,EAAG,QAAShB,EAAI,EAAGA,EAAImB,EAAG,EAAEnB,EAAGiB,EAAMjB,CAAC,GAAKe,EAAKf,GAAK,CAACgB,MAC3D,SAAShB,EAAI,EAAGA,EAAImB,EAAG,EAAEnB,EAAGiB,EAAMjB,CAAC,GAAKe,EAAKf,GAAKgB,UAEnDA,EAAM,EAAG,QAAShB,EAAI,EAAGA,EAAImB,EAAG,EAAEnB,EAAGiB,EAAMjB,CAAC,GAAKc,EAAKd,GAAK,CAACgB,MAC3D,SAAShB,EAAI,EAAGA,EAAImB,EAAG,EAAEnB,EAAGiB,EAAMjB,CAAC,GAAKc,EAAKd,GAAKgB,EAEzD,OAAOC,CACT,CAEO,SAASG,GAAcb,EAAOC,EAAMC,EAAO,CAChD,OAAAD,EAAO,CAACA,EAAMD,EAAQ,CAACA,EAAOE,EAAQ,CAACA,EAChCH,GAASC,EAAOC,EAAMC,CAAK,EAAE,CAAC,CACvC,CAEO,SAASY,GAASd,EAAOC,EAAMC,EAAO,CAC3CD,EAAO,CAACA,EAAMD,EAAQ,CAACA,EAAOE,EAAQ,CAACA,EACvC,MAAMS,EAAUV,EAAOD,EAAOS,EAAME,EAAUE,GAAcZ,EAAMD,EAAOE,CAAK,EAAIW,GAAcb,EAAOC,EAAMC,CAAK,EAClH,OAAQS,EAAU,GAAK,IAAMF,EAAM,EAAI,EAAI,CAACA,EAAMA,EACpD,CCtDe,SAAAM,GAASC,EAAaC,EAASC,EAAW,CACvDF,EAAY,UAAYC,EAAQ,UAAYC,EAC5CA,EAAU,YAAcF,CAC1B,CAEO,SAASG,GAAOC,EAAQC,EAAY,CACzC,IAAIH,EAAY,OAAO,OAAOE,EAAO,SAAS,EAC9C,QAASE,KAAOD,EAAYH,EAAUI,CAAG,EAAID,EAAWC,CAAG,EAC3D,OAAOJ,CACT,CCPO,SAASK,IAAQ,CAAE,CAEnB,IAAIC,GAAS,GACTC,GAAW,EAAID,GAEtBE,GAAM,sBACNC,GAAM,oDACNC,EAAM,qDACNC,GAAQ,qBACRC,GAAe,IAAI,OAAO,UAAUJ,EAAG,IAAIA,EAAG,IAAIA,EAAG,MAAM,EAC3DK,GAAe,IAAI,OAAO,UAAUH,CAAG,IAAIA,CAAG,IAAIA,CAAG,MAAM,EAC3DI,GAAgB,IAAI,OAAO,WAAWN,EAAG,IAAIA,EAAG,IAAIA,EAAG,IAAIC,EAAG,MAAM,EACpEM,GAAgB,IAAI,OAAO,WAAWL,CAAG,IAAIA,CAAG,IAAIA,CAAG,IAAID,EAAG,MAAM,EACpEO,GAAe,IAAI,OAAO,UAAUP,EAAG,IAAIC,CAAG,IAAIA,CAAG,MAAM,EAC3DO,GAAgB,IAAI,OAAO,WAAWR,EAAG,IAAIC,CAAG,IAAIA,CAAG,IAAID,EAAG,MAAM,EAEpES,GAAQ,CACV,UAAW,SACX,aAAc,SACd,KAAM,MACN,WAAY,QACZ,MAAO,SACP,MAAO,SACP,OAAQ,SACR,MAAO,EACP,eAAgB,SAChB,KAAM,IACN,WAAY,QACZ,MAAO,SACP,UAAW,SACX,UAAW,QACX,WAAY,QACZ,UAAW,SACX,MAAO,SACP,eAAgB,QAChB,SAAU,SACV,QAAS,SACT,KAAM,MACN,SAAU,IACV,SAAU,MACV,cAAe,SACf,SAAU,SACV,UAAW,MACX,SAAU,SACV,UAAW,SACX,YAAa,QACb,eAAgB,QAChB,WAAY,SACZ,WAAY,SACZ,QAAS,QACT,WAAY,SACZ,aAAc,QACd,cAAe,QACf,cAAe,QACf,cAAe,QACf,cAAe,MACf,WAAY,QACZ,SAAU,SACV,YAAa,MACb,QAAS,QACT,QAAS,QACT,WAAY,QACZ,UAAW,SACX,YAAa,SACb,YAAa,QACb,QAAS,SACT,UAAW,SACX,WAAY,SACZ,KAAM,SACN,UAAW,SACX,KAAM,QACN,MAAO,MACP,YAAa,SACb,KAAM,QACN,SAAU,SACV,QAAS,SACT,UAAW,SACX,OAAQ,QACR,MAAO,SACP,MAAO,SACP,SAAU,SACV,cAAe,SACf,UAAW,QACX,aAAc,SACd,UAAW,SACX,WAAY,SACZ,UAAW,SACX,qBAAsB,SACtB,UAAW,SACX,WAAY,QACZ,UAAW,SACX,UAAW,SACX,YAAa,SACb,cAAe,QACf,aAAc,QACd,eAAgB,QAChB,eAAgB,QAChB,eAAgB,SAChB,YAAa,SACb,KAAM,MACN,UAAW,QACX,MAAO,SACP,QAAS,SACT,OAAQ,QACR,iBAAkB,QAClB,WAAY,IACZ,aAAc,SACd,aAAc,QACd,eAAgB,QAChB,gBAAiB,QACjB,kBAAmB,MACnB,gBAAiB,QACjB,gBAAiB,SACjB,aAAc,QACd,UAAW,SACX,UAAW,SACX,SAAU,SACV,YAAa,SACb,KAAM,IACN,QAAS,SACT,MAAO,QACP,UAAW,QACX,OAAQ,SACR,UAAW,SACX,OAAQ,SACR,cAAe,SACf,UAAW,SACX,cAAe,SACf,cAAe,SACf,WAAY,SACZ,UAAW,SACX,KAAM,SACN,KAAM,SACN,KAAM,SACN,WAAY,SACZ,OAAQ,QACR,cAAe,QACf,IAAK,SACL,UAAW,SACX,UAAW,QACX,YAAa,QACb,OAAQ,SACR,WAAY,SACZ,SAAU,QACV,SAAU,SACV,OAAQ,SACR,OAAQ,SACR,QAAS,QACT,UAAW,QACX,UAAW,QACX,UAAW,QACX,KAAM,SACN,YAAa,MACb,UAAW,QACX,IAAK,SACL,KAAM,MACN,QAAS,SACT,OAAQ,SACR,UAAW,QACX,OAAQ,SACR,MAAO,SACP,MAAO,SACP,WAAY,SACZ,OAAQ,SACR,YAAa,QACf,EAEArB,GAAOQ,GAAOc,GAAO,CACnB,KAAKC,EAAU,CACb,OAAO,OAAO,OAAO,IAAI,KAAK,YAAa,KAAMA,CAAQ,CAC1D,EACD,aAAc,CACZ,OAAO,KAAK,MAAM,aACnB,EACD,IAAKC,GACL,UAAWA,GACX,WAAYC,GACZ,UAAWC,GACX,UAAWC,GACX,SAAUA,EACZ,CAAC,EAED,SAASH,IAAkB,CACzB,OAAO,KAAK,MAAM,WACpB,CAEA,SAASC,IAAmB,CAC1B,OAAO,KAAK,MAAM,YACpB,CAEA,SAASC,IAAkB,CACzB,OAAOE,GAAW,IAAI,EAAE,WAC1B,CAEA,SAASD,IAAkB,CACzB,OAAO,KAAK,MAAM,WACpB,CAEe,SAASL,GAAMO,EAAQ,CACpC,IAAIC,EAAGC,EACP,OAAAF,GAAUA,EAAS,IAAI,KAAM,EAAC,YAAW,GACjCC,EAAIhB,GAAM,KAAKe,CAAM,IAAME,EAAID,EAAE,CAAC,EAAE,OAAQA,EAAI,SAASA,EAAE,CAAC,EAAG,EAAE,EAAGC,IAAM,EAAIC,GAAKF,CAAC,EACtFC,IAAM,EAAI,IAAIE,EAAKH,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,EAAI,KAASA,EAAI,KAAQ,EAAMA,EAAI,GAAM,CAAC,EAChHC,IAAM,EAAIG,GAAKJ,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAOA,EAAI,KAAQ,GAAI,EAC/EC,IAAM,EAAIG,GAAMJ,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,EAAI,MAAUA,EAAI,KAAQ,EAAMA,EAAI,IAAQ,GAAI,EACtJ,OACCA,EAAIf,GAAa,KAAKc,CAAM,GAAK,IAAII,EAAIH,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAG,CAAC,GAC5DA,EAAId,GAAa,KAAKa,CAAM,GAAK,IAAII,EAAIH,EAAE,CAAC,EAAI,IAAM,IAAKA,EAAE,CAAC,EAAI,IAAM,IAAKA,EAAE,CAAC,EAAI,IAAM,IAAK,CAAC,GAChGA,EAAIb,GAAc,KAAKY,CAAM,GAAKK,GAAKJ,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,GAC7DA,EAAIZ,GAAc,KAAKW,CAAM,GAAKK,GAAKJ,EAAE,CAAC,EAAI,IAAM,IAAKA,EAAE,CAAC,EAAI,IAAM,IAAKA,EAAE,CAAC,EAAI,IAAM,IAAKA,EAAE,CAAC,CAAC,GACjGA,EAAIX,GAAa,KAAKU,CAAM,GAAKM,GAAKL,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAI,IAAKA,EAAE,CAAC,EAAI,IAAK,CAAC,GACrEA,EAAIV,GAAc,KAAKS,CAAM,GAAKM,GAAKL,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAI,IAAKA,EAAE,CAAC,EAAI,IAAKA,EAAE,CAAC,CAAC,EAC1ET,GAAM,eAAeQ,CAAM,EAAIG,GAAKX,GAAMQ,CAAM,CAAC,EACjDA,IAAW,cAAgB,IAAII,EAAI,IAAK,IAAK,IAAK,CAAC,EACnD,IACR,CAEA,SAASD,GAAK,EAAG,CACf,OAAO,IAAIC,EAAI,GAAK,GAAK,IAAM,GAAK,EAAI,IAAM,EAAI,IAAM,CAAC,CAC3D,CAEA,SAASC,GAAKE,EAAGC,EAAG3E,EAAGD,EAAG,CACxB,OAAIA,GAAK,IAAG2E,EAAIC,EAAI3E,EAAI,KACjB,IAAIuE,EAAIG,EAAGC,EAAG3E,EAAGD,CAAC,CAC3B,CAEO,SAAS6E,GAAWC,EAAG,CAE5B,OADMA,aAAa/B,KAAQ+B,EAAIjB,GAAMiB,CAAC,GACjCA,GACLA,EAAIA,EAAE,MACC,IAAIN,EAAIM,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,OAAO,GAFxB,IAAIN,CAGrB,CAEO,SAASO,GAAIJ,EAAGC,EAAG3E,EAAG+E,EAAS,CACpC,OAAO,UAAU,SAAW,EAAIH,GAAWF,CAAC,EAAI,IAAIH,EAAIG,EAAGC,EAAG3E,EAAG+E,GAAkB,CAAW,CAChG,CAEO,SAASR,EAAIG,EAAGC,EAAG3E,EAAG+E,EAAS,CACpC,KAAK,EAAI,CAACL,EACV,KAAK,EAAI,CAACC,EACV,KAAK,EAAI,CAAC3E,EACV,KAAK,QAAU,CAAC+E,CAClB,CAEAzC,GAAOiC,EAAKO,GAAKpC,GAAOI,GAAO,CAC7B,SAASkC,EAAG,CACV,OAAAA,EAAIA,GAAK,KAAOhC,GAAW,KAAK,IAAIA,GAAUgC,CAAC,EACxC,IAAIT,EAAI,KAAK,EAAIS,EAAG,KAAK,EAAIA,EAAG,KAAK,EAAIA,EAAG,KAAK,OAAO,CAChE,EACD,OAAOA,EAAG,CACR,OAAAA,EAAIA,GAAK,KAAOjC,GAAS,KAAK,IAAIA,GAAQiC,CAAC,EACpC,IAAIT,EAAI,KAAK,EAAIS,EAAG,KAAK,EAAIA,EAAG,KAAK,EAAIA,EAAG,KAAK,OAAO,CAChE,EACD,KAAM,CACJ,OAAO,IACR,EACD,OAAQ,CACN,OAAO,IAAIT,EAAIU,EAAO,KAAK,CAAC,EAAGA,EAAO,KAAK,CAAC,EAAGA,EAAO,KAAK,CAAC,EAAGC,GAAO,KAAK,OAAO,CAAC,CACpF,EACD,aAAc,CACZ,MAAQ,KAAQ,KAAK,GAAK,KAAK,EAAI,OAC3B,KAAQ,KAAK,GAAK,KAAK,EAAI,OAC3B,KAAQ,KAAK,GAAK,KAAK,EAAI,OAC3B,GAAK,KAAK,SAAW,KAAK,SAAW,CAC9C,EACD,IAAKC,GACL,UAAWA,GACX,WAAYC,GACZ,UAAWC,GACX,SAAUA,EACZ,CAAC,CAAC,EAEF,SAASF,IAAgB,CACvB,MAAO,IAAIG,EAAI,KAAK,CAAC,CAAC,GAAGA,EAAI,KAAK,CAAC,CAAC,GAAGA,EAAI,KAAK,CAAC,CAAC,EACpD,CAEA,SAASF,IAAiB,CACxB,MAAO,IAAIE,EAAI,KAAK,CAAC,CAAC,GAAGA,EAAI,KAAK,CAAC,CAAC,GAAGA,EAAI,KAAK,CAAC,CAAC,GAAGA,GAAK,MAAM,KAAK,OAAO,EAAI,EAAI,KAAK,SAAW,GAAG,CAAC,EAC1G,CAEA,SAASD,IAAgB,CACvB,MAAMtF,EAAImF,GAAO,KAAK,OAAO,EAC7B,MAAO,GAAGnF,IAAM,EAAI,OAAS,OAAO,GAAGkF,EAAO,KAAK,CAAC,CAAC,KAAKA,EAAO,KAAK,CAAC,CAAC,KAAKA,EAAO,KAAK,CAAC,CAAC,GAAGlF,IAAM,EAAI,IAAM,KAAKA,CAAC,GAAG,EACzH,CAEA,SAASmF,GAAOH,EAAS,CACvB,OAAO,MAAMA,CAAO,EAAI,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGA,CAAO,CAAC,CAC9D,CAEA,SAASE,EAAOpF,EAAO,CACrB,OAAO,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,KAAK,MAAMA,CAAK,GAAK,CAAC,CAAC,CAC1D,CAEA,SAASyF,EAAIzF,EAAO,CAClB,OAAAA,EAAQoF,EAAOpF,CAAK,GACZA,EAAQ,GAAK,IAAM,IAAMA,EAAM,SAAS,EAAE,CACpD,CAEA,SAAS4E,GAAKc,EAAGC,EAAGnB,EAAGtE,EAAG,CACxB,OAAIA,GAAK,EAAGwF,EAAIC,EAAInB,EAAI,IACfA,GAAK,GAAKA,GAAK,EAAGkB,EAAIC,EAAI,IAC1BA,GAAK,IAAGD,EAAI,KACd,IAAIE,EAAIF,EAAGC,EAAGnB,EAAGtE,CAAC,CAC3B,CAEO,SAASmE,GAAWW,EAAG,CAC5B,GAAIA,aAAaY,EAAK,OAAO,IAAIA,EAAIZ,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,OAAO,EAE7D,GADMA,aAAa/B,KAAQ+B,EAAIjB,GAAMiB,CAAC,GAClC,CAACA,EAAG,OAAO,IAAIY,EACnB,GAAIZ,aAAaY,EAAK,OAAOZ,EAC7BA,EAAIA,EAAE,MACN,IAAIH,EAAIG,EAAE,EAAI,IACVF,EAAIE,EAAE,EAAI,IACV7E,EAAI6E,EAAE,EAAI,IACVa,EAAM,KAAK,IAAIhB,EAAGC,EAAG3E,CAAC,EACtB2F,EAAM,KAAK,IAAIjB,EAAGC,EAAG3E,CAAC,EACtBuF,EAAI,IACJC,EAAIG,EAAMD,EACV,GAAKC,EAAMD,GAAO,EACtB,OAAIF,GACEd,IAAMiB,EAAKJ,GAAKZ,EAAI3E,GAAKwF,GAAKb,EAAI3E,GAAK,EAClC2E,IAAMgB,EAAKJ,GAAKvF,EAAI0E,GAAKc,EAAI,EACjCD,GAAKb,EAAIC,GAAKa,EAAI,EACvBA,GAAK,EAAI,GAAMG,EAAMD,EAAM,EAAIC,EAAMD,EACrCH,GAAK,IAELC,EAAI,EAAI,GAAK,EAAI,EAAI,EAAID,EAEpB,IAAIE,EAAIF,EAAGC,EAAG,EAAGX,EAAE,OAAO,CACnC,CAEO,SAASe,GAAIL,EAAGC,EAAGnB,EAAGU,EAAS,CACpC,OAAO,UAAU,SAAW,EAAIb,GAAWqB,CAAC,EAAI,IAAIE,EAAIF,EAAGC,EAAGnB,EAAGU,GAAkB,CAAW,CAChG,CAEA,SAASU,EAAIF,EAAGC,EAAGnB,EAAGU,EAAS,CAC7B,KAAK,EAAI,CAACQ,EACV,KAAK,EAAI,CAACC,EACV,KAAK,EAAI,CAACnB,EACV,KAAK,QAAU,CAACU,CAClB,CAEAzC,GAAOmD,EAAKG,GAAKlD,GAAOI,GAAO,CAC7B,SAASkC,EAAG,CACV,OAAAA,EAAIA,GAAK,KAAOhC,GAAW,KAAK,IAAIA,GAAUgC,CAAC,EACxC,IAAIS,EAAI,KAAK,EAAG,KAAK,EAAG,KAAK,EAAIT,EAAG,KAAK,OAAO,CACxD,EACD,OAAOA,EAAG,CACR,OAAAA,EAAIA,GAAK,KAAOjC,GAAS,KAAK,IAAIA,GAAQiC,CAAC,EACpC,IAAIS,EAAI,KAAK,EAAG,KAAK,EAAG,KAAK,EAAIT,EAAG,KAAK,OAAO,CACxD,EACD,KAAM,CACJ,IAAIO,EAAI,KAAK,EAAI,KAAO,KAAK,EAAI,GAAK,IAClCC,EAAI,MAAMD,CAAC,GAAK,MAAM,KAAK,CAAC,EAAI,EAAI,KAAK,EACzClB,EAAI,KAAK,EACTwB,EAAKxB,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAKmB,EACjCM,EAAK,EAAIzB,EAAIwB,EACjB,OAAO,IAAItB,EACTwB,GAAQR,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAKO,EAAID,CAAE,EAC5CE,GAAQR,EAAGO,EAAID,CAAE,EACjBE,GAAQR,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAKO,EAAID,CAAE,EAC3C,KAAK,OACX,CACG,EACD,OAAQ,CACN,OAAO,IAAIJ,EAAIO,GAAO,KAAK,CAAC,EAAGC,GAAO,KAAK,CAAC,EAAGA,GAAO,KAAK,CAAC,EAAGf,GAAO,KAAK,OAAO,CAAC,CACpF,EACD,aAAc,CACZ,OAAQ,GAAK,KAAK,GAAK,KAAK,GAAK,GAAK,MAAM,KAAK,CAAC,IAC1C,GAAK,KAAK,GAAK,KAAK,GAAK,GACzB,GAAK,KAAK,SAAW,KAAK,SAAW,CAC9C,EACD,WAAY,CACV,MAAMnF,EAAImF,GAAO,KAAK,OAAO,EAC7B,MAAO,GAAGnF,IAAM,EAAI,OAAS,OAAO,GAAGiG,GAAO,KAAK,CAAC,CAAC,KAAKC,GAAO,KAAK,CAAC,EAAI,GAAG,MAAMA,GAAO,KAAK,CAAC,EAAI,GAAG,IAAIlG,IAAM,EAAI,IAAM,KAAKA,CAAC,GAAG,EACtI,CACH,CAAC,CAAC,EAEF,SAASiG,GAAOnG,EAAO,CACrB,OAAAA,GAASA,GAAS,GAAK,IAChBA,EAAQ,EAAIA,EAAQ,IAAMA,CACnC,CAEA,SAASoG,GAAOpG,EAAO,CACrB,OAAO,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGA,GAAS,CAAC,CAAC,CAC5C,CAGA,SAASkG,GAAQR,EAAGO,EAAID,EAAI,CAC1B,OAAQN,EAAI,GAAKO,GAAMD,EAAKC,GAAMP,EAAI,GAChCA,EAAI,IAAMM,EACVN,EAAI,IAAMO,GAAMD,EAAKC,IAAO,IAAMP,GAAK,GACvCO,GAAM,GACd,CC3Ye,IAAAI,GAAA1F,GAAK,IAAMA,ECE1B,SAAS2F,GAAOpG,EAAGQ,EAAG,CACpB,OAAO,SAAS,EAAG,CACjB,OAAOR,EAAI,EAAIQ,CACnB,CACA,CAEA,SAAS6F,GAAYrG,EAAGC,EAAGqG,EAAG,CAC5B,OAAOtG,EAAI,KAAK,IAAIA,EAAGsG,CAAC,EAAGrG,EAAI,KAAK,IAAIA,EAAGqG,CAAC,EAAItG,EAAGsG,EAAI,EAAIA,EAAG,SAASC,EAAG,CACxE,OAAO,KAAK,IAAIvG,EAAIuG,EAAItG,EAAGqG,CAAC,CAChC,CACA,CAOO,SAASE,GAAMF,EAAG,CACvB,OAAQA,EAAI,CAACA,IAAO,EAAIG,GAAU,SAASzG,EAAGC,EAAG,CAC/C,OAAOA,EAAID,EAAIqG,GAAYrG,EAAGC,EAAGqG,CAAC,EAAIH,GAAS,MAAMnG,CAAC,EAAIC,EAAID,CAAC,CACnE,CACA,CAEe,SAASyG,GAAQzG,EAAGC,EAAG,CACpC,IAAIO,EAAIP,EAAID,EACZ,OAAOQ,EAAI4F,GAAOpG,EAAGQ,CAAC,EAAI2F,GAAS,MAAMnG,CAAC,EAAIC,EAAID,CAAC,CACrD,CCvBA,IAAA0G,GAAgB,SAASC,EAASL,EAAG,CACnC,IAAIzC,EAAQ2C,GAAMF,CAAC,EAEnB,SAASvB,EAAIvD,EAAOoF,EAAK,CACvB,IAAIjC,EAAId,GAAOrC,EAAQqF,GAASrF,CAAK,GAAG,GAAIoF,EAAMC,GAASD,CAAG,GAAG,CAAC,EAC9DhC,EAAIf,EAAMrC,EAAM,EAAGoF,EAAI,CAAC,EACxB3G,EAAI4D,EAAMrC,EAAM,EAAGoF,EAAI,CAAC,EACxB5B,EAAUyB,GAAQjF,EAAM,QAASoF,EAAI,OAAO,EAChD,OAAO,SAASL,EAAG,CACjB,OAAA/E,EAAM,EAAImD,EAAE4B,CAAC,EACb/E,EAAM,EAAIoD,EAAE2B,CAAC,EACb/E,EAAM,EAAIvB,EAAEsG,CAAC,EACb/E,EAAM,QAAUwD,EAAQuB,CAAC,EAClB/E,EAAQ,EACrB,CACG,CAEDuD,OAAAA,EAAI,MAAQ4B,EAEL5B,CACT,EAAG,CAAC,ECzBW,SAAA+B,GAAS9G,EAAGC,EAAG,CACvBA,IAAGA,EAAI,IACZ,IAAImC,EAAIpC,EAAI,KAAK,IAAIC,EAAE,OAAQD,EAAE,MAAM,EAAI,EACvC+G,EAAI9G,EAAE,MAAO,EACbgB,EACJ,OAAO,SAASsF,EAAG,CACjB,IAAKtF,EAAI,EAAGA,EAAImB,EAAG,EAAEnB,EAAG8F,EAAE9F,CAAC,EAAIjB,EAAEiB,CAAC,GAAK,EAAIsF,GAAKtG,EAAEgB,CAAC,EAAIsF,EACvD,OAAOQ,CACX,CACA,CAEO,SAASC,GAAcvG,EAAG,CAC/B,OAAO,YAAY,OAAOA,CAAC,GAAK,EAAEA,aAAa,SACjD,CCNO,SAASwG,GAAajH,EAAGC,EAAG,CACjC,IAAIiH,EAAKjH,EAAIA,EAAE,OAAS,EACpBkH,EAAKnH,EAAI,KAAK,IAAIkH,EAAIlH,EAAE,MAAM,EAAI,EAClCS,EAAI,IAAI,MAAM0G,CAAE,EAChBJ,EAAI,IAAI,MAAMG,CAAE,EAChBjG,EAEJ,IAAKA,EAAI,EAAGA,EAAIkG,EAAI,EAAElG,EAAGR,EAAEQ,CAAC,EAAInB,GAAME,EAAEiB,CAAC,EAAGhB,EAAEgB,CAAC,CAAC,EAChD,KAAOA,EAAIiG,EAAI,EAAEjG,EAAG8F,EAAE9F,CAAC,EAAIhB,EAAEgB,CAAC,EAE9B,OAAO,SAASsF,EAAG,CACjB,IAAKtF,EAAI,EAAGA,EAAIkG,EAAI,EAAElG,EAAG8F,EAAE9F,CAAC,EAAIR,EAAEQ,CAAC,EAAEsF,CAAC,EACtC,OAAOQ,CACX,CACA,CCrBe,SAAAK,GAASpH,EAAGC,EAAG,CAC5B,IAAIO,EAAI,IAAI,KACZ,OAAOR,EAAI,CAACA,EAAGC,EAAI,CAACA,EAAG,SAASsG,EAAG,CACjC,OAAO/F,EAAE,QAAQR,GAAK,EAAIuG,GAAKtG,EAAIsG,CAAC,EAAG/F,CAC3C,CACA,CCLe,SAAA6G,GAASrH,EAAGC,EAAG,CAC5B,OAAOD,EAAI,CAACA,EAAGC,EAAI,CAACA,EAAG,SAAS,EAAG,CACjC,OAAOD,GAAK,EAAI,GAAKC,EAAI,CAC7B,CACA,CCFe,SAAAqH,GAAStH,EAAGC,EAAG,CAC5B,IAAIgB,EAAI,CAAE,EACN8F,EAAI,CAAE,EACN9B,GAEAjF,IAAM,MAAQ,OAAOA,GAAM,YAAUA,EAAI,KACzCC,IAAM,MAAQ,OAAOA,GAAM,YAAUA,EAAI,IAE7C,IAAKgF,KAAKhF,EACJgF,KAAKjF,EACPiB,EAAEgE,CAAC,EAAInF,GAAME,EAAEiF,CAAC,EAAGhF,EAAEgF,CAAC,CAAC,EAEvB8B,EAAE9B,CAAC,EAAIhF,EAAEgF,CAAC,EAId,OAAO,SAASsB,EAAG,CACjB,IAAKtB,KAAKhE,EAAG8F,EAAE9B,CAAC,EAAIhE,EAAEgE,CAAC,EAAEsB,CAAC,EAC1B,OAAOQ,CACX,CACA,CCpBA,IAAIQ,GAAM,8CACNC,GAAM,IAAI,OAAOD,GAAI,OAAQ,GAAG,EAEpC,SAAS7G,GAAKT,EAAG,CACf,OAAO,UAAW,CAChB,OAAOA,CACX,CACA,CAEA,SAASwH,GAAIxH,EAAG,CACd,OAAO,SAASsG,EAAG,CACjB,OAAOtG,EAAEsG,CAAC,EAAI,EAClB,CACA,CAEe,SAAAmB,GAAS1H,EAAGC,EAAG,CAC5B,IAAI0H,EAAKJ,GAAI,UAAYC,GAAI,UAAY,EACrCI,EACAC,EACAC,EACA7G,EAAI,GACJwE,EAAI,CAAE,EACNsC,EAAI,CAAA,EAMR,IAHA/H,EAAIA,EAAI,GAAIC,EAAIA,EAAI,IAGZ2H,EAAKL,GAAI,KAAKvH,CAAC,KACf6H,EAAKL,GAAI,KAAKvH,CAAC,KAChB6H,EAAKD,EAAG,OAASF,IACpBG,EAAK7H,EAAE,MAAM0H,EAAIG,CAAE,EACfrC,EAAExE,CAAC,EAAGwE,EAAExE,CAAC,GAAK6G,EACbrC,EAAE,EAAExE,CAAC,EAAI6G,IAEXF,EAAKA,EAAG,CAAC,MAAQC,EAAKA,EAAG,CAAC,GACzBpC,EAAExE,CAAC,EAAGwE,EAAExE,CAAC,GAAK4G,EACbpC,EAAE,EAAExE,CAAC,EAAI4G,GAEdpC,EAAE,EAAExE,CAAC,EAAI,KACT8G,EAAE,KAAK,CAAC,EAAG9G,EAAG,EAAGC,GAAO0G,EAAIC,CAAE,CAAC,CAAC,GAElCF,EAAKH,GAAI,UAIX,OAAIG,EAAK1H,EAAE,SACT6H,EAAK7H,EAAE,MAAM0H,CAAE,EACXlC,EAAExE,CAAC,EAAGwE,EAAExE,CAAC,GAAK6G,EACbrC,EAAE,EAAExE,CAAC,EAAI6G,GAKTrC,EAAE,OAAS,EAAKsC,EAAE,CAAC,EACpBN,GAAIM,EAAE,CAAC,EAAE,CAAC,EACVrH,GAAKT,CAAC,GACLA,EAAI8H,EAAE,OAAQ,SAASxB,EAAG,CACzB,QAAStF,EAAI,EAAG6D,EAAG7D,EAAIhB,EAAG,EAAEgB,EAAGwE,GAAGX,EAAIiD,EAAE9G,CAAC,GAAG,CAAC,EAAI6D,EAAE,EAAEyB,CAAC,EACtD,OAAOd,EAAE,KAAK,EAAE,CAC1B,EACA,CCrDe,SAAAuC,GAAShI,EAAGC,EAAG,CAC5B,IAAI,EAAI,OAAOA,EAAG8G,EAClB,OAAO9G,GAAK,MAAQ,IAAM,UAAYkG,GAASlG,CAAC,GACzC,IAAM,SAAWiB,GAClB,IAAM,UAAa6F,EAAIlD,GAAM5D,CAAC,IAAMA,EAAI8G,EAAGhC,IAAOkD,GAClDhI,aAAa4D,GAAQkB,GACrB9E,aAAa,KAAOiI,GACpBlB,GAAc/G,CAAC,EAAI6G,GACnB,MAAM,QAAQ7G,CAAC,EAAIgH,GACnB,OAAOhH,EAAE,SAAY,YAAc,OAAOA,EAAE,UAAa,YAAc,MAAMA,CAAC,EAAIqH,GAClFpG,IAAQlB,EAAGC,CAAC,CACpB,CCrBe,SAAAkI,GAASnI,EAAGC,EAAG,CAC5B,OAAOD,EAAI,CAACA,EAAGC,EAAI,CAACA,EAAG,SAAS,EAAG,CACjC,OAAO,KAAK,MAAMD,GAAK,EAAI,GAAKC,EAAI,CAAC,CACzC,CACA,CCJe,SAAQmI,GAAC3H,EAAG,CACzB,OAAO,KAAK,IAAIA,EAAI,KAAK,MAAMA,CAAC,CAAC,GAAK,KAChCA,EAAE,eAAe,IAAI,EAAE,QAAQ,KAAM,EAAE,EACvCA,EAAE,SAAS,EAAE,CACrB,CAKO,SAAS4H,GAAmB5H,EAAG6H,EAAG,CACvC,IAAKrH,GAAKR,EAAI6H,EAAI7H,EAAE,cAAc6H,EAAI,CAAC,EAAI7H,EAAE,cAAa,GAAI,QAAQ,GAAG,GAAK,EAAG,OAAO,KACxF,IAAIQ,EAAGsH,EAAc9H,EAAE,MAAM,EAAGQ,CAAC,EAIjC,MAAO,CACLsH,EAAY,OAAS,EAAIA,EAAY,CAAC,EAAIA,EAAY,MAAM,CAAC,EAAIA,EACjE,CAAC9H,EAAE,MAAMQ,EAAI,CAAC,CAClB,CACA,CCjBe,SAAQuH,GAAC/H,EAAG,CACzB,OAAOA,EAAI4H,GAAmB,KAAK,IAAI5H,CAAC,CAAC,EAAGA,EAAIA,EAAE,CAAC,EAAI,GACzD,CCJe,SAAAgI,GAASC,EAAUC,EAAW,CAC3C,OAAO,SAAS7I,EAAO8I,EAAO,CAO5B,QANI3H,EAAInB,EAAM,OACVyG,EAAI,CAAE,EACNsC,EAAI,EACJjE,EAAI8D,EAAS,CAAC,EACdI,EAAS,EAEN7H,EAAI,GAAK2D,EAAI,IACdkE,EAASlE,EAAI,EAAIgE,IAAOhE,EAAI,KAAK,IAAI,EAAGgE,EAAQE,CAAM,GAC1DvC,EAAE,KAAKzG,EAAM,UAAUmB,GAAK2D,EAAG3D,EAAI2D,CAAC,CAAC,EAChC,GAAAkE,GAAUlE,EAAI,GAAKgE,KACxBhE,EAAI8D,EAASG,GAAKA,EAAI,GAAKH,EAAS,MAAM,EAG5C,OAAOnC,EAAE,QAAO,EAAG,KAAKoC,CAAS,CACrC,CACA,CCjBe,SAAQI,GAACC,EAAU,CAChC,OAAO,SAASlJ,EAAO,CACrB,OAAOA,EAAM,QAAQ,SAAU,SAASmB,EAAG,CACzC,OAAO+H,EAAS,CAAC/H,CAAC,CACxB,CAAK,CACL,CACA,CCLA,IAAIgI,GAAK,2EAEM,SAASC,GAAgBC,EAAW,CACjD,GAAI,EAAEC,EAAQH,GAAG,KAAKE,CAAS,GAAI,MAAM,IAAI,MAAM,mBAAqBA,CAAS,EACjF,IAAIC,EACJ,OAAO,IAAIC,GAAgB,CACzB,KAAMD,EAAM,CAAC,EACb,MAAOA,EAAM,CAAC,EACd,KAAMA,EAAM,CAAC,EACb,OAAQA,EAAM,CAAC,EACf,KAAMA,EAAM,CAAC,EACb,MAAOA,EAAM,CAAC,EACd,MAAOA,EAAM,CAAC,EACd,UAAWA,EAAM,CAAC,GAAKA,EAAM,CAAC,EAAE,MAAM,CAAC,EACvC,KAAMA,EAAM,CAAC,EACb,KAAMA,EAAM,EAAE,CAClB,CAAG,CACH,CAEAF,GAAgB,UAAYG,GAAgB,UAErC,SAASA,GAAgBF,EAAW,CACzC,KAAK,KAAOA,EAAU,OAAS,OAAY,IAAMA,EAAU,KAAO,GAClE,KAAK,MAAQA,EAAU,QAAU,OAAY,IAAMA,EAAU,MAAQ,GACrE,KAAK,KAAOA,EAAU,OAAS,OAAY,IAAMA,EAAU,KAAO,GAClE,KAAK,OAASA,EAAU,SAAW,OAAY,GAAKA,EAAU,OAAS,GACvE,KAAK,KAAO,CAAC,CAACA,EAAU,KACxB,KAAK,MAAQA,EAAU,QAAU,OAAY,OAAY,CAACA,EAAU,MACpE,KAAK,MAAQ,CAAC,CAACA,EAAU,MACzB,KAAK,UAAYA,EAAU,YAAc,OAAY,OAAY,CAACA,EAAU,UAC5E,KAAK,KAAO,CAAC,CAACA,EAAU,KACxB,KAAK,KAAOA,EAAU,OAAS,OAAY,GAAKA,EAAU,KAAO,EACnE,CAEAE,GAAgB,UAAU,SAAW,UAAW,CAC9C,OAAO,KAAK,KACN,KAAK,MACL,KAAK,KACL,KAAK,QACJ,KAAK,KAAO,IAAM,KAClB,KAAK,QAAU,OAAY,GAAK,KAAK,IAAI,EAAG,KAAK,MAAQ,CAAC,IAC1D,KAAK,MAAQ,IAAM,KACnB,KAAK,YAAc,OAAY,GAAK,IAAM,KAAK,IAAI,EAAG,KAAK,UAAY,CAAC,IACxE,KAAK,KAAO,IAAM,IACnB,KAAK,IACb,EC7Ce,SAAQC,GAAC7D,EAAG,CACzB8D,EAAK,QAASnH,EAAIqD,EAAE,OAAQxE,EAAI,EAAGuI,EAAK,GAAIzH,EAAId,EAAImB,EAAG,EAAEnB,EACvD,OAAQwE,EAAExE,CAAC,EAAC,CACV,IAAK,IAAKuI,EAAKzH,EAAKd,EAAG,MACvB,IAAK,IAASuI,IAAO,IAAGA,EAAKvI,GAAGc,EAAKd,EAAG,MACxC,QAAS,GAAI,CAAC,CAACwE,EAAExE,CAAC,EAAG,MAAMsI,EAASC,EAAK,IAAGA,EAAK,GAAG,KACrD,CAEH,OAAOA,EAAK,EAAI/D,EAAE,MAAM,EAAG+D,CAAE,EAAI/D,EAAE,MAAM1D,EAAK,CAAC,EAAI0D,CACrD,CCRO,IAAIgE,GAEI,SAAAC,GAASjJ,EAAG6H,EAAG,CAC5B,IAAI9H,EAAI6H,GAAmB5H,EAAG6H,CAAC,EAC/B,GAAI,CAAC9H,EAAG,OAAOC,EAAI,GACnB,IAAI8H,EAAc/H,EAAE,CAAC,EACjBgI,EAAWhI,EAAE,CAAC,EACd,EAAIgI,GAAYiB,GAAiB,KAAK,IAAI,GAAI,KAAK,IAAI,EAAG,KAAK,MAAMjB,EAAW,CAAC,CAAC,CAAC,EAAI,GAAK,EAC5FpG,EAAImG,EAAY,OACpB,OAAO,IAAMnG,EAAImG,EACX,EAAInG,EAAImG,EAAc,IAAI,MAAM,EAAInG,EAAI,CAAC,EAAE,KAAK,GAAG,EACnD,EAAI,EAAImG,EAAY,MAAM,EAAG,CAAC,EAAI,IAAMA,EAAY,MAAM,CAAC,EAC3D,KAAO,IAAI,MAAM,EAAI,CAAC,EAAE,KAAK,GAAG,EAAIF,GAAmB5H,EAAG,KAAK,IAAI,EAAG6H,EAAI,EAAI,CAAC,CAAC,EAAE,CAAC,CAC3F,CCbe,SAAAqB,GAASlJ,EAAG6H,EAAG,CAC5B,IAAI9H,EAAI6H,GAAmB5H,EAAG6H,CAAC,EAC/B,GAAI,CAAC9H,EAAG,OAAOC,EAAI,GACnB,IAAI8H,EAAc/H,EAAE,CAAC,EACjBgI,EAAWhI,EAAE,CAAC,EAClB,OAAOgI,EAAW,EAAI,KAAO,IAAI,MAAM,CAACA,CAAQ,EAAE,KAAK,GAAG,EAAID,EACxDA,EAAY,OAASC,EAAW,EAAID,EAAY,MAAM,EAAGC,EAAW,CAAC,EAAI,IAAMD,EAAY,MAAMC,EAAW,CAAC,EAC7GD,EAAc,IAAI,MAAMC,EAAWD,EAAY,OAAS,CAAC,EAAE,KAAK,GAAG,CAC3E,CCNe,IAAAqB,GAAA,CACb,IAAK,CAACnJ,EAAG6H,KAAO7H,EAAI,KAAK,QAAQ6H,CAAC,EAClC,EAAM7H,GAAM,KAAK,MAAMA,CAAC,EAAE,SAAS,CAAC,EACpC,EAAMA,GAAMA,EAAI,GAChB,EAAK2H,GACL,EAAK,CAAC3H,EAAG6H,IAAM7H,EAAE,cAAc6H,CAAC,EAChC,EAAK,CAAC7H,EAAG6H,IAAM7H,EAAE,QAAQ6H,CAAC,EAC1B,EAAK,CAAC7H,EAAG6H,IAAM7H,EAAE,YAAY6H,CAAC,EAC9B,EAAM7H,GAAM,KAAK,MAAMA,CAAC,EAAE,SAAS,CAAC,EACpC,EAAK,CAACA,EAAG6H,IAAMqB,GAAclJ,EAAI,IAAK6H,CAAC,EACvC,EAAKqB,GACL,EAAKD,GACL,EAAMjJ,GAAM,KAAK,MAAMA,CAAC,EAAE,SAAS,EAAE,EAAE,YAAa,EACpD,EAAMA,GAAM,KAAK,MAAMA,CAAC,EAAE,SAAS,EAAE,CACvC,EClBe,SAAQoJ,GAACpJ,EAAG,CACzB,OAAOA,CACT,CCOA,IAAIqJ,GAAM,MAAM,UAAU,IACtBC,GAAW,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAEnE,SAAQC,GAACC,EAAQ,CAC9B,IAAIC,EAAQD,EAAO,WAAa,QAAaA,EAAO,YAAc,OAAYE,GAAW1B,GAAYqB,GAAI,KAAKG,EAAO,SAAU,MAAM,EAAGA,EAAO,UAAY,EAAE,EACzJG,EAAiBH,EAAO,WAAa,OAAY,GAAKA,EAAO,SAAS,CAAC,EAAI,GAC3EI,EAAiBJ,EAAO,WAAa,OAAY,GAAKA,EAAO,SAAS,CAAC,EAAI,GAC3EK,EAAUL,EAAO,UAAY,OAAY,IAAMA,EAAO,QAAU,GAChEjB,EAAWiB,EAAO,WAAa,OAAYE,GAAWpB,GAAee,GAAI,KAAKG,EAAO,SAAU,MAAM,CAAC,EACtGM,EAAUN,EAAO,UAAY,OAAY,IAAMA,EAAO,QAAU,GAChEO,EAAQP,EAAO,QAAU,OAAY,IAAMA,EAAO,MAAQ,GAC1DQ,EAAMR,EAAO,MAAQ,OAAY,MAAQA,EAAO,IAAM,GAE1D,SAASS,EAAUvB,EAAW,CAC5BA,EAAYD,GAAgBC,CAAS,EAErC,IAAIwB,EAAOxB,EAAU,KACjByB,EAAQzB,EAAU,MAClB0B,EAAO1B,EAAU,KACjB2B,EAAS3B,EAAU,OACnBzI,EAAOyI,EAAU,KACjBP,EAAQO,EAAU,MAClB4B,EAAQ5B,EAAU,MAClB6B,EAAY7B,EAAU,UACtB8B,EAAO9B,EAAU,KACjB+B,EAAO/B,EAAU,KAGjB+B,IAAS,KAAKH,EAAQ,GAAMG,EAAO,KAG7BtB,GAAYsB,CAAI,IAAGF,IAAc,SAAcA,EAAY,IAAKC,EAAO,GAAMC,EAAO,MAG1FxK,GAASiK,IAAS,KAAOC,IAAU,OAAMlK,EAAO,GAAMiK,EAAO,IAAKC,EAAQ,KAI9E,IAAIO,EAASL,IAAW,IAAMV,EAAiBU,IAAW,KAAO,SAAS,KAAKI,CAAI,EAAI,IAAMA,EAAK,YAAa,EAAG,GAC9GE,EAASN,IAAW,IAAMT,EAAiB,OAAO,KAAKa,CAAI,EAAIX,EAAU,GAKzEc,EAAazB,GAAYsB,CAAI,EAC7BI,EAAc,aAAa,KAAKJ,CAAI,EAMxCF,EAAYA,IAAc,OAAY,EAChC,SAAS,KAAKE,CAAI,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,GAAIF,CAAS,CAAC,EACzD,KAAK,IAAI,EAAG,KAAK,IAAI,GAAIA,CAAS,CAAC,EAEzC,SAAS5G,EAAOtE,EAAO,CACrB,IAAIyL,EAAcJ,EACdK,EAAcJ,EACdnK,EAAGmB,GAAG2E,GAEV,GAAImE,IAAS,IACXM,EAAcH,EAAWvL,CAAK,EAAI0L,EAClC1L,EAAQ,OACH,CACLA,EAAQ,CAACA,EAGT,IAAI2L,GAAgB3L,EAAQ,GAAK,EAAIA,EAAQ,EAiB7C,GAdAA,EAAQ,MAAMA,CAAK,EAAI2K,EAAMY,EAAW,KAAK,IAAIvL,CAAK,EAAGkL,CAAS,EAG9DC,IAAMnL,EAAQwJ,GAAWxJ,CAAK,GAG9B2L,IAAiB,CAAC3L,GAAU,GAAK+K,IAAS,MAAKY,GAAgB,IAGnEF,GAAeE,GAAiBZ,IAAS,IAAMA,EAAOL,EAASK,IAAS,KAAOA,IAAS,IAAM,GAAKA,GAAQU,EAC3GC,GAAeN,IAAS,IAAMnB,GAAS,EAAIN,GAAiB,CAAC,EAAI,IAAM+B,GAAeC,IAAiBZ,IAAS,IAAM,IAAM,IAIxHS,GAEF,IADArK,EAAI,GAAImB,GAAItC,EAAM,OACX,EAAEmB,EAAImB,IACX,GAAI2E,GAAIjH,EAAM,WAAWmB,CAAC,EAAG,GAAK8F,IAAKA,GAAI,GAAI,CAC7CyE,GAAezE,KAAM,GAAKuD,EAAUxK,EAAM,MAAMmB,EAAI,CAAC,EAAInB,EAAM,MAAMmB,CAAC,GAAKuK,EAC3E1L,EAAQA,EAAM,MAAM,EAAGmB,CAAC,EACxB,KACD,EAGN,CAGG8J,GAAS,CAACrK,IAAMZ,EAAQoK,EAAMpK,EAAO,GAAQ,GAGjD,IAAIgJ,GAASyC,EAAY,OAASzL,EAAM,OAAS0L,EAAY,OACzDE,EAAU5C,GAASF,EAAQ,IAAI,MAAMA,EAAQE,GAAS,CAAC,EAAE,KAAK6B,CAAI,EAAI,GAM1E,OAHII,GAASrK,IAAMZ,EAAQoK,EAAMwB,EAAU5L,EAAO4L,EAAQ,OAAS9C,EAAQ4C,EAAY,OAAS,GAAQ,EAAGE,EAAU,IAG7Gd,EAAK,CACX,IAAK,IAAK9K,EAAQyL,EAAczL,EAAQ0L,EAAcE,EAAS,MAC/D,IAAK,IAAK5L,EAAQyL,EAAcG,EAAU5L,EAAQ0L,EAAa,MAC/D,IAAK,IAAK1L,EAAQ4L,EAAQ,MAAM,EAAG5C,GAAS4C,EAAQ,QAAU,CAAC,EAAIH,EAAczL,EAAQ0L,EAAcE,EAAQ,MAAM5C,EAAM,EAAG,MAC9H,QAAShJ,EAAQ4L,EAAUH,EAAczL,EAAQ0L,EAAa,KAC/D,CAED,OAAOxC,EAASlJ,CAAK,CACtB,CAED,OAAAsE,EAAO,SAAW,UAAW,CAC3B,OAAO+E,EAAY,EACzB,EAEW/E,CACR,CAED,SAASuH,EAAaxC,EAAWrJ,EAAO,CACtC,IAAIM,EAAIsK,GAAWvB,EAAYD,GAAgBC,CAAS,EAAGA,EAAU,KAAO,IAAKA,EAAW,EACxFyC,EAAI,KAAK,IAAI,GAAI,KAAK,IAAI,EAAG,KAAK,MAAMpD,GAAS1I,CAAK,EAAI,CAAC,CAAC,CAAC,EAAI,EACjEmF,EAAI,KAAK,IAAI,GAAI,CAAC2G,CAAC,EACnBT,EAASpB,GAAS,EAAI6B,EAAI,CAAC,EAC/B,OAAO,SAAS9L,EAAO,CACrB,OAAOM,EAAE6E,EAAInF,CAAK,EAAIqL,CAC5B,CACG,CAED,MAAO,CACL,OAAQT,EACR,aAAciB,CAClB,CACA,CCjJA,IAAI1B,GACO7F,GACAuH,GAEXE,GAAc,CACZ,UAAW,IACX,SAAU,CAAC,CAAC,EACZ,SAAU,CAAC,IAAK,EAAE,CACpB,CAAC,EAEc,SAASA,GAAchJ,EAAY,CAChDoH,OAAAA,GAAS6B,GAAajJ,CAAU,EAChCuB,GAAS6F,GAAO,OAChB0B,GAAe1B,GAAO,aACfA,EACT,CCfe,SAAQ8B,GAACpK,EAAM,CAC5B,OAAO,KAAK,IAAI,EAAG,CAAC6G,GAAS,KAAK,IAAI7G,CAAI,CAAC,CAAC,CAC9C,CCFe,SAAAqK,GAASrK,EAAM7B,EAAO,CACnC,OAAO,KAAK,IAAI,EAAG,KAAK,IAAI,GAAI,KAAK,IAAI,EAAG,KAAK,MAAM0I,GAAS1I,CAAK,EAAI,CAAC,CAAC,CAAC,EAAI,EAAI0I,GAAS,KAAK,IAAI7G,CAAI,CAAC,CAAC,CAC9G,CCFe,SAAAsK,GAAStK,EAAMiE,EAAK,CACjC,OAAAjE,EAAO,KAAK,IAAIA,CAAI,EAAGiE,EAAM,KAAK,IAAIA,CAAG,EAAIjE,EACtC,KAAK,IAAI,EAAG6G,GAAS5C,CAAG,EAAI4C,GAAS7G,CAAI,CAAC,EAAI,CACvD,CCLO,SAASuK,GAAUC,EAAQC,EAAO,CACvC,OAAQ,UAAU,OAAM,CACtB,IAAK,GAAG,MACR,IAAK,GAAG,KAAK,MAAMD,CAAM,EAAG,MAC5B,QAAS,KAAK,MAAMC,CAAK,EAAE,OAAOD,CAAM,EAAG,KAC5C,CACD,OAAO,IACT,CCPe,SAASE,GAAU5L,EAAG,CACnC,OAAO,UAAW,CAChB,OAAOA,CACX,CACA,CCJe,SAASS,GAAOT,EAAG,CAChC,MAAO,CAACA,CACV,CCGA,IAAI6L,GAAO,CAAC,EAAG,CAAC,EAET,SAASnC,GAAS1J,EAAG,CAC1B,OAAOA,CACT,CAEA,SAAS8L,GAAUvM,EAAGC,EAAG,CACvB,OAAQA,GAAMD,EAAI,CAACA,GACb,SAASS,EAAG,CAAE,OAAQA,EAAIT,GAAKC,CAAI,EACnCkG,GAAS,MAAMlG,CAAC,EAAI,IAAM,EAAG,CACrC,CAEA,SAASuM,GAAQxM,EAAGC,EAAG,CACrB,IAAI,EACJ,OAAID,EAAIC,IAAG,EAAID,EAAGA,EAAIC,EAAGA,EAAI,GACtB,SAASQ,EAAG,CAAE,OAAO,KAAK,IAAIT,EAAG,KAAK,IAAIC,EAAGQ,CAAC,CAAC,CAAE,CAC1D,CAIA,SAASgM,GAAMN,EAAQC,EAAOpE,EAAa,CACzC,IAAI0E,EAAKP,EAAO,CAAC,EAAGQ,EAAKR,EAAO,CAAC,EAAGS,EAAKR,EAAM,CAAC,EAAGS,EAAKT,EAAM,CAAC,EAC/D,OAAIO,EAAKD,GAAIA,EAAKH,GAAUI,EAAID,CAAE,EAAGE,EAAK5E,EAAY6E,EAAID,CAAE,IACvDF,EAAKH,GAAUG,EAAIC,CAAE,EAAGC,EAAK5E,EAAY4E,EAAIC,CAAE,GAC7C,SAASpM,EAAG,CAAE,OAAOmM,EAAGF,EAAGjM,CAAC,CAAC,EACtC,CAEA,SAASqM,GAAQX,EAAQC,EAAOpE,EAAa,CAC3C,IAAIa,EAAI,KAAK,IAAIsD,EAAO,OAAQC,EAAM,MAAM,EAAI,EAC5C5L,EAAI,IAAI,MAAMqI,CAAC,EACflE,EAAI,IAAI,MAAMkE,CAAC,EACf5H,EAAI,GAQR,IALIkL,EAAOtD,CAAC,EAAIsD,EAAO,CAAC,IACtBA,EAASA,EAAO,MAAO,EAAC,QAAO,EAC/BC,EAAQA,EAAM,MAAO,EAAC,QAAO,GAGxB,EAAEnL,EAAI4H,GACXrI,EAAES,CAAC,EAAIsL,GAAUJ,EAAOlL,CAAC,EAAGkL,EAAOlL,EAAI,CAAC,CAAC,EACzC0D,EAAE1D,CAAC,EAAI+G,EAAYoE,EAAMnL,CAAC,EAAGmL,EAAMnL,EAAI,CAAC,CAAC,EAG3C,OAAO,SAASR,EAAG,CACjB,IAAIQ,EAAI8L,GAAOZ,EAAQ1L,EAAG,EAAGoI,CAAC,EAAI,EAClC,OAAOlE,EAAE1D,CAAC,EAAET,EAAES,CAAC,EAAER,CAAC,CAAC,CACvB,CACA,CAEO,SAASuM,GAAKC,EAAQC,EAAQ,CACnC,OAAOA,EACF,OAAOD,EAAO,QAAQ,EACtB,MAAMA,EAAO,OAAO,EACpB,YAAYA,EAAO,aAAa,EAChC,MAAMA,EAAO,OAAO,EACpB,QAAQA,EAAO,QAAO,CAAE,CAC/B,CAEO,SAASE,IAAc,CAC5B,IAAIhB,EAASG,GACTF,EAAQE,GACRtE,EAAcoF,GACdC,EACAC,EACAC,EACAC,EAAQrD,GACRsD,EACAC,EACAC,EAEJ,SAASC,GAAU,CACjB,IAAIxL,EAAI,KAAK,IAAI+J,EAAO,OAAQC,EAAM,MAAM,EAC5C,OAAIoB,IAAUrD,KAAUqD,EAAQhB,GAAQL,EAAO,CAAC,EAAGA,EAAO/J,EAAI,CAAC,CAAC,GAChEqL,EAAYrL,EAAI,EAAI0K,GAAUL,GAC9BiB,EAASC,EAAQ,KACVE,CACR,CAED,SAASA,EAAMpN,EAAG,CAChB,OAAOA,GAAK,MAAQ,MAAMA,EAAI,CAACA,CAAC,EAAI8M,GAAWG,IAAWA,EAASD,EAAUtB,EAAO,IAAIkB,CAAS,EAAGjB,EAAOpE,CAAW,IAAIqF,EAAUG,EAAM/M,CAAC,CAAC,CAAC,CAC9I,CAED,OAAAoN,EAAM,OAAS,SAASvH,EAAG,CACzB,OAAOkH,EAAMF,GAAaK,IAAUA,EAAQF,EAAUrB,EAAOD,EAAO,IAAIkB,CAAS,EAAGhG,EAAiB,IAAIf,CAAC,CAAC,CAAC,CAChH,EAEEuH,EAAM,OAAS,SAASC,EAAG,CACzB,OAAO,UAAU,QAAU3B,EAAS,MAAM,KAAK2B,EAAG5M,EAAM,EAAG0M,EAAO,GAAMzB,EAAO,MAAK,CACxF,EAEE0B,EAAM,MAAQ,SAASC,EAAG,CACxB,OAAO,UAAU,QAAU1B,EAAQ,MAAM,KAAK0B,CAAC,EAAGF,EAAO,GAAMxB,EAAM,MAAK,CAC9E,EAEEyB,EAAM,WAAa,SAASC,EAAG,CAC7B,OAAO1B,EAAQ,MAAM,KAAK0B,CAAC,EAAG9F,EAAcG,GAAkByF,GAClE,EAEEC,EAAM,MAAQ,SAASC,EAAG,CACxB,OAAO,UAAU,QAAUN,EAAQM,EAAI,GAAO3D,GAAUyD,EAAO,GAAMJ,IAAUrD,EACnF,EAEE0D,EAAM,YAAc,SAASC,EAAG,CAC9B,OAAO,UAAU,QAAU9F,EAAc8F,EAAGF,EAAS,GAAI5F,CAC7D,EAEE6F,EAAM,QAAU,SAASC,EAAG,CAC1B,OAAO,UAAU,QAAUP,EAAUO,EAAGD,GAASN,CACrD,EAES,SAAShH,EAAGwH,EAAG,CACpB,OAAAV,EAAY9G,EAAG+G,EAAcS,EACtBH,EAAO,CAClB,CACA,CAEe,SAASI,IAAa,CACnC,OAAOb,GAAa,EAAChD,GAAUA,EAAQ,CACzC,CCzHe,SAAS8D,GAAWzM,EAAOC,EAAMC,EAAOyH,EAAW,CAChE,IAAIxH,EAAOW,GAASd,EAAOC,EAAMC,CAAK,EAClCsJ,EAEJ,OADA7B,EAAYD,GAAgBC,GAAoB,IAAgB,EACxDA,EAAU,KAAI,CACpB,IAAK,IAAK,CACR,IAAIrJ,EAAQ,KAAK,IAAI,KAAK,IAAI0B,CAAK,EAAG,KAAK,IAAIC,CAAI,CAAC,EACpD,OAAI0H,EAAU,WAAa,MAAQ,CAAC,MAAM6B,EAAYgB,GAAgBrK,EAAM7B,CAAK,CAAC,IAAGqJ,EAAU,UAAY6B,GACpGW,GAAaxC,EAAWrJ,CAAK,CACrC,CACD,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAAK,CACJqJ,EAAU,WAAa,MAAQ,CAAC,MAAM6B,EAAYiB,GAAetK,EAAM,KAAK,IAAI,KAAK,IAAIH,CAAK,EAAG,KAAK,IAAIC,CAAI,CAAC,CAAC,CAAC,IAAG0H,EAAU,UAAY6B,GAAa7B,EAAU,OAAS,MAC9K,KACD,CACD,IAAK,IACL,IAAK,IAAK,CACJA,EAAU,WAAa,MAAQ,CAAC,MAAM6B,EAAYe,GAAepK,CAAI,CAAC,IAAGwH,EAAU,UAAY6B,GAAa7B,EAAU,OAAS,KAAO,GAC1I,KACD,CACF,CACD,OAAO/E,GAAO+E,CAAS,CACzB,CCvBO,SAAS+E,GAAUL,EAAO,CAC/B,IAAI1B,EAAS0B,EAAM,OAEnB,OAAAA,EAAM,MAAQ,SAASnM,EAAO,CAC5B,IAAIlB,EAAI2L,IACR,OAAOjK,GAAM1B,EAAE,CAAC,EAAGA,EAAEA,EAAE,OAAS,CAAC,EAAGkB,GAAgB,EAAU,CAClE,EAEEmM,EAAM,WAAa,SAASnM,EAAOyH,EAAW,CAC5C,IAAI3I,EAAI2L,IACR,OAAO8B,GAAWzN,EAAE,CAAC,EAAGA,EAAEA,EAAE,OAAS,CAAC,EAAGkB,GAAgB,GAAYyH,CAAS,CAClF,EAEE0E,EAAM,KAAO,SAASnM,EAAO,CACvBA,GAAS,OAAMA,EAAQ,IAE3B,IAAIlB,EAAI2L,IACJ3C,EAAK,EACLzH,EAAKvB,EAAE,OAAS,EAChBgB,EAAQhB,EAAEgJ,CAAE,EACZ/H,EAAOjB,EAAEuB,CAAE,EACXoM,EACAxM,EACAyM,EAAU,GAOd,IALI3M,EAAOD,IACTG,EAAOH,EAAOA,EAAQC,EAAMA,EAAOE,EACnCA,EAAO6H,EAAIA,EAAKzH,EAAIA,EAAKJ,GAGpByM,KAAY,GAAG,CAEpB,GADAzM,EAAOU,GAAcb,EAAOC,EAAMC,CAAK,EACnCC,IAASwM,EACX,OAAA3N,EAAEgJ,CAAE,EAAIhI,EACRhB,EAAEuB,CAAE,EAAIN,EACD0K,EAAO3L,CAAC,EACV,GAAImB,EAAO,EAChBH,EAAQ,KAAK,MAAMA,EAAQG,CAAI,EAAIA,EACnCF,EAAO,KAAK,KAAKA,EAAOE,CAAI,EAAIA,UACvBA,EAAO,EAChBH,EAAQ,KAAK,KAAKA,EAAQG,CAAI,EAAIA,EAClCF,EAAO,KAAK,MAAMA,EAAOE,CAAI,EAAIA,MAEjC,OAEFwM,EAAUxM,CACX,CAED,OAAOkM,CACX,EAESA,CACT,CAEe,SAASzH,IAAS,CAC/B,IAAIyH,EAAQG,KAEZ,OAAAH,EAAM,KAAO,UAAW,CACtB,OAAOb,GAAKa,EAAOzH,GAAM,CAAE,CAC/B,EAEE8F,GAAU,MAAM2B,EAAO,SAAS,EAEzBK,GAAUL,CAAK,CACxB,CCrEe,SAASQ,GAAKlC,EAAQmC,EAAU,CAC7CnC,EAASA,EAAO,QAEhB,IAAI3C,EAAK,EACLzH,EAAKoK,EAAO,OAAS,EACrBoC,EAAKpC,EAAO3C,CAAE,EACdgF,EAAKrC,EAAOpK,CAAE,EACdwE,EAEJ,OAAIiI,EAAKD,IACPhI,EAAIiD,EAAIA,EAAKzH,EAAIA,EAAKwE,EACtBA,EAAIgI,EAAIA,EAAKC,EAAIA,EAAKjI,GAGxB4F,EAAO3C,CAAE,EAAI8E,EAAS,MAAMC,CAAE,EAC9BpC,EAAOpK,CAAE,EAAIuM,EAAS,KAAKE,CAAE,EACtBrC,CACT,CCjBA,MAAMsC,GAAK,IAAI,KAAMC,GAAK,IAAI,KAEvB,SAASC,EAAaC,EAAQC,EAASnN,EAAOoN,EAAO,CAE1D,SAASR,EAASpG,EAAM,CACtB,OAAO0G,EAAO1G,EAAO,UAAU,SAAW,EAAI,IAAI,KAAO,IAAI,KAAK,CAACA,CAAI,CAAC,EAAGA,CAC5E,CAED,OAAAoG,EAAS,MAASpG,IACT0G,EAAO1G,EAAO,IAAI,KAAK,CAACA,CAAI,CAAC,EAAGA,GAGzCoG,EAAS,KAAQpG,IACR0G,EAAO1G,EAAO,IAAI,KAAKA,EAAO,CAAC,CAAC,EAAG2G,EAAQ3G,EAAM,CAAC,EAAG0G,EAAO1G,CAAI,EAAGA,GAG5EoG,EAAS,MAASpG,GAAS,CACzB,MAAMwE,EAAK4B,EAASpG,CAAI,EAAGyE,EAAK2B,EAAS,KAAKpG,CAAI,EAClD,OAAOA,EAAOwE,EAAKC,EAAKzE,EAAOwE,EAAKC,CACxC,EAEE2B,EAAS,OAAS,CAACpG,EAAMvG,KAChBkN,EAAQ3G,EAAO,IAAI,KAAK,CAACA,CAAI,EAAGvG,GAAQ,KAAO,EAAI,KAAK,MAAMA,CAAI,CAAC,EAAGuG,GAG/EoG,EAAS,MAAQ,CAAC9M,EAAOC,EAAME,IAAS,CACtC,MAAMyK,EAAQ,CAAA,EAGd,GAFA5K,EAAQ8M,EAAS,KAAK9M,CAAK,EAC3BG,EAAOA,GAAQ,KAAO,EAAI,KAAK,MAAMA,CAAI,EACrC,EAAEH,EAAQC,IAAS,EAAEE,EAAO,GAAI,OAAOyK,EAC3C,IAAI2C,EACJ,GAAG3C,EAAM,KAAK2C,EAAW,IAAI,KAAK,CAACvN,CAAK,CAAC,EAAGqN,EAAQrN,EAAOG,CAAI,EAAGiN,EAAOpN,CAAK,QACvEuN,EAAWvN,GAASA,EAAQC,GACnC,OAAO2K,CACX,EAEEkC,EAAS,OAAUU,GACVL,EAAczG,GAAS,CAC5B,GAAIA,GAAQA,EAAM,KAAO0G,EAAO1G,CAAI,EAAG,CAAC8G,EAAK9G,CAAI,GAAGA,EAAK,QAAQA,EAAO,CAAC,CAC/E,EAAO,CAACA,EAAMvG,IAAS,CACjB,GAAIuG,GAAQA,EACV,GAAIvG,EAAO,EAAG,KAAO,EAAEA,GAAQ,GAC7B,KAAOkN,EAAQ3G,EAAM,EAAE,EAAG,CAAC8G,EAAK9G,CAAI,GAAG,KAClC,MAAO,EAAEvG,GAAQ,GACtB,KAAOkN,EAAQ3G,EAAM,CAAE,EAAG,CAAC8G,EAAK9G,CAAI,GAAG,CAGjD,CAAK,EAGCxG,IACF4M,EAAS,MAAQ,CAAC9M,EAAOoF,KACvB6H,GAAG,QAAQ,CAACjN,CAAK,EAAGkN,GAAG,QAAQ,CAAC9H,CAAG,EACnCgI,EAAOH,EAAE,EAAGG,EAAOF,EAAE,EACd,KAAK,MAAMhN,EAAM+M,GAAIC,EAAE,CAAC,GAGjCJ,EAAS,MAAS3M,IAChBA,EAAO,KAAK,MAAMA,CAAI,EACf,CAAC,SAASA,CAAI,GAAK,EAAEA,EAAO,GAAK,KAChCA,EAAO,EACT2M,EAAS,OAAOQ,EACXtO,GAAMsO,EAAMtO,CAAC,EAAImB,IAAS,EAC1BnB,GAAM8N,EAAS,MAAM,EAAG9N,CAAC,EAAImB,IAAS,CAAC,EAH9B2M,IAOjBA,CACT,CClEO,MAAMW,GAAcN,EAAa,IAAM,CAE9C,EAAG,CAACzG,EAAMvG,IAAS,CACjBuG,EAAK,QAAQ,CAACA,EAAOvG,CAAI,CAC3B,EAAG,CAACH,EAAOoF,IACFA,EAAMpF,CACd,EAGDyN,GAAY,MAAShK,IACnBA,EAAI,KAAK,MAAMA,CAAC,EACZ,CAAC,SAASA,CAAC,GAAK,EAAEA,EAAI,GAAW,KAC/BA,EAAI,EACH0J,EAAczG,GAAS,CAC5BA,EAAK,QAAQ,KAAK,MAAMA,EAAOjD,CAAC,EAAIA,CAAC,CACzC,EAAK,CAACiD,EAAMvG,IAAS,CACjBuG,EAAK,QAAQ,CAACA,EAAOvG,EAAOsD,CAAC,CACjC,EAAK,CAACzD,EAAOoF,KACDA,EAAMpF,GAASyD,CACxB,EAPoBgK,IAUKA,GAAY,MCxBjC,MAAMC,EAAiB,IACjBC,EAAiBD,EAAiB,GAClCE,EAAeD,EAAiB,GAChCE,EAAcD,EAAe,GAC7BE,GAAeD,EAAc,EAC7BE,GAAgBF,EAAc,GAC9BG,GAAeH,EAAc,ICH7BI,GAASd,EAAczG,GAAS,CAC3CA,EAAK,QAAQA,EAAOA,EAAK,gBAAiB,CAAA,CAC5C,EAAG,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,QAAQ,CAACA,EAAOvG,EAAOuN,CAAc,CAC5C,EAAG,CAAC1N,EAAOoF,KACDA,EAAMpF,GAAS0N,EACrBhH,GACKA,EAAK,eACb,EAEsBuH,GAAO,MCVvB,MAAMC,GAAaf,EAAczG,GAAS,CAC/CA,EAAK,QAAQA,EAAOA,EAAK,gBAAiB,EAAGA,EAAK,aAAegH,CAAc,CACjF,EAAG,CAAChH,EAAMvG,IAAS,CACjBuG,EAAK,QAAQ,CAACA,EAAOvG,EAAOwN,CAAc,CAC5C,EAAG,CAAC3N,EAAOoF,KACDA,EAAMpF,GAAS2N,EACrBjH,GACKA,EAAK,YACb,EAE0BwH,GAAW,MAEbf,EAAczG,GAAS,CAC9CA,EAAK,cAAc,EAAG,CAAC,CACzB,EAAG,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,QAAQ,CAACA,EAAOvG,EAAOwN,CAAc,CAC5C,EAAG,CAAC3N,EAAOoF,KACDA,EAAMpF,GAAS2N,EACrBjH,GACKA,EAAK,eACb,EAEmC,MCtB7B,MAAMyH,GAAWhB,EAAczG,GAAS,CAC7CA,EAAK,QAAQA,EAAOA,EAAK,gBAAe,EAAKA,EAAK,WAAU,EAAKgH,EAAiBhH,EAAK,WAAY,EAAGiH,CAAc,CACtH,EAAG,CAACjH,EAAMvG,IAAS,CACjBuG,EAAK,QAAQ,CAACA,EAAOvG,EAAOyN,CAAY,CAC1C,EAAG,CAAC5N,EAAOoF,KACDA,EAAMpF,GAAS4N,EACrBlH,GACKA,EAAK,UACb,EAEwByH,GAAS,MAEXhB,EAAczG,GAAS,CAC5CA,EAAK,cAAc,EAAG,EAAG,CAAC,CAC5B,EAAG,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,QAAQ,CAACA,EAAOvG,EAAOyN,CAAY,CAC1C,EAAG,CAAC5N,EAAOoF,KACDA,EAAMpF,GAAS4N,EACrBlH,GACKA,EAAK,aACb,EAE+B,MCtBzB,MAAM0H,GAAUjB,EACrBzG,GAAQA,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAChC,CAACA,EAAMvG,IAASuG,EAAK,QAAQA,EAAK,QAAS,EAAGvG,CAAI,EAClD,CAACH,EAAOoF,KAASA,EAAMpF,GAASoF,EAAI,kBAAmB,EAAGpF,EAAM,kBAAmB,GAAI2N,GAAkBE,EACzGnH,GAAQA,EAAK,QAAO,EAAK,CAC3B,EAEwB0H,GAAQ,MAEzB,MAAMC,GAASlB,EAAczG,GAAS,CAC3CA,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,CAC7B,EAAG,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,WAAWA,EAAK,WAAY,EAAGvG,CAAI,CAC1C,EAAG,CAACH,EAAOoF,KACDA,EAAMpF,GAAS6N,EACrBnH,GACKA,EAAK,WAAY,EAAG,CAC5B,EAEsB2H,GAAO,MAEPlB,EAAczG,GAAS,CAC5CA,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,CAC7B,EAAG,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,WAAWA,EAAK,WAAY,EAAGvG,CAAI,CAC1C,EAAG,CAACH,EAAOoF,KACDA,EAAMpF,GAAS6N,EACrBnH,GACK,KAAK,MAAMA,EAAOmH,CAAW,CACrC,EAE+B,MC/BhC,SAASS,EAAY7O,EAAG,CACtB,OAAO0N,EAAczG,GAAS,CAC5BA,EAAK,QAAQA,EAAK,WAAaA,EAAK,SAAW,EAAIjH,GAAK,CAAC,EACzDiH,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,CAC5B,EAAK,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,QAAQA,EAAK,QAAO,EAAKvG,EAAO,CAAC,CAC1C,EAAK,CAACH,EAAOoF,KACDA,EAAMpF,GAASoF,EAAI,oBAAsBpF,EAAM,kBAAiB,GAAM2N,GAAkBG,EACjG,CACH,CAEO,MAAMS,GAAaD,EAAY,CAAC,EAC1BE,GAAaF,EAAY,CAAC,EAC1BG,GAAcH,EAAY,CAAC,EAC3BI,GAAgBJ,EAAY,CAAC,EAC7BK,GAAeL,EAAY,CAAC,EAC5BM,GAAaN,EAAY,CAAC,EAC1BO,GAAeP,EAAY,CAAC,EAEdC,GAAW,MACXC,GAAW,MACVC,GAAY,MACVC,GAAc,MACfC,GAAa,MACfC,GAAW,MACTC,GAAa,MAE1C,SAASC,GAAWrP,EAAG,CACrB,OAAO0N,EAAczG,GAAS,CAC5BA,EAAK,WAAWA,EAAK,cAAgBA,EAAK,YAAc,EAAIjH,GAAK,CAAC,EAClEiH,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,CAC/B,EAAK,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,WAAWA,EAAK,WAAU,EAAKvG,EAAO,CAAC,CAChD,EAAK,CAACH,EAAOoF,KACDA,EAAMpF,GAAS8N,EACxB,CACH,CAEO,MAAMiB,GAAYD,GAAW,CAAC,EACxBE,GAAYF,GAAW,CAAC,EACxBG,GAAaH,GAAW,CAAC,EACzBI,GAAeJ,GAAW,CAAC,EAC3BK,GAAcL,GAAW,CAAC,EAC1BM,GAAYN,GAAW,CAAC,EACxBO,GAAcP,GAAW,CAAC,EAEbC,GAAU,MACVC,GAAU,MACTC,GAAW,MACTC,GAAa,MACdC,GAAY,MACdC,GAAU,MACRC,GAAY,MCrDjC,MAAMC,GAAYnC,EAAczG,GAAS,CAC9CA,EAAK,QAAQ,CAAC,EACdA,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,CAC1B,EAAG,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,SAASA,EAAK,SAAU,EAAGvG,CAAI,CACtC,EAAG,CAACH,EAAOoF,IACFA,EAAI,WAAapF,EAAM,SAAU,GAAIoF,EAAI,YAAW,EAAKpF,EAAM,YAAW,GAAM,GACrF0G,GACKA,EAAK,UACb,EAEyB4I,GAAU,MAEZnC,EAAczG,GAAS,CAC7CA,EAAK,WAAW,CAAC,EACjBA,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,CAC7B,EAAG,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,YAAYA,EAAK,YAAa,EAAGvG,CAAI,CAC5C,EAAG,CAACH,EAAOoF,IACFA,EAAI,cAAgBpF,EAAM,YAAa,GAAIoF,EAAI,eAAc,EAAKpF,EAAM,eAAc,GAAM,GACjG0G,GACKA,EAAK,aACb,EAEiC,MCxB3B,MAAM6I,EAAWpC,EAAczG,GAAS,CAC7CA,EAAK,SAAS,EAAG,CAAC,EAClBA,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,CAC1B,EAAG,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,YAAYA,EAAK,YAAa,EAAGvG,CAAI,CAC5C,EAAG,CAACH,EAAOoF,IACFA,EAAI,YAAW,EAAKpF,EAAM,YAAW,EAC1C0G,GACKA,EAAK,aACb,EAGD6I,EAAS,MAAS9L,GACT,CAAC,SAASA,EAAI,KAAK,MAAMA,CAAC,CAAC,GAAK,EAAEA,EAAI,GAAK,KAAO0J,EAAczG,GAAS,CAC9EA,EAAK,YAAY,KAAK,MAAMA,EAAK,cAAgBjD,CAAC,EAAIA,CAAC,EACvDiD,EAAK,SAAS,EAAG,CAAC,EAClBA,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,CAC5B,EAAK,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,YAAYA,EAAK,YAAW,EAAKvG,EAAOsD,CAAC,CAClD,CAAG,EAGsB8L,EAAS,MAE3B,MAAMC,GAAUrC,EAAczG,GAAS,CAC5CA,EAAK,YAAY,EAAG,CAAC,EACrBA,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,CAC7B,EAAG,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,eAAeA,EAAK,eAAgB,EAAGvG,CAAI,CAClD,EAAG,CAACH,EAAOoF,IACFA,EAAI,eAAc,EAAKpF,EAAM,eAAc,EAChD0G,GACKA,EAAK,gBACb,EAGD8I,GAAQ,MAAS/L,GACR,CAAC,SAASA,EAAI,KAAK,MAAMA,CAAC,CAAC,GAAK,EAAEA,EAAI,GAAK,KAAO0J,EAAczG,GAAS,CAC9EA,EAAK,eAAe,KAAK,MAAMA,EAAK,iBAAmBjD,CAAC,EAAIA,CAAC,EAC7DiD,EAAK,YAAY,EAAG,CAAC,EACrBA,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,CAC/B,EAAK,CAACA,EAAMvG,IAAS,CACjBuG,EAAK,eAAeA,EAAK,eAAc,EAAKvG,EAAOsD,CAAC,CACxD,CAAG,EAGqB+L,GAAQ,MCrChC,SAASC,GAAOC,EAAMC,EAAOC,EAAMC,EAAKC,EAAMC,EAAQ,CAEpD,MAAMC,EAAgB,CACpB,CAAC/B,GAAS,EAAQP,CAAc,EAChC,CAACO,GAAS,EAAI,EAAIP,CAAc,EAChC,CAACO,GAAQ,GAAI,GAAKP,CAAc,EAChC,CAACO,GAAQ,GAAI,GAAKP,CAAc,EAChC,CAACqC,EAAS,EAAQpC,CAAc,EAChC,CAACoC,EAAS,EAAI,EAAIpC,CAAc,EAChC,CAACoC,EAAQ,GAAI,GAAKpC,CAAc,EAChC,CAACoC,EAAQ,GAAI,GAAKpC,CAAc,EAChC,CAAGmC,EAAO,EAAQlC,CAAe,EACjC,CAAGkC,EAAO,EAAI,EAAIlC,CAAe,EACjC,CAAGkC,EAAO,EAAI,EAAIlC,CAAe,EACjC,CAAGkC,EAAM,GAAI,GAAKlC,CAAe,EACjC,CAAIiC,EAAM,EAAQhC,CAAe,EACjC,CAAIgC,EAAM,EAAI,EAAIhC,CAAe,EACjC,CAAG+B,EAAO,EAAQ9B,EAAe,EACjC,CAAE6B,EAAQ,EAAQ5B,EAAe,EACjC,CAAE4B,EAAQ,EAAI,EAAI5B,EAAe,EACjC,CAAG2B,EAAO,EAAQ1B,EAAe,CACrC,EAEE,SAAStN,EAAMV,EAAOC,EAAMC,EAAO,CACjC,MAAMS,EAAUV,EAAOD,EACnBW,IAAS,CAACX,EAAOC,CAAI,EAAI,CAACA,EAAMD,CAAK,GACzC,MAAM8M,EAAW5M,GAAS,OAAOA,EAAM,OAAU,WAAaA,EAAQ+P,EAAajQ,EAAOC,EAAMC,CAAK,EAC/FQ,EAAQoM,EAAWA,EAAS,MAAM9M,EAAO,CAACC,EAAO,CAAC,EAAI,GAC5D,OAAOU,EAAUD,EAAM,QAAO,EAAKA,CACpC,CAED,SAASuP,EAAajQ,EAAOC,EAAMC,EAAO,CACxC,MAAMwL,EAAS,KAAK,IAAIzL,EAAOD,CAAK,EAAIE,EAClCT,EAAId,GAAS,CAAC,GAAIwB,CAAI,IAAMA,CAAI,EAAE,MAAM6P,EAAetE,CAAM,EACnE,GAAIjM,IAAMuQ,EAAc,OAAQ,OAAON,EAAK,MAAM5O,GAASd,EAAQgO,GAAc/N,EAAO+N,GAAc9N,CAAK,CAAC,EAC5G,GAAIT,IAAM,EAAG,OAAOgO,GAAY,MAAM,KAAK,IAAI3M,GAASd,EAAOC,EAAMC,CAAK,EAAG,CAAC,CAAC,EAC/E,KAAM,CAAC6E,EAAG5E,CAAI,EAAI6P,EAActE,EAASsE,EAAcvQ,EAAI,CAAC,EAAE,CAAC,EAAIuQ,EAAcvQ,CAAC,EAAE,CAAC,EAAIiM,EAASjM,EAAI,EAAIA,CAAC,EAC3G,OAAOsF,EAAE,MAAM5E,CAAI,CACpB,CAED,MAAO,CAACO,EAAOuP,CAAY,CAC7B,CAGA,KAAM,CAACC,GAAWC,EAAgB,EAAIV,GAAOF,EAAUD,GAAWf,GAAYH,GAASD,GAAUD,EAAU,EC1C3G,SAASkC,GAAUpR,EAAG,CACpB,GAAI,GAAKA,EAAE,GAAKA,EAAE,EAAI,IAAK,CACzB,IAAI0H,EAAO,IAAI,KAAK,GAAI1H,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,EACpD,OAAA0H,EAAK,YAAY1H,EAAE,CAAC,EACb0H,CACR,CACD,OAAO,IAAI,KAAK1H,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CACnD,CAEA,SAASqR,GAAQrR,EAAG,CAClB,GAAI,GAAKA,EAAE,GAAKA,EAAE,EAAI,IAAK,CACzB,IAAI0H,EAAO,IAAI,KAAK,KAAK,IAAI,GAAI1H,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,EAC9D,OAAA0H,EAAK,eAAe1H,EAAE,CAAC,EAChB0H,CACR,CACD,OAAO,IAAI,KAAK,KAAK,IAAI1H,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,EAAGA,EAAE,CAAC,CAAC,CAC7D,CAEA,SAASsR,GAAQxL,EAAGjC,EAAG7D,EAAG,CACxB,MAAO,CAAC,EAAG8F,EAAG,EAAGjC,EAAG,EAAG7D,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAClD,CAEe,SAASsL,GAAa7B,EAAQ,CAC3C,IAAI8H,EAAkB9H,EAAO,SACzB+H,EAAc/H,EAAO,KACrBgI,EAAchI,EAAO,KACrBiI,EAAiBjI,EAAO,QACxBkI,EAAkBlI,EAAO,KACzBmI,EAAuBnI,EAAO,UAC9BoI,EAAgBpI,EAAO,OACvBqI,EAAqBrI,EAAO,YAE5BsI,EAAWC,GAASN,CAAc,EAClCO,EAAeC,GAAaR,CAAc,EAC1CS,EAAYH,GAASL,CAAe,EACpCS,EAAgBF,GAAaP,CAAe,EAC5CU,EAAiBL,GAASJ,CAAoB,EAC9CU,EAAqBJ,GAAaN,CAAoB,EACtDW,EAAUP,GAASH,CAAa,EAChCW,EAAcN,GAAaL,CAAa,EACxCY,EAAeT,GAASF,CAAkB,EAC1CY,EAAmBR,GAAaJ,CAAkB,EAElDa,EAAU,CACZ,EAAKC,GACL,EAAKC,GACL,EAAKC,EACL,EAAKC,GACL,EAAK,KACL,EAAKC,GACL,EAAKA,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAK,KACL,EAAK,KACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,IAAKC,EACT,EAEMC,EAAa,CACf,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAK,KACL,EAAKC,GACL,EAAKA,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAK5B,GACL,EAAKC,GACL,EAAK4B,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAK,KACL,EAAK,KACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,IAAK1B,EACT,EAEM2B,EAAS,CACX,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,EACL,EAAKC,GACL,EAAKA,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKA,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,EACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKlB,GACL,EAAKC,GACL,EAAKkB,GACL,IAAKC,EACT,EAGEnF,EAAQ,EAAIzI,EAAUsH,EAAamB,CAAO,EAC1CA,EAAQ,EAAIzI,EAAUuH,EAAakB,CAAO,EAC1CA,EAAQ,EAAIzI,EAAUqH,EAAiBoB,CAAO,EAC9C6B,EAAW,EAAItK,EAAUsH,EAAagD,CAAU,EAChDA,EAAW,EAAItK,EAAUuH,EAAa+C,CAAU,EAChDA,EAAW,EAAItK,EAAUqH,EAAiBiD,CAAU,EAEpD,SAAStK,EAAUvB,EAAWgK,EAAS,CACrC,OAAO,SAASjL,EAAM,CACpB,IAAID,EAAS,CAAE,EACXhH,EAAI,GACJ4H,EAAI,EACJzG,EAAI+G,EAAU,OACdpC,EACAwR,GACAnU,GAIJ,IAFM8D,aAAgB,OAAOA,EAAO,IAAI,KAAK,CAACA,CAAI,GAE3C,EAAEjH,EAAImB,GACP+G,EAAU,WAAWlI,CAAC,IAAM,KAC9BgH,EAAO,KAAKkB,EAAU,MAAMN,EAAG5H,CAAC,CAAC,GAC5BsX,GAAMC,GAAKzR,EAAIoC,EAAU,OAAO,EAAElI,CAAC,CAAC,IAAM,KAAM8F,EAAIoC,EAAU,OAAO,EAAElI,CAAC,EACxEsX,GAAMxR,IAAM,IAAM,IAAM,KACzB3C,GAAS+O,EAAQpM,CAAC,KAAGA,EAAI3C,GAAO8D,EAAMqQ,EAAG,GAC7CtQ,EAAO,KAAKlB,CAAC,EACb8B,EAAI5H,EAAI,GAIZ,OAAAgH,EAAO,KAAKkB,EAAU,MAAMN,EAAG5H,CAAC,CAAC,EAC1BgH,EAAO,KAAK,EAAE,CAC3B,CACG,CAED,SAASwQ,EAAStP,EAAWuP,EAAG,CAC9B,OAAO,SAASzQ,EAAQ,CACtB,IAAIzH,EAAIsR,GAAQ,KAAM,OAAW,CAAC,EAC9B7Q,EAAI0X,EAAenY,EAAG2I,EAAWlB,GAAU,GAAI,CAAC,EAChDmJ,EAAMC,EACV,GAAIpQ,GAAKgH,EAAO,OAAQ,OAAO,KAG/B,GAAI,MAAOzH,EAAG,OAAO,IAAI,KAAKA,EAAE,CAAC,EACjC,GAAI,MAAOA,EAAG,OAAO,IAAI,KAAKA,EAAE,EAAI,KAAQ,MAAOA,EAAIA,EAAE,EAAI,EAAE,EAY/D,GATIkY,GAAK,EAAE,MAAOlY,KAAIA,EAAE,EAAI,GAGxB,MAAOA,IAAGA,EAAE,EAAIA,EAAE,EAAI,GAAKA,EAAE,EAAI,IAGjCA,EAAE,IAAM,SAAWA,EAAE,EAAI,MAAOA,EAAIA,EAAE,EAAI,GAG1C,MAAOA,EAAG,CACZ,GAAIA,EAAE,EAAI,GAAKA,EAAE,EAAI,GAAI,OAAO,KAC1B,MAAOA,IAAIA,EAAE,EAAI,GACnB,MAAOA,GACT4Q,EAAOS,GAAQC,GAAQtR,EAAE,EAAG,EAAG,CAAC,CAAC,EAAG6Q,EAAMD,EAAK,UAAS,EACxDA,EAAOC,EAAM,GAAKA,IAAQ,EAAIb,GAAU,KAAKY,CAAI,EAAIZ,GAAUY,CAAI,EACnEA,EAAOvB,GAAO,OAAOuB,GAAO5Q,EAAE,EAAI,GAAK,CAAC,EACxCA,EAAE,EAAI4Q,EAAK,iBACX5Q,EAAE,EAAI4Q,EAAK,cACX5Q,EAAE,EAAI4Q,EAAK,WAAU,GAAM5Q,EAAE,EAAI,GAAK,IAEtC4Q,EAAOQ,GAAUE,GAAQtR,EAAE,EAAG,EAAG,CAAC,CAAC,EAAG6Q,EAAMD,EAAK,OAAM,EACvDA,EAAOC,EAAM,GAAKA,IAAQ,EAAIrB,GAAW,KAAKoB,CAAI,EAAIpB,GAAWoB,CAAI,EACrEA,EAAOxB,GAAQ,OAAOwB,GAAO5Q,EAAE,EAAI,GAAK,CAAC,EACzCA,EAAE,EAAI4Q,EAAK,cACX5Q,EAAE,EAAI4Q,EAAK,WACX5Q,EAAE,EAAI4Q,EAAK,QAAO,GAAM5Q,EAAE,EAAI,GAAK,EAEtC,MAAU,MAAOA,GAAK,MAAOA,KACtB,MAAOA,IAAIA,EAAE,EAAI,MAAOA,EAAIA,EAAE,EAAI,EAAI,MAAOA,EAAI,EAAI,GAC3D6Q,EAAM,MAAO7Q,EAAIqR,GAAQC,GAAQtR,EAAE,EAAG,EAAG,CAAC,CAAC,EAAE,YAAcoR,GAAUE,GAAQtR,EAAE,EAAG,EAAG,CAAC,CAAC,EAAE,SACzFA,EAAE,EAAI,EACNA,EAAE,EAAI,MAAOA,GAAKA,EAAE,EAAI,GAAK,EAAIA,EAAE,EAAI,GAAK6Q,EAAM,GAAK,EAAI7Q,EAAE,EAAIA,EAAE,EAAI,GAAK6Q,EAAM,GAAK,GAKzF,MAAI,MAAO7Q,GACTA,EAAE,GAAKA,EAAE,EAAI,IAAM,EACnBA,EAAE,GAAKA,EAAE,EAAI,IACNqR,GAAQrR,CAAC,GAIXoR,GAAUpR,CAAC,CACxB,CACG,CAED,SAASmY,EAAe,EAAGxP,EAAWlB,EAAQY,EAAG,CAO/C,QANI5H,EAAI,EACJmB,EAAI+G,EAAU,OACd9E,EAAI4D,EAAO,OACXlB,EACA6R,GAEG3X,EAAImB,GAAG,CACZ,GAAIyG,GAAKxE,EAAG,MAAO,GAEnB,GADA0C,EAAIoC,EAAU,WAAWlI,GAAG,EACxB8F,IAAM,IAGR,GAFAA,EAAIoC,EAAU,OAAOlI,GAAG,EACxB2X,GAAQlC,EAAO3P,KAAKyR,GAAOrP,EAAU,OAAOlI,GAAG,EAAI8F,CAAC,EAChD,CAAC6R,KAAW/P,EAAI+P,GAAM,EAAG3Q,EAAQY,CAAC,GAAK,EAAI,MAAO,WAC7C9B,GAAKkB,EAAO,WAAWY,GAAG,EACnC,MAAO,EAEV,CAED,OAAOA,CACR,CAED,SAAS4O,EAAY,EAAGxP,EAAQhH,EAAG,CACjC,IAAImB,EAAImQ,EAAS,KAAKtK,EAAO,MAAMhH,CAAC,CAAC,EACrC,OAAOmB,GAAK,EAAE,EAAIqQ,EAAa,IAAIrQ,EAAE,CAAC,EAAE,YAAa,CAAA,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC5E,CAED,SAASuU,EAAkB,EAAG1O,EAAQhH,EAAG,CACvC,IAAImB,EAAIyQ,EAAe,KAAK5K,EAAO,MAAMhH,CAAC,CAAC,EAC3C,OAAOmB,GAAK,EAAE,EAAI0Q,EAAmB,IAAI1Q,EAAE,CAAC,EAAE,YAAa,CAAA,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAClF,CAED,SAASwU,EAAa,EAAG3O,EAAQhH,EAAG,CAClC,IAAImB,EAAIuQ,EAAU,KAAK1K,EAAO,MAAMhH,CAAC,CAAC,EACtC,OAAOmB,GAAK,EAAE,EAAIwQ,EAAc,IAAIxQ,EAAE,CAAC,EAAE,YAAa,CAAA,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC7E,CAED,SAASyU,EAAgB,EAAG5O,EAAQhH,EAAG,CACrC,IAAImB,EAAI6Q,EAAa,KAAKhL,EAAO,MAAMhH,CAAC,CAAC,EACzC,OAAOmB,GAAK,EAAE,EAAI8Q,EAAiB,IAAI9Q,EAAE,CAAC,EAAE,YAAa,CAAA,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAChF,CAED,SAAS0U,EAAW,EAAG7O,EAAQhH,EAAG,CAChC,IAAImB,EAAI2Q,EAAQ,KAAK9K,EAAO,MAAMhH,CAAC,CAAC,EACpC,OAAOmB,GAAK,EAAE,EAAI4Q,EAAY,IAAI5Q,EAAE,CAAC,EAAE,YAAa,CAAA,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC3E,CAED,SAAS2U,EAAoB,EAAG9O,EAAQhH,EAAG,CACzC,OAAO0X,EAAe,EAAG5G,EAAiB9J,EAAQhH,CAAC,CACpD,CAED,SAASkX,GAAgB,EAAGlQ,EAAQhH,EAAG,CACrC,OAAO0X,EAAe,EAAG3G,EAAa/J,EAAQhH,CAAC,CAChD,CAED,SAASmX,GAAgB,EAAGnQ,EAAQhH,EAAG,CACrC,OAAO0X,EAAe,EAAG1G,EAAahK,EAAQhH,CAAC,CAChD,CAED,SAASmS,GAAmB,EAAG,CAC7B,OAAOhB,EAAqB,EAAE,OAAM,CAAE,CACvC,CAED,SAASiB,GAAc,EAAG,CACxB,OAAOlB,EAAgB,EAAE,OAAM,CAAE,CAClC,CAED,SAASmB,EAAiB,EAAG,CAC3B,OAAOhB,EAAmB,EAAE,SAAQ,CAAE,CACvC,CAED,SAASiB,GAAY,EAAG,CACtB,OAAOlB,EAAc,EAAE,SAAQ,CAAE,CAClC,CAED,SAAS6B,GAAa,EAAG,CACvB,OAAOhC,EAAe,EAAE,EAAE,SAAQ,GAAM,GAAG,CAC5C,CAED,SAASiC,GAAc,EAAG,CACxB,MAAO,GAAI,CAAC,EAAE,EAAE,SAAU,EAAG,EAC9B,CAED,SAASc,GAAsB,EAAG,CAChC,OAAO7C,EAAqB,EAAE,UAAS,CAAE,CAC1C,CAED,SAAS8C,GAAiB,EAAG,CAC3B,OAAO/C,EAAgB,EAAE,UAAS,CAAE,CACrC,CAED,SAASgD,GAAoB,EAAG,CAC9B,OAAO7C,EAAmB,EAAE,YAAW,CAAE,CAC1C,CAED,SAAS8C,GAAe,EAAG,CACzB,OAAO/C,EAAc,EAAE,YAAW,CAAE,CACrC,CAED,SAAS0D,GAAgB,EAAG,CAC1B,OAAO7D,EAAe,EAAE,EAAE,YAAW,GAAM,GAAG,CAC/C,CAED,SAAS8D,GAAiB,EAAG,CAC3B,MAAO,GAAI,CAAC,EAAE,EAAE,YAAa,EAAG,EACjC,CAED,MAAO,CACL,OAAQ,SAAS7M,EAAW,CAC1B,IAAI/I,EAAIsK,EAAUvB,GAAa,GAAIgK,CAAO,EAC1C,OAAA/S,EAAE,SAAW,UAAW,CAAE,OAAO+I,CAAU,EACpC/I,CACR,EACD,MAAO,SAAS+I,EAAW,CACzB,IAAIb,EAAImQ,EAAStP,GAAa,GAAI,EAAK,EACvC,OAAAb,EAAE,SAAW,UAAW,CAAE,OAAOa,CAAU,EACpCb,CACR,EACD,UAAW,SAASa,EAAW,CAC7B,IAAI/I,EAAIsK,EAAUvB,GAAa,GAAI6L,CAAU,EAC7C,OAAA5U,EAAE,SAAW,UAAW,CAAE,OAAO+I,CAAU,EACpC/I,CACR,EACD,SAAU,SAAS+I,EAAW,CAC5B,IAAIb,EAAImQ,EAAStP,GAAa,GAAI,EAAI,EACtC,OAAAb,EAAE,SAAW,UAAW,CAAE,OAAOa,CAAU,EACpCb,CACR,CACL,CACA,CAEA,IAAIkQ,GAAO,CAAC,IAAK,GAAI,EAAK,IAAK,EAAK,GAAG,EACnCK,EAAW,UACXC,GAAY,KACZC,GAAY,sBAEhB,SAASR,EAAIzY,EAAO6K,EAAM/B,EAAO,CAC/B,IAAIiC,EAAO/K,EAAQ,EAAI,IAAM,GACzBmI,GAAU4C,EAAO,CAAC/K,EAAQA,GAAS,GACnCgJ,EAASb,EAAO,OACpB,OAAO4C,GAAQ/B,EAASF,EAAQ,IAAI,MAAMA,EAAQE,EAAS,CAAC,EAAE,KAAK6B,CAAI,EAAI1C,EAASA,EACtF,CAEA,SAAS+Q,GAAQvT,EAAG,CAClB,OAAOA,EAAE,QAAQsT,GAAW,MAAM,CACpC,CAEA,SAASvG,GAASyG,EAAO,CACvB,OAAO,IAAI,OAAO,OAASA,EAAM,IAAID,EAAO,EAAE,KAAK,GAAG,EAAI,IAAK,GAAG,CACpE,CAEA,SAAStG,GAAauG,EAAO,CAC3B,OAAO,IAAI,IAAIA,EAAM,IAAI,CAACC,EAAMjY,IAAM,CAACiY,EAAK,YAAW,EAAIjY,CAAC,CAAC,CAAC,CAChE,CAEA,SAASgX,GAAyBzX,EAAGyH,EAAQhH,EAAG,CAC9C,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAAS0V,GAAyBtX,EAAGyH,EAAQhH,EAAG,CAC9C,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAAS2V,GAAsBvX,EAAGyH,EAAQhH,EAAG,CAC3C,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAAS4V,GAAmBxX,EAAGyH,EAAQhH,EAAG,CACxC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAAS8V,GAAsB1X,EAAGyH,EAAQhH,EAAG,CAC3C,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAAS+U,GAAc3W,EAAGyH,EAAQhH,EAAG,CACnC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAAS8U,GAAU1W,EAAGyH,EAAQhH,EAAG,CAC/B,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,GAAK,CAACA,EAAE,CAAC,EAAI,GAAK,KAAO,KAAOnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC3E,CAEA,SAASiW,GAAU7X,EAAGyH,EAAQhH,EAAG,CAC/B,IAAImB,EAAI,+BAA+B,KAAK6F,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAClE,OAAOmB,GAAK5B,EAAE,EAAI4B,EAAE,CAAC,EAAI,EAAI,EAAEA,EAAE,CAAC,GAAKA,EAAE,CAAC,GAAK,OAAQnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC5E,CAEA,SAASsV,GAAalX,EAAGyH,EAAQhH,EAAG,CAClC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI4B,EAAE,CAAC,EAAI,EAAI,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EACrD,CAEA,SAASmV,GAAiB/W,EAAGyH,EAAQhH,EAAG,CACtC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI4B,EAAE,CAAC,EAAI,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EACjD,CAEA,SAAS4U,GAAgBxW,EAAGyH,EAAQhH,EAAG,CACrC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAASiV,GAAe7W,EAAGyH,EAAQhH,EAAG,CACpC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,EAAGA,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EACvD,CAEA,SAASgV,GAAY5W,EAAGyH,EAAQhH,EAAG,CACjC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAASoV,GAAahX,EAAGyH,EAAQhH,EAAG,CAClC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAASyV,GAAarX,EAAGyH,EAAQhH,EAAG,CAClC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAASkV,GAAkB9W,EAAGyH,EAAQhH,EAAG,CACvC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAAS6U,GAAkBzW,EAAGyH,EAAQhH,EAAG,CACvC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC5C,OAAOmB,GAAK5B,EAAE,EAAI,KAAK,MAAM4B,EAAE,CAAC,EAAI,GAAI,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAChE,CAEA,SAASkW,GAAoB9X,EAAGyH,EAAQhH,EAAG,CACzC,IAAImB,EAAI0W,GAAU,KAAK7Q,EAAO,MAAMhH,EAAGA,EAAI,CAAC,CAAC,EAC7C,OAAOmB,EAAInB,EAAImB,EAAE,CAAC,EAAE,OAAS,EAC/B,CAEA,SAASuV,GAAmBnX,EAAGyH,EAAQhH,EAAG,CACxC,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,CAAC,CAAC,EACrC,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAASwV,GAA0BpX,EAAGyH,EAAQhH,EAAG,CAC/C,IAAImB,EAAIyW,EAAS,KAAK5Q,EAAO,MAAMhH,CAAC,CAAC,EACrC,OAAOmB,GAAK5B,EAAE,EAAI,CAAC4B,EAAE,CAAC,EAAGnB,EAAImB,EAAE,CAAC,EAAE,QAAU,EAC9C,CAEA,SAASoR,GAAiBhT,EAAG8H,EAAG,CAC9B,OAAOiQ,EAAI/X,EAAE,QAAS,EAAE8H,EAAG,CAAC,CAC9B,CAEA,SAASsL,GAAapT,EAAG8H,EAAG,CAC1B,OAAOiQ,EAAI/X,EAAE,SAAU,EAAE8H,EAAG,CAAC,CAC/B,CAEA,SAASuL,GAAarT,EAAG8H,EAAG,CAC1B,OAAOiQ,EAAI/X,EAAE,SAAU,EAAG,IAAM,GAAI8H,EAAG,CAAC,CAC1C,CAEA,SAASwL,GAAgBtT,EAAG8H,EAAG,CAC7B,OAAOiQ,EAAI,EAAI3I,GAAQ,MAAMmB,EAASvQ,CAAC,EAAGA,CAAC,EAAG8H,EAAG,CAAC,CACpD,CAEA,SAASyL,GAAmBvT,EAAG8H,EAAG,CAChC,OAAOiQ,EAAI/X,EAAE,gBAAiB,EAAE8H,EAAG,CAAC,CACtC,CAEA,SAASmL,GAAmBjT,EAAG8H,EAAG,CAChC,OAAOyL,GAAmBvT,EAAG8H,CAAC,EAAI,KACpC,CAEA,SAAS0L,GAAkBxT,EAAG8H,EAAG,CAC/B,OAAOiQ,EAAI/X,EAAE,SAAQ,EAAK,EAAG8H,EAAG,CAAC,CACnC,CAEA,SAAS2L,GAAczT,EAAG8H,EAAG,CAC3B,OAAOiQ,EAAI/X,EAAE,WAAY,EAAE8H,EAAG,CAAC,CACjC,CAEA,SAASgM,GAAc9T,EAAG8H,EAAG,CAC3B,OAAOiQ,EAAI/X,EAAE,WAAY,EAAE8H,EAAG,CAAC,CACjC,CAEA,SAASiM,GAA0B/T,EAAG,CACpC,IAAI6Q,EAAM7Q,EAAE,SACZ,OAAO6Q,IAAQ,EAAI,EAAIA,CACzB,CAEA,SAASmD,GAAuBhU,EAAG8H,EAAG,CACpC,OAAOiQ,EAAIxI,GAAW,MAAMgB,EAASvQ,CAAC,EAAI,EAAGA,CAAC,EAAG8H,EAAG,CAAC,CACvD,CAEA,SAAS6Q,GAAK3Y,EAAG,CACf,IAAI6Q,EAAM7Q,EAAE,SACZ,OAAQ6Q,GAAO,GAAKA,IAAQ,EAAKlB,GAAa3P,CAAC,EAAI2P,GAAa,KAAK3P,CAAC,CACxE,CAEA,SAASiU,GAAoBjU,EAAG8H,EAAG,CACjC,OAAA9H,EAAI2Y,GAAK3Y,CAAC,EACH+X,EAAIpI,GAAa,MAAMY,EAASvQ,CAAC,EAAGA,CAAC,GAAKuQ,EAASvQ,CAAC,EAAE,OAAQ,IAAK,GAAI8H,EAAG,CAAC,CACpF,CAEA,SAASoM,GAA0BlU,EAAG,CACpC,OAAOA,EAAE,QACX,CAEA,SAASmU,GAAuBnU,EAAG8H,EAAG,CACpC,OAAOiQ,EAAIvI,GAAW,MAAMe,EAASvQ,CAAC,EAAI,EAAGA,CAAC,EAAG8H,EAAG,CAAC,CACvD,CAEA,SAASsM,GAAWpU,EAAG8H,EAAG,CACxB,OAAOiQ,EAAI/X,EAAE,YAAW,EAAK,IAAK8H,EAAG,CAAC,CACxC,CAEA,SAASoL,GAAclT,EAAG8H,EAAG,CAC3B,OAAA9H,EAAI2Y,GAAK3Y,CAAC,EACH+X,EAAI/X,EAAE,YAAW,EAAK,IAAK8H,EAAG,CAAC,CACxC,CAEA,SAASuM,GAAerU,EAAG8H,EAAG,CAC5B,OAAOiQ,EAAI/X,EAAE,YAAW,EAAK,IAAO8H,EAAG,CAAC,CAC1C,CAEA,SAASqL,GAAkBnT,EAAG8H,EAAG,CAC/B,IAAI+I,EAAM7Q,EAAE,SACZ,OAAAA,EAAK6Q,GAAO,GAAKA,IAAQ,EAAKlB,GAAa3P,CAAC,EAAI2P,GAAa,KAAK3P,CAAC,EAC5D+X,EAAI/X,EAAE,YAAW,EAAK,IAAO8H,EAAG,CAAC,CAC1C,CAEA,SAASwM,GAAWtU,EAAG,CACrB,IAAI4Y,EAAI5Y,EAAE,oBACV,OAAQ4Y,EAAI,EAAI,KAAOA,GAAK,GAAI,MAC1Bb,EAAIa,EAAI,GAAK,EAAG,IAAK,CAAC,EACtBb,EAAIa,EAAI,GAAI,IAAK,CAAC,CAC1B,CAEA,SAAS/D,GAAoB7U,EAAG8H,EAAG,CACjC,OAAOiQ,EAAI/X,EAAE,WAAY,EAAE8H,EAAG,CAAC,CACjC,CAEA,SAASmN,GAAgBjV,EAAG8H,EAAG,CAC7B,OAAOiQ,EAAI/X,EAAE,YAAa,EAAE8H,EAAG,CAAC,CAClC,CAEA,SAASoN,GAAgBlV,EAAG8H,EAAG,CAC7B,OAAOiQ,EAAI/X,EAAE,YAAa,EAAG,IAAM,GAAI8H,EAAG,CAAC,CAC7C,CAEA,SAASqN,GAAmBnV,EAAG8H,EAAG,CAChC,OAAOiQ,EAAI,EAAI1I,GAAO,MAAMmB,GAAQxQ,CAAC,EAAGA,CAAC,EAAG8H,EAAG,CAAC,CAClD,CAEA,SAASsN,GAAsBpV,EAAG8H,EAAG,CACnC,OAAOiQ,EAAI/X,EAAE,mBAAoB,EAAE8H,EAAG,CAAC,CACzC,CAEA,SAASgN,GAAsB9U,EAAG8H,EAAG,CACnC,OAAOsN,GAAsBpV,EAAG8H,CAAC,EAAI,KACvC,CAEA,SAASuN,GAAqBrV,EAAG8H,EAAG,CAClC,OAAOiQ,EAAI/X,EAAE,YAAW,EAAK,EAAG8H,EAAG,CAAC,CACtC,CAEA,SAASwN,GAAiBtV,EAAG8H,EAAG,CAC9B,OAAOiQ,EAAI/X,EAAE,cAAe,EAAE8H,EAAG,CAAC,CACpC,CAEA,SAAS2N,GAAiBzV,EAAG8H,EAAG,CAC9B,OAAOiQ,EAAI/X,EAAE,cAAe,EAAE8H,EAAG,CAAC,CACpC,CAEA,SAAS4N,GAA6B1V,EAAG,CACvC,IAAI6Y,EAAM7Y,EAAE,YACZ,OAAO6Y,IAAQ,EAAI,EAAIA,CACzB,CAEA,SAASlD,GAA0B3V,EAAG8H,EAAG,CACvC,OAAOiQ,EAAIhI,GAAU,MAAMS,GAAQxQ,CAAC,EAAI,EAAGA,CAAC,EAAG8H,EAAG,CAAC,CACrD,CAEA,SAASgR,GAAQ9Y,EAAG,CAClB,IAAI6Q,EAAM7Q,EAAE,YACZ,OAAQ6Q,GAAO,GAAKA,IAAQ,EAAKV,GAAYnQ,CAAC,EAAImQ,GAAY,KAAKnQ,CAAC,CACtE,CAEA,SAAS4V,GAAuB5V,EAAG8H,EAAG,CACpC,OAAA9H,EAAI8Y,GAAQ9Y,CAAC,EACN+X,EAAI5H,GAAY,MAAMK,GAAQxQ,CAAC,EAAGA,CAAC,GAAKwQ,GAAQxQ,CAAC,EAAE,UAAW,IAAK,GAAI8H,EAAG,CAAC,CACpF,CAEA,SAAS+N,GAA6B7V,EAAG,CACvC,OAAOA,EAAE,WACX,CAEA,SAAS8V,GAA0B9V,EAAG8H,EAAG,CACvC,OAAOiQ,EAAI/H,GAAU,MAAMQ,GAAQxQ,CAAC,EAAI,EAAGA,CAAC,EAAG8H,EAAG,CAAC,CACrD,CAEA,SAASiO,GAAc/V,EAAG8H,EAAG,CAC3B,OAAOiQ,EAAI/X,EAAE,eAAc,EAAK,IAAK8H,EAAG,CAAC,CAC3C,CAEA,SAASiN,GAAiB/U,EAAG8H,EAAG,CAC9B,OAAA9H,EAAI8Y,GAAQ9Y,CAAC,EACN+X,EAAI/X,EAAE,eAAc,EAAK,IAAK8H,EAAG,CAAC,CAC3C,CAEA,SAASkO,GAAkBhW,EAAG8H,EAAG,CAC/B,OAAOiQ,EAAI/X,EAAE,eAAc,EAAK,IAAO8H,EAAG,CAAC,CAC7C,CAEA,SAASkN,GAAqBhV,EAAG8H,EAAG,CAClC,IAAI+I,EAAM7Q,EAAE,YACZ,OAAAA,EAAK6Q,GAAO,GAAKA,IAAQ,EAAKV,GAAYnQ,CAAC,EAAImQ,GAAY,KAAKnQ,CAAC,EAC1D+X,EAAI/X,EAAE,eAAc,EAAK,IAAO8H,EAAG,CAAC,CAC7C,CAEA,SAASmO,IAAgB,CACvB,MAAO,OACT,CAEA,SAAS1B,IAAuB,CAC9B,MAAO,GACT,CAEA,SAASX,GAAoB5T,EAAG,CAC9B,MAAO,CAACA,CACV,CAEA,SAAS6T,GAA2B7T,EAAG,CACrC,OAAO,KAAK,MAAM,CAACA,EAAI,GAAI,CAC7B,CCtrBA,IAAIyJ,GACOsP,GAKX1N,GAAc,CACZ,SAAU,SACV,KAAM,aACN,KAAM,eACN,QAAS,CAAC,KAAM,IAAI,EACpB,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,UAAU,EACnF,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC3D,OAAQ,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,UAAU,EACjI,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,CAClG,CAAC,EAEc,SAASA,GAAchJ,EAAY,CAChD,OAAAoH,GAAS6B,GAAajJ,CAAU,EAChC0W,GAAatP,GAAO,OACRA,GAAO,MACPA,GAAO,UACRA,GAAO,SACXA,EACT,CCpBA,SAAS/B,GAAK3B,EAAG,CACf,OAAO,IAAI,KAAKA,CAAC,CACnB,CAEA,SAASrF,GAAOqF,EAAG,CACjB,OAAOA,aAAa,KAAO,CAACA,EAAI,CAAC,IAAI,KAAK,CAACA,CAAC,CAC9C,CAEO,SAASiT,GAAStX,EAAOuP,EAAcP,EAAMC,EAAOC,EAAMC,EAAKC,EAAMC,EAAQ9B,EAAQrL,EAAQ,CAClG,IAAIyJ,EAAQG,GAAY,EACpByL,EAAS5L,EAAM,OACf1B,EAAS0B,EAAM,OAEf6L,EAAoBtV,EAAO,KAAK,EAChCuV,EAAevV,EAAO,KAAK,EAC3BwV,EAAexV,EAAO,OAAO,EAC7ByV,EAAazV,EAAO,OAAO,EAC3B0V,EAAY1V,EAAO,OAAO,EAC1B2V,EAAa3V,EAAO,OAAO,EAC3BmP,EAAcnP,EAAO,IAAI,EACzBwQ,EAAaxQ,EAAO,IAAI,EAE5B,SAAS6J,EAAW/F,EAAM,CACxB,OAAQuH,EAAOvH,CAAI,EAAIA,EAAOwR,EACxBnI,EAAOrJ,CAAI,EAAIA,EAAOyR,EACtBrI,EAAKpJ,CAAI,EAAIA,EAAO0R,EACpBvI,EAAInJ,CAAI,EAAIA,EAAO2R,EACnB1I,EAAMjJ,CAAI,EAAIA,EAAQkJ,EAAKlJ,CAAI,EAAIA,EAAO4R,EAAYC,EACtD7I,EAAKhJ,CAAI,EAAIA,EAAOqL,EACpBqB,GAAY1M,CAAI,CACvB,CAED,OAAA2F,EAAM,OAAS,SAASvH,EAAG,CACzB,OAAO,IAAI,KAAKmT,EAAOnT,CAAC,CAAC,CAC7B,EAEEuH,EAAM,OAAS,SAASC,EAAG,CACzB,OAAO,UAAU,OAAS3B,EAAO,MAAM,KAAK2B,EAAG5M,EAAM,CAAC,EAAIiL,EAAM,EAAG,IAAIjE,EAAI,CAC/E,EAEE2F,EAAM,MAAQ,SAASS,EAAU,CAC/B,IAAI9N,EAAI2L,IACR,OAAOjK,EAAM1B,EAAE,CAAC,EAAGA,EAAEA,EAAE,OAAS,CAAC,EAAG8N,GAAmB,EAAa,CACxE,EAEET,EAAM,WAAa,SAASnM,EAAOyH,EAAW,CAC5C,OAAOA,GAAa,KAAO8E,EAAa7J,EAAO+E,CAAS,CAC5D,EAEE0E,EAAM,KAAO,SAASS,EAAU,CAC9B,IAAI9N,EAAI2L,IACR,OAAI,CAACmC,GAAY,OAAOA,EAAS,OAAU,cAAYA,EAAWmD,EAAajR,EAAE,CAAC,EAAGA,EAAEA,EAAE,OAAS,CAAC,EAAG8N,GAAmB,EAAa,GAC/HA,EAAWnC,EAAOkC,GAAK7N,EAAG8N,CAAQ,CAAC,EAAIT,CAClD,EAEEA,EAAM,KAAO,UAAW,CACtB,OAAOb,GAAKa,EAAO2L,GAAStX,EAAOuP,EAAcP,EAAMC,EAAOC,EAAMC,EAAKC,EAAMC,EAAQ9B,EAAQrL,CAAM,CAAC,CAC1G,EAESyJ,CACT,CAEe,SAASmM,IAAO,CAC7B,OAAO9N,GAAU,MAAMsN,GAAS9H,GAAWC,GAAkBZ,EAAUD,GAAWmJ,GAAUrK,GAASD,GAAUD,GAAYwK,GAAYX,EAAU,EAAE,OAAO,CAAC,IAAI,KAAK,IAAM,EAAG,CAAC,EAAG,IAAI,KAAK,IAAM,EAAG,CAAC,CAAC,CAAC,EAAG,SAAS,CACpN,CCtEO,SAASY,GAAUlV,EAAGxE,EAAG6F,EAAG,CACjC,KAAK,EAAIrB,EACT,KAAK,EAAIxE,EACT,KAAK,EAAI6F,CACX,CAEA6T,GAAU,UAAY,CACpB,YAAaA,GACb,MAAO,SAASlV,EAAG,CACjB,OAAOA,IAAM,EAAI,KAAO,IAAIkV,GAAU,KAAK,EAAIlV,EAAG,KAAK,EAAG,KAAK,CAAC,CACjE,EACD,UAAW,SAASxE,EAAG6F,EAAG,CACxB,OAAO7F,IAAM,EAAI6F,IAAM,EAAI,KAAO,IAAI6T,GAAU,KAAK,EAAG,KAAK,EAAI,KAAK,EAAI1Z,EAAG,KAAK,EAAI,KAAK,EAAI6F,CAAC,CACjG,EACD,MAAO,SAAS8T,EAAO,CACrB,MAAO,CAACA,EAAM,CAAC,EAAI,KAAK,EAAI,KAAK,EAAGA,EAAM,CAAC,EAAI,KAAK,EAAI,KAAK,CAAC,CAC/D,EACD,OAAQ,SAAS3Z,EAAG,CAClB,OAAOA,EAAI,KAAK,EAAI,KAAK,CAC1B,EACD,OAAQ,SAAS6F,EAAG,CAClB,OAAOA,EAAI,KAAK,EAAI,KAAK,CAC1B,EACD,OAAQ,SAAS+T,EAAU,CACzB,MAAO,EAAEA,EAAS,CAAC,EAAI,KAAK,GAAK,KAAK,GAAIA,EAAS,CAAC,EAAI,KAAK,GAAK,KAAK,CAAC,CACzE,EACD,QAAS,SAAS5Z,EAAG,CACnB,OAAQA,EAAI,KAAK,GAAK,KAAK,CAC5B,EACD,QAAS,SAAS6F,EAAG,CACnB,OAAQA,EAAI,KAAK,GAAK,KAAK,CAC5B,EACD,SAAU,SAAS7F,EAAG,CACpB,OAAOA,EAAE,KAAM,EAAC,OAAOA,EAAE,MAAK,EAAG,IAAI,KAAK,QAAS,IAAI,EAAE,IAAIA,EAAE,OAAQA,CAAC,CAAC,CAC1E,EACD,SAAU,SAAS6F,EAAG,CACpB,OAAOA,EAAE,KAAM,EAAC,OAAOA,EAAE,MAAK,EAAG,IAAI,KAAK,QAAS,IAAI,EAAE,IAAIA,EAAE,OAAQA,CAAC,CAAC,CAC1E,EACD,SAAU,UAAW,CACnB,MAAO,aAAe,KAAK,EAAI,IAAM,KAAK,EAAI,WAAa,KAAK,EAAI,GACrE,CACH,EAIsB6T,GAAU,UC9BzB,SAASG,GAAuBC,EAA+F,CACpI,OAAIA,EAAS,OAAS,YAAcA,EAAS,OAAS,eAC7CC,GAAaD,CAAQ,EAGvBE,GAAeF,CAAQ,CAChC,CAEA,SAASC,GAAa,CAAE,OAAArO,EAAQ,MAAAC,GAAgE,CAC9F,OAAOsO,GAAY,EAAA,OAAOvO,CAAM,EAAE,MAAMC,CAAK,CAC/C,CAEA,SAASqO,GAAe,CAAE,OAAAtO,EAAQ,MAAAC,GAAkE,CAClG,OAAOuO,GAAc,EAAA,OAAOxO,CAAM,EAAE,MAAMC,CAAK,CACjD,CCdO,SAASwO,GAAW,CAAE,cAAAC,EAAe,MAAAC,GAAoC,CAC1E,GAAA,CACK,OAAAC,GAAiBF,EAAeC,CAAK,QACrCjZ,EAAO,CACd,eAAQ,MAAMA,CAAK,EACZmZ,GAAiBH,EAAeC,CAAK,CAC9C,CACF,CAcA,SAASC,GAAiBE,EAAmBH,EAAmC,CACxE,MAAAI,MAA2B,IAC3BC,EAA4B,CAAA,EAElC,UAAWC,KAAMH,EAAS,CAChBC,EAAA,IAAIE,EAAI,CAAC,EACX,MAAAC,EAAOP,EAAM,IAAIM,CAAE,EAEzB,SAAW,CAAE,GAAIE,CAAQ,IAAKD,EAAK,SACjCF,EAAgB,KAAKG,CAAO,CAEhC,CAEO,OAAAC,GAAmBJ,EAAiBL,EAAOI,CAAO,CAC3D,CAaA,SAASK,GAAmBN,EAAmBH,EAAsBI,EAAmC,CACtG,UAAWM,KAAUP,EAAS,CACxB,GAAAC,EAAQ,IAAIM,CAAM,EACpB,SAGI,MAAAH,EAAOP,EAAM,IAAIU,CAAM,EAE7B,GAAI,CAACH,EACG,MAAA,IAAI,MAAM,4BAA4B,EAG9C,MAAMI,EAA0B,CAAA,EAErB,UAAA7Y,KAAUyY,EAAK,QAAS,CAEjC,MAAMK,EAASR,EAAQ,IAAItY,EAAO,EAAE,EAEpC,GAAI8Y,IAAW,OAAW,CACxBD,EAAc,KAAKC,CAAM,EACzB,QACF,CAEAH,GAAmB,CAAC3Y,EAAO,EAAE,EAAGkY,EAAOI,CAAO,EAE9C,MAAMS,EAAeT,EAAQ,IAAItY,EAAO,EAAE,EAE1C,GAAI+Y,IAAiB,OACb,MAAA,IAAI,MAAM,mCAAmC,EAGrDF,EAAc,KAAKE,CAAY,CACjC,CAEA,MAAMC,EAAkB,KAAK,IAAI,GAAGH,CAAa,EAEzCP,EAAA,IAAIM,EAAQI,EAAkB,CAAC,EAEjC,MAAAC,EAAeR,EAAK,SAAS,IAAI,CAAC,CAAE,GAAAD,CAAA,IAASA,CAAE,EAEjDS,EAAa,QACIN,GAAAM,EAAcf,EAAOI,CAAO,CAEnD,CAEO,OAAAA,CACT,CAiBA,SAASF,GAAiBC,EAAmBH,EAAsBgB,EAAgB,EAAGZ,EAAU,IAAI,IAAoB,CACtH,UAAWM,KAAUP,EAAS,CACtB,MAAAc,EAAuBb,EAAQ,IAAIM,CAAM,GAE3C,CAACO,GAAwBA,EAAuBD,IAC1CZ,EAAA,IAAIM,EAAQM,CAAa,EAG7B,MAAAT,EAAOP,EAAM,IAAIU,CAAM,EAE7B,SAAW,CAAE,GAAIF,CAAQ,IAAKD,EAAK,SACjCL,GAAiB,CAACM,CAAO,EAAGR,EAAOgB,EAAgB,EAAGZ,CAAO,CAEjE,CAEO,OAAAA,CACT,CCpIO,SAASc,GAAoBC,EAAgD,CAC9E,OAAAA,EAAQ,mBAAmB,OAAS,aAC/BC,GAA8BD,CAAO,EAG1CA,EAAQ,mBAAmB,OAAS,eAC/BE,GAA+BF,CAAO,EAGxCG,GAAwBH,CAAO,CACxC,CAEA,SAASC,GAA8B,CAAE,KAAAG,EAAM,mBAAAC,GAA6D,CACpG,MAAApB,EAAUN,GAAWyB,CAAI,EACzBxO,EAAQyM,GAAuBgC,CAAkB,EACjDC,MAA+B,IAErC,SAAW,CAACf,CAAM,IAAKa,EAAK,MAAO,CAC3B,MAAAX,EAASR,EAAQ,IAAIM,CAAM,EAEjC,GAAIE,IAAW,OAAW,CAChB,QAAA,KAAK,uCAAuCF,CAAM,EAAE,EAC5D,QACF,CAEAe,EAAO,IAAIf,EAAQ,CACjB,EAAG3N,EAAM6N,CAAM,EACf,OAAAA,CAAA,CACD,CACH,CAEO,OAAAa,CACT,CAEA,SAASH,GAAwB,CAAE,KAAAC,EAAM,mBAAAC,GAA6D,CAC9F,MAAAzO,EAAQyM,GAAuBgC,CAAkB,EACjDC,MAA+B,IAErC,SAAW,CAACf,EAAQH,CAAI,IAAKgB,EAAK,MAAO,CACvC,MAAMvc,EAAQ+N,EAAM,IAAI,KAAKwN,EAAK,UAAU,CAAC,EAE7CkB,EAAO,IAAIf,EAAQ,CACjB,OAAQ1b,EACR,EAAGA,CAAA,CACJ,CACH,CAEO,OAAAyc,CACT,CAEA,SAASJ,GAA+B,CAAE,KAAAE,EAAM,mBAAAC,GAA6D,CACrG,MAAAzO,EAAQyM,GAAuBgC,CAAkB,EACjDC,MAA+B,IAErC,SAAW,CAACf,CAAM,IAAKa,EAAK,MAC1BE,EAAO,IAAIf,EAAQ,CACjB,OAAQ,EACR,EAAG3N,EAAM,IAAI,KAAKwO,EAAK,UAAU,CAAC,CAAA,CACnC,EAGI,OAAAE,CACT,CCjEsB,eAAAC,GAA+BP,EAA8BQ,EAAuD,CAGlI,MAAAC,MAAuB,IACvBC,MAAiB,IACvB,IAAIC,EAAY,EAEV,MAAAL,MAA6B,IAEnC,eAAiB,CAACf,CAAM,IAAKS,EAAQ,KAAK,MAAO,CAC/C,MAAMZ,EAAOY,EAAQ,KAAK,MAAM,IAAIT,CAAM,EAE1C,GAAI,CAACH,EAAM,CACD,QAAA,KAAK,sDAAuDG,CAAM,EAC1E,QACF,CAEM,MAAAqB,EAAM,MAAMC,EAAyBzB,CAAI,EAE/C0B,EAAcvB,EAAQqB,CAAG,CAC3B,CAE6B,OAAAG,IAEtBT,EAEP,eAAeO,EAAyBzB,EAAqC,CACrE,KAAA,CAAE,EAAG4B,GAAeR,EAAW,IAAIpB,EAAK,EAAE,GAAK,GAErD,GAAI4B,IAAe,OACT,eAAA,KAAK,mEAAoE5B,EAAK,EAAE,EACjF,EAIL,GAAAA,EAAK,QAAQ,SAAW,EAC1B,OAAIkB,EAAO,IAAIlB,EAAK,QAAQ,CAAC,EAAE,EAAE,EACxB,MAAM6B,EAAsB7B,EAAK,QAAQ,CAAC,EAAE,GAAI4B,CAAU,GAGnE,QAAQ,KAAK,uDAAwD5B,EAAK,QAAQ,CAAC,EAAE,EAAE,EAChF,GAIL,GAAAA,EAAK,QAAQ,OAAS,EAAG,CAC3B,MAAM8B,EAAe9B,EAAK,QAAQ,IAAI,CAAC,CAAE,GAAAD,KAAS,CAC1CyB,MAAAA,EAAMN,EAAO,IAAInB,CAAE,EAEzB,OAAIyB,IAAQ,QACF,QAAA,KAAK,uDAAwDzB,CAAE,EAChE,GAGFyB,CAAA,CACR,EAGKO,EADkBD,EAAa,OAAO,CAACE,EAAKC,IAAaD,EAAMC,EAAU,CAAC,EAClCH,EAAa,OACrDN,EAAM,KAAK,MAAMO,CAAmB,EAEtC,GAAAG,EAAgBN,EAAYJ,CAAG,EAAG,CACpC,MAAMW,EAAmBC,EACvBR,EACAJ,CAAA,EAGIa,EAAYrC,EAAK,QAAQ,IAAI,CAAC,CAAE,GAAAD,CAAA,IAASA,CAAE,EAC3CuC,EAAyBH,EAAiB,OAAmBI,GAC1DF,EAAU,SAASE,CAAQ,CACnC,EAED,GAAID,EAAuB,OAAS,GAAKH,EAAiB,OAAS,EAAG,CAEpE,KAAM,CAACK,CAAoB,EAAIF,EAAuB,OAAS,EAC3DA,EACAH,EAEEM,GAAiBC,EACrBZ,EACAN,EACAH,EAAiB,IAAImB,CAAoB,CAAA,EAG1B,OAAAnB,EAAA,IAAImB,EAAsBC,EAAc,EAElD,MAAMZ,EAAsBW,EAAsBZ,CAAU,CACrE,CAEA,OAAO,MAAMe,EAAoC,CAC/C,gBAAiBR,EAAiB,CAAC,EACnC,aAAAL,EACA,WAAAF,EACA,WAAYJ,CAAA,CACb,CACH,CACF,CAGO,OAAAoB,EAAchB,EAAY,CAA4B,CAC/D,CAES,SAAAgB,EAAchB,EAAoBiB,EAAiC,CACtE,OAAAX,EAAgBN,EAAYiB,CAAe,EACtCD,EAAchB,EAAYiB,EAAkB,CAAC,EAG/CA,CACT,CAEe,eAAAhB,EAAsBiB,EAAwBlB,EAAqC,CAG1F,MAAAmB,EAAc7B,EAAO,IAAI4B,CAAc,EAE7C,GAAIC,IAAgB,OACV,eAAA,KAAK,yDAA0DD,CAAc,EAC9E,EAGJzB,EAAiB,IAAIyB,CAAc,GACrBzB,EAAA,IAAIyB,EAAgB,CAAC,EAGlC,MAAAE,EAAsB3B,EAAiB,IAAIyB,CAAc,EAG3D,OAAAZ,EAAgBN,EAAYmB,CAAW,EACrCC,IAAwB,GAAK,CAACd,EAAgBN,EAAYmB,EAAc,CAAC,GAC1D1B,EAAA,IAAIyB,EAAgB,EAAE,EAChCC,EAAc,GACXb,EAAgBN,EAAYmB,EAAc,CAAC,GAKvD,MAAME,EAAM,CACV,UAAWD,EACX,WAAApB,EACA,WAAYmB,EAAcC,CAAA,CAC3B,EAED3B,EAAiB,IAAIyB,EAAgBE,IAAwB,EAAI,GAAK,CAAC,EAEhED,EAAcC,IAZF3B,EAAA,IAAIyB,EAAgB,CAAC,EAC/BC,EAAc,GAalBA,CACT,CAES,SAAAb,EAAgBN,EAAoBJ,EAAsB,CAC7D,GAAAN,EAAO,OAAS,EACX,MAAA,GAGT,IAAIgC,EAAgB,GAEpB,MAAMC,EAAW7B,EAAW,IAAIE,CAAG,GAAK,CAAA,EAExC,UAAWrB,KAAUgD,EAAU,CACvB,MAAAC,EAAoBlC,EAAO,IAAIf,CAAM,EACrCkD,EAAgBC,EAAYnD,CAAM,EASxC,GAPoBoD,EAAmB,CACrC,cAAAF,EACA,aAAcD,EACd,eAAgBxB,EAChB,YAAaJ,CAAA,CACd,EAEgB,CACC0B,EAAA,GAChB,KACF,CACF,CAEO,OAAAA,CACT,CAOA,eAAeD,EAAM,CAAE,UAAAO,EAAW,WAAA5B,EAAY,WAAA6B,GAAyC,CAC/E,MAAAC,EAAqBtB,EAAsBR,EAAY6B,CAAU,EAEvE,GAAKC,EAIL,gBAAiBvD,KAAUuD,EAAoB,CAEvC,MAAAC,EAAiBzC,EAAO,IAAIf,CAAM,EAClC,CAAE,EAAGyB,CAAW,EAAIR,EAAW,IAAIjB,CAAM,GAAK,GAEhD,GAAAwD,IAAmB,QAAa/B,IAAe,OAAW,CACpD,QAAA,KAAK,uFAAwFzB,CAAM,EAC3G,QACF,CAEA,MAAMsD,EAAaE,EAAiBH,EAEpC,MAAMP,EAAM,CACV,UAAAO,EACA,WAAA5B,EACA,WAAA6B,CAAA,CACD,EAED/B,EAAcvB,EAAQsD,CAAU,CAClC,CACF,CAQA,SAASF,EAAmB,CAC1B,cAAAF,EACA,aAAAO,EACA,eAAAC,EACA,YAAAC,CAAA,EACmC,CAC5B,OAAAF,IAAiBE,GACnBT,EAAgB,IAAsBQ,CAC7C,CAES,SAAAzB,EAAsBR,EAAoBJ,EAAmC,CACpF,MAAMkC,EAA+B,CAAA,EAE/BP,EAAW7B,EAAW,IAAIE,CAAG,GAAK,CAAA,EAExC,UAAWrB,KAAUgD,EAAU,CACvB,MAAAE,EAAgBC,EAAYnD,CAAM,EAClCyD,EAAe1C,EAAO,IAAIf,CAAM,EAEtC,GAAIyD,IAAiB,OAAW,CACtB,QAAA,KAAK,gFAAiFzD,CAAM,EACpG,QACF,CAE0BoD,EAAmB,CAC3C,cAAAF,EACA,aAAAO,EACA,eAAgBhC,EAChB,YAAaJ,CAAA,CACd,GAGCkC,EAAmB,KAAKvD,CAAM,CAElC,CAEI,GAAAuD,EAAmB,SAAW,EAKf,OAAAA,EAAA,KAAK,CAACK,EAASC,IAAY,CACtC,MAAAC,EAAYX,EAAYS,CAAO,EAC/BG,EAAYZ,EAAYU,CAAO,EACrC,OAAIC,EAAYC,EACP,EAELD,EAAYC,EACP,GAEF,CAAA,CACR,EAEMR,CACT,CAES,SAAAhB,EACPyB,EACAlC,EACAmC,EACoB,CAEpB,MAAMC,EAAoBF,EAAW,OAAQ3C,GAAQA,EAAMS,CAAQ,EAAE,OAC/DqC,EAAsBH,EAAW,OAAQ3C,GAAQA,EAAMS,CAAQ,EAAE,OAEvE,OAAIoC,EAAoBC,EACf,GAGFF,GAAkB,CAC3B,CAQA,eAAezB,EAAoC,CACjD,WAAAc,EACA,WAAA7B,EACA,aAAAE,EACA,gBAAAyC,CAAA,EAC4D,CAG5D,GAFmBrD,EAAO,IAAIqD,CAAe,IAE1B,OACT,eAAA,KAAK,yGAA0GA,CAAe,EAC/Hd,EAGH,KAAA,CACJe,EACAC,CAAA,EACEC,EAA6BH,CAAe,EAC1CI,EAAuB7C,EAAa,OAAQ8C,GAAqBA,EAAmBnB,CAAU,EAAE,OAChGoB,EAAuB/C,EAAa,OAAQ8C,GAAqBA,EAAmBnB,CAAU,EAAE,OAEtG,GAAIkB,EAAuBE,EAAsB,CAG7C,GAAAL,EAA6BC,GAA8BD,EAA6BG,EAIxF,aAAM1B,EAAM,CACV,UAAW,GACX,WAAArB,EACA,WAAA6B,CAAA,CACD,EACMA,EAET,GAAIgB,EAA6BD,EAG/B,aAAMvB,EAAM,CACV,UAAW,EACX,WAAArB,EACA,WAAA6B,CAAA,CACD,EACMA,EAKQpC,EAAA,IAAIkD,EAAiB,EAAE,CAC1C,CAEA,GAAIM,EAAuBF,EAAsB,CAG7C,GAAAF,EAA6BD,GAA8BC,EAA6BI,EAIxF,aAAM5B,EAAM,CACV,UAAW,EACX,WAAArB,EACA,WAAA6B,CAAA,CACD,EACMA,EAGT,GAAIe,EAA6BC,EAG/B,aAAMxB,EAAM,CACV,UAAW,GACX,WAAArB,EACA,WAAA6B,CAAA,CACD,EACMA,EAKQpC,EAAA,IAAIkD,EAAiB,CAAC,CACzC,CAEO,OAAA,MAAM1C,EAAsB0C,EAAiB3C,CAAU,CAChE,CAEA,SAAS8C,EAA6BvE,EAA4C,CAChF,MAAMH,EAAOY,EAAQ,KAAK,MAAM,IAAIT,CAAM,EACpC2E,EAAU5D,EAAO,IAAIf,CAAM,EAE7B,MAAA,CAACH,GAAQ8E,IAAY,QACf,QAAA,KAAK,uEAAwE3E,CAAM,EACpF,CAAC,EAAG,CAAC,GAGPH,EAAK,QAAQ,OAAO,CAAC+E,EAAQxd,IAAW,CAC7C,MAAMyd,EAAY9D,EAAO,IAAI3Z,EAAO,EAAE,EAEtC,OAAIyd,IAAc,QACR,QAAA,KAAK,2FAA4F7E,CAAM,EACxG4E,IAGLC,EAAYF,IACdC,EAAO,CAAC,GAAK,GAGXC,EAAYF,IACdC,EAAO,CAAC,GAAK,GAGRA,EAAA,EACN,CAAC,EAAG,CAAC,CAAC,CACX,CAEA,SAASzB,EAAYnD,EAAwB,CACrC,KAAA,CAAE,EAAGyB,CAAW,EAAIR,EAAW,IAAIjB,CAAM,GAAK,GAC9C8E,EAAYrE,EAAQ,OAAO,IAAIT,CAAM,EAEvC,OAAAyB,IAAe,QAAaqD,IAAc,QACpC,QAAA,KAAK,iFAAkF9E,CAAM,EAC9F,GAGFyB,EAAaqD,CACtB,CAES,SAAAvD,EAAcvB,EAAgBqB,EAAmB,SAKpD,GAJAA,EAAMD,IACIA,EAAAC,GAGVN,EAAO,IAAIf,CAAM,EAAG,CAChB,MAAA+E,EAAchE,EAAO,IAAIf,CAAM,GACrCgF,EAAA7D,EAAW,IAAI4D,CAAW,IAA1B,MAAAC,EAA6B,OAAOhF,EACtC,CAEKmB,EAAW,IAAIE,CAAG,GACrBF,EAAW,IAAIE,EAAS,IAAA,GAAK,GAG/B4D,EAAA9D,EAAW,IAAIE,CAAG,IAAlB,MAAA4D,EAAqB,IAAIjF,GAElBe,EAAA,IAAIf,EAAQqB,CAAG,CACxB,CAEA,SAASG,GAAqC,CAC5C,GAAIJ,EAAY,EACH,SAAA,CAACpB,CAAM,IAAKe,EAAQ,CACvB,MAAAM,EAAMN,EAAO,IAAIf,CAAM,EAC7Be,EAAO,IAAIf,EAAQqB,EAAM,KAAK,IAAID,CAAS,CAAC,CAC9C,CAEJ,CACF,CCjcsB,eAAA8D,GAAkBzE,EAA8BQ,EAAuD,CACvH,OAAAR,EAAQ,iBAAiB,OAAS,iBAC7B,MAAMO,GAA+BP,EAASQ,CAAU,EAG7DR,EAAQ,iBAAiB,OAAS,kBAC7B0E,GAAgC1E,CAAO,EAGzC2E,GAA2B3E,CAAO,CAC3C,CAEA,SAAS2E,GAA2B3E,EAA8C,CAC1E,MAAAM,MAA6B,IAEnC,IAAIsE,EAAQ,EAEZ,SAAW,CAACrF,CAAM,IAAKS,EAAQ,KAAK,MAC3BM,EAAA,IAAIf,EAAQqF,GAAO,EAGrB,OAAAtE,CACT,CAEA,SAASoE,GAAgC1E,EAA8C,CAC/E,MAAAM,MAA6B,IAE7BzB,EAAQ,CAAC,GAAGmB,EAAQ,KAAK,MAAM,OAAO,CAAC,EAAE,KAAK,CAAC6E,EAAOC,IAAU,CAC9D,MAAAC,GAAaF,EAAM,SAAW,IAAI,KAAKA,EAAM,QAAQ,EAAE,QAAQ,MAAQ,KAAK,EAAE,WAAa,IAAI,KAAKA,EAAM,UAAU,EAAE,UAG5H,OAFmBC,EAAM,SAAW,IAAI,KAAKA,EAAM,QAAQ,EAAE,QAAQ,MAAQ,KAAK,EAAE,WAAa,IAAI,KAAKA,EAAM,UAAU,EAAE,UAEzGC,CAAA,CACpB,EAED,IAAIH,EAAQ,EAEZ,UAAWxF,KAAQP,EACVyB,EAAA,IAAIlB,EAAK,GAAIwF,GAAO,EAGtB,OAAAtE,CACT,CCzCA,UAAY0E,GAEZ,SAASA,GAAiB,CAAE,KAAA5E,GAA2C,CAC/D,KAAA,CAAE,KAAAnR,CAAS,EAAAmR,EAEjB,OAAQnR,EAAM,CACZ,IAAK,SACHgW,GAAoB7E,CAAI,EACxB,OACF,QACExc,GAAWqL,CAAI,CACnB,CACF,CAEA,SAASiW,GAAKlF,EAA8B,CAC1C,YAAYA,CAAO,CACrB,CAEA,eAAeiF,GAAoBjF,EAA6C,CACxE,KAAA,CAAE,KAAAI,CAAS,EAAAJ,EACXmF,EAAmBpF,GAAoBC,CAAO,EAC9CoF,EAAiB,MAAMX,GAAkBzE,EAASmF,CAAgB,EAClEE,MAAkD,IAExD,IAAIC,EAAS,EACTC,EAAY,EAEhB,SAAW,CAAChG,EAAQH,CAAI,IAAKgB,EAAK,MAAO,CACjC,MAAAI,EAAa2E,EAAiB,IAAI5F,CAAM,EACxCiG,EAAWJ,EAAe,IAAI7F,CAAM,EAE1C,GAAIiB,IAAe,OAAW,CAC5B,QAAQ,KAAK,mDAAmDpB,EAAK,KAAK,EAAE,EAC5E,QACF,CAEA,GAAIoG,IAAa,OAAW,CAC1B,QAAQ,KAAK,iDAAiDpG,EAAK,KAAK,EAAE,EAC1E,QACF,CAESkG,EAAA,KAAK,IAAIA,EAAQE,CAAQ,EAClCD,EAAY,KAAK,IAAIA,EAAW/E,EAAW,MAAM,EAEjD6E,EAAU,IAAI9F,EAAQ,CACpB,GAAGiB,EACH,EAAGgF,EACH,IAAKA,CAAA,CACN,CACH,CAEKN,GAAA,CACH,KAAM,SACN,OAAQ,CACN,OAAAI,EACA,UAAAC,EACA,UAAAF,CACF,CAAA,CACD,CACH","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]}
|
|
1
|
+
{"version":3,"file":"runGraph.worker-C4c20Jgu.js","sources":["../src/utilities/exhaustive.ts","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-scale/src/init.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-zoom/src/transform.js","../src/factories/position.ts","../src/utilities/columns.ts","../src/workers/layouts/horizontal.ts","../src/workers/layouts/nearestParentVertical.ts","../src/workers/layouts/vertical.ts","../src/workers/runGraph.worker.ts"],"sourcesContent":["export function exhaustive(value: never): void {\n throw new Error(`switch does not have case for value: ${value}`)\n}","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import { ScaleLinear, ScaleTime, scaleLinear, scaleTime } from 'd3'\nimport { HorizontalMode, VerticalMode } from '@/models/layout'\n\nexport type VerticalPositionSettings = {\n mode: VerticalMode,\n}\n\nexport type HorizontalPositionSettings = {\n mode: HorizontalMode,\n range: [number, number],\n domain: [Date, Date] | [number, number],\n}\n\nexport type HorizontalScale = ReturnType<typeof horizontalScaleFactory>\n\nexport function horizontalScaleFactory(settings: HorizontalPositionSettings): ScaleTime<number, number> | ScaleLinear<number, number> {\n if (settings.mode === 'temporal' || settings.mode === 'left-aligned') {\n return getTimeScale(settings)\n }\n\n return getLinearScale(settings)\n}\n\nfunction getTimeScale({ domain, range }: HorizontalPositionSettings): ScaleTime<number, number> {\n return scaleTime().domain(domain).range(range)\n}\n\nfunction getLinearScale({ domain, range }: HorizontalPositionSettings): ScaleLinear<number, number> {\n return scaleLinear().domain(domain).range(range)\n}","import { RunGraphData, RunGraphNodes } from '@/models/RunGraph'\n\n/**\n * A `Map` object that maps each node ID to its column.\n */\nexport type NodeColumns = Map<string, number>\n\n/**\n * Calculates the column for each node in the run graph using a faster or slower algorithm.\n *\n * This function first tries to calculate the columns using the faster `getColumnsFaster` function. If an error occurs during the calculation, it falls back to the slower `getColumnsSlower` function. The function takes in a `RunGraphData` object containing the root node IDs and nodes in the run graph.\n *\n * @param runGraphData - A `RunGraphData` object containing the root node IDs and nodes in the run graph.\n * @returns A `Map` object that maps each node ID to its column.\n */\nexport function getColumns({ root_node_ids, nodes }: RunGraphData): NodeColumns {\n try {\n return getColumnsFaster(root_node_ids, nodes)\n } catch (error) {\n console.error(error)\n return getColumnsSlower(root_node_ids, nodes)\n }\n}\n\n/**\n * Calculates the column for each node in the run graph using a faster algorithm.\n *\n * This function sets up the initial columns for the root nodes and then calls `getChildrenColumns` to process all the children.\n *\n * Performance: 200k operations per seconds processing 23 connected nodes\n * Performance: 54-58 operations per second processing 2,000 highly connected nodes.\n *\n * @param nodeIds - The IDs of the root nodes.\n * @param nodes - The nodes in the run graph.\n * @returns A `Map` object that maps each node ID to its column.\n */\nfunction getColumnsFaster(nodeIds: string[], nodes: RunGraphNodes): NodeColumns {\n const columns: NodeColumns = new Map()\n const childrenNodeIds: string[] = []\n\n for (const id of nodeIds) {\n columns.set(id, 0)\n const node = nodes.get(id)!\n\n for (const { id: childId } of node.children) {\n childrenNodeIds.push(childId)\n }\n }\n\n return getChildrenColumns(childrenNodeIds, nodes, columns)\n}\n\n/**\n * Calculates the column for each child node of the given nodes.\n *\n * This function processes the children of each node in the `nodeIds` array and calculates their columns based on the columns of their parents.\n *\n * @param nodeIds - The IDs of the nodes whose children should be processed.\n * @param nodes - The nodes in the run graph.\n * @param columns - A `Map` object that maps each node ID to its column.\n * @returns A `Map` object that maps each node ID to its column.\n * @throws An error if a node ID in `nodeIds` is not found in `nodes`.\n */\nfunction getChildrenColumns(nodeIds: string[], nodes: RunGraphNodes, columns: NodeColumns): NodeColumns {\n for (const nodeId of nodeIds) {\n if (columns.has(nodeId)) {\n continue\n }\n\n const node = nodes.get(nodeId)\n\n if (!node) {\n throw new Error('Node id not found in nodes')\n }\n\n const parentColumns: number[] = []\n\n for (const parent of node.parents) {\n\n const column = columns.get(parent.id)\n\n if (column !== undefined) {\n parentColumns.push(column)\n continue\n }\n\n getChildrenColumns([parent.id], nodes, columns)\n\n const parentColumn = columns.get(parent.id)\n\n if (parentColumn === undefined) {\n throw new Error('Could not determine parent column')\n }\n\n parentColumns.push(parentColumn)\n }\n\n const maxParentColumn = Math.max(...parentColumns)\n\n columns.set(nodeId, maxParentColumn + 1)\n\n const childNodeIds = node.children.map(({ id }) => id)\n\n if (childNodeIds.length) {\n getChildrenColumns(childNodeIds, nodes, columns)\n }\n }\n\n return columns\n}\n\n/**\n * Calculates the column for each child node of the given nodes.\n *\n * This function processes the children of each node in the `nodeIds` array and calculates their columns based on the columns of their parents.\n *\n * Performance: 45k operations per second processing 23 connected nodes\n * Performance: 23-25 operations per second processing 2,000 highly connected nodes\n *\n * @param nodeIds - The IDs of the nodes whose children should be processed.\n * @param nodes - The nodes in the run graph.\n * @param columns - A `Map` object that maps each node ID to its column.\n * @returns A `Map` object that maps each node ID to its column.\n * @throws An error if a node ID in `nodeIds` is not found in `nodes`.\n */\n// eslint-disable-next-line max-params\nfunction getColumnsSlower(nodeIds: string[], nodes: RunGraphNodes, currentColumn = 0, columns = new Map()): NodeColumns {\n for (const nodeId of nodeIds) {\n const nodeColumnAssignment = columns.get(nodeId)\n\n if (!nodeColumnAssignment || nodeColumnAssignment < currentColumn) {\n columns.set(nodeId, currentColumn)\n }\n\n const node = nodes.get(nodeId)!\n\n for (const { id: childId } of node.children) {\n getColumnsSlower([childId], nodes, currentColumn + 1, columns)\n }\n }\n\n return columns\n}","\nimport { horizontalScaleFactory } from '@/factories/position'\nimport { getColumns } from '@/utilities/columns'\nimport { ClientLayoutMessage } from '@/workers/runGraph'\n\nexport type HorizontalLayout = Map<string, {\n x: number,\n column: number,\n}>\n\nexport function getHorizontalLayout(message: ClientLayoutMessage): HorizontalLayout {\n if (message.horizontalSettings.mode === 'dependency') {\n return getHorizontalDependencyLayout(message)\n }\n\n if (message.horizontalSettings.mode === 'left-aligned') {\n return getHorizontalLeftAlignedLayout(message)\n }\n\n return getHorizontalTimeLayout(message)\n}\n\nfunction getHorizontalDependencyLayout({ data, horizontalSettings }: ClientLayoutMessage): HorizontalLayout {\n const columns = getColumns(data)\n const scale = horizontalScaleFactory(horizontalSettings)\n const layout: HorizontalLayout = new Map()\n\n for (const [nodeId] of data.nodes) {\n const column = columns.get(nodeId)\n\n if (column === undefined) {\n console.warn(`Node not found in columns: Skipping ${nodeId}`)\n continue\n }\n\n layout.set(nodeId, {\n x: scale(column),\n column,\n })\n }\n\n return layout\n}\n\nfunction getHorizontalTimeLayout({ data, horizontalSettings }: ClientLayoutMessage): HorizontalLayout {\n const scale = horizontalScaleFactory(horizontalSettings)\n const layout: HorizontalLayout = new Map()\n\n for (const [nodeId, node] of data.nodes) {\n const value = scale(node.start_time)\n\n layout.set(nodeId, {\n column: value,\n x: value,\n })\n }\n\n return layout\n}\n\nfunction getHorizontalLeftAlignedLayout({ data, horizontalSettings }: ClientLayoutMessage): HorizontalLayout {\n const scale = horizontalScaleFactory(horizontalSettings)\n const layout: HorizontalLayout = new Map()\n\n for (const [nodeId] of data.nodes) {\n layout.set(nodeId, {\n column: 0,\n x: scale(data.start_time),\n })\n }\n\n return layout\n}","import { RunGraphNode } from '@/models'\nimport { HorizontalLayout } from '@/workers/layouts/horizontal'\nimport { VerticalLayout } from '@/workers/layouts/vertical'\nimport { ClientLayoutMessage } from '@/workers/runGraph'\n\ntype NodeShoveDirection = 1 | -1\n\nexport async function getVerticalNearestParentLayout(message: ClientLayoutMessage, horizontal: HorizontalLayout): Promise<VerticalLayout> {\n const defaultNearestParentPosition = 0\n const minimumNodeEdgeGap = 16\n const nodeShoveRecords = new Map<string, NodeShoveDirection>()\n const rowTracker = new Map<number, Set<string>>()\n let lowestRow = 0\n\n const layout: VerticalLayout = new Map()\n\n for await (const [nodeId] of message.data.nodes) {\n const node = message.data.nodes.get(nodeId)\n\n if (!node) {\n console.warn('NearestParentLayout: Node was not found in the data', nodeId)\n continue\n }\n\n const row = await getNearestParentPosition(node)\n\n setLayoutNode(nodeId, row)\n }\n\n purgeNegativeLayoutPositions()\n\n return layout\n\n async function getNearestParentPosition(node: RunGraphNode): Promise<number> {\n const { x: nodeStartX } = horizontal.get(node.id) ?? {}\n\n if (nodeStartX === undefined) {\n console.warn('NearestParentLayout: Node was not found in the horizontal layout', node.id)\n return defaultNearestParentPosition\n }\n\n // if one dependency\n if (node.parents.length === 1) {\n if (layout.has(node.parents[0].id)) {\n return await placeNearUpstreamNode(node.parents[0].id, nodeStartX)\n }\n\n console.warn('NearestParentLayout: Parent node not found in layout', node.parents[0].id)\n return defaultNearestParentPosition\n }\n\n // if more than one dependency – add to the middle of upstream dependencies\n if (node.parents.length > 0) {\n const upstreamRows = node.parents.map(({ id }) => {\n const row = layout.get(id)\n\n if (row === undefined) {\n console.warn('NearestParentLayout: Parent node not found in layout', id)\n return defaultNearestParentPosition\n }\n\n return row\n })\n\n const upstreamRowsSum = upstreamRows.reduce((sum, position) => sum + position, 0)\n const upstreamRowsAverage = upstreamRowsSum / upstreamRows.length\n const row = Math.round(upstreamRowsAverage)\n\n if (isPositionTaken(nodeStartX, row)) {\n const overlappingNodes = getOverlappingNodeIds(\n nodeStartX,\n row,\n )!\n\n const parentIds = node.parents.map(({ id }) => id)\n const overlappingParentNodes = overlappingNodes.filter(layoutId => {\n return parentIds.includes(layoutId)\n })\n\n if (overlappingParentNodes.length > 0 || overlappingNodes.length > 1) {\n // upstream node parents always win, or if there are more than one node in the way\n const [upstreamLayoutItemId] = overlappingParentNodes.length > 0\n ? overlappingParentNodes\n : overlappingNodes\n\n const shoveDirection = getShoveDirectionWeightedByDependencies(\n upstreamRows,\n row,\n nodeShoveRecords.get(upstreamLayoutItemId),\n )\n\n nodeShoveRecords.set(upstreamLayoutItemId, shoveDirection)\n\n return await placeNearUpstreamNode(upstreamLayoutItemId, nodeStartX)\n }\n\n return await argueWithCompetingUpstreamPlacement({\n competingNodeId: overlappingNodes[0],\n upstreamRows,\n nodeStartX,\n desiredRow: row,\n })\n }\n }\n\n // if zero dependencies\n return placeRootNode(nodeStartX, defaultNearestParentPosition)\n }\n\n function placeRootNode(nodeStartX: number, defaultPosition: number): number {\n if (isPositionTaken(nodeStartX, defaultPosition)) {\n return placeRootNode(nodeStartX, defaultPosition + 1)\n }\n\n return defaultPosition\n }\n\n async function placeNearUpstreamNode(upstreamNodeId: string, nodeStartX: number): Promise<number> {\n // See this diagram for how shove logic works in this scenario\n // https://www.figma.com/file/1u1oXkiYRxgtqWSRG9Yely/DAG-Design?node-id=385%3A2782&t=yRLIggko0TzbMaIG-4\n const upstreamRow = layout.get(upstreamNodeId)\n\n if (upstreamRow === undefined) {\n console.warn('NearestParentLayout: Upstream node not found in layout', upstreamNodeId)\n return defaultNearestParentPosition\n }\n\n if (!nodeShoveRecords.get(upstreamNodeId)) {\n nodeShoveRecords.set(upstreamNodeId, 1)\n }\n\n const nextDependencyShove = nodeShoveRecords.get(upstreamNodeId)!\n\n\n if (isPositionTaken(nodeStartX, upstreamRow)) {\n if (nextDependencyShove === 1 && !isPositionTaken(nodeStartX, upstreamRow + 1)) {\n nodeShoveRecords.set(upstreamNodeId, -1)\n return upstreamRow + 1\n } else if (!isPositionTaken(nodeStartX, upstreamRow - 1)) {\n nodeShoveRecords.set(upstreamNodeId, 1)\n return upstreamRow - 1\n }\n\n await shove({\n direction: nextDependencyShove,\n nodeStartX,\n desiredRow: upstreamRow + nextDependencyShove,\n })\n\n nodeShoveRecords.set(upstreamNodeId, nextDependencyShove === 1 ? -1 : 1)\n\n return upstreamRow + nextDependencyShove\n }\n return upstreamRow\n }\n\n function isPositionTaken(nodeStartX: number, row: number): boolean {\n if (layout.size === 0) {\n return false\n }\n\n let positionTaken = false\n\n const rowNodes = rowTracker.get(row) ?? []\n\n for (const nodeId of rowNodes) {\n const firstNodePosition = layout.get(nodeId)!\n const firstNodeEndX = getNodeEndX(nodeId)\n\n const overlapping = isNodesOverlapping({\n firstNodeEndX,\n firstNodeRow: firstNodePosition,\n lastNodeStartX: nodeStartX,\n lastNodeRow: row,\n })\n\n if (overlapping) {\n positionTaken = true\n break\n }\n }\n\n return positionTaken\n }\n\n type ShoveProps = {\n direction: NodeShoveDirection,\n nodeStartX: number,\n desiredRow: number,\n }\n async function shove({ direction, nodeStartX, desiredRow }: ShoveProps): Promise<void> {\n const overlappingNodeIds = getOverlappingNodeIds(nodeStartX, desiredRow)\n\n if (!overlappingNodeIds) {\n return\n }\n\n for await (const nodeId of overlappingNodeIds) {\n // push nodes and recursively shove as needed\n const overlappingRow = layout.get(nodeId)\n const { x: nodeStartX } = horizontal.get(nodeId) ?? {}\n\n if (overlappingRow === undefined || nodeStartX === undefined) {\n console.warn('NearestParentLayout - shove: Node was not found in the vertical or horizontal layout', nodeId)\n continue\n }\n\n const desiredRow = overlappingRow + direction\n\n await shove({\n direction,\n nodeStartX,\n desiredRow,\n })\n\n setLayoutNode(nodeId, desiredRow)\n }\n }\n\n type IsNodesOverlappingProps = {\n firstNodeEndX: number,\n firstNodeRow: number,\n lastNodeStartX: number,\n lastNodeRow: number,\n }\n function isNodesOverlapping({\n firstNodeEndX,\n firstNodeRow,\n lastNodeStartX,\n lastNodeRow,\n }: IsNodesOverlappingProps): boolean {\n return firstNodeRow === lastNodeRow\n && firstNodeEndX + minimumNodeEdgeGap >= lastNodeStartX\n }\n\n function getOverlappingNodeIds(nodeStartX: number, row: number): string[] | undefined {\n const overlappingNodeIds: string[] = []\n\n const rowNodes = rowTracker.get(row) ?? []\n\n for (const nodeId of rowNodes) {\n const firstNodeEndX = getNodeEndX(nodeId)\n const firstNodeRow = layout.get(nodeId)\n\n if (firstNodeRow === undefined) {\n console.warn('NearestParentLayout - getOverlappingNodeIds: Node was not found in the layout', nodeId)\n continue\n }\n\n const isItemOverlapping = isNodesOverlapping({\n firstNodeEndX,\n firstNodeRow,\n lastNodeStartX: nodeStartX,\n lastNodeRow: row,\n })\n\n if (isItemOverlapping) {\n overlappingNodeIds.push(nodeId)\n }\n }\n\n if (overlappingNodeIds.length === 0) {\n return\n }\n\n // sort last to first\n overlappingNodeIds.sort((itemAId, itemBId) => {\n const itemAEndX = getNodeEndX(itemAId)\n const itemBEndX = getNodeEndX(itemBId)\n if (itemAEndX < itemBEndX) {\n return 1\n }\n if (itemAEndX > itemBEndX) {\n return -1\n }\n return 0\n })\n\n return overlappingNodeIds\n }\n\n function getShoveDirectionWeightedByDependencies(\n parentRows: number[],\n position: number,\n defaultGravity?: NodeShoveDirection,\n ): NodeShoveDirection {\n // check if node has more connections above or below, prefer placement in that direction\n const upwardConnections = parentRows.filter((row) => row < position).length\n const downwardConnections = parentRows.filter((row) => row > position).length\n\n if (upwardConnections > downwardConnections) {\n return -1\n }\n\n return defaultGravity ?? 1\n }\n\n type ArgueWithCompetingUpstreamPlacementProps = {\n desiredRow: number,\n nodeStartX: number,\n upstreamRows: number[],\n competingNodeId: string,\n }\n async function argueWithCompetingUpstreamPlacement({\n desiredRow,\n nodeStartX,\n upstreamRows,\n competingNodeId,\n }: ArgueWithCompetingUpstreamPlacementProps): Promise<number> {\n const competitor = layout.get(competingNodeId)\n\n if (competitor === undefined) {\n console.warn('NearestParentLayout - argueWithCompetingUpstreamPlacement: Competitor node was not found in the layout', competingNodeId)\n return desiredRow\n }\n\n const [\n competitorAboveConnections,\n competitorBelowConnections,\n ] = getNodeParentDirectionCounts(competingNodeId)\n const nodeAboveConnections = upstreamRows.filter((upstreamPosition) => upstreamPosition < desiredRow).length\n const nodeBelowConnections = upstreamRows.filter((upstreamPosition) => upstreamPosition > desiredRow).length\n\n if (nodeAboveConnections > nodeBelowConnections) {\n // node has more above\n if (\n competitorAboveConnections > competitorBelowConnections && competitorAboveConnections > nodeAboveConnections\n ) {\n // competitor has more above than below, and more above than node\n // node wins, shove competitor up\n await shove({\n direction: -1,\n nodeStartX,\n desiredRow,\n })\n return desiredRow\n }\n if (competitorBelowConnections > competitorAboveConnections) {\n // competitor has more below than above\n // node wins, shove competitor down\n await shove({\n direction: 1,\n nodeStartX,\n desiredRow,\n })\n return desiredRow\n }\n\n // competitor has equal above and below, or node has more above\n // place node above competitor\n nodeShoveRecords.set(competingNodeId, -1)\n }\n\n if (nodeBelowConnections > nodeAboveConnections) {\n // node has more below\n if (\n competitorBelowConnections > competitorAboveConnections && competitorBelowConnections > nodeBelowConnections\n ) {\n // competitor has more below than above, and more below than node\n // node wins, shove competitor down\n await shove({\n direction: 1,\n nodeStartX,\n desiredRow,\n })\n return desiredRow\n }\n\n if (competitorAboveConnections > competitorBelowConnections) {\n // competitor has more above than below\n // node wins, shove competitor up\n await shove({\n direction: -1,\n nodeStartX,\n desiredRow,\n })\n return desiredRow\n }\n\n // competitor has equal above and below, or node has more below\n // place node below competitor\n nodeShoveRecords.set(competingNodeId, 1)\n }\n\n return await placeNearUpstreamNode(competingNodeId, nodeStartX)\n }\n\n function getNodeParentDirectionCounts(nodeId: string): [up: number, down: number] {\n const node = message.data.nodes.get(nodeId)\n const nodeRow = layout.get(nodeId)\n\n if (!node || nodeRow === undefined) {\n console.warn('NearestParentLayout: Node was not found in either the data or layout', nodeId)\n return [0, 0]\n }\n\n return node.parents.reduce((counts, parent) => {\n const parentRow = layout.get(parent.id)\n\n if (parentRow === undefined) {\n console.warn('NearestParentLayout - getNodeParentDirectionCounts: Parent node not found on layout data', nodeId)\n return counts\n }\n\n if (parentRow < nodeRow) {\n counts[0] += 1\n }\n\n if (parentRow > nodeRow) {\n counts[1] += 1\n }\n\n return counts\n }, [0, 0])\n }\n\n function getNodeEndX(nodeId: string): number {\n const { x: nodeStartX } = horizontal.get(nodeId) ?? {}\n const nodeWidth = message.widths.get(nodeId)\n\n if (nodeStartX === undefined || nodeWidth === undefined) {\n console.warn('NearestParentLayout: Node was not found in the horizontal layout and/or widths', nodeId)\n return 0\n }\n\n return nodeStartX + nodeWidth\n }\n\n function setLayoutNode(nodeId: string, row: number): void {\n if (row < lowestRow) {\n lowestRow = row\n }\n\n if (layout.has(nodeId)) {\n const previousRow = layout.get(nodeId)!\n rowTracker.get(previousRow)?.delete(nodeId)\n }\n\n if (!rowTracker.has(row)) {\n rowTracker.set(row, new Set())\n }\n\n rowTracker.get(row)?.add(nodeId)\n\n layout.set(nodeId, row)\n }\n\n function purgeNegativeLayoutPositions(): void {\n if (lowestRow < 0) {\n for (const [nodeId] of layout) {\n const row = layout.get(nodeId)!\n layout.set(nodeId, row + Math.abs(lowestRow))\n }\n }\n }\n}","import { HorizontalLayout } from '@/workers/layouts/horizontal'\nimport { getVerticalNearestParentLayout } from '@/workers/layouts/nearestParentVertical'\nimport { ClientLayoutMessage } from '@/workers/runGraph'\n\nexport type VerticalLayout = Map<string, number>\n\nexport async function getVerticalLayout(message: ClientLayoutMessage, horizontal: HorizontalLayout): Promise<VerticalLayout> {\n if (message.verticalSettings.mode === 'nearest-parent') {\n return await getVerticalNearestParentLayout(message, horizontal)\n }\n\n if (message.verticalSettings.mode === 'duration-sorted') {\n return getVerticalDurationSortedLayout(message)\n }\n\n return getVerticalWaterfallLayout(message)\n}\n\nfunction getVerticalWaterfallLayout(message: ClientLayoutMessage): VerticalLayout {\n const layout: VerticalLayout = new Map()\n\n let index = 0\n\n for (const [nodeId] of message.data.nodes) {\n layout.set(nodeId, index++)\n }\n\n return layout\n}\n\nfunction getVerticalDurationSortedLayout(message: ClientLayoutMessage): VerticalLayout {\n const layout: VerticalLayout = new Map()\n\n const nodes = [...message.data.nodes.values()].sort((nodeA, nodeB) => {\n const aDuration = (nodeA.end_time ? nodeA.end_time.getTime() : new Date().getTime()) - nodeA.start_time.getTime()\n const bDuration = (nodeB.end_time ? nodeB.end_time.getTime() : new Date().getTime()) - nodeB.start_time.getTime()\n\n return bDuration - aDuration\n })\n\n let index = 0\n\n for (const node of nodes) {\n layout.set(node.id, index++)\n }\n\n return layout\n}\n","import { NodesLayoutResponse } from '@/models/layout'\nimport { exhaustive } from '@/utilities/exhaustive'\nimport { getHorizontalLayout } from '@/workers/layouts/horizontal'\nimport { getVerticalLayout } from '@/workers/layouts/vertical'\nimport { WorkerMessage, ClientMessage, ClientLayoutMessage } from '@/workers/runGraph'\n\nonmessage = onMessageHandler\n\nfunction onMessageHandler({ data }: MessageEvent<ClientMessage>): void {\n const { type } = data\n\n switch (type) {\n case 'layout':\n handleLayoutMessage(data)\n return\n default:\n exhaustive(type)\n }\n}\n\nfunction post(message: WorkerMessage): void {\n postMessage(message)\n}\n\nasync function handleLayoutMessage(message: ClientLayoutMessage): Promise<void> {\n const { data } = message\n const horizontalLayout = getHorizontalLayout(message)\n const verticalLayout = await getVerticalLayout(message, horizontalLayout)\n const positions: NodesLayoutResponse['positions'] = new Map()\n\n let maxRow = 0\n let maxColumn = 0\n\n for (const [nodeId, node] of data.nodes) {\n const horizontal = horizontalLayout.get(nodeId)\n const vertical = verticalLayout.get(nodeId)\n\n if (horizontal === undefined) {\n console.warn(`NodeId not found in horizontal layout: Skipping ${node.label}`)\n continue\n }\n\n if (vertical === undefined) {\n console.warn(`NodeId not found in vertical layout: Skipping ${node.label}`)\n continue\n }\n\n maxRow = Math.max(maxRow, vertical)\n maxColumn = Math.max(maxColumn, horizontal.column)\n\n positions.set(nodeId, {\n ...horizontal,\n y: vertical,\n row: vertical,\n })\n }\n\n post({\n type: 'layout',\n layout: {\n maxRow,\n maxColumn,\n positions,\n },\n })\n}\n"],"names":["exhaustive","value","ascending","a","b","descending","bisector","f","compare1","compare2","delta","d","x","zero","left","lo","hi","mid","right","center","i","number","bisectRight","e10","e5","e2","tickSpec","start","stop","count","step","power","error","factor","i1","i2","inc","ticks","reverse","n","tickIncrement","tickStep","define","constructor","factory","prototype","extend","parent","definition","key","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","format","m","l","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","o","rgb","opacity","k","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","h","s","Hsl","min","max","hsl","m2","m1","hsl2rgb","clamph","clampt","constant","linear","exponential","y","t","gamma","nogamma","interpolateRgb","rgbGamma","end","colorRgb","numberArray","c","isNumberArray","genericArray","nb","na","date$1","interpolateNumber","object","reA","reB","one","interpolateString","bi","am","bm","bs","q","interpolate","string","date","interpolateRound","formatDecimal","formatDecimalParts","p","coefficient","exponent","formatGroup","grouping","thousands","width","j","length","formatNumerals","numerals","re","formatSpecifier","specifier","match","FormatSpecifier","formatTrim","out","i0","prefixExponent","formatPrefixAuto","formatRounded","formatTypes","identity$1","map","prefixes","formatLocale$1","locale","group","identity","currencyPrefix","currencySuffix","decimal","percent","minus","nan","newFormat","fill","align","sign","symbol","comma","precision","trim","type","prefix","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","e","defaultLocale","formatLocale","precisionFixed","precisionPrefix","precisionRound","initRange","domain","range","constants","unit","normalize","clamper","bimap","d0","d1","r0","r1","polymap","bisect","copy","source","target","transformer","interpolateValue","transform","untransform","unknown","clamp","piecewise","output","input","rescale","scale","_","u","continuous","tickFormat","linearish","prestep","maxIter","nice","interval","x0","x1","t0","t1","timeInterval","floori","offseti","field","previous","test","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","timeMinute","timeHour","timeDay","utcDay","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","timeYear","utcYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","timeTicks","timeTickInterval","localDate","utcDate","newDate","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","pad","pads","newParse","Z","parseSpecifier","parse","numberRe","percentRe","requoteRe","requote","names","name","dISO","z","dow","UTCdISO","timeFormat","calendar","invert","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","time","timeWeek","timeSecond","Transform","point","location","horizontalScaleFactory","settings","getTimeScale","getLinearScale","scaleTime","scaleLinear","getColumns","root_node_ids","nodes","getColumnsFaster","getColumnsSlower","nodeIds","columns","childrenNodeIds","id","node","childId","getChildrenColumns","nodeId","parentColumns","column","parentColumn","maxParentColumn","childNodeIds","currentColumn","nodeColumnAssignment","getHorizontalLayout","message","getHorizontalDependencyLayout","getHorizontalLeftAlignedLayout","getHorizontalTimeLayout","data","horizontalSettings","layout","getVerticalNearestParentLayout","horizontal","nodeShoveRecords","rowTracker","lowestRow","row","getNearestParentPosition","setLayoutNode","purgeNegativeLayoutPositions","nodeStartX","placeNearUpstreamNode","upstreamRows","upstreamRowsAverage","sum","position","isPositionTaken","overlappingNodes","getOverlappingNodeIds","parentIds","overlappingParentNodes","layoutId","upstreamLayoutItemId","shoveDirection","getShoveDirectionWeightedByDependencies","argueWithCompetingUpstreamPlacement","placeRootNode","defaultPosition","upstreamNodeId","upstreamRow","nextDependencyShove","shove","positionTaken","rowNodes","firstNodePosition","firstNodeEndX","getNodeEndX","isNodesOverlapping","direction","desiredRow","overlappingNodeIds","overlappingRow","firstNodeRow","lastNodeStartX","lastNodeRow","itemAId","itemBId","itemAEndX","itemBEndX","parentRows","defaultGravity","upwardConnections","downwardConnections","competingNodeId","competitorAboveConnections","competitorBelowConnections","getNodeParentDirectionCounts","nodeAboveConnections","upstreamPosition","nodeBelowConnections","nodeRow","counts","parentRow","nodeWidth","previousRow","_a","_b","getVerticalLayout","getVerticalDurationSortedLayout","getVerticalWaterfallLayout","index","nodeA","nodeB","aDuration","onMessageHandler","handleLayoutMessage","post","horizontalLayout","verticalLayout","positions","maxRow","maxColumn","vertical"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]}
|