occam-languages 2.2.23 → 2.2.25
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.
|
@@ -82,4 +82,4 @@ class ContinuationZipPass {
|
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvblppcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnksIGFyZUNoaWxkTm9kZXNDb25ncnVlbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uWmlwUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0NvbmdydWVudCA9IGFyZUNoaWxkTm9kZXNDb25ncnVlbnQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2Rlcyk7XG5cbiAgICBpZiAoIWNoaWxkTm9kZXNDb25ncnVlbnQpIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRlZCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKGRlc2NlbmRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXggPSAtMTtcblxuICAgIHJldHVybiBldmVyeShnZW5lcmFsQ2hpbGROb2RlcywgKGdlbmVyYWxDaGlsZE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljQ2hpbGROb2RlOyAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICB2aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGdlbmVyYWxOb2RlVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzTm9uVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cblxuICAgIGlmIChnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSAmJiBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IGdlbmVyYWxUZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGU7ICAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXRUZXJtaW5hbE5vZGUoZ2VuZXJhbFRlcm1pbmFsTm9kZSwgc3BlY2lmaWNUZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZpc2l0ZWQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gIH1cblxuICB2aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7IC8vL1xuICAgIGNvbnN0IHZpc2l0ZWQgPSB0cnVlLFxuICAgICAgICAgIGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgfVxuXG4gIHZpc2l0Tm9uVGVybWluYWxOb2RlKGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBsZXQgeyBtYXBzIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgbWFwcyA9IFsgLy8vXG4gICAgICAuLi5tYXBzLFxuICAgICAge1xuICAgICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBydW46IChnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgICAgICAgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLCAvLy9cbiAgICAgICAgICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgICAgICAgICBpZiAoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lICE9PSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICBnZW5lcmFsQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICBzcGVjaWZpY0NoaWxkTm9kZXMgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXM7IC8vL1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdO1xuXG4gICAgbGV0IGdlbmVyYWxOb2RlLFxuICAgICAgICBzcGVjaWZpY05vZGU7XG5cbiAgICBjb25zdCBtYXAgPSBtYXBzLmZpbmQoKG1hcCkgPT4ge1xuICAgICAgY29uc3QgeyBnZW5lcmFsTm9kZVF1ZXJ5LCBzcGVjaWZpY05vZGVRdWVyeSB9ID0gbWFwO1xuXG4gICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxOb2RlUXVlcnkoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSk7XG4gICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY05vZGVRdWVyeShzcGVjaWZpY05vblRlcm1pbmFsTm9kZSk7XG5cbiAgICAgIGlmICgoZ2VuZXJhbE5vZGUgIT09IG51bGwpICYmIChzcGVjaWZpY05vZGUgIT09IG51bGwpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pIHx8IG51bGw7XG5cbiAgICBpZiAobWFwID09PSBudWxsKSB7XG4gICAgICBjb25zdCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHJ1biB9ID0gbWFwO1xuXG4gICAgcmV0dXJuIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDb250aW51YXRpb25aaXBQYXNzIiwicnVuIiwiZ2VuZXJhbE5vZGUiLCJzcGVjaWZpY05vZGUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJjb250aW51YXRpb24iLCJwb3AiLCJ2aXNpdE5vZGUiLCJkZXNjZW5kIiwiZ2VuZXJhbENoaWxkTm9kZXMiLCJzcGVjaWZpY0NoaWxkTm9kZXMiLCJjaGlsZE5vZGVzQ29uZ3J1ZW50IiwiYXJlQ2hpbGROb2Rlc0NvbmdydWVudCIsImRlc2NlbmRlZCIsImluZGV4IiwiZXZlcnkiLCJnZW5lcmFsQ2hpbGROb2RlIiwic3BlY2lmaWNDaGlsZE5vZGUiLCJnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlVGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9kZU5vblRlcm1pbmFsTm9kZSIsImdlbmVyYWxUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY1Rlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJ2aXNpdGVkIiwibWFwcyIsImdlbmVyYWxOb2RlUXVlcnkiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsInNwZWNpZmljTm9kZVF1ZXJ5IiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwibWFwIiwiZmluZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS0E7OztlQUFxQkE7Ozs4QkFIQztzQkFDdUM7QUFFOUMsTUFBTUE7SUFDbkJDLElBQUlDLFdBQVcsRUFBRUMsWUFBWSxFQUFFLEdBQUdDLGtCQUFrQixFQUFFO1FBQ3BELE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRztRQUUzQyxPQUFPLElBQUksQ0FBQ0MsU0FBUyxDQUFDTCxhQUFhQyxpQkFBaUJDLG9CQUFvQkM7SUFDMUU7SUFFQUcsUUFBUUMsaUJBQWlCLEVBQUVDLGtCQUFrQixFQUFFLEdBQUdOLGtCQUFrQixFQUFFO1FBQ3BFLE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQ0ssc0JBQXNCQyxJQUFBQSw0QkFBc0IsRUFBQ0gsbUJBQW1CQztRQUV0RSxJQUFJLENBQUNDLHFCQUFxQjtZQUN4QixNQUFNRSxZQUFZO1lBRWxCLE9BQU9SLGFBQWFRLGNBQWNUO1FBQ3BDO1FBRUEsSUFBSVUsUUFBUSxDQUFDO1FBRWIsT0FBT0MsSUFBQUEsbUJBQUssRUFBQ04sbUJBQW1CLENBQUNPLGtCQUFrQixHQUFHWjtZQUNwRFU7WUFFQSxNQUFNVCxlQUFlRCxtQkFBbUJFLEdBQUcsSUFDckNXLG9CQUFvQlAsa0JBQWtCLENBQUNJLE1BQU0sRUFDN0NaLGNBQWNjLGtCQUNkYixlQUFlYyxtQkFBbUIsR0FBRztZQUUzQyxPQUFPLElBQUksQ0FBQ1YsU0FBUyxDQUFDTCxhQUFhQyxpQkFBaUJDLG9CQUFvQkM7UUFDMUUsTUFBTUQsb0JBQW9CQztJQUM1QjtJQUVBRSxVQUFVTCxXQUFXLEVBQUVDLFlBQVksRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUMxRCxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUcsSUFDckNZLDBCQUEwQmhCLFlBQVlpQixjQUFjLElBQ3BEQywy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
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvblppcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnksIGFyZUNoaWxkTm9kZXNDb25ncnVlbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uWmlwUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0NvbmdydWVudCA9IGFyZUNoaWxkTm9kZXNDb25ncnVlbnQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2Rlcyk7XG5cbiAgICBpZiAoIWNoaWxkTm9kZXNDb25ncnVlbnQpIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRlZCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKGRlc2NlbmRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXggPSAtMTtcblxuICAgIHJldHVybiBldmVyeShnZW5lcmFsQ2hpbGROb2RlcywgKGdlbmVyYWxDaGlsZE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljQ2hpbGROb2RlOyAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICB2aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGdlbmVyYWxOb2RlVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzTm9uVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG4gICAgXG4gICAgaWYgKGdlbmVyYWxOb2RlVGVybWluYWxOb2RlICYmIHNwZWNpZmljTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgZ2VuZXJhbFRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY1Rlcm1pbmFsTm9kZSA9IHNwZWNpZmljTm9kZTsgIC8vL1xuXG4gICAgICByZXR1cm4gdGhpcy52aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgIH1cblxuICAgIGlmIChnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSAmJiBzcGVjaWZpY05vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGU7IC8vL1xuXG4gICAgICByZXR1cm4gdGhpcy52aXNpdE5vblRlcm1pbmFsTm9kZShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgfVxuXG4gIHZpc2l0VGVybWluYWxOb2RlKGdlbmVyYWxUZXJtaW5hbE5vZGUsIHNwZWNpZmljVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHsgLy8vXG4gICAgY29uc3QgdmlzaXRlZCA9IHRydWUsXG4gICAgICAgICAgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICB9XG5cbiAgdmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIGxldCB7IG1hcHMgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBtYXBzID0gWyAvLy9cbiAgICAgIC4uLm1hcHMsXG4gICAgICB7XG4gICAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBzcGVjaWZpY05vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHJ1bjogKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICAgICAgICBnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksIC8vL1xuICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICAgICAgICAgIGlmIChnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgIT09IHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgIGdlbmVyYWxDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICAgIHNwZWNpZmljQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlczsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5kZXNjZW5kKGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF07XG5cbiAgICBsZXQgZ2VuZXJhbE5vZGUsXG4gICAgICAgIHNwZWNpZmljTm9kZTtcblxuICAgIGNvbnN0IG1hcCA9IG1hcHMuZmluZCgobWFwKSA9PiB7XG4gICAgICBjb25zdCB7IGdlbmVyYWxOb2RlUXVlcnksIHNwZWNpZmljTm9kZVF1ZXJ5IH0gPSBtYXA7XG5cbiAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbE5vZGVRdWVyeShnZW5lcmFsTm9uVGVybWluYWxOb2RlKTtcbiAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljTm9kZVF1ZXJ5KHNwZWNpZmljTm9uVGVybWluYWxOb2RlKTtcblxuICAgICAgaWYgKChnZW5lcmFsTm9kZSAhPT0gbnVsbCkgJiYgKHNwZWNpZmljTm9kZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIGlmIChtYXAgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcnVuIH0gPSBtYXA7XG5cbiAgICByZXR1cm4gcnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbnRpbnVhdGlvblppcFBhc3MiLCJydW4iLCJnZW5lcmFsTm9kZSIsInNwZWNpZmljTm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsInZpc2l0Tm9kZSIsImRlc2NlbmQiLCJnZW5lcmFsQ2hpbGROb2RlcyIsInNwZWNpZmljQ2hpbGROb2RlcyIsImNoaWxkTm9kZXNDb25ncnVlbnQiLCJhcmVDaGlsZE5vZGVzQ29uZ3J1ZW50IiwiZGVzY2VuZGVkIiwiaW5kZXgiLCJldmVyeSIsImdlbmVyYWxDaGlsZE5vZGUiLCJzcGVjaWZpY0NoaWxkTm9kZSIsImdlbmVyYWxOb2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlIiwiZ2VuZXJhbFRlcm1pbmFsTm9kZSIsInNwZWNpZmljVGVybWluYWxOb2RlIiwidmlzaXRUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGUiLCJ2aXNpdE5vblRlcm1pbmFsTm9kZSIsInZpc2l0ZWQiLCJtYXBzIiwiZ2VuZXJhbE5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5Iiwic3BlY2lmaWNOb2RlUXVlcnkiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJtYXAiLCJmaW5kIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFLQTs7O2VBQXFCQTs7OzhCQUhDO3NCQUN1QztBQUU5QyxNQUFNQTtJQUNuQkMsSUFBSUMsV0FBVyxFQUFFQyxZQUFZLEVBQUUsR0FBR0Msa0JBQWtCLEVBQUU7UUFDcEQsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTNDLE9BQU8sSUFBSSxDQUFDQyxTQUFTLENBQUNMLGFBQWFDLGlCQUFpQkMsb0JBQW9CQztJQUMxRTtJQUVBRyxRQUFRQyxpQkFBaUIsRUFBRUMsa0JBQWtCLEVBQUUsR0FBR04sa0JBQWtCLEVBQUU7UUFDcEUsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHLElBQ3JDSyxzQkFBc0JDLElBQUFBLDRCQUFzQixFQUFDSCxtQkFBbUJDO1FBRXRFLElBQUksQ0FBQ0MscUJBQXFCO1lBQ3hCLE1BQU1FLFlBQVk7WUFFbEIsT0FBT1IsYUFBYVEsY0FBY1Q7UUFDcEM7UUFFQSxJQUFJVSxRQUFRLENBQUM7UUFFYixPQUFPQyxJQUFBQSxtQkFBSyxFQUFDTixtQkFBbUIsQ0FBQ08sa0JBQWtCLEdBQUdaO1lBQ3BEVTtZQUVBLE1BQU1ULGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQ1csb0JBQW9CUCxrQkFBa0IsQ0FBQ0ksTUFBTSxFQUM3Q1osY0FBY2Msa0JBQ2RiLGVBQWVjLG1CQUFtQixHQUFHO1lBRTNDLE9BQU8sSUFBSSxDQUFDVixTQUFTLENBQUNMLGFBQWFDLGlCQUFpQkMsb0JBQW9CQztRQUMxRSxNQUFNRCxvQkFBb0JDO0lBQzVCO0lBRUFFLFVBQVVMLFdBQVcsRUFBRUMsWUFBWSxFQUFFLEdBQUdDLGtCQUFrQixFQUFFO1FBQzFELE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQ1ksMEJBQTBCaEIsWUFBWWlCLGNBQWMsSUFDcERD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
|
|
@@ -63,11 +63,11 @@ const { filter: arrayFilter } = _necessary.arrayUtilities, { forEach: asynchrono
|
|
|
63
63
|
function one(array, callback, ...initialArguments) {
|
|
64
64
|
let success = false;
|
|
65
65
|
const continuation = initialArguments.pop();
|
|
66
|
-
let
|
|
66
|
+
let callbackArguments = initialArguments; ///
|
|
67
67
|
return asynchronousForEach(array, (element, next, done)=>{
|
|
68
|
-
return callback(element, ...
|
|
69
|
-
const passed =
|
|
70
|
-
|
|
68
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
69
|
+
const passed = intermediateArguments.shift();
|
|
70
|
+
callbackArguments = intermediateArguments; ///
|
|
71
71
|
if (passed) {
|
|
72
72
|
if (!success) {
|
|
73
73
|
success = true;
|
|
@@ -80,18 +80,18 @@ function one(array, callback, ...initialArguments) {
|
|
|
80
80
|
next();
|
|
81
81
|
});
|
|
82
82
|
}, ()=>{
|
|
83
|
-
const finalArguments =
|
|
83
|
+
const finalArguments = callbackArguments; ///
|
|
84
84
|
return continuation(success, ...finalArguments);
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
function some(array, callback, ...initialArguments) {
|
|
88
88
|
let success = false;
|
|
89
89
|
const continuation = initialArguments.pop();
|
|
90
|
-
let
|
|
90
|
+
let callbackArguments = initialArguments; ///
|
|
91
91
|
return asynchronousForEach(array, (element, next, done)=>{
|
|
92
|
-
return callback(element, ...
|
|
93
|
-
const passed =
|
|
94
|
-
|
|
92
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
93
|
+
const passed = intermediateArguments.shift();
|
|
94
|
+
callbackArguments = intermediateArguments; ///
|
|
95
95
|
if (passed) {
|
|
96
96
|
success = true;
|
|
97
97
|
done();
|
|
@@ -100,18 +100,18 @@ function some(array, callback, ...initialArguments) {
|
|
|
100
100
|
next();
|
|
101
101
|
});
|
|
102
102
|
}, ()=>{
|
|
103
|
-
const finalArguments =
|
|
103
|
+
const finalArguments = callbackArguments; ///
|
|
104
104
|
return continuation(success, ...finalArguments);
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
107
|
function each(array, callback, ...initialArguments) {
|
|
108
108
|
let success = false;
|
|
109
109
|
const continuation = initialArguments.pop();
|
|
110
|
-
let
|
|
110
|
+
let callbackArguments = initialArguments; ///
|
|
111
111
|
return asynchronousForEach(array, (element, next, done)=>{
|
|
112
|
-
return callback(element, ...
|
|
113
|
-
const passed =
|
|
114
|
-
|
|
112
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
113
|
+
const passed = intermediateArguments.shift();
|
|
114
|
+
callbackArguments = intermediateArguments; ///
|
|
115
115
|
if (passed) {
|
|
116
116
|
success = true;
|
|
117
117
|
} else {
|
|
@@ -122,18 +122,18 @@ function each(array, callback, ...initialArguments) {
|
|
|
122
122
|
next();
|
|
123
123
|
});
|
|
124
124
|
}, ()=>{
|
|
125
|
-
const finalArguments =
|
|
125
|
+
const finalArguments = callbackArguments; ///
|
|
126
126
|
return continuation(success, ...finalArguments);
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
129
|
function every(array, callback, ...initialArguments) {
|
|
130
130
|
let success = true;
|
|
131
131
|
const continuation = initialArguments.pop();
|
|
132
|
-
let
|
|
132
|
+
let callbackArguments = initialArguments; ///
|
|
133
133
|
return asynchronousForEach(array, (element, next, done)=>{
|
|
134
|
-
return callback(element, ...
|
|
135
|
-
const passed =
|
|
136
|
-
|
|
134
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
135
|
+
const passed = intermediateArguments.shift();
|
|
136
|
+
callbackArguments = intermediateArguments; ///
|
|
137
137
|
if (!passed) {
|
|
138
138
|
success = false;
|
|
139
139
|
done();
|
|
@@ -142,47 +142,47 @@ function every(array, callback, ...initialArguments) {
|
|
|
142
142
|
next();
|
|
143
143
|
});
|
|
144
144
|
}, ()=>{
|
|
145
|
-
const finalArguments =
|
|
145
|
+
const finalArguments = callbackArguments; ///
|
|
146
146
|
return continuation(success, ...finalArguments);
|
|
147
147
|
});
|
|
148
148
|
}
|
|
149
149
|
function reduce(array, initialValue, callback, ...initialArguments) {
|
|
150
150
|
let value = initialValue; ///
|
|
151
151
|
const continuation = initialArguments.pop();
|
|
152
|
-
let
|
|
152
|
+
let callbackArguments = initialArguments; ///
|
|
153
153
|
return asynchronousForEach(array, (element, next, done)=>{
|
|
154
|
-
return callback(value, element, ...
|
|
155
|
-
const currentValue =
|
|
156
|
-
|
|
154
|
+
return callback(value, element, ...callbackArguments, (...intermediateArguments)=>{
|
|
155
|
+
const currentValue = intermediateArguments.shift();
|
|
156
|
+
callbackArguments = intermediateArguments; ///
|
|
157
157
|
value = currentValue; ///
|
|
158
158
|
next();
|
|
159
159
|
});
|
|
160
160
|
}, ()=>{
|
|
161
|
-
const finalArguments =
|
|
161
|
+
const finalArguments = callbackArguments; ///
|
|
162
162
|
return continuation(value, ...finalArguments);
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
165
|
function forEach(array, callback, ...initialArguments) {
|
|
166
166
|
const continuation = initialArguments.pop();
|
|
167
|
-
let
|
|
167
|
+
let callbackArguments = initialArguments; ///
|
|
168
168
|
return asynchronousForEach(array, (element, next, done)=>{
|
|
169
|
-
return callback(element, ...
|
|
170
|
-
|
|
169
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
170
|
+
callbackArguments = intermediateArguments; ///
|
|
171
171
|
next();
|
|
172
172
|
});
|
|
173
173
|
}, ()=>{
|
|
174
|
-
const finalArguments =
|
|
174
|
+
const finalArguments = callbackArguments; ///
|
|
175
175
|
return continuation(...finalArguments);
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
178
|
function forwardsEvery(array, callback, ...initialArguments) {
|
|
179
179
|
let success = true;
|
|
180
180
|
const continuation = initialArguments.pop();
|
|
181
|
-
let
|
|
181
|
+
let callbackArguments = initialArguments; ///
|
|
182
182
|
return asynchronousForwardsForEach(array, (element, next, done)=>{
|
|
183
|
-
return callback(element, ...
|
|
184
|
-
const passed =
|
|
185
|
-
|
|
183
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
184
|
+
const passed = intermediateArguments.shift();
|
|
185
|
+
callbackArguments = intermediateArguments; ///
|
|
186
186
|
if (!passed) {
|
|
187
187
|
success = false;
|
|
188
188
|
done();
|
|
@@ -191,18 +191,18 @@ function forwardsEvery(array, callback, ...initialArguments) {
|
|
|
191
191
|
next();
|
|
192
192
|
});
|
|
193
193
|
}, ()=>{
|
|
194
|
-
const finalArguments =
|
|
194
|
+
const finalArguments = callbackArguments; ///
|
|
195
195
|
return continuation(success, ...finalArguments);
|
|
196
196
|
});
|
|
197
197
|
}
|
|
198
198
|
function backwardsEvery(array, callback, ...initialArguments) {
|
|
199
199
|
let success = true;
|
|
200
200
|
const continuation = initialArguments.pop();
|
|
201
|
-
let
|
|
201
|
+
let callbackArguments = initialArguments; ///
|
|
202
202
|
return asynchronousBackwardsForEach(array, (element, next, done)=>{
|
|
203
|
-
return callback(element, ...
|
|
204
|
-
const passed =
|
|
205
|
-
|
|
203
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
204
|
+
const passed = intermediateArguments.shift();
|
|
205
|
+
callbackArguments = intermediateArguments; ///
|
|
206
206
|
if (!passed) {
|
|
207
207
|
success = false;
|
|
208
208
|
done();
|
|
@@ -211,46 +211,46 @@ function backwardsEvery(array, callback, ...initialArguments) {
|
|
|
211
211
|
next();
|
|
212
212
|
});
|
|
213
213
|
}, ()=>{
|
|
214
|
-
const finalArguments =
|
|
214
|
+
const finalArguments = callbackArguments; ///
|
|
215
215
|
return continuation(success, ...finalArguments);
|
|
216
216
|
});
|
|
217
217
|
}
|
|
218
218
|
function forwardsForEach(array, callback, ...initialArguments) {
|
|
219
219
|
const continuation = initialArguments.pop();
|
|
220
|
-
let
|
|
220
|
+
let callbackArguments = initialArguments; ///
|
|
221
221
|
return asynchronousForwardsForEach(array, (element, next, done)=>{
|
|
222
|
-
return callback(element, ...
|
|
223
|
-
|
|
222
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
223
|
+
callbackArguments = intermediateArguments; ///
|
|
224
224
|
next();
|
|
225
225
|
});
|
|
226
226
|
}, ()=>{
|
|
227
|
-
const finalArguments =
|
|
227
|
+
const finalArguments = callbackArguments; ///
|
|
228
228
|
return continuation(...finalArguments);
|
|
229
229
|
});
|
|
230
230
|
}
|
|
231
231
|
function backwardsForEach(array, callback, ...initialArguments) {
|
|
232
232
|
const continuation = initialArguments.pop();
|
|
233
|
-
let
|
|
233
|
+
let callbackArguments = initialArguments; ///
|
|
234
234
|
return asynchronousBackwardsForEach(array, (element, next, done)=>{
|
|
235
|
-
return callback(element, ...
|
|
236
|
-
|
|
235
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
236
|
+
callbackArguments = intermediateArguments; ///
|
|
237
237
|
next();
|
|
238
238
|
});
|
|
239
239
|
}, ()=>{
|
|
240
|
-
const finalArguments =
|
|
240
|
+
const finalArguments = callbackArguments; ///
|
|
241
241
|
return continuation(...finalArguments);
|
|
242
242
|
});
|
|
243
243
|
}
|
|
244
244
|
function filter(array, callback, ...initialArguments) {
|
|
245
245
|
const deletedElements = [];
|
|
246
246
|
const continuation = initialArguments.pop();
|
|
247
|
-
let
|
|
247
|
+
let callbackArguments = initialArguments; ///
|
|
248
248
|
let index = array.length;
|
|
249
249
|
return asynchronousBackwardsForEach(array, (element, next, done)=>{
|
|
250
250
|
index--;
|
|
251
|
-
return callback(element, ...
|
|
252
|
-
const passed =
|
|
253
|
-
|
|
251
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
252
|
+
const passed = intermediateArguments.shift();
|
|
253
|
+
callbackArguments = intermediateArguments; ///
|
|
254
254
|
if (!passed) {
|
|
255
255
|
const start = index, deleteCount = 1, deletedElement = array.splice(start, deleteCount).pop(); ///
|
|
256
256
|
deletedElements.unshift(deletedElement); ///
|
|
@@ -258,20 +258,20 @@ function filter(array, callback, ...initialArguments) {
|
|
|
258
258
|
next();
|
|
259
259
|
});
|
|
260
260
|
}, ()=>{
|
|
261
|
-
const finalArguments =
|
|
261
|
+
const finalArguments = callbackArguments; ///
|
|
262
262
|
return continuation(deletedElements, ...finalArguments);
|
|
263
263
|
});
|
|
264
264
|
}
|
|
265
265
|
function prune(array, callback, ...initialArguments) {
|
|
266
266
|
let deletedElement = undefined; ///
|
|
267
267
|
const continuation = initialArguments.pop();
|
|
268
|
-
let
|
|
268
|
+
let callbackArguments = initialArguments; ///
|
|
269
269
|
let index = -1;
|
|
270
270
|
return asynchronousForEach(array, (element, next, done)=>{
|
|
271
271
|
index++;
|
|
272
|
-
return callback(element, ...
|
|
273
|
-
const passed =
|
|
274
|
-
|
|
272
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
273
|
+
const passed = intermediateArguments.shift();
|
|
274
|
+
callbackArguments = intermediateArguments; ///
|
|
275
275
|
if (!passed) {
|
|
276
276
|
const start = index, deleteCount = 1;
|
|
277
277
|
deletedElement = array.splice(start, deleteCount).pop(); ///
|
|
@@ -281,20 +281,20 @@ function prune(array, callback, ...initialArguments) {
|
|
|
281
281
|
next();
|
|
282
282
|
});
|
|
283
283
|
}, ()=>{
|
|
284
|
-
const finalArguments =
|
|
284
|
+
const finalArguments = callbackArguments; ///
|
|
285
285
|
return continuation(deletedElement, ...finalArguments);
|
|
286
286
|
});
|
|
287
287
|
}
|
|
288
288
|
function extract(array, callback, ...initialArguments) {
|
|
289
289
|
let deletedElement = undefined; ///
|
|
290
290
|
const continuation = initialArguments.pop();
|
|
291
|
-
let
|
|
291
|
+
let callbackArguments = initialArguments; ///
|
|
292
292
|
let index = -1;
|
|
293
293
|
return asynchronousForEach(array, (element, next, done)=>{
|
|
294
294
|
index++;
|
|
295
|
-
return callback(element, ...
|
|
296
|
-
const passed =
|
|
297
|
-
|
|
295
|
+
return callback(element, ...callbackArguments, (...intermediateArguments)=>{
|
|
296
|
+
const passed = intermediateArguments.shift();
|
|
297
|
+
callbackArguments = intermediateArguments; ///
|
|
298
298
|
if (passed) {
|
|
299
299
|
const start = index, deleteCount = 1;
|
|
300
300
|
deletedElement = array.splice(start, deleteCount).pop(); ///
|
|
@@ -304,7 +304,7 @@ function extract(array, callback, ...initialArguments) {
|
|
|
304
304
|
next();
|
|
305
305
|
});
|
|
306
306
|
}, ()=>{
|
|
307
|
-
const finalArguments =
|
|
307
|
+
const finalArguments = callbackArguments; ///
|
|
308
308
|
return continuation(deletedElement, ...finalArguments);
|
|
309
309
|
});
|
|
310
310
|
}
|
|
@@ -317,13 +317,13 @@ function match(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
317
317
|
return continuation(success, ...initialArguments);
|
|
318
318
|
}
|
|
319
319
|
let index = -1;
|
|
320
|
-
let
|
|
320
|
+
let callbackArguments = initialArguments; ///
|
|
321
321
|
return asynchronousForEach(arrayA, (elementA, next, done)=>{
|
|
322
322
|
index++;
|
|
323
323
|
const elementB = arrayB[index];
|
|
324
|
-
return callback(elementA, elementB, ...
|
|
325
|
-
const passed =
|
|
326
|
-
|
|
324
|
+
return callback(elementA, elementB, ...callbackArguments, (...intermediateArguments)=>{
|
|
325
|
+
const passed = intermediateArguments.shift();
|
|
326
|
+
callbackArguments = intermediateArguments; ///
|
|
327
327
|
if (!passed) {
|
|
328
328
|
success = false;
|
|
329
329
|
done();
|
|
@@ -332,7 +332,7 @@ function match(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
332
332
|
next();
|
|
333
333
|
});
|
|
334
334
|
}, ()=>{
|
|
335
|
-
const finalArguments =
|
|
335
|
+
const finalArguments = callbackArguments; ///
|
|
336
336
|
return continuation(success, ...finalArguments);
|
|
337
337
|
});
|
|
338
338
|
}
|
|
@@ -341,13 +341,13 @@ function resolve(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
341
341
|
...arrayA
|
|
342
342
|
];
|
|
343
343
|
const continuation = initialArguments.pop();
|
|
344
|
-
let
|
|
344
|
+
let callbackArguments = initialArguments; ///
|
|
345
345
|
function nextPass() {
|
|
346
346
|
let success = false;
|
|
347
347
|
const arrayALength = arrayA.length;
|
|
348
348
|
if (arrayALength === 0) {
|
|
349
349
|
success = true;
|
|
350
|
-
const finalArguments =
|
|
350
|
+
const finalArguments = callbackArguments; ///
|
|
351
351
|
return continuation(success, ...finalArguments);
|
|
352
352
|
}
|
|
353
353
|
let index = -1;
|
|
@@ -357,7 +357,7 @@ function resolve(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
357
357
|
if (terminate) {
|
|
358
358
|
if (!success) {
|
|
359
359
|
success = false;
|
|
360
|
-
const finalArguments =
|
|
360
|
+
const finalArguments = callbackArguments; ///
|
|
361
361
|
return continuation(success, ...finalArguments);
|
|
362
362
|
}
|
|
363
363
|
arrayFilter(arrayA, (elementA)=>{
|
|
@@ -369,9 +369,9 @@ function resolve(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
369
369
|
nextPass();
|
|
370
370
|
} else {
|
|
371
371
|
const elementA = arrayA[index];
|
|
372
|
-
return callback(elementA, ...
|
|
373
|
-
const passed =
|
|
374
|
-
|
|
372
|
+
return callback(elementA, ...callbackArguments, (...intermediateArguments)=>{
|
|
373
|
+
const passed = intermediateArguments.shift();
|
|
374
|
+
callbackArguments = intermediateArguments; ///
|
|
375
375
|
if (passed) {
|
|
376
376
|
const elementB = elementA; ///
|
|
377
377
|
arrayB.push(elementB);
|
|
@@ -403,4 +403,4 @@ const _default = {
|
|
|
403
403
|
resolve
|
|
404
404
|
};
|
|
405
405
|
|
|
406
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpbHRlcjogYXJyYXlGaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBmb3JFYWNoOiBhc3luY2hyb25vdXNGb3JFYWNoLFxuICAgICAgICBmb3J3YXJkc0ZvckVhY2g6IGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCxcbiAgICAgICAgYmFja3dhcmRzRm9yRWFjaDogYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCB9ID0gYXN5bmNocm9ub3VzVXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gb25lKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7ICAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzLCAoLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFja0FyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFja0FyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFja0FyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlKGFycmF5LCBpbml0aWFsVmFsdWUsIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCB2YWx1ZSA9IGluaXRpYWxWYWx1ZTsgLy8vXG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKHZhbHVlLCBlbGVtZW50LCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMsICguLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gY2FsbGJhY2tBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7ICAvLy9cblxuICAgICAgdmFsdWUgPSBjdXJyZW50VmFsdWU7ICAvLy9cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2YWx1ZSwgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMsICguLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgICAgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7ICAvLy9cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFja0FyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzLCAoLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgIC8vL1xuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYWNrd2FyZHNGb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzLCAoLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcihhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgZGVsZXRlZEVsZW1lbnRzID0gW107XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgbGV0IGluZGV4ID0gYXJyYXkubGVuZ3RoO1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNCYWNrd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGluZGV4LS07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzLCAoLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gYXJyYXkuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCkucG9wKCk7ICAvLy9cblxuICAgICAgICBkZWxldGVkRWxlbWVudHMudW5zaGlmdChkZWxldGVkRWxlbWVudCk7ICAvLy9cbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihkZWxldGVkRWxlbWVudHMsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcnVuZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgbGV0IGRlbGV0ZWRFbGVtZW50ID0gdW5kZWZpbmVkOyAvLy9cblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICBsZXQgaW5kZXggPSAtMTtcblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFja0FyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXgsICAvLy9cbiAgICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxO1xuXG4gICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gYXJyYXkuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCkucG9wKCk7IC8vL1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7IC8vL1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzLCAoLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydCA9IGluZGV4LCAgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMTtcblxuICAgICAgICBkZWxldGVkRWxlbWVudCA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLnBvcCgpOyAvLy9cblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKGRlbGV0ZWRFbGVtZW50LCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGNvbnN0IGFycmF5QUxlbmd0aCA9IGFycmF5QS5sZW5ndGgsXG4gICAgICAgIGFycmF5Qkxlbmd0aCA9IGFycmF5Qi5sZW5ndGg7XG5cbiAgaWYgKGFycmF5QUxlbmd0aCAhPT0gYXJyYXlCTGVuZ3RoKSB7XG4gICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5pbml0aWFsQXJndW1lbnRzKTtcbiAgfVxuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheUEsIChlbGVtZW50QSwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICBjb25zdCBlbGVtZW50QiA9IGFycmF5QltpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMsICguLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgcGFzc2VkID0gY2FsbGJhY2tBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7ICAvLy9cblxuICAgICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGFycmF5QSA9IFsgIC8vL1xuICAgIC4uLmFycmF5QVxuICBdO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIGZ1bmN0aW9uIG5leHRQYXNzKCkge1xuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoO1xuXG4gICAgaWYgKGFycmF5QUxlbmd0aCA9PT0gMCkge1xuICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4ID0gLTE7XG5cbiAgICBmdW5jdGlvbiBuZXh0RWxlbWVudCgpIHtcbiAgICAgIGluZGV4Kys7XG5cbiAgICAgIGNvbnN0IHRlcm1pbmF0ZSA9IChpbmRleCA9PT0gYXJyYXlBTGVuZ3RoKTtcblxuICAgICAgaWYgKHRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFycmF5RmlsdGVyKGFycmF5QSwgKGVsZW1lbnRBKSA9PiB7XG4gICAgICAgICAgY29uc3QgYXJyYXlCSW5jbHVkZXNFbGVtZW50QSA9IGFycmF5Qi5pbmNsdWRlcyhlbGVtZW50QSk7XG5cbiAgICAgICAgICBpZiAoIWFycmF5QkluY2x1ZGVzRWxlbWVudEEpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbmV4dFBhc3MoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgICAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudEEsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFzc2VkID0gY2FsbGJhY2tBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50QiA9IGVsZW1lbnRBOyAgLy8vXG5cbiAgICAgICAgICAgIGFycmF5Qi5wdXNoKGVsZW1lbnRCKTtcblxuICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV4dEVsZW1lbnQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmV4dEVsZW1lbnQoKTtcbiAgfVxuXG4gIG5leHRQYXNzKCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgb25lLFxuICBzb21lLFxuICBlYWNoLFxuICBldmVyeSxcbiAgcmVkdWNlLFxuICBmb3JFYWNoLFxuICBmb3J3YXJkc0V2ZXJ5LFxuICBiYWNrd2FyZHNFdmVyeSxcbiAgZm9yd2FyZHNGb3JFYWNoLFxuICBiYWNrd2FyZHNGb3JFYWNoLFxuICBmaWx0ZXIsXG4gIHBydW5lLFxuICBleHRyYWN0LFxuICBtYXRjaCxcbiAgcmVzb2x2ZVxufTtcbiJdLCJuYW1lcyI6WyJiYWNrd2FyZHNFdmVyeSIsImJhY2t3YXJkc0ZvckVhY2giLCJlYWNoIiwiZXZlcnkiLCJleHRyYWN0IiwiZmlsdGVyIiwiZm9yRWFjaCIsImZvcndhcmRzRXZlcnkiLCJmb3J3YXJkc0ZvckVhY2giLCJtYXRjaCIsIm9uZSIsInBydW5lIiwicmVkdWNlIiwicmVzb2x2ZSIsInNvbWUiLCJhcnJheUZpbHRlciIsImFycmF5VXRpbGl0aWVzIiwiYXN5bmNocm9ub3VzRm9yRWFjaCIsImFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2giLCJhc3luY2hyb25vdXNVdGlsaXRpZXMiLCJhcnJheSIsImNhbGxiYWNrIiwiaW5pdGlhbEFyZ3VtZW50cyIsInN1Y2Nlc3MiLCJjb250aW51YXRpb24iLCJwb3AiLCJpbnRlcm1lZGlhdGVBcmd1bWVudHMiLCJlbGVtZW50IiwibmV4dCIsImRvbmUiLCJjYWxsYmFja0FyZ3VtZW50cyIsInBhc3NlZCIsInNoaWZ0IiwiZmluYWxBcmd1bWVudHMiLCJpbml0aWFsVmFsdWUiLCJ2YWx1ZSIsImN1cnJlbnRWYWx1ZSIsImRlbGV0ZWRFbGVtZW50cyIsImluZGV4IiwibGVuZ3RoIiwic3RhcnQiLCJkZWxldGVDb3VudCIsImRlbGV0ZWRFbGVtZW50Iiwic3BsaWNlIiwidW5zaGlmdCIsInVuZGVmaW5lZCIsImFycmF5QSIsImFycmF5QiIsImFycmF5QUxlbmd0aCIsImFycmF5Qkxlbmd0aCIsImVsZW1lbnRBIiwiZWxlbWVudEIiLCJuZXh0UGFzcyIsIm5leHRFbGVtZW50IiwidGVybWluYXRlIiwiYXJyYXlCSW5jbHVkZXNFbGVtZW50QSIsImluY2x1ZGVzIiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBK01nQkE7ZUFBQUE7O1FBZ0RBQztlQUFBQTs7UUFxUGhCO2VBQUE7O1FBM2FnQkM7ZUFBQUE7O1FBZ0NBQztlQUFBQTs7UUErT0FDO2VBQUFBOztRQXZFQUM7ZUFBQUE7O1FBbEhBQztlQUFBQTs7UUFrQkFDO2VBQUFBOztRQTREQUM7ZUFBQUE7O1FBZ0pBQztlQUFBQTs7UUFwWEFDO2VBQUFBOztRQTBTQUM7ZUFBQUE7O1FBNUtBQztlQUFBQTs7UUFtU0FDO2VBQUFBOztRQS9YQUM7ZUFBQUE7OzsyQkF6Q3NDO0FBRXRELE1BQU0sRUFBRVQsUUFBUVUsV0FBVyxFQUFFLEdBQUdDLHlCQUFjLEVBQ3hDLEVBQUVWLFNBQVNXLG1CQUFtQixFQUM1QlQsaUJBQWlCVSwyQkFBMkIsRUFDNUNqQixrQkFBa0JrQiw0QkFBNEIsRUFBRSxHQUFHQyxnQ0FBcUI7QUFFekUsU0FBU1YsSUFBSVcsS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0MsZ0JBQWdCO0lBQ3RELElBQUlDLFVBQVU7SUFFZCxNQUFNQyxlQUFlRixpQkFBaUJHLEdBQUc7SUFFekMsSUFBSUMsd0JBQXdCSixrQkFBbUIsR0FBRztJQUVsRCxPQUFPTixvQkFBb0JJLE9BQU8sQ0FBQ08sU0FBU0MsTUFBTUM7UUFDaEQsT0FBT1IsU0FBU00sWUFBWUQsdUJBQXVCLENBQUMsR0FBR0k7WUFDckQsTUFBTUMsU0FBU0Qsa0JBQWtCRSxLQUFLO1lBRXRDTix3QkFBd0JJLG1CQUFvQixHQUFHO1lBRS9DLElBQUlDLFFBQVE7Z0JBQ1YsSUFBSSxDQUFDUixTQUFTO29CQUNaQSxVQUFVO2dCQUNaLE9BQU87b0JBQ0xBLFVBQVU7b0JBRVZNO29CQUVBO2dCQUNGO1lBQ0Y7WUFFQUQ7UUFDRjtJQUNGLEdBQUc7UUFDRCxNQUFNSyxpQkFBaUJQLHVCQUF1QixHQUFHO1FBRWpELE9BQU9GLGFBQWFELFlBQVlVO0lBQ2xDO0FBQ0Y7QUFFTyxTQUFTcEIsS0FBS08sS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0MsZ0JBQWdCO0lBQ3ZELElBQUlDLFVBQVU7SUFFZCxNQUFNQyxlQUFlRixpQkFBaUJHLEdBQUc7SUFFekMsSUFBSUMsd0JBQXdCSixrQkFBa0IsR0FBRztJQUVqRCxPQUFPTixvQkFBb0JJLE9BQU8sQ0FBQ08sU0FBU0MsTUFBTUM7UUFDaEQsT0FBT1IsU0FBU00sWUFBWUQsdUJBQXVCLENBQUMsR0FBR0k7WUFDckQsTUFBTUMsU0FBU0Qsa0JBQWtCRSxLQUFLO1lBRXRDTix3QkFBd0JJLG1CQUFvQixHQUFHO1lBRS9DLElBQUlDLFFBQVE7Z0JBQ1ZSLFVBQVU7Z0JBRVZNO2dCQUVBO1lBQ0Y7WUFFQUQ7UUFDRjtJQUNGLEdBQUc7UUFDRCxNQUFNSyxpQkFBaUJQLHVCQUF1QixHQUFHO1FBRWpELE9BQU9GLGFBQWFELFlBQVlVO0lBQ2xDO0FBQ0Y7QUFFTyxTQUFTaEMsS0FBS21CLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGdCQUFnQjtJQUN2RCxJQUFJQyxVQUFVO0lBRWQsTUFBTUMsZUFBZUYsaUJBQWlCRyxHQUFHO0lBRXpDLElBQUlDLHdCQUF3Qkosa0JBQWtCLEdBQUc7SUFFakQsT0FBT04sb0JBQW9CSSxPQUFPLENBQUNPLFNBQVNDLE1BQU1DO1FBQ2hELE9BQU9SLFNBQVNNLFlBQVlELHVCQUF1QixDQUFDLEdBQUdJO1lBQ3JELE1BQU1DLFNBQVNELGtCQUFrQkUsS0FBSztZQUV0Q04sd0JBQXdCSSxtQkFBb0IsR0FBRztZQUUvQyxJQUFJQyxRQUFRO2dCQUNWUixVQUFVO1lBQ1osT0FBTztnQkFDTEEsVUFBVTtnQkFFVk07Z0JBRUE7WUFDRjtZQUVBRDtRQUNGO0lBQ0YsR0FBRztRQUNELE1BQU1LLGlCQUFpQlAsdUJBQXVCLEdBQUc7UUFFakQsT0FBT0YsYUFBYUQsWUFBWVU7SUFDbEM7QUFDRjtBQUVPLFNBQVMvQixNQUFNa0IsS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0MsZ0JBQWdCO0lBQ3hELElBQUlDLFVBQVU7SUFFZCxNQUFNQyxlQUFlRixpQkFBaUJHLEdBQUc7SUFFekMsSUFBSUMsd0JBQXdCSixrQkFBa0IsR0FBRztJQUVqRCxPQUFPTixvQkFBb0JJLE9BQU8sQ0FBQ08sU0FBU0MsTUFBTUM7UUFDaEQsT0FBT1IsU0FBU00sWUFBWUQsdUJBQXVCLENBQUMsR0FBR0k7WUFDckQsTUFBTUMsU0FBU0Qsa0JBQWtCRSxLQUFLO1lBRXRDTix3QkFBd0JJLG1CQUFvQixHQUFHO1lBRS9DLElBQUksQ0FBQ0MsUUFBUTtnQkFDWFIsVUFBVTtnQkFFVk07Z0JBRUE7WUFDRjtZQUVBRDtRQUNGO0lBQ0YsR0FBRztRQUNELE1BQU1LLGlCQUFpQlAsdUJBQXVCLEdBQUc7UUFFakQsT0FBT0YsYUFBYUQsWUFBWVU7SUFDbEM7QUFDRjtBQUVPLFNBQVN0QixPQUFPUyxLQUFLLEVBQUVjLFlBQVksRUFBRWIsUUFBUSxFQUFFLEdBQUdDLGdCQUFnQjtJQUN2RSxJQUFJYSxRQUFRRCxjQUFjLEdBQUc7SUFFN0IsTUFBTVYsZUFBZUYsaUJBQWlCRyxHQUFHO0lBRXpDLElBQUlDLHdCQUF3Qkosa0JBQWtCLEdBQUc7SUFFakQsT0FBT04sb0JBQW9CSSxPQUFPLENBQUNPLFNBQVNDLE1BQU1DO1FBQ2hELE9BQU9SLFNBQVNjLE9BQU9SLFlBQVlELHVCQUF1QixDQUFDLEdBQUdJO1lBQzVELE1BQU1NLGVBQWVOLGtCQUFrQkUsS0FBSztZQUU1Q04sd0JBQXdCSSxtQkFBb0IsR0FBRztZQUUvQ0ssUUFBUUMsY0FBZSxHQUFHO1lBRTFCUjtRQUNGO0lBQ0YsR0FBRztRQUNELE1BQU1LLGlCQUFpQlAsdUJBQXVCLEdBQUc7UUFFakQsT0FBT0YsYUFBYVcsVUFBVUY7SUFDaEM7QUFDRjtBQUVPLFNBQVM1QixRQUFRZSxLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxnQkFBZ0I7SUFDMUQsTUFBTUUsZUFBZUYsaUJBQWlCRyxHQUFHO0lBRXpDLElBQUlDLHdCQUF3Qkosa0JBQWtCLEdBQUc7SUFFakQsT0FBT04sb0JBQW9CSSxPQUFPLENBQUNPLFNBQVNDLE1BQU1DO1FBQ2hELE9BQU9SLFNBQVNNLFlBQVlELHVCQUF1QixDQUFDLEdBQUdJO1lBQ3JESix3QkFBd0JJLG1CQUFvQixHQUFHO1lBRS9DRjtRQUNGO0lBQ0YsR0FBRztRQUNELE1BQU1LLGlCQUFpQlAsdUJBQXVCLEdBQUc7UUFFakQsT0FBT0YsZ0JBQWdCUztJQUN6QjtBQUNGO0FBRU8sU0FBUzNCLGNBQWNjLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGdCQUFnQjtJQUNoRSxJQUFJQyxVQUFVO0lBRWQsTUFBTUMsZUFBZUYsaUJBQWlCRyxHQUFHO0lBRXpDLElBQUlDLHdCQUF3Qkosa0JBQWtCLEdBQUc7SUFFakQsT0FBT0wsNEJBQTRCRyxPQUFPLENBQUNPLFNBQVNDLE1BQU1DO1FBQ3hELE9BQU9SLFNBQVNNLFlBQVlELHVCQUF1QixDQUFDLEdBQUdJO1lBQ3JELE1BQU1DLFNBQVNELGtCQUFrQkUsS0FBSztZQUV0Q04sd0JBQXdCSSxtQkFBb0IsR0FBRztZQUUvQyxJQUFJLENBQUNDLFFBQVE7Z0JBQ1hSLFVBQVU7Z0JBRVZNO2dCQUVBO1lBQ0Y7WUFFQUQ7UUFDRjtJQUNGLEdBQUc7UUFDRCxNQUFNSyxpQkFBaUJQLHVCQUF1QixHQUFHO1FBRWpELE9BQU9GLGFBQWFELFlBQVlVO0lBQ2xDO0FBQ0Y7QUFFTyxTQUFTbEMsZUFBZXFCLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGdCQUFnQjtJQUNqRSxJQUFJQyxVQUFVO0lBRWQsTUFBTUMsZUFBZUYsaUJBQWlCRyxHQUFHO0lBRXpDLElBQUlDLHdCQUF3Qkosa0JBQWtCLEdBQUc7SUFFakQsT0FBT0osNkJBQTZCRSxPQUFPLENBQUNPLFNBQVNDLE1BQU1DO1FBQ3pELE9BQU9SLFNBQVNNLFlBQVlELHVCQUF1QixDQUFDLEdBQUdJO1lBQ3JELE1BQU1DLFNBQVNELGtCQUFrQkUsS0FBSztZQUV0Q04sd0JBQXdCSSxtQkFBb0IsR0FBRztZQUUvQyxJQUFJLENBQUNDLFFBQVE7Z0JBQ1hSLFVBQVU7Z0JBRVZNO2dCQUVBO1lBQ0Y7WUFFQUQ7UUFDRjtJQUNGLEdBQUc7UUFDRCxNQUFNSyxpQkFBaUJQLHVCQUF1QixHQUFHO1FBRWpELE9BQU9GLGFBQWFELFlBQVlVO0lBQ2xDO0FBQ0Y7QUFFTyxTQUFTMUIsZ0JBQWdCYSxLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxnQkFBZ0I7SUFDbEUsTUFBTUUsZUFBZUYsaUJBQWlCRyxHQUFHO0lBRXpDLElBQUlDLHdCQUF3Qkosa0JBQWtCLEdBQUc7SUFFakQsT0FBT0wsNEJBQTRCRyxPQUFPLENBQUNPLFNBQVNDLE1BQU1DO1FBQ3hELE9BQU9SLFNBQVNNLFlBQVlELHVCQUF1QixDQUFDLEdBQUdJO1lBQ3JESix3QkFBd0JJLG1CQUFvQixHQUFHO1lBRS9DRjtRQUNGO0lBQ0YsR0FBRztRQUNELE1BQU1LLGlCQUFpQlAsdUJBQXVCLEdBQUc7UUFFakQsT0FBT0YsZ0JBQWdCUztJQUN6QjtBQUNGO0FBRU8sU0FBU2pDLGlCQUFpQm9CLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGdCQUFnQjtJQUNuRSxNQUFNRSxlQUFlRixpQkFBaUJHLEdBQUc7SUFFekMsSUFBSUMsd0JBQXdCSixrQkFBa0IsR0FBRztJQUVqRCxPQUFPSiw2QkFBNkJFLE9BQU8sQ0FBQ08sU0FBU0MsTUFBTUM7UUFDekQsT0FBT1IsU0FBU00sWUFBWUQsdUJBQXVCLENBQUMsR0FBR0k7WUFDckRKLHdCQUF3QkksbUJBQW9CLEdBQUc7WUFFL0NGO1FBQ0Y7SUFDRixHQUFHO1FBQ0QsTUFBTUssaUJBQWlCUCx1QkFBdUIsR0FBRztRQUVqRCxPQUFPRixnQkFBZ0JTO0lBQ3pCO0FBQ0Y7QUFFTyxTQUFTN0IsT0FBT2dCLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGdCQUFnQjtJQUN6RCxNQUFNZSxrQkFBa0IsRUFBRTtJQUUxQixNQUFNYixlQUFlRixpQkFBaUJHLEdBQUc7SUFFekMsSUFBSUMsd0JBQXdCSixrQkFBa0IsR0FBRztJQUVqRCxJQUFJZ0IsUUFBUWxCLE1BQU1tQixNQUFNO0lBRXhCLE9BQU9yQiw2QkFBNkJFLE9BQU8sQ0FBQ08sU0FBU0MsTUFBTUM7UUFDekRTO1FBRUEsT0FBT2pCLFNBQVNNLFlBQVlELHVCQUF1QixDQUFDLEdBQUdJO1lBQ3JELE1BQU1DLFNBQVNELGtCQUFrQkUsS0FBSztZQUV0Q04sd0JBQXdCSSxtQkFBbUIsR0FBRztZQUU5QyxJQUFJLENBQUNDLFFBQVE7Z0JBQ1gsTUFBTVMsUUFBUUYsT0FDUkcsY0FBYyxHQUNkQyxpQkFBaUJ0QixNQUFNdUIsTUFBTSxDQUFDSCxPQUFPQyxhQUFhaEIsR0FBRyxJQUFLLEdBQUc7Z0JBRW5FWSxnQkFBZ0JPLE9BQU8sQ0FBQ0YsaUJBQWtCLEdBQUc7WUFDL0M7WUFFQWQ7UUFDRjtJQUNGLEdBQUc7UUFDRCxNQUFNSyxpQkFBaUJQLHVCQUF1QixHQUFHO1FBRWpELE9BQU9GLGFBQWFhLG9CQUFvQko7SUFDMUM7QUFDRjtBQUVPLFNBQVN2QixNQUFNVSxLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxnQkFBZ0I7SUFDeEQsSUFBSW9CLGlCQUFpQkcsV0FBVyxHQUFHO0lBRW5DLE1BQU1yQixlQUFlRixpQkFBaUJHLEdBQUc7SUFFekMsSUFBSUMsd0JBQXdCSixrQkFBa0IsR0FBRztJQUVqRCxJQUFJZ0IsUUFBUSxDQUFDO0lBRWIsT0FBT3RCLG9CQUFvQkksT0FBTyxDQUFDTyxTQUFTQyxNQUFNQztRQUNoRFM7UUFFQSxPQUFPakIsU0FBU00sWUFBWUQsdUJBQXVCLENBQUMsR0FBR0k7WUFDckQsTUFBTUMsU0FBU0Qsa0JBQWtCRSxLQUFLO1lBRXRDTix3QkFBd0JJLG1CQUFtQixHQUFHO1lBRTlDLElBQUksQ0FBQ0MsUUFBUTtnQkFDWCxNQUFNUyxRQUFRRixPQUNSRyxjQUFjO2dCQUVwQkMsaUJBQWlCdEIsTUFBTXVCLE1BQU0sQ0FBQ0gsT0FBT0MsYUFBYWhCLEdBQUcsSUFBSSxHQUFHO2dCQUU1REk7Z0JBRUE7WUFDRjtZQUVBRDtRQUNGO0lBQ0YsR0FBRztRQUNELE1BQU1LLGlCQUFpQlAsdUJBQXVCLEdBQUc7UUFFakQsT0FBT0YsYUFBYWtCLG1CQUFtQlQ7SUFDekM7QUFDRjtBQUVPLFNBQVM5QixRQUFRaUIsS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0MsZ0JBQWdCO0lBQzFELElBQUlvQixpQkFBaUJHLFdBQVcsR0FBRztJQUVuQyxNQUFNckIsZUFBZUYsaUJBQWlCRyxHQUFHO0lBRXpDLElBQUlDLHdCQUF3Qkosa0JBQWtCLEdBQUc7SUFFakQsSUFBSWdCLFFBQVEsQ0FBQztJQUViLE9BQU90QixvQkFBb0JJLE9BQU8sQ0FBQ08sU0FBU0MsTUFBTUM7UUFDaERTO1FBRUEsT0FBT2pCLFNBQVNNLFlBQVlELHVCQUF1QixDQUFDLEdBQUdJO1lBQ3JELE1BQU1DLFNBQVNELGtCQUFrQkUsS0FBSztZQUV0Q04sd0JBQXdCSSxtQkFBbUIsR0FBRztZQUU5QyxJQUFJQyxRQUFRO2dCQUNWLE1BQU1TLFFBQVFGLE9BQ1JHLGNBQWM7Z0JBRXBCQyxpQkFBaUJ0QixNQUFNdUIsTUFBTSxDQUFDSCxPQUFPQyxhQUFhaEIsR0FBRyxJQUFJLEdBQUc7Z0JBRTVESTtnQkFFQTtZQUNGO1lBRUFEO1FBQ0Y7SUFDRixHQUFHO1FBQ0QsTUFBTUssaUJBQWlCUCx1QkFBdUIsR0FBRztRQUVqRCxPQUFPRixhQUFha0IsbUJBQW1CVDtJQUN6QztBQUNGO0FBRU8sU0FBU3pCLE1BQU1zQyxNQUFNLEVBQUVDLE1BQU0sRUFBRTFCLFFBQVEsRUFBRSxHQUFHQyxnQkFBZ0I7SUFDakUsSUFBSUMsVUFBVTtJQUVkLE1BQU1DLGVBQWVGLGlCQUFpQkcsR0FBRztJQUV6QyxNQUFNdUIsZUFBZUYsT0FBT1AsTUFBTSxFQUM1QlUsZUFBZUYsT0FBT1IsTUFBTTtJQUVsQyxJQUFJUyxpQkFBaUJDLGNBQWM7UUFDakMxQixVQUFVO1FBRVYsT0FBT0MsYUFBYUQsWUFBWUQ7SUFDbEM7SUFFQSxJQUFJZ0IsUUFBUSxDQUFDO0lBRWIsSUFBSVosd0JBQXdCSixrQkFBa0IsR0FBRztJQUVqRCxPQUFPTixvQkFBb0I4QixRQUFRLENBQUNJLFVBQVV0QixNQUFNQztRQUNsRFM7UUFFQSxNQUFNYSxXQUFXSixNQUFNLENBQUNULE1BQU07UUFFOUIsT0FBT2pCLFNBQVM2QixVQUFVQyxhQUFhekIsdUJBQXVCLENBQUMsR0FBR0k7WUFDaEUsTUFBTUMsU0FBU0Qsa0JBQWtCRSxLQUFLO1lBRXRDTix3QkFBd0JJLG1CQUFvQixHQUFHO1lBRS9DLElBQUksQ0FBQ0MsUUFBUTtnQkFDWFIsVUFBVTtnQkFFVk07Z0JBRUE7WUFDRjtZQUVBRDtRQUNGO0lBQ0YsR0FBRztRQUNELE1BQU1LLGlCQUFpQlAsdUJBQXVCLEdBQUc7UUFFakQsT0FBT0YsYUFBYUQsWUFBWVU7SUFDbEM7QUFDRjtBQUVPLFNBQVNyQixRQUFRa0MsTUFBTSxFQUFFQyxNQUFNLEVBQUUxQixRQUFRLEVBQUUsR0FBR0MsZ0JBQWdCO0lBQ25Fd0IsU0FBUztXQUNKQTtLQUNKO0lBRUQsTUFBTXRCLGVBQWVGLGlCQUFpQkcsR0FBRztJQUV6QyxJQUFJQyx3QkFBd0JKLGtCQUFrQixHQUFHO0lBRWpELFNBQVM4QjtRQUNQLElBQUk3QixVQUFVO1FBRWQsTUFBTXlCLGVBQWVGLE9BQU9QLE1BQU07UUFFbEMsSUFBSVMsaUJBQWlCLEdBQUc7WUFDdEJ6QixVQUFVO1lBRVYsTUFBTVUsaUJBQWlCUCx1QkFBdUIsR0FBRztZQUVqRCxPQUFPRixhQUFhRCxZQUFZVTtRQUNsQztRQUVBLElBQUlLLFFBQVEsQ0FBQztRQUViLFNBQVNlO1lBQ1BmO1lBRUEsTUFBTWdCLFlBQWFoQixVQUFVVTtZQUU3QixJQUFJTSxXQUFXO2dCQUNiLElBQUksQ0FBQy9CLFNBQVM7b0JBQ1pBLFVBQVU7b0JBRVYsTUFBTVUsaUJBQWlCUCx1QkFBdUIsR0FBRztvQkFFakQsT0FBT0YsYUFBYUQsWUFBWVU7Z0JBQ2xDO2dCQUVBbkIsWUFBWWdDLFFBQVEsQ0FBQ0k7b0JBQ25CLE1BQU1LLHlCQUF5QlIsT0FBT1MsUUFBUSxDQUFDTjtvQkFFL0MsSUFBSSxDQUFDSyx3QkFBd0I7d0JBQzNCLE9BQU87b0JBQ1Q7Z0JBQ0Y7Z0JBRUFIO1lBQ0YsT0FBTztnQkFDTCxNQUFNRixXQUFXSixNQUFNLENBQUNSLE1BQU07Z0JBRTlCLE9BQU9qQixTQUFTNkIsYUFBYXhCLHVCQUF1QixDQUFDLEdBQUdJO29CQUN0RCxNQUFNQyxTQUFTRCxrQkFBa0JFLEtBQUs7b0JBRXRDTix3QkFBd0JJLG1CQUFvQixHQUFHO29CQUUvQyxJQUFJQyxRQUFRO3dCQUNWLE1BQU1vQixXQUFXRCxVQUFXLEdBQUc7d0JBRS9CSCxPQUFPVSxJQUFJLENBQUNOO3dCQUVaNUIsVUFBVTtvQkFDWjtvQkFFQThCO2dCQUNGO1lBQ0Y7UUFDRjtRQUVBQTtJQUNGO0lBRUFEO0FBQ0Y7TUFFQSxXQUFlO0lBQ2IzQztJQUNBSTtJQUNBWjtJQUNBQztJQUNBUztJQUNBTjtJQUNBQztJQUNBUDtJQUNBUTtJQUNBUDtJQUNBSTtJQUNBTTtJQUNBUDtJQUNBSztJQUNBSTtBQUNGIn0=
|
|
406
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpbHRlcjogYXJyYXlGaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBmb3JFYWNoOiBhc3luY2hyb25vdXNGb3JFYWNoLFxuICAgICAgICBmb3J3YXJkc0ZvckVhY2g6IGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCxcbiAgICAgICAgYmFja3dhcmRzRm9yRWFjaDogYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCB9ID0gYXN5bmNocm9ub3VzVXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gb25lKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgIC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgcGFzc2VkID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29tZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgcGFzc2VkID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7ICAvLy9cblxuICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGludGVybWVkaWF0ZUFyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBjYWxsYmFja0FyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgbGV0IHZhbHVlID0gaW5pdGlhbFZhbHVlOyAvLy9cblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayh2YWx1ZSwgZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGludGVybWVkaWF0ZUFyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBjYWxsYmFja0FyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgIC8vL1xuXG4gICAgICB2YWx1ZSA9IGN1cnJlbnRWYWx1ZTsgIC8vL1xuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24odmFsdWUsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7ICAvLy9cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgcGFzc2VkID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGludGVybWVkaWF0ZUFyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBjYWxsYmFja0FyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBkZWxldGVkRWxlbWVudHMgPSBbXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIGxldCBpbmRleCA9IGFycmF5Lmxlbmd0aDtcblxuICByZXR1cm4gYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBpbmRleC0tO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydCA9IGluZGV4LCAgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMSxcbiAgICAgICAgICAgICAgZGVsZXRlZEVsZW1lbnQgPSBhcnJheS5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50KS5wb3AoKTsgIC8vL1xuXG4gICAgICAgIGRlbGV0ZWRFbGVtZW50cy51bnNoaWZ0KGRlbGV0ZWRFbGVtZW50KTsgIC8vL1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnRzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCBkZWxldGVkRWxlbWVudCA9IHVuZGVmaW5lZDsgLy8vXG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICBsZXQgaW5kZXggPSAtMTtcblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydCA9IGluZGV4LCAgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMTtcblxuICAgICAgICBkZWxldGVkRWxlbWVudCA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLnBvcCgpOyAvLy9cblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7IC8vL1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgaW5kZXgrKztcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgcGFzc2VkID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydCA9IGluZGV4LCAgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMTtcblxuICAgICAgICBkZWxldGVkRWxlbWVudCA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLnBvcCgpOyAvLy9cblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaChhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aCxcbiAgICAgICAgYXJyYXlCTGVuZ3RoID0gYXJyYXlCLmxlbmd0aDtcblxuICBpZiAoYXJyYXlBTGVuZ3RoICE9PSBhcnJheUJMZW5ndGgpIHtcbiAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmluaXRpYWxBcmd1bWVudHMpO1xuICB9XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgbGV0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXlBLCAoZWxlbWVudEEsIG5leHQsIGRvbmUpID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgY29uc3QgZWxlbWVudEIgPSBhcnJheUJbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnRBLCBlbGVtZW50QiwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGludGVybWVkaWF0ZUFyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBjYWxsYmFja0FyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIGZ1bmN0aW9uIG5leHRQYXNzKCkge1xuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoO1xuXG4gICAgaWYgKGFycmF5QUxlbmd0aCA9PT0gMCkge1xuICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXggPSAtMTtcblxuICAgIGZ1bmN0aW9uIG5leHRFbGVtZW50KCkge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgY29uc3QgdGVybWluYXRlID0gKGluZGV4ID09PSBhcnJheUFMZW5ndGgpO1xuXG4gICAgICBpZiAodGVybWluYXRlKSB7XG4gICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICAgIH1cblxuICAgICAgICBhcnJheUZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgICAgICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5leHRQYXNzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlbGVtZW50QSA9IGFycmF5QVtpbmRleF07XG5cbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnRBLCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhc3NlZCA9IGludGVybWVkaWF0ZUFyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7ICAvLy9cblxuICAgICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCID0gZWxlbWVudEE7ICAvLy9cblxuICAgICAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBuZXh0RWxlbWVudCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0RWxlbWVudCgpO1xuICB9XG5cbiAgbmV4dFBhc3MoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBvbmUsXG4gIHNvbWUsXG4gIGVhY2gsXG4gIGV2ZXJ5LFxuICByZWR1Y2UsXG4gIGZvckVhY2gsXG4gIGZvcndhcmRzRXZlcnksXG4gIGJhY2t3YXJkc0V2ZXJ5LFxuICBmb3J3YXJkc0ZvckVhY2gsXG4gIGJhY2t3YXJkc0ZvckVhY2gsXG4gIGZpbHRlcixcbiAgcHJ1bmUsXG4gIGV4dHJhY3QsXG4gIG1hdGNoLFxuICByZXNvbHZlXG59O1xuIl0sIm5hbWVzIjpbImJhY2t3YXJkc0V2ZXJ5IiwiYmFja3dhcmRzRm9yRWFjaCIsImVhY2giLCJldmVyeSIsImV4dHJhY3QiLCJmaWx0ZXIiLCJmb3JFYWNoIiwiZm9yd2FyZHNFdmVyeSIsImZvcndhcmRzRm9yRWFjaCIsIm1hdGNoIiwib25lIiwicHJ1bmUiLCJyZWR1Y2UiLCJyZXNvbHZlIiwic29tZSIsImFycmF5RmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwiYXN5bmNocm9ub3VzRm9yd2FyZHNGb3JFYWNoIiwiYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImFycmF5IiwiY2FsbGJhY2siLCJpbml0aWFsQXJndW1lbnRzIiwic3VjY2VzcyIsImNvbnRpbnVhdGlvbiIsInBvcCIsImNhbGxiYWNrQXJndW1lbnRzIiwiZWxlbWVudCIsIm5leHQiLCJkb25lIiwiaW50ZXJtZWRpYXRlQXJndW1lbnRzIiwicGFzc2VkIiwic2hpZnQiLCJmaW5hbEFyZ3VtZW50cyIsImluaXRpYWxWYWx1ZSIsInZhbHVlIiwiY3VycmVudFZhbHVlIiwiZGVsZXRlZEVsZW1lbnRzIiwiaW5kZXgiLCJsZW5ndGgiLCJzdGFydCIsImRlbGV0ZUNvdW50IiwiZGVsZXRlZEVsZW1lbnQiLCJzcGxpY2UiLCJ1bnNoaWZ0IiwidW5kZWZpbmVkIiwiYXJyYXlBIiwiYXJyYXlCIiwiYXJyYXlBTGVuZ3RoIiwiYXJyYXlCTGVuZ3RoIiwiZWxlbWVudEEiLCJlbGVtZW50QiIsIm5leHRQYXNzIiwibmV4dEVsZW1lbnQiLCJ0ZXJtaW5hdGUiLCJhcnJheUJJbmNsdWRlc0VsZW1lbnRBIiwiaW5jbHVkZXMiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUErTWdCQTtlQUFBQTs7UUFnREFDO2VBQUFBOztRQXFQaEI7ZUFBQTs7UUEzYWdCQztlQUFBQTs7UUFnQ0FDO2VBQUFBOztRQStPQUM7ZUFBQUE7O1FBdkVBQztlQUFBQTs7UUFsSEFDO2VBQUFBOztRQWtCQUM7ZUFBQUE7O1FBNERBQztlQUFBQTs7UUFnSkFDO2VBQUFBOztRQXBYQUM7ZUFBQUE7O1FBMFNBQztlQUFBQTs7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
|
package/package.json
CHANGED
|
@@ -40,8 +40,7 @@ export default class ContinuationZipPass {
|
|
|
40
40
|
specificNodeTerminalNode = specificNode.isTerminalNode(),
|
|
41
41
|
generalNodeNonTerminalNode = generalNode.isNonTerminalNode(),
|
|
42
42
|
specificNodeNonTerminalNode = specificNode.isNonTerminalNode();
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
|
|
45
44
|
if (generalNodeTerminalNode && specificNodeTerminalNode) {
|
|
46
45
|
const generalTerminalNode = generalNode, ///
|
|
47
46
|
specificTerminalNode = specificNode; ///
|
|
@@ -12,13 +12,13 @@ export function one(array, callback, ...initialArguments) {
|
|
|
12
12
|
|
|
13
13
|
const continuation = initialArguments.pop();
|
|
14
14
|
|
|
15
|
-
let
|
|
15
|
+
let callbackArguments = initialArguments; ///
|
|
16
16
|
|
|
17
17
|
return asynchronousForEach(array, (element, next, done) => {
|
|
18
|
-
return callback(element, ...
|
|
19
|
-
const passed =
|
|
18
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
19
|
+
const passed = intermediateArguments.shift();
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
callbackArguments = intermediateArguments; ///
|
|
22
22
|
|
|
23
23
|
if (passed) {
|
|
24
24
|
if (!success) {
|
|
@@ -35,7 +35,7 @@ export function one(array, callback, ...initialArguments) {
|
|
|
35
35
|
next();
|
|
36
36
|
});
|
|
37
37
|
}, () => {
|
|
38
|
-
const finalArguments =
|
|
38
|
+
const finalArguments = callbackArguments; ///
|
|
39
39
|
|
|
40
40
|
return continuation(success, ...finalArguments);
|
|
41
41
|
});
|
|
@@ -46,13 +46,13 @@ export function some(array, callback, ...initialArguments) {
|
|
|
46
46
|
|
|
47
47
|
const continuation = initialArguments.pop();
|
|
48
48
|
|
|
49
|
-
let
|
|
49
|
+
let callbackArguments = initialArguments; ///
|
|
50
50
|
|
|
51
51
|
return asynchronousForEach(array, (element, next, done) => {
|
|
52
|
-
return callback(element, ...
|
|
53
|
-
const passed =
|
|
52
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
53
|
+
const passed = intermediateArguments.shift();
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
callbackArguments = intermediateArguments; ///
|
|
56
56
|
|
|
57
57
|
if (passed) {
|
|
58
58
|
success = true;
|
|
@@ -65,7 +65,7 @@ export function some(array, callback, ...initialArguments) {
|
|
|
65
65
|
next();
|
|
66
66
|
});
|
|
67
67
|
}, () => {
|
|
68
|
-
const finalArguments =
|
|
68
|
+
const finalArguments = callbackArguments; ///
|
|
69
69
|
|
|
70
70
|
return continuation(success, ...finalArguments);
|
|
71
71
|
});
|
|
@@ -76,13 +76,13 @@ export function each(array, callback, ...initialArguments) {
|
|
|
76
76
|
|
|
77
77
|
const continuation = initialArguments.pop();
|
|
78
78
|
|
|
79
|
-
let
|
|
79
|
+
let callbackArguments = initialArguments; ///
|
|
80
80
|
|
|
81
81
|
return asynchronousForEach(array, (element, next, done) => {
|
|
82
|
-
return callback(element, ...
|
|
83
|
-
const passed =
|
|
82
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
83
|
+
const passed = intermediateArguments.shift();
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
callbackArguments = intermediateArguments; ///
|
|
86
86
|
|
|
87
87
|
if (passed) {
|
|
88
88
|
success = true;
|
|
@@ -97,7 +97,7 @@ export function each(array, callback, ...initialArguments) {
|
|
|
97
97
|
next();
|
|
98
98
|
});
|
|
99
99
|
}, () => {
|
|
100
|
-
const finalArguments =
|
|
100
|
+
const finalArguments = callbackArguments; ///
|
|
101
101
|
|
|
102
102
|
return continuation(success, ...finalArguments);
|
|
103
103
|
});
|
|
@@ -108,13 +108,13 @@ export function every(array, callback, ...initialArguments) {
|
|
|
108
108
|
|
|
109
109
|
const continuation = initialArguments.pop();
|
|
110
110
|
|
|
111
|
-
let
|
|
111
|
+
let callbackArguments = initialArguments; ///
|
|
112
112
|
|
|
113
113
|
return asynchronousForEach(array, (element, next, done) => {
|
|
114
|
-
return callback(element, ...
|
|
115
|
-
const passed =
|
|
114
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
115
|
+
const passed = intermediateArguments.shift();
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
callbackArguments = intermediateArguments; ///
|
|
118
118
|
|
|
119
119
|
if (!passed) {
|
|
120
120
|
success = false;
|
|
@@ -127,7 +127,7 @@ export function every(array, callback, ...initialArguments) {
|
|
|
127
127
|
next();
|
|
128
128
|
});
|
|
129
129
|
}, () => {
|
|
130
|
-
const finalArguments =
|
|
130
|
+
const finalArguments = callbackArguments; ///
|
|
131
131
|
|
|
132
132
|
return continuation(success, ...finalArguments);
|
|
133
133
|
});
|
|
@@ -138,20 +138,20 @@ export function reduce(array, initialValue, callback, ...initialArguments) {
|
|
|
138
138
|
|
|
139
139
|
const continuation = initialArguments.pop();
|
|
140
140
|
|
|
141
|
-
let
|
|
141
|
+
let callbackArguments = initialArguments; ///
|
|
142
142
|
|
|
143
143
|
return asynchronousForEach(array, (element, next, done) => {
|
|
144
|
-
return callback(value, element, ...
|
|
145
|
-
const currentValue =
|
|
144
|
+
return callback(value, element, ...callbackArguments, (...intermediateArguments) => {
|
|
145
|
+
const currentValue = intermediateArguments.shift();
|
|
146
146
|
|
|
147
|
-
|
|
147
|
+
callbackArguments = intermediateArguments; ///
|
|
148
148
|
|
|
149
149
|
value = currentValue; ///
|
|
150
150
|
|
|
151
151
|
next();
|
|
152
152
|
});
|
|
153
153
|
}, () => {
|
|
154
|
-
const finalArguments =
|
|
154
|
+
const finalArguments = callbackArguments; ///
|
|
155
155
|
|
|
156
156
|
return continuation(value, ...finalArguments);
|
|
157
157
|
});
|
|
@@ -160,16 +160,16 @@ export function reduce(array, initialValue, callback, ...initialArguments) {
|
|
|
160
160
|
export function forEach(array, callback, ...initialArguments) {
|
|
161
161
|
const continuation = initialArguments.pop();
|
|
162
162
|
|
|
163
|
-
let
|
|
163
|
+
let callbackArguments = initialArguments; ///
|
|
164
164
|
|
|
165
165
|
return asynchronousForEach(array, (element, next, done) => {
|
|
166
|
-
return callback(element, ...
|
|
167
|
-
|
|
166
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
167
|
+
callbackArguments = intermediateArguments; ///
|
|
168
168
|
|
|
169
169
|
next();
|
|
170
170
|
});
|
|
171
171
|
}, () => {
|
|
172
|
-
const finalArguments =
|
|
172
|
+
const finalArguments = callbackArguments; ///
|
|
173
173
|
|
|
174
174
|
return continuation(...finalArguments);
|
|
175
175
|
});
|
|
@@ -180,13 +180,13 @@ export function forwardsEvery(array, callback, ...initialArguments) {
|
|
|
180
180
|
|
|
181
181
|
const continuation = initialArguments.pop();
|
|
182
182
|
|
|
183
|
-
let
|
|
183
|
+
let callbackArguments = initialArguments; ///
|
|
184
184
|
|
|
185
185
|
return asynchronousForwardsForEach(array, (element, next, done) => {
|
|
186
|
-
return callback(element, ...
|
|
187
|
-
const passed =
|
|
186
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
187
|
+
const passed = intermediateArguments.shift();
|
|
188
188
|
|
|
189
|
-
|
|
189
|
+
callbackArguments = intermediateArguments; ///
|
|
190
190
|
|
|
191
191
|
if (!passed) {
|
|
192
192
|
success = false;
|
|
@@ -199,7 +199,7 @@ export function forwardsEvery(array, callback, ...initialArguments) {
|
|
|
199
199
|
next();
|
|
200
200
|
});
|
|
201
201
|
}, () => {
|
|
202
|
-
const finalArguments =
|
|
202
|
+
const finalArguments = callbackArguments; ///
|
|
203
203
|
|
|
204
204
|
return continuation(success, ...finalArguments);
|
|
205
205
|
});
|
|
@@ -210,13 +210,13 @@ export function backwardsEvery(array, callback, ...initialArguments) {
|
|
|
210
210
|
|
|
211
211
|
const continuation = initialArguments.pop();
|
|
212
212
|
|
|
213
|
-
let
|
|
213
|
+
let callbackArguments = initialArguments; ///
|
|
214
214
|
|
|
215
215
|
return asynchronousBackwardsForEach(array, (element, next, done) => {
|
|
216
|
-
return callback(element, ...
|
|
217
|
-
const passed =
|
|
216
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
217
|
+
const passed = intermediateArguments.shift();
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
callbackArguments = intermediateArguments; ///
|
|
220
220
|
|
|
221
221
|
if (!passed) {
|
|
222
222
|
success = false;
|
|
@@ -229,7 +229,7 @@ export function backwardsEvery(array, callback, ...initialArguments) {
|
|
|
229
229
|
next();
|
|
230
230
|
});
|
|
231
231
|
}, () => {
|
|
232
|
-
const finalArguments =
|
|
232
|
+
const finalArguments = callbackArguments; ///
|
|
233
233
|
|
|
234
234
|
return continuation(success, ...finalArguments);
|
|
235
235
|
});
|
|
@@ -238,16 +238,16 @@ export function backwardsEvery(array, callback, ...initialArguments) {
|
|
|
238
238
|
export function forwardsForEach(array, callback, ...initialArguments) {
|
|
239
239
|
const continuation = initialArguments.pop();
|
|
240
240
|
|
|
241
|
-
let
|
|
241
|
+
let callbackArguments = initialArguments; ///
|
|
242
242
|
|
|
243
243
|
return asynchronousForwardsForEach(array, (element, next, done) => {
|
|
244
|
-
return callback(element, ...
|
|
245
|
-
|
|
244
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
245
|
+
callbackArguments = intermediateArguments; ///
|
|
246
246
|
|
|
247
247
|
next();
|
|
248
248
|
});
|
|
249
249
|
}, () => {
|
|
250
|
-
const finalArguments =
|
|
250
|
+
const finalArguments = callbackArguments; ///
|
|
251
251
|
|
|
252
252
|
return continuation(...finalArguments);
|
|
253
253
|
});
|
|
@@ -256,16 +256,16 @@ export function forwardsForEach(array, callback, ...initialArguments) {
|
|
|
256
256
|
export function backwardsForEach(array, callback, ...initialArguments) {
|
|
257
257
|
const continuation = initialArguments.pop();
|
|
258
258
|
|
|
259
|
-
let
|
|
259
|
+
let callbackArguments = initialArguments; ///
|
|
260
260
|
|
|
261
261
|
return asynchronousBackwardsForEach(array, (element, next, done) => {
|
|
262
|
-
return callback(element, ...
|
|
263
|
-
|
|
262
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
263
|
+
callbackArguments = intermediateArguments; ///
|
|
264
264
|
|
|
265
265
|
next();
|
|
266
266
|
});
|
|
267
267
|
}, () => {
|
|
268
|
-
const finalArguments =
|
|
268
|
+
const finalArguments = callbackArguments; ///
|
|
269
269
|
|
|
270
270
|
return continuation(...finalArguments);
|
|
271
271
|
});
|
|
@@ -276,17 +276,17 @@ export function filter(array, callback, ...initialArguments) {
|
|
|
276
276
|
|
|
277
277
|
const continuation = initialArguments.pop();
|
|
278
278
|
|
|
279
|
-
let
|
|
279
|
+
let callbackArguments = initialArguments; ///
|
|
280
280
|
|
|
281
281
|
let index = array.length;
|
|
282
282
|
|
|
283
283
|
return asynchronousBackwardsForEach(array, (element, next, done) => {
|
|
284
284
|
index--;
|
|
285
285
|
|
|
286
|
-
return callback(element, ...
|
|
287
|
-
const passed =
|
|
286
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
287
|
+
const passed = intermediateArguments.shift();
|
|
288
288
|
|
|
289
|
-
|
|
289
|
+
callbackArguments = intermediateArguments; ///
|
|
290
290
|
|
|
291
291
|
if (!passed) {
|
|
292
292
|
const start = index, ///
|
|
@@ -299,7 +299,7 @@ export function filter(array, callback, ...initialArguments) {
|
|
|
299
299
|
next();
|
|
300
300
|
});
|
|
301
301
|
}, () => {
|
|
302
|
-
const finalArguments =
|
|
302
|
+
const finalArguments = callbackArguments; ///
|
|
303
303
|
|
|
304
304
|
return continuation(deletedElements, ...finalArguments);
|
|
305
305
|
});
|
|
@@ -310,17 +310,17 @@ export function prune(array, callback, ...initialArguments) {
|
|
|
310
310
|
|
|
311
311
|
const continuation = initialArguments.pop();
|
|
312
312
|
|
|
313
|
-
let
|
|
313
|
+
let callbackArguments = initialArguments; ///
|
|
314
314
|
|
|
315
315
|
let index = -1;
|
|
316
316
|
|
|
317
317
|
return asynchronousForEach(array, (element, next, done) => {
|
|
318
318
|
index++;
|
|
319
319
|
|
|
320
|
-
return callback(element, ...
|
|
321
|
-
const passed =
|
|
320
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
321
|
+
const passed = intermediateArguments.shift();
|
|
322
322
|
|
|
323
|
-
|
|
323
|
+
callbackArguments = intermediateArguments; ///
|
|
324
324
|
|
|
325
325
|
if (!passed) {
|
|
326
326
|
const start = index, ///
|
|
@@ -336,7 +336,7 @@ export function prune(array, callback, ...initialArguments) {
|
|
|
336
336
|
next();
|
|
337
337
|
});
|
|
338
338
|
}, () => {
|
|
339
|
-
const finalArguments =
|
|
339
|
+
const finalArguments = callbackArguments; ///
|
|
340
340
|
|
|
341
341
|
return continuation(deletedElement, ...finalArguments);
|
|
342
342
|
});
|
|
@@ -347,17 +347,17 @@ export function extract(array, callback, ...initialArguments) {
|
|
|
347
347
|
|
|
348
348
|
const continuation = initialArguments.pop();
|
|
349
349
|
|
|
350
|
-
let
|
|
350
|
+
let callbackArguments = initialArguments; ///
|
|
351
351
|
|
|
352
352
|
let index = -1;
|
|
353
353
|
|
|
354
354
|
return asynchronousForEach(array, (element, next, done) => {
|
|
355
355
|
index++;
|
|
356
356
|
|
|
357
|
-
return callback(element, ...
|
|
358
|
-
const passed =
|
|
357
|
+
return callback(element, ...callbackArguments, (...intermediateArguments) => {
|
|
358
|
+
const passed = intermediateArguments.shift();
|
|
359
359
|
|
|
360
|
-
|
|
360
|
+
callbackArguments = intermediateArguments; ///
|
|
361
361
|
|
|
362
362
|
if (passed) {
|
|
363
363
|
const start = index, ///
|
|
@@ -373,7 +373,7 @@ export function extract(array, callback, ...initialArguments) {
|
|
|
373
373
|
next();
|
|
374
374
|
});
|
|
375
375
|
}, () => {
|
|
376
|
-
const finalArguments =
|
|
376
|
+
const finalArguments = callbackArguments; ///
|
|
377
377
|
|
|
378
378
|
return continuation(deletedElement, ...finalArguments);
|
|
379
379
|
});
|
|
@@ -395,17 +395,17 @@ export function match(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
395
395
|
|
|
396
396
|
let index = -1;
|
|
397
397
|
|
|
398
|
-
let
|
|
398
|
+
let callbackArguments = initialArguments; ///
|
|
399
399
|
|
|
400
400
|
return asynchronousForEach(arrayA, (elementA, next, done) => {
|
|
401
401
|
index++;
|
|
402
402
|
|
|
403
403
|
const elementB = arrayB[index];
|
|
404
404
|
|
|
405
|
-
return callback(elementA, elementB, ...
|
|
406
|
-
const passed =
|
|
405
|
+
return callback(elementA, elementB, ...callbackArguments, (...intermediateArguments) => {
|
|
406
|
+
const passed = intermediateArguments.shift();
|
|
407
407
|
|
|
408
|
-
|
|
408
|
+
callbackArguments = intermediateArguments; ///
|
|
409
409
|
|
|
410
410
|
if (!passed) {
|
|
411
411
|
success = false;
|
|
@@ -418,7 +418,7 @@ export function match(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
418
418
|
next();
|
|
419
419
|
});
|
|
420
420
|
}, () => {
|
|
421
|
-
const finalArguments =
|
|
421
|
+
const finalArguments = callbackArguments; ///
|
|
422
422
|
|
|
423
423
|
return continuation(success, ...finalArguments);
|
|
424
424
|
});
|
|
@@ -431,7 +431,7 @@ export function resolve(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
431
431
|
|
|
432
432
|
const continuation = initialArguments.pop();
|
|
433
433
|
|
|
434
|
-
let
|
|
434
|
+
let callbackArguments = initialArguments; ///
|
|
435
435
|
|
|
436
436
|
function nextPass() {
|
|
437
437
|
let success = false;
|
|
@@ -441,7 +441,7 @@ export function resolve(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
441
441
|
if (arrayALength === 0) {
|
|
442
442
|
success = true;
|
|
443
443
|
|
|
444
|
-
const finalArguments =
|
|
444
|
+
const finalArguments = callbackArguments; ///
|
|
445
445
|
|
|
446
446
|
return continuation(success, ...finalArguments);
|
|
447
447
|
}
|
|
@@ -457,7 +457,7 @@ export function resolve(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
457
457
|
if (!success) {
|
|
458
458
|
success = false;
|
|
459
459
|
|
|
460
|
-
const finalArguments =
|
|
460
|
+
const finalArguments = callbackArguments; ///
|
|
461
461
|
|
|
462
462
|
return continuation(success, ...finalArguments);
|
|
463
463
|
}
|
|
@@ -474,10 +474,10 @@ export function resolve(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
474
474
|
} else {
|
|
475
475
|
const elementA = arrayA[index];
|
|
476
476
|
|
|
477
|
-
return callback(elementA, ...
|
|
478
|
-
const passed =
|
|
477
|
+
return callback(elementA, ...callbackArguments, (...intermediateArguments) => {
|
|
478
|
+
const passed = intermediateArguments.shift();
|
|
479
479
|
|
|
480
|
-
|
|
480
|
+
callbackArguments = intermediateArguments; ///
|
|
481
481
|
|
|
482
482
|
if (passed) {
|
|
483
483
|
const elementB = elementA; ///
|