@datagrok-libraries/statistics 0.1.5 → 0.1.6
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/package.json +34 -30
- package/src/multiple-tests.d.ts.map +1 -1
- package/src/multiple-tests.js +4 -8
- package/src/tests.d.ts +2 -1
- package/src/tests.d.ts.map +1 -1
- package/src/tests.js +1 -1
package/package.json
CHANGED
|
@@ -1,32 +1,36 @@
|
|
|
1
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
|
-
|
|
2
|
+
"name": "@datagrok-libraries/statistics",
|
|
3
|
+
"publishConfig": {
|
|
4
|
+
"access": "public"
|
|
5
|
+
},
|
|
6
|
+
"friendlyName": "statistics",
|
|
7
|
+
"version": "0.1.6",
|
|
8
|
+
"description": "",
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"datagrok-api": ">0.95.4",
|
|
11
|
+
"@datagrok-libraries/utils": ">=0.0.22",
|
|
12
|
+
"cash-dom": "latest",
|
|
13
|
+
"dayjs": "latest",
|
|
14
|
+
"jstat": "latest"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"ts-loader": "^9.2.6",
|
|
18
|
+
"typescript": "^4.2.3",
|
|
19
|
+
"eslint": "latest",
|
|
20
|
+
"eslint-config-google": "latest",
|
|
21
|
+
"@typescript-eslint/eslint-plugin": "latest",
|
|
22
|
+
"@typescript-eslint/parser": "latest"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"link": "npm link",
|
|
26
|
+
"link-api": "npm link datagrok-api",
|
|
27
|
+
"link-utils": "npm link @datagrok-libraries/utils",
|
|
28
|
+
"link-all": "npm link datagrok-api @datagrok-libraries/utils",
|
|
29
|
+
"debug-statistics": "grok publish --rebuild",
|
|
30
|
+
"release-statistics": "grok publish --rebuild --release",
|
|
31
|
+
"build-statistics": "tsc",
|
|
32
|
+
"build": "tsc",
|
|
33
|
+
"lint": "eslint src --ext .ts",
|
|
34
|
+
"lint-fix": "eslint src --ext .ts --fix"
|
|
35
|
+
}
|
|
32
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiple-tests.d.ts","sourceRoot":"","sources":["multiple-tests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"multiple-tests.d.ts","sourceRoot":"","sources":["multiple-tests.ts"],"names":[],"mappings":"AAoIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,EACnB,KAAK,GAAE,MAAa,EACpB,MAAM,GAAE,MAAW,EACnB,QAAQ,GAAE,OAAe,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAyD3D"}
|
package/src/multiple-tests.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ArrayUtils } from '@datagrok-libraries/utils/src/array-utils';
|
|
1
2
|
/** @type {*} A dictionary of basic binary operations. */
|
|
2
3
|
const _operations = {
|
|
3
4
|
'+': (a, b) => (a + b),
|
|
@@ -14,13 +15,8 @@ const _operations = {
|
|
|
14
15
|
* @return {Int32Array} Array of indices that sort values along the first axis.
|
|
15
16
|
*/
|
|
16
17
|
function _argsort(values) {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
.map((v, i) => [v, i]) // Decorate with index
|
|
20
|
-
.sort((a, b) => (a[0] == b[0] ? 0 : (a[0] > b[0] ? 1 : -1)))
|
|
21
|
-
.map((v, _) => v[1]); // Undecorate
|
|
22
|
-
const forder = argsort(v);
|
|
23
|
-
return Int32Array.from(forder);
|
|
18
|
+
const array = Array.from(values);
|
|
19
|
+
return Int32Array.from(ArrayUtils.argSort(array));
|
|
24
20
|
}
|
|
25
21
|
/**
|
|
26
22
|
* Take elements from an array.
|
|
@@ -203,4 +199,4 @@ export function fdrcorrection(pvals, alpha = 0.05, method = 'n', isSorted = fals
|
|
|
203
199
|
}
|
|
204
200
|
return [reject, pvalsCorrected];
|
|
205
201
|
}
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtdGVzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtdWx0aXBsZS10ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsTUFBTSxXQUFXLEdBQStCO0lBQzlDLEdBQUcsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxHQUFHLEVBQUUsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsR0FBRyxFQUFFLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLEdBQUcsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxLQUFLLEVBQUUsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hELEtBQUssRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDakQsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsU0FBUyxRQUFRLENBQUMsTUFBb0I7SUFDcEMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU3QixNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQWEsRUFBRSxFQUFFLENBQUMsR0FBRztTQUNuQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMs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RUFBRSxlQUFlLENBQUMsQ0FBQztLQUNuQztJQUNELE9BQU8sQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAdHlwZSB7Kn0gQSBkaWN0aW9uYXJ5IG9mIGJhc2ljIGJpbmFyeSBvcGVyYXRpb25zLiAqL1xuY29uc3QgX29wZXJhdGlvbnM6IHtbbmFtZTogc3RyaW5nXTogRnVuY3Rpb259ID0ge1xuICAnKyc6IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gKGEgKyBiKSxcbiAgJy0nOiAoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IChhIC0gYiksXG4gICcqJzogKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiAoYSAqIGIpLFxuICAnLyc6IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gKGEgLyBiKSxcbiAgJ21pbic6IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gKGEgPCBiID8gYSA6IGIpLFxuICAnbWF4JzogKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiAoYSA+IGIgPyBhIDogYiksXG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGluZGljZXMgdGhhdCB3b3VsZCBzb3J0IGFuIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7RmxvYXQzMkFycmF5fSB2YWx1ZXMgQXJyYXkgdG8gc29ydC5cbiAqIEByZXR1cm4ge0ludDMyQXJyYXl9IEFycmF5IG9mIGluZGljZXMgdGhhdCBzb3J0IHZhbHVlcyBhbG9uZyB0aGUgZmlyc3QgYXhpcy5cbiAqL1xuZnVuY3Rpb24gX2FyZ3NvcnQodmFsdWVzOiBGbG9hdDMyQXJyYXkpOiBJbnQzMkFycmF5IHtcbiAgY29uc3QgdiA9IEFycmF5LmZyb20odmFsdWVzKTtcblxuICBjb25zdCBhcmdzb3J0ID0gKGFycjogbnVtYmVyW10pID0+IGFyclxuICAgIC5tYXAoKHYsIGkpID0+IFt2LCBpXSkgLy8gRGVjb3JhdGUgd2l0aCBpbmRleFxuICAgIC5zb3J0KChhLCBiKSA9PiAoYVswXSA9PSBiWzBdID8gMCA6IChhWzBdID4gYlswXSA/IDEgOiAtMSkpKVxuICAgIC5tYXAoKHYsIF8pID0+IHZbMV0pOyAvLyBVbmRlY29yYXRlXG5cbiAgY29uc3QgZm9yZGVyID0gYXJnc29ydCh2KTtcblxuICByZXR1cm4gSW50MzJBcnJheS5mcm9tKGZvcmRlcik7XG59XG5cblxuLyoqXG4gKiBUYWtlIGVsZW1lbnRzIGZyb20gYW4gYXJyYXkuXG4gKlxuICogQHBhcmFtIHtJbnQzMkFycmF5fSBvcmRlciBUaGUgaW5kaWNlcyBvZiB0aGUgdmFsdWVzIHRvIGV4dHJhY3QuXG4gKiBAcGFyYW0ge0Zsb2F0MzJBcnJheX0gdmFsdWVzIFRoZSBzb3VyY2UgYXJyYXkuXG4gKiBAcmV0dXJuIHtGbG9hdDMyQXJyYXl9IFRoZSByZXR1cm5lZCBhcnJheSBoYXMgdGhlIHNhbWUgdHlwZSBhcyB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIF90YWtlKG9yZGVyOiBJbnQzMkFycmF5LCB2YWx1ZXM6IEZsb2F0MzJBcnJheSk6IEZsb2F0MzJBcnJheSB7XG4gIC8vIFRPRE86IEltcGxlbWVudCBhIGdlbmVyYWwgZnVuY3Rpb24gZm9yIFR5cGVkQXJyYXkuXG4gIHJldHVybiBGbG9hdDMyQXJyYXkuZnJvbSh2YWx1ZXMpLm1hcCgoXywgaSkgPT4gdmFsdWVzW29yZGVyW2ldXSk7XG59XG5cbi8qKlxuICogQXNzaWduIGVsZW1lbnRzIG9mIGFuIGFycmF5IGZvbGxvd2luZyB0aGUgb3JkZXIgZ2l2ZW4gKGZsb2F0aW5nLXBvaW50IHZlcnNpb24pLlxuICpcbiAqIEBwYXJhbSB7RmxvYXQzMkFycmF5fSB2YWx1ZXMgVGhlIHNvdXJjZSBhcnJheS5cbiAqIEBwYXJhbSB7SW50MzJBcnJheX0gb3JkZXIgVGhlIG9yZGVyIGdpdmVuLlxuICogQHJldHVybiB7RmxvYXQzMkFycmF5fSBUaGUgcmV0dXJuZWQgYXJyYXkgaGFzIHRoZSBzYW1lIHR5cGUgYXMgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBfZ2l2ZSh2YWx1ZXM6IEZsb2F0MzJBcnJheSwgb3JkZXI6IEludDMyQXJyYXkpOiBGbG9hdDMyQXJyYXkge1xuICBjb25zdCB2ID0gRmxvYXQzMkFycmF5LmZyb20odmFsdWVzKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IG9yZGVyLmxlbmd0aDsgKytpKSB7XG4gICAgdltvcmRlcltpXV0gPSB2YWx1ZXNbaV07XG4gIH1cbiAgcmV0dXJuIHY7XG59XG5cbi8qKlxuICogQXNzaWduIGVsZW1lbnRzIG9mIGFuIGFycmF5IGZvbGxvd2luZyB0aGUgb3JkZXIgZ2l2ZW4gKGJvb2xlYW4gdmVyc2lvbikuXG4gKlxuICogQHBhcmFtIHtBcnJheTxib29sZWFuPn0gdmFsdWVzIFRoZSBzb3VyY2UgYXJyYXkuXG4gKiBAcGFyYW0ge0ludDMyQXJyYXl9IG9yZGVyIFRoZSBvcmRlciBnaXZlbi5cbiAqIEByZXR1cm4ge0FycmF5PGJvb2xlYW4+fSBUaGUgcmV0dXJuZWQgYXJyYXkgaGFzIHRoZSBzYW1lIHR5cGUgYXMgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBfZ2l2ZWIodmFsdWVzOiBBcnJheTxib29sZWFuPiwgb3JkZXI6IEludDMyQXJyYXkpOiBBcnJheTxib29sZWFuPiB7XG4gIGNvbnN0IHYgPSBBcnJheS5mcm9tKHZhbHVlcyk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcmRlci5sZW5ndGg7ICsraSkge1xuICAgIHZbb3JkZXJbaV1dID0gdmFsdWVzW2ldO1xuICB9XG4gIHJldHVybiB2O1xufVxuXG4vKipcbiAqIE5vIGZyaWxscyBlbXBpcmljYWwgY2RmIHVzZWQgaW4gZmRyY29ycmVjdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0Zsb2F0MzJBcnJheX0geCBUaGUgc291cmNlIGFycmF5IHRvIHRha2UgYSBkaW1lbnNpb24gZnJvbS5cbiAqIEByZXR1cm4ge0Zsb2F0MzJBcnJheX0gRW1waXJpY2FsIGNkZi5cbiAqL1xuZnVuY3Rpb24gX2VjZGYoeDogRmxvYXQzMkFycmF5KTogRmxvYXQzMkFycmF5IHtcbiAgY29uc3Qgbm9icyA9IHgubGVuZ3RoO1xuICByZXR1cm4gRmxvYXQzMkFycmF5LmZyb20oeCkubWFwKChfLCBpKSA9PiAoaSsxKS9ub2JzKTtcbn1cblxuLyoqXG4gKiBjbSA9IG5wLnN1bSgxLi9ucC5hcmFuZ2UoMSwgbGVuKHB2YWxzX3NvcnRlZCkrMSkpXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBnaXZlbi5cbiAqIEByZXR1cm4ge251bWJlcn0gY20gdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIF9jbShuOiBudW1iZXIpOiBudW1iZXIge1xuICBsZXQgc3VtID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICBzdW0gKz0gMSAvIChpKzEpO1xuICB9XG4gIHJldHVybiBzdW07XG59XG5cbi8qKlxuICogQmFzaWMgb3BlcmF0aW9uIHVuZGVyIGEgdmVjdG9yIGFuZCBhIHNjYWxhci5cbiAqXG4gKiBAcGFyYW0ge0Zsb2F0MzJBcnJheX0gdmFsdWVzIFRoZSBzb3VyY2UgdmVjdG9yLlxuICogQHBhcmFtIHtudW1iZXJ9IHNjYWxlIFRoZSBzY2FsYXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gW29wPScqJ10gVGhlIG9wZXJhdGlvbiB0byBwZXJmb3JtLlxuICogQHJldHVybiB7RmxvYXQzMkFycmF5fSBOZXcgdmVjdG9yIGFzIGEgcmVzdWx0IG9mIHRoZSBvcGVyYXRpb24uXG4gKi9cbmZ1bmN0aW9uIF9mYWN0b3IodmFsdWVzOiBGbG9hdDMyQXJyYXksIHNjYWxlOiBudW1iZXIsIG9wID0gJyonKTogRmxvYXQzMkFycmF5IHtcbiAgcmV0dXJuIEZsb2F0MzJBcnJheS5mcm9tKHZhbHVlcykubWFwKCh2LCBfKSA9PiBfb3BlcmF0aW9uc1tvcF0odiwgc2NhbGUpKTtcbn1cblxuLyoqXG4gKiBCYXNpYyBvcGVyYXRpb24gdW5kZXIgdHdvIHZlY3RvcnMuXG4gKlxuICogQHBhcmFtIHtGbG9hdDMyQXJyYXl9IHZhbHVlcyBUaGUgZmlyc3QgdmVjdG9yLlxuICogQHBhcmFtIHtGbG9hdDMyQXJyYXl9IHNjYWxlIFRoZSBzZWNvbmQgdmVjdG9yLlxuICogQHBhcmFtIHtzdHJpbmd9IFtvcD0nKiddIFRoZSBvcGVyYXRpb24gdG8gcGVyZm9ybS5cbiAqIEByZXR1cm4ge0Zsb2F0MzJBcnJheX0gTmV3IHZlY3RvciBhcyBhIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uLlxuICovXG5mdW5jdGlvbiBfdmZhY3Rvcih2YWx1ZXM6IEZsb2F0MzJBcnJheSwgc2NhbGU6IEZsb2F0MzJBcnJheSwgb3AgPSAnKicpOiBGbG9hdDMyQXJyYXkge1xuICByZXR1cm4gRmxvYXQzMkFycmF5LmZyb20odmFsdWVzKS5tYXAoKHYsIGkpID0+IF9vcGVyYXRpb25zW29wXSh2LCBzY2FsZVtpXSkpO1xufVxuXG4vKipcbiAqIEFjY3VtdWxhdGUgdGhlIHJlc3VsdCBvZiBhcHBseWluZyB0aGUgbWluIG9wZXJhdG9yIHRvIGFsbCBlbGVtZW50cy5cbiAqXG4gKiBAcGFyYW0ge0Zsb2F0MzJBcnJheX0gdmFsdWVzIFRoZSBhcnJheSB0byBhY3Qgb24uXG4gKiBAcmV0dXJuIHtGbG9hdDMyQXJyYXl9IFRoZSBhY2N1bXVsYXRlZCB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIF9taW5pbXVtQWNjdW11bGF0ZSh2YWx1ZXM6IEZsb2F0MzJBcnJheSk6IEZsb2F0MzJBcnJheSB7XG4gIGNvbnN0IG5JdGVtcyA9IHZhbHVlcy5sZW5ndGg7XG4gIGNvbnN0IHIgPSBGbG9hdDMyQXJyYXkuZnJvbSh2YWx1ZXMpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbkl0ZW1zOyArK2kpIHtcbiAgICByW2ldID0gdmFsdWVzLnNsaWNlKDAsIGkrMSkucmVkdWNlKChhLCBiLCBfLCBfXykgPT4gKF9vcGVyYXRpb25zWydtaW4nXShhLCBiKSkpO1xuICB9XG4gIHJldHVybiByO1xufVxuXG4vKipcbiAqIHB2YWx1ZSBjb3JyZWN0aW9uIGZvciBmYWxzZSBkaXNjb3ZlcnkgcmF0ZVxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7RmxvYXQzMkFycmF5fSBwdmFscyBTZXQgb2YgcC12YWx1ZXMgb2YgdGhlIGluZGl2aWR1YWwgdGVzdHMuXG4gKiBAcGFyYW0ge251bWJlcn0gW2FscGhhPTAuMDVdIEZhbWlseS13aXNlIGVycm9yIHJhdGUuIERlZmF1bHRzIHRvIDAuMDUuXG4gKiBAcGFyYW0ge3N0cmluZ30gW21ldGhvZD0nbiddIHsnaScsICdpbmRlcCcsICdwJywgJ3Bvc2NvcnInLCAnbicsICduZWdjb3JyJ30sIG9wdGlvbmFsXG4gKiBXaGljaCBtZXRob2QgdG8gdXNlIGZvciBGRFIgY29ycmVjdGlvbi5cbiAqIGBgeydpJywgJ2luZGVwJywgJ3AnLCAncG9zY29ycid9YGAgYWxsIHJlZmVyIHRvIGBgZmRyX2JoYGBcbiAqIChCZW5qYW1pbmkvSG9jaGJlcmcgZm9yIGluZGVwZW5kZW50IG9yIHBvc2l0aXZlbHlcbiAqIGNvcnJlbGF0ZWQgdGVzdHMpLiBgYHsnbicsICduZWdjb3JyJ31gYCBib3RoIHJlZmVyIHRvIGBgZmRyX2J5YGBcbiAqIChCZW5qYW1pbmkvWWVrdXRpZWxpIGZvciBnZW5lcmFsIG9yIG5lZ2F0aXZlbHkgY29ycmVsYXRlZCB0ZXN0cykuXG4gKiBEZWZhdWx0cyB0byAnbicuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc1NvcnRlZD1mYWxzZV0gSWYgRmFsc2UgKGRlZmF1bHQpLCB0aGUgcF92YWx1ZXMgd2lsbCBiZSBzb3J0ZWQsIGJ1dCB0aGUgY29ycmVjdGVkXG4gKiBwdmFsdWVzIGFyZSBpbiB0aGUgb3JpZ2luYWwgb3JkZXIuIElmIFRydWUsIHRoZW4gaXQgYXNzdW1lZCB0aGF0IHRoZVxuICogcHZhbHVlcyBhcmUgYWxyZWFkeSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyLlxuICogQHJldHVybiB7W0FycmF5PGJvb2xlYW4+LCBGbG9hdDMyQXJyYXldfSByZWplY3RlZCA6IG5kYXJyYXksIGJvb2xcbiAqIFRydWUgaWYgYSBoeXBvdGhlc2lzIGlzIHJlamVjdGVkLCBGYWxzZSBpZiBub3RcbiAqIHB2YWx1ZS1jb3JyZWN0ZWQgOiBuZGFycmF5XG4gKiBwdmFsdWVzIGFkanVzdGVkIGZvciBtdWx0aXBsZSBoeXBvdGhlc2lzIHRlc3RpbmcgdG8gbGltaXQgRkRSXG4gKiBAc2VlXG4gKiBJZiB0aGVyZSBpcyBwcmlvciBpbmZvcm1hdGlvbiBvbiB0aGUgZnJhY3Rpb24gb2YgdHJ1ZSBoeXBvdGhlc2lzLCB0aGVuIGFscGhhXG4gKiBzaG91bGQgYmUgc2V0IHRvIGBgYWxwaGEgKiBtL21fMGBgIHdoZXJlIG0gaXMgdGhlIG51bWJlciBvZiB0ZXN0cyxcbiAqIGdpdmVuIGJ5IHRoZSBwLXZhbHVlcywgYW5kIG1fMCBpcyBhbiBlc3RpbWF0ZSBvZiB0aGUgdHJ1ZSBoeXBvdGhlc2lzLlxuICogKHNlZSBCZW5qYW1pbmksIEtyaWVnZXIgYW5kIFlla3V0ZWxpKVxuICpcbiAqIFRoZSB0d28tc3RlcCBtZXRob2Qgb2YgQmVuamFtaW5pLCBLcmllZ2VyIGFuZCBZZWt1dGllbCB0aGF0IGVzdGltYXRlcyB0aGUgbnVtYmVyXG4gKiBvZiBmYWxzZSBoeXBvdGhlc2VzIHdpbGwgYmUgYXZhaWxhYmxlIChzb29uKS5cbiAqXG4gKiBCb3RoIG1ldGhvZHMgZXhwb3NlZCB2aWEgdGhpcyBmdW5jdGlvbiAoQmVuamFtaW5pL0hvY2hiZXJnLCBCZW5qYW1pbmkvWWVrdXRpZWxpKVxuICogYXJlIGFsc28gYXZhaWxhYmxlIGluIHRoZSBmdW5jdGlvbiBgYG11bHRpcGxldGVzdHNgYCwgYXMgYGBtZXRob2Q9XCJmZHJfYmhcImBgIGFuZFxuICogYGBtZXRob2Q9XCJmZHJfYnlcImBgLCByZXNwZWN0aXZlbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmZHJjb3JyZWN0aW9uKFxuICBwdmFsczogRmxvYXQzMkFycmF5LFxuICBhbHBoYTogbnVtYmVyID0gMC4wNSxcbiAgbWV0aG9kOiBzdHJpbmcgPSduJyxcbiAgaXNTb3J0ZWQ6IGJvb2xlYW4gPSBmYWxzZSk6IFtBcnJheTxib29sZWFuPiwgRmxvYXQzMkFycmF5XVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGJyYWNlLXN0eWxlXG57XG4gIGNvbnN0IG5JdGVtcyA9IHB2YWxzLmxlbmd0aDtcbiAgbGV0IHB2YWxzU29ydGVkOiBGbG9hdDMyQXJyYXk7XG4gIGxldCBwdmFsc1NvcnRpbmQ6IEludDMyQXJyYXk7XG4gIGxldCBjbSA9IDA7XG5cbiAgaWYgKCFpc1NvcnRlZCkge1xuICAgIHB2YWxzU29ydGluZCA9IF9hcmdzb3J0KHB2YWxzKTtcbiAgICBwdmFsc1NvcnRlZCA9IF90YWtlKHB2YWxzU29ydGluZCwgcHZhbHMpO1xuICB9IGVsc2Uge1xuICAgIHB2YWxzU29ydGluZCA9IG5ldyBJbnQzMkFycmF5KG5JdGVtcykuZmlsbCgwKS5tYXAoKF8sIGkpID0+IChpKSk7XG4gICAgcHZhbHNTb3J0ZWQgPSBwdmFsczsgLy8gYWxpYXNcbiAgfVxuXG4gIGxldCBlY2RmZmFjdG9yID0gX2VjZGYocHZhbHNTb3J0ZWQpO1xuXG4gIGlmIChbJ2knLCAnaW5kZXAnLCAncCcsICdwb3Njb3JyJ10uaW5jbHVkZXMobWV0aG9kKSkge1xuICAgIDtcbiAgfSBlbHNlIGlmIChbJ24nLCAnbmVnY29yciddLmluY2x1ZGVzKG1ldGhvZCkpIHtcbiAgICBjbSA9IF9jbShuSXRlbXMpO1xuICAgIGVjZGZmYWN0b3IgPSBfZmFjdG9yKGVjZGZmYWN0b3IsIGNtLCAnLycpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcignb25seSBpbmRlcCBhbmQgbmVnY29yciBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgY29uc3QgcmVqZWN0OiBib29sZWFuW10gPSBuZXcgQXJyYXkobkl0ZW1zKS5maWxsKGZhbHNlKTtcbiAgbGV0IHJlamVjdG1heCA9IC0xO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbkl0ZW1zOyArK2kpIHtcbiAgICBpZiAocHZhbHNTb3J0ZWRbaV0gPD0gZWNkZmZhY3RvcltpXSphbHBoYSkge1xuICAgICAgcmVqZWN0bWF4ID0gaTtcbiAgICB9XG4gIH1cblxuICBpZiAocmVqZWN0bWF4ID49IDApIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlamVjdG1heDsgKytpKSB7XG4gICAgICByZWplY3RbaV0gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGxldCBwdmFsc0NvcnJlY3RlZCA9IF92ZmFjdG9yKHB2YWxzU29ydGVkLCBlY2RmZmFjdG9yLCAnLycpO1xuICBwdmFsc0NvcnJlY3RlZCA9IF9taW5pbXVtQWNjdW11bGF0ZShwdmFsc0NvcnJlY3RlZC5yZXZlcnNlKCkpLnJldmVyc2UoKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IG5JdGVtczsgKytpKSB7XG4gICAgaWYgKHB2YWxzQ29ycmVjdGVkW2ldID4gMSkge1xuICAgICAgcHZhbHNDb3JyZWN0ZWRbaV0gPSAxO1xuICAgIH1cbiAgfVxuXG4gIGlmICghaXNTb3J0ZWQpIHtcbiAgICBjb25zdCBwdmFsc0NvcnJlY3RlZF8gPSBfZ2l2ZShwdmFsc0NvcnJlY3RlZCwgcHZhbHNTb3J0aW5kKTtcbiAgICBjb25zdCByZWplY3RfID0gX2dpdmViKHJlamVjdCwgcHZhbHNTb3J0aW5kKTtcbiAgICByZXR1cm4gW3JlamVjdF8sIHB2YWxzQ29ycmVjdGVkX107XG4gIH1cbiAgcmV0dXJuIFtyZWplY3QsIHB2YWxzQ29ycmVjdGVkXTtcbn1cbiJdfQ==
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtdGVzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtdWx0aXBsZS10ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFckUseURBQXlEO0FBQ3pELE1BQU0sV0FBVyxHQUErQjtJQUM5QyxHQUFHLEVBQUUsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsR0FBRyxFQUFFLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLEdBQUcsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxHQUFHLEVBQUUsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsS0FBSyxFQUFFLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRCxLQUFLLEVBQUUsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2pELENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILFNBQVMsUUFBUSxDQUFDLE1BQW9CO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FB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USxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUQsY0FBYyxHQUFHLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRXhFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDL0IsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkI7S0FDRjtJQUVELElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDYixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztLQUNuQztJQUNELE9BQU8sQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXJyYXlVdGlsc30gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvYXJyYXktdXRpbHMnO1xuXG4vKiogQHR5cGUgeyp9IEEgZGljdGlvbmFyeSBvZiBiYXNpYyBiaW5hcnkgb3BlcmF0aW9ucy4gKi9cbmNvbnN0IF9vcGVyYXRpb25zOiB7W25hbWU6IHN0cmluZ106IEZ1bmN0aW9ufSA9IHtcbiAgJysnOiAoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IChhICsgYiksXG4gICctJzogKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiAoYSAtIGIpLFxuICAnKic6IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gKGEgKiBiKSxcbiAgJy8nOiAoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IChhIC8gYiksXG4gICdtaW4nOiAoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IChhIDwgYiA/IGEgOiBiKSxcbiAgJ21heCc6IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gKGEgPiBiID8gYSA6IGIpLFxufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBpbmRpY2VzIHRoYXQgd291bGQgc29ydCBhbiBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge0Zsb2F0MzJBcnJheX0gdmFsdWVzIEFycmF5IHRvIHNvcnQuXG4gKiBAcmV0dXJuIHtJbnQzMkFycmF5fSBBcnJheSBvZiBpbmRpY2VzIHRoYXQgc29ydCB2YWx1ZXMgYWxvbmcgdGhlIGZpcnN0IGF4aXMuXG4gKi9cbmZ1bmN0aW9uIF9hcmdzb3J0KHZhbHVlczogRmxvYXQzMkFycmF5KTogSW50MzJBcnJheSB7XG4gIGNvbnN0IGFycmF5ID0gQXJyYXkuZnJvbSh2YWx1ZXMpO1xuICByZXR1cm4gSW50MzJBcnJheS5mcm9tKEFycmF5VXRpbHMuYXJnU29ydChhcnJheSkpO1xufVxuXG4vKipcbiAqIFRha2UgZWxlbWVudHMgZnJvbSBhbiBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge0ludDMyQXJyYXl9IG9yZGVyIFRoZSBpbmRpY2VzIG9mIHRoZSB2YWx1ZXMgdG8gZXh0cmFjdC5cbiAqIEBwYXJhbSB7RmxvYXQzMkFycmF5fSB2YWx1ZXMgVGhlIHNvdXJjZSBhcnJheS5cbiAqIEByZXR1cm4ge0Zsb2F0MzJBcnJheX0gVGhlIHJldHVybmVkIGFycmF5IGhhcyB0aGUgc2FtZSB0eXBlIGFzIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gX3Rha2Uob3JkZXI6IEludDMyQXJyYXksIHZhbHVlczogRmxvYXQzMkFycmF5KTogRmxvYXQzMkFycmF5IHtcbiAgLy8gVE9ETzogSW1wbGVtZW50IGEgZ2VuZXJhbCBmdW5jdGlvbiBmb3IgVHlwZWRBcnJheS5cbiAgcmV0dXJuIEZsb2F0MzJBcnJheS5mcm9tKHZhbHVlcykubWFwKChfLCBpKSA9PiB2YWx1ZXNbb3JkZXJbaV1dKTtcbn1cblxuLyoqXG4gKiBBc3NpZ24gZWxlbWVudHMgb2YgYW4gYXJyYXkgZm9sbG93aW5nIHRoZSBvcmRlciBnaXZlbiAoZmxvYXRpbmctcG9pbnQgdmVyc2lvbikuXG4gKlxuICogQHBhcmFtIHtGbG9hdDMyQXJyYXl9IHZhbHVlcyBUaGUgc291cmNlIGFycmF5LlxuICogQHBhcmFtIHtJbnQzMkFycmF5fSBvcmRlciBUaGUgb3JkZXIgZ2l2ZW4uXG4gKiBAcmV0dXJuIHtGbG9hdDMyQXJyYXl9IFRoZSByZXR1cm5lZCBhcnJheSBoYXMgdGhlIHNhbWUgdHlwZSBhcyB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIF9naXZlKHZhbHVlczogRmxvYXQzMkFycmF5LCBvcmRlcjogSW50MzJBcnJheSk6IEZsb2F0MzJBcnJheSB7XG4gIGNvbnN0IHYgPSBGbG9hdDMyQXJyYXkuZnJvbSh2YWx1ZXMpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgb3JkZXIubGVuZ3RoOyArK2kpIHtcbiAgICB2W29yZGVyW2ldXSA9IHZhbHVlc1tpXTtcbiAgfVxuICByZXR1cm4gdjtcbn1cblxuLyoqXG4gKiBBc3NpZ24gZWxlbWVudHMgb2YgYW4gYXJyYXkgZm9sbG93aW5nIHRoZSBvcmRlciBnaXZlbiAoYm9vbGVhbiB2ZXJzaW9uKS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PGJvb2xlYW4+fSB2YWx1ZXMgVGhlIHNvdXJjZSBhcnJheS5cbiAqIEBwYXJhbSB7SW50MzJBcnJheX0gb3JkZXIgVGhlIG9yZGVyIGdpdmVuLlxuICogQHJldHVybiB7QXJyYXk8Ym9vbGVhbj59IFRoZSByZXR1cm5lZCBhcnJheSBoYXMgdGhlIHNhbWUgdHlwZSBhcyB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIF9naXZlYih2YWx1ZXM6IEFycmF5PGJvb2xlYW4+LCBvcmRlcjogSW50MzJBcnJheSk6IEFycmF5PGJvb2xlYW4+IHtcbiAgY29uc3QgdiA9IEFycmF5LmZyb20odmFsdWVzKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IG9yZGVyLmxlbmd0aDsgKytpKSB7XG4gICAgdltvcmRlcltpXV0gPSB2YWx1ZXNbaV07XG4gIH1cbiAgcmV0dXJuIHY7XG59XG5cbi8qKlxuICogTm8gZnJpbGxzIGVtcGlyaWNhbCBjZGYgdXNlZCBpbiBmZHJjb3JyZWN0aW9uLlxuICpcbiAqIEBwYXJhbSB7RmxvYXQzMkFycmF5fSB4IFRoZSBzb3VyY2UgYXJyYXkgdG8gdGFrZSBhIGRpbWVuc2lvbiBmcm9tLlxuICogQHJldHVybiB7RmxvYXQzMkFycmF5fSBFbXBpcmljYWwgY2RmLlxuICovXG5mdW5jdGlvbiBfZWNkZih4OiBGbG9hdDMyQXJyYXkpOiBGbG9hdDMyQXJyYXkge1xuICBjb25zdCBub2JzID0geC5sZW5ndGg7XG4gIHJldHVybiBGbG9hdDMyQXJyYXkuZnJvbSh4KS5tYXAoKF8sIGkpID0+IChpKzEpL25vYnMpO1xufVxuXG4vKipcbiAqIGNtID0gbnAuc3VtKDEuL25wLmFyYW5nZSgxLCBsZW4ocHZhbHNfc29ydGVkKSsxKSlcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIGdpdmVuLlxuICogQHJldHVybiB7bnVtYmVyfSBjbSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gX2NtKG46IG51bWJlcik6IG51bWJlciB7XG4gIGxldCBzdW0gPSAwO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgIHN1bSArPSAxIC8gKGkrMSk7XG4gIH1cbiAgcmV0dXJuIHN1bTtcbn1cblxuLyoqXG4gKiBCYXNpYyBvcGVyYXRpb24gdW5kZXIgYSB2ZWN0b3IgYW5kIGEgc2NhbGFyLlxuICpcbiAqIEBwYXJhbSB7RmxvYXQzMkFycmF5fSB2YWx1ZXMgVGhlIHNvdXJjZSB2ZWN0b3IuXG4gKiBAcGFyYW0ge251bWJlcn0gc2NhbGUgVGhlIHNjYWxhci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3A9JyonXSBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm0uXG4gKiBAcmV0dXJuIHtGbG9hdDMyQXJyYXl9IE5ldyB2ZWN0b3IgYXMgYSByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbi5cbiAqL1xuZnVuY3Rpb24gX2ZhY3Rvcih2YWx1ZXM6IEZsb2F0MzJBcnJheSwgc2NhbGU6IG51bWJlciwgb3AgPSAnKicpOiBGbG9hdDMyQXJyYXkge1xuICByZXR1cm4gRmxvYXQzMkFycmF5LmZyb20odmFsdWVzKS5tYXAoKHYsIF8pID0+IF9vcGVyYXRpb25zW29wXSh2LCBzY2FsZSkpO1xufVxuXG4vKipcbiAqIEJhc2ljIG9wZXJhdGlvbiB1bmRlciB0d28gdmVjdG9ycy5cbiAqXG4gKiBAcGFyYW0ge0Zsb2F0MzJBcnJheX0gdmFsdWVzIFRoZSBmaXJzdCB2ZWN0b3IuXG4gKiBAcGFyYW0ge0Zsb2F0MzJBcnJheX0gc2NhbGUgVGhlIHNlY29uZCB2ZWN0b3IuXG4gKiBAcGFyYW0ge3N0cmluZ30gW29wPScqJ10gVGhlIG9wZXJhdGlvbiB0byBwZXJmb3JtLlxuICogQHJldHVybiB7RmxvYXQzMkFycmF5fSBOZXcgdmVjdG9yIGFzIGEgcmVzdWx0IG9mIHRoZSBvcGVyYXRpb24uXG4gKi9cbmZ1bmN0aW9uIF92ZmFjdG9yKHZhbHVlczogRmxvYXQzMkFycmF5LCBzY2FsZTogRmxvYXQzMkFycmF5LCBvcCA9ICcqJyk6IEZsb2F0MzJBcnJheSB7XG4gIHJldHVybiBGbG9hdDMyQXJyYXkuZnJvbSh2YWx1ZXMpLm1hcCgodiwgaSkgPT4gX29wZXJhdGlvbnNbb3BdKHYsIHNjYWxlW2ldKSk7XG59XG5cbi8qKlxuICogQWNjdW11bGF0ZSB0aGUgcmVzdWx0IG9mIGFwcGx5aW5nIHRoZSBtaW4gb3BlcmF0b3IgdG8gYWxsIGVsZW1lbnRzLlxuICpcbiAqIEBwYXJhbSB7RmxvYXQzMkFycmF5fSB2YWx1ZXMgVGhlIGFycmF5IHRvIGFjdCBvbi5cbiAqIEByZXR1cm4ge0Zsb2F0MzJBcnJheX0gVGhlIGFjY3VtdWxhdGVkIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gX21pbmltdW1BY2N1bXVsYXRlKHZhbHVlczogRmxvYXQzMkFycmF5KTogRmxvYXQzMkFycmF5IHtcbiAgY29uc3Qgbkl0ZW1zID0gdmFsdWVzLmxlbmd0aDtcbiAgY29uc3QgciA9IEZsb2F0MzJBcnJheS5mcm9tKHZhbHVlcyk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSkge1xuICAgIHJbaV0gPSB2YWx1ZXMuc2xpY2UoMCwgaSsxKS5yZWR1Y2UoKGEsIGIsIF8sIF9fKSA9PiAoX29wZXJhdGlvbnNbJ21pbiddKGEsIGIpKSk7XG4gIH1cbiAgcmV0dXJuIHI7XG59XG5cbi8qKlxuICogcHZhbHVlIGNvcnJlY3Rpb24gZm9yIGZhbHNlIGRpc2NvdmVyeSByYXRlXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtGbG9hdDMyQXJyYXl9IHB2YWxzIFNldCBvZiBwLXZhbHVlcyBvZiB0aGUgaW5kaXZpZHVhbCB0ZXN0cy5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYWxwaGE9MC4wNV0gRmFtaWx5LXdpc2UgZXJyb3IgcmF0ZS4gRGVmYXVsdHMgdG8gMC4wNS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWV0aG9kPSduJ10geydpJywgJ2luZGVwJywgJ3AnLCAncG9zY29ycicsICduJywgJ25lZ2NvcnInfSwgb3B0aW9uYWxcbiAqIFdoaWNoIG1ldGhvZCB0byB1c2UgZm9yIEZEUiBjb3JyZWN0aW9uLlxuICogYGB7J2knLCAnaW5kZXAnLCAncCcsICdwb3Njb3JyJ31gYCBhbGwgcmVmZXIgdG8gYGBmZHJfYmhgYFxuICogKEJlbmphbWluaS9Ib2NoYmVyZyBmb3IgaW5kZXBlbmRlbnQgb3IgcG9zaXRpdmVseVxuICogY29ycmVsYXRlZCB0ZXN0cykuIGBgeyduJywgJ25lZ2NvcnInfWBgIGJvdGggcmVmZXIgdG8gYGBmZHJfYnlgYFxuICogKEJlbmphbWluaS9ZZWt1dGllbGkgZm9yIGdlbmVyYWwgb3IgbmVnYXRpdmVseSBjb3JyZWxhdGVkIHRlc3RzKS5cbiAqIERlZmF1bHRzIHRvICduJy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzU29ydGVkPWZhbHNlXSBJZiBGYWxzZSAoZGVmYXVsdCksIHRoZSBwX3ZhbHVlcyB3aWxsIGJlIHNvcnRlZCwgYnV0IHRoZSBjb3JyZWN0ZWRcbiAqIHB2YWx1ZXMgYXJlIGluIHRoZSBvcmlnaW5hbCBvcmRlci4gSWYgVHJ1ZSwgdGhlbiBpdCBhc3N1bWVkIHRoYXQgdGhlXG4gKiBwdmFsdWVzIGFyZSBhbHJlYWR5IHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuXG4gKiBAcmV0dXJuIHtbQXJyYXk8Ym9vbGVhbj4sIEZsb2F0MzJBcnJheV19IHJlamVjdGVkIDogbmRhcnJheSwgYm9vbFxuICogVHJ1ZSBpZiBhIGh5cG90aGVzaXMgaXMgcmVqZWN0ZWQsIEZhbHNlIGlmIG5vdFxuICogcHZhbHVlLWNvcnJlY3RlZCA6IG5kYXJyYXlcbiAqIHB2YWx1ZXMgYWRqdXN0ZWQgZm9yIG11bHRpcGxlIGh5cG90aGVzaXMgdGVzdGluZyB0byBsaW1pdCBGRFJcbiAqIEBzZWVcbiAqIElmIHRoZXJlIGlzIHByaW9yIGluZm9ybWF0aW9uIG9uIHRoZSBmcmFjdGlvbiBvZiB0cnVlIGh5cG90aGVzaXMsIHRoZW4gYWxwaGFcbiAqIHNob3VsZCBiZSBzZXQgdG8gYGBhbHBoYSAqIG0vbV8wYGAgd2hlcmUgbSBpcyB0aGUgbnVtYmVyIG9mIHRlc3RzLFxuICogZ2l2ZW4gYnkgdGhlIHAtdmFsdWVzLCBhbmQgbV8wIGlzIGFuIGVzdGltYXRlIG9mIHRoZSB0cnVlIGh5cG90aGVzaXMuXG4gKiAoc2VlIEJlbmphbWluaSwgS3JpZWdlciBhbmQgWWVrdXRlbGkpXG4gKlxuICogVGhlIHR3by1zdGVwIG1ldGhvZCBvZiBCZW5qYW1pbmksIEtyaWVnZXIgYW5kIFlla3V0aWVsIHRoYXQgZXN0aW1hdGVzIHRoZSBudW1iZXJcbiAqIG9mIGZhbHNlIGh5cG90aGVzZXMgd2lsbCBiZSBhdmFpbGFibGUgKHNvb24pLlxuICpcbiAqIEJvdGggbWV0aG9kcyBleHBvc2VkIHZpYSB0aGlzIGZ1bmN0aW9uIChCZW5qYW1pbmkvSG9jaGJlcmcsIEJlbmphbWluaS9ZZWt1dGllbGkpXG4gKiBhcmUgYWxzbyBhdmFpbGFibGUgaW4gdGhlIGZ1bmN0aW9uIGBgbXVsdGlwbGV0ZXN0c2BgLCBhcyBgYG1ldGhvZD1cImZkcl9iaFwiYGAgYW5kXG4gKiBgYG1ldGhvZD1cImZkcl9ieVwiYGAsIHJlc3BlY3RpdmVseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZkcmNvcnJlY3Rpb24oXG4gIHB2YWxzOiBGbG9hdDMyQXJyYXksXG4gIGFscGhhOiBudW1iZXIgPSAwLjA1LFxuICBtZXRob2Q6IHN0cmluZyA9J24nLFxuICBpc1NvcnRlZDogYm9vbGVhbiA9IGZhbHNlKTogW0FycmF5PGJvb2xlYW4+LCBGbG9hdDMyQXJyYXldXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgYnJhY2Utc3R5bGVcbntcbiAgY29uc3Qgbkl0ZW1zID0gcHZhbHMubGVuZ3RoO1xuICBsZXQgcHZhbHNTb3J0ZWQ6IEZsb2F0MzJBcnJheTtcbiAgbGV0IHB2YWxzU29ydGluZDogSW50MzJBcnJheTtcbiAgbGV0IGNtID0gMDtcblxuICBpZiAoIWlzU29ydGVkKSB7XG4gICAgcHZhbHNTb3J0aW5kID0gX2FyZ3NvcnQocHZhbHMpO1xuICAgIHB2YWxzU29ydGVkID0gX3Rha2UocHZhbHNTb3J0aW5kLCBwdmFscyk7XG4gIH0gZWxzZSB7XG4gICAgcHZhbHNTb3J0aW5kID0gbmV3IEludDMyQXJyYXkobkl0ZW1zKS5maWxsKDApLm1hcCgoXywgaSkgPT4gKGkpKTtcbiAgICBwdmFsc1NvcnRlZCA9IHB2YWxzOyAvLyBhbGlhc1xuICB9XG5cbiAgbGV0IGVjZGZmYWN0b3IgPSBfZWNkZihwdmFsc1NvcnRlZCk7XG5cbiAgaWYgKFsnaScsICdpbmRlcCcsICdwJywgJ3Bvc2NvcnInXS5pbmNsdWRlcyhtZXRob2QpKSB7XG4gICAgO1xuICB9IGVsc2UgaWYgKFsnbicsICduZWdjb3JyJ10uaW5jbHVkZXMobWV0aG9kKSkge1xuICAgIGNtID0gX2NtKG5JdGVtcyk7XG4gICAgZWNkZmZhY3RvciA9IF9mYWN0b3IoZWNkZmZhY3RvciwgY20sICcvJyk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdvbmx5IGluZGVwIGFuZCBuZWdjb3JyIGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBjb25zdCByZWplY3Q6IGJvb2xlYW5bXSA9IG5ldyBBcnJheShuSXRlbXMpLmZpbGwoZmFsc2UpO1xuICBsZXQgcmVqZWN0bWF4ID0gLTE7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSkge1xuICAgIGlmIChwdmFsc1NvcnRlZFtpXSA8PSBlY2RmZmFjdG9yW2ldKmFscGhhKSB7XG4gICAgICByZWplY3RtYXggPSBpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChyZWplY3RtYXggPj0gMCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVqZWN0bWF4OyArK2kpIHtcbiAgICAgIHJlamVjdFtpXSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbGV0IHB2YWxzQ29ycmVjdGVkID0gX3ZmYWN0b3IocHZhbHNTb3J0ZWQsIGVjZGZmYWN0b3IsICcvJyk7XG4gIHB2YWxzQ29ycmVjdGVkID0gX21pbmltdW1BY2N1bXVsYXRlKHB2YWxzQ29ycmVjdGVkLnJldmVyc2UoKSkucmV2ZXJzZSgpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbkl0ZW1zOyArK2kpIHtcbiAgICBpZiAocHZhbHNDb3JyZWN0ZWRbaV0gPiAxKSB7XG4gICAgICBwdmFsc0NvcnJlY3RlZFtpXSA9IDE7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFpc1NvcnRlZCkge1xuICAgIGNvbnN0IHB2YWxzQ29ycmVjdGVkXyA9IF9naXZlKHB2YWxzQ29ycmVjdGVkLCBwdmFsc1NvcnRpbmQpO1xuICAgIGNvbnN0IHJlamVjdF8gPSBfZ2l2ZWIocmVqZWN0LCBwdmFsc1NvcnRpbmQpO1xuICAgIHJldHVybiBbcmVqZWN0XywgcHZhbHNDb3JyZWN0ZWRfXTtcbiAgfVxuICByZXR1cm4gW3JlamVjdCwgcHZhbHNDb3JyZWN0ZWRdO1xufVxuIl19
|
package/src/tests.d.ts
CHANGED
|
@@ -5,7 +5,8 @@ declare type testStats = {
|
|
|
5
5
|
'p-value more': number;
|
|
6
6
|
'p-value less': number;
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
declare type Population = number[] | Float32Array | Int32Array;
|
|
9
|
+
export declare function tTest(arr1: Population, arr2: Population, devKnown?: boolean, devEqual?: boolean): testStats;
|
|
9
10
|
export declare function uTest(x: number[], y: number[], continuity?: boolean): testStats;
|
|
10
11
|
export {};
|
|
11
12
|
//# sourceMappingURL=tests.d.ts.map
|
package/src/tests.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["tests.ts"],"names":[],"mappings":"AAGA,aAAK,SAAS,GAAG;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,KAAK,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["tests.ts"],"names":[],"mappings":"AAGA,aAAK,SAAS,GAAG;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,aAAK,UAAU,GAAG,MAAM,EAAE,GAAG,YAAY,GAAG,UAAU,CAAC;AAEvD,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,UAAM,EAAE,QAAQ,UAAM,GAAG,SAAS,CA8CnG;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,UAAK,GAAG,SAAS,CA+B1E"}
|
package/src/tests.js
CHANGED
|
@@ -74,4 +74,4 @@ function _tieTerm(ranks) {
|
|
|
74
74
|
});
|
|
75
75
|
return jStat.sum(Object.values(ties));
|
|
76
76
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzQkFBc0I7QUFDdEIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFZL0IsTUFBTSxVQUFVLEtBQUssQ0FBQyxJQUFnQixFQUFFLElBQWdCLEVBQUUsUUFBUSxHQUFDLEtBQUssRUFBRSxRQUFRLEdBQUMsS0FBSztJQUN0RixNQUFNLEVBQUUsR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sRUFBRSxHQUFXLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsTUFBTSxFQUFFLEdBQVcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxNQUFNLEVBQUUsR0FBVyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUV2QixJQUFJLEdBQUcsQ0FBQztJQUNSLElBQUksR0FBRyxDQUFDO0lBQ1IsSUFBSSxFQUFFLENBQUM7SUFDUCxJQUFJLENBQUMsQ0FBQztJQUNOLElBQUksQ0FBQyxDQUFDO0lBQ04sSUFBSSxLQUFLLENBQUM7SUFDVixJQUFJLEtBQUssQ0FBQztJQUNWLElBQUksSUFBSSxDQUFDO0lBRVQsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNiLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNkLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ2QsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFN0UsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNsQixJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QzthQUFNO1lBQ0wsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVwRCxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVDO0tBQ0Y7U0FBTTtRQUNMLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2QsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDZCxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFFckMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUM7SUFDRCxPQUFPLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBQyxDQUFDO0FBQ3JHLENBQUM7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFDLENBQVcsRUFBRSxDQUFXLEVBQUUsVUFBVSxHQUFDLElBQUk7SUFDN0QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BCLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDcEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTdCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFN0IsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRTVCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFFbEIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdkUsSUFBSSxTQUFTLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUV2QixJQUFJLFVBQVUsRUFBRTtRQUNkLFNBQVMsSUFBSSxHQUFHLENBQUM7S0FDbEI7SUFFRCxNQUFNLENBQUMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBRXhCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFOUMsT0FBTyxFQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUMsQ0FBQztBQUNoRyxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBZTtJQUMvQixNQUFNLElBQUksR0FBNEIsRUFBRSxDQUFDO0lBRXpDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy9AdHMtaWdub3JlOiBubyB0eXBlc1xuaW1wb3J0ICogYXMgalN0YXQgZnJvbSAnanN0YXQnO1xuXG50eXBlIHRlc3RTdGF0cyA9IHtcbiAgJ3AtdmFsdWUnOiBudW1iZXIsXG4gICdNZWFuIGRpZmZlcmVuY2UnPzogbnVtYmVyLFxuICAnTWVkaWFuIGRpZmZlcmVuY2UnPzogbnVtYmVyLFxuICAncC12YWx1ZSBtb3JlJzogbnVtYmVyLFxuICAncC12YWx1ZSBsZXNzJzogbnVtYmVyLFxufTtcblxudHlwZSBQb3B1bGF0aW9uID0gbnVtYmVyW10gfCBGbG9hdDMyQXJyYXkgfCBJbnQzMkFycmF5O1xuXG5leHBvcnQgZnVuY3Rpb24gdFRlc3QoYXJyMTogUG9wdWxhdGlvbiwgYXJyMjogUG9wdWxhdGlvbiwgZGV2S25vd249ZmFsc2UsIGRldkVxdWFsPWZhbHNlKTogdGVzdFN0YXRzIHtcbiAgY29uc3QgbTE6IG51bWJlciA9IGpTdGF0Lm1lYW4oYXJyMSk7XG4gIGNvbnN0IG0yOiBudW1iZXIgPSBqU3RhdC5tZWFuKGFycjIpO1xuICBjb25zdCB2MTogbnVtYmVyID0galN0YXQudmFyaWFuY2UoYXJyMSk7XG4gIGNvbnN0IHYyOiBudW1iZXIgPSBqU3RhdC52YXJpYW5jZShhcnIyKTtcbiAgY29uc3QgbjEgPSBhcnIxLmxlbmd0aDtcbiAgY29uc3QgbjIgPSBhcnIyLmxlbmd0aDtcblxuICBsZXQgd3YxO1xuICBsZXQgd3YyO1xuICBsZXQgd3Y7XG4gIGxldCBaO1xuICBsZXQgSztcbiAgbGV0IHBNb3JlO1xuICBsZXQgcExlc3M7XG4gIGxldCBwVG90O1xuXG4gIGlmICghZGV2S25vd24pIHtcbiAgICBpZiAoIWRldkVxdWFsKSB7XG4gICAgICB3djEgPSB2MSAvIG4xO1xuICAgICAgd3YyID0gdjIgLyBuMjtcbiAgICAgIFogPSAobTEgLSBtMikgLyBNYXRoLnNxcnQod3YxICsgd3YyKTtcbiAgICAgIEsgPSBNYXRoLnBvdygod3YxICsgd3YyKSwgMikgLyAod3YxICogd3YxIC8gKG4xIC0gMSkgKyB3djIgKiB3djIgLyAobjIgLSAxKSk7XG5cbiAgICAgIHBMZXNzID0galN0YXQuc3R1ZGVudHQuY2RmKFosIEspO1xuICAgICAgcE1vcmUgPSAxIC0gcExlc3M7XG4gICAgICBwVG90ID0gMiAqIChwTGVzcyA8IHBNb3JlID8gcExlc3MgOiBwTW9yZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIEsgPSBuMSArIG4yIC0gMjtcbiAgICAgIHd2ID0gKHYxICogKG4xIC0gMSkgKyB2MiAqIChuMiAtIDEpKSAvIEs7XG4gICAgICBaID0gTWF0aC5zcXJ0KG4xICogbjIgLyAobjEgKyBuMikpICogKG0xIC0gbTIpIC8gd3Y7XG5cbiAgICAgIHBNb3JlID0gMSAtIGpTdGF0LnN0dWRlbnR0LmNkZihaLCBLKTtcbiAgICAgIHBMZXNzID0galN0YXQuc3R1ZGVudHQuY2RmKFosIEspO1xuICAgICAgcFRvdCA9IDIgKiAocExlc3MgPCBwTW9yZSA/IHBMZXNzIDogcE1vcmUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB3djEgPSB2MSAvIG4xO1xuICAgIHd2MiA9IHYyIC8gbjI7XG4gICAgWiA9IChtMSAtIG0yKSAvIE1hdGguc3FydCh3djEgKyB3djIpO1xuXG4gICAgcExlc3MgPSBqU3RhdC5ub3JtYWwucGRmKFosIDAsIDEpO1xuICAgIHBNb3JlID0gMSAtIHBMZXNzO1xuICAgIHBUb3QgPSAyICogKHBMZXNzIDwgcE1vcmUgPyBwTGVzcyA6IHBNb3JlKTtcbiAgfVxuICByZXR1cm4geydwLXZhbHVlJzogcFRvdCwgJ01lYW4gZGlmZmVyZW5jZSc6IG0xIC0gbTIsICdwLXZhbHVlIG1vcmUnOiBwTW9yZSwgJ3AtdmFsdWUgbGVzcyc6IHBMZXNzfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVUZXN0KHg6IG51bWJlcltdLCB5OiBudW1iZXJbXSwgY29udGludWl0eT10cnVlKTogdGVzdFN0YXRzIHtcbiAgY29uc3QgeHkgPSB4LmNvbmNhdCh5KTtcbiAgY29uc3QgbjEgPSB4Lmxlbmd0aDtcbiAgY29uc3QgbjIgPSB5Lmxlbmd0aDtcbiAgY29uc3QgbWVkMSA9IGpTdGF0Lm1lZGlhbih4KTtcbiAgY29uc3QgbWVkMiA9IGpTdGF0Lm1lZGlhbih5KTtcblxuICBjb25zdCByYW5rcyA9IGpTdGF0LnJhbmsoeHkpO1xuXG4gIGNvbnN0IFIxID0galN0YXQuc3VtKHJhbmtzLnNsaWNlKDAsIG4xKSk7XG4gIGNvbnN0IFUxID0gUjEgLSBuMSAqIChuMSArIDEpIC8gMjtcbiAgY29uc3QgVTIgPSBuMSAqIG4yIC0gVTE7XG4gIGNvbnN0IFUgPSBVMSA+IFUyID8gVTEgOiBVMjtcblxuICBjb25zdCBtdSA9IG4xICogbjIgLyAyO1xuICBjb25zdCBuID0gbjEgKyBuMjtcblxuICBjb25zdCB0aWVUZXJtID0gX3RpZVRlcm0ocmFua3MpO1xuICBjb25zdCBzID0gTWF0aC5zcXJ0KG4xICogbjIgLyAxMiAqICgobiArIDEpIC0gdGllVGVybSAvIChuKiAobiAtIDEpKSkpO1xuXG4gIGxldCBudW1lcmF0b3IgPSBVIC0gbXU7XG5cbiAgaWYgKGNvbnRpbnVpdHkpIHtcbiAgICBudW1lcmF0b3IgLT0gMC41O1xuICB9XG5cbiAgY29uc3QgeiA9IG51bWVyYXRvciAvIHM7XG5cbiAgY29uc3QgcCA9IDIgKiAoMSAtIGpTdGF0Lm5vcm1hbC5jZGYoeiwgMCwgMSkpO1xuXG4gIHJldHVybiB7J3AtdmFsdWUnOiBwLCAnTWVkaWFuIGRpZmZlcmVuY2UnOiBtZWQxIC0gbWVkMiwgJ3AtdmFsdWUgbW9yZSc6IHAsICdwLXZhbHVlIGxlc3MnOiBwfTtcbn1cblxuZnVuY3Rpb24gX3RpZVRlcm0ocmFua3M6IG51bWJlcltdKTogbnVtYmVyIHtcbiAgY29uc3QgdGllczoge1trZXk6IG51bWJlcl06IG51bWJlcn0gPSB7fTtcblxuICByYW5rcy5mb3JFYWNoKChudW0pID0+IHtcbiAgICB0aWVzW251bV0gPSAodGllc1tudW1dIHx8IDApICsgMTtcbiAgfSk7XG5cbiAgcmV0dXJuIGpTdGF0LnN1bShPYmplY3QudmFsdWVzKHRpZXMpKTtcbn1cbiJdfQ==
|