@dashkite/joy 0.3.16 → 0.5.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,452 +1,366 @@
1
- var _,
2
- apply,
3
- arity,
4
- binary,
5
- bind,
6
- chain,
7
- compose,
8
- curry,
9
- detach,
10
- flip,
11
- flow,
12
- flowWith,
13
- identity,
14
- isPromise,
15
- memoize,
16
- once,
17
- partial,
18
- pipe,
19
- pipeWith,
20
- proxy,
21
- rtee,
22
- send,
23
- spread,
24
- stack,
25
- substitute,
26
- tee,
27
- ternary,
28
- unary,
29
- wait,
30
- wrap,
31
- splice = [].splice;
32
-
33
- identity = function (x) {
34
- return x;
35
- };
36
-
37
- wrap = function (x) {
38
- return function () {
1
+ var _, apply, arity, bcompose, bflow, binary, bind, bpipe, chain, compose, curry, detach, flip, flow, identity, isPromise, map, memoize, once, partial, pipe, proxy, rtee, send, spread, stack, substitute, tee, ternary, unary, wait, wrap, splice = [].splice;
2
+ identity = function(x) {
39
3
  return x;
40
- };
41
- }; // Based on _arity from Rambda:
42
- // https://github.com/ramda/ramda/blob/v0.26.1/source/internal/_arity.js
43
-
44
-
45
- arity = function (N, f) {
46
- switch (N) {
47
- case 0:
48
- return function () {
49
- for (var _len = arguments.length, ax = new Array(_len), _key = 0; _key < _len; _key++) {
50
- ax[_key] = arguments[_key];
51
- }
52
-
53
- return f.apply(this, ax);
54
- };
55
-
56
- case 1:
57
- return function (a0) {
58
- return f.apply(this, arguments);
59
- };
60
-
61
- case 2:
62
- return function (a0, a1) {
63
- return f.apply(this, arguments);
64
- };
65
-
66
- case 3:
67
- return function (a0, a1, a2) {
68
- return f.apply(this, arguments);
69
- };
70
-
71
- case 4:
72
- return function (a0, a1, a2, a3) {
73
- return f.apply(this, arguments);
74
- };
75
-
76
- case 5:
77
- return function (a0, a1, a2, a3, a4) {
78
- return f.apply(this, arguments);
79
- };
80
-
81
- case 6:
82
- return function (a0, a1, a2, a3, a4, a5) {
83
- return f.apply(this, arguments);
84
- };
85
-
86
- case 7:
87
- return function (a0, a1, a2, a3, a4, a5, a6) {
88
- return f.apply(this, arguments);
89
- };
90
-
91
- case 8:
92
- return function (a0, a1, a2, a3, a4, a5, a6, a7) {
93
- return f.apply(this, arguments);
94
- };
95
-
96
- case 9:
97
- return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {
98
- return f.apply(this, arguments);
99
- };
100
-
101
- case 10:
102
- return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
103
- return f.apply(this, arguments);
104
- };
105
-
106
- default:
107
- throw new Error("First argument to arity must be an integer between 0 and 10, inclusive.");
108
- }
109
4
  };
