ms-data-grid 0.0.151 → 0.0.152
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.
|
@@ -250,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
250
250
|
providedIn: 'root'
|
|
251
251
|
}]
|
|
252
252
|
}], ctorParameters: function () { return []; } });
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1zZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb3B5LXNlcnZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCO1FBaUpGLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDckIsa0JBQWEsR0FBUyxFQUFFLENBQUE7SUFsSlIsQ0FBQztJQUNqQixzQkFBc0IsQ0FDcEIsT0FBYyxFQUNkLE9BQWMsRUFDZCxrQkFBK0IsRUFDL0IsYUFBb0IsRUFDcEIsY0FBK0M7UUFFL0MsbURBQW1EO1FBQ25ELE1BQU0sVUFBVSxHQUFZLEVBQUUsQ0FBQztRQUMvQixNQUFNLHFCQUFxQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FDL0MsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUN4RCxJQUFJLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDckQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLEtBQUssTUFBTSxNQUFNLElBQUksYUFBYSxFQUFFO2dCQUNsQyxNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLEdBQUc7b0JBQUUsU0FBUztnQkFDbkIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQVUsRUFBRTtvQkFDN0MsTUFBTSxNQUFN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LFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNqRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDOytHQXpSVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb3B5U2VydmljZVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG4gIGdldFNlbGVjdGVkRGF0YUZvckNvcHkoXG4gICAgZGF0YVNldDogYW55W10sXG4gICAgY29sdW1uczogYW55W10sXG4gICAgcm93U2VsZWN0ZWRJbmRleGVzOiBTZXQ8bnVtYmVyPixcbiAgICBzZWxlY3RlZENlbGxzOiBhbnlbXSxcbiAgICBnZXROZXN0ZWRWYWx1ZTogKG9iajogYW55LCBwYXRoOiBzdHJpbmcpID0+IGFueVxuICApOiBhbnlbXVtdIHtcbiAgICAvLyBjb2x1bW5zID0gY29sdW1ucy5maWx0ZXIoY29sID0+IGNvbC5pc192aXNpYmxlKTtcbiAgICBjb25zdCBjb3BpZWRSb3dzOiBhbnlbXVtdID0gW107XG4gICAgY29uc3QgZmluZFJvd0J5VmlydHVhbEluZGV4ID0gKHZJbmRleDogbnVtYmVyKSA9PlxuICAgICAgZGF0YVNldC5maW5kKChyOiBhbnkpID0+IHIuX192aXJ0dWFsSW5kZXggPT09IHZJbmRleCk7XG4gICAgaWYgKHJvd1NlbGVjdGVkSW5kZXhlcyAmJiByb3dTZWxlY3RlZEluZGV4ZXMuc2l6ZSA+IDApIHtcbiAgICAgIGNvbnN0IHNvcnRlZEluZGV4ZXMgPSBbLi4ucm93U2VsZWN0ZWRJbmRleGVzXS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICBmb3IgKGNvbnN0IHZJbmRleCBvZiBzb3J0ZWRJbmRleGVzKSB7XG4gICAgICAgIGNvbnN0IHJvdyA9IGZpbmRSb3dCeVZpcnR1YWxJbmRleCh2SW5kZXgpO1xuICAgICAgICBpZiAoIXJvdykgY29udGludWU7XG4gICAgICAgIGNvbnN0IGV4dHJhY3RWYWx1ZSA9IChmaWVsZDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICAgICAgICBjb25zdCBuZXN0ZWQgPSBnZXROZXN0ZWRWYWx1ZShyb3csIGZpZWxkKTtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgICBuZXN0ZWQ/LnZhbHVlID8/XG4gICAgICAgICAgICBuZXN0ZWQ/Lm5hbWUgPz9cbiAgICAgICAgICAgIG5lc3RlZCA/P1xuICAgICAgICAgICAgJy0nO1xuXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgICAgLm1hcCh2ID0+XG4gICAgICAgICAgICAgICAgdHlwZW9mIHYgPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgICA/ICh2LmRlcGFydG1lbnROYW1lID8/IHYucm9sZU5hbWUgPz8gJycpXG4gICAgICAgICAgICAgICAgICA6ICh2Py50b1N0cmluZygpID8/ICcnKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5qb2luKCcsICcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdmFsdWUgPz8gJyc7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG1hcHBlZCA9IGNvbHVtbnMubWFwKGNvbCA9PiB7XG4gICAgICAgICAgaWYgKGNvbC5jaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2wuY2hpbGRyZW4ubWFwKChjOiB7IGZpZWxkOiBzdHJpbmcgfSkgPT4gZXh0cmFjdFZhbHVlKGMuZmllbGQpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFtleHRyYWN0VmFsdWUoY29sLmZpZWxkKV07XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByb3dWYWx1ZXMgPSBtYXBwZWQucmVkdWNlPHN0cmluZ1tdPigoYWNjLCBjdXJyKSA9PiBhY2MuY29uY2F0KGN1cnIpLCBbXSk7XG4gICAgICAgIGNvcGllZFJvd3MucHVzaChyb3dWYWx1ZXMpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc2VsZWN0ZWRDZWxscyAmJiBzZWxlY3RlZENlbGxzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHJvd3NNYXAgPSBuZXcgTWFwPG51bWJlciwgYW55W10+KCk7XG4gICAgICBmb3IgKGNvbnN0IGNlbGwgb2Ygc2VsZWN0ZWRDZWxscykge1xuICAgICAgICBjb25zdCByb3cgPSBmaW5kUm93QnlWaXJ0dWFsSW5kZXgoY2VsbC5yb3dJbmRleCk7XG4gICAgICAgIGlmICghcm93KSBjb250aW51ZTtcbiAgICAgICAgY29uc3QgY29sID0gY29sdW1uc1tjZWxsLmNvbEluZGV4XTtcbiAgICAgICAgbGV0IGZpZWxkTmFtZSA9IGNvbD8uZmllbGQ7XG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuICYmIGNvbC5jaGlsZHJlbltjZWxsLnN1YkNvbEluZGV4XSkge1xuICAgICAgICAgIGZpZWxkTmFtZSA9IGNvbC5jaGlsZHJlbltjZWxsLnN1YkNvbEluZGV4XS5maWVsZDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdmFsdWUgPSBnZXROZXN0ZWRWYWx1ZShyb3csIGZpZWxkTmFtZSkgfHwgZ2V0TmVzdGVkVmFsdWUocm93LCBmaWVsZE5hbWUpPy5uYW1lIHx8IGdldE5lc3RlZFZhbHVlKHJvdywgZmllbGROYW1lKTtcbiAgICAgICAgaWYodmFsdWUgPT0gdW5kZWZpbmVkIHx8IHZhbHVlID09IG51bGwpIHZhbHVlID0gJy0nO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlXG4gICAgICAgICAgICAubWFwKHYgPT5cbiAgICAgICAgICAgICAgdHlwZW9mIHYgPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgPyB2LmRlcGFydG1lbnROYW1lID8/IHYucm9sZU5hbWUgPz8gdi5mdWxsX25hbWUgPz8gJydcbiAgICAgICAgICAgICAgICA6IHY/LnRvU3RyaW5nKCkgPz8gJydcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5qb2luKCcsICcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlID0gdmFsdWUgPz8gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyb3dzTWFwLmhhcyhjZWxsLnJvd0luZGV4KSkgcm93c01hcC5zZXQoY2VsbC5yb3dJbmRleCwgW10pO1xuICAgICAgICByb3dzTWFwLmdldChjZWxsLnJvd0luZGV4KSEucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBzb3J0ZWRDZWxscyA9IFsuLi5yb3dzTWFwLmVudHJpZXMoKV1cbiAgICAgICAgLnNvcnQoKFthXSwgW2JdKSA9PiBhIC0gYilcbiAgICAgICAgLm1hcCgoW18sIHZdKSA9PiB2KTtcbiAgICAgIGNvcGllZFJvd3MucHVzaCguLi5zb3J0ZWRDZWxscyk7XG4gICAgfVxuICAgIGlmIChjb3BpZWRSb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgYWN0aXZlQ2VsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hY3RpdmUtY2VsbCcpO1xuICAgICAgaWYgKGFjdGl2ZUNlbGwpIHJldHVybiBbW2FjdGl2ZUNlbGwudGV4dENvbnRlbnQ/LnRyaW0oKSB8fCAnJ11dO1xuICAgIH1cblxuICAgIGNvbnN0IG1heENvbHMgPSBjb3BpZWRSb3dzLnJlZHVjZSgobWF4LCByb3cpID0+IE1hdGgubWF4KG1heCwgcm93Lmxlbmd0aCksIDApO1xuICAgIHJldHVybiBjb3BpZWRSb3dzLm1hcChyb3cgPT4ge1xuICAgICAgY29uc3QgbmV3Um93ID0gWy4uLnJvd107XG4gICAgICB3aGlsZSAobmV3Um93Lmxlbmd0aCA8IG1heENvbHMpIG5ld1Jvdy5wdXNoKCcnKTtcbiAgICAgIHJldHVybiBuZXdSb3c7XG4gICAgfSk7XG4gIH1cblxuXG4gIGNvcHlUb0NsaXBib2FyZChcbiAgc2VsZWN0ZWREYXRhOiBhbnlbXVtdLFxuICBzZWxlY3RvciA9ICcuc2VsZWN0ZWQtY2VsbCwgLmFjdGl2ZS1jZWxsLCAucm93LXNlbGVjdGVkJ1xuKTogdm9pZCB7XG4gIGlmICghc2VsZWN0ZWREYXRhPy5sZW5ndGgpIHJldHVybjtcblxuICBjb25zdCB0ZXh0ID0gc2VsZWN0ZWREYXRhXG4gICAgLm1hcChyb3cgPT4gcm93Lm1hcChjZWxsID0+IChjZWxsID8/ICcnKSkuam9pbignXFx0JykpXG4gICAgLmpvaW4oJ1xcbicpO1xuXG4gIC8vIPCflJAgQ2xpcGJvYXJkIChtdXN0IGJlIHN5bmNocm9ub3VzKVxuICBpZiAoZG9jdW1lbnQuaGFzRm9jdXMoKSAmJiBuYXZpZ2F0b3IuY2xpcGJvYXJkPy53cml0ZVRleHQpIHtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KS5jYXRjaCgoKSA9PiB7XG4gICAgICB0aGlzLmxlZ2FjeUNvcHkodGV4dCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5sZWdhY3lDb3B5KHRleHQpO1xuICB9XG5cbiAgLy8g4pyoIEZsYXNoIHNlbGVjdGVkIGNlbGxzIChzYWZlIEFGVEVSIGNvcHkpXG4gIHRoaXMuZmxhc2hTZWxlY3RlZENlbGxzKHNlbGVjdG9yKTtcbn1cblxucHJpdmF0ZSBmbGFzaFNlbGVjdGVkQ2VsbHMoc2VsZWN0b3I6IHN0cmluZykge1xuICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KHNlbGVjdG9yKTtcbiAgaWYgKCFlbGVtZW50cy5sZW5ndGgpIHJldHVybjtcblxuICBlbGVtZW50cy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5hZGQoJ2ZsYXNoLWJnJykpO1xuXG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuY2xhc3NMaXN0LnJlbW92ZSgnZmxhc2gtYmcnKSk7XG4gIH0sIDgwMCk7XG59XG5cblxuICBwcml2YXRlIGxlZ2FjeUNvcHkodGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgdGV4dGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgIHRleHRhcmVhLnZhbHVlID0gdGV4dDtcbiAgICB0ZXh0YXJlYS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgdGV4dGFyZWEuc3R5bGUub3BhY2l0eSA9ICcwJztcblxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dGFyZWEpO1xuICAgIHRleHRhcmVhLmZvY3VzKCk7XG4gICAgdGV4dGFyZWEuc2VsZWN0KCk7XG5cbiAgICB0cnkge1xuICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0YXJlYSk7XG4gICAgfVxuICB9XG5cblxuXG51cGRhdGVSb3dzOiBhbnlbXSA9IFtdO1xuICBjdXJyZW50Q29sdW1zIDogYW55ID0gW11cbiAgYXN5bmMgcGFzdGVGcm9tQ2xpcGJvYXJkVGV4dChcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgZGF0YVNldDogYW55W10sXG4gICAgY29sdW1uczogYW55W10sXG4gICAgc3RhcnRSb3dJbmRleDogbnVtYmVyLFxuICAgIHN0YXJ0Q29sSW5kZXg6IG51bWJlcixcbiAgICBzdGFydFN1YkNvbEluZGV4OiBudW1iZXIgPSAwXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKCF0ZXh0KSByZXR1cm4gW107XG4gICAgdGhpcy51cGRhdGVSb3dzID0gW107XG4gICAgY29uc3Qgcm93cyA9IHRleHQuc3BsaXQoL1xccj9cXG4vKS5tYXAociA9PiByLnNwbGl0KCdcXHQnKSk7XG4gICAgY29uc3QgZmxhdHRlbmVkQ29sdW1uczogYW55W10gPSBbXTtcbiAgICBjb2x1bW5zLmZvckVhY2goY29sID0+IHtcbiAgICAgIGlmIChjb2wuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICBjb2wuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQ6IGFueSkgPT4gZmxhdHRlbmVkQ29sdW1ucy5wdXNoKHsgcGFyZW50OiBjb2wsIC4uLmNoaWxkIH0pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZsYXR0ZW5lZENvbHVtbnMucHVzaChjb2wpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGxldCBzdGFydEZsYXR0ZW5lZEluZGV4ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0YXJ0Q29sSW5kZXg7IGkrKykge1xuICAgICAgY29uc3QgY29sID0gY29sdW1uc1tpXTtcbiAgICAgIHN0YXJ0RmxhdHRlbmVkSW5kZXggKz0gY29sLmNoaWxkcmVuPy5sZW5ndGggfHwgMTtcbiAgICB9XG4gICAgY29uc3Qgc3RhcnRDb2wgPSBjb2x1bW5zW3N0YXJ0Q29sSW5kZXhdO1xuICAgIGlmIChzdGFydENvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgc3RhcnRGbGF0dGVuZWRJbmRleCArPSBNYXRoLm1pbihzdGFydFN1YkNvbEluZGV4LCBzdGFydENvbC5jaGlsZHJlbi5sZW5ndGggLSAxKTtcbiAgICB9XG4gXG4gICAgcm93cy5mb3JFYWNoKChyb3dWYWx1ZXMsIHJPZmZzZXQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldFJvd0luZGV4ID0gc3RhcnRSb3dJbmRleCArIHJPZmZzZXQ7XG4gICAgICBjb25zdCByb3cgPSBkYXRhU2V0LmZpbmQociA9PiByPy5fX3ZpcnR1YWxJbmRleCA9PT0gdGFyZ2V0Um93SW5kZXgpO1xuICAgICAgaWYgKCFyb3cpIHJldHVybjtcbiBcbiAgICAgIHJvd1ZhbHVlcy5mb3JFYWNoKCh2YWx1ZSwgY09mZnNldCkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXRJbmRleCA9IHN0YXJ0RmxhdHRlbmVkSW5kZXggKyBjT2Zmc2V0O1xuICAgICAgICBpZiAodGFyZ2V0SW5kZXggPCAwIHx8IHRhcmdldEluZGV4ID49IGZsYXR0ZW5lZENvbHVtbnMubGVuZ3RoKSByZXR1cm47XG4gXG4gICAgICAgIGNvbnN0IHRhcmdldENvbHVtbiA9IGZsYXR0ZW5lZENvbHVtbnNbdGFyZ2V0SW5kZXhdO1xuICAgICAgICBpZighdGFyZ2V0Q29sdW1uIHx8ICF0YXJnZXRDb2x1bW4uaXNfZWRpdGFibGUpIHJldHVybjtcbiAgICAgICAgIGlmICh0YXJnZXRDb2x1bW4/LnR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29sdW1zLnB1c2godGFyZ2V0Q29sdW1uKTtcbiAgICAgICAgICAgIHRoaXMuc2V0TmVzdGVkVmFsdWUocm93LCB0YXJnZXRDb2x1bW4sIHZhbHVlKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRhcmdldENvbHVtbi50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgICAgIGlmICghaXNOYU4obnVtKSAmJiB2YWx1ZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q29sdW1zLnB1c2godGFyZ2V0Q29sdW1uKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXROZXN0ZWRWYWx1ZShyb3csIHRhcmdldENvbHVtbiwgbnVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiBcbiAgICByZXR1cm4ge3VwZGF0ZVJvd3MgOiB0aGlzLnVwZGF0ZVJvd3MsIGN1cnJlbnRDb2x1bXMgOiB0aGlzLmN1cnJlbnRDb2x1bXN9O1xuICB9XG5cblxuICBzZXROZXN0ZWRWYWx1ZShvYmo6IGFueSwgY29sdW1uOiBhbnksIG9wdGlvbjogYW55LCBjYWxsZWRGcm9tSW5wdXQgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2RhdGUnIHx8IGNvbHVtbi50eXBlID09PSAnaW1hZ2UnKSByZXR1cm47XG4gICAgY29uc3QgcGF0aCA9IGNvbHVtbi5maWVsZDtcbiAgICBpZiAoIXBhdGgpIHJldHVybjtcbiAgICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGxhc3RLZXkgPSBrZXlzLnBvcCgpO1xuICAgIGNvbnN0IHBhcmVudCA9IGtleXMucmVkdWNlKChhY2M6IGFueSwga2V5OiBzdHJpbmcpID0+IChhY2Nba2V5XSA/Pz0ge30pLCBvYmopO1xuICAgIGlmIChwYXJlbnQgJiYgbGFzdEtleSkge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmIG9wdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBwYXJlbnRbbGFzdEtleV0gPSB7XG4gICAgICAgICAgaWQ6IG9wdGlvbi5pZCA/PyAxLFxuICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUgPz8gb3B0aW9uLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyZW50W2xhc3RLZXldID0gb3B0aW9uO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZW5kT2JqID0ge1xuICAgICAgZGF0YTogeyAuLi5vYmogfSxcbiAgICAgIGV2ZW50VHlwZTogJ29uQ2VsbEVkaXQnLFxuICAgIH07XG4gICAgdGhpcy51cGRhdGVSb3dzLnB1c2gob2JqKTtcbiAgfVxuXG5cbiAgY3V0U2VsZWN0ZWRTZWxlY3RlZERhdGEoXG4gICAgZGF0YVNldDogYW55W10sXG4gICAgcm93U2VsZWN0ZWRJbmRleGVzOiBTZXQ8bnVtYmVyPixcbiAgICBzZWxlY3RlZENlbGxzOiBhbnlbXSxcbiAgICBjb2x1bW5zOiBhbnlbXSxcbiAgICBzZXROZXN0ZWRWYWx1ZTogKG9iajogYW55LCBjb2x1bW46IGFueSwgdmFsdWU6IGFueSkgPT4gdm9pZFxuICApOiBhbnkge1xuICAgIGxldCB1cGRhdGVkRGF0YSA9IFsuLi5kYXRhU2V0XTtcbiAgICBpZiAocm93U2VsZWN0ZWRJbmRleGVzPy5zaXplKSB7XG4gICAgICBjb25zdCBpbmRleGVzID0gWy4uLnJvd1NlbGVjdGVkSW5kZXhlc107XG4gICAgICB1cGRhdGVkRGF0YSA9IHVwZGF0ZWREYXRhLmZpbHRlcihcbiAgICAgICAgKHJvdzogYW55KSA9PiAhaW5kZXhlcy5pbmNsdWRlcyhyb3cuX192aXJ0dWFsSW5kZXgpXG4gICAgICApO1xuICAgICAgLy8gcm93U2VsZWN0ZWRJbmRleGVzLmNsZWFyKCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHNlbGVjdGVkQ2VsbHM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy51cGRhdGVSb3dzID0gW107XG4gICAgICBmb3IgKGNvbnN0IGNlbGwgb2Ygc2VsZWN0ZWRDZWxscykge1xuICAgICAgICBjb25zdCByb3cgPSB1cGRhdGVkRGF0YS5maW5kKHIgPT4gci5fX3ZpcnR1YWxJbmRleCA9PT0gY2VsbC5yb3dJbmRleCk7XG4gICAgICAgIGlmICghcm93KSBjb250aW51ZTtcbiAgICAgICAgbGV0IGNvbCA9IGNvbHVtbnNbY2VsbC5jb2xJbmRleF07XG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuICYmIGNvbC5jaGlsZHJlbltjZWxsLnN1YkNvbEluZGV4XSkge1xuICAgICAgICAgIGNvbCA9IGNvbC5jaGlsZHJlbltjZWxsLnN1YkNvbEluZGV4XTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldE5lc3RlZFZhbHVlKHJvdywgY29sLCAnJyk7XG4gICAgICB9XG4gICAgICAvLyBzZWxlY3RlZENlbGxzLmxlbmd0aCA9IDA7XG4gICAgfVxuICAgIHJldHVybiB7dXBkYXRlZERhdGE6IHVwZGF0ZWREYXRhLCB1cGRhdGVkUm93czogdGhpcy51cGRhdGVSb3dzfTtcbiAgfVxuXG5cbiAgY3V0V2l0aEFuaW1hdGlvbihcbiAgICBzZWxlY3RlZERhdGE6IGFueVtdW10sXG4gICAgc2VsZWN0b3IgPSAnLnNlbGVjdGVkLWNlbGwsIC5hY3RpdmUtY2VsbCwgLnJvdy1zZWxlY3RlZCdcbiAgKTogdm9pZCB7XG4gICAgaWYgKCFzZWxlY3RlZERhdGEgfHwgc2VsZWN0ZWREYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgY29uc3QgdGV4dFRvQ29weSA9IHNlbGVjdGVkRGF0YVxuICAgICAgLm1hcChyb3cgPT4gcm93Lm1hcChjZWxsID0+IChjZWxsID8/ICcnKS50b1N0cmluZygpKS5qb2luKCdcXHQnKSlcbiAgICAgIC5qb2luKCdcXG4nKTtcblxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHRUb0NvcHkpLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKGVycikpO1xuXG4gICAgLy8gQXBwbHkgcmVkIGN1dCBhbmltYXRpb25cbiAgICBjb25zdCBzZWxlY3RlZEVscyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICAgIHNlbGVjdGVkRWxzLmZvckVhY2goZWwgPT4gZWwuY2xhc3NMaXN0LmFkZCgnY3V0LWZsYXNoLWJnJykpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2VsZWN0ZWRFbHMuZm9yRWFjaChlbCA9PiBlbC5jbGFzc0xpc3QucmVtb3ZlKCdjdXQtZmxhc2gtYmcnKSk7XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuXG59XG4iXX0=
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1zZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb3B5LXNlcnZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCO1FBaUpGLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDckIsa0JBQWEsR0FBUyxFQUFFLENBQUE7SUFsSlIsQ0FBQztJQUNqQixzQkFBc0IsQ0FDcEIsT0FBYyxFQUNkLE9BQWMsRUFDZCxrQkFBK0IsRUFDL0IsYUFBb0IsRUFDcEIsY0FBK0M7UUFFL0MsbURBQW1EO1FBQ25ELE1BQU0sVUFBVSxHQUFZLEVBQUUsQ0FBQztRQUMvQixNQUFNLHFCQUFxQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FDL0MsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUN4RCxJQUFJLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDckQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLEtBQUssTUFBTSxNQUFNLElBQUksYUFBYSxFQUFFO2dCQUNsQyxNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLEdBQUc7b0JBQUUsU0FBUztnQkFDbkIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQVUsRUFBRTtvQkFDN0MsTUFBTSxNQUFN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LFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNqRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDOytHQXpSVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb3B5U2VydmljZVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG4gIGdldFNlbGVjdGVkRGF0YUZvckNvcHkoXG4gICAgZGF0YVNldDogYW55W10sXG4gICAgY29sdW1uczogYW55W10sXG4gICAgcm93U2VsZWN0ZWRJbmRleGVzOiBTZXQ8bnVtYmVyPixcbiAgICBzZWxlY3RlZENlbGxzOiBhbnlbXSxcbiAgICBnZXROZXN0ZWRWYWx1ZTogKG9iajogYW55LCBwYXRoOiBzdHJpbmcpID0+IGFueVxuICApOiBhbnlbXVtdIHtcbiAgICAvLyBjb2x1bW5zID0gY29sdW1ucy5maWx0ZXIoY29sID0+IGNvbC5pc192aXNpYmxlKTtcbiAgICBjb25zdCBjb3BpZWRSb3dzOiBhbnlbXVtdID0gW107XG4gICAgY29uc3QgZmluZFJvd0J5VmlydHVhbEluZGV4ID0gKHZJbmRleDogbnVtYmVyKSA9PlxuICAgICAgZGF0YVNldC5maW5kKChyOiBhbnkpID0+IHIuX192aXJ0dWFsSW5kZXggPT09IHZJbmRleCk7XG4gICAgaWYgKHJvd1NlbGVjdGVkSW5kZXhlcyAmJiByb3dTZWxlY3RlZEluZGV4ZXMuc2l6ZSA+IDApIHtcbiAgICAgIGNvbnN0IHNvcnRlZEluZGV4ZXMgPSBbLi4ucm93U2VsZWN0ZWRJbmRleGVzXS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICBmb3IgKGNvbnN0IHZJbmRleCBvZiBzb3J0ZWRJbmRleGVzKSB7XG4gICAgICAgIGNvbnN0IHJvdyA9IGZpbmRSb3dCeVZpcnR1YWxJbmRleCh2SW5kZXgpO1xuICAgICAgICBpZiAoIXJvdykgY29udGludWU7XG4gICAgICAgIGNvbnN0IGV4dHJhY3RWYWx1ZSA9IChmaWVsZDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICAgICAgICBjb25zdCBuZXN0ZWQgPSBnZXROZXN0ZWRWYWx1ZShyb3csIGZpZWxkKTtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgICBuZXN0ZWQ/LnZhbHVlID8/XG4gICAgICAgICAgICBuZXN0ZWQ/Lm5hbWUgPz9cbiAgICAgICAgICAgIG5lc3RlZCA/P1xuICAgICAgICAgICAgJy0nO1xuXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgICAgLm1hcCh2ID0+XG4gICAgICAgICAgICAgICAgdHlwZW9mIHYgPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgICA/ICh2LmRlcGFydG1lbnROYW1lID8/IHYucm9sZU5hbWUgPz8gJycpXG4gICAgICAgICAgICAgICAgICA6ICh2Py50b1N0cmluZygpID8/ICcnKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5qb2luKCcsICcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdmFsdWUgPz8gJyc7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG1hcHBlZCA9IGNvbHVtbnMubWFwKGNvbCA9PiB7XG4gICAgICAgICAgaWYgKGNvbC5jaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2wuY2hpbGRyZW4ubWFwKChjOiB7IGZpZWxkOiBzdHJpbmcgfSkgPT4gZXh0cmFjdFZhbHVlKGMuZmllbGQpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFtleHRyYWN0VmFsdWUoY29sLmZpZWxkKV07XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByb3dWYWx1ZXMgPSBtYXBwZWQucmVkdWNlPHN0cmluZ1tdPigoYWNjLCBjdXJyKSA9PiBhY2MuY29uY2F0KGN1cnIpLCBbXSk7XG4gICAgICAgIGNvcGllZFJvd3MucHVzaChyb3dWYWx1ZXMpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc2VsZWN0ZWRDZWxscyAmJiBzZWxlY3RlZENlbGxzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHJvd3NNYXAgPSBuZXcgTWFwPG51bWJlciwgYW55W10+KCk7XG4gICAgICBmb3IgKGNvbnN0IGNlbGwgb2Ygc2VsZWN0ZWRDZWxscykge1xuICAgICAgICBjb25zdCByb3cgPSBmaW5kUm93QnlWaXJ0dWFsSW5kZXgoY2VsbC5yb3dJbmRleCk7XG4gICAgICAgIGlmICghcm93KSBjb250aW51ZTtcbiAgICAgICAgY29uc3QgY29sID0gY29sdW1uc1tjZWxsLmNvbEluZGV4XTtcbiAgICAgICAgbGV0IGZpZWxkTmFtZSA9IGNvbD8uZmllbGQ7XG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuICYmIGNvbC5jaGlsZHJlbltjZWxsLnN1YkNvbEluZGV4XSkge1xuICAgICAgICAgIGZpZWxkTmFtZSA9IGNvbC5jaGlsZHJlbltjZWxsLnN1YkNvbEluZGV4XS5maWVsZDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdmFsdWUgPSBnZXROZXN0ZWRWYWx1ZShyb3csIGZpZWxkTmFtZSkgfHwgZ2V0TmVzdGVkVmFsdWUocm93LCBmaWVsZE5hbWUpPy5uYW1lIHx8IGdldE5lc3RlZFZhbHVlKHJvdywgZmllbGROYW1lKTtcbiAgICAgICAgaWYodmFsdWUgPT0gdW5kZWZpbmVkIHx8IHZhbHVlID09IG51bGwpIHZhbHVlID0gJy0nO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlXG4gICAgICAgICAgICAubWFwKHYgPT5cbiAgICAgICAgICAgICAgdHlwZW9mIHYgPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgPyB2LmRlcGFydG1lbnROYW1lID8/IHYucm9sZU5hbWUgPz8gdi5mdWxsX25hbWUgPz8gJydcbiAgICAgICAgICAgICAgICA6IHY/LnRvU3RyaW5nKCkgPz8gJydcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5qb2luKCcsICcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlID0gdmFsdWUgPz8gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyb3dzTWFwLmhhcyhjZWxsLnJvd0luZGV4KSkgcm93c01hcC5zZXQoY2VsbC5yb3dJbmRleCwgW10pO1xuICAgICAgICByb3dzTWFwLmdldChjZWxsLnJvd0luZGV4KSEucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBzb3J0ZWRDZWxscyA9IFsuLi5yb3dzTWFwLmVudHJpZXMoKV1cbiAgICAgICAgLnNvcnQoKFthXSwgW2JdKSA9PiBhIC0gYilcbiAgICAgICAgLm1hcCgoW18sIHZdKSA9PiB2KTtcbiAgICAgIGNvcGllZFJvd3MucHVzaCguLi5zb3J0ZWRDZWxscyk7XG4gICAgfVxuICAgIGlmIChjb3BpZWRSb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgYWN0aXZlQ2VsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hY3RpdmUtY2VsbCcpO1xuICAgICAgaWYgKGFjdGl2ZUNlbGwpIHJldHVybiBbW2FjdGl2ZUNlbGwudGV4dENvbnRlbnQ/LnRyaW0oKSB8fCAnJ11dO1xuICAgIH1cblxuICAgIGNvbnN0IG1heENvbHMgPSBjb3BpZWRSb3dzLnJlZHVjZSgobWF4LCByb3cpID0+IE1hdGgubWF4KG1heCwgcm93Lmxlbmd0aCksIDApO1xuICAgIHJldHVybiBjb3BpZWRSb3dzLm1hcChyb3cgPT4ge1xuICAgICAgY29uc3QgbmV3Um93ID0gWy4uLnJvd107XG4gICAgICB3aGlsZSAobmV3Um93Lmxlbmd0aCA8IG1heENvbHMpIG5ld1Jvdy5wdXNoKCcnKTtcbiAgICAgIHJldHVybiBuZXdSb3c7XG4gICAgfSk7XG4gIH1cblxuXG4gIGNvcHlUb0NsaXBib2FyZChcbiAgICBzZWxlY3RlZERhdGE6IGFueVtdW10sXG4gICAgc2VsZWN0b3IgPSAnLnNlbGVjdGVkLWNlbGwsIC5hY3RpdmUtY2VsbCwgLnJvdy1zZWxlY3RlZCdcbiAgKTogdm9pZCB7XG4gICAgaWYgKCFzZWxlY3RlZERhdGE/Lmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgY29uc3QgdGV4dCA9IHNlbGVjdGVkRGF0YVxuICAgICAgLm1hcChyb3cgPT4gcm93Lm1hcChjZWxsID0+IChjZWxsID8/ICcnKSkuam9pbignXFx0JykpXG4gICAgICAuam9pbignXFxuJyk7XG5cbiAgICAvLyDwn5SQIENsaXBib2FyZCAobXVzdCBiZSBzeW5jaHJvbm91cylcbiAgICBpZiAoZG9jdW1lbnQuaGFzRm9jdXMoKSAmJiBuYXZpZ2F0b3IuY2xpcGJvYXJkPy53cml0ZVRleHQpIHtcbiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpLmNhdGNoKCgpID0+IHtcbiAgICAgICAgdGhpcy5sZWdhY3lDb3B5KHRleHQpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGVnYWN5Q29weSh0ZXh0KTtcbiAgICB9XG5cbiAgICAvLyDinKggRmxhc2ggc2VsZWN0ZWQgY2VsbHMgKHNhZmUgQUZURVIgY29weSlcbiAgICB0aGlzLmZsYXNoU2VsZWN0ZWRDZWxscyhzZWxlY3Rvcik7XG4gIH1cblxuICBwcml2YXRlIGZsYXNoU2VsZWN0ZWRDZWxscyhzZWxlY3Rvcjogc3RyaW5nKSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihzZWxlY3Rvcik7XG4gICAgaWYgKCFlbGVtZW50cy5sZW5ndGgpIHJldHVybjtcblxuICAgIGVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuY2xhc3NMaXN0LmFkZCgnZmxhc2gtYmcnKSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwuY2xhc3NMaXN0LnJlbW92ZSgnZmxhc2gtYmcnKSk7XG4gICAgfSwgODAwKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBsZWdhY3lDb3B5KHRleHQ6IHN0cmluZykge1xuICAgIGNvbnN0IHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICB0ZXh0YXJlYS52YWx1ZSA9IHRleHQ7XG4gICAgdGV4dGFyZWEuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICAgIHRleHRhcmVhLnN0eWxlLm9wYWNpdHkgPSAnMCc7XG5cbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRhcmVhKTtcbiAgICB0ZXh0YXJlYS5mb2N1cygpO1xuICAgIHRleHRhcmVhLnNlbGVjdCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dGFyZWEpO1xuICAgIH1cbiAgfVxuXG5cblxudXBkYXRlUm93czogYW55W10gPSBbXTtcbiAgY3VycmVudENvbHVtcyA6IGFueSA9IFtdXG4gIGFzeW5jIHBhc3RlRnJvbUNsaXBib2FyZFRleHQoXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIGRhdGFTZXQ6IGFueVtdLFxuICAgIGNvbHVtbnM6IGFueVtdLFxuICAgIHN0YXJ0Um93SW5kZXg6IG51bWJlcixcbiAgICBzdGFydENvbEluZGV4OiBudW1iZXIsXG4gICAgc3RhcnRTdWJDb2xJbmRleDogbnVtYmVyID0gMFxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICghdGV4dCkgcmV0dXJuIFtdO1xuICAgIHRoaXMudXBkYXRlUm93cyA9IFtdO1xuICAgIGNvbnN0IHJvd3MgPSB0ZXh0LnNwbGl0KC9cXHI/XFxuLykubWFwKHIgPT4gci5zcGxpdCgnXFx0JykpO1xuICAgIGNvbnN0IGZsYXR0ZW5lZENvbHVtbnM6IGFueVtdID0gW107XG4gICAgY29sdW1ucy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICBpZiAoY29sLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgY29sLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IGZsYXR0ZW5lZENvbHVtbnMucHVzaCh7IHBhcmVudDogY29sLCAuLi5jaGlsZCB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmbGF0dGVuZWRDb2x1bW5zLnB1c2goY29sKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBsZXQgc3RhcnRGbGF0dGVuZWRJbmRleCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGFydENvbEluZGV4OyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbCA9IGNvbHVtbnNbaV07XG4gICAgICBzdGFydEZsYXR0ZW5lZEluZGV4ICs9IGNvbC5jaGlsZHJlbj8ubGVuZ3RoIHx8IDE7XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0Q29sID0gY29sdW1uc1tzdGFydENvbEluZGV4XTtcbiAgICBpZiAoc3RhcnRDb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIHN0YXJ0RmxhdHRlbmVkSW5kZXggKz0gTWF0aC5taW4oc3RhcnRTdWJDb2xJbmRleCwgc3RhcnRDb2wuY2hpbGRyZW4ubGVuZ3RoIC0gMSk7XG4gICAgfVxuIFxuICAgIHJvd3MuZm9yRWFjaCgocm93VmFsdWVzLCByT2Zmc2V0KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXRSb3dJbmRleCA9IHN0YXJ0Um93SW5kZXggKyByT2Zmc2V0O1xuICAgICAgY29uc3Qgcm93ID0gZGF0YVNldC5maW5kKHIgPT4gcj8uX192aXJ0dWFsSW5kZXggPT09IHRhcmdldFJvd0luZGV4KTtcbiAgICAgIGlmICghcm93KSByZXR1cm47XG4gXG4gICAgICByb3dWYWx1ZXMuZm9yRWFjaCgodmFsdWUsIGNPZmZzZXQpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBzdGFydEZsYXR0ZW5lZEluZGV4ICsgY09mZnNldDtcbiAgICAgICAgaWYgKHRhcmdldEluZGV4IDwgMCB8fCB0YXJnZXRJbmRleCA+PSBmbGF0dGVuZWRDb2x1bW5zLmxlbmd0aCkgcmV0dXJuO1xuIFxuICAgICAgICBjb25zdCB0YXJnZXRDb2x1bW4gPSBmbGF0dGVuZWRDb2x1bW5zW3RhcmdldEluZGV4XTtcbiAgICAgICAgaWYoIXRhcmdldENvbHVtbiB8fCAhdGFyZ2V0Q29sdW1uLmlzX2VkaXRhYmxlKSByZXR1cm47XG4gICAgICAgICBpZiAodGFyZ2V0Q29sdW1uPy50eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRoaXMuY3VycmVudENvbHVtcy5wdXNoKHRhcmdldENvbHVtbik7XG4gICAgICAgICAgICB0aGlzLnNldE5lc3RlZFZhbHVlKHJvdywgdGFyZ2V0Q29sdW1uLCB2YWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0YXJnZXRDb2x1bW4udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoIWlzTmFOKG51bSkgJiYgdmFsdWUgIT09ICcnKSB7XG4gICAgICAgICAgICAgIHRoaXMuY3VycmVudENvbHVtcy5wdXNoKHRhcmdldENvbHVtbik7XG4gICAgICAgICAgICAgIHRoaXMuc2V0TmVzdGVkVmFsdWUocm93LCB0YXJnZXRDb2x1bW4sIG51bSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gXG4gICAgcmV0dXJuIHt1cGRhdGVSb3dzIDogdGhpcy51cGRhdGVSb3dzLCBjdXJyZW50Q29sdW1zIDogdGhpcy5jdXJyZW50Q29sdW1zfTtcbiAgfVxuXG5cbiAgc2V0TmVzdGVkVmFsdWUob2JqOiBhbnksIGNvbHVtbjogYW55LCBvcHRpb246IGFueSwgY2FsbGVkRnJvbUlucHV0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdkYXRlJyB8fCBjb2x1bW4udHlwZSA9PT0gJ2ltYWdlJykgcmV0dXJuO1xuICAgIGNvbnN0IHBhdGggPSBjb2x1bW4uZmllbGQ7XG4gICAgaWYgKCFwYXRoKSByZXR1cm47XG4gICAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBjb25zdCBsYXN0S2V5ID0ga2V5cy5wb3AoKTtcbiAgICBjb25zdCBwYXJlbnQgPSBrZXlzLnJlZHVjZSgoYWNjOiBhbnksIGtleTogc3RyaW5nKSA9PiAoYWNjW2tleV0gPz89IHt9KSwgb2JqKTtcbiAgICBpZiAocGFyZW50ICYmIGxhc3RLZXkpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyAmJiBvcHRpb24gIT09IG51bGwpIHtcbiAgICAgICAgcGFyZW50W2xhc3RLZXldID0ge1xuICAgICAgICAgIGlkOiBvcHRpb24uaWQgPz8gMSxcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlID8/IG9wdGlvbixcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcmVudFtsYXN0S2V5XSA9IG9wdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc2VuZE9iaiA9IHtcbiAgICAgIGRhdGE6IHsgLi4ub2JqIH0sXG4gICAgICBldmVudFR5cGU6ICdvbkNlbGxFZGl0JyxcbiAgICB9O1xuICAgIHRoaXMudXBkYXRlUm93cy5wdXNoKG9iaik7XG4gIH1cblxuXG4gIGN1dFNlbGVjdGVkU2VsZWN0ZWREYXRhKFxuICAgIGRhdGFTZXQ6IGFueVtdLFxuICAgIHJvd1NlbGVjdGVkSW5kZXhlczogU2V0PG51bWJlcj4sXG4gICAgc2VsZWN0ZWRDZWxsczogYW55W10sXG4gICAgY29sdW1uczogYW55W10sXG4gICAgc2V0TmVzdGVkVmFsdWU6IChvYmo6IGFueSwgY29sdW1uOiBhbnksIHZhbHVlOiBhbnkpID0+IHZvaWRcbiAgKTogYW55IHtcbiAgICBsZXQgdXBkYXRlZERhdGEgPSBbLi4uZGF0YVNldF07XG4gICAgaWYgKHJvd1NlbGVjdGVkSW5kZXhlcz8uc2l6ZSkge1xuICAgICAgY29uc3QgaW5kZXhlcyA9IFsuLi5yb3dTZWxlY3RlZEluZGV4ZXNdO1xuICAgICAgdXBkYXRlZERhdGEgPSB1cGRhdGVkRGF0YS5maWx0ZXIoXG4gICAgICAgIChyb3c6IGFueSkgPT4gIWluZGV4ZXMuaW5jbHVkZXMocm93Ll9fdmlydHVhbEluZGV4KVxuICAgICAgKTtcbiAgICAgIC8vIHJvd1NlbGVjdGVkSW5kZXhlcy5jbGVhcigpO1xuICAgIH1cbiAgICBlbHNlIGlmIChzZWxlY3RlZENlbGxzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudXBkYXRlUm93cyA9IFtdO1xuICAgICAgZm9yIChjb25zdCBjZWxsIG9mIHNlbGVjdGVkQ2VsbHMpIHtcbiAgICAgICAgY29uc3Qgcm93ID0gdXBkYXRlZERhdGEuZmluZChyID0+IHIuX192aXJ0dWFsSW5kZXggPT09IGNlbGwucm93SW5kZXgpO1xuICAgICAgICBpZiAoIXJvdykgY29udGludWU7XG4gICAgICAgIGxldCBjb2wgPSBjb2x1bW5zW2NlbGwuY29sSW5kZXhdO1xuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbiAmJiBjb2wuY2hpbGRyZW5bY2VsbC5zdWJDb2xJbmRleF0pIHtcbiAgICAgICAgICBjb2wgPSBjb2wuY2hpbGRyZW5bY2VsbC5zdWJDb2xJbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXROZXN0ZWRWYWx1ZShyb3csIGNvbCwgJycpO1xuICAgICAgfVxuICAgICAgLy8gc2VsZWN0ZWRDZWxscy5sZW5ndGggPSAwO1xuICAgIH1cbiAgICByZXR1cm4ge3VwZGF0ZWREYXRhOiB1cGRhdGVkRGF0YSwgdXBkYXRlZFJvd3M6IHRoaXMudXBkYXRlUm93c307XG4gIH1cblxuXG4gIGN1dFdpdGhBbmltYXRpb24oXG4gICAgc2VsZWN0ZWREYXRhOiBhbnlbXVtdLFxuICAgIHNlbGVjdG9yID0gJy5zZWxlY3RlZC1jZWxsLCAuYWN0aXZlLWNlbGwsIC5yb3ctc2VsZWN0ZWQnXG4gICk6IHZvaWQge1xuICAgIGlmICghc2VsZWN0ZWREYXRhIHx8IHNlbGVjdGVkRGF0YS5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIGNvbnN0IHRleHRUb0NvcHkgPSBzZWxlY3RlZERhdGFcbiAgICAgIC5tYXAocm93ID0+IHJvdy5tYXAoY2VsbCA9PiAoY2VsbCA/PyAnJykudG9TdHJpbmcoKSkuam9pbignXFx0JykpXG4gICAgICAuam9pbignXFxuJyk7XG5cbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0VG9Db3B5KS5jYXRjaChlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpKTtcblxuICAgIC8vIEFwcGx5IHJlZCBjdXQgYW5pbWF0aW9uXG4gICAgY29uc3Qgc2VsZWN0ZWRFbHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgICBzZWxlY3RlZEVscy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5hZGQoJ2N1dC1mbGFzaC1iZycpKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHNlbGVjdGVkRWxzLmZvckVhY2goZWwgPT4gZWwuY2xhc3NMaXN0LnJlbW92ZSgnY3V0LWZsYXNoLWJnJykpO1xuICAgIH0sIDEwMDApO1xuICB9XG5cblxufVxuIl19
|