@universe/util
Advanced tools
Comparing version 0.0.1 to 0.1.0
@@ -13,3 +13,2 @@ "use strict"; | ||
exports.lineCount = exports.maxDate = exports.idToHue = exports.toCamelCase = exports.toPascalCase = exports.toTitleCase = exports.toKebabCase = exports.toSnakeCase = exports.sha256Digest = exports.abbrNum = exports.debounce = exports.POST = exports.GET = exports.$ = exports.uuid = exports.DomUtils = exports.assertNever = exports.noop = exports.isArrayOrNull = exports.isArray = exports.isObjectOrNull = exports.isObject = exports.isDateOrNull = exports.isDate = exports.isNumberOrNull = exports.isNumber = exports.isBooleanOrNull = exports.isBoolean = exports.isStringOrNull = exports.isString = exports.isNull = void 0; | ||
const fs = require("fs"); | ||
exports.isNull = (v) => v === null; | ||
@@ -140,2 +139,4 @@ exports.isString = (v) => typeof v === 'string'; | ||
return __awaiter(this, void 0, void 0, function* () { | ||
/* eslint-disable-next-line */ | ||
const fs = require('fs'); | ||
let lineCount = 0; | ||
@@ -159,2 +160,2 @@ return new Promise((resolve) => { | ||
exports.lineCount = lineCount; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUJBQXlCO0FBRVosUUFBQSxNQUFNLEdBQUcsQ0FBQyxDQUFVLEVBQWEsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUM7QUFDL0MsUUFBQSxRQUFRLEdBQUcsQ0FBQyxDQUFVLEVBQWUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztBQUM5RCxRQUFBLGNBQWMsR0FBRyxDQUFDLENBQVUsRUFBc0IsRUFBRSxDQUFDLGdCQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlFLFFBQUEsU0FBUyxHQUFHLENBQUMsQ0FBVSxFQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDO0FBQ2pFLFFBQUEsZUFBZSxHQUFHLENBQUMsQ0FBVSxFQUF1QixFQUFFLENBQUMsaUJBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxjQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakYsUUFBQSxRQUFRLEdBQUcsQ0FBQyxDQUFVLEVBQWUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztBQUM5RCxRQUFBLGNBQWMsR0FBRyxDQUFDLENBQVUsRUFBc0IsRUFBRSxDQUFDLGdCQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlFLFFBQUEsTUFBTSxHQUFHLENBQUMsQ0FBVSxFQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDO0FBQ3RELFFBQUEsWUFBWSxHQUFHLENBQUMsQ0FBVSxFQUFvQixFQUFFLENBQUMsY0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RSxRQUFBLFFBQVEsR0FBRyxDQUFDLENBQVUsRUFBZSxF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LGFBQWEsR0FBRyxvRUFBb0UsQ0FBQztBQUM5RSxRQUFBLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwRyxRQUFBLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwRyxRQUFBLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0gsUUFBQSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzNJLFFBQUEsV0FBVyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckgsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQztBQUVGLFNBQWdCLE9BQU8sQ0FBQyxLQUFhLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDOUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ1osS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFBRSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUFFO0lBQ3pFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzdCLENBQUM7QUFKRCwwQkFJQztBQUVELFNBQWdCLE9BQU8sQ0FBQyxHQUFHLEtBQTJDO0lBQ3BFLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFGRCwwQkFFQztBQUVELFNBQXNCLFNBQVMsQ0FBQyxRQUFnQjs7UUFDOUMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxPQUFPLENBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO2lCQUMxQixFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVMsS0FBSztnQkFDeEIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2IsU0FBUyxFQUFFLENBQUMsQ0FBQyw0Q0FBNEM7Z0JBQ3pELEdBQUc7b0JBQ0QsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3RELFNBQVMsRUFBRSxDQUFDO2lCQUNiLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3ZCLENBQUMsQ0FBQztpQkFDRCxFQUFFLENBQUMsS0FBSyxFQUFFO2dCQUNULE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUFBO0FBaEJELDhCQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcblxuZXhwb3J0IGNvbnN0IGlzTnVsbCA9ICh2OiB1bmtub3duKTogdiBpcyBudWxsID0+IHYgPT09IG51bGw7XG5leHBvcnQgY29uc3QgaXNTdHJpbmcgPSAodjogdW5rbm93bik6IHYgaXMgc3RyaW5nID0+IHR5cGVvZiB2ID09PSAnc3RyaW5nJztcbmV4cG9ydCBjb25zdCBpc1N0cmluZ09yTnVsbCA9ICh2OiB1bmtub3duKTogdiBpcyBzdHJpbmcgfCBudWxsID0+IGlzU3RyaW5nKHYpIHx8IGlzTnVsbCh2KTtcbmV4cG9ydCBjb25zdCBpc0Jvb2xlYW4gPSAodjogdW5rbm93bik6IHYgaXMgYm9vbGVhbiA9PiB0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nO1xuZXhwb3J0IGNvbnN0IGlzQm9vbGVhbk9yTnVsbCA9ICh2OiB1bmtub3duKTogdiBpcyBib29sZWFuIHwgbnVsbCA9PiBpc0Jvb2xlYW4odikgfHwgaXNOdWxsKHYpO1xuZXhwb3J0IGNvbnN0IGlzTnVtYmVyID0gKHY6IHVua25vd24pOiB2IGlzIG51bWJlciA9PiB0eXBlb2YgdiA9PT0gJ251bWJlcic7XG5leHBvcnQgY29uc3QgaXNOdW1iZXJPck51bGwgPSAodjogdW5rbm93bik6IHYgaXMgbnVtYmVyIHwgbnVsbCA9PiBpc051bWJlcih2KSB8fCBpc051bGwodik7XG5leHBvcnQgY29uc3QgaXNEYXRlID0gKHY6IHVua25vd24pOiB2IGlzIERhdGUgPT4gdiBpbnN0YW5jZW9mIERhdGU7XG5leHBvcnQgY29uc3QgaXNEYXRlT3JOdWxsID0gKHY6IHVua25vd24pOiB2IGlzIERhdGUgfCBudWxsID0+IGlzRGF0ZSh2KSB8fCBpc051bGwodik7XG5leHBvcnQgY29uc3QgaXNPYmplY3QgPSAobzogdW5rbm93bik6IG8gaXMgb2JqZWN0ID0+IG8gJiYgdHlwZW9mIG8gPT09ICdvYmplY3QnO1xuZXhwb3J0IGNvbnN0IGlzT2JqZWN0T3JOdWxsID0gKG86IHVua25vd24pOiBvIGlzIG9iamVjdCA9PiBpc09iamVjdChvKSB8fCBpc051bGwobyk7XG5leHBvcnQgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG5leHBvcnQgY29uc3QgaXNBcnJheU9yTnVsbCA9IChhOiB1bmtub3duKTogYSBpcyB1bmtub3duW10gPT4gaXNBcnJheShhKSB8fCBpc051bGwoYSk7XG5cbi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24sIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmV4cG9ydCBjb25zdCBub29wID0gKC4uLl86IGFueVtdKTogdm9pZCA9PiB7fTtcbmV4cG9ydCBjb25zdCBhc3NlcnROZXZlciA9IChtZXNzYWdlOiBzdHJpbmcpOiBuZXZlciA9PiB7IHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsgfTtcblxuZXhwb3J0IGNsYXNzIERvbVV0aWxzPEUgZXh0ZW5kcyBIVE1MRWxlbWVudD4ge1xuICBwcml2YXRlIHM6IEVbXTtcbiAgY29uc3RydWN0b3Ioczogc3RyaW5nKSB7IHRoaXMucyA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzKSk7IH1cbiAgZWwobjogbnVtYmVyKTogRSB7IHJldHVybiB0aGlzLnNbbl07IH1cbiAgb24odHlwZTogc3RyaW5nLCBmbjogRXZlbnRMaXN0ZW5lciwgYnViYmxlID0gZmFsc2UpIHsgZm9yIChjb25zdCBpIG9mIHRoaXMucykgaS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGZuLCBidWJibGUpOyByZXR1cm4gdGhpczsgfVxuICBvZmYodHlwZTogc3RyaW5nLCBmbjogRXZlbnRMaXN0ZW5lciwgYnViYmxlID0gZmFsc2UpIHsgZm9yIChjb25zdCBpIG9mIHRoaXMucykgaS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGZuLCBidWJibGUpOyByZXR1cm4gdGhpczsgfVxuICBjc3Modjogc3RyaW5nKSB7IGZvciAoY29uc3QgaSBvZiB0aGlzLnMpIGkuc3R5bGUuY3NzVGV4dCA9IGkuc3R5bGUuY3NzVGV4dCArIHY7IHJldHVybiB0aGlzOyB9XG4gIGh0bWwodjogc3RyaW5nKSB7IGZvciAoY29uc3QgaSBvZiB0aGlzLnMpIGkuaW5uZXJIVE1MID0gdjsgcmV0dXJuIHRoaXM7IH1cbiAgaW5zZXJ0QmVmb3JlKHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlYmVnaW4nLCB2KTsgcmV0dXJuIHRoaXM7IH1cbiAgaW5zZXJ0QWZ0ZXIodjogc3RyaW5nKSB7IGZvciAoY29uc3QgaSBvZiB0aGlzLnMpIGkuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsIHYpOyByZXR1cm4gdGhpczsgfVxuICBpbnNlcnRGaXJzdCh2OiBzdHJpbmcpIHsgZm9yIChjb25zdCBpIG9mIHRoaXMucykgaS5pbnNlcnRBZGphY2VudEhUTUwoJ2FmdGVyYmVnaW4nLCB2KTsgcmV0dXJuIHRoaXM7IH1cbiAgaW5zZXJ0TGFzdCh2OiBzdHJpbmcpIHsgZm9yIChjb25zdCBpIG9mIHRoaXMucykgaS5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWVuZCcsIHYpOyByZXR1cm4gdGhpczsgfVxuICB0ZXh0KHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLmlubmVyVGV4dCA9IHY7IHJldHVybiB0aGlzOyB9XG4gIGFkZENsYXNzKHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLmNsYXNzTGlzdC5hZGQodik7IHJldHVybiB0aGlzOyB9XG4gIHRvZ2dsZUNsYXNzKHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLmNsYXNzTGlzdC50b2dnbGUodik7IHJldHVybiB0aGlzOyB9XG4gIHJlbW92ZUNsYXNzKHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLmNsYXNzTGlzdC5yZW1vdmUodik7IHJldHVybiB0aGlzOyB9XG4gIGVtcHR5KCkgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSB3aGlsZSAoaS5oYXNDaGlsZE5vZGVzKCkpIGkubGFzdENoaWxkICYmIGkucmVtb3ZlQ2hpbGQoaS5sYXN0Q2hpbGQpOyByZXR1cm4gdGhpczsgfVxuICBhdHRyKGE6IHN0cmluZywgdjogc3RyaW5nKSB7IGZvciAoY29uc3QgaSBvZiB0aGlzLnMpIGkuc2V0QXR0cmlidXRlKGEsIHYpOyByZXR1cm4gdGhpczsgfVxuICBnZXRBdHRyKHY6IHN0cmluZykgeyByZXR1cm4gdGhpcy5zWzBdLmdldEF0dHJpYnV0ZSh2KTsgfVxuICByZW1vdmVBdHRyKHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLnJlbW92ZUF0dHJpYnV0ZSh2KTsgcmV0dXJuIHRoaXM7IH1cbiAgcGFyZW50KCkgeyByZXR1cm4gdGhpcy5zWzBdLnBhcmVudE5vZGU7IH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2UgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbkFycmF5IGV4dGVuZHMgQXJyYXk8c3RyaW5nfG51bWJlcnxib29sZWFufG51bGx8RGF0ZXxKc29ufEpzb25BcnJheT4ge31cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbiB7IFt4OiBzdHJpbmddOiBzdHJpbmd8bnVtYmVyfGJvb2xlYW58bnVsbHxEYXRlfEpzb258SnNvbkFycmF5IH1cblxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTA1MDM0L2NyZWF0ZS1ndWlkLXV1aWQtaW4tamF2YXNjcmlwdFxuY29uc3QgcmFuZCA9IHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnID8gd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMuYmluZCh3aW5kb3cuY3J5cHRvKSA6IHJlcXVpcmUoJ2NyeXB0bycpLnJhbmRvbUZpbGxTeW5jO1xuZXhwb3J0IGNvbnN0IHV1aWQgPSAoKSA9PiAoJycgKyAxZTcgKyAtMWUzICsgLTRlMyArIC04ZTMgKyAtMWUxMSkucmVwbGFjZSgvWzAxOF0vZywgYyA9PiAoK2MgXiByYW5kKG5ldyBVaW50OEFycmF5KDEpKVswXSAmIDE1ID4+ICtjIC8gNCkudG9TdHJpbmcoMTYpKTtcblxuZXhwb3J0IGNvbnN0ICQgPSA8RSBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+KHM6IHN0cmluZykgPT4gbmV3IERvbVV0aWxzPEU+KHMpO1xuZXhwb3J0IGNvbnN0IEdFVCA9IDxPPih1cmw6IHN0cmluZywgaGVhZGVycyA9IHt9KTogUHJvbWlzZTxPPiA9PiB3aW5kb3cuZmV0Y2godXJsLCB7IG1ldGhvZDogJ0dFVCcsIGhlYWRlcnMgfSkudGhlbihhc3luYyhyZXMpID0+ICgoYXdhaXQgcmVzLmpzb24oKSkgYXMgTykpO1xuZXhwb3J0IGNvbnN0IFBPU1QgPSAodXJsOiBzdHJpbmcsIGRhdGE6IEpzb24gPSB7fSwgaGVhZGVycyA9IHt9KTogUHJvbWlzZTxSZXNwb25zZT4gPT4gd2luZG93LmZldGNoKHVybCwge1xuICBtZXRob2Q6ICdQT1NUJyxcbiAgaGVhZGVyczogeyBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyonLCAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAuLi5oZWFkZXJzIH0sXG4gIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxufSk7XG5cbi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5leHBvcnQgY29uc3QgZGVib3VuY2UgPSA8RiBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IGFueT4oZnVuYzogRiwgdGltZW91dDogbnVtYmVyKSA9PiB7XG4gIGxldCByZWY6IE5vZGVKUy5UaW1lb3V0O1xuICBsZXQgcHJvbWlzZTogUHJvbWlzZTxSZXR1cm5UeXBlPEY+PiB8IHVuZGVmaW5lZDtcbiAgbGV0IGZpbmlzaDogKHZhbDogUmV0dXJuVHlwZTxGPikgPT4gdm9pZDtcbiAgcmV0dXJuIGZ1bmN0aW9uKHRoaXM6IFRoaXNQYXJhbWV0ZXJUeXBlPEY+LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUHJvbWlzZTxSZXR1cm5UeXBlPEY+PiB7XG4gICAgcHJvbWlzZSA9IHByb21pc2UgfHwgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IGZpbmlzaCA9IHJlc29sdmUpO1xuICAgIGNsZWFyVGltZW91dChyZWYpO1xuICAgIHJlZiA9IHNldFRpbWVvdXQoKCkgPT4gKHByb21pc2UgPSB1bmRlZmluZWQpIHx8IGZpbmlzaChmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpKSwgdGltZW91dCk7XG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYWJick51bSA9IGZ1bmN0aW9uKG51bTogbnVtYmVyLCBmaXhlZD86IG51bWJlcikge1xuICBpZiAobnVtID09PSBudWxsKSB7IHJldHVybiBudWxsOyB9IC8vIHRlcm1pbmF0ZSBlYXJseVxuICBpZiAobnVtID09PSAwKSB7IHJldHVybiAnMCc7IH0gLy8gdGVybWluYXRlIGVhcmx5XG4gIGZpeGVkID0gKCFmaXhlZCB8fCBmaXhlZCA8IDApID8gMCA6IGZpeGVkOyAvLyBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdG8gc2hvd1xuICBjb25zdCBiID0gKG51bSkudG9QcmVjaXNpb24oMikuc3BsaXQoJ2UnKTsgLy8gZ2V0IHBvd2VyXG4gIGNvbnN0IGsgPSBiLmxlbmd0aCA9PT0gMSA/IDAgOiBNYXRoLmZsb29yKE1hdGgubWluKCtiWzFdLnNsaWNlKDEpLCAxNCkgLyAzKTsgLy8gZmxvb3IgYXQgZGVjaW1hbHMsIGNlaWxpbmcgYXQgdHJpbGxpb25zXG4gIGNvbnN0IGMgPSBrIDwgMSA/IG51bS50b0ZpeGVkKDAgKyBmaXhlZCkgOiAobnVtIC8gTWF0aC5wb3coMTAsIGsgKiAzKSkudG9GaXhlZCgxICsgZml4ZWQpOyAvLyBkaXZpZGUgYnkgcG93ZXJcbiAgY29uc3QgZCA9ICtjIDwgMCA/IGMgOiBNYXRoLmFicygrYyk7IC8vIGVuZm9yY2UgLTAgaXMgMFxuICBjb25zdCBlID0gZCArIFsgJycsICdLJywgJ00nLCAnQicsICdUJyBdW2tdOyAvLyBhcHBlbmQgcG93ZXJcbiAgcmV0dXJuIGU7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hhMjU2RGlnZXN0KG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IG1zZ1VpbnQ4ID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKG1lc3NhZ2UpOyAvLyBlbmNvZGUgYXMgKHV0Zi04KSBVaW50OEFycmF5XG4gIGNvbnN0IGhhc2hCdWZmZXIgPSBhd2FpdCB3aW5kb3cuY3J5cHRvLnN1YnRsZS5kaWdlc3QoJ1NIQS0yNTYnLCBtc2dVaW50OCk7IC8vIGhhc2ggdGhlIG1lc3NhZ2VcbiAgY29uc3QgaGFzaEFycmF5ID0gQXJyYXkuZnJvbShuZXcgVWludDhBcnJheShoYXNoQnVmZmVyKSk7IC8vIGNvbnZlcnQgYnVmZmVyIHRvIGJ5dGUgYXJyYXlcbiAgY29uc3QgaGFzaEhleCA9IGhhc2hBcnJheS5tYXAoYiA9PiBiLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpKS5qb2luKCcnKTsgLy8gY29udmVydCBieXRlcyB0byBoZXggc3RyaW5nXG4gIHJldHVybiBoYXNoSGV4O1xufVxuXG4vLyBSZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS8zMC1zZWNvbmRzLzMwLXNlY29uZHMtb2YtY29kZVxuY29uc3QgU1RSX1NQTElUX1JFRyA9IC9bQS1aXXsyLH0oPz1bQS1aXVthLXpdK1swLTldKnxcXGIpfFtBLVpdP1thLXpdK1swLTldKnxbQS1aXXxbMC05XSsvZztcbmV4cG9ydCBjb25zdCB0b1NuYWtlQ2FzZSA9IChzdHI6IHN0cmluZykgPT4gKHN0ci5tYXRjaChTVFJfU1BMSVRfUkVHKSB8fCBbXSkubWFwKHggPT4geC50b0xvd2VyQ2FzZSgpKS5qb2luKCdfJyk7XG5leHBvcnQgY29uc3QgdG9LZWJhYkNhc2UgPSAoc3RyOiBzdHJpbmcpID0+IChzdHIubWF0Y2goU1RSX1NQTElUX1JFRykgfHwgW10pLm1hcCh4ID0+IHgudG9Mb3dlckNhc2UoKSkuam9pbignLScpO1xuZXhwb3J0IGNvbnN0IHRvVGl0bGVDYXNlID0gKHN0cjogc3RyaW5nKSA9PiAoc3RyLm1hdGNoKFNUUl9TUExJVF9SRUcpIHx8IFtdKS5tYXAoeCA9PiB4LnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB4LnNsaWNlKDEpKS5qb2luKCcgJyk7XG5leHBvcnQgY29uc3QgdG9QYXNjYWxDYXNlID0gKHN0cjogc3RyaW5nKSA9PiAoc3RyLm1hdGNoKFNUUl9TUExJVF9SRUcpIHx8IFtdKS5tYXAoeCA9PiB4LnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB4LnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkpLmpvaW4oJycpO1xuZXhwb3J0IGNvbnN0IHRvQ2FtZWxDYXNlID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHMgPSAoc3RyLm1hdGNoKFNUUl9TUExJVF9SRUcpIHx8IFtdKS5tYXAoeCA9PiB4LnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB4LnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkpLmpvaW4oJycpO1xuICByZXR1cm4gcy5zbGljZSgwLCAxKS50b0xvd2VyQ2FzZSgpICsgcy5zbGljZSgxKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpZFRvSHVlKGlucHV0OiBzdHJpbmcsIHNoaWZ0ID0gMCkge1xuICBsZXQgb3V0ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7IGkrKykgeyBvdXQgKz0gaW5wdXRbaV0uY2hhckNvZGVBdCgwKTsgfVxuICByZXR1cm4gKG91dCArIHNoaWZ0KSAlIDI1NTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1heERhdGUoLi4uZGF0ZXM6IChEYXRlIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZClbXSkge1xuICByZXR1cm4gbmV3IERhdGUoTWF0aC5tYXgoLi4uZGF0ZXMubWFwKGQgPT4gKyhkIHx8IDApKSkpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGluZUNvdW50KGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICBsZXQgbGluZUNvdW50ID0gMDtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPG51bWJlcj4oKHJlc29sdmUpID0+IHtcbiAgICBmcy5jcmVhdGVSZWFkU3RyZWFtKGZpbGVQYXRoKVxuICAgICAgLm9uKCdkYXRhJywgZnVuY3Rpb24oY2h1bmspIHtcbiAgICAgICAgbGV0IGlkeCA9IC0xO1xuICAgICAgICBsaW5lQ291bnQtLTsgLy8gQmVjYXVzZSB0aGUgbG9vcCB3aWxsIHJ1biBvbmNlIGZvciBpZHg9LTFcbiAgICAgICAgZG8ge1xuICAgICAgICAgIGlkeCA9IGNodW5rLmluZGV4T2YoU3RyaW5nLmZyb21DaGFyQ29kZSgxMCksIGlkeCArIDEpO1xuICAgICAgICAgIGxpbmVDb3VudCsrO1xuICAgICAgICB9IHdoaWxlIChpZHggIT09IC0xKTtcbiAgICAgIH0pXG4gICAgICAub24oJ2VuZCcsIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXNvbHZlKGxpbmVDb3VudCk7XG4gICAgICB9KTtcbiAgfSk7XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQWEsUUFBQSxNQUFNLEdBQUcsQ0FBQyxDQUFVLEVBQWEsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUM7QUFDL0MsUUFBQSxRQUFRLEdBQUcsQ0FBQyxDQUFVLEVBQWUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztBQUM5RCxRQUFBLGNBQWMsR0FBRyxDQUFDLENBQVUsRUFBc0IsRUFBRSxDQUFDLGdCQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlFLFFBQUEsU0FBUyxHQUFHLENBQUMsQ0FBVSxFQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDO0FBQ2pFLFFBQUEsZUFBZSxHQUFHLENBQUMsQ0FBVSxFQUF1QixFQUFFLENBQUMsaUJBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxjQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakYsUUFBQSxRQUFRLEdBQUcsQ0FBQyxDQUFVLEVBQWUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztBQUM5RCxRQUFBLGNBQWMsR0FBRyxDQUFDLENBQVUsRUFBc0IsRUFBRSxDQUFDLGdCQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlFLFFBQUEsTUFBTSxHQUFHLENBQUMsQ0FBVSxFQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDO0FBQ3RELFFBQUEsWUFBWSxHQUFHLENBQUMsQ0FBVSxFQUFvQixFQUFFLENBQUMsY0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RSxRQUFBLFFBQVEsR0FBRyxDQUFDLENBQVUsRUFBZSxFQUFFLENBQUMsQ0FB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Q0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLE9BQU8sQ0FBQyxDQUFTLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsVUFBVSxDQUFDLENBQVMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRixNQUFNLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Q0FDMUM7QUFyQkQsNEJBcUJDO0FBTUQsNEVBQTRFO0FBQzVFLE1BQU0sSUFBSSxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQztBQUNsSCxRQUFBLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFM0ksUUFBQSxDQUFDLEdBQUcsQ0FBc0MsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBSSxDQUFDLENBQUMsQ0FBQztBQUMzRSxRQUFBLEdBQUcsR0FBRyxDQUFJLEdBQVcsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBTSxHQUFHLEVBQUUsRUFBRSxrREFBQyxPQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQU8sQ0FBQSxHQUFBLENBQUMsQ0FBQztBQUNoSixRQUFBLElBQUksR0FBRyxDQUFDLEdBQVcsRUFBRSxPQUFhLEVBQUUsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7SUFDdkcsTUFBTSxFQUFFLE1BQU07SUFDZCxPQUFPLGtCQUFJLE1BQU0sRUFBRSxtQ0FBbUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLElBQUssT0FBTyxDQUFFO0lBQ3hHLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztDQUMzQixDQUFDLENBQUM7QUFFSCxpRUFBaUU7QUFDcEQsUUFBQSxRQUFRLEdBQUcsQ0FBa0MsSUFBTyxFQUFFLE9BQWUsRUFBRSxFQUFFO0lBQ3BGLElBQUksR0FBbUIsQ0FBQztJQUN4QixJQUFJLE9BQTJDLENBQUM7SUFDaEQsSUFBSSxNQUFvQyxDQUFDO0lBQ3pDLE9BQU8sVUFBcUMsR0FBRyxJQUFtQjtRQUNoRSxPQUFPLEdBQUcsT0FBTyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDaEUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekYsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRVcsUUFBQSxPQUFPLEdBQUcsVUFBUyxHQUFXLEVBQUUsS0FBYztJQUN6RCxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQztLQUFFLENBQUMsa0JBQWtCO0lBQ3JELElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtRQUFFLE9BQU8sR0FBRyxDQUFDO0tBQUUsQ0FBQyxrQkFBa0I7SUFDakQsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLG1DQUFtQztJQUM5RSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZO0lBQ3ZELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQ0FBMEM7SUFDdkgsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxrQkFBa0I7SUFDN0csTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtJQUN2RCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlO0lBQzVELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQyxDQUFDO0FBRUYsU0FBc0IsWUFBWSxDQUFDLE9BQWU7O1FBQ2hELE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsK0JBQStCO1FBQ25GLE1BQU0sVUFBVSxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtRQUM5RixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBK0I7UUFDekYsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtRQUM1RyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQUE7QUFORCxvQ0FNQztBQUVELHdEQUF3RDtBQUN4RCxNQUFNLGFBQWEsR0FBRyxvRUFBb0UsQ0FBQztBQUM5RSxRQUFBLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwRyxRQUFBLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwRyxRQUFBLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0gsUUFBQSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzNJLFFBQUEsV0FBVyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckgsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQztBQUVGLFNBQWdCLE9BQU8sQ0FBQyxLQUFhLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDOUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ1osS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFBRSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUFFO0lBQ3pFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzdCLENBQUM7QUFKRCwwQkFJQztBQUVELFNBQWdCLE9BQU8sQ0FBQyxHQUFHLEtBQTJDO0lBQ3BFLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFGRCwwQkFFQztBQUVELFNBQXNCLFNBQVMsQ0FBQyxRQUFnQjs7UUFDOUMsOEJBQThCO1FBQzlCLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7aUJBQzFCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBUyxLQUFhO2dCQUNoQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDYixTQUFTLEVBQUUsQ0FBQyxDQUFDLDRDQUE0QztnQkFDekQsR0FBRztvQkFDRCxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDdEQsU0FBUyxFQUFFLENBQUM7aUJBQ2IsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDdkIsQ0FBQyxDQUFDO2lCQUNELEVBQUUsQ0FBQyxLQUFLLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQUE7QUFsQkQsOEJBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzTnVsbCA9ICh2OiB1bmtub3duKTogdiBpcyBudWxsID0+IHYgPT09IG51bGw7XG5leHBvcnQgY29uc3QgaXNTdHJpbmcgPSAodjogdW5rbm93bik6IHYgaXMgc3RyaW5nID0+IHR5cGVvZiB2ID09PSAnc3RyaW5nJztcbmV4cG9ydCBjb25zdCBpc1N0cmluZ09yTnVsbCA9ICh2OiB1bmtub3duKTogdiBpcyBzdHJpbmcgfCBudWxsID0+IGlzU3RyaW5nKHYpIHx8IGlzTnVsbCh2KTtcbmV4cG9ydCBjb25zdCBpc0Jvb2xlYW4gPSAodjogdW5rbm93bik6IHYgaXMgYm9vbGVhbiA9PiB0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nO1xuZXhwb3J0IGNvbnN0IGlzQm9vbGVhbk9yTnVsbCA9ICh2OiB1bmtub3duKTogdiBpcyBib29sZWFuIHwgbnVsbCA9PiBpc0Jvb2xlYW4odikgfHwgaXNOdWxsKHYpO1xuZXhwb3J0IGNvbnN0IGlzTnVtYmVyID0gKHY6IHVua25vd24pOiB2IGlzIG51bWJlciA9PiB0eXBlb2YgdiA9PT0gJ251bWJlcic7XG5leHBvcnQgY29uc3QgaXNOdW1iZXJPck51bGwgPSAodjogdW5rbm93bik6IHYgaXMgbnVtYmVyIHwgbnVsbCA9PiBpc051bWJlcih2KSB8fCBpc051bGwodik7XG5leHBvcnQgY29uc3QgaXNEYXRlID0gKHY6IHVua25vd24pOiB2IGlzIERhdGUgPT4gdiBpbnN0YW5jZW9mIERhdGU7XG5leHBvcnQgY29uc3QgaXNEYXRlT3JOdWxsID0gKHY6IHVua25vd24pOiB2IGlzIERhdGUgfCBudWxsID0+IGlzRGF0ZSh2KSB8fCBpc051bGwodik7XG5leHBvcnQgY29uc3QgaXNPYmplY3QgPSAobzogdW5rbm93bik6IG8gaXMgb2JqZWN0ID0+IG8gJiYgdHlwZW9mIG8gPT09ICdvYmplY3QnO1xuZXhwb3J0IGNvbnN0IGlzT2JqZWN0T3JOdWxsID0gKG86IHVua25vd24pOiBvIGlzIG9iamVjdCA9PiBpc09iamVjdChvKSB8fCBpc051bGwobyk7XG5leHBvcnQgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG5leHBvcnQgY29uc3QgaXNBcnJheU9yTnVsbCA9IChhOiB1bmtub3duKTogYSBpcyB1bmtub3duW10gPT4gaXNBcnJheShhKSB8fCBpc051bGwoYSk7XG5cbi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24sIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmV4cG9ydCBjb25zdCBub29wID0gKC4uLl86IGFueVtdKTogdm9pZCA9PiB7fTtcbmV4cG9ydCBjb25zdCBhc3NlcnROZXZlciA9IChtZXNzYWdlOiBzdHJpbmcpOiBuZXZlciA9PiB7IHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsgfTtcblxuZXhwb3J0IGNsYXNzIERvbVV0aWxzPEUgZXh0ZW5kcyBIVE1MRWxlbWVudD4ge1xuICBwcml2YXRlIHM6IEVbXTtcbiAgY29uc3RydWN0b3Ioczogc3RyaW5nKSB7IHRoaXMucyA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzKSk7IH1cbiAgZWwobjogbnVtYmVyKTogRSB7IHJldHVybiB0aGlzLnNbbl07IH1cbiAgb24odHlwZTogc3RyaW5nLCBmbjogRXZlbnRMaXN0ZW5lciwgYnViYmxlID0gZmFsc2UpIHsgZm9yIChjb25zdCBpIG9mIHRoaXMucykgaS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGZuLCBidWJibGUpOyByZXR1cm4gdGhpczsgfVxuICBvZmYodHlwZTogc3RyaW5nLCBmbjogRXZlbnRMaXN0ZW5lciwgYnViYmxlID0gZmFsc2UpIHsgZm9yIChjb25zdCBpIG9mIHRoaXMucykgaS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGZuLCBidWJibGUpOyByZXR1cm4gdGhpczsgfVxuICBjc3Modjogc3RyaW5nKSB7IGZvciAoY29uc3QgaSBvZiB0aGlzLnMpIGkuc3R5bGUuY3NzVGV4dCA9IGkuc3R5bGUuY3NzVGV4dCArIHY7IHJldHVybiB0aGlzOyB9XG4gIGh0bWwodjogc3RyaW5nKSB7IGZvciAoY29uc3QgaSBvZiB0aGlzLnMpIGkuaW5uZXJIVE1MID0gdjsgcmV0dXJuIHRoaXM7IH1cbiAgaW5zZXJ0QmVmb3JlKHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlYmVnaW4nLCB2KTsgcmV0dXJuIHRoaXM7IH1cbiAgaW5zZXJ0QWZ0ZXIodjogc3RyaW5nKSB7IGZvciAoY29uc3QgaSBvZiB0aGlzLnMpIGkuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsIHYpOyByZXR1cm4gdGhpczsgfVxuICBpbnNlcnRGaXJzdCh2OiBzdHJpbmcpIHsgZm9yIChjb25zdCBpIG9mIHRoaXMucykgaS5pbnNlcnRBZGphY2VudEhUTUwoJ2FmdGVyYmVnaW4nLCB2KTsgcmV0dXJuIHRoaXM7IH1cbiAgaW5zZXJ0TGFzdCh2OiBzdHJpbmcpIHsgZm9yIChjb25zdCBpIG9mIHRoaXMucykgaS5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZWVuZCcsIHYpOyByZXR1cm4gdGhpczsgfVxuICB0ZXh0KHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLmlubmVyVGV4dCA9IHY7IHJldHVybiB0aGlzOyB9XG4gIGFkZENsYXNzKHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLmNsYXNzTGlzdC5hZGQodik7IHJldHVybiB0aGlzOyB9XG4gIHRvZ2dsZUNsYXNzKHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLmNsYXNzTGlzdC50b2dnbGUodik7IHJldHVybiB0aGlzOyB9XG4gIHJlbW92ZUNsYXNzKHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLmNsYXNzTGlzdC5yZW1vdmUodik7IHJldHVybiB0aGlzOyB9XG4gIGVtcHR5KCkgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSB3aGlsZSAoaS5oYXNDaGlsZE5vZGVzKCkpIGkubGFzdENoaWxkICYmIGkucmVtb3ZlQ2hpbGQoaS5sYXN0Q2hpbGQpOyByZXR1cm4gdGhpczsgfVxuICBhdHRyKGE6IHN0cmluZywgdjogc3RyaW5nKSB7IGZvciAoY29uc3QgaSBvZiB0aGlzLnMpIGkuc2V0QXR0cmlidXRlKGEsIHYpOyByZXR1cm4gdGhpczsgfVxuICBnZXRBdHRyKHY6IHN0cmluZykgeyByZXR1cm4gdGhpcy5zWzBdLmdldEF0dHJpYnV0ZSh2KTsgfVxuICByZW1vdmVBdHRyKHY6IHN0cmluZykgeyBmb3IgKGNvbnN0IGkgb2YgdGhpcy5zKSBpLnJlbW92ZUF0dHJpYnV0ZSh2KTsgcmV0dXJuIHRoaXM7IH1cbiAgcGFyZW50KCkgeyByZXR1cm4gdGhpcy5zWzBdLnBhcmVudE5vZGU7IH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2UgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbkFycmF5IGV4dGVuZHMgQXJyYXk8c3RyaW5nfG51bWJlcnxib29sZWFufG51bGx8RGF0ZXxKc29ufEpzb25BcnJheT4ge31cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbiB7IFt4OiBzdHJpbmddOiBzdHJpbmd8bnVtYmVyfGJvb2xlYW58bnVsbHxEYXRlfEpzb258SnNvbkFycmF5IH1cblxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTA1MDM0L2NyZWF0ZS1ndWlkLXV1aWQtaW4tamF2YXNjcmlwdFxuY29uc3QgcmFuZCA9IHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnID8gd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMuYmluZCh3aW5kb3cuY3J5cHRvKSA6IHJlcXVpcmUoJ2NyeXB0bycpLnJhbmRvbUZpbGxTeW5jO1xuZXhwb3J0IGNvbnN0IHV1aWQgPSAoKSA9PiAoJycgKyAxZTcgKyAtMWUzICsgLTRlMyArIC04ZTMgKyAtMWUxMSkucmVwbGFjZSgvWzAxOF0vZywgYyA9PiAoK2MgXiByYW5kKG5ldyBVaW50OEFycmF5KDEpKVswXSAmIDE1ID4+ICtjIC8gNCkudG9TdHJpbmcoMTYpKTtcblxuZXhwb3J0IGNvbnN0ICQgPSA8RSBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+KHM6IHN0cmluZykgPT4gbmV3IERvbVV0aWxzPEU+KHMpO1xuZXhwb3J0IGNvbnN0IEdFVCA9IDxPPih1cmw6IHN0cmluZywgaGVhZGVycyA9IHt9KTogUHJvbWlzZTxPPiA9PiB3aW5kb3cuZmV0Y2godXJsLCB7IG1ldGhvZDogJ0dFVCcsIGhlYWRlcnMgfSkudGhlbihhc3luYyhyZXMpID0+ICgoYXdhaXQgcmVzLmpzb24oKSkgYXMgTykpO1xuZXhwb3J0IGNvbnN0IFBPU1QgPSAodXJsOiBzdHJpbmcsIGRhdGE6IEpzb24gPSB7fSwgaGVhZGVycyA9IHt9KTogUHJvbWlzZTxSZXNwb25zZT4gPT4gd2luZG93LmZldGNoKHVybCwge1xuICBtZXRob2Q6ICdQT1NUJyxcbiAgaGVhZGVyczogeyBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyonLCAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAuLi5oZWFkZXJzIH0sXG4gIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxufSk7XG5cbi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5leHBvcnQgY29uc3QgZGVib3VuY2UgPSA8RiBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IGFueT4oZnVuYzogRiwgdGltZW91dDogbnVtYmVyKSA9PiB7XG4gIGxldCByZWY6IE5vZGVKUy5UaW1lb3V0O1xuICBsZXQgcHJvbWlzZTogUHJvbWlzZTxSZXR1cm5UeXBlPEY+PiB8IHVuZGVmaW5lZDtcbiAgbGV0IGZpbmlzaDogKHZhbDogUmV0dXJuVHlwZTxGPikgPT4gdm9pZDtcbiAgcmV0dXJuIGZ1bmN0aW9uKHRoaXM6IFRoaXNQYXJhbWV0ZXJUeXBlPEY+LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUHJvbWlzZTxSZXR1cm5UeXBlPEY+PiB7XG4gICAgcHJvbWlzZSA9IHByb21pc2UgfHwgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IGZpbmlzaCA9IHJlc29sdmUpO1xuICAgIGNsZWFyVGltZW91dChyZWYpO1xuICAgIHJlZiA9IHNldFRpbWVvdXQoKCkgPT4gKHByb21pc2UgPSB1bmRlZmluZWQpIHx8IGZpbmlzaChmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpKSwgdGltZW91dCk7XG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYWJick51bSA9IGZ1bmN0aW9uKG51bTogbnVtYmVyLCBmaXhlZD86IG51bWJlcikge1xuICBpZiAobnVtID09PSBudWxsKSB7IHJldHVybiBudWxsOyB9IC8vIHRlcm1pbmF0ZSBlYXJseVxuICBpZiAobnVtID09PSAwKSB7IHJldHVybiAnMCc7IH0gLy8gdGVybWluYXRlIGVhcmx5XG4gIGZpeGVkID0gKCFmaXhlZCB8fCBmaXhlZCA8IDApID8gMCA6IGZpeGVkOyAvLyBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdG8gc2hvd1xuICBjb25zdCBiID0gKG51bSkudG9QcmVjaXNpb24oMikuc3BsaXQoJ2UnKTsgLy8gZ2V0IHBvd2VyXG4gIGNvbnN0IGsgPSBiLmxlbmd0aCA9PT0gMSA/IDAgOiBNYXRoLmZsb29yKE1hdGgubWluKCtiWzFdLnNsaWNlKDEpLCAxNCkgLyAzKTsgLy8gZmxvb3IgYXQgZGVjaW1hbHMsIGNlaWxpbmcgYXQgdHJpbGxpb25zXG4gIGNvbnN0IGMgPSBrIDwgMSA/IG51bS50b0ZpeGVkKDAgKyBmaXhlZCkgOiAobnVtIC8gTWF0aC5wb3coMTAsIGsgKiAzKSkudG9GaXhlZCgxICsgZml4ZWQpOyAvLyBkaXZpZGUgYnkgcG93ZXJcbiAgY29uc3QgZCA9ICtjIDwgMCA/IGMgOiBNYXRoLmFicygrYyk7IC8vIGVuZm9yY2UgLTAgaXMgMFxuICBjb25zdCBlID0gZCArIFsgJycsICdLJywgJ00nLCAnQicsICdUJyBdW2tdOyAvLyBhcHBlbmQgcG93ZXJcbiAgcmV0dXJuIGU7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hhMjU2RGlnZXN0KG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IG1zZ1VpbnQ4ID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKG1lc3NhZ2UpOyAvLyBlbmNvZGUgYXMgKHV0Zi04KSBVaW50OEFycmF5XG4gIGNvbnN0IGhhc2hCdWZmZXIgPSBhd2FpdCB3aW5kb3cuY3J5cHRvLnN1YnRsZS5kaWdlc3QoJ1NIQS0yNTYnLCBtc2dVaW50OCk7IC8vIGhhc2ggdGhlIG1lc3NhZ2VcbiAgY29uc3QgaGFzaEFycmF5ID0gQXJyYXkuZnJvbShuZXcgVWludDhBcnJheShoYXNoQnVmZmVyKSk7IC8vIGNvbnZlcnQgYnVmZmVyIHRvIGJ5dGUgYXJyYXlcbiAgY29uc3QgaGFzaEhleCA9IGhhc2hBcnJheS5tYXAoYiA9PiBiLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpKS5qb2luKCcnKTsgLy8gY29udmVydCBieXRlcyB0byBoZXggc3RyaW5nXG4gIHJldHVybiBoYXNoSGV4O1xufVxuXG4vLyBSZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS8zMC1zZWNvbmRzLzMwLXNlY29uZHMtb2YtY29kZVxuY29uc3QgU1RSX1NQTElUX1JFRyA9IC9bQS1aXXsyLH0oPz1bQS1aXVthLXpdK1swLTldKnxcXGIpfFtBLVpdP1thLXpdK1swLTldKnxbQS1aXXxbMC05XSsvZztcbmV4cG9ydCBjb25zdCB0b1NuYWtlQ2FzZSA9IChzdHI6IHN0cmluZykgPT4gKHN0ci5tYXRjaChTVFJfU1BMSVRfUkVHKSB8fCBbXSkubWFwKHggPT4geC50b0xvd2VyQ2FzZSgpKS5qb2luKCdfJyk7XG5leHBvcnQgY29uc3QgdG9LZWJhYkNhc2UgPSAoc3RyOiBzdHJpbmcpID0+IChzdHIubWF0Y2goU1RSX1NQTElUX1JFRykgfHwgW10pLm1hcCh4ID0+IHgudG9Mb3dlckNhc2UoKSkuam9pbignLScpO1xuZXhwb3J0IGNvbnN0IHRvVGl0bGVDYXNlID0gKHN0cjogc3RyaW5nKSA9PiAoc3RyLm1hdGNoKFNUUl9TUExJVF9SRUcpIHx8IFtdKS5tYXAoeCA9PiB4LnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB4LnNsaWNlKDEpKS5qb2luKCcgJyk7XG5leHBvcnQgY29uc3QgdG9QYXNjYWxDYXNlID0gKHN0cjogc3RyaW5nKSA9PiAoc3RyLm1hdGNoKFNUUl9TUExJVF9SRUcpIHx8IFtdKS5tYXAoeCA9PiB4LnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB4LnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkpLmpvaW4oJycpO1xuZXhwb3J0IGNvbnN0IHRvQ2FtZWxDYXNlID0gKHN0cjogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHMgPSAoc3RyLm1hdGNoKFNUUl9TUExJVF9SRUcpIHx8IFtdKS5tYXAoeCA9PiB4LnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB4LnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkpLmpvaW4oJycpO1xuICByZXR1cm4gcy5zbGljZSgwLCAxKS50b0xvd2VyQ2FzZSgpICsgcy5zbGljZSgxKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpZFRvSHVlKGlucHV0OiBzdHJpbmcsIHNoaWZ0ID0gMCkge1xuICBsZXQgb3V0ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7IGkrKykgeyBvdXQgKz0gaW5wdXRbaV0uY2hhckNvZGVBdCgwKTsgfVxuICByZXR1cm4gKG91dCArIHNoaWZ0KSAlIDI1NTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1heERhdGUoLi4uZGF0ZXM6IChEYXRlIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZClbXSkge1xuICByZXR1cm4gbmV3IERhdGUoTWF0aC5tYXgoLi4uZGF0ZXMubWFwKGQgPT4gKyhkIHx8IDApKSkpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGluZUNvdW50KGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xuICBsZXQgbGluZUNvdW50ID0gMDtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPG51bWJlcj4oKHJlc29sdmUpID0+IHtcbiAgICBmcy5jcmVhdGVSZWFkU3RyZWFtKGZpbGVQYXRoKVxuICAgICAgLm9uKCdkYXRhJywgZnVuY3Rpb24oY2h1bms6IHN0cmluZykge1xuICAgICAgICBsZXQgaWR4ID0gLTE7XG4gICAgICAgIGxpbmVDb3VudC0tOyAvLyBCZWNhdXNlIHRoZSBsb29wIHdpbGwgcnVuIG9uY2UgZm9yIGlkeD0tMVxuICAgICAgICBkbyB7XG4gICAgICAgICAgaWR4ID0gY2h1bmsuaW5kZXhPZihTdHJpbmcuZnJvbUNoYXJDb2RlKDEwKSwgaWR4ICsgMSk7XG4gICAgICAgICAgbGluZUNvdW50Kys7XG4gICAgICAgIH0gd2hpbGUgKGlkeCAhPT0gLTEpO1xuICAgICAgfSlcbiAgICAgIC5vbignZW5kJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlc29sdmUobGluZUNvdW50KTtcbiAgICAgIH0pO1xuICB9KTtcbn1cbiJdfQ== |
{ | ||
"name": "@universe/util", | ||
"version": "0.0.1", | ||
"version": "0.1.0", | ||
"main": "dist/src/index.js", | ||
@@ -5,0 +5,0 @@ "description": "Universe development utilities.", |
@@ -1,3 +0,1 @@ | ||
import * as fs from 'fs'; | ||
export const isNull = (v: unknown): v is null => v === null; | ||
@@ -115,6 +113,8 @@ export const isString = (v: unknown): v is string => typeof v === 'string'; | ||
export async function lineCount(filePath: string): Promise<number> { | ||
/* eslint-disable-next-line */ | ||
const fs = require('fs'); | ||
let lineCount = 0; | ||
return new Promise<number>((resolve) => { | ||
fs.createReadStream(filePath) | ||
.on('data', function(chunk) { | ||
.on('data', function(chunk: string) { | ||
let idx = -1; | ||
@@ -121,0 +121,0 @@ lineCount--; // Because the loop will run once for idx=-1 |
Sorry, the diff of this file is not supported yet
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
147444
417