@dashkite/joy 0.3.16 → 0.4.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.
@@ -1,147 +1,147 @@
1
- var cat,
2
- dequeue,
3
- enqueue,
4
- fifth,
5
- fill,
6
- first,
7
- floor,
8
- fourth,
9
- insert,
10
- last,
11
- nth,
12
- pair,
13
- pluck,
14
- pop,
15
- push,
16
- random,
17
- range,
18
- remove,
19
- rest,
20
- round,
21
- second,
22
- shift,
23
- shuffle,
24
- slice,
25
- sort,
26
- splice,
27
- third,
28
- unshift,
29
- splice1 = [].splice;
30
- import { curry, flip, compose, partial, _, identity, unary, binary, ternary, detach } from "./function.js";
31
- import { equal } from "./value.js";
32
- nth = curry(function (i, ax) {
33
- return ax[i - 1];
1
+ var cat, compact, complement, dequeue, difference, dupes, enqueue, fifth, fill, first, floor, fourth, insert, intersection, last, nth, pair, peek, pluck, poke, pop, push, random, range, remove, rest, round, second, shift, shuffle, slice, sort, splice, third, union, unique, unshift, splice1 = [].splice;
2
+ import { curry, flip, compose, partial, _, identity, unary, binary, ternary, detach } from "./function";
3
+ import { equal } from "./value";
4
+ import * as Se from "./set";
5
+ nth = curry(function(i, ax) {
6
+ return ax[i - 1];
34
7
  });
35
8
  first = nth(1);
36
9
  second = nth(2);
37
10
  third = nth(3);
38
11
  fourth = nth(4);
39
12
  fifth = nth(5);
40
-
41
- last = function (arg) {
42
- var arg, last, rest;
43
- [...rest] = arg, [last] = splice1.call(rest, -1);
44
- return last;
13
+ last = function(arg) {
14
+ var arg, last, rest;
15
+ [...rest] = arg, [last] = splice1.call(rest, -1);
16
+ return last;
45
17
  };
46
-
47
- rest = function (_ref) {
48
- let [first, ...rest] = _ref;
49
- return rest;
50
- }; // Array mutators
51
-
52
-
53
- push = curry(function (ax, a) {
54
- ax.push(a);
55
- return ax;
18
+ rest = function([first, ...rest]) {
19
+ return rest;
20
+ };
21
+ // Array mutators
22
+ push = curry(function(a, ax) {
23
+ ax.push(a);
24
+ return ax;
56
25
  });
57
26
  pop = detach(Array.prototype.pop);
58
27
  shift = detach(Array.prototype.shift);
59
- unshift = curry(function (a, ax) {
60
- ax.unshift(a);
61
- return ax;
28
+ unshift = curry(function(a, ax) {
29
+ ax.unshift(a);
30
+ return ax;
62
31
  });
63
32
  enqueue = unshift;
64
- dequeue = pop; // true splice without weird insertion option
33
+ dequeue = pop;
34
+ // Add for completeness
35
+ peek = function(ax) {
36
+ return ax[ax.length - 1];
37
+ };
38
+ poke = function(a, ax) {
39
+ return ax[ax.length - 1] = a;
40
+ };
41
+ // true splice without weird insertion option
65
42
  // or compose-breaking return value
66
-
67
- splice = curry(function (i, n, ax) {
68
- ax.splice(i, n);
69
- return ax;
43
+ splice = curry(function(i, n, ax) {
44
+ ax.splice(i, n);
45
+ return ax;
70
46
  });
71
- insert = curry(function (i, a, ax) {
72
- ax.splice(i, 0, a);
73
- return ax;
47
+ insert = curry(function(i, a, ax) {
48
+ ax.splice(i, 0, a);
49
+ return ax;
74
50
  });
75
- remove = curry(function (a, ax) {
76
- var i;
77
-
78
- if ((i = ax.indexOf(a)) !== -1) {
79
- ax.splice(i, 1);
80
- }
81
-
82
- return ax;
51
+ remove = curry(function(a, ax) {
52
+ var i;
53
+ if ((i = ax.indexOf(a)) !== -1) {
54
+ ax.splice(i, 1);
55
+ }
56
+ return ax;
83
57
  });
84
58
  cat = detach(Array.prototype.concat);
85
- slice = curry(function (i, j, ax) {
86
- return ax.slice(i, j);
59
+ slice = curry(function(i, j, ax) {
60
+ return ax.slice(i, j);
87
61
  });
88
- fill = curry(function (a, ax) {
89
- return ax.fill(a);
62
+ fill = curry(function(a, ax) {
63
+ return ax.fill(a);
90
64
  });
91
- range = curry(function (start, finish) {
92
- return function () {
93
- var results = [];
94
-
95
- for (var k = start; start <= finish ? k <= finish : k >= finish; start <= finish ? k++ : k--) {
96
- results.push(k);
97
- }
98
-
99
- return results;
100
- }.apply(this);
65
+ range = curry(function(start, finish) {
66
+ return (function() {
67
+ var results = [];
68
+ for(var k = start; start <= finish ? k <= finish : k >= finish; start <= finish ? k++ : k--){
69
+ results.push(k);
70
+ }
71
+ return results;
72
+ }).apply(this);
101
73
  });
102
- ({
103
- random,
104
- round
105
- } = Math);
106
-
107
- pluck = function (ax) {
108
- return ax[round(random() * (ax.length - 1))];
74
+ ({ random, round } = Math);
75
+ pluck = function(ax) {
76
+ return ax[round(random() * (ax.length - 1))];
109
77
  };
110
-
111
- pair = curry(function (a, b) {
112
- return [a, b];
78
+ pair = curry(function(a, b) {
79
+ return [
80
+ a,
81
+ b
82
+ ];
113
83
  });
114
- sort = curry(function (f, ax) {
115
- return ax.sort(f, ax);
116
- }); // https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
117
-
118
- ({
119
- floor,
120
- random
121
- } = Math);
122
-
123
- shuffle = function (ax) {
124
- var bx, i, j;
125
- bx = cat(ax);
126
- i = bx.length;
127
-
128
- if (!(i <= 1)) {
129
- while (--i > 0) {
130
- // the distinguishing characteristic of fisher-yates is that the random
131
- // value generated is bounded by the iterator index (Math.random() * i)
132
- // instead of the size of the array (Math.random() * bx.length)
133
- j = floor(random() * (i + 1));
134
- [bx[i], bx[j]] = [bx[j], bx[i]];
135
- }
136
-
137
- if (equal(ax, bx)) {
138
- return shuffle(ax);
84
+ sort = curry(function(f, ax) {
85
+ return ax.toSorted(f, ax);
86
+ });
87
+ compact = curry(function(ax) {
88
+ return ax.filter(function(a) {
89
+ return a != null;
90
+ });
91
+ });
92
+ union = compose([
93
+ Array.from,
94
+ Se.union
95
+ ]);
96
+ intersection = compose([
97
+ Array.from,
98
+ Se.intersection
99
+ ]);
100
+ complement = compose([
101
+ Array.from,
102
+ Se.complement
103
+ ]);
104
+ difference = compose([
105
+ Array.from,
106
+ Se.difference
107
+ ]);
108
+ unique = compose([
109
+ Array.from,
110
+ Se.unique
111
+ ]);
112
+ dupes = compose([
113
+ Array.from,
114
+ Se.dupes
115
+ ]);
116
+ // https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
117
+ ({ floor, random } = Math);
118
+ shuffle = function(ax) {
119
+ var bx, i, j;
120
+ bx = [
121
+ ...ax
122
+ ];
123
+ i = bx.length;
124
+ if (!(i <= 1)) {
125
+ while(--i > 0){
126
+ // the distinguishing characteristic of fisher-yates is that the random
127
+ // value generated is bounded by the iterator index (Math.random() * i)
128
+ // instead of the size of the array (Math.random() * bx.length)
129
+ j = floor(random() * (i + 1));
130
+ [bx[i], bx[j]] = [
131
+ bx[j],
132
+ bx[i]
133
+ ];
134
+ }
135
+ if (equal(ax, bx)) {
136
+ return shuffle(ax);
137
+ } else {
138
+ return bx;
139
+ }
139
140
  } else {
140
- return bx;
141
+ return bx;
141
142
  }
142
- } else {
143
- return bx;
144
- }
145
143
  };
144
+ export { first, second, third, fourth, fifth, nth, last, rest, push, pop, shift, unshift, enqueue, dequeue, peek, poke, splice, insert, remove, cat, slice, fill, range, pluck, pair, sort, compact, union, intersection, complement, difference, unique, dupes, shuffle }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL2FycmF5LmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFBLEdBQUEsRUFBQSxPQUFBLEVBQUEsVUFBQSxFQUFBLE9BQUEsRUFBQSxVQUFBLEVBQUEsS0FBQSxFQUFBLE9BQUEsRUFBQSxLQUFBLEVBQUEsSUFBQSxFQUFBLEtBQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxZQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUEsRUFBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLEtBQUEsRUFBQSxJQUFBLEVBQUEsR0FBQSxFQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxLQUFBLEVBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxJQUFBLEVBQUEsTUFBQSxFQUFBLEtBQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLE9BQUE7RUFBQTs7QUFBQSxPQUFBO0VBQVEsS0FBUjtFQUFlLElBQWY7RUFBcUIsT0FBckI7RUFBOEIsT0FBOUI7RUFBdUMsQ0FBdkM7RUFBMEMsUUFBMUM7RUFDRSxLQURGO0VBQ1MsTUFEVDtFQUNpQixPQURqQjtFQUMwQixNQUQxQjtDQUFBLE1BQUE7O0FBRUEsT0FBQTtFQUFRLEtBQVI7Q0FBQSxNQUFBOztBQUNBLE9BQU8sQ0FBQSxNQUFQLE1BQUE7O0FBRUEsR0FBQSxHQUFNLEtBQUEsQ0FBTSxRQUFBLENBQUMsQ0FBRCxFQUFJLEVBQUosQ0FBQTtTQUFXLEVBQUUsQ0FBQyxDQUFBLEdBQUksQ0FBTDtBQUFiLENBQU47O0FBQ04sS0FBQSxHQUFTLEdBQUEsQ0FBSSxDQUFKOztBQUNULE1BQUEsR0FBUyxHQUFBLENBQUksQ0FBSjs7QUFDVCxLQUFBLEdBQVMsR0FBQSxDQUFJLENBQUo7O0FBQ1QsTUFBQSxHQUFTLEdBQUEsQ0FBSSxDQUFKOztB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QSxDQUFNLE1BQUEsQ0FBQSxDQUFBLEdBQVcsQ0FBQyxDQUFBLEdBQUksQ0FBTCxDQUFqQjtNQUNKLENBQUMsRUFBRSxDQUFDLENBQUQsQ0FBSCxFQUFRLEVBQUUsQ0FBQyxDQUFELENBQVYsQ0FBQSxHQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFELENBQUgsRUFBUSxFQUFFLENBQUMsQ0FBRCxDQUFWO0lBTG5CO0lBTUEsSUFBRyxLQUFBLENBQU0sRUFBTixFQUFVLEVBQVYsQ0FBSDthQUFxQixPQUFBLENBQVEsRUFBUixFQUFyQjtLQUFBLE1BQUE7YUFBcUMsR0FBckM7S0FQRjtHQUFBLE1BQUE7V0FTRSxHQVRGOztBQUhROztBQWNWLE9BQUE7RUFDRSxLQURGO0VBRUUsTUFGRjtFQUdFLEtBSEY7RUFJRSxNQUpGO0VBS0UsS0FMRjtFQU1FLEdBTkY7RUFPRSxJQVBGO0VBUUUsSUFSRjtFQVNFLElBVEY7RUFVRSxHQVZGO0VBV0UsS0FYRjtFQVlFLE9BWkY7RUFhRSxPQWJGO0VBY0UsT0FkRjtFQWVFLElBZkY7RUFnQkUsSUFoQkY7RUFpQkUsTUFqQkY7RUFrQkUsTUFsQkY7RUFtQkUsTUFuQkY7RUFvQkUsR0FwQkY7RUFxQkUsS0FyQkY7RUFzQkUsSUF0QkY7RUF1QkUsS0F2QkY7RUF3QkUsS0F4QkY7RUF5QkUsSUF6QkY7RUEwQkUsSUExQkY7RUEyQkUsT0EzQkY7RUE0QkUsS0E1QkY7RUE2QkUsWUE3QkY7RUE4QkUsVUE5QkY7RUErQkUsVUEvQkY7RUFnQ0UsTUFoQ0Y7RUFpQ0UsS0FqQ0Y7RUFrQ0UsT0FsQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2N1cnJ5LCBmbGlwLCBjb21wb3NlLCBwYXJ0aWFsLCBfLCBpZGVudGl0eSxcbiAgdW5hcnksIGJpbmFyeSwgdGVybmFyeSwgZGV0YWNofSBmcm9tIFwiLi9mdW5jdGlvblwiXG5pbXBvcnQge2VxdWFsfSBmcm9tIFwiLi92YWx1ZVwiXG5pbXBvcnQgKiBhcyBTZSBmcm9tIFwiLi9zZXRcIlxuXG5udGggPSBjdXJyeSAoaSwgYXgpIC0+IGF4W2kgLSAxXVxuZmlyc3QgID0gbnRoIDFcbnNlY29uZCA9IG50aCAyXG50aGlyZCAgPSBudGggM1xuZm91cnRoID0gbnRoIDRcbmZpZnRoICA9IG50aCA1XG5sYXN0ID0gKFtyZXN0Li4uLCBsYXN0XSkgLT4gbGFzdFxucmVzdCA9IChbZmlyc3QsIHJlc3QuLi5dKSAtPiByZXN0XG5cbiMgQXJyYXkgbXV0YXRvcnNcbnB1c2ggPSBjdXJyeSAoYSwgYXgpIC0+IGF4LnB1c2ggYTsgYXhcbnBvcCA9IGRldGFjaCBBcnJheTo6cG9wXG5zaGlmdCA9IGRldGFjaCBBcnJheTo6c2hpZnRcbnVuc2hpZnQgPSBjdXJyeSAoYSwgYXgpIC0+IGF4LnVuc2hpZnQgYTsgYXhcbmVucXVldWUgPSB1bnNoaWZ0XG5kZXF1ZXVlID0gcG9wXG5cbiMgQWRkIGZvciBjb21wbGV0ZW5lc3NcbnBlZWsgPSAoIGF4ICkgLT4gYXhbIGF4Lmxlbmd0aCAtIDEgXVxucG9rZSA9ICggYSwgYXggKSAtPiBheFsgYXgubGVuZ3RoIC0gMSBdID0gYVxuXG4jIHRydWUgc3BsaWNlIHdpdGhvdXQgd2VpcmQgaW5zZXJ0aW9uIG9wdGlvblxuIyBvciBjb21wb3NlLWJyZWFraW5nIHJldHVybiB2YWx1ZVxuc3BsaWNlID0gY3VycnkgKGksIG4sIGF4KSAtPlxuICBheC5zcGxpY2UgaSwgblxuICBheFxuXG5pbnNlcnQgPSBjdXJyeSAoaSwgYSwgYXgpIC0+XG4gIGF4LnNwbGljZSBpLCAwLCBhXG4gIGF4XG5cbnJlbW92ZSA9IGN1cnJ5IChhLCBheCkgLT5cbiAgKGF4LnNwbGljZSBpLCAxKSBpZiAoaSA9IGF4LmluZGV4T2YoIGEgKSkgIT0gLTFcbiAgYXhcblxuY2F0ID0gZGV0YWNoIEFycmF5Ojpjb25jYXRcblxuc2xpY2UgPSBjdXJyeSAoaSwgaiwgYXgpIC0+IGF4W2kuLi5qXVxuXG5maWxsID0gY3VycnkgKGEsIGF4KSAtPiBheC5maWxsIGFcblxucmFuZ2UgPSBjdXJyeSAoc3RhcnQsIGZpbmlzaCkgLT4gW3N0YXJ0Li5maW5pc2hdXG5cbntyYW5kb20sIHJvdW5kfSA9IE1hdGhcbnBsdWNrID0gKGF4KSAtPiBheFsocm91bmQgcmFuZG9tKCkgKiAoYXgubGVuZ3RoIC0gMSkpXVxuXG5wYWlyID0gY3VycnkgKGEsIGIpIC0+IFthLCBiXVxuXG5zb3J0ID0gY3VycnkgKGYsIGF4KSAtPiBheC50b1NvcnRlZCBmLCBheFxuXG5jb21wYWN0ID0gY3VycnkgKCBheCApIC0+IGF4LmZpbHRlciAoIGEgKSAtPiBhP1xuXG51bmlvbiA9IGNvbXBvc2UgW1xuICBBcnJheS5mcm9tXG4gIFNlLnVuaW9uXG5dXG5cbmludGVyc2VjdGlvbiA9IGNvbXBvc2UgW1xuICBBcnJheS5mcm9tXG4gIFNlLmludGVyc2VjdGlvblxuXVxuXG5jb21wbGVtZW50ID0gY29tcG9zZSBbXG4gIEFycmF5LmZyb21cbiAgU2UuY29tcGxlbWVudFxuXVxuXG5kaWZmZXJlbmNlID0gY29tcG9zZSBbXG4gIEFycmF5LmZyb21cbiAgU2UuZGlmZmVyZW5jZVxuXVxuXG51bmlxdWUgPSBjb21wb3NlIFtcbiAgQXJyYXkuZnJvbVxuICBTZS51bmlxdWVcbl1cblxuZHVwZXMgPSBjb21wb3NlIFtcbiAgQXJyYXkuZnJvbVxuICBTZS5kdXBlc1xuXVxuXG5cbiMgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRmlzaGVyJUUyJTgwJTkzWWF0ZXNfc2h1ZmZsZVxuI1xueyBmbG9vciwgcmFuZG9tIH0gPSBNYXRoXG5zaHVmZmxlID0gKCBheCApIC0+XG4gIGJ4ID0gWyBheC4uLiBdXG4gIGkgPSBieC5sZW5ndGhcbiAgdW5sZXNzIGkgPD0gMVxuICAgIHdoaWxlIC0taSA+IDBcbiAgICAgICMgdGhlIGRpc3Rpbmd1aXNoaW5nIGNoYXJhY3RlcmlzdGljIG9mIGZpc2hlci15YXRlcyBpcyB0aGF0IHRoZSByYW5kb21cbiAgICAgICMgdmFsdWUgZ2VuZXJhdGVkIGlzIGJvdW5kZWQgYnkgdGhlIGl0ZXJhdG9yIGluZGV4IChNYXRoLnJhbmRvbSgpICogaSlcbiAgICAgICMgaW5zdGVhZCBvZiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgKE1hdGgucmFuZG9tKCkgKiBieC5sZW5ndGgpXG4gICAgICBqID0gZmxvb3IgcmFuZG9tKCkgKiAoaSArIDEpXG4gICAgICBbYnhbaV0sIGJ4W2pdXSA9IFtieFtqXSwgYnhbaV1dXG4gICAgaWYgZXF1YWwgYXgsIGJ4IHRoZW4gc2h1ZmZsZSBheCBlbHNlIGJ4XG4gIGVsc2VcbiAgICBieFxuXG5leHBvcnQge1xuICBmaXJzdFxuICBzZWNvbmRcbiAgdGhpcmRcbiAgZm91cnRoXG4gIGZpZnRoXG4gIG50aFxuICBsYXN0XG4gIHJlc3RcbiAgcHVzaFxuICBwb3BcbiAgc2hpZnRcbiAgdW5zaGlmdFxuICBlbnF1ZXVlXG4gIGRlcXVldWVcbiAgcGVla1xuICBwb2tlXG4gIHNwbGljZVxuICBpbnNlcnRcbiAgcmVtb3ZlXG4gIGNhdFxuICBzbGljZVxuICBmaWxsXG4gIHJhbmdlXG4gIHBsdWNrXG4gIHBhaXJcbiAgc29ydFxuICBjb21wYWN0XG4gIHVuaW9uXG4gIGludGVyc2VjdGlvblxuICBjb21wbGVtZW50XG4gIGRpZmZlcmVuY2VcbiAgdW5pcXVlXG4gIGR1cGVzXG4gIHNodWZmbGVcbn1cbiJdfQ==
145
+ //# sourceURL=/@dashkite/joy/src/array.coffee
146
146
 
147
- export { first, second, third, fourth, fifth, nth, last, rest, push, pop, shift, unshift, enqueue, dequeue, splice, insert, remove, cat, slice, fill, range, pluck, pair, sort, shuffle };
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9AZGFzaGtpdGUvam95L3NyYy9hcnJheS5jb2ZmZWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjdXJyeSwgZmxpcCwgY29tcG9zZSwgcGFydGlhbCwgXywgaWRlbnRpdHksXG4gIHVuYXJ5LCBiaW5hcnksIHRlcm5hcnksIGRldGFjaH0gZnJvbSBcIi4vZnVuY3Rpb25cIlxuaW1wb3J0IHtlcXVhbH0gZnJvbSBcIi4vdmFsdWVcIlxuaW1wb3J0ICogYXMgU2UgZnJvbSBcIi4vc2V0XCJcblxubnRoID0gY3VycnkgKGksIGF4KSAtPiBheFtpIC0gMV1cbmZpcnN0ICA9IG50aCAxXG5zZWNvbmQgPSBudGggMlxudGhpcmQgID0gbnRoIDNcbmZvdXJ0aCA9IG50aCA0XG5maWZ0aCAgPSBudGggNVxubGFzdCA9IChbcmVzdC4uLiwgbGFzdF0pIC0+IGxhc3RcbnJlc3QgPSAoW2ZpcnN0LCByZXN0Li4uXSkgLT4gcmVzdFxuXG4jIEFycmF5IG11dGF0b3JzXG5wdXNoID0gY3VycnkgKGEsIGF4KSAtPiBheC5wdXNoIGE7IGF4XG5wb3AgPSBkZXRhY2ggQXJyYXk6OnBvcFxuc2hpZnQgPSBkZXRhY2ggQXJyYXk6OnNoaWZ0XG51bnNoaWZ0ID0gY3VycnkgKGEsIGF4KSAtPiBheC51bnNoaWZ0IGE7IGF4XG5lbnF1ZXVlID0gdW5zaGlmdFxuZGVxdWV1ZSA9IHBvcFxuXG4jIEFkZCBmb3IgY29tcGxldGVuZXNzXG5wZWVrID0gKCBheCApIC0+IGF4WyBheC5sZW5ndGggLSAxIF1cbnBva2UgPSAoIGEsIGF4ICkgLT4gYXhbIGF4Lmxlbmd0aCAtIDEgXSA9IGFcblxuIyB0cnVlIHNwbGljZSB3aXRob3V0IHdlaXJkIGluc2VydGlvbiBvcHRpb25cbiMgb3IgY29tcG9zZS1icmVha2luZyByZXR1cm4gdmFsdWVcbnNwbGljZSA9IGN1cnJ5IChpLCBuLCBheCkgLT5cbiAgYXguc3BsaWNlIGksIG5cbiAgYXhcblxuaW5zZXJ0ID0gY3VycnkgKGksIGEsIGF4KSAtPlxuICBheC5zcGxpY2UgaSwgMCwgYVxuICBheFxuXG5yZW1vdmUgPSBjdXJyeSAoYSwgYXgpIC0+XG4gIChheC5zcGxpY2UgaSwgMSkgaWYgKGkgPSBheC5pbmRleE9mKCBhICkpICE9IC0xXG4gIGF4XG5cbmNhdCA9IGRldGFjaCBBcnJheTo6Y29uY2F0XG5cbnNsaWNlID0gY3VycnkgKGksIGosIGF4KSAtPiBheFtpLi4ual1cblxuZmlsbCA9IGN1cnJ5IChhLCBheCkgLT4gYXguZmlsbCBhXG5cbnJhbmdlID0gY3VycnkgKHN0YXJ0LCBmaW5pc2gpIC0+IFtzdGFydC4uZmluaXNoXVxuXG57cmFuZG9tLCByb3VuZH0gPSBNYXRoXG5wbHVjayA9IChheCkgLT4gYXhbKHJvdW5kIHJhbmRvbSgpICogKGF4Lmxlbmd0aCAtIDEpKV1cblxucGFpciA9IGN1cnJ5IChhLCBiKSAtPiBbYSwgYl1cblxuc29ydCA9IGN1cnJ5IChmLCBheCkgLT4gYXgudG9Tb3J0ZWQgZiwgYXhcblxuY29tcGFjdCA9IGN1cnJ5ICggYXggKSAtPiBheC5maWx0ZXIgKCBhICkgLT4gYT9cblxudW5pb24gPSBjb21wb3NlIFtcbiAgQXJyYXkuZnJvbVxuICBTZS51bmlvblxuXVxuXG5pbnRlcnNlY3Rpb24gPSBjb21wb3NlIFtcbiAgQXJyYXkuZnJvbVxuICBTZS5pbnRlcnNlY3Rpb25cbl1cblxuY29tcGxlbWVudCA9IGNvbXBvc2UgW1xuICBBcnJheS5mcm9tXG4gIFNlLmNvbXBsZW1lbnRcbl1cblxuZGlmZmVyZW5jZSA9IGNvbXBvc2UgW1xuICBBcnJheS5mcm9tXG4gIFNlLmRpZmZlcmVuY2Vcbl1cblxudW5pcXVlID0gY29tcG9zZSBbXG4gIEFycmF5LmZyb21cbiAgU2UudW5pcXVlXG5dXG5cbmR1cGVzID0gY29tcG9zZSBbXG4gIEFycmF5LmZyb21cbiAgU2UuZHVwZXNcbl1cblxuXG4jIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Zpc2hlciVFMiU4MCU5M1lhdGVzX3NodWZmbGVcbiNcbnsgZmxvb3IsIHJhbmRvbSB9ID0gTWF0aFxuc2h1ZmZsZSA9ICggYXggKSAtPlxuICBieCA9IFsgYXguLi4gXVxuICBpID0gYngubGVuZ3RoXG4gIHVubGVzcyBpIDw9IDFcbiAgICB3aGlsZSAtLWkgPiAwXG4gICAgICAjIHRoZSBkaXN0aW5ndWlzaGluZyBjaGFyYWN0ZXJpc3RpYyBvZiBmaXNoZXIteWF0ZXMgaXMgdGhhdCB0aGUgcmFuZG9tXG4gICAgICAjIHZhbHVlIGdlbmVyYXRlZCBpcyBib3VuZGVkIGJ5IHRoZSBpdGVyYXRvciBpbmRleCAoTWF0aC5yYW5kb20oKSAqIGkpXG4gICAgICAjIGluc3RlYWQgb2YgdGhlIHNpemUgb2YgdGhlIGFycmF5IChNYXRoLnJhbmRvbSgpICogYngubGVuZ3RoKVxuICAgICAgaiA9IGZsb29yIHJhbmRvbSgpICogKGkgKyAxKVxuICAgICAgW2J4W2ldLCBieFtqXV0gPSBbYnhbal0sIGJ4W2ldXVxuICAgIGlmIGVxdWFsIGF4LCBieCB0aGVuIHNodWZmbGUgYXggZWxzZSBieFxuICBlbHNlXG4gICAgYnhcblxuZXhwb3J0IHtcbiAgZmlyc3RcbiAgc2Vjb25kXG4gIHRoaXJkXG4gIGZvdXJ0aFxuICBmaWZ0aFxuICBudGhcbiAgbGFzdFxuICByZXN0XG4gIHB1c2hcbiAgcG9wXG4gIHNoaWZ0XG4gIHVuc2hpZnRcbiAgZW5xdWV1ZVxuICBkZXF1ZXVlXG4gIHBlZWtcbiAgcG9rZVxuICBzcGxpY2VcbiAgaW5zZXJ0XG4gIHJlbW92ZVxuICBjYXRcbiAgc2xpY2VcbiAgZmlsbFxuICByYW5nZVxuICBwbHVja1xuICBwYWlyXG4gIHNvcnRcbiAgY29tcGFjdFxuICB1bmlvblxuICBpbnRlcnNlY3Rpb25cbiAgY29tcGxlbWVudFxuICBkaWZmZXJlbmNlXG4gIHVuaXF1ZVxuICBkdXBlc1xuICBzaHVmZmxlXG59XG4iXSwibmFtZXMiOlsiY2F0IiwiY29tcGFjdCIsImNvbXBsZW1lbnQiLCJkZXF1ZXVlIiwiZGlmZmVyZW5jZSIsImR1cGVzIiwiZW5xdWV1ZSIsImZpZnRoIiwiZmlsbCIsImZpcnN0IiwiZmxvb3IiLCJmb3VydGgiLCJpbnNlcnQiLCJpbnRlcnNlY3Rpb24iLCJsYXN0IiwibnRoIiwicGFpciIsInBlZWsiLCJwbHVjayIsInBva2UiLCJwb3AiLCJwdXNoIiwicmFuZG9tIiwicmFuZ2UiLCJyZW1vdmUiLCJyZXN0Iiwicm91bmQiLCJzZWNvbmQiLCJzaGlmdCIsInNodWZmbGUiLCJzbGljZSIsInNvcnQiLCJzcGxpY2UiLCJ0aGlyZCIsInVuaW9uIiwidW5pcXVlIiwidW5zaGlmdCIsInNwbGljZTEiLCJjdXJyeSIsImZsaXAiLCJjb21wb3NlIiwicGFydGlhbCIsIl8iLCJpZGVudGl0eSIsInVuYXJ5IiwiYmluYXJ5IiwidGVybmFyeSIsImRldGFjaCIsImVxdWFsIiwiU2UiLCJpIiwiYXgiLCJhcmciLCJjYWxsIiwiYSIsIkFycmF5IiwicHJvdG90eXBlIiwibGVuZ3RoIiwibiIsImluZGV4T2YiLCJjb25jYXQiLCJqIiwic3RhcnQiLCJmaW5pc2giLCJNYXRoIiwiYiIsImYiLCJ0b1NvcnRlZCIsImZpbHRlciIsImZyb20iLCJieCJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBQUEsS0FBQUMsU0FBQUMsWUFBQUMsU0FBQUMsWUFBQUMsT0FBQUMsU0FBQUMsT0FBQUMsTUFBQUMsT0FBQUMsT0FBQUMsUUFBQUMsUUFBQUMsY0FBQUMsTUFBQUMsS0FBQUMsTUFBQUMsTUFBQUMsT0FBQUMsTUFBQUMsS0FBQUMsTUFBQUMsUUFBQUMsT0FBQUMsUUFBQUMsTUFBQUMsT0FBQUMsUUFBQUMsT0FBQUMsU0FBQUMsT0FBQUMsTUFBQUMsUUFBQUMsT0FBQUMsT0FBQUMsUUFBQUMsU0FBQUMsVUFBQSxFQUFBLENBQUFMLE1BQUE7QUFBQSxTQUFRTSxLQUFSLEVBQWVDLElBQWYsRUFBcUJDLE9BQXJCLEVBQThCQyxPQUE5QixFQUF1Q0MsQ0FBdkMsRUFBMENDLFFBQTFDLEVBQ0VDLEtBREYsRUFDU0MsTUFEVCxFQUNpQkMsT0FEakIsRUFDMEJDLE1BRDFCLFFBQUEsYUFB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