@remult/angular
Advanced tools
Comparing version 0.13.19 to 0.13.20
@@ -377,2 +377,2 @@ import { __awaiter } from "tslib"; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2J1aWxkLWFuZ3VsYXIvcHJvamVjdHMvYW5ndWxhci9pbnRlcmZhY2VzL3NyYy9ncmlkLXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLElBQUksRUFBNEQsWUFBWSxFQUFjLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV6SSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxZQUFZO0lBT3ZCLFlBQW9CLFVBQStCLEVBQVMsUUFBaUM7UUFBekUsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUF5QjtRQTJGN0YscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBK0h6QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixhQUFRLEdBQXFCLEVBQUUsQ0FBQztRQWNoQyxpQkFBWSxHQUFHLElBQUksWUFBWSxDQUFVLEdBQUcsRUFBRTtZQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBT3BCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFlVCxpQkFBWSxHQUFjLEVBQUUsQ0FBQztRQWtEckIsaUJBQVksR0FBRyxLQUFLLENBQUM7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SSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQTJCLENBQUE7YUFDaEk7WUFDRCxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7S0FBQTtJQUdELElBQUksS0FBSztRQUNQLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzdCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkTWV0YWRhdGEsIFNvcnQsIEZpZWxkc01ldGFkYXRhLCBFbnRpdHlPcmRlckJ5LCBFbnRpdHlGaWx0ZXIsIEZpbmRPcHRpb25zLCBnZXRFbnRpdHlSZWYsIFJlcG9zaXRvcnksIEZpbHRlciB9IGZyb20gXCJyZW11bHRcIjtcclxuXHJcbmltcG9ydCB7IEZpZWxkQ29sbGVjdGlvbiB9IGZyb20gXCIuL2NvbHVtbi1jb2xsZWN0aW9uXCI7XHJcbmltcG9ydCB7IERhdGFBcmVhU2V0dGluZ3MsIElEYXRhQXJlYVNldHRpbmdzIH0gZnJvbSBcIi4vZGF0YS1hcmVhLXNldHRpbmdzXCI7XHJcbmltcG9ydCB7IERhdGFDb250cm9sSW5mbywgRGF0YUNvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCIuL2RhdGEtY29udHJvbC1pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IERhdGFMaXN0IH0gZnJvbSBcIi4vZGF0YUxpc3RcIjtcclxuaW1wb3J0IHsgRmlsdGVySGVscGVyIH0gZnJvbSBcIi4vZmlsdGVyLWhlbHBlclwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEdyaWRTZXR0aW5nczxyb3dUeXBlPiAge1xyXG4gIHVuZG9DaGFuZ2VzKHI6IHJvd1R5cGUpIHtcclxuICAgIGxldCBoZWxwZXIgPSB0aGlzLmdldFJvd0hlbHBlcihyKTtcclxuICAgIGhlbHBlci51bmRvQ2hhbmdlcygpO1xyXG4gICAgaWYgKGhlbHBlci5pc05ldygpKVxyXG4gICAgICB0aGlzLnJlc3RMaXN0LnJlbW92ZUl0ZW0ocik7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVwb3NpdG9yeTogUmVwb3NpdG9yeTxyb3dUeXBlPiwgcHVibGljIHNldHRpbmdzPzogSURhdGFTZXR0aW5nczxyb3dUeXBlPikge1xyXG4gICAgaWYgKCFzZXR0aW5ncylcclxuICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzID0ge307XHJcbiAgICB0aGlzLnJlc3RMaXN0ID0gbmV3IERhdGFMaXN0PHJvd1R5cGU+KHJlcG9zaXRvcnkpO1xyXG4gICAgaWYgKHJlcG9zaXRvcnkpIHtcclxuICAgICAgdGhpcy5maWx0ZXJIZWxwZXIuZmlsdGVyUm93ID0gPHJvd1R5cGU+cmVwb3NpdG9yeS5jcmVhdGUoKTtcclxuICAgICAgcmVwb3NpdG9yeS5hZGRFdmVudExpc3RlbmVyKHtcclxuICAgICAgICB2YWxpZGF0aW5nOiBhc3luYyAoZW50aXR5KSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vblZhbGlkYXRlKVxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLm9uVmFsaWRhdGUoZW50aXR5KTtcclxuICAgICAgICAgIGlmICh0aGlzLm9uU2F2aW5nUm93KVxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLm9uU2F2aW5nUm93KGVudGl0eSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbHVtbnMgPSBuZXcgRmllbGRDb2xsZWN0aW9uPHJvd1R5cGU+KCgpID0+IHRoaXMuY3VycmVudFJvdywgKCkgPT4gdGhpcy5hbGxvd1VwZGF0ZSwgdGhpcy5maWx0ZXJIZWxwZXIsICgpID0+IHRoaXMuY3VycmVudFJvdyA/IHRydWUgOiBmYWxzZSwgKGEsIGIpID0+IHRoaXMucmVwb3NpdG9yeS5nZXRFbnRpdHlSZWYoYSkuZmllbGRzLmZpbmQoYikpXHJcblxyXG5cclxuXHJcbiAgICBpZiAoc2V0dGluZ3MpIHtcclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5jb2x1bW5TZXR0aW5ncykge1xyXG4gICAgICAgIGxldCB4ID0gc2V0dGluZ3MuY29sdW1uU2V0dGluZ3MocmVwb3NpdG9yeS5tZXRhZGF0YS5maWVsZHMpO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucy5hZGQoLi4ueCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNldHRpbmdzLmFsbG93Q3J1ZCAhPT0gdW5kZWZpbmVkKSB7XHJcblxyXG4gICAgICAgIGlmIChzZXR0aW5ncy5hbGxvd1VwZGF0ZSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgc2V0dGluZ3MuYWxsb3dVcGRhdGUgPSBzZXR0aW5ncy5hbGxvd0NydWQ7XHJcbiAgICAgICAgaWYgKHNldHRpbmdzLmFsbG93RGVsZXRlID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICBzZXR0aW5ncy5hbGxvd0RlbGV0ZSA9IHNldHRpbmdzLmFsbG93Q3J1ZDtcclxuICAgICAgICBpZiAoc2V0dGluZ3MuYWxsb3dJbnNlcnQgPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgIHNldHRpbmdzLmFsbG93SW5zZXJ0ID0gc2V0dGluZ3MuYWxsb3dDcnVkO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZXR0aW5ncy5hbGxvd1VwZGF0ZSlcclxuICAgICAgICB0aGlzLmFsbG93VXBkYXRlID0gdHJ1ZTtcclxuICAgICAgaWYgKHNldHRpbmdzLmFsbG93RGVsZXRlKVxyXG4gICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSB0cnVlO1xyXG4gICAgICBpZiAoc2V0dGluZ3MuYWxsb3dJbnNlcnQpXHJcbiAgICAgICAgdGhpcy5hbGxvd0luc2VydCA9IHRydWU7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5zaG93RGF0YUFyZWEpXHJcbiAgICAgICAgdGhpcy5zaG93RGF0YUFyZWEgPSBzZXR0aW5ncy5zaG93RGF0YUFyZWE7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5zaG93UGFnaW5hdGlvbiA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHNldHRpbmdzLnNob3dQYWdpbmF0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5udW1PZkNvbHVtbnNJbkdyaWQgIT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQgPSBzZXR0aW5ncy5udW1PZkNvbHVtbnNJbkdyaWQ7XHJcblxyXG4gICAgICBpZiAoc2V0dGluZ3Mucm93QnV0dG9ucylcclxuICAgICAgICB0aGlzLl9idXR0b25zID0gc2V0dGluZ3Mucm93QnV0dG9ucztcclxuXHJcblxyXG4gICAgICBpZiAoc2V0dGluZ3Mucm93Q3NzQ2xhc3MpXHJcbiAgICAgICAgdGhpcy5yb3dDbGFzcyA9IHNldHRpbmdzLnJvd0Nzc0NsYXNzO1xyXG4gICAgICBpZiAoc2V0dGluZ3Muc2F2aW5nKVxyXG4gICAgICAgIHRoaXMub25TYXZpbmdSb3cgPSBzZXR0aW5ncy5zYXZpbmc7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5lbnRlclJvdylcclxuICAgICAgICB0aGlzLm9uRW50ZXJSb3cgPSBzZXR0aW5ncy5lbnRlclJvdztcclxuICAgICAgaWYgKHNldHRpbmdzLm5ld1JvdylcclxuICAgICAgICB0aGlzLm9uTmV3Um93ID0gc2V0dGluZ3MubmV3Um93O1xyXG4gICAgICBpZiAoc2V0dGluZ3MudmFsaWRhdGlvbilcclxuICAgICAgICB0aGlzLm9uVmFsaWRhdGUgPSBzZXR0aW5ncy52YWxpZGF0aW9uO1xyXG4gICAgICBpZiAoc2V0dGluZ3MuY2FwdGlvbilcclxuICAgICAgICB0aGlzLmNhcHRpb24gPSBzZXR0aW5ncy5jYXB0aW9uO1xyXG4gICAgICBpZiAoIXRoaXMuY2FwdGlvbiAmJiByZXBvc2l0b3J5KSB7XHJcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gcmVwb3NpdG9yeS5tZXRhZGF0YS5jYXB0aW9uO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZXR0aW5ncy5wYWdlKVxyXG4gICAgICAgIHRoaXMucGFnZSA9IHNldHRpbmdzLnBhZ2U7XHJcblxyXG4gICAgICBpZiAoc2V0dGluZ3Mucm93c0luUGFnZSlcclxuICAgICAgICB0aGlzLnJvd3NQZXJQYWdlID0gc2V0dGluZ3Mucm93c0luUGFnZTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMucm93c1BlclBhZ2UgPSAyNTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucy5pbmRleE9mKHRoaXMucm93c1BlclBhZ2UpIDwgMCkge1xyXG4gICAgICAgIHRoaXMucm93c1BlclBhZ2VPcHRpb25zLnB1c2godGhpcy5yb3dzUGVyUGFnZSk7XHJcbiAgICAgICAgdGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMuc29ydCgoYSwgYikgPT4gK2EgLSArYik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5vcmRlckJ5KVxyXG4gICAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5ID0gU29ydC50cmFuc2xhdGVPcmRlckJ5VG9Tb3J0KHRoaXMucmVwb3NpdG9yeS5tZXRhZGF0YSwgdGhpcy5zZXR0aW5ncy5vcmRlckJ5KTtcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgY3Vyckxpc3Q6IERhdGFDb250cm9sU2V0dGluZ3NbXTtcclxuICBvcmlnTGlzdDogRGF0YUNvbnRyb2xTZXR0aW5nc1tdO1xyXG4gIG9yaWdOdW1PZkNvbHVtbnM6IG51bWJlcjtcclxuICBzaG93U2VsZWN0Q29sdW1uID0gZmFsc2U7XHJcblxyXG4gIGluaXRPcmlnTGlzdCgpIHtcclxuICAgIGlmICghdGhpcy5vcmlnTGlzdCkge1xyXG4gICAgICB0aGlzLm9yaWdMaXN0ID0gW107XHJcbiAgICAgIHRoaXMub3JpZ051bU9mQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQ7XHJcbiAgICAgIHRoaXMub3JpZ0xpc3QucHVzaCguLi50aGlzLmNvbHVtbnMuaXRlbXMpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1c2VyQ2hvb3NlQ29sdW1ucygpIHtcclxuICAgIHRoaXMuaW5pdE9yaWdMaXN0KCk7XHJcbiAgICBpZiAoIXRoaXMuY3Vyckxpc3QpIHtcclxuXHJcbiAgICAgIHRoaXMucmVzZXRDb2x1bW5zKCk7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93U2VsZWN0Q29sdW1uID0gIXRoaXMuc2hvd1NlbGVjdENvbHVtbjtcclxuICB9XHJcbiAgcmVzZXRDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5jdXJyTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jb2x1bW5zLml0ZW1zID0gdGhpcy5jdXJyTGlzdDtcclxuICAgIHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQgPSB0aGlzLm9yaWdOdW1PZkNvbHVtbnM7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMub3JpZ0xpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgLy8gaWYgKGkgPCB0aGlzLmNvbHVtbnMubnVtT2ZDb2x1bW5zSW5HcmlkKVxyXG4gICAgICB0aGlzLmN1cnJMaXN0LnB1c2godGhpcy5vcmlnTGlzdFtpXSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQ29sKGM6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHRoaXMuY29sdW1ucy5kZWxldGVDb2woYylcclxuICAgIHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQtLTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIGFkZE5ld1JvdygpIHtcclxuICAgIGxldCByOiBhbnkgPSB0aGlzLnJlc3RMaXN0LmFkZCgpO1xyXG4gICAgaWYgKHRoaXMub25OZXdSb3cpXHJcbiAgICAgIHRoaXMub25OZXdSb3cocik7XHJcbiAgICB0aGlzLnNldEN1cnJlbnRSb3cocik7XHJcbiAgfVxyXG5cclxuICBub2FtOiBzdHJpbmc7XHJcblxyXG4gIGFkZEFyZWEoc2V0dGluZ3M6IElEYXRhQXJlYVNldHRpbmdzPHJvd1R5cGU+KSB7XHJcbiAgICBsZXQgY29sID0gbmV3IEZpZWxkQ29sbGVjdGlvbjxyb3dUeXBlPigoKSA9PiB0aGlzLmN1cnJlbnRSb3csICgpID0+IHRoaXMuYWxsb3dVcGRhdGUsIHRoaXMuZmlsdGVySGVscGVyLCAoKSA9PiB0aGlzLmN1cnJlbnRSb3cgPyB0cnVlIDogZmFsc2UsIChhLCBiKSA9PiB0aGlzLnJlcG9zaXRvcnkuZ2V0RW50aXR5UmVmKGEpLmZpZWxkcy5maW5kKGIpKTtcclxuICAgIGNvbC5udW1PZkNvbHVtbnNJbkdyaWQgPSAwO1xyXG5cclxuICAgIHJldHVybiBuZXcgRGF0YUFyZWFTZXR0aW5nczxyb3dUeXBlPihzZXR0aW5ncywgY29sLCB0aGlzLnJlcG9zaXRvcnkubWV0YWRhdGEuZmllbGRzKTtcclxuICB9XHJcbiAgY3VycmVudFJvdzogcm93VHlwZTtcclxuICBzZXRDdXJyZW50Um93KHJvdzogcm93VHlwZSkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFJvdyAhPSByb3cpIHtcclxuICAgICAgdGhpcy5jdXJyZW50Um93ID0gcm93O1xyXG4gICAgICBpZiAodGhpcy5vbkVudGVyUm93ICYmIHJvdykge1xyXG5cclxuICAgICAgICB0aGlzLm9uRW50ZXJSb3cocm93KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgbmV4dFJvdygpIHtcclxuICAgIGlmICghdGhpcy5jdXJyZW50Um93ICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMClcclxuICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbMF0pO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFJvdykge1xyXG4gICAgICBsZXQgY3VycmVudFJvd1Bvc2l0aW9uID0gdGhpcy5pdGVtcy5pbmRleE9mKHRoaXMuY3VycmVudFJvdyk7XHJcbiAgICAgIGlmIChjdXJyZW50Um93UG9zaXRpb24gPCB0aGlzLml0ZW1zLmxlbmd0aCAtIDEpXHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbY3VycmVudFJvd1Bvc2l0aW9uICsgMV0pO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5uZXh0UGFnZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbMF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcmV2aW91c1Jvd0FsbG93ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50Um93ICYmIHRoaXMuaXRlbXMuaW5kZXhPZih0aGlzLmN1cnJlbnRSb3cpID4gMCB8fCB0aGlzLnBhZ2UgPiAxO1xyXG4gIH1cclxuICBwcmV2aW91c1JvdygpIHtcclxuICAgIGlmICghdGhpcy5wcmV2aW91c1Jvd0FsbG93ZWQoKSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGxldCBjdXJyZW50Um93UG9zaXRpb24gPSB0aGlzLml0ZW1zLmluZGV4T2YodGhpcy5jdXJyZW50Um93KTtcclxuICAgIGlmIChjdXJyZW50Um93UG9zaXRpb24gPiAwKVxyXG4gICAgICB0aGlzLnNldEN1cnJlbnRSb3codGhpcy5pdGVtc1tjdXJyZW50Um93UG9zaXRpb24gLSAxXSk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMucGFnZSA+IDEpXHJcbiAgICAgICAgdGhpcy5wcmV2aW91c1BhZ2UoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLml0ZW1zLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMV0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgZGVsZXRlQ3VyZW50Um93KCkge1xyXG4gICAgaWYgKCF0aGlzLmRlbGV0ZUN1cnJlbnRSb3dBbGxvd2VkKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLmRlbGV0ZSgpO1xyXG4gIH1cclxuICBjdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSB7XHJcbiAgICBpZiAoIXRoaXMuY3VycmVudFJvdylcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZ2V0Um93SGVscGVyKHRoaXMuY3VycmVudFJvdyk7XHJcbiAgfVxyXG4gIGdldFJvd0hlbHBlcihpdGVtOiByb3dUeXBlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3J5LmdldEVudGl0eVJlZihpdGVtKTtcclxuICB9XHJcbiAgY2FuY2VsQ3VycmVudFJvd0NoYW5nZXMoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSAmJiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpKVxyXG4gICAgICB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLnVuZG9DaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIGRlbGV0ZUN1cnJlbnRSb3dBbGxvd2VkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkgJiYgdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5kZWxldGUgJiYgdGhpcy5hbGxvd0RlbGV0ZSAmJiAhdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5pc05ldygpO1xyXG4gIH1cclxuICBjdXJyZW50Um93Q2hhbmdlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpICYmIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkud2FzQ2hhbmdlZCgpO1xyXG4gIH1cclxuICBzYXZlQ3VycmVudFJvdygpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpICYmIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkuc2F2ZSlcclxuICAgICAgdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5zYXZlKCk7XHJcbiAgfVxyXG5cclxuICBhbGxvd1VwZGF0ZSA9IGZhbHNlO1xyXG4gIGFsbG93SW5zZXJ0ID0gZmFsc2U7XHJcbiAgYWxsb3dEZWxldGUgPSBmYWxzZTtcclxuICBzaG93RGF0YUFyZWEgPSBmYWxzZTtcclxuXHJcblxyXG4gIF9idXR0b25zOiBSb3dCdXR0b248YW55PltdID0gW107XHJcblxyXG4gIHJvd0NsYXNzPzogKHJvdzogYW55KSA9PiBzdHJpbmc7XHJcbiAgb25TYXZpbmdSb3c/OiAocm93OiBhbnkpID0+IFByb21pc2U8YW55PiB8IGFueTtcclxuICBvblZhbGlkYXRlPzogKHJvdzogcm93VHlwZSkgPT4gUHJvbWlzZTxhbnk+IHwgYW55O1xyXG4gIG9uRW50ZXJSb3c6IChyb3c6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgb25OZXdSb3c6IChyb3c6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgX2RvU2F2aW5nUm93KHM6IHJvd1R5cGUpIHtcclxuXHJcbiAgICByZXR1cm4gZ2V0RW50aXR5UmVmKHMpLnNhdmUoKTtcclxuXHJcbiAgfVxyXG4gIGNhcHRpb246IHN0cmluZztcclxuXHJcbiAgZmlsdGVySGVscGVyID0gbmV3IEZpbHRlckhlbHBlcjxyb3dUeXBlPigoKSA9PiB7XHJcbiAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgdGhpcy5yZWxvYWREYXRhKCk7XHJcbiAgfSwgdGhpcy5yZXBvc2l0b3J5KTtcclxuXHJcbiAgY29sdW1uczogRmllbGRDb2xsZWN0aW9uPHJvd1R5cGU+O1xyXG5cclxuXHJcblxyXG5cclxuICBwYWdlID0gMTtcclxuICBuZXh0UGFnZSgpIHtcclxuICAgIHRoaXMucGFnZSsrO1xyXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkRGF0YSgpO1xyXG4gIH1cclxuICBwcmV2aW91c1BhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5wYWdlIDw9IDEpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMucGFnZS0tO1xyXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkRGF0YSgpO1xyXG4gIH1cclxuICBmaXJzdFBhZ2UoKSB7XHJcbiAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkRGF0YSgpO1xyXG4gIH1cclxuICBzZWxlY3RlZFJvd3M6IHJvd1R5cGVbXSA9IFtdO1xyXG4gIHNlbGVjdGVkQ2hhbmdlZChyb3c6IHJvd1R5cGUpIHtcclxuICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQocm93KSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUm93cy5zcGxpY2UodGhpcy5zZWxlY3RlZFJvd3MuaW5kZXhPZihyb3cpLCAxKTtcclxuICAgICAgdGhpcy5fc2VsZWN0ZWRBbGwgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUm93cy5wdXNoKHJvdyk7XHJcblxyXG4gICAgICB0aGlzLl9zZWxlY3RlZEFsbCA9IHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PSB0aGlzLnRvdGFsUm93cztcclxuICAgIH1cclxuICB9XHJcbiAgbGFzdFNlbGVjdGVkUm93V2l0aFNoaWZ0OiByb3dUeXBlO1xyXG4gIGNsaWNrT25zZWxlY3RDaGVja2JveEZvcihyb3c6IHJvd1R5cGUsIHNoaWZ0OiBib29sZWFuKSB7XHJcbiAgICBpZiAoc2hpZnQpIHtcclxuICAgICAgaWYgKCF0aGlzLmxhc3RTZWxlY3RlZFJvd1dpdGhTaGlmdCkge1xyXG4gICAgICAgIHRoaXMubGFzdFNlbGVjdGVkUm93V2l0aFNoaWZ0ID0gcm93O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAoY29uc3QgcnVsZSBvZiB0aGlzLml0ZW1zKSB7XHJcblxyXG4gICAgICAgICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgICAgICAgIGlmIChydWxlID09IHJvdyB8fCBydWxlID09IHRoaXMubGFzdFNlbGVjdGVkUm93V2l0aFNoaWZ0KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5sYXN0U2VsZWN0ZWRSb3dXaXRoU2hpZnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5zZWxlY3RlZENoYW5nZWQocnVsZSk7XHJcbiAgICAgICAgICB9IGVsc2VcclxuICAgICAgICAgICAgZm91bmQgPSBydWxlID09IHJvdyB8fCBydWxlID09IHRoaXMubGFzdFNlbGVjdGVkUm93V2l0aFNoaWZ0O1xyXG5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubGFzdFNlbGVjdGVkUm93V2l0aFNoaWZ0ID0gcm93O1xyXG5cclxuXHJcbiAgfVxyXG4gIGlzU2VsZWN0ZWQocm93OiByb3dUeXBlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFJvd3MuaW5kZXhPZihyb3cpID49IDA7XHJcbiAgfVxyXG4gIHNlbGVjdEFsbEludGVybWl0ZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCA+IDAgJiYgKHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCAhPSB0aGlzLml0ZW1zLmxlbmd0aCB8fCAhdGhpcy5fc2VsZWN0ZWRBbGwpO1xyXG4gIH1cclxuICBzZWxlY3RBbGxDaGVja2VkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFJvd3MubGVuZ3RoID09IHRoaXMuaXRlbXMubGVuZ3RoICYmIHRoaXMuX3NlbGVjdGVkQWxsO1xyXG4gIH1cclxuICBwcml2YXRlIF9zZWxlY3RlZEFsbCA9IGZhbHNlO1xyXG4gIHNlbGVjdEFsbENoYW5nZWQoZTogeyBjaGVja2VkOiBib29sZWFuIH0pIHtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkUm93cy5zcGxpY2UoMCk7XHJcbiAgICBpZiAoZS5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzLnB1c2goLi4udGhpcy5pdGVtcyk7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGVkQWxsID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fc2VsZWN0ZWRBbGwgPSBmYWxzZTtcclxuICB9XHJcbiAgcm93c1BlclBhZ2U6IG51bWJlcjtcclxuICByb3dzUGVyUGFnZU9wdGlvbnMgPSBbMTAsIDI1LCA1MCwgMTAwXTtcclxuICBnZXQob3B0aW9uczogRmluZE9wdGlvbnM8cm93VHlwZT4pIHtcclxuICAgIGlmIChvcHRpb25zLndoZXJlKVxyXG4gICAgICB0aGlzLnNldHRpbmdzLndoZXJlID0gKCkgPT4gb3B0aW9ucy53aGVyZTtcclxuICAgIGlmIChvcHRpb25zLm9yZGVyQnkpXHJcbiAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5ID0gU29ydC50cmFuc2xhdGVPcmRlckJ5VG9Tb3J0KHRoaXMucmVwb3NpdG9yeS5tZXRhZGF0YSwgb3B0aW9ucy5vcmRlckJ5KTtcclxuICAgIHRoaXMucGFnZSA9IDE7XHJcbiAgICByZXR1cm4gdGhpcy5yZWxvYWREYXRhKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgX2N1cnJlbnRPcmRlckJ5OiBTb3J0O1xyXG4gIHNvcnQoY29sdW1uOiBGaWVsZE1ldGFkYXRhKSB7XHJcblxyXG4gICAgbGV0IGRvbmUgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLl9jdXJyZW50T3JkZXJCeSAmJiB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5maWVsZC5rZXkgPT0gY29sdW1uLmtleSkge1xyXG4gICAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmlzRGVzY2VuZGluZyA9ICF0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5pc0Rlc2NlbmRpbmc7XHJcbiAgICAgICAgZG9uZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gaWYgKCFkb25lKVxyXG5cclxuICAgICAgdGhpcy5fY3VycmVudE9yZGVyQnkgPSBuZXcgU29ydCh7IGZpZWxkOiBjb2x1bW4gfSk7XHJcbiAgICB0aGlzLnJlbG9hZERhdGEoKTtcclxuICB9XHJcbiAgc29ydGVkQXNjZW5kaW5nKGNvbHVtbjogRmllbGRNZXRhZGF0YSkge1xyXG4gICAgaWYgKCF0aGlzLl9jdXJyZW50T3JkZXJCeSlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKCFjb2x1bW4pXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50cy5sZW5ndGggPiAwICYmXHJcbiAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmZpZWxkLmtleSA9PSBjb2x1bW4ua2V5ICYmXHJcbiAgICAgICF0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5pc0Rlc2NlbmRpbmc7XHJcbiAgfVxyXG4gIHNvcnRlZERlc2NlbmRpbmcoY29sdW1uOiBGaWVsZE1ldGFkYXRhKSB7XHJcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRPcmRlckJ5KVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAoIWNvbHVtbilcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHNbMF0uZmllbGQua2V5ID09IGNvbHVtbi5rZXkgJiZcclxuICAgICAgISF0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5pc0Rlc2NlbmRpbmc7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgdG90YWxSb3dzOiBudW1iZXI7XHJcblxyXG5cclxuICBhc3luYyByZWxvYWREYXRhKCkge1xyXG4gICAgbGV0IG9wdDogRmluZE9wdGlvbnM8cm93VHlwZT4gPSBhd2FpdCB0aGlzLl9pbnRlcm5hbEJ1aWxkRmluZE9wdGlvbnMoKTtcclxuICAgIHRoaXMuY29sdW1ucy5hdXRvR2VuZXJhdGVDb2x1bW5zQmFzZWRPbkRhdGEodGhpcy5yZXBvc2l0b3J5Lm1ldGFkYXRhKTtcclxuICAgIGxldCByZXN1bHQgPSB0aGlzLnJlc3RMaXN0LmdldChvcHQpLnRoZW4oKHJvd3MpID0+IHtcclxuXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5zZWxlY3RlZFJvd3MubWFwKHMgPT4ge1xyXG4gICAgICAgIGxldCBpZCA9IGdldEVudGl0eVJlZihzKS5nZXRJZCgpO1xyXG4gICAgICAgIGxldCByID0gcm93cy5maW5kKHIgPT4gZ2V0RW50aXR5UmVmKHIpLmdldElkKCkgPT0gaWQpO1xyXG4gICAgICAgIGlmIChyICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICByZXR1cm4gcjtcclxuICAgICAgICByZXR1cm4gcztcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5yZXN0TGlzdC5pdGVtcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh1bmRlZmluZWQpO1xyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLnJlc3RMaXN0Lml0ZW1zWzBdKTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3M/LnJvd3NMb2FkZWQpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzPy5yb3dzTG9hZGVkKHRoaXMucmVzdExpc3QuaXRlbXMpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLnJlc3RMaXN0O1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncyAmJiB0aGlzLnNldHRpbmdzLmtub3dUb3RhbFJvd3MpIHtcclxuICAgICAgdGhpcy5yZXN0TGlzdC5jb3VudChvcHQud2hlcmUpLnRoZW4oeCA9PiB7XHJcbiAgICAgICAgdGhpcy50b3RhbFJvd3MgPSB4O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfTtcclxuXHJcblxyXG5cclxuICBwcml2YXRlIHJlc3RMaXN0OiBEYXRhTGlzdDxyb3dUeXBlPjtcclxuICBhc3luYyBfaW50ZXJuYWxCdWlsZEZpbmRPcHRpb25zKCkge1xyXG4gICAgbGV0IG9wdDogRmluZE9wdGlvbnM8cm93VHlwZT4gPSB7fTtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLndoZXJlKSB7XHJcbiAgICAgIG9wdC53aGVyZSA9IGF3YWl0IEZpbHRlci5yZXNvbHZlKHRoaXMuc2V0dGluZ3Mud2hlcmUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Mub3JkZXJCeSlcclxuICAgICAgb3B0Lm9yZGVyQnkgPSB0aGlzLnNldHRpbmdzLm9yZGVyQnk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2N1cnJlbnRPcmRlckJ5KVxyXG4gICAgICBvcHQub3JkZXJCeSA9IHRoaXMuX2N1cnJlbnRPcmRlckJ5LnRvRW50aXR5T3JkZXJCeSgpO1xyXG5cclxuICAgIG9wdC5saW1pdCA9IHRoaXMucm93c1BlclBhZ2U7XHJcbiAgICBpZiAodGhpcy5wYWdlID4gMSlcclxuICAgICAgb3B0LnBhZ2UgPSB0aGlzLnBhZ2U7XHJcbiAgICB0aGlzLmZpbHRlckhlbHBlci5hZGRUb0ZpbmRPcHRpb25zKG9wdCk7XHJcbiAgICByZXR1cm4gb3B0O1xyXG4gIH1cclxuICBhc3luYyBnZXRGaWx0ZXJXaXRoU2VsZWN0ZWRSb3dzKCkge1xyXG4gICAgbGV0IHIgPSBhd2FpdCB0aGlzLl9pbnRlcm5hbEJ1aWxkRmluZE9wdGlvbnMoKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGggPiAwICYmICF0aGlzLl9zZWxlY3RlZEFsbCkge1xyXG4gICAgICByLndoZXJlID0geyAkYW5kOiBbci53aGVyZSwgdGhpcy5yZXBvc2l0b3J5Lm1ldGFkYXRhLmlkTWV0YWRhdGEuY3JlYXRlSWRJbkZpbHRlcih0aGlzLnNlbGVjdGVkUm93cyldIH0gYXMgRW50aXR5RmlsdGVyPHJvd1R5cGU+XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcjtcclxuICB9XHJcblxyXG5cclxuICBnZXQgaXRlbXMoKTogcm93VHlwZVtdIHtcclxuICAgIGlmICh0aGlzLnJlc3RMaXN0KVxyXG4gICAgICByZXR1cm4gdGhpcy5yZXN0TGlzdC5pdGVtcztcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFTZXR0aW5nczxyb3dUeXBlPiB7XHJcbiAgcm93c0xvYWRlZD86IChpdGVtczogcm93VHlwZVtdKSA9PiB2b2lkO1xyXG4gIGFsbG93VXBkYXRlPzogYm9vbGVhbixcclxuICBhbGxvd0luc2VydD86IGJvb2xlYW4sXHJcbiAgYWxsb3dEZWxldGU/OiBib29sZWFuLFxyXG4gIGFsbG93Q3J1ZD86IGJvb2xlYW4sXHJcbiAgc2hvd0RhdGFBcmVhPzogYm9vbGVhbixcclxuICBzaG93UGFnaW5hdGlvbj86IGJvb2xlYW4sXHJcbiAgYWxsb3dTZWxlY3Rpb24/OiBib29sZWFuLFxyXG4gIGNvbmZpcm1EZWxldGU/OiAocjogcm93VHlwZSkgPT4gUHJvbWlzZTxib29sZWFuPjtcclxuXHJcbiAgY29sdW1uU2V0dGluZ3M/OiAocm93OiBGaWVsZHNNZXRhZGF0YTxyb3dUeXBlPikgPT4gRGF0YUNvbnRyb2xJbmZvPHJvd1R5cGU+W10sXHJcbiAgYXJlYXM/OiB7IFthcmVhS2V5OiBzdHJpbmddOiBEYXRhQ29udHJvbEluZm88cm93VHlwZT5bXSB9LFxyXG5cclxuICByb3dDc3NDbGFzcz86IChyb3c6IHJvd1R5cGUpID0+IHN0cmluZztcclxuICByb3dCdXR0b25zPzogUm93QnV0dG9uPHJvd1R5cGU+W107XHJcbiAgZ3JpZEJ1dHRvbnM/OiBHcmlkQnV0dG9uW107XHJcblxyXG4gIC8qKiBmaWx0ZXJzIHRoZSBkYXRhXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiB3aGVyZSBwID0+IHAucHJpY2UuaXNHcmVhdGVyT3JFcXVhbFRvKDUpXHJcbiAgICogQHNlZSBGb3IgbW9yZSB1c2FnZSBleGFtcGxlcyBzZWUgW0VudGl0eVdoZXJlXShodHRwczovL3JlbXVsdC10cy5naXRodWIuaW8vZ3VpZGUvcmVmX2VudGl0eXdoZXJlKVxyXG4gICAqL1xyXG4gICB3aGVyZT86IEVudGl0eUZpbHRlcjxyb3dUeXBlPiB8ICgoKSA9PiBFbnRpdHlGaWx0ZXI8cm93VHlwZT4gfCBQcm9taXNlPEVudGl0eUZpbHRlcjxyb3dUeXBlPj4pO1xyXG4gIC8qKiBEZXRlcm1pbmVzIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgcmVzdWx0IHdpbGwgYmUgc29ydGVkIGluXHJcbiAgICogQHNlZSBTZWUgW0VudGl0eU9yZGVyQnldKGh0dHBzOi8vcmVtdWx0LXRzLmdpdGh1Yi5pby9ndWlkZS9yZWZfX2VudGl0eW9yZGVyYnkpIGZvciBtb3JlIGV4YW1wbGVzIG9uIGhvdyB0byBzb3J0XHJcbiAgICovXHJcbiAgb3JkZXJCeT86IEVudGl0eU9yZGVyQnk8cm93VHlwZT47XHJcbiAgLyoqIERldGVybWluZXMgdGhlIG51bWJlciBvZiByb3dzIHJldHVybmVkIGJ5IHRoZSByZXF1ZXN0LCBvbiB0aGUgYnJvd3NlciB0aGUgZGVmYXVsdCBpcyAyNSByb3dzIFxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogdGhpcy5wcm9kdWN0cyA9IGF3YWl0IHRoaXMucmVtdWx0LnJlcG8oUHJvZHVjdHMpLmdyaWRTZXR0aW5ncyh7XHJcbiAgICogIHJvd3NJblBhZ2U6MTAsXHJcbiAgICogIHBhZ2U6MlxyXG4gICogfSlcclxuICAqL1xyXG4gIHJvd3NJblBhZ2U/OiBudW1iZXI7XHJcbiAgLyoqIERldGVybWluZXMgdGhlIHBhZ2UgbnVtYmVyIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGV4dHJhY3QgdGhlIGRhdGEgXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiB0aGlzLnByb2R1Y3RzID0gYXdhaXQgdGhpcy5yZW11bHQucmVwbyhQcm9kdWN0cykuZ3JpZFNldHRpbmdzKHtcclxuICAgKiAgcm93c0luUGFnZToxMCxcclxuICAgKiAgcGFnZToyXHJcbiAgICogfSlcclxuICAqL1xyXG4gIHBhZ2U/OiBudW1iZXI7XHJcbiAgX19jdXN0b21GaW5kRGF0YT86IGFueTtcclxuICBrbm93VG90YWxSb3dzPzogYm9vbGVhbjtcclxuICBzYXZpbmc/OiAocjogcm93VHlwZSkgPT4gdm9pZDtcclxuICB2YWxpZGF0aW9uPzogKHI6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgZW50ZXJSb3c/OiAocjogcm93VHlwZSkgPT4gdm9pZDtcclxuICBuZXdSb3c/OiAocjogcm93VHlwZSkgPT4gdm9pZDtcclxuICBudW1PZkNvbHVtbnNJbkdyaWQ/OiBudW1iZXI7XHJcbiAgY2FwdGlvbj86IHN0cmluZztcclxuXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSb3dCdXR0b248cm93VHlwZT4ge1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgdmlzaWJsZT86IChyOiByb3dUeXBlKSA9PiBib29sZWFuO1xyXG4gIGNsaWNrPzogKHI6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgc2hvd0luTGluZT86IGJvb2xlYW47XHJcbiAgdGV4dEluTWVudT86IChzdHJpbmcgfCAoKHJvdzogcm93VHlwZSkgPT4gc3RyaW5nKSk7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBjc3NDbGFzcz86IChzdHJpbmcgfCAoKHJvdzogcm93VHlwZSkgPT4gc3RyaW5nKSk7XHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRCdXR0b24ge1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgdmlzaWJsZT86ICgpID0+IGJvb2xlYW47XHJcbiAgY2xpY2s/OiAoKSA9PiB2b2lkO1xyXG4gIHRleHRJbk1lbnU/OiAoKSA9PiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBjc3NDbGFzcz86IChzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKSk7XHJcbn1cclxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2J1aWxkLWFuZ3VsYXIvcHJvamVjdHMvYW5ndWxhci9pbnRlcmZhY2VzL3NyYy9ncmlkLXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLElBQUksRUFBNEQsWUFBWSxFQUFjLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV6SSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE1BQU0sT0FBTyxZQUFZO0lBT3ZCLFlBQW9CLFVBQStCLEVBQVMsUUFBaUM7UUFBekUsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUF5QjtRQTJGN0YscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBK0h6QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixhQUFRLEdBQXFCLEVBQUUsQ0FBQztRQWNoQyxpQkFBWSxHQUFHLElBQUksWUFBWSxDQUFVLEdBQUcsRUFBRTtZQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBT3BCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFlVCxpQkFBWSxHQUFjLEVBQUUsQ0FBQztRQWtEckIsaUJBQVksR0FBRyxLQUFLLENBQUM7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SSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQTJCLENBQUE7YUFDaEk7WUFDRCxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7S0FBQTtJQUdELElBQUksS0FBSztRQUNQLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzdCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkTWV0YWRhdGEsIFNvcnQsIEZpZWxkc01ldGFkYXRhLCBFbnRpdHlPcmRlckJ5LCBFbnRpdHlGaWx0ZXIsIEZpbmRPcHRpb25zLCBnZXRFbnRpdHlSZWYsIFJlcG9zaXRvcnksIEZpbHRlciB9IGZyb20gXCJyZW11bHRcIjtcclxuXHJcbmltcG9ydCB7IEZpZWxkQ29sbGVjdGlvbiB9IGZyb20gXCIuL2NvbHVtbi1jb2xsZWN0aW9uXCI7XHJcbmltcG9ydCB7IERhdGFBcmVhU2V0dGluZ3MsIElEYXRhQXJlYVNldHRpbmdzIH0gZnJvbSBcIi4vZGF0YS1hcmVhLXNldHRpbmdzXCI7XHJcbmltcG9ydCB7IERhdGFDb250cm9sSW5mbywgRGF0YUNvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCIuL2RhdGEtY29udHJvbC1pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IERhdGFMaXN0IH0gZnJvbSBcIi4vZGF0YUxpc3RcIjtcclxuaW1wb3J0IHsgRmlsdGVySGVscGVyIH0gZnJvbSBcIi4vZmlsdGVyLWhlbHBlclwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEdyaWRTZXR0aW5nczxyb3dUeXBlPiAge1xyXG4gIHVuZG9DaGFuZ2VzKHI6IHJvd1R5cGUpIHtcclxuICAgIGxldCBoZWxwZXIgPSB0aGlzLmdldFJvd0hlbHBlcihyKTtcclxuICAgIGhlbHBlci51bmRvQ2hhbmdlcygpO1xyXG4gICAgaWYgKGhlbHBlci5pc05ldygpKVxyXG4gICAgICB0aGlzLnJlc3RMaXN0LnJlbW92ZUl0ZW0ocik7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVwb3NpdG9yeTogUmVwb3NpdG9yeTxyb3dUeXBlPiwgcHVibGljIHNldHRpbmdzPzogSURhdGFTZXR0aW5nczxyb3dUeXBlPikge1xyXG4gICAgaWYgKCFzZXR0aW5ncylcclxuICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzID0ge307XHJcbiAgICB0aGlzLnJlc3RMaXN0ID0gbmV3IERhdGFMaXN0PHJvd1R5cGU+KHJlcG9zaXRvcnkpO1xyXG4gICAgaWYgKHJlcG9zaXRvcnkpIHtcclxuICAgICAgdGhpcy5maWx0ZXJIZWxwZXIuZmlsdGVyUm93ID0gPHJvd1R5cGU+cmVwb3NpdG9yeS5jcmVhdGUoKTtcclxuICAgICAgcmVwb3NpdG9yeS5hZGRFdmVudExpc3RlbmVyKHtcclxuICAgICAgICB2YWxpZGF0aW5nOiBhc3luYyAoZW50aXR5KSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vblZhbGlkYXRlKVxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLm9uVmFsaWRhdGUoZW50aXR5KTtcclxuICAgICAgICAgIGlmICh0aGlzLm9uU2F2aW5nUm93KVxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLm9uU2F2aW5nUm93KGVudGl0eSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbHVtbnMgPSBuZXcgRmllbGRDb2xsZWN0aW9uPHJvd1R5cGU+KCgpID0+IHRoaXMuY3VycmVudFJvdywgKCkgPT4gdGhpcy5hbGxvd1VwZGF0ZSwgdGhpcy5maWx0ZXJIZWxwZXIsICgpID0+IHRoaXMuY3VycmVudFJvdyA/IHRydWUgOiBmYWxzZSwgKGEsIGIpID0+IHRoaXMucmVwb3NpdG9yeS5nZXRFbnRpdHlSZWYoYSkuZmllbGRzLmZpbmQoYikpXHJcblxyXG5cclxuXHJcbiAgICBpZiAoc2V0dGluZ3MpIHtcclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5jb2x1bW5TZXR0aW5ncykge1xyXG4gICAgICAgIGxldCB4ID0gc2V0dGluZ3MuY29sdW1uU2V0dGluZ3MocmVwb3NpdG9yeS5tZXRhZGF0YS5maWVsZHMpO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucy5hZGQoLi4ueCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNldHRpbmdzLmFsbG93Q3J1ZCAhPT0gdW5kZWZpbmVkKSB7XHJcblxyXG4gICAgICAgIGlmIChzZXR0aW5ncy5hbGxvd1VwZGF0ZSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgc2V0dGluZ3MuYWxsb3dVcGRhdGUgPSBzZXR0aW5ncy5hbGxvd0NydWQ7XHJcbiAgICAgICAgaWYgKHNldHRpbmdzLmFsbG93RGVsZXRlID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICBzZXR0aW5ncy5hbGxvd0RlbGV0ZSA9IHNldHRpbmdzLmFsbG93Q3J1ZDtcclxuICAgICAgICBpZiAoc2V0dGluZ3MuYWxsb3dJbnNlcnQgPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgIHNldHRpbmdzLmFsbG93SW5zZXJ0ID0gc2V0dGluZ3MuYWxsb3dDcnVkO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZXR0aW5ncy5hbGxvd1VwZGF0ZSlcclxuICAgICAgICB0aGlzLmFsbG93VXBkYXRlID0gdHJ1ZTtcclxuICAgICAgaWYgKHNldHRpbmdzLmFsbG93RGVsZXRlKVxyXG4gICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSB0cnVlO1xyXG4gICAgICBpZiAoc2V0dGluZ3MuYWxsb3dJbnNlcnQpXHJcbiAgICAgICAgdGhpcy5hbGxvd0luc2VydCA9IHRydWU7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5zaG93RGF0YUFyZWEpXHJcbiAgICAgICAgdGhpcy5zaG93RGF0YUFyZWEgPSBzZXR0aW5ncy5zaG93RGF0YUFyZWE7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5zaG93UGFnaW5hdGlvbiA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHNldHRpbmdzLnNob3dQYWdpbmF0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5udW1PZkNvbHVtbnNJbkdyaWQgIT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQgPSBzZXR0aW5ncy5udW1PZkNvbHVtbnNJbkdyaWQ7XHJcblxyXG4gICAgICBpZiAoc2V0dGluZ3Mucm93QnV0dG9ucylcclxuICAgICAgICB0aGlzLl9idXR0b25zID0gc2V0dGluZ3Mucm93QnV0dG9ucztcclxuXHJcblxyXG4gICAgICBpZiAoc2V0dGluZ3Mucm93Q3NzQ2xhc3MpXHJcbiAgICAgICAgdGhpcy5yb3dDbGFzcyA9IHNldHRpbmdzLnJvd0Nzc0NsYXNzO1xyXG4gICAgICBpZiAoc2V0dGluZ3Muc2F2aW5nKVxyXG4gICAgICAgIHRoaXMub25TYXZpbmdSb3cgPSBzZXR0aW5ncy5zYXZpbmc7XHJcbiAgICAgIGlmIChzZXR0aW5ncy5lbnRlclJvdylcclxuICAgICAgICB0aGlzLm9uRW50ZXJSb3cgPSBzZXR0aW5ncy5lbnRlclJvdztcclxuICAgICAgaWYgKHNldHRpbmdzLm5ld1JvdylcclxuICAgICAgICB0aGlzLm9uTmV3Um93ID0gc2V0dGluZ3MubmV3Um93O1xyXG4gICAgICBpZiAoc2V0dGluZ3MudmFsaWRhdGlvbilcclxuICAgICAgICB0aGlzLm9uVmFsaWRhdGUgPSBzZXR0aW5ncy52YWxpZGF0aW9uO1xyXG4gICAgICBpZiAoc2V0dGluZ3MuY2FwdGlvbilcclxuICAgICAgICB0aGlzLmNhcHRpb24gPSBzZXR0aW5ncy5jYXB0aW9uO1xyXG4gICAgICBpZiAoIXRoaXMuY2FwdGlvbiAmJiByZXBvc2l0b3J5KSB7XHJcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gcmVwb3NpdG9yeS5tZXRhZGF0YS5jYXB0aW9uO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZXR0aW5ncy5wYWdlKVxyXG4gICAgICAgIHRoaXMucGFnZSA9IHNldHRpbmdzLnBhZ2U7XHJcblxyXG4gICAgICBpZiAoc2V0dGluZ3Mucm93c0luUGFnZSlcclxuICAgICAgICB0aGlzLnJvd3NQZXJQYWdlID0gc2V0dGluZ3Mucm93c0luUGFnZTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMucm93c1BlclBhZ2UgPSAyNTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucy5pbmRleE9mKHRoaXMucm93c1BlclBhZ2UpIDwgMCkge1xyXG4gICAgICAgIHRoaXMucm93c1BlclBhZ2VPcHRpb25zLnB1c2godGhpcy5yb3dzUGVyUGFnZSk7XHJcbiAgICAgICAgdGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMuc29ydCgoYSwgYikgPT4gK2EgLSArYik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChzZXR0aW5ncy5vcmRlckJ5KVxyXG4gICAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5ID0gU29ydC50cmFuc2xhdGVPcmRlckJ5VG9Tb3J0KHRoaXMucmVwb3NpdG9yeS5tZXRhZGF0YSwgdGhpcy5zZXR0aW5ncy5vcmRlckJ5KTtcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgY3Vyckxpc3Q6IERhdGFDb250cm9sU2V0dGluZ3NbXTtcclxuICBvcmlnTGlzdDogRGF0YUNvbnRyb2xTZXR0aW5nc1tdO1xyXG4gIG9yaWdOdW1PZkNvbHVtbnM6IG51bWJlcjtcclxuICBzaG93U2VsZWN0Q29sdW1uID0gZmFsc2U7XHJcblxyXG4gIGluaXRPcmlnTGlzdCgpIHtcclxuICAgIGlmICghdGhpcy5vcmlnTGlzdCkge1xyXG4gICAgICB0aGlzLm9yaWdMaXN0ID0gW107XHJcbiAgICAgIHRoaXMub3JpZ051bU9mQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQ7XHJcbiAgICAgIHRoaXMub3JpZ0xpc3QucHVzaCguLi50aGlzLmNvbHVtbnMuaXRlbXMpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1c2VyQ2hvb3NlQ29sdW1ucygpIHtcclxuICAgIHRoaXMuaW5pdE9yaWdMaXN0KCk7XHJcbiAgICBpZiAoIXRoaXMuY3Vyckxpc3QpIHtcclxuXHJcbiAgICAgIHRoaXMucmVzZXRDb2x1bW5zKCk7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93U2VsZWN0Q29sdW1uID0gIXRoaXMuc2hvd1NlbGVjdENvbHVtbjtcclxuICB9XHJcbiAgcmVzZXRDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5jdXJyTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jb2x1bW5zLml0ZW1zID0gdGhpcy5jdXJyTGlzdDtcclxuICAgIHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQgPSB0aGlzLm9yaWdOdW1PZkNvbHVtbnM7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMub3JpZ0xpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgLy8gaWYgKGkgPCB0aGlzLmNvbHVtbnMubnVtT2ZDb2x1bW5zSW5HcmlkKVxyXG4gICAgICB0aGlzLmN1cnJMaXN0LnB1c2godGhpcy5vcmlnTGlzdFtpXSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQ29sKGM6IERhdGFDb250cm9sU2V0dGluZ3MpIHtcclxuICAgIHRoaXMuY29sdW1ucy5kZWxldGVDb2woYylcclxuICAgIHRoaXMuY29sdW1ucy5udW1PZkNvbHVtbnNJbkdyaWQtLTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIGFkZE5ld1JvdygpIHtcclxuICAgIGxldCByOiBhbnkgPSB0aGlzLnJlc3RMaXN0LmFkZCgpO1xyXG4gICAgaWYgKHRoaXMub25OZXdSb3cpXHJcbiAgICAgIHRoaXMub25OZXdSb3cocik7XHJcbiAgICB0aGlzLnNldEN1cnJlbnRSb3cocik7XHJcbiAgfVxyXG5cclxuICBub2FtOiBzdHJpbmc7XHJcblxyXG4gIGFkZEFyZWEoc2V0dGluZ3M6IElEYXRhQXJlYVNldHRpbmdzPHJvd1R5cGU+KSB7XHJcbiAgICBsZXQgY29sID0gbmV3IEZpZWxkQ29sbGVjdGlvbjxyb3dUeXBlPigoKSA9PiB0aGlzLmN1cnJlbnRSb3csICgpID0+IHRoaXMuYWxsb3dVcGRhdGUsIHRoaXMuZmlsdGVySGVscGVyLCAoKSA9PiB0aGlzLmN1cnJlbnRSb3cgPyB0cnVlIDogZmFsc2UsIChhLCBiKSA9PiB0aGlzLnJlcG9zaXRvcnkuZ2V0RW50aXR5UmVmKGEpLmZpZWxkcy5maW5kKGIpKTtcclxuICAgIGNvbC5udW1PZkNvbHVtbnNJbkdyaWQgPSAwO1xyXG5cclxuICAgIHJldHVybiBuZXcgRGF0YUFyZWFTZXR0aW5nczxyb3dUeXBlPihzZXR0aW5ncywgY29sLCB0aGlzLnJlcG9zaXRvcnkubWV0YWRhdGEuZmllbGRzKTtcclxuICB9XHJcbiAgY3VycmVudFJvdzogcm93VHlwZTtcclxuICBzZXRDdXJyZW50Um93KHJvdzogcm93VHlwZSkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFJvdyAhPSByb3cpIHtcclxuICAgICAgdGhpcy5jdXJyZW50Um93ID0gcm93O1xyXG4gICAgICBpZiAodGhpcy5vbkVudGVyUm93ICYmIHJvdykge1xyXG5cclxuICAgICAgICB0aGlzLm9uRW50ZXJSb3cocm93KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgbmV4dFJvdygpIHtcclxuICAgIGlmICghdGhpcy5jdXJyZW50Um93ICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMClcclxuICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbMF0pO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFJvdykge1xyXG4gICAgICBsZXQgY3VycmVudFJvd1Bvc2l0aW9uID0gdGhpcy5pdGVtcy5pbmRleE9mKHRoaXMuY3VycmVudFJvdyk7XHJcbiAgICAgIGlmIChjdXJyZW50Um93UG9zaXRpb24gPCB0aGlzLml0ZW1zLmxlbmd0aCAtIDEpXHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbY3VycmVudFJvd1Bvc2l0aW9uICsgMV0pO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5uZXh0UGFnZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgdGhpcy5zZXRDdXJyZW50Um93KHRoaXMuaXRlbXNbMF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcmV2aW91c1Jvd0FsbG93ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50Um93ICYmIHRoaXMuaXRlbXMuaW5kZXhPZih0aGlzLmN1cnJlbnRSb3cpID4gMCB8fCB0aGlzLnBhZ2UgPiAxO1xyXG4gIH1cclxuICBwcmV2aW91c1JvdygpIHtcclxuICAgIGlmICghdGhpcy5wcmV2aW91c1Jvd0FsbG93ZWQoKSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGxldCBjdXJyZW50Um93UG9zaXRpb24gPSB0aGlzLml0ZW1zLmluZGV4T2YodGhpcy5jdXJyZW50Um93KTtcclxuICAgIGlmIChjdXJyZW50Um93UG9zaXRpb24gPiAwKVxyXG4gICAgICB0aGlzLnNldEN1cnJlbnRSb3codGhpcy5pdGVtc1tjdXJyZW50Um93UG9zaXRpb24gLSAxXSk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMucGFnZSA+IDEpXHJcbiAgICAgICAgdGhpcy5wcmV2aW91c1BhZ2UoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLml0ZW1zLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMV0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgZGVsZXRlQ3VyZW50Um93KCkge1xyXG4gICAgaWYgKCF0aGlzLmRlbGV0ZUN1cnJlbnRSb3dBbGxvd2VkKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLmRlbGV0ZSgpO1xyXG4gIH1cclxuICBjdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSB7XHJcbiAgICBpZiAoIXRoaXMuY3VycmVudFJvdylcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZ2V0Um93SGVscGVyKHRoaXMuY3VycmVudFJvdyk7XHJcbiAgfVxyXG4gIGdldFJvd0hlbHBlcihpdGVtOiByb3dUeXBlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3J5LmdldEVudGl0eVJlZihpdGVtKTtcclxuICB9XHJcbiAgY2FuY2VsQ3VycmVudFJvd0NoYW5nZXMoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKSAmJiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpKVxyXG4gICAgICB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpLnVuZG9DaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIGRlbGV0ZUN1cnJlbnRSb3dBbGxvd2VkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkgJiYgdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5kZWxldGUgJiYgdGhpcy5hbGxvd0RlbGV0ZSAmJiAhdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5pc05ldygpO1xyXG4gIH1cclxuICBjdXJyZW50Um93Q2hhbmdlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpICYmIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkud2FzQ2hhbmdlZCgpO1xyXG4gIH1cclxuICBzYXZlQ3VycmVudFJvdygpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRSb3dBc1Jlc3RMaXN0SXRlbVJvdygpICYmIHRoaXMuY3VycmVudFJvd0FzUmVzdExpc3RJdGVtUm93KCkuc2F2ZSlcclxuICAgICAgdGhpcy5jdXJyZW50Um93QXNSZXN0TGlzdEl0ZW1Sb3coKS5zYXZlKCk7XHJcbiAgfVxyXG5cclxuICBhbGxvd1VwZGF0ZSA9IGZhbHNlO1xyXG4gIGFsbG93SW5zZXJ0ID0gZmFsc2U7XHJcbiAgYWxsb3dEZWxldGUgPSBmYWxzZTtcclxuICBzaG93RGF0YUFyZWEgPSBmYWxzZTtcclxuXHJcblxyXG4gIF9idXR0b25zOiBSb3dCdXR0b248YW55PltdID0gW107XHJcblxyXG4gIHJvd0NsYXNzPzogKHJvdzogYW55KSA9PiBzdHJpbmc7XHJcbiAgb25TYXZpbmdSb3c/OiAocm93OiBhbnkpID0+IFByb21pc2U8YW55PiB8IGFueTtcclxuICBvblZhbGlkYXRlPzogKHJvdzogcm93VHlwZSkgPT4gUHJvbWlzZTxhbnk+IHwgYW55O1xyXG4gIG9uRW50ZXJSb3c6IChyb3c6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgb25OZXdSb3c6IChyb3c6IHJvd1R5cGUpID0+IHZvaWQ7XHJcbiAgX2RvU2F2aW5nUm93KHM6IHJvd1R5cGUpIHtcclxuXHJcbiAgICByZXR1cm4gZ2V0RW50aXR5UmVmKHMpLnNhdmUoKTtcclxuXHJcbiAgfVxyXG4gIGNhcHRpb246IHN0cmluZztcclxuXHJcbiAgZmlsdGVySGVscGVyID0gbmV3IEZpbHRlckhlbHBlcjxyb3dUeXBlPigoKSA9PiB7XHJcbiAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgdGhpcy5yZWxvYWREYXRhKCk7XHJcbiAgfSwgdGhpcy5yZXBvc2l0b3J5KTtcclxuXHJcbiAgY29sdW1uczogRmllbGRDb2xsZWN0aW9uPHJvd1R5cGU+O1xyXG5cclxuXHJcblxyXG5cclxuICBwYWdlID0gMTtcclxuICBuZXh0UGFnZSgpIHtcclxuICAgIHRoaXMucGFnZSsrO1xyXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkRGF0YSgpO1xyXG4gIH1cclxuICBwcmV2aW91c1BhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5wYWdlIDw9IDEpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMucGFnZS0tO1xyXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkRGF0YSgpO1xyXG4gIH1cclxuICBmaXJzdFBhZ2UoKSB7XHJcbiAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgcmV0dXJuIHRoaXMucmVsb2FkRGF0YSgpO1xyXG4gIH1cclxuICBzZWxlY3RlZFJvd3M6IHJvd1R5cGVbXSA9IFtdO1xyXG4gIHNlbGVjdGVkQ2hhbmdlZChyb3c6IHJvd1R5cGUpIHtcclxuICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQocm93KSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUm93cy5zcGxpY2UodGhpcy5zZWxlY3RlZFJvd3MuaW5kZXhPZihyb3cpLCAxKTtcclxuICAgICAgdGhpcy5fc2VsZWN0ZWRBbGwgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUm93cy5wdXNoKHJvdyk7XHJcblxyXG4gICAgICB0aGlzLl9zZWxlY3RlZEFsbCA9IHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PSB0aGlzLnRvdGFsUm93cztcclxuICAgIH1cclxuICB9XHJcbiAgbGFzdFNlbGVjdGVkUm93V2l0aFNoaWZ0OiByb3dUeXBlO1xyXG4gIGNsaWNrT25zZWxlY3RDaGVja2JveEZvcihyb3c6IHJvd1R5cGUsIHNoaWZ0OiBib29sZWFuKSB7XHJcbiAgICBpZiAoc2hpZnQpIHtcclxuICAgICAgaWYgKCF0aGlzLmxhc3RTZWxlY3RlZFJvd1dpdGhTaGlmdCkge1xyXG4gICAgICAgIHRoaXMubGFzdFNlbGVjdGVkUm93V2l0aFNoaWZ0ID0gcm93O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAoY29uc3QgcnVsZSBvZiB0aGlzLml0ZW1zKSB7XHJcblxyXG4gICAgICAgICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgICAgICAgIGlmIChydWxlID09IHJvdyB8fCBydWxlID09IHRoaXMubGFzdFNlbGVjdGVkUm93V2l0aFNoaWZ0KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5sYXN0U2VsZWN0ZWRSb3dXaXRoU2hpZnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5zZWxlY3RlZENoYW5nZWQocnVsZSk7XHJcbiAgICAgICAgICB9IGVsc2VcclxuICAgICAgICAgICAgZm91bmQgPSBydWxlID09IHJvdyB8fCBydWxlID09IHRoaXMubGFzdFNlbGVjdGVkUm93V2l0aFNoaWZ0O1xyXG5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubGFzdFNlbGVjdGVkUm93V2l0aFNoaWZ0ID0gcm93O1xyXG5cclxuXHJcbiAgfVxyXG4gIGlzU2VsZWN0ZWQocm93OiByb3dUeXBlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFJvd3MuaW5kZXhPZihyb3cpID49IDA7XHJcbiAgfVxyXG4gIHNlbGVjdEFsbEludGVybWl0ZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCA+IDAgJiYgKHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCAhPSB0aGlzLml0ZW1zLmxlbmd0aCB8fCAhdGhpcy5fc2VsZWN0ZWRBbGwpO1xyXG4gIH1cclxuICBzZWxlY3RBbGxDaGVja2VkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFJvd3MubGVuZ3RoID09IHRoaXMuaXRlbXMubGVuZ3RoICYmIHRoaXMuX3NlbGVjdGVkQWxsO1xyXG4gIH1cclxuICBwcml2YXRlIF9zZWxlY3RlZEFsbCA9IGZhbHNlO1xyXG4gIHNlbGVjdEFsbENoYW5nZWQoZTogeyBjaGVja2VkOiBib29sZWFuIH0pIHtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkUm93cy5zcGxpY2UoMCk7XHJcbiAgICBpZiAoZS5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzLnB1c2goLi4udGhpcy5pdGVtcyk7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGVkQWxsID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fc2VsZWN0ZWRBbGwgPSBmYWxzZTtcclxuICB9XHJcbiAgcm93c1BlclBhZ2U6IG51bWJlcjtcclxuICByb3dzUGVyUGFnZU9wdGlvbnMgPSBbMTAsIDI1LCA1MCwgMTAwXTtcclxuICBnZXQob3B0aW9uczogRmluZE9wdGlvbnM8cm93VHlwZT4pIHtcclxuICAgIGlmIChvcHRpb25zLndoZXJlKVxyXG4gICAgICB0aGlzLnNldHRpbmdzLndoZXJlID0gKCkgPT4gb3B0aW9ucy53aGVyZTtcclxuICAgIGlmIChvcHRpb25zLm9yZGVyQnkpXHJcbiAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5ID0gU29ydC50cmFuc2xhdGVPcmRlckJ5VG9Tb3J0KHRoaXMucmVwb3NpdG9yeS5tZXRhZGF0YSwgb3B0aW9ucy5vcmRlckJ5KTtcclxuICAgIHRoaXMucGFnZSA9IDE7XHJcbiAgICByZXR1cm4gdGhpcy5yZWxvYWREYXRhKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgX2N1cnJlbnRPcmRlckJ5OiBTb3J0O1xyXG4gIHNvcnQoY29sdW1uOiBGaWVsZE1ldGFkYXRhKSB7XHJcblxyXG4gICAgbGV0IGRvbmUgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLl9jdXJyZW50T3JkZXJCeSAmJiB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5maWVsZC5rZXkgPT0gY29sdW1uLmtleSkge1xyXG4gICAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmlzRGVzY2VuZGluZyA9ICF0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5pc0Rlc2NlbmRpbmc7XHJcbiAgICAgICAgZG9uZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gaWYgKCFkb25lKVxyXG5cclxuICAgICAgdGhpcy5fY3VycmVudE9yZGVyQnkgPSBuZXcgU29ydCh7IGZpZWxkOiBjb2x1bW4gfSk7XHJcbiAgICB0aGlzLnJlbG9hZERhdGEoKTtcclxuICB9XHJcbiAgc29ydGVkQXNjZW5kaW5nKGNvbHVtbjogRmllbGRNZXRhZGF0YSkge1xyXG4gICAgaWYgKCF0aGlzLl9jdXJyZW50T3JkZXJCeSlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKCFjb2x1bW4pXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50cy5sZW5ndGggPiAwICYmXHJcbiAgICAgIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzWzBdLmZpZWxkLmtleSA9PSBjb2x1bW4ua2V5ICYmXHJcbiAgICAgICF0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5pc0Rlc2NlbmRpbmc7XHJcbiAgfVxyXG4gIHNvcnRlZERlc2NlbmRpbmcoY29sdW1uOiBGaWVsZE1ldGFkYXRhKSB7XHJcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRPcmRlckJ5KVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAoIWNvbHVtbilcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRPcmRlckJ5LlNlZ21lbnRzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgdGhpcy5fY3VycmVudE9yZGVyQnkuU2VnbWVudHNbMF0uZmllbGQua2V5ID09IGNvbHVtbi5rZXkgJiZcclxuICAgICAgISF0aGlzLl9jdXJyZW50T3JkZXJCeS5TZWdtZW50c1swXS5pc0Rlc2NlbmRpbmc7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgdG90YWxSb3dzOiBudW1iZXI7XHJcblxyXG5cclxuICBhc3luYyByZWxvYWREYXRhKCkge1xyXG4gICAgbGV0IG9wdDogRmluZE9wdGlvbnM8cm93VHlwZT4gPSBhd2FpdCB0aGlzLl9pbnRlcm5hbEJ1aWxkRmluZE9wdGlvbnMoKTtcclxuICAgIHRoaXMuY29sdW1ucy5hdXRvR2VuZXJhdGVDb2x1bW5zQmFzZWRPbkRhdGEodGhpcy5yZXBvc2l0b3J5Lm1ldGFkYXRhKTtcclxuICAgIGxldCByZXN1bHQgPSB0aGlzLnJlc3RMaXN0LmdldChvcHQpLnRoZW4oKHJvd3MpID0+IHtcclxuXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5zZWxlY3RlZFJvd3MubWFwKHMgPT4ge1xyXG4gICAgICAgIGxldCBpZCA9IGdldEVudGl0eVJlZihzKS5nZXRJZCgpO1xyXG4gICAgICAgIGxldCByID0gcm93cy5maW5kKHIgPT4gZ2V0RW50aXR5UmVmKHIpLmdldElkKCkgPT0gaWQpO1xyXG4gICAgICAgIGlmIChyICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICByZXR1cm4gcjtcclxuICAgICAgICByZXR1cm4gcztcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5yZXN0TGlzdC5pdGVtcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh1bmRlZmluZWQpO1xyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFJvdyh0aGlzLnJlc3RMaXN0Lml0ZW1zWzBdKTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3M/LnJvd3NMb2FkZWQpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdzPy5yb3dzTG9hZGVkKHRoaXMucmVzdExpc3QuaXRlbXMpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLnJlc3RMaXN0O1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncyAmJiB0aGlzLnNldHRpbmdzLmtub3dUb3RhbFJvd3MpIHtcclxuICAgICAgdGhpcy5yZXN0TGlzdC5jb3VudChvcHQud2hlcmUpLnRoZW4oeCA9PiB7XHJcbiAgICAgICAgdGhpcy50b3RhbFJvd3MgPSB4O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfTtcclxuXHJcblxyXG5cclxuICBwcml2YXRlIHJlc3RMaXN0OiBEYXRhTGlzdDxyb3dUeXBlPjtcclxuICBhc3luYyBfaW50ZXJuYWxCdWlsZEZpbmRPcHRpb25zKCkge1xyXG4gICAgbGV0IG9wdDogRmluZE9wdGlvbnM8cm93VHlwZT4gPSB7fTtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLndoZXJlKSB7XHJcbiAgICAgIG9wdC53aGVyZSA9IGF3YWl0IEZpbHRlci5yZXNvbHZlKHRoaXMuc2V0dGluZ3Mud2hlcmUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Mub3JkZXJCeSlcclxuICAgICAgb3B0Lm9yZGVyQnkgPSB0aGlzLnNldHRpbmdzLm9yZGVyQnk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2N1cnJlbnRPcmRlckJ5KVxyXG4gICAgICBvcHQub3JkZXJCeSA9IHRoaXMuX2N1cnJlbnRPcmRlckJ5LnRvRW50aXR5T3JkZXJCeSgpO1xyXG5cclxuICAgIG9wdC5saW1pdCA9IHRoaXMucm93c1BlclBhZ2U7XHJcbiAgICBpZiAodGhpcy5wYWdlID4gMSlcclxuICAgICAgb3B0LnBhZ2UgPSB0aGlzLnBhZ2U7XHJcbiAgICB0aGlzLmZpbHRlckhlbHBlci5hZGRUb0ZpbmRPcHRpb25zKG9wdCk7XHJcbiAgICByZXR1cm4gb3B0O1xyXG4gIH1cclxuICBhc3luYyBnZXRGaWx0ZXJXaXRoU2VsZWN0ZWRSb3dzKCkge1xyXG4gICAgbGV0IHIgPSBhd2FpdCB0aGlzLl9pbnRlcm5hbEJ1aWxkRmluZE9wdGlvbnMoKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGggPiAwICYmICF0aGlzLl9zZWxlY3RlZEFsbCkge1xyXG4gICAgICByLndoZXJlID0geyAkYW5kOiBbci53aGVyZSwgdGhpcy5yZXBvc2l0b3J5Lm1ldGFkYXRhLmlkTWV0YWRhdGEuY3JlYXRlSWRJbkZpbHRlcih0aGlzLnNlbGVjdGVkUm93cyldIH0gYXMgRW50aXR5RmlsdGVyPHJvd1R5cGU+XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcjtcclxuICB9XHJcblxyXG5cclxuICBnZXQgaXRlbXMoKTogcm93VHlwZVtdIHtcclxuICAgIGlmICh0aGlzLnJlc3RMaXN0KVxyXG4gICAgICByZXR1cm4gdGhpcy5yZXN0TGlzdC5pdGVtcztcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFTZXR0aW5nczxyb3dUeXBlPiB7XHJcbiAgcm93c0xvYWRlZD86IChpdGVtczogcm93VHlwZVtdKSA9PiB2b2lkO1xyXG4gIGFsbG93VXBkYXRlPzogYm9vbGVhbixcclxuICBhbGxvd0luc2VydD86IGJvb2xlYW4sXHJcbiAgYWxsb3dEZWxldGU/OiBib29sZWFuLFxyXG4gIGFsbG93Q3J1ZD86IGJvb2xlYW4sXHJcbiAgc2hvd0RhdGFBcmVhPzogYm9vbGVhbixcclxuICBzaG93UGFnaW5hdGlvbj86IGJvb2xlYW4sXHJcbiAgYWxsb3dTZWxlY3Rpb24/OiBib29sZWFuLFxyXG4gIGNvbmZpcm1EZWxldGU/OiAocjogcm93VHlwZSkgPT4gUHJvbWlzZTxib29sZWFuPjtcclxuXHJcbiAgY29sdW1uU2V0dGluZ3M/OiAocm93OiBGaWVsZHNNZXRhZGF0YTxyb3dUeXBlPikgPT4gRGF0YUNvbnRyb2xJbmZvPHJvd1R5cGU+W10sXHJcbiAgYXJlYXM/OiB7IFthcmVhS2V5OiBzdHJpbmddOiBEYXRhQ29udHJvbEluZm88cm93VHlwZT5bXSB9LFxyXG5cclxuICByb3dDc3NDbGFzcz86IChyb3c6IHJvd1R5cGUpID0+IHN0cmluZztcclxuICByb3dCdXR0b25zPzogUm93QnV0dG9uPHJvd1R5cGU+W107XHJcbiAgZ3JpZEJ1dHRvbnM/OiBHcmlkQnV0dG9uW107XHJcblxyXG4gIC8qKiBmaWx0ZXJzIHRoZSBkYXRhXHJcbiogQGV4YW1wbGVcclxuKiBhd2FpdCB0YXNrUmVwby5maW5kKHt3aGVyZTogeyBjb21wbGV0ZWQ6ZmFsc2UgfX0pXHJcbiogQHNlZSBGb3IgbW9yZSB1c2FnZSBleGFtcGxlcyBzZWUgW0VudGl0eUZpbHRlcl0oaHR0cHM6Ly9yZW11bHQuZ2l0aHViLmlvL2d1aWRlL2VudGl0eUZpbHRlci5odG1sKVxyXG4qL1xyXG4gIHdoZXJlPzogRW50aXR5RmlsdGVyPHJvd1R5cGU+IHwgKCgpID0+IEVudGl0eUZpbHRlcjxyb3dUeXBlPiB8IFByb21pc2U8RW50aXR5RmlsdGVyPHJvd1R5cGU+Pik7XHJcbiAgLyoqIERldGVybWluZXMgdGhlIG9yZGVyIGluIHdoaWNoIHRoZSByZXN1bHQgd2lsbCBiZSBzb3J0ZWQgaW5cclxuICAgKiBAc2VlIFNlZSBbRW50aXR5T3JkZXJCeV0oaHR0cHM6Ly9yZW11bHQtdHMuZ2l0aHViLmlvL2d1aWRlL3JlZl9fZW50aXR5b3JkZXJieSkgZm9yIG1vcmUgZXhhbXBsZXMgb24gaG93IHRvIHNvcnRcclxuICAgKi9cclxuICBvcmRlckJ5PzogRW50aXR5T3JkZXJCeTxyb3dUeXBlPjtcclxuICAvKiogRGV0ZXJtaW5lcyB0aGUgbnVtYmVyIG9mIHJvd3MgcmV0dXJuZWQgYnkgdGhlIHJlcXVlc3QsIG9uIHRoZSBicm93c2VyIHRoZSBkZWZhdWx0IGlzIDI1IHJvd3MgXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiB0aGlzLnByb2R1Y3RzID0gYXdhaXQgdGhpcy5yZW11bHQucmVwbyhQcm9kdWN0cykuZ3JpZFNldHRpbmdzKHtcclxuICAgKiAgcm93c0luUGFnZToxMCxcclxuICAgKiAgcGFnZToyXHJcbiAgKiB9KVxyXG4gICovXHJcbiAgcm93c0luUGFnZT86IG51bWJlcjtcclxuICAvKiogRGV0ZXJtaW5lcyB0aGUgcGFnZSBudW1iZXIgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZXh0cmFjdCB0aGUgZGF0YSBcclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIHRoaXMucHJvZHVjdHMgPSBhd2FpdCB0aGlzLnJlbXVsdC5yZXBvKFByb2R1Y3RzKS5ncmlkU2V0dGluZ3Moe1xyXG4gICAqICByb3dzSW5QYWdlOjEwLFxyXG4gICAqICBwYWdlOjJcclxuICAgKiB9KVxyXG4gICovXHJcbiAgcGFnZT86IG51bWJlcjtcclxuICBfX2N1c3RvbUZpbmREYXRhPzogYW55O1xyXG4gIGtub3dUb3RhbFJvd3M/OiBib29sZWFuO1xyXG4gIHNhdmluZz86IChyOiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIHZhbGlkYXRpb24/OiAocjogcm93VHlwZSkgPT4gdm9pZDtcclxuICBlbnRlclJvdz86IChyOiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIG5ld1Jvdz86IChyOiByb3dUeXBlKSA9PiB2b2lkO1xyXG4gIG51bU9mQ29sdW1uc0luR3JpZD86IG51bWJlcjtcclxuICBjYXB0aW9uPzogc3RyaW5nO1xyXG5cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJvd0J1dHRvbjxyb3dUeXBlPiB7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICB2aXNpYmxlPzogKHI6IHJvd1R5cGUpID0+IGJvb2xlYW47XHJcbiAgY2xpY2s/OiAocjogcm93VHlwZSkgPT4gdm9pZDtcclxuICBzaG93SW5MaW5lPzogYm9vbGVhbjtcclxuICB0ZXh0SW5NZW51PzogKHN0cmluZyB8ICgocm93OiByb3dUeXBlKSA9PiBzdHJpbmcpKTtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGNzc0NsYXNzPzogKHN0cmluZyB8ICgocm93OiByb3dUeXBlKSA9PiBzdHJpbmcpKTtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JpZEJ1dHRvbiB7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICB2aXNpYmxlPzogKCkgPT4gYm9vbGVhbjtcclxuICBjbGljaz86ICgpID0+IHZvaWQ7XHJcbiAgdGV4dEluTWVudT86ICgpID0+IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGNzc0NsYXNzPzogKHN0cmluZyB8ICgoKSA9PiBzdHJpbmcpKTtcclxufVxyXG4iXX0= |
@@ -96,6 +96,6 @@ import { FieldMetadata, Sort, FieldsMetadata, EntityOrderBy, EntityFilter, FindOptions, Repository } from "remult"; | ||
/** filters the data | ||
* @example | ||
* where p => p.price.isGreaterOrEqualTo(5) | ||
* @see For more usage examples see [EntityWhere](https://remult-ts.github.io/guide/ref_entitywhere) | ||
*/ | ||
* @example | ||
* await taskRepo.find({where: { completed:false }}) | ||
* @see For more usage examples see [EntityFilter](https://remult.github.io/guide/entityFilter.html) | ||
*/ | ||
where?: EntityFilter<rowType> | (() => EntityFilter<rowType> | Promise<EntityFilter<rowType>>); | ||
@@ -102,0 +102,0 @@ /** Determines the order in which the result will be sorted in |
{ | ||
"name": "@remult/angular", | ||
"version": "0.13.19", | ||
"version": "0.13.20", | ||
"description": "an angular module for remult", | ||
@@ -5,0 +5,0 @@ "homepage": "https://remult.dev/", |
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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1586159