@dashkite/joy 0.3.15 → 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,430 +1,417 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- exports.uniqueBy = exports.tap = exports.start = exports.select = exports.resolve = exports.reject = exports.reduce = exports.project = exports.partition = exports.map = exports.join = exports.includes = exports.find = exports.events = exports.each = exports.collect = exports.Queue = void 0;
7
-
8
- var _generic = require("./generic.js");
9
-
10
- var _function = require("./function.js");
11
-
12
- var _predicate = require("./predicate.js");
13
-
14
- var _type = require("./type.js");
15
-
16
- var _object = require("./object.js");
17
-
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ Queue: function() {
13
+ return Queue;
14
+ },
15
+ collect: function() {
16
+ return collect;
17
+ },
18
+ each: function() {
19
+ return each;
20
+ },
21
+ events: function() {
22
+ return events;
23
+ },
24
+ find: function() {
25
+ return find;
26
+ },
27
+ includes: function() {
28
+ return includes;
29
+ },
30
+ join: function() {
31
+ return join;
32
+ },
33
+ map: function() {
34
+ return map;
35
+ },
36
+ partition: function() {
37
+ return partition;
38
+ },
39
+ project: function() {
40
+ return project;
41
+ },
42
+ reduce: function() {
43
+ return reduce;
44
+ },
45
+ reject: function() {
46
+ return reject;
47
+ },
48
+ resolve: function() {
49
+ return resolve;
50
+ },
51
+ select: function() {
52
+ return select;
53
+ },
54
+ start: function() {
55
+ return start;
56
+ },
57
+ tap: function() {
58
+ return tap;
59
+ },
60
+ uniqueBy: function() {
61
+ return uniqueBy;
62
+ }
63
+ });
64
+ const _generic = require("./generic");
65
+ const _function = require("./function");
66
+ const _predicate = require("./predicate");
67
+ const _type = require("./type");
68
+ const _object = require("./object");
69
+ const _value = require("./value");
18
70
  var Queue, _includes, collect, each, events, find, fold, includes, isAny, join, map, partition, project, reduce, reject, resolve, select, start, tap, uniqueBy;
19
-
20
- exports.uniqueBy = uniqueBy;
21
- exports.tap = tap;
22
- exports.start = start;
23
- exports.select = select;
24
- exports.resolve = resolve;
25
- exports.reject = reject;
26
- exports.reduce = reduce;
27
- exports.project = project;
28
- exports.partition = partition;
29
- exports.map = map;
30
- exports.join = join;
31
- exports.includes = includes;
32
- exports.find = find;
33
- exports.events = events;
34
- exports.each = each;
35
- exports.collect = collect;
36
- exports.Queue = Queue;
37
71
  isAny = (0, _function.wrap)(true);
