@glimmer/opcode-compiler
Advanced tools
Comparing version 0.74.0 to 0.74.1
@@ -122,3 +122,3 @@ "use strict"; | ||
let then = op[2]; | ||
then(name); | ||
then(name, meta.moduleName); | ||
} | ||
@@ -294,2 +294,2 @@ | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQXlCQTs7QUFDQTs7QUFDQTs7QUFRQTs7QUFDQTs7QUFFTSxNQUFBLE1BQUEsQ0FBYTtBQUFuQixFQUFBLFdBQUEsR0FBQTtBQUNFLFNBQUEsTUFBQSxHQUFBLGlCQUFBO0FBQ0EsU0FBQSxPQUFBLEdBQUEsRUFBQTtBQXFCRDs7QUFuQkMsRUFBQSxLQUFLLENBQUEsSUFBQSxFQUFBLEtBQUEsRUFBNEI7QUFDL0IsU0FBQSxNQUFBLENBQUEsSUFBQSxJQUFBLEtBQUE7QUFDRDs7QUFFRCxFQUFBLE1BQU0sQ0FBQSxFQUFBLEVBQUEsTUFBQSxFQUEyQjtBQUMvQixTQUFBLE9BQUEsQ0FBQSxJQUFBLENBQWtCO0FBQUEsTUFBQSxFQUFBO0FBQU0sTUFBQTtBQUFOLEtBQWxCO0FBQ0Q7O0FBRUQsRUFBQSxLQUFLLENBQUEsSUFBQSxFQUFzQjtBQUN6QixRQUFJO0FBQUEsTUFBQSxPQUFBO0FBQVcsTUFBQTtBQUFYLFFBQUosSUFBQTs7QUFDQSxTQUFLLElBQUksQ0FBQyxHQUFWLENBQUEsRUFBZ0IsQ0FBQyxHQUFHLE9BQU8sQ0FBM0IsTUFBQSxFQUFvQyxDQUFwQyxFQUFBLEVBQXlDO0FBQ3ZDLFVBQUk7QUFBQSxRQUFBLEVBQUE7QUFBTSxRQUFBO0FBQU4sVUFBaUIsT0FBTyxDQUE1QixDQUE0QixDQUE1QjtBQUNBLFVBQUksT0FBTyxHQUFHLE1BQU0sQ0FBTixNQUFNLENBQU4sR0FBZCxFQUFBO0FBRnVDLGVBSXZDLGtCQUFPLElBQUksQ0FBSixTQUFBLENBQUEsRUFBQSxNQUF1QixDQUF4QixDQUFOLEVBSnVDLHdEQUl2QyxDQUp1QztBQU12QyxNQUFBLElBQUksQ0FBSixTQUFBLENBQUEsRUFBQSxFQUFBLE9BQUE7QUFDRDtBQUNGOztBQXRC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LENBQWIsQ0FBUDs7QUFFRixlQUFBO0FBQUE7QUFBQTtBQUNFLG1CQUFPLHdCQUFhLFNBQVMsQ0FBVCxLQUFBLENBQWdCLHlDQUFnQixPQUFPLENBQVIsS0FBZixFQUErQixLQUFuRSxJQUFvQyxDQUFoQixDQUFiLENBQVA7O0FBRUYsZUFBQTtBQUFBO0FBQUE7QUFDRSxtQkFDRSxLQURLLE1BQ0wsQ0FFQSxPQUFPLENBSFQsS0FDRSxDQURGOztBQUtGLGVBQUE7QUFBQTtBQUFBO0FBQ0EsZUFBQTtBQUFBO0FBQUE7QUFDQSxlQUFBO0FBQUE7QUFBQTtBQUNFLG1CQUFPLFNBQVMsQ0FBVCxLQUFBLENBQWdCLE9BQU8sQ0FBOUIsS0FBTyxDQUFQO0FBdkJKO0FBeUJEO0FBQ0Y7O0FBRUQsV0FBTyx3QkFBYSxTQUFTLENBQVQsS0FBQSxDQUFwQixPQUFvQixDQUFiLENBQVA7QUFDRDs7QUFFRCxNQUFBLGFBQUEsR0FBeUI7QUFDdkIsV0FBYyxLQUFBLFdBQUEsQ0FBZCxPQUFBO0FBQ0Q7O0FBRUQsRUFBQSxLQUFLLENBQUEsSUFBQSxFQUFhO0FBQ2hCLFNBQUEsYUFBQSxDQUFBLEtBQUEsQ0FBQSxJQUFBLEVBQStCLEtBQUEsSUFBQSxDQUFBLE1BQUEsR0FBL0IsQ0FBQTtBQUNEOztBQUVELEVBQUEsV0FBVyxHQUFBO0FBQ1QsU0FBQSxXQUFBLENBQUEsSUFBQSxDQUFzQixJQUF0QixNQUFzQixFQUF0QjtBQUNEOztBQUVELEVBQUEsVUFBVSxHQUFBO0FBQ1IsUUFBSSxLQUFLLEdBQVUsS0FBQSxXQUFBLENBQW5CLEdBQW1CLEVBQW5CO0FBQ0EsSUFBQSxLQUFLLENBQUwsS0FBQSxDQUFZLEtBQVosSUFBQTtBQUNEOztBQTdHcUI7Ozs7QUFnSHhCLFNBQUEsZUFBQSxDQUFBLEVBQUEsRUFBbUM7QUFDakMsU0FBTyxFQUFFLEdBQUE7QUFBQTtBQUFUO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnN0cnVjdGlvbkVuY29kZXJJbXBsIH0gZnJvbSAnQGdsaW1tZXIvZW5jb2Rlcic7XG5pbXBvcnQge1xuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgT3BlcmFuZCxcbiAgQ29tcGlsZVRpbWVIZWFwLFxuICBPcCxcbiAgQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBTaW5nbGVCdWlsZGVyT3BlcmFuZCxcbiAgRW5jb2RlcixcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgSGlnaExldmVsT3AsXG4gIE9wY29kZVNpemUsXG4gIEluc3RydWN0aW9uRW5jb2RlcixcbiAgRGljdCxcbiAgRW5jb2RlckVycm9yLFxuICBIYW5kbGVSZXN1bHQsXG4gIEJ1aWxkZXJPcCxcbiAgQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgQ29udGFpbmluZ01ldGFkYXRhLFxuICBIaWdoTGV2ZWxPcGVyYW5kLFxuICBTVERMaWIsXG4gIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGlzTWFjaGluZU9wIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgU3RhY2ssIGRpY3QsIGV4cGVjdCwgRU1QVFlfU1RSSU5HX0FSUkFZLCBlbmNvZGVIYW5kbGUsIGFzc2VydCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZUNvbXBvbmVudCxcbiAgcmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLFxuICByZXNvbHZlSGVscGVyLFxuICByZXNvbHZlTW9kaWZpZXIsXG4gIHJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLFxuICByZXNvbHZlT3B0aW9uYWxIZWxwZXIsXG59IGZyb20gJy4vaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IGNvbXBpbGFibGVCbG9jayB9IGZyb20gJy4uL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY2xhc3MgTGFiZWxzIHtcbiAgbGFiZWxzOiBEaWN0PG51bWJlcj4gPSBkaWN0KCk7XG4gIHRhcmdldHM6IEFycmF5PHsgYXQ6IG51bWJlcjsgdGFyZ2V0OiBzdHJpbmcgfT4gPSBbXTtcblxuICBsYWJlbChuYW1lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmxhYmVsc1tuYW1lXSA9IGluZGV4O1xuICB9XG5cbiAgdGFyZ2V0KGF0OiBudW1iZXIsIHRhcmdldDogc3RyaW5nKSB7XG4gICAgdGhpcy50YXJnZXRzLnB1c2goeyBhdCwgdGFyZ2V0IH0pO1xuICB9XG5cbiAgcGF0Y2goaGVhcDogQ29tcGlsZVRpbWVIZWFwKTogdm9pZCB7XG4gICAgbGV0IHsgdGFyZ2V0cywgbGFiZWxzIH0gPSB0aGlzO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0cy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHsgYXQsIHRhcmdldCB9ID0gdGFyZ2V0c1tpXTtcbiAgICAgIGxldCBhZGRyZXNzID0gbGFiZWxzW3RhcmdldF0gLSBhdDtcblxuICAgICAgYXNzZXJ0KGhlYXAuZ2V0YnlhZGRyKGF0KSA9PT0gLTEsICdFeHBlY3RlZCBoZWFwIHRvIGNvbnRhaW4gYSBwbGFjZWhvbGRlciwgYnV0IGl0IGRpZCBub3QnKTtcblxuICAgICAgaGVhcC5zZXRieWFkZHIoYXQsIGFkZHJlc3MpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlT3AoXG4gIGVuY29kZXI6IEVuY29kZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgb3A6IEJ1aWxkZXJPcCB8IEhpZ2hMZXZlbE9wXG4pOiB2b2lkIHtcbiAgaWYgKGlzQnVpbGRlck9wY29kZShvcFswXSkpIHtcbiAgICBsZXQgW3R5cGUsIC4uLm9wZXJhbmRzXSA9IG9wO1xuICAgIGVuY29kZXIucHVzaChjb25zdGFudHMsIHR5cGUsIC4uLihvcGVyYW5kcyBhcyBTaW5nbGVCdWlsZGVyT3BlcmFuZFtdKSk7XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgY2FzZSBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsOlxuICAgICAgICByZXR1cm4gZW5jb2Rlci5sYWJlbChvcFsxXSk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuU3RhcnRMYWJlbHM6XG4gICAgICAgIHJldHVybiBlbmNvZGVyLnN0YXJ0TGFiZWxzKCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuU3RvcExhYmVsczpcbiAgICAgICAgcmV0dXJuIGVuY29kZXIuc3RvcExhYmVscygpO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudDpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVDb21wb25lbnQocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVNb2RpZmllcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVNb2RpZmllcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUhlbHBlcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVIZWxwZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnRPckhlbHBlcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVDb21wb25lbnRPckhlbHBlcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsSGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZU9wdGlvbmFsSGVscGVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcblxuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbDpcbiAgICAgICAgbGV0IGZyZWVWYXIgPSBvcFsxXTtcbiAgICAgICAgbGV0IG5hbWUgPSBleHBlY3QobWV0YS51cHZhcnMsICdCVUc6IGF0dGVtcHRlZCB0byByZXNvbHZlIHZhbHVlIGJ1dCBubyB1cHZhcnMgZm91bmQnKVtcbiAgICAgICAgICBmcmVlVmFyXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKG1ldGEuYXNQYXJ0aWFsID09PSB0cnVlKSB7XG4gICAgICAgICAgZW5jb2Rlci5wdXNoKGNvbnN0YW50cywgT3AuUmVzb2x2ZU1heWJlTG9jYWwsIG5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCB0aGVuID0gb3BbMl07XG5cbiAgICAgICAgICB0aGVuKG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlVGVtcGxhdGVMb2NhbDpcbiAgICAgICAgbGV0IFssIHZhbHVlSW5kZXgsIHRoZW5dID0gb3A7XG4gICAgICAgIGxldCB2YWx1ZSA9IGV4cGVjdChcbiAgICAgICAgICBtZXRhLnNjb3BlVmFsdWVzLFxuICAgICAgICAgICdCVUc6IEF0dGVtcHRlZCB0byBnZWN0IGEgdGVtcGxhdGUgbG9jYWwsIGJ1dCB0ZW1wbGF0ZSBkb2VzIG5vdCBoYXZlIGFueSdcbiAgICAgICAgKVt2YWx1ZUluZGV4XTtcblxuICAgICAgICB0aGVuKGNvbnN0YW50cy52YWx1ZSh2YWx1ZSkpO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUZyZWU6XG4gICAgICAgIGlmIChERUJVRykge1xuICAgICAgICAgIGxldCBbLCB1cHZhckluZGV4XSA9IG9wO1xuICAgICAgICAgIGxldCBmcmVlTmFtZSA9IGV4cGVjdChtZXRhLnVwdmFycywgJ0JVRzogYXR0ZW1wdGVkIHRvIHJlc29sdmUgdmFsdWUgYnV0IG5vIHVwdmFycyBmb3VuZCcpW1xuICAgICAgICAgICAgdXB2YXJJbmRleFxuICAgICAgICAgIF07XG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSB2YWx1ZSBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke2ZyZWVOYW1lfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgaGlnaCBsZXZlbCBvcGNvZGUgJHtvcFswXX1gKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVuY29kZXJJbXBsIGltcGxlbWVudHMgRW5jb2RlciB7XG4gIHByaXZhdGUgbGFiZWxzU3RhY2sgPSBuZXcgU3RhY2s8TGFiZWxzPigpO1xuICBwcml2YXRlIGVuY29kZXI6IEluc3RydWN0aW9uRW5jb2RlciA9IG5ldyBJbnN0cnVjdGlvbkVuY29kZXJJbXBsKFtdKTtcbiAgcHJpdmF0ZSBlcnJvcnM6IEVuY29kZXJFcnJvcltdID0gW107XG4gIHByaXZhdGUgaGFuZGxlOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBoZWFwOiBDb21waWxlVGltZUhlYXAsXG4gICAgcHJpdmF0ZSBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gICAgcHJpdmF0ZSBzdGRsaWI/OiBTVERMaWJcbiAgKSB7XG4gICAgdGhpcy5oYW5kbGUgPSBoZWFwLm1hbGxvYygpO1xuICB9XG5cbiAgZXJyb3IoZXJyb3I6IEVuY29kZXJFcnJvcik6IHZvaWQge1xuICAgIHRoaXMuZW5jb2Rlci5lbmNvZGUoT3AuUHJpbWl0aXZlLCAwKTtcbiAgICB0aGlzLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgfVxuXG4gIGNvbW1pdChzaXplOiBudW1iZXIpOiBIYW5kbGVSZXN1bHQge1xuICAgIGxldCBoYW5kbGUgPSB0aGlzLmhhbmRsZTtcblxuICAgIHRoaXMuaGVhcC5wdXNoKE1hY2hpbmVPcC5SZXR1cm4gfCBPcGNvZGVTaXplLk1BQ0hJTkVfTUFTSyk7XG4gICAgdGhpcy5oZWFwLmZpbmlzaE1hbGxvYyhoYW5kbGUsIHNpemUpO1xuXG4gICAgaWYgKHRoaXMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHsgZXJyb3JzOiB0aGlzLmVycm9ycywgaGFuZGxlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBoYW5kbGU7XG4gICAgfVxuICB9XG5cbiAgcHVzaChcbiAgICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICAgIHR5cGU6IEJ1aWxkZXJPcGNvZGUsXG4gICAgLi4uYXJnczogU2luZ2xlQnVpbGRlck9wZXJhbmRbXVxuICApOiB2b2lkIHtcbiAgICBsZXQgeyBoZWFwIH0gPSB0aGlzO1xuXG4gICAgaWYgKERFQlVHICYmICh0eXBlIGFzIG51bWJlcikgPiBPcGNvZGVTaXplLlRZUEVfU0laRSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBPcGNvZGUgdHlwZSBvdmVyIDgtYml0cy4gR290ICR7dHlwZX0uYCk7XG4gICAgfVxuXG4gICAgbGV0IG1hY2hpbmUgPSBpc01hY2hpbmVPcCh0eXBlKSA/IE9wY29kZVNpemUuTUFDSElORV9NQVNLIDogMDtcbiAgICBsZXQgZmlyc3QgPSB0eXBlIHwgbWFjaGluZSB8IChhcmdzLmxlbmd0aCA8PCBPcGNvZGVTaXplLkFSR19TSElGVCk7XG5cbiAgICBoZWFwLnB1c2goZmlyc3QpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgb3AgPSBhcmdzW2ldO1xuICAgICAgaGVhcC5wdXNoKHRoaXMub3BlcmFuZChjb25zdGFudHMsIG9wKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVyYW5kKGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMsIG9wZXJhbmQ6IFNpbmdsZUJ1aWxkZXJPcGVyYW5kKTogT3BlcmFuZCB7XG4gICAgaWYgKHR5cGVvZiBvcGVyYW5kID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIG9wZXJhbmQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcGVyYW5kID09PSAnb2JqZWN0JyAmJiBvcGVyYW5kICE9PSBudWxsKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvcGVyYW5kKSkge1xuICAgICAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy5hcnJheShvcGVyYW5kKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKG9wZXJhbmQudHlwZSkge1xuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5MYWJlbDpcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExhYmVscy50YXJnZXQodGhpcy5oZWFwLm9mZnNldCwgb3BlcmFuZC52YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuSXNTdHJpY3RNb2RlOlxuICAgICAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMudmFsdWUodGhpcy5tZXRhLmlzU3RyaWN0TW9kZSkpO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLkV2YWxTeW1ib2xzOlxuICAgICAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMuYXJyYXkodGhpcy5tZXRhLmV2YWxTeW1ib2xzIHx8IEVNUFRZX1NUUklOR19BUlJBWSkpO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLkJsb2NrOlxuICAgICAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMudmFsdWUoY29tcGlsYWJsZUJsb2NrKG9wZXJhbmQudmFsdWUsIHRoaXMubWV0YSkpKTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5TdGRMaWI6XG4gICAgICAgICAgICByZXR1cm4gZXhwZWN0KFxuICAgICAgICAgICAgICB0aGlzLnN0ZGxpYixcbiAgICAgICAgICAgICAgJ2F0dGVtcHRlZCB0byBlbmNvZGUgYSBzdGRsaWIgb3BlcmFuZCwgYnV0IHRoZSBlbmNvZGVyIGRpZCBub3QgaGF2ZSBhIHN0ZGxpYi4gQXJlIHlvdSBjdXJyZW50bHkgYnVpbGRpbmcgdGhlIHN0ZGxpYj8nXG4gICAgICAgICAgICApW29wZXJhbmQudmFsdWVdO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLk5vblNtYWxsSW50OlxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5TeW1ib2xUYWJsZTpcbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuTGF5b3V0OlxuICAgICAgICAgICAgcmV0dXJuIGNvbnN0YW50cy52YWx1ZShvcGVyYW5kLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLnZhbHVlKG9wZXJhbmQpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGN1cnJlbnRMYWJlbHMoKTogTGFiZWxzIHtcbiAgICByZXR1cm4gZXhwZWN0KHRoaXMubGFiZWxzU3RhY2suY3VycmVudCwgJ2J1Zzogbm90IGluIGEgbGFiZWwgc3RhY2snKTtcbiAgfVxuXG4gIGxhYmVsKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudExhYmVscy5sYWJlbChuYW1lLCB0aGlzLmhlYXAub2Zmc2V0ICsgMSk7XG4gIH1cblxuICBzdGFydExhYmVscygpIHtcbiAgICB0aGlzLmxhYmVsc1N0YWNrLnB1c2gobmV3IExhYmVscygpKTtcbiAgfVxuXG4gIHN0b3BMYWJlbHMoKSB7XG4gICAgbGV0IGxhYmVsID0gZXhwZWN0KHRoaXMubGFiZWxzU3RhY2sucG9wKCksICd1bmJhbGFuY2VkIHB1c2ggYW5kIHBvcCBsYWJlbHMnKTtcbiAgICBsYWJlbC5wYXRjaCh0aGlzLmhlYXApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzQnVpbGRlck9wY29kZShvcDogbnVtYmVyKTogb3AgaXMgQnVpbGRlck9wY29kZSB7XG4gIHJldHVybiBvcCA8IEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuU3RhcnQ7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQXlCQTs7QUFDQTs7QUFDQTs7QUFRQTs7QUFDQTs7QUFFTSxNQUFBLE1BQUEsQ0FBYTtBQUFuQixFQUFBLFdBQUEsR0FBQTtBQUNFLFNBQUEsTUFBQSxHQUFBLGlCQUFBO0FBQ0EsU0FBQSxPQUFBLEdBQUEsRUFBQTtBQXFCRDs7QUFuQkMsRUFBQSxLQUFLLENBQUEsSUFBQSxFQUFBLEtBQUEsRUFBNEI7QUFDL0IsU0FBQSxNQUFBLENBQUEsSUFBQSxJQUFBLEtBQUE7QUFDRDs7QUFFRCxFQUFBLE1BQU0sQ0FBQSxFQUFBLEVBQUEsTUFBQSxFQUEyQjtBQUMvQixTQUFBLE9BQUEsQ0FBQSxJQUFBLENBQWtCO0FBQUEsTUFBQSxFQUFBO0FBQU0sTUFBQTtBQUFOLEtBQWxCO0FBQ0Q7O0FBRUQsRUFBQSxLQUFLLENBQUEsSUFBQSxFQUFzQjtBQUN6QixRQUFJO0FBQUEsTUFBQSxPQUFBO0FBQVcsTUFBQTtBQUFYLFFBQUosSUFBQTs7QUFDQSxTQUFLLElBQUksQ0FBQyxHQUFWLENBQUEsRUFBZ0IsQ0FBQyxHQUFHLE9BQU8sQ0FBM0IsTUFBQSxFQUFvQyxDQUFwQyxFQUFBLEVBQXlDO0FBQ3ZDLFVBQUk7QUFBQSxRQUFBLEVBQUE7QUFBTSxRQUFBO0FBQU4sVUFBaUIsT0FBTyxDQUE1QixDQUE0QixDQUE1QjtBQUNBLFVBQUksT0FBTyxHQUFHLE1BQU0sQ0FBTixNQUFNLENBQU4sR0FBZCxFQUFBO0FBRnVDLGVBSXZDLGtCQUFPLElBQUksQ0FBSixTQUFBLENBQUEsRUFBQSxNQUF1QixDQUF4QixDQUFOLEVBSnVDLHdEQUl2QyxDQUp1QztBQU12QyxNQUFBLElBQUksQ0FBSixTQUFBLENBQUEsRUFBQSxFQUFBLE9BQUE7QUFDRDtBQUNGOztBQXRC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Z2xpbW1lci9lbmNvZGVyJztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICBPcGVyYW5kLFxuICBDb21waWxlVGltZUhlYXAsXG4gIE9wLFxuICBCdWlsZGVyT3Bjb2RlLFxuICBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIFNpbmdsZUJ1aWxkZXJPcGVyYW5kLFxuICBFbmNvZGVyLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBIaWdoTGV2ZWxPcCxcbiAgT3Bjb2RlU2l6ZSxcbiAgSW5zdHJ1Y3Rpb25FbmNvZGVyLFxuICBEaWN0LFxuICBFbmNvZGVyRXJyb3IsXG4gIEhhbmRsZVJlc3VsdCxcbiAgQnVpbGRlck9wLFxuICBDb21waWxlVGltZVJlc29sdmVyLFxuICBDb250YWluaW5nTWV0YWRhdGEsXG4gIEhpZ2hMZXZlbE9wZXJhbmQsXG4gIFNURExpYixcbiAgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgaXNNYWNoaW5lT3AgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBTdGFjaywgZGljdCwgZXhwZWN0LCBFTVBUWV9TVFJJTkdfQVJSQVksIGVuY29kZUhhbmRsZSwgYXNzZXJ0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQge1xuICByZXNvbHZlQ29tcG9uZW50LFxuICByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIsXG4gIHJlc29sdmVIZWxwZXIsXG4gIHJlc29sdmVNb2RpZmllcixcbiAgcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsXG4gIHJlc29sdmVPcHRpb25hbEhlbHBlcixcbn0gZnJvbSAnLi9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgY29tcGlsYWJsZUJsb2NrIH0gZnJvbSAnLi4vY29tcGlsYWJsZS10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5cbmV4cG9ydCBjbGFzcyBMYWJlbHMge1xuICBsYWJlbHM6IERpY3Q8bnVtYmVyPiA9IGRpY3QoKTtcbiAgdGFyZ2V0czogQXJyYXk8eyBhdDogbnVtYmVyOyB0YXJnZXQ6IHN0cmluZyB9PiA9IFtdO1xuXG4gIGxhYmVsKG5hbWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubGFiZWxzW25hbWVdID0gaW5kZXg7XG4gIH1cblxuICB0YXJnZXQoYXQ6IG51bWJlciwgdGFyZ2V0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhcmdldHMucHVzaCh7IGF0LCB0YXJnZXQgfSk7XG4gIH1cblxuICBwYXRjaChoZWFwOiBDb21waWxlVGltZUhlYXApOiB2b2lkIHtcbiAgICBsZXQgeyB0YXJnZXRzLCBsYWJlbHMgfSA9IHRoaXM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YXJnZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgeyBhdCwgdGFyZ2V0IH0gPSB0YXJnZXRzW2ldO1xuICAgICAgbGV0IGFkZHJlc3MgPSBsYWJlbHNbdGFyZ2V0XSAtIGF0O1xuXG4gICAgICBhc3NlcnQoaGVhcC5nZXRieWFkZHIoYXQpID09PSAtMSwgJ0V4cGVjdGVkIGhlYXAgdG8gY29udGFpbiBhIHBsYWNlaG9sZGVyLCBidXQgaXQgZGlkIG5vdCcpO1xuXG4gICAgICBoZWFwLnNldGJ5YWRkcihhdCwgYWRkcmVzcyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVPcChcbiAgZW5jb2RlcjogRW5jb2RlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBvcDogQnVpbGRlck9wIHwgSGlnaExldmVsT3Bcbik6IHZvaWQge1xuICBpZiAoaXNCdWlsZGVyT3Bjb2RlKG9wWzBdKSkge1xuICAgIGxldCBbdHlwZSwgLi4ub3BlcmFuZHNdID0gb3A7XG4gICAgZW5jb2Rlci5wdXNoKGNvbnN0YW50cywgdHlwZSwgLi4uKG9wZXJhbmRzIGFzIFNpbmdsZUJ1aWxkZXJPcGVyYW5kW10pKTtcbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICBjYXNlIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWw6XG4gICAgICAgIHJldHVybiBlbmNvZGVyLmxhYmVsKG9wWzFdKTtcbiAgICAgIGNhc2UgSGlnaExldmVsQnVpbGRlck9wY29kZS5TdGFydExhYmVsczpcbiAgICAgICAgcmV0dXJuIGVuY29kZXIuc3RhcnRMYWJlbHMoKTtcbiAgICAgIGNhc2UgSGlnaExldmVsQnVpbGRlck9wY29kZS5TdG9wTGFiZWxzOlxuICAgICAgICByZXR1cm4gZW5jb2Rlci5zdG9wTGFiZWxzKCk7XG5cbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50OlxuICAgICAgICByZXR1cm4gcmVzb2x2ZUNvbXBvbmVudChyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU1vZGlmaWVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZU1vZGlmaWVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlSGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZUhlbHBlcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXI6XG4gICAgICAgIHJldHVybiByZXNvbHZlT3B0aW9uYWxIZWxwZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUxvY2FsOlxuICAgICAgICBsZXQgZnJlZVZhciA9IG9wWzFdO1xuICAgICAgICBsZXQgbmFtZSA9IGV4cGVjdChtZXRhLnVwdmFycywgJ0JVRzogYXR0ZW1wdGVkIHRvIHJlc29sdmUgdmFsdWUgYnV0IG5vIHVwdmFycyBmb3VuZCcpW1xuICAgICAgICAgIGZyZWVWYXJcbiAgICAgICAgXTtcblxuICAgICAgICBpZiAobWV0YS5hc1BhcnRpYWwgPT09IHRydWUpIHtcbiAgICAgICAgICBlbmNvZGVyLnB1c2goY29uc3RhbnRzLCBPcC5SZXNvbHZlTWF5YmVMb2NhbCwgbmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IHRoZW4gPSBvcFsyXTtcblxuICAgICAgICAgIHRoZW4obmFtZSwgbWV0YS5tb2R1bGVOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZVRlbXBsYXRlTG9jYWw6XG4gICAgICAgIGxldCBbLCB2YWx1ZUluZGV4LCB0aGVuXSA9IG9wO1xuICAgICAgICBsZXQgdmFsdWUgPSBleHBlY3QoXG4gICAgICAgICAgbWV0YS5zY29wZVZhbHVlcyxcbiAgICAgICAgICAnQlVHOiBBdHRlbXB0ZWQgdG8gZ2VjdCBhIHRlbXBsYXRlIGxvY2FsLCBidXQgdGVtcGxhdGUgZG9lcyBub3QgaGF2ZSBhbnknXG4gICAgICAgIClbdmFsdWVJbmRleF07XG5cbiAgICAgICAgdGhlbihjb25zdGFudHMudmFsdWUodmFsdWUpKTtcblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVGcmVlOlxuICAgICAgICBpZiAoREVCVUcpIHtcbiAgICAgICAgICBsZXQgWywgdXB2YXJJbmRleF0gPSBvcDtcbiAgICAgICAgICBsZXQgZnJlZU5hbWUgPSBleHBlY3QobWV0YS51cHZhcnMsICdCVUc6IGF0dGVtcHRlZCB0byByZXNvbHZlIHZhbHVlIGJ1dCBubyB1cHZhcnMgZm91bmQnKVtcbiAgICAgICAgICAgIHVwdmFySW5kZXhcbiAgICAgICAgICBdO1xuXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgdmFsdWUgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtmcmVlTmFtZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGhpZ2ggbGV2ZWwgb3Bjb2RlICR7b3BbMF19YCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbmNvZGVySW1wbCBpbXBsZW1lbnRzIEVuY29kZXIge1xuICBwcml2YXRlIGxhYmVsc1N0YWNrID0gbmV3IFN0YWNrPExhYmVscz4oKTtcbiAgcHJpdmF0ZSBlbmNvZGVyOiBJbnN0cnVjdGlvbkVuY29kZXIgPSBuZXcgSW5zdHJ1Y3Rpb25FbmNvZGVySW1wbChbXSk7XG4gIHByaXZhdGUgZXJyb3JzOiBFbmNvZGVyRXJyb3JbXSA9IFtdO1xuICBwcml2YXRlIGhhbmRsZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaGVhcDogQ29tcGlsZVRpbWVIZWFwLFxuICAgIHByaXZhdGUgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICAgIHByaXZhdGUgc3RkbGliPzogU1RETGliXG4gICkge1xuICAgIHRoaXMuaGFuZGxlID0gaGVhcC5tYWxsb2MoKTtcbiAgfVxuXG4gIGVycm9yKGVycm9yOiBFbmNvZGVyRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmVuY29kZXIuZW5jb2RlKE9wLlByaW1pdGl2ZSwgMCk7XG4gICAgdGhpcy5lcnJvcnMucHVzaChlcnJvcik7XG4gIH1cblxuICBjb21taXQoc2l6ZTogbnVtYmVyKTogSGFuZGxlUmVzdWx0IHtcbiAgICBsZXQgaGFuZGxlID0gdGhpcy5oYW5kbGU7XG5cbiAgICB0aGlzLmhlYXAucHVzaChNYWNoaW5lT3AuUmV0dXJuIHwgT3Bjb2RlU2l6ZS5NQUNISU5FX01BU0spO1xuICAgIHRoaXMuaGVhcC5maW5pc2hNYWxsb2MoaGFuZGxlLCBzaXplKTtcblxuICAgIGlmICh0aGlzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7IGVycm9yczogdGhpcy5lcnJvcnMsIGhhbmRsZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaGFuZGxlO1xuICAgIH1cbiAgfVxuXG4gIHB1c2goXG4gICAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgICB0eXBlOiBCdWlsZGVyT3Bjb2RlLFxuICAgIC4uLmFyZ3M6IFNpbmdsZUJ1aWxkZXJPcGVyYW5kW11cbiAgKTogdm9pZCB7XG4gICAgbGV0IHsgaGVhcCB9ID0gdGhpcztcblxuICAgIGlmIChERUJVRyAmJiAodHlwZSBhcyBudW1iZXIpID4gT3Bjb2RlU2l6ZS5UWVBFX1NJWkUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgT3Bjb2RlIHR5cGUgb3ZlciA4LWJpdHMuIEdvdCAke3R5cGV9LmApO1xuICAgIH1cblxuICAgIGxldCBtYWNoaW5lID0gaXNNYWNoaW5lT3AodHlwZSkgPyBPcGNvZGVTaXplLk1BQ0hJTkVfTUFTSyA6IDA7XG4gICAgbGV0IGZpcnN0ID0gdHlwZSB8IG1hY2hpbmUgfCAoYXJncy5sZW5ndGggPDwgT3Bjb2RlU2l6ZS5BUkdfU0hJRlQpO1xuXG4gICAgaGVhcC5wdXNoKGZpcnN0KTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IG9wID0gYXJnc1tpXTtcbiAgICAgIGhlYXAucHVzaCh0aGlzLm9wZXJhbmQoY29uc3RhbnRzLCBvcCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlcmFuZChjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzLCBvcGVyYW5kOiBTaW5nbGVCdWlsZGVyT3BlcmFuZCk6IE9wZXJhbmQge1xuICAgIGlmICh0eXBlb2Ygb3BlcmFuZCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBvcGVyYW5kO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3BlcmFuZCA9PT0gJ29iamVjdCcgJiYgb3BlcmFuZCAhPT0gbnVsbCkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3BlcmFuZCkpIHtcbiAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMuYXJyYXkob3BlcmFuZCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChvcGVyYW5kLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuTGFiZWw6XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMYWJlbHMudGFyZ2V0KHRoaXMuaGVhcC5vZmZzZXQsIG9wZXJhbmQudmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLklzU3RyaWN0TW9kZTpcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLnZhbHVlKHRoaXMubWV0YS5pc1N0cmljdE1vZGUpKTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5FdmFsU3ltYm9sczpcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLmFycmF5KHRoaXMubWV0YS5ldmFsU3ltYm9scyB8fCBFTVBUWV9TVFJJTkdfQVJSQVkpKTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5CbG9jazpcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLnZhbHVlKGNvbXBpbGFibGVCbG9jayhvcGVyYW5kLnZhbHVlLCB0aGlzLm1ldGEpKSk7XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuU3RkTGliOlxuICAgICAgICAgICAgcmV0dXJuIGV4cGVjdChcbiAgICAgICAgICAgICAgdGhpcy5zdGRsaWIsXG4gICAgICAgICAgICAgICdhdHRlbXB0ZWQgdG8gZW5jb2RlIGEgc3RkbGliIG9wZXJhbmQsIGJ1dCB0aGUgZW5jb2RlciBkaWQgbm90IGhhdmUgYSBzdGRsaWIuIEFyZSB5b3UgY3VycmVudGx5IGJ1aWxkaW5nIHRoZSBzdGRsaWI/J1xuICAgICAgICAgICAgKVtvcGVyYW5kLnZhbHVlXTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5Ob25TbWFsbEludDpcbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuU3ltYm9sVGFibGU6XG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLkxheW91dDpcbiAgICAgICAgICAgIHJldHVybiBjb25zdGFudHMudmFsdWUob3BlcmFuZC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy52YWx1ZShvcGVyYW5kKSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBjdXJyZW50TGFiZWxzKCk6IExhYmVscyB7XG4gICAgcmV0dXJuIGV4cGVjdCh0aGlzLmxhYmVsc1N0YWNrLmN1cnJlbnQsICdidWc6IG5vdCBpbiBhIGxhYmVsIHN0YWNrJyk7XG4gIH1cblxuICBsYWJlbChuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRMYWJlbHMubGFiZWwobmFtZSwgdGhpcy5oZWFwLm9mZnNldCArIDEpO1xuICB9XG5cbiAgc3RhcnRMYWJlbHMoKSB7XG4gICAgdGhpcy5sYWJlbHNTdGFjay5wdXNoKG5ldyBMYWJlbHMoKSk7XG4gIH1cblxuICBzdG9wTGFiZWxzKCkge1xuICAgIGxldCBsYWJlbCA9IGV4cGVjdCh0aGlzLmxhYmVsc1N0YWNrLnBvcCgpLCAndW5iYWxhbmNlZCBwdXNoIGFuZCBwb3AgbGFiZWxzJyk7XG4gICAgbGFiZWwucGF0Y2godGhpcy5oZWFwKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0J1aWxkZXJPcGNvZGUob3A6IG51bWJlcik6IG9wIGlzIEJ1aWxkZXJPcGNvZGUge1xuICByZXR1cm4gb3AgPCBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLlN0YXJ0O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== |
@@ -273,3 +273,3 @@ "use strict"; | ||
if (helper === null) { | ||
ifFallback(name); | ||
ifFallback(name, meta.moduleName); | ||
} else { | ||
@@ -365,2 +365,2 @@ ifHelper(constants.helper(helper, name)); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFnQkE7O0FBRUEsU0FBQSxjQUFBLENBQUEsTUFBQSxFQUFzRDtBQUNwRCxTQUFPLEtBQUssQ0FBTCxPQUFBLENBQUEsTUFBQSxLQUF5QixNQUFNLENBQU4sTUFBQSxLQUFoQyxDQUFBO0FBQ0Q7O0FBRUQsU0FBQSwwQkFBQSxDQUFBLFlBQUEsRUFBNkQ7QUFDM0QsU0FDRSxNQURLLElBRTREO0FBQ2pFLFFBQUksQ0FBQyxjQUFjLENBQW5CLE1BQW1CLENBQW5CLEVBQTZCLE9BQUEsS0FBQTtBQUU3QixRQUFJLElBQUksR0FBRyxNQUFNLENBQWpCLENBQWlCLENBQWpCO0FBRUEsV0FDRSxJQUFJLEtBQUE7QUFBQTtBQUFKLE9BQ0EsSUFBSSxLQUFBO0FBQUE7QUFESixPQUVBLElBQUksS0FITixZQUFBO0FBUEYsR0FBQTtBQWFEOztBQUVNLE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJEOztBQUVBLE1BQU0saUJBQWlCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXBEOztBQUVBLE1BQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFsRDs7QUFFQSxNQUFNLDBCQUEwQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUE3RDs7QUFJQSxNQUFNLHVCQUF1QixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUExRDs7QUFJQSxNQUFNLGtDQUFrQyxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRTs7O0FBU1AsU0FBQSx3QkFBQSxDQUFBLElBQUEsRUFBMEQ7QUFDeEQsTUFBQSxVQUFBLEVBQVc7QUFDVCxRQUFJLENBQUMsSUFBSSxDQUFULE1BQUEsRUFBa0I7QUFDaEIsWUFBTSxJQUFBLEtBQUEsQ0FBTixvRkFBTSxDQUFOO0FBR0Q7O0FBRUQsUUFBSSxDQUFDLElBQUksQ0FBVCxLQUFBLEVBQWlCO0FBQ2YsWUFBTSxJQUFBLEtBQUEsQ0FBTixpSUFBTSxDQUFOO0FBR0Q7QUFDRjs7QUFFRCxTQUFBLElBQUE7QUFDRDtBQUVEOzs7Ozs7O0FBS00sU0FBQSxnQkFBQSxDQUFBLFFBQUEsRUFBQSxTQUFBLEVBQUEsSUFBQSxFQUlKLEdBQUEsSUFBQSxFQUpJLElBSUosQ0FKSSxFQUk4QjtBQUFBLFdBRWxDLGtCQUFPLGtCQUFrQixDQUFuQixJQUFtQixDQUF6QixFQUZrQyx3REFFbEMsQ0FGa0M7QUFJbEMsTUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFmLENBQWUsQ0FBZjs7QUFFQSxNQUFJLGNBQVMsSUFBSSxDQUFKLENBQUksQ0FBSixLQUFPO0FBQUE7QUFBcEIsSUFBb0Q7QUFDbEQsWUFBTSxJQUFBLEtBQUEsQ0FDSixnR0FDRSxJQUFJLENBQUosTUFBQSxDQUFhLElBQUksQ0FBakIsQ0FBaUIsQ0FBakIsQ0FGSixFQUFNLENBQU47QUFLRDs7QUFFRCxNQUFJLElBQUksS0FBQTtBQUFBO0FBQVIsSUFBNEM7QUFDMUMsVUFBSTtBQUFFLFFBQUE7QUFBRixVQUFKLElBQUE7QUFDQSxVQUFJLFVBQVUsR0FBVSxXQUFQLENBQ2YsSUFBSSxDQUROLENBQ00sQ0FEVyxDQUFqQjtBQUlBLE1BQUEsSUFBSSxDQUFDLFNBQVMsQ0FBVCxTQUFBLENBQUwsVUFBSyxDQUFELENBQUo7QUFORixLQUFBLE1BT087QUFDTCxRQUFJO0FBQUEsTUFBQSxNQUFBO0FBQVUsTUFBQTtBQUFWLFFBQW9CLHdCQUF3QixDQUFoRCxJQUFnRCxDQUFoRDtBQUVBLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQXRCLENBQXNCLENBQUwsQ0FBakI7QUFDQSxRQUFJLFVBQVUsR0FBRyxRQUFRLENBQVIsZUFBQSxDQUFBLElBQUEsRUFBakIsS0FBaUIsQ0FBakI7O0FBRUEsUUFBSSxlQUFVLE9BQUEsVUFBQSxLQUFBLFFBQUEsSUFBa0MsVUFBVSxLQUExRCxJQUFJLENBQUosRUFBc0U7QUFDcEUsWUFBTSxJQUFBLEtBQUEsQ0FDSiwwQkFBMEIsSUFENUIsa0VBQU0sQ0FBTjtBQUdEOztBQUVELElBQUEsSUFBSSxDQUFDLFNBQVMsQ0FBVCxpQkFBQSxDQUFBLFVBQUEsRUFBTCxJQUFLLENBQUQsQ0FBSjtBQUNEO0FBQ0Y7QUFFRDs7Ozs7O0FBSU0sU0FBQSxhQUFBLENBQUEsUUFBQSxFQUFBLFNBQUEsRUFBQSxJQUFBLEVBSUosR0FBQSxJQUFBLEVBSkksSUFJSixDQUpJLEVBSTJCO0FBQUEsV0FFL0Isa0JBQU8sZUFBZSxDQUFoQixJQUFnQixDQUF0QixFQUYrQixxREFFL0IsQ0FGK0I7QUFJL0IsTUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFmLENBQWUsQ0FBZjs7QUFFQSxNQUFJLElBQUksS0FBQTtBQUFBO0FBQVIsSUFBNEM7QUFDMUMsVUFBSTtBQUFFLFFBQUE7QUFBRixVQUFKLElBQUE7QUFDQSxVQUFJLFVBQVUsR0FBVSxXQUFQLENBQ2YsSUFBSSxDQUROLENBQ00sQ0FEVyxDQUFqQjtBQUlBLE1BQUEsSUFBSSxDQUFDLFNBQVMsQ0FBVCxNQUFBLENBQUwsVUFBSyxDQUFELENBQUo7QUFORixLQUFBLE1BT08sSUFBSSxJQUFJLEtBQUE7QUFBQTtBQUFSLElBQXdDO0FBQzdDLE1BQUEsSUFBSSxDQUNGLG1CQUFtQixDQUFBLElBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLFNBQUEsRUFEckIsUUFDcUIsQ0FEakIsQ0FBSjtBQURLLEtBQUEsTUFJQTtBQUNMLFFBQUk7QUFBQSxNQUFBLE1BQUE7QUFBVSxNQUFBO0FBQVYsUUFBb0Isd0JBQXdCLENBQWhELElBQWdELENBQWhEO0FBRUEsUUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBdEIsQ0FBc0IsQ0FBTCxDQUFqQjtBQUNBLFFBQUksTUFBTSxHQUFHLFFBQVEsQ0FBUixZQUFBLENBQUEsSUFBQSxFQUFiLEtBQWEsQ0FBYjs7QUFFQSxRQUFJLGNBQVMsTUFBTSxLQUFuQixJQUFBLEVBQThCO0FBQzVCLFlBQU0sSUFBQSxLQUFBLENBQ0osMEJBQTBCLElBRDVCLCtEQUFNLENBQU47QUFHRDs7QUFFRCxJQUFBLElBQUksQ0FBQyxTQUFTLENBQVQsTUFBQSxDQUFBLE1BQUEsRUFBTCxJQUFLLENBQUQsQ0FBSjtBQUNEO0FBQ0Y7QUFFRDs7Ozs7OztBQUtNLFNBQUEsZUFBQSxDQUFBLFFBQUEsRUFBQSxTQUFBLEVBQUEsSUFBQSxFQUlKLEdBQUEsSUFBQSxFQUpJLElBSUosQ0FKSSxFQUk2QjtBQUFBLFdBRWpDLGtCQUFPLGlCQUFpQixDQUFsQixJQUFrQixDQUF4QixFQUZpQyx1REFFakMsQ0FGaUM7QUFJakMsTUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFmLENBQWUsQ0FBZjs7QUFFQSxNQUFJLElBQUksS0FBQTtBQUFBO0FBQVIsSUFBNEM7QUFDMUMsVUFBSTtBQUFFLFFBQUE7QUFBRixVQUFKLElBQUE7QUFDQSxVQUFJLFVBQVUsR0FBVSxXQUFQLENBQ2YsSUFBSSxDQUROLENBQ00sQ0FEVyxDQUFqQjtBQUlBLE1BQUEsSUFBSSxDQUFDLFNBQVMsQ0FBVCxRQUFBLENBQUwsVUFBSyxDQUFELENBQUo7QUFORixLQUFBLE1BT08sSUFBSSxJQUFJLEtBQUE7QUFBQTtBQUFSLElBQXdDO0FBQzdDLFVBQUk7QUFBRSxRQUFBO0FBQUYsVUFBYSx3QkFBd0IsQ0FBekMsSUFBeUMsQ0FBekM7QUFDQSxVQUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUF0QixDQUFzQixDQUFMLENBQWpCO0FBQ0EsVUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFSLHFCQUFBLENBQWYsSUFBZSxDQUFmOztBQUVBLFVBQUksY0FBUyxRQUFRLEtBQXJCLElBQUEsRUFBZ0M7QUFDOUIsY0FBTSxJQUFBLEtBQUEsQ0FDSix1RkFBdUYsSUFEekYsRUFBTSxDQUFOO0FBR0Q7O0FBRUQsTUFBQSxJQUFJLENBQUMsU0FBUyxDQUFULFFBQUEsQ0FBQSxRQUFBLEVBQUwsSUFBSyxDQUFELENBQUo7QUFYSyxLQUFBLE1BWUE7QUFDTCxRQUFJO0FBQUEsTUFBQSxNQUFBO0FBQVUsTUFBQTtBQUFWLFFBQW9CLHdCQUF3QixDQUFoRCxJQUFnRCxDQUFoRDtBQUNBLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQXRCLENBQXNCLENBQUwsQ0FBakI7QUFDQSxRQUFJLFFBQVEsR0FBRyxRQUFRLENBQVIsY0FBQSxDQUFBLElBQUEsRUFBZixLQUFlLENBQWY7O0FBRUEsUUFBSSxjQUFTLFFBQVEsS0FBckIsSUFBQSxFQUFnQztBQUM5QixZQUFNLElBQUEsS0FBQSxDQUNKLDBCQUEwQixJQUQ1QixpRUFBTSxDQUFOO0FBR0Q7O0FBRUQsSUFBQSxJQUFJLENBQUMsU0FBUyxDQUFULFFBQUEsQ0FBQSxRQUFBLEVBQUwsSUFBSyxDQUFELENBQUo7QUFDRDtBQUNGO0FBRUQ7Ozs7O0FBR00sU0FBQSx3QkFBQSxDQUFBLFFBQUEsRUFBQSxTQUFBLEVBQUEsSUFBQSxFQUlKLEdBQUEsSUFBQSxFQUFTO0FBQUEsRUFBQSxXQUFBO0FBQWUsRUFBQTtBQUFmLENBQVQsQ0FKSSxFQUkyRDtBQUFBLFdBRS9ELGtCQUNFLDBCQUEwQixDQUR0QixJQUNzQixDQUQ1QixFQUYrRCxrRUFFL0QsQ0FGK0Q7QUFPL0QsTUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFmLENBQWUsQ0FBZjs7QUFFQSxNQUFJLElBQUksS0FBQTtBQUFBO0FBQVIsSUFBNEM7QUFDMUMsVUFBSTtBQUFFLFFBQUE7QUFBRixVQUFKLElBQUE7QUFDQSxVQUFJLFVBQVUsR0FBVSxXQUFQLENBQ2YsSUFBSSxDQUROLENBQ00sQ0FEVyxDQUFqQjtBQUlBLFVBQUksU0FBUyxHQUFHLFNBQVMsQ0FBVCxTQUFBLENBQUEsVUFBQSxFQUFoQixJQUFnQixDQUFoQjs7QUFFQSxVQUFJLFNBQVMsS0FBYixJQUFBLEVBQXdCO0FBQ3RCLFFBQUEsV0FBVyxDQUFYLFNBQVcsQ0FBWDtBQUNBO0FBQ0Q7O0FBRUQsVUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFULE1BQUEsQ0FBQSxVQUFBLEVBQUEsSUFBQSxFQUFiLElBQWEsQ0FBYjs7QUFFQSxVQUFJLGNBQVMsTUFBTSxLQUFuQixJQUFBLEVBQThCO0FBQzVCLGNBQU0sSUFBQSxLQUFBLENBQ0osMEpBQTBKLHlCQUFjLFVBQWQsQ0FENUosRUFBTSxDQUFOO0FBS0Q7O0FBRUQsTUFBQSxRQUFRLENBQVIsTUFBUSxDQUFSO0FBdkJGLEtBQUEsTUF3Qk8sSUFBSSxJQUFJLEtBQUE7QUFBQTtBQUFSLElBQXdDO0FBQzdDLE1BQUEsUUFBUSxDQUNOLG1CQUFtQixDQUFBLElBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLFNBQUEsRUFEckIscUJBQ3FCLENBRGIsQ0FBUjtBQURLLEtBQUEsTUFVQTtBQUNMLFFBQUk7QUFBQSxNQUFBLE1BQUE7QUFBVSxNQUFBO0FBQVYsUUFBb0Isd0JBQXdCLENBQWhELElBQWdELENBQWhEO0FBRUEsUUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBdEIsQ0FBc0IsQ0FBTCxDQUFqQjtBQUNBLFFBQUksVUFBVSxHQUFHLFFBQVEsQ0FBUixlQUFBLENBQUEsSUFBQSxFQUFqQixLQUFpQixDQUFqQjs7QUFFQSxRQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0FBQ3ZCLE1BQUEsV0FBVyxDQUFDLFNBQVMsQ0FBVCxpQkFBQSxDQUFBLFVBQUEsRUFBWixJQUFZLENBQUQsQ0FBWDtBQURGLEtBQUEsTUFFTztBQUNMLFVBQUksTUFBTSxHQUFHLFFBQVEsQ0FBUixZQUFBLENBQUEsSUFBQSxFQUFiLEtBQWEsQ0FBYjs7QUFFQSxVQUFJLGNBQVMsTUFBTSxLQUFuQixJQUFBLEVBQThCO0FBQzVCLGNBQU0sSUFBQSxLQUFBLENBQ0osMEJBQTBCLElBRDVCLDRFQUFNLENBQU47QUFHRDs7QUFFRCxNQUFBLFFBQVEsQ0FBQyxTQUFTLENBQVQsTUFBQSxDQUFBLE1BQUEsRUFBVCxJQUFTLENBQUQsQ0FBUjtBQUNEO0FBQ0Y7QUFDRjtBQUVEOzs7OztBQUdNLFNBQUEscUJBQUEsQ0FBQSxRQUFBLEVBQUEsU0FBQSxFQUFBLElBQUEsRUFJSixHQUFBLElBQUEsRUFBUztBQUFBLEVBQUEsUUFBQTtBQUFZLEVBQUE7QUFBWixDQUFULENBSkksRUFJdUQ7QUFBQSxXQUUzRCxrQkFBTyx1QkFBdUIsQ0FBeEIsSUFBd0IsQ0FBOUIsRUFGMkQscURBRTNELENBRjJEO0FBRzNELE1BQUk7QUFBQSxJQUFBLE1BQUE7QUFBVSxJQUFBO0FBQVYsTUFBb0Isd0JBQXdCLENBQWhELElBQWdELENBQWhEO0FBRUEsTUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBdEIsQ0FBc0IsQ0FBTCxDQUFqQjtBQUNBLE1BQUksTUFBTSxHQUFHLFFBQVEsQ0FBUixZQUFBLENBQUEsSUFBQSxFQUFiLEtBQWEsQ0FBYjs7QUFFQSxNQUFJLE1BQU0sS0FBVixJQUFBLEVBQXFCO0FBQ25CLElBQUEsVUFBVSxDQUFWLElBQVUsQ0FBVjtBQURGLEdBQUEsTUFFTztBQUNMLElBQUEsUUFBUSxDQUFDLFNBQVMsQ0FBVCxNQUFBLENBQUEsTUFBQSxFQUFULElBQVMsQ0FBRCxDQUFSO0FBQ0Q7QUFDRjtBQUVEOzs7OztBQUdNLFNBQUEsZ0NBQUEsQ0FBQSxRQUFBLEVBQUEsU0FBQSxFQUFBLElBQUEsRUFJSixHQUFBLElBQUEsRUFBUztBQUFBLEVBQUEsV0FBQTtBQUFBLEVBQUEsUUFBQTtBQUFBLEVBQUEsT0FBQTtBQUFrQyxFQUFBO0FBQWxDLENBQVQsQ0FKSSxFQUl3RjtBQUFBLFdBRTVGLGtCQUNFLGtDQUFrQyxDQUQ5QixJQUM4QixDQURwQyxFQUY0Riw0RUFFNUYsQ0FGNEY7QUFPNUYsTUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFmLENBQWUsQ0FBZjs7QUFFQSxNQUFJLElBQUksS0FBQTtBQUFBO0FBQVIsSUFBNEM7QUFDMUMsVUFBSTtBQUFFLFFBQUE7QUFBRixVQUFKLElBQUE7QUFDQSxVQUFJLFVBQVUsR0FBVSxXQUFQLENBQ2YsSUFBSSxDQUROLENBQ00sQ0FEVyxDQUFqQjs7QUFJQSxVQUNFLE9BQUEsVUFBQSxLQUFBLFVBQUEsS0FDQyxPQUFBLFVBQUEsS0FBQSxRQUFBLElBQWtDLFVBQVUsS0FGL0MsSUFDRSxDQURGLEVBR0U7QUFDQTtBQUNBLFFBQUEsT0FBTyxDQUFDLFNBQVMsQ0FBVCxLQUFBLENBQVIsVUFBUSxDQUFELENBQVA7QUFDQTtBQUNEOztBQUVELFVBQUksU0FBUyxHQUFHLFNBQVMsQ0FBVCxTQUFBLENBQUEsVUFBQSxFQUFoQixJQUFnQixDQUFoQjs7QUFFQSxVQUFJLFNBQVMsS0FBYixJQUFBLEVBQXdCO0FBQ3RCLFFBQUEsV0FBVyxDQUFYLFNBQVcsQ0FBWDtBQUNBO0FBQ0Q7O0FBRUQsVUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFULE1BQUEsQ0FBQSxVQUFBLEVBQUEsSUFBQSxFQUFiLElBQWEsQ0FBYjs7QUFFQSxVQUFJLE1BQU0sS0FBVixJQUFBLEVBQXFCO0FBQ25CLFFBQUEsUUFBUSxDQUFSLE1BQVEsQ0FBUjtBQUNBO0FBQ0Q7O0FBRUQsTUFBQSxPQUFPLENBQUMsU0FBUyxDQUFULEtBQUEsQ0FBUixVQUFRLENBQUQsQ0FBUDtBQTdCRixLQUFBLE1BOEJPLElBQUksSUFBSSxLQUFBO0FBQUE7QUFBUixJQUF3QztBQUM3QyxNQUFBLFFBQVEsQ0FDTixtQkFBbUIsQ0FBQSxJQUFBLEVBQUEsUUFBQSxFQUFBLElBQUEsRUFBQSxTQUFBLEVBRHJCLE9BQ3FCLENBRGIsQ0FBUjtBQURLLEtBQUEsTUFJQTtBQUNMLFFBQUk7QUFBQSxNQUFBLE1BQUE7QUFBVSxNQUFBO0FBQVYsUUFBb0Isd0JBQXdCLENBQWhELElBQWdELENBQWhEO0FBRUEsUUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBdEIsQ0FBc0IsQ0FBTCxDQUFqQjtBQUNBLFFBQUksVUFBVSxHQUFHLFFBQVEsQ0FBUixlQUFBLENBQUEsSUFBQSxFQUFqQixLQUFpQixDQUFqQjs7QUFFQSxRQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0FBQ3ZCLE1BQUEsV0FBVyxDQUFDLFNBQVMsQ0FBVCxpQkFBQSxDQUFBLFVBQUEsRUFBWixJQUFZLENBQUQsQ0FBWDtBQUNBO0FBQ0Q7O0FBRUQsUUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFSLFlBQUEsQ0FBQSxJQUFBLEVBQWIsS0FBYSxDQUFiOztBQUVBLFFBQUksTUFBTSxLQUFWLElBQUEsRUFBcUI7QUFDbkIsTUFBQSxRQUFRLENBQUMsU0FBUyxDQUFULE1BQUEsQ0FBQSxNQUFBLEVBQVQsSUFBUyxDQUFELENBQVI7QUFDQTtBQUNEOztBQUVELElBQUEsVUFBVSxDQUFWLElBQVUsQ0FBVjtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxtQkFBQSxDQUFBLElBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLFNBQUEsRUFBQSxJQUFBLEVBS2M7QUFFWixNQUFJO0FBQUUsSUFBQTtBQUFGLE1BQWEsd0JBQXdCLENBQXpDLElBQXlDLENBQXpDO0FBRUEsTUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBdEIsQ0FBc0IsQ0FBTCxDQUFqQjtBQUNBLE1BQUksTUFBTSxHQUFHLFFBQVEsQ0FBUixtQkFBQSxDQUFiLElBQWEsQ0FBYjs7QUFFQSxNQUFJLGNBQVMsTUFBTSxLQUFuQixJQUFBLEVBQThCO0FBQzVCO0FBQ0E7QUFDQSxVQUFNLElBQUEsS0FBQSxDQUNKLDBCQUEwQixJQUFJLGdFQUM1QixJQUFJLENBQUosTUFBQSxDQUFhLElBQUksQ0FBakIsQ0FBaUIsQ0FBakIsQ0FGSixFQUFNLENBQU47QUFLRDs7QUFFRCxTQUFPLFNBQVMsQ0FBVCxNQUFBLENBQUEsTUFBQSxFQUFQLElBQU8sQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gIENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgRXhwcmVzc2lvbnMsXG4gIE93bmVyLFxuICBSZXNvbHZlQ29tcG9uZW50T3AsXG4gIFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlSGVscGVyT3AsXG4gIFJlc29sdmVNb2RpZmllck9wLFxuICBSZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCwgZGVidWdUb1N0cmluZywgZXhwZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmZ1bmN0aW9uIGlzR2V0TGlrZVR1cGxlKG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvbik6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5UdXBsZUV4cHJlc3Npb24ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShvcGNvZGUpICYmIG9wY29kZS5sZW5ndGggPT09IDI7XG59XG5cbmZ1bmN0aW9uIG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKHR5cGVUb1ZlcmlmeTogU2V4cE9wY29kZXMpIHtcbiAgcmV0dXJuIChcbiAgICBvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb25cbiAgKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLkdldEZyZWUgfCBFeHByZXNzaW9ucy5HZXRUZW1wbGF0ZVN5bWJvbCA9PiB7XG4gICAgaWYgKCFpc0dldExpa2VUdXBsZShvcGNvZGUpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBsZXQgdHlwZSA9IG9wY29kZVswXTtcblxuICAgIHJldHVybiAoXG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlIHx8XG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCB8fFxuICAgICAgdHlwZSA9PT0gdHlwZVRvVmVyaWZ5XG4gICAgKTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudCA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudEhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlTW9kaWZpZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNNb2RpZmllckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRcbik7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbEhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5pbnRlcmZhY2UgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEgZXh0ZW5kcyBDb250YWluaW5nTWV0YWRhdGEge1xuICBvd25lcjogT3duZXI7XG4gIHVwdmFyczogc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhOiBDb250YWluaW5nTWV0YWRhdGEpOiBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICghbWV0YS51cHZhcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gZnJlZSB2YXJzIHdlcmUgZm91bmQnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghbWV0YS5vd25lcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBvd25lciB3YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZW1wbGF0ZSBpdCB3YXMgYmVpbmcgcmVzb2x2ZWQgZnJvbSdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhO1xufVxuXG4vKipcbiAqIDxGb28vPlxuICogPEZvbz48L0Zvbz5cbiAqIDxGb28gQGFyZz17e3RydWV9fSAvPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudChcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUNvbXBvbmVudE9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUNvbXBvbmVudChleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAoREVCVUcgJiYgZXhwclswXSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLmNvbXBvbmVudChkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50LCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiAoaGVscGVyKVxuICogKGhlbHBlciBhcmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlSGVscGVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICB0aGVuKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsIHJlc29sdmVyLCBtZXRhLCBjb25zdGFudHMsICdoZWxwZXInKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lciEpITtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogPGRpdiB7e21vZGlmaWVyfX0vPlxuICogPGRpdiB7e21vZGlmaWVyIGFyZ319Lz5cbiAqIDxGb28ge3ttb2RpZmllcn19Lz5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNb2RpZmllcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZU1vZGlmaWVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlTW9kaWZpZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgbW9kaWZpZXIgPSByZXNvbHZlci5sb29rdXBCdWlsdEluTW9kaWZpZXIobmFtZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IGl0IHdhcyBub3QgaW4gc2NvcGU6ICR7bmFtZX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyISwgbmFtZSkpO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgbW9kaWZpZXIgPSByZXNvbHZlci5sb29rdXBNb2RpZmllcihuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBtb2RpZmllciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7Y29tcG9uZW50LW9yLWhlbHBlciBhcmd9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZDb21wb25lbnQsIGlmSGVscGVyIH1dOiBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoZGVmaW5pdGlvbiBhcyBvYmplY3QsIHRydWUpO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgZWl0aGVyIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IGl0IGRpZCBub3QgaGF2ZSBhIGNvbXBvbmVudCBtYW5hZ2VyIG9yIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIHZhbHVlIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZkhlbHBlcihleHBlY3QoaGVscGVyLCAnQlVHOiBoZWxwZXIgbXVzdCBleGlzdCcpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKFxuICAgICAgICBleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gICAgICAgIHJlc29sdmVyLFxuICAgICAgICBtZXRhLFxuICAgICAgICBjb25zdGFudHMsXG4gICAgICAgICdjb21wb25lbnQgb3IgaGVscGVyJ1xuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogPEZvbyBAYXJnPXt7aGVscGVyfX0+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkhlbHBlciwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcbiAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICBpZiAoaGVscGVyID09PSBudWxsKSB7XG4gICAgaWZGYWxsYmFjayhuYW1lKTtcbiAgfSBlbHNlIHtcbiAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICoge3ttYXliZUhlbHBlck9yQ29tcG9uZW50fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZDb21wb25lbnQsIGlmSGVscGVyLCBpZlZhbHVlLCBpZkZhbGxiYWNrIH1dOiBSZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGFuIG9wdGlvbmFsIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICAgICkge1xuICAgICAgLy8gVGhlIHZhbHVlIGlzIG5vdCBhbiBvYmplY3QsIHNvIGl0IGNhbid0IGJlIGEgY29tcG9uZW50IG9yIGhlbHBlci5cbiAgICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChkZWZpbml0aW9uLCB0cnVlKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihoZWxwZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ3ZhbHVlJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZkZhbGxiYWNrKG5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gIGV4cHI6IEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIGNvbnN0YW50czogUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIHR5cGU6IHN0cmluZ1xuKTogbnVtYmVyIHtcbiAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBCdWlsdEluSGVscGVyKG5hbWUpO1xuXG4gIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAvLyBLZXl3b3JkIGhlbHBlciBkaWQgbm90IGV4aXN0LCB3aGljaCBtZWFucyB0aGF0IHdlJ3JlIGF0dGVtcHRpbmcgdG8gdXNlIGFcbiAgICAvLyB2YWx1ZSBvZiBzb21lIGtpbmQgdGhhdCBpcyBub3QgaW4gc2NvcGVcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSAke3R5cGV9IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGNvbnN0YW50cy5oZWxwZXIoaGVscGVyISwgbmFtZSk7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFnQkE7O0FBRUEsU0FBQSxjQUFBLENBQUEsTUFBQSxFQUFzRDtBQUNwRCxTQUFPLEtBQUssQ0FBTCxPQUFBLENBQUEsTUFBQSxLQUF5QixNQUFNLENBQU4sTUFBQSxLQUFoQyxDQUFBO0FBQ0Q7O0FBRUQsU0FBQSwwQkFBQSxDQUFBLFlBQUEsRUFBNkQ7QUFDM0QsU0FDRSxNQURLLElBRTREO0FBQ2pFLFFBQUksQ0FBQyxjQUFjLENBQW5CLE1BQW1CLENBQW5CLEVBQTZCLE9BQUEsS0FBQTtBQUU3QixRQUFJLElBQUksR0FBRyxNQUFNLENBQWpCLENBQWlCLENBQWpCO0FBRUEsV0FDRSxJQUFJLEtBQUE7QUFBQTtBQUFKLE9BQ0EsSUFBSSxLQUFBO0FBQUE7QUFESixPQUVBLElBQUksS0FITixZQUFBO0FBUEYsR0FBQTtBQWFEOztBQUVNLE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJEOztBQUVBLE1BQU0saUJBQWlCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXBEOztBQUVBLE1BQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFsRDs7QUFFQSxNQUFNLDBCQUEwQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUE3RDs7QUFJQSxNQUFNLHVCQUF1QixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUExRDs7QUFJQSxNQUFNLGtDQUFrQyxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRTs7O0FBU1AsU0FBQSx3QkFBQSxDQUFBLElBQUEsRUFBMEQ7QUFDeEQsTUFBQSxVQUFBLEVBQVc7QUFDVCxRQUFJLENBQUMsSUFBSSxDQUFU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QUEsV0FBVyxDQUFDLFNBQVMsQ0FBVCxpQkFBQSxDQUFBLFVBQUEsRUFBWixJQUFZLENBQUQsQ0FBWDtBQUNBO0FBQ0Q7O0FBRUQsUUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFSLFlBQUEsQ0FBQSxJQUFBLEVBQWIsS0FBYSxDQUFiOztBQUVBLFFBQUksTUFBTSxLQUFWLElBQUEsRUFBcUI7QUFDbkIsTUFBQSxRQUFRLENBQUMsU0FBUyxDQUFULE1BQUEsQ0FBQSxNQUFBLEVBQVQsSUFBUyxDQUFELENBQVI7QUFDQTtBQUNEOztBQUVELElBQUEsVUFBVSxDQUFWLElBQVUsQ0FBVjtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxtQkFBQSxDQUFBLElBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLFNBQUEsRUFBQSxJQUFBLEVBS2M7QUFFWixNQUFJO0FBQUUsSUFBQTtBQUFGLE1BQWEsd0JBQXdCLENBQXpDLElBQXlDLENBQXpDO0FBRUEsTUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBdEIsQ0FBc0IsQ0FBTCxDQUFqQjtBQUNBLE1BQUksTUFBTSxHQUFHLFFBQVEsQ0FBUixtQkFBQSxDQUFiLElBQWEsQ0FBYjs7QUFFQSxNQUFJLGNBQVMsTUFBTSxLQUFuQixJQUFBLEVBQThCO0FBQzVCO0FBQ0E7QUFDQSxVQUFNLElBQUEsS0FBQSxDQUNKLDBCQUEwQixJQUFJLGdFQUM1QixJQUFJLENBQUosTUFBQSxDQUFhLElBQUksQ0FBakIsQ0FBaUIsQ0FBakIsQ0FGSixFQUFNLENBQU47QUFLRDs7QUFFRCxTQUFPLFNBQVMsQ0FBVCxNQUFBLENBQUEsTUFBQSxFQUFQLElBQU8sQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gIENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgRXhwcmVzc2lvbnMsXG4gIE93bmVyLFxuICBSZXNvbHZlQ29tcG9uZW50T3AsXG4gIFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlSGVscGVyT3AsXG4gIFJlc29sdmVNb2RpZmllck9wLFxuICBSZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCwgZGVidWdUb1N0cmluZywgZXhwZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmZ1bmN0aW9uIGlzR2V0TGlrZVR1cGxlKG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvbik6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5UdXBsZUV4cHJlc3Npb24ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShvcGNvZGUpICYmIG9wY29kZS5sZW5ndGggPT09IDI7XG59XG5cbmZ1bmN0aW9uIG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKHR5cGVUb1ZlcmlmeTogU2V4cE9wY29kZXMpIHtcbiAgcmV0dXJuIChcbiAgICBvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb25cbiAgKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLkdldEZyZWUgfCBFeHByZXNzaW9ucy5HZXRUZW1wbGF0ZVN5bWJvbCA9PiB7XG4gICAgaWYgKCFpc0dldExpa2VUdXBsZShvcGNvZGUpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBsZXQgdHlwZSA9IG9wY29kZVswXTtcblxuICAgIHJldHVybiAoXG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlIHx8XG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCB8fFxuICAgICAgdHlwZSA9PT0gdHlwZVRvVmVyaWZ5XG4gICAgKTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudCA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudEhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlTW9kaWZpZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNNb2RpZmllckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRcbik7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbEhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5pbnRlcmZhY2UgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEgZXh0ZW5kcyBDb250YWluaW5nTWV0YWRhdGEge1xuICBvd25lcjogT3duZXI7XG4gIHVwdmFyczogc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhOiBDb250YWluaW5nTWV0YWRhdGEpOiBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICghbWV0YS51cHZhcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gZnJlZSB2YXJzIHdlcmUgZm91bmQnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghbWV0YS5vd25lcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBvd25lciB3YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZW1wbGF0ZSBpdCB3YXMgYmVpbmcgcmVzb2x2ZWQgZnJvbSdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhO1xufVxuXG4vKipcbiAqIDxGb28vPlxuICogPEZvbz48L0Zvbz5cbiAqIDxGb28gQGFyZz17e3RydWV9fSAvPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudChcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUNvbXBvbmVudE9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUNvbXBvbmVudChleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAoREVCVUcgJiYgZXhwclswXSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLmNvbXBvbmVudChkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50LCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiAoaGVscGVyKVxuICogKGhlbHBlciBhcmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlSGVscGVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICB0aGVuKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsIHJlc29sdmVyLCBtZXRhLCBjb25zdGFudHMsICdoZWxwZXInKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lciEpITtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogPGRpdiB7e21vZGlmaWVyfX0vPlxuICogPGRpdiB7e21vZGlmaWVyIGFyZ319Lz5cbiAqIDxGb28ge3ttb2RpZmllcn19Lz5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNb2RpZmllcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZU1vZGlmaWVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlTW9kaWZpZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgbW9kaWZpZXIgPSByZXNvbHZlci5sb29rdXBCdWlsdEluTW9kaWZpZXIobmFtZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IGl0IHdhcyBub3QgaW4gc2NvcGU6ICR7bmFtZX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyISwgbmFtZSkpO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgbW9kaWZpZXIgPSByZXNvbHZlci5sb29rdXBNb2RpZmllcihuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBtb2RpZmllciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7Y29tcG9uZW50LW9yLWhlbHBlciBhcmd9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZDb21wb25lbnQsIGlmSGVscGVyIH1dOiBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoZGVmaW5pdGlvbiBhcyBvYmplY3QsIHRydWUpO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgZWl0aGVyIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IGl0IGRpZCBub3QgaGF2ZSBhIGNvbXBvbmVudCBtYW5hZ2VyIG9yIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIHZhbHVlIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZkhlbHBlcihleHBlY3QoaGVscGVyLCAnQlVHOiBoZWxwZXIgbXVzdCBleGlzdCcpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKFxuICAgICAgICBleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gICAgICAgIHJlc29sdmVyLFxuICAgICAgICBtZXRhLFxuICAgICAgICBjb25zdGFudHMsXG4gICAgICAgICdjb21wb25lbnQgb3IgaGVscGVyJ1xuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogPEZvbyBAYXJnPXt7aGVscGVyfX0+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkhlbHBlciwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcbiAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICBpZiAoaGVscGVyID09PSBudWxsKSB7XG4gICAgaWZGYWxsYmFjayhuYW1lLCBtZXRhLm1vZHVsZU5hbWUpO1xuICB9IGVsc2Uge1xuICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e21heWJlSGVscGVyT3JDb21wb25lbnR9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIsIGlmVmFsdWUsIGlmRmFsbGJhY2sgfV06IFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYW4gb3B0aW9uYWwgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICAgKSB7XG4gICAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGFuIG9iamVjdCwgc28gaXQgY2FuJ3QgYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLlxuICAgICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KGRlZmluaXRpb24sIHRydWUpO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uLCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGhlbHBlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAndmFsdWUnKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmRmFsbGJhY2sobmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgZXhwcjogRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgY29uc3RhbnRzOiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgdHlwZTogc3RyaW5nXG4pOiBudW1iZXIge1xuICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5IZWxwZXIobmFtZSk7XG5cbiAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgIC8vIEtleXdvcmQgaGVscGVyIGRpZCBub3QgZXhpc3QsIHdoaWNoIG1lYW5zIHRoYXQgd2UncmUgYXR0ZW1wdGluZyB0byB1c2UgYVxuICAgIC8vIHZhbHVlIG9mIHNvbWUga2luZCB0aGF0IGlzIG5vdCBpbiBzY29wZVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhICR7dHlwZX0gaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= |
@@ -10,2 +10,4 @@ "use strict"; | ||
var _globalContext = require("@glimmer/global-context"); | ||
var _expr = require("../opcode-builder/helpers/expr"); | ||
@@ -21,2 +23,4 @@ | ||
var _env = require("@glimmer/env"); | ||
const EXPRESSIONS = new _compilers.Compilers(); | ||
@@ -87,3 +91,10 @@ exports.EXPRESSIONS = EXPRESSIONS; | ||
/* ResolveLocal */ | ||
, freeVar, name => { | ||
, freeVar, (name, moduleName) => { | ||
if (_env.DEBUG) { | ||
let propertyPath = path ? [name, ...path].join('.') : name; | ||
(0, _globalContext.deprecate)(`The \`${propertyPath}\` property path was used in a template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${propertyPath}}}`, false, { | ||
id: 'this-property-fallback' | ||
}); | ||
} | ||
op(21 | ||
@@ -120,3 +131,6 @@ /* GetVariable */ | ||
}, | ||
ifFallback: name => { | ||
ifFallback: (name, moduleName) => { | ||
(0, _globalContext.deprecate)(`The \`${name}\` property was used in the template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, { | ||
id: 'this-property-fallback' | ||
}); | ||
op(21 | ||
@@ -212,2 +226,2 @@ /* GetVariable */ | ||
}); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFTyxNQUFNLFdBQVcsR0FBRyxJQUFwQixvQkFBb0IsRUFBcEI7O0FBRVAsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBb0MsQ0FBQSxFQUFBLEVBQUssR0FBTCxLQUFLLENBQUwsS0FBa0I7QUFDcEQsT0FBSyxJQUFMLElBQUEsSUFBQSxLQUFBLEVBQXdCO0FBQ3RCLG9CQUFJLEVBQUosRUFBQSxJQUFBO0FBQ0Q7O0FBRUQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQVksS0FBSyxDQUFuQixNQUFFLENBQUY7QUFMRixDQUFBO0FBUUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBa0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxVQUFBLEVBQUEsVUFBQSxFQUFMLEtBQUssQ0FBTCxLQUEwQztBQUMxRSxNQUFJLGlDQUFKLFVBQUksQ0FBSixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELE1BQUQsSUFBbUI7QUFDekUscUJBQUksRUFBSixFQUFJLE1BQUosRUFBSSxVQUFKLEVBQUEsS0FBQTtBQURGLEtBQUUsQ0FBRjtBQURGLEdBQUEsTUFJTztBQUNMLG9CQUFJLEVBQUosRUFBQSxVQUFBO0FBQ0EsMEJBQVcsRUFBWCxFQUFXLFVBQVgsRUFBQSxLQUFBO0FBQ0Q7QUFSSCxDQUFBO0FBV0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBbUMsQ0FBQSxFQUFBLEVBQUssR0FBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLFVBQUEsRUFBTCxLQUFLLENBQUwsS0FBMEM7QUFDM0Usa0JBQUssRUFBTCxFQUFLLElBQUwsRUFB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QkFBSSxFQUFKLEVBQUEsVUFBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBRkYsQ0FBQTtBQUtBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQWlDLENBQUEsRUFBQSxFQUFLLEdBQUwsVUFBSyxDQUFMLEtBQXVCO0FBQ3RELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsMEJBQVUsRUFBVixFQUFVLFVBQVYsRUFBVSxJQUFWLEVBQUEsS0FBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBRixPQUFFLENBQUY7QUFMRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXhwcmVzc2lvblNleHBPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR2MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgaXNHZXRGcmVlSGVscGVyIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQgeyBDYWxsLCBDYWxsRHluYW1pYywgQ3VycnksIFB1c2hQcmltaXRpdmVSZWZlcmVuY2UgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IENvbXBpbGVycywgUHVzaEV4cHJlc3Npb25PcCB9IGZyb20gJy4vY29tcGlsZXJzJztcblxuZXhwb3J0IGNvbnN0IEVYUFJFU1NJT05TID0gbmV3IENvbXBpbGVyczxQdXNoRXhwcmVzc2lvbk9wLCBFeHByZXNzaW9uU2V4cE9wY29kZT4oKTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNvbmNhdCwgKG9wLCBbLCBwYXJ0c10pID0+IHtcbiAgZm9yIChsZXQgcGFydCBvZiBwYXJ0cykge1xuICAgIGV4cHIob3AsIHBhcnQpO1xuICB9XG5cbiAgb3AoT3AuQ29uY2F0LCBwYXJ0cy5sZW5ndGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DYWxsLCAob3AsIFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlSGVscGVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlSGVscGVyLCBleHByZXNzaW9uLCAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIENhbGxEeW5hbWljKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gIH1cbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ3VycnksIChvcCwgWywgZXhwciwgdHlwZSwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIEN1cnJ5KG9wLCB0eXBlLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN5bWJvbCwgKG9wLCBbLCBzeW0sIHBhdGhdKSA9PiB7XG4gIG9wKE9wLkdldFZhcmlhYmxlLCBzeW0pO1xuICB3aXRoUGF0aChvcCwgcGF0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlVGVtcGxhdGVMb2NhbCwgc3ltLCAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICBvcChPcC5Db25zdGFudFJlZmVyZW5jZSwgaGFuZGxlKTtcbiAgICB3aXRoUGF0aChvcCwgcGF0aCk7XG4gIH0pO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlLCAob3AsIFssIHN5bSwgX3BhdGhdKSA9PiB7XG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUZyZWUsIHN5bSwgKF9oYW5kbGU6IHVua25vd24pID0+IHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgaW4gc3RyaWN0IG1vZGVcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0ZhbGxiYWNrLCAob3AsIFssIGZyZWVWYXIsIHBhdGhdKSA9PiB7XG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUxvY2FsLCBmcmVlVmFyLCAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgfSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssICgpID0+IHtcbiAgLy8gVE9ETzogVGhlIGxvZ2ljIGZvciB0aGlzIG9wY29kZSBjdXJyZW50bHkgZXhpc3RzIGluIFNUQVRFTUVOVFMuQXBwZW5kLCBzaW5jZVxuICAvLyB3ZSB3YW50IGRpZmZlcmVudCB3cmFwcGluZyBsb2dpYyBkZXBlbmRpbmcgb24gaWYgd2UgYXJlIGludm9raW5nIGEgY29tcG9uZW50LFxuICAvLyBoZWxwZXIsIG9yIHt7dGhpc319IGZhbGxiYWNrLiBFdmVudHVhbGx5IHdlIGZpeCB0aGUgb3Bjb2RlcyBzbyB0aGF0IHdlIGNhblxuICAvLyB0cmF2ZXJzZSB0aGUgc3ViZXhwcmVzc2lvbiB0cmVlIGxpa2Ugbm9ybWFsIGluIHRoaXMgbG9jYXRpb24uXG4gIHRocm93IG5ldyBFcnJvcigndW5pbXBsZW1lbnRlZCBvcGNvZGUnKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrLCAob3AsIGV4cHIpID0+IHtcbiAgLy8gPEZvbyBAYXJnPXt7YmF6fX0+XG5cbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGV4cHJbMV0sIChfbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXIsIGV4cHIsIHtcbiAgICAgIGlmSGVscGVyOiAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2s6IChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICBvcChPcC5HZXRQcm9wZXJ0eSwgbmFtZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5mdW5jdGlvbiB3aXRoUGF0aChvcDogUHVzaEV4cHJlc3Npb25PcCwgcGF0aD86IHN0cmluZ1tdKSB7XG4gIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aC5sZW5ndGggPT09IDApIHJldHVybjtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICBvcChPcC5HZXRQcm9wZXJ0eSwgcGF0aFtpXSk7XG4gIH1cbn1cblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLlVuZGVmaW5lZCwgKG9wKSA9PiBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpKTtcbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5IYXNCbG9jaywgKG9wLCBbLCBibG9ja10pID0+IHtcbiAgZXhwcihvcCwgYmxvY2spO1xuICBvcChPcC5IYXNCbG9jayk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrUGFyYW1zLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLlNwcmVhZEJsb2NrKTtcbiAgb3AoT3AuQ29tcGlsZUJsb2NrKTtcbiAgb3AoT3AuSGFzQmxvY2tQYXJhbXMpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5JZklubGluZSwgKG9wLCBbLCBjb25kaXRpb24sIHRydXRoeSwgZmFsc3ldKSA9PiB7XG4gIC8vIFB1c2ggaW4gcmV2ZXJzZSBvcmRlclxuICBleHByKG9wLCBmYWxzeSk7XG4gIGV4cHIob3AsIHRydXRoeSk7XG4gIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gIG9wKE9wLklmSW5saW5lKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuTm90LCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLk5vdCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldER5bmFtaWNWYXIsIChvcCwgWywgZXhwcmVzc2lvbl0pID0+IHtcbiAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gIG9wKE9wLkdldER5bmFtaWNWYXIpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Mb2csIChvcCwgWywgcG9zaXRpb25hbF0pID0+IHtcbiAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG51bGwsIGZhbHNlKTtcbiAgb3AoT3AuTG9nKTtcbiAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgb3AoT3AuRmV0Y2gsICR2MCk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFTyxNQUFNLFdBQVcsR0FBRyxJQUFwQixvQkFBb0IsRUFBcEI7O0FBRVAsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBb0MsQ0FBQSxFQUFBLEVBQUssR0FBTCxLQUFLLENBQUwsS0FBa0I7QUFDcEQsT0FBSyxJQUFMLElBQUEsSUFBQSxLQUFBLEVBQXdCO0FBQ3RCLG9CQUFJLEVBQUosRUFBQSxJQUFBO0FBQ0Q7O0FBRUQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQVksS0FBSyxDQUFuQixNQUFFLENBQUY7QUFMRixDQUFBO0FBUUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBa0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxVQUFBLEVBQUEsVUFBQSxFQUFMLEtBQUssQ0FBTCxLQUEwQztBQUMxRSxNQUFJLGlDQUFKLFVBQUksQ0FBSixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELE1BQUQsSUFBbUI7QUFDekUscUJBQUksRUFBSixFQUFJLE1BQUosRUFBSSxVQUFKLEVBQUEsS0FBQTtBQURGLEtBQUUsQ0FBRjtBQURGLEdBQUEsTUFJTztBQUNMLG9CQUFJLEVBQUosRUFBQSxVQUFBO0FBQ0EsMEJBQVcsRUFBWCxFQUFXLFVBQVgsRUFBQSxLQUFBO0FBQ0Q7QUFSSCxDQUFBO0FBV0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBbUMsQ0FBQSxFQUFBLEVBQUssR0FBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLFVBQUEsRUFBTCxLQUFLLENBQUwsS0FBMEM7QUFDM0Usa0JBQUssRUFBTCxFQUFLLElBQUwsRUFBSyxJQUFMLEVBQUssVUFBTCxFQUFBLEtBQUE7QUFERixDQUFBO0FBSUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBdUMsQ0FBQSxFQUFBLEVBQUssR0FBQSxHQUFBLEVBQUwsSUFBSyxDQUFMLEtBQXNCO0FBQzNELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFGLEdBQUUsQ0FBRjtBQUNBLEVBQUEsUUFBUSxDQUFBLEVBQUEsRUFBUixJQUFRLENBQVI7QUFGRixDQUFBO0FBS0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBK0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxHQUFBLEVBQUwsSUFBSyxDQUFMLEtBQXNCO0FBQ25FLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFBLEdBQUEsRUFBdUQsTUFBRCxJQUFtQjtBQUN6RSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBRixNQUFFLENBQUY7QUFDQSxJQUFBLFFBQVEsQ0FBQSxFQUFBLEVBQVIsSUFBUSxDQUFSO0FBRkYsR0FBRSxDQUFGO0FBREYsQ0FBQTtBQU9BLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQTJDLENBQUEsRUFBQSxFQUFLLEdBQUEsR0FBQSxFQUFMLEtBQUssQ0FBTCxLQUF1QjtBQUNoRSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBQSxHQUFBLEVBQThDLE9BQUQsSUFBcUIsQ0FDbEU7QUFERixHQUFFLENBQUY7QUFERixDQUFBO0FBTUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBK0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxPQUFBLEVBQUwsSUFBSyxDQUFMLEtBQTBCO0FBQ3ZFLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFBLE9BQUEsRUFBa0QsQ0FBQSxJQUFBLEVBQUEsVUFBQSxLQUFxQztBQUN2RixRQUFBLFVBQUEsRUFBVztBQUNULFVBQUksWUFBWSxHQUFHLElBQUksR0FBRyxDQUFBLElBQUEsRUFBTyxHQUFQLElBQUEsRUFBQSxJQUFBLENBQUgsR0FBRyxDQUFILEdBQXZCLElBQUE7QUFFQSxvQ0FDRSxTQUFTLFlBQVkscURBQXFELFVBQVUsbUtBQW1LLFlBRGhQLElBQVQsRUFBUyxLQUFULEVBR0U7QUFDRSxRQUFBLEVBQUUsRUFBRTtBQUROLE9BSEY7QUFPRDs7QUFFRCxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBRixDQUFFLENBQUY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBRixJQUFFLENBQUY7QUFkRixHQUFFLENBQUY7QUFnQkEsRUFBQSxRQUFRLENBQUEsRUFBQSxFQUFSLElBQVEsQ0FBUjtBQWpCRixDQUFBO0FBb0JBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQTBFLE1BQUs7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFNLElBQUEsS0FBQSxDQUFOLHNCQUFNLENBQU47QUFMRixDQUFBO0FBUUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBK0QsQ0FBQSxFQUFBLEVBQUEsSUFBQSxLQUFhO0FBQzFFO0FBRUEsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQXlDLElBQUksQ0FBN0MsQ0FBNkMsQ0FBN0MsRUFBbUQsS0FBRCxJQUFrQjtBQUNwRSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxJQUFBLEVBQXdEO0FBQ3hELE1BQUEsUUFBUSxFQUFHLE1BQUQsSUFBbUI7QUFDM0IsdUJBQUksRUFBSixFQUFJLE1BQUosRUFBSSxJQUFKLEVBQUEsSUFBQTtBQUZzRCxPQUFBO0FBS3hELE1BQUEsVUFBVSxFQUFFLENBQUEsSUFBQSxFQUFBLFVBQUEsS0FBcUM7QUFDL0Msc0NBQ0UsU0FBUyxJQUFJLGtEQUFrRCxVQUFVLG1LQUFtSyxJQURyTyxJQUFULEVBQVMsS0FBVCxFQUdFO0FBQ0UsVUFBQSxFQUFFLEVBQUU7QUFETixTQUhGO0FBUUEsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFVBQUYsQ0FBRSxDQUFGO0FBQ0EsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFVBQUYsSUFBRSxDQUFGO0FBQ0Q7QUFoQnVELEtBQXhELENBQUY7QUFERixHQUFFLENBQUY7QUFIRixDQUFBOztBQXlCQSxTQUFBLFFBQUEsQ0FBQSxFQUFBLEVBQUEsSUFBQSxFQUF1RDtBQUNyRCxNQUFJLElBQUksS0FBSixTQUFBLElBQXNCLElBQUksQ0FBSixNQUFBLEtBQTFCLENBQUEsRUFBNkM7O0FBRTdDLE9BQUssSUFBSSxDQUFDLEdBQVYsQ0FBQSxFQUFnQixDQUFDLEdBQUcsSUFBSSxDQUF4QixNQUFBLEVBQWlDLENBQWpDLEVBQUEsRUFBc0M7QUFDcEMsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQWlCLElBQUksQ0FBdkIsQ0FBdUIsQ0FBckIsQ0FBRjtBQUNEO0FBQ0Y7O0FBRUQsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBd0MsRUFBRCxJQUFRLGlDQUFzQixFQUF0QixFQUEvQyxTQUErQyxDQUEvQztBQUNBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQXNDLENBQUEsRUFBQSxFQUFLLEdBQUwsS0FBSyxDQUFMLEtBQWtCO0FBQ3RELGtCQUFJLEVBQUosRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFGRixDQUFBO0FBS0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBNEMsQ0FBQSxFQUFBLEVBQUssR0FBTCxLQUFLLENBQUwsS0FBa0I7QUFDNUQsa0JBQUksRUFBSixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFKRixDQUFBO0FBT0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBc0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxTQUFBLEVBQUEsTUFBQSxFQUFMLEtBQUssQ0FBTCxLQUFxQztBQUN6RTtBQUNBLGtCQUFJLEVBQUosRUFBQSxLQUFBO0FBQ0Esa0JBQUksRUFBSixFQUFBLE1BQUE7QUFDQSxrQkFBSSxFQUFKLEVBQUEsU0FBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBTEYsQ0FBQTtBQVFBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQWlDLENBQUEsRUFBQSxFQUFLLEdBQUwsS0FBSyxDQUFMLEtBQWtCO0FBQ2pELGtCQUFJLEVBQUosRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFGRixDQUFBO0FBS0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBMkMsQ0FBQSxFQUFBLEVBQUssR0FBTCxVQUFLLENBQUwsS0FBdUI7QUFDaEUsa0JBQUksRUFBSixFQUFBLFVBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFpQyxDQUFBLEVBQUEsRUFBSyxHQUFMLFVBQUssQ0FBTCxLQUF1QjtBQUN0RCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLDBCQUFVLEVBQVYsRUFBVSxVQUFWLEVBQVUsSUFBVixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsT0FBRSxDQUFGO0FBTEYsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEV4cHJlc3Npb25TZXhwT3Bjb2RlLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIE9wLFxuICBTZXhwT3Bjb2Rlcyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkdjAgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBkZXByZWNhdGUgfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5pbXBvcnQgeyBleHByIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9leHByJztcbmltcG9ydCB7IGlzR2V0RnJlZUhlbHBlciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvcmVzb2x1dGlvbic7XG5pbXBvcnQgeyBTaW1wbGVBcmdzIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zaGFyZWQnO1xuaW1wb3J0IHsgQ2FsbCwgQ2FsbER5bmFtaWMsIEN1cnJ5LCBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bSc7XG5pbXBvcnQgeyBDb21waWxlcnMsIFB1c2hFeHByZXNzaW9uT3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5cbmV4cG9ydCBjb25zdCBFWFBSRVNTSU9OUyA9IG5ldyBDb21waWxlcnM8UHVzaEV4cHJlc3Npb25PcCwgRXhwcmVzc2lvblNleHBPcGNvZGU+KCk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Db25jYXQsIChvcCwgWywgcGFydHNdKSA9PiB7XG4gIGZvciAobGV0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBleHByKG9wLCBwYXJ0KTtcbiAgfVxuXG4gIG9wKE9wLkNvbmNhdCwgcGFydHMubGVuZ3RoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ2FsbCwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUhlbHBlcihleHByZXNzaW9uKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUhlbHBlciwgZXhwcmVzc2lvbiwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICBDYWxsKG9wLCBoYW5kbGUsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICB9XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkN1cnJ5LCAob3AsIFssIGV4cHIsIHR5cGUsIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBDdXJyeShvcCwgdHlwZSwgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChPcC5HZXRWYXJpYWJsZSwgc3ltKTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCwgKG9wLCBbLCBzeW0sIHBhdGhdKSA9PiB7XG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZVRlbXBsYXRlTG9jYWwsIHN5bSwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgd2l0aFBhdGgob3AsIHBhdGgpO1xuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSwgKG9wLCBbLCBzeW0sIF9wYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVGcmVlLCBzeW0sIChfaGFuZGxlOiB1bmtub3duKSA9PiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IGluIHN0cmljdCBtb2RlXG4gIH0pO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNGYWxsYmFjaywgKG9wLCBbLCBmcmVlVmFyLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZnJlZVZhciwgKG5hbWU6IHN0cmluZywgbW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBsZXQgcHJvcGVydHlQYXRoID0gcGF0aCA/IFtuYW1lLCAuLi5wYXRoXS5qb2luKCcuJykgOiBuYW1lO1xuXG4gICAgICBkZXByZWNhdGUoXG4gICAgICAgIGBUaGUgXFxgJHtwcm9wZXJ0eVBhdGh9XFxgIHByb3BlcnR5IHBhdGggd2FzIHVzZWQgaW4gYSB0ZW1wbGF0ZSBmb3IgdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgY29tcG9uZW50IHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke3Byb3BlcnR5UGF0aH19fWAsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICB9KTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKCkgPT4ge1xuICAvLyBUT0RPOiBUaGUgbG9naWMgZm9yIHRoaXMgb3Bjb2RlIGN1cnJlbnRseSBleGlzdHMgaW4gU1RBVEVNRU5UUy5BcHBlbmQsIHNpbmNlXG4gIC8vIHdlIHdhbnQgZGlmZmVyZW50IHdyYXBwaW5nIGxvZ2ljIGRlcGVuZGluZyBvbiBpZiB3ZSBhcmUgaW52b2tpbmcgYSBjb21wb25lbnQsXG4gIC8vIGhlbHBlciwgb3Ige3t0aGlzfX0gZmFsbGJhY2suIEV2ZW50dWFsbHkgd2UgZml4IHRoZSBvcGNvZGVzIHNvIHRoYXQgd2UgY2FuXG4gIC8vIHRyYXZlcnNlIHRoZSBzdWJleHByZXNzaW9uIHRyZWUgbGlrZSBub3JtYWwgaW4gdGhpcyBsb2NhdGlvbi5cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmltcGxlbWVudGVkIG9wY29kZScpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBhcmc9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgfSxcblxuICAgICAgaWZGYWxsYmFjazogKG5hbWU6IHN0cmluZywgbW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGRlcHJlY2F0ZShcbiAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgcHJvcGVydHkgd2FzIHVzZWQgaW4gdGhlIHRlbXBsYXRlIGZvciB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCBjb21wb25lbnQgd2l0aG91dCB1c2luZyBcXGB0aGlzXFxgLiBUaGlzIGZhbGxiYWNrIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFsbCBwcm9wZXJ0aWVzIG11c3QgYmUgbG9va2VkIHVwIG9uIFxcYHRoaXNcXGAgd2hlbiB1c2VkIGluIHRoZSB0ZW1wbGF0ZToge3t0aGlzLiR7bmFtZX19fWAsXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICBvcChPcC5HZXRQcm9wZXJ0eSwgbmFtZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5mdW5jdGlvbiB3aXRoUGF0aChvcDogUHVzaEV4cHJlc3Npb25PcCwgcGF0aD86IHN0cmluZ1tdKSB7XG4gIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aC5sZW5ndGggPT09IDApIHJldHVybjtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICBvcChPcC5HZXRQcm9wZXJ0eSwgcGF0aFtpXSk7XG4gIH1cbn1cblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLlVuZGVmaW5lZCwgKG9wKSA9PiBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpKTtcbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5IYXNCbG9jaywgKG9wLCBbLCBibG9ja10pID0+IHtcbiAgZXhwcihvcCwgYmxvY2spO1xuICBvcChPcC5IYXNCbG9jayk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrUGFyYW1zLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLlNwcmVhZEJsb2NrKTtcbiAgb3AoT3AuQ29tcGlsZUJsb2NrKTtcbiAgb3AoT3AuSGFzQmxvY2tQYXJhbXMpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5JZklubGluZSwgKG9wLCBbLCBjb25kaXRpb24sIHRydXRoeSwgZmFsc3ldKSA9PiB7XG4gIC8vIFB1c2ggaW4gcmV2ZXJzZSBvcmRlclxuICBleHByKG9wLCBmYWxzeSk7XG4gIGV4cHIob3AsIHRydXRoeSk7XG4gIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gIG9wKE9wLklmSW5saW5lKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuTm90LCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLk5vdCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldER5bmFtaWNWYXIsIChvcCwgWywgZXhwcmVzc2lvbl0pID0+IHtcbiAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gIG9wKE9wLkdldER5bmFtaWNWYXIpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Mb2csIChvcCwgWywgcG9zaXRpb25hbF0pID0+IHtcbiAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG51bGwsIGZhbHNlKTtcbiAgb3AoT3AuTG9nKTtcbiAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgb3AoT3AuRmV0Y2gsICR2MCk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0= |
@@ -10,2 +10,4 @@ "use strict"; | ||
var _globalContext = require("@glimmer/global-context"); | ||
var _vm = require("@glimmer/vm"); | ||
@@ -256,3 +258,6 @@ | ||
/* ResolveLocal */ | ||
, value[1], name => { | ||
, value[1], (name, moduleName) => { | ||
(0, _globalContext.deprecate)(`The \`${name}\` property was used in a template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, { | ||
id: 'this-property-fallback' | ||
}); | ||
op(21 | ||
@@ -541,2 +546,2 @@ /* GetVariable */ | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBYUE7O0FBQ0E7O0FBS0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBRU8sTUFBTSxVQUFVLEdBQUcsSUFBbkIsb0JBQW1CLEVBQW5COztBQUVQLE1BQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsTUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7O0FBSU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUEyRDtBQUMvRCxTQUFPLE9BQUEsT0FBQSxLQUFBLFFBQUEsR0FBQSxPQUFBLEdBQXdDLGlCQUFpQixDQUFoRSxPQUFnRSxDQUFoRTtBQUNEOztBQUVLLFNBQUEsZUFBQSxDQUFBLFFBQUEsRUFBOEQ7QUFDbEUsU0FBTyxPQUFBLFFBQUEsS0FBQSxRQUFBLEdBQUEsUUFBQSxHQUEwQyxrQkFBa0IsQ0FBbkUsUUFBbUUsQ0FBbkU7QUFDRDs7QUFFRCxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFvQyxDQUFBLEVBQUEsRUFBQSxJQUFBLEtBQWMsRUFBRSxDQUFBO0FBQUE7QUFBQSxFQUFhLElBQUksQ0FBckUsQ0FBcUUsQ0FBakIsQ0FBcEQ7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUEwQyxFQUFELElBQVEsRUFBRSxDQUFBO0FBQUE7QUFBQSxDQUFuRDtBQUNBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQTBDLEVBQUQsSUFBUSxFQUFFLENBQUE7QUFBQTtBQUFBLENBQW5EO0FB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Q0FBaUIsRUFBakIsRUFBQSxXQUFBO0FBQ0EsMkJBQVksRUFBWixFQUFZLEtBQVosRUFBd0IsTUFBSztBQUMzQixxQ0FBaUIsRUFBakIsRUFBQSxLQUFBO0FBREYsS0FBQTtBQUpGLEdBQUEsTUFPTztBQUNMLG1DQUFpQixFQUFqQixFQUFBLEtBQUE7QUFDRDtBQVZILENBQUE7QUFhQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUE0QyxDQUFBLEVBQUEsRUFBSyxHQUFBLElBQUEsRUFBQSxVQUFBLEVBQUEsS0FBQSxFQUFMLE1BQUssQ0FBTCxLQUE0QztBQUN0RixNQUFJLG9DQUFKLElBQUksQ0FBSixFQUE4QjtBQUM1QixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxJQUFBLEVBQW9ELFNBQUQsSUFBb0M7QUFDdkYsdUNBQWUsRUFBZixFQUFlLFNBQWYsRUFBZSxJQUFmLEVBQWUsVUFBZixFQUFpRCxVQUFVLENBQTVDLEtBQTRDLENBQTNELEVBQUEsTUFBQTtBQURGLEtBQUUsQ0FBRjtBQURGLEdBQUEsTUFJTztBQUNMLDRDQUFzQixFQUF0QixFQUFzQixJQUF0QixFQUFzQixJQUF0QixFQUFzQixVQUF0QixFQUFzQixLQUF0QixFQUFzQixNQUF0QixFQUFzQixLQUF0QixFQUFBLEtBQUE7QUFDRDtBQVBILENBQUE7O0FBVUEsU0FBQSxVQUFBLENBQUEsSUFBQSxFQUFxRDtBQUNuRCxNQUFJLElBQUksS0FBUixJQUFBLEVBQW1CLE9BQUEsSUFBQTtBQUNuQixNQUFJLEtBQUssR0FBRyxJQUFJLENBQUosQ0FBSSxDQUFKLENBQUEsR0FBQSxDQUFhLEdBQUQsSUFBUyxJQUFJLEdBQXJDLEVBQVksQ0FBWjtBQUNBLFNBQU8sQ0FBQSxLQUFBLEVBQWlDLElBQUksQ0FBNUMsQ0FBNEMsQ0FBckMsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb21wb25lbnQsXG4gIENvbnRlbnRUeXBlLFxuICBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIE9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgU3RhdGVtZW50U2V4cE9wY29kZSxcbiAgV2VsbEtub3duQXR0ck5hbWUsXG4gIFdlbGxLbm93blRhZ05hbWUsXG4gIFdpcmVGb3JtYXQsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJGZwLCAkc3AgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQge1xuICBJbnZva2VTdGF0aWNCbG9jayxcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2ssXG4gIFlpZWxkQmxvY2ssXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvYmxvY2tzJztcbmltcG9ydCB7XG4gIEludm9rZUNvbXBvbmVudCxcbiAgSW52b2tlRHluYW1pY0NvbXBvbmVudCxcbiAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50LFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU3dpdGNoQ2FzZXMsIFJlcGxheWFibGUsIFJlcGxheWFibGVJZiB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvY29uZGl0aW9uYWwnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBDb21waWxlUG9zaXRpb25hbCwgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7XG4gIENhbGwsXG4gIENhbGxEeW5hbWljLFxuICBEeW5hbWljU2NvcGUsXG4gIFB1c2hQcmltaXRpdmVSZWZlcmVuY2UsXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgZXZhbFN5bWJvbHNPcGVyYW5kLCBsYWJlbE9wZXJhbmQsIHN0ZGxpYk9wZXJhbmQgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9vcGVyYW5kcyc7XG5pbXBvcnQgeyBDb21waWxlcnMsIFB1c2hTdGF0ZW1lbnRPcCB9IGZyb20gJy4vY29tcGlsZXJzJztcbmltcG9ydCB7XG4gIGlzR2V0RnJlZUNvbXBvbmVudCxcbiAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIsXG4gIGlzR2V0RnJlZU1vZGlmaWVyLFxuICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgbmFtZWRCbG9ja3MgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBTVEFURU1FTlRTID0gbmV3IENvbXBpbGVyczxQdXNoU3RhdGVtZW50T3AsIFN0YXRlbWVudFNleHBPcGNvZGU+KCk7XG5cbmNvbnN0IElORkxBVEVfQVRUUl9UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25BdHRyTmFtZV06IHN0cmluZztcbn0gPSBbJ2NsYXNzJywgJ2lkJywgJ3ZhbHVlJywgJ25hbWUnLCAndHlwZScsICdzdHlsZScsICdocmVmJ107XG5jb25zdCBJTkZMQVRFX1RBR19UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25UYWdOYW1lXTogc3RyaW5nO1xufSA9IFsnZGl2JywgJ3NwYW4nLCAncCcsICdhJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlVGFnTmFtZSh0YWdOYW1lOiBzdHJpbmcgfCBXZWxsS25vd25UYWdOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiB0YWdOYW1lID09PSAnc3RyaW5nJyA/IHRhZ05hbWUgOiBJTkZMQVRFX1RBR19UQUJMRVt0YWdOYW1lXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluZmxhdGVBdHRyTmFtZShhdHRyTmFtZTogc3RyaW5nIHwgV2VsbEtub3duQXR0ck5hbWUpOiBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIGF0dHJOYW1lID09PSAnc3RyaW5nJyA/IGF0dHJOYW1lIDogSU5GTEFURV9BVFRSX1RBQkxFW2F0dHJOYW1lXTtcbn1cblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tbWVudCwgKG9wLCBzZXhwKSA9PiBvcChPcC5Db21tZW50LCBzZXhwWzFdKSk7XG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5DbG9zZUVsZW1lbnQsIChvcCkgPT4gb3AoT3AuQ2xvc2VFbGVtZW50KSk7XG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5GbHVzaEVsZW1lbnQsIChvcCkgPT4gb3AoT3AuRmx1c2hFbGVtZW50KSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk1vZGlmaWVyLCAob3AsIFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlTW9kaWZpZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVNb2RpZmllciwgZXhwcmVzc2lvbiwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgICBvcChPcC5Nb2RpZmllciwgaGFuZGxlKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgICBvcChPcC5EdXAsICRmcCwgMSk7XG4gICAgb3AoT3AuRHluYW1pY01vZGlmaWVyKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuU3RhdGljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBvcChPcC5TdGF0aWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHZhbHVlIGFzIHN0cmluZywgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EeW5hbWljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkR5bmFtaWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIGZhbHNlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdEeW5hbWljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkR5bmFtaWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdHJ1ZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk9wZW5FbGVtZW50LCAob3AsIFssIHRhZ10pID0+IHtcbiAgb3AoT3AuT3BlbkVsZW1lbnQsIGluZmxhdGVUYWdOYW1lKHRhZykpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk9wZW5FbGVtZW50V2l0aFNwbGF0LCAob3AsIFssIHRhZ10pID0+IHtcbiAgb3AoT3AuUHV0Q29tcG9uZW50T3BlcmF0aW9ucyk7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21wb25lbnQsIChvcCwgWywgZXhwciwgZWxlbWVudEJsb2NrLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIGVsZW1lbnRCbG9jaywgbnVsbCwgbmFtZWQsIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gb3RoZXJ3aXNlLCB0aGUgY29tcG9uZW50IG5hbWUgd2FzIGFuIGV4cHJlc3Npb24sIHNvIHJlc29sdmUgdGhlIGV4cHJlc3Npb25cbiAgICAvLyBhbmQgaW52b2tlIGl0IGFzIGEgZHluYW1pYyBjb21wb25lbnRcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MsIHRydWUsIHRydWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuUGFydGlhbCwgKG9wLCBbLCBuYW1lLCBldmFsSW5mb10pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIG5hbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuSW52b2tlUGFydGlhbCwgZXZhbFN5bWJvbHNPcGVyYW5kKCksIGV2YWxJbmZvKTtcbiAgICAgIG9wKE9wLlBvcFNjb3BlKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLllpZWxkLCAob3AsIFssIHRvLCBwYXJhbXNdKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgcGFyYW1zKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkF0dHJTcGxhdCwgKG9wLCBbLCB0b10pID0+IFlpZWxkQmxvY2sob3AsIHRvLCBudWxsKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkRlYnVnZ2VyLCAob3AsIFssIGV2YWxJbmZvXSkgPT5cbiAgb3AoT3AuRGVidWdnZXIsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbylcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkFwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgLy8gU3BlY2lhbCBjYXNlIGZvciBzdGF0aWMgdmFsdWVzXG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIGlmIChpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKHZhbHVlKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsIHZhbHVlLCB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuXG4gICAgICBpZlZhbHVlKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChPcC5Db25zdGFudFJlZmVyZW5jZSwgaGFuZGxlKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZGYWxsYmFjayhfbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgdmFsdWVbMV0sIChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSBlbHNlIGlmICh2YWx1ZVswXSA9PT0gU2V4cE9wY29kZXMuQ2FsbCkge1xuICAgIGxldCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0gPSB2YWx1ZTtcblxuICAgIGlmIChpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcihleHByZXNzaW9uKSkge1xuICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIsIGV4cHJlc3Npb24sIHtcbiAgICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgbnVsbCk7XG4gICAgICAgIH0sXG4gICAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgU3dpdGNoQ2FzZXMoXG4gICAgICAgIG9wLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgb3AoT3AuRHluYW1pY0NvbnRlbnRUeXBlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKHdoZW4pID0+IHtcbiAgICAgICAgICB3aGVuKENvbnRlbnRUeXBlLkNvbXBvbmVudCwgKCkgPT4ge1xuICAgICAgICAgICAgb3AoT3AuUmVzb2x2ZUN1cnJpZWRDb21wb25lbnQpO1xuICAgICAgICAgICAgb3AoT3AuUHVzaER5bmFtaWNDb21wb25lbnRJbnN0YW5jZSk7XG4gICAgICAgICAgICBJbnZva2VOb25TdGF0aWNDb21wb25lbnQob3AsIHtcbiAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiB0cnVlLFxuICAgICAgICAgICAgICBlbGVtZW50QmxvY2s6IG51bGwsXG4gICAgICAgICAgICAgIHBvc2l0aW9uYWwsXG4gICAgICAgICAgICAgIG5hbWVkLFxuICAgICAgICAgICAgICBhdE5hbWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgYmxvY2tzOiBuYW1lZEJsb2NrcyhudWxsKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5IZWxwZXIsICgpID0+IHtcbiAgICAgICAgICAgIENhbGxEeW5hbWljKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgKCkgPT4ge1xuICAgICAgICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdBcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIHtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgndHJ1c3RpbmctYXBwZW5kJykpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5CbG9jaywgKG9wLCBbLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIG51bGwsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3MsIGZhbHNlLCBmYWxzZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JbkVsZW1lbnQsIChvcCwgWywgYmxvY2ssIGd1aWQsIGRlc3RpbmF0aW9uLCBpbnNlcnRCZWZvcmVdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIGd1aWQpO1xuXG4gICAgICBpZiAoaW5zZXJ0QmVmb3JlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgdW5kZWZpbmVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4cHIob3AsIGluc2VydEJlZm9yZSk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIGRlc3RpbmF0aW9uKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDQ7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLlB1c2hSZW1vdGVFbGVtZW50KTtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgICBvcChPcC5Qb3BSZW1vdGVFbGVtZW50KTtcbiAgICB9XG4gICk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSWYsIChvcCwgWywgY29uZGl0aW9uLCBibG9jaywgaW52ZXJzZV0pID0+XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBjb25kaXRpb24pO1xuICAgICAgb3AoT3AuVG9Cb29sZWFuKTtcblxuICAgICAgcmV0dXJuIDE7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgfSxcblxuICAgIGludmVyc2VcbiAgICAgID8gKCkgPT4ge1xuICAgICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWRcbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRWFjaCwgKG9wLCBbLCB2YWx1ZSwga2V5LCBibG9jaywgaW52ZXJzZV0pID0+XG4gIFJlcGxheWFibGUoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIGV4cHIob3AsIGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgZXhwcihvcCwgdmFsdWUpO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuRW50ZXJMaXN0LCBsYWJlbE9wZXJhbmQoJ0JPRFknKSwgbGFiZWxPcGVyYW5kKCdFTFNFJykpO1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBvcChPcC5EdXAsICRmcCwgMSk7XG4gICAgICBvcChNYWNoaW5lT3AuUmV0dXJuVG8sIGxhYmVsT3BlcmFuZCgnSVRFUicpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdJVEVSJyk7XG4gICAgICBvcChPcC5JdGVyYXRlLCBsYWJlbE9wZXJhbmQoJ0JSRUFLJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0JPRFknKTtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgMik7XG4gICAgICBvcChPcC5Qb3AsIDIpO1xuICAgICAgb3AoTWFjaGluZU9wLkp1bXAsIGxhYmVsT3BlcmFuZCgnRklOQUxMWScpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCUkVBSycpO1xuICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIG9wKE9wLkV4aXRMaXN0KTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnRUxTRScpO1xuXG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoLCAob3AsIFssIHZhbHVlLCBibG9jaywgaW52ZXJzZV0pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgdmFsdWUpO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuICAgICAgb3AoT3AuVG9Cb29sZWFuKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgMSk7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuTGV0LCAob3AsIFssIHBvc2l0aW9uYWwsIGJsb2NrXSkgPT4ge1xuICBsZXQgY291bnQgPSBDb21waWxlUG9zaXRpb25hbChvcCwgcG9zaXRpb25hbCk7XG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgY291bnQpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLldpdGhEeW5hbWljVmFycywgKG9wLCBbLCBuYW1lZCwgYmxvY2tdKSA9PiB7XG4gIGlmIChuYW1lZCkge1xuICAgIGxldCBbbmFtZXMsIGV4cHJlc3Npb25zXSA9IG5hbWVkO1xuXG4gICAgQ29tcGlsZVBvc2l0aW9uYWwob3AsIGV4cHJlc3Npb25zKTtcbiAgICBEeW5hbWljU2NvcGUob3AsIG5hbWVzLCAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JbnZva2VDb21wb25lbnQsIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuZnVuY3Rpb24gaGFzaFRvQXJncyhoYXNoOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB8IG51bGwpOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB8IG51bGwge1xuICBpZiAoaGFzaCA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gIGxldCBuYW1lcyA9IGhhc2hbMF0ubWFwKChrZXkpID0+IGBAJHtrZXl9YCk7XG4gIHJldHVybiBbbmFtZXMgYXMgW3N0cmluZywgLi4uc3RyaW5nW11dLCBoYXNoWzFdXTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBY0E7O0FBQ0E7O0FBS0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBRU8sTUFBTSxVQUFVLEdBQUcsSUFBbkIsb0JBQW1CLEVBQW5COztBQUVQLE1BQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsTUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7O0FBSU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUEyRDtBQUMvRCxTQUFPLE9BQUEsT0FBQSxLQUFBLFFBQUEsR0FBQSxPQUFBLEdBQXdDLGlCQUFpQixDQUFoRSxPQUFnRSxDQUFoRTtBQUNEOztBQUVLLFNBQUEsZUFBQSxDQUFBLFFBQUEsRUFBOEQ7QUFDbEUsU0FBTyxPQUFBLFFBQUEsS0FBQSxRQUFBLEdBQUEsUUFBQSxHQUEwQyxrQkFBa0IsQ0FBbkUsUUFBbUUsQ0FBbkU7QUFDRDs7QUFFRCxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFvQyxDQUFBLEVBQUEsRUFBQSxJQUFBLEtBQWMsRUFBRSxDQUFBO0FBQUE7QUFBQSxFQUFhLElBQUksQ0FBckUsQ0FBcUUsQ0FBakIsQ0FBcEQ7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUEwQyxFQUFELElBQVEsRUFBRSxDQUFBO0FBQUE7QUFBQSxDQUFuRDtBQUNBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQTBDLEVBQUQsSUFBUSxFQUFFLENBQUE7QUFBQTtBQUFBLENB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Q0FBNEMsQ0FBckMsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb21wb25lbnQsXG4gIENvbnRlbnRUeXBlLFxuICBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIE9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgU3RhdGVtZW50U2V4cE9wY29kZSxcbiAgV2VsbEtub3duQXR0ck5hbWUsXG4gIFdlbGxLbm93blRhZ05hbWUsXG4gIFdpcmVGb3JtYXQsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJGZwLCAkc3AgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQge1xuICBJbnZva2VTdGF0aWNCbG9jayxcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2ssXG4gIFlpZWxkQmxvY2ssXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvYmxvY2tzJztcbmltcG9ydCB7XG4gIEludm9rZUNvbXBvbmVudCxcbiAgSW52b2tlRHluYW1pY0NvbXBvbmVudCxcbiAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50LFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU3dpdGNoQ2FzZXMsIFJlcGxheWFibGUsIFJlcGxheWFibGVJZiB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvY29uZGl0aW9uYWwnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBDb21waWxlUG9zaXRpb25hbCwgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7XG4gIENhbGwsXG4gIENhbGxEeW5hbWljLFxuICBEeW5hbWljU2NvcGUsXG4gIFB1c2hQcmltaXRpdmVSZWZlcmVuY2UsXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgZXZhbFN5bWJvbHNPcGVyYW5kLCBsYWJlbE9wZXJhbmQsIHN0ZGxpYk9wZXJhbmQgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9vcGVyYW5kcyc7XG5pbXBvcnQgeyBDb21waWxlcnMsIFB1c2hTdGF0ZW1lbnRPcCB9IGZyb20gJy4vY29tcGlsZXJzJztcbmltcG9ydCB7XG4gIGlzR2V0RnJlZUNvbXBvbmVudCxcbiAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIsXG4gIGlzR2V0RnJlZU1vZGlmaWVyLFxuICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgbmFtZWRCbG9ja3MgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBTVEFURU1FTlRTID0gbmV3IENvbXBpbGVyczxQdXNoU3RhdGVtZW50T3AsIFN0YXRlbWVudFNleHBPcGNvZGU+KCk7XG5cbmNvbnN0IElORkxBVEVfQVRUUl9UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25BdHRyTmFtZV06IHN0cmluZztcbn0gPSBbJ2NsYXNzJywgJ2lkJywgJ3ZhbHVlJywgJ25hbWUnLCAndHlwZScsICdzdHlsZScsICdocmVmJ107XG5jb25zdCBJTkZMQVRFX1RBR19UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25UYWdOYW1lXTogc3RyaW5nO1xufSA9IFsnZGl2JywgJ3NwYW4nLCAncCcsICdhJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlVGFnTmFtZSh0YWdOYW1lOiBzdHJpbmcgfCBXZWxsS25vd25UYWdOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiB0YWdOYW1lID09PSAnc3RyaW5nJyA/IHRhZ05hbWUgOiBJTkZMQVRFX1RBR19UQUJMRVt0YWdOYW1lXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluZmxhdGVBdHRyTmFtZShhdHRyTmFtZTogc3RyaW5nIHwgV2VsbEtub3duQXR0ck5hbWUpOiBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIGF0dHJOYW1lID09PSAnc3RyaW5nJyA/IGF0dHJOYW1lIDogSU5GTEFURV9BVFRSX1RBQkxFW2F0dHJOYW1lXTtcbn1cblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tbWVudCwgKG9wLCBzZXhwKSA9PiBvcChPcC5Db21tZW50LCBzZXhwWzFdKSk7XG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5DbG9zZUVsZW1lbnQsIChvcCkgPT4gb3AoT3AuQ2xvc2VFbGVtZW50KSk7XG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5GbHVzaEVsZW1lbnQsIChvcCkgPT4gb3AoT3AuRmx1c2hFbGVtZW50KSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk1vZGlmaWVyLCAob3AsIFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlTW9kaWZpZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVNb2RpZmllciwgZXhwcmVzc2lvbiwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgICBvcChPcC5Nb2RpZmllciwgaGFuZGxlKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgICBvcChPcC5EdXAsICRmcCwgMSk7XG4gICAgb3AoT3AuRHluYW1pY01vZGlmaWVyKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuU3RhdGljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBvcChPcC5TdGF0aWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHZhbHVlIGFzIHN0cmluZywgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EeW5hbWljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkR5bmFtaWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIGZhbHNlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdEeW5hbWljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkR5bmFtaWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdHJ1ZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk9wZW5FbGVtZW50LCAob3AsIFssIHRhZ10pID0+IHtcbiAgb3AoT3AuT3BlbkVsZW1lbnQsIGluZmxhdGVUYWdOYW1lKHRhZykpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk9wZW5FbGVtZW50V2l0aFNwbGF0LCAob3AsIFssIHRhZ10pID0+IHtcbiAgb3AoT3AuUHV0Q29tcG9uZW50T3BlcmF0aW9ucyk7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21wb25lbnQsIChvcCwgWywgZXhwciwgZWxlbWVudEJsb2NrLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIGVsZW1lbnRCbG9jaywgbnVsbCwgbmFtZWQsIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gb3RoZXJ3aXNlLCB0aGUgY29tcG9uZW50IG5hbWUgd2FzIGFuIGV4cHJlc3Npb24sIHNvIHJlc29sdmUgdGhlIGV4cHJlc3Npb25cbiAgICAvLyBhbmQgaW52b2tlIGl0IGFzIGEgZHluYW1pYyBjb21wb25lbnRcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MsIHRydWUsIHRydWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuUGFydGlhbCwgKG9wLCBbLCBuYW1lLCBldmFsSW5mb10pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIG5hbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuSW52b2tlUGFydGlhbCwgZXZhbFN5bWJvbHNPcGVyYW5kKCksIGV2YWxJbmZvKTtcbiAgICAgIG9wKE9wLlBvcFNjb3BlKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLllpZWxkLCAob3AsIFssIHRvLCBwYXJhbXNdKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgcGFyYW1zKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkF0dHJTcGxhdCwgKG9wLCBbLCB0b10pID0+IFlpZWxkQmxvY2sob3AsIHRvLCBudWxsKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkRlYnVnZ2VyLCAob3AsIFssIGV2YWxJbmZvXSkgPT5cbiAgb3AoT3AuRGVidWdnZXIsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbylcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkFwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgLy8gU3BlY2lhbCBjYXNlIGZvciBzdGF0aWMgdmFsdWVzXG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIGlmIChpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKHZhbHVlKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsIHZhbHVlLCB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuXG4gICAgICBpZlZhbHVlKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChPcC5Db25zdGFudFJlZmVyZW5jZSwgaGFuZGxlKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZGYWxsYmFjayhfbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgdmFsdWVbMV0sIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGRlcHJlY2F0ZShcbiAgICAgICAgICAgIGBUaGUgXFxgJHtuYW1lfVxcYCBwcm9wZXJ0eSB3YXMgdXNlZCBpbiBhIHRlbXBsYXRlIGZvciB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCBjb21wb25lbnQgd2l0aG91dCB1c2luZyBcXGB0aGlzXFxgLiBUaGlzIGZhbGxiYWNrIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFsbCBwcm9wZXJ0aWVzIG11c3QgYmUgbG9va2VkIHVwIG9uIFxcYHRoaXNcXGAgd2hlbiB1c2VkIGluIHRoZSB0ZW1wbGF0ZToge3t0aGlzLiR7bmFtZX19fWAsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodmFsdWVbMF0gPT09IFNleHBPcGNvZGVzLkNhbGwpIHtcbiAgICBsZXQgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdID0gdmFsdWU7XG5cbiAgICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLCBleHByZXNzaW9uLCB7XG4gICAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpIHtcbiAgICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFN3aXRjaENhc2VzKFxuICAgICAgICBvcCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgICAgICAgIG9wKE9wLkR5bmFtaWNDb250ZW50VHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgICh3aGVuKSA9PiB7XG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5Db21wb25lbnQsICgpID0+IHtcbiAgICAgICAgICAgIG9wKE9wLlJlc29sdmVDdXJyaWVkQ29tcG9uZW50KTtcbiAgICAgICAgICAgIG9wKE9wLlB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgICAgICAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50KG9wLCB7XG4gICAgICAgICAgICAgIGNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgICAgICAgZWxlbWVudEJsb2NrOiBudWxsLFxuICAgICAgICAgICAgICBwb3NpdGlvbmFsLFxuICAgICAgICAgICAgICBuYW1lZCxcbiAgICAgICAgICAgICAgYXROYW1lczogZmFsc2UsXG4gICAgICAgICAgICAgIGJsb2NrczogbmFtZWRCbG9ja3MobnVsbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuSGVscGVyLCAoKSA9PiB7XG4gICAgICAgICAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQXBwZW5kLCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ3RydXN0aW5nLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQmxvY2ssIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW5FbGVtZW50LCAob3AsIFssIGJsb2NrLCBndWlkLCBkZXN0aW5hdGlvbiwgaW5zZXJ0QmVmb3JlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBndWlkKTtcblxuICAgICAgaWYgKGluc2VydEJlZm9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHByKG9wLCBpbnNlcnRCZWZvcmUpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCBkZXN0aW5hdGlvbik7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG5cbiAgICAgIHJldHVybiA0O1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5QdXNoUmVtb3RlRWxlbWVudCk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgICAgb3AoT3AuUG9wUmVtb3RlRWxlbWVudCk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLklmLCAob3AsIFssIGNvbmRpdGlvbiwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAxO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0sXG5cbiAgICBpbnZlcnNlXG4gICAgICA/ICgpID0+IHtcbiAgICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkVhY2gsIChvcCwgWywgdmFsdWUsIGtleSwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBleHByKG9wLCBrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkVudGVyTGlzdCwgbGFiZWxPcGVyYW5kKCdCT0RZJyksIGxhYmVsT3BlcmFuZCgnRUxTRScpKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgICAgb3AoTWFjaGluZU9wLlJldHVyblRvLCBsYWJlbE9wZXJhbmQoJ0lURVInKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnSVRFUicpO1xuICAgICAgb3AoT3AuSXRlcmF0ZSwgbGFiZWxPcGVyYW5kKCdCUkVBSycpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCT0RZJyk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDIpO1xuICAgICAgb3AoT3AuUG9wLCAyKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQlJFQUsnKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICBvcChPcC5FeGl0TGlzdCk7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0VMU0UnKTtcblxuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aCwgKG9wLCBbLCB2YWx1ZSwgYmxvY2ssIGludmVyc2VdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDEpO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkxldCwgKG9wLCBbLCBwb3NpdGlvbmFsLCBibG9ja10pID0+IHtcbiAgbGV0IGNvdW50ID0gQ29tcGlsZVBvc2l0aW9uYWwob3AsIHBvc2l0aW9uYWwpO1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIGNvdW50KTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoRHluYW1pY1ZhcnMsIChvcCwgWywgbmFtZWQsIGJsb2NrXSkgPT4ge1xuICBpZiAobmFtZWQpIHtcbiAgICBsZXQgW25hbWVzLCBleHByZXNzaW9uc10gPSBuYW1lZDtcblxuICAgIENvbXBpbGVQb3NpdGlvbmFsKG9wLCBleHByZXNzaW9ucyk7XG4gICAgRHluYW1pY1Njb3BlKG9wLCBuYW1lcywgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW52b2tlQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGhhc2hUb0FyZ3MoaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsKTogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsIHtcbiAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuICBsZXQgbmFtZXMgPSBoYXNoWzBdLm1hcCgoa2V5KSA9PiBgQCR7a2V5fWApO1xuICByZXR1cm4gW25hbWVzIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSwgaGFzaFsxXV07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 |
@@ -140,3 +140,3 @@ "use strict"; | ||
_then(name); | ||
_then(name, meta.moduleName); | ||
} | ||
@@ -317,2 +317,2 @@ | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQXlCQTs7QUFDQTs7QUFDQTs7QUFRQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTSxNQUFOLEdBQUEsYUFBQSxZQUFBO0FBQUEsV0FBQSxNQUFBLEdBQUE7QUFDRSxTQUFBLE1BQUEsR0FBQSxpQkFBQTtBQUNBLFNBQUEsT0FBQSxHQUFBLEVBQUE7QUFxQkQ7O0FBdkJELE1BQUEsTUFBQSxHQUFBLE1BQUEsQ0FBQSxTQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLEtBQUEsR0FJRSxTQUFBLEtBQUEsQ0FBQSxJQUFBLEVBQUEsS0FBQSxFQUFpQztBQUMvQixTQUFBLE1BQUEsQ0FBQSxJQUFBLElBQUEsS0FBQTtBQUxKLEdBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsTUFBQSxHQVFFLFNBQUEsTUFBQSxDQUFBLEVBQUEsRUFBQSxPQUFBLEVBQWlDO0FBQy9CLFNBQUEsT0FBQSxDQUFBLElBQUEsQ0FBa0I7QUFBRSxNQUFBLEVBQUYsRUFBQSxFQUFBO0FBQU0sTUFBQSxNQUFBLEVBQUE7QUFBTixLQUFsQjtBQVRKLEdBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsS0FBQSxHQVlFLFNBQUEsS0FBQSxDQUFBLElBQUEsRUFBMkI7QUFBQSxRQUNyQixPQURxQixHQUFBLEtBQUEsT0FBQTtBQUFBLFFBQ1YsTUFEVSxHQUFBLEtBQUEsTUFBQTs7QUFFekIsU0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxPQUFPLENBQTNCLE1BQUEsRUFBb0MsQ0FBcEMsRUFBQSxFQUF5QztBQUFBLFVBQUEsVUFBQSxHQUNsQixPQUFPLENBRFcsQ0FDWCxDQURXO0FBQUEsVUFDbkMsRUFEbUMsR0FBQSxVQUFBLENBQUEsRUFBQTtBQUFB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bnQiOlsiaW1wb3J0IHsgSW5zdHJ1Y3Rpb25FbmNvZGVySW1wbCB9IGZyb20gJ0BnbGltbWVyL2VuY29kZXInO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gIE9wZXJhbmQsXG4gIENvbXBpbGVUaW1lSGVhcCxcbiAgT3AsXG4gIEJ1aWxkZXJPcGNvZGUsXG4gIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgU2luZ2xlQnVpbGRlck9wZXJhbmQsXG4gIEVuY29kZXIsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIEhpZ2hMZXZlbE9wLFxuICBPcGNvZGVTaXplLFxuICBJbnN0cnVjdGlvbkVuY29kZXIsXG4gIERpY3QsXG4gIEVuY29kZXJFcnJvcixcbiAgSGFuZGxlUmVzdWx0LFxuICBCdWlsZGVyT3AsXG4gIENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgSGlnaExldmVsT3BlcmFuZCxcbiAgU1RETGliLFxuICBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBpc01hY2hpbmVPcCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IFN0YWNrLCBkaWN0LCBleHBlY3QsIEVNUFRZX1NUUklOR19BUlJBWSwgZW5jb2RlSGFuZGxlLCBhc3NlcnQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIHJlc29sdmVDb21wb25lbnQsXG4gIHJlc29sdmVDb21wb25lbnRPckhlbHBlcixcbiAgcmVzb2x2ZUhlbHBlcixcbiAgcmVzb2x2ZU1vZGlmaWVyLFxuICByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbiAgcmVzb2x2ZU9wdGlvbmFsSGVscGVyLFxufSBmcm9tICcuL2hlbHBlcnMvcmVzb2x1dGlvbic7XG5pbXBvcnQgeyBjb21waWxhYmxlQmxvY2sgfSBmcm9tICcuLi9jb21waWxhYmxlLXRlbXBsYXRlJztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcblxuZXhwb3J0IGNsYXNzIExhYmVscyB7XG4gIGxhYmVsczogRGljdDxudW1iZXI+ID0gZGljdCgpO1xuICB0YXJnZXRzOiBBcnJheTx7IGF0OiBudW1iZXI7IHRhcmdldDogc3RyaW5nIH0+ID0gW107XG5cbiAgbGFiZWwobmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5sYWJlbHNbbmFtZV0gPSBpbmRleDtcbiAgfVxuXG4gIHRhcmdldChhdDogbnVtYmVyLCB0YXJnZXQ6IHN0cmluZykge1xuICAgIHRoaXMudGFyZ2V0cy5wdXNoKHsgYXQsIHRhcmdldCB9KTtcbiAgfVxuXG4gIHBhdGNoKGhlYXA6IENvbXBpbGVUaW1lSGVhcCk6IHZvaWQge1xuICAgIGxldCB7IHRhcmdldHMsIGxhYmVscyB9ID0gdGhpcztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhcmdldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCB7IGF0LCB0YXJnZXQgfSA9IHRhcmdldHNbaV07XG4gICAgICBsZXQgYWRkcmVzcyA9IGxhYmVsc1t0YXJnZXRdIC0gYXQ7XG5cbiAgICAgIGFzc2VydChoZWFwLmdldGJ5YWRkcihhdCkgPT09IC0xLCAnRXhwZWN0ZWQgaGVhcCB0byBjb250YWluIGEgcGxhY2Vob2xkZXIsIGJ1dCBpdCBkaWQgbm90Jyk7XG5cbiAgICAgIGhlYXAuc2V0YnlhZGRyKGF0LCBhZGRyZXNzKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZU9wKFxuICBlbmNvZGVyOiBFbmNvZGVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIG9wOiBCdWlsZGVyT3AgfCBIaWdoTGV2ZWxPcFxuKTogdm9pZCB7XG4gIGlmIChpc0J1aWxkZXJPcGNvZGUob3BbMF0pKSB7XG4gICAgbGV0IFt0eXBlLCAuLi5vcGVyYW5kc10gPSBvcDtcbiAgICBlbmNvZGVyLnB1c2goY29uc3RhbnRzLCB0eXBlLCAuLi4ob3BlcmFuZHMgYXMgU2luZ2xlQnVpbGRlck9wZXJhbmRbXSkpO1xuICB9IGVsc2Uge1xuICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgIGNhc2UgSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbDpcbiAgICAgICAgcmV0dXJuIGVuY29kZXIubGFiZWwob3BbMV0pO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLlN0YXJ0TGFiZWxzOlxuICAgICAgICByZXR1cm4gZW5jb2Rlci5zdGFydExhYmVscygpO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLlN0b3BMYWJlbHM6XG4gICAgICAgIHJldHVybiBlbmNvZGVyLnN0b3BMYWJlbHMoKTtcblxuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQ6XG4gICAgICAgIHJldHVybiByZXNvbHZlQ29tcG9uZW50KHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXI6XG4gICAgICAgIHJldHVybiByZXNvbHZlTW9kaWZpZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXI6XG4gICAgICAgIHJldHVybiByZXNvbHZlSGVscGVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50T3JIZWxwZXI6XG4gICAgICAgIHJldHVybiByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVPcHRpb25hbEhlbHBlcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXI6XG4gICAgICAgIHJldHVybiByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG5cbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWw6XG4gICAgICAgIGxldCBmcmVlVmFyID0gb3BbMV07XG4gICAgICAgIGxldCBuYW1lID0gZXhwZWN0KG1ldGEudXB2YXJzLCAnQlVHOiBhdHRlbXB0ZWQgdG8gcmVzb2x2ZSB2YWx1ZSBidXQgbm8gdXB2YXJzIGZvdW5kJylbXG4gICAgICAgICAgZnJlZVZhclxuICAgICAgICBdO1xuXG4gICAgICAgIGlmIChtZXRhLmFzUGFydGlhbCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGVuY29kZXIucHVzaChjb25zdGFudHMsIE9wLlJlc29sdmVNYXliZUxvY2FsLCBuYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgdGhlbiA9IG9wWzJdO1xuXG4gICAgICAgICAgdGhlbihuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZVRlbXBsYXRlTG9jYWw6XG4gICAgICAgIGxldCBbLCB2YWx1ZUluZGV4LCB0aGVuXSA9IG9wO1xuICAgICAgICBsZXQgdmFsdWUgPSBleHBlY3QoXG4gICAgICAgICAgbWV0YS5zY29wZVZhbHVlcyxcbiAgICAgICAgICAnQlVHOiBBdHRlbXB0ZWQgdG8gZ2VjdCBhIHRlbXBsYXRlIGxvY2FsLCBidXQgdGVtcGxhdGUgZG9lcyBub3QgaGF2ZSBhbnknXG4gICAgICAgIClbdmFsdWVJbmRleF07XG5cbiAgICAgICAgdGhlbihjb25zdGFudHMudmFsdWUodmFsdWUpKTtcblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVGcmVlOlxuICAgICAgICBpZiAoREVCVUcpIHtcbiAgICAgICAgICBsZXQgWywgdXB2YXJJbmRleF0gPSBvcDtcbiAgICAgICAgICBsZXQgZnJlZU5hbWUgPSBleHBlY3QobWV0YS51cHZhcnMsICdCVUc6IGF0dGVtcHRlZCB0byByZXNvbHZlIHZhbHVlIGJ1dCBubyB1cHZhcnMgZm91bmQnKVtcbiAgICAgICAgICAgIHVwdmFySW5kZXhcbiAgICAgICAgICBdO1xuXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgdmFsdWUgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtmcmVlTmFtZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGhpZ2ggbGV2ZWwgb3Bjb2RlICR7b3BbMF19YCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbmNvZGVySW1wbCBpbXBsZW1lbnRzIEVuY29kZXIge1xuICBwcml2YXRlIGxhYmVsc1N0YWNrID0gbmV3IFN0YWNrPExhYmVscz4oKTtcbiAgcHJpdmF0ZSBlbmNvZGVyOiBJbnN0cnVjdGlvbkVuY29kZXIgPSBuZXcgSW5zdHJ1Y3Rpb25FbmNvZGVySW1wbChbXSk7XG4gIHByaXZhdGUgZXJyb3JzOiBFbmNvZGVyRXJyb3JbXSA9IFtdO1xuICBwcml2YXRlIGhhbmRsZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaGVhcDogQ29tcGlsZVRpbWVIZWFwLFxuICAgIHByaXZhdGUgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICAgIHByaXZhdGUgc3RkbGliPzogU1RETGliXG4gICkge1xuICAgIHRoaXMuaGFuZGxlID0gaGVhcC5tYWxsb2MoKTtcbiAgfVxuXG4gIGVycm9yKGVycm9yOiBFbmNvZGVyRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmVuY29kZXIuZW5jb2RlKE9wLlByaW1pdGl2ZSwgMCk7XG4gICAgdGhpcy5lcnJvcnMucHVzaChlcnJvcik7XG4gIH1cblxuICBjb21taXQoc2l6ZTogbnVtYmVyKTogSGFuZGxlUmVzdWx0IHtcbiAgICBsZXQgaGFuZGxlID0gdGhpcy5oYW5kbGU7XG5cbiAgICB0aGlzLmhlYXAucHVzaChNYWNoaW5lT3AuUmV0dXJuIHwgT3Bjb2RlU2l6ZS5NQUNISU5FX01BU0spO1xuICAgIHRoaXMuaGVhcC5maW5pc2hNYWxsb2MoaGFuZGxlLCBzaXplKTtcblxuICAgIGlmICh0aGlzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7IGVycm9yczogdGhpcy5lcnJvcnMsIGhhbmRsZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaGFuZGxlO1xuICAgIH1cbiAgfVxuXG4gIHB1c2goXG4gICAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgICB0eXBlOiBCdWlsZGVyT3Bjb2RlLFxuICAgIC4uLmFyZ3M6IFNpbmdsZUJ1aWxkZXJPcGVyYW5kW11cbiAgKTogdm9pZCB7XG4gICAgbGV0IHsgaGVhcCB9ID0gdGhpcztcblxuICAgIGlmIChERUJVRyAmJiAodHlwZSBhcyBudW1iZXIpID4gT3Bjb2RlU2l6ZS5UWVBFX1NJWkUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgT3Bjb2RlIHR5cGUgb3ZlciA4LWJpdHMuIEdvdCAke3R5cGV9LmApO1xuICAgIH1cblxuICAgIGxldCBtYWNoaW5lID0gaXNNYWNoaW5lT3AodHlwZSkgPyBPcGNvZGVTaXplLk1BQ0hJTkVfTUFTSyA6IDA7XG4gICAgbGV0IGZpcnN0ID0gdHlwZSB8IG1hY2hpbmUgfCAoYXJncy5sZW5ndGggPDwgT3Bjb2RlU2l6ZS5BUkdfU0hJRlQpO1xuXG4gICAgaGVhcC5wdXNoKGZpcnN0KTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IG9wID0gYXJnc1tpXTtcbiAgICAgIGhlYXAucHVzaCh0aGlzLm9wZXJhbmQoY29uc3RhbnRzLCBvcCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlcmFuZChjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzLCBvcGVyYW5kOiBTaW5nbGVCdWlsZGVyT3BlcmFuZCk6IE9wZXJhbmQge1xuICAgIGlmICh0eXBlb2Ygb3BlcmFuZCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBvcGVyYW5kO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3BlcmFuZCA9PT0gJ29iamVjdCcgJiYgb3BlcmFuZCAhPT0gbnVsbCkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3BlcmFuZCkpIHtcbiAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMuYXJyYXkob3BlcmFuZCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChvcGVyYW5kLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuTGFiZWw6XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMYWJlbHMudGFyZ2V0KHRoaXMuaGVhcC5vZmZzZXQsIG9wZXJhbmQudmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLklzU3RyaWN0TW9kZTpcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLnZhbHVlKHRoaXMubWV0YS5pc1N0cmljdE1vZGUpKTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5FdmFsU3ltYm9sczpcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLmFycmF5KHRoaXMubWV0YS5ldmFsU3ltYm9scyB8fCBFTVBUWV9TVFJJTkdfQVJSQVkpKTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5CbG9jazpcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLnZhbHVlKGNvbXBpbGFibGVCbG9jayhvcGVyYW5kLnZhbHVlLCB0aGlzLm1ldGEpKSk7XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuU3RkTGliOlxuICAgICAgICAgICAgcmV0dXJuIGV4cGVjdChcbiAgICAgICAgICAgICAgdGhpcy5zdGRsaWIsXG4gICAgICAgICAgICAgICdhdHRlbXB0ZWQgdG8gZW5jb2RlIGEgc3RkbGliIG9wZXJhbmQsIGJ1dCB0aGUgZW5jb2RlciBkaWQgbm90IGhhdmUgYSBzdGRsaWIuIEFyZSB5b3UgY3VycmVudGx5IGJ1aWxkaW5nIHRoZSBzdGRsaWI/J1xuICAgICAgICAgICAgKVtvcGVyYW5kLnZhbHVlXTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5Ob25TbWFsbEludDpcbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuU3ltYm9sVGFibGU6XG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLkxheW91dDpcbiAgICAgICAgICAgIHJldHVybiBjb25zdGFudHMudmFsdWUob3BlcmFuZC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy52YWx1ZShvcGVyYW5kKSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBjdXJyZW50TGFiZWxzKCk6IExhYmVscyB7XG4gICAgcmV0dXJuIGV4cGVjdCh0aGlzLmxhYmVsc1N0YWNrLmN1cnJlbnQsICdidWc6IG5vdCBpbiBhIGxhYmVsIHN0YWNrJyk7XG4gIH1cblxuICBsYWJlbChuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRMYWJlbHMubGFiZWwobmFtZSwgdGhpcy5oZWFwLm9mZnNldCArIDEpO1xuICB9XG5cbiAgc3RhcnRMYWJlbHMoKSB7XG4gICAgdGhpcy5sYWJlbHNTdGFjay5wdXNoKG5ldyBMYWJlbHMoKSk7XG4gIH1cblxuICBzdG9wTGFiZWxzKCkge1xuICAgIGxldCBsYWJlbCA9IGV4cGVjdCh0aGlzLmxhYmVsc1N0YWNrLnBvcCgpLCAndW5iYWxhbmNlZCBwdXNoIGFuZCBwb3AgbGFiZWxzJyk7XG4gICAgbGFiZWwucGF0Y2godGhpcy5oZWFwKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0J1aWxkZXJPcGNvZGUob3A6IG51bWJlcik6IG9wIGlzIEJ1aWxkZXJPcGNvZGUge1xuICByZXR1cm4gb3AgPCBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLlN0YXJ0O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQXlCQTs7QUFDQTs7QUFDQTs7QUFRQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTSxNQUFOLEdBQUEsYUFBQSxZQUFBO0FBQUEsV0FBQSxNQUFBLEdBQUE7QUFDRSxTQUFBLE1BQUEsR0FBQSxpQkFBQTtBQUNBLFNBQUEsT0FBQSxHQUFBLEVBQUE7QUFxQkQ7O0FBdkJELE1BQUEsTUFBQSxHQUFBLE1BQUEsQ0FBQSxTQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLEtBQUEsR0FJRSxTQUFBLEtBQUEsQ0FBQSxJQUFBLEVBQUEsS0FBQSxFQUFpQztBQUMvQixTQUFBLE1BQUEsQ0FBQSxJQUFBLElBQUEsS0FBQTtBQUxKLEdBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsTUFBQSxHQVFFLFNBQUEsTUFBQSxDQUFBLEVBQUEsRUFBQSxPQUFBLEVBQWlDO0FBQy9CLFNBQUEsT0FBQSxDQUFBLElBQUEsQ0FBa0I7QUFBRSxNQUFBLEVBQUYsRUFBQSxFQUFBO0FBQU0sTUFBQSxNQUFBLEVBQUE7QUFBTixLQUFsQjtBQVRKLEdBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsS0FBQSxHQVlFLFNBQUEsS0FBQSxDQUFBLElBQUEsRUFBMkI7QUFBQSxRQUNyQixPQURxQixHQUFBLEtBQUEsT0FBQTtBQUFBLFFBQ1YsTUFEVSxHQUFBLEtBQUEsTUFBQTs7QUFFekIsU0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxPQUFPLENBQTNCLE1BQUEsRUFBb0MsQ0FBcEMsRUFBQSxFQUF5QztBQUFBLFVBQUEsVUFBQSxHQUNsQixPQUFPLENBRFcsQ0FDWCxDQURXO0FBQUEsVUFDbkMsRUFEbUMsR0FBQSxVQUFBLENBQUEsRUFBQTtBQUFB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O0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnN0cnVjdGlvbkVuY29kZXJJbXBsIH0gZnJvbSAnQGdsaW1tZXIvZW5jb2Rlcic7XG5pbXBvcnQge1xuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgT3BlcmFuZCxcbiAgQ29tcGlsZVRpbWVIZWFwLFxuICBPcCxcbiAgQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBTaW5nbGVCdWlsZGVyT3BlcmFuZCxcbiAgRW5jb2RlcixcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgSGlnaExldmVsT3AsXG4gIE9wY29kZVNpemUsXG4gIEluc3RydWN0aW9uRW5jb2RlcixcbiAgRGljdCxcbiAgRW5jb2RlckVycm9yLFxuICBIYW5kbGVSZXN1bHQsXG4gIEJ1aWxkZXJPcCxcbiAgQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgQ29udGFpbmluZ01ldGFkYXRhLFxuICBIaWdoTGV2ZWxPcGVyYW5kLFxuICBTVERMaWIsXG4gIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGlzTWFjaGluZU9wIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgU3RhY2ssIGRpY3QsIGV4cGVjdCwgRU1QVFlfU1RSSU5HX0FSUkFZLCBlbmNvZGVIYW5kbGUsIGFzc2VydCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZUNvbXBvbmVudCxcbiAgcmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLFxuICByZXNvbHZlSGVscGVyLFxuICByZXNvbHZlTW9kaWZpZXIsXG4gIHJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLFxuICByZXNvbHZlT3B0aW9uYWxIZWxwZXIsXG59IGZyb20gJy4vaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IGNvbXBpbGFibGVCbG9jayB9IGZyb20gJy4uL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY2xhc3MgTGFiZWxzIHtcbiAgbGFiZWxzOiBEaWN0PG51bWJlcj4gPSBkaWN0KCk7XG4gIHRhcmdldHM6IEFycmF5PHsgYXQ6IG51bWJlcjsgdGFyZ2V0OiBzdHJpbmcgfT4gPSBbXTtcblxuICBsYWJlbChuYW1lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmxhYmVsc1tuYW1lXSA9IGluZGV4O1xuICB9XG5cbiAgdGFyZ2V0KGF0OiBudW1iZXIsIHRhcmdldDogc3RyaW5nKSB7XG4gICAgdGhpcy50YXJnZXRzLnB1c2goeyBhdCwgdGFyZ2V0IH0pO1xuICB9XG5cbiAgcGF0Y2goaGVhcDogQ29tcGlsZVRpbWVIZWFwKTogdm9pZCB7XG4gICAgbGV0IHsgdGFyZ2V0cywgbGFiZWxzIH0gPSB0aGlzO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0cy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHsgYXQsIHRhcmdldCB9ID0gdGFyZ2V0c1tpXTtcbiAgICAgIGxldCBhZGRyZXNzID0gbGFiZWxzW3RhcmdldF0gLSBhdDtcblxuICAgICAgYXNzZXJ0KGhlYXAuZ2V0YnlhZGRyKGF0KSA9PT0gLTEsICdFeHBlY3RlZCBoZWFwIHRvIGNvbnRhaW4gYSBwbGFjZWhvbGRlciwgYnV0IGl0IGRpZCBub3QnKTtcblxuICAgICAgaGVhcC5zZXRieWFkZHIoYXQsIGFkZHJlc3MpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlT3AoXG4gIGVuY29kZXI6IEVuY29kZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgb3A6IEJ1aWxkZXJPcCB8IEhpZ2hMZXZlbE9wXG4pOiB2b2lkIHtcbiAgaWYgKGlzQnVpbGRlck9wY29kZShvcFswXSkpIHtcbiAgICBsZXQgW3R5cGUsIC4uLm9wZXJhbmRzXSA9IG9wO1xuICAgIGVuY29kZXIucHVzaChjb25zdGFudHMsIHR5cGUsIC4uLihvcGVyYW5kcyBhcyBTaW5nbGVCdWlsZGVyT3BlcmFuZFtdKSk7XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgY2FzZSBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsOlxuICAgICAgICByZXR1cm4gZW5jb2Rlci5sYWJlbChvcFsxXSk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuU3RhcnRMYWJlbHM6XG4gICAgICAgIHJldHVybiBlbmNvZGVyLnN0YXJ0TGFiZWxzKCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuU3RvcExhYmVsczpcbiAgICAgICAgcmV0dXJuIGVuY29kZXIuc3RvcExhYmVscygpO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudDpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVDb21wb25lbnQocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVNb2RpZmllcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVNb2RpZmllcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUhlbHBlcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVIZWxwZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnRPckhlbHBlcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVDb21wb25lbnRPckhlbHBlcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsSGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZU9wdGlvbmFsSGVscGVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcblxuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbDpcbiAgICAgICAgbGV0IGZyZWVWYXIgPSBvcFsxXTtcbiAgICAgICAgbGV0IG5hbWUgPSBleHBlY3QobWV0YS51cHZhcnMsICdCVUc6IGF0dGVtcHRlZCB0byByZXNvbHZlIHZhbHVlIGJ1dCBubyB1cHZhcnMgZm91bmQnKVtcbiAgICAgICAgICBmcmVlVmFyXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKG1ldGEuYXNQYXJ0aWFsID09PSB0cnVlKSB7XG4gICAgICAgICAgZW5jb2Rlci5wdXNoKGNvbnN0YW50cywgT3AuUmVzb2x2ZU1heWJlTG9jYWwsIG5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCB0aGVuID0gb3BbMl07XG5cbiAgICAgICAgICB0aGVuKG5hbWUsIG1ldGEubW9kdWxlTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsOlxuICAgICAgICBsZXQgWywgdmFsdWVJbmRleCwgdGhlbl0gPSBvcDtcbiAgICAgICAgbGV0IHZhbHVlID0gZXhwZWN0KFxuICAgICAgICAgIG1ldGEuc2NvcGVWYWx1ZXMsXG4gICAgICAgICAgJ0JVRzogQXR0ZW1wdGVkIHRvIGdlY3QgYSB0ZW1wbGF0ZSBsb2NhbCwgYnV0IHRlbXBsYXRlIGRvZXMgbm90IGhhdmUgYW55J1xuICAgICAgICApW3ZhbHVlSW5kZXhdO1xuXG4gICAgICAgIHRoZW4oY29uc3RhbnRzLnZhbHVlKHZhbHVlKSk7XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZTpcbiAgICAgICAgaWYgKERFQlVHKSB7XG4gICAgICAgICAgbGV0IFssIHVwdmFySW5kZXhdID0gb3A7XG4gICAgICAgICAgbGV0IGZyZWVOYW1lID0gZXhwZWN0KG1ldGEudXB2YXJzLCAnQlVHOiBhdHRlbXB0ZWQgdG8gcmVzb2x2ZSB2YWx1ZSBidXQgbm8gdXB2YXJzIGZvdW5kJylbXG4gICAgICAgICAgICB1cHZhckluZGV4XG4gICAgICAgICAgXTtcblxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIHZhbHVlIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7ZnJlZU5hbWV9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBoaWdoIGxldmVsIG9wY29kZSAke29wWzBdfWApO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW5jb2RlckltcGwgaW1wbGVtZW50cyBFbmNvZGVyIHtcbiAgcHJpdmF0ZSBsYWJlbHNTdGFjayA9IG5ldyBTdGFjazxMYWJlbHM+KCk7XG4gIHByaXZhdGUgZW5jb2RlcjogSW5zdHJ1Y3Rpb25FbmNvZGVyID0gbmV3IEluc3RydWN0aW9uRW5jb2RlckltcGwoW10pO1xuICBwcml2YXRlIGVycm9yczogRW5jb2RlckVycm9yW10gPSBbXTtcbiAgcHJpdmF0ZSBoYW5kbGU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhlYXA6IENvbXBpbGVUaW1lSGVhcCxcbiAgICBwcml2YXRlIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgICBwcml2YXRlIHN0ZGxpYj86IFNURExpYlxuICApIHtcbiAgICB0aGlzLmhhbmRsZSA9IGhlYXAubWFsbG9jKCk7XG4gIH1cblxuICBlcnJvcihlcnJvcjogRW5jb2RlckVycm9yKTogdm9pZCB7XG4gICAgdGhpcy5lbmNvZGVyLmVuY29kZShPcC5QcmltaXRpdmUsIDApO1xuICAgIHRoaXMuZXJyb3JzLnB1c2goZXJyb3IpO1xuICB9XG5cbiAgY29tbWl0KHNpemU6IG51bWJlcik6IEhhbmRsZVJlc3VsdCB7XG4gICAgbGV0IGhhbmRsZSA9IHRoaXMuaGFuZGxlO1xuXG4gICAgdGhpcy5oZWFwLnB1c2goTWFjaGluZU9wLlJldHVybiB8IE9wY29kZVNpemUuTUFDSElORV9NQVNLKTtcbiAgICB0aGlzLmhlYXAuZmluaXNoTWFsbG9jKGhhbmRsZSwgc2l6ZSk7XG5cbiAgICBpZiAodGhpcy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4geyBlcnJvcnM6IHRoaXMuZXJyb3JzLCBoYW5kbGUgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGhhbmRsZTtcbiAgICB9XG4gIH1cblxuICBwdXNoKFxuICAgIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gICAgdHlwZTogQnVpbGRlck9wY29kZSxcbiAgICAuLi5hcmdzOiBTaW5nbGVCdWlsZGVyT3BlcmFuZFtdXG4gICk6IHZvaWQge1xuICAgIGxldCB7IGhlYXAgfSA9IHRoaXM7XG5cbiAgICBpZiAoREVCVUcgJiYgKHR5cGUgYXMgbnVtYmVyKSA+IE9wY29kZVNpemUuVFlQRV9TSVpFKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE9wY29kZSB0eXBlIG92ZXIgOC1iaXRzLiBHb3QgJHt0eXBlfS5gKTtcbiAgICB9XG5cbiAgICBsZXQgbWFjaGluZSA9IGlzTWFjaGluZU9wKHR5cGUpID8gT3Bjb2RlU2l6ZS5NQUNISU5FX01BU0sgOiAwO1xuICAgIGxldCBmaXJzdCA9IHR5cGUgfCBtYWNoaW5lIHwgKGFyZ3MubGVuZ3RoIDw8IE9wY29kZVNpemUuQVJHX1NISUZUKTtcblxuICAgIGhlYXAucHVzaChmaXJzdCk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBvcCA9IGFyZ3NbaV07XG4gICAgICBoZWFwLnB1c2godGhpcy5vcGVyYW5kKGNvbnN0YW50cywgb3ApKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZXJhbmQoY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cywgb3BlcmFuZDogU2luZ2xlQnVpbGRlck9wZXJhbmQpOiBPcGVyYW5kIHtcbiAgICBpZiAodHlwZW9mIG9wZXJhbmQgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gb3BlcmFuZDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wZXJhbmQgPT09ICdvYmplY3QnICYmIG9wZXJhbmQgIT09IG51bGwpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wZXJhbmQpKSB7XG4gICAgICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLmFycmF5KG9wZXJhbmQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAob3BlcmFuZC50eXBlKSB7XG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLkxhYmVsOlxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFiZWxzLnRhcmdldCh0aGlzLmhlYXAub2Zmc2V0LCBvcGVyYW5kLnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiAtMTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5Jc1N0cmljdE1vZGU6XG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy52YWx1ZSh0aGlzLm1ldGEuaXNTdHJpY3RNb2RlKSk7XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuRXZhbFN5bWJvbHM6XG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy5hcnJheSh0aGlzLm1ldGEuZXZhbFN5bWJvbHMgfHwgRU1QVFlfU1RSSU5HX0FSUkFZKSk7XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuQmxvY2s6XG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy52YWx1ZShjb21waWxhYmxlQmxvY2sob3BlcmFuZC52YWx1ZSwgdGhpcy5tZXRhKSkpO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLlN0ZExpYjpcbiAgICAgICAgICAgIHJldHVybiBleHBlY3QoXG4gICAgICAgICAgICAgIHRoaXMuc3RkbGliLFxuICAgICAgICAgICAgICAnYXR0ZW1wdGVkIHRvIGVuY29kZSBhIHN0ZGxpYiBvcGVyYW5kLCBidXQgdGhlIGVuY29kZXIgZGlkIG5vdCBoYXZlIGEgc3RkbGliLiBBcmUgeW91IGN1cnJlbnRseSBidWlsZGluZyB0aGUgc3RkbGliPydcbiAgICAgICAgICAgIClbb3BlcmFuZC52YWx1ZV07XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuTm9uU21hbGxJbnQ6XG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLlN5bWJvbFRhYmxlOlxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5MYXlvdXQ6XG4gICAgICAgICAgICByZXR1cm4gY29uc3RhbnRzLnZhbHVlKG9wZXJhbmQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMudmFsdWUob3BlcmFuZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY3VycmVudExhYmVscygpOiBMYWJlbHMge1xuICAgIHJldHVybiBleHBlY3QodGhpcy5sYWJlbHNTdGFjay5jdXJyZW50LCAnYnVnOiBub3QgaW4gYSBsYWJlbCBzdGFjaycpO1xuICB9XG5cbiAgbGFiZWwobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50TGFiZWxzLmxhYmVsKG5hbWUsIHRoaXMuaGVhcC5vZmZzZXQgKyAxKTtcbiAgfVxuXG4gIHN0YXJ0TGFiZWxzKCkge1xuICAgIHRoaXMubGFiZWxzU3RhY2sucHVzaChuZXcgTGFiZWxzKCkpO1xuICB9XG5cbiAgc3RvcExhYmVscygpIHtcbiAgICBsZXQgbGFiZWwgPSBleHBlY3QodGhpcy5sYWJlbHNTdGFjay5wb3AoKSwgJ3VuYmFsYW5jZWQgcHVzaCBhbmQgcG9wIGxhYmVscycpO1xuICAgIGxhYmVsLnBhdGNoKHRoaXMuaGVhcCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNCdWlsZGVyT3Bjb2RlKG9wOiBudW1iZXIpOiBvcCBpcyBCdWlsZGVyT3Bjb2RlIHtcbiAgcmV0dXJuIG9wIDwgSGlnaExldmVsQnVpbGRlck9wY29kZS5TdGFydDtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= |
@@ -277,3 +277,3 @@ "use strict"; | ||
if (helper === null) { | ||
ifFallback(name); | ||
ifFallback(name, meta.moduleName); | ||
} else { | ||
@@ -369,2 +369,2 @@ ifHelper(constants.helper(helper, name)); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFnQkE7O0FBRUEsU0FBQSxjQUFBLENBQUEsTUFBQSxFQUFzRDtBQUNwRCxTQUFPLEtBQUssQ0FBTCxPQUFBLENBQUEsTUFBQSxLQUF5QixNQUFNLENBQU4sTUFBQSxLQUFoQyxDQUFBO0FBQ0Q7O0FBRUQsU0FBQSwwQkFBQSxDQUFBLFlBQUEsRUFBNkQ7QUFDM0QsU0FDRSxVQURLLE1BQ0wsRUFDaUU7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBbkIsTUFBbUIsQ0FBbkIsRUFBNkIsT0FBQSxLQUFBO0FBRTdCLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBakIsQ0FBaUIsQ0FBakI7QUFFQSxXQUNFLElBQUksS0FBQTtBQUFBO0FBQUosT0FDQSxJQUFJLEtBQUE7QUFBQTtBQURKLE9BRUEsSUFBSSxLQUhOLFlBQUE7QUFQRixHQUFBO0FBYUQ7O0FBRU0sSUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBckQ7O0FBRUEsSUFBTSxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBcEQ7O0FBRUEsSUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQWxEOztBQUVBLElBQU0sMEJBQTBCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQTdEOztBQUlBLElBQU0sdUJBQXVCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQTFEOztBQUlBLElBQU0sa0NBQWtDLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJFOzs7QUFTUCxTQUFBLHdCQUFBLENBQUEsSUFBQSxFQUEwRDtBQUN4RCxNQUFBLFVBQUEsRUFBVztBQUNULFFBQUksQ0FBQyxJQUFJ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V0FBVyxDQUFDLFNBQVMsQ0FBVCxpQkFBQSxDQUFBLFlBQUEsRUFBWixJQUFZLENBQUQsQ0FBWDtBQUNBO0FBQ0Q7O0FBRUQsUUFBSSxRQUFNLEdBQUcsUUFBUSxDQUFSLFlBQUEsQ0FBQSxJQUFBLEVBQWIsS0FBYSxDQUFiOztBQUVBLFFBQUksUUFBTSxLQUFWLElBQUEsRUFBcUI7QUFDbkIsTUFBQSxRQUFRLENBQUMsU0FBUyxDQUFULE1BQUEsQ0FBQSxRQUFBLEVBQVQsSUFBUyxDQUFELENBQVI7QUFDQTtBQUNEOztBQUVELElBQUEsVUFBVSxDQUFWLElBQVUsQ0FBVjtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxtQkFBQSxDQUFBLElBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLFNBQUEsRUFBQSxJQUFBLEVBS2M7QUFBQSxNQUFBLHNCQUFBLEdBRUssd0JBQXdCLENBRjdCLElBRTZCLENBRjdCO0FBQUEsTUFFTixNQUZNLEdBQUEsc0JBQUEsQ0FBQSxNQUFBOztBQUlaLE1BQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQXRCLENBQXNCLENBQUwsQ0FBakI7QUFDQSxNQUFJLE1BQU0sR0FBRyxRQUFRLENBQVIsbUJBQUEsQ0FBYixJQUFhLENBQWI7O0FBRUEsTUFBSSxjQUFTLE1BQU0sS0FBbkIsSUFBQSxFQUE4QjtBQUM1QjtBQUNBO0FBQ0EsVUFBTSxJQUFBLEtBQUEsQ0FBQSw0QkFBQSxJQUFBLEdBQUEsK0RBQUEsR0FFRixJQUFJLENBQUosTUFBQSxDQUFhLElBQUksQ0FGckIsQ0FFcUIsQ0FBakIsQ0FGRSxDQUFOO0FBS0Q7O0FBRUQsU0FBTyxTQUFTLENBQVQsTUFBQSxDQUFBLE1BQUEsRUFBUCxJQUFPLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICBDb21waWxlVGltZVJlc29sdmVyLFxuICBDb250YWluaW5nTWV0YWRhdGEsXG4gIEV4cHJlc3Npb25zLFxuICBPd25lcixcbiAgUmVzb2x2ZUNvbXBvbmVudE9wLFxuICBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZUhlbHBlck9wLFxuICBSZXNvbHZlTW9kaWZpZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3AsXG4gIFNleHBPcGNvZGVzLFxuICBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NlcnQsIGRlYnVnVG9TdHJpbmcsIGV4cGVjdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5mdW5jdGlvbiBpc0dldExpa2VUdXBsZShvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb24pOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuVHVwbGVFeHByZXNzaW9uIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3Bjb2RlKSAmJiBvcGNvZGUubGVuZ3RoID09PSAyO1xufVxuXG5mdW5jdGlvbiBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcih0eXBlVG9WZXJpZnk6IFNleHBPcGNvZGVzKSB7XG4gIHJldHVybiAoXG4gICAgb3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uXG4gICk6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5HZXRGcmVlIHwgRXhwcmVzc2lvbnMuR2V0VGVtcGxhdGVTeW1ib2wgPT4ge1xuICAgIGlmICghaXNHZXRMaWtlVHVwbGUob3Bjb2RlKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgbGV0IHR5cGUgPSBvcGNvZGVbMF07XG5cbiAgICByZXR1cm4gKFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSB8fFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wgfHxcbiAgICAgIHR5cGUgPT09IHR5cGVUb1ZlcmlmeVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnQgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU1vZGlmaWVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzTW9kaWZpZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkXG4pO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuaW50ZXJmYWNlIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIGV4dGVuZHMgQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgb3duZXI6IE93bmVyO1xuICB1cHZhcnM6IHN0cmluZ1tdO1xufVxuXG5mdW5jdGlvbiBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YTogQ29udGFpbmluZ01ldGFkYXRhKTogUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEge1xuICBpZiAoREVCVUcpIHtcbiAgICBpZiAoIW1ldGEudXB2YXJzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIGZyZWUgdmFycyB3ZXJlIGZvdW5kJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIW1ldGEub3duZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gb3duZXIgd2FzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGVtcGxhdGUgaXQgd2FzIGJlaW5nIHJlc29sdmVkIGZyb20nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAobWV0YSBhcyB1bmtub3duKSBhcyBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YTtcbn1cblxuLyoqXG4gKiA8Rm9vLz5cbiAqIDxGb28+PC9Gb28+XG4gKiA8Rm9vIEBhcmc9e3t0cnVlfX0gLz5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnQoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVDb21wb25lbnRPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVDb21wb25lbnQoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKERFQlVHICYmIGV4cHJbMF0gPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5jb21wb25lbnQoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogKGhlbHBlcilcbiAqIChoZWxwZXIgYXJnKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUhlbHBlcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhlbihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAnaGVscGVyJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIhKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIDxkaXYge3ttb2RpZmllcn19Lz5cbiAqIDxkaXYge3ttb2RpZmllciBhcmd9fS8+XG4gKiA8Rm9vIHt7bW9kaWZpZXJ9fS8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kaWZpZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVNb2RpZmllck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZU1vZGlmaWVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbk1vZGlmaWVyKG5hbWUpO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCBpdCB3YXMgbm90IGluIHNjb3BlOiAke25hbWV9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciEsIG5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwTW9kaWZpZXIobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgbW9kaWZpZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e2NvbXBvbmVudC1vci1oZWxwZXIgYXJnfX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciB9XTogUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KGRlZmluaXRpb24gYXMgb2JqZWN0LCB0cnVlKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QsIG51bGwsIHRydWUpO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGVpdGhlciBhIGNvbXBvbmVudCBvciBoZWxwZXIsIGJ1dCBpdCBkaWQgbm90IGhhdmUgYSBjb21wb25lbnQgbWFuYWdlciBvciBoZWxwZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWZIZWxwZXIoZXhwZWN0KGhlbHBlciwgJ0JVRzogaGVscGVyIG11c3QgZXhpc3QnKSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGlmSGVscGVyKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgICAgICAgZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICAgICAgICByZXNvbHZlcixcbiAgICAgICAgbWV0YSxcbiAgICAgICAgY29uc3RhbnRzLFxuICAgICAgICAnY29tcG9uZW50IG9yIGhlbHBlcidcbiAgICAgIClcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICAgICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCBvciBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyISwgbmFtZSkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIDxGb28gQGFyZz17e2hlbHBlcn19PlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsSGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZIZWxwZXIsIGlmRmFsbGJhY2sgfV06IFJlc29sdmVPcHRpb25hbEhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG4gIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgaWYgKGhlbHBlciA9PT0gbnVsbCkge1xuICAgIGlmRmFsbGJhY2sobmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7bWF5YmVIZWxwZXJPckNvbXBvbmVudH19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciwgaWZWYWx1ZSwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhbiBvcHRpb25hbCBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgICApIHtcbiAgICAgIC8vIFRoZSB2YWx1ZSBpcyBub3QgYW4gb2JqZWN0LCBzbyBpdCBjYW4ndCBiZSBhIGNvbXBvbmVudCBvciBoZWxwZXIuXG4gICAgICBpZlZhbHVlKGNvbnN0YW50cy52YWx1ZShkZWZpbml0aW9uKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoZGVmaW5pdGlvbiwgdHJ1ZSk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24sIG51bGwsIHRydWUpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoaGVscGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZlZhbHVlKGNvbnN0YW50cy52YWx1ZShkZWZpbml0aW9uKSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGlmSGVscGVyKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsIHJlc29sdmVyLCBtZXRhLCBjb25zdGFudHMsICd2YWx1ZScpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZGYWxsYmFjayhuYW1lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBsb29rdXBCdWlsdEluSGVscGVyKFxuICBleHByOiBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBjb25zdGFudHM6IFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICB0eXBlOiBzdHJpbmdcbik6IG51bWJlciB7XG4gIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbkhlbHBlcihuYW1lKTtcblxuICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgLy8gS2V5d29yZCBoZWxwZXIgZGlkIG5vdCBleGlzdCwgd2hpY2ggbWVhbnMgdGhhdCB3ZSdyZSBhdHRlbXB0aW5nIHRvIHVzZSBhXG4gICAgLy8gdmFsdWUgb2Ygc29tZSBraW5kIHRoYXQgaXMgbm90IGluIHNjb3BlXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgJHt0eXBlfSBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFnQkE7O0FBRUEsU0FBQSxjQUFBLENBQUEsTUFBQSxFQUFzRDtBQUNwRCxTQUFPLEtBQUssQ0FBTCxPQUFBLENBQUEsTUFBQSxLQUF5QixNQUFNLENBQU4sTUFBQSxLQUFoQyxDQUFBO0FBQ0Q7O0FBRUQsU0FBQSwwQkFBQSxDQUFBLFlBQUEsRUFBNkQ7QUFDM0QsU0FDRSxVQURLLE1BQ0wsRUFDaUU7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBbkIsTUFBbUIsQ0FBbkIsRUFBNkIsT0FBQSxLQUFBO0FBRTdCLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBakIsQ0FBaUIsQ0FBakI7QUFFQSxXQUNFLElBQUksS0FBQTtBQUFBO0FBQUosT0FDQSxJQUFJLEtBQUE7QUFBQTtBQURKLE9BRUEsSUFBSSxLQUhOLFlBQUE7QUFQRixHQUFBO0FBYUQ7O0FBRU0sSUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBckQ7O0FBRUEsSUFBTSxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBcEQ7O0FBRUEsSUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQWxEOztBQUVBLElBQU0sMEJBQTBCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQTdEOztBQUlBLElBQU0sdUJBQXVCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQTFEOztBQUlBLElBQU0sa0NBQWtDLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJFOzs7QUFTUCxTQUFBLHdCQUFBLENBQUEsSUFBQSxFQUEwRDtBQUN4RCxNQUFBLFVBQUEsRUFBVztBQUNULFFBQUksQ0FBQyxJQUFJ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QUFBLEVBQXlCO0FBQ3ZCLE1BQUEsV0FBVyxDQUFDLFNBQVMsQ0FBVCxpQkFBQSxDQUFBLFlBQUEsRUFBWixJQUFZLENBQUQsQ0FBWDtBQUNBO0FBQ0Q7O0FBRUQsUUFBSSxRQUFNLEdBQUcsUUFBUSxDQUFSLFlBQUEsQ0FBQSxJQUFBLEVBQWIsS0FBYSxDQUFiOztBQUVBLFFBQUksUUFBTSxLQUFWLElBQUEsRUFBcUI7QUFDbkIsTUFBQSxRQUFRLENBQUMsU0FBUyxDQUFULE1BQUEsQ0FBQSxRQUFBLEVBQVQsSUFBUyxDQUFELENBQVI7QUFDQTtBQUNEOztBQUVELElBQUEsVUFBVSxDQUFWLElBQVUsQ0FBVjtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxtQkFBQSxDQUFBLElBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLFNBQUEsRUFBQSxJQUFBLEVBS2M7QUFBQSxNQUFBLHNCQUFBLEdBRUssd0JBQXdCLENBRjdCLElBRTZCLENBRjdCO0FBQUEsTUFFTixNQUZNLEdBQUEsc0JBQUEsQ0FBQSxNQUFBOztBQUlaLE1BQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQXRCLENBQXNCLENBQUwsQ0FBakI7QUFDQSxNQUFJLE1BQU0sR0FBRyxRQUFRLENBQVIsbUJBQUEsQ0FBYixJQUFhLENBQWI7O0FBRUEsTUFBSSxjQUFTLE1BQU0sS0FBbkIsSUFBQSxFQUE4QjtBQUM1QjtBQUNBO0FBQ0EsVUFBTSxJQUFBLEtBQUEsQ0FBQSw0QkFBQSxJQUFBLEdBQUEsK0RBQUEsR0FFRixJQUFJLENBQUosTUFBQSxDQUFhLElBQUksQ0FGckIsQ0FFcUIsQ0FBakIsQ0FGRSxDQUFOO0FBS0Q7O0FBRUQsU0FBTyxTQUFTLENBQVQsTUFBQSxDQUFBLE1BQUEsRUFBUCxJQUFPLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICBDb21waWxlVGltZVJlc29sdmVyLFxuICBDb250YWluaW5nTWV0YWRhdGEsXG4gIEV4cHJlc3Npb25zLFxuICBPd25lcixcbiAgUmVzb2x2ZUNvbXBvbmVudE9wLFxuICBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZUhlbHBlck9wLFxuICBSZXNvbHZlTW9kaWZpZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3AsXG4gIFNleHBPcGNvZGVzLFxuICBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NlcnQsIGRlYnVnVG9TdHJpbmcsIGV4cGVjdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5mdW5jdGlvbiBpc0dldExpa2VUdXBsZShvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb24pOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuVHVwbGVFeHByZXNzaW9uIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3Bjb2RlKSAmJiBvcGNvZGUubGVuZ3RoID09PSAyO1xufVxuXG5mdW5jdGlvbiBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcih0eXBlVG9WZXJpZnk6IFNleHBPcGNvZGVzKSB7XG4gIHJldHVybiAoXG4gICAgb3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uXG4gICk6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5HZXRGcmVlIHwgRXhwcmVzc2lvbnMuR2V0VGVtcGxhdGVTeW1ib2wgPT4ge1xuICAgIGlmICghaXNHZXRMaWtlVHVwbGUob3Bjb2RlKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgbGV0IHR5cGUgPSBvcGNvZGVbMF07XG5cbiAgICByZXR1cm4gKFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSB8fFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wgfHxcbiAgICAgIHR5cGUgPT09IHR5cGVUb1ZlcmlmeVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnQgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU1vZGlmaWVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzTW9kaWZpZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkXG4pO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuaW50ZXJmYWNlIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIGV4dGVuZHMgQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgb3duZXI6IE93bmVyO1xuICB1cHZhcnM6IHN0cmluZ1tdO1xufVxuXG5mdW5jdGlvbiBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YTogQ29udGFpbmluZ01ldGFkYXRhKTogUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEge1xuICBpZiAoREVCVUcpIHtcbiAgICBpZiAoIW1ldGEudXB2YXJzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIGZyZWUgdmFycyB3ZXJlIGZvdW5kJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIW1ldGEub3duZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gb3duZXIgd2FzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGVtcGxhdGUgaXQgd2FzIGJlaW5nIHJlc29sdmVkIGZyb20nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAobWV0YSBhcyB1bmtub3duKSBhcyBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YTtcbn1cblxuLyoqXG4gKiA8Rm9vLz5cbiAqIDxGb28+PC9Gb28+XG4gKiA8Rm9vIEBhcmc9e3t0cnVlfX0gLz5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnQoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVDb21wb25lbnRPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVDb21wb25lbnQoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKERFQlVHICYmIGV4cHJbMF0gPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5jb21wb25lbnQoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogKGhlbHBlcilcbiAqIChoZWxwZXIgYXJnKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUhlbHBlcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhlbihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAnaGVscGVyJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIhKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIDxkaXYge3ttb2RpZmllcn19Lz5cbiAqIDxkaXYge3ttb2RpZmllciBhcmd9fS8+XG4gKiA8Rm9vIHt7bW9kaWZpZXJ9fS8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kaWZpZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVNb2RpZmllck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZU1vZGlmaWVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbk1vZGlmaWVyKG5hbWUpO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCBpdCB3YXMgbm90IGluIHNjb3BlOiAke25hbWV9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciEsIG5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwTW9kaWZpZXIobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgbW9kaWZpZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e2NvbXBvbmVudC1vci1oZWxwZXIgYXJnfX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciB9XTogUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KGRlZmluaXRpb24gYXMgb2JqZWN0LCB0cnVlKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QsIG51bGwsIHRydWUpO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGVpdGhlciBhIGNvbXBvbmVudCBvciBoZWxwZXIsIGJ1dCBpdCBkaWQgbm90IGhhdmUgYSBjb21wb25lbnQgbWFuYWdlciBvciBoZWxwZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWZIZWxwZXIoZXhwZWN0KGhlbHBlciwgJ0JVRzogaGVscGVyIG11c3QgZXhpc3QnKSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGlmSGVscGVyKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgICAgICAgZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICAgICAgICByZXNvbHZlcixcbiAgICAgICAgbWV0YSxcbiAgICAgICAgY29uc3RhbnRzLFxuICAgICAgICAnY29tcG9uZW50IG9yIGhlbHBlcidcbiAgICAgIClcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICAgICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCBvciBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyISwgbmFtZSkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIDxGb28gQGFyZz17e2hlbHBlcn19PlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsSGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZIZWxwZXIsIGlmRmFsbGJhY2sgfV06IFJlc29sdmVPcHRpb25hbEhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG4gIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgaWYgKGhlbHBlciA9PT0gbnVsbCkge1xuICAgIGlmRmFsbGJhY2sobmFtZSwgbWV0YS5tb2R1bGVOYW1lKTtcbiAgfSBlbHNlIHtcbiAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICoge3ttYXliZUhlbHBlck9yQ29tcG9uZW50fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZDb21wb25lbnQsIGlmSGVscGVyLCBpZlZhbHVlLCBpZkZhbGxiYWNrIH1dOiBSZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGFuIG9wdGlvbmFsIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICAgICkge1xuICAgICAgLy8gVGhlIHZhbHVlIGlzIG5vdCBhbiBvYmplY3QsIHNvIGl0IGNhbid0IGJlIGEgY29tcG9uZW50IG9yIGhlbHBlci5cbiAgICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChkZWZpbml0aW9uLCB0cnVlKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihoZWxwZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ3ZhbHVlJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZkZhbGxiYWNrKG5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gIGV4cHI6IEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIGNvbnN0YW50czogUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIHR5cGU6IHN0cmluZ1xuKTogbnVtYmVyIHtcbiAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBCdWlsdEluSGVscGVyKG5hbWUpO1xuXG4gIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAvLyBLZXl3b3JkIGhlbHBlciBkaWQgbm90IGV4aXN0LCB3aGljaCBtZWFucyB0aGF0IHdlJ3JlIGF0dGVtcHRpbmcgdG8gdXNlIGFcbiAgICAvLyB2YWx1ZSBvZiBzb21lIGtpbmQgdGhhdCBpcyBub3QgaW4gc2NvcGVcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSAke3R5cGV9IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGNvbnN0YW50cy5oZWxwZXIoaGVscGVyISwgbmFtZSk7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 |
@@ -10,2 +10,4 @@ "use strict"; | ||
var _globalContext = require("@glimmer/global-context"); | ||
var _expr = require("../opcode-builder/helpers/expr"); | ||
@@ -21,2 +23,4 @@ | ||
var _env = require("@glimmer/env"); | ||
function _createForOfIteratorHelperLoose(o, allowArrayLike) { | ||
@@ -150,3 +154,10 @@ var it; | ||
/* ResolveLocal */ | ||
, freeVar, function (name) { | ||
, freeVar, function (name, moduleName) { | ||
if (_env.DEBUG) { | ||
var propertyPath = path ? [name].concat(path).join('.') : name; | ||
(0, _globalContext.deprecate)("The `" + propertyPath + "` property path was used in a template for the `" + moduleName + "` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + propertyPath + "}}", false, { | ||
id: 'this-property-fallback' | ||
}); | ||
} | ||
op(21 | ||
@@ -183,3 +194,6 @@ /* GetVariable */ | ||
}, | ||
ifFallback: function ifFallback(name) { | ||
ifFallback: function ifFallback(name, moduleName) { | ||
(0, _globalContext.deprecate)("The `" + name + "` property was used in the template for the `" + moduleName + "` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + name + "}}", false, { | ||
id: 'this-property-fallback' | ||
}); | ||
op(21 | ||
@@ -285,2 +299,2 @@ /* GetVariable */ | ||
}); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVPLElBQU0sV0FBVyxHQUFHLElBQXBCLG9CQUFvQixFQUFwQjs7QUFFUCxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFvQyxVQUFBLEVBQUEsRUFBQSxJQUFBLEVBQWtCO0FBQUEsTUFBbEIsS0FBa0IsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBOztBQUNwRCxPQUFBLElBQUEsU0FBQSxHQUFBLCtCQUFBLENBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxFQUFBLENBQUEsQ0FBQSxLQUFBLEdBQUEsU0FBQSxFQUFBLEVBQUEsSUFBQSxHQUF3QjtBQUFBLFFBQXhCLElBQXdCLEdBQUEsS0FBQSxDQUFBLEtBQUE7QUFDdEIsb0JBQUksRUFBSixFQUFBLElBQUE7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQW5CLE1BQUUsQ0FBRjtBQUxGLENBQUE7QUFRQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFrQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQTBDO0FBQUEsTUFBckMsVUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBckMsVUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBMUMsS0FBMEMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBOztBQUMxRSxNQUFJLGlDQUFKLFVBQUksQ0FBSixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELFVBQUQsTUFBQyxFQUFrQjtBQUN6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LFVBQUEsRUFBQSxFQUFBLE1BQUEsRUFBdUI7QUFBQSxNQUF2QixVQUF1QixHQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUE7QUFDaEUsa0JBQUksRUFBSixFQUFBLFVBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFpQyxVQUFBLEVBQUEsRUFBQSxNQUFBLEVBQXVCO0FBQUEsTUFBdkIsVUFBdUIsR0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBO0FBQ3RELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsMEJBQVUsRUFBVixFQUFVLFVBQVYsRUFBVSxJQUFWLEVBQUEsS0FBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBRixPQUFFLENBQUY7QUFMRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXhwcmVzc2lvblNleHBPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR2MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgaXNHZXRGcmVlSGVscGVyIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQgeyBDYWxsLCBDYWxsRHluYW1pYywgQ3VycnksIFB1c2hQcmltaXRpdmVSZWZlcmVuY2UgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IENvbXBpbGVycywgUHVzaEV4cHJlc3Npb25PcCB9IGZyb20gJy4vY29tcGlsZXJzJztcblxuZXhwb3J0IGNvbnN0IEVYUFJFU1NJT05TID0gbmV3IENvbXBpbGVyczxQdXNoRXhwcmVzc2lvbk9wLCBFeHByZXNzaW9uU2V4cE9wY29kZT4oKTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNvbmNhdCwgKG9wLCBbLCBwYXJ0c10pID0+IHtcbiAgZm9yIChsZXQgcGFydCBvZiBwYXJ0cykge1xuICAgIGV4cHIob3AsIHBhcnQpO1xuICB9XG5cbiAgb3AoT3AuQ29uY2F0LCBwYXJ0cy5sZW5ndGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DYWxsLCAob3AsIFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlSGVscGVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlSGVscGVyLCBleHByZXNzaW9uLCAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIENhbGxEeW5hbWljKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gIH1cbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ3VycnksIChvcCwgWywgZXhwciwgdHlwZSwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIEN1cnJ5KG9wLCB0eXBlLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN5bWJvbCwgKG9wLCBbLCBzeW0sIHBhdGhdKSA9PiB7XG4gIG9wKE9wLkdldFZhcmlhYmxlLCBzeW0pO1xuICB3aXRoUGF0aChvcCwgcGF0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlVGVtcGxhdGVMb2NhbCwgc3ltLCAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICBvcChPcC5Db25zdGFudFJlZmVyZW5jZSwgaGFuZGxlKTtcbiAgICB3aXRoUGF0aChvcCwgcGF0aCk7XG4gIH0pO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlLCAob3AsIFssIHN5bSwgX3BhdGhdKSA9PiB7XG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUZyZWUsIHN5bSwgKF9oYW5kbGU6IHVua25vd24pID0+IHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgaW4gc3RyaWN0IG1vZGVcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0ZhbGxiYWNrLCAob3AsIFssIGZyZWVWYXIsIHBhdGhdKSA9PiB7XG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUxvY2FsLCBmcmVlVmFyLCAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgfSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssICgpID0+IHtcbiAgLy8gVE9ETzogVGhlIGxvZ2ljIGZvciB0aGlzIG9wY29kZSBjdXJyZW50bHkgZXhpc3RzIGluIFNUQVRFTUVOVFMuQXBwZW5kLCBzaW5jZVxuICAvLyB3ZSB3YW50IGRpZmZlcmVudCB3cmFwcGluZyBsb2dpYyBkZXBlbmRpbmcgb24gaWYgd2UgYXJlIGludm9raW5nIGEgY29tcG9uZW50LFxuICAvLyBoZWxwZXIsIG9yIHt7dGhpc319IGZhbGxiYWNrLiBFdmVudHVhbGx5IHdlIGZpeCB0aGUgb3Bjb2RlcyBzbyB0aGF0IHdlIGNhblxuICAvLyB0cmF2ZXJzZSB0aGUgc3ViZXhwcmVzc2lvbiB0cmVlIGxpa2Ugbm9ybWFsIGluIHRoaXMgbG9jYXRpb24uXG4gIHRocm93IG5ldyBFcnJvcigndW5pbXBsZW1lbnRlZCBvcGNvZGUnKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrLCAob3AsIGV4cHIpID0+IHtcbiAgLy8gPEZvbyBAYXJnPXt7YmF6fX0+XG5cbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGV4cHJbMV0sIChfbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXIsIGV4cHIsIHtcbiAgICAgIGlmSGVscGVyOiAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2s6IChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICBvcChPcC5HZXRQcm9wZXJ0eSwgbmFtZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5mdW5jdGlvbiB3aXRoUGF0aChvcDogUHVzaEV4cHJlc3Npb25PcCwgcGF0aD86IHN0cmluZ1tdKSB7XG4gIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aC5sZW5ndGggPT09IDApIHJldHVybjtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICBvcChPcC5HZXRQcm9wZXJ0eSwgcGF0aFtpXSk7XG4gIH1cbn1cblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLlVuZGVmaW5lZCwgKG9wKSA9PiBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpKTtcbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5IYXNCbG9jaywgKG9wLCBbLCBibG9ja10pID0+IHtcbiAgZXhwcihvcCwgYmxvY2spO1xuICBvcChPcC5IYXNCbG9jayk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrUGFyYW1zLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLlNwcmVhZEJsb2NrKTtcbiAgb3AoT3AuQ29tcGlsZUJsb2NrKTtcbiAgb3AoT3AuSGFzQmxvY2tQYXJhbXMpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5JZklubGluZSwgKG9wLCBbLCBjb25kaXRpb24sIHRydXRoeSwgZmFsc3ldKSA9PiB7XG4gIC8vIFB1c2ggaW4gcmV2ZXJzZSBvcmRlclxuICBleHByKG9wLCBmYWxzeSk7XG4gIGV4cHIob3AsIHRydXRoeSk7XG4gIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gIG9wKE9wLklmSW5saW5lKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuTm90LCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLk5vdCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldER5bmFtaWNWYXIsIChvcCwgWywgZXhwcmVzc2lvbl0pID0+IHtcbiAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gIG9wKE9wLkdldER5bmFtaWNWYXIpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Mb2csIChvcCwgWywgcG9zaXRpb25hbF0pID0+IHtcbiAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG51bGwsIGZhbHNlKTtcbiAgb3AoT3AuTG9nKTtcbiAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgb3AoT3AuRmV0Y2gsICR2MCk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVPLElBQU0sV0FBVyxHQUFHLElBQXBCLG9CQUFvQixFQUFwQjs7QUFFUCxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFvQyxVQUFBLEVBQUEsRUFBQSxJQUFBLEVBQWtCO0FBQUEsTUFBbEIsS0FBa0IsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBOztBQUNwRCxPQUFBLElBQUEsU0FBQSxHQUFBLCtCQUFBLENBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxFQUFBLENBQUEsQ0FBQSxLQUFBLEdBQUEsU0FBQSxFQUFBLEVBQUEsSUFBQSxHQUF3QjtBQUFBLFFBQXhCLElBQXdCLEdBQUEsS0FBQSxDQUFBLEtBQUE7QUFDdEIsb0JBQUksRUFBSixFQUFBLElBQUE7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQW5CLE1BQUUsQ0FBRjtBQUxGLENBQUE7QUFRQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFrQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQTBDO0FBQUEsTUFBckMsVUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBckMsVUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBMUMsS0FBMEMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBOztBQUMxRSxNQUFJLGlDQUFKLFVBQUksQ0FBSixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELFVBQUQsTUFBQyxFQUFrQjtBQUN6RSxxQkFBSSxFQUFKLEVBQUksTUFBSixFQUFJLFVBQUosRUFBQSxLQUFBO0FBREYsS0FBRSxDQUFGO0FBREYsR0FBQSxNQUlPO0FBQ0wsb0JBQUksRUFBSixFQUFBLFVBQUE7QUFDQSwwQkFBVyxFQUFYLEVBQVcsVUFBWCxFQUFBLEtBQUE7QUFDRDtBQVJILENBQUE7QUFXQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFtQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQTBDO0FBQUEsTUFBckMsSUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBckMsSUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBckMsVUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBMUMsS0FBMEMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQzNFLGtCQUFLLEVBQUwsRUFBSyxJQUFMLEVBQUssSUFBTCxFQUFLLFVBQUwsRUFBQSxLQUFBO0FBREYsQ0FBQTtBQUlBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQXVDLFVBQUEsRUFBQSxFQUFBLEtBQUEsRUFBc0I7QUFBQSxNQUFqQixHQUFpQixHQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUE7QUFBQSxNQUF0QixJQUFzQixHQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUE7QUFDM0QsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsR0FBRSxDQUFGO0FBQ0EsRUFBQSxRQUFRLENBQUEsRUFBQSxFQUFSLElBQVEsQ0FBUjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUErQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQXNCO0FBQUEsTUFBakIsR0FBaUIsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBdEIsSUFBc0IsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQ25FLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFBLEdBQUEsRUFBdUQsVUFBRCxNQUFDLEVBQWtCO0FBQ3pFLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFGLE1BQUUsQ0FBRjtBQUNBLElBQUEsUUFBUSxDQUFBLEVBQUEsRUFBUixJQUFRLENBQVI7QUFGRixHQUFFLENBQUY7QUFERixDQUFBO0FBT0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBMkMsVUFBQSxFQUFBLEVBQUEsS0FBQSxFQUF1QjtBQUFBLE1BQWxCLEdBQWtCLEdBQUEsS0FBQSxDQUFBLENBQUEsQ0FBQTtBQUFBLE1BQXZCLEtBQXVCLEdBQUEsS0FBQSxDQUFBLENBQUEsQ0FBQTtBQUNoRSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBQSxHQUFBLEVBQThDLFVBQUQsT0FBQyxFQUFvQixDQUNsRTtBQURGLEdBQUUsQ0FBRjtBQURGLENBQUE7QUFNQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUErQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQTBCO0FBQUEsTUFBckIsT0FBcUIsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBMUIsSUFBMEIsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQ3ZFLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFBLE9BQUEsRUFBa0QsVUFBQSxJQUFBLEVBQUEsVUFBQSxFQUFxQztBQUN2RixRQUFBLFVBQUEsRUFBVztBQUNULFVBQUksWUFBWSxHQUFHLElBQUksR0FBRyxDQUFBLElBQUEsRUFBQSxNQUFBLENBQUEsSUFBQSxFQUFBLElBQUEsQ0FBSCxHQUFHLENBQUgsR0FBdkIsSUFBQTtBQUVBLG9DQUFTLFVBQUEsWUFBQSxHQUFBLGtEQUFBLEdBQUEsVUFBQSxHQUFBLDZKQUFBLEdBQUEsWUFBQSxHQUFBLElBQVQsRUFBUyxLQUFULEVBR0U7QUFDRSxRQUFBLEVBQUUsRUFBRTtBQUROLE9BSEY7QUFPRDs7QUFFRCxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBRixDQUFFLENBQUY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBRixJQUFFLENBQUY7QUFkRixHQUFFLENBQUY7QUFnQkEsRUFBQSxRQUFRLENBQUEsRUFBQSxFQUFSLElBQVEsQ0FBUjtBQWpCRixDQUFBO0FBb0JBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQTBFLFlBQUs7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFNLElBQUEsS0FBQSxDQUFOLHNCQUFNLENBQU47QUFMRixDQUFBO0FBUUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBK0QsVUFBQSxFQUFBLEVBQUEsSUFBQSxFQUFhO0FBQzFFO0FBRUEsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQXlDLElBQUksQ0FBN0MsQ0FBNkMsQ0FBN0MsRUFBbUQsVUFBRCxLQUFDLEVBQWlCO0FBQ3BFLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFBLElBQUEsRUFBd0Q7QUFDeEQsTUFBQSxRQUFRLEVBQUcsU0FBQSxRQUFBLENBQUQsTUFBQyxFQUFrQjtBQUMzQix1QkFBSSxFQUFKLEVBQUksTUFBSixFQUFJLElBQUosRUFBQSxJQUFBO0FBRnNELE9BQUE7QUFLeEQsTUFBQSxVQUFVLEVBQUUsU0FBQSxVQUFBLENBQUEsSUFBQSxFQUFBLFVBQUEsRUFBcUM7QUFDL0Msc0NBQVMsVUFBQSxJQUFBLEdBQUEsK0NBQUEsR0FBQSxVQUFBLEdBQUEsNkpBQUEsR0FBQSxJQUFBLEdBQUEsSUFBVCxFQUFTLEtBQVQsRUFHRTtBQUNFLFVBQUEsRUFBRSxFQUFFO0FBRE4sU0FIRjtBQVFBLFFBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxVQUFGLENBQUUsQ0FBRjtBQUNBLFFBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxVQUFGLElBQUUsQ0FBRjtBQUNEO0FBaEJ1RCxLQUF4RCxDQUFGO0FBREYsR0FBRSxDQUFGO0FBSEYsQ0FBQTs7QUF5QkEsU0FBQSxRQUFBLENBQUEsRUFBQSxFQUFBLElBQUEsRUFBdUQ7QUFDckQsTUFBSSxJQUFJLEtBQUosU0FBQSxJQUFzQixJQUFJLENBQUosTUFBQSxLQUExQixDQUFBLEVBQTZDOztBQUU3QyxPQUFLLElBQUksQ0FBQyxHQUFWLENBQUEsRUFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBeEIsTUFBQSxFQUFpQyxDQUFqQyxFQUFBLEVBQXNDO0FBQ3BDLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFpQixJQUFJLENBQXZCLENBQXVCLENBQXJCLENBQUY7QUFDRDtBQUNGOztBQUVELFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQXdDLFVBQUQsRUFBQyxFQUFEO0FBQUEsU0FBUSxpQ0FBc0IsRUFBdEIsRUFBL0MsU0FBK0MsQ0FBUjtBQUF2QyxDQUFBO0FBQ0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBc0MsVUFBQSxFQUFBLEVBQUEsS0FBQSxFQUFrQjtBQUFBLE1BQWxCLEtBQWtCLEdBQUEsS0FBQSxDQUFBLENBQUEsQ0FBQTtBQUN0RCxrQkFBSSxFQUFKLEVBQUEsS0FBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBRkYsQ0FBQTtBQUtBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQTRDLFVBQUEsRUFBQSxFQUFBLEtBQUEsRUFBa0I7QUFBQSxNQUFsQixLQUFrQixHQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUE7QUFDNUQsa0JBQUksRUFBSixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFKRixDQUFBO0FBT0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBc0MsVUFBQSxFQUFBLEVBQUEsTUFBQSxFQUFxQztBQUFBLE1BQWhDLFNBQWdDLEdBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQTtBQUFBLE1BQWhDLE1BQWdDLEdBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQTtBQUFBLE1BQXJDLEtBQXFDLEdBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQSxDQUFBLENBQ3pFOztBQUNBLGtCQUFJLEVBQUosRUFBQSxLQUFBO0FBQ0Esa0JBQUksRUFBSixFQUFBLE1BQUE7QUFDQSxrQkFBSSxFQUFKLEVBQUEsU0FBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBTEYsQ0FBQTtBQVFBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQWlDLFVBQUEsRUFBQSxFQUFBLE1BQUEsRUFBa0I7QUFBQSxNQUFsQixLQUFrQixHQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUE7QUFDakQsa0JBQUksRUFBSixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUEyQyxVQUFBLEVBQUEsRUFBQSxNQUFBLEVBQXVCO0FBQUEsTUFBdkIsVUFBdUIsR0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBO0FBQ2hFLGtCQUFJLEVBQUosRUFBQSxVQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFGRixDQUFBO0FBS0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBaUMsVUFBQSxFQUFBLEVBQUEsTUFBQSxFQUF1QjtBQUFBLE1BQXZCLFVBQXVCLEdBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQTtBQUN0RCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLDBCQUFVLEVBQVYsRUFBVSxVQUFWLEVBQVUsSUFBVixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsT0FBRSxDQUFGO0FBTEYsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEV4cHJlc3Npb25TZXhwT3Bjb2RlLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIE9wLFxuICBTZXhwT3Bjb2Rlcyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkdjAgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBkZXByZWNhdGUgfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5pbXBvcnQgeyBleHByIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9leHByJztcbmltcG9ydCB7IGlzR2V0RnJlZUhlbHBlciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvcmVzb2x1dGlvbic7XG5pbXBvcnQgeyBTaW1wbGVBcmdzIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zaGFyZWQnO1xuaW1wb3J0IHsgQ2FsbCwgQ2FsbER5bmFtaWMsIEN1cnJ5LCBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bSc7XG5pbXBvcnQgeyBDb21waWxlcnMsIFB1c2hFeHByZXNzaW9uT3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5cbmV4cG9ydCBjb25zdCBFWFBSRVNTSU9OUyA9IG5ldyBDb21waWxlcnM8UHVzaEV4cHJlc3Npb25PcCwgRXhwcmVzc2lvblNleHBPcGNvZGU+KCk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Db25jYXQsIChvcCwgWywgcGFydHNdKSA9PiB7XG4gIGZvciAobGV0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBleHByKG9wLCBwYXJ0KTtcbiAgfVxuXG4gIG9wKE9wLkNvbmNhdCwgcGFydHMubGVuZ3RoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ2FsbCwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUhlbHBlcihleHByZXNzaW9uKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUhlbHBlciwgZXhwcmVzc2lvbiwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICBDYWxsKG9wLCBoYW5kbGUsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICB9XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkN1cnJ5LCAob3AsIFssIGV4cHIsIHR5cGUsIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBDdXJyeShvcCwgdHlwZSwgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChPcC5HZXRWYXJpYWJsZSwgc3ltKTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCwgKG9wLCBbLCBzeW0sIHBhdGhdKSA9PiB7XG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZVRlbXBsYXRlTG9jYWwsIHN5bSwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgd2l0aFBhdGgob3AsIHBhdGgpO1xuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSwgKG9wLCBbLCBzeW0sIF9wYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVGcmVlLCBzeW0sIChfaGFuZGxlOiB1bmtub3duKSA9PiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IGluIHN0cmljdCBtb2RlXG4gIH0pO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNGYWxsYmFjaywgKG9wLCBbLCBmcmVlVmFyLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZnJlZVZhciwgKG5hbWU6IHN0cmluZywgbW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBsZXQgcHJvcGVydHlQYXRoID0gcGF0aCA/IFtuYW1lLCAuLi5wYXRoXS5qb2luKCcuJykgOiBuYW1lO1xuXG4gICAgICBkZXByZWNhdGUoXG4gICAgICAgIGBUaGUgXFxgJHtwcm9wZXJ0eVBhdGh9XFxgIHByb3BlcnR5IHBhdGggd2FzIHVzZWQgaW4gYSB0ZW1wbGF0ZSBmb3IgdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgY29tcG9uZW50IHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke3Byb3BlcnR5UGF0aH19fWAsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICB9KTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKCkgPT4ge1xuICAvLyBUT0RPOiBUaGUgbG9naWMgZm9yIHRoaXMgb3Bjb2RlIGN1cnJlbnRseSBleGlzdHMgaW4gU1RBVEVNRU5UUy5BcHBlbmQsIHNpbmNlXG4gIC8vIHdlIHdhbnQgZGlmZmVyZW50IHdyYXBwaW5nIGxvZ2ljIGRlcGVuZGluZyBvbiBpZiB3ZSBhcmUgaW52b2tpbmcgYSBjb21wb25lbnQsXG4gIC8vIGhlbHBlciwgb3Ige3t0aGlzfX0gZmFsbGJhY2suIEV2ZW50dWFsbHkgd2UgZml4IHRoZSBvcGNvZGVzIHNvIHRoYXQgd2UgY2FuXG4gIC8vIHRyYXZlcnNlIHRoZSBzdWJleHByZXNzaW9uIHRyZWUgbGlrZSBub3JtYWwgaW4gdGhpcyBsb2NhdGlvbi5cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmltcGxlbWVudGVkIG9wY29kZScpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBhcmc9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgfSxcblxuICAgICAgaWZGYWxsYmFjazogKG5hbWU6IHN0cmluZywgbW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGRlcHJlY2F0ZShcbiAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgcHJvcGVydHkgd2FzIHVzZWQgaW4gdGhlIHRlbXBsYXRlIGZvciB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCBjb21wb25lbnQgd2l0aG91dCB1c2luZyBcXGB0aGlzXFxgLiBUaGlzIGZhbGxiYWNrIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFsbCBwcm9wZXJ0aWVzIG11c3QgYmUgbG9va2VkIHVwIG9uIFxcYHRoaXNcXGAgd2hlbiB1c2VkIGluIHRoZSB0ZW1wbGF0ZToge3t0aGlzLiR7bmFtZX19fWAsXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICBvcChPcC5HZXRQcm9wZXJ0eSwgbmFtZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5mdW5jdGlvbiB3aXRoUGF0aChvcDogUHVzaEV4cHJlc3Npb25PcCwgcGF0aD86IHN0cmluZ1tdKSB7XG4gIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aC5sZW5ndGggPT09IDApIHJldHVybjtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICBvcChPcC5HZXRQcm9wZXJ0eSwgcGF0aFtpXSk7XG4gIH1cbn1cblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLlVuZGVmaW5lZCwgKG9wKSA9PiBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpKTtcbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5IYXNCbG9jaywgKG9wLCBbLCBibG9ja10pID0+IHtcbiAgZXhwcihvcCwgYmxvY2spO1xuICBvcChPcC5IYXNCbG9jayk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrUGFyYW1zLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLlNwcmVhZEJsb2NrKTtcbiAgb3AoT3AuQ29tcGlsZUJsb2NrKTtcbiAgb3AoT3AuSGFzQmxvY2tQYXJhbXMpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5JZklubGluZSwgKG9wLCBbLCBjb25kaXRpb24sIHRydXRoeSwgZmFsc3ldKSA9PiB7XG4gIC8vIFB1c2ggaW4gcmV2ZXJzZSBvcmRlclxuICBleHByKG9wLCBmYWxzeSk7XG4gIGV4cHIob3AsIHRydXRoeSk7XG4gIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gIG9wKE9wLklmSW5saW5lKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuTm90LCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLk5vdCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldER5bmFtaWNWYXIsIChvcCwgWywgZXhwcmVzc2lvbl0pID0+IHtcbiAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gIG9wKE9wLkdldER5bmFtaWNWYXIpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Mb2csIChvcCwgWywgcG9zaXRpb25hbF0pID0+IHtcbiAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG51bGwsIGZhbHNlKTtcbiAgb3AoT3AuTG9nKTtcbiAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgb3AoT3AuRmV0Y2gsICR2MCk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0= |
@@ -10,2 +10,4 @@ "use strict"; | ||
var _globalContext = require("@glimmer/global-context"); | ||
var _vm = require("@glimmer/vm"); | ||
@@ -301,3 +303,6 @@ | ||
/* ResolveLocal */ | ||
, value[1], function (name) { | ||
, value[1], function (name, moduleName) { | ||
(0, _globalContext.deprecate)("The `" + name + "` property was used in a template for the `" + moduleName + "` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + name + "}}", false, { | ||
id: 'this-property-fallback' | ||
}); | ||
op(21 | ||
@@ -623,2 +628,2 @@ /* GetVariable */ | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBYUE7O0FBQ0E7O0FBS0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBRU8sSUFBTSxVQUFVLEdBQUcsSUFBbkIsb0JBQW1CLEVBQW5COztBQUVQLElBQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsSUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7O0FBSU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUEyRDtBQUMvRCxTQUFPLE9BQUEsT0FBQSxLQUFBLFFBQUEsR0FBQSxPQUFBLEdBQXdDLGlCQUFpQixDQUFoRSxPQUFnRSxDQUFoRTtBQUNEOztBQUVLLFNBQUEsZUFBQSxDQUFBLFFBQUEsRUFBOEQ7QUFDbEUsU0FBTyxPQUFBLFFBQUEsS0FBQSxRQUFBLEdBQUEsUUFBQSxHQUEwQyxrQkFBa0IsQ0FBbkUsUUFBbUUsQ0FBbkU7QUFDRDs7QUFFRCxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFvQyxVQUFBLEVBQUEsRUFBQSxJQUFBLEVBQUE7QUFBQSxTQUFjLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBYSxJQUFJLENBQXJFLENBQXFFLENBQWpCLENBQWhCO0FBQXBDLENBQUE7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUEwQyxVQUFELEVBQUMsRUFBRDtBQUFBLFNBQVEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFWO0FBQXpDLENBQUE7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFB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RSxDQUFBO0FBQUE7QUFBQSxNQUFBLElBQUEsRUFBb0QsVUFBRCxTQUFDLEVBQW1DO0FBQ3ZGLHVDQUFlLEVBQWYsRUFBZSxTQUFmLEVBQWUsSUFBZixFQUFlLFVBQWYsRUFBaUQsVUFBVSxDQUE1QyxLQUE0QyxDQUEzRCxFQUFBLE1BQUE7QUFERixLQUFFLENBQUY7QUFERixHQUFBLE1BSU87QUFDTCw0Q0FBc0IsRUFBdEIsRUFBc0IsSUFBdEIsRUFBc0IsSUFBdEIsRUFBc0IsVUFBdEIsRUFBc0IsS0FBdEIsRUFBc0IsTUFBdEIsRUFBc0IsS0FBdEIsRUFBQSxLQUFBO0FBQ0Q7QUFQSCxDQUFBOztBQVVBLFNBQUEsVUFBQSxDQUFBLElBQUEsRUFBcUQ7QUFDbkQsTUFBSSxJQUFJLEtBQVIsSUFBQSxFQUFtQixPQUFBLElBQUE7QUFDbkIsTUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFKLENBQUksQ0FBSixDQUFBLEdBQUEsQ0FBYSxVQUFELEdBQUMsRUFBRDtBQUFBLFdBQUEsTUFBeEIsR0FBd0I7QUFBeEIsR0FBWSxDQUFaO0FBQ0EsU0FBTyxDQUFBLEtBQUEsRUFBaUMsSUFBSSxDQUE1QyxDQUE0QyxDQUFyQyxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21waWxlVGltZUNvbXBvbmVudCxcbiAgQ29udGVudFR5cGUsXG4gIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxuICBTdGF0ZW1lbnRTZXhwT3Bjb2RlLFxuICBXZWxsS25vd25BdHRyTmFtZSxcbiAgV2VsbEtub3duVGFnTmFtZSxcbiAgV2lyZUZvcm1hdCxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkZnAsICRzcCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7XG4gIEludm9rZVN0YXRpY0Jsb2NrLFxuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayxcbiAgWWllbGRCbG9jayxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9ibG9ja3MnO1xuaW1wb3J0IHtcbiAgSW52b2tlQ29tcG9uZW50LFxuICBJbnZva2VEeW5hbWljQ29tcG9uZW50LFxuICBJbnZva2VOb25TdGF0aWNDb21wb25lbnQsXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTd2l0Y2hDYXNlcywgUmVwbGF5YWJsZSwgUmVwbGF5YWJsZUlmIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb25kaXRpb25hbCc7XG5pbXBvcnQgeyBleHByIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9leHByJztcbmltcG9ydCB7IENvbXBpbGVQb3NpdGlvbmFsLCBTaW1wbGVBcmdzIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zaGFyZWQnO1xuaW1wb3J0IHtcbiAgQ2FsbCxcbiAgQ2FsbER5bmFtaWMsXG4gIER5bmFtaWNTY29wZSxcbiAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bSc7XG5pbXBvcnQgeyBldmFsU3ltYm9sc09wZXJhbmQsIGxhYmVsT3BlcmFuZCwgc3RkbGliT3BlcmFuZCB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL29wZXJhbmRzJztcbmltcG9ydCB7IENvbXBpbGVycywgUHVzaFN0YXRlbWVudE9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHtcbiAgaXNHZXRGcmVlQ29tcG9uZW50LFxuICBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcixcbiAgaXNHZXRGcmVlTW9kaWZpZXIsXG4gIGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvcmVzb2x1dGlvbic7XG5pbXBvcnQgeyBuYW1lZEJsb2NrcyB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IFNUQVRFTUVOVFMgPSBuZXcgQ29tcGlsZXJzPFB1c2hTdGF0ZW1lbnRPcCwgU3RhdGVtZW50U2V4cE9wY29kZT4oKTtcblxuY29uc3QgSU5GTEFURV9BVFRSX1RBQkxFOiB7XG4gIFtJIGluIFdlbGxLbm93bkF0dHJOYW1lXTogc3RyaW5nO1xufSA9IFsnY2xhc3MnLCAnaWQnLCAndmFsdWUnLCAnbmFtZScsICd0eXBlJywgJ3N0eWxlJywgJ2hyZWYnXTtcbmNvbnN0IElORkxBVEVfVEFHX1RBQkxFOiB7XG4gIFtJIGluIFdlbGxLbm93blRhZ05hbWVdOiBzdHJpbmc7XG59ID0gWydkaXYnLCAnc3BhbicsICdwJywgJ2EnXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluZmxhdGVUYWdOYW1lKHRhZ05hbWU6IHN0cmluZyB8IFdlbGxLbm93blRhZ05hbWUpOiBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIHRhZ05hbWUgPT09ICdzdHJpbmcnID8gdGFnTmFtZSA6IElORkxBVEVfVEFHX1RBQkxFW3RhZ05hbWVdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZUF0dHJOYW1lKGF0dHJOYW1lOiBzdHJpbmcgfCBXZWxsS25vd25BdHRyTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgYXR0ck5hbWUgPT09ICdzdHJpbmcnID8gYXR0ck5hbWUgOiBJTkZMQVRFX0FUVFJfVEFCTEVbYXR0ck5hbWVdO1xufVxuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21tZW50LCAob3AsIHNleHApID0+IG9wKE9wLkNvbW1lbnQsIHNleHBbMV0pKTtcblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNsb3NlRWxlbWVudCwgKG9wKSA9PiBvcChPcC5DbG9zZUVsZW1lbnQpKTtcblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkZsdXNoRWxlbWVudCwgKG9wKSA9PiBvcChPcC5GbHVzaEVsZW1lbnQpKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuTW9kaWZpZXIsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVNb2RpZmllcihleHByZXNzaW9uKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU1vZGlmaWVyLCBleHByZXNzaW9uLCAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgICAgIG9wKE9wLk1vZGlmaWVyLCBoYW5kbGUpO1xuICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgIG9wKE9wLkR1cCwgJGZwLCAxKTtcbiAgICBvcChPcC5EeW5hbWljTW9kaWZpZXIpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0F0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuU3RhdGljQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBvcChPcC5TdGF0aWNDb21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHZhbHVlIGFzIHN0cmluZywgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkR5bmFtaWNBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuRHluYW1pY0F0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0R5bmFtaWNBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuRHluYW1pY0F0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdHJ1ZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIGZhbHNlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuT3BlbkVsZW1lbnQsIChvcCwgWywgdGFnXSkgPT4ge1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuT3BlbkVsZW1lbnRXaXRoU3BsYXQsIChvcCwgWywgdGFnXSkgPT4ge1xuICBvcChPcC5QdXRDb21wb25lbnRPcGVyYXRpb25zKTtcbiAgb3AoT3AuT3BlbkVsZW1lbnQsIGluZmxhdGVUYWdOYW1lKHRhZykpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbXBvbmVudCwgKG9wLCBbLCBleHByLCBlbGVtZW50QmxvY2ssIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBvdGhlcndpc2UsIHRoZSBjb21wb25lbnQgbmFtZSB3YXMgYW4gZXhwcmVzc2lvbiwgc28gcmVzb2x2ZSB0aGUgZXhwcmVzc2lvblxuICAgIC8vIGFuZCBpbnZva2UgaXQgYXMgYSBkeW5hbWljIGNvbXBvbmVudFxuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIGVsZW1lbnRCbG9jaywgbnVsbCwgbmFtZWQsIGJsb2NrcywgdHJ1ZSwgdHJ1ZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5QYXJ0aWFsLCAob3AsIFssIG5hbWUsIGV2YWxJbmZvXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgbmFtZSk7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5JbnZva2VQYXJ0aWFsLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pO1xuICAgICAgb3AoT3AuUG9wU2NvcGUpO1xuICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICB9XG4gICk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuWWllbGQsIChvcCwgWywgdG8sIHBhcmFtc10pID0+IFlpZWxkQmxvY2sob3AsIHRvLCBwYXJhbXMpKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQXR0clNwbGF0LCAob3AsIFssIHRvXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIG51bGwpKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRGVidWdnZXIsIChvcCwgWywgZXZhbEluZm9dKSA9PlxuICBvcChPcC5EZWJ1Z2dlciwgZXZhbFN5bWJvbHNPcGVyYW5kKCksIGV2YWxJbmZvKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQXBwZW5kLCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICAvLyBTcGVjaWFsIGNhc2UgZm9yIHN0YXRpYyB2YWx1ZXNcbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIG9wKE9wLlRleHQsIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWx1ZSkpO1xuICB9IGVsc2UgaWYgKGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIodmFsdWUpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlciwgdmFsdWUsIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpIHtcbiAgICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIG51bGwsIG51bGwsIG51bGwpO1xuICAgICAgfSxcblxuICAgICAgaWZIZWxwZXIoaGFuZGxlOiBudW1iZXIpIHtcbiAgICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmVmFsdWUoaGFuZGxlOiBudW1iZXIpIHtcbiAgICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuXG4gICAgICBpZkZhbGxiYWNrKF9uYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUxvY2FsLCB2YWx1ZVsxXSwgKG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgICBvcChPcC5HZXRQcm9wZXJ0eSwgbmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHZhbHVlWzBdID09PSBTZXhwT3Bjb2Rlcy5DYWxsKSB7XG4gICAgbGV0IFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSA9IHZhbHVlO1xuXG4gICAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHJlc3Npb24pKSB7XG4gICAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnRPckhlbHBlciwgZXhwcmVzc2lvbiwge1xuICAgICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBudWxsKTtcbiAgICAgICAgfSxcbiAgICAgICAgaWZIZWxwZXIoaGFuZGxlOiBudW1iZXIpIHtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBTd2l0Y2hDYXNlcyhcbiAgICAgICAgb3AsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICAgICAgICBvcChPcC5EeW5hbWljQ29udGVudFR5cGUpO1xuICAgICAgICB9LFxuICAgICAgICAod2hlbikgPT4ge1xuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuQ29tcG9uZW50LCAoKSA9PiB7XG4gICAgICAgICAgICBvcChPcC5SZXNvbHZlQ3VycmllZENvbXBvbmVudCk7XG4gICAgICAgICAgICBvcChPcC5QdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKTtcbiAgICAgICAgICAgIEludm9rZU5vblN0YXRpY0NvbXBvbmVudChvcCwge1xuICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM6IHRydWUsXG4gICAgICAgICAgICAgIGVsZW1lbnRCbG9jazogbnVsbCxcbiAgICAgICAgICAgICAgcG9zaXRpb25hbCxcbiAgICAgICAgICAgICAgbmFtZWQsXG4gICAgICAgICAgICAgIGF0TmFtZXM6IGZhbHNlLFxuICAgICAgICAgICAgICBibG9ja3M6IG5hbWVkQmxvY2tzKG51bGwpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB3aGVuKENvbnRlbnRUeXBlLkhlbHBlciwgKCkgPT4ge1xuICAgICAgICAgICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCAoKSA9PiB7XG4gICAgICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtYXBwZW5kJykpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0FwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIG9wKE9wLlRleHQsIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWx1ZSkpO1xuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCd0cnVzdGluZy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkJsb2NrLCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkluRWxlbWVudCwgKG9wLCBbLCBibG9jaywgZ3VpZCwgZGVzdGluYXRpb24sIGluc2VydEJlZm9yZV0pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgZ3VpZCk7XG5cbiAgICAgIGlmIChpbnNlcnRCZWZvcmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwcihvcCwgaW5zZXJ0QmVmb3JlKTtcbiAgICAgIH1cblxuICAgICAgZXhwcihvcCwgZGVzdGluYXRpb24pO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuXG4gICAgICByZXR1cm4gNDtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuUHVzaFJlbW90ZUVsZW1lbnQpO1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICAgIG9wKE9wLlBvcFJlbW90ZUVsZW1lbnQpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JZiwgKG9wLCBbLCBjb25kaXRpb24sIGJsb2NrLCBpbnZlcnNlXSkgPT5cbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gICAgICBvcChPcC5Ub0Jvb2xlYW4pO1xuXG4gICAgICByZXR1cm4gMTtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9LFxuXG4gICAgaW52ZXJzZVxuICAgICAgPyAoKSA9PiB7XG4gICAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZFxuICApXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5FYWNoLCAob3AsIFssIHZhbHVlLCBrZXksIGJsb2NrLCBpbnZlcnNlXSkgPT5cbiAgUmVwbGF5YWJsZShcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZXhwcihvcCwga2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIG51bGwpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCB2YWx1ZSk7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5FbnRlckxpc3QsIGxhYmVsT3BlcmFuZCgnQk9EWScpLCBsYWJlbE9wZXJhbmQoJ0VMU0UnKSk7XG4gICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJGZwLCAxKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5SZXR1cm5UbywgbGFiZWxPcGVyYW5kKCdJVEVSJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0lURVInKTtcbiAgICAgIG9wKE9wLkl0ZXJhdGUsIGxhYmVsT3BlcmFuZCgnQlJFQUsnKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQk9EWScpO1xuICAgICAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCAyKTtcbiAgICAgIG9wKE9wLlBvcCwgMik7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0JSRUFLJyk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgb3AoT3AuRXhpdExpc3QpO1xuICAgICAgb3AoTWFjaGluZU9wLkp1bXAsIGxhYmVsT3BlcmFuZCgnRklOQUxMWScpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdFTFNFJyk7XG5cbiAgICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLldpdGgsIChvcCwgWywgdmFsdWUsIGJsb2NrLCBpbnZlcnNlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG4gICAgICBvcChPcC5Ub0Jvb2xlYW4pO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCAxKTtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5MZXQsIChvcCwgWywgcG9zaXRpb25hbCwgYmxvY2tdKSA9PiB7XG4gIGxldCBjb3VudCA9IENvbXBpbGVQb3NpdGlvbmFsKG9wLCBwb3NpdGlvbmFsKTtcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCBjb3VudCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aER5bmFtaWNWYXJzLCAob3AsIFssIG5hbWVkLCBibG9ja10pID0+IHtcbiAgaWYgKG5hbWVkKSB7XG4gICAgbGV0IFtuYW1lcywgZXhwcmVzc2lvbnNdID0gbmFtZWQ7XG5cbiAgICBDb21waWxlUG9zaXRpb25hbChvcCwgZXhwcmVzc2lvbnMpO1xuICAgIER5bmFtaWNTY29wZShvcCwgbmFtZXMsICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkludm9rZUNvbXBvbmVudCwgKG9wLCBbLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIG51bGwsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3MsIGZhbHNlLCBmYWxzZSk7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBoYXNoVG9BcmdzKGhhc2g6IFdpcmVGb3JtYXQuQ29yZS5IYXNoIHwgbnVsbCk6IFdpcmVGb3JtYXQuQ29yZS5IYXNoIHwgbnVsbCB7XG4gIGlmIChoYXNoID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgbGV0IG5hbWVzID0gaGFzaFswXS5tYXAoKGtleSkgPT4gYEAke2tleX1gKTtcbiAgcmV0dXJuIFtuYW1lcyBhcyBbc3RyaW5nLCAuLi5zdHJpbmdbXV0sIGhhc2hbMV1dO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBY0E7O0FBQ0E7O0FBS0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBRU8sSUFBTSxVQUFVLEdBQUcsSUFBbkIsb0JBQW1CLEVBQW5COztBQUVQLElBQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsSUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7O0FBSU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUEyRDtBQUMvRCxTQUFPLE9BQUEsT0FBQSxLQUFBLFFBQUEsR0FBQSxPQUFBLEdBQXdDLGlCQUFpQixDQUFoRSxPQUFnRSxDQUFoRTtBQUNEOztBQUVLLFNBQUEsZUFBQSxDQUFBLFFBQUEsRUFBOEQ7QUFDbEUsU0FBTyxPQUFBLFFBQUEsS0FBQSxRQUFBLEdBQUEsUUFBQSxHQUEwQyxrQkFBa0IsQ0FBbkUsUUFBbUUsQ0FBbkU7QUFDRDs7QUFFRCxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFvQyxVQUFBLEVBQUEsRUFBQSxJQUFBLEVBQUE7QUFBQSxTQUFjLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBYSxJQUFJLENBQXJFLENBQXFFLENBQWpCLENBQWhCO0FBQXBDLENBQUE7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUEwQyxVQUFELEVBQUMsRUFBRDtBQUFBLFNBQVEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFWO0FBQXpDLENBQUE7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FB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QTtBQUFBLE1BQXZDLEtBQXVDLEdBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQTtBQUFBLE1BQTVDLE1BQTRDLEdBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQTs7QUFDdEYsTUFBSSxvQ0FBSixJQUFJLENBQUosRUFBOEI7QUFDNUIsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUEsSUFBQSxFQUFvRCxVQUFELFNBQUMsRUFBbUM7QUFDdkYsdUNBQWUsRUFBZixFQUFlLFNBQWYsRUFBZSxJQUFmLEVBQWUsVUFBZixFQUFpRCxVQUFVLENBQTVDLEtBQTRDLENBQTNELEVBQUEsTUFBQTtBQURGLEtBQUUsQ0FBRjtBQURGLEdBQUEsTUFJTztBQUNMLDRDQUFzQixFQUF0QixFQUFzQixJQUF0QixFQUFzQixJQUF0QixFQUFzQixVQUF0QixFQUFzQixLQUF0QixFQUFzQixNQUF0QixFQUFzQixLQUF0QixFQUFBLEtBQUE7QUFDRDtBQVBILENBQUE7O0FBVUEsU0FBQSxVQUFBLENBQUEsSUFBQSxFQUFxRDtBQUNuRCxNQUFJLElBQUksS0FBUixJQUFBLEVBQW1CLE9BQUEsSUFBQTtBQUNuQixNQUFJLEtBQUssR0FBRyxJQUFJLENBQUosQ0FBSSxDQUFKLENBQUEsR0FBQSxDQUFhLFVBQUQsR0FBQyxFQUFEO0FBQUEsV0FBQSxNQUF4QixHQUF3QjtBQUF4QixHQUFZLENBQVo7QUFDQSxTQUFPLENBQUEsS0FBQSxFQUFpQyxJQUFJLENBQTVDLENBQTRDLENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlcHJlY2F0ZSB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlBhcnRpYWwsIChvcCwgWywgbmFtZSwgZXZhbEluZm9dKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBuYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkludm9rZVBhcnRpYWwsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbyk7XG4gICAgICBvcChPcC5Qb3BTY29wZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2soX25hbWU6IHN0cmluZykge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIHZhbHVlWzFdLCAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgcHJvcGVydHkgd2FzIHVzZWQgaW4gYSB0ZW1wbGF0ZSBmb3IgdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgY29tcG9uZW50IHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgICBvcChPcC5HZXRQcm9wZXJ0eSwgbmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHZhbHVlWzBdID09PSBTZXhwT3Bjb2Rlcy5DYWxsKSB7XG4gICAgbGV0IFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSA9IHZhbHVlO1xuXG4gICAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHJlc3Npb24pKSB7XG4gICAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnRPckhlbHBlciwgZXhwcmVzc2lvbiwge1xuICAgICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBudWxsKTtcbiAgICAgICAgfSxcbiAgICAgICAgaWZIZWxwZXIoaGFuZGxlOiBudW1iZXIpIHtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBTd2l0Y2hDYXNlcyhcbiAgICAgICAgb3AsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICAgICAgICBvcChPcC5EeW5hbWljQ29udGVudFR5cGUpO1xuICAgICAgICB9LFxuICAgICAgICAod2hlbikgPT4ge1xuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuQ29tcG9uZW50LCAoKSA9PiB7XG4gICAgICAgICAgICBvcChPcC5SZXNvbHZlQ3VycmllZENvbXBvbmVudCk7XG4gICAgICAgICAgICBvcChPcC5QdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKTtcbiAgICAgICAgICAgIEludm9rZU5vblN0YXRpY0NvbXBvbmVudChvcCwge1xuICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM6IHRydWUsXG4gICAgICAgICAgICAgIGVsZW1lbnRCbG9jazogbnVsbCxcbiAgICAgICAgICAgICAgcG9zaXRpb25hbCxcbiAgICAgICAgICAgICAgbmFtZWQsXG4gICAgICAgICAgICAgIGF0TmFtZXM6IGZhbHNlLFxuICAgICAgICAgICAgICBibG9ja3M6IG5hbWVkQmxvY2tzKG51bGwpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB3aGVuKENvbnRlbnRUeXBlLkhlbHBlciwgKCkgPT4ge1xuICAgICAgICAgICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCAoKSA9PiB7XG4gICAgICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtYXBwZW5kJykpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0FwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIG9wKE9wLlRleHQsIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWx1ZSkpO1xuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCd0cnVzdGluZy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkJsb2NrLCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkluRWxlbWVudCwgKG9wLCBbLCBibG9jaywgZ3VpZCwgZGVzdGluYXRpb24sIGluc2VydEJlZm9yZV0pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgZ3VpZCk7XG5cbiAgICAgIGlmIChpbnNlcnRCZWZvcmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwcihvcCwgaW5zZXJ0QmVmb3JlKTtcbiAgICAgIH1cblxuICAgICAgZXhwcihvcCwgZGVzdGluYXRpb24pO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuXG4gICAgICByZXR1cm4gNDtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuUHVzaFJlbW90ZUVsZW1lbnQpO1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICAgIG9wKE9wLlBvcFJlbW90ZUVsZW1lbnQpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JZiwgKG9wLCBbLCBjb25kaXRpb24sIGJsb2NrLCBpbnZlcnNlXSkgPT5cbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gICAgICBvcChPcC5Ub0Jvb2xlYW4pO1xuXG4gICAgICByZXR1cm4gMTtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9LFxuXG4gICAgaW52ZXJzZVxuICAgICAgPyAoKSA9PiB7XG4gICAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZFxuICApXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5FYWNoLCAob3AsIFssIHZhbHVlLCBrZXksIGJsb2NrLCBpbnZlcnNlXSkgPT5cbiAgUmVwbGF5YWJsZShcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZXhwcihvcCwga2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIG51bGwpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCB2YWx1ZSk7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5FbnRlckxpc3QsIGxhYmVsT3BlcmFuZCgnQk9EWScpLCBsYWJlbE9wZXJhbmQoJ0VMU0UnKSk7XG4gICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJGZwLCAxKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5SZXR1cm5UbywgbGFiZWxPcGVyYW5kKCdJVEVSJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0lURVInKTtcbiAgICAgIG9wKE9wLkl0ZXJhdGUsIGxhYmVsT3BlcmFuZCgnQlJFQUsnKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQk9EWScpO1xuICAgICAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCAyKTtcbiAgICAgIG9wKE9wLlBvcCwgMik7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0JSRUFLJyk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgb3AoT3AuRXhpdExpc3QpO1xuICAgICAgb3AoTWFjaGluZU9wLkp1bXAsIGxhYmVsT3BlcmFuZCgnRklOQUxMWScpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdFTFNFJyk7XG5cbiAgICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLldpdGgsIChvcCwgWywgdmFsdWUsIGJsb2NrLCBpbnZlcnNlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG4gICAgICBvcChPcC5Ub0Jvb2xlYW4pO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCAxKTtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5MZXQsIChvcCwgWywgcG9zaXRpb25hbCwgYmxvY2tdKSA9PiB7XG4gIGxldCBjb3VudCA9IENvbXBpbGVQb3NpdGlvbmFsKG9wLCBwb3NpdGlvbmFsKTtcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCBjb3VudCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aER5bmFtaWNWYXJzLCAob3AsIFssIG5hbWVkLCBibG9ja10pID0+IHtcbiAgaWYgKG5hbWVkKSB7XG4gICAgbGV0IFtuYW1lcywgZXhwcmVzc2lvbnNdID0gbmFtZWQ7XG5cbiAgICBDb21waWxlUG9zaXRpb25hbChvcCwgZXhwcmVzc2lvbnMpO1xuICAgIER5bmFtaWNTY29wZShvcCwgbmFtZXMsICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkludm9rZUNvbXBvbmVudCwgKG9wLCBbLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIG51bGwsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3MsIGZhbHNlLCBmYWxzZSk7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBoYXNoVG9BcmdzKGhhc2g6IFdpcmVGb3JtYXQuQ29yZS5IYXNoIHwgbnVsbCk6IFdpcmVGb3JtYXQuQ29yZS5IYXNoIHwgbnVsbCB7XG4gIGlmIChoYXNoID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgbGV0IG5hbWVzID0gaGFzaFswXS5tYXAoKGtleSkgPT4gYEAke2tleX1gKTtcbiAgcmV0dXJuIFtuYW1lcyBhcyBbc3RyaW5nLCAuLi5zdHJpbmdbXV0sIGhhc2hbMV1dO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== |
@@ -105,3 +105,3 @@ import { InstructionEncoderImpl } from '@glimmer/encoder'; | ||
let then = op[2]; | ||
then(name); | ||
then(name, meta.moduleName); | ||
} | ||
@@ -274,2 +274,2 @@ | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLHNCQUFULFFBQXVDLGtCQUF2QztBQXlCQSxTQUFTLFdBQVQsUUFBNEIsYUFBNUI7QUFDQSxTQUFTLEtBQVQsRUFBZ0IsSUFBaEIsRUFBOEIsa0JBQTlCLEVBQWtELFlBQWxELEVBQWdFLE1BQWhFLFFBQThFLGVBQTlFO0FBQ0EsU0FDRSxnQkFERixFQUVFLHdCQUZGLEVBR0UsYUFIRixFQUlFLGVBSkYsRUFLRSxnQ0FMRixFQU1FLHFCQU5GLFFBT08sc0JBUFA7QUFRQSxTQUFTLGVBQVQsUUFBZ0Msd0JBQWhDO0FBQ0EsU0FBUyxLQUFULFFBQXNCLGNBQXRCO0FBRUEsT0FBTSxNQUFPLE1BQVAsQ0FBYTtBQUFuQixFQUFBLFdBQUEsR0FBQTtBQUNFLFNBQUEsTUFBQSxHQUF1QixJQUFJLEVBQTNCO0FBQ0EsU0FBQSxPQUFBLEdBQWlELEVBQWpEO0FBcUJEOztBQW5CQyxFQUFBLEtBQUssQ0FBQyxJQUFELEVBQWUsS0FBZixFQUE0QjtBQUMvQixTQUFLLE1BQUwsQ0FBWSxJQUFaLElBQW9CLEtBQXBCO0FBQ0Q7O0FBRUQsRUFBQSxNQUFNLENBQUMsRUFBRCxFQUFhLE1BQWIsRUFBMkI7QUFDL0IsU0FBSyxPQUFMLENBQWEsSUFBYixDQUFrQjtBQUFFLE1BQUEsRUFBRjtBQUFNLE1BQUE7QUFBTixLQUFsQjtBQUNEOztBQUVELEVBQUEsS0FBSyxDQUFDLElBQUQsRUFBc0I7QUFDekIsUUFBSTtBQUFFLE1BQUEsT0FBRjtBQUFXLE1BQUE7QUFBWCxRQUFzQixJQUExQjs7QUFDQSxTQUFLLElBQUksQ0FBQyxHQUFHLENBQWIsRUFBZ0IsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUE1QixFQUFvQyxDQUFDLEVBQXJDLEVBQXlDO0FBQ3ZDLFVBQUk7QUFBRSxRQUFB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QW1CLENBQWxEO0FBQ0Q7O0FBRUQsRUFBQSxXQUFXLEdBQUE7QUFDVCxTQUFLLFdBQUwsQ0FBaUIsSUFBakIsQ0FBc0IsSUFBSSxNQUFKLEVBQXRCO0FBQ0Q7O0FBRUQsRUFBQSxVQUFVLEdBQUE7QUFDUixRQUFJLEtBQUssR0FBVSxLQUFLLFdBQUwsQ0FBaUIsR0FBakIsRUFBbkI7QUFDQSxJQUFBLEtBQUssQ0FBQyxLQUFOLENBQVksS0FBSyxJQUFqQjtBQUNEOztBQTdHcUI7O0FBZ0h4QixTQUFTLGVBQVQsQ0FBeUIsRUFBekIsRUFBbUM7QUFDakMsU0FBTyxFQUFFLEdBQUE7QUFBQTtBQUFUO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnN0cnVjdGlvbkVuY29kZXJJbXBsIH0gZnJvbSAnQGdsaW1tZXIvZW5jb2Rlcic7XG5pbXBvcnQge1xuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgT3BlcmFuZCxcbiAgQ29tcGlsZVRpbWVIZWFwLFxuICBPcCxcbiAgQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBTaW5nbGVCdWlsZGVyT3BlcmFuZCxcbiAgRW5jb2RlcixcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgSGlnaExldmVsT3AsXG4gIE9wY29kZVNpemUsXG4gIEluc3RydWN0aW9uRW5jb2RlcixcbiAgRGljdCxcbiAgRW5jb2RlckVycm9yLFxuICBIYW5kbGVSZXN1bHQsXG4gIEJ1aWxkZXJPcCxcbiAgQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgQ29udGFpbmluZ01ldGFkYXRhLFxuICBIaWdoTGV2ZWxPcGVyYW5kLFxuICBTVERMaWIsXG4gIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGlzTWFjaGluZU9wIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgU3RhY2ssIGRpY3QsIGV4cGVjdCwgRU1QVFlfU1RSSU5HX0FSUkFZLCBlbmNvZGVIYW5kbGUsIGFzc2VydCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZUNvbXBvbmVudCxcbiAgcmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLFxuICByZXNvbHZlSGVscGVyLFxuICByZXNvbHZlTW9kaWZpZXIsXG4gIHJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLFxuICByZXNvbHZlT3B0aW9uYWxIZWxwZXIsXG59IGZyb20gJy4vaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IGNvbXBpbGFibGVCbG9jayB9IGZyb20gJy4uL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY2xhc3MgTGFiZWxzIHtcbiAgbGFiZWxzOiBEaWN0PG51bWJlcj4gPSBkaWN0KCk7XG4gIHRhcmdldHM6IEFycmF5PHsgYXQ6IG51bWJlcjsgdGFyZ2V0OiBzdHJpbmcgfT4gPSBbXTtcblxuICBsYWJlbChuYW1lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmxhYmVsc1tuYW1lXSA9IGluZGV4O1xuICB9XG5cbiAgdGFyZ2V0KGF0OiBudW1iZXIsIHRhcmdldDogc3RyaW5nKSB7XG4gICAgdGhpcy50YXJnZXRzLnB1c2goeyBhdCwgdGFyZ2V0IH0pO1xuICB9XG5cbiAgcGF0Y2goaGVhcDogQ29tcGlsZVRpbWVIZWFwKTogdm9pZCB7XG4gICAgbGV0IHsgdGFyZ2V0cywgbGFiZWxzIH0gPSB0aGlzO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0cy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHsgYXQsIHRhcmdldCB9ID0gdGFyZ2V0c1tpXTtcbiAgICAgIGxldCBhZGRyZXNzID0gbGFiZWxzW3RhcmdldF0gLSBhdDtcblxuICAgICAgYXNzZXJ0KGhlYXAuZ2V0YnlhZGRyKGF0KSA9PT0gLTEsICdFeHBlY3RlZCBoZWFwIHRvIGNvbnRhaW4gYSBwbGFjZWhvbGRlciwgYnV0IGl0IGRpZCBub3QnKTtcblxuICAgICAgaGVhcC5zZXRieWFkZHIoYXQsIGFkZHJlc3MpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlT3AoXG4gIGVuY29kZXI6IEVuY29kZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgb3A6IEJ1aWxkZXJPcCB8IEhpZ2hMZXZlbE9wXG4pOiB2b2lkIHtcbiAgaWYgKGlzQnVpbGRlck9wY29kZShvcFswXSkpIHtcbiAgICBsZXQgW3R5cGUsIC4uLm9wZXJhbmRzXSA9IG9wO1xuICAgIGVuY29kZXIucHVzaChjb25zdGFudHMsIHR5cGUsIC4uLihvcGVyYW5kcyBhcyBTaW5nbGVCdWlsZGVyT3BlcmFuZFtdKSk7XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgY2FzZSBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsOlxuICAgICAgICByZXR1cm4gZW5jb2Rlci5sYWJlbChvcFsxXSk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuU3RhcnRMYWJlbHM6XG4gICAgICAgIHJldHVybiBlbmNvZGVyLnN0YXJ0TGFiZWxzKCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuU3RvcExhYmVsczpcbiAgICAgICAgcmV0dXJuIGVuY29kZXIuc3RvcExhYmVscygpO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudDpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVDb21wb25lbnQocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVNb2RpZmllcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVNb2RpZmllcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUhlbHBlcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVIZWxwZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnRPckhlbHBlcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVDb21wb25lbnRPckhlbHBlcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsSGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZU9wdGlvbmFsSGVscGVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcblxuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbDpcbiAgICAgICAgbGV0IGZyZWVWYXIgPSBvcFsxXTtcbiAgICAgICAgbGV0IG5hbWUgPSBleHBlY3QobWV0YS51cHZhcnMsICdCVUc6IGF0dGVtcHRlZCB0byByZXNvbHZlIHZhbHVlIGJ1dCBubyB1cHZhcnMgZm91bmQnKVtcbiAgICAgICAgICBmcmVlVmFyXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKG1ldGEuYXNQYXJ0aWFsID09PSB0cnVlKSB7XG4gICAgICAgICAgZW5jb2Rlci5wdXNoKGNvbnN0YW50cywgT3AuUmVzb2x2ZU1heWJlTG9jYWwsIG5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCB0aGVuID0gb3BbMl07XG5cbiAgICAgICAgICB0aGVuKG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlVGVtcGxhdGVMb2NhbDpcbiAgICAgICAgbGV0IFssIHZhbHVlSW5kZXgsIHRoZW5dID0gb3A7XG4gICAgICAgIGxldCB2YWx1ZSA9IGV4cGVjdChcbiAgICAgICAgICBtZXRhLnNjb3BlVmFsdWVzLFxuICAgICAgICAgICdCVUc6IEF0dGVtcHRlZCB0byBnZWN0IGEgdGVtcGxhdGUgbG9jYWwsIGJ1dCB0ZW1wbGF0ZSBkb2VzIG5vdCBoYXZlIGFueSdcbiAgICAgICAgKVt2YWx1ZUluZGV4XTtcblxuICAgICAgICB0aGVuKGNvbnN0YW50cy52YWx1ZSh2YWx1ZSkpO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUZyZWU6XG4gICAgICAgIGlmIChERUJVRykge1xuICAgICAgICAgIGxldCBbLCB1cHZhckluZGV4XSA9IG9wO1xuICAgICAgICAgIGxldCBmcmVlTmFtZSA9IGV4cGVjdChtZXRhLnVwdmFycywgJ0JVRzogYXR0ZW1wdGVkIHRvIHJlc29sdmUgdmFsdWUgYnV0IG5vIHVwdmFycyBmb3VuZCcpW1xuICAgICAgICAgICAgdXB2YXJJbmRleFxuICAgICAgICAgIF07XG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSB2YWx1ZSBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke2ZyZWVOYW1lfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgaGlnaCBsZXZlbCBvcGNvZGUgJHtvcFswXX1gKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVuY29kZXJJbXBsIGltcGxlbWVudHMgRW5jb2RlciB7XG4gIHByaXZhdGUgbGFiZWxzU3RhY2sgPSBuZXcgU3RhY2s8TGFiZWxzPigpO1xuICBwcml2YXRlIGVuY29kZXI6IEluc3RydWN0aW9uRW5jb2RlciA9IG5ldyBJbnN0cnVjdGlvbkVuY29kZXJJbXBsKFtdKTtcbiAgcHJpdmF0ZSBlcnJvcnM6IEVuY29kZXJFcnJvcltdID0gW107XG4gIHByaXZhdGUgaGFuZGxlOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBoZWFwOiBDb21waWxlVGltZUhlYXAsXG4gICAgcHJpdmF0ZSBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gICAgcHJpdmF0ZSBzdGRsaWI/OiBTVERMaWJcbiAgKSB7XG4gICAgdGhpcy5oYW5kbGUgPSBoZWFwLm1hbGxvYygpO1xuICB9XG5cbiAgZXJyb3IoZXJyb3I6IEVuY29kZXJFcnJvcik6IHZvaWQge1xuICAgIHRoaXMuZW5jb2Rlci5lbmNvZGUoT3AuUHJpbWl0aXZlLCAwKTtcbiAgICB0aGlzLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgfVxuXG4gIGNvbW1pdChzaXplOiBudW1iZXIpOiBIYW5kbGVSZXN1bHQge1xuICAgIGxldCBoYW5kbGUgPSB0aGlzLmhhbmRsZTtcblxuICAgIHRoaXMuaGVhcC5wdXNoKE1hY2hpbmVPcC5SZXR1cm4gfCBPcGNvZGVTaXplLk1BQ0hJTkVfTUFTSyk7XG4gICAgdGhpcy5oZWFwLmZpbmlzaE1hbGxvYyhoYW5kbGUsIHNpemUpO1xuXG4gICAgaWYgKHRoaXMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHsgZXJyb3JzOiB0aGlzLmVycm9ycywgaGFuZGxlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBoYW5kbGU7XG4gICAgfVxuICB9XG5cbiAgcHVzaChcbiAgICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICAgIHR5cGU6IEJ1aWxkZXJPcGNvZGUsXG4gICAgLi4uYXJnczogU2luZ2xlQnVpbGRlck9wZXJhbmRbXVxuICApOiB2b2lkIHtcbiAgICBsZXQgeyBoZWFwIH0gPSB0aGlzO1xuXG4gICAgaWYgKERFQlVHICYmICh0eXBlIGFzIG51bWJlcikgPiBPcGNvZGVTaXplLlRZUEVfU0laRSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBPcGNvZGUgdHlwZSBvdmVyIDgtYml0cy4gR290ICR7dHlwZX0uYCk7XG4gICAgfVxuXG4gICAgbGV0IG1hY2hpbmUgPSBpc01hY2hpbmVPcCh0eXBlKSA/IE9wY29kZVNpemUuTUFDSElORV9NQVNLIDogMDtcbiAgICBsZXQgZmlyc3QgPSB0eXBlIHwgbWFjaGluZSB8IChhcmdzLmxlbmd0aCA8PCBPcGNvZGVTaXplLkFSR19TSElGVCk7XG5cbiAgICBoZWFwLnB1c2goZmlyc3QpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgb3AgPSBhcmdzW2ldO1xuICAgICAgaGVhcC5wdXNoKHRoaXMub3BlcmFuZChjb25zdGFudHMsIG9wKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVyYW5kKGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMsIG9wZXJhbmQ6IFNpbmdsZUJ1aWxkZXJPcGVyYW5kKTogT3BlcmFuZCB7XG4gICAgaWYgKHR5cGVvZiBvcGVyYW5kID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIG9wZXJhbmQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcGVyYW5kID09PSAnb2JqZWN0JyAmJiBvcGVyYW5kICE9PSBudWxsKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvcGVyYW5kKSkge1xuICAgICAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy5hcnJheShvcGVyYW5kKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKG9wZXJhbmQudHlwZSkge1xuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5MYWJlbDpcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExhYmVscy50YXJnZXQodGhpcy5oZWFwLm9mZnNldCwgb3BlcmFuZC52YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuSXNTdHJpY3RNb2RlOlxuICAgICAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMudmFsdWUodGhpcy5tZXRhLmlzU3RyaWN0TW9kZSkpO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLkV2YWxTeW1ib2xzOlxuICAgICAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMuYXJyYXkodGhpcy5tZXRhLmV2YWxTeW1ib2xzIHx8IEVNUFRZX1NUUklOR19BUlJBWSkpO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLkJsb2NrOlxuICAgICAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMudmFsdWUoY29tcGlsYWJsZUJsb2NrKG9wZXJhbmQudmFsdWUsIHRoaXMubWV0YSkpKTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5TdGRMaWI6XG4gICAgICAgICAgICByZXR1cm4gZXhwZWN0KFxuICAgICAgICAgICAgICB0aGlzLnN0ZGxpYixcbiAgICAgICAgICAgICAgJ2F0dGVtcHRlZCB0byBlbmNvZGUgYSBzdGRsaWIgb3BlcmFuZCwgYnV0IHRoZSBlbmNvZGVyIGRpZCBub3QgaGF2ZSBhIHN0ZGxpYi4gQXJlIHlvdSBjdXJyZW50bHkgYnVpbGRpbmcgdGhlIHN0ZGxpYj8nXG4gICAgICAgICAgICApW29wZXJhbmQudmFsdWVdO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLk5vblNtYWxsSW50OlxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5TeW1ib2xUYWJsZTpcbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuTGF5b3V0OlxuICAgICAgICAgICAgcmV0dXJuIGNvbnN0YW50cy52YWx1ZShvcGVyYW5kLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLnZhbHVlKG9wZXJhbmQpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGN1cnJlbnRMYWJlbHMoKTogTGFiZWxzIHtcbiAgICByZXR1cm4gZXhwZWN0KHRoaXMubGFiZWxzU3RhY2suY3VycmVudCwgJ2J1Zzogbm90IGluIGEgbGFiZWwgc3RhY2snKTtcbiAgfVxuXG4gIGxhYmVsKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudExhYmVscy5sYWJlbChuYW1lLCB0aGlzLmhlYXAub2Zmc2V0ICsgMSk7XG4gIH1cblxuICBzdGFydExhYmVscygpIHtcbiAgICB0aGlzLmxhYmVsc1N0YWNrLnB1c2gobmV3IExhYmVscygpKTtcbiAgfVxuXG4gIHN0b3BMYWJlbHMoKSB7XG4gICAgbGV0IGxhYmVsID0gZXhwZWN0KHRoaXMubGFiZWxzU3RhY2sucG9wKCksICd1bmJhbGFuY2VkIHB1c2ggYW5kIHBvcCBsYWJlbHMnKTtcbiAgICBsYWJlbC5wYXRjaCh0aGlzLmhlYXApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzQnVpbGRlck9wY29kZShvcDogbnVtYmVyKTogb3AgaXMgQnVpbGRlck9wY29kZSB7XG4gIHJldHVybiBvcCA8IEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuU3RhcnQ7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLHNCQUFULFFBQXVDLGtCQUF2QztBQXlCQSxTQUFTLFdBQVQsUUFBNEIsYUFBNUI7QUFDQSxTQUFTLEtBQVQsRUFBZ0IsSUFBaEIsRUFBOEIsa0JBQTlCLEVBQWtELFlBQWxELEVBQWdFLE1BQWhFLFFBQThFLGVBQTlFO0FBQ0EsU0FDRSxnQkFERixFQUVFLHdCQUZGLEVBR0UsYUFIRixFQUlFLGVBSkYsRUFLRSxnQ0FMRixFQU1FLHFCQU5GLFFBT08sc0JBUFA7QUFRQSxTQUFTLGVBQVQsUUFBZ0Msd0JBQWhDO0FBQ0EsU0FBUyxLQUFULFFBQXNCLGNBQXRCO0FBRUEsT0FBTSxNQUFPLE1BQVAsQ0FBYTtBQUFuQixFQUFBLFdBQUEsR0FBQTtBQUNFLFNBQUEsTUFBQSxHQUF1QixJQUFJLEVBQTNCO0FBQ0EsU0FBQSxPQUFBLEdBQWlELEVBQWpEO0FBcUJEOztBQW5CQyxFQUFBLEtBQUssQ0FBQyxJQUFELEVBQWUsS0FBZixFQUE0QjtBQUMvQixTQUFLLE1BQUwsQ0FBWSxJQUFaLElBQW9CLEtBQXBCO0FBQ0Q7O0FBRUQsRUFBQSxNQUFNLENBQUMsRUFBRCxFQUFhLE1BQWIsRUFBMkI7QUFDL0IsU0FBSyxPQUFMLENBQWEsSUFBYixDQUFrQjtBQUFFLE1BQUEsRUFBRjtBQUFNLE1BQUE7QUFBTixLQUFsQjtBQUNEOztBQUVELEVBQUEsS0FBSyxDQUFDLElBQUQsRUFBc0I7QUFDekIsUUFBSTtBQUFFLE1BQUEsT0FBRjtBQUFXLE1BQUE7QUFBWCxRQUFzQixJQUExQjs7QUFDQSxTQUFLLElBQUksQ0FBQyxHQUFHLENBQWIsRUFBZ0IsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUE1QixFQUFvQyxDQUFDLEVBQXJDLEVBQXlDO0FBQ3ZDLFVBQUk7QUFBRSxRQUFB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QUssSUFBTCxDQUFVLE1BQVYsR0FBbUIsQ0FBbEQ7QUFDRDs7QUFFRCxFQUFBLFdBQVcsR0FBQTtBQUNULFNBQUssV0FBTCxDQUFpQixJQUFqQixDQUFzQixJQUFJLE1BQUosRUFBdEI7QUFDRDs7QUFFRCxFQUFBLFVBQVUsR0FBQTtBQUNSLFFBQUksS0FBSyxHQUFVLEtBQUssV0FBTCxDQUFpQixHQUFqQixFQUFuQjtBQUNBLElBQUEsS0FBSyxDQUFDLEtBQU4sQ0FBWSxLQUFLLElBQWpCO0FBQ0Q7O0FBN0dxQjs7QUFnSHhCLFNBQVMsZUFBVCxDQUF5QixFQUF6QixFQUFtQztBQUNqQyxTQUFPLEVBQUUsR0FBQTtBQUFBO0FBQVQ7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluc3RydWN0aW9uRW5jb2RlckltcGwgfSBmcm9tICdAZ2xpbW1lci9lbmNvZGVyJztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICBPcGVyYW5kLFxuICBDb21waWxlVGltZUhlYXAsXG4gIE9wLFxuICBCdWlsZGVyT3Bjb2RlLFxuICBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIFNpbmdsZUJ1aWxkZXJPcGVyYW5kLFxuICBFbmNvZGVyLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBIaWdoTGV2ZWxPcCxcbiAgT3Bjb2RlU2l6ZSxcbiAgSW5zdHJ1Y3Rpb25FbmNvZGVyLFxuICBEaWN0LFxuICBFbmNvZGVyRXJyb3IsXG4gIEhhbmRsZVJlc3VsdCxcbiAgQnVpbGRlck9wLFxuICBDb21waWxlVGltZVJlc29sdmVyLFxuICBDb250YWluaW5nTWV0YWRhdGEsXG4gIEhpZ2hMZXZlbE9wZXJhbmQsXG4gIFNURExpYixcbiAgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgaXNNYWNoaW5lT3AgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBTdGFjaywgZGljdCwgZXhwZWN0LCBFTVBUWV9TVFJJTkdfQVJSQVksIGVuY29kZUhhbmRsZSwgYXNzZXJ0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQge1xuICByZXNvbHZlQ29tcG9uZW50LFxuICByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIsXG4gIHJlc29sdmVIZWxwZXIsXG4gIHJlc29sdmVNb2RpZmllcixcbiAgcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsXG4gIHJlc29sdmVPcHRpb25hbEhlbHBlcixcbn0gZnJvbSAnLi9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgY29tcGlsYWJsZUJsb2NrIH0gZnJvbSAnLi4vY29tcGlsYWJsZS10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5cbmV4cG9ydCBjbGFzcyBMYWJlbHMge1xuICBsYWJlbHM6IERpY3Q8bnVtYmVyPiA9IGRpY3QoKTtcbiAgdGFyZ2V0czogQXJyYXk8eyBhdDogbnVtYmVyOyB0YXJnZXQ6IHN0cmluZyB9PiA9IFtdO1xuXG4gIGxhYmVsKG5hbWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubGFiZWxzW25hbWVdID0gaW5kZXg7XG4gIH1cblxuICB0YXJnZXQoYXQ6IG51bWJlciwgdGFyZ2V0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhcmdldHMucHVzaCh7IGF0LCB0YXJnZXQgfSk7XG4gIH1cblxuICBwYXRjaChoZWFwOiBDb21waWxlVGltZUhlYXApOiB2b2lkIHtcbiAgICBsZXQgeyB0YXJnZXRzLCBsYWJlbHMgfSA9IHRoaXM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YXJnZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgeyBhdCwgdGFyZ2V0IH0gPSB0YXJnZXRzW2ldO1xuICAgICAgbGV0IGFkZHJlc3MgPSBsYWJlbHNbdGFyZ2V0XSAtIGF0O1xuXG4gICAgICBhc3NlcnQoaGVhcC5nZXRieWFkZHIoYXQpID09PSAtMSwgJ0V4cGVjdGVkIGhlYXAgdG8gY29udGFpbiBhIHBsYWNlaG9sZGVyLCBidXQgaXQgZGlkIG5vdCcpO1xuXG4gICAgICBoZWFwLnNldGJ5YWRkcihhdCwgYWRkcmVzcyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVPcChcbiAgZW5jb2RlcjogRW5jb2RlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBvcDogQnVpbGRlck9wIHwgSGlnaExldmVsT3Bcbik6IHZvaWQge1xuICBpZiAoaXNCdWlsZGVyT3Bjb2RlKG9wWzBdKSkge1xuICAgIGxldCBbdHlwZSwgLi4ub3BlcmFuZHNdID0gb3A7XG4gICAgZW5jb2Rlci5wdXNoKGNvbnN0YW50cywgdHlwZSwgLi4uKG9wZXJhbmRzIGFzIFNpbmdsZUJ1aWxkZXJPcGVyYW5kW10pKTtcbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICBjYXNlIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWw6XG4gICAgICAgIHJldHVybiBlbmNvZGVyLmxhYmVsKG9wWzFdKTtcbiAgICAgIGNhc2UgSGlnaExldmVsQnVpbGRlck9wY29kZS5TdGFydExhYmVsczpcbiAgICAgICAgcmV0dXJuIGVuY29kZXIuc3RhcnRMYWJlbHMoKTtcbiAgICAgIGNhc2UgSGlnaExldmVsQnVpbGRlck9wY29kZS5TdG9wTGFiZWxzOlxuICAgICAgICByZXR1cm4gZW5jb2Rlci5zdG9wTGFiZWxzKCk7XG5cbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50OlxuICAgICAgICByZXR1cm4gcmVzb2x2ZUNvbXBvbmVudChyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU1vZGlmaWVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZU1vZGlmaWVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlSGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZUhlbHBlcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXI6XG4gICAgICAgIHJldHVybiByZXNvbHZlT3B0aW9uYWxIZWxwZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUxvY2FsOlxuICAgICAgICBsZXQgZnJlZVZhciA9IG9wWzFdO1xuICAgICAgICBsZXQgbmFtZSA9IGV4cGVjdChtZXRhLnVwdmFycywgJ0JVRzogYXR0ZW1wdGVkIHRvIHJlc29sdmUgdmFsdWUgYnV0IG5vIHVwdmFycyBmb3VuZCcpW1xuICAgICAgICAgIGZyZWVWYXJcbiAgICAgICAgXTtcblxuICAgICAgICBpZiAobWV0YS5hc1BhcnRpYWwgPT09IHRydWUpIHtcbiAgICAgICAgICBlbmNvZGVyLnB1c2goY29uc3RhbnRzLCBPcC5SZXNvbHZlTWF5YmVMb2NhbCwgbmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IHRoZW4gPSBvcFsyXTtcblxuICAgICAgICAgIHRoZW4obmFtZSwgbWV0YS5tb2R1bGVOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZVRlbXBsYXRlTG9jYWw6XG4gICAgICAgIGxldCBbLCB2YWx1ZUluZGV4LCB0aGVuXSA9IG9wO1xuICAgICAgICBsZXQgdmFsdWUgPSBleHBlY3QoXG4gICAgICAgICAgbWV0YS5zY29wZVZhbHVlcyxcbiAgICAgICAgICAnQlVHOiBBdHRlbXB0ZWQgdG8gZ2VjdCBhIHRlbXBsYXRlIGxvY2FsLCBidXQgdGVtcGxhdGUgZG9lcyBub3QgaGF2ZSBhbnknXG4gICAgICAgIClbdmFsdWVJbmRleF07XG5cbiAgICAgICAgdGhlbihjb25zdGFudHMudmFsdWUodmFsdWUpKTtcblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVGcmVlOlxuICAgICAgICBpZiAoREVCVUcpIHtcbiAgICAgICAgICBsZXQgWywgdXB2YXJJbmRleF0gPSBvcDtcbiAgICAgICAgICBsZXQgZnJlZU5hbWUgPSBleHBlY3QobWV0YS51cHZhcnMsICdCVUc6IGF0dGVtcHRlZCB0byByZXNvbHZlIHZhbHVlIGJ1dCBubyB1cHZhcnMgZm91bmQnKVtcbiAgICAgICAgICAgIHVwdmFySW5kZXhcbiAgICAgICAgICBdO1xuXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgdmFsdWUgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtmcmVlTmFtZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGhpZ2ggbGV2ZWwgb3Bjb2RlICR7b3BbMF19YCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbmNvZGVySW1wbCBpbXBsZW1lbnRzIEVuY29kZXIge1xuICBwcml2YXRlIGxhYmVsc1N0YWNrID0gbmV3IFN0YWNrPExhYmVscz4oKTtcbiAgcHJpdmF0ZSBlbmNvZGVyOiBJbnN0cnVjdGlvbkVuY29kZXIgPSBuZXcgSW5zdHJ1Y3Rpb25FbmNvZGVySW1wbChbXSk7XG4gIHByaXZhdGUgZXJyb3JzOiBFbmNvZGVyRXJyb3JbXSA9IFtdO1xuICBwcml2YXRlIGhhbmRsZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaGVhcDogQ29tcGlsZVRpbWVIZWFwLFxuICAgIHByaXZhdGUgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICAgIHByaXZhdGUgc3RkbGliPzogU1RETGliXG4gICkge1xuICAgIHRoaXMuaGFuZGxlID0gaGVhcC5tYWxsb2MoKTtcbiAgfVxuXG4gIGVycm9yKGVycm9yOiBFbmNvZGVyRXJyb3IpOiB2b2lkIHtcbiAgICB0aGlzLmVuY29kZXIuZW5jb2RlKE9wLlByaW1pdGl2ZSwgMCk7XG4gICAgdGhpcy5lcnJvcnMucHVzaChlcnJvcik7XG4gIH1cblxuICBjb21taXQoc2l6ZTogbnVtYmVyKTogSGFuZGxlUmVzdWx0IHtcbiAgICBsZXQgaGFuZGxlID0gdGhpcy5oYW5kbGU7XG5cbiAgICB0aGlzLmhlYXAucHVzaChNYWNoaW5lT3AuUmV0dXJuIHwgT3Bjb2RlU2l6ZS5NQUNISU5FX01BU0spO1xuICAgIHRoaXMuaGVhcC5maW5pc2hNYWxsb2MoaGFuZGxlLCBzaXplKTtcblxuICAgIGlmICh0aGlzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7IGVycm9yczogdGhpcy5lcnJvcnMsIGhhbmRsZSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaGFuZGxlO1xuICAgIH1cbiAgfVxuXG4gIHB1c2goXG4gICAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgICB0eXBlOiBCdWlsZGVyT3Bjb2RlLFxuICAgIC4uLmFyZ3M6IFNpbmdsZUJ1aWxkZXJPcGVyYW5kW11cbiAgKTogdm9pZCB7XG4gICAgbGV0IHsgaGVhcCB9ID0gdGhpcztcblxuICAgIGlmIChERUJVRyAmJiAodHlwZSBhcyBudW1iZXIpID4gT3Bjb2RlU2l6ZS5UWVBFX1NJWkUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgT3Bjb2RlIHR5cGUgb3ZlciA4LWJpdHMuIEdvdCAke3R5cGV9LmApO1xuICAgIH1cblxuICAgIGxldCBtYWNoaW5lID0gaXNNYWNoaW5lT3AodHlwZSkgPyBPcGNvZGVTaXplLk1BQ0hJTkVfTUFTSyA6IDA7XG4gICAgbGV0IGZpcnN0ID0gdHlwZSB8IG1hY2hpbmUgfCAoYXJncy5sZW5ndGggPDwgT3Bjb2RlU2l6ZS5BUkdfU0hJRlQpO1xuXG4gICAgaGVhcC5wdXNoKGZpcnN0KTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IG9wID0gYXJnc1tpXTtcbiAgICAgIGhlYXAucHVzaCh0aGlzLm9wZXJhbmQoY29uc3RhbnRzLCBvcCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlcmFuZChjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzLCBvcGVyYW5kOiBTaW5nbGVCdWlsZGVyT3BlcmFuZCk6IE9wZXJhbmQge1xuICAgIGlmICh0eXBlb2Ygb3BlcmFuZCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBvcGVyYW5kO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3BlcmFuZCA9PT0gJ29iamVjdCcgJiYgb3BlcmFuZCAhPT0gbnVsbCkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3BlcmFuZCkpIHtcbiAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMuYXJyYXkob3BlcmFuZCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChvcGVyYW5kLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuTGFiZWw6XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMYWJlbHMudGFyZ2V0KHRoaXMuaGVhcC5vZmZzZXQsIG9wZXJhbmQudmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLklzU3RyaWN0TW9kZTpcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLnZhbHVlKHRoaXMubWV0YS5pc1N0cmljdE1vZGUpKTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5FdmFsU3ltYm9sczpcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLmFycmF5KHRoaXMubWV0YS5ldmFsU3ltYm9scyB8fCBFTVBUWV9TVFJJTkdfQVJSQVkpKTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5CbG9jazpcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLnZhbHVlKGNvbXBpbGFibGVCbG9jayhvcGVyYW5kLnZhbHVlLCB0aGlzLm1ldGEpKSk7XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuU3RkTGliOlxuICAgICAgICAgICAgcmV0dXJuIGV4cGVjdChcbiAgICAgICAgICAgICAgdGhpcy5zdGRsaWIsXG4gICAgICAgICAgICAgICdhdHRlbXB0ZWQgdG8gZW5jb2RlIGEgc3RkbGliIG9wZXJhbmQsIGJ1dCB0aGUgZW5jb2RlciBkaWQgbm90IGhhdmUgYSBzdGRsaWIuIEFyZSB5b3UgY3VycmVudGx5IGJ1aWxkaW5nIHRoZSBzdGRsaWI/J1xuICAgICAgICAgICAgKVtvcGVyYW5kLnZhbHVlXTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5Ob25TbWFsbEludDpcbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuU3ltYm9sVGFibGU6XG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLkxheW91dDpcbiAgICAgICAgICAgIHJldHVybiBjb25zdGFudHMudmFsdWUob3BlcmFuZC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy52YWx1ZShvcGVyYW5kKSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBjdXJyZW50TGFiZWxzKCk6IExhYmVscyB7XG4gICAgcmV0dXJuIGV4cGVjdCh0aGlzLmxhYmVsc1N0YWNrLmN1cnJlbnQsICdidWc6IG5vdCBpbiBhIGxhYmVsIHN0YWNrJyk7XG4gIH1cblxuICBsYWJlbChuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRMYWJlbHMubGFiZWwobmFtZSwgdGhpcy5oZWFwLm9mZnNldCArIDEpO1xuICB9XG5cbiAgc3RhcnRMYWJlbHMoKSB7XG4gICAgdGhpcy5sYWJlbHNTdGFjay5wdXNoKG5ldyBMYWJlbHMoKSk7XG4gIH1cblxuICBzdG9wTGFiZWxzKCkge1xuICAgIGxldCBsYWJlbCA9IGV4cGVjdCh0aGlzLmxhYmVsc1N0YWNrLnBvcCgpLCAndW5iYWxhbmNlZCBwdXNoIGFuZCBwb3AgbGFiZWxzJyk7XG4gICAgbGFiZWwucGF0Y2godGhpcy5oZWFwKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0J1aWxkZXJPcGNvZGUob3A6IG51bWJlcik6IG9wIGlzIEJ1aWxkZXJPcGNvZGUge1xuICByZXR1cm4gb3AgPCBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLlN0YXJ0O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== |
@@ -249,3 +249,3 @@ import { DEBUG } from '@glimmer/env'; | ||
if (helper === null) { | ||
ifFallback(name); | ||
ifFallback(name, meta.moduleName); | ||
} else { | ||
@@ -340,2 +340,2 @@ ifHelper(constants.helper(helper, name)); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQWdCQSxTQUFTLE1BQVQsRUFBaUIsYUFBakIsUUFBOEMsZUFBOUM7O0FBRUEsU0FBUyxjQUFULENBQXdCLE1BQXhCLEVBQXNEO0FBQ3BELFNBQU8sS0FBSyxDQUFDLE9BQU4sQ0FBYyxNQUFkLEtBQXlCLE1BQU0sQ0FBQyxNQUFQLEtBQWtCLENBQWxEO0FBQ0Q7O0FBRUQsU0FBUywwQkFBVCxDQUFvQyxZQUFwQyxFQUE2RDtBQUMzRCxTQUNFLE1BREssSUFFNEQ7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFELENBQW5CLEVBQTZCLE9BQU8sS0FBUDtBQUU3QixRQUFJLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBRCxDQUFqQjtBQUVBLFdBQ0UsSUFBSSxLQUFBO0FBQUE7QUFBSixPQUNBLElBQUksS0FBQTtBQUFBO0FBREosT0FFQSxJQUFJLEtBQUssWUFIWDtBQUtELEdBWkQ7QUFhRDs7QUFFRCxPQUFPLE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJEO0FBRVAsT0FBTyxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFwRDtBQUVQLE9BQU8sTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQWxEO0FBRVAsT0FBTyxNQUFNLDBCQUEwQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUE3RDtBQUlQLE9BQU8sTUFBTSx1QkFBdUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBMUQ7QUFJUCxPQUFPLE1BQU0sa0NBQWtDLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJFOztBQVNQLFNBQVMs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RCxTQUFPLFNBQVMsQ0FBQyxNQUFWLENBQWlCLE1BQWpCLEVBQTBCLElBQTFCLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICBDb21waWxlVGltZVJlc29sdmVyLFxuICBDb250YWluaW5nTWV0YWRhdGEsXG4gIEV4cHJlc3Npb25zLFxuICBPd25lcixcbiAgUmVzb2x2ZUNvbXBvbmVudE9wLFxuICBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZUhlbHBlck9wLFxuICBSZXNvbHZlTW9kaWZpZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3AsXG4gIFNleHBPcGNvZGVzLFxuICBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NlcnQsIGRlYnVnVG9TdHJpbmcsIGV4cGVjdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5mdW5jdGlvbiBpc0dldExpa2VUdXBsZShvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb24pOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuVHVwbGVFeHByZXNzaW9uIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3Bjb2RlKSAmJiBvcGNvZGUubGVuZ3RoID09PSAyO1xufVxuXG5mdW5jdGlvbiBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcih0eXBlVG9WZXJpZnk6IFNleHBPcGNvZGVzKSB7XG4gIHJldHVybiAoXG4gICAgb3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uXG4gICk6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5HZXRGcmVlIHwgRXhwcmVzc2lvbnMuR2V0VGVtcGxhdGVTeW1ib2wgPT4ge1xuICAgIGlmICghaXNHZXRMaWtlVHVwbGUob3Bjb2RlKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgbGV0IHR5cGUgPSBvcGNvZGVbMF07XG5cbiAgICByZXR1cm4gKFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSB8fFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wgfHxcbiAgICAgIHR5cGUgPT09IHR5cGVUb1ZlcmlmeVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnQgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU1vZGlmaWVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzTW9kaWZpZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkXG4pO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuaW50ZXJmYWNlIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIGV4dGVuZHMgQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgb3duZXI6IE93bmVyO1xuICB1cHZhcnM6IHN0cmluZ1tdO1xufVxuXG5mdW5jdGlvbiBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YTogQ29udGFpbmluZ01ldGFkYXRhKTogUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEge1xuICBpZiAoREVCVUcpIHtcbiAgICBpZiAoIW1ldGEudXB2YXJzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIGZyZWUgdmFycyB3ZXJlIGZvdW5kJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIW1ldGEub3duZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gb3duZXIgd2FzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGVtcGxhdGUgaXQgd2FzIGJlaW5nIHJlc29sdmVkIGZyb20nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAobWV0YSBhcyB1bmtub3duKSBhcyBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YTtcbn1cblxuLyoqXG4gKiA8Rm9vLz5cbiAqIDxGb28+PC9Gb28+XG4gKiA8Rm9vIEBhcmc9e3t0cnVlfX0gLz5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnQoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVDb21wb25lbnRPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVDb21wb25lbnQoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKERFQlVHICYmIGV4cHJbMF0gPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5jb21wb25lbnQoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogKGhlbHBlcilcbiAqIChoZWxwZXIgYXJnKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUhlbHBlcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhlbihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAnaGVscGVyJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIhKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIDxkaXYge3ttb2RpZmllcn19Lz5cbiAqIDxkaXYge3ttb2RpZmllciBhcmd9fS8+XG4gKiA8Rm9vIHt7bW9kaWZpZXJ9fS8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kaWZpZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVNb2RpZmllck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZU1vZGlmaWVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbk1vZGlmaWVyKG5hbWUpO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCBpdCB3YXMgbm90IGluIHNjb3BlOiAke25hbWV9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciEsIG5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwTW9kaWZpZXIobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgbW9kaWZpZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e2NvbXBvbmVudC1vci1oZWxwZXIgYXJnfX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciB9XTogUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KGRlZmluaXRpb24gYXMgb2JqZWN0LCB0cnVlKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QsIG51bGwsIHRydWUpO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGVpdGhlciBhIGNvbXBvbmVudCBvciBoZWxwZXIsIGJ1dCBpdCBkaWQgbm90IGhhdmUgYSBjb21wb25lbnQgbWFuYWdlciBvciBoZWxwZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWZIZWxwZXIoZXhwZWN0KGhlbHBlciwgJ0JVRzogaGVscGVyIG11c3QgZXhpc3QnKSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGlmSGVscGVyKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgICAgICAgZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICAgICAgICByZXNvbHZlcixcbiAgICAgICAgbWV0YSxcbiAgICAgICAgY29uc3RhbnRzLFxuICAgICAgICAnY29tcG9uZW50IG9yIGhlbHBlcidcbiAgICAgIClcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICAgICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCBvciBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyISwgbmFtZSkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIDxGb28gQGFyZz17e2hlbHBlcn19PlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsSGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZIZWxwZXIsIGlmRmFsbGJhY2sgfV06IFJlc29sdmVPcHRpb25hbEhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG4gIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgaWYgKGhlbHBlciA9PT0gbnVsbCkge1xuICAgIGlmRmFsbGJhY2sobmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7bWF5YmVIZWxwZXJPckNvbXBvbmVudH19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciwgaWZWYWx1ZSwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhbiBvcHRpb25hbCBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgICApIHtcbiAgICAgIC8vIFRoZSB2YWx1ZSBpcyBub3QgYW4gb2JqZWN0LCBzbyBpdCBjYW4ndCBiZSBhIGNvbXBvbmVudCBvciBoZWxwZXIuXG4gICAgICBpZlZhbHVlKGNvbnN0YW50cy52YWx1ZShkZWZpbml0aW9uKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoZGVmaW5pdGlvbiwgdHJ1ZSk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24sIG51bGwsIHRydWUpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoaGVscGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZlZhbHVlKGNvbnN0YW50cy52YWx1ZShkZWZpbml0aW9uKSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGlmSGVscGVyKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsIHJlc29sdmVyLCBtZXRhLCBjb25zdGFudHMsICd2YWx1ZScpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZGYWxsYmFjayhuYW1lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBsb29rdXBCdWlsdEluSGVscGVyKFxuICBleHByOiBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBjb25zdGFudHM6IFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICB0eXBlOiBzdHJpbmdcbik6IG51bWJlciB7XG4gIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbkhlbHBlcihuYW1lKTtcblxuICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgLy8gS2V5d29yZCBoZWxwZXIgZGlkIG5vdCBleGlzdCwgd2hpY2ggbWVhbnMgdGhhdCB3ZSdyZSBhdHRlbXB0aW5nIHRvIHVzZSBhXG4gICAgLy8gdmFsdWUgb2Ygc29tZSBraW5kIHRoYXQgaXMgbm90IGluIHNjb3BlXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgJHt0eXBlfSBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQWdCQSxTQUFTLE1BQVQsRUFBaUIsYUFBakIsUUFBOEMsZUFBOUM7O0FBRUEsU0FBUyxjQUFULENBQXdCLE1BQXhCLEVBQXNEO0FBQ3BELFNBQU8sS0FBSyxDQUFDLE9BQU4sQ0FBYyxNQUFkLEtBQXlCLE1BQU0sQ0FBQyxNQUFQLEtBQWtCLENBQWxEO0FBQ0Q7O0FBRUQsU0FBUywwQkFBVCxDQUFvQyxZQUFwQyxFQUE2RDtBQUMzRCxTQUNFLE1BREssSUFFNEQ7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFELENBQW5CLEVBQTZCLE9BQU8sS0FBUDtBQUU3QixRQUFJLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBRCxDQUFqQjtBQUVBLFdBQ0UsSUFBSSxLQUFBO0FBQUE7QUFBSixPQUNBLElBQUksS0FBQTtBQUFBO0FBREosT0FFQSxJQUFJLEtBQUssWUFIWDtBQUtELEdBWkQ7QUFhRDs7QUFFRCxPQUFPLE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJEO0FBRVAsT0FBTyxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFwRDtBQUVQLE9BQU8sTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQWxEO0FBRVAsT0FBTyxNQUFNLDBCQUEwQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUE3RDtBQUlQLE9BQU8sTUFBTSx1QkFBdUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBMUQ7QUFJUCxPQUFPLE1BQU0sa0NBQWtDLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJFOztBQVNQLFNBQVMsd0JBQVQsQ0FBa0MsSUFBbEMsRUFBMEQ7QUFDeEQsTUFBSSxLQUFKLEVBQVc7QUFDVCxRQUFJLENBQUMsSUFBSSxDQUFDLE1BQVYsRUFBa0I7QUFDaEIsWUFBTSxJQUFJLEtBQUosQ0FDSixvRkFESSxDQUFOO0FBR0Q7O0FBRUQsUUFBSSxDQUFDLElBQUksQ0FBQyxLQUFWLEVBQWlCO0FBQ2YsWUFBTSxJQUFJLEtBQUosQ0FDSixpSUFESSxDQUFOO0FBR0Q7QUFDRjs7QUFFRCxTQUFRLElBQVI7QUFDRDtBQUVEOzs7Ozs7O0FBS0EsT0FBTSxTQUFVLGdCQUFWLENBQ0osUUFESSxFQUVKLFNBRkksRUFHSixJQUhJLEVBSUosR0FBRyxJQUFILEVBQVMsSUFBVCxDQUpJLEVBSThCO0FBQUEsWUFFbEMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUQsQ0FBbkIsRUFBMkIsd0RBQTNCLENBRjRCO0FBSWxDLE1BQUksSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFELENBQWY7O0FBRUEsTUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUQsQ0FBSixLQUFPO0FBQUE7QUFBcEIsSUFBb0Q7QUFDbEQsWUFBTSxJQUFJLEtBQUosQ0FDSixnR0FDRSxJQUFJLENBQUMsTUFBTCxDQUFhLElBQUksQ0FBQyxDQUFELENBQWpCLENBQ0YsRUFISSxDQUFOO0FBS0Q7O0FBRUQsTUFBSSxJQUFJLEtBQUE7QUFBQTtBQUFSLElBQTRDO0FBQzFDLFVBQUk7QUFBRSxRQUFBO0FBQUYsVUFBa0IsSUFBdEI7QUFDQSxVQUFJLFVBQVUsR0FBVSxXQUFQLENBQ2YsSUFBSSxDQUFDLENBQUQsQ0FEVyxDQUFqQjtBQUlBLE1BQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFWLENBQW9CLFVBQXBCLENBQUQsQ0FBSjtBQUNELEtBUEQsTUFPTztBQUNMLFFBQUk7QUFBRSxNQUFBLE1BQUY7QUFBVSxNQUFBO0FBQVYsUUFBb0Isd0JBQXdCLENBQUMsSUFBRCxDQUFoRDtBQUVBLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBRCxDQUFMLENBQWpCO0FBQ0EsUUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLGVBQVQsQ0FBeUIsSUFBekIsRUFBK0IsS0FBL0IsQ0FBakI7O0FBRUEsUUFBSSxLQUFLLEtBQUssT0FBTyxVQUFQLEtBQXNCLFFBQXRCLElBQWtDLFVBQVUsS0FBSyxJQUF0RCxDQUFULEVBQXNFO0FBQ3BFLFlBQU0sSUFBSSxLQUFKLENBQ0osMEJBQTBCLElBQUksa0VBRDFCLENBQU47QUFHRDs7QUFFRCxJQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQVYsQ0FBNEIsVUFBNUIsRUFBd0MsSUFBeEMsQ0FBRCxDQUFKO0FBQ0Q7QUFDRjtBQUVEOzs7OztBQUlBLE9BQU0sU0FBVSxhQUFWLENBQ0osUUFESSxFQUVKLFNBRkksRUFHSixJQUhJLEVBSUosR0FBRyxJQUFILEVBQVMsSUFBVCxDQUpJLEVBSTJCO0FBQUEsWUFFL0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFELENBQWhCLEVBQXdCLHFEQUF4QixDQUZ5QjtBQUkvQixNQUFJLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBRCxDQUFmOztBQUVBLE1BQUksSUFBSSxLQUFBO0FBQUE7QUFBUixJQUE0QztBQUMxQyxVQUFJO0FBQUUsUUFBQTtBQUFGLFVBQWtCLElBQXRCO0FBQ0EsVUFBSSxVQUFVLEdBQVUsV0FBUCxDQUNmLElBQUksQ0FBQyxDQUFELENBRFcsQ0FBakI7QUFJQSxNQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBVixDQUFpQixVQUFqQixDQUFELENBQUo7QUFDRCxLQVBELE1BT08sSUFBSSxJQUFJLEtBQUE7QUFBQTtBQUFSLElBQXdDO0FBQzdDLE1BQUEsSUFBSSxDQUNGLG1CQUFtQixDQUFDLElBQUQsRUFBb0MsUUFBcEMsRUFBOEMsSUFBOUMsRUFBb0QsU0FBcEQsRUFBK0QsUUFBL0QsQ0FEakIsQ0FBSjtBQUdELEtBSk0sTUFJQTtBQUNMLFFBQUk7QUFBRSxNQUFBLE1BQUY7QUFBVSxNQUFBO0FBQVYsUUFBb0Isd0JBQXdCLENBQUMsSUFBRCxDQUFoRDtBQUVBLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBRCxDQUFMLENBQWpCO0FBQ0EsUUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLFlBQVQsQ0FBc0IsSUFBdEIsRUFBNEIsS0FBNUIsQ0FBYjs7QUFFQSxRQUFJLEtBQUssSUFBSSxNQUFNLEtBQUssSUFBeEIsRUFBOEI7QUFDNUIsWUFBTSxJQUFJLEtBQUosQ0FDSiwwQkFBMEIsSUFBSSwrREFEMUIsQ0FBTjtBQUdEOztBQUVELElBQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFWLENBQWlCLE1BQWpCLEVBQXlCLElBQXpCLENBQUQsQ0FBSjtBQUNEO0FBQ0Y7QUFFRDs7Ozs7O0FBS0EsT0FBTSxTQUFVLGVBQVYsQ0FDSixRQURJLEVBRUosU0FGSSxFQUdKLElBSEksRUFJSixHQUFHLElBQUgsRUFBUyxJQUFULENBSkksRUFJNkI7QUFBQSxZQUVqQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBRCxDQUFsQixFQUEwQix1REFBMUIsQ0FGMkI7QUFJakMsTUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUQsQ0FBZjs7QUFFQSxNQUFJLElBQUksS0FBQTtBQUFBO0FBQVIsSUFBNEM7QUFDMUMsVUFBSTtBQUFFLFFBQUE7QUFBRixVQUFrQixJQUF0QjtBQUNBLFVBQUksVUFBVSxHQUFVLFdBQVAsQ0FDZixJQUFJLENBQUMsQ0FBRCxDQURXLENBQWpCO0FBSUEsTUFBQSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVYsQ0FBbUIsVUFBbkIsQ0FBRCxDQUFKO0FBQ0QsS0FQRCxNQU9PLElBQUksSUFBSSxLQUFBO0FBQUE7QUFBUixJQUF3QztBQUM3QyxVQUFJO0FBQUUsUUFBQTtBQUFGLFVBQWEsd0JBQXdCLENBQUMsSUFBRCxDQUF6QztBQUNBLFVBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBRCxDQUFMLENBQWpCO0FBQ0EsVUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLHFCQUFULENBQStCLElBQS9CLENBQWY7O0FBRUEsVUFBSSxLQUFLLElBQUksUUFBUSxLQUFLLElBQTFCLEVBQWdDO0FBQzlCLGNBQU0sSUFBSSxLQUFKLENBQ0osdUZBQXVGLElBQUksRUFEdkYsQ0FBTjtBQUdEOztBQUVELE1BQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFWLENBQW1CLFFBQW5CLEVBQThCLElBQTlCLENBQUQsQ0FBSjtBQUNELEtBWk0sTUFZQTtBQUNMLFFBQUk7QUFBRSxNQUFBLE1BQUY7QUFBVSxNQUFBO0FBQVYsUUFBb0Isd0JBQXdCLENBQUMsSUFBRCxDQUFoRDtBQUNBLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBRCxDQUFMLENBQWpCO0FBQ0EsUUFBSSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQVQsQ0FBd0IsSUFBeEIsRUFBOEIsS0FBOUIsQ0FBZjs7QUFFQSxRQUFJLEtBQUssSUFBSSxRQUFRLEtBQUssSUFBMUIsRUFBZ0M7QUFDOUIsWUFBTSxJQUFJLEtBQUosQ0FDSiwwQkFBMEIsSUFBSSxpRUFEMUIsQ0FBTjtBQUdEOztBQUVELElBQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFWLENBQW1CLFFBQW5CLEVBQTZCLElBQTdCLENBQUQsQ0FBSjtBQUNEO0FBQ0Y7QUFFRDs7OztBQUdBLE9BQU0sU0FBVSx3QkFBVixDQUNKLFFBREksRUFFSixTQUZJLEVBR0osSUFISSxFQUlKLEdBQUcsSUFBSCxFQUFTO0FBQUUsRUFBQSxXQUFGO0FBQWUsRUFBQTtBQUFmLENBQVQsQ0FKSSxFQUkyRDtBQUFBLFlBRS9ELE1BQU0sQ0FDSiwwQkFBMEIsQ0FBQyxJQUFELENBRHRCLEVBRUosa0VBRkksQ0FGeUQ7QUFPL0QsTUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUQsQ0FBZjs7QUFFQSxNQUFJLElBQUksS0FBQTtBQUFBO0FBQVIsSUFBNEM7QUFDMUMsVUFBSTtBQUFFLFFBQUE7QUFBRixVQUFrQixJQUF0QjtBQUNBLFVBQUksVUFBVSxHQUFVLFdBQVAsQ0FDZixJQUFJLENBQUMsQ0FBRCxDQURXLENBQWpCO0FBSUEsVUFBSSxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVYsQ0FBb0IsVUFBcEIsRUFBMEMsSUFBMUMsQ0FBaEI7O0FBRUEsVUFBSSxTQUFTLEtBQUssSUFBbEIsRUFBd0I7QUFDdEIsUUFBQSxXQUFXLENBQUMsU0FBRCxDQUFYO0FBQ0E7QUFDRDs7QUFFRCxVQUFJLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBVixDQUFpQixVQUFqQixFQUF1QyxJQUF2QyxFQUE2QyxJQUE3QyxDQUFiOztBQUVBLFVBQUksS0FBSyxJQUFJLE1BQU0sS0FBSyxJQUF4QixFQUE4QjtBQUM1QixjQUFNLElBQUksS0FBSixDQUNKLDBKQUEwSixhQUFjLENBQ3RLLFVBRHNLLENBRXZLLEVBSEcsQ0FBTjtBQUtEOztBQUVELE1BQUEsUUFBUSxDQUFRLE1BQVIsQ0FBUjtBQUNELEtBeEJELE1Bd0JPLElBQUksSUFBSSxLQUFBO0FBQUE7QUFBUixJQUF3QztBQUM3QyxNQUFBLFFBQVEsQ0FDTixtQkFBbUIsQ0FDakIsSUFEaUIsRUFFakIsUUFGaUIsRUFHakIsSUFIaUIsRUFJakIsU0FKaUIsRUFLakIscUJBTGlCLENBRGIsQ0FBUjtBQVNELEtBVk0sTUFVQTtBQUNMLFFBQUk7QUFBRSxNQUFBLE1BQUY7QUFBVSxNQUFBO0FBQVYsUUFBb0Isd0JBQXdCLENBQUMsSUFBRCxDQUFoRDtBQUVBLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBRCxDQUFMLENBQWpCO0FBQ0EsUUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLGVBQVQsQ0FBeUIsSUFBekIsRUFBK0IsS0FBL0IsQ0FBakI7O0FBRUEsUUFBSSxVQUFVLEtBQUssSUFBbkIsRUFBeUI7QUFDdkIsTUFBQSxXQUFXLENBQUMsU0FBUyxDQUFDLGlCQUFWLENBQTRCLFVBQTVCLEVBQXdDLElBQXhDLENBQUQsQ0FBWDtBQUNELEtBRkQsTUFFTztBQUNMLFVBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxZQUFULENBQXNCLElBQXRCLEVBQTRCLEtBQTVCLENBQWI7O0FBRUEsVUFBSSxLQUFLLElBQUksTUFBTSxLQUFLLElBQXhCLEVBQThCO0FBQzVCLGNBQU0sSUFBSSxLQUFKLENBQ0osMEJBQTBCLElBQUksNEVBRDFCLENBQU47QUFHRDs7QUFFRCxNQUFBLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBVixDQUFpQixNQUFqQixFQUEwQixJQUExQixDQUFELENBQVI7QUFDRDtBQUNGO0FBQ0Y7QUFFRDs7OztBQUdBLE9BQU0sU0FBVSxxQkFBVixDQUNKLFFBREksRUFFSixTQUZJLEVBR0osSUFISSxFQUlKLEdBQUcsSUFBSCxFQUFTO0FBQUUsRUFBQSxRQUFGO0FBQVksRUFBQTtBQUFaLENBQVQsQ0FKSSxFQUl1RDtBQUFBLFlBRTNELE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFELENBQXhCLEVBQWdDLHFEQUFoQyxDQUZxRDtBQUczRCxNQUFJO0FBQUUsSUFBQSxNQUFGO0FBQVUsSUFBQTtBQUFWLE1BQW9CLHdCQUF3QixDQUFDLElBQUQsQ0FBaEQ7QUFFQSxNQUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUQsQ0FBTCxDQUFqQjtBQUNBLE1BQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxZQUFULENBQXNCLElBQXRCLEVBQTRCLEtBQTVCLENBQWI7O0FBRUEsTUFBSSxNQUFNLEtBQUssSUFBZixFQUFxQjtBQUNuQixJQUFBLFVBQVUsQ0FBQyxJQUFELEVBQU8sSUFBSSxDQUFDLFVBQVosQ0FBVjtBQUNELEdBRkQsTUFFTztBQUNMLElBQUEsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFWLENBQWlCLE1BQWpCLEVBQXlCLElBQXpCLENBQUQsQ0FBUjtBQUNEO0FBQ0Y7QUFFRDs7OztBQUdBLE9BQU0sU0FBVSxnQ0FBVixDQUNKLFFBREksRUFFSixTQUZJLEVBR0osSUFISSxFQUlKLEdBQUcsSUFBSCxFQUFTO0FBQUUsRUFBQSxXQUFGO0FBQWUsRUFBQSxRQUFmO0FBQXlCLEVBQUEsT0FBekI7QUFBa0MsRUFBQTtBQUFsQyxDQUFULENBSkksRUFJd0Y7QUFBQSxZQUU1RixNQUFNLENBQ0osa0NBQWtDLENBQUMsSUFBRCxDQUQ5QixFQUVKLDRFQUZJLENBRnNGO0FBTzVGLE1BQUksSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFELENBQWY7O0FBRUEsTUFBSSxJQUFJLEtBQUE7QUFBQTtBQUFSLElBQTRDO0FBQzFDLFVBQUk7QUFBRSxRQUFBO0FBQUYsVUFBa0IsSUFBdEI7QUFDQSxVQUFJLFVBQVUsR0FBVSxXQUFQLENBQ2YsSUFBSSxDQUFDLENBQUQsQ0FEVyxDQUFqQjs7QUFJQSxVQUNFLE9BQU8sVUFBUCxLQUFzQixVQUF0QixLQUNDLE9BQU8sVUFBUCxLQUFzQixRQUF0QixJQUFrQyxVQUFVLEtBQUssSUFEbEQsQ0FERixFQUdFO0FBQ0E7QUFDQSxRQUFBLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBVixDQUFnQixVQUFoQixDQUFELENBQVA7QUFDQTtBQUNEOztBQUVELFVBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFWLENBQW9CLFVBQXBCLEVBQWdDLElBQWhDLENBQWhCOztBQUVBLFVBQUksU0FBUyxLQUFLLElBQWxCLEVBQXdCO0FBQ3RCLFFBQUEsV0FBVyxDQUFDLFNBQUQsQ0FBWDtBQUNBO0FBQ0Q7O0FBRUQsVUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQVYsQ0FBaUIsVUFBakIsRUFBNkIsSUFBN0IsRUFBbUMsSUFBbkMsQ0FBYjs7QUFFQSxVQUFJLE1BQU0sS0FBSyxJQUFmLEVBQXFCO0FBQ25CLFFBQUEsUUFBUSxDQUFDLE1BQUQsQ0FBUjtBQUNBO0FBQ0Q7O0FBRUQsTUFBQSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQVYsQ0FBZ0IsVUFBaEIsQ0FBRCxDQUFQO0FBQ0QsS0E5QkQsTUE4Qk8sSUFBSSxJQUFJLEtBQUE7QUFBQTtBQUFSLElBQXdDO0FBQzdDLE1BQUEsUUFBUSxDQUNOLG1CQUFtQixDQUFDLElBQUQsRUFBb0MsUUFBcEMsRUFBOEMsSUFBOUMsRUFBb0QsU0FBcEQsRUFBK0QsT0FBL0QsQ0FEYixDQUFSO0FBR0QsS0FKTSxNQUlBO0FBQ0wsUUFBSTtBQUFFLE1BQUEsTUFBRjtBQUFVLE1BQUE7QUFBVixRQUFvQix3QkFBd0IsQ0FBQyxJQUFELENBQWhEO0FBRUEsUUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFELENBQUwsQ0FBakI7QUFDQSxRQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsZUFBVCxDQUF5QixJQUF6QixFQUErQixLQUEvQixDQUFqQjs7QUFFQSxRQUFJLFVBQVUsS0FBSyxJQUFuQixFQUF5QjtBQUN2QixNQUFBLFdBQVcsQ0FBQyxTQUFTLENBQUMsaUJBQVYsQ0FBNEIsVUFBNUIsRUFBd0MsSUFBeEMsQ0FBRCxDQUFYO0FBQ0E7QUFDRDs7QUFFRCxRQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsWUFBVCxDQUFzQixJQUF0QixFQUE0QixLQUE1QixDQUFiOztBQUVBLFFBQUksTUFBTSxLQUFLLElBQWYsRUFBcUI7QUFDbkIsTUFBQSxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQVYsQ0FBaUIsTUFBakIsRUFBeUIsSUFBekIsQ0FBRCxDQUFSO0FBQ0E7QUFDRDs7QUFFRCxJQUFBLFVBQVUsQ0FBQyxJQUFELENBQVY7QUFDRDtBQUNGOztBQUVELFNBQVMsbUJBQVQsQ0FDRSxJQURGLEVBRUUsUUFGRixFQUdFLElBSEYsRUFJRSxTQUpGLEVBS0UsSUFMRixFQUtjO0FBRVosTUFBSTtBQUFFLElBQUE7QUFBRixNQUFhLHdCQUF3QixDQUFDLElBQUQsQ0FBekM7QUFFQSxNQUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUQsQ0FBTCxDQUFqQjtBQUNBLE1BQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxtQkFBVCxDQUE2QixJQUE3QixDQUFiOztBQUVBLE1BQUksS0FBSyxJQUFJLE1BQU0sS0FBSyxJQUF4QixFQUE4QjtBQUM1QjtBQUNBO0FBQ0EsVUFBTSxJQUFJLEtBQUosQ0FDSiwwQkFBMEIsSUFBSSxnRUFDNUIsSUFBSSxDQUFDLE1BQUwsQ0FBYSxJQUFJLENBQUMsQ0FBRCxDQUFqQixDQUNGLEVBSEksQ0FBTjtBQUtEOztBQUVELFNBQU8sU0FBUyxDQUFDLE1BQVYsQ0FBaUIsTUFBakIsRUFBMEIsSUFBMUIsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gIENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgRXhwcmVzc2lvbnMsXG4gIE93bmVyLFxuICBSZXNvbHZlQ29tcG9uZW50T3AsXG4gIFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlSGVscGVyT3AsXG4gIFJlc29sdmVNb2RpZmllck9wLFxuICBSZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCwgZGVidWdUb1N0cmluZywgZXhwZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmZ1bmN0aW9uIGlzR2V0TGlrZVR1cGxlKG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvbik6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5UdXBsZUV4cHJlc3Npb24ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShvcGNvZGUpICYmIG9wY29kZS5sZW5ndGggPT09IDI7XG59XG5cbmZ1bmN0aW9uIG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKHR5cGVUb1ZlcmlmeTogU2V4cE9wY29kZXMpIHtcbiAgcmV0dXJuIChcbiAgICBvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb25cbiAgKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLkdldEZyZWUgfCBFeHByZXNzaW9ucy5HZXRUZW1wbGF0ZVN5bWJvbCA9PiB7XG4gICAgaWYgKCFpc0dldExpa2VUdXBsZShvcGNvZGUpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBsZXQgdHlwZSA9IG9wY29kZVswXTtcblxuICAgIHJldHVybiAoXG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlIHx8XG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCB8fFxuICAgICAgdHlwZSA9PT0gdHlwZVRvVmVyaWZ5XG4gICAgKTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudCA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudEhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlTW9kaWZpZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNNb2RpZmllckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRcbik7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbEhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5pbnRlcmZhY2UgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEgZXh0ZW5kcyBDb250YWluaW5nTWV0YWRhdGEge1xuICBvd25lcjogT3duZXI7XG4gIHVwdmFyczogc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhOiBDb250YWluaW5nTWV0YWRhdGEpOiBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICghbWV0YS51cHZhcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gZnJlZSB2YXJzIHdlcmUgZm91bmQnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghbWV0YS5vd25lcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBvd25lciB3YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZW1wbGF0ZSBpdCB3YXMgYmVpbmcgcmVzb2x2ZWQgZnJvbSdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhO1xufVxuXG4vKipcbiAqIDxGb28vPlxuICogPEZvbz48L0Zvbz5cbiAqIDxGb28gQGFyZz17e3RydWV9fSAvPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudChcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUNvbXBvbmVudE9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUNvbXBvbmVudChleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAoREVCVUcgJiYgZXhwclswXSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLmNvbXBvbmVudChkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50LCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiAoaGVscGVyKVxuICogKGhlbHBlciBhcmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlSGVscGVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICB0aGVuKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsIHJlc29sdmVyLCBtZXRhLCBjb25zdGFudHMsICdoZWxwZXInKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lciEpITtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogPGRpdiB7e21vZGlmaWVyfX0vPlxuICogPGRpdiB7e21vZGlmaWVyIGFyZ319Lz5cbiAqIDxGb28ge3ttb2RpZmllcn19Lz5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNb2RpZmllcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZU1vZGlmaWVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlTW9kaWZpZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgbW9kaWZpZXIgPSByZXNvbHZlci5sb29rdXBCdWlsdEluTW9kaWZpZXIobmFtZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IGl0IHdhcyBub3QgaW4gc2NvcGU6ICR7bmFtZX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyISwgbmFtZSkpO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgbW9kaWZpZXIgPSByZXNvbHZlci5sb29rdXBNb2RpZmllcihuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBtb2RpZmllciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7Y29tcG9uZW50LW9yLWhlbHBlciBhcmd9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZDb21wb25lbnQsIGlmSGVscGVyIH1dOiBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoZGVmaW5pdGlvbiBhcyBvYmplY3QsIHRydWUpO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgZWl0aGVyIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IGl0IGRpZCBub3QgaGF2ZSBhIGNvbXBvbmVudCBtYW5hZ2VyIG9yIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIHZhbHVlIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZkhlbHBlcihleHBlY3QoaGVscGVyLCAnQlVHOiBoZWxwZXIgbXVzdCBleGlzdCcpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKFxuICAgICAgICBleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gICAgICAgIHJlc29sdmVyLFxuICAgICAgICBtZXRhLFxuICAgICAgICBjb25zdGFudHMsXG4gICAgICAgICdjb21wb25lbnQgb3IgaGVscGVyJ1xuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogPEZvbyBAYXJnPXt7aGVscGVyfX0+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkhlbHBlciwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcbiAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICBpZiAoaGVscGVyID09PSBudWxsKSB7XG4gICAgaWZGYWxsYmFjayhuYW1lLCBtZXRhLm1vZHVsZU5hbWUpO1xuICB9IGVsc2Uge1xuICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e21heWJlSGVscGVyT3JDb21wb25lbnR9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIsIGlmVmFsdWUsIGlmRmFsbGJhY2sgfV06IFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYW4gb3B0aW9uYWwgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICAgKSB7XG4gICAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGFuIG9iamVjdCwgc28gaXQgY2FuJ3QgYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLlxuICAgICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KGRlZmluaXRpb24sIHRydWUpO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uLCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGhlbHBlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAndmFsdWUnKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmRmFsbGJhY2sobmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgZXhwcjogRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgY29uc3RhbnRzOiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgdHlwZTogc3RyaW5nXG4pOiBudW1iZXIge1xuICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5IZWxwZXIobmFtZSk7XG5cbiAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgIC8vIEtleXdvcmQgaGVscGVyIGRpZCBub3QgZXhpc3QsIHdoaWNoIG1lYW5zIHRoYXQgd2UncmUgYXR0ZW1wdGluZyB0byB1c2UgYVxuICAgIC8vIHZhbHVlIG9mIHNvbWUga2luZCB0aGF0IGlzIG5vdCBpbiBzY29wZVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhICR7dHlwZX0gaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= |
import { $v0 } from '@glimmer/vm'; | ||
import { deprecate } from '@glimmer/global-context'; | ||
import { expr } from '../opcode-builder/helpers/expr'; | ||
@@ -7,2 +8,3 @@ import { isGetFreeHelper } from '../opcode-builder/helpers/resolution'; | ||
import { Compilers } from './compilers'; | ||
import { DEBUG } from '@glimmer/env'; | ||
export const EXPRESSIONS = new Compilers(); | ||
@@ -72,3 +74,10 @@ EXPRESSIONS.add(29 | ||
/* ResolveLocal */ | ||
, freeVar, name => { | ||
, freeVar, (name, moduleName) => { | ||
if (DEBUG) { | ||
let propertyPath = path ? [name, ...path].join('.') : name; | ||
deprecate(`The \`${propertyPath}\` property path was used in a template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${propertyPath}}}`, false, { | ||
id: 'this-property-fallback' | ||
}); | ||
} | ||
op(21 | ||
@@ -105,3 +114,6 @@ /* GetVariable */ | ||
}, | ||
ifFallback: name => { | ||
ifFallback: (name, moduleName) => { | ||
deprecate(`The \`${name}\` property was used in the template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, { | ||
id: 'this-property-fallback' | ||
}); | ||
op(21 | ||
@@ -197,2 +209,2 @@ /* GetVariable */ | ||
}); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLFNBQVMsR0FBVCxRQUFvQixhQUFwQjtBQUNBLFNBQVMsSUFBVCxRQUFxQixnQ0FBckI7QUFDQSxTQUFTLGVBQVQsUUFBZ0Msc0NBQWhDO0FBQ0EsU0FBUyxVQUFULFFBQTJCLGtDQUEzQjtBQUNBLFNBQVMsSUFBVCxFQUFlLFdBQWYsRUFBNEIsS0FBNUIsRUFBbUMsc0JBQW5DLFFBQWlFLDhCQUFqRTtBQUNBLFNBQVMsU0FBVCxRQUE0QyxhQUE1QztBQUVBLE9BQU8sTUFBTSxXQUFXLEdBQUcsSUFBSSxTQUFKLEVBQXBCO0FBRVAsV0FBVyxDQUFDLEdBQVosQ0FBZTtBQUFBO0FBQWYsRUFBb0MsQ0FBQyxFQUFELEVBQUssR0FBRyxLQUFILENBQUwsS0FBa0I7QUFDcEQsT0FBSyxJQUFJLElBQVQsSUFBaUIsS0FBakIsRUFBd0I7QUFDdEIsSUFBQSxJQUFJLENBQUMsRUFBRCxFQUFLLElBQUwsQ0FBSjtBQUNEOztBQUVELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFZLEtBQUssQ0FBQyxNQUFsQixDQUFGO0FBQ0QsQ0FORDtBQVFBLFdBQVcsQ0FBQyxHQUFaLENBQWU7QUFBQTtBQUFmLEVBQWtDLENBQUMsRUFBRCxFQUFLLEdBQUcsVUFBSCxFQUFlLFVBQWYsRUFBMkIsS0FBM0IsQ0FBTCxLQUEwQztBQUMxRSxNQUFJLGVBQWUsQ0FBQyxVQUFELENBQW5CLEVBQWlDO0FBQy9CLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUEwQyxVQUExQyxFQUF1RCxNQUFELElBQW1CO0FBQ3pFLE1BQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxNQUFMLEVBQWEsVUFBYixFQUF5QixLQUF6QixDQUFKO0FBQ0QsS0FGQyxDQUFGO0FBR0QsR0FKRCxNQUlPO0FBQ0wsSUFBQSxJQUFJ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QUo7QUFDQSxFQUFBLElBQUksQ0FBQyxFQUFELEVBQUssTUFBTCxDQUFKO0FBQ0EsRUFBQSxJQUFJLENBQUMsRUFBRCxFQUFLLFNBQUwsQ0FBSjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0QsQ0FORDtBQVFBLFdBQVcsQ0FBQyxHQUFaLENBQWU7QUFBQTtBQUFmLEVBQWlDLENBQUMsRUFBRCxFQUFLLEdBQUcsS0FBSCxDQUFMLEtBQWtCO0FBQ2pELEVBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxLQUFMLENBQUo7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNELENBSEQ7QUFLQSxXQUFXLENBQUMsR0FBWixDQUFlO0FBQUE7QUFBZixFQUEyQyxDQUFDLEVBQUQsRUFBSyxHQUFHLFVBQUgsQ0FBTCxLQUF1QjtBQUNoRSxFQUFBLElBQUksQ0FBQyxFQUFELEVBQUssVUFBTCxDQUFKO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDRCxDQUhEO0FBS0EsV0FBVyxDQUFDLEdBQVosQ0FBZTtBQUFBO0FBQWYsRUFBaUMsQ0FBQyxFQUFELEVBQUssR0FBRyxVQUFILENBQUwsS0FBdUI7QUFDdEQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLFVBQVUsQ0FBQyxFQUFELEVBQUssVUFBTCxFQUFpQixJQUFqQixFQUF1QixLQUF2QixDQUFWO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFXLEdBQVgsQ0FBRjtBQUNELENBTkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFeHByZXNzaW9uU2V4cE9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJHYwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgZnJlZVZhciwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGZyZWVWYXIsIChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICB9KTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKCkgPT4ge1xuICAvLyBUT0RPOiBUaGUgbG9naWMgZm9yIHRoaXMgb3Bjb2RlIGN1cnJlbnRseSBleGlzdHMgaW4gU1RBVEVNRU5UUy5BcHBlbmQsIHNpbmNlXG4gIC8vIHdlIHdhbnQgZGlmZmVyZW50IHdyYXBwaW5nIGxvZ2ljIGRlcGVuZGluZyBvbiBpZiB3ZSBhcmUgaW52b2tpbmcgYSBjb21wb25lbnQsXG4gIC8vIGhlbHBlciwgb3Ige3t0aGlzfX0gZmFsbGJhY2suIEV2ZW50dWFsbHkgd2UgZml4IHRoZSBvcGNvZGVzIHNvIHRoYXQgd2UgY2FuXG4gIC8vIHRyYXZlcnNlIHRoZSBzdWJleHByZXNzaW9uIHRyZWUgbGlrZSBub3JtYWwgaW4gdGhpcyBsb2NhdGlvbi5cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmltcGxlbWVudGVkIG9wY29kZScpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBhcmc9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgfSxcblxuICAgICAgaWZGYWxsYmFjazogKG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIHdpdGhQYXRoKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCBwYXRoPzogc3RyaW5nW10pIHtcbiAgaWYgKHBhdGggPT09IHVuZGVmaW5lZCB8fCBwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBwYXRoW2ldKTtcbiAgfVxufVxuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuVW5kZWZpbmVkLCAob3ApID0+IFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCkpO1xuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2tQYXJhbXMsIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuU3ByZWFkQmxvY2spO1xuICBvcChPcC5Db21waWxlQmxvY2spO1xuICBvcChPcC5IYXNCbG9ja1BhcmFtcyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLklmSW5saW5lLCAob3AsIFssIGNvbmRpdGlvbiwgdHJ1dGh5LCBmYWxzeV0pID0+IHtcbiAgLy8gUHVzaCBpbiByZXZlcnNlIG9yZGVyXG4gIGV4cHIob3AsIGZhbHN5KTtcbiAgZXhwcihvcCwgdHJ1dGh5KTtcbiAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgb3AoT3AuSWZJbmxpbmUpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Ob3QsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuTm90KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RHluYW1pY1ZhciwgKG9wLCBbLCBleHByZXNzaW9uXSkgPT4ge1xuICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgb3AoT3AuR2V0RHluYW1pY1Zhcik7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkxvZywgKG9wLCBbLCBwb3NpdGlvbmFsXSkgPT4ge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbnVsbCwgZmFsc2UpO1xuICBvcChPcC5Mb2cpO1xuICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICBvcChPcC5GZXRjaCwgJHYwKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLFNBQVMsR0FBVCxRQUFvQixhQUFwQjtBQUNBLFNBQVMsU0FBVCxRQUEwQix5QkFBMUI7QUFDQSxTQUFTLElBQVQsUUFBcUIsZ0NBQXJCO0FBQ0EsU0FBUyxlQUFULFFBQWdDLHNDQUFoQztBQUNBLFNBQVMsVUFBVCxRQUEyQixrQ0FBM0I7QUFDQSxTQUFTLElBQVQsRUFBZSxXQUFmLEVBQTRCLEtBQTVCLEVBQW1DLHNCQUFuQyxRQUFpRSw4QkFBakU7QUFDQSxTQUFTLFNBQVQsUUFBNEMsYUFBNUM7QUFDQSxTQUFTLEtBQVQsUUFBc0IsY0FBdEI7QUFFQSxPQUFPLE1BQU0sV0FBVyxHQUFHLElBQUksU0FBSixFQUFwQjtBQUVQLFdBQVcsQ0FBQyxHQUFaLENBQWU7QUFBQTtBQUFmLEVBQW9DLENBQUMsRUFBRCxFQUFLLEdBQUcsS0FBSCxDQUFMLEtBQWtCO0FBQ3BELE9BQUssSUFBSSxJQUFULElBQWlCLEtBQWpCLEVBQXdCO0FBQ3RCLElBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxJQUFMLENBQUo7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQUMsTUFBbEIsQ0FBRjtBQUNELENBTkQ7QUFRQSxXQUFXLENBQUMsR0FBWixDQUFlO0FBQUE7QUFBZixFQUFrQyxDQUFDLEVBQUQsRUFBSyxHQUFHLFVBQUgsRUFBZSxVQUFmLEVBQTJCLEtBQTNCLENBQUwsS0FBMEM7QUFDMUUsTUFBSSxlQUFlLENBQUMsVUFBRCxDQUFuQixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBMEMsVUFBMUMsRUFBdUQsTUFBRCxJQUFtQjtBQUN6RSxNQUFBLElBQUksQ0FBQyxFQUFELEVBQUssTUFBTCxFQUFhLFVBQWIsRUFBeUIs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QUFDLEdBQVosQ0FBZTtBQUFBO0FBQWYsRUFBaUMsQ0FBQyxFQUFELEVBQUssR0FBRyxVQUFILENBQUwsS0FBdUI7QUFDdEQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLFVBQVUsQ0FBQyxFQUFELEVBQUssVUFBTCxFQUFpQixJQUFqQixFQUF1QixLQUF2QixDQUFWO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFXLEdBQVgsQ0FBRjtBQUNELENBTkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFeHByZXNzaW9uU2V4cE9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJHYwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgZnJlZVZhciwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGZyZWVWYXIsIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChERUJVRykge1xuICAgICAgbGV0IHByb3BlcnR5UGF0aCA9IHBhdGggPyBbbmFtZSwgLi4ucGF0aF0uam9pbignLicpIDogbmFtZTtcblxuICAgICAgZGVwcmVjYXRlKFxuICAgICAgICBgVGhlIFxcYCR7cHJvcGVydHlQYXRofVxcYCBwcm9wZXJ0eSBwYXRoIHdhcyB1c2VkIGluIGEgdGVtcGxhdGUgZm9yIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIGNvbXBvbmVudCB3aXRob3V0IHVzaW5nIFxcYHRoaXNcXGAuIFRoaXMgZmFsbGJhY2sgYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYWxsIHByb3BlcnRpZXMgbXVzdCBiZSBsb29rZWQgdXAgb24gXFxgdGhpc1xcYCB3aGVuIHVzZWQgaW4gdGhlIHRlbXBsYXRlOiB7e3RoaXMuJHtwcm9wZXJ0eVBhdGh9fX1gLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgfSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssICgpID0+IHtcbiAgLy8gVE9ETzogVGhlIGxvZ2ljIGZvciB0aGlzIG9wY29kZSBjdXJyZW50bHkgZXhpc3RzIGluIFNUQVRFTUVOVFMuQXBwZW5kLCBzaW5jZVxuICAvLyB3ZSB3YW50IGRpZmZlcmVudCB3cmFwcGluZyBsb2dpYyBkZXBlbmRpbmcgb24gaWYgd2UgYXJlIGludm9raW5nIGEgY29tcG9uZW50LFxuICAvLyBoZWxwZXIsIG9yIHt7dGhpc319IGZhbGxiYWNrLiBFdmVudHVhbGx5IHdlIGZpeCB0aGUgb3Bjb2RlcyBzbyB0aGF0IHdlIGNhblxuICAvLyB0cmF2ZXJzZSB0aGUgc3ViZXhwcmVzc2lvbiB0cmVlIGxpa2Ugbm9ybWFsIGluIHRoaXMgbG9jYXRpb24uXG4gIHRocm93IG5ldyBFcnJvcigndW5pbXBsZW1lbnRlZCBvcGNvZGUnKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrLCAob3AsIGV4cHIpID0+IHtcbiAgLy8gPEZvbyBAYXJnPXt7YmF6fX0+XG5cbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGV4cHJbMV0sIChfbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXIsIGV4cHIsIHtcbiAgICAgIGlmSGVscGVyOiAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2s6IChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIHByb3BlcnR5IHdhcyB1c2VkIGluIHRoZSB0ZW1wbGF0ZSBmb3IgdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgY29tcG9uZW50IHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZnVuY3Rpb24gd2l0aFBhdGgob3A6IFB1c2hFeHByZXNzaW9uT3AsIHBhdGg/OiBzdHJpbmdbXSkge1xuICBpZiAocGF0aCA9PT0gdW5kZWZpbmVkIHx8IHBhdGgubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIHBhdGhbaV0pO1xuICB9XG59XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5VbmRlZmluZWQsIChvcCkgPT4gUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgdW5kZWZpbmVkKSk7XG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2ssIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuSGFzQmxvY2spO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5IYXNCbG9ja1BhcmFtcywgKG9wLCBbLCBibG9ja10pID0+IHtcbiAgZXhwcihvcCwgYmxvY2spO1xuICBvcChPcC5TcHJlYWRCbG9jayk7XG4gIG9wKE9wLkNvbXBpbGVCbG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrUGFyYW1zKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSWZJbmxpbmUsIChvcCwgWywgY29uZGl0aW9uLCB0cnV0aHksIGZhbHN5XSkgPT4ge1xuICAvLyBQdXNoIGluIHJldmVyc2Ugb3JkZXJcbiAgZXhwcihvcCwgZmFsc3kpO1xuICBleHByKG9wLCB0cnV0aHkpO1xuICBleHByKG9wLCBjb25kaXRpb24pO1xuICBvcChPcC5JZklubGluZSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLk5vdCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Ob3QpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXREeW5hbWljVmFyLCAob3AsIFssIGV4cHJlc3Npb25dKSA9PiB7XG4gIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICBvcChPcC5HZXREeW5hbWljVmFyKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuTG9nLCAob3AsIFssIHBvc2l0aW9uYWxdKSA9PiB7XG4gIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBudWxsLCBmYWxzZSk7XG4gIG9wKE9wLkxvZyk7XG4gIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIG9wKE9wLkZldGNoLCAkdjApO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9 |
@@ -0,1 +1,2 @@ | ||
import { deprecate } from '@glimmer/global-context'; | ||
import { $fp, $sp } from '@glimmer/vm'; | ||
@@ -231,3 +232,6 @@ import { InvokeStaticBlock, InvokeStaticBlockWithStack, YieldBlock } from '../opcode-builder/helpers/blocks'; | ||
/* ResolveLocal */ | ||
, value[1], name => { | ||
, value[1], (name, moduleName) => { | ||
deprecate(`The \`${name}\` property was used in a template for the \`${moduleName}\` component without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, { | ||
id: 'this-property-fallback' | ||
}); | ||
op(21 | ||
@@ -516,2 +520,2 @@ /* GetVariable */ | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsU0FBUyxHQUFULEVBQWMsR0FBZCxRQUF5QixhQUF6QjtBQUNBLFNBQ0UsaUJBREYsRUFFRSwwQkFGRixFQUdFLFVBSEYsUUFJTyxrQ0FKUDtBQUtBLFNBQ0UsZUFERixFQUVFLHNCQUZGLEVBR0Usd0JBSEYsUUFJTyxzQ0FKUDtBQUtBLFNBQVMsV0FBVCxFQUFzQixVQUF0QixFQUFrQyxZQUFsQyxRQUFzRCx1Q0FBdEQ7QUFDQSxTQUFTLElBQVQsUUFBcUIsZ0NBQXJCO0FBQ0EsU0FBUyxpQkFBVCxFQUE0QixVQUE1QixRQUE4QyxrQ0FBOUM7QUFDQSxTQUNFLElBREYsRUFFRSxXQUZGLEVBR0UsWUFIRixFQUlFLHNCQUpGLFFBS08sOEJBTFA7QUFNQSxTQUFTLGtCQUFULEVBQTZCLFlBQTdCLEVBQTJDLGFBQTNDLFFBQWdFLDRCQUFoRTtBQUNBLFNBQVMsU0FBVCxRQUEyQyxhQUEzQztBQUNBLFNBQ0Usa0JBREYsRUFFRSwwQkFGRixFQUdFLGlCQUhGLEVBSUUsa0NBSkYsUUFLTyxzQ0FMUDtBQU1BLFNBQVMsV0FBVCxRQUE0QixVQUE1QjtBQUVBLE9BQU8sTUFBTSxVQUFVLEdBQUcsSUFBSSxTQUFKLEVBQW5CO0FBRVAsTUFBTSxrQkFBa0IsR0FFcEIsQ0FBQyxPQUFELEVBQVUsSUFBVixFQUFnQixPQUFoQixFQUF5QixNQUF6QixFQUFpQyxNQUFqQyxFQUF5QyxPQUF6QyxFQUFrRCxNQUFsRCxDQUZKO0FBR0EsTUFBTSxpQkFBaUIsR0FFbkIsQ0FBQyxLQUFELEVBQVEsTUFBUixFQUFnQixHQUFoQixFQUFxQixHQUFyQixDQUZKO0FBSUEsT0FBTSxTQUFVLGNBQVYsQ0FBeUIsT0FBekIsRUFBMkQ7QUFDL0QsU0FBTyxPQUFPLE9BQVAsS0FBbUIsUUFBbkIsR0FBOEIs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QUEsc0JBQXNCLENBQUMsRUFBRCxFQUFLLElBQUwsRUFBVyxJQUFYLEVBQWlCLFVBQWpCLEVBQTZCLEtBQTdCLEVBQW9DLE1BQXBDLEVBQTRDLEtBQTVDLEVBQW1ELEtBQW5ELENBQXRCO0FBQ0Q7QUFDRixDQVJEOztBQVVBLFNBQVMsVUFBVCxDQUFvQixJQUFwQixFQUFxRDtBQUNuRCxNQUFJLElBQUksS0FBSyxJQUFiLEVBQW1CLE9BQU8sSUFBUDtBQUNuQixNQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBRCxDQUFKLENBQVEsR0FBUixDQUFhLEdBQUQsSUFBUyxJQUFJLEdBQUcsRUFBNUIsQ0FBWjtBQUNBLFNBQU8sQ0FBQyxLQUFELEVBQWlDLElBQUksQ0FBQyxDQUFELENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlBhcnRpYWwsIChvcCwgWywgbmFtZSwgZXZhbEluZm9dKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBuYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkludm9rZVBhcnRpYWwsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbyk7XG4gICAgICBvcChPcC5Qb3BTY29wZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2soX25hbWU6IHN0cmluZykge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIHZhbHVlWzFdLCAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodmFsdWVbMF0gPT09IFNleHBPcGNvZGVzLkNhbGwpIHtcbiAgICBsZXQgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdID0gdmFsdWU7XG5cbiAgICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLCBleHByZXNzaW9uLCB7XG4gICAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpIHtcbiAgICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFN3aXRjaENhc2VzKFxuICAgICAgICBvcCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgICAgICAgIG9wKE9wLkR5bmFtaWNDb250ZW50VHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgICh3aGVuKSA9PiB7XG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5Db21wb25lbnQsICgpID0+IHtcbiAgICAgICAgICAgIG9wKE9wLlJlc29sdmVDdXJyaWVkQ29tcG9uZW50KTtcbiAgICAgICAgICAgIG9wKE9wLlB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgICAgICAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50KG9wLCB7XG4gICAgICAgICAgICAgIGNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgICAgICAgZWxlbWVudEJsb2NrOiBudWxsLFxuICAgICAgICAgICAgICBwb3NpdGlvbmFsLFxuICAgICAgICAgICAgICBuYW1lZCxcbiAgICAgICAgICAgICAgYXROYW1lczogZmFsc2UsXG4gICAgICAgICAgICAgIGJsb2NrczogbmFtZWRCbG9ja3MobnVsbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuSGVscGVyLCAoKSA9PiB7XG4gICAgICAgICAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQXBwZW5kLCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ3RydXN0aW5nLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQmxvY2ssIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW5FbGVtZW50LCAob3AsIFssIGJsb2NrLCBndWlkLCBkZXN0aW5hdGlvbiwgaW5zZXJ0QmVmb3JlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBndWlkKTtcblxuICAgICAgaWYgKGluc2VydEJlZm9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHByKG9wLCBpbnNlcnRCZWZvcmUpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCBkZXN0aW5hdGlvbik7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG5cbiAgICAgIHJldHVybiA0O1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5QdXNoUmVtb3RlRWxlbWVudCk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgICAgb3AoT3AuUG9wUmVtb3RlRWxlbWVudCk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLklmLCAob3AsIFssIGNvbmRpdGlvbiwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAxO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0sXG5cbiAgICBpbnZlcnNlXG4gICAgICA/ICgpID0+IHtcbiAgICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkVhY2gsIChvcCwgWywgdmFsdWUsIGtleSwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBleHByKG9wLCBrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkVudGVyTGlzdCwgbGFiZWxPcGVyYW5kKCdCT0RZJyksIGxhYmVsT3BlcmFuZCgnRUxTRScpKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgICAgb3AoTWFjaGluZU9wLlJldHVyblRvLCBsYWJlbE9wZXJhbmQoJ0lURVInKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnSVRFUicpO1xuICAgICAgb3AoT3AuSXRlcmF0ZSwgbGFiZWxPcGVyYW5kKCdCUkVBSycpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCT0RZJyk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDIpO1xuICAgICAgb3AoT3AuUG9wLCAyKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQlJFQUsnKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICBvcChPcC5FeGl0TGlzdCk7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0VMU0UnKTtcblxuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aCwgKG9wLCBbLCB2YWx1ZSwgYmxvY2ssIGludmVyc2VdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDEpO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkxldCwgKG9wLCBbLCBwb3NpdGlvbmFsLCBibG9ja10pID0+IHtcbiAgbGV0IGNvdW50ID0gQ29tcGlsZVBvc2l0aW9uYWwob3AsIHBvc2l0aW9uYWwpO1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIGNvdW50KTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoRHluYW1pY1ZhcnMsIChvcCwgWywgbmFtZWQsIGJsb2NrXSkgPT4ge1xuICBpZiAobmFtZWQpIHtcbiAgICBsZXQgW25hbWVzLCBleHByZXNzaW9uc10gPSBuYW1lZDtcblxuICAgIENvbXBpbGVQb3NpdGlvbmFsKG9wLCBleHByZXNzaW9ucyk7XG4gICAgRHluYW1pY1Njb3BlKG9wLCBuYW1lcywgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW52b2tlQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGhhc2hUb0FyZ3MoaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsKTogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsIHtcbiAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuICBsZXQgbmFtZXMgPSBoYXNoWzBdLm1hcCgoa2V5KSA9PiBgQCR7a2V5fWApO1xuICByZXR1cm4gW25hbWVzIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSwgaGFzaFsxXV07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxTQUFULFFBQTBCLHlCQUExQjtBQWNBLFNBQVMsR0FBVCxFQUFjLEdBQWQsUUFBeUIsYUFBekI7QUFDQSxTQUNFLGlCQURGLEVBRUUsMEJBRkYsRUFHRSxVQUhGLFFBSU8sa0NBSlA7QUFLQSxTQUNFLGVBREYsRUFFRSxzQkFGRixFQUdFLHdCQUhGLFFBSU8sc0NBSlA7QUFLQSxTQUFTLFdBQVQsRUFBc0IsVUFBdEIsRUFBa0MsWUFBbEMsUUFBc0QsdUNBQXREO0FBQ0EsU0FBUyxJQUFULFFBQXFCLGdDQUFyQjtBQUNBLFNBQVMsaUJBQVQsRUFBNEIsVUFBNUIsUUFBOEMsa0NBQTlDO0FBQ0EsU0FDRSxJQURGLEVBRUUsV0FGRixFQUdFLFlBSEYsRUFJRSxzQkFKRixRQUtPLDhCQUxQO0FBTUEsU0FBUyxrQkFBVCxFQUE2QixZQUE3QixFQUEyQyxhQUEzQyxRQUFnRSw0QkFBaEU7QUFDQSxTQUFTLFNBQVQsUUFBMkMsYUFBM0M7QUFDQSxTQUNFLGtCQURGLEVBRUUsMEJBRkYsRUFHRSxpQkFIRixFQUlFLGtDQUpGLFFBS08sc0NBTFA7QUFNQSxTQUFTLFdBQVQsUUFBNEIsVUFBNUI7QUFFQSxPQUFPLE1BQU0sVUFBVSxHQUFHLElBQUksU0FBSixFQUFuQjtBQUVQLE1BQU0sa0JBQWtCLEdBRXBCLENBQUMsT0FBRCxFQUFVLElBQVYsRUFBZ0IsT0FBaEIsRUFBeUIsTUFBekIsRUFBaUMsTUFBakMsRUFBeUMsT0FBekMsRUFBa0QsTUFBbEQsQ0FGSjtBQUdBLE1BQU0saUJBQWlCLEdBRW5CLENBQUMsS0FBRCxFQUFRLE1BQVIsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsQ0FGSjtBQUlBLE9BQU0sU0FBVSxjQUFWLENBQXlCLE9BQXpCLEVBQTJEO0FBQy9ELFNBQU8s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LFNBQUQsSUFBb0M7QUFDdkYsTUFBQSxlQUFlLENBQUMsRUFBRCxFQUFLLFNBQUwsRUFBZ0IsSUFBaEIsRUFBc0IsVUFBdEIsRUFBa0MsVUFBVSxDQUFDLEtBQUQsQ0FBNUMsRUFBcUQsTUFBckQsQ0FBZjtBQUNELEtBRkMsQ0FBRjtBQUdELEdBSkQsTUFJTztBQUNMLElBQUEsc0JBQXNCLENBQUMsRUFBRCxFQUFLLElBQUwsRUFBVyxJQUFYLEVBQWlCLFVBQWpCLEVBQTZCLEtBQTdCLEVBQW9DLE1BQXBDLEVBQTRDLEtBQTVDLEVBQW1ELEtBQW5ELENBQXRCO0FBQ0Q7QUFDRixDQVJEOztBQVVBLFNBQVMsVUFBVCxDQUFvQixJQUFwQixFQUFxRDtBQUNuRCxNQUFJLElBQUksS0FBSyxJQUFiLEVBQW1CLE9BQU8sSUFBUDtBQUNuQixNQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBRCxDQUFKLENBQVEsR0FBUixDQUFhLEdBQUQsSUFBUyxJQUFJLEdBQUcsRUFBNUIsQ0FBWjtBQUNBLFNBQU8sQ0FBQyxLQUFELEVBQWlDLElBQUksQ0FBQyxDQUFELENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlcHJlY2F0ZSB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlBhcnRpYWwsIChvcCwgWywgbmFtZSwgZXZhbEluZm9dKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBuYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkludm9rZVBhcnRpYWwsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbyk7XG4gICAgICBvcChPcC5Qb3BTY29wZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2soX25hbWU6IHN0cmluZykge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIHZhbHVlWzFdLCAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgcHJvcGVydHkgd2FzIHVzZWQgaW4gYSB0ZW1wbGF0ZSBmb3IgdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgY29tcG9uZW50IHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgICBvcChPcC5HZXRQcm9wZXJ0eSwgbmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHZhbHVlWzBdID09PSBTZXhwT3Bjb2Rlcy5DYWxsKSB7XG4gICAgbGV0IFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSA9IHZhbHVlO1xuXG4gICAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHJlc3Npb24pKSB7XG4gICAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnRPckhlbHBlciwgZXhwcmVzc2lvbiwge1xuICAgICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBudWxsKTtcbiAgICAgICAgfSxcbiAgICAgICAgaWZIZWxwZXIoaGFuZGxlOiBudW1iZXIpIHtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBTd2l0Y2hDYXNlcyhcbiAgICAgICAgb3AsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICAgICAgICBvcChPcC5EeW5hbWljQ29udGVudFR5cGUpO1xuICAgICAgICB9LFxuICAgICAgICAod2hlbikgPT4ge1xuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuQ29tcG9uZW50LCAoKSA9PiB7XG4gICAgICAgICAgICBvcChPcC5SZXNvbHZlQ3VycmllZENvbXBvbmVudCk7XG4gICAgICAgICAgICBvcChPcC5QdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKTtcbiAgICAgICAgICAgIEludm9rZU5vblN0YXRpY0NvbXBvbmVudChvcCwge1xuICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM6IHRydWUsXG4gICAgICAgICAgICAgIGVsZW1lbnRCbG9jazogbnVsbCxcbiAgICAgICAgICAgICAgcG9zaXRpb25hbCxcbiAgICAgICAgICAgICAgbmFtZWQsXG4gICAgICAgICAgICAgIGF0TmFtZXM6IGZhbHNlLFxuICAgICAgICAgICAgICBibG9ja3M6IG5hbWVkQmxvY2tzKG51bGwpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB3aGVuKENvbnRlbnRUeXBlLkhlbHBlciwgKCkgPT4ge1xuICAgICAgICAgICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCAoKSA9PiB7XG4gICAgICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtYXBwZW5kJykpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0FwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIG9wKE9wLlRleHQsIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWx1ZSkpO1xuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCd0cnVzdGluZy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkJsb2NrLCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkluRWxlbWVudCwgKG9wLCBbLCBibG9jaywgZ3VpZCwgZGVzdGluYXRpb24sIGluc2VydEJlZm9yZV0pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgZ3VpZCk7XG5cbiAgICAgIGlmIChpbnNlcnRCZWZvcmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwcihvcCwgaW5zZXJ0QmVmb3JlKTtcbiAgICAgIH1cblxuICAgICAgZXhwcihvcCwgZGVzdGluYXRpb24pO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuXG4gICAgICByZXR1cm4gNDtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuUHVzaFJlbW90ZUVsZW1lbnQpO1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICAgIG9wKE9wLlBvcFJlbW90ZUVsZW1lbnQpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JZiwgKG9wLCBbLCBjb25kaXRpb24sIGJsb2NrLCBpbnZlcnNlXSkgPT5cbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gICAgICBvcChPcC5Ub0Jvb2xlYW4pO1xuXG4gICAgICByZXR1cm4gMTtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9LFxuXG4gICAgaW52ZXJzZVxuICAgICAgPyAoKSA9PiB7XG4gICAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZFxuICApXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5FYWNoLCAob3AsIFssIHZhbHVlLCBrZXksIGJsb2NrLCBpbnZlcnNlXSkgPT5cbiAgUmVwbGF5YWJsZShcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZXhwcihvcCwga2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIG51bGwpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCB2YWx1ZSk7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5FbnRlckxpc3QsIGxhYmVsT3BlcmFuZCgnQk9EWScpLCBsYWJlbE9wZXJhbmQoJ0VMU0UnKSk7XG4gICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJGZwLCAxKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5SZXR1cm5UbywgbGFiZWxPcGVyYW5kKCdJVEVSJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0lURVInKTtcbiAgICAgIG9wKE9wLkl0ZXJhdGUsIGxhYmVsT3BlcmFuZCgnQlJFQUsnKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQk9EWScpO1xuICAgICAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCAyKTtcbiAgICAgIG9wKE9wLlBvcCwgMik7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0JSRUFLJyk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgb3AoT3AuRXhpdExpc3QpO1xuICAgICAgb3AoTWFjaGluZU9wLkp1bXAsIGxhYmVsT3BlcmFuZCgnRklOQUxMWScpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdFTFNFJyk7XG5cbiAgICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLldpdGgsIChvcCwgWywgdmFsdWUsIGJsb2NrLCBpbnZlcnNlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG4gICAgICBvcChPcC5Ub0Jvb2xlYW4pO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCAxKTtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5MZXQsIChvcCwgWywgcG9zaXRpb25hbCwgYmxvY2tdKSA9PiB7XG4gIGxldCBjb3VudCA9IENvbXBpbGVQb3NpdGlvbmFsKG9wLCBwb3NpdGlvbmFsKTtcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCBjb3VudCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aER5bmFtaWNWYXJzLCAob3AsIFssIG5hbWVkLCBibG9ja10pID0+IHtcbiAgaWYgKG5hbWVkKSB7XG4gICAgbGV0IFtuYW1lcywgZXhwcmVzc2lvbnNdID0gbmFtZWQ7XG5cbiAgICBDb21waWxlUG9zaXRpb25hbChvcCwgZXhwcmVzc2lvbnMpO1xuICAgIER5bmFtaWNTY29wZShvcCwgbmFtZXMsICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkludm9rZUNvbXBvbmVudCwgKG9wLCBbLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIG51bGwsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3MsIGZhbHNlLCBmYWxzZSk7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBoYXNoVG9BcmdzKGhhc2g6IFdpcmVGb3JtYXQuQ29yZS5IYXNoIHwgbnVsbCk6IFdpcmVGb3JtYXQuQ29yZS5IYXNoIHwgbnVsbCB7XG4gIGlmIChoYXNoID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgbGV0IG5hbWVzID0gaGFzaFswXS5tYXAoKGtleSkgPT4gYEAke2tleX1gKTtcbiAgcmV0dXJuIFtuYW1lcyBhcyBbc3RyaW5nLCAuLi5zdHJpbmdbXV0sIGhhc2hbMV1dO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== |
@@ -111,3 +111,3 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } | ||
_then(name); | ||
_then(name, meta.moduleName); | ||
} | ||
@@ -285,2 +285,2 @@ | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FBQSxzQkFBQSxRQUFBLGtCQUFBO0FBeUJBLFNBQUEsV0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLEtBQUEsRUFBQSxJQUFBLEVBQUEsa0JBQUEsRUFBQSxZQUFBLEVBQUEsTUFBQSxRQUFBLGVBQUE7QUFDQSxTQUFBLGdCQUFBLEVBQUEsd0JBQUEsRUFBQSxhQUFBLEVBQUEsZUFBQSxFQUFBLGdDQUFBLEVBQUEscUJBQUEsUUFBQSxzQkFBQTtBQVFBLFNBQUEsZUFBQSxRQUFBLHdCQUFBO0FBQ0EsU0FBQSxLQUFBLFFBQUEsY0FBQTtBQUVBLFdBQU0sTUFBTjtBQUFBLG9CQUFBO0FBQ0UsU0FBQSxNQUFBLEdBQXVCLElBQXZCLEVBQUE7QUFDQSxTQUFBLE9BQUEsR0FBQSxFQUFBO0FBcUJEOztBQXZCRDs7QUFBQSxTQUlFLEtBSkYsR0FJRSxlQUFLLElBQUwsRUFBSyxLQUFMLEVBQWlDO0FBQy9CLFNBQUEsTUFBQSxDQUFBLElBQUEsSUFBQSxLQUFBO0FBQ0QsR0FOSDs7QUFBQSxTQVFFLE1BUkYsR0FRRSxnQkFBTSxFQUFOLEVBQU0sT0FBTixFQUFpQztBQUMvQixTQUFBLE9BQUEsQ0FBQSxJQUFBLENBQWtCO0FBQUUsTUFBQSxFQUFGLEVBQUUsRUFBRjtBQUFNLE1BQUEsTUFBQSxFQUFBO0FBQU4sS0FBbEI7QUFDRCxHQVZIOztBQUFBLFNBWUUsS0FaRixHQVlFLGVBQUssSUFBTCxFQUEyQjtBQUFBLFFBQ3JCLE9BRHFCLEdBQ3pCLElBRHlCLENBQ3JCLE9BRHFCO0FBQUEsUUFDVixNQURVLEdBQ3pCLElBRHlCLENBQ1YsTUFEVTs7QUFFekIsU0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxPQUFPLENBQTNCLE1BQUEsRUFB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QixDQUFBO0FBQ0QsR0FwR0g7O0FBQUEsVUFzR0UsV0F0R0YsR0FzR0UsdUJBQVc7QUFDVCxTQUFBLFdBQUEsQ0FBQSxJQUFBLENBQXNCLElBQXRCLE1BQXNCLEVBQXRCO0FBQ0QsR0F4R0g7O0FBQUEsVUEwR0UsVUExR0YsR0EwR0Usc0JBQVU7QUFDUixRQUFJLEtBQUssR0FBVSxLQUFBLFdBQUEsQ0FBbkIsR0FBbUIsRUFBbkI7QUFDQSxJQUFBLEtBQUssQ0FBTCxLQUFBLENBQVksS0FBWixJQUFBO0FBQ0QsR0E3R0g7O0FBQUE7QUFBQTtBQUFBLHdCQThGMkI7QUFDdkIsYUFBYyxLQUFBLFdBQUEsQ0FBZCxPQUFBO0FBQ0Q7QUFoR0g7O0FBQUE7QUFBQTs7QUFnSEEsU0FBQSxlQUFBLENBQUEsRUFBQSxFQUFtQztBQUNqQyxTQUFPLEVBQUUsR0FBQTtBQUFBO0FBQVQ7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluc3RydWN0aW9uRW5jb2RlckltcGwgfSBmcm9tICdAZ2xpbW1lci9lbmNvZGVyJztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICBPcGVyYW5kLFxuICBDb21waWxlVGltZUhlYXAsXG4gIE9wLFxuICBCdWlsZGVyT3Bjb2RlLFxuICBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIFNpbmdsZUJ1aWxkZXJPcGVyYW5kLFxuICBFbmNvZGVyLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBIaWdoTGV2ZWxPcCxcbiAgT3Bjb2RlU2l6ZSxcbiAgSW5zdHJ1Y3Rpb25FbmNvZGVyLFxuICBEaWN0LFxuICBFbmNvZGVyRXJyb3IsXG4gIEhhbmRsZVJlc3VsdCxcbiAgQnVpbGRlck9wLFxuICBDb21waWxlVGltZVJlc29sdmVyLFxuICBDb250YWluaW5nTWV0YWRhdGEsXG4gIEhpZ2hMZXZlbE9wZXJhbmQsXG4gIFNURExpYixcbiAgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgaXNNYWNoaW5lT3AgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBTdGFjaywgZGljdCwgZXhwZWN0LCBFTVBUWV9TVFJJTkdfQVJSQVksIGVuY29kZUhhbmRsZSwgYXNzZXJ0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQge1xuICByZXNvbHZlQ29tcG9uZW50LFxuICByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIsXG4gIHJlc29sdmVIZWxwZXIsXG4gIHJlc29sdmVNb2RpZmllcixcbiAgcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsXG4gIHJlc29sdmVPcHRpb25hbEhlbHBlcixcbn0gZnJvbSAnLi9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgY29tcGlsYWJsZUJsb2NrIH0gZnJvbSAnLi4vY29tcGlsYWJsZS10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5cbmV4cG9ydCBjbGFzcyBMYWJlbHMge1xuICBsYWJlbHM6IERpY3Q8bnVtYmVyPiA9IGRpY3QoKTtcbiAgdGFyZ2V0czogQXJyYXk8eyBhdDogbnVtYmVyOyB0YXJnZXQ6IHN0cmluZyB9PiA9IFtdO1xuXG4gIGxhYmVsKG5hbWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubGFiZWxzW25hbWVdID0gaW5kZXg7XG4gIH1cblxuICB0YXJnZXQoYXQ6IG51bWJlciwgdGFyZ2V0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhcmdldHMucHVzaCh7IGF0LCB0YXJnZXQgfSk7XG4gIH1cblxuICBwYXRjaChoZWFwOiBDb21waWxlVGltZUhlYXApOiB2b2lkIHtcbiAgICBsZXQgeyB0YXJnZXRzLCBsYWJlbHMgfSA9IHRoaXM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YXJnZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgeyBhdCwgdGFyZ2V0IH0gPSB0YXJnZXRzW2ldO1xuICAgICAgbGV0IGFkZHJlc3MgPSBsYWJlbHNbdGFyZ2V0XSAtIGF0O1xuXG4gICAgICBhc3NlcnQoaGVhcC5nZXRieWFkZHIoYXQpID09PSAtMSwgJ0V4cGVjdGVkIGhlYXAgdG8gY29udGFpbiBhIHBsYWNlaG9sZGVyLCBidXQgaXQgZGlkIG5vdCcpO1xuXG4gICAgICBoZWFwLnNldGJ5YWRkcihhdCwgYWRkcmVzcyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVPcChcbiAgZW5jb2RlcjogRW5jb2RlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBvcDogQnVpbGRlck9wIHwgSGlnaExldmVsT3Bcbik6IHZvaWQge1xuICBpZiAoaXNCdWlsZGVyT3Bjb2RlKG9wWzBdKSkge1xuICAgIGxldCBbdHlwZSwgLi4ub3BlcmFuZHNdID0gb3A7XG4gICAgZW5jb2Rlci5wdXNoKGNvbnN0YW50cywgdHlwZSwgLi4uKG9wZXJhbmRzIGFzIFNpbmdsZUJ1aWxkZXJPcGVyYW5kW10pKTtcbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICBjYXNlIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWw6XG4gICAgICAgIHJldHVybiBlbmNvZGVyLmxhYmVsKG9wWzFdKTtcbiAgICAgIGNhc2UgSGlnaExldmVsQnVpbGRlck9wY29kZS5TdGFydExhYmVsczpcbiAgICAgICAgcmV0dXJuIGVuY29kZXIuc3RhcnRMYWJlbHMoKTtcbiAgICAgIGNhc2UgSGlnaExldmVsQnVpbGRlck9wY29kZS5TdG9wTGFiZWxzOlxuICAgICAgICByZXR1cm4gZW5jb2Rlci5zdG9wTGFiZWxzKCk7XG5cbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50OlxuICAgICAgICByZXR1cm4gcmVzb2x2ZUNvbXBvbmVudChyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU1vZGlmaWVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZU1vZGlmaWVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlSGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZUhlbHBlcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXI6XG4gICAgICAgIHJldHVybiByZXNvbHZlT3B0aW9uYWxIZWxwZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyOlxuICAgICAgICByZXR1cm4gcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUxvY2FsOlxuICAgICAgICBsZXQgZnJlZVZhciA9IG9wWzFdO1xuICAgICAgICBsZXQgbmFtZSA9IGV4cGVjdChtZXRhLnVwdmFycywgJ0JVRzogYXR0ZW1wdGVkIHRvIHJlc29sdmUgdmFsdWUgYnV0IG5vIHVwdmFycyBmb3VuZCcpW1xuICAgICAgICAgIGZyZWVWYXJcbiAgICAgICAgXTtcblxuICAgICAgICBpZiAobWV0YS5hc1BhcnRpYWwgPT09IHRydWUpIHtcbiAgICAgICAgICBlbmNvZGVyLnB1c2goY29uc3RhbnRzLCBPcC5SZXNvbHZlTWF5YmVMb2NhbCwgbmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IHRoZW4gPSBvcFsyXTtcblxuICAgICAgICAgIHRoZW4obmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsOlxuICAgICAgICBsZXQgWywgdmFsdWVJbmRleCwgdGhlbl0gPSBvcDtcbiAgICAgICAgbGV0IHZhbHVlID0gZXhwZWN0KFxuICAgICAgICAgIG1ldGEuc2NvcGVWYWx1ZXMsXG4gICAgICAgICAgJ0JVRzogQXR0ZW1wdGVkIHRvIGdlY3QgYSB0ZW1wbGF0ZSBsb2NhbCwgYnV0IHRlbXBsYXRlIGRvZXMgbm90IGhhdmUgYW55J1xuICAgICAgICApW3ZhbHVlSW5kZXhdO1xuXG4gICAgICAgIHRoZW4oY29uc3RhbnRzLnZhbHVlKHZhbHVlKSk7XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZTpcbiAgICAgICAgaWYgKERFQlVHKSB7XG4gICAgICAgICAgbGV0IFssIHVwdmFySW5kZXhdID0gb3A7XG4gICAgICAgICAgbGV0IGZyZWVOYW1lID0gZXhwZWN0KG1ldGEudXB2YXJzLCAnQlVHOiBhdHRlbXB0ZWQgdG8gcmVzb2x2ZSB2YWx1ZSBidXQgbm8gdXB2YXJzIGZvdW5kJylbXG4gICAgICAgICAgICB1cHZhckluZGV4XG4gICAgICAgICAgXTtcblxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIHZhbHVlIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7ZnJlZU5hbWV9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBoaWdoIGxldmVsIG9wY29kZSAke29wWzBdfWApO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW5jb2RlckltcGwgaW1wbGVtZW50cyBFbmNvZGVyIHtcbiAgcHJpdmF0ZSBsYWJlbHNTdGFjayA9IG5ldyBTdGFjazxMYWJlbHM+KCk7XG4gIHByaXZhdGUgZW5jb2RlcjogSW5zdHJ1Y3Rpb25FbmNvZGVyID0gbmV3IEluc3RydWN0aW9uRW5jb2RlckltcGwoW10pO1xuICBwcml2YXRlIGVycm9yczogRW5jb2RlckVycm9yW10gPSBbXTtcbiAgcHJpdmF0ZSBoYW5kbGU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhlYXA6IENvbXBpbGVUaW1lSGVhcCxcbiAgICBwcml2YXRlIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgICBwcml2YXRlIHN0ZGxpYj86IFNURExpYlxuICApIHtcbiAgICB0aGlzLmhhbmRsZSA9IGhlYXAubWFsbG9jKCk7XG4gIH1cblxuICBlcnJvcihlcnJvcjogRW5jb2RlckVycm9yKTogdm9pZCB7XG4gICAgdGhpcy5lbmNvZGVyLmVuY29kZShPcC5QcmltaXRpdmUsIDApO1xuICAgIHRoaXMuZXJyb3JzLnB1c2goZXJyb3IpO1xuICB9XG5cbiAgY29tbWl0KHNpemU6IG51bWJlcik6IEhhbmRsZVJlc3VsdCB7XG4gICAgbGV0IGhhbmRsZSA9IHRoaXMuaGFuZGxlO1xuXG4gICAgdGhpcy5oZWFwLnB1c2goTWFjaGluZU9wLlJldHVybiB8IE9wY29kZVNpemUuTUFDSElORV9NQVNLKTtcbiAgICB0aGlzLmhlYXAuZmluaXNoTWFsbG9jKGhhbmRsZSwgc2l6ZSk7XG5cbiAgICBpZiAodGhpcy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4geyBlcnJvcnM6IHRoaXMuZXJyb3JzLCBoYW5kbGUgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGhhbmRsZTtcbiAgICB9XG4gIH1cblxuICBwdXNoKFxuICAgIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gICAgdHlwZTogQnVpbGRlck9wY29kZSxcbiAgICAuLi5hcmdzOiBTaW5nbGVCdWlsZGVyT3BlcmFuZFtdXG4gICk6IHZvaWQge1xuICAgIGxldCB7IGhlYXAgfSA9IHRoaXM7XG5cbiAgICBpZiAoREVCVUcgJiYgKHR5cGUgYXMgbnVtYmVyKSA+IE9wY29kZVNpemUuVFlQRV9TSVpFKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE9wY29kZSB0eXBlIG92ZXIgOC1iaXRzLiBHb3QgJHt0eXBlfS5gKTtcbiAgICB9XG5cbiAgICBsZXQgbWFjaGluZSA9IGlzTWFjaGluZU9wKHR5cGUpID8gT3Bjb2RlU2l6ZS5NQUNISU5FX01BU0sgOiAwO1xuICAgIGxldCBmaXJzdCA9IHR5cGUgfCBtYWNoaW5lIHwgKGFyZ3MubGVuZ3RoIDw8IE9wY29kZVNpemUuQVJHX1NISUZUKTtcblxuICAgIGhlYXAucHVzaChmaXJzdCk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBvcCA9IGFyZ3NbaV07XG4gICAgICBoZWFwLnB1c2godGhpcy5vcGVyYW5kKGNvbnN0YW50cywgb3ApKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZXJhbmQoY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cywgb3BlcmFuZDogU2luZ2xlQnVpbGRlck9wZXJhbmQpOiBPcGVyYW5kIHtcbiAgICBpZiAodHlwZW9mIG9wZXJhbmQgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gb3BlcmFuZDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wZXJhbmQgPT09ICdvYmplY3QnICYmIG9wZXJhbmQgIT09IG51bGwpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wZXJhbmQpKSB7XG4gICAgICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLmFycmF5KG9wZXJhbmQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAob3BlcmFuZC50eXBlKSB7XG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLkxhYmVsOlxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFiZWxzLnRhcmdldCh0aGlzLmhlYXAub2Zmc2V0LCBvcGVyYW5kLnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiAtMTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5Jc1N0cmljdE1vZGU6XG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy52YWx1ZSh0aGlzLm1ldGEuaXNTdHJpY3RNb2RlKSk7XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuRXZhbFN5bWJvbHM6XG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy5hcnJheSh0aGlzLm1ldGEuZXZhbFN5bWJvbHMgfHwgRU1QVFlfU1RSSU5HX0FSUkFZKSk7XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuQmxvY2s6XG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy52YWx1ZShjb21waWxhYmxlQmxvY2sob3BlcmFuZC52YWx1ZSwgdGhpcy5tZXRhKSkpO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLlN0ZExpYjpcbiAgICAgICAgICAgIHJldHVybiBleHBlY3QoXG4gICAgICAgICAgICAgIHRoaXMuc3RkbGliLFxuICAgICAgICAgICAgICAnYXR0ZW1wdGVkIHRvIGVuY29kZSBhIHN0ZGxpYiBvcGVyYW5kLCBidXQgdGhlIGVuY29kZXIgZGlkIG5vdCBoYXZlIGEgc3RkbGliLiBBcmUgeW91IGN1cnJlbnRseSBidWlsZGluZyB0aGUgc3RkbGliPydcbiAgICAgICAgICAgIClbb3BlcmFuZC52YWx1ZV07XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuTm9uU21hbGxJbnQ6XG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLlN5bWJvbFRhYmxlOlxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5MYXlvdXQ6XG4gICAgICAgICAgICByZXR1cm4gY29uc3RhbnRzLnZhbHVlKG9wZXJhbmQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMudmFsdWUob3BlcmFuZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY3VycmVudExhYmVscygpOiBMYWJlbHMge1xuICAgIHJldHVybiBleHBlY3QodGhpcy5sYWJlbHNTdGFjay5jdXJyZW50LCAnYnVnOiBub3QgaW4gYSBsYWJlbCBzdGFjaycpO1xuICB9XG5cbiAgbGFiZWwobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50TGFiZWxzLmxhYmVsKG5hbWUsIHRoaXMuaGVhcC5vZmZzZXQgKyAxKTtcbiAgfVxuXG4gIHN0YXJ0TGFiZWxzKCkge1xuICAgIHRoaXMubGFiZWxzU3RhY2sucHVzaChuZXcgTGFiZWxzKCkpO1xuICB9XG5cbiAgc3RvcExhYmVscygpIHtcbiAgICBsZXQgbGFiZWwgPSBleHBlY3QodGhpcy5sYWJlbHNTdGFjay5wb3AoKSwgJ3VuYmFsYW5jZWQgcHVzaCBhbmQgcG9wIGxhYmVscycpO1xuICAgIGxhYmVsLnBhdGNoKHRoaXMuaGVhcCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNCdWlsZGVyT3Bjb2RlKG9wOiBudW1iZXIpOiBvcCBpcyBCdWlsZGVyT3Bjb2RlIHtcbiAgcmV0dXJuIG9wIDwgSGlnaExldmVsQnVpbGRlck9wY29kZS5TdGFydDtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FBQSxzQkFBQSxRQUFBLGtCQUFBO0FBeUJBLFNBQUEsV0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLEtBQUEsRUFBQSxJQUFBLEVBQUEsa0JBQUEsRUFBQSxZQUFBLEVBQUEsTUFBQSxRQUFBLGVBQUE7QUFDQSxTQUFBLGdCQUFBLEVBQUEsd0JBQUEsRUFBQSxhQUFBLEVBQUEsZUFBQSxFQUFBLGdDQUFBLEVBQUEscUJBQUEsUUFBQSxzQkFBQTtBQVFBLFNBQUEsZUFBQSxRQUFBLHdCQUFBO0FBQ0EsU0FBQSxLQUFBLFFBQUEsY0FBQTtBQUVBLFdBQU0sTUFBTjtBQUFBLG9CQUFBO0FBQ0UsU0FBQSxNQUFBLEdBQXVCLElBQXZCLEVBQUE7QUFDQSxTQUFBLE9BQUEsR0FBQSxFQUFBO0FBcUJEOztBQXZCRDs7QUFBQSxTQUlFLEtBSkYsR0FJRSxlQUFLLElBQUwsRUFBSyxLQUFMLEVBQWlDO0FBQy9CLFNBQUEsTUFBQSxDQUFBLElBQUEsSUFBQSxLQUFBO0FBQ0QsR0FOSDs7QUFBQSxTQVFFLE1BUkYsR0FRRSxnQkFBTSxFQUFOLEVBQU0sT0FBTixFQUFpQztBQUMvQixTQUFBLE9BQUEsQ0FBQSxJQUFBLENBQWtCO0FBQUUsTUFBQSxFQUFGLEVBQUUsRUFBRjtBQUFNLE1BQUEsTUFBQSxFQUFBO0FBQU4sS0FBbEI7QUFDRCxHQVZIOztBQUFBLFNBWUUsS0FaRixHQVlFLGVBQUssSUFBTCxFQUEyQjtBQUFBLFFBQ3JCLE9BRHFCLEdBQ3pCLElBRHlCLENBQ3JCLE9BRHFCO0FBQUEsUUFDVixNQURVLEdBQ3pCLElBRHlCLENBQ1YsTUFEVTs7QUFFekIsU0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxPQUFPLENBQTNCLE1BQUEsRUFB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LElBQUEsQ0FBQSxNQUFBLEdBQS9CLENBQUE7QUFDRCxHQXBHSDs7QUFBQSxVQXNHRSxXQXRHRixHQXNHRSx1QkFBVztBQUNULFNBQUEsV0FBQSxDQUFBLElBQUEsQ0FBc0IsSUFBdEIsTUFBc0IsRUFBdEI7QUFDRCxHQXhHSDs7QUFBQSxVQTBHRSxVQTFHRixHQTBHRSxzQkFBVTtBQUNSLFFBQUksS0FBSyxHQUFVLEtBQUEsV0FBQSxDQUFuQixHQUFtQixFQUFuQjtBQUNBLElBQUEsS0FBSyxDQUFMLEtBQUEsQ0FBWSxLQUFaLElBQUE7QUFDRCxHQTdHSDs7QUFBQTtBQUFBO0FBQUEsd0JBOEYyQjtBQUN2QixhQUFjLEtBQUEsV0FBQSxDQUFkLE9BQUE7QUFDRDtBQWhHSDs7QUFBQTtBQUFBOztBQWdIQSxTQUFBLGVBQUEsQ0FBQSxFQUFBLEVBQW1DO0FBQ2pDLFNBQU8sRUFBRSxHQUFBO0FBQUE7QUFBVDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5zdHJ1Y3Rpb25FbmNvZGVySW1wbCB9IGZyb20gJ0BnbGltbWVyL2VuY29kZXInO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gIE9wZXJhbmQsXG4gIENvbXBpbGVUaW1lSGVhcCxcbiAgT3AsXG4gIEJ1aWxkZXJPcGNvZGUsXG4gIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgU2luZ2xlQnVpbGRlck9wZXJhbmQsXG4gIEVuY29kZXIsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIEhpZ2hMZXZlbE9wLFxuICBPcGNvZGVTaXplLFxuICBJbnN0cnVjdGlvbkVuY29kZXIsXG4gIERpY3QsXG4gIEVuY29kZXJFcnJvcixcbiAgSGFuZGxlUmVzdWx0LFxuICBCdWlsZGVyT3AsXG4gIENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgSGlnaExldmVsT3BlcmFuZCxcbiAgU1RETGliLFxuICBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBpc01hY2hpbmVPcCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IFN0YWNrLCBkaWN0LCBleHBlY3QsIEVNUFRZX1NUUklOR19BUlJBWSwgZW5jb2RlSGFuZGxlLCBhc3NlcnQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIHJlc29sdmVDb21wb25lbnQsXG4gIHJlc29sdmVDb21wb25lbnRPckhlbHBlcixcbiAgcmVzb2x2ZUhlbHBlcixcbiAgcmVzb2x2ZU1vZGlmaWVyLFxuICByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbiAgcmVzb2x2ZU9wdGlvbmFsSGVscGVyLFxufSBmcm9tICcuL2hlbHBlcnMvcmVzb2x1dGlvbic7XG5pbXBvcnQgeyBjb21waWxhYmxlQmxvY2sgfSBmcm9tICcuLi9jb21waWxhYmxlLXRlbXBsYXRlJztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcblxuZXhwb3J0IGNsYXNzIExhYmVscyB7XG4gIGxhYmVsczogRGljdDxudW1iZXI+ID0gZGljdCgpO1xuICB0YXJnZXRzOiBBcnJheTx7IGF0OiBudW1iZXI7IHRhcmdldDogc3RyaW5nIH0+ID0gW107XG5cbiAgbGFiZWwobmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5sYWJlbHNbbmFtZV0gPSBpbmRleDtcbiAgfVxuXG4gIHRhcmdldChhdDogbnVtYmVyLCB0YXJnZXQ6IHN0cmluZykge1xuICAgIHRoaXMudGFyZ2V0cy5wdXNoKHsgYXQsIHRhcmdldCB9KTtcbiAgfVxuXG4gIHBhdGNoKGhlYXA6IENvbXBpbGVUaW1lSGVhcCk6IHZvaWQge1xuICAgIGxldCB7IHRhcmdldHMsIGxhYmVscyB9ID0gdGhpcztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhcmdldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCB7IGF0LCB0YXJnZXQgfSA9IHRhcmdldHNbaV07XG4gICAgICBsZXQgYWRkcmVzcyA9IGxhYmVsc1t0YXJnZXRdIC0gYXQ7XG5cbiAgICAgIGFzc2VydChoZWFwLmdldGJ5YWRkcihhdCkgPT09IC0xLCAnRXhwZWN0ZWQgaGVhcCB0byBjb250YWluIGEgcGxhY2Vob2xkZXIsIGJ1dCBpdCBkaWQgbm90Jyk7XG5cbiAgICAgIGhlYXAuc2V0YnlhZGRyKGF0LCBhZGRyZXNzKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZU9wKFxuICBlbmNvZGVyOiBFbmNvZGVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIG9wOiBCdWlsZGVyT3AgfCBIaWdoTGV2ZWxPcFxuKTogdm9pZCB7XG4gIGlmIChpc0J1aWxkZXJPcGNvZGUob3BbMF0pKSB7XG4gICAgbGV0IFt0eXBlLCAuLi5vcGVyYW5kc10gPSBvcDtcbiAgICBlbmNvZGVyLnB1c2goY29uc3RhbnRzLCB0eXBlLCAuLi4ob3BlcmFuZHMgYXMgU2luZ2xlQnVpbGRlck9wZXJhbmRbXSkpO1xuICB9IGVsc2Uge1xuICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgIGNhc2UgSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbDpcbiAgICAgICAgcmV0dXJuIGVuY29kZXIubGFiZWwob3BbMV0pO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLlN0YXJ0TGFiZWxzOlxuICAgICAgICByZXR1cm4gZW5jb2Rlci5zdGFydExhYmVscygpO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLlN0b3BMYWJlbHM6XG4gICAgICAgIHJldHVybiBlbmNvZGVyLnN0b3BMYWJlbHMoKTtcblxuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQ6XG4gICAgICAgIHJldHVybiByZXNvbHZlQ29tcG9uZW50KHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXI6XG4gICAgICAgIHJldHVybiByZXNvbHZlTW9kaWZpZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXI6XG4gICAgICAgIHJldHVybiByZXNvbHZlSGVscGVyKHJlc29sdmVyLCBjb25zdGFudHMsIG1ldGEsIG9wKTtcbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50T3JIZWxwZXI6XG4gICAgICAgIHJldHVybiByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIocmVzb2x2ZXIsIGNvbnN0YW50cywgbWV0YSwgb3ApO1xuICAgICAgY2FzZSBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlcjpcbiAgICAgICAgcmV0dXJuIHJlc29sdmVPcHRpb25hbEhlbHBlcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXI6XG4gICAgICAgIHJldHVybiByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihyZXNvbHZlciwgY29uc3RhbnRzLCBtZXRhLCBvcCk7XG5cbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWw6XG4gICAgICAgIGxldCBmcmVlVmFyID0gb3BbMV07XG4gICAgICAgIGxldCBuYW1lID0gZXhwZWN0KG1ldGEudXB2YXJzLCAnQlVHOiBhdHRlbXB0ZWQgdG8gcmVzb2x2ZSB2YWx1ZSBidXQgbm8gdXB2YXJzIGZvdW5kJylbXG4gICAgICAgICAgZnJlZVZhclxuICAgICAgICBdO1xuXG4gICAgICAgIGlmIChtZXRhLmFzUGFydGlhbCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGVuY29kZXIucHVzaChjb25zdGFudHMsIE9wLlJlc29sdmVNYXliZUxvY2FsLCBuYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgdGhlbiA9IG9wWzJdO1xuXG4gICAgICAgICAgdGhlbihuYW1lLCBtZXRhLm1vZHVsZU5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlVGVtcGxhdGVMb2NhbDpcbiAgICAgICAgbGV0IFssIHZhbHVlSW5kZXgsIHRoZW5dID0gb3A7XG4gICAgICAgIGxldCB2YWx1ZSA9IGV4cGVjdChcbiAgICAgICAgICBtZXRhLnNjb3BlVmFsdWVzLFxuICAgICAgICAgICdCVUc6IEF0dGVtcHRlZCB0byBnZWN0IGEgdGVtcGxhdGUgbG9jYWwsIGJ1dCB0ZW1wbGF0ZSBkb2VzIG5vdCBoYXZlIGFueSdcbiAgICAgICAgKVt2YWx1ZUluZGV4XTtcblxuICAgICAgICB0aGVuKGNvbnN0YW50cy52YWx1ZSh2YWx1ZSkpO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUZyZWU6XG4gICAgICAgIGlmIChERUJVRykge1xuICAgICAgICAgIGxldCBbLCB1cHZhckluZGV4XSA9IG9wO1xuICAgICAgICAgIGxldCBmcmVlTmFtZSA9IGV4cGVjdChtZXRhLnVwdmFycywgJ0JVRzogYXR0ZW1wdGVkIHRvIHJlc29sdmUgdmFsdWUgYnV0IG5vIHVwdmFycyBmb3VuZCcpW1xuICAgICAgICAgICAgdXB2YXJJbmRleFxuICAgICAgICAgIF07XG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSB2YWx1ZSBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke2ZyZWVOYW1lfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgaGlnaCBsZXZlbCBvcGNvZGUgJHtvcFswXX1gKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVuY29kZXJJbXBsIGltcGxlbWVudHMgRW5jb2RlciB7XG4gIHByaXZhdGUgbGFiZWxzU3RhY2sgPSBuZXcgU3RhY2s8TGFiZWxzPigpO1xuICBwcml2YXRlIGVuY29kZXI6IEluc3RydWN0aW9uRW5jb2RlciA9IG5ldyBJbnN0cnVjdGlvbkVuY29kZXJJbXBsKFtdKTtcbiAgcHJpdmF0ZSBlcnJvcnM6IEVuY29kZXJFcnJvcltdID0gW107XG4gIHByaXZhdGUgaGFuZGxlOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBoZWFwOiBDb21waWxlVGltZUhlYXAsXG4gICAgcHJpdmF0ZSBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gICAgcHJpdmF0ZSBzdGRsaWI/OiBTVERMaWJcbiAgKSB7XG4gICAgdGhpcy5oYW5kbGUgPSBoZWFwLm1hbGxvYygpO1xuICB9XG5cbiAgZXJyb3IoZXJyb3I6IEVuY29kZXJFcnJvcik6IHZvaWQge1xuICAgIHRoaXMuZW5jb2Rlci5lbmNvZGUoT3AuUHJpbWl0aXZlLCAwKTtcbiAgICB0aGlzLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgfVxuXG4gIGNvbW1pdChzaXplOiBudW1iZXIpOiBIYW5kbGVSZXN1bHQge1xuICAgIGxldCBoYW5kbGUgPSB0aGlzLmhhbmRsZTtcblxuICAgIHRoaXMuaGVhcC5wdXNoKE1hY2hpbmVPcC5SZXR1cm4gfCBPcGNvZGVTaXplLk1BQ0hJTkVfTUFTSyk7XG4gICAgdGhpcy5oZWFwLmZpbmlzaE1hbGxvYyhoYW5kbGUsIHNpemUpO1xuXG4gICAgaWYgKHRoaXMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHsgZXJyb3JzOiB0aGlzLmVycm9ycywgaGFuZGxlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBoYW5kbGU7XG4gICAgfVxuICB9XG5cbiAgcHVzaChcbiAgICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICAgIHR5cGU6IEJ1aWxkZXJPcGNvZGUsXG4gICAgLi4uYXJnczogU2luZ2xlQnVpbGRlck9wZXJhbmRbXVxuICApOiB2b2lkIHtcbiAgICBsZXQgeyBoZWFwIH0gPSB0aGlzO1xuXG4gICAgaWYgKERFQlVHICYmICh0eXBlIGFzIG51bWJlcikgPiBPcGNvZGVTaXplLlRZUEVfU0laRSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBPcGNvZGUgdHlwZSBvdmVyIDgtYml0cy4gR290ICR7dHlwZX0uYCk7XG4gICAgfVxuXG4gICAgbGV0IG1hY2hpbmUgPSBpc01hY2hpbmVPcCh0eXBlKSA/IE9wY29kZVNpemUuTUFDSElORV9NQVNLIDogMDtcbiAgICBsZXQgZmlyc3QgPSB0eXBlIHwgbWFjaGluZSB8IChhcmdzLmxlbmd0aCA8PCBPcGNvZGVTaXplLkFSR19TSElGVCk7XG5cbiAgICBoZWFwLnB1c2goZmlyc3QpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgb3AgPSBhcmdzW2ldO1xuICAgICAgaGVhcC5wdXNoKHRoaXMub3BlcmFuZChjb25zdGFudHMsIG9wKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVyYW5kKGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMsIG9wZXJhbmQ6IFNpbmdsZUJ1aWxkZXJPcGVyYW5kKTogT3BlcmFuZCB7XG4gICAgaWYgKHR5cGVvZiBvcGVyYW5kID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIG9wZXJhbmQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcGVyYW5kID09PSAnb2JqZWN0JyAmJiBvcGVyYW5kICE9PSBudWxsKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvcGVyYW5kKSkge1xuICAgICAgICByZXR1cm4gZW5jb2RlSGFuZGxlKGNvbnN0YW50cy5hcnJheShvcGVyYW5kKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKG9wZXJhbmQudHlwZSkge1xuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5MYWJlbDpcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExhYmVscy50YXJnZXQodGhpcy5oZWFwLm9mZnNldCwgb3BlcmFuZC52YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG5cbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuSXNTdHJpY3RNb2RlOlxuICAgICAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMudmFsdWUodGhpcy5tZXRhLmlzU3RyaWN0TW9kZSkpO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLkV2YWxTeW1ib2xzOlxuICAgICAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMuYXJyYXkodGhpcy5tZXRhLmV2YWxTeW1ib2xzIHx8IEVNUFRZX1NUUklOR19BUlJBWSkpO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLkJsb2NrOlxuICAgICAgICAgICAgcmV0dXJuIGVuY29kZUhhbmRsZShjb25zdGFudHMudmFsdWUoY29tcGlsYWJsZUJsb2NrKG9wZXJhbmQudmFsdWUsIHRoaXMubWV0YSkpKTtcblxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5TdGRMaWI6XG4gICAgICAgICAgICByZXR1cm4gZXhwZWN0KFxuICAgICAgICAgICAgICB0aGlzLnN0ZGxpYixcbiAgICAgICAgICAgICAgJ2F0dGVtcHRlZCB0byBlbmNvZGUgYSBzdGRsaWIgb3BlcmFuZCwgYnV0IHRoZSBlbmNvZGVyIGRpZCBub3QgaGF2ZSBhIHN0ZGxpYi4gQXJlIHlvdSBjdXJyZW50bHkgYnVpbGRpbmcgdGhlIHN0ZGxpYj8nXG4gICAgICAgICAgICApW29wZXJhbmQudmFsdWVdO1xuXG4gICAgICAgICAgY2FzZSBIaWdoTGV2ZWxPcGVyYW5kLk5vblNtYWxsSW50OlxuICAgICAgICAgIGNhc2UgSGlnaExldmVsT3BlcmFuZC5TeW1ib2xUYWJsZTpcbiAgICAgICAgICBjYXNlIEhpZ2hMZXZlbE9wZXJhbmQuTGF5b3V0OlxuICAgICAgICAgICAgcmV0dXJuIGNvbnN0YW50cy52YWx1ZShvcGVyYW5kLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlbmNvZGVIYW5kbGUoY29uc3RhbnRzLnZhbHVlKG9wZXJhbmQpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGN1cnJlbnRMYWJlbHMoKTogTGFiZWxzIHtcbiAgICByZXR1cm4gZXhwZWN0KHRoaXMubGFiZWxzU3RhY2suY3VycmVudCwgJ2J1Zzogbm90IGluIGEgbGFiZWwgc3RhY2snKTtcbiAgfVxuXG4gIGxhYmVsKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY3VycmVudExhYmVscy5sYWJlbChuYW1lLCB0aGlzLmhlYXAub2Zmc2V0ICsgMSk7XG4gIH1cblxuICBzdGFydExhYmVscygpIHtcbiAgICB0aGlzLmxhYmVsc1N0YWNrLnB1c2gobmV3IExhYmVscygpKTtcbiAgfVxuXG4gIHN0b3BMYWJlbHMoKSB7XG4gICAgbGV0IGxhYmVsID0gZXhwZWN0KHRoaXMubGFiZWxzU3RhY2sucG9wKCksICd1bmJhbGFuY2VkIHB1c2ggYW5kIHBvcCBsYWJlbHMnKTtcbiAgICBsYWJlbC5wYXRjaCh0aGlzLmhlYXApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzQnVpbGRlck9wY29kZShvcDogbnVtYmVyKTogb3AgaXMgQnVpbGRlck9wY29kZSB7XG4gIHJldHVybiBvcCA8IEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuU3RhcnQ7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 |
@@ -253,3 +253,3 @@ import { DEBUG } from '@glimmer/env'; | ||
if (helper === null) { | ||
ifFallback(name); | ||
ifFallback(name, meta.moduleName); | ||
} else { | ||
@@ -344,2 +344,2 @@ ifHelper(constants.helper(helper, name)); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQUEsS0FBQSxRQUFBLGNBQUE7QUFnQkEsU0FBQSxNQUFBLEVBQUEsYUFBQSxRQUFBLGVBQUE7O0FBRUEsU0FBQSxjQUFBLENBQUEsTUFBQSxFQUFzRDtBQUNwRCxTQUFPLEtBQUssQ0FBTCxPQUFBLENBQUEsTUFBQSxLQUF5QixNQUFNLENBQU4sTUFBQSxLQUFoQyxDQUFBO0FBQ0Q7O0FBRUQsU0FBQSwwQkFBQSxDQUFBLFlBQUEsRUFBNkQ7QUFDM0QsU0FDRSxVQUFBLE1BREssRUFFNEQ7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBbkIsTUFBbUIsQ0FBbkIsRUFBNkIsT0FBQSxLQUFBO0FBRTdCLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBakIsQ0FBaUIsQ0FBakI7QUFFQSxXQUNFLElBQUksS0FBQTtBQUFBO0FBQUosT0FDQSxJQUFJLEtBQUE7QUFBQTtBQURKLE9BRUEsSUFBSSxLQUhOLFlBQUE7QUFQRixHQUFBO0FBYUQ7O0FBRUQsT0FBTyxJQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRDtBQUVQLE9BQU8sSUFBTSxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBcEQ7QUFFUCxPQUFPLElBQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFsRDtBQUVQLE9BQU8sSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBN0Q7QUFJUCxPQUFPLElBQU0sdUJBQXVCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQTFEO0FBSVAsT0FBTyxJQUFNLGtDQUFrQyxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRTs7QUFTUCxTQUFBLHdC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QSxVQUFNLElBQUEsS0FBQSw2QkFDc0IsSUFEdEIscUVBRUYsSUFBSSxDQUFKLE1BQUEsQ0FBYSxJQUFJLENBRnJCLENBRXFCLENBQWpCLENBRkUsQ0FBTjtBQUtEOztBQUVELFNBQU8sU0FBUyxDQUFULE1BQUEsQ0FBQSxNQUFBLEVBQVAsSUFBTyxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgQ29udGFpbmluZ01ldGFkYXRhLFxuICBFeHByZXNzaW9ucyxcbiAgT3duZXIsXG4gIFJlc29sdmVDb21wb25lbnRPcCxcbiAgUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVIZWxwZXJPcCxcbiAgUmVzb2x2ZU1vZGlmaWVyT3AsXG4gIFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVPcHRpb25hbEhlbHBlck9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzZXJ0LCBkZWJ1Z1RvU3RyaW5nLCBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuZnVuY3Rpb24gaXNHZXRMaWtlVHVwbGUob3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLlR1cGxlRXhwcmVzc2lvbiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG9wY29kZSkgJiYgb3Bjb2RlLmxlbmd0aCA9PT0gMjtcbn1cblxuZnVuY3Rpb24gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIodHlwZVRvVmVyaWZ5OiBTZXhwT3Bjb2Rlcykge1xuICByZXR1cm4gKFxuICAgIG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvblxuICApOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuR2V0RnJlZSB8IEV4cHJlc3Npb25zLkdldFRlbXBsYXRlU3ltYm9sID0+IHtcbiAgICBpZiAoIWlzR2V0TGlrZVR1cGxlKG9wY29kZSkpIHJldHVybiBmYWxzZTtcblxuICAgIGxldCB0eXBlID0gb3Bjb2RlWzBdO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUgfHxcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sIHx8XG4gICAgICB0eXBlID09PSB0eXBlVG9WZXJpZnlcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50ID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50SGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVNb2RpZmllciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc01vZGlmaWVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZFxuKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmludGVyZmFjZSBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSBleHRlbmRzIENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIG93bmVyOiBPd25lcjtcbiAgdXB2YXJzOiBzdHJpbmdbXTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSk6IFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgaWYgKCFtZXRhLnVwdmFycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBmcmVlIHZhcnMgd2VyZSBmb3VuZCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFtZXRhLm93bmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIG93bmVyIHdhcyBhc3NvY2lhdGVkIHdpdGggdGhlIHRlbXBsYXRlIGl0IHdhcyBiZWluZyByZXNvbHZlZCBmcm9tJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKG1ldGEgYXMgdW5rbm93bikgYXMgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGE7XG59XG5cbi8qKlxuICogPEZvby8+XG4gKiA8Rm9vPjwvRm9vPlxuICogPEZvbyBAYXJnPXt7dHJ1ZX19IC8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50KFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlQ29tcG9uZW50T3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmIChERUJVRyAmJiBleHByWzBdID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMuY29tcG9uZW50KGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIChoZWxwZXIpXG4gKiAoaGVscGVyIGFyZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVIZWxwZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRoZW4oXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ2hlbHBlcicpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyISkhO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiA8ZGl2IHt7bW9kaWZpZXJ9fS8+XG4gKiA8ZGl2IHt7bW9kaWZpZXIgYXJnfX0vPlxuICogPEZvbyB7e21vZGlmaWVyfX0vPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZGlmaWVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlTW9kaWZpZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVNb2RpZmllcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5Nb2RpZmllcihuYW1lKTtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgaXQgd2FzIG5vdCBpbiBzY29wZTogJHtuYW1lfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIhLCBuYW1lKSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cE1vZGlmaWVyKG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIG1vZGlmaWVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICoge3tjb21wb25lbnQtb3ItaGVscGVyIGFyZ319XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIgfV06IFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChkZWZpbml0aW9uIGFzIG9iamVjdCwgdHJ1ZSk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0LCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBlaXRoZXIgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgaXQgZGlkIG5vdCBoYXZlIGEgY29tcG9uZW50IG1hbmFnZXIgb3IgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgdmFsdWUgd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmSGVscGVyKGV4cGVjdChoZWxwZXIsICdCVUc6IGhlbHBlciBtdXN0IGV4aXN0JykpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gICAgICAgIGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgICAgICAgcmVzb2x2ZXIsXG4gICAgICAgIG1ldGEsXG4gICAgICAgIGNvbnN0YW50cyxcbiAgICAgICAgJ2NvbXBvbmVudCBvciBoZWxwZXInXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiA8Rm9vIEBhcmc9e3toZWxwZXJ9fT5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25hbEhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmSGVscGVyLCBpZkZhbGxiYWNrIH1dOiBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVPcHRpb25hbEhlbHBlcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gIGlmIChoZWxwZXIgPT09IG51bGwpIHtcbiAgICBpZkZhbGxiYWNrKG5hbWUpO1xuICB9IGVsc2Uge1xuICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e21heWJlSGVscGVyT3JDb21wb25lbnR9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIsIGlmVmFsdWUsIGlmRmFsbGJhY2sgfV06IFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYW4gb3B0aW9uYWwgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICAgKSB7XG4gICAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGFuIG9iamVjdCwgc28gaXQgY2FuJ3QgYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLlxuICAgICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KGRlZmluaXRpb24sIHRydWUpO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uLCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGhlbHBlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAndmFsdWUnKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmRmFsbGJhY2sobmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgZXhwcjogRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgY29uc3RhbnRzOiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgdHlwZTogc3RyaW5nXG4pOiBudW1iZXIge1xuICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5IZWxwZXIobmFtZSk7XG5cbiAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgIC8vIEtleXdvcmQgaGVscGVyIGRpZCBub3QgZXhpc3QsIHdoaWNoIG1lYW5zIHRoYXQgd2UncmUgYXR0ZW1wdGluZyB0byB1c2UgYVxuICAgIC8vIHZhbHVlIG9mIHNvbWUga2luZCB0aGF0IGlzIG5vdCBpbiBzY29wZVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhICR7dHlwZX0gaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQUEsS0FBQSxRQUFBLGNBQUE7QUFnQkEsU0FBQSxNQUFBLEVBQUEsYUFBQSxRQUFBLGVBQUE7O0FBRUEsU0FBQSxjQUFBLENBQUEsTUFBQSxFQUFzRDtBQUNwRCxTQUFPLEtBQUssQ0FBTCxPQUFBLENBQUEsTUFBQSxLQUF5QixNQUFNLENBQU4sTUFBQSxLQUFoQyxDQUFBO0FBQ0Q7O0FBRUQsU0FBQSwwQkFBQSxDQUFBLFlBQUEsRUFBNkQ7QUFDM0QsU0FDRSxVQUFBLE1BREssRUFFNEQ7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBbkIsTUFBbUIsQ0FBbkIsRUFBNkIsT0FBQSxLQUFBO0FBRTdCLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBakIsQ0FBaUIsQ0FBakI7QUFFQSxXQUNFLElBQUksS0FBQTtBQUFBO0FBQUosT0FDQSxJQUFJLEtBQUE7QUFBQTtBQURKLE9BRUEsSUFBSSxLQUhOLFlBQUE7QUFQRixHQUFBO0FBYUQ7O0FBRUQsT0FBTyxJQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRDtBQUVQLE9BQU8sSUFBTSxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBcEQ7QUFFUCxPQUFPLElBQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFsRDtBQUVQLE9BQU8sSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBN0Q7QUFJUCxPQUFPLElBQU0sdUJBQXVCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQTFEO0FBSVAsT0FBTyxJQUFNLGtDQUFrQyxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRTs7QUFTUCxTQUFBLHdC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LEVBQThCO0FBQzVCO0FBQ0E7QUFDQSxVQUFNLElBQUEsS0FBQSw2QkFDc0IsSUFEdEIscUVBRUYsSUFBSSxDQUFKLE1BQUEsQ0FBYSxJQUFJLENBRnJCLENBRXFCLENBQWpCLENBRkUsQ0FBTjtBQUtEOztBQUVELFNBQU8sU0FBUyxDQUFULE1BQUEsQ0FBQSxNQUFBLEVBQVAsSUFBTyxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgQ29udGFpbmluZ01ldGFkYXRhLFxuICBFeHByZXNzaW9ucyxcbiAgT3duZXIsXG4gIFJlc29sdmVDb21wb25lbnRPcCxcbiAgUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVIZWxwZXJPcCxcbiAgUmVzb2x2ZU1vZGlmaWVyT3AsXG4gIFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVPcHRpb25hbEhlbHBlck9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzZXJ0LCBkZWJ1Z1RvU3RyaW5nLCBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuZnVuY3Rpb24gaXNHZXRMaWtlVHVwbGUob3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLlR1cGxlRXhwcmVzc2lvbiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG9wY29kZSkgJiYgb3Bjb2RlLmxlbmd0aCA9PT0gMjtcbn1cblxuZnVuY3Rpb24gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIodHlwZVRvVmVyaWZ5OiBTZXhwT3Bjb2Rlcykge1xuICByZXR1cm4gKFxuICAgIG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvblxuICApOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuR2V0RnJlZSB8IEV4cHJlc3Npb25zLkdldFRlbXBsYXRlU3ltYm9sID0+IHtcbiAgICBpZiAoIWlzR2V0TGlrZVR1cGxlKG9wY29kZSkpIHJldHVybiBmYWxzZTtcblxuICAgIGxldCB0eXBlID0gb3Bjb2RlWzBdO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUgfHxcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sIHx8XG4gICAgICB0eXBlID09PSB0eXBlVG9WZXJpZnlcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50ID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50SGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVNb2RpZmllciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc01vZGlmaWVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZFxuKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmludGVyZmFjZSBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSBleHRlbmRzIENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIG93bmVyOiBPd25lcjtcbiAgdXB2YXJzOiBzdHJpbmdbXTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSk6IFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgaWYgKCFtZXRhLnVwdmFycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBmcmVlIHZhcnMgd2VyZSBmb3VuZCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFtZXRhLm93bmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIG93bmVyIHdhcyBhc3NvY2lhdGVkIHdpdGggdGhlIHRlbXBsYXRlIGl0IHdhcyBiZWluZyByZXNvbHZlZCBmcm9tJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKG1ldGEgYXMgdW5rbm93bikgYXMgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGE7XG59XG5cbi8qKlxuICogPEZvby8+XG4gKiA8Rm9vPjwvRm9vPlxuICogPEZvbyBAYXJnPXt7dHJ1ZX19IC8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50KFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlQ29tcG9uZW50T3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmIChERUJVRyAmJiBleHByWzBdID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMuY29tcG9uZW50KGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIChoZWxwZXIpXG4gKiAoaGVscGVyIGFyZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVIZWxwZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRoZW4oXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ2hlbHBlcicpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyISkhO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiA8ZGl2IHt7bW9kaWZpZXJ9fS8+XG4gKiA8ZGl2IHt7bW9kaWZpZXIgYXJnfX0vPlxuICogPEZvbyB7e21vZGlmaWVyfX0vPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZGlmaWVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlTW9kaWZpZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVNb2RpZmllcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5Nb2RpZmllcihuYW1lKTtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgaXQgd2FzIG5vdCBpbiBzY29wZTogJHtuYW1lfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIhLCBuYW1lKSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cE1vZGlmaWVyKG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIG1vZGlmaWVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICoge3tjb21wb25lbnQtb3ItaGVscGVyIGFyZ319XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIgfV06IFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChkZWZpbml0aW9uIGFzIG9iamVjdCwgdHJ1ZSk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0LCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBlaXRoZXIgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgaXQgZGlkIG5vdCBoYXZlIGEgY29tcG9uZW50IG1hbmFnZXIgb3IgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgdmFsdWUgd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmSGVscGVyKGV4cGVjdChoZWxwZXIsICdCVUc6IGhlbHBlciBtdXN0IGV4aXN0JykpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gICAgICAgIGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgICAgICAgcmVzb2x2ZXIsXG4gICAgICAgIG1ldGEsXG4gICAgICAgIGNvbnN0YW50cyxcbiAgICAgICAgJ2NvbXBvbmVudCBvciBoZWxwZXInXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiA8Rm9vIEBhcmc9e3toZWxwZXJ9fT5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25hbEhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmSGVscGVyLCBpZkZhbGxiYWNrIH1dOiBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVPcHRpb25hbEhlbHBlcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gIGlmIChoZWxwZXIgPT09IG51bGwpIHtcbiAgICBpZkZhbGxiYWNrKG5hbWUsIG1ldGEubW9kdWxlTmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7bWF5YmVIZWxwZXJPckNvbXBvbmVudH19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciwgaWZWYWx1ZSwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhbiBvcHRpb25hbCBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgICApIHtcbiAgICAgIC8vIFRoZSB2YWx1ZSBpcyBub3QgYW4gb2JqZWN0LCBzbyBpdCBjYW4ndCBiZSBhIGNvbXBvbmVudCBvciBoZWxwZXIuXG4gICAgICBpZlZhbHVlKGNvbnN0YW50cy52YWx1ZShkZWZpbml0aW9uKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoZGVmaW5pdGlvbiwgdHJ1ZSk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24sIG51bGwsIHRydWUpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoaGVscGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZlZhbHVlKGNvbnN0YW50cy52YWx1ZShkZWZpbml0aW9uKSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGlmSGVscGVyKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsIHJlc29sdmVyLCBtZXRhLCBjb25zdGFudHMsICd2YWx1ZScpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZGYWxsYmFjayhuYW1lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBsb29rdXBCdWlsdEluSGVscGVyKFxuICBleHByOiBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBjb25zdGFudHM6IFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICB0eXBlOiBzdHJpbmdcbik6IG51bWJlciB7XG4gIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbkhlbHBlcihuYW1lKTtcblxuICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgLy8gS2V5d29yZCBoZWxwZXIgZGlkIG5vdCBleGlzdCwgd2hpY2ggbWVhbnMgdGhhdCB3ZSdyZSBhdHRlbXB0aW5nIHRvIHVzZSBhXG4gICAgLy8gdmFsdWUgb2Ygc29tZSBraW5kIHRoYXQgaXMgbm90IGluIHNjb3BlXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgJHt0eXBlfSBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== |
@@ -8,2 +8,3 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } it = o[Symbol.iterator](); return it.next.bind(it); } | ||
import { $v0 } from '@glimmer/vm'; | ||
import { deprecate } from '@glimmer/global-context'; | ||
import { expr } from '../opcode-builder/helpers/expr'; | ||
@@ -14,2 +15,3 @@ import { isGetFreeHelper } from '../opcode-builder/helpers/resolution'; | ||
import { Compilers } from './compilers'; | ||
import { DEBUG } from '@glimmer/env'; | ||
export var EXPRESSIONS = new Compilers(); | ||
@@ -98,3 +100,10 @@ EXPRESSIONS.add(29 | ||
/* ResolveLocal */ | ||
, freeVar, function (name) { | ||
, freeVar, function (name, moduleName) { | ||
if (DEBUG) { | ||
var propertyPath = path ? [name].concat(path).join('.') : name; | ||
deprecate("The `" + propertyPath + "` property path was used in a template for the `" + moduleName + "` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + propertyPath + "}}", false, { | ||
id: 'this-property-fallback' | ||
}); | ||
} | ||
op(21 | ||
@@ -131,3 +140,6 @@ /* GetVariable */ | ||
}, | ||
ifFallback: function ifFallback(name) { | ||
ifFallback: function ifFallback(name, moduleName) { | ||
deprecate("The `" + name + "` property was used in the template for the `" + moduleName + "` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + name + "}}", false, { | ||
id: 'this-property-fallback' | ||
}); | ||
op(21 | ||
@@ -233,2 +245,2 @@ /* GetVariable */ | ||
}); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQU9BLFNBQUEsR0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLElBQUEsUUFBQSxnQ0FBQTtBQUNBLFNBQUEsZUFBQSxRQUFBLHNDQUFBO0FBQ0EsU0FBQSxVQUFBLFFBQUEsa0NBQUE7QUFDQSxTQUFBLElBQUEsRUFBQSxXQUFBLEVBQUEsS0FBQSxFQUFBLHNCQUFBLFFBQUEsOEJBQUE7QUFDQSxTQUFBLFNBQUEsUUFBQSxhQUFBO0FBRUEsT0FBTyxJQUFNLFdBQVcsR0FBRyxJQUFwQixTQUFvQixFQUFwQjtBQUVQLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQW9DLFVBQUEsRUFBQSxRQUFrQjtBQUFBLE1BQWxCLEtBQWtCOztBQUNwRCx1REFBQSxLQUFBLHdDQUF3QjtBQUFBLFFBQXhCLElBQXdCO0FBQ3RCLElBQUEsSUFBSSxDQUFBLEVBQUEsRUFBSixJQUFJLENBQUo7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQW5CLE1BQUUsQ0FBRjtBQUxGLENBQUE7QUFRQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFrQyxVQUFBLEVBQUEsU0FBMEM7QUFBQSxNQUFyQyxVQUFxQztBQUFBLE1BQXJDLFVBQXFDO0FBQUEsTUFBMUMsS0FBMEM7O0FBQzFFLE1BQUksZUFBZSxDQUFuQixVQUFtQixDQUFuQixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELFVBQUEsTUFBRCxFQUFtQjtBQUN6RSxNQUFBLElBQUksQ0FBQSxFQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFBSixLQUFJLENBQUo7QUFERixLQUFFLENBQUY7QUFERixHQUFBLE1BSU87QUFDTCxJQUFB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TUFBZ0M7QUFBQSxNQUFyQyxLQUFxQztBQUN6RTtBQUNBLEVBQUEsSUFBSSxDQUFBLEVBQUEsRUFBSixLQUFJLENBQUo7QUFDQSxFQUFBLElBQUksQ0FBQSxFQUFBLEVBQUosTUFBSSxDQUFKO0FBQ0EsRUFBQSxJQUFJLENBQUEsRUFBQSxFQUFKLFNBQUksQ0FBSjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBTEYsQ0FBQTtBQVFBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQWlDLFVBQUEsRUFBQSxVQUFrQjtBQUFBLE1BQWxCLEtBQWtCO0FBQ2pELEVBQUEsSUFBSSxDQUFBLEVBQUEsRUFBSixLQUFJLENBQUo7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUEyQyxVQUFBLEVBQUEsVUFBdUI7QUFBQSxNQUF2QixVQUF1QjtBQUNoRSxFQUFBLElBQUksQ0FBQSxFQUFBLEVBQUosVUFBSSxDQUFKO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFGRixDQUFBO0FBS0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBaUMsVUFBQSxFQUFBLFVBQXVCO0FBQUEsTUFBdkIsVUFBdUI7QUFDdEQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLFVBQVUsQ0FBQSxFQUFBLEVBQUEsVUFBQSxFQUFBLElBQUEsRUFBVixLQUFVLENBQVY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsR0FBRSxDQUFGO0FBTEYsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEV4cHJlc3Npb25TZXhwT3Bjb2RlLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIE9wLFxuICBTZXhwT3Bjb2Rlcyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkdjAgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQgeyBleHByIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9leHByJztcbmltcG9ydCB7IGlzR2V0RnJlZUhlbHBlciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvcmVzb2x1dGlvbic7XG5pbXBvcnQgeyBTaW1wbGVBcmdzIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zaGFyZWQnO1xuaW1wb3J0IHsgQ2FsbCwgQ2FsbER5bmFtaWMsIEN1cnJ5LCBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bSc7XG5pbXBvcnQgeyBDb21waWxlcnMsIFB1c2hFeHByZXNzaW9uT3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5cbmV4cG9ydCBjb25zdCBFWFBSRVNTSU9OUyA9IG5ldyBDb21waWxlcnM8UHVzaEV4cHJlc3Npb25PcCwgRXhwcmVzc2lvblNleHBPcGNvZGU+KCk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Db25jYXQsIChvcCwgWywgcGFydHNdKSA9PiB7XG4gIGZvciAobGV0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBleHByKG9wLCBwYXJ0KTtcbiAgfVxuXG4gIG9wKE9wLkNvbmNhdCwgcGFydHMubGVuZ3RoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ2FsbCwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUhlbHBlcihleHByZXNzaW9uKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUhlbHBlciwgZXhwcmVzc2lvbiwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICBDYWxsKG9wLCBoYW5kbGUsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICB9XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkN1cnJ5LCAob3AsIFssIGV4cHIsIHR5cGUsIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBDdXJyeShvcCwgdHlwZSwgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChPcC5HZXRWYXJpYWJsZSwgc3ltKTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCwgKG9wLCBbLCBzeW0sIHBhdGhdKSA9PiB7XG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZVRlbXBsYXRlTG9jYWwsIHN5bSwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgd2l0aFBhdGgob3AsIHBhdGgpO1xuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSwgKG9wLCBbLCBzeW0sIF9wYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVGcmVlLCBzeW0sIChfaGFuZGxlOiB1bmtub3duKSA9PiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IGluIHN0cmljdCBtb2RlXG4gIH0pO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNGYWxsYmFjaywgKG9wLCBbLCBmcmVlVmFyLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZnJlZVZhciwgKG5hbWU6IHN0cmluZykgPT4ge1xuICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICBvcChPcC5HZXRQcm9wZXJ0eSwgbmFtZSk7XG4gIH0pO1xuICB3aXRoUGF0aChvcCwgcGF0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrLCAoKSA9PiB7XG4gIC8vIFRPRE86IFRoZSBsb2dpYyBmb3IgdGhpcyBvcGNvZGUgY3VycmVudGx5IGV4aXN0cyBpbiBTVEFURU1FTlRTLkFwcGVuZCwgc2luY2VcbiAgLy8gd2Ugd2FudCBkaWZmZXJlbnQgd3JhcHBpbmcgbG9naWMgZGVwZW5kaW5nIG9uIGlmIHdlIGFyZSBpbnZva2luZyBhIGNvbXBvbmVudCxcbiAgLy8gaGVscGVyLCBvciB7e3RoaXN9fSBmYWxsYmFjay4gRXZlbnR1YWxseSB3ZSBmaXggdGhlIG9wY29kZXMgc28gdGhhdCB3ZSBjYW5cbiAgLy8gdHJhdmVyc2UgdGhlIHN1YmV4cHJlc3Npb24gdHJlZSBsaWtlIG5vcm1hbCBpbiB0aGlzIGxvY2F0aW9uLlxuICB0aHJvdyBuZXcgRXJyb3IoJ3VuaW1wbGVtZW50ZWQgb3Bjb2RlJyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKG9wLCBleHByKSA9PiB7XG4gIC8vIDxGb28gQGFyZz17e2Jhen19PlxuXG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUxvY2FsLCBleHByWzFdLCAoX25hbWU6IHN0cmluZykgPT4ge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsSGVscGVyLCBleHByLCB7XG4gICAgICBpZkhlbHBlcjogKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkZhbGxiYWNrOiAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZnVuY3Rpb24gd2l0aFBhdGgob3A6IFB1c2hFeHByZXNzaW9uT3AsIHBhdGg/OiBzdHJpbmdbXSkge1xuICBpZiAocGF0aCA9PT0gdW5kZWZpbmVkIHx8IHBhdGgubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIHBhdGhbaV0pO1xuICB9XG59XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5VbmRlZmluZWQsIChvcCkgPT4gUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgdW5kZWZpbmVkKSk7XG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2ssIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuSGFzQmxvY2spO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5IYXNCbG9ja1BhcmFtcywgKG9wLCBbLCBibG9ja10pID0+IHtcbiAgZXhwcihvcCwgYmxvY2spO1xuICBvcChPcC5TcHJlYWRCbG9jayk7XG4gIG9wKE9wLkNvbXBpbGVCbG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrUGFyYW1zKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSWZJbmxpbmUsIChvcCwgWywgY29uZGl0aW9uLCB0cnV0aHksIGZhbHN5XSkgPT4ge1xuICAvLyBQdXNoIGluIHJldmVyc2Ugb3JkZXJcbiAgZXhwcihvcCwgZmFsc3kpO1xuICBleHByKG9wLCB0cnV0aHkpO1xuICBleHByKG9wLCBjb25kaXRpb24pO1xuICBvcChPcC5JZklubGluZSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLk5vdCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Ob3QpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXREeW5hbWljVmFyLCAob3AsIFssIGV4cHJlc3Npb25dKSA9PiB7XG4gIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICBvcChPcC5HZXREeW5hbWljVmFyKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuTG9nLCAob3AsIFssIHBvc2l0aW9uYWxdKSA9PiB7XG4gIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBudWxsLCBmYWxzZSk7XG4gIG9wKE9wLkxvZyk7XG4gIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIG9wKE9wLkZldGNoLCAkdjApO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQU9BLFNBQUEsR0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLFNBQUEsUUFBQSx5QkFBQTtBQUNBLFNBQUEsSUFBQSxRQUFBLGdDQUFBO0FBQ0EsU0FBQSxlQUFBLFFBQUEsc0NBQUE7QUFDQSxTQUFBLFVBQUEsUUFBQSxrQ0FBQTtBQUNBLFNBQUEsSUFBQSxFQUFBLFdBQUEsRUFBQSxLQUFBLEVBQUEsc0JBQUEsUUFBQSw4QkFBQTtBQUNBLFNBQUEsU0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLEtBQUEsUUFBQSxjQUFBO0FBRUEsT0FBTyxJQUFNLFdBQVcsR0FBRyxJQUFwQixTQUFvQixFQUFwQjtBQUVQLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQW9DLFVBQUEsRUFBQSxRQUFrQjtBQUFBLE1BQWxCLEtBQWtCOztBQUNwRCx1REFBQSxLQUFBLHdDQUF3QjtBQUFBLFFBQXhCLElBQXdCO0FBQ3RCLElBQUEsSUFBSSxDQUFBLEVBQUEsRUFBSixJQUFJLENBQUo7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQW5CLE1BQUUsQ0FBRjtBQUxGLENBQUE7QUFRQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFrQyxVQUFBLEVBQUEsU0FBMEM7QUFBQSxNQUFyQyxVQUFxQztBQUFBLE1BQXJDLFVBQXFDO0FBQUEsTUFBMUMsS0FBMEM7O0FBQzFFLE1BQUksZUFBZSxDQUFuQixVQUFtQixDQUFuQixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELFVBQUEsTUFBRCxFQUFtQjtBQUN6RSxNQUFBLElBQUksQ0FBQSxFQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFB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QUtBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQWlDLFVBQUEsRUFBQSxVQUF1QjtBQUFBLE1BQXZCLFVBQXVCO0FBQ3RELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxVQUFVLENBQUEsRUFBQSxFQUFBLFVBQUEsRUFBQSxJQUFBLEVBQVYsS0FBVSxDQUFWO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFGLEdBQUUsQ0FBRjtBQUxGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFeHByZXNzaW9uU2V4cE9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJHYwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgZnJlZVZhciwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGZyZWVWYXIsIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChERUJVRykge1xuICAgICAgbGV0IHByb3BlcnR5UGF0aCA9IHBhdGggPyBbbmFtZSwgLi4ucGF0aF0uam9pbignLicpIDogbmFtZTtcblxuICAgICAgZGVwcmVjYXRlKFxuICAgICAgICBgVGhlIFxcYCR7cHJvcGVydHlQYXRofVxcYCBwcm9wZXJ0eSBwYXRoIHdhcyB1c2VkIGluIGEgdGVtcGxhdGUgZm9yIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIGNvbXBvbmVudCB3aXRob3V0IHVzaW5nIFxcYHRoaXNcXGAuIFRoaXMgZmFsbGJhY2sgYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYWxsIHByb3BlcnRpZXMgbXVzdCBiZSBsb29rZWQgdXAgb24gXFxgdGhpc1xcYCB3aGVuIHVzZWQgaW4gdGhlIHRlbXBsYXRlOiB7e3RoaXMuJHtwcm9wZXJ0eVBhdGh9fX1gLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgfSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssICgpID0+IHtcbiAgLy8gVE9ETzogVGhlIGxvZ2ljIGZvciB0aGlzIG9wY29kZSBjdXJyZW50bHkgZXhpc3RzIGluIFNUQVRFTUVOVFMuQXBwZW5kLCBzaW5jZVxuICAvLyB3ZSB3YW50IGRpZmZlcmVudCB3cmFwcGluZyBsb2dpYyBkZXBlbmRpbmcgb24gaWYgd2UgYXJlIGludm9raW5nIGEgY29tcG9uZW50LFxuICAvLyBoZWxwZXIsIG9yIHt7dGhpc319IGZhbGxiYWNrLiBFdmVudHVhbGx5IHdlIGZpeCB0aGUgb3Bjb2RlcyBzbyB0aGF0IHdlIGNhblxuICAvLyB0cmF2ZXJzZSB0aGUgc3ViZXhwcmVzc2lvbiB0cmVlIGxpa2Ugbm9ybWFsIGluIHRoaXMgbG9jYXRpb24uXG4gIHRocm93IG5ldyBFcnJvcigndW5pbXBsZW1lbnRlZCBvcGNvZGUnKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrLCAob3AsIGV4cHIpID0+IHtcbiAgLy8gPEZvbyBAYXJnPXt7YmF6fX0+XG5cbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGV4cHJbMV0sIChfbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXIsIGV4cHIsIHtcbiAgICAgIGlmSGVscGVyOiAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2s6IChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIHByb3BlcnR5IHdhcyB1c2VkIGluIHRoZSB0ZW1wbGF0ZSBmb3IgdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgY29tcG9uZW50IHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZnVuY3Rpb24gd2l0aFBhdGgob3A6IFB1c2hFeHByZXNzaW9uT3AsIHBhdGg/OiBzdHJpbmdbXSkge1xuICBpZiAocGF0aCA9PT0gdW5kZWZpbmVkIHx8IHBhdGgubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIHBhdGhbaV0pO1xuICB9XG59XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5VbmRlZmluZWQsIChvcCkgPT4gUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgdW5kZWZpbmVkKSk7XG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2ssIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuSGFzQmxvY2spO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5IYXNCbG9ja1BhcmFtcywgKG9wLCBbLCBibG9ja10pID0+IHtcbiAgZXhwcihvcCwgYmxvY2spO1xuICBvcChPcC5TcHJlYWRCbG9jayk7XG4gIG9wKE9wLkNvbXBpbGVCbG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrUGFyYW1zKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSWZJbmxpbmUsIChvcCwgWywgY29uZGl0aW9uLCB0cnV0aHksIGZhbHN5XSkgPT4ge1xuICAvLyBQdXNoIGluIHJldmVyc2Ugb3JkZXJcbiAgZXhwcihvcCwgZmFsc3kpO1xuICBleHByKG9wLCB0cnV0aHkpO1xuICBleHByKG9wLCBjb25kaXRpb24pO1xuICBvcChPcC5JZklubGluZSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLk5vdCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Ob3QpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXREeW5hbWljVmFyLCAob3AsIFssIGV4cHJlc3Npb25dKSA9PiB7XG4gIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICBvcChPcC5HZXREeW5hbWljVmFyKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuTG9nLCAob3AsIFssIHBvc2l0aW9uYWxdKSA9PiB7XG4gIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBudWxsLCBmYWxzZSk7XG4gIG9wKE9wLkxvZyk7XG4gIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIG9wKE9wLkZldGNoLCAkdjApO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9 |
@@ -0,1 +1,2 @@ | ||
import { deprecate } from '@glimmer/global-context'; | ||
import { $fp, $sp } from '@glimmer/vm'; | ||
@@ -277,3 +278,6 @@ import { InvokeStaticBlock, InvokeStaticBlockWithStack, YieldBlock } from '../opcode-builder/helpers/blocks'; | ||
/* ResolveLocal */ | ||
, value[1], function (name) { | ||
, value[1], function (name, moduleName) { | ||
deprecate("The `" + name + "` property was used in a template for the `" + moduleName + "` component without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + name + "}}", false, { | ||
id: 'this-property-fallback' | ||
}); | ||
op(21 | ||
@@ -599,2 +603,2 @@ /* GetVariable */ | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsU0FBQSxHQUFBLEVBQUEsR0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLGlCQUFBLEVBQUEsMEJBQUEsRUFBQSxVQUFBLFFBQUEsa0NBQUE7QUFLQSxTQUFBLGVBQUEsRUFBQSxzQkFBQSxFQUFBLHdCQUFBLFFBQUEsc0NBQUE7QUFLQSxTQUFBLFdBQUEsRUFBQSxVQUFBLEVBQUEsWUFBQSxRQUFBLHVDQUFBO0FBQ0EsU0FBQSxJQUFBLFFBQUEsZ0NBQUE7QUFDQSxTQUFBLGlCQUFBLEVBQUEsVUFBQSxRQUFBLGtDQUFBO0FBQ0EsU0FBQSxJQUFBLEVBQUEsV0FBQSxFQUFBLFlBQUEsRUFBQSxzQkFBQSxRQUFBLDhCQUFBO0FBTUEsU0FBQSxrQkFBQSxFQUFBLFlBQUEsRUFBQSxhQUFBLFFBQUEsNEJBQUE7QUFDQSxTQUFBLFNBQUEsUUFBQSxhQUFBO0FBQ0EsU0FBQSxrQkFBQSxFQUFBLDBCQUFBLEVBQUEsaUJBQUEsRUFBQSxrQ0FBQSxRQUFBLHNDQUFBO0FBTUEsU0FBQSxXQUFBLFFBQUEsVUFBQTtBQUVBLE9BQU8sSUFBTSxVQUFVLEdBQUcsSUFBbkIsU0FBbUIsRUFBbkI7QUFFUCxJQUFNLGtCQUFrQixHQUVwQixDQUFBLE9BQUEsRUFBQSxJQUFBLEVBQUEsT0FBQSxFQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsT0FBQSxFQUZKLE1BRUksQ0FGSjtBQUdBLElBQU0saUJBQWlCLEdBRW5CLENBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxHQUFBLEVBRkosR0FFSSxDQUZKO0FBSUEsT0FBTSxTQUFBLGNBQUEsQ0FBQSxPQUFBLEVBQTJEO0FBQy9ELFNBQU8sT0FBQSxPQUFBLEtBQUEsUUFBQSxHQUFBLE9BQUEsR0FBd0MsaUJBQWlCLENBQWhFLE9BQWdFLENBQWhFO0FBQ0Q7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QyxVQUFBLEVBQUEsVUFBNEM7QUFBQSxNQUF2QyxJQUF1QztBQUFBLE1BQXZDLFVBQXVDO0FBQUEsTUFBdkMsS0FBdUM7QUFBQSxNQUE1QyxNQUE0Qzs7QUFDdEYsTUFBSSxrQkFBa0IsQ0FBdEIsSUFBc0IsQ0FBdEIsRUFBOEI7QUFDNUIsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUEsSUFBQSxFQUFvRCxVQUFBLFNBQUQsRUFBb0M7QUFDdkYsTUFBQSxlQUFlLENBQUEsRUFBQSxFQUFBLFNBQUEsRUFBQSxJQUFBLEVBQUEsVUFBQSxFQUFrQyxVQUFVLENBQTVDLEtBQTRDLENBQTVDLEVBQWYsTUFBZSxDQUFmO0FBREYsS0FBRSxDQUFGO0FBREYsR0FBQSxNQUlPO0FBQ0wsSUFBQSxzQkFBc0IsQ0FBQSxFQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxVQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxLQUFBLEVBQXRCLEtBQXNCLENBQXRCO0FBQ0Q7QUFQSCxDQUFBOztBQVVBLFNBQUEsVUFBQSxDQUFBLElBQUEsRUFBcUQ7QUFDbkQsTUFBSSxJQUFJLEtBQVIsSUFBQSxFQUFtQixPQUFBLElBQUE7QUFDbkIsTUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFKLENBQUksQ0FBSixDQUFBLEdBQUEsQ0FBYSxVQUFBLEdBQUQ7QUFBQSxpQkFBeEIsR0FBd0I7QUFBQSxHQUFaLENBQVo7QUFDQSxTQUFPLENBQUEsS0FBQSxFQUFpQyxJQUFJLENBQTVDLENBQTRDLENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlBhcnRpYWwsIChvcCwgWywgbmFtZSwgZXZhbEluZm9dKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBuYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkludm9rZVBhcnRpYWwsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbyk7XG4gICAgICBvcChPcC5Qb3BTY29wZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2soX25hbWU6IHN0cmluZykge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIHZhbHVlWzFdLCAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodmFsdWVbMF0gPT09IFNleHBPcGNvZGVzLkNhbGwpIHtcbiAgICBsZXQgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdID0gdmFsdWU7XG5cbiAgICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLCBleHByZXNzaW9uLCB7XG4gICAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpIHtcbiAgICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFN3aXRjaENhc2VzKFxuICAgICAgICBvcCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgICAgICAgIG9wKE9wLkR5bmFtaWNDb250ZW50VHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgICh3aGVuKSA9PiB7XG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5Db21wb25lbnQsICgpID0+IHtcbiAgICAgICAgICAgIG9wKE9wLlJlc29sdmVDdXJyaWVkQ29tcG9uZW50KTtcbiAgICAgICAgICAgIG9wKE9wLlB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgICAgICAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50KG9wLCB7XG4gICAgICAgICAgICAgIGNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgICAgICAgZWxlbWVudEJsb2NrOiBudWxsLFxuICAgICAgICAgICAgICBwb3NpdGlvbmFsLFxuICAgICAgICAgICAgICBuYW1lZCxcbiAgICAgICAgICAgICAgYXROYW1lczogZmFsc2UsXG4gICAgICAgICAgICAgIGJsb2NrczogbmFtZWRCbG9ja3MobnVsbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuSGVscGVyLCAoKSA9PiB7XG4gICAgICAgICAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQXBwZW5kLCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ3RydXN0aW5nLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQmxvY2ssIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW5FbGVtZW50LCAob3AsIFssIGJsb2NrLCBndWlkLCBkZXN0aW5hdGlvbiwgaW5zZXJ0QmVmb3JlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBndWlkKTtcblxuICAgICAgaWYgKGluc2VydEJlZm9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHByKG9wLCBpbnNlcnRCZWZvcmUpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCBkZXN0aW5hdGlvbik7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG5cbiAgICAgIHJldHVybiA0O1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5QdXNoUmVtb3RlRWxlbWVudCk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgICAgb3AoT3AuUG9wUmVtb3RlRWxlbWVudCk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLklmLCAob3AsIFssIGNvbmRpdGlvbiwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAxO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0sXG5cbiAgICBpbnZlcnNlXG4gICAgICA/ICgpID0+IHtcbiAgICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkVhY2gsIChvcCwgWywgdmFsdWUsIGtleSwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBleHByKG9wLCBrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkVudGVyTGlzdCwgbGFiZWxPcGVyYW5kKCdCT0RZJyksIGxhYmVsT3BlcmFuZCgnRUxTRScpKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgICAgb3AoTWFjaGluZU9wLlJldHVyblRvLCBsYWJlbE9wZXJhbmQoJ0lURVInKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnSVRFUicpO1xuICAgICAgb3AoT3AuSXRlcmF0ZSwgbGFiZWxPcGVyYW5kKCdCUkVBSycpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCT0RZJyk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDIpO1xuICAgICAgb3AoT3AuUG9wLCAyKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQlJFQUsnKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICBvcChPcC5FeGl0TGlzdCk7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0VMU0UnKTtcblxuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aCwgKG9wLCBbLCB2YWx1ZSwgYmxvY2ssIGludmVyc2VdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDEpO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkxldCwgKG9wLCBbLCBwb3NpdGlvbmFsLCBibG9ja10pID0+IHtcbiAgbGV0IGNvdW50ID0gQ29tcGlsZVBvc2l0aW9uYWwob3AsIHBvc2l0aW9uYWwpO1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIGNvdW50KTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoRHluYW1pY1ZhcnMsIChvcCwgWywgbmFtZWQsIGJsb2NrXSkgPT4ge1xuICBpZiAobmFtZWQpIHtcbiAgICBsZXQgW25hbWVzLCBleHByZXNzaW9uc10gPSBuYW1lZDtcblxuICAgIENvbXBpbGVQb3NpdGlvbmFsKG9wLCBleHByZXNzaW9ucyk7XG4gICAgRHluYW1pY1Njb3BlKG9wLCBuYW1lcywgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW52b2tlQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGhhc2hUb0FyZ3MoaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsKTogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsIHtcbiAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuICBsZXQgbmFtZXMgPSBoYXNoWzBdLm1hcCgoa2V5KSA9PiBgQCR7a2V5fWApO1xuICByZXR1cm4gW25hbWVzIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSwgaGFzaFsxXV07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBQSxTQUFBLFFBQUEseUJBQUE7QUFjQSxTQUFBLEdBQUEsRUFBQSxHQUFBLFFBQUEsYUFBQTtBQUNBLFNBQUEsaUJBQUEsRUFBQSwwQkFBQSxFQUFBLFVBQUEsUUFBQSxrQ0FBQTtBQUtBLFNBQUEsZUFBQSxFQUFBLHNCQUFBLEVBQUEsd0JBQUEsUUFBQSxzQ0FBQTtBQUtBLFNBQUEsV0FBQSxFQUFBLFVBQUEsRUFBQSxZQUFBLFFBQUEsdUNBQUE7QUFDQSxTQUFBLElBQUEsUUFBQSxnQ0FBQTtBQUNBLFNBQUEsaUJBQUEsRUFBQSxVQUFBLFFBQUEsa0NBQUE7QUFDQSxTQUFBLElBQUEsRUFBQSxXQUFBLEVBQUEsWUFBQSxFQUFBLHNCQUFBLFFBQUEsOEJBQUE7QUFNQSxTQUFBLGtCQUFBLEVBQUEsWUFBQSxFQUFBLGFBQUEsUUFBQSw0QkFBQTtBQUNBLFNBQUEsU0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLGtCQUFBLEVBQUEsMEJBQUEsRUFBQSxpQkFBQSxFQUFBLGtDQUFBLFFBQUEsc0NBQUE7QUFNQSxTQUFBLFdBQUEsUUFBQSxVQUFBO0FBRUEsT0FBTyxJQUFNLFVBQVUsR0FBRyxJQUFuQixTQUFtQixFQUFuQjtBQUVQLElBQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsSUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7QUFJQSxPQUFNLFNBQUEsY0FBQSxDQUFBLE9BQUEsRUFBMkQ7QUFDL0QsU0FBTyxPQUFBLE9BQUEsS0FBQSxRQUFBLEdBQUEsT0FBQSxHQUF3QyxpQkFB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Q0FBakI7QUFERixLQUFZLENBQVo7QUFKRixHQUFBLE1BT087QUFDTCxJQUFBLGlCQUFpQixDQUFBLEVBQUEsRUFBakIsS0FBaUIsQ0FBakI7QUFDRDtBQVZILENBQUE7QUFhQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUE0QyxVQUFBLEVBQUEsVUFBNEM7QUFBQSxNQUF2QyxJQUF1QztBQUFBLE1BQXZDLFVBQXVDO0FBQUEsTUFBdkMsS0FBdUM7QUFBQSxNQUE1QyxNQUE0Qzs7QUFDdEYsTUFBSSxrQkFBa0IsQ0FBdEIsSUFBc0IsQ0FBdEIsRUFBOEI7QUFDNUIsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUEsSUFBQSxFQUFvRCxVQUFBLFNBQUQsRUFBb0M7QUFDdkYsTUFBQSxlQUFlLENBQUEsRUFBQSxFQUFBLFNBQUEsRUFBQSxJQUFBLEVBQUEsVUFBQSxFQUFrQyxVQUFVLENBQTVDLEtBQTRDLENBQTVDLEVBQWYsTUFBZSxDQUFmO0FBREYsS0FBRSxDQUFGO0FBREYsR0FBQSxNQUlPO0FBQ0wsSUFBQSxzQkFBc0IsQ0FBQSxFQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxVQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxLQUFBLEVBQXRCLEtBQXNCLENBQXRCO0FBQ0Q7QUFQSCxDQUFBOztBQVVBLFNBQUEsVUFBQSxDQUFBLElBQUEsRUFBcUQ7QUFDbkQsTUFBSSxJQUFJLEtBQVIsSUFBQSxFQUFtQixPQUFBLElBQUE7QUFDbkIsTUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFKLENBQUksQ0FBSixDQUFBLEdBQUEsQ0FBYSxVQUFBLEdBQUQ7QUFBQSxpQkFBeEIsR0FBd0I7QUFBQSxHQUFaLENBQVo7QUFDQSxTQUFPLENBQUEsS0FBQSxFQUFpQyxJQUFJLENBQTVDLENBQTRDLENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlcHJlY2F0ZSB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlBhcnRpYWwsIChvcCwgWywgbmFtZSwgZXZhbEluZm9dKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBuYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkludm9rZVBhcnRpYWwsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbyk7XG4gICAgICBvcChPcC5Qb3BTY29wZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2soX25hbWU6IHN0cmluZykge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIHZhbHVlWzFdLCAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgcHJvcGVydHkgd2FzIHVzZWQgaW4gYSB0ZW1wbGF0ZSBmb3IgdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgY29tcG9uZW50IHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgICBvcChPcC5HZXRQcm9wZXJ0eSwgbmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHZhbHVlWzBdID09PSBTZXhwT3Bjb2Rlcy5DYWxsKSB7XG4gICAgbGV0IFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSA9IHZhbHVlO1xuXG4gICAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHJlc3Npb24pKSB7XG4gICAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnRPckhlbHBlciwgZXhwcmVzc2lvbiwge1xuICAgICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBudWxsKTtcbiAgICAgICAgfSxcbiAgICAgICAgaWZIZWxwZXIoaGFuZGxlOiBudW1iZXIpIHtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBTd2l0Y2hDYXNlcyhcbiAgICAgICAgb3AsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICAgICAgICBvcChPcC5EeW5hbWljQ29udGVudFR5cGUpO1xuICAgICAgICB9LFxuICAgICAgICAod2hlbikgPT4ge1xuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuQ29tcG9uZW50LCAoKSA9PiB7XG4gICAgICAgICAgICBvcChPcC5SZXNvbHZlQ3VycmllZENvbXBvbmVudCk7XG4gICAgICAgICAgICBvcChPcC5QdXNoRHluYW1pY0NvbXBvbmVudEluc3RhbmNlKTtcbiAgICAgICAgICAgIEludm9rZU5vblN0YXRpY0NvbXBvbmVudChvcCwge1xuICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM6IHRydWUsXG4gICAgICAgICAgICAgIGVsZW1lbnRCbG9jazogbnVsbCxcbiAgICAgICAgICAgICAgcG9zaXRpb25hbCxcbiAgICAgICAgICAgICAgbmFtZWQsXG4gICAgICAgICAgICAgIGF0TmFtZXM6IGZhbHNlLFxuICAgICAgICAgICAgICBibG9ja3M6IG5hbWVkQmxvY2tzKG51bGwpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB3aGVuKENvbnRlbnRUeXBlLkhlbHBlciwgKCkgPT4ge1xuICAgICAgICAgICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCAoKSA9PiB7XG4gICAgICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtYXBwZW5kJykpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0FwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIG9wKE9wLlRleHQsIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWx1ZSkpO1xuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCd0cnVzdGluZy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkJsb2NrLCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkluRWxlbWVudCwgKG9wLCBbLCBibG9jaywgZ3VpZCwgZGVzdGluYXRpb24sIGluc2VydEJlZm9yZV0pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgZ3VpZCk7XG5cbiAgICAgIGlmIChpbnNlcnRCZWZvcmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwcihvcCwgaW5zZXJ0QmVmb3JlKTtcbiAgICAgIH1cblxuICAgICAgZXhwcihvcCwgZGVzdGluYXRpb24pO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuXG4gICAgICByZXR1cm4gNDtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuUHVzaFJlbW90ZUVsZW1lbnQpO1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICAgIG9wKE9wLlBvcFJlbW90ZUVsZW1lbnQpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JZiwgKG9wLCBbLCBjb25kaXRpb24sIGJsb2NrLCBpbnZlcnNlXSkgPT5cbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gICAgICBvcChPcC5Ub0Jvb2xlYW4pO1xuXG4gICAgICByZXR1cm4gMTtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9LFxuXG4gICAgaW52ZXJzZVxuICAgICAgPyAoKSA9PiB7XG4gICAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZFxuICApXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5FYWNoLCAob3AsIFssIHZhbHVlLCBrZXksIGJsb2NrLCBpbnZlcnNlXSkgPT5cbiAgUmVwbGF5YWJsZShcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgZXhwcihvcCwga2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIG51bGwpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCB2YWx1ZSk7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5FbnRlckxpc3QsIGxhYmVsT3BlcmFuZCgnQk9EWScpLCBsYWJlbE9wZXJhbmQoJ0VMU0UnKSk7XG4gICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJGZwLCAxKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5SZXR1cm5UbywgbGFiZWxPcGVyYW5kKCdJVEVSJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0lURVInKTtcbiAgICAgIG9wKE9wLkl0ZXJhdGUsIGxhYmVsT3BlcmFuZCgnQlJFQUsnKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQk9EWScpO1xuICAgICAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCAyKTtcbiAgICAgIG9wKE9wLlBvcCwgMik7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0JSRUFLJyk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgb3AoT3AuRXhpdExpc3QpO1xuICAgICAgb3AoTWFjaGluZU9wLkp1bXAsIGxhYmVsT3BlcmFuZCgnRklOQUxMWScpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdFTFNFJyk7XG5cbiAgICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLldpdGgsIChvcCwgWywgdmFsdWUsIGJsb2NrLCBpbnZlcnNlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG4gICAgICBvcChPcC5Ub0Jvb2xlYW4pO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCAxKTtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5MZXQsIChvcCwgWywgcG9zaXRpb25hbCwgYmxvY2tdKSA9PiB7XG4gIGxldCBjb3VudCA9IENvbXBpbGVQb3NpdGlvbmFsKG9wLCBwb3NpdGlvbmFsKTtcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sob3AsIGJsb2NrLCBjb3VudCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aER5bmFtaWNWYXJzLCAob3AsIFssIG5hbWVkLCBibG9ja10pID0+IHtcbiAgaWYgKG5hbWVkKSB7XG4gICAgbGV0IFtuYW1lcywgZXhwcmVzc2lvbnNdID0gbmFtZWQ7XG5cbiAgICBDb21waWxlUG9zaXRpb25hbChvcCwgZXhwcmVzc2lvbnMpO1xuICAgIER5bmFtaWNTY29wZShvcCwgbmFtZXMsICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkludm9rZUNvbXBvbmVudCwgKG9wLCBbLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIG51bGwsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3MsIGZhbHNlLCBmYWxzZSk7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBoYXNoVG9BcmdzKGhhc2g6IFdpcmVGb3JtYXQuQ29yZS5IYXNoIHwgbnVsbCk6IFdpcmVGb3JtYXQuQ29yZS5IYXNoIHwgbnVsbCB7XG4gIGlmIChoYXNoID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgbGV0IG5hbWVzID0gaGFzaFswXS5tYXAoKGtleSkgPT4gYEAke2tleX1gKTtcbiAgcmV0dXJuIFtuYW1lcyBhcyBbc3RyaW5nLCAuLi5zdHJpbmdbXV0sIGhhc2hbMV1dO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== |
{ | ||
"name": "@glimmer/opcode-compiler", | ||
"version": "0.74.0", | ||
"version": "0.74.1", | ||
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/opcode-compiler", | ||
"dependencies": { | ||
"@glimmer/env": "0.1.7", | ||
"@glimmer/util": "0.74.0", | ||
"@glimmer/wire-format": "0.74.0", | ||
"@glimmer/interfaces": "0.74.0", | ||
"@glimmer/vm": "0.74.0", | ||
"@glimmer/encoder": "0.74.0", | ||
"@glimmer/reference": "0.74.0" | ||
"@glimmer/util": "0.74.1", | ||
"@glimmer/wire-format": "0.74.1", | ||
"@glimmer/interfaces": "0.74.1", | ||
"@glimmer/vm": "0.74.1", | ||
"@glimmer/encoder": "0.74.1", | ||
"@glimmer/reference": "0.74.1" | ||
}, | ||
"devDependencies": { | ||
"@glimmer/debug": "0.74.0", | ||
"@glimmer/local-debug-flags": "0.74.0" | ||
"@glimmer/debug": "0.74.1", | ||
"@glimmer/local-debug-flags": "0.74.1" | ||
}, | ||
@@ -18,0 +18,0 @@ "main": "dist/commonjs/es2017/index.js", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1636216
17005
+ Added@glimmer/encoder@0.74.1(transitive)
+ Added@glimmer/global-context@0.74.1(transitive)
+ Added@glimmer/interfaces@0.74.1(transitive)
+ Added@glimmer/reference@0.74.1(transitive)
+ Added@glimmer/util@0.74.1(transitive)
+ Added@glimmer/validator@0.74.1(transitive)
+ Added@glimmer/vm@0.74.1(transitive)
+ Added@glimmer/wire-format@0.74.1(transitive)
- Removed@glimmer/encoder@0.74.0(transitive)
- Removed@glimmer/global-context@0.74.0(transitive)
- Removed@glimmer/interfaces@0.74.0(transitive)
- Removed@glimmer/reference@0.74.0(transitive)
- Removed@glimmer/util@0.74.0(transitive)
- Removed@glimmer/validator@0.74.0(transitive)
- Removed@glimmer/vm@0.74.0(transitive)
- Removed@glimmer/wire-format@0.74.0(transitive)
Updated@glimmer/encoder@0.74.1
Updated@glimmer/interfaces@0.74.1
Updated@glimmer/reference@0.74.1
Updated@glimmer/util@0.74.1
Updated@glimmer/vm@0.74.1
Updated@glimmer/wire-format@0.74.1