UNPKG

@dashkite/joy

Version:

*The simplicity of Lodash with the functional flair of Rambda.*

302 lines (301 loc) 25.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: Object.getOwnPropertyDescriptor(all, name).get }); } _export(exports, { get cat () { return cat; }, get compact () { return compact; }, get complement () { return complement; }, get dequeue () { return dequeue; }, get difference () { return difference; }, get dupes () { return dupes; }, get enqueue () { return enqueue; }, get fifth () { return fifth; }, get fill () { return fill; }, get first () { return first; }, get fourth () { return fourth; }, get insert () { return insert; }, get intersection () { return intersection; }, get last () { return last; }, get nth () { return nth; }, get pair () { return pair; }, get peek () { return peek; }, get pluck () { return pluck; }, get poke () { return poke; }, get pop () { return pop; }, get push () { return push; }, get range () { return range; }, get remove () { return remove; }, get rest () { return rest; }, get second () { return second; }, get shift () { return shift; }, get shuffle () { return shuffle; }, get slice () { return slice; }, get sort () { return sort; }, get splice () { return splice; }, get third () { return third; }, get union () { return union; }, get unique () { return unique; }, get unshift () { return unshift; } }); const _function = require("./function"); const _value = require("./value"); const _set = /*#__PURE__*/ _interop_require_wildcard(require("./set")); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } 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; nth = (0, _function.curry)(function(i, ax) { return ax[i - 1]; }); first = nth(1); second = nth(2); third = nth(3); fourth = nth(4); fifth = nth(5); last = function(arg) { var arg, last, rest; [...rest] = arg, [last] = splice1.call(rest, -1); return last; }; rest = function([first, ...rest]) { return rest; }; // Array mutators push = (0, _function.curry)(function(a, ax) { ax.push(a); return ax; }); pop = (0, _function.detach)(Array.prototype.pop); shift = (0, _function.detach)(Array.prototype.shift); unshift = (0, _function.curry)(function(a, ax) { ax.unshift(a); return ax; }); enqueue = unshift; dequeue = pop; // Add for completeness peek = function(ax) { return ax[ax.length - 1]; }; poke = function(a, ax) { return ax[ax.length - 1] = a; }; // true splice without weird insertion option // or compose-breaking return value splice = (0, _function.curry)(function(i, n, ax) { ax.splice(i, n); return ax; }); insert = (0, _function.curry)(function(i, a, ax) { ax.splice(i, 0, a); return ax; }); remove = (0, _function.curry)(function(a, ax) { var i; if ((i = ax.indexOf(a)) !== -1) { ax.splice(i, 1); } return ax; }); cat = (0, _function.detach)(Array.prototype.concat); slice = (0, _function.curry)(function(i, j, ax) { return ax.slice(i, j); }); fill = (0, _function.curry)(function(a, ax) { return ax.fill(a); }); range = (0, _function.curry)(function(start, finish) { return (function() { var results = []; for(var k = start; start <= finish ? k <= finish : k >= finish; start <= finish ? k++ : k--){ results.push(k); } return results; }).apply(this); }); ({ random, round } = Math); pluck = function(ax) { return ax[round(random() * (ax.length - 1))]; }; pair = (0, _function.curry)(function(a, b) { return [ a, b ]; }); sort = (0, _function.curry)(function(f, ax) { return ax.toSorted(f, ax); }); compact = (0, _function.curry)(function(ax) { return ax.filter(function(a) { return a != null; }); }); union = (0, _function.compose)([ Array.from, _set.union ]); intersection = (0, _function.compose)([ Array.from, _set.intersection ]); complement = (0, _function.compose)([ Array.from, _set.complement ]); difference = (0, _function.compose)([ Array.from, _set.difference ]); unique = (0, _function.compose)([ Array.from, _set.unique ]); dupes = (0, _function.compose)([ Array.from, _set.dupes ]); // https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle ({ floor, random } = Math); shuffle = function(ax) { var bx, i, j; bx = [ ...ax ]; i = bx.length; if (!(i <= 1)) { while(--i > 0){ // the distinguishing characteristic of fisher-yates is that the random // value generated is bounded by the iterator index (Math.random() * i) // instead of the size of the array (Math.random() * bx.length) j = floor(random() * (i + 1)); [bx[i], bx[j]] = [ bx[j], bx[i] ]; } if ((0, _value.equal)(ax, bx)) { return shuffle(ax); } else { return bx; } } else { return bx; } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL2FycmF5LmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFBLEdBQUEsRUFBQSxPQUFBLEVBQUEsVUFBQSxFQUFBLE9BQUEsRUFBQSxVQUFBLEVBQUEsS0FBQSxFQUFBLE9BQUEsRUFBQSxLQUFBLEVBQUEsSUFBQSxFQUFBLEtBQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxZQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUEsRUFBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLEtBQUEsRUFBQSxJQUFBLEVBQUEsR0FBQSxFQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxLQUFBLEVBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxJQUFBLEVBQUEsTUFBQSxFQUFBLEtBQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLE9BQUE7RUFBQTs7QUFBQSxPQUFBO0VBQVEsS0FBUjtFQUFlLElBQWY7RUFBcUIsT0FBckI7RUFBOEIsT0FBOUI7RUFBdUMsQ0FBdkM7RUFBMEMsUUFBMUM7RUFDRSxLQURGO0VBQ1MsTUFEVDtFQUNpQixPQURqQjtFQUMwQixNQUQxQjtDQUFBLE1BQUE7O0FBRUEsT0FBQTtFQUFRLEtBQVI7Q0FBQSxNQUFBOztBQUNBLE9BQU8sQ0FBQSxNQUFQLE1BQUE7O0FBRUEsR0FBQSxHQUFNLEtBQUEsQ0FBTSxRQUFBLENBQUMsQ0FBRCxFQUFJLEVBQUosQ0FBQTtTQUFXLEVBQUUsQ0FBQyxDQUFBLEdBQUksQ0FBTDtBQUFiLENBQU47O0FBQ04sS0FBQSxHQUFTLEdBQUEsQ0FBSSxDQUFKOztBQUNULE1BQUEsR0FBUyxHQUFBLENBQUksQ0FBSjs7QUFDVCxLQUFBLEdBQVMsR0FBQSxDQUFJLENBQUo7O0FBQ1QsTUFBQSxHQUFTLEdBQUEsQ0FBSSxDQUFKOztB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QSxDQUFNLE1BQUEsQ0FBQSxDQUFBLEdBQVcsQ0FBQyxDQUFBLEdBQUksQ0FBTCxDQUFqQjtNQUNKLENBQUMsRUFBRSxDQUFDLENBQUQsQ0FBSCxFQUFRLEVBQUUsQ0FBQyxDQUFELENBQVYsQ0FBQSxHQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFELENBQUgsRUFBUSxFQUFFLENBQUMsQ0FBRCxDQUFWO0lBTG5CO0lBTUEsSUFBRyxLQUFBLENBQU0sRUFBTixFQUFVLEVBQVYsQ0FBSDthQUFxQixPQUFBLENBQVEsRUFBUixFQUFyQjtLQUFBLE1BQUE7YUFBcUMsR0FBckM7S0FQRjtHQUFBLE1BQUE7V0FTRSxHQVRGOztBQUhROztBQWNWLE9BQUE7RUFDRSxLQURGO0VBRUUsTUFGRjtFQUdFLEtBSEY7RUFJRSxNQUpGO0VBS0UsS0FMRjtFQU1FLEdBTkY7RUFPRSxJQVBGO0VBUUUsSUFSRjtFQVNFLElBVEY7RUFVRSxHQVZGO0VBV0UsS0FYRjtFQVlFLE9BWkY7RUFhRSxPQWJGO0VBY0UsT0FkRjtFQWVFLElBZkY7RUFnQkUsSUFoQkY7RUFpQkUsTUFqQkY7RUFrQkUsTUFsQkY7RUFtQkUsTUFuQkY7RUFvQkUsR0FwQkY7RUFxQkUsS0FyQkY7RUFzQkUsSUF0QkY7RUF1QkUsS0F2QkY7RUF3QkUsS0F4QkY7RUF5QkUsSUF6QkY7RUEwQkUsSUExQkY7RUEyQkUsT0EzQkY7RUE0QkUsS0E1QkY7RUE2QkUsWUE3QkY7RUE4QkUsVUE5QkY7RUErQkUsVUEvQkY7RUFnQ0UsTUFoQ0Y7RUFpQ0UsS0FqQ0Y7RUFrQ0UsT0FsQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2N1cnJ5LCBmbGlwLCBjb21wb3NlLCBwYXJ0aWFsLCBfLCBpZGVudGl0eSxcbiAgdW5hcnksIGJpbmFyeSwgdGVybmFyeSwgZGV0YWNofSBmcm9tIFwiLi9mdW5jdGlvblwiXG5pbXBvcnQge2VxdWFsfSBmcm9tIFwiLi92YWx1ZVwiXG5pbXBvcnQgKiBhcyBTZSBmcm9tIFwiLi9zZXRcIlxuXG5udGggPSBjdXJyeSAoaSwgYXgpIC0+IGF4W2kgLSAxXVxuZmlyc3QgID0gbnRoIDFcbnNlY29uZCA9IG50aCAyXG50aGlyZCAgPSBudGggM1xuZm91cnRoID0gbnRoIDRcbmZpZnRoICA9IG50aCA1XG5sYXN0ID0gKFtyZXN0Li4uLCBsYXN0XSkgLT4gbGFzdFxucmVzdCA9IChbZmlyc3QsIHJlc3QuLi5dKSAtPiByZXN0XG5cbiMgQXJyYXkgbXV0YXRvcnNcbnB1c2ggPSBjdXJyeSAoYSwgYXgpIC0+IGF4LnB1c2ggYTsgYXhcbnBvcCA9IGRldGFjaCBBcnJheTo6cG9wXG5zaGlmdCA9IGRldGFjaCBBcnJheTo6c2hpZnRcbnVuc2hpZnQgPSBjdXJyeSAoYSwgYXgpIC0+IGF4LnVuc2hpZnQgYTsgYXhcbmVucXVldWUgPSB1bnNoaWZ0XG5kZXF1ZXVlID0gcG9wXG5cbiMgQWRkIGZvciBjb21wbGV0ZW5lc3NcbnBlZWsgPSAoIGF4ICkgLT4gYXhbIGF4Lmxlbmd0aCAtIDEgXVxucG9rZSA9ICggYSwgYXggKSAtPiBheFsgYXgubGVuZ3RoIC0gMSBdID0gYVxuXG4jIHRydWUgc3BsaWNlIHdpdGhvdXQgd2VpcmQgaW5zZXJ0aW9uIG9wdGlvblxuIyBvciBjb21wb3NlLWJyZWFraW5nIHJldHVybiB2YWx1ZVxuc3BsaWNlID0gY3VycnkgKGksIG4sIGF4KSAtPlxuICBheC5zcGxpY2UgaSwgblxuICBheFxuXG5pbnNlcnQgPSBjdXJyeSAoaSwgYSwgYXgpIC0+XG4gIGF4LnNwbGljZSBpLCAwLCBhXG4gIGF4XG5cbnJlbW92ZSA9IGN1cnJ5IChhLCBheCkgLT5cbiAgKGF4LnNwbGljZSBpLCAxKSBpZiAoaSA9IGF4LmluZGV4T2YoIGEgKSkgIT0gLTFcbiAgYXhcblxuY2F0ID0gZGV0YWNoIEFycmF5Ojpjb25jYXRcblxuc2xpY2UgPSBjdXJyeSAoaSwgaiwgYXgpIC0+IGF4W2kuLi5qXVxuXG5maWxsID0gY3VycnkgKGEsIGF4KSAtPiBheC5maWxsIGFcblxucmFuZ2UgPSBjdXJyeSAoc3RhcnQsIGZpbmlzaCkgLT4gW3N0YXJ0Li5maW5pc2hdXG5cbntyYW5kb20sIHJvdW5kfSA9IE1hdGhcbnBsdWNrID0gKGF4KSAtPiBheFsocm91bmQgcmFuZG9tKCkgKiAoYXgubGVuZ3RoIC0gMSkpXVxuXG5wYWlyID0gY3VycnkgKGEsIGIpIC0+IFthLCBiXVxuXG5zb3J0ID0gY3VycnkgKGYsIGF4KSAtPiBheC50b1NvcnRlZCBmLCBheFxuXG5jb21wYWN0ID0gY3VycnkgKCBheCApIC0+IGF4LmZpbHRlciAoIGEgKSAtPiBhP1xuXG51bmlvbiA9IGNvbXBvc2UgW1xuICBBcnJheS5mcm9tXG4gIFNlLnVuaW9uXG5dXG5cbmludGVyc2VjdGlvbiA9IGNvbXBvc2UgW1xuICBBcnJheS5mcm9tXG4gIFNlLmludGVyc2VjdGlvblxuXVxuXG5jb21wbGVtZW50ID0gY29tcG9zZSBbXG4gIEFycmF5LmZyb21cbiAgU2UuY29tcGxlbWVudFxuXVxuXG5kaWZmZXJlbmNlID0gY29tcG9zZSBbXG4gIEFycmF5LmZyb21cbiAgU2UuZGlmZmVyZW5jZVxuXVxuXG51bmlxdWUgPSBjb21wb3NlIFtcbiAgQXJyYXkuZnJvbVxuICBTZS51bmlxdWVcbl1cblxuZHVwZXMgPSBjb21wb3NlIFtcbiAgQXJyYXkuZnJvbVxuICBTZS5kdXBlc1xuXVxuXG5cbiMgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRmlzaGVyJUUyJTgwJTkzWWF0ZXNfc2h1ZmZsZVxuI1xueyBmbG9vciwgcmFuZG9tIH0gPSBNYXRoXG5zaHVmZmxlID0gKCBheCApIC0+XG4gIGJ4ID0gWyBheC4uLiBdXG4gIGkgPSBieC5sZW5ndGhcbiAgdW5sZXNzIGkgPD0gMVxuICAgIHdoaWxlIC0taSA+IDBcbiAgICAgICMgdGhlIGRpc3Rpbmd1aXNoaW5nIGNoYXJhY3RlcmlzdGljIG9mIGZpc2hlci15YXRlcyBpcyB0aGF0IHRoZSByYW5kb21cbiAgICAgICMgdmFsdWUgZ2VuZXJhdGVkIGlzIGJvdW5kZWQgYnkgdGhlIGl0ZXJhdG9yIGluZGV4IChNYXRoLnJhbmRvbSgpICogaSlcbiAgICAgICMgaW5zdGVhZCBvZiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgKE1hdGgucmFuZG9tKCkgKiBieC5sZW5ndGgpXG4gICAgICBqID0gZmxvb3IgcmFuZG9tKCkgKiAoaSArIDEpXG4gICAgICBbYnhbaV0sIGJ4W2pdXSA9IFtieFtqXSwgYnhbaV1dXG4gICAgaWYgZXF1YWwgYXgsIGJ4IHRoZW4gc2h1ZmZsZSBheCBlbHNlIGJ4XG4gIGVsc2VcbiAgICBieFxuXG5leHBvcnQge1xuICBmaXJzdFxuICBzZWNvbmRcbiAgdGhpcmRcbiAgZm91cnRoXG4gIGZpZnRoXG4gIG50aFxuICBsYXN0XG4gIHJlc3RcbiAgcHVzaFxuICBwb3BcbiAgc2hpZnRcbiAgdW5zaGlmdFxuICBlbnF1ZXVlXG4gIGRlcXVldWVcbiAgcGVla1xuICBwb2tlXG4gIHNwbGljZVxuICBpbnNlcnRcbiAgcmVtb3ZlXG4gIGNhdFxuICBzbGljZVxuICBmaWxsXG4gIHJhbmdlXG4gIHBsdWNrXG4gIHBhaXJcbiAgc29ydFxuICBjb21wYWN0XG4gIHVuaW9uXG4gIGludGVyc2VjdGlvblxuICBjb21wbGVtZW50XG4gIGRpZmZlcmVuY2VcbiAgdW5pcXVlXG4gIGR1cGVzXG4gIHNodWZmbGVcbn1cbiJdfQ== //# sourceURL=/@dashkite/joy/src/array.coffee //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyIvQGRhc2hraXRlL2pveS9zcmMvYXJyYXkuY29mZmVlIl0sInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2N1cnJ5LCBmbGlwLCBjb21wb3NlLCBwYXJ0aWFsLCBfLCBpZGVudGl0eSxcbiAgdW5hcnksIGJpbmFyeSwgdGVybmFyeSwgZGV0YWNofSBmcm9tIFwiLi9mdW5jdGlvblwiXG5pbXBvcnQge2VxdWFsfSBmcm9tIFwiLi92YWx1ZVwiXG5pbXBvcnQgKiBhcyBTZSBmcm9tIFwiLi9zZXRcIlxuXG5udGggPSBjdXJyeSAoaSwgYXgpIC0+IGF4W2kgLSAxXVxuZmlyc3QgID0gbnRoIDFcbnNlY29uZCA9IG50aCAyXG50aGlyZCAgPSBudGggM1xuZm91cnRoID0gbnRoIDRcbmZpZnRoICA9IG50aCA1XG5sYXN0ID0gKFtyZXN0Li4uLCBsYXN0XSkgLT4gbGFzdFxucmVzdCA9IChbZmlyc3QsIHJlc3QuLi5dKSAtPiByZXN0XG5cbiMgQXJyYXkgbXV0YXRvcnNcbnB1c2ggPSBjdXJyeSAoYSwgYXgpIC0+IGF4LnB1c2ggYTsgYXhcbnBvcCA9IGRldGFjaCBBcnJheTo6cG9wXG5zaGlmdCA9IGRldGFjaCBBcnJheTo6c2hpZnRcbnVuc2hpZnQgPSBjdXJyeSAoYSwgYXgpIC0+IGF4LnVuc2hpZnQgYTsgYXhcbmVucXVldWUgPSB1bnNoaWZ0XG5kZXF1ZXVlID0gcG9wXG5cbiMgQWRkIGZvciBjb21wbGV0ZW5lc3NcbnBlZWsgPSAoIGF4ICkgLT4gYXhbIGF4Lmxlbmd0aCAtIDEgXVxucG9rZSA9ICggYSwgYXggKSAtPiBheFsgYXgubGVuZ3RoIC0gMSBdID0gYVxuXG4jIHRydWUgc3BsaWNlIHdpdGhvdXQgd2VpcmQgaW5zZXJ0aW9uIG9wdGlvblxuIyBvciBjb21wb3NlLWJyZWFraW5nIHJldHVybiB2YWx1ZVxuc3BsaWNlID0gY3VycnkgKGksIG4sIGF4KSAtPlxuICBheC5zcGxpY2UgaSwgblxuICBheFxuXG5pbnNlcnQgPSBjdXJyeSAoaSwgYSwgYXgpIC0+XG4gIGF4LnNwbGljZSBpLCAwLCBhXG4gIGF4XG5cbnJlbW92ZSA9IGN1cnJ5IChhLCBheCkgLT5cbiAgKGF4LnNwbGljZSBpLCAxKSBpZiAoaSA9IGF4LmluZGV4T2YoIGEgKSkgIT0gLTFcbiAgYXhcblxuY2F0ID0gZGV0YWNoIEFycmF5Ojpjb25jYXRcblxuc2xpY2UgPSBjdXJyeSAoaSwgaiwgYXgpIC0+IGF4W2kuLi5qXVxuXG5maWxsID0gY3VycnkgKGEsIGF4KSAtPiBheC5maWxsIGFcblxucmFuZ2UgPSBjdXJyeSAoc3RhcnQsIGZpbmlzaCkgLT4gW3N0YXJ0Li5maW5pc2hdXG5cbntyYW5kb20sIHJvdW5kfSA9IE1hdGhcbnBsdWNrID0gKGF4KSAtPiBheFsocm91bmQgcmFuZG9tKCkgKiAoYXgubGVuZ3RoIC0gMSkpXVxuXG5wYWlyID0gY3VycnkgKGEsIGIpIC0+IFthLCBiXVxuXG5zb3J0ID0gY3VycnkgKGYsIGF4KSAtPiBheC50b1NvcnRlZCBmLCBheFxuXG5jb21wYWN0ID0gY3VycnkgKCBheCApIC0+IGF4LmZpbHRlciAoIGEgKSAtPiBhP1xuXG51bmlvbiA9IGNvbXBvc2UgW1xuICBBcnJheS5mcm9tXG4gIFNlLnVuaW9uXG5dXG5cbmludGVyc2VjdGlvbiA9IGNvbXBvc2UgW1xuICBBcnJheS5mcm9tXG4gIFNlLmludGVyc2VjdGlvblxuXVxuXG5jb21wbGVtZW50ID0gY29tcG9zZSBbXG4gIEFycmF5LmZyb21cbiAgU2UuY29tcGxlbWVudFxuXVxuXG5kaWZmZXJlbmNlID0gY29tcG9zZSBbXG4gIEFycmF5LmZyb21cbiAgU2UuZGlmZmVyZW5jZVxuXVxuXG51bmlxdWUgPSBjb21wb3NlIFtcbiAgQXJyYXkuZnJvbVxuICBTZS51bmlxdWVcbl1cblxuZHVwZXMgPSBjb21wb3NlIFtcbiAgQXJyYXkuZnJvbVxuICBTZS5kdXBlc1xuXVxuXG5cbiMgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRmlzaGVyJUUyJTgwJTkzWWF0ZXNfc2h1ZmZsZVxuI1xueyBmbG9vciwgcmFuZG9tIH0gPSBNYXRoXG5zaHVmZmxlID0gKCBheCApIC0+XG4gIGJ4ID0gWyBheC4uLiBdXG4gIGkgPSBieC5sZW5ndGhcbiAgdW5sZXNzIGkgPD0gMVxuICAgIHdoaWxlIC0taSA+IDBcbiAgICAgICMgdGhlIGRpc3Rpbmd1aXNoaW5nIGNoYXJhY3RlcmlzdGljIG9mIGZpc2hlci15YXRlcyBpcyB0aGF0IHRoZSByYW5kb21cbiAgICAgICMgdmFsdWUgZ2VuZXJhdGVkIGlzIGJvdW5kZWQgYnkgdGhlIGl0ZXJhdG9yIGluZGV4IChNYXRoLnJhbmRvbSgpICogaSlcbiAgICAgICMgaW5zdGVhZCBvZiB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgKE1hdGgucmFuZG9tKCkgKiBieC5sZW5ndGgpXG4gICAgICBqID0gZmxvb3IgcmFuZG9tKCkgKiAoaSArIDEpXG4gICAgICBbYnhbaV0sIGJ4W2pdXSA9IFtieFtqXSwgYnhbaV1dXG4gICAgaWYgZXF1YWwgYXgsIGJ4IHRoZW4gc2h1ZmZsZSBheCBlbHNlIGJ4XG4gIGVsc2VcbiAgICBieFxuXG5leHBvcnQge1xuICBmaXJzdFxuICBzZWNvbmRcbiAgdGhpcmRcbiAgZm91cnRoXG4gIGZpZnRoXG4gIG50aFxuICBsYXN0XG4gIHJlc3RcbiAgcHVzaFxuICBwb3BcbiAgc2hpZnRcbiAgdW5zaGlmdFxuICBlbnF1ZXVlXG4gIGRlcXVldWVcbiAgcGVla1xuICBwb2tlXG4gIHNwbGljZVxuICBpbnNlcnRcbiAgcmVtb3ZlXG4gIGNhdFxuICBzbGljZVxuICBmaWxsXG4gIHJhbmdlXG4gIHBsdWNrXG4gIHBhaXJcbiAgc29ydFxuICBjb21wYWN0XG4gIHVuaW9uXG4gIGludGVyc2VjdGlvblxuICBjb21wbGVtZW50XG4gIGRpZmZlcmVuY2VcbiAgdW5pcXVlXG4gIGR1cGVzXG4gIHNodWZmbGVcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQTZIRSxHQXBCRjs7OztlQTJCRSxP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