occam-languages 2.2.57 → 2.2.58
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.
|
@@ -322,11 +322,11 @@ function asynchronousFilter(array, callback, ...initialArguments) {
|
|
|
322
322
|
function asynchronousPrune(array, callback, ...initialArguments) {
|
|
323
323
|
const continuation = initialArguments.pop(), length = array.length;
|
|
324
324
|
let deletedElement;
|
|
325
|
-
let index =
|
|
325
|
+
let index = -1;
|
|
326
326
|
let finalArguments;
|
|
327
327
|
function next(...callbackArguments) {
|
|
328
|
-
index
|
|
329
|
-
if (index ===
|
|
328
|
+
index++;
|
|
329
|
+
if (index === length) {
|
|
330
330
|
deletedElement = undefined;
|
|
331
331
|
finalArguments = initialArguments; ///
|
|
332
332
|
return continuation(deletedElement, ...finalArguments);
|
|
@@ -349,11 +349,11 @@ function asynchronousPrune(array, callback, ...initialArguments) {
|
|
|
349
349
|
function asynchronousExtract(array, callback, ...initialArguments) {
|
|
350
350
|
const continuation = initialArguments.pop(), length = array.length;
|
|
351
351
|
let deletedElement;
|
|
352
|
-
let index =
|
|
352
|
+
let index = -1;
|
|
353
353
|
let finalArguments;
|
|
354
354
|
function next(...callbackArguments) {
|
|
355
|
-
index
|
|
356
|
-
if (index ===
|
|
355
|
+
index++;
|
|
356
|
+
if (index === length) {
|
|
357
357
|
deletedElement = undefined;
|
|
358
358
|
finalArguments = initialArguments; ///
|
|
359
359
|
return continuation(deletedElement, ...finalArguments);
|
|
@@ -482,4 +482,4 @@ const _default = {
|
|
|
482
482
|
asynchronousExists
|
|
483
483
|
};
|
|
484
484
|
|
|
485
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaWx0ZXI6IGFycmF5RmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c09uZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBjb3VudCA9IDAsXG4gICAgICBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gKGNvdW50ID09PSAxKTtcblxuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsIChzdWNjZXNzLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIGlmIChjb3VudCA9PT0gMSkge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgICBjb3VudCsrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c1NvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBsZXQgZmluYWxBcmd1bWVudHM7XG5cbiAgZnVuY3Rpb24gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBjb3VudCA9IDAsXG4gICAgICBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gKGNvdW50ID4gMCk7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleCsrO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNSZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KHZhbHVlLCAuLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24odmFsdWUsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIHZhbHVlLCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHZhbHVlLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQodmFsdWUsIC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlID0gaW5pdGlhbFZhbHVlLCAvLy9cbiAgICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCh2YWx1ZSwgLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0ZvcndhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBsZXQgZmluYWxBcmd1bWVudHM7XG5cbiAgZnVuY3Rpb24gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0JhY2t3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgbGV0IGluZGV4ID0gbGVuZ3RoO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgtLTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNGaWx0ZXIoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBjb25zdCBkZWxldGVkRWxlbWVudHMgPSBbXTtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnRzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHBhc3NlZCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gaW5kZXgsIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgICAgICAgYXJyYXkuc3BsaWNlKHN0YXJ0SW5kZXgsIGRlbGV0ZUNvdW50KTtcblxuICAgICAgICBkZWxldGVkRWxlbWVudHMudW5zaGlmdChkZWxldGVkRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNQcnVuZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBkZWxldGVkRWxlbWVudDtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAocGFzc2VkLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBpbmRleCwgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMSxcbiAgICAgICAgICAgICAgZGVsZXRlZEVsZW1lbnQgPSBlbGVtZW50OyAvLy9cblxuICAgICAgICBhcnJheS5zcGxpY2Uoc3RhcnRJbmRleCwgZGVsZXRlQ291bnQpO1xuXG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKGRlbGV0ZWRFbGVtZW50LCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzRXh0cmFjdChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBkZWxldGVkRWxlbWVudDtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAocGFzc2VkLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IGluZGV4LCAvLy9cbiAgICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxLFxuICAgICAgICAgICAgICBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gICAgICAgIGFycmF5LnNwbGljZShzdGFydEluZGV4LCBkZWxldGVDb3VudCk7XG5cbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNNYXRjaChhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBpZiAoYXJyYXlBTGVuZ3RoICE9PSBhcnJheUJMZW5ndGgpIHtcbiAgICBjb25zdCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBmaW5hbEFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH1cblxuICBjb25zdCBsZW5ndGggPSBhcnJheUFMZW5ndGg7ICAvLy9cblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gdHJ1ZTtcblxuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XSxcbiAgICAgICAgICBlbGVtZW50QiA9IGFycmF5QltpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNSZXNvbHZlKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0UGFzcyguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBjb25zdCBsZW5ndGggPSBhcnJheUEubGVuZ3RoOyAvLy9cblxuICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4ID0gLTE7XG5cbiAgICBmdW5jdGlvbiBuZXh0RWxlbWVudCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJyYXlGaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICAgICAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgICAgICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV4dFBhc3MoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZWxlbWVudEEgPSBhcnJheUFbaW5kZXhdO1xuXG4gICAgICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50QSwgLi4uY2FsbGJhY2tBcmd1bWVudHMsIChwYXNzZWQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCID0gZWxlbWVudEE7ICAvLy9cblxuICAgICAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV4dEVsZW1lbnQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dEVsZW1lbnQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dFBhc3MoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzQWxsKGNhbGxiYWNrcywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICByZXR1cm4gYXN5bmNocm9ub3VzRXZlcnkoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgfSwgLi4uaW5pdGlhbEFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNFeGlzdHMoY2FsbGJhY2tzLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIHJldHVybiBhc3luY2hyb25vdXNTb21lKGNhbGxiYWNrcywgKGNhbGxiYWNrLCAuLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gIH0sIC4uLmluaXRpYWxBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGFzeW5jaHJvbm91c09uZSxcbiAgYXN5bmNocm9ub3VzU29tZSxcbiAgYXN5bmNocm9ub3VzRWFjaCxcbiAgYXN5bmNocm9ub3VzRXZlcnksXG4gIGFzeW5jaHJvbm91c1JlZHVjZSxcbiAgYXN5bmNocm9ub3VzRm9yRWFjaCxcbiAgYXN5bmNocm9ub3VzRm9yd2FyZHNFdmVyeSxcbiAgYXN5bmNocm9ub3VzQmFja3dhcmRzRXZlcnksXG4gIGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCxcbiAgYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCxcbiAgYXN5bmNocm9ub3VzRmlsdGVyLFxuICBhc3luY2hyb25vdXNQcnVuZSxcbiAgYXN5bmNocm9ub3VzRXh0cmFjdCxcbiAgYXN5bmNocm9ub3VzTWF0Y2gsXG4gIGFzeW5jaHJvbm91c1Jlc29sdmUsXG4gIGFzeW5jaHJvbm91c0FsbCxcbiAgYXN5bmNocm9ub3VzRXhpc3RzXG59O1xuIl0sIm5hbWVzIjpbImFzeW5jaHJvbm91c0FsbCIsImFzeW5jaHJvbm91c0JhY2t3YXJkc0V2ZXJ5IiwiYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c0VhY2giLCJhc3luY2hyb25vdXNFdmVyeSIsImFzeW5jaHJvbm91c0V4aXN0cyIsImFzeW5jaHJvbm91c0V4dHJhY3QiLCJhc3luY2hyb25vdXNGaWx0ZXIiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwiYXN5bmNocm9ub3VzRm9yd2FyZHNFdmVyeSIsImFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c01hdGNoIiwiYXN5bmNocm9ub3VzT25lIiwiYXN5bmNocm9ub3VzUHJ1bmUiLCJhc3luY2hyb25vdXNSZWR1Y2UiLCJhc3luY2hyb25vdXNSZXNvbHZlIiwiYXN5bmNocm9ub3VzU29tZSIsImZpbHRlciIsImFycmF5RmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhcnJheSIsImNhbGxiYWNrIiwiaW5pdGlhbEFyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsImxlbmd0aCIsImNvdW50IiwiaW5kZXgiLCJmaW5hbEFyZ3VtZW50cyIsIm5leHQiLCJjYWxsYmFja0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJlbGVtZW50IiwiaW50ZXJtZWRpYXRlQXJndW1lbnRzIiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiLCJkZWxldGVkRWxlbWVudHMiLCJwYXNzZWQiLCJzdGFydEluZGV4IiwiZGVsZXRlQ291bnQiLCJkZWxldGVkRWxlbWVudCIsInNwbGljZSIsInVuc2hpZnQiLCJ1bmRlZmluZWQiLCJhcnJheUEiLCJhcnJheUIiLCJhcnJheUFMZW5ndGgiLCJhcnJheUJMZW5ndGgiLCJlbGVtZW50QSIsImVsZW1lbnRCIiwibmV4dFBhc3MiLCJuZXh0RWxlbWVudCIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsInB1c2giLCJjYWxsYmFja3MiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWdvQmdCQTtlQUFBQTs7UUExV0FDO2VBQUFBOztRQXNFQUM7ZUFBQUE7O1FBN1BBQztlQUFBQTs7UUEwQ0FDO2VBQUFB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
|
|
485
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaWx0ZXI6IGFycmF5RmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c09uZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBjb3VudCA9IDAsXG4gICAgICBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gKGNvdW50ID09PSAxKTtcblxuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsIChzdWNjZXNzLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIGlmIChjb3VudCA9PT0gMSkge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgICBjb3VudCsrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c1NvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBsZXQgZmluYWxBcmd1bWVudHM7XG5cbiAgZnVuY3Rpb24gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBjb3VudCA9IDAsXG4gICAgICBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gKGNvdW50ID4gMCk7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleCsrO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNSZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KHZhbHVlLCAuLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24odmFsdWUsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIHZhbHVlLCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHZhbHVlLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQodmFsdWUsIC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlID0gaW5pdGlhbFZhbHVlLCAvLy9cbiAgICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCh2YWx1ZSwgLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0ZvcndhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBsZXQgZmluYWxBcmd1bWVudHM7XG5cbiAgZnVuY3Rpb24gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0JhY2t3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgbGV0IGluZGV4ID0gbGVuZ3RoO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgtLTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNGaWx0ZXIoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBjb25zdCBkZWxldGVkRWxlbWVudHMgPSBbXTtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnRzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHBhc3NlZCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gaW5kZXgsIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgICAgICAgYXJyYXkuc3BsaWNlKHN0YXJ0SW5kZXgsIGRlbGV0ZUNvdW50KTtcblxuICAgICAgICBkZWxldGVkRWxlbWVudHMudW5zaGlmdChkZWxldGVkRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNQcnVuZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBkZWxldGVkRWxlbWVudDtcblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBsZXQgZmluYWxBcmd1bWVudHM7XG5cbiAgZnVuY3Rpb24gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAocGFzc2VkLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBpbmRleCwgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMSxcbiAgICAgICAgICAgICAgZGVsZXRlZEVsZW1lbnQgPSBlbGVtZW50OyAvLy9cblxuICAgICAgICBhcnJheS5zcGxpY2Uoc3RhcnRJbmRleCwgZGVsZXRlQ291bnQpO1xuXG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKGRlbGV0ZWRFbGVtZW50LCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzRXh0cmFjdChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBkZWxldGVkRWxlbWVudDtcblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBsZXQgZmluYWxBcmd1bWVudHM7XG5cbiAgZnVuY3Rpb24gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAocGFzc2VkLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IGluZGV4LCAvLy9cbiAgICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxLFxuICAgICAgICAgICAgICBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gICAgICAgIGFycmF5LnNwbGljZShzdGFydEluZGV4LCBkZWxldGVDb3VudCk7XG5cbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNNYXRjaChhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBpZiAoYXJyYXlBTGVuZ3RoICE9PSBhcnJheUJMZW5ndGgpIHtcbiAgICBjb25zdCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBmaW5hbEFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH1cblxuICBjb25zdCBsZW5ndGggPSBhcnJheUFMZW5ndGg7ICAvLy9cblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gdHJ1ZTtcblxuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XSxcbiAgICAgICAgICBlbGVtZW50QiA9IGFycmF5QltpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNSZXNvbHZlKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0UGFzcyguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBjb25zdCBsZW5ndGggPSBhcnJheUEubGVuZ3RoOyAvLy9cblxuICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4ID0gLTE7XG5cbiAgICBmdW5jdGlvbiBuZXh0RWxlbWVudCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJyYXlGaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICAgICAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgICAgICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV4dFBhc3MoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZWxlbWVudEEgPSBhcnJheUFbaW5kZXhdO1xuXG4gICAgICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50QSwgLi4uY2FsbGJhY2tBcmd1bWVudHMsIChwYXNzZWQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCID0gZWxlbWVudEE7ICAvLy9cblxuICAgICAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV4dEVsZW1lbnQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dEVsZW1lbnQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dFBhc3MoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzQWxsKGNhbGxiYWNrcywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICByZXR1cm4gYXN5bmNocm9ub3VzRXZlcnkoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgfSwgLi4uaW5pdGlhbEFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNFeGlzdHMoY2FsbGJhY2tzLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIHJldHVybiBhc3luY2hyb25vdXNTb21lKGNhbGxiYWNrcywgKGNhbGxiYWNrLCAuLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gIH0sIC4uLmluaXRpYWxBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGFzeW5jaHJvbm91c09uZSxcbiAgYXN5bmNocm9ub3VzU29tZSxcbiAgYXN5bmNocm9ub3VzRWFjaCxcbiAgYXN5bmNocm9ub3VzRXZlcnksXG4gIGFzeW5jaHJvbm91c1JlZHVjZSxcbiAgYXN5bmNocm9ub3VzRm9yRWFjaCxcbiAgYXN5bmNocm9ub3VzRm9yd2FyZHNFdmVyeSxcbiAgYXN5bmNocm9ub3VzQmFja3dhcmRzRXZlcnksXG4gIGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCxcbiAgYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCxcbiAgYXN5bmNocm9ub3VzRmlsdGVyLFxuICBhc3luY2hyb25vdXNQcnVuZSxcbiAgYXN5bmNocm9ub3VzRXh0cmFjdCxcbiAgYXN5bmNocm9ub3VzTWF0Y2gsXG4gIGFzeW5jaHJvbm91c1Jlc29sdmUsXG4gIGFzeW5jaHJvbm91c0FsbCxcbiAgYXN5bmNocm9ub3VzRXhpc3RzXG59O1xuIl0sIm5hbWVzIjpbImFzeW5jaHJvbm91c0FsbCIsImFzeW5jaHJvbm91c0JhY2t3YXJkc0V2ZXJ5IiwiYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c0VhY2giLCJhc3luY2hyb25vdXNFdmVyeSIsImFzeW5jaHJvbm91c0V4aXN0cyIsImFzeW5jaHJvbm91c0V4dHJhY3QiLCJhc3luY2hyb25vdXNGaWx0ZXIiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwiYXN5bmNocm9ub3VzRm9yd2FyZHNFdmVyeSIsImFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c01hdGNoIiwiYXN5bmNocm9ub3VzT25lIiwiYXN5bmNocm9ub3VzUHJ1bmUiLCJhc3luY2hyb25vdXNSZWR1Y2UiLCJhc3luY2hyb25vdXNSZXNvbHZlIiwiYXN5bmNocm9ub3VzU29tZSIsImZpbHRlciIsImFycmF5RmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhcnJheSIsImNhbGxiYWNrIiwiaW5pdGlhbEFyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsImxlbmd0aCIsImNvdW50IiwiaW5kZXgiLCJmaW5hbEFyZ3VtZW50cyIsIm5leHQiLCJjYWxsYmFja0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJlbGVtZW50IiwiaW50ZXJtZWRpYXRlQXJndW1lbnRzIiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiLCJkZWxldGVkRWxlbWVudHMiLCJwYXNzZWQiLCJzdGFydEluZGV4IiwiZGVsZXRlQ291bnQiLCJkZWxldGVkRWxlbWVudCIsInNwbGljZSIsInVuc2hpZnQiLCJ1bmRlZmluZWQiLCJhcnJheUEiLCJhcnJheUIiLCJhcnJheUFMZW5ndGgiLCJhcnJheUJMZW5ndGgiLCJlbGVtZW50QSIsImVsZW1lbnRCIiwibmV4dFBhc3MiLCJuZXh0RWxlbWVudCIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsInB1c2giLCJjYWxsYmFja3MiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWdvQmdCQTtlQUFBQTs7UUExV0FDO2VBQUFBOztRQXNFQUM7ZUFBQUE7O1FBN1BBQztlQUFBQTs7UUEwQ0FDO2VBQUFB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
|
package/package.json
CHANGED
|
@@ -426,14 +426,14 @@ export function asynchronousPrune(array, callback, ...initialArguments) {
|
|
|
426
426
|
|
|
427
427
|
let deletedElement;
|
|
428
428
|
|
|
429
|
-
let index =
|
|
429
|
+
let index = -1;
|
|
430
430
|
|
|
431
431
|
let finalArguments;
|
|
432
432
|
|
|
433
433
|
function next(...callbackArguments) {
|
|
434
|
-
index
|
|
434
|
+
index++;
|
|
435
435
|
|
|
436
|
-
if (index ===
|
|
436
|
+
if (index === length) {
|
|
437
437
|
deletedElement = undefined;
|
|
438
438
|
|
|
439
439
|
finalArguments = initialArguments; ///
|
|
@@ -473,14 +473,14 @@ export function asynchronousExtract(array, callback, ...initialArguments) {
|
|
|
473
473
|
|
|
474
474
|
let deletedElement;
|
|
475
475
|
|
|
476
|
-
let index =
|
|
476
|
+
let index = -1;
|
|
477
477
|
|
|
478
478
|
let finalArguments;
|
|
479
479
|
|
|
480
480
|
function next(...callbackArguments) {
|
|
481
|
-
index
|
|
481
|
+
index++;
|
|
482
482
|
|
|
483
|
-
if (index ===
|
|
483
|
+
if (index === length) {
|
|
484
484
|
deletedElement = undefined;
|
|
485
485
|
|
|
486
486
|
finalArguments = initialArguments; ///
|