@pie-lib/plot 2.9.0-beta.0 → 2.9.0

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/lib/trig.js DELETED
@@ -1,196 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.toRadians = exports.toDegrees = exports.hypotenuse = exports.getOpposingSide = exports.edges = exports.diffEdge = exports.angle = exports.acuteYAngle = exports.acuteXAngle = void 0;
9
-
10
- var _utils = require("./utils");
11
-
12
- var _pointGeometry = _interopRequireDefault(require("@mapbox/point-geometry"));
13
-
14
- var _debug = _interopRequireDefault(require("debug"));
15
-
16
- var log = (0, _debug["default"])('pie-lib:plot:trig');
17
-
18
- var toDegrees = function toDegrees(radians) {
19
- return radians * (180 / Math.PI);
20
- };
21
-
22
- exports.toDegrees = toDegrees;
23
-
24
- var toRadians = function toRadians(degrees) {
25
- return degrees * (Math.PI / 180);
26
- };
27
- /**
28
- * return angle in radians between 2 points using counting degrees counter clockwise
29
- *
30
- * 0,0 + 1,1 = 45 in radians
31
- * 1,1 + 0,0 = 45?
32
- * @param {Point} a
33
- * @param {Point} b
34
- */
35
-
36
-
37
- exports.toRadians = toRadians;
38
-
39
- var angle = function angle(a, b) {
40
- var vd = b.y - a.y;
41
- var hd = b.x - a.x;
42
- log(a, b, 'vd: ', vd, 'hd: ', hd);
43
- var radians = Math.atan2(vd, hd);
44
- return radians < 0 ? radians + Math.PI * 2 : radians;
45
- };
46
-
47
- exports.angle = angle;
48
- var NINETY = Math.PI / 2;
49
- var ONE_EIGHTY = Math.PI;
50
- var TWO_SEVENTY = ONE_EIGHTY + NINETY;
51
-
52
- var acuteXAngle = function acuteXAngle(a) {
53
- log(toDegrees(a));
54
-
55
- if (a < NINETY) {
56
- return a;
57
- }
58
-
59
- if (a < ONE_EIGHTY) {
60
- return Math.abs(ONE_EIGHTY - a);
61
- }
62
-
63
- if (a < TWO_SEVENTY) {
64
- return Math.abs(ONE_EIGHTY - a);
65
- }
66
-
67
- return Math.abs(Math.PI * 2 - a);
68
- };
69
-
70
- exports.acuteXAngle = acuteXAngle;
71
-
72
- var acuteYAngle = function acuteYAngle(a) {
73
- return NINETY - acuteXAngle(a);
74
- };
75
-
76
- exports.acuteYAngle = acuteYAngle;
77
-
78
- var hypotenuse = function hypotenuse(a, alpha) {
79
- var out = Math.abs(a / Math.sin(alpha));
80
- return out;
81
- };
82
- /**
83
- * return 2 edge points for a,b within domain + range.
84
- * - one edge is from following a -> b to the bounds
85
- * - one edge is from following b -> a to the bounds
86
- * @param {{min: number, max: number}} domain
87
- * @param {{min: number, max: number}} range
88
- * @param {{x: number, y: number}} a
89
- * @param {{x: number, y: number}} b
90
- * @returns [{x: number, y: number}, {x: number, y: number}]
91
- */
92
-
93
-
94
- exports.hypotenuse = hypotenuse;
95
-
96
- var edges = function edges(domain, range) {
97
- return function (a, b) {
98
- // const xDest =
99
- var destX = a.x < b.x ? domain.max : domain.min;
100
- var destY = a.y < b.y ? range.max : range.min;
101
- var aToB = diffEdge((0, _utils.xy)(destX, destY), a, b);
102
- var dX = b.x < a.x ? domain.max : domain.min;
103
- var dY = b.y < a.y ? range.max : range.min;
104
- var bToA = diffEdge((0, _utils.xy)(dX, dY), b, a);
105
- return [aToB, bToA];
106
- };
107
- };
108
- /** get length of side A of a triangle from H and angle Alpha */
109
-
110
-
111
- exports.edges = edges;
112
-
113
- var getOpposingSide = function getOpposingSide(hyp, angle) {
114
- log('[getOpposingSide] hyp: ', hyp, 'angle:', angle);
115
- return Math.abs(hyp * Math.sin(angle));
116
- };
117
-
118
- exports.getOpposingSide = getOpposingSide;
119
-
120
- var getShortestSide = function getShortestSide(xh, yh) {
121
- if (Number.isFinite(xh) && Number.isFinite(yh)) {
122
- if (xh === 0 && yh > 0) {
123
- return 'y';
124
- }
125
-
126
- if (yh === 0 && xh > 0) {
127
- return 'x';
128
- }
129
-
130
- return xh < yh ? 'x' : 'y';
131
- }
132
-
133
- if (isNaN(xh) && !isNaN(yh)) {
134
- return 'y';
135
- }
136
-
137
- if (!isNaN(xh) && isNaN(yh)) {
138
- return 'x';
139
- }
140
-
141
- if (xh === Infinity) {
142
- return 'y';
143
- }
144
-
145
- if (yh === Infinity) {
146
- return 'x';
147
- } // eslint-disable-next-line no-console
148
-
149
-
150
- console.warn('hypotenuse - which is shorter? x:', xh, 'y:', yh);
151
- };
152
- /**
153
- * return the difference between bounds and a as a Point
154
- * @param {*} bounds
155
- */
156
-
157
-
158
- var diffEdge = function diffEdge(bounds, a, b) {
159
- var l = log.enabled ? log.bind(log, "diffEdge: [".concat(a.x, ",").concat(a.y, " -> ").concat(b.x, ",").concat(b.y, "]")) : function () {};
160
- var xRadians = angle(a, b);
161
- l('x angle', toDegrees(xRadians));
162
- var yRadians = Math.abs(xRadians - toRadians(90));
163
- l('y angle', toDegrees(yRadians));
164
- var xSide = Math.abs(a.x - bounds.x);
165
- /**
166
- * Draw 2 triangles:
167
- * 1 with a horizontal line from a to the graph x edge
168
- * 1 with a vertical line from a to the graph y edge
169
- * Calculate the hypotenuse for both, whichever is shorter
170
- * indicates that we should use that triangle to get the edge point.
171
- */
172
-
173
- var xH = hypotenuse(xSide, yRadians);
174
- var ySide = Math.abs(a.y - bounds.y);
175
- var yH = hypotenuse(ySide, xRadians);
176
- l('x: side', xSide, 'h:', xH);
177
- l('y: side', ySide, 'h:', yH);
178
- var side = getShortestSide(xH, yH);
179
-
180
- if (side !== 'x' && side !== 'y') {
181
- throw new Error('Cant decide which hypotenuse to use');
182
- }
183
-
184
- var point = side === 'x' ? new _pointGeometry["default"](xSide, getOpposingSide(xH, xRadians)) : new _pointGeometry["default"](getOpposingSide(yH, yRadians), ySide);
185
- l('point:', point);
186
- var multiplier = new _pointGeometry["default"](b.x < a.x ? -1 : 1, b.y < a.y ? -1 : 1);
187
- l('multiplier:', multiplier);
188
- var out = point.multByPoint(multiplier);
189
- l('out:', out);
190
- var normalized = out.add(new _pointGeometry["default"](a.x, a.y));
191
- l('normalized:', normalized);
192
- return normalized;
193
- };
194
-
195
- exports.diffEdge = diffEdge;
196
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmlnLmpzIl0sIm5hbWVzIjpbImxvZyIsInRvRGVncmVlcyIsInJhZGlhbnMiLCJNYXRoIiwiUEkiLCJ0b1JhZGlhbnMiLCJkZWdyZWVzIiwiYW5nbGUiLCJhIiwiYiIsInZkIiwieSIsImhkIiwieCIsImF0YW4yIiwiTklORVRZIiwiT05FX0VJR0hUWSIsIlRXT19TRVZFTlRZIiwiYWN1dGVYQW5nbGUiLCJhYnMiLCJhY3V0ZVlBbmdsZSIsImh5cG90ZW51c2UiLCJhbHBoYSIsIm91dCIsInNpbiIsImVkZ2VzIiwiZG9tYWluIiwicmFuZ2UiLCJkZXN0WCIsIm1heCIsIm1pbiIsImRlc3RZIiwiYVRvQiIsImRpZmZFZGdlIiwiZFgiLCJkWSIsImJUb0EiLCJnZXRPcHBvc2luZ1NpZGUiLCJoeXAiLCJnZXRTaG9ydGVzdFNpZGUiLCJ4aCIsInloIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJpc05hTiIsIkluZmluaXR5IiwiY29uc29sZSIsIndhcm4iLCJib3VuZHMiLCJsIiwiZW5hYmxlZCIsImJpbmQiLCJ4UmFkaWFucyIsInlSYWRpYW5zIiwieFNpZGUiLCJ4SCIsInlTaWRlIiwieUgiLCJzaWRlIiwiRXJyb3IiLCJwb2ludCIsIlBvaW50IiwibXVsdGlwbGllciIsIm11bHRCeVBvaW50Iiwibm9ybWFsaXplZCIsImFkZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0EsSUFBTUEsR0FBRyxHQUFHLHVCQUFNLG1CQUFOLENBQVo7O0FBRU8sSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVksQ0FBQ0MsT0FBRDtBQUFBLFNBQWFBLE9BQU8sSUFBSSxNQUFNQyxJQUFJLENBQUNDLEVBQWYsQ0FBcEI7QUFBQSxDQUFsQjs7OztBQUNBLElBQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFZLENBQUNDLE9BQUQ7QUFBQSxTQUFhQSxPQUFPLElBQUlILElBQUksQ0FBQ0MsRUFBTCxHQUFVLEdBQWQsQ0FBcEI7QUFBQSxDQUFs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QUFDb0IsRUFBRCxFQUFLSixRQUFMLENBQXpCLEVBQXlDRyxLQUF6QyxDQURuRTtBQUdBUCxFQUFBQSxDQUFDLENBQUMsUUFBRCxFQUFXVyxLQUFYLENBQUQ7QUFDQSxNQUFNRSxVQUFVLEdBQUcsSUFBSUQseUJBQUosQ0FBVXBELENBQUMsQ0FBQ0ksQ0FBRixHQUFNTCxDQUFDLENBQUNLLENBQVIsR0FBWSxDQUFDLENBQWIsR0FBaUIsQ0FBM0IsRUFBOEJKLENBQUMsQ0FBQ0UsQ0FBRixHQUFNSCxDQUFDLENBQUNHLENBQVIsR0FBWSxDQUFDLENBQWIsR0FBaUIsQ0FBL0MsQ0FBbkI7QUFDQXNDLEVBQUFBLENBQUMsQ0FBQyxhQUFELEVBQWdCYSxVQUFoQixDQUFEO0FBQ0EsTUFBTXZDLEdBQUcsR0FBR3FDLEtBQUssQ0FBQ0csV0FBTixDQUFrQkQsVUFBbEIsQ0FBWjtBQUNBYixFQUFBQSxDQUFDLENBQUMsTUFBRCxFQUFTMUIsR0FBVCxDQUFEO0FBQ0EsTUFBTXlDLFVBQVUsR0FBR3pDLEdBQUcsQ0FBQzBDLEdBQUosQ0FBUSxJQUFJSix5QkFBSixDQUFVckQsQ0FBQyxDQUFDSyxDQUFaLEVBQWVMLENBQUMsQ0FBQ0csQ0FBakIsQ0FBUixDQUFuQjtBQUNBc0MsRUFBQUEsQ0FBQyxDQUFDLGFBQUQsRUFBZ0JlLFVBQWhCLENBQUQ7QUFDQSxTQUFPQSxVQUFQO0FBQ0QsQ0F0Q00iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB4eSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IFBvaW50IGZyb20gJ0BtYXBib3gvcG9pbnQtZ2VvbWV0cnknO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmNvbnN0IGxvZyA9IGRlYnVnKCdwaWUtbGliOnBsb3Q6dHJpZycpO1xuXG5leHBvcnQgY29uc3QgdG9EZWdyZWVzID0gKHJhZGlhbnMpID0+IHJhZGlhbnMgKiAoMTgwIC8gTWF0aC5QSSk7XG5leHBvcnQgY29uc3QgdG9SYWRpYW5zID0gKGRlZ3JlZXMpID0+IGRlZ3JlZXMgKiAoTWF0aC5QSSAvIDE4MCk7XG4vKipcbiAqIHJldHVybiBhbmdsZSBpbiByYWRpYW5zIGJldHdlZW4gMiBwb2ludHMgdXNpbmcgY291bnRpbmcgZGVncmVlcyBjb3VudGVyIGNsb2Nrd2lzZVxuICpcbiAqIDAsMCArIDEsMSA9IDQ1IGluIHJhZGlhbnNcbiAqIDEsMSArIDAsMCA9IDQ1P1xuICogQHBhcmFtIHtQb2ludH0gYVxuICogQHBhcmFtIHtQb2ludH0gYlxuICovXG5leHBvcnQgY29uc3QgYW5nbGUgPSAoYSwgYikgPT4ge1xuICBjb25zdCB2ZCA9IGIueSAtIGEueTtcbiAgY29uc3QgaGQgPSBiLnggLSBhLng7XG4gIGxvZyhhLCBiLCAndmQ6ICcsIHZkLCAnaGQ6ICcsIGhkKTtcbiAgY29uc3QgcmFkaWFucyA9IE1hdGguYXRhbjIodmQsIGhkKTtcbiAgcmV0dXJuIHJhZGlhbnMgPCAwID8gcmFkaWFucyArIE1hdGguUEkgKiAyIDogcmFkaWFucztcbn07XG5cbmNvbnN0IE5JTkVUWSA9IE1hdGguUEkgLyAyO1xuY29uc3QgT05FX0VJR0hUWSA9IE1hdGguUEk7XG5jb25zdCBUV09fU0VWRU5UWSA9IE9ORV9FSUdIVFkgKyBOSU5FVFk7XG5cbmV4cG9ydCBjb25zdCBhY3V0ZVhBbmdsZSA9IChhKSA9PiB7XG4gIGxvZyh0b0RlZ3JlZXMoYSkpO1xuXG4gIGlmIChhIDwgTklORVRZKSB7XG4gICAgcmV0dXJuIGE7XG4gIH1cblxuICBpZiAoYSA8IE9ORV9FSUdIVFkpIHtcbiAgICByZXR1cm4gTWF0aC5hYnMoT05FX0VJR0hUWSAtIGEpO1xuICB9XG5cbiAgaWYgKGEgPCBUV09fU0VWRU5UWSkge1xuICAgIHJldHVybiBNYXRoLmFicyhPTkVfRUlHSFRZIC0gYSk7XG4gIH1cblxuICByZXR1cm4gTWF0aC5hYnMoTWF0aC5QSSAqIDIgLSBhKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhY3V0ZVlBbmdsZSA9IChhKSA9PiBOSU5FVFkgLSBhY3V0ZVhBbmdsZShhKTtcblxuZXhwb3J0IGNvbnN0IGh5cG90ZW51c2UgPSAoYSwgYWxwaGEpID0+IHtcbiAgY29uc3Qgb3V0ID0gTWF0aC5hYnMoYSAvIE1hdGguc2luKGFscGhhKSk7XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbi8qKlxuICogcmV0dXJuIDIgZWRnZSBwb2ludHMgZm9yIGEsYiB3aXRoaW4gZG9tYWluICsgcmFuZ2UuXG4gKiAtIG9uZSBlZGdlIGlzIGZyb20gZm9sbG93aW5nIGEgLT4gYiB0byB0aGUgYm91bmRzXG4gKiAtIG9uZSBlZGdlIGlzIGZyb20gZm9sbG93aW5nIGIgLT4gYSB0byB0aGUgYm91bmRzXG4gKiBAcGFyYW0ge3ttaW46IG51bWJlciwgbWF4OiBudW1iZXJ9fSBkb21haW5cbiAqIEBwYXJhbSB7e21pbjogbnVtYmVyLCBtYXg6IG51bWJlcn19IHJhbmdlXG4gKiBAcGFyYW0ge3t4OiBudW1iZXIsIHk6IG51bWJlcn19IGFcbiAqIEBwYXJhbSB7e3g6IG51bWJlciwgeTogbnVtYmVyfX0gYlxuICogQHJldHVybnMgW3t4OiBudW1iZXIsIHk6IG51bWJlcn0sIHt4OiBudW1iZXIsIHk6IG51bWJlcn1dXG4gKi9cbmV4cG9ydCBjb25zdCBlZGdlcyA9IChkb21haW4sIHJhbmdlKSA9PiAoYSwgYikgPT4ge1xuICAvLyBjb25zdCB4RGVzdCA9XG4gIGNvbnN0IGRlc3RYID0gYS54IDwgYi54ID8gZG9tYWluLm1heCA6IGRvbWFpbi5taW47XG4gIGNvbnN0IGRlc3RZID0gYS55IDwgYi55ID8gcmFuZ2UubWF4IDogcmFuZ2UubWluO1xuICBjb25zdCBhVG9CID0gZGlmZkVkZ2UoeHkoZGVzdFgsIGRlc3RZKSwgYSwgYik7XG5cbiAgY29uc3QgZFggPSBiLnggPCBhLnggPyBkb21haW4ubWF4IDogZG9tYWluLm1pbjtcbiAgY29uc3QgZFkgPSBiLnkgPCBhLnkgPyByYW5nZS5tYXggOiByYW5nZS5taW47XG4gIGNvbnN0IGJUb0EgPSBkaWZmRWRnZSh4eShkWCwgZFkpLCBiLCBhKTtcbiAgcmV0dXJuIFthVG9CLCBiVG9BXTtcbn07XG5cbi8qKiBnZXQgbGVuZ3RoIG9mIHNpZGUgQSBvZiBhIHRyaWFuZ2xlIGZyb20gSCBhbmQgYW5nbGUgQWxwaGEgKi9cbmV4cG9ydCBjb25zdCBnZXRPcHBvc2luZ1NpZGUgPSAoaHlwLCBhbmdsZSkgPT4ge1xuICBsb2coJ1tnZXRPcHBvc2luZ1NpZGVdIGh5cDogJywgaHlwLCAnYW5nbGU6JywgYW5nbGUpO1xuICByZXR1cm4gTWF0aC5hYnMoaHlwICogTWF0aC5zaW4oYW5nbGUpKTtcbn07XG5cbmNvbnN0IGdldFNob3J0ZXN0U2lkZSA9ICh4aCwgeWgpID0+IHtcbiAgaWYgKE51bWJlci5pc0Zpbml0ZSh4aCkgJiYgTnVtYmVyLmlzRmluaXRlKHloKSkge1xuICAgIGlmICh4aCA9PT0gMCAmJiB5aCA+IDApIHtcbiAgICAgIHJldHVybiAneSc7XG4gICAgfVxuICAgIGlmICh5aCA9PT0gMCAmJiB4aCA+IDApIHtcbiAgICAgIHJldHVybiAneCc7XG4gICAgfVxuICAgIHJldHVybiB4aCA8IHloID8gJ3gnIDogJ3knO1xuICB9XG4gIGlmIChpc05hTih4aCkgJiYgIWlzTmFOKHloKSkge1xuICAgIHJldHVybiAneSc7XG4gIH1cbiAgaWYgKCFpc05hTih4aCkgJiYgaXNOYU4oeWgpKSB7XG4gICAgcmV0dXJuICd4JztcbiAgfVxuICBpZiAoeGggPT09IEluZmluaXR5KSB7XG4gICAgcmV0dXJuICd5JztcbiAgfVxuICBpZiAoeWggPT09IEluZmluaXR5KSB7XG4gICAgcmV0dXJuICd4JztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUud2FybignaHlwb3RlbnVzZSAtIHdoaWNoIGlzIHNob3J0ZXI/IHg6JywgeGgsICd5OicsIHloKTtcbn07XG4vKipcbiAqIHJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGJvdW5kcyBhbmQgYSBhcyBhIFBvaW50XG4gKiBAcGFyYW0geyp9IGJvdW5kc1xuICovXG5leHBvcnQgY29uc3QgZGlmZkVkZ2UgPSAoYm91bmRzLCBhLCBiKSA9PiB7XG4gIGxldCBsID0gbG9nLmVuYWJsZWQgPyBsb2cuYmluZChsb2csIGBkaWZmRWRnZTogWyR7YS54fSwke2EueX0gLT4gJHtiLnh9LCR7Yi55fV1gKSA6ICgpID0+IHt9O1xuICBjb25zdCB4UmFkaWFucyA9IGFuZ2xlKGEsIGIpO1xuICBsKCd4IGFuZ2xlJywgdG9EZWdyZWVzKHhSYWRpYW5zKSk7XG4gIGNvbnN0IHlSYWRpYW5zID0gTWF0aC5hYnMoeFJhZGlhbnMgLSB0b1JhZGlhbnMoOTApKTtcbiAgbCgneSBhbmdsZScsIHRvRGVncmVlcyh5UmFkaWFucykpO1xuICBjb25zdCB4U2lkZSA9IE1hdGguYWJzKGEueCAtIGJvdW5kcy54KTtcblxuICAvKipcbiAgICogRHJhdyAyIHRyaWFuZ2xlczpcbiAgICogMSB3aXRoIGEgaG9yaXpvbnRhbCBsaW5lIGZyb20gYSB0byB0aGUgZ3JhcGggeCBlZGdlXG4gICAqIDEgd2l0aCBhIHZlcnRpY2FsIGxpbmUgZnJvbSBhIHRvIHRoZSBncmFwaCB5IGVkZ2VcbiAgICogQ2FsY3VsYXRlIHRoZSBoeXBvdGVudXNlIGZvciBib3RoLCB3aGljaGV2ZXIgaXMgc2hvcnRlclxuICAgKiBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgdXNlIHRoYXQgdHJpYW5nbGUgdG8gZ2V0IHRoZSBlZGdlIHBvaW50LlxuICAgKi9cbiAgY29uc3QgeEggPSBoeXBvdGVudXNlKHhTaWRlLCB5UmFkaWFucyk7XG5cbiAgY29uc3QgeVNpZGUgPSBNYXRoLmFicyhhLnkgLSBib3VuZHMueSk7XG4gIGNvbnN0IHlIID0gaHlwb3RlbnVzZSh5U2lkZSwgeFJhZGlhbnMpO1xuXG4gIGwoJ3g6IHNpZGUnLCB4U2lkZSwgJ2g6JywgeEgpO1xuICBsKCd5OiBzaWRlJywgeVNpZGUsICdoOicsIHlIKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNob3J0ZXN0U2lkZSh4SCwgeUgpO1xuXG4gIGlmIChzaWRlICE9PSAneCcgJiYgc2lkZSAhPT0gJ3knKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW50IGRlY2lkZSB3aGljaCBoeXBvdGVudXNlIHRvIHVzZScpO1xuICB9XG4gIGNvbnN0IHBvaW50ID1cbiAgICBzaWRlID09PSAneCcgPyBuZXcgUG9pbnQoeFNpZGUsIGdldE9wcG9zaW5nU2lkZSh4SCwgeFJhZGlhbnMpKSA6IG5ldyBQb2ludChnZXRPcHBvc2luZ1NpZGUoeUgsIHlSYWRpYW5zKSwgeVNpZGUpO1xuXG4gIGwoJ3BvaW50OicsIHBvaW50KTtcbiAgY29uc3QgbXVsdGlwbGllciA9IG5ldyBQb2ludChiLnggPCBhLnggPyAtMSA6IDEsIGIueSA8IGEueSA/IC0xIDogMSk7XG4gIGwoJ211bHRpcGxpZXI6JywgbXVsdGlwbGllcik7XG4gIGNvbnN0IG91dCA9IHBvaW50Lm11bHRCeVBvaW50KG11bHRpcGxpZXIpO1xuICBsKCdvdXQ6Jywgb3V0KTtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG91dC5hZGQobmV3IFBvaW50KGEueCwgYS55KSk7XG4gIGwoJ25vcm1hbGl6ZWQ6Jywgbm9ybWFsaXplZCk7XG4gIHJldHVybiBub3JtYWxpemVkO1xufTtcbiJdfQ==
package/lib/types.js DELETED
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.SnapType = exports.SizeType = exports.ScaleType = exports.RangeType = exports.PointType = exports.GraphPropsType = exports.DomainType = exports.ChildrenType = exports.BaseDomainRangeType = void 0;
9
-
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
- var BaseDomainRangeType = {
13
- min: _propTypes["default"].number.isRequired,
14
- max: _propTypes["default"].number.isRequired,
15
- step: _propTypes["default"].number
16
- };
17
- exports.BaseDomainRangeType = BaseDomainRangeType;
18
-
19
- var DomainType = _propTypes["default"].shape(BaseDomainRangeType);
20
-
21
- exports.DomainType = DomainType;
22
-
23
- var RangeType = _propTypes["default"].shape(BaseDomainRangeType);
24
-
25
- exports.RangeType = RangeType;
26
-
27
- var SizeType = _propTypes["default"].shape({
28
- width: _propTypes["default"].number.isRequired,
29
- height: _propTypes["default"].number.isRequired
30
- });
31
-
32
- exports.SizeType = SizeType;
33
-
34
- var PointType = _propTypes["default"].shape({
35
- x: _propTypes["default"].number.isRequired,
36
- y: _propTypes["default"].number.isRequired
37
- });
38
-
39
- exports.PointType = PointType;
40
-
41
- var ChildrenType = _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired;
42
-
43
- exports.ChildrenType = ChildrenType;
44
-
45
- var ScaleType = _propTypes["default"].shape({
46
- x: _propTypes["default"].func.isRequired,
47
- y: _propTypes["default"].func.isRequired
48
- });
49
-
50
- exports.ScaleType = ScaleType;
51
-
52
- var SnapType = _propTypes["default"].shape({
53
- x: _propTypes["default"].func.isRequired,
54
- y: _propTypes["default"].func.isRequired
55
- });
56
-
57
- exports.SnapType = SnapType;
58
-
59
- var GraphPropsType = _propTypes["default"].shape({
60
- scale: ScaleType.isRequired,
61
- snap: SnapType.isRequired,
62
- domain: DomainType.isRequired,
63
- range: RangeType.isRequired,
64
- size: SizeType.isRequired
65
- });
66
-
67
- exports.GraphPropsType = GraphPropsType;
68
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy5qcyJdLCJuYW1lcyI6WyJCYXNlRG9tYWluUmFuZ2VUeXBlIiwibWluIiwiUHJvcFR5cGVzIiwibnVtYmVyIiwiaXNSZXF1aXJlZCIsIm1heCIsInN0ZXAiLCJEb21haW5UeXBlIiwic2hhcGUiLCJSYW5nZVR5cGUiLCJTaXplVHlwZSIsIndpZHRoIiwiaGVpZ2h0IiwiUG9pbnRUeXBlIiwieCIsInkiLCJDaGlsZHJlblR5cGUiLCJvbmVPZlR5cGUiLCJhcnJheU9mIiwibm9kZSIsIlNjYWxlVHlwZSIsImZ1bmMiLCJTbmFwVHlwZSIsIkdyYXBoUHJvcHNUeXBlIiwic2NhbGUiLCJzbmFwIiwiZG9tYWluIiwicmFuZ2UiLCJzaXplIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFTyxJQUFNQSxtQkFBbUIsR0FBRztBQUNqQ0MsRUFBQUEsR0FBRyxFQUFFQyxzQkFBVUMsTUFBVixDQUFpQkMsVUFEVztBQUVqQ0MsRUFBQUEsR0FBRyxFQUFFSCxzQkFBVUMsTUFBVixDQUFpQkMsVUFGVztBQUdqQ0UsRUFBQUEsSUFBSSxFQUFFSixzQkFBVUM7QUFIaUIsQ0FBNUI7OztBQU1BLElBQU1JLFVBQVUsR0FBR0wsc0JBQVVNLEtBQVYsQ0FBZ0JSLG1CQUFoQixDQUFuQjs7OztBQUVBLElBQU1TLFNBQVMsR0FBR1Asc0JBQVVNLEtBQVYsQ0FBZ0JSLG1CQUFoQixDQUFsQjs7OztBQUVBLElBQU1VLFFBQVEsR0FBR1Isc0JBQVVNLEtBQVYsQ0FBZ0I7QUFDdENHLEVBQUFBLEtBQUssRUFBRVQsc0JBQVVDLE1BQVYsQ0FBaUJDLFVBRGM7QUFFdENRLEVBQUFBLE1BQU0sRUFBRVYsc0JBQVVDLE1BQVYsQ0FBaUJDO0FBRmEsQ0FBaEIsQ0FBakI7Ozs7QUFLQSxJQUFNUyxTQUFTLEdBQUdYLHNCQUFVTSxLQUFWLENBQWdCO0FBQ3ZDTSxFQUFBQSxDQUFDLEVBQUVaLHNCQUFVQyxNQUFWLENBQWlCQyxVQURtQjtBQUV2Q1csRUFBQUEsQ0FBQyxFQUFFYixzQkFBVUMsTUFBVixDQUFpQkM7QUFGbUIsQ0FBaEIsQ0FBbEI7Ozs7QUFLQSxJQUFNWSxZQUFZLEdBQUdkLHNCQUFVZSxTQUFWLENBQW9CLENBQUNmLHNCQUFVZ0IsT0FBVixDQUFrQmhCLHNCQUFVaUIsSUFBNUIsQ0FBRCxFQUFvQ2pCLHNCQUFVaUIsSUFBOUMsQ0FBcEIsRUFBeUVmLFVBQTlGOzs7O0FBRUEsSUFBTWdCLFNBQVMsR0FBR2xCLHNCQUFVTSxLQUFWLENBQWdCO0FBQ3ZDTSxFQUFBQSxDQUFDLEVBQUVaLHNCQUFVbUIsSUFBVixDQUFlakIsVUFEcUI7QUFFdkNXLEVBQUFBLENBQUMsRUFBRWIsc0JBQVVtQixJQUFWLENBQWVqQjtBQUZxQixDQUFoQixDQUFsQjs7OztBQUtBLElBQU1rQixRQUFRLEdBQUdwQixzQkFBVU0sS0FBVixDQUFnQjtBQUN0Q00sRUFBQUEsQ0FBQyxFQUFFWixzQkFBVW1CLElBQVYsQ0FBZWpCLFVBRG9CO0FBRXRDVyxFQUFBQSxDQUFDLEVBQUViLHNCQUFVbUIsSUFBVixDQUFlakI7QUFGb0IsQ0FBaEIsQ0FBakI7Ozs7QUFLQSxJQUFNbUIsY0FBYyxHQUFHckIsc0JBQVVNLEtBQVYsQ0FBZ0I7QUFDNUNnQixFQUFBQSxLQUFLLEVBQUVKLFNBQVMsQ0FBQ2hCLFVBRDJCO0FBRTVDcUIsRUFBQUEsSUFBSSxFQUFFSCxRQUFRLENBQUNsQixVQUY2QjtBQUc1Q3NCLEVBQUFBLE1BQU0sRUFBRW5CLFVBQVUsQ0FBQ0gsVUFIeUI7QUFJNUN1QixFQUFBQSxLQUFLLEVBQUVsQixTQUFTLENBQUNMLFVBSjJCO0FBSzVDd0IsRUFBQUEsSUFBSSxFQUFFbEIsUUFBUSxDQUFDTjtBQUw2QixDQUFoQixDQUF2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBCYXNlRG9tYWluUmFuZ2VUeXBlID0ge1xuICBtaW46IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgbWF4OiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIHN0ZXA6IFByb3BUeXBlcy5udW1iZXIsXG59O1xuXG5leHBvcnQgY29uc3QgRG9tYWluVHlwZSA9IFByb3BUeXBlcy5zaGFwZShCYXNlRG9tYWluUmFuZ2VUeXBlKTtcblxuZXhwb3J0IGNvbnN0IFJhbmdlVHlwZSA9IFByb3BUeXBlcy5zaGFwZShCYXNlRG9tYWluUmFuZ2VUeXBlKTtcblxuZXhwb3J0IGNvbnN0IFNpemVUeXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgd2lkdGg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgaGVpZ2h0OiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG59KTtcblxuZXhwb3J0IGNvbnN0IFBvaW50VHlwZSA9IFByb3BUeXBlcy5zaGFwZSh7XG4gIHg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgeTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDaGlsZHJlblR5cGUgPSBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubm9kZSksIFByb3BUeXBlcy5ub2RlXSkuaXNSZXF1aXJlZDtcblxuZXhwb3J0IGNvbnN0IFNjYWxlVHlwZSA9IFByb3BUeXBlcy5zaGFwZSh7XG4gIHg6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHk6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59KTtcblxuZXhwb3J0IGNvbnN0IFNuYXBUeXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgeDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn0pO1xuXG5leHBvcnQgY29uc3QgR3JhcGhQcm9wc1R5cGUgPSBQcm9wVHlwZXMuc2hhcGUoe1xuICBzY2FsZTogU2NhbGVUeXBlLmlzUmVxdWlyZWQsXG4gIHNuYXA6IFNuYXBUeXBlLmlzUmVxdWlyZWQsXG4gIGRvbWFpbjogRG9tYWluVHlwZS5pc1JlcXVpcmVkLFxuICByYW5nZTogUmFuZ2VUeXBlLmlzUmVxdWlyZWQsXG4gIHNpemU6IFNpemVUeXBlLmlzUmVxdWlyZWQsXG59KTtcbiJdfQ==
package/lib/utils.js DELETED
@@ -1,232 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.buildSizeArray = exports.bounds = exports.bandKey = exports.amountToIncreaseWidth = void 0;
9
- exports.buildTickModel = buildTickModel;
10
- exports.getDelta = exports.findLongestWord = exports.extractTextFromHTML = void 0;
11
- exports.getInterval = getInterval;
12
- exports.polygonToArea = exports.point = exports.lineToArea = exports.isEmptyString = exports.isEmptyObject = exports.isDomainRangeEqual = void 0;
13
- exports.snapTo = snapTo;
14
- exports.xy = exports.tickCount = void 0;
15
-
16
- var _invariant = _interopRequireDefault(require("invariant"));
17
-
18
- var _range = _interopRequireDefault(require("lodash/range"));
19
-
20
- var _pointGeometry = _interopRequireDefault(require("@mapbox/point-geometry"));
21
-
22
- var _head = _interopRequireDefault(require("lodash/head"));
23
-
24
- var _tail = _interopRequireDefault(require("lodash/tail"));
25
-
26
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
27
-
28
- var xy = function xy(x, y) {
29
- return {
30
- x: x,
31
- y: y
32
- };
33
- };
34
-
35
- exports.xy = xy;
36
-
37
- var buildSizeArray = function buildSizeArray(size, padding) {
38
- padding = Number.isFinite(padding) ? Math.max(padding, 0) : 0;
39
- (0, _invariant["default"])(padding < size, 'padding must be less than size');
40
- var half = Math.round(padding * 0.5);
41
- return [half, size - half];
42
- };
43
-
44
- exports.buildSizeArray = buildSizeArray;
45
-
46
- var tickCount = function tickCount(min, max, step) {
47
- (0, _invariant["default"])(min < max, 'min must be less than max');
48
- var size = Math.abs(min - max);
49
- return Math.round(size / step);
50
- };
51
-
52
- exports.tickCount = tickCount;
53
-
54
- function getInterval(domain, ticks) {
55
- var min = domain.min,
56
- max = domain.max;
57
- var major = ticks.major,
58
- minor = ticks.minor;
59
-
60
- if (min >= max) {
61
- throw new Error("min is > max: ".concat(min, " > ").concat(max));
62
- }
63
-
64
- var distance = max - min;
65
- var minorTicks = minor > 0 ? minor + 1 : 1;
66
- var normalizedMajor = major - 1;
67
-
68
- if (isNaN(normalizedMajor)) {
69
- throw new Error('Tick Frequency must be 2 or higher');
70
- }
71
-
72
- if (normalizedMajor <= 0) {
73
- throw new Error('Tick Frequency must be 2 or higher');
74
- }
75
-
76
- var divider = normalizedMajor * minorTicks;
77
- var raw = distance / divider;
78
- return parseFloat(Number(raw).toFixed(4));
79
- }
80
-
81
- var mkRange = function mkRange(min, max, interval) {
82
- var raw = (0, _range["default"])(min, max, interval);
83
- /* Fix the last step due to rounding errors */
84
-
85
- raw.splice(raw.length, 1, max);
86
- return raw;
87
- };
88
-
89
- function snapTo(min, max, interval, value) {
90
- if (value >= max) {
91
- return max;
92
- }
93
-
94
- if (value <= min) {
95
- return min;
96
- }
97
-
98
- var rng = mkRange(min, max, interval);
99
- rng = rng.filter(function (v) {
100
- return Math.abs(value - v) <= interval;
101
- });
102
- return rng.length && rng.reduce(function (prev, curr) {
103
- var currentDistance = Math.abs(curr - value);
104
- var previousDistance = Math.abs(prev - value);
105
- return currentDistance <= previousDistance ? curr : prev;
106
- });
107
- }
108
-
109
- function buildTickModel(domain, ticks, interval, scaleFn) {
110
- var rng = mkRange(domain.min, domain.max, interval);
111
- return rng.map(function (r, index) {
112
- var isMajor = index % (ticks.minor + 1) === 0;
113
- return {
114
- value: r,
115
- major: isMajor,
116
- x: scaleFn(r)
117
- };
118
- });
119
- }
120
-
121
- var polygonToArea = function polygonToArea(points) {
122
- var h = (0, _head["default"])(points);
123
- var area = {
124
- left: h.x,
125
- top: h.y,
126
- bottom: h.y,
127
- right: h.x
128
- };
129
- return (0, _tail["default"])(points).reduce(function (a, p) {
130
- a.left = Math.min(a.left, p.x);
131
- a.top = Math.max(a.top, p.y);
132
- a.bottom = Math.min(a.bottom, p.y);
133
- a.right = Math.max(a.right, p.x);
134
- return a;
135
- }, area);
136
- };
137
-
138
- exports.polygonToArea = polygonToArea;
139
-
140
- var lineToArea = function lineToArea(from, to) {
141
- var left = Math.min(from.x, to.x);
142
- var top = Math.max(from.y, to.y);
143
- var bottom = Math.min(from.y, to.y);
144
- var right = Math.max(from.x, to.x);
145
- return {
146
- left: left,
147
- top: top,
148
- bottom: bottom,
149
- right: right
150
- };
151
- };
152
-
153
- exports.lineToArea = lineToArea;
154
-
155
- var bounds = function bounds(area, domain, range) {
156
- return {
157
- left: domain.min - area.left,
158
- right: Math.abs(area.right - domain.max),
159
- top: Math.abs(area.top - range.max),
160
- bottom: range.min - area.bottom
161
- };
162
- };
163
-
164
- exports.bounds = bounds;
165
-
166
- var point = function point(o) {
167
- return new _pointGeometry["default"](o.x, o.y);
168
- };
169
-
170
- exports.point = point;
171
-
172
- var getDelta = function getDelta(from, to) {
173
- return point(to).sub(point(from));
174
- };
175
-
176
- exports.getDelta = getDelta;
177
-
178
- var bandKey = function bandKey(d, index) {
179
- return "".concat(index, "-").concat(d.label || '-');
180
- };
181
-
182
- exports.bandKey = bandKey;
183
-
184
- var isDomainRangeEqual = function isDomainRangeEqual(graphProps, nextGraphProps) {
185
- return (0, _isEqual["default"])(graphProps.domain, nextGraphProps.domain) && (0, _isEqual["default"])(graphProps.range, nextGraphProps.range);
186
- }; // findLongestWord is also used in graphing
187
-
188
-
189
- exports.isDomainRangeEqual = isDomainRangeEqual;
190
-
191
- var findLongestWord = function findLongestWord(label) {
192
- var longestWord = (label || '').replace(/<[^>]+>/g, '').split(' ').sort(function (a, b) {
193
- return b.length - a.length;
194
- });
195
- return longestWord[0].length;
196
- }; // amountToIncreaseWidth is also used in graphing
197
-
198
-
199
- exports.findLongestWord = findLongestWord;
200
-
201
- var amountToIncreaseWidth = function amountToIncreaseWidth(longestWord) {
202
- if (!longestWord) {
203
- return 0;
204
- }
205
-
206
- return longestWord * 20;
207
- };
208
-
209
- exports.amountToIncreaseWidth = amountToIncreaseWidth;
210
-
211
- var extractTextFromHTML = function extractTextFromHTML(htmlString) {
212
- var _doc$body;
213
-
214
- var parser = new DOMParser();
215
- var doc = parser === null || parser === void 0 ? void 0 : parser.parseFromString(htmlString, 'text/html');
216
- return (doc === null || doc === void 0 ? void 0 : (_doc$body = doc.body) === null || _doc$body === void 0 ? void 0 : _doc$body.textContent) || '';
217
- };
218
-
219
- exports.extractTextFromHTML = extractTextFromHTML;
220
-
221
- var isEmptyObject = function isEmptyObject(obj) {
222
- return obj && Object.keys(obj).length === 0 && obj.constructor === Object;
223
- };
224
-
225
- exports.isEmptyObject = isEmptyObject;
226
-
227
- var isEmptyString = function isEmptyString(str) {
228
- return typeof str === 'string' && str.trim() === '';
229
- };
230
-
231
- exports.isEmptyString = isEmptyString;
232
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJuYW1lcyI6WyJ4eSIsIngiLCJ5IiwiYnVpbGRTaXplQXJyYXkiLCJzaXplIiwicGFkZGluZyIsIk51bWJlciIsImlzRmluaXRlIiwiTWF0aCIsIm1heCIsImhhbGYiLCJyb3VuZCIsInRpY2tDb3VudCIsIm1pbiIsInN0ZXAiLCJhYnMiLCJnZXRJbnRlcnZhbCIsImRvbWFpbiIsInRpY2tzIiwibWFqb3IiLCJtaW5vciIsIkVycm9yIiwiZGlzdGFuY2UiLCJtaW5vclRpY2tzIiwibm9ybWFsaXplZE1ham9yIiwiaXNOYU4iLCJkaXZpZGVyIiwicmF3IiwicGFyc2VGbG9hdCIsInRvRml4ZWQiLCJta1JhbmdlIiwiaW50ZXJ2YWwiLCJzcGxpY2UiLCJsZW5ndGgiLCJzbmFwVG8iLCJ2YWx1ZSIsInJuZyIsImZpbHRlciIsInYiLCJyZWR1Y2UiLCJwcmV2IiwiY3VyciIsImN1cnJlbnREaXN0YW5jZSIsInByZXZpb3VzRGlzdGFuY2UiLCJidWlsZFRpY2tNb2RlbCIsInNjYWxlRm4iLCJtYXAiLCJyIiwiaW5kZXgiLCJpc01ham9yIiwicG9seWdvblRvQXJlYSIsInBvaW50cyIsImgiLCJhcmVhIiwibGVmdCIsInRvcCIsImJvdHRvbSIsInJpZ2h0IiwiYSIsInAiLCJsaW5lVG9BcmVhIiwiZnJvbSIsInRvIiwiYm91bmRzIiwicmFuZ2UiLCJwb2ludCIsIm8iLCJQb2ludCIsImdldERlbHRhIiwic3ViIiwiYmFuZEtleSIsImQiLCJsYWJlbCIsImlzRG9tYWluUmFuZ2VFcXVhbCIsImdyYXBoUHJvcHMiLCJuZXh0R3JhcGhQcm9wcyIsImZpbmRMb25nZXN0V29yZCIsImxvbmdlc3RXb3JkIiwicmVwbGFjZSIsInNwbGl0Iiwic29ydCIsImIiLCJhbW91bnRUb0luY3JlYXNlV2lkdGgiLCJleHRyYWN0VGV4dEZyb21IVE1MIiwiaHRtbFN0cmluZyIsInBhcnNlciIsIkRPTVBhcnNlciIsImRvYyIsInBhcnNlRnJvbVN0cmluZyIsImJvZHkiLCJ0ZXh0Q29udGVudCIsImlzRW1wdHlPYmplY3QiLCJvYmoiLCJPYmplY3QiLCJrZXlzIiwiY29uc3RydWN0b3IiLCJpc0VtcHR5U3RyaW5nIiwic3RyIiwidHJpbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRU8sSUFBTUEsRUFBRSxHQUFHLFNBQUxBLEVBQUssQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKO0FBQUEsU0FBVztBQUFFRCxJQUFBQSxDQUFDLEVBQURBLENBQUY7QUFBS0MsSUFBQUEsQ0FBQyxFQUFEQTtBQUFMLEdBQVg7QUFBQSxDQUFYOzs7O0FBRUEsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUFDQyxJQUFELEVBQU9DLE9BQVAsRUFBbUI7QUFDL0NBLEVBQUFBLE9BQU8sR0FBR0MsTUFBTSxDQUFDQyxRQUFQLENBQWdCRixPQUFoQixJQUEyQkcsSUFBSSxDQUFDQyxHQUFMLENBQVNKLE9BQVQsRUFBa0IsQ0FBbEIsQ0FBM0IsR0FBa0QsQ0FBNUQ7QUFDQSw2QkFBVUEsT0FBTyxHQUFHRCxJQUFwQixFQUEwQixnQ0FBMUI7QUFDQSxNQUFNTSxJQUFJLEdBQUdGLElBQUksQ0FBQ0csS0FBTCxDQUFXTixPQUFPLEdBQUcsR0FBckIsQ0FBYjtBQUNBLFNBQU8sQ0FBQ0ssSUFBRCxFQUFPTixJQUFJLEdBQUdNLElBQWQsQ0FBUDtBQUNELENBTE07Ozs7QUFPQSxJQUFNRSxTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFDQyxHQUFELEVBQU1KLEdBQU4sRUFBV0ssSUFBWCxFQUFvQjtBQUMzQyw2QkFBVUQsR0FBRyxHQUFHSixHQUFoQixFQUFxQiwyQkFBckI7QUFDQSxNQUFNTCxJQUFJLEdBQUdJLElBQUksQ0FBQ08sR0FBTCxDQUFTRixHQUFHLEdBQUdKLEdBQWYsQ0FBYjtBQUNBLFNBQU9ELElBQUksQ0FBQ0csS0FBTCxDQUFXUCxJQUFJLEdBQUdVLElBQWxCLENBQVA7QUFDRCxDQUpNOzs7O0FBTUEsU0FBU0UsV0FBVCxDQUFxQkMsTUFBckIsRUFBNkJDLEtBQTdCLEVBQW9DO0FBQ3pDLE1BQVFMLEdBQVIsR0FBcUJJLE1BQXJCLENBQVFKLEdBQVI7QUFBQSxNQUFhSixHQUFiLEdBQXFCUSxNQUFyQixDQUFhUixHQUFiO0FBQ0EsTUFBUVUsS0FBUixHQUF5QkQsS0FBekIsQ0FBUUMsS0FBUjtBQUFBLE1BQWVDLEtBQWYsR0FBeUJGLEtBQXpCLENBQWVFLEtBQWY7O0FBRUEsTUFBSVAsR0FBRyxJQUFJSixHQUFYLEVBQWdCO0FBQ2QsVUFBTSxJQUFJWSxLQUFKLHlCQUEyQlIsR0FBM0IsZ0JBQW9DSixHQUFwQyxFQUFOO0FBQ0Q7O0FBRUQsTUFBTWEsUUFBUSxHQUFHYixHQUFHLEdBQUdJLEdBQXZCO0FBQ0EsTUFBTVUsVUFBVSxHQUFHSCxLQUFLLEdBQUcsQ0FBUixHQUFZQSxLQUFLLEdBQUcsQ0FBcEIsR0FBd0IsQ0FBM0M7QUFDQSxNQUFNSSxlQUFlLEdBQUdMLEtBQUssR0FBRyxDQUFoQzs7QUFFQSxNQUFJTSxLQUFLLENBQUNELGVBQUQsQ0FBVCxFQUE0QjtBQUMxQixVQUFNLElBQUlILEtBQUosQ0FBVSxvQ0FBVixDQUFOO0FBQ0Q7O0FBRUQsTUFBSUcsZUFBZSxJQUFJLENBQXZCLEVBQTBCO0FBQ3hCLFVBQU0sSUFBSUgsS0FBSixDQUFVLG9DQUFWLENBQU47QUFDRDs7QUFFRCxNQUFNSyxPQUFPLEdBQUdGLGVBQWUsR0FBR0QsVUFBbEM7QUFDQSxNQUFNSSxHQUFHLEdBQUdMLFFBQVEsR0FBR0ksT0FBdkI7QUFDQSxTQUFPRSxVQUFVLENBQUN0QixNQUFNLENBQUNxQixHQUFELENBQU4sQ0FBWUUsT0FBWixDQUFvQixDQUFwQixDQUFELENBQWpCO0FBQ0Q7O0FBRUQsSUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ2pCLEdBQUQsRUFBTUosR0FBTixFQUFXc0IsUUFBWCxFQUF3QjtBQUN0QyxNQUFNSixHQUFHLEdBQUcsdUJBQU1kLEdBQU4sRUFBV0osR0FBWCxFQUFnQnNCLFFBQWhCLENBQVo7QUFDQTs7QUFDQUosRUFBQUEsR0FBRyxDQUFDSyxNQUFKLENBQVdMLEdBQUcsQ0FBQ00sTUFBZixFQUF1QixDQUF2QixFQUEwQnhCLEdBQTFCO0FBQ0EsU0FBT2tCLEdBQVA7QUFDRCxDQUxEOztBQU9PLFNBQVNPLE1BQVQsQ0FBZ0JyQixHQUFoQixFQUFxQkosR0FBckIsRUFBMEJzQixRQUExQixFQUFvQ0ksS0FBcEMsRUFBMkM7QUFDaEQsTUFBSUEsS0FBSyxJQUFJMUIsR0FBYixFQUFrQjtBQUNoQixXQUFPQSxHQUFQO0FBQ0Q7O0FBRUQsTUFBSTBCLEtBQUssSUFBSXRCLEdBQWIsRUFBa0I7QUFDaEIsV0FBT0EsR0FBUDtBQUNEOztBQUVELE1BQUl1QixHQUFHLEdBQUdOLE9BQU8sQ0FBQ2pCLEdBQUQsRUFBTUosR0FBTixFQUFXc0IsUUFBWCxDQUFqQjtBQUVBSyxFQUFBQSxHQUFHLEdBQUdBLEdBQUcsQ0FBQ0MsTUFBSixDQUFXLFVBQUNDLENBQUQsRUFBTztBQUN0QixXQUFPOUIsSUFBSSxDQUFDTyxHQUFMLENBQVNvQixLQUFLLEdBQUdHLENBQWpCLEtBQXVCUCxRQUE5QjtBQUNELEdBRkssQ0FBTjtBQUlBLFNBQ0VLLEdBQUcsQ0FBQ0gsTUFBSixJQUNBRyxHQUFHLENBQUNHLE1BQUosQ0FBVyxVQUFDQyxJQUFELEVBQU9DLElBQVAsRUFBZ0I7QUFDekIsUUFBTUMsZUFBZSxHQUFHbEMsSUFBSSxDQUFDTyxHQUFMLENBQVMwQixJQUFJLEdBQUdOLEtBQWhCLENBQXhCO0FBQ0EsUUFBTVEsZ0JBQWdCLEdBQUduQyxJQUFJLENBQUNPLEdBQUwsQ0FBU3lCLElBQUksR0FBR0wsS0FBaEIsQ0FBekI7QUFDQSxXQUFPTyxlQUFlLElBQUlDLGdCQUFuQixHQUFzQ0YsSUFBdEMsR0FBNkNELElBQXBEO0FBQ0QsR0FKRCxDQUZGO0FBUUQ7O0FBRU0sU0FBU0ksY0FBVCxDQUF3QjNCLE1BQXhCLEVBQWdDQyxLQUFoQyxFQUF1Q2EsUUFBdkMsRUFBaURjLE9BQWpELEVBQTBEO0FBQy9ELE1BQU1ULEdBQUcsR0FBR04sT0FBTyxDQUFDYixNQUFNLENBQUNKLEdBQVIsRUFBYUksTUFBTSxDQUFDUixHQUFwQixFQUF5QnNCLFFBQXpCLENBQW5CO0FBRUEsU0FBT0ssR0FBRyxDQUFDVSxHQUFKLENBQVEsVUFBQ0MsQ0FBRCxFQUFJQyxLQUFKLEVBQWM7QUFDM0IsUUFBTUMsT0FBTyxHQUFHRCxLQUFLLElBQUk5QixLQUFLLENBQUNFLEtBQU4sR0FBYyxDQUFsQixDQUFMLEtBQThCLENBQTlDO0FBRUEsV0FBTztBQUNMZSxNQUFBQSxLQUFLLEVBQUVZLENBREY7QUFFTDVCLE1BQUFBLEtBQUssRUFBRThCLE9BRkY7QUFHTGhELE1BQUFBLENBQUMsRUFBRTRDLE9BQU8sQ0FBQ0UsQ0FBRDtBQUhMLEtBQVA7QUFLRCxHQVJNLENBQVA7QUFTRDs7QUFFTSxJQUFNRyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNDLE1BQUQsRUFBWTtBQUN2QyxNQUFNQyxDQUFDLEdBQUcsc0JBQUtELE1BQUwsQ0FBVjtBQUNBLE1BQU1FLElBQUksR0FBRztBQUNYQyxJQUFBQSxJQUFJLEVBQUVGLENBQUMsQ0FBQ25ELENBREc7QUFFWHNELElBQUFBLEdBQUcsRUFBRUgsQ0FBQyxDQUFDbEQsQ0FGSTtBQUdYc0QsSUFBQUEsTUFBTSxFQUFFSixDQUFDLENBQUNsRCxDQUhDO0FBSVh1RCxJQUFBQSxLQUFLLEVBQUVMLENBQUMsQ0FBQ25EO0FBSkUsR0FBYjtBQU1BLFNBQU8sc0JBQUtrRCxNQUFMLEVBQWFaLE1BQWIsQ0FBb0IsVUFBQ21CLENBQUQsRUFBSUMsQ0FBSixFQUFVO0FBQ25DRCxJQUFBQSxDQUFDLENBQUNKLElBQUYsR0FBUzlDLElBQUksQ0FBQ0ssR0FBTCxDQUFTNkMsQ0FBQyxDQUFDSixJQUFYLEVBQWlCSyxDQUFDLENBQUMxRCxDQUFuQixDQUFUO0FBQ0F5RCxJQUFBQSxDQUFDLENBQUNILEdBQUYsR0FBUS9DLElBQUksQ0FBQ0MsR0FBTCxDQUFTaUQsQ0FBQyxDQUFDSCxHQUFYLEVBQWdCSSxDQUFDLENBQUN6RCxDQUFsQixDQUFSO0FBQ0F3RCxJQUFBQSxDQUFDLENBQUNGLE1BQUYsR0FBV2hELElBQUksQ0FBQ0ssR0FBTCxDQUFTNkMsQ0FBQyxDQUFDRixNQUFYLEVBQW1CRyxDQUFDLENBQUN6RCxDQUFyQixDQUFYO0FBQ0F3RCxJQUFBQSxDQUFDLENBQUNELEtBQUYsR0FBVWpELElBQUksQ0FBQ0MsR0FBTCxDQUFTaUQsQ0FBQyxDQUFDRCxLQUFYLEVBQWtCRSxDQUFDLENBQUMxRCxDQUFwQixDQUFWO0FBQ0EsV0FBT3lELENBQVA7QUFDRCxHQU5NLEVBTUpMLElBTkksQ0FBUDtBQU9ELENBZk07Ozs7QUFpQkEsSUFBTU8sVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ0MsSUFBRCxFQUFPQyxFQUFQLEVBQWM7QUFDdEMsTUFBTVIsSUFBSSxHQUFHOUMsSUFBSSxDQUFDSyxHQUFMLENBQVNnRCxJQUFJLENBQUM1RCxDQUFkLEVBQWlCNkQsRUFBRSxDQUFDN0QsQ0FBcEIsQ0FBYjtBQUNBLE1BQU1zRCxHQUFHLEdBQUcvQyxJQUFJLENBQUNDLEdBQUwsQ0FBU29ELElBQUksQ0FBQzNELENBQWQsRUFBaUI0RCxFQUFFLENBQUM1RCxDQUFwQixDQUFaO0FBQ0EsTUFBTXNELE1BQU0sR0FBR2hELElBQUksQ0FBQ0ssR0FBTCxDQUFTZ0QsSUFBSSxDQUFDM0QsQ0FBZCxFQUFpQjRELEVBQUUsQ0FBQzVELENBQXBCLENBQWY7QUFDQSxNQUFNdUQsS0FBSyxHQUFHakQsSUFBSSxDQUFDQyxHQUFMLENBQVNvRCxJQUFJLENBQUM1RCxDQUFkLEVBQWlCNkQsRUFBRSxDQUFDN0QsQ0FBcEIsQ0FBZDtBQUNBLFNBQU87QUFBRXFELElBQUFBLElBQUksRUFBSkEsSUFBRjtBQUFRQyxJQUFBQSxHQUFHLEVBQUhBLEdBQVI7QUFBYUMsSUFBQUEsTUFBTSxFQUFOQSxNQUFiO0FBQXFCQyxJQUFBQSxLQUFLLEVBQUxBO0FBQXJCLEdBQVA7QUFDRCxDQU5NOzs7O0FBUUEsSUFBTU0sTUFBTSxHQUFHLFNBQVRBLE1BQVMsQ0FBQ1YsSUFBRCxFQUFPcEMsTUFBUCxFQUFlK0MsS0FBZixFQUF5QjtBQUM3QyxTQUFPO0FBQ0xWLElBQUFBLElBQUksRUFBRXJDLE1BQU0sQ0FBQ0osR0FBUCxHQUFhd0MsSUFBSSxDQUFDQyxJQURuQjtBQUVMRyxJQUFBQSxLQUFLLEVBQUVqRCxJQUFJLENBQUNPLEdBQUwsQ0FBU3NDLElBQUksQ0FBQ0ksS0FBTCxHQUFheEMsTUFBTSxDQUFDUixHQUE3QixDQUZGO0FBR0w4QyxJQUFBQSxHQUFHLEVBQUUvQyxJQUFJLENBQUNPLEdBQUwsQ0FBU3NDLElBQUksQ0FBQ0UsR0FBTCxHQUFXUyxLQUFLLENBQUN2RCxHQUExQixDQUhBO0FBSUwrQyxJQUFBQSxNQUFNLEVBQUVRLEtBQUssQ0FBQ25ELEdBQU4sR0FBWXdDLElBQUksQ0FBQ0c7QUFKcEIsR0FBUDtBQU1ELENBUE07Ozs7QUFTQSxJQUFNUyxLQUFLLEdBQUcsU0FBUkEsS0FBUSxDQUFDQyxDQUFEO0FBQUEsU0FBTyxJQUFJQyx5QkFBSixDQUFVRCxDQUFDLENBQUNqRSxDQUFaLEVBQWVpRSxDQUFDLENBQUNoRSxDQUFqQixDQUFQO0FBQUEsQ0FBZDs7OztBQUNBLElBQU1rRSxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDUCxJQUFELEVBQU9DLEVBQVAsRUFBYztBQUNwQyxTQUFPRyxLQUFLLENBQUNILEVBQUQsQ0FBTCxDQUFVTyxHQUFWLENBQWNKLEtBQUssQ0FBQ0osSUFBRCxDQUFuQixDQUFQO0FBQ0QsQ0FGTTs7OztBQUlBLElBQU1TLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNDLENBQUQsRUFBSXZCLEtBQUo7QUFBQSxtQkFBaUJBLEtBQWpCLGNBQTBCdUIsQ0FBQyxDQUFDQyxLQUFGLElBQVcsR0FBckM7QUFBQSxDQUFoQjs7OztBQUVBLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsQ0FBQ0MsVUFBRCxFQUFhQyxjQUFiLEVBQWdDO0FBQ2hFLFNBQU8seUJBQVFELFVBQVUsQ0FBQ3pELE1BQW5CLEVBQTJCMEQsY0FBYyxDQUFDMUQsTUFBMUMsS0FBcUQseUJBQVF5RCxVQUFVLENBQUNWLEtBQW5CLEVBQTBCVyxjQUFjLENBQUNYLEtBQXpDLENBQTVEO0FBQ0QsQ0FGTSxDLENBSVA7Ozs7O0FBQ08sSUFBTVksZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDSixLQUFELEVBQVc7QUFDeEMsTUFBSUssV0FBVyxHQUFHLENBQUNMLEtBQUssSUFBSSxFQUFWLEVBQ2ZNLE9BRGUsQ0FDUCxVQURPLEVBQ0ssRUFETCxFQUVmQyxLQUZlLENBRVQsR0FGUyxFQUdmQyxJQUhlLENBR1YsVUFBQ3RCLENBQUQsRUFBSXVCLENBQUo7QUFBQSxXQUFVQSxDQUFDLENBQUNoRCxNQUFGLEdBQVd5QixDQUFDLENBQUN6QixNQUF2QjtBQUFBLEdBSFUsQ0FBbEI7QUFLQSxTQUFPNEMsV0FBVyxDQUFDLENBQUQsQ0FBWCxDQUFlNUMsTUFBdEI7QUFDRCxDQVBNLEMsQ0FTUDs7Ozs7QUFDTyxJQUFNaUQscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUF3QixDQUFDTCxXQUFELEVBQWlCO0FBQ3BELE1BQUksQ0FBQ0EsV0FBTCxFQUFrQjtBQUNoQixXQUFPLENBQVA7QUFDRDs7QUFFRCxTQUFPQSxXQUFXLEdBQUcsRUFBckI7QUFDRCxDQU5NOzs7O0FBUUEsSUFBTU0sbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFzQixDQUFDQyxVQUFELEVBQWdCO0FBQUE7O0FBQ2pELE1BQU1DLE1BQU0sR0FBRyxJQUFJQyxTQUFKLEVBQWY7QUFDQSxNQUFNQyxHQUFHLEdBQUdGLE1BQUgsYUFBR0EsTUFBSCx1QkFBR0EsTUFBTSxDQUFFRyxlQUFSLENBQXdCSixVQUF4QixFQUFvQyxXQUFwQyxDQUFaO0FBQ0EsU0FBTyxDQUFBRyxHQUFHLFNBQUgsSUFBQUEsR0FBRyxXQUFILHlCQUFBQSxHQUFHLENBQUVFLElBQUwsd0RBQVdDLFdBQVgsS0FBMEIsRUFBakM7QUFDRCxDQUpNOzs7O0FBTUEsSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDQyxHQUFELEVBQVM7QUFDcEMsU0FBT0EsR0FBRyxJQUFJQyxNQUFNLENBQUNDLElBQVAsQ0FBWUYsR0FBWixFQUFpQjNELE1BQWpCLEtBQTRCLENBQW5DLElBQXdDMkQsR0FBRyxDQUFDRyxXQUFKLEtBQW9CRixNQUFuRTtBQUNELENBRk07Ozs7QUFJQSxJQUFNRyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNDLEdBQUQsRUFBUztBQUNwQyxTQUFPLE9BQU9BLEdBQVAsS0FBZSxRQUFmLElBQTJCQSxHQUFHLENBQUNDLElBQUosT0FBZSxFQUFqRDtBQUNELENBRk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaW52YXJpYW50IGZyb20gJ2ludmFyaWFudCc7XG5pbXBvcnQgcmFuZ2UgZnJvbSAnbG9kYXNoL3JhbmdlJztcbmltcG9ydCBQb2ludCBmcm9tICdAbWFwYm94L3BvaW50LWdlb21ldHJ5JztcbmltcG9ydCBoZWFkIGZyb20gJ2xvZGFzaC9oZWFkJztcbmltcG9ydCB0YWlsIGZyb20gJ2xvZGFzaC90YWlsJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcblxuZXhwb3J0IGNvbnN0IHh5ID0gKHgsIHkpID0+ICh7IHgsIHkgfSk7XG5cbmV4cG9ydCBjb25zdCBidWlsZFNpemVBcnJheSA9IChzaXplLCBwYWRkaW5nKSA9PiB7XG4gIHBhZGRpbmcgPSBOdW1iZXIuaXNGaW5pdGUocGFkZGluZykgPyBNYXRoLm1heChwYWRkaW5nLCAwKSA6IDA7XG4gIGludmFyaWFudChwYWRkaW5nIDwgc2l6ZSwgJ3BhZGRpbmcgbXVzdCBiZSBsZXNzIHRoYW4gc2l6ZScpO1xuICBjb25zdCBoYWxmID0gTWF0aC5yb3VuZChwYWRkaW5nICogMC41KTtcbiAgcmV0dXJuIFtoYWxmLCBzaXplIC0gaGFsZl07XG59O1xuXG5leHBvcnQgY29uc3QgdGlja0NvdW50ID0gKG1pbiwgbWF4LCBzdGVwKSA9PiB7XG4gIGludmFyaWFudChtaW4gPCBtYXgsICdtaW4gbXVzdCBiZSBsZXNzIHRoYW4gbWF4Jyk7XG4gIGNvbnN0IHNpemUgPSBNYXRoLmFicyhtaW4gLSBtYXgpO1xuICByZXR1cm4gTWF0aC5yb3VuZChzaXplIC8gc3RlcCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJ2YWwoZG9tYWluLCB0aWNrcykge1xuICBjb25zdCB7IG1pbiwgbWF4IH0gPSBkb21haW47XG4gIGNvbnN0IHsgbWFqb3IsIG1pbm9yIH0gPSB0aWNrcztcblxuICBpZiAobWluID49IG1heCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbWluIGlzID4gbWF4OiAke21pbn0gPiAke21heH1gKTtcbiAgfVxuXG4gIGNvbnN0IGRpc3RhbmNlID0gbWF4IC0gbWluO1xuICBjb25zdCBtaW5vclRpY2tzID0gbWlub3IgPiAwID8gbWlub3IgKyAxIDogMTtcbiAgY29uc3Qgbm9ybWFsaXplZE1ham9yID0gbWFqb3IgLSAxO1xuXG4gIGlmIChpc05hTihub3JtYWxpemVkTWFqb3IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaWNrIEZyZXF1ZW5jeSBtdXN0IGJlIDIgb3IgaGlnaGVyJyk7XG4gIH1cblxuICBpZiAobm9ybWFsaXplZE1ham9yIDw9IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RpY2sgRnJlcXVlbmN5IG11c3QgYmUgMiBvciBoaWdoZXInKTtcbiAgfVxuXG4gIGNvbnN0IGRpdmlkZXIgPSBub3JtYWxpemVkTWFqb3IgKiBtaW5vclRpY2tzO1xuICBjb25zdCByYXcgPSBkaXN0YW5jZSAvIGRpdmlkZXI7XG4gIHJldHVybiBwYXJzZUZsb2F0KE51bWJlcihyYXcpLnRvRml4ZWQoNCkpO1xufVxuXG5jb25zdCBta1JhbmdlID0gKG1pbiwgbWF4LCBpbnRlcnZhbCkgPT4ge1xuICBjb25zdCByYXcgPSByYW5nZShtaW4sIG1heCwgaW50ZXJ2YWwpO1xuICAvKiBGaXggdGhlIGxhc3Qgc3RlcCBkdWUgdG8gcm91bmRpbmcgZXJyb3JzICovXG4gIHJhdy5zcGxpY2UocmF3Lmxlbmd0aCwgMSwgbWF4KTtcbiAgcmV0dXJuIHJhdztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzbmFwVG8obWluLCBtYXgsIGludGVydmFsLCB2YWx1ZSkge1xuICBpZiAodmFsdWUgPj0gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIGlmICh2YWx1ZSA8PSBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgbGV0IHJuZyA9IG1rUmFuZ2UobWluLCBtYXgsIGludGVydmFsKTtcblxuICBybmcgPSBybmcuZmlsdGVyKCh2KSA9PiB7XG4gICAgcmV0dXJuIE1hdGguYWJzKHZhbHVlIC0gdikgPD0gaW50ZXJ2YWw7XG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgcm5nLmxlbmd0aCAmJlxuICAgIHJuZy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnREaXN0YW5jZSA9IE1hdGguYWJzKGN1cnIgLSB2YWx1ZSk7XG4gICAgICBjb25zdCBwcmV2aW91c0Rpc3RhbmNlID0gTWF0aC5hYnMocHJldiAtIHZhbHVlKTtcbiAgICAgIHJldHVybiBjdXJyZW50RGlzdGFuY2UgPD0gcHJldmlvdXNEaXN0YW5jZSA/IGN1cnIgOiBwcmV2O1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFRpY2tNb2RlbChkb21haW4sIHRpY2tzLCBpbnRlcnZhbCwgc2NhbGVGbikge1xuICBjb25zdCBybmcgPSBta1JhbmdlKGRvbWFpbi5taW4sIGRvbWFpbi5tYXgsIGludGVydmFsKTtcblxuICByZXR1cm4gcm5nLm1hcCgociwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBpc01ham9yID0gaW5kZXggJSAodGlja3MubWlub3IgKyAxKSA9PT0gMDtcblxuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogcixcbiAgICAgIG1ham9yOiBpc01ham9yLFxuICAgICAgeDogc2NhbGVGbihyKSxcbiAgICB9O1xuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IHBvbHlnb25Ub0FyZWEgPSAocG9pbnRzKSA9PiB7XG4gIGNvbnN0IGggPSBoZWFkKHBvaW50cyk7XG4gIGNvbnN0IGFyZWEgPSB7XG4gICAgbGVmdDogaC54LFxuICAgIHRvcDogaC55LFxuICAgIGJvdHRvbTogaC55LFxuICAgIHJpZ2h0OiBoLngsXG4gIH07XG4gIHJldHVybiB0YWlsKHBvaW50cykucmVkdWNlKChhLCBwKSA9PiB7XG4gICAgYS5sZWZ0ID0gTWF0aC5taW4oYS5sZWZ0LCBwLngpO1xuICAgIGEudG9wID0gTWF0aC5tYXgoYS50b3AsIHAueSk7XG4gICAgYS5ib3R0b20gPSBNYXRoLm1pbihhLmJvdHRvbSwgcC55KTtcbiAgICBhLnJpZ2h0ID0gTWF0aC5tYXgoYS5yaWdodCwgcC54KTtcbiAgICByZXR1cm4gYTtcbiAgfSwgYXJlYSk7XG59O1xuXG5leHBvcnQgY29uc3QgbGluZVRvQXJlYSA9IChmcm9tLCB0bykgPT4ge1xuICBjb25zdCBsZWZ0ID0gTWF0aC5taW4oZnJvbS54LCB0by54KTtcbiAgY29uc3QgdG9wID0gTWF0aC5tYXgoZnJvbS55LCB0by55KTtcbiAgY29uc3QgYm90dG9tID0gTWF0aC5taW4oZnJvbS55LCB0by55KTtcbiAgY29uc3QgcmlnaHQgPSBNYXRoLm1heChmcm9tLngsIHRvLngpO1xuICByZXR1cm4geyBsZWZ0LCB0b3AsIGJvdHRvbSwgcmlnaHQgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBib3VuZHMgPSAoYXJlYSwgZG9tYWluLCByYW5nZSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGxlZnQ6IGRvbWFpbi5taW4gLSBhcmVhLmxlZnQsXG4gICAgcmlnaHQ6IE1hdGguYWJzKGFyZWEucmlnaHQgLSBkb21haW4ubWF4KSxcbiAgICB0b3A6IE1hdGguYWJzKGFyZWEudG9wIC0gcmFuZ2UubWF4KSxcbiAgICBib3R0b206IHJhbmdlLm1pbiAtIGFyZWEuYm90dG9tLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHBvaW50ID0gKG8pID0+IG5ldyBQb2ludChvLngsIG8ueSk7XG5leHBvcnQgY29uc3QgZ2V0RGVsdGEgPSAoZnJvbSwgdG8pID0+IHtcbiAgcmV0dXJuIHBvaW50KHRvKS5zdWIocG9pbnQoZnJvbSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGJhbmRLZXkgPSAoZCwgaW5kZXgpID0+IGAke2luZGV4fS0ke2QubGFiZWwgfHwgJy0nfWA7XG5cbmV4cG9ydCBjb25zdCBpc0RvbWFpblJhbmdlRXF1YWwgPSAoZ3JhcGhQcm9wcywgbmV4dEdyYXBoUHJvcHMpID0+IHtcbiAgcmV0dXJuIGlzRXF1YWwoZ3JhcGhQcm9wcy5kb21haW4sIG5leHRHcmFwaFByb3BzLmRvbWFpbikgJiYgaXNFcXVhbChncmFwaFByb3BzLnJhbmdlLCBuZXh0R3JhcGhQcm9wcy5yYW5nZSk7XG59O1xuXG4vLyBmaW5kTG9uZ2VzdFdvcmQgaXMgYWxzbyB1c2VkIGluIGdyYXBoaW5nXG5leHBvcnQgY29uc3QgZmluZExvbmdlc3RXb3JkID0gKGxhYmVsKSA9PiB7XG4gIGxldCBsb25nZXN0V29yZCA9IChsYWJlbCB8fCAnJylcbiAgICAucmVwbGFjZSgvPFtePl0rPi9nLCAnJylcbiAgICAuc3BsaXQoJyAnKVxuICAgIC5zb3J0KChhLCBiKSA9PiBiLmxlbmd0aCAtIGEubGVuZ3RoKTtcblxuICByZXR1cm4gbG9uZ2VzdFdvcmRbMF0ubGVuZ3RoO1xufTtcblxuLy8gYW1vdW50VG9JbmNyZWFzZVdpZHRoIGlzIGFsc28gdXNlZCBpbiBncmFwaGluZ1xuZXhwb3J0IGNvbnN0IGFtb3VudFRvSW5jcmVhc2VXaWR0aCA9IChsb25nZXN0V29yZCkgPT4ge1xuICBpZiAoIWxvbmdlc3RXb3JkKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gbG9uZ2VzdFdvcmQgKiAyMDtcbn07XG5cbmV4cG9ydCBjb25zdCBleHRyYWN0VGV4dEZyb21IVE1MID0gKGh0bWxTdHJpbmcpID0+IHtcbiAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICBjb25zdCBkb2MgPSBwYXJzZXI/LnBhcnNlRnJvbVN0cmluZyhodG1sU3RyaW5nLCAndGV4dC9odG1sJyk7XG4gIHJldHVybiBkb2M/LmJvZHk/LnRleHRDb250ZW50IHx8ICcnO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRW1wdHlPYmplY3QgPSAob2JqKSA9PiB7XG4gIHJldHVybiBvYmogJiYgT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDAgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBPYmplY3Q7XG59O1xuXG5leHBvcnQgY29uc3QgaXNFbXB0eVN0cmluZyA9IChzdHIpID0+IHtcbiAgcmV0dXJuIHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnICYmIHN0ci50cmltKCkgPT09ICcnO1xufTtcbiJdfQ==