110
-
111
- unary = function (f) {
112
- return arity(1, f);
5
+ wrap = function(x) {
6
+ return function() {
7
+ return x;
8
+ };
113
9
  };
114
-
115
- binary = function (f) {
116
- return arity(2, f);
10
+ // Based on _arity from Rambda:
11
+ // https://github.com/ramda/ramda/blob/v0.26.1/source/internal/_arity.js
12
+ arity = function(N, f) {
13
+ switch(N){
14
+ case 0:
15
+ return function(...ax) {
16
+ return f.apply(this, ax);
17
+ };
18
+ case 1:
19
+ return function(a0) {
20
+ return f.apply(this, arguments);
21
+ };
22
+ case 2:
23
+ return function(a0, a1) {
24
+ return f.apply(this, arguments);
25
+ };
26
+ case 3:
27
+ return function(a0, a1, a2) {
28
+ return f.apply(this, arguments);
29
+ };
30
+ case 4:
31
+ return function(a0, a1, a2, a3) {
32
+ return f.apply(this, arguments);
33
+ };
34
+ case 5:
35
+ return function(a0, a1, a2, a3, a4) {
36
+ return f.apply(this, arguments);
37
+ };
38
+ case 6:
39
+ return function(a0, a1, a2, a3, a4, a5) {
40
+ return f.apply(this, arguments);
41
+ };
42
+ case 7:
43
+ return function(a0, a1, a2, a3, a4, a5, a6) {
44
+ return f.apply(this, arguments);
45
+ };
46
+ case 8:
47
+ return function(a0, a1, a2, a3, a4, a5, a6, a7) {
48
+ return f.apply(this, arguments);
49
+ };
50
+ case 9:
51
+ return function(a0, a1, a2, a3, a4, a5, a6, a7, a8) {
52
+ return f.apply(this, arguments);
53
+ };
54
+ case 10:
55
+ return function(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
56
+ return f.apply(this, arguments);
57
+ };
58
+ default:
59
+ throw new Error("First argument to arity must be an integer between 0 and 10, inclusive.");
60
+ }
117
61
  };
118
-
119
- ternary = function (f) {
120
- return arity(3, f);
62
+ unary = function(f) {
63
+ return arity(1, f);
121
64
  };
122
-
123
- flip = function (f) {
124
- switch (f.length) {
125
- case 0:
126
- return f;
127
-
128
- case 1:
129
- return function (a0) {
130
- return f.call(this, a0);
131
- };
132
-
133
- case 2:
134
- return function (a0, a1) {
135
- return f.call(this, a1, a0);
136
- };
137
-
138
- case 3:
139
- return function (a0, a1, a2) {
140
- return f.call(this, a2, a1, a0);
141
- };
142
-
143
- case 4:
144
- return function (a0, a1, a2, a3) {
145
- return f.call(this, a3, a2, a1, a0);
146
- };
147
-
148
- case 5:
149
- return function (a0, a1, a2, a3, a4) {
150
- return f.call(this, a4, a3, a2, a1, a0);
151
- };
152
-
153
- case 6:
154
- return function (a0, a1, a2, a3, a4, a5) {
155
- return f.call(this, a5, a4, a3, a2, a1, a0);
156
- };
157
-
158
- case 7:
159
- return function (a0, a1, a2, a3, a4, a5, a6) {
160
- return f.call(this, a6, a4, a3, a2, a1, a0);
161
- };
162
-
163
- case 8:
164
- return function (a0, a1, a2, a3, a4, a5, a6, a7) {
165
- return f.call(this, a7, a6, a5, a4, a3, a2, a1, a0);
166
- };
167
-
168
- case 9:
169
- return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {
170
- return f.call(this, a8, a7, a6, a5, a4, a3, a2, a1, a0);
171
- };
172
-
173
- case 10:
174
- return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
175
- return f.call(this, a9, a8, a7, a6, a5, a4, a3, a2, a1, a0);
176
- };
177
-
178
- default:
179
- return function () {
180
- for (var _len2 = arguments.length, ax = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
181
- ax[_key2] = arguments[_key2];
182
- }
183
-
184
- return f.apply(this, ax.reverse());
185
- };
186
- }
65
+ binary = function(f) {
66
+ return arity(2, f);
187
67
  };
188
-
189
- curry = function (f) {
190
- return arity(f.length, function () {
191
- for (var _len3 = arguments.length, ax = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
192
- ax[_key3] = arguments[_key3];
193
- }
194
-
195
- var length, self;
196
- self = this;
197
-
198
- if (ax.length >= f.length) {
199
- return f.apply(self, ax);
200
- } else {
201
- length = f.length - ax.length;
202
-
203
- if (length === 1) {
204
- return function (x) {
205
- return f.apply(self, [...ax, x]);
206
- };
207
- } else {
208
- return curry(arity(length, function () {
209
- for (var _len4 = arguments.length, bx = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
210
- bx[_key4] = arguments[_key4];
211
- }
212
-
213
- return f.apply(self, [...ax, ...bx]);
214
- }));
215
- }
68
+ ternary = function(f) {
69
+ return arity(3, f);
70
+ };
71
+ flip = function(f) {
72
+ switch(f.length){
73
+ case 0:
74
+ return f;
75
+ case 1:
76
+ return function(a0) {
77
+ return f.call(this, a0);
78
+ };
79
+ case 2:
80
+ return function(a0, a1) {
81
+ return f.call(this, a1, a0);
82
+ };
83
+ case 3:
84
+ return function(a0, a1, a2) {
85
+ return f.call(this, a2, a1, a0);
86
+ };
87
+ case 4:
88
+ return function(a0, a1, a2, a3) {
89
+ return f.call(this, a3, a2, a1, a0);
90
+ };
91
+ case 5:
92
+ return function(a0, a1, a2, a3, a4) {
93
+ return f.call(this, a4, a3, a2, a1, a0);
94
+ };
95
+ case 6:
96
+ return function(a0, a1, a2, a3, a4, a5) {
97
+ return f.call(this, a5, a4, a3, a2, a1, a0);
98
+ };
99
+ case 7:
100
+ return function(a0, a1, a2, a3, a4, a5, a6) {
101
+ return f.call(this, a6, a4, a3, a2, a1, a0);
102
+ };
103
+ case 8:
104
+ return function(a0, a1, a2, a3, a4, a5, a6, a7) {
105
+ return f.call(this, a7, a6, a5, a4, a3, a2, a1, a0);
106
+ };
107
+ case 9:
108
+ return function(a0, a1, a2, a3, a4, a5, a6, a7, a8) {
109
+ return f.call(this, a8, a7, a6, a5, a4, a3, a2, a1, a0);
110
+ };
111
+ case 10:
112
+ return function(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
113
+ return f.call(this, a9, a8, a7, a6, a5, a4, a3, a2, a1, a0);
114
+ };
115
+ default:
116
+ return function(...ax) {
117
+ return f.apply(this, ax.reverse());
118
+ };
216
119
  }
217
- });
218
120
  };
219
-
220
- _ = {};
221
- substitute = curry(function (ax, bx) {
222
- var a, i, j, len, results;
223
- i = 0;
224
- results = [];
225
-
226
- for (j = 0, len = ax.length; j < len; j++) {
227
- a = ax[j];
228
-
229
- if (a === _) {
230
- results.push(bx[i++]);
121
+ curry = function(f) {
122
+ if (f.length > 1) {
123
+ return arity(f.length, function(...ax) {
124
+ var length, self;
125
+ self = this;
126
+ if (ax.length >= f.length) {
127
+ return f.apply(self, ax);
128
+ } else {
129
+ length = f.length - ax.length;
130
+ if (length === 1) {
131
+ return function(x) {
132
+ return f.apply(self, [
133
+ ...ax,
134
+ x
135
+ ]);
136
+ };
137
+ } else {
138
+ return curry(arity(length, function(...bx) {
139
+ return f.apply(self, [
140
+ ...ax,
141
+ ...bx
142
+ ]);
143
+ }));
144
+ }
145
+ }
146
+ });
231
147
  } else {
232
- results.push(a);
233
- }
234
- }
235
-
236
- return results;
237
- });
238
-
239
- partial = function (f, ax) {
240
- var a, j, len, n;
241
- n = 0;
242
-
243
- for (j = 0, len = ax.length; j < len; j++) {
244
- a = ax[j];
245
-
246
- if (a === _) {
247
- n++;
248
- }
249
- }
250
-
251
- return arity(n, function () {
252
- for (var _len5 = arguments.length, bx = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
253
- bx[_key5] = arguments[_key5];
148
+ return f;
254
149
  }
255
-
256
- return f(...substitute(ax, bx));
257
- });
258
- };
259
-
260
- spread = function (f) {
261
- return function (ax) {
262
- return f(...ax);
263
- };
264
150
  };
265
-
266
- stack = function (f) {
267
- return function () {
268
- for (var _len6 = arguments.length, ax = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
269
- ax[_key6] = arguments[_key6];
270
- }
271
-
272
- return f(ax);
273
- };
274
- }; // Inspired by Rambda: https://ramdajs.com/docs/#pipeWith
275
-
276
-
277
- pipeWith = curry(function (c, fx) {
278
- var f, gx;
279
-
280
- gx = function () {
281
- var j, len, results;
151
+ _ = {};
152
+ substitute = curry(function(ax, bx) {
153
+ var a, i, j, len, results;
154
+ i = 0;
282
155
  results = [];
283
-
284
- for (j = 0, len = fx.length; j < len; j++) {
285
- f = fx[j];
286
- results.push(c(f));
156
+ for(j = 0, len = ax.length; j < len; j++){
157
+ a = ax[j];
158
+ if (a === _) {
159
+ results.push(bx[i++]);
160
+ } else {
161
+ results.push(a);
162
+ }
287
163
  }
288
-
289
164
  return results;
290
- }();
291
-
292
- return arity(fx[0].length, function () {
293
- for (var _len7 = arguments.length, ax = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
294
- ax[_key7] = arguments[_key7];
295
- }
296
-
297
- var i, j, len;
298
-
299
- for (i = j = 0, len = gx.length; j < len; i = ++j) {
300
- f = gx[i];
301
- ax = [f(...ax)];
302
- }
303
-
304
- return ax[0];
305
- });
306
165
  });
307
- pipe = pipeWith(identity);
308
-
309
- compose = function (fx) {
310
- return pipe(fx.reverse());
311
- };
312
-
313
- wait = function (f) {
314
- return arity(f.length, function () {
315
- for (var _len8 = arguments.length, ax = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
316
- ax[_key8] = arguments[_key8];
166
+ partial = function(f, ax) {
167
+ var a, j, len, n;
168
+ n = 0;
169
+ for(j = 0, len = ax.length; j < len; j++){
170
+ a = ax[j];
171
+ if (a === _) {
172
+ n++;
173
+ }
317
174
  }
318
-
319
- return Promise.all(ax).then(function (ax) {
320
- return f(...ax);
175
+ return arity(n, function(...bx) {
176
+ return f(...substitute(ax, bx));
321
177
  });
322
- });
323
178
  };
324
-
325
- flow = pipeWith(wait);
326
- flowWith = curry(function (c, fx) {
327
- return pipeWith(pipe([c, wait]), fx);
328
- });
329
-
330
- tee = function (f) {
331
- return arity(Math.max(f.length, 1), function (a) {
332
- var k, ref, self;
333
- self = this;
334
-
335
- for (var _len9 = arguments.length, bx = new Array(_len9 > 1 ? _len9 - 1 : 0), _key9 = 1; _key9 < _len9; _key9++) {
336
- bx[_key9 - 1] = arguments[_key9];
337
- }
338
-
339
- if (((ref = k = f.apply(self, [a, ...bx])) != null ? ref.then : void 0) != null) {
340
- return k.then(function () {
341
- return a;
342
- });
343
- } else {
344
- return a;
345
- }
346
- });
179
+ spread = function(f) {
180
+ return function(ax) {
181
+ return f(...ax);
182
+ };
347
183
  };
348
-
349
- rtee = function (f) {
350
- return arity(Math.max(f.length, 1), function () {
351
- for (var _len10 = arguments.length, ax = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
352
- ax[_key10] = arguments[_key10];
353
- }
354
-
355
- var b, k, ref, ref1, self;
356
- ref = ax, [...ax] = ref, [b] = splice.call(ax, -1);
357
- self = this;
358
-
359
- if (((ref1 = k = f.apply(self, [...ax, b])) != null ? ref1.then : void 0) != null) {
360
- return k.then(function () {
361
- return b;
362
- });
184
+ stack = function(f) {
185
+ return function(...ax) {
186
+ return f(ax);
187
+ };
188
+ };
189
+ pipe = function([f, ...gx]) {
190
+ if (gx.length === 0) {
191
+ return f != null ? f : identity;
363
192
  } else {
364
- return b;
193
+ return function({ g }) {
194
+ g = pipe(gx);
195
+ return arity(f.length, function(...args) {
196
+ return function({ self, x }) {
197
+ x = f.apply(self, args);
198
+ if ((x != null ? x.then : void 0) != null) {
199
+ return x.then(g.bind(self));
200
+ } else {
201
+ return g.call(self, x);
202
+ }
203
+ }({
204
+ self: this
205
+ });
206
+ });
207
+ }({});
365
208
  }
366
- });
367
209
  };
368
-
369
- once = function (f) {
370
- return function (k) {
371
- return arity(f.length, function () {
372
- if (k != null) {
373
- return k;
374
- } else {
375
- for (var _len11 = arguments.length, ax = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
376
- ax[_key11] = arguments[_key11];
210
+ flow = pipe;
211
+ compose = function(fx) {
212
+ return pipe(fx.reverse());
213
+ };
214
+ bpipe = pipe;
215
+ bflow = pipe;
216
+ bcompose = function(fx) {
217
+ return bpipe(fx.reverse());
218
+ };
219
+ wait = function(f) {
220
+ return arity(f.length, function(...ax) {
221
+ return Promise.all(ax).then(function(ax) {
222
+ return f(...ax);
223
+ });
224
+ });
225
+ };
226
+ tee = function(f) {
227
+ return arity(Math.max(f.length, 1), function(a, ...bx) {
228
+ var k, ref;
229
+ if (((ref = k = f.apply(this, [
230
+ a,
231
+ ...bx
232
+ ])) != null ? ref.then : void 0) != null) {
233
+ return k.then(function() {
234
+ return a;
235
+ });
236
+ } else {
237
+ return a;
377
238
  }
378
-
379
- return k = apply(f, ax);
380
- }
381
239
  });
382
- }(void 0);
383
240
  };
384
-
385
- memoize = function (f) {
386
- return function (cache) {
387
- return arity(f.length, function () {
388
- var name1;
389
-
390
- for (var _len12 = arguments.length, ax = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
391
- ax[_key12] = arguments[_key12];
392
- }
393
-
394
- return cache[name1 = JSON.stringify(ax)] != null ? cache[name1] : cache[name1] = apply(f, ax);
241
+ rtee = function(f) {
242
+ return arity(Math.max(f.length, 1), function(...ax) {
243
+ var b, k, ref, ref1;
244
+ ref = ax, [...ax] = ref, [b] = splice.call(ax, -1);
245
+ if (((ref1 = k = f.apply(this, [
246
+ ...ax,
247
+ b
248
+ ])) != null ? ref1.then : void 0) != null) {
249
+ return k.then(function() {
250
+ return b;
251
+ });
252
+ } else {
253
+ return b;
254
+ }
395
255
  });
396
- }({});
397
256
  };
398
-
399
- apply = curry(function (f, ax) {
400
- return f(...ax);
257
+ once = function(f) {
258
+ return function(k) {
259
+ return arity(f.length, function(...ax) {
260
+ if (k != null) {
261
+ return k;
262
+ } else {
263
+ return k = f.apply(this, ax);
264
+ }
265
+ });
266
+ }(void 0);
267
+ };
268
+ memoize = function(f) {
269
+ return function(cache) {
270
+ return arity(f.length, function(...ax) {
271
+ var name1;
272
+ return cache[name1 = JSON.stringify(ax)] != null ? cache[name1] : cache[name1] = f.apply(this, ax);
273
+ });
274
+ }({});
275
+ };
276
+ apply = curry(function(f, ax) {
277
+ return f.apply(null, ax);
401
278
  });
402
- bind = curry(function (f, x) {
403
- return f.bind(x);
279
+ bind = curry(function(f, x) {
280
+ return f.bind(x);
404
281
  });
405
-
406
- detach = function (f) {
407
- return arity(f.length + 1, curry(function (x) {
408
- for (var _len13 = arguments.length, args = new Array(_len13 > 1 ? _len13 - 1 : 0), _key13 = 1; _key13 < _len13; _key13++) {
409
- args[_key13 - 1] = arguments[_key13];
410
- }
411
-
412
- return f.apply(x, args);
413
- }));
282
+ detach = function(f) {
283
+ return curry(arity(f.length + 1, function(x, ...args) {
284
+ return f.apply(x, args);
285
+ }));
414
286
  };
415
-
416
- send = curry(function (name, ax, object) {
417
- return object[name].apply(object, ax);
287
+ send = curry(function(name, ax, object) {
288
+ return object[name].apply(object, ax);
418
289
  });
419
-
420
- isPromise = function (k) {
421
- return k instanceof Promise;
290
+ isPromise = function(k) {
291
+ return k instanceof Promise;
422
292
  };
423
-
424
- chain = function (f) {
425
- return arity(Math.max(f.length, 1), function () {
426
- var k, self;
427
- self = this;
428
-
429
- for (var _len14 = arguments.length, ax = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
430
- ax[_key14] = arguments[_key14];
431
- }
432
-
433
- if (isPromise(k = f.apply(self, ax))) {
434
- return k.then(function () {
435
- return self;
436
- });
437
- } else {
438
- return self;
439
- }
440
- });
293
+ chain = function(f) {
294
+ return arity(Math.max(f.length, 1), function(...ax) {
295
+ var k;
296
+ if (isPromise(k = f.apply(this, ax))) {
297
+ return k.then(()=>{
298
+ return this;
299
+ });
300
+ } else {
301
+ return this;
302
+ }
303
+ });
441
304
  };
442
-
443
- proxy = curry(function (name, ax) {
444
- return function () {
445
- for (var _len15 = arguments.length, bx = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
446
- bx[_key15] = arguments[_key15];
447
- }
448
-
449
- return this[name].apply(this, [...ax, ...bx]);
450
- };
305
+ map = function(fx) {
306
+ return function({ lengths, length }) {
307
+ lengths = fx.map(function(f) {
308
+ return f.length;
309
+ });
310
+ length = Math.max(...lengths);
311
+ return arity(length, function(...args) {
312
+ var f, j, len, results;
313
+ results = [];
314
+ for(j = 0, len = fx.length; j < len; j++){
315
+ f = fx[j];
316
+ results.push(f.apply(this, args));
317
+ }
318
+ return results;
319
+ });
320
+ }({});
321
+ };
322
+ proxy = curry(function(name, ax) {
323
+ return function(...bx) {
324
+ return this[name].apply(this, [
325
+ ...ax,
326
+ ...bx
327
+ ]);
328
+ };
451
329
  });
452
- export { identity, wrap, arity, unary, binary, ternary, flip, curry, _, substitute, partial, spread, stack, pipeWith, pipe, compose, wait, flow, flowWith, tee, rtee, once, memoize, apply, bind, detach, send, chain, proxy };
330
+ export { identity, wrap, arity, unary, binary, ternary, flip, curry, _, substitute, partial, spread, stack, pipe, compose, wait, flow, bpipe, bcompose, bflow, tee, rtee, once, memoize, apply, bind, detach, send, chain, map, proxy };
331
+ export default {
332
+ identity,
333
+ wrap,
334
+ arity,
335
+ unary,
336
+ binary,
337
+ ternary,
338
+ flip,
339
+ curry,
340
+ _,
341
+ substitute,
342
+ partial,
343
+ spread,
344
+ stack,
345
+ pipe,
346
+ compose,
347
+ wait,
348
+ flow,
349
+ bpipe,
350
+ bcompose,
351
+ bflow,
352
+ tee,
353
+ rtee,
354
+ once,
355
+ memoize,
356
+ apply,
357
+ bind,
358
+ detach,
359
+ send,
360
+ chain,
361
+ map,
362
+ proxy
363
+ }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL2Z1bmN0aW9uLmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFBLENBQUEsRUFBQSxLQUFBLEVBQUEsS0FBQSxFQUFBLFFBQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxLQUFBLEVBQUEsS0FBQSxFQUFBLE9BQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxJQUFBLEVBQUEsUUFBQSxFQUFBLFNBQUEsRUFBQSxHQUFBLEVBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsSUFBQSxFQUFBLEtBQUEsRUFBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLE1BQUEsRUFBQSxLQUFBLEVBQUEsVUFBQSxFQUFBLEdBQUEsRUFBQSxPQUFBLEVBQUEsS0FBQSxFQUFBLElBQUEsRUFBQSxJQUFBO0VBQUE7O0FBQUEsUUFBQSxHQUFXLFFBQUEsQ0FBQyxDQUFELENBQUE7U0FBTztBQUFQOztBQUVYLElBQUEsR0FBTyxRQUFBLENBQUMsQ0FBRCxDQUFBO1NBQU8sUUFBQSxDQUFBLENBQUE7V0FBRztFQUFIO0FBQVAsRUFGUDs7OztBQU1BLEtBQUEsR0FBUyxRQUFBLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FBQTtBQUNQLFVBQU8sQ0FBUDtBQUFBLFNBQ08sQ0FEUDthQUVJLFFBQUEsQ0FBQSxHQUFDLEVBQUQsQ0FBQTtlQUFXLENBQUMsQ0FBQyxLQUFGLENBQVEsSUFBUixFQUFXLEVBQVg7TUFBWDtBQUZKLFNBR08sQ0FIUDthQUlJLFFBQUEsQ0FBQyxFQUFELENBQUE7ZUFBUSxDQUFDLENBQUMsS0FBRixDQUFRLElBQVIsRUFBVyxTQUFYO01BQVI7QUFKSixTQUtPLENBTFA7YUFNSSxRQUFBLENBQUMsRUFBRCxFQUFLLEVBQUwsQ0FBQTtlQUFhLENBQUMsQ0FBQyxLQUFGLENBQVEsSUFBUixFQUFXLFNBQVg7TUFBYjtBQU5K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QmIsSUFqQmEsRUFrQmIsS0FsQmEsRUFtQmIsUUFuQmEsRUFvQmIsS0FwQmEsRUFxQmIsR0FyQmEsRUFzQmIsSUF0QmEsRUF1QmIsSUF2QmEsRUF3QmIsT0F4QmEsRUF5QmIsS0F6QmEsRUEwQmIsSUExQmEsRUEyQmIsTUEzQmEsRUE0QmIsSUE1QmEsRUE2QmIsS0E3QmEsRUE4QmIsR0E5QmEsRUErQmIsS0EvQmEiLCJzb3VyY2VzQ29udGVudCI6WyJpZGVudGl0eSA9ICh4KSAtPiB4XG5cbndyYXAgPSAoeCkgLT4gLT4geFxuXG4jIEJhc2VkIG9uIF9hcml0eSBmcm9tIFJhbWJkYTpcbiMgaHR0cHM6Ly9naXRodWIuY29tL3JhbWRhL3JhbWRhL2Jsb2IvdjAuMjYuMS9zb3VyY2UvaW50ZXJuYWwvX2FyaXR5LmpzXG5hcml0eSAgPSAoTiwgZikgLT5cbiAgc3dpdGNoIE5cbiAgICB3aGVuIDBcbiAgICAgIChheC4uLikgLT4gZi5hcHBseSBALCBheFxuICAgIHdoZW4gMVxuICAgICAgKGEwKSAtPiBmLmFwcGx5IEAsIGFyZ3VtZW50c1xuICAgIHdoZW4gMlxuICAgICAgKGEwLCBhMSkgIC0+IGYuYXBwbHkgQCwgYXJndW1lbnRzXG4gICAgd2hlbiAzXG4gICAgICAoYTAsIGExLCBhMikgLT4gZi5hcHBseSBALCBhcmd1bWVudHNcbiAgICB3aGVuIDRcbiAgICAgIChhMCwgYTEsIGEyLCBhMykgLT4gZi5hcHBseSBALCBhcmd1bWVudHNcbiAgICB3aGVuIDVcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQpIC0+IGYuYXBwbHkgQCwgYXJndW1lbnRzXG4gICAgd2hlbiA2XG4gICAgICAoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSkgLT4gZi5hcHBseSBALCBhcmd1bWVudHNcbiAgICB3aGVuIDdcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgLT4gZi5hcHBseSBALCBhcmd1bWVudHNcbiAgICB3aGVuIDhcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIC0+IGYuYXBwbHkgQCwgYXJndW1lbnRzXG4gICAgd2hlbiA5XG4gICAgICAoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgLT4gZi5hcHBseSBALCBhcmd1bWVudHNcbiAgICB3aGVuIDEwXG4gICAgICAoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpIC0+IGYuYXBwbHkgQCwgYXJndW1lbnRzXG4gICAgZWxzZVxuICAgICAgdGhyb3cgbmV3IEVycm9yIFwiRmlyc3QgYXJndW1lbnQgdG8gYXJpdHkgbXVzdCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgMTAsIGluY2x1c2l2ZS5cIlxuXG51bmFyeSA9IChmKSAtPiBhcml0eSAxLCBmXG5cbmJpbmFyeSA9IChmKSAtPiBhcml0eSAyLCBmXG5cbnRlcm5hcnkgPSAoZikgLT4gYXJpdHkgMywgZlxuXG5mbGlwID0gKGYpIC0+XG4gIHN3aXRjaCBmLmxlbmd0aFxuICAgIHdoZW4gMFxuICAgICAgZlxuICAgIHdoZW4gMVxuICAgICAgKGEwKSAtPiBmLmNhbGwgQCwgYTBcbiAgICB3aGVuIDJcbiAgICAgIChhMCwgYTEpICAtPiBmLmNhbGwgQCwgYTEsIGEwXG4gICAgd2hlbiAzXG4gICAgICAoYTAsIGExLCBhMikgLT4gZi5jYWxsIEAsIGEyLCBhMSwgYTBcbiAgICB3aGVuIDRcbiAgICAgIChhMCwgYTEsIGEyLCBhMykgLT4gZi5jYWxsIEAsIGEzLCBhMiwgYTEsIGEwXG4gICAgd2hlbiA1XG4gICAgICAoYTAsIGExLCBhMiwgYTMsIGE0KSAtPiBmLmNhbGwgQCwgYTQsIGEzLCBhMiwgYTEsIGEwXG4gICAgd2hlbiA2XG4gICAgICAoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSkgLT4gZi5jYWxsIEAsIGE1LCBhNCwgYTMsIGEyLCBhMSwgYTBcbiAgICB3aGVuIDdcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgLT4gZi5jYWxsIEAsIGE2LCBhNCwgYTMsIGEyLCBhMSwgYTBcbiAgICB3aGVuIDhcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIC0+XG4gICAgICAgIGYuY2FsbCBALCBhNywgYTYsIGE1LCBhNCwgYTMsIGEyLCBhMSwgYTBcbiAgICB3aGVuIDlcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSAtPlxuICAgICAgICBmLmNhbGwgQCwgYTgsIGE3LCBhNiwgYTUsIGE0LCBhMywgYTIsIGExLCBhMFxuICAgIHdoZW4gMTBcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkgLT5cbiAgICAgICAgZi5jYWxsIEAsIGE5LCBhOCwgYTcsIGE2LCBhNSwgYTQsIGEzLCBhMiwgYTEsIGEwXG4gICAgZWxzZVxuICAgICAgKGF4Li4uKSAtPiBmLmFwcGx5IEAsIGF4LnJldmVyc2UoKVxuXG5jdXJyeSA9IChmKSAtPlxuICBpZiBmLmxlbmd0aCA+IDFcbiAgICBhcml0eSBmLmxlbmd0aCwgKGF4Li4uKSAtPlxuICAgICAgc2VsZiA9IEBcbiAgICAgIGlmIGF4Lmxlbmd0aCA+PSBmLmxlbmd0aFxuICAgICAgICBmLmFwcGx5IHNlbGYsIGF4XG4gICAgICBlbHNlXG4gICAgICAgIGxlbmd0aCA9IGYubGVuZ3RoIC0gYXgubGVuZ3RoXG4gICAgICAgIGlmIGxlbmd0aCA9PSAxXG4gICAgICAgICAgKHgpIC0+IGYuYXBwbHkgc2VsZiwgWyBheC4uLiwgeCBdXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBjdXJyeSBhcml0eSBsZW5ndGgsIChieC4uLikgLT4gZi5hcHBseSBzZWxmLCBbIGF4Li4uLCBieC4uLiBdXG4gIGVsc2UgZlxuXG5fID0ge31cblxuc3Vic3RpdHV0ZSA9IGN1cnJ5IChheCwgYngpIC0+XG4gIGkgPSAwXG4gIGZvciBhIGluIGF4XG4gICAgaWYgYSA9PSBfXG4gICAgICBieFtpKytdXG4gICAgZWxzZVxuICAgICAgYVxuXG5wYXJ0aWFsID0gKGYsIGF4KSAtPlxuICBuID0gMFxuICBmb3IgYSBpbiBheCB3aGVuIGEgPT0gX1xuICAgIG4rK1xuICBhcml0eSBuLCAoYnguLi4pIC0+IGYgKHN1YnN0aXR1dGUgYXgsIGJ4KS4uLlxuXG5zcHJlYWQgPSAoZikgLT4gKGF4KSAtPiBmIGF4Li4uXG5cbnN0YWNrID0gKGYpIC0+IChheC4uLikgLT4gZiBheFxuXG5waXBlID0gKFsgZiwgZ3guLi4gXSkgLT5cbiAgaWYgZ3gubGVuZ3RoID09IDBcbiAgICBmID8gaWRlbnRpdHlcbiAgZWxzZVxuICAgIGRvICh7IGcgfSA9IHt9KSAtPlxuICAgICAgZyA9IHBpcGUgZ3hcbiAgICAgIGFyaXR5ICggZi5sZW5ndGggKSwgKCBhcmdzLi4uICkgLT5cbiAgICAgICAgZG8gKHsgc2VsZiwgeCB9ID0geyBzZWxmOiBAIH0pIC0+XG4gICAgICAgICAgeCA9IGYuYXBwbHkgc2VsZiwgYXJnc1xuICAgICAgICAgIGlmIHg/LnRoZW4/XG4gICAgICAgICAgICB4LnRoZW4gKCBnLmJpbmQgc2VsZiApXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZy5jYWxsIHNlbGYsIHhcblxuZmxvdyA9IHBpcGVcblxuY29tcG9zZSA9IChmeCkgLT4gcGlwZSBmeC5yZXZlcnNlKClcblxuYnBpcGUgPSBwaXBlXG5cbmJmbG93ID0gcGlwZVxuXG5iY29tcG9zZSA9IChmeCkgLT4gYnBpcGUgZngucmV2ZXJzZSgpXG5cbndhaXQgPSAoZikgLT5cbiAgYXJpdHkgZi5sZW5ndGgsIChheC4uLikgLT5cbiAgICBQcm9taXNlLmFsbCBheFxuICAgICAgLnRoZW4gKGF4KSAtPiBmIGF4Li4uXG5cbnRlZSA9IChmKSAtPlxuICBhcml0eSAoTWF0aC5tYXggZi5sZW5ndGgsIDEpLCAoYSwgYnguLi4pIC0+XG4gICAgaWYgKGsgPSAoZi5hcHBseSBALCBbIGEsIGJ4Li4uIF0pKT8udGhlbj9cbiAgICAgIGsudGhlbiAtPiBhXG4gICAgZWxzZVxuICAgICAgYVxuXG5ydGVlID0gKGYpIC0+XG4gIGFyaXR5IChNYXRoLm1heCBmLmxlbmd0aCwgMSksIChheC4uLiwgYikgLT5cbiAgICBpZiAoayA9IChmLmFwcGx5IEAsIFsgYXguLi4sIGIgXSkpPy50aGVuP1xuICAgICAgay50aGVuIC0+IGJcbiAgICBlbHNlXG4gICAgICBiXG5cbm9uY2UgPSAoZikgLT5cbiAgZG8gKGs9dW5kZWZpbmVkKSAtPlxuICAgIGFyaXR5IGYubGVuZ3RoLFxuICAgICAgKGF4Li4uKSAtPiBpZiBrPyB0aGVuIGsgZWxzZSAoayA9IGYuYXBwbHkgQCwgYXgpXG5cbm1lbW9pemUgPSAoZikgLT5cbiAgZG8gKGNhY2hlID0ge30pIC0+XG4gICAgYXJpdHkgZi5sZW5ndGgsIChheC4uLikgLT5cbiAgICAgIGNhY2hlWyBKU09OLnN0cmluZ2lmeSBheCBdID89IGYuYXBwbHkgQCwgYXhcblxuYXBwbHkgPSBjdXJyeSAoZiwgYXgpIC0+IGYuYXBwbHkgbnVsbCwgYXhcblxuYmluZCA9IGN1cnJ5IChmLCB4KSAtPiBmLmJpbmQgeFxuXG5kZXRhY2ggPSAoZikgLT5cbiAgY3VycnkgYXJpdHkgKGYubGVuZ3RoICsgMSksIFxuICAgICh4LCBhcmdzLi4uKSAtPiBmLmFwcGx5IHgsIGFyZ3Ncblxuc2VuZCA9IGN1cnJ5IChuYW1lLCBheCwgb2JqZWN0KSAtPiBvYmplY3RbbmFtZV0uYXBwbHkgb2JqZWN0LCBheFxuXG5pc1Byb21pc2UgPSAoaykgLT4gayBpbnN0YW5jZW9mIFByb21pc2VcblxuY2hhaW4gPSAoZikgLT5cbiAgYXJpdHkgKE1hdGgubWF4IGYubGVuZ3RoLCAxKSwgKGF4Li4uKSAtPlxuICAgIGlmIChpc1Byb21pc2UgKGsgPSAoZi5hcHBseSBALCBheCkpKVxuICAgICAgay50aGVuID0+IEBcbiAgICBlbHNlXG4gICAgICBAXG5cbm1hcCA9ICggZnggKSAtPlxuICBkbyAoeyBsZW5ndGhzLCBsZW5ndGggfSA9IHt9KSAtPlxuICAgIGxlbmd0aHMgPSBmeC5tYXAgKCBmICkgLT4gZi5sZW5ndGhcbiAgICBsZW5ndGggPSBNYXRoLm1heCBsZW5ndGhzLi4uXG4gICAgYXJpdHkgbGVuZ3RoLCAoIGFyZ3MuLi4gKSAtPlxuICAgICAgKCBmLmFwcGx5IEAsIGFyZ3MgKSBmb3IgZiBpbiBmeFxuXG5wcm94eSA9IGN1cnJ5IChuYW1lLCBheCkgLT5cbiAgKGJ4Li4uKSAtPiBAW25hbWVdLmFwcGx5IEAsIFsgYXguLi4sIGJ4Li4uIF1cblxuZXhwb3J0IHtcbiAgaWRlbnRpdHlcbiAgd3JhcFxuICBhcml0eVxuICB1bmFyeVxuICBiaW5hcnlcbiAgdGVybmFyeVxuICBmbGlwXG4gIGN1cnJ5XG4gIF9cbiAgc3Vic3RpdHV0ZVxuICBwYXJ0aWFsXG4gIHNwcmVhZFxuICBzdGFja1xuICBwaXBlXG4gIGNvbXBvc2VcbiAgd2FpdFxuICBmbG93XG4gIGJwaXBlXG4gIGJjb21wb3NlXG4gIGJmbG93XG4gIHRlZVxuICBydGVlXG4gIG9uY2VcbiAgbWVtb2l6ZVxuICBhcHBseVxuICBiaW5kXG4gIGRldGFjaFxuICBzZW5kXG4gIGNoYWluXG4gIG1hcFxuICBwcm94eVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGlkZW50aXR5XG4gIHdyYXBcbiAgYXJpdHlcbiAgdW5hcnlcbiAgYmluYXJ5XG4gIHRlcm5hcnlcbiAgZmxpcFxuICBjdXJyeVxuICBfXG4gIHN1YnN0aXR1dGVcbiAgcGFydGlhbFxuICBzcHJlYWRcbiAgc3RhY2tcbiAgcGlwZVxuICBjb21wb3NlXG4gIHdhaXRcbiAgZmxvd1xuICBicGlwZVxuICBiY29tcG9zZVxuICBiZmxvd1xuICB0ZWVcbiAgcnRlZVxuICBvbmNlXG4gIG1lbW9pemVcbiAgYXBwbHlcbiAgYmluZFxuICBkZXRhY2hcbiAgc2VuZFxuICBjaGFpblxuICBtYXBcbiAgcHJveHlcbn1cbiJdfQ==
364
+ //# sourceURL=/@dashkite/joy/src/function.coffee
365
+
366
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyIvQGRhc2hraXRlL2pveS9zcmMvZnVuY3Rpb24uY29mZmVlIl0sInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpZGVudGl0eSA9ICh4KSAtPiB4XG5cbndyYXAgPSAoeCkgLT4gLT4geFxuXG4jIEJhc2VkIG9uIF9hcml0eSBmcm9tIFJhbWJkYTpcbiMgaHR0cHM6Ly9naXRodWIuY29tL3JhbWRhL3JhbWRhL2Jsb2IvdjAuMjYuMS9zb3VyY2UvaW50ZXJuYWwvX2FyaXR5LmpzXG5hcml0eSAgPSAoTiwgZikgLT5cbiAgc3dpdGNoIE5cbiAgICB3aGVuIDBcbiAgICAgIChheC4uLikgLT4gZi5hcHBseSBALCBheFxuICAgIHdoZW4gMVxuICAgICAgKGEwKSAtPiBmLmFwcGx5IEAsIGFyZ3VtZW50c1xuICAgIHdoZW4gMlxuICAgICAgKGEwLCBhMSkgIC0+IGYuYXBwbHkgQCwgYXJndW1lbnRzXG4gICAgd2hlbiAzXG4gICAgICAoYTAsIGExLCBhMikgLT4gZi5hcHBseSBALCBhcmd1bWVudHNcbiAgICB3aGVuIDRcbiAgICAgIChhMCwgYTEsIGEyLCBhMykgLT4gZi5hcHBseSBALCBhcmd1bWVudHNcbiAgICB3aGVuIDVcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQpIC0+IGYuYXBwbHkgQCwgYXJndW1lbnRzXG4gICAgd2hlbiA2XG4gICAgICAoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSkgLT4gZi5hcHBseSBALCBhcmd1bWVudHNcbiAgICB3aGVuIDdcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgLT4gZi5hcHBseSBALCBhcmd1bWVudHNcbiAgICB3aGVuIDhcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIC0+IGYuYXBwbHkgQCwgYXJndW1lbnRzXG4gICAgd2hlbiA5XG4gICAgICAoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCkgLT4gZi5hcHBseSBALCBhcmd1bWVudHNcbiAgICB3aGVuIDEwXG4gICAgICAoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpIC0+IGYuYXBwbHkgQCwgYXJndW1lbnRzXG4gICAgZWxzZVxuICAgICAgdGhyb3cgbmV3IEVycm9yIFwiRmlyc3QgYXJndW1lbnQgdG8gYXJpdHkgbXVzdCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgMTAsIGluY2x1c2l2ZS5cIlxuXG51bmFyeSA9IChmKSAtPiBhcml0eSAxLCBmXG5cbmJpbmFyeSA9IChmKSAtPiBhcml0eSAyLCBmXG5cbnRlcm5hcnkgPSAoZikgLT4gYXJpdHkgMywgZlxuXG5mbGlwID0gKGYpIC0+XG4gIHN3aXRjaCBmLmxlbmd0aFxuICAgIHdoZW4gMFxuICAgICAgZlxuICAgIHdoZW4gMVxuICAgICAgKGEwKSAtPiBmLmNhbGwgQCwgYTBcbiAgICB3aGVuIDJcbiAgICAgIChhMCwgYTEpICAtPiBmLmNhbGwgQCwgYTEsIGEwXG4gICAgd2hlbiAzXG4gICAgICAoYTAsIGExLCBhMikgLT4gZi5jYWxsIEAsIGEyLCBhMSwgYTBcbiAgICB3aGVuIDRcbiAgICAgIChhMCwgYTEsIGEyLCBhMykgLT4gZi5jYWxsIEAsIGEzLCBhMiwgYTEsIGEwXG4gICAgd2hlbiA1XG4gICAgICAoYTAsIGExLCBhMiwgYTMsIGE0KSAtPiBmLmNhbGwgQCwgYTQsIGEzLCBhMiwgYTEsIGEwXG4gICAgd2hlbiA2XG4gICAgICAoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSkgLT4gZi5jYWxsIEAsIGE1LCBhNCwgYTMsIGEyLCBhMSwgYTBcbiAgICB3aGVuIDdcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikgLT4gZi5jYWxsIEAsIGE2LCBhNCwgYTMsIGEyLCBhMSwgYTBcbiAgICB3aGVuIDhcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcpIC0+XG4gICAgICAgIGYuY2FsbCBALCBhNywgYTYsIGE1LCBhNCwgYTMsIGEyLCBhMSwgYTBcbiAgICB3aGVuIDlcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSAtPlxuICAgICAgICBmLmNhbGwgQCwgYTgsIGE3LCBhNiwgYTUsIGE0LCBhMywgYTIsIGExLCBhMFxuICAgIHdoZW4gMTBcbiAgICAgIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSkgLT5cbiAgICAgICAgZi5jYWxsIEAsIGE5LCBhOCwgYTcsIGE2LCBhNSwgYTQsIGEzLCBhMiwgYTEsIGEwXG4gICAgZWxzZVxuICAgICAgKGF4Li4uKSAtPiBmLmFwcGx5IEAsIGF4LnJldmVyc2UoKVxuXG5jdXJyeSA9IChmKSAtPlxuICBpZiBmLmxlbmd0aCA+IDFcbiAgICBhcml0eSBmLmxlbmd0aCwgKGF4Li4uKSAtPlxuICAgICAgc2VsZiA9IEBcbiAgICAgIGlmIGF4Lmxlbmd0aCA+PSBmLmxlbmd0aFxuICAgICAgICBmLmFwcGx5IHNlbGYsIGF4XG4gICAgICBlbHNlXG4gICAgICAgIGxlbmd0aCA9IGYubGVuZ3RoIC0gYXgubGVuZ3RoXG4gICAgICAgIGlmIGxlbmd0aCA9PSAxXG4gICAgICAgICAgKHgpIC0+IGYuYXBwbHkgc2VsZiwgWyBheC4uLiwgeCBdXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBjdXJyeSBhcml0eSBsZW5ndGgsIChieC4uLikgLT4gZi5hcHBseSBzZWxmLCBbIGF4Li4uLCBieC4uLiBdXG4gIGVsc2UgZlxuXG5fID0ge31cblxuc3Vic3RpdHV0ZSA9IGN1cnJ5IChheCwgYngpIC0+XG4gIGkgPSAwXG4gIGZvciBhIGluIGF4XG4gICAgaWYgYSA9PSBfXG4gICAgICBieFtpKytdXG4gICAgZWxzZVxuICAgICAgYVxuXG5wYXJ0aWFsID0gKGYsIGF4KSAtPlxuICBuID0gMFxuICBmb3IgYSBpbiBheCB3aGVuIGEgPT0gX1xuICAgIG4rK1xuICBhcml0eSBuLCAoYnguLi4pIC0+IGYgKHN1YnN0aXR1dGUgYXgsIGJ4KS4uLlxuXG5zcHJlYWQgPSAoZikgLT4gKGF4KSAtPiBmIGF4Li4uXG5cbnN0YWNrID0gKGYpIC0+IChheC4uLikgLT4gZiBheFxuXG5waXBlID0gKFsgZiwgZ3guLi4gXSkgLT5cbiAgaWYgZ3gubGVuZ3RoID09IDBcbiAgICBmID8gaWRlbnRpdHlcbiAgZWxzZVxuICAgIGRvICh7IGcgfSA9IHt9KSAtPlxuICAgICAgZyA9IHBpcGUgZ3hcbiAgICAgIGFyaXR5ICggZi5sZW5ndGggKSwgKCBhcmdzLi4uICkgLT5cbiAgICAgICAgZG8gKHsgc2VsZiwgeCB9ID0geyBzZWxmOiBAIH0pIC0+XG4gICAgICAgICAgeCA9IGYuYXBwbHkgc2VsZiwgYXJnc1xuICAgICAgICAgIGlmIHg/LnRoZW4/XG4gICAgICAgICAgICB4LnRoZW4gKCBnLmJpbmQgc2VsZiApXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZy5jYWxsIHNlbGYsIHhcblxuZmxvdyA9IHBpcGVcblxuY29tcG9zZSA9IChmeCkgLT4gcGlwZSBmeC5yZXZlcnNlKClcblxuYnBpcGUgPSBwaXBlXG5cbmJmbG93ID0gcGlwZVxuXG5iY29tcG9zZSA9IChmeCkgLT4gYnBpcGUgZngucmV2ZXJzZSgpXG5cbndhaXQgPSAoZikgLT5cbiAgYXJpdHkgZi5sZW5ndGgsIChheC4uLikgLT5cbiAgICBQcm9taXNlLmFsbCBheFxuICAgICAgLnRoZW4gKGF4KSAtPiBmIGF4Li4uXG5cbnRlZSA9IChmKSAtPlxuICBhcml0eSAoTWF0aC5tYXggZi5sZW5ndGgsIDEpLCAoYSwgYnguLi4pIC0+XG4gICAgaWYgKGsgPSAoZi5hcHBseSBALCBbIGEsIGJ4Li4uIF0pKT8udGhlbj9cbiAgICAgIGsudGhlbiAtPiBhXG4gICAgZWxzZVxuICAgICAgYVxuXG5ydGVlID0gKGYpIC0+XG4gIGFyaXR5IChNYXRoLm1heCBmLmxlbmd0aCwgMSksIChheC4uLiwgYikgLT5cbiAgICBpZiAoayA9IChmLmFwcGx5IEAsIFsgYXguLi4sIGIgXSkpPy50aGVuP1xuICAgICAgay50aGVuIC0+IGJcbiAgICBlbHNlXG4gICAgICBiXG5cbm9uY2UgPSAoZikgLT5cbiAgZG8gKGs9dW5kZWZpbmVkKSAtPlxuICAgIGFyaXR5IGYubGVuZ3RoLFxuICAgICAgKGF4Li4uKSAtPiBpZiBrPyB0aGVuIGsgZWxzZSAoayA9IGYuYXBwbHkgQCwgYXgpXG5cbm1lbW9pemUgPSAoZikgLT5cbiAgZG8gKGNhY2hlID0ge30pIC0+XG4gICAgYXJpdHkgZi5sZW5ndGgsIChheC4uLikgLT5cbiAgICAgIGNhY2hlWyBKU09OLnN0cmluZ2lmeSBheCBdID89IGYuYXBwbHkgQCwgYXhcblxuYXBwbHkgPSBjdXJyeSAoZiwgYXgpIC0+IGYuYXBwbHkgbnVsbCwgYXhcblxuYmluZCA9IGN1cnJ5IChmLCB4KSAtPiBmLmJpbmQgeFxuXG5kZXRhY2ggPSAoZikgLT5cbiAgY3VycnkgYXJpdHkgKGYubGVuZ3RoICsgMSksIFxuICAgICh4LCBhcmdzLi4uKSAtPiBmLmFwcGx5IHgsIGFyZ3Ncblxuc2VuZCA9IGN1cnJ5IChuYW1lLCBheCwgb2JqZWN0KSAtPiBvYmplY3RbbmFtZV0uYXBwbHkgb2JqZWN0LCBheFxuXG5pc1Byb21pc2UgPSAoaykgLT4gayBpbnN0YW5jZW9mIFByb21pc2VcblxuY2hhaW4gPSAoZikgLT5cbiAgYXJpdHkgKE1hdGgubWF4IGYubGVuZ3RoLCAxKSwgKGF4Li4uKSAtPlxuICAgIGlmIChpc1Byb21pc2UgKGsgPSAoZi5hcHBseSBALCBheCkpKVxuICAgICAgay50aGVuID0+IEBcbiAgICBlbHNlXG4gICAgICBAXG5cbm1hcCA9ICggZnggKSAtPlxuICBkbyAoeyBsZW5ndGhzLCBsZW5ndGggfSA9IHt9KSAtPlxuICAgIGxlbmd0aHMgPSBmeC5tYXAgKCBmICkgLT4gZi5sZW5ndGhcbiAgICBsZW5ndGggPSBNYXRoLm1heCBsZW5ndGhzLi4uXG4gICAgYXJpdHkgbGVuZ3RoLCAoIGFyZ3MuLi4gKSAtPlxuICAgICAgKCBmLmFwcGx5IEAsIGFyZ3MgKSBmb3IgZiBpbiBmeFxuXG5wcm94eSA9IGN1cnJ5IChuYW1lLCBheCkgLT5cbiAgKGJ4Li4uKSAtPiBAW25hbWVdLmFwcGx5IEAsIFsgYXguLi4sIGJ4Li4uIF1cblxuZXhwb3J0IHtcbiAgaWRlbnRpdHlcbiAgd3JhcFxuICBhcml0eVxuICB1bmFyeVxuICBiaW5hcnlcbiAgdGVybmFyeVxuICBmbGlwXG4gIGN1cnJ5XG4gIF9cbiAgc3Vic3RpdHV0ZVxuICBwYXJ0aWFsXG4gIHNwcmVhZFxuICBzdGFja1xuICBwaXBlXG4gIGNvbXBvc2VcbiAgd2FpdFxuICBmbG93XG4gIGJwaXBlXG4gIGJjb21wb3NlXG4gIGJmbG93XG4gIHRlZVxuICBydGVlXG4gIG9uY2VcbiAgbWVtb2l6ZVxuICBhcHBseVxuICBiaW5kXG4gIGRldGFjaFxuICBzZW5kXG4gIGNoYWluXG4gIG1hcFxuICBwcm94eVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGlkZW50aXR5XG4gIHdyYXBcbiAgYXJpdHlcbiAgdW5hcnlcbiAgYmluYXJ5XG4gIHRlcm5hcnlcbiAgZmxpcFxuICBjdXJyeVxuICBfXG4gIHN1YnN0aXR1dGVcbiAgcGFydGlhbFxuICBzcHJlYWRcbiAgc3RhY2tcbiAgcGlwZVxuICBjb21wb3NlXG4gIHdhaXRcbiAgZmxvd1xuICBicGlwZVxuICBiY29tcG9zZVxuICBiZmxvd1xuICB0ZWVcbiAgcnRlZVxuICBvbmNlXG4gIG1lbW9pemVcbiAgYXBwbHlcbiAgYmluZFxuICBkZXRhY2hcbiAgc2VuZFxuICBjaGFpblxuICBtYXBcbiAgcHJveHlcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFBLENBQUEsRUFBQSxLQUFBLEVBQUEsS0FBQSxFQUFBLFFBQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxLQUFBLEVBQUEsS0FBQSxFQUFBLE9BQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxJQUFBLEVBQUEsUUFBQSxFQUFBLFNBQUEsRUFBQSxHQUFBLEVBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsSUFB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