25 lines
18 KiB
JavaScript

"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "vendor-chunks/it-parallel";
exports.ids = ["vendor-chunks/it-parallel"];
exports.modules = {
/***/ "(ssr)/./node_modules/it-parallel/dist/src/index.js":
/*!****************************************************!*\
!*** ./node_modules/it-parallel/dist/src/index.js ***!
\****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ parallel)\n/* harmony export */ });\n/* harmony import */ var p_defer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! p-defer */ \"(ssr)/./node_modules/p-defer/index.js\");\n/**\n * @packageDocumentation\n *\n * Takes an (async) iterable that emits promise-returning functions, invokes them in parallel up to the concurrency limit and emits the results as they become available, optionally in the same order as the input\n *\n * @example\n *\n * ```javascript\n * import parallel from 'it-parallel'\n * import all from 'it-all'\n * import delay from 'delay'\n *\n * // This can also be an iterator, async iterator, generator, etc\n * const input = [\n * async () => {\n * console.info('start 1')\n * await delay(500)\n *\n * console.info('end 1')\n * return 1\n * },\n * async () => {\n * console.info('start 2')\n * await delay(200)\n *\n * console.info('end 2')\n * return 2\n * },\n * async () => {\n * console.info('start 3')\n * await delay(100)\n *\n * console.info('end 3')\n * return 3\n * }\n * ]\n *\n * const result = await all(parallel(input, {\n * concurrency: 2\n * }))\n *\n * // output:\n * // start 1\n * // start 2\n * // end 2\n * // start 3\n * // end 3\n * // end 1\n *\n * console.info(result) // [2, 3, 1]\n * ```\n *\n * If order is important, pass `ordered: true` as an option:\n *\n * ```javascript\n * const result = await all(parallel(input, {\n * concurrency: 2,\n * ordered: true\n * }))\n *\n * // output:\n * // start 1\n * // start 2\n * // end 2\n * // start 3\n * // end 3\n * // end 1\n *\n * console.info(result) // [1, 2, 3]\n * ```\n */ \nconst CustomEvent = globalThis.CustomEvent ?? Event;\n/**\n * Takes an (async) iterator that emits promise-returning functions,\n * invokes them in parallel and emits the results as they become available but\n * in the same order as the input\n */ async function* parallel(source, options = {}) {\n let concurrency = options.concurrency ?? Infinity;\n if (concurrency < 1) {\n concurrency = Infinity;\n }\n const ordered = options.ordered == null ? false : options.ordered;\n const emitter = new EventTarget();\n const ops = [];\n let slotAvailable = (0,p_defer__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n let resultAvailable = (0,p_defer__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n let sourceFinished = false;\n let sourceErr;\n let opErred = false;\n emitter.addEventListener(\"task-complete\", ()=>{\n resultAvailable.resolve();\n });\n void Promise.resolve().then(async ()=>{\n try {\n for await (const task of source){\n if (ops.length === concurrency) {\n slotAvailable = (0,p_defer__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n await slotAvailable.promise;\n }\n if (opErred) {\n break;\n }\n const op = {\n done: false\n };\n ops.push(op);\n task().then((result)=>{\n op.done = true;\n op.ok = true;\n op.value = result;\n emitter.dispatchEvent(new CustomEvent(\"task-complete\"));\n }, (err)=>{\n op.done = true;\n op.err = err;\n emitter.dispatchEvent(new CustomEvent(\"task-complete\"));\n });\n }\n sourceFinished = true;\n emitter.dispatchEvent(new CustomEvent(\"task-complete\"));\n } catch (err) {\n sourceErr = err;\n emitter.dispatchEvent(new CustomEvent(\"task-complete\"));\n }\n });\n function valuesAvailable() {\n if (ordered) {\n return ops[0]?.done;\n }\n return Boolean(ops.find((op)=>op.done));\n }\n function* yieldOrderedValues() {\n while(ops.length > 0 && ops[0].done){\n const op = ops[0];\n ops.shift();\n if (op.ok) {\n yield op.value;\n } else {\n // allow the source to exit\n opErred = true;\n slotAvailable.resolve();\n throw op.err;\n }\n slotAvailable.resolve();\n }\n }\n function* yieldUnOrderedValues() {\n // more values can become available while we wait for `yield`\n // to return control to this function\n while(valuesAvailable()){\n for(let i = 0; i < ops.length; i++){\n if (ops[i].done) {\n const op = ops[i];\n ops.splice(i, 1);\n i--;\n if (op.ok) {\n yield op.value;\n } else {\n opErred = true;\n slotAvailable.resolve();\n throw op.err;\n }\n slotAvailable.resolve();\n }\n }\n }\n }\n while(true){\n if (!valuesAvailable()) {\n resultAvailable = (0,p_defer__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n await resultAvailable.promise;\n }\n if (sourceErr != null) {\n // the source threw an error, propagate it\n throw sourceErr;\n }\n if (ordered) {\n yield* yieldOrderedValues();\n } else {\n yield* yieldUnOrderedValues();\n }\n if (sourceFinished && ops.length === 0) {\n break;\n }\n }\n} //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvaXQtcGFyYWxsZWwvZGlzdC9zcmMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNFQyxHQUMyQjtBQUM1QixNQUFNQyxjQUFjQyxXQUFXRCxXQUFXLElBQUlFO0FBQzlDOzs7O0NBSUMsR0FDYyxnQkFBZ0JDLFNBQVNDLE1BQU0sRUFBRUMsVUFBVSxDQUFDLENBQUM7SUFDeEQsSUFBSUMsY0FBY0QsUUFBUUMsV0FBVyxJQUFJQztJQUN6QyxJQUFJRCxjQUFjLEdBQUc7UUFDakJBLGNBQWNDO0lBQ2xCO0lBQ0EsTUFBTUMsVUFBVUgsUUFBUUcsT0FBTyxJQUFJLE9BQU8sUUFBUUgsUUFBUUcsT0FBTztJQUNqRSxNQUFNQyxVQUFVLElBQUlDO0lBQ3BCLE1BQU1DLE1BQU0sRUFBRTtJQUNkLElBQUlDLGdCQUFnQmIsbURBQUtBO0lBQ3pCLElBQUljLGtCQUFrQmQsbURBQUtBO0lBQzNCLElBQUllLGlCQUFpQjtJQUNyQixJQUFJQztJQUNKLElBQUlDLFVBQVU7SUFDZFAsUUFBUVEsZ0JBQWdCLENBQUMsaUJBQWlCO1FBQ3RDSixnQkFBZ0JLLE9BQU87SUFDM0I7SUFDQSxLQUFLQyxRQUFRRCxPQUFPLEdBQUdFLElBQUksQ0FBQztRQUN4QixJQUFJO1lBQ0EsV0FBVyxNQUFNQyxRQUFRakIsT0FBUTtnQkFDN0IsSUFBSU8sSUFBSVcsTUFBTSxLQUFLaEIsYUFBYTtvQkFDNUJNLGdCQUFnQmIsbURBQUtBO29CQUNyQixNQUFNYSxjQUFjVyxPQUFPO2dCQUMvQjtnQkFDQSxJQUFJUCxTQUFTO29CQUNUO2dCQUNKO2dCQUNBLE1BQU1RLEtBQUs7b0JBQ1BDLE1BQU07Z0JBQ1Y7Z0JBQ0FkLElBQUllLElBQUksQ0FBQ0Y7Z0JBQ1RILE9BQ0tELElBQUksQ0FBQ08sQ0FBQUE7b0JBQ05ILEdBQUdDLElBQUksR0FBRztvQkFDVkQsR0FBR0ksRUFBRSxHQUFHO29CQUNSSixHQUFHSyxLQUFLLEdBQUdGO29CQUNYbEIsUUFBUXFCLGFBQWEsQ0FBQyxJQUFJOUIsWUFBWTtnQkFDMUMsR0FBRytCLENBQUFBO29CQUNDUCxHQUFHQyxJQUFJLEdBQUc7b0JBQ1ZELEdBQUdPLEdBQUcsR0FBR0E7b0JBQ1R0QixRQUFRcUIsYUFBYSxDQUFDLElBQUk5QixZQUFZO2dCQUMxQztZQUNKO1lBQ0FjLGlCQUFpQjtZQUNqQkwsUUFBUXFCLGFBQWEsQ0FBQyxJQUFJOUIsWUFBWTtRQUMxQyxFQUNBLE9BQU8rQixLQUFLO1lBQ1JoQixZQUFZZ0I7WUFDWnRCLFFBQVFxQixhQUFhLENBQUMsSUFBSTlCLFlBQVk7UUFDMUM7SUFDSjtJQUNBLFNBQVNnQztRQUNMLElBQUl4QixTQUFTO1lBQ1QsT0FBT0csR0FBRyxDQUFDLEVBQUUsRUFBRWM7UUFDbkI7UUFDQSxPQUFPUSxRQUFRdEIsSUFBSXVCLElBQUksQ0FBQ1YsQ0FBQUEsS0FBTUEsR0FBR0MsSUFBSTtJQUN6QztJQUNBLFVBQVVVO1FBQ04sTUFBTyxJQUFLYixNQUFNLEdBQUcsS0FBTVgsR0FBRyxDQUFDLEVBQUUsQ0FBQ2MsSUFBSSxDQUFFO1lBQ3BDLE1BQU1ELEtBQUtiLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCQSxJQUFJeUIsS0FBSztZQUNULElBQUlaLEdBQUdJLEVBQUUsRUFBRTtnQkFDUCxNQUFNSixHQUFHSyxLQUFLO1lBQ2xCLE9BQ0s7Z0JBQ0QsMkJBQTJCO2dCQUMzQmIsVUFBVTtnQkFDVkosY0FBY00sT0FBTztnQkFDckIsTUFBTU0sR0FBR08sR0FBRztZQUNoQjtZQUNBbkIsY0FBY00sT0FBTztRQUN6QjtJQUNKO0lBQ0EsVUFBVW1CO1FBQ04sNkRBQTZEO1FBQzdELHFDQUFxQztRQUNyQyxNQUFPTCxrQkFBbUI7WUFDdEIsSUFBSyxJQUFJTSxJQUFJLEdBQUdBLElBQUkzQixJQUFJVyxNQUFNLEVBQUVnQixJQUFLO2dCQUNqQyxJQUFJM0IsR0FBRyxDQUFDMkIsRUFBRSxDQUFDYixJQUFJLEVBQUU7b0JBQ2IsTUFBTUQsS0FBS2IsR0FBRyxDQUFDMkIsRUFBRTtvQkFDakIzQixJQUFJNEIsTUFBTSxDQUFDRCxHQUFHO29CQUNkQTtvQkFDQSxJQUFJZCxHQUFHSSxFQUFFLEVBQUU7d0JBQ1AsTUFBTUosR0FBR0ssS0FBSztvQkFDbEIsT0FDSzt3QkFDRGIsVUFBVTt3QkFDVkosY0FBY00sT0FBTzt3QkFDckIsTUFBTU0sR0FBR08sR0FBRztvQkFDaEI7b0JBQ0FuQixjQUFjTSxPQUFPO2dCQUN6QjtZQUNKO1FBQ0o7SUFDSjtJQUNBLE1BQU8sS0FBTTtRQUNULElBQUksQ0FBQ2MsbUJBQW1CO1lBQ3BCbkIsa0JBQWtCZCxtREFBS0E7WUFDdkIsTUFBTWMsZ0JBQWdCVSxPQUFPO1FBQ2pDO1FBQ0EsSUFBSVIsYUFBYSxNQUFNO1lBQ25CLDBDQUEwQztZQUMxQyxNQUFNQTtRQUNWO1FBQ0EsSUFBSVAsU0FBUztZQUNULE9BQU8yQjtRQUNYLE9BQ0s7WUFDRCxPQUFPRTtRQUNYO1FBQ0EsSUFBSXZCLGtCQUFrQkgsSUFBSVcsTUFBTSxLQUFLLEdBQUc7WUFFcEM7UUFDSjtJQUNKO0FBQ0osRUFDQSxpQ0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9mbHVzaC1ub3Rlcy8uL25vZGVfbW9kdWxlcy9pdC1wYXJhbGxlbC9kaXN0L3NyYy9pbmRleC5qcz9hYTU1Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGFrZXMgYW4gKGFzeW5jKSBpdGVyYWJsZSB0aGF0IGVtaXRzIHByb21pc2UtcmV0dXJuaW5nIGZ1bmN0aW9ucywgaW52b2tlcyB0aGVtIGluIHBhcmFsbGVsIHVwIHRvIHRoZSBjb25jdXJyZW5jeSBsaW1pdCBhbmQgZW1pdHMgdGhlIHJlc3VsdHMgYXMgdGhleSBiZWNvbWUgYXZhaWxhYmxlLCBvcHRpb25hbGx5IGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSBpbnB1dFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogaW1wb3J0IHBhcmFsbGVsIGZyb20gJ2l0LXBhcmFsbGVsJ1xuICogaW1wb3J0IGFsbCBmcm9tICdpdC1hbGwnXG4gKiBpbXBvcnQgZGVsYXkgZnJvbSAnZGVsYXknXG4gKlxuICogLy8gVGhpcyBjYW4gYWxzbyBiZSBhbiBpdGVyYXRvciwgYXN5bmMgaXRlcmF0b3IsIGdlbmVyYXRvciwgZXRjXG4gKiBjb25zdCBpbnB1dCA9IFtcbiAqICAgYXN5bmMgKCkgPT4ge1xuICogICAgIGNvbnNvbGUuaW5mbygnc3RhcnQgMScpXG4gKiAgICAgYXdhaXQgZGVsYXkoNTAwKVxuICpcbiAqICAgICBjb25zb2xlLmluZm8oJ2VuZCAxJylcbiAqICAgICByZXR1cm4gMVxuICogICB9LFxuICogICBhc3luYyAoKSA9PiB7XG4gKiAgICAgY29uc29sZS5pbmZvKCdzdGFydCAyJylcbiAqICAgICBhd2FpdCBkZWxheSgyMDApXG4gKlxuICogICAgIGNvbnNvbGUuaW5mbygnZW5kIDInKVxuICogICAgIHJldHVybiAyXG4gKiAgIH0sXG4gKiAgIGFzeW5jICgpID0+IHtcbiAqICAgICBjb25zb2xlLmluZm8oJ3N0YXJ0IDMnKVxuICogICAgIGF3YWl0IGRlbGF5KDEwMClcbiAqXG4gKiAgICAgY29uc29sZS5pbmZvKCdlbmQgMycpXG4gKiAgICAgcmV0dXJuIDNcbiAqICAgfVxuICogXVxuICpcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFsbChwYXJhbGxlbChpbnB1dCwge1xuICogICBjb25jdXJyZW5jeTogMlxuICogfSkpXG4gKlxuICogLy8gb3V0cHV0OlxuICogLy8gc3RhcnQgMVxuICogLy8gc3RhcnQgMlxuICogLy8gZW5kIDJcbiAqIC8vIHN0YXJ0IDNcbiAqIC8vIGVuZCAzXG4gKiAvLyBlbmQgMVxuICpcbiAqIGNvbnNvbGUuaW5mbyhyZXN1bHQpIC8vIFsyLCAzLCAxXVxuICogYGBgXG4gKlxuICogSWYgb3JkZXIgaXMgaW1wb3J0YW50LCBwYXNzIGBvcmRlcmVkOiB0cnVlYCBhcyBhbiBvcHRpb246XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogY29uc3QgcmVzdWx0ID0gYXdhaXQgYWxsKHBhcmFsbGVsKGlucHV0LCB7XG4gKiAgIGNvbmN1cnJlbmN5OiAyLFxuICogICBvcmRlcmVkOiB0cnVlXG4gKiB9KSlcbiAqXG4gKiAvLyBvdXRwdXQ6XG4gKiAvLyBzdGFydCAxXG4gKiAvLyBzdGFydCAyXG4gKiAvLyBlbmQgMlxuICogLy8gc3RhcnQgM1xuICogLy8gZW5kIDNcbiAqIC8vIGVuZCAxXG4gKlxuICogY29uc29sZS5pbmZvKHJlc3VsdCkgLy8gWzEsIDIsIDNdXG4gKiBgYGBcbiAqL1xuaW1wb3J0IGRlZmVyIGZyb20gJ3AtZGVmZXInO1xuY29uc3QgQ3VzdG9tRXZlbnQgPSBnbG9iYWxUaGlzLkN1c3RvbUV2ZW50ID8/IEV2ZW50O1xuLyoqXG4gKiBUYWtlcyBhbiAoYXN5bmMpIGl0ZXJhdG9yIHRoYXQgZW1pdHMgcHJvbWlzZS1yZXR1cm5pbmcgZnVuY3Rpb25zLFxuICogaW52b2tlcyB0aGVtIGluIHBhcmFsbGVsIGFuZCBlbWl0cyB0aGUgcmVzdWx0cyBhcyB0aGV5IGJlY29tZSBhdmFpbGFibGUgYnV0XG4gKiBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGUgaW5wdXRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24qIHBhcmFsbGVsKHNvdXJjZSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGNvbmN1cnJlbmN5ID0gb3B0aW9ucy5jb25jdXJyZW5jeSA/PyBJbmZpbml0eTtcbiAgICBpZiAoY29uY3VycmVuY3kgPCAxKSB7XG4gICAgICAgIGNvbmN1cnJlbmN5ID0gSW5maW5pdHk7XG4gICAgfVxuICAgIGNvbnN0IG9yZGVyZWQgPSBvcHRpb25zLm9yZGVyZWQgPT0gbnVsbCA/IGZhbHNlIDogb3B0aW9ucy5vcmRlcmVkO1xuICAgIGNvbnN0IGVtaXR0ZXIgPSBuZXcgRXZlbnRUYXJnZXQoKTtcbiAgICBjb25zdCBvcHMgPSBbXTtcbiAgICBsZXQgc2xvdEF2YWlsYWJsZSA9IGRlZmVyKCk7XG4gICAgbGV0IHJlc3VsdEF2YWlsYWJsZSA9IGRlZmVyKCk7XG4gICAgbGV0IHNvdXJjZUZpbmlzaGVkID0gZmFsc2U7XG4gICAgbGV0IHNvdXJjZUVycjtcbiAgICBsZXQgb3BFcnJlZCA9IGZhbHNlO1xuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcigndGFzay1jb21wbGV0ZScsICgpID0+IHtcbiAgICAgICAgcmVzdWx0QXZhaWxhYmxlLnJlc29sdmUoKTtcbiAgICB9KTtcbiAgICB2b2lkIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZm9yIGF3YWl0IChjb25zdCB0YXNrIG9mIHNvdXJjZSkge1xuICAgICAgICAgICAgICAgIGlmIChvcHMubGVuZ3RoID09PSBjb25jdXJyZW5jeSkge1xuICAgICAgICAgICAgICAgICAgICBzbG90QXZhaWxhYmxlID0gZGVmZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2xvdEF2YWlsYWJsZS5wcm9taXNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAob3BFcnJlZCkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgb3AgPSB7XG4gICAgICAgICAgICAgICAgICAgIGRvbmU6IGZhbHNlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBvcHMucHVzaChvcCk7XG4gICAgICAgICAgICAgICAgdGFzaygpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wLmRvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBvcC5vayA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIG9wLnZhbHVlID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICBlbWl0dGVyLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCd0YXNrLWNvbXBsZXRlJykpO1xuICAgICAgICAgICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wLmRvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBvcC5lcnIgPSBlcnI7XG4gICAgICAgICAgICAgICAgICAgIGVtaXR0ZXIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3Rhc2stY29tcGxldGUnKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzb3VyY2VGaW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgICBlbWl0dGVyLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCd0YXNrLWNvbXBsZXRlJykpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHNvdXJjZUVyciA9IGVycjtcbiAgICAgICAgICAgIGVtaXR0ZXIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3Rhc2stY29tcGxldGUnKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiB2YWx1ZXNBdmFpbGFibGUoKSB7XG4gICAgICAgIGlmIChvcmRlcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gb3BzWzBdPy5kb25lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBCb29sZWFuKG9wcy5maW5kKG9wID0+IG9wLmRvbmUpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24qIHlpZWxkT3JkZXJlZFZhbHVlcygpIHtcbiAgICAgICAgd2hpbGUgKChvcHMubGVuZ3RoID4gMCkgJiYgb3BzWzBdLmRvbmUpIHtcbiAgICAgICAgICAgIGNvbnN0IG9wID0gb3BzWzBdO1xuICAgICAgICAgICAgb3BzLnNoaWZ0KCk7XG4gICAgICAgICAgICBpZiAob3Aub2spIHtcbiAgICAgICAgICAgICAgICB5aWVsZCBvcC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGFsbG93IHRoZSBzb3VyY2UgdG8gZXhpdFxuICAgICAgICAgICAgICAgIG9wRXJyZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHNsb3RBdmFpbGFibGUucmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIHRocm93IG9wLmVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNsb3RBdmFpbGFibGUucmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uKiB5aWVsZFVuT3JkZXJlZFZhbHVlcygpIHtcbiAgICAgICAgLy8gbW9yZSB2YWx1ZXMgY2FuIGJlY29tZSBhdmFpbGFibGUgd2hpbGUgd2Ugd2FpdCBmb3IgYHlpZWxkYFxuICAgICAgICAvLyB0byByZXR1cm4gY29udHJvbCB0byB0aGlzIGZ1bmN0aW9uXG4gICAgICAgIHdoaWxlICh2YWx1ZXNBdmFpbGFibGUoKSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAob3BzW2ldLmRvbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3AgPSBvcHNbaV07XG4gICAgICAgICAgICAgICAgICAgIG9wcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGktLTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCBvcC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wRXJyZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xvdEF2YWlsYWJsZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBvcC5lcnI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2xvdEF2YWlsYWJsZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGlmICghdmFsdWVzQXZhaWxhYmxlKCkpIHtcbiAgICAgICAgICAgIHJlc3VsdEF2YWlsYWJsZSA9IGRlZmVyKCk7XG4gICAgICAgICAgICBhd2FpdCByZXN1bHRBdmFpbGFibGUucHJvbWlzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc291cmNlRXJyICE9IG51bGwpIHtcbiAgICAgICAgICAgIC8vIHRoZSBzb3VyY2UgdGhyZXcgYW4gZXJyb3IsIHByb3BhZ2F0ZSBpdFxuICAgICAgICAgICAgdGhyb3cgc291cmNlRXJyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcmRlcmVkKSB7XG4gICAgICAgICAgICB5aWVsZCogeWllbGRPcmRlcmVkVmFsdWVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB5aWVsZCogeWllbGRVbk9yZGVyZWRWYWx1ZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc291cmNlRmluaXNoZWQgJiYgb3BzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gbm90IHdhaXRpbmcgZm9yIGFueSByZXN1bHRzIGFuZCBubyBtb3JlIHRhc2tzIHNvIHdlIGFyZSBkb25lXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6WyJkZWZlciIsIkN1c3RvbUV2ZW50IiwiZ2xvYmFsVGhpcyIsIkV2ZW50IiwicGFyYWxsZWwiLCJzb3VyY2UiLCJvcHRpb25zIiwiY29uY3VycmVuY3kiLCJJbmZpbml0eSIsIm9yZGVyZWQiLCJlbWl0dGVyIiwiRXZlbnRUYXJnZXQiLCJvcHMiLCJzbG90QXZhaWxhYmxlIiwicmVzdWx0QXZhaWxhYmxlIiwic291cmNlRmluaXNoZWQiLCJzb3VyY2VFcnIiLCJvcEVycmVkIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlc29sdmUiLCJQcm9taXNlIiwidGhlbiIsInRhc2siLCJsZW5ndGgiLCJwcm9taXNlIiwib3AiLCJkb25lIiwicHVzaCIsInJlc3VsdCIsIm9rIiwidmFsdWUiLCJkaXNwYXRjaEV2ZW50IiwiZXJyIiwidmFsdWVzQXZhaWxhYmxlIiwiQm9vbGVhbiIsImZpbmQiLCJ5aWVsZE9yZGVyZWRWYWx1ZXMiLCJzaGlmdCIsInlpZWxkVW5PcmRlcmVkVmFsdWVzIiwiaSIsInNwbGljZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/it-parallel/dist/src/index.js\n");
/***/ })
};
;