38
72
  _includes = (0, _generic.generic)({
39
- name: "includes"
40
- });
41
- (0, _generic.generic)(_includes, (0, _function.wrap)(true), _type.isReagent, async function (a, ax) {
42
- var _a;
43
-
44
- for await (_a of ax) {
45
- if (Object.is(a, _a)) {
46
- return true;
73
+ name: "includes"
74
+ });
75
+ (0, _generic.generic)(_includes, (0, _function.wrap)(true), _type.isReagent, async function(a, ax) {
76
+ var _a;
77
+ for await (_a of ax){
78
+ if (Object.is(a, _a)) {
79
+ return true;
80
+ }
47
81
  }
48
- }
49
-
50
- return false;
51
- });
52
- (0, _generic.generic)(_includes, (0, _function.wrap)(true), _type.isIterable, function (a, ax) {
53
- var _a;
54
-
55
- for (_a of ax) {
56
- if (Object.is(a, _a)) {
57
- return true;
82
+ return false;
83
+ });
84
+ (0, _generic.generic)(_includes, (0, _function.wrap)(true), _type.isIterable, function(a, ax) {
85
+ var _a;
86
+ for (_a of ax){
87
+ if (Object.is(a, _a)) {
88
+ return true;
89
+ }
58
90
  }
59
- }
60
-
61
- return false;
62
- });
63
- (0, _generic.generic)(_includes, (0, _function.wrap)(true), _type.isArray, function (a, ax) {
64
- return ax.includes(a);
65
- });
66
- exports.includes = includes = (0, _function.curry)((0, _function.binary)(_includes));
67
-
68
- exports.uniqueBy = uniqueBy = function (f, ax) {
69
- var a, bx;
70
- bx = [];
71
-
72
- for (a of ax) {
73
- if (bx.find(function (b) {
74
- return f(a, b);
75
- }) == null) {
76
- bx.push(a);
91
+ return false;
92
+ });
93
+ (0, _generic.generic)(_includes, (0, _function.wrap)(true), _type.isArray, function(a, ax) {
94
+ return ax.includes(a);
95
+ });
96
+ includes = (0, _function.curry)((0, _function.binary)(_includes));
97
+ // TODO should this return an iterator?
98
+ uniqueBy = function(f, ax) {
99
+ var a, bx;
100
+ bx = [];
101
+ for (a of ax){
102
+ if (bx.find(function(b) {
103
+ return f(a, b);
104
+ }) == null) {
105
+ bx.push(a);
106
+ }
77
107
  }
78
- }
79
-
80
- return bx;
108
+ return bx;
81
109
  };
82
-
83
- exports.map = map = (0, _generic.generic)({
84
- name: "map"
85
- });
86
- (0, _generic.generic)(map, _type.isFunction, _type.isIterable, function* (f, i) {
87
- var results, x;
88
- results = [];
89
-
90
- for (x of i) {
91
- results.push(yield f(x));
92
- }
93
-
94
- return results;
95
- });
96
- (0, _generic.generic)(map, _type.isFunction, _type.isReagent, async function* (f, r) {
97
- var results, x;
98
- results = [];
99
-
100
- for await (x of r) {
101
- results.push(yield f(x));
102
- }
103
-
104
- return results;
105
- });
106
- (0, _generic.generic)(map, _type.isFunction, _type.isArray, function (f, ax) {
107
- return ax.map(function (x) {
108
- return f(x);
109
- });
110
- });
111
- exports.map = map = (0, _function.curry)((0, _function.binary)(map));
112
- exports.project = project = (0, _function.curry)(function (p, i) {
113
- return map((0, _object.get)(p), i);
114
- });
115
- exports.find = find = (0, _generic.generic)({
116
- name: "find"
117
- });
118
- (0, _generic.generic)(find, _type.isFunction, _type.isIterable, async function (f, i) {
119
- var x;
120
-
121
- for (x of i) {
122
- if ((await f(x)) === true) {
123
- return x;
110
+ map = (0, _generic.generic)({
111
+ name: "map"
112
+ });
113
+ (0, _generic.generic)(map, _type.isFunction, _type.isIterable, function*(f, i) {
114
+ var results, x;
115
+ results = [];
116
+ for (x of i){
117
+ results.push((yield f(x)));
124
118
  }
125
- }
126
-
127
- return void 0;
119
+ return results;
128
120
  });
129
- (0, _generic.generic)(find, _type.isFunction, _type.isReagent, async function (f, r) {
130
- var x;
131
-
132
- for await (x of r) {
133
- if ((await f(x)) === true) {
134
- return x;
121
+ (0, _generic.generic)(map, _type.isFunction, _type.isReagent, async function*(f, r) {
122
+ var results, x;
123
+ results = [];
124
+ for await (x of r){
125
+ results.push((yield f(x)));
135
126
  }
136
- }
137
-
138
- return void 0;
139
- });
140
- (0, _generic.generic)(find, _type.isFunction, _type.isArray, function (f, ax) {
141
- return ax.find(function (x) {
142
- return f(x);
143
- });
127
+ return results;
144
128
  });
145
- exports.find = find = (0, _function.curry)((0, _function.binary)(find));
146
- exports.tap = tap = (0, _generic.generic)({
147
- name: "tap"
148
- });
149
- (0, _generic.generic)(tap, _type.isFunction, _type.isIterable, function* (f, i) {
150
- var results, x;
151
- results = [];
152
-
153
- for (x of i) {
154
- results.push(yield (0, _function.tee)(f)(x));
155
- }
156
-
157
- return results;
129
+ (0, _generic.generic)(map, _type.isFunction, _type.isArray, function(f, ax) {
130
+ return ax.map(function(x) {
131
+ return f(x);
132
+ });
158
133
  });
159
- (0, _generic.generic)(tap, _type.isFunction, _type.isReagent, async function* (f, r) {
160
- var results, x;
161
- results = [];
162
-
163
- for await (x of r) {
164
- results.push(yield (0, _function.tee)(f)(x));
165
- }
166
-
167
- return results;
134
+ map = (0, _function.curry)((0, _function.binary)(map));
135
+ project = (0, _function.curry)(function(p, i) {
136
+ return map((0, _object.get)(p), i);
168
137
  });
169
- exports.tap = tap = (0, _function.curry)((0, _function.binary)(tap));
170
- exports.select = select = (0, _generic.generic)({
171
- name: "select"
138
+ find = (0, _generic.generic)({
139
+ name: "find"
172
140
  });
173
- (0, _generic.generic)(select, _type.isFunction, _type.isIterable, function* (f, i) {
174
- var results, x;
175
- results = [];
176
-
177
- for (x of i) {
178
- if (f(x)) {
179
- results.push(yield x);
141
+ (0, _generic.generic)(find, _type.isFunction, _type.isIterable, async function(f, i) {
142
+ var x;
143
+ for (x of i){
144
+ if (await f(x) === true) {
145
+ return x;
146
+ }
180
147
  }
181
- }
182
-
183
- return results;
184
- });
185
- (0, _generic.generic)(select, _type.isFunction, _type.isReagent, async function* (f, r) {
186
- var results, x;
187
- results = [];
188
-
189
- for await (x of r) {
190
- if (f(x)) {
191
- results.push(yield x);
148
+ return void 0;
149
+ });
150
+ (0, _generic.generic)(find, _type.isFunction, _type.isReagent, async function(f, r) {
151
+ var x;
152
+ for await (x of r){
153
+ if (await f(x) === true) {
154
+ return x;
155
+ }
192
156
  }
193
- }
194
-
195
- return results;
157
+ return void 0;
196
158
  });
197
- (0, _generic.generic)(select, _type.isFunction, _type.isArray, function (f, ax) {
198
- return ax.filter(f);
159
+ (0, _generic.generic)(find, _type.isFunction, _type.isArray, function(f, ax) {
160
+ return ax.find(function(x) {
161
+ return f(x);
162
+ });
199
163
  });
200
- exports.select = select = (0, _function.curry)((0, _function.binary)(select));
201
- exports.reject = reject = (0, _function.curry)(function (f, i) {
202
- return select((0, _predicate.negate)(f), i);
164
+ find = (0, _function.curry)((0, _function.binary)(find));
165
+ tap = (0, _generic.generic)({
166
+ name: "tap"
203
167
  });
204
- exports.resolve = resolve = (0, _function.curry)(async function* (filter, producer) {
205
- var ref, results, x;
206
- ref = filter(producer);
207
- results = [];
208
-
209
- for await (x of ref) {
210
- results.push(yield await x);
211
- }
212
-
213
- return results;
168
+ (0, _generic.generic)(tap, _type.isFunction, _type.isIterable, function*(f, i) {
169
+ var results, x;
170
+ results = [];
171
+ for (x of i){
172
+ results.push((yield (0, _function.tee)(f)(x)));
173
+ }
174
+ return results;
214
175
  });
215
- exports.collect = collect = (0, _generic.generic)({
216
- name: "start"
176
+ (0, _generic.generic)(tap, _type.isFunction, _type.isReagent, async function*(f, r) {
177
+ var results, x;
178
+ results = [];
179
+ for await (x of r){
180
+ results.push((yield (0, _function.tee)(f)(x)));
181
+ }
182
+ return results;
183
+ });
184
+ tap = (0, _function.curry)((0, _function.binary)(tap));
185
+ select = (0, _generic.generic)({
186
+ name: "select"
187
+ });
188
+ (0, _generic.generic)(select, _type.isFunction, _type.isIterable, function*(f, i) {
189
+ var results, x;
190
+ results = [];
191
+ for (x of i){
192
+ if (f(x)) {
193
+ results.push((yield x));
194
+ }
195
+ }
196
+ return results;
197
+ });
198
+ (0, _generic.generic)(select, _type.isFunction, _type.isReagent, async function*(f, r) {
199
+ var results, x;
200
+ results = [];
201
+ for await (x of r){
202
+ if (f(x)) {
203
+ results.push((yield x));
204
+ }
205
+ }
206
+ return results;
217
207
  });
218
- (0, _generic.generic)(collect, _type.isIterable, function (i) {
219
- return Array.from(i);
208
+ (0, _generic.generic)(select, _type.isFunction, _type.isArray, function(f, ax) {
209
+ return ax.filter(f);
220
210
  });
221
- (0, _generic.generic)(collect, _type.isReagent, async function (r) {
222
- var results, x;
223
- results = [];
224
-
225
- for await (x of r) {
226
- results.push(x);
227
- }
228
-
229
- return results;
211
+ select = (0, _function.curry)((0, _function.binary)(select));
212
+ reject = (0, _function.curry)(function(f, i) {
213
+ return select((0, _predicate.negate)(f), i);
230
214
  });
231
- exports.start = start = (0, _generic.generic)({
232
- name: "start"
215
+ resolve = (0, _function.curry)(async function*(filter, producer) {
216
+ var ref, results, x;
217
+ ref = filter(producer);
218
+ results = [];
219
+ for await (x of ref){
220
+ results.push((yield await x));
221
+ }
222
+ return results;
233
223
  });
234
- (0, _generic.generic)(start, _type.isIterable, function (i) {
235
- var x;
236
-
237
- for (x of i) {
238
- void 0;
239
- }
240
-
241
- return void 0;
224
+ collect = (0, _generic.generic)({
225
+ name: "start"
242
226
  });
243
- (0, _generic.generic)(start, _type.isReagent, async function (r) {
244
- var x;
245
-
246
- for await (x of r) {
247
- void 0;
248
- }
249
-
250
- return void 0;
227
+ (0, _generic.generic)(collect, _type.isIterable, function(i) {
228
+ return Array.from(i);
251
229
  });
252
- exports.each = each = (0, _generic.generic)({
253
- name: "each"
230
+ (0, _generic.generic)(collect, _type.isReagent, async function(r) {
231
+ var results, x;
232
+ results = [];
233
+ for await (x of r){
234
+ results.push(x);
235
+ }
236
+ return results;
254
237
  });
255
- (0, _generic.generic)(each, _type.isFunction, _type.isIterable, function (f, i) {
256
- var x;
257
-
258
- for (x of i) {
259
- f(x);
260
- }
261
-
262
- return void 0;
238
+ start = (0, _generic.generic)({
239
+ name: "start"
263
240
  });
264
- (0, _generic.generic)(each, _type.isFunction, _type.isReagent, async function (f, r) {
265
- var x;
266
-
267
- for await (x of r) {
268
- f(x);
269
- }
270
-
271
- return void 0;
241
+ (0, _generic.generic)(start, _type.isIterable, function(i) {
242
+ var x;
243
+ for (x of i){
244
+ void 0;
245
+ }
246
+ return void 0;
272
247
  });
273
- (0, _generic.generic)(each, _type.isFunction, _type.isArray, function (f, ax) {
274
- return ax.forEach(f);
248
+ (0, _generic.generic)(start, _type.isReagent, async function(r) {
249
+ var x;
250
+ for await (x of r){
251
+ void 0;
252
+ }
253
+ return void 0;
275
254
  });
276
- exports.each = each = (0, _function.curry)((0, _function.binary)(each));
277
- exports.reduce = reduce = (0, _generic.generic)({
278
- name: "fold/reduce"
255
+ each = (0, _generic.generic)({
256
+ name: "each"
279
257
  });
280
- (0, _generic.generic)(reduce, _type.isFunction, isAny, _type.isIterable, function (f, k, i) {
281
- var x;
282
-
283
- for (x of i) {
284
- k = f(k, x);
285
- }
286
-
287
- return k;
258
+ (0, _generic.generic)(each, _type.isFunction, _type.isIterable, function(f, i) {
259
+ var x;
260
+ for (x of i){
261
+ f(x);
262
+ }
263
+ return void 0;
288
264
  });
289
- (0, _generic.generic)(reduce, _type.isFunction, isAny, _type.isReagent, async function (f, k, r) {
290
- var x;
291
-
292
- for await (x of r) {
293
- k = f(k, x);
294
- }
295
-
296
- return k;
265
+ (0, _generic.generic)(each, _type.isFunction, _type.isReagent, async function(f, r) {
266
+ var x;
267
+ for await (x of r){
268
+ f(x);
269
+ }
270
+ return void 0;
297
271
  });
298
- (0, _generic.generic)(reduce, _type.isFunction, isAny, _type.isArray, function (f, k, ax) {
299
- return ax.reduce(f, k);
272
+ (0, _generic.generic)(each, _type.isFunction, _type.isArray, function(f, ax) {
273
+ return ax.forEach(f);
300
274
  });
301
- exports.reduce = reduce = fold = (0, _function.curry)((0, _function.ternary)(reduce));
302
- exports.join = join = (0, _generic.generic)({
303
- name: "join"
275
+ each = (0, _function.curry)((0, _function.binary)(each));
276
+ reduce = (0, _generic.generic)({
277
+ name: "fold/reduce"
304
278
  });
305
- (0, _generic.generic)(join, _type.isFunction, _type.isIterable, function (f, i) {
306
- var n, r, x;
307
- n = 0;
308
-
309
- for (x of i) {
310
- r = n++ > 0 ? f(r, x) : x;
311
- }
312
-
313
- return r;
279
+ (0, _generic.generic)(reduce, _type.isFunction, isAny, _type.isIterable, function(f, k, i) {
280
+ var x;
281
+ for (x of i){
282
+ k = f(k, x);
283
+ }
284
+ return k;
314
285
  });
315
- (0, _generic.generic)(join, _type.isFunction, _type.isReagent, async function (f, i) {
316
- var n, r, x;
317
- n = 0;
318
-
319
- for await (x of i) {
320
- r = n++ > 0 ? f(r, x) : x;
321
- }
322
-
323
- return r;
286
+ (0, _generic.generic)(reduce, _type.isFunction, isAny, _type.isReagent, async function(f, k, r) {
287
+ var x;
288
+ for await (x of r){
289
+ k = f(k, x);
290
+ }
291
+ return k;
324
292
  });
325
- (0, _generic.generic)(join, _type.isString, _type.isIterable, function (a, i) {
326
- return join(a, collect(i));
293
+ (0, _generic.generic)(reduce, _type.isFunction, isAny, _type.isArray, function(f, k, ax) {
294
+ return ax.reduce(f, k);
327
295
  });
328
- (0, _generic.generic)(join, _type.isString, _type.isReagent, async function (a, i) {
329
- return join(a, await collect(i));
296
+ reduce = fold = (0, _function.curry)((0, _function.ternary)(reduce));
297
+ join = (0, _generic.generic)({
298
+ name: "join"
330
299
  });
331
- (0, _generic.generic)(join, _type.isString, _type.isArray, function (a, ax) {
332
- return ax.join(a);
300
+ (0, _generic.generic)(join, _type.isFunction, _type.isIterable, function(f, i) {
301
+ var n, r, x;
302
+ n = 0;
303
+ for (x of i){
304
+ r = n++ > 0 ? f(r, x) : x;
305
+ }
306
+ return r;
333
307
  });
334
- exports.join = join = (0, _function.curry)((0, _function.binary)(join));
335
- exports.partition = partition = (0, _generic.generic)({
336
- name: "partition"
308
+ (0, _generic.generic)(join, _type.isFunction, _type.isReagent, async function(f, i) {
309
+ var n, r, x;
310
+ n = 0;
311
+ for await (x of i){
312
+ r = n++ > 0 ? f(r, x) : x;
313
+ }
314
+ return r;
315
+ });
316
+ (0, _generic.generic)(join, _type.isString, _type.isIterable, function(a, i) {
317
+ return join(a, collect(i));
318
+ });
319
+ (0, _generic.generic)(join, _type.isString, _type.isReagent, async function(a, i) {
320
+ return join(a, await collect(i));
321
+ });
322
+ (0, _generic.generic)(join, _type.isString, _type.isArray, function(a, ax) {
323
+ return ax.join(a);
324
+ });
325
+ join = (0, _function.curry)((0, _function.binary)(join));
326
+ partition = (0, _generic.generic)({
327
+ name: "partition"
328
+ });
329
+ (0, _generic.generic)(partition, _type.isNumber, _type.isIterable, function*(n, i) {
330
+ var batch, x;
331
+ batch = [];
332
+ for (x of i){
333
+ batch.push(x);
334
+ if (batch.length === n) {
335
+ yield batch;
336
+ batch = [];
337
+ }
338
+ }
339
+ if (batch.length > 0) {
340
+ return yield batch;
341
+ }
337
342
  });
338
- (0, _generic.generic)(partition, _type.isNumber, _type.isIterable, function* (n, i) {
339
- var batch, x;
340
- batch = [];
341
-
342
- for (x of i) {
343
- batch.push(x);
344
-
345
- if (batch.length === n) {
346
- yield batch;
347
- batch = [];
343
+ (0, _generic.generic)(partition, _type.isNumber, _type.isReagent, async function*(n, r) {
344
+ var batch, x;
345
+ batch = [];
346
+ for await (x of r){
347
+ batch.push(x);
348
+ if (batch.length === n) {
349
+ yield batch;
350
+ batch = [];
351
+ }
352
+ }
353
+ if (batch.length > 0) {
354
+ return yield batch;
348
355
  }
349
- }
350
-
351
- if (batch.length > 0) {
352
- return yield batch;
353
- }
354
356
  });
355
- (0, _generic.generic)(partition, _type.isNumber, _type.isReagent, async function* (n, r) {
356
- var batch, x;
357
- batch = [];
358
-
359
- for await (x of r) {
360
- batch.push(x);
361
-
362
- if (batch.length === n) {
363
- yield batch;
364
- batch = [];
357
+ Queue = class Queue {
358
+ static make() {
359
+ return new Queue();
365
360
  }
366
- }
367
-
368
- if (batch.length > 0) {
369
- return yield batch;
370
- }
371
- });
372
- exports.Queue = Queue = class Queue {
373
- static create() {
374
- return new Queue();
375
- }
376
-
377
- constructor() {
378
- this.q = [];
379
- this.p = [];
380
- }
381
-
382
- enqueue(value) {
383
- if (this.p.length > 0) {
384
- return (0, _function.apply)(this.p.shift(), [value]);
385
- } else {
386
- return this.q.push(value);
361
+ static create() {
362
+ return new Queue();
387
363
  }
388
- }
389
-
390
- dequeue() {
391
- if (this.q.length > 0) {
392
- return this.q.shift();
393
- } else {
394
- return new Promise(resolve => {
395
- return this.p.push(resolve);
396
- });
364
+ constructor(){
365
+ this.p = [];
366
+ this.q = [];
367
+ }
368
+ enqueue(value) {
369
+ if (this.p.length > 0) {
370
+ (0, _function.apply)(this.p.shift(), [
371
+ value
372
+ ]);
373
+ } else {
374
+ this.q.push(value);
375
+ }
376
+ return this;
377
+ }
378
+ dequeue() {
379
+ if (this.q.length > 0) {
380
+ return this.q.shift();
381
+ } else {
382
+ return new Promise((resolve)=>{
383
+ return this.p.push(resolve);
384
+ });
385
+ }
386
+ }
387
+ isIdle() {
388
+ return this.p.length === 0 && this.q.length === 0;
389
+ }
390
+ async *[Symbol.asyncIterator]() {
391
+ while(true){
392
+ yield await this.dequeue();
393
+ }
397
394
  }
398
- }
399
-
400
- isIdle() {
401
- return this.p.length === 0 && this.q.length === 0;
402
- }
403
-
404
395
  };
405
- exports.events = events = (0, _function.curry)(async function* (name, source) {
406
- var q, results;
407
- q = Queue.create();
408
-
409
- if (source.on != null) {
410
- source.on(name, function (event) {
411
- return q.enqueue(event);
412
- });
413
- } else if (source.addEventListener != null) {
414
- source.addEventListener(name, function (event) {
415
- return q.enqueue(event);
416
- });
417
- } else {
418
- throw new TypeError("events: source must support `on` or `addEventListener` method");
419
- }
420
-
421
- results = [];
422
-
423
- while (true) {
424
- results.push(yield await q.dequeue());
425
- }
426
-
427
- return results;
396
+ events = (0, _function.curry)(async function*(name, source) {
397
+ var q;
398
+ q = Queue.create();
399
+ if (source.on != null) {
400
+ source.on(name, function(event) {
401
+ return q.enqueue(event);
402
+ });
403
+ } else if (source.addEventListener != null) {
404
+ source.addEventListener(name, function(event) {
405
+ return q.enqueue(event);
406
+ });
407
+ } else {
408
+ throw new TypeError("events: source must support `on` or `addEventListener` method");
409
+ }
410
+ while(true){
411
+ yield await q.dequeue();
412
+ }
428
413
  });
429
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pdGVyYWJsZS5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBLEtBQUEsRUFBQSxTQUFBLEVBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxRQUFBLEVBQUEsS0FBQSxFQUFBLElBQUEsRUFBQSxHQUFBLEVBQUEsU0FBQSxFQUFBLE9BQUEsRUFBQSxNQUFBLEVBQUEsTUFBQSxFQUFBLE9BQUEsRUFBQSxNQUFBLEVBQUEsS0FBQSxFQUFBLEdBQUEsRUFBQSxRQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsS0FBQSxHQUFRLG9CQUFBLElBQUEsQ0FBUjtBQUVBLFNBQUEsR0FBWSxzQkFDVjtBQUFBLEVBQUEsSUFBQSxFQUFNO0FBQU4sQ0FEVSxDQUFaO0FBR0Esc0JBQUEsU0FBQSxFQUFvQixvQkFBcEIsSUFBb0IsQ0FBcEIsRUFBQSxlQUFBLEVBQTJDLGdCQUFBLENBQUEsRUFBQSxFQUFBLEVBQUE7QUFDM0MsTUFBQSxFQUFBOztBQUFFLGFBQUEsRUFBQSxJQUFBLEVBQUEsRUFBQTtBQUNFLFFBQWUsTUFBTSxDQUFOLEVBQUEsQ0FBQSxDQUFBLEVBQWYsRUFBZSxDQUFmLEVBQUE7QUFBQSxhQUFBLElBQUE7O0FBREY7O1NBRUEsSztBQUhGLENBQUE7QUFLQSxzQkFBQSxTQUFBLEVBQW9CLG9CQUFwQixJQUFvQixDQUFwQixFQUFBLGdCQUFBLEVBQTRDLFVBQUEsQ0FBQSxFQUFBLEVBQUEsRUFBQTtBQUM1QyxNQUFBLEVBQUE7O0FBQUUsT0FBQSxFQUFBLElBQUEsRUFBQSxFQUFBO0FBQ0UsUUFBZSxNQUFNLENBQU4sRUFBQSxDQUFBLENBQUEsRUFBZixFQUFlLENBQWYsRUFBQTtBQUFBLGFBQUEsSUFBQTs7QUFERjs7U0FFQSxLO0FBSEYsQ0FBQTtBQUtBLHNCQUFBLFNBQUEsRUFBb0Isb0JBQXBCLElBQW9CLENBQXBCLEVBQUEsYUFBQSxFQUF5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Rk4sK0RBRU0sQ0FBTjs7O0FBRUwsRUFBQSxPQUFBLEdBQUEsRUFBQTs7U0FBQSxJLEVBQUE7WUFBSyxJLENBQUEsTUFBTSxNQUFNLENBQUMsQ0FBYixPQUFZLEU7QUFBakI7OztBQVJPLENBQUEsQ0FBVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Z2VuZXJpY30gZnJvbSBcIi4vZ2VuZXJpY1wiXG5pbXBvcnQge3dyYXAsIGN1cnJ5LCBiaW5hcnksIHRlcm5hcnksIHRlZSwgYXBwbHl9IGZyb20gXCIuL2Z1bmN0aW9uXCJcbmltcG9ydCB7bmVnYXRlfSBmcm9tIFwiLi9wcmVkaWNhdGVcIlxuaW1wb3J0IHtpc1N0cmluZywgaXNOdW1iZXIsIGlzQXJyYXksIGlzRnVuY3Rpb24sXG4gIGlzSXRlcmFibGUsIGlzUmVhZ2VudH0gZnJvbSBcIi4vdHlwZVwiXG5pbXBvcnQge2dldH0gZnJvbSBcIi4vb2JqZWN0XCJcbmlzQW55ID0gd3JhcCB0cnVlXG5cbl9pbmNsdWRlcyA9IGdlbmVyaWNcbiAgbmFtZTogXCJpbmNsdWRlc1wiXG5cbmdlbmVyaWMgX2luY2x1ZGVzLCAod3JhcCB0cnVlKSwgaXNSZWFnZW50LCAoYSwgYXgpIC0+XG4gIGZvciBhd2FpdCBfYSBmcm9tIGF4XG4gICAgcmV0dXJuIHRydWUgaWYgT2JqZWN0LmlzIGEsIF9hXG4gIGZhbHNlXG5cbmdlbmVyaWMgX2luY2x1ZGVzLCAod3JhcCB0cnVlKSwgaXNJdGVyYWJsZSwgKGEsIGF4KSAtPlxuICBmb3IgX2EgZnJvbSBheFxuICAgIHJldHVybiB0cnVlIGlmIE9iamVjdC5pcyBhLCBfYVxuICBmYWxzZVxuXG5nZW5lcmljIF9pbmNsdWRlcywgKHdyYXAgdHJ1ZSksIGlzQXJyYXksIChhLCBheCkgLT5cbiAgYXguaW5jbHVkZXMgYVxuXG5pbmNsdWRlcyA9IGN1cnJ5IGJpbmFyeSBfaW5jbHVkZXNcblxudW5pcXVlQnkgPSAoZiwgYXgpIC0+XG4gIGJ4ID0gW11cbiAgKGJ4LnB1c2ggYSkgZm9yIGEgZnJvbSBheCB3aGVuICEoYnguZmluZCAoYikgLT4gZiBhLCBiKT9cbiAgYnhcblxubWFwID0gZ2VuZXJpYyBuYW1lOiBcIm1hcFwiXG5nZW5lcmljIG1hcCwgaXNGdW5jdGlvbiwgaXNJdGVyYWJsZSwgKGYsIGkpIC0+IHlpZWxkIChmIHgpIGZvciB4IGZyb20gaVxuZ2VuZXJpYyBtYXAsIGlzRnVuY3Rpb24sIGlzUmVhZ2VudCwgKGYsIHIpIC0+IHlpZWxkIChmIHgpIGZvciBhd2FpdCB4IGZyb20gclxuZ2VuZXJpYyBtYXAsIGlzRnVuY3Rpb24sIGlzQXJyYXksIChmLCBheCkgLT4gYXgubWFwICh4KSAtPiBmIHhcbm1hcCA9IGN1cnJ5IGJpbmFyeSBtYXBcblxucHJvamVjdCA9IGN1cnJ5IChwLCBpKSAtPiBtYXAgKGdldCBwKSwgaVxuXG5maW5kID0gZ2VuZXJpYyBuYW1lOiBcImZpbmRcIlxuZ2VuZXJpYyBmaW5kLCBpc0Z1bmN0aW9uLCBpc0l0ZXJhYmxlLCAoZiwgaSkgLT5cbiAgZm9yIHggZnJvbSBpXG4gICAgcmV0dXJuIHggaWYgKGF3YWl0IGYgeCkgPT0gdHJ1ZVxuICB1bmRlZmluZWRcbmdlbmVyaWMgZmluZCwgaXNGdW5jdGlvbiwgaXNSZWFnZW50LCAoZiwgcikgLT5cbiAgZm9yIGF3YWl0IHggZnJvbSByXG4gICAgcmV0dXJuIHggaWYgKGF3YWl0IGYgeCkgPT0gdHJ1ZVxuICB1bmRlZmluZWRcbmdlbmVyaWMgZmluZCwgaXNGdW5jdGlvbiwgaXNBcnJheSwgKGYsIGF4KSAtPiBheC5maW5kICh4KSAtPiBmIHhcbmZpbmQgPSBjdXJyeSBiaW5hcnkgZmluZFxuXG50YXAgPSBnZW5lcmljIG5hbWU6IFwidGFwXCJcbmdlbmVyaWMgdGFwLCBpc0Z1bmN0aW9uLCBpc0l0ZXJhYmxlLFxuICAoZiwgaSkgLT4geWllbGQgKCh0ZWUgZikgeCkgZm9yIHggZnJvbSBpXG5nZW5lcmljIHRhcCwgaXNGdW5jdGlvbiwgaXNSZWFnZW50LFxuICAoZiwgcikgLT4geWllbGQgKCh0ZWUgZikgeCkgZm9yIGF3YWl0IHggZnJvbSByXG50YXAgPSBjdXJyeSBiaW5hcnkgdGFwXG5cbnNlbGVjdCA9IGdlbmVyaWMgbmFtZTogXCJzZWxlY3RcIlxuZ2VuZXJpYyBzZWxlY3QsIGlzRnVuY3Rpb24sIGlzSXRlcmFibGUsXG4gIChmLCBpKSAtPiB5aWVsZCB4IGZvciB4IGZyb20gaSB3aGVuIGYgeFxuZ2VuZXJpYyBzZWxlY3QsIGlzRnVuY3Rpb24sIGlzUmVhZ2VudCxcbiAgKGYsIHIpIC0+IHlpZWxkIHggZm9yIGF3YWl0IHggZnJvbSByIHdoZW4gZiB4XG5nZW5lcmljIHNlbGVjdCwgaXNGdW5jdGlvbiwgaXNBcnJheSxcbiAgKGYsIGF4KSAtPiBheC5maWx0ZXIgZlxuc2VsZWN0ID0gY3VycnkgYmluYXJ5IHNlbGVjdFxuXG5yZWplY3QgPSBjdXJyeSAoZiwgaSkgLT4gc2VsZWN0IChuZWdhdGUgZiksIGlcblxucmVzb2x2ZSA9IGN1cnJ5IChmaWx0ZXIsIHByb2R1Y2VyKSAtPlxuICB5aWVsZCBhd2FpdCB4IGZvciBhd2FpdCB4IGZyb20gZmlsdGVyIHByb2R1Y2VyXG5cbmNvbGxlY3QgPSBnZW5lcmljIG5hbWU6IFwic3RhcnRcIlxuZ2VuZXJpYyBjb2xsZWN0LCBpc0l0ZXJhYmxlLCAoaSkgLT4gQXJyYXkuZnJvbSBpXG5nZW5lcmljIGNvbGxlY3QsIGlzUmVhZ2VudCwgKHIpIC0+IHggZm9yIGF3YWl0IHggZnJvbSByXG5cbnN0YXJ0ID0gZ2VuZXJpYyBuYW1lOiBcInN0YXJ0XCJcbmdlbmVyaWMgc3RhcnQsIGlzSXRlcmFibGUsIChpKSAtPiB1bmRlZmluZWQgZm9yIHggZnJvbSBpIDsgdW5kZWZpbmVkXG5nZW5lcmljIHN0YXJ0LCBpc1JlYWdlbnQsIChyKSAtPiB1bmRlZmluZWQgZm9yIGF3YWl0IHggZnJvbSByIDsgdW5kZWZpbmVkXG5cbmVhY2ggPSBnZW5lcmljIG5hbWU6IFwiZWFjaFwiXG5nZW5lcmljIGVhY2gsIGlzRnVuY3Rpb24sIGlzSXRlcmFibGUsXG4gIChmLCBpKSAtPiBmIHggZm9yIHggZnJvbSBpIDsgdW5kZWZpbmVkXG5nZW5lcmljIGVhY2gsIGlzRnVuY3Rpb24sIGlzUmVhZ2VudCxcbiAgKGYsIHIpIC0+IGYgeCBmb3IgYXdhaXQgeCBmcm9tIHIgOyB1bmRlZmluZWRcbmdlbmVyaWMgZWFjaCwgaXNGdW5jdGlvbiwgaXNBcnJheSxcbiAgKGYsIGF4KSAtPiBheC5mb3JFYWNoIGZcbmVhY2ggPSBjdXJyeSBiaW5hcnkgZWFjaFxuXG5yZWR1Y2UgPSBnZW5lcmljIG5hbWU6IFwiZm9sZC9yZWR1Y2VcIlxuZ2VuZXJpYyByZWR1Y2UsIGlzRnVuY3Rpb24sIGlzQW55LCBpc0l0ZXJhYmxlLFxuICAoZiwgaywgaSkgLT4gKGsgPSBmIGssIHgpIGZvciB4IGZyb20gaSA7IGtcbmdlbmVyaWMgcmVkdWNlLCBpc0Z1bmN0aW9uLCBpc0FueSwgaXNSZWFnZW50LFxuICAoZiwgaywgcikgLT4gKGsgPSBmIGssIHgpIGZvciBhd2FpdCB4IGZyb20gciA7IGtcbmdlbmVyaWMgcmVkdWNlLCBpc0Z1bmN0aW9uLCBpc0FueSwgaXNBcnJheSxcbiAgKGYsIGssIGF4KSAtPiBheC5yZWR1Y2UgZiwga1xucmVkdWNlID0gZm9sZCA9IGN1cnJ5IHRlcm5hcnkgcmVkdWNlXG5cbmpvaW4gPSBnZW5lcmljIG5hbWU6IFwiam9pblwiXG5nZW5lcmljIGpvaW4sIGlzRnVuY3Rpb24sIGlzSXRlcmFibGUsIChmLCBpKSAtPlxuICBuID0gMFxuICBmb3IgeCBmcm9tIGlcbiAgICByID0gaWYgbisrID4gMCB0aGVuIGYgciwgeCBlbHNlIHhcbiAgclxuXG5nZW5lcmljIGpvaW4sIGlzRnVuY3Rpb24sIGlzUmVhZ2VudCwgKGYsIGkpIC0+XG4gIG4gPSAwXG4gIGZvciBhd2FpdCB4IGZyb20gaVxuICAgIHIgPSBpZiBuKysgPiAwIHRoZW4gZiByLCB4IGVsc2UgeFxuICByXG5nZW5lcmljIGpvaW4sIGlzU3RyaW5nLCBpc0l0ZXJhYmxlLCAoYSwgaSkgLT5cbiAgam9pbiBhLCBjb2xsZWN0IGlcblxuZ2VuZXJpYyBqb2luLCBpc1N0cmluZywgaXNSZWFnZW50LCAoYSwgaSkgLT5cbiAgam9pbiBhLCBhd2FpdCBjb2xsZWN0IGlcblxuZ2VuZXJpYyBqb2luLCBpc1N0cmluZywgaXNBcnJheSwgKGEsIGF4KSAtPiBheC5qb2luIGFcblxuam9pbiA9IGN1cnJ5IGJpbmFyeSBqb2luXG5cblxucGFydGl0aW9uID0gZ2VuZXJpYyBuYW1lOiBcInBhcnRpdGlvblwiXG5nZW5lcmljIHBhcnRpdGlvbiwgaXNOdW1iZXIsIGlzSXRlcmFibGUsIChuLCBpKSAtPlxuICBiYXRjaCA9IFtdXG4gIGZvciB4IGZyb20gaVxuICAgIGJhdGNoLnB1c2ggeFxuICAgIGlmIGJhdGNoLmxlbmd0aCA9PSBuXG4gICAgICB5aWVsZCBiYXRjaFxuICAgICAgYmF0Y2ggPSBbXVxuICBpZiBiYXRjaC5sZW5ndGggPiAwXG4gICAgeWllbGQgYmF0Y2hcblxuZ2VuZXJpYyBwYXJ0aXRpb24sIGlzTnVtYmVyLCBpc1JlYWdlbnQsIChuLCByKSAtPlxuICBiYXRjaCA9IFtdXG4gIGZvciBhd2FpdCB4IGZyb20gclxuICAgIGJhdGNoLnB1c2ggeFxuICAgIGlmIGJhdGNoLmxlbmd0aCA9PSBuXG4gICAgICB5aWVsZCBiYXRjaFxuICAgICAgYmF0Y2ggPSBbXVxuICBpZiBiYXRjaC5sZW5ndGggPiAwXG4gICAgeWllbGQgYmF0Y2hcblxuXG5jbGFzcyBRdWV1ZVxuICBAY3JlYXRlOiAtPiBuZXcgUXVldWVcbiAgY29uc3RydWN0b3I6IC0+XG4gICAgQHEgPSBbXVxuICAgIEBwID0gW11cbiAgZW5xdWV1ZTogKHZhbHVlKSAtPlxuICAgIGlmIEBwLmxlbmd0aCA+IDBcbiAgICAgIGFwcGx5IEBwLnNoaWZ0KCksIFsgdmFsdWUgXVxuICAgIGVsc2VcbiAgICAgIEBxLnB1c2ggdmFsdWVcbiAgZGVxdWV1ZTogLT5cbiAgICBpZiBAcS5sZW5ndGggPiAwXG4gICAgICBAcS5zaGlmdCgpXG4gICAgZWxzZVxuICAgICAgbmV3IFByb21pc2UgKHJlc29sdmUpID0+IEBwLnB1c2ggcmVzb2x2ZVxuICBpc0lkbGU6IC0+IEBwLmxlbmd0aCA9PSAwICYmIEBxLmxlbmd0aCA9PSAwXG5cblxuZXZlbnRzID0gY3VycnkgKG5hbWUsIHNvdXJjZSkgLT5cbiAgcSA9IFF1ZXVlLmNyZWF0ZSgpXG4gIGlmIHNvdXJjZS5vbj9cbiAgICBzb3VyY2Uub24gbmFtZSwgKGV2ZW50KSAtPiBxLmVucXVldWUgZXZlbnRcbiAgZWxzZSBpZiBzb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcj9cbiAgICBzb3VyY2UuYWRkRXZlbnRMaXN0ZW5lciBuYW1lLCAoZXZlbnQpIC0+IHEuZW5xdWV1ZSBldmVudFxuICBlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IgXCJldmVudHM6IHNvdXJjZSBtdXN0IHN1cHBvcnRcbiAgICBgb25gIG9yIGBhZGRFdmVudExpc3RlbmVyYCBtZXRob2RcIlxuICBsb29wIHlpZWxkIGF3YWl0IHEuZGVxdWV1ZSgpXG5cbmV4cG9ydCB7XG4gIGluY2x1ZGVzXG4gIHVuaXF1ZUJ5XG4gIG1hcFxuICBwcm9qZWN0XG4gIGZpbmRcbiAgdGFwXG4gIHNlbGVjdFxuICByZWplY3RcbiAgcmVzb2x2ZVxuICBjb2xsZWN0XG4gIHN0YXJ0XG4gIGVhY2hcbiAgcmVkdWNlXG4gIGpvaW5cbiAgcGFydGl0aW9uXG4gIFF1ZXVlXG4gIGV2ZW50c1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
430
- //# sourceURL=src/iterable.coffee
414
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL2l0ZXJhYmxlLmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFBLEtBQUEsRUFBQSxTQUFBLEVBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxRQUFBLEVBQUEsS0FBQSxFQUFBLElBQUEsRUFBQSxHQUFBLEVBQUEsU0FBQSxFQUFBLE9BQUEsRUFBQSxNQUFBLEVBQUEsTUFBQSxFQUFBLE9BQUEsRUFBQSxNQUFBLEVBQUEsS0FBQSxFQUFBLEdBQUEsRUFBQTs7QUFBQSxPQUFBO0VBQVEsT0FBUjtDQUFBLE1BQUE7O0FBQ0EsT0FBQTtFQUFRLElBQVI7RUFBYyxLQUFkO0VBQXFCLE1BQXJCO0VBQTZCLE9BQTdCO0VBQXNDLEdBQXRDO0VBQTJDLEtBQTNDO0NBQUEsTUFBQTs7QUFDQSxPQUFBO0VBQVEsTUFBUjtDQUFBLE1BQUE7O0FBQ0EsT0FBQTtFQUFRLFFBQVI7RUFBa0IsUUFBbEI7RUFBNEIsT0FBNUI7RUFBcUMsVUFBckM7RUFDRSxVQURGO0VBQ2MsU0FEZDtDQUFBLE1BQUE7O0FBRUEsT0FBQTtFQUFRLEdBQVI7Q0FBQSxNQUFBOztBQUNBLE9BQUE7RUFBUyxFQUFUO0NBQUEsTUFBQTs7QUFDQSxLQUFBLEdBQVEsSUFBQSxDQUFLLElBQUw7O0FBRVIsU0FBQSxHQUFZLE9BQUEsQ0FDVjtFQUFBLElBQUEsRUFBTTtBQUFOLENBRFU7O0FBR1osT0FBQSxDQUFRLFNBQVIsRUFBb0IsSUFBQSxDQUFLLElBQUwsQ0FBcEIsRUFBZ0MsU0FBaEMsRUFBMkMsTUFBQSxRQUFBLENBQUMsQ0FBRCxFQUFJLEVBQUosQ0FBQTtBQUMzQyxNQUFBO0VBQUUsb0JBQUE7SUFDRSxJQUFlLE1BQU0sQ0FBQyxFQUFQLENBQVUsQ0FBVixFQUFhLEVBQWIsQ0FBZjtBQUFBLGFBQU8sS0FBUDs7RUFERjtTQUVBO0FBSHlDLENB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O0FBV1QsT0FBQTtFQUNFLFFBREY7RUFFRSxRQUZGO0VBR0UsR0FIRjtFQUlFLE9BSkY7RUFLRSxJQUxGO0VBTUUsR0FORjtFQU9FLE1BUEY7RUFRRSxNQVJGO0VBU0UsT0FURjtFQVVFLE9BVkY7RUFXRSxLQVhGO0VBWUUsSUFaRjtFQWFFLE1BYkY7RUFjRSxJQWRGO0VBZUUsU0FmRjtFQWdCRSxLQWhCRjtFQWlCRSxNQWpCRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Z2VuZXJpY30gZnJvbSBcIi4vZ2VuZXJpY1wiXG5pbXBvcnQge3dyYXAsIGN1cnJ5LCBiaW5hcnksIHRlcm5hcnksIHRlZSwgYXBwbHl9IGZyb20gXCIuL2Z1bmN0aW9uXCJcbmltcG9ydCB7bmVnYXRlfSBmcm9tIFwiLi9wcmVkaWNhdGVcIlxuaW1wb3J0IHtpc1N0cmluZywgaXNOdW1iZXIsIGlzQXJyYXksIGlzRnVuY3Rpb24sXG4gIGlzSXRlcmFibGUsIGlzUmVhZ2VudH0gZnJvbSBcIi4vdHlwZVwiXG5pbXBvcnQge2dldH0gZnJvbSBcIi4vb2JqZWN0XCJcbmltcG9ydCB7IGVxIH0gZnJvbSBcIi4vdmFsdWVcIlxuaXNBbnkgPSB3cmFwIHRydWVcblxuX2luY2x1ZGVzID0gZ2VuZXJpY1xuICBuYW1lOiBcImluY2x1ZGVzXCJcblxuZ2VuZXJpYyBfaW5jbHVkZXMsICh3cmFwIHRydWUpLCBpc1JlYWdlbnQsIChhLCBheCkgLT5cbiAgZm9yIGF3YWl0IF9hIGZyb20gYXhcbiAgICByZXR1cm4gdHJ1ZSBpZiBPYmplY3QuaXMgYSwgX2FcbiAgZmFsc2VcblxuZ2VuZXJpYyBfaW5jbHVkZXMsICh3cmFwIHRydWUpLCBpc0l0ZXJhYmxlLCAoYSwgYXgpIC0+XG4gIGZvciBfYSBmcm9tIGF4XG4gICAgcmV0dXJuIHRydWUgaWYgT2JqZWN0LmlzIGEsIF9hXG4gIGZhbHNlXG5cbmdlbmVyaWMgX2luY2x1ZGVzLCAod3JhcCB0cnVlKSwgaXNBcnJheSwgKGEsIGF4KSAtPlxuICBheC5pbmNsdWRlcyBhXG5cbmluY2x1ZGVzID0gY3VycnkgYmluYXJ5IF9pbmNsdWRlc1xuXG4jIFRPRE8gc2hvdWxkIHRoaXMgcmV0dXJuIGFuIGl0ZXJhdG9yP1xudW5pcXVlQnkgPSAoZiwgYXgpIC0+XG4gIGJ4ID0gW11cbiAgKGJ4LnB1c2ggYSkgZm9yIGEgZnJvbSBheCB3aGVuICEoYnguZmluZCAoYikgLT4gZiBhLCBiKT9cbiAgYnhcblxubWFwID0gZ2VuZXJpYyBuYW1lOiBcIm1hcFwiXG5nZW5lcmljIG1hcCwgaXNGdW5jdGlvbiwgaXNJdGVyYWJsZSwgKGYsIGkpIC0+IHlpZWxkIChmIHgpIGZvciB4IGZyb20gaVxuZ2VuZXJpYyBtYXAsIGlzRnVuY3Rpb24sIGlzUmVhZ2VudCwgKGYsIHIpIC0+IHlpZWxkIChmIHgpIGZvciBhd2FpdCB4IGZyb20gclxuZ2VuZXJpYyBtYXAsIGlzRnVuY3Rpb24sIGlzQXJyYXksIChmLCBheCkgLT4gYXgubWFwICh4KSAtPiBmIHhcbm1hcCA9IGN1cnJ5IGJpbmFyeSBtYXBcblxucHJvamVjdCA9IGN1cnJ5IChwLCBpKSAtPiBtYXAgKGdldCBwKSwgaVxuXG5maW5kID0gZ2VuZXJpYyBuYW1lOiBcImZpbmRcIlxuZ2VuZXJpYyBmaW5kLCBpc0Z1bmN0aW9uLCBpc0l0ZXJhYmxlLCAoZiwgaSkgLT5cbiAgZm9yIHggZnJvbSBpXG4gICAgcmV0dXJuIHggaWYgKGF3YWl0IGYgeCkgPT0gdHJ1ZVxuICB1bmRlZmluZWRcbmdlbmVyaWMgZmluZCwgaXNGdW5jdGlvbiwgaXNSZWFnZW50LCAoZiwgcikgLT5cbiAgZm9yIGF3YWl0IHggZnJvbSByXG4gICAgcmV0dXJuIHggaWYgKGF3YWl0IGYgeCkgPT0gdHJ1ZVxuICB1bmRlZmluZWRcbmdlbmVyaWMgZmluZCwgaXNGdW5jdGlvbiwgaXNBcnJheSwgKGYsIGF4KSAtPiBheC5maW5kICh4KSAtPiBmIHhcbmZpbmQgPSBjdXJyeSBiaW5hcnkgZmluZFxuXG50YXAgPSBnZW5lcmljIG5hbWU6IFwidGFwXCJcbmdlbmVyaWMgdGFwLCBpc0Z1bmN0aW9uLCBpc0l0ZXJhYmxlLFxuICAoZiwgaSkgLT4geWllbGQgKCh0ZWUgZikgeCkgZm9yIHggZnJvbSBpXG5nZW5lcmljIHRhcCwgaXNGdW5jdGlvbiwgaXNSZWFnZW50LFxuICAoZiwgcikgLT4geWllbGQgKCh0ZWUgZikgeCkgZm9yIGF3YWl0IHggZnJvbSByXG50YXAgPSBjdXJyeSBiaW5hcnkgdGFwXG5cbnNlbGVjdCA9IGdlbmVyaWMgbmFtZTogXCJzZWxlY3RcIlxuZ2VuZXJpYyBzZWxlY3QsIGlzRnVuY3Rpb24sIGlzSXRlcmFibGUsXG4gIChmLCBpKSAtPiB5aWVsZCB4IGZvciB4IGZyb20gaSB3aGVuIGYgeFxuZ2VuZXJpYyBzZWxlY3QsIGlzRnVuY3Rpb24sIGlzUmVhZ2VudCxcbiAgKGYsIHIpIC0+IHlpZWxkIHggZm9yIGF3YWl0IHggZnJvbSByIHdoZW4gZiB4XG5nZW5lcmljIHNlbGVjdCwgaXNGdW5jdGlvbiwgaXNBcnJheSxcbiAgKGYsIGF4KSAtPiBheC5maWx0ZXIgZlxuc2VsZWN0ID0gY3VycnkgYmluYXJ5IHNlbGVjdFxuXG5yZWplY3QgPSBjdXJyeSAoZiwgaSkgLT4gc2VsZWN0IChuZWdhdGUgZiksIGlcblxucmVzb2x2ZSA9IGN1cnJ5IChmaWx0ZXIsIHByb2R1Y2VyKSAtPlxuICB5aWVsZCBhd2FpdCB4IGZvciBhd2FpdCB4IGZyb20gZmlsdGVyIHByb2R1Y2VyXG5cbmNvbGxlY3QgPSBnZW5lcmljIG5hbWU6IFwic3RhcnRcIlxuZ2VuZXJpYyBjb2xsZWN0LCBpc0l0ZXJhYmxlLCAoaSkgLT4gQXJyYXkuZnJvbSBpXG5nZW5lcmljIGNvbGxlY3QsIGlzUmVhZ2VudCwgKHIpIC0+IHggZm9yIGF3YWl0IHggZnJvbSByXG5cbnN0YXJ0ID0gZ2VuZXJpYyBuYW1lOiBcInN0YXJ0XCJcbmdlbmVyaWMgc3RhcnQsIGlzSXRlcmFibGUsIChpKSAtPiB1bmRlZmluZWQgZm9yIHggZnJvbSBpIDsgdW5kZWZpbmVkXG5nZW5lcmljIHN0YXJ0LCBpc1JlYWdlbnQsIChyKSAtPiB1bmRlZmluZWQgZm9yIGF3YWl0IHggZnJvbSByIDsgdW5kZWZpbmVkXG5cbmVhY2ggPSBnZW5lcmljIG5hbWU6IFwiZWFjaFwiXG5nZW5lcmljIGVhY2gsIGlzRnVuY3Rpb24sIGlzSXRlcmFibGUsXG4gIChmLCBpKSAtPiBmIHggZm9yIHggZnJvbSBpIDsgdW5kZWZpbmVkXG5nZW5lcmljIGVhY2gsIGlzRnVuY3Rpb24sIGlzUmVhZ2VudCxcbiAgKGYsIHIpIC0+IGYgeCBmb3IgYXdhaXQgeCBmcm9tIHIgOyB1bmRlZmluZWRcbmdlbmVyaWMgZWFjaCwgaXNGdW5jdGlvbiwgaXNBcnJheSxcbiAgKGYsIGF4KSAtPiBheC5mb3JFYWNoIGZcbmVhY2ggPSBjdXJyeSBiaW5hcnkgZWFjaFxuXG5yZWR1Y2UgPSBnZW5lcmljIG5hbWU6IFwiZm9sZC9yZWR1Y2VcIlxuZ2VuZXJpYyByZWR1Y2UsIGlzRnVuY3Rpb24sIGlzQW55LCBpc0l0ZXJhYmxlLFxuICAoZiwgaywgaSkgLT4gKGsgPSBmIGssIHgpIGZvciB4IGZyb20gaSA7IGtcbmdlbmVyaWMgcmVkdWNlLCBpc0Z1bmN0aW9uLCBpc0FueSwgaXNSZWFnZW50LFxuICAoZiwgaywgcikgLT4gKGsgPSBmIGssIHgpIGZvciBhd2FpdCB4IGZyb20gciA7IGtcbmdlbmVyaWMgcmVkdWNlLCBpc0Z1bmN0aW9uLCBpc0FueSwgaXNBcnJheSxcbiAgKGYsIGssIGF4KSAtPiBheC5yZWR1Y2UgZiwga1xucmVkdWNlID0gZm9sZCA9IGN1cnJ5IHRlcm5hcnkgcmVkdWNlXG5cbmpvaW4gPSBnZW5lcmljIG5hbWU6IFwiam9pblwiXG5nZW5lcmljIGpvaW4sIGlzRnVuY3Rpb24sIGlzSXRlcmFibGUsIChmLCBpKSAtPlxuICBuID0gMFxuICBmb3IgeCBmcm9tIGlcbiAgICByID0gaWYgbisrID4gMCB0aGVuIGYgciwgeCBlbHNlIHhcbiAgclxuXG5nZW5lcmljIGpvaW4sIGlzRnVuY3Rpb24sIGlzUmVhZ2VudCwgKGYsIGkpIC0+XG4gIG4gPSAwXG4gIGZvciBhd2FpdCB4IGZyb20gaVxuICAgIHIgPSBpZiBuKysgPiAwIHRoZW4gZiByLCB4IGVsc2UgeFxuICByXG5nZW5lcmljIGpvaW4sIGlzU3RyaW5nLCBpc0l0ZXJhYmxlLCAoYSwgaSkgLT5cbiAgam9pbiBhLCBjb2xsZWN0IGlcblxuZ2VuZXJpYyBqb2luLCBpc1N0cmluZywgaXNSZWFnZW50LCAoYSwgaSkgLT5cbiAgam9pbiBhLCBhd2FpdCBjb2xsZWN0IGlcblxuZ2VuZXJpYyBqb2luLCBpc1N0cmluZywgaXNBcnJheSwgKGEsIGF4KSAtPiBheC5qb2luIGFcblxuam9pbiA9IGN1cnJ5IGJpbmFyeSBqb2luXG5cblxucGFydGl0aW9uID0gZ2VuZXJpYyBuYW1lOiBcInBhcnRpdGlvblwiXG5nZW5lcmljIHBhcnRpdGlvbiwgaXNOdW1iZXIsIGlzSXRlcmFibGUsIChuLCBpKSAtPlxuICBiYXRjaCA9IFtdXG4gIGZvciB4IGZyb20gaVxuICAgIGJhdGNoLnB1c2ggeFxuICAgIGlmIGJhdGNoLmxlbmd0aCA9PSBuXG4gICAgICB5aWVsZCBiYXRjaFxuICAgICAgYmF0Y2ggPSBbXVxuICBpZiBiYXRjaC5sZW5ndGggPiAwXG4gICAgeWllbGQgYmF0Y2hcblxuZ2VuZXJpYyBwYXJ0aXRpb24sIGlzTnVtYmVyLCBpc1JlYWdlbnQsIChuLCByKSAtPlxuICBiYXRjaCA9IFtdXG4gIGZvciBhd2FpdCB4IGZyb20gclxuICAgIGJhdGNoLnB1c2ggeFxuICAgIGlmIGJhdGNoLmxlbmd0aCA9PSBuXG4gICAgICB5aWVsZCBiYXRjaFxuICAgICAgYmF0Y2ggPSBbXVxuICBpZiBiYXRjaC5sZW5ndGggPiAwXG4gICAgeWllbGQgYmF0Y2hcblxuXG5jbGFzcyBRdWV1ZVxuXG4gIEBtYWtlOiAtPiBuZXcgUXVldWVcblxuICBAY3JlYXRlOiAtPiBuZXcgUXVldWVcblxuICBjb25zdHJ1Y3RvcjogLT5cbiAgICBAcCA9IFtdXG4gICAgQHEgPSBbXVxuXG4gIGVucXVldWU6ICggdmFsdWUgKSAtPlxuICAgIGlmIEBwLmxlbmd0aCA+IDBcbiAgICAgIGFwcGx5IEBwLnNoaWZ0KCksIFsgdmFsdWUgXVxuICAgIGVsc2VcbiAgICAgIEBxLnB1c2ggdmFsdWVcbiAgICBAXG5cbiAgZGVxdWV1ZTogLT5cbiAgICBpZiBAcS5sZW5ndGggPiAwXG4gICAgICBAcS5zaGlmdCgpXG4gICAgZWxzZVxuICAgICAgbmV3IFByb21pc2UgKCByZXNvbHZlICkgPT4gQHAucHVzaCByZXNvbHZlXG5cbiAgaXNJZGxlOiAtPiBAcC5sZW5ndGggPT0gMCAmJiBAcS5sZW5ndGggPT0gMFxuXG4gIFsgU3ltYm9sLmFzeW5jSXRlcmF0b3IgXTogLT5cbiAgICBsb29wIHlpZWxkIGF3YWl0IEBkZXF1ZXVlKClcbiAgICByZXR1cm5cblxuZXZlbnRzID0gY3VycnkgKG5hbWUsIHNvdXJjZSkgLT5cbiAgcSA9IFF1ZXVlLmNyZWF0ZSgpXG4gIGlmIHNvdXJjZS5vbj9cbiAgICBzb3VyY2Uub24gbmFtZSwgKGV2ZW50KSAtPiBxLmVucXVldWUgZXZlbnRcbiAgZWxzZSBpZiBzb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcj9cbiAgICBzb3VyY2UuYWRkRXZlbnRMaXN0ZW5lciBuYW1lLCAoZXZlbnQpIC0+IHEuZW5xdWV1ZSBldmVudFxuICBlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IgXCJldmVudHM6IHNvdXJjZSBtdXN0IHN1cHBvcnRcbiAgICBgb25gIG9yIGBhZGRFdmVudExpc3RlbmVyYCBtZXRob2RcIlxuICBsb29wIHlpZWxkIGF3YWl0IHEuZGVxdWV1ZSgpXG4gIHJldHVyblxuXG5leHBvcnQge1xuICBpbmNsdWRlc1xuICB1bmlxdWVCeVxuICBtYXBcbiAgcHJvamVjdFxuICBmaW5kXG4gIHRhcFxuICBzZWxlY3RcbiAgcmVqZWN0XG4gIHJlc29sdmVcbiAgY29sbGVjdFxuICBzdGFydFxuICBlYWNoXG4gIHJlZHVjZVxuICBqb2luXG4gIHBhcnRpdGlvblxuICBRdWV1ZVxuICBldmVudHNcbn1cbiJdfQ==
415
+ //# sourceURL=/@dashkite/joy/src/iterable.coffee
416
+
417
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9AZGFzaGtpdGUvam95L3NyYy9pdGVyYWJsZS5jb2ZmZWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtnZW5lcmljfSBmcm9tIFwiLi9nZW5lcmljXCJcbmltcG9ydCB7d3JhcCwgY3VycnksIGJpbmFyeSwgdGVybmFyeSwgdGVlLCBhcHBseX0gZnJvbSBcIi4vZnVuY3Rpb25cIlxuaW1wb3J0IHtuZWdhdGV9IGZyb20gXCIuL3ByZWRpY2F0ZVwiXG5pbXBvcnQge2lzU3RyaW5nLCBpc051bWJlciwgaXNBcnJheSwgaXNGdW5jdGlvbixcbiAgaXNJdGVyYWJsZSwgaXNSZWFnZW50fSBmcm9tIFwiLi90eXBlXCJcbmltcG9ydCB7Z2V0fSBmcm9tIFwiLi9vYmplY3RcIlxuaW1wb3J0IHsgZXEgfSBmcm9tIFwiLi92YWx1ZVwiXG5pc0FueSA9IHdyYXAgdHJ1ZVxuXG5faW5jbHVkZXMgPSBnZW5lcmljXG4gIG5hbWU6IFwiaW5jbHVkZXNcIlxuXG5nZW5lcmljIF9pbmNsdWRlcywgKHdyYXAgdHJ1ZSksIGlzUmVhZ2VudCwgKGEsIGF4KSAtPlxuICBmb3IgYXdhaXQgX2EgZnJvbSBheFxuICAgIHJldHVybiB0cnVlIGlmIE9iamVjdC5pcyBhLCBfYVxuICBmYWxzZVxuXG5nZW5lcmljIF9pbmNsdWRlcywgKHdyYXAgdHJ1ZSksIGlzSXRlcmFibGUsIChhLCBheCkgLT5cbiAgZm9yIF9hIGZyb20gYXhcbiAgICByZXR1cm4gdHJ1ZSBpZiBPYmplY3QuaXMgYSwgX2FcbiAgZmFsc2VcblxuZ2VuZXJpYyBfaW5jbHVkZXMsICh3cmFwIHRydWUpLCBpc0FycmF5LCAoYSwgYXgpIC0+XG4gIGF4LmluY2x1ZGVzIGFcblxuaW5jbHVkZXMgPSBjdXJyeSBiaW5hcnkgX2luY2x1ZGVzXG5cbiMgVE9ETyBzaG91bGQgdGhpcyByZXR1cm4gYW4gaXRlcmF0b3I/XG51bmlxdWVCeSA9IChmLCBheCkgLT5cbiAgYnggPSBbXVxuICAoYngucHVzaCBhKSBmb3IgYSBmcm9tIGF4IHdoZW4gIShieC5maW5kIChiKSAtPiBmIGEsIGIpP1xuICBieFxuXG5tYXAgPSBnZW5lcmljIG5hbWU6IFwibWFwXCJcbmdlbmVyaWMgbWFwLCBpc0Z1bmN0aW9uLCBpc0l0ZXJhYmxlLCAoZiwgaSkgLT4geWllbGQgKGYgeCkgZm9yIHggZnJvbSBpXG5nZW5lcmljIG1hcCwgaXNGdW5jdGlvbiwgaXNSZWFnZW50LCAoZiwgcikgLT4geWllbGQgKGYgeCkgZm9yIGF3YWl0IHggZnJvbSByXG5nZW5lcmljIG1hcCwgaXNGdW5jdGlvbiwgaXNBcnJheSwgKGYsIGF4KSAtPiBheC5tYXAgKHgpIC0+IGYgeFxubWFwID0gY3VycnkgYmluYXJ5IG1hcFxuXG5wcm9qZWN0ID0gY3VycnkgKHAsIGkpIC0+IG1hcCAoZ2V0IHApLCBpXG5cbmZpbmQgPSBnZW5lcmljIG5hbWU6IFwiZmluZFwiXG5nZW5lcmljIGZpbmQsIGlzRnVuY3Rpb24sIGlzSXRlcmFibGUsIChmLCBpKSAtPlxuICBmb3IgeCBmcm9tIGlcbiAgICByZXR1cm4geCBpZiAoYXdhaXQgZiB4KSA9PSB0cnVlXG4gIHVuZGVmaW5lZFxuZ2VuZXJpYyBmaW5kLCBpc0Z1bmN0aW9uLCBpc1JlYWdlbnQsIChmLCByKSAtPlxuICBmb3IgYXdhaXQgeCBmcm9tIHJcbiAgICByZXR1cm4geCBpZiAoYXdhaXQgZiB4KSA9PSB0cnVlXG4gIHVuZGVmaW5lZFxuZ2VuZXJpYyBmaW5kLCBpc0Z1bmN0aW9uLCBpc0FycmF5LCAoZiwgYXgpIC0+IGF4LmZpbmQgKHgpIC0+IGYgeFxuZmluZCA9IGN1cnJ5IGJpbmFyeSBmaW5kXG5cbnRhcCA9IGdlbmVyaWMgbmFtZTogXCJ0YXBcIlxuZ2VuZXJpYyB0YXAsIGlzRnVuY3Rpb24sIGlzSXRlcmFibGUsXG4gIChmLCBpKSAtPiB5aWVsZCAoKHRlZSBmKSB4KSBmb3IgeCBmcm9tIGlcbmdlbmVyaWMgdGFwLCBpc0Z1bmN0aW9uLCBpc1JlYWdlbnQsXG4gIChmLCByKSAtPiB5aWVsZCAoKHRlZSBmKSB4KSBmb3IgYXdhaXQgeCBmcm9tIHJcbnRhcCA9IGN1cnJ5IGJpbmFyeSB0YXBcblxuc2VsZWN0ID0gZ2VuZXJpYyBuYW1lOiBcInNlbGVjdFwiXG5nZW5lcmljIHNlbGVjdCwgaXNGdW5jdGlvbiwgaXNJdGVyYWJsZSxcbiAgKGYsIGkpIC0+IHlpZWxkIHggZm9yIHggZnJvbSBpIHdoZW4gZiB4XG5nZW5lcmljIHNlbGVjdCwgaXNGdW5jdGlvbiwgaXNSZWFnZW50LFxuICAoZiwgcikgLT4geWllbGQgeCBmb3IgYXdhaXQgeCBmcm9tIHIgd2hlbiBmIHhcbmdlbmVyaWMgc2VsZWN0LCBpc0Z1bmN0aW9uLCBpc0FycmF5LFxuICAoZiwgYXgpIC0+IGF4LmZpbHRlciBmXG5zZWxlY3QgPSBjdXJyeSBiaW5hcnkgc2VsZWN0XG5cbnJlamVjdCA9IGN1cnJ5IChmLCBpKSAtPiBzZWxlY3QgKG5lZ2F0ZSBmKSwgaVxuXG5yZXNvbHZlID0gY3VycnkgKGZpbHRlciwgcHJvZHVjZXIpIC0+XG4gIHlpZWxkIGF3YWl0IHggZm9yIGF3YWl0IHggZnJvbSBmaWx0ZXIgcHJvZHVjZXJcblxuY29sbGVjdCA9IGdlbmVyaWMgbmFtZTogXCJzdGFydFwiXG5nZW5lcmljIGNvbGxlY3QsIGlzSXRlcmFibGUsIChpKSAtPiBBcnJheS5mcm9tIGlcbmdlbmVyaWMgY29sbGVjdCwgaXNSZWFnZW50LCAocikgLT4geCBmb3IgYXdhaXQgeCBmcm9tIHJcblxuc3RhcnQgPSBnZW5lcmljIG5hbWU6IFwic3RhcnRcIlxuZ2VuZXJpYyBzdGFydCwgaXNJdGVyYWJsZSwgKGkpIC0+IHVuZGVmaW5lZCBmb3IgeCBmcm9tIGkgOyB1bmRlZmluZWRcbmdlbmVyaWMgc3RhcnQsIGlzUmVhZ2VudCwgKHIpIC0+IHVuZGVmaW5lZCBmb3IgYXdhaXQgeCBmcm9tIHIgOyB1bmRlZmluZWRcblxuZWFjaCA9IGdlbmVyaWMgbmFtZTogXCJlYWNoXCJcbmdlbmVyaWMgZWFjaCwgaXNGdW5jdGlvbiwgaXNJdGVyYWJsZSxcbiAgKGYsIGkpIC0+IGYgeCBmb3IgeCBmcm9tIGkgOyB1bmRlZmluZWRcbmdlbmVyaWMgZWFjaCwgaXNGdW5jdGlvbiwgaXNSZWFnZW50LFxuICAoZiwgcikgLT4gZiB4IGZvciBhd2FpdCB4IGZyb20gciA7IHVuZGVmaW5lZFxuZ2VuZXJpYyBlYWNoLCBpc0Z1bmN0aW9uLCBpc0FycmF5LFxuICAoZiwgYXgpIC0+IGF4LmZvckVhY2ggZlxuZWFjaCA9IGN1cnJ5IGJpbmFyeSBlYWNoXG5cbnJlZHVjZSA9IGdlbmVyaWMgbmFtZTogXCJmb2xkL3JlZHVjZVwiXG5nZW5lcmljIHJlZHVjZSwgaXNGdW5jdGlvbiwgaXNBbnksIGlzSXRlcmFibGUsXG4gIChmLCBrLCBpKSAtPiAoayA9IGYgaywgeCkgZm9yIHggZnJvbSBpIDsga1xuZ2VuZXJpYyByZWR1Y2UsIGlzRnVuY3Rpb24sIGlzQW55LCBpc1JlYWdlbnQsXG4gIChmLCBrLCByKSAtPiAoayA9IGYgaywgeCkgZm9yIGF3YWl0IHggZnJvbSByIDsga1xuZ2VuZXJpYyByZWR1Y2UsIGlzRnVuY3Rpb24sIGlzQW55LCBpc0FycmF5LFxuICAoZiwgaywgYXgpIC0+IGF4LnJlZHVjZSBmLCBrXG5yZWR1Y2UgPSBmb2xkID0gY3VycnkgdGVybmFyeSByZWR1Y2Vcblxuam9pbiA9IGdlbmVyaWMgbmFtZTogXCJqb2luXCJcbmdlbmVyaWMgam9pbiwgaXNGdW5jdGlvbiwgaXNJdGVyYWJsZSwgKGYsIGkpIC0+XG4gIG4gPSAwXG4gIGZvciB4IGZyb20gaVxuICAgIHIgPSBpZiBuKysgPiAwIHRoZW4gZiByLCB4IGVsc2UgeFxuICByXG5cbmdlbmVyaWMgam9pbiwgaXNGdW5jdGlvbiwgaXNSZWFnZW50LCAoZiwgaSkgLT5cbiAgbiA9IDBcbiAgZm9yIGF3YWl0IHggZnJvbSBpXG4gICAgciA9IGlmIG4rKyA+IDAgdGhlbiBmIHIsIHggZWxzZSB4XG4gIHJcbmdlbmVyaWMgam9pbiwgaXNTdHJpbmcsIGlzSXRlcmFibGUsIChhLCBpKSAtPlxuICBqb2luIGEsIGNvbGxlY3QgaVxuXG5nZW5lcmljIGpvaW4sIGlzU3RyaW5nLCBpc1JlYWdlbnQsIChhLCBpKSAtPlxuICBqb2luIGEsIGF3YWl0IGNvbGxlY3QgaVxuXG5nZW5lcmljIGpvaW4sIGlzU3RyaW5nLCBpc0FycmF5LCAoYSwgYXgpIC0+IGF4LmpvaW4gYVxuXG5qb2luID0gY3VycnkgYmluYXJ5IGpvaW5cblxuXG5wYXJ0aXRpb24gPSBnZW5lcmljIG5hbWU6IFwicGFydGl0aW9uXCJcbmdlbmVyaWMgcGFydGl0aW9uLCBpc051bWJlciwgaXNJdGVyYWJsZSwgKG4sIGkpIC0+XG4gIGJhdGNoID0gW11cbiAgZm9yIHggZnJvbSBpXG4gICAgYmF0Y2gucHVzaCB4XG4gICAgaWYgYmF0Y2gubGVuZ3RoID09IG5cbiAgICAgIHlpZWxkIGJhdGNoXG4gICAgICBiYXRjaCA9IFtdXG4gIGlmIGJhdGNoLmxlbmd0aCA+IDBcbiAgICB5aWVsZCBiYXRjaFxuXG5nZW5lcmljIHBhcnRpdGlvbiwgaXNOdW1iZXIsIGlzUmVhZ2VudCwgKG4sIHIpIC0+XG4gIGJhdGNoID0gW11cbiAgZm9yIGF3YWl0IHggZnJvbSByXG4gICAgYmF0Y2gucHVzaCB4XG4gICAgaWYgYmF0Y2gubGVuZ3RoID09IG5cbiAgICAgIHlpZWxkIGJhdGNoXG4gICAgICBiYXRjaCA9IFtdXG4gIGlmIGJhdGNoLmxlbmd0aCA+IDBcbiAgICB5aWVsZCBiYXRjaFxuXG5cbmNsYXNzIFF1ZXVlXG5cbiAgQG1ha2U6IC0+IG5ldyBRdWV1ZVxuXG4gIEBjcmVhdGU6IC0+IG5ldyBRdWV1ZVxuXG4gIGNvbnN0cnVjdG9yOiAtPlxuICAgIEBwID0gW11cbiAgICBAcSA9IFtdXG5cbiAgZW5xdWV1ZTogKCB2YWx1ZSApIC0+XG4gICAgaWYgQHAubGVuZ3RoID4gMFxuICAgICAgYXBwbHkgQHAuc2hpZnQoKSwgWyB2YWx1ZSBdXG4gICAgZWxzZVxuICAgICAgQHEucHVzaCB2YWx1ZVxuICAgIEBcblxuICBkZXF1ZXVlOiAtPlxuICAgIGlmIEBxLmxlbmd0aCA+IDBcbiAgICAgIEBxLnNoaWZ0KClcbiAgICBlbHNlXG4gICAgICBuZXcgUHJvbWlzZSAoIHJlc29sdmUgKSA9PiBAcC5wdXNoIHJlc29sdmVcblxuICBpc0lkbGU6IC0+IEBwLmxlbmd0aCA9PSAwICYmIEBxLmxlbmd0aCA9PSAwXG5cbiAgWyBTeW1ib2wuYXN5bmNJdGVyYXRvciBdOiAtPlxuICAgIGxvb3AgeWllbGQgYXdhaXQgQGRlcXVldWUoKVxuICAgIHJldHVyblxuXG5ldmVudHMgPSBjdXJyeSAobmFtZSwgc291cmNlKSAtPlxuICBxID0gUXVldWUuY3JlYXRlKClcbiAgaWYgc291cmNlLm9uP1xuICAgIHNvdXJjZS5vbiBuYW1lLCAoZXZlbnQpIC0+IHEuZW5xdWV1ZSBldmVudFxuICBlbHNlIGlmIHNvdXJjZS5hZGRFdmVudExpc3RlbmVyP1xuICAgIHNvdXJjZS5hZGRFdmVudExpc3RlbmVyIG5hbWUsIChldmVudCkgLT4gcS5lbnF1ZXVlIGV2ZW50XG4gIGVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvciBcImV2ZW50czogc291cmNlIG11c3Qgc3VwcG9ydFxuICAgIGBvbmAgb3IgYGFkZEV2ZW50TGlzdGVuZXJgIG1ldGhvZFwiXG4gIGxvb3AgeWllbGQgYXdhaXQgcS5kZXF1ZXVlKClcbiAgcmV0dXJuXG5cbmV4cG9ydCB7XG4gIGluY2x1ZGVzXG4gIHVuaXF1ZUJ5XG4gIG1hcFxuICBwcm9qZWN0XG4gIGZpbmRcbiAgdGFwXG4gIHNlbGVjdFxuICByZWplY3RcbiAgcmVzb2x2ZVxuICBjb2xsZWN0XG4gIHN0YXJ0XG4gIGVhY2hcbiAgcmVkdWNlXG4gIGpvaW5cbiAgcGFydGl0aW9uXG4gIFF1ZXVlXG4gIGV2ZW50c1xufVxuIl0sIm5hbWVzIjpbIlF1ZXVlIiwiY29sbGVjdCIsImVhY2giLCJldmVudHMiLCJmaW5kIiwiaW5jbHVkZXMiLCJqb2luIiwibWFwIiwicGFydGl0aW9uIiwicHJvamVjdCIsInJlZHVjZSIsInJlamVjdCIsInJlc29sdmUiLCJzZWxlY3QiLCJzdGFydCIsInRhcCIsInVuaXF1ZUJ5IiwiX2luY2x1ZGVzIiwiZm9sZCIsImlzQW55Iiwid3JhcCIsImdlbmVyaWMiLCJuYW1lIiwiaXNSZWFnZW50IiwiYSIsImF4IiwiX2EiLCJPYmplY3QiLCJpcyIsImlzSXRlcmFibGUiLCJpc0FycmF5IiwiY3VycnkiLCJiaW5hcnkiLCJmIiwiYngiLCJiIiwicHVzaCIsImlzRnVuY3Rpb24iLCJpIiwicmVzdWx0cyIsIngiLCJyIiwicCIsImdldCIsInRlZSIsImZpbHRlciIsIm5lZ2F0ZSIsInByb2R1Y2VyIiwicmVmIiwiQXJyYXkiLCJmcm9tIiwiZm9yRWFjaCIsImsiLCJ0ZXJuYXJ5IiwibiIsImlzU3RyaW5nIiwiaXNOdW1iZXIiLCJiYXRjaCIsImxlbmd0aCIsIm1ha2UiLCJjcmVhdGUiLCJjb25zdHJ1Y3RvciIsInEiLCJlbnF1ZXVlIiwidmFsdWUiLCJhcHBseSIsInNoaWZ0IiwiZGVxdWV1ZSIsIlByb21pc2UiLCJpc0lkbGUiLCJTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwic291cmNlIiwib24iLCJldmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJUeXBlRXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBeU1FQSxLQWhCRjtlQWdCRUE7O0lBTkFDLE9BVkY7ZUFVRUE7O0lBRUFDLElBWkY7ZUFZRUE7O0lBS0FDLE1BakJGO2VBaUJFQTs7SUFaQUMsSUFMRjtlQUtFQTs7SUFKQUMsUUFERjtlQUNFQTs7SUFhQUMsSUFkRjtlQWNFQTs7SUFYQUMsR0FIRjtlQUdFQTs7SUFZQUMsU0FmRjtlQWVFQTs7SUFYQUMsT0FKRjtlQUlFQTs7SUFTQUMsTUFiRjtlQWFFQTs7SUFMQUMsTUFSRjtlQVFFQTs7SUFDQUMsT0FURjtlQVNFQTs7SUFGQUMsTUFQRjtlQU9FQTs7SUFJQUMsS0FYRjtlQVdFQTs7SUFMQUMsR0FORjtlQU1FQTs7SUFKQUMsUUFGRjtlQUVFQTs7O3lCQTNMRjswQkFDQTsyQkFDQTtzQkFDQTt3QkFFQTt1QkFDQTtBQU5BLElBQUFoQixPQUFBaUIsV0FBQWhCLFNBQUFDLE1B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