@silmar/ng-carousel
Advanced tools
Comparing version 1.4.13 to 1.4.14
@@ -95,2 +95,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2lsbWFyL25nLWNhcm91c2VsLyIsInNvdXJjZXMiOlsibGliL25nLWNhcm91c2VsLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNakUsTUFBTTs7Ozs7SUFLSixZQUFzQixFQUFjLEVBQVksSUFBZTtRQUF6QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVksU0FBSSxHQUFKLElBQUksQ0FBVzswQkFGL0IsS0FBSztLQUUrQjs7Ozs7SUFLcEUsSUFBSSxLQUFLO1FBQ1AsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztLQUNwQjs7Ozs7O0lBTUQsT0FBTyxDQUFDLE9BQU87UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUNsQjs7Ozs7O0lBTUQsSUFBSSxPQUFPLENBQUMsU0FBa0I7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFFNUIsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3pEO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUM1RDtLQUNGOzs7OztJQUtELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztLQUN6Qjs7Ozs7SUFLRCxTQUFTO1FBQ1AsdUJBQU0sR0FBRyxHQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFO1FBQ3RELE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN0Rzs7O1lBNURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUcsa0JBQWtCO2dCQUM3QixRQUFRLEVBQUcsZ0JBQWdCO2FBQzVCOzs7O1lBTG1CLFVBQVU7WUFBRSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yIDogJ1tzaUNhcm91c2VsSXRlbV0nLFxyXG4gIGV4cG9ydEFzIDogJ3NpQ2Fyb3VzZWxJdGVtJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmUge1xyXG4gIHByb3RlY3RlZCBfd2lkdGg6IG51bWJlcjtcclxuXHJcbiAgcHJvdGVjdGVkIF9pc0N1cnJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgcmVuZDogUmVuZGVyZXIyKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSB3aWR0aCBvZiB0aGUgaXRlbVxyXG4gICAqL1xyXG4gIGdldCB3aWR0aCgpIHtcclxuICAgIGlmICghdGhpcy5fd2lkdGgpIHtcclxuICAgICAgdGhpcy5jYWxjV2lkdGgoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fd2lkdGg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIGl0ZW0gZmxleCBwZXJjZW50IChvciAnYXV0bycpXHJcbiAgICogQHBhcmFtIHBlcmNlbnRcclxuICAgKi9cclxuICBzZXRGbGV4KHBlcmNlbnQpIHtcclxuICAgIHRoaXMucmVuZC5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdmbGV4JywgJzAgMCAnICsgcGVyY2VudCk7XHJcbiAgICB0aGlzLmNhbGNXaWR0aCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IGlmIHRoZSBpdGVtIGlzIGN1cnJlbnRseSB2aXNpYmxlXHJcbiAgICogQHBhcmFtIGlzQ3VycmVudFxyXG4gICAqL1xyXG4gIHNldCBjdXJyZW50KGlzQ3VycmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faXNDdXJyZW50ID0gaXNDdXJyZW50O1xyXG5cclxuICAgIGlmIChpc0N1cnJlbnQpIHtcclxuICAgICAgdGhpcy5yZW5kLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2lzLWN1cnJlbnQnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVuZC5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdpcy1jdXJyZW50Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldCB0aGUgaXRlbVxyXG4gICAqL1xyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5fd2lkdGggPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWxjdWxhdGUgdGhlIGl0ZW0gd2lkdGggKHRoaXMgd2lsbCBnZXQgaW50byBhY2NvdW50IHRoZSBtYXJnaW5zIG9mIHRoZSBib3gpXHJcbiAgICovXHJcbiAgY2FsY1dpZHRoKCkge1xyXG4gICAgY29uc3QgYm94ICAgID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxyXG4gICAgICAgICAgc3R5bGVzID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG5cclxuICAgIHRoaXMuX3dpZHRoID0gYm94LndpZHRoID8gYm94LndpZHRoICsgcGFyc2VJbnQoc3R5bGVzLm1hcmdpbkxlZnQpICsgcGFyc2VJbnQoc3R5bGVzLm1hcmdpblJpZ2h0KSA6IDA7XHJcbiAgfVxyXG59XHJcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2lsbWFyL25nLWNhcm91c2VsLyIsInNvdXJjZXMiOlsibGliL25nLWNhcm91c2VsLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNakUsTUFBTTs7Ozs7SUFLSixZQUFzQixFQUFjLEVBQVksSUFBZTtRQUF6QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVksU0FBSSxHQUFKLElBQUksQ0FBVzswQkFGL0IsS0FBSztLQUUrQjs7Ozs7SUFLcEUsSUFBSSxLQUFLO1FBQ1AsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztLQUNwQjs7Ozs7O0lBTUQsT0FBTyxDQUFDLE9BQU87UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUNsQjs7Ozs7O0lBTUQsSUFBSSxPQUFPLENBQUMsU0FBa0I7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFFNUIsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3pEO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUM1RDtLQUNGOzs7OztJQUtELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztLQUN6Qjs7Ozs7SUFLRCxTQUFTO1FBQ1AsdUJBQU0sR0FBRyxHQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFO1FBQ3RELE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN0Rzs7O1lBNURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUcsa0JBQWtCO2dCQUM3QixRQUFRLEVBQUcsZ0JBQWdCO2FBQzVCOzs7O1lBTG1CLFVBQVU7WUFBRSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yIDogJ1tzaUNhcm91c2VsSXRlbV0nLFxuICBleHBvcnRBcyA6ICdzaUNhcm91c2VsSXRlbSdcbn0pXG5leHBvcnQgY2xhc3MgTmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmUge1xuICBwcm90ZWN0ZWQgX3dpZHRoOiBudW1iZXI7XG5cbiAgcHJvdGVjdGVkIF9pc0N1cnJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCByZW5kOiBSZW5kZXJlcjIpIHsgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHdpZHRoIG9mIHRoZSBpdGVtXG4gICAqL1xuICBnZXQgd2lkdGgoKSB7XG4gICAgaWYgKCF0aGlzLl93aWR0aCkge1xuICAgICAgdGhpcy5jYWxjV2lkdGgoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fd2lkdGg7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBpdGVtIGZsZXggcGVyY2VudCAob3IgJ2F1dG8nKVxuICAgKiBAcGFyYW0gcGVyY2VudFxuICAgKi9cbiAgc2V0RmxleChwZXJjZW50KSB7XG4gICAgdGhpcy5yZW5kLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2ZsZXgnLCAnMCAwICcgKyBwZXJjZW50KTtcbiAgICB0aGlzLmNhbGNXaWR0aCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBpZiB0aGUgaXRlbSBpcyBjdXJyZW50bHkgdmlzaWJsZVxuICAgKiBAcGFyYW0gaXNDdXJyZW50XG4gICAqL1xuICBzZXQgY3VycmVudChpc0N1cnJlbnQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0N1cnJlbnQgPSBpc0N1cnJlbnQ7XG5cbiAgICBpZiAoaXNDdXJyZW50KSB7XG4gICAgICB0aGlzLnJlbmQuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaXMtY3VycmVudCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmQucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaXMtY3VycmVudCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgaXRlbVxuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5fd2lkdGggPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSBpdGVtIHdpZHRoICh0aGlzIHdpbGwgZ2V0IGludG8gYWNjb3VudCB0aGUgbWFyZ2lucyBvZiB0aGUgYm94KVxuICAgKi9cbiAgY2FsY1dpZHRoKCkge1xuICAgIGNvbnN0IGJveCAgICA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgICBzdHlsZXMgPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG5cbiAgICB0aGlzLl93aWR0aCA9IGJveC53aWR0aCA/IGJveC53aWR0aCArIHBhcnNlSW50KHN0eWxlcy5tYXJnaW5MZWZ0KSArIHBhcnNlSW50KHN0eWxlcy5tYXJnaW5SaWdodCkgOiAwO1xuICB9XG59XG4iXX0= |
@@ -648,2 +648,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNpbG1hci9uZy1jYXJvdXNlbC8iLCJzb3VyY2VzIjpbImxpYi9uZy1jYXJvdXNlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBa0J2RSxNQUFNOzs7Ozs7O0lBK0hKLFlBQWlDLFVBQVUsRUFBWSxJQUFlLEVBQVksSUFBWSxFQUFFLFFBQTRCO1FBQXJFLFNBQUksR0FBSixJQUFJLENBQVc7UUFBWSxTQUFJLEdBQUosSUFBSSxDQUFROzs7OzJCQTVHOUQsSUFBSTs7OztvQkFLWCxJQUFJOzs7O3dCQUtELENBQUM7Ozs7d0JBS0EsS0FBSzs7Ozs2QkFLQSxJQUFJOzs7O3NCQUs3QjtZQUNQLElBQUksRUFBRyxvQkFBb0I7WUFDM0IsSUFBSSxFQUFHLDRDQUE0QztZQUNuRCxJQUFJLEVBQUcscUJBQXFCO1lBQzVCLEdBQUcsRUFBSSx3QkFBd0I7WUFDL0IsR0FBRyxFQUFJLHlCQUF5QjtTQUNqQzs7Ozt3QkFLbUIsS0FBSzs7Ozt1QkFLQyxLQUFLOzs7O3FCQUtULElBQUks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QUksQ0FBQyxDQUFDLENBQUM7U0FDL0Y7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3pDO0tBQ0Y7OztZQTFqQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBTSxnQkFBZ0I7Z0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7O09BU0w7Z0JBQ0wsTUFBTSxFQUFFLENBQUMsK29EQUErb0QsQ0FBQzthQUMxcEQ7Ozs7NENBZ0ljLE1BQU0sU0FBQyxXQUFXO1lBekovQixTQUFTO1lBSlQsTUFBTTtZQVdDLGtCQUFrQjs7O3lCQXVCeEIsU0FBUyxTQUFDLFVBQVU7MEJBS3BCLFNBQVMsU0FBQyxXQUFXO3NCQUtyQixlQUFlLFNBQUMsdUJBQXVCOzRCQUt2QyxLQUFLO3FCQUtMLEtBQUs7eUJBS0wsS0FBSzt5QkFLTCxLQUFLOzhCQUtMLEtBQUs7d0JBK0lMLEtBQUs7d0JBY0wsWUFBWSxTQUFDLFlBQVk7NEJBT3pCLFlBQVksU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgUExBVEZPUk1fSUQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFJlbmRlcmVyMixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IGludGVydmFsLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VXaGlsZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9sYXlvdXRcIjtcclxuaW1wb3J0IHsgTmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmUgfSBmcm9tIFwiLi9uZy1jYXJvdXNlbC1pdGVtLmRpcmVjdGl2ZVwiO1xyXG5cclxuZXhwb3J0IHR5cGUgVklTSUJMRV9JVEVNUyA9IHsgc20/OiBudW1iZXIsIG1kPzogbnVtYmVyLCBsZz86IG51bWJlciwgYWxsOiBudW1iZXIgfTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yICAgIDogJ3NpLW5nLWNhcm91c2VsJyxcclxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJnYWxsZXJ5XCIgI2Nhcm91c2VsIFtjbGFzcy5kcmFnZ2FibGVdPVwibWF4RHJhZyAhPT0gMFwiPlxyXG4gIDxkaXYgI2ZpbG1zdHJpcCBjbGFzcz1cImdhbGxlcnktaW5uZXJcIiAoc3dpcGVsZWZ0KT1cIm9uU3dpcGUoJGV2ZW50LCAnbCcpXCIgKHN3aXBlcmlnaHQpPVwib25Td2lwZSgkZXZlbnQsICdyJylcIlxyXG4gICAgICAgKHBhbik9XCJkcmFnJC5uZXh0KCRldmVudClcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0J1dHRvbnMgJiYgbWF4RHJhZyAhPT0gMFwiPlxyXG4gICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImNoZXZyb24gbGVmdFwiIChjbGljayk9XCJwcmV2KCRldmVudClcIiB0aXRsZT1cIlByZXZpb3VzXCIgdGFiaW5kZXg9XCItMVwiPjwvYT5cclxuICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJjaGV2cm9uIHJpZ2h0XCIgKGNsaWNrKT1cIm5leHQoJGV2ZW50KVwiIHRpdGxlPVwiTmV4dFwiIHRhYmluZGV4PVwiLTFcIj48L2E+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PmAsXHJcbiAgc3R5bGVzOiBbYHNpLW5nLWNhcm91c2Vse2Rpc3BsYXk6YmxvY2t9LmdhbGxlcnl7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5nYWxsZXJ5IC5jaGV2cm9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDUwJSAtIDFyZW0pO3dpZHRoOjJyZW07aGVpZ2h0OjJyZW07Zm9udC1zaXplOjEuNHJlbTtwYWRkaW5nOi4zcmVtIC4yNXJlbSAuMjVyZW07Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyO29wYWNpdHk6MDt0cmFuc2l0aW9uOmFsbCAxNTBtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uZ2FsbGVyeSAuY2hldnJvbjpob3Zlcntib3gtc2hhZG93OjAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsLjIpLDAgNHB4IDVweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpfS5nYWxsZXJ5IC5jaGV2cm9uLmxlZnR7bGVmdDo1cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmdhbGxlcnkgLmNoZXZyb24ucmlnaHR7cmlnaHQ6NXB4fS5nYWxsZXJ5IC5jaGV2cm9uOjpiZWZvcmV7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDouMTVlbSAuMTVlbSAwIDA7Y29udGVudDonJztkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjVlbTt3aWR0aDouNWVtO3RvcDouMTVlbTtsZWZ0Oi4xNWVtO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmdhbGxlcnkgLmNoZXZyb24ucmlnaHQ6YmVmb3Jle2xlZnQ6LjFlbTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5nYWxsZXJ5IC5jaGV2cm9uLmJvdHRvbTpiZWZvcmV7dG9wOjA7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpfS5nYWxsZXJ5IC5jaGV2cm9uLmxlZnQ6YmVmb3Jle2xlZnQ6LjFlbTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKX0uZ2FsbGVyeTpob3ZlciAuY2hldnJvbntkaXNwbGF5OmlubGluZS1ibG9jaztvcGFjaXR5Oi44fS5nYWxsZXJ5IC5nYWxsZXJ5LWlubmVye2ZsZXgtZmxvdzpyb3cgbm93cmFwO2Rpc3BsYXk6ZmxleDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoLjQ1LC4wMDUsLjI5LDEuNTIpO3RyYW5zaXRpb246dHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoLjQ1LC4wMDUsLjI5LDEuNTIpO3RyYW5zaXRpb246dHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoLjQ1LC4wMDUsLjI5LDEuNTIpLC13ZWJraXQtdHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoLjQ1LC4wMDUsLjI5LDEuNTIpfS5nYWxsZXJ5IC5nYWxsZXJ5LWlubmVyLmRyYWdnYWJsZXtjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFifS5nYWxsZXJ5IC5nYWxsZXJ5LWlubmVyLmRyYWdnaW5ne3RyYW5zaXRpb246bm9uZTtjdXJzb3I6LXdlYmtpdC1ncmFiYmluZztjdXJzb3I6Z3JhYmJpbmd9QG1lZGlhIChtYXgtd2lkdGg6NTk5cHgpey5jaGV2cm9ue2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fWBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ0Nhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAvKipcclxuICAgKiBUaGUgbWFpbiBjYXJvdXNlbCBlbGVtZW50XHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgnY2Fyb3VzZWwnKSBjYXJvdXNlbDogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIFwiZmlsbXN0cmlwXCIgb2YgdGhlIGNhcm91c2VsICh0aGUgd3JhcHBlciBvZiB0aGUgaXRlbXMpXHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgnZmlsbXN0cmlwJykgZmlsbXN0cmlwOiBFbGVtZW50UmVmO1xyXG5cclxuICAvKipcclxuICAgKiBDYXJvdXNlbCBpdGVtc1xyXG4gICAqL1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oTmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmUpIGl0ZW1zOiBRdWVyeUxpc3Q8TmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmU+O1xyXG5cclxuICAvKipcclxuICAgKiBTSG93IHByZXYgYW5kIG5leHQgYnV0dG9uc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNob3dCdXR0b25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogTG9vcCB0aGUgY2Fyb3VzZWwgb25jZSB5b3UgaGl0IGxhc3QvZmlyc3QgaXRlbVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxvb3A6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBBdXRvIHNsaWRlIHRoZSBjYXJvdXNlbCAobXMpXHJcbiAgICovXHJcbiAgQElucHV0KCkgYXV0b1BsYXk6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIERvIG5vdCBzbmFwIHRvIHRoZSBjbG9zZXN0IGl0ZW1cclxuICAgKi9cclxuICBASW5wdXQoKSBmcmVlRHJhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBHaXZlIGFuIGVsYXN0aWMgZmVlbGluZyB3aGVuIHRoZSB1c2VyIGlzIGRyYWdnaW5nIGJleW9uZCB0aGUgYm91bmRzIG9mIHRoZSBmaWxtc3RyaXBcclxuICAgKi9cclxuICBASW5wdXQoKSBlbGFzdGljQm91bmRzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQnJlYWtwb2ludHMgdG8gd2F0Y2ggZm9yXHJcbiAgICovXHJcbiAgYnJlYWtzID0ge1xyXG4gICAgJ3NtJyA6ICcobWF4LXdpZHRoOiA5NTlweCknLFxyXG4gICAgJ21kJyA6ICcobWluLXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDEyNzlweCknLFxyXG4gICAgJ2xnJyA6ICcobWluLXdpZHRoOiAxMjgwcHgpJyxcclxuICAgICdwJyAgOiAnKG9yaWVudGF0aW9uOnBvcnRyYWl0KScsXHJcbiAgICAnbCcgIDogJyhvcmllbnRhdGlvbjpsYW5kc2NhcGUpJ1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIGN1cnJlbnRseSBkcmFnZ2luZ1xyXG4gICAqL1xyXG4gIGRyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1heGltdW0gZHJhZyBvZmZzZXQgKG1pbnVzKVxyXG4gICAqL1xyXG4gIG1heERyYWc6IG51bWJlciB8IGZhbHNlID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhbiBldmVudCBzdWJqZWN0XHJcbiAgICovXHJcbiAgZHJhZyQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGFzdCBrbm93biBYIG9mZnNldFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBsYXN0WDogbnVtYmVyID0gMDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGVtcCAoZm9yIHRoZSBjdXJyZW50IGRyYWdnaW5nIHNlc3Npb24pIGxhc3Qga25vd24gWCBvZmZzZXRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgdG1wTGFzdFg6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiBmb3IgdGhlIFBBTiBldmVudFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkcmFnU2JzJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBJdGVtcyBjaGFuZ2Ugc3Vic2NyaXB0aW9uXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGl0ZW1zJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBOdW1iZXIgb2YgdmlzaWJsZSBpdGVtc1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBfdmlzQ29uZjogVklTSUJMRV9JVEVNUyA9IHsgYWxsIDogMCB9O1xyXG5cclxuICAvKipcclxuICAgKiBOdW1iZXIgb2YgdmlzaWJsZSBpdGVtc1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBfdmlzSXRlbXM6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIENhcm91c2VsIHdhcyBpbml0ZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgaW5pdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNTUlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpc1NlcnZlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBMYXN0IHN0YXRlIG9mIHRoZSBvYnNlcnZlZCBicmVha3BvaW50c1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBsYXN0QnI6IHsgc206IGJvb2xlYW4sIG1kOiBib29sZWFuLCBsZzogYm9vbGVhbiwgcDogYm9vbGVhbiB9ID0ge1xyXG4gICAgc20gOiBmYWxzZSxcclxuICAgIG1kIDogZmFsc2UsXHJcbiAgICBsZyA6IHRydWUsXHJcbiAgICBwICA6IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBicmVha3BvaW50IG9ic2VydmVyXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGJya3BudHM6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQXV0b2xvb3AgdGltZXJcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgYXV0b0xvb3AkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQsIHByb3RlY3RlZCByZW5kOiBSZW5kZXJlcjIsIHByb3RlY3RlZCB6b25lOiBOZ1pvbmUsIGJyZWFrT2JzOiBCcmVha3BvaW50T2JzZXJ2ZXIpIHtcclxuICAgIHRoaXMuaXNTZXJ2ZXIgPSBpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtSWQpO1xyXG5cclxuICAgIGlmICghdGhpcy5pc1NlcnZlcikge1xyXG4gICAgICB0aGlzLmJya3BudHMgPSBicmVha09icy5vYnNlcnZlKFtcclxuICAgICAgICB0aGlzLmJyZWFrcy5zbSxcclxuICAgICAgICB0aGlzLmJyZWFrcy5tZCxcclxuICAgICAgICB0aGlzLmJyZWFrcy5sZyxcclxuICAgICAgICB0aGlzLmJyZWFrcy5sLFxyXG4gICAgICAgIHRoaXMuYnJlYWtzLnBcclxuICAgICAgXSkuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICAgICAgICBzbSA6IGJyZWFrT2JzLmlzTWF0Y2hlZCh0aGlzLmJyZWFrcy5zbSksXHJcbiAgICAgICAgICBtZCA6IGJyZWFrT2JzLmlzTWF0Y2hlZCh0aGlzLmJyZWFrcy5tZCksXHJcbiAgICAgICAgICBsZyA6IGJyZWFrT2JzLmlzTWF0Y2hlZCh0aGlzLmJyZWFrcy5sZyksXHJcbiAgICAgICAgICBwICA6IGJyZWFrT2JzLmlzTWF0Y2hlZCh0aGlzLmJyZWFrcy5wKSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAoc3RhdGUuc20gIT0gdGhpcy5sYXN0QnIuc20gfHwgc3RhdGUubWQgIT0gdGhpcy5sYXN0QnIubWQgfHwgc3RhdGUubGcgIT0gdGhpcy5sYXN0QnIubGcgfHwgc3RhdGUucCAhPSB0aGlzLmxhc3RCci5wKSB7XHJcbiAgICAgICAgICB0aGlzLmxhc3RCciA9IHN0YXRlO1xyXG4gICAgICAgICAgdGhpcy5zZXRWaXNpYmxlKCk7XHJcbiAgICAgICAgICB0aGlzLmluaXRlZCAmJiB0aGlzLmluaXRDYXJvdXNlbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZHJhZ1NicyQgJiYgdGhpcy5kcmFnU2JzJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5pdGVtcyQgJiYgdGhpcy5pdGVtcyQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuYnJrcG50cyAmJiB0aGlzLmJya3BudHMudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuYXV0b0xvb3AkICYmIHRoaXMuYXV0b0xvb3AkLnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgdGhpcy5hdXRvUGxheSA9IDA7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5pc1NlcnZlcikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pdGVtcyQgPSB0aGlzLml0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pbml0Q2Fyb3VzZWwoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW5pdENhcm91c2VsKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IG51bWJlciBvZiB2aXNpYmxlIGl0ZW1zIChzZXQgMCBmb3IgYXV0bylcclxuICAgKiBjYW4gYmUgbnVtYmVyIG9yIFZJU0lCTEVfSVRFTVMgdHlwZSBgeyBzbT86IG51bWJlciwgbWQ/OiBudW1iZXIsIGxnPzogbnVtYmVyLCBhbGw6IG51bWJlciB9YFxyXG4gICAqIEBwYXJhbSBpdGVtc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCB2aXNpYmxlKGl0ZW1zOiBWSVNJQkxFX0lURU1TIHwgbnVtYmVyKSB7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW1zID09ICdudW1iZXInKSB7XHJcbiAgICAgIGl0ZW1zID0geyBhbGwgOiBpdGVtcyB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3Zpc0NvbmYgPSBpdGVtcztcclxuXHJcbiAgICB0aGlzLnNldFZpc2libGUoKTtcclxuICAgIHRoaXMuaW5pdGVkICYmIHRoaXMuaW5pdENhcm91c2VsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHRoZSBsb29wIG9uIGhvdmVyXHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpIG9uSG92ZXIoKSB7XHJcbiAgICB0aGlzLnN0b3BMb29wKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdGFydCB0aGUgbG9vcCBvbiBtb3VzZSBvdXRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Ib3ZlclN0b3AoKSB7XHJcbiAgICB0aGlzLnN0YXJ0TG9vcCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdCB0aGUgY2Fyb3VzZWxcclxuICAgKi9cclxuICBpbml0Q2Fyb3VzZWwoKSB7XHJcbiAgICBpZiAodGhpcy5pc1NlcnZlcikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbml0ZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMucmVzZXQoKTtcclxuICAgIHRoaXMuc2V0SXRlbXNTdHlsZSgpO1xyXG4gICAgdGhpcy5tYXJrQ3VycmVudCgpO1xyXG5cclxuICAgIHRoaXMuZHJhZ1NicyQgJiYgdGhpcy5kcmFnU2JzJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5hdXRvTG9vcCQgJiYgdGhpcy5hdXRvTG9vcCQudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICB0aGlzLmRyYWdTYnMkID0gdGhpcy5kcmFnJC5waXBlKFxyXG4gICAgICAgIGZpbHRlcigoZXYpID0+IHRoaXMubWF4RHJhZyAhPT0gMClcclxuICAgICAgKS5zdWJzY3JpYmUoKGV2KSA9PiB0aGlzLmRyYWcoZXYpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc3RhcnRMb29wKCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWxjdWxhdGUgdGhlIG1heGltdW0gcG9zc2libGUgZHJhZyBvZmZzZXRcclxuICAgKiAwOiBpdCBjYW5ub3QgYmUgZHJhZ2dlZCBhdCBhbGxcclxuICAgKiBmYWxzZTogd2UgZG8gbm90IGtub3cgeWV0IHNvIGRyYWcgYXQgd2lsbFxyXG4gICAqXHJcbiAgICovXHJcbiAgY2FsY01heERyYWcoKTogbnVtYmVyIHwgZmFsc2Uge1xyXG4gICAgdGhpcy5tYXhEcmFnID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKCF0aGlzLml0ZW1zKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB3ID0gdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ud2lkdGgpLnJlZHVjZSgocHJldiwgbm93KSA9PiBwcmV2ICsgbm93LCAwKTtcclxuXHJcbiAgICBpZiAodykge1xyXG4gICAgICBpZiAodyA8PSB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpIHtcclxuICAgICAgICB0aGlzLm1heERyYWcgPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHBhcnQgPSAodyAvIHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCkgLSAxO1xyXG5cclxuICAgICAgICB0aGlzLm1heERyYWcgPSBNYXRoLnJvdW5kKE1hdGguYWJzKHBhcnQgKiB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLm1heERyYWc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGUgc2hvcnQgcGFuIHNlc3Npb25zIChzd2lwZSBvbiBsZWZ0IG5hZCByaWdodCkgYW5kIHRyeSB0byBmbGlwIHRvIHRoZSBuZXh0L3ByZXYgaXRlbVxyXG4gICAqXHJcbiAgICogQHBhcmFtIGV2XHJcbiAgICogQHBhcmFtIGRpclxyXG4gICAqL1xyXG4gIG9uU3dpcGUoZXYsIGRpcjogJ2wnIHwgJ3InID0gJ2wnKSB7XHJcbiAgICBpZiAodGhpcy5tYXhEcmFnICE9PSAwICYmIHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudCAmJiAodGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIC8gMikgPiBldi5kaXN0YW5jZSkge1xyXG4gICAgICBldi5kZWx0YVggKz0gdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIC8gMiAqIChkaXIgPT0gJ3InID8gMSA6IC0xKTtcclxuICAgICAgZXYuaXNGaW5hbCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmRyYWcoZXYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR28gdG8gbmV4dCBzbGlkZSAod29ya3Mgb25seSB3aGVuIF92aXNJdGVtcyBpcyBtb3JlIHRoYW4gMClcclxuICAgKiBAcGFyYW0gZXZcclxuICAgKi9cclxuICBuZXh0KGV2Pykge1xyXG4gICAgZXYgJiYgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ICYmIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLl92aXNJdGVtcykge1xyXG4gICAgICBjb25zdCBlbmQgPSB0aGlzLmlzQXRFbmQoKTtcclxuXHJcbiAgICAgIGlmIChlbmQgJiYgdGhpcy5sb29wKSB7XHJcbiAgICAgICAgdGhpcy5tb3ZlU3RyaXAodGhpcy5sYXN0WCA9IDApO1xyXG4gICAgICB9IGVsc2UgaWYgKCFlbmQpIHtcclxuICAgICAgICB0aGlzLm1vdmVTdHJpcCh0aGlzLmxhc3RYICs9IHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAvIHRoaXMuX3Zpc0l0ZW1zICogLTEpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm1vdmVXaXRoaW5Cb3VuZHMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIHRvIHByZXYgc2xpZGUgKHdvcmtzIG9ubHkgd2hlbiBfdmlzSXRlbXMgaXMgbW9yZSB0aGFuIDApXHJcbiAgICogQHBhcmFtIGV2XHJcbiAgICovXHJcbiAgcHJldihldj8pIHtcclxuICAgIGV2ICYmIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldiAmJiBldi5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZiAodGhpcy5fdmlzSXRlbXMpIHtcclxuICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmlzQXRTdGFydCgpO1xyXG5cclxuICAgICAgaWYgKHN0YXJ0ICYmIHRoaXMubG9vcCAmJiB0aGlzLm1heERyYWcgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgdGhpcy5tb3ZlU3RyaXAodGhpcy5sYXN0WCA9ICh0aGlzLm1heERyYWcgKiAtMSkpO1xyXG4gICAgICB9IGVsc2UgaWYgKCFzdGFydCkge1xyXG4gICAgICAgIHRoaXMubW92ZVN0cmlwKHRoaXMubGFzdFggKz0gdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIC8gdGhpcy5fdmlzSXRlbXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm1vdmVXaXRoaW5Cb3VuZHMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IHRoZSBhdXRvIGxvb3BcclxuICAgKi9cclxuICBzdGFydExvb3AoKSB7XHJcbiAgICB0aGlzLmF1dG9Mb29wJCAmJiB0aGlzLmF1dG9Mb29wJC51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLmF1dG9QbGF5KSB7XHJcbiAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hdXRvTG9vcCQgPSBpbnRlcnZhbCh0aGlzLmF1dG9QbGF5KS5waXBlKFxyXG4gICAgICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuYXV0b1BsYXkgPiAwKVxyXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMubmV4dCgpKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHRoZSBhdXRvbG9vcFxyXG4gICAqL1xyXG4gIHN0b3BMb29wKCkge1xyXG4gICAgdGhpcy5hdXRvTG9vcCQgJiYgdGhpcy5hdXRvTG9vcCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdlIGFyZSBhdCB0aGUgZmlyc3Qgc2xpZGUgaXRlbVxyXG4gICAqL1xyXG4gIGlzQXRTdGFydCgpIHtcclxuICAgIHJldHVybiB0aGlzLmxhc3RYID49IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXZSBhcmUgYXQgdGhlIGxhc3Qgc2xpZGUgaXRlbVxyXG4gICAqL1xyXG4gIGlzQXRFbmQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXhEcmFnICE9PSBmYWxzZSAmJiBNYXRoLmFicyh0aGlzLmxhc3RYKSA+PSB0aGlzLm1heERyYWc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXZSBhcmUgYmVpbmcgZHJhZ2dlZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGV2XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRyYWcoZXYpIHtcclxuICAgIC8vIGxlZnRvdmVyIHBhbiBldmVudHNcclxuICAgIGlmICghdGhpcy5kcmFnZ2luZyAmJiBldi5pc0ZpbmFsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIElmICFkcmFnZ2luZyB0aGVuIHRoaXMgaXMgdGhlIHN0YXJ0IG9mIGEgbmV3IGRyYWdcclxuICAgICAqL1xyXG4gICAgaWYgKCF0aGlzLmRyYWdnaW5nKSB7XHJcbiAgICAgIHRoaXMuc2V0RHJhZ2dpbmcoKTtcclxuXHJcbiAgICAgIHRoaXMudG1wTGFzdFggPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2UgaGF2ZW4ndCBjYWxjdWxhdGVkIHRoZSBtYXggb2Zmc2V0IHRoYXQgY291bGQgYmUgZHJhZ2dlZCBzbyB0cnkgdGhhdCBub3dcclxuICAgICAqL1xyXG4gICAgaWYgKHRoaXMubWF4RHJhZyA9PT0gZmFsc2UpIHtcclxuICAgICAgdGhpcy5jYWxjTWF4RHJhZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogYWRkIHRoZSBsYXN0IGtub3duIHBvc2l0aW9uIHRvIHRoZSBkZWx0YVhcclxuICAgICAqL1xyXG4gICAgbGV0IHBvcyA9IGV2LmRlbHRhWCArIHRoaXMubGFzdFg7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYWtlIGFkanVzdG1lbnRzOlxyXG4gICAgICogSWYgdGhlIG5ldyBwb3NpdGlvbiBpcyBtb3JlIHRoYW4gMCB3ZSBjYW4ndCByZWFsbHkgZHJhZyBtb3JlIGluIHRoYXQgZGlyZWN0aW9uXHJcbiAgICAgKiBJZiB3ZSBoYXZlIG1heERyYWcgd2UgY2Fubm90IGRyYWcgbW9yZSB0aGFuIHRoYXRcclxuICAgICAqIHRoaXMuZWxhc3RpY0JvdW5kcyBnaXZlcyBhIGJpdCBtb3JlIHBsZWFzYW50IGV4cGVyaWVuY2VcclxuICAgICAqL1xyXG4gICAgaWYgKHBvcyA+IDApIHtcclxuICAgICAgcG9zID0gdGhpcy5lbGFzdGljQm91bmRzID8gcG9zICogMC4xIDogMDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5tYXhEcmFnICE9PSBmYWxzZSAmJiBNYXRoLmFicyhwb3MpID4gdGhpcy5tYXhEcmFnKSB7XHJcbiAgICAgIGNvbnN0IHRtcCA9IHRoaXMubWF4RHJhZyAqIE1hdGguc2lnbihwb3MpO1xyXG4gICAgICBwb3MgICAgICAgPSB0bXAgKyAodGhpcy5lbGFzdGljQm91bmRzID8gKHBvcyAtIHRtcCkgKiAwLjEgOiAwKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBsYXN0IGRyYWcgZXZlbnQgaGFzIGlzRmluYWwgdG8gdHJ1ZVxyXG4gICAgICovXHJcbiAgICBpZiAoZXYuaXNGaW5hbCkge1xyXG4gICAgICB0aGlzLmxhc3RYID0gcG9zO1xyXG5cclxuICAgICAgdGhpcy5kZWxEcmFnZ2luZygpO1xyXG5cclxuICAgICAgLy8gZ2l2ZSBpdCBzb21lIHRpbWUgYW5kIHRoZW4gdHJ5IHRvIHBpbiB0byB0aGUgbmVhcmVzdCBpdGVtIGlmIG5vdCBmcmVlRHJhZ1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucGluUG9zaXRpb24oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb3ZlIHRoZSBzdHJpcCBpZiB3ZSBoYXZlIG5ldyBwb3NpdGlvblxyXG4gICAgICovXHJcbiAgICBpZiAodGhpcy50bXBMYXN0WCAhPSBwb3MpIHtcclxuICAgICAgdGhpcy50bXBMYXN0WCA9IHBvcztcclxuICAgICAgdGhpcy5tb3ZlU3RyaXAocG9zID8gcG9zIDogbnVsbClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHdlIGNhbm5vdCBmcmVlIGRyYWcgd2Ugc2hvdWxkIGdldCB0byB0aGUgbmVhcmVzdCBpdGVtIGFmdGVyIHRoZSBkcmFnIHdhcyBmaW5pc2hlZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBwaW5Qb3NpdGlvbigpIHtcclxuICAgIHRoaXMubW92ZVdpdGhpbkJvdW5kcygpO1xyXG4gICAgdGhpcy5tYXJrQ3VycmVudCgpO1xyXG5cclxuICAgIGNvbnN0IHBvcyA9IE1hdGguYWJzKHRoaXMubGFzdFgpO1xyXG5cclxuICAgIGlmICh0aGlzLmZyZWVEcmFnIHx8IHRoaXMubGFzdFggPT0gMCB8fCBwb3MgPT0gdGhpcy5tYXhEcmFnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbmV3UG9zID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgcG9zaXRpb24gb2YgdGhlIGxlZnQgbW9zdCBpdGVtIHRoYXQgaGFzIGl0J3MgaGFsZiB3aWR0aCB3aXRoaW4gdmlld1xyXG4gICAgICovXHJcbiAgICB0aGlzLml0ZW1zLnNvbWUoKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKG5ld1BvcyArIChpdGVtLndpZHRoIC8gMikgPj0gcG9zKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG5ld1BvcyArPSBpdGVtLndpZHRoO1xyXG5cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5sYXN0WCA9IG5ld1BvcyAqIE1hdGguc2lnbih0aGlzLmxhc3RYKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERvbid0IGdvIGJleW9uZCBtYXhEcmFnIGlmIHNldCAodGhpcyB3aWxsIGVmZmVjdGl2ZWx5IGRpc3JlZ2FyZCB0aGUgbW9zdCBsZWZ0IHBvc2l0aW9uIG9mIHRoZSBpdGVtKVxyXG4gICAgICovXHJcbiAgICBpZiAodGhpcy5tYXhEcmFnICYmIG5ld1BvcyA+IHRoaXMubWF4RHJhZykge1xyXG4gICAgICB0aGlzLmxhc3RYID0gdGhpcy5tYXhEcmFnICogTWF0aC5zaWduKHRoaXMubGFzdFgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubW92ZVN0cmlwKHRoaXMubGFzdFgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFyayBjYXJvdXNlbCBpdGVtcyB0aGF0IGFyZSBjdXJyZW50XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG1hcmtDdXJyZW50KCkge1xyXG4gICAgY29uc3QgcG9zTWluID0gTWF0aC5hYnModGhpcy5sYXN0WCksXHJcbiAgICAgICAgICBwb3NNYXggPSBwb3NNaW4gKyB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XHJcbiAgICBsZXQgdG1wUG9zICAgPSAwO1xyXG5cclxuICAgIHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGl0ZW0uY3VycmVudCA9IHRtcFBvcyA+PSBwb3NNaW4gJiYgdG1wUG9zIDwgcG9zTWF4O1xyXG4gICAgICB0bXBQb3MgKz0gaXRlbS53aWR0aDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSWYgdGhlIGZpbG1zdHJpcCBpcyBvdXQgb2YgYm91bmRzICgwIGFuZCBtYXhEcmFnKSBtb3ZlIGl0IGJhY2sgd2l0aGluXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG1vdmVXaXRoaW5Cb3VuZHMoKSB7XHJcbiAgICBpZiAodGhpcy5sYXN0WCA+IDApIHtcclxuICAgICAgdGhpcy5tb3ZlU3RyaXAodGhpcy5sYXN0WCA9IDApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubWF4RHJhZyAhPT0gZmFsc2UgJiYgTWF0aC5hYnModGhpcy5sYXN0WCkgPiB0aGlzLm1heERyYWcpIHtcclxuICAgICAgdGhpcy5tb3ZlU3RyaXAodGhpcy5sYXN0WCA9IHRoaXMubWF4RHJhZyAqIE1hdGguc2lnbih0aGlzLmxhc3RYKSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgZmxleCBzdHlsZXMgdG8gdGhlIGNhcm91c2VsIGl0ZW1zXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNldEl0ZW1zU3R5bGUoKSB7XHJcbiAgICBjb25zdCBmbGV4ID0gdGhpcy5fdmlzSXRlbXMgIT0gMCA/ICgxMDAgLyB0aGlzLl92aXNJdGVtcykgKyAnJScgOiAnYXV0byc7XHJcblxyXG4gICAgdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0uc2V0RmxleChmbGV4KSk7XHJcbiAgICB0aGlzLmNhbGNNYXhEcmFnKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldCB0aGUgY2Fyb3VzZWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVzZXQoKSB7XHJcbiAgICB0aGlzLmxhc3RYICAgID0gMDtcclxuICAgIHRoaXMubWF4RHJhZyAgPSBmYWxzZTtcclxuICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnJlc2V0KCkpO1xyXG4gICAgdGhpcy5tb3ZlU3RyaXAoMCkuZGVsRHJhZ2dpbmcoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1vdmUgdGhlIGZpbG0gc3RyaXAgd2l0aCBjc3MgdHJhbnNmb3JtXHJcbiAgICogQHBhcmFtIHBvc1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtb3ZlU3RyaXAocG9zOiBudW1iZXIpIHtcclxuICAgIHRoaXMucmVuZC5zZXRTdHlsZSh0aGlzLmZpbG1zdHJpcC5uYXRpdmVFbGVtZW50LCAndHJhbnNmb3JtJywgcG9zID8gJ3RyYW5zbGF0ZVgoJyArIHBvcyArICdweCknIDogJycpO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0RHJhZ2dpbmcoKSB7XHJcbiAgICB0aGlzLmRyYWdnaW5nID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnJlbmQuYWRkQ2xhc3ModGhpcy5maWxtc3RyaXAubmF0aXZlRWxlbWVudCwgJ2RyYWdnaW5nJyk7XHJcbiAgICB0aGlzLnJlbmQuYWRkQ2xhc3ModGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LCAnZHJhZ2dpbmcnKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRlbERyYWdnaW5nKCkge1xyXG4gICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMucmVuZC5yZW1vdmVDbGFzcyh0aGlzLmZpbG1zdHJpcC5uYXRpdmVFbGVtZW50LCAnZHJhZ2dpbmcnKTtcclxuICAgIHRoaXMucmVuZC5yZW1vdmVDbGFzcyh0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQsICdkcmFnZ2luZycpO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0VmlzaWJsZSgpIHtcclxuICAgIGlmICh0aGlzLmxhc3RCci5zbSkge1xyXG4gICAgICB0aGlzLl92aXNJdGVtcyA9IHRoaXMuX3Zpc0NvbmYuc20gIT09IHVuZGVmaW5lZCA/IHRoaXMuX3Zpc0NvbmYuc20gOiAodGhpcy5fdmlzQ29uZi5hbGwgfHwgMCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFzdEJyLm1kKSB7XHJcbiAgICAgIHRoaXMuX3Zpc0l0ZW1zID0gdGhpcy5fdmlzQ29uZi5tZCAhPT0gdW5kZWZpbmVkID8gdGhpcy5fdmlzQ29uZi5tZCA6ICh0aGlzLl92aXNDb25mLmFsbCB8fCAwKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5sYXN0QnIubGcpIHtcclxuICAgICAgdGhpcy5fdmlzSXRlbXMgPSB0aGlzLl92aXNDb25mLmxnICE9PSB1bmRlZmluZWQgPyB0aGlzLl92aXNDb25mLmxnIDogKHRoaXMuX3Zpc0NvbmYuYWxsIHx8IDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdmlzSXRlbXMgPSB0aGlzLl92aXNDb25mLmFsbCB8fCAwO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNpbG1hci9uZy1jYXJvdXNlbC8iLCJzb3VyY2VzIjpbImxpYi9uZy1jYXJvdXNlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBa0J2RSxNQUFNOzs7Ozs7O0lBK0hKLFlBQWlDLFVBQVUsRUFBWSxJQUFlLEVBQVksSUFBWSxFQUFFLFFBQTRCO1FBQXJFLFNBQUksR0FBSixJQUFJLENBQVc7UUFBWSxTQUFJLEdBQUosSUFBSSxDQUFROzs7OzJCQTVHOUQsSUFBSTs7OztvQkFLWCxJQUFJOzs7O3dCQUtELENBQUM7Ozs7d0JBS0EsS0FBSzs7Ozs2QkFLQSxJQUFJOzs7O3NCQUs3QjtZQUNQLElBQUksRUFBRyxvQkFBb0I7WUFDM0IsSUFBSSxFQUFHLDRDQUE0QztZQUNuRCxJQUFJLEVBQUcscUJBQXFCO1lBQzVCLEdBQUcsRUFBSSx3QkFBd0I7WUFDL0IsR0FBRyxFQUFJLHlCQUF5QjtTQUNqQzs7Ozt3QkFLbUIsS0FBSzs7Ozt1QkFLQyxLQUFLOzs7O3FCQUtULElBQUks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QUksQ0FBQyxDQUFDLENBQUM7U0FDL0Y7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3pDO0tBQ0Y7OztZQTFqQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBTSxnQkFBZ0I7Z0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7O09BU0w7Z0JBQ0wsTUFBTSxFQUFFLENBQUMsK29EQUErb0QsQ0FBQzthQUMxcEQ7Ozs7NENBZ0ljLE1BQU0sU0FBQyxXQUFXO1lBekovQixTQUFTO1lBSlQsTUFBTTtZQVdDLGtCQUFrQjs7O3lCQXVCeEIsU0FBUyxTQUFDLFVBQVU7MEJBS3BCLFNBQVMsU0FBQyxXQUFXO3NCQUtyQixlQUFlLFNBQUMsdUJBQXVCOzRCQUt2QyxLQUFLO3FCQUtMLEtBQUs7eUJBS0wsS0FBSzt5QkFLTCxLQUFLOzhCQUtMLEtBQUs7d0JBK0lMLEtBQUs7d0JBY0wsWUFBWSxTQUFDLFlBQVk7NEJBT3pCLFlBQVksU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFBMQVRGT1JNX0lELFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBpbnRlcnZhbCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGZpbHRlciwgdGFrZVdoaWxlIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciB9IGZyb20gXCJAYW5ndWxhci9jZGsvbGF5b3V0XCI7XG5pbXBvcnQgeyBOZ0Nhcm91c2VsSXRlbURpcmVjdGl2ZSB9IGZyb20gXCIuL25nLWNhcm91c2VsLWl0ZW0uZGlyZWN0aXZlXCI7XG5cbmV4cG9ydCB0eXBlIFZJU0lCTEVfSVRFTVMgPSB7IHNtPzogbnVtYmVyLCBtZD86IG51bWJlciwgbGc/OiBudW1iZXIsIGFsbDogbnVtYmVyIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvciAgICA6ICdzaS1uZy1jYXJvdXNlbCcsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImdhbGxlcnlcIiAjY2Fyb3VzZWwgW2NsYXNzLmRyYWdnYWJsZV09XCJtYXhEcmFnICE9PSAwXCI+XG4gIDxkaXYgI2ZpbG1zdHJpcCBjbGFzcz1cImdhbGxlcnktaW5uZXJcIiAoc3dpcGVsZWZ0KT1cIm9uU3dpcGUoJGV2ZW50LCAnbCcpXCIgKHN3aXBlcmlnaHQpPVwib25Td2lwZSgkZXZlbnQsICdyJylcIlxuICAgICAgIChwYW4pPVwiZHJhZyQubmV4dCgkZXZlbnQpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dCdXR0b25zICYmIG1heERyYWcgIT09IDBcIj5cbiAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiY2hldnJvbiBsZWZ0XCIgKGNsaWNrKT1cInByZXYoJGV2ZW50KVwiIHRpdGxlPVwiUHJldmlvdXNcIiB0YWJpbmRleD1cIi0xXCI+PC9hPlxuICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJjaGV2cm9uIHJpZ2h0XCIgKGNsaWNrKT1cIm5leHQoJGV2ZW50KVwiIHRpdGxlPVwiTmV4dFwiIHRhYmluZGV4PVwiLTFcIj48L2E+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+YCxcbiAgc3R5bGVzOiBbYHNpLW5nLWNhcm91c2Vse2Rpc3BsYXk6YmxvY2t9LmdhbGxlcnl7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5nYWxsZXJ5IC5jaGV2cm9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDUwJSAtIDFyZW0pO3dpZHRoOjJyZW07aGVpZ2h0OjJyZW07Zm9udC1zaXplOjEuNHJlbTtwYWRkaW5nOi4zcmVtIC4yNXJlbSAuMjVyZW07Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyO29wYWNpdHk6MDt0cmFuc2l0aW9uOmFsbCAxNTBtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uZ2FsbGVyeSAuY2hldnJvbjpob3Zlcntib3gtc2hhZG93OjAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsLjIpLDAgNHB4IDVweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpfS5nYWxsZXJ5IC5jaGV2cm9uLmxlZnR7bGVmdDo1cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmdhbGxlcnkgLmNoZXZyb24ucmlnaHR7cmlnaHQ6NXB4fS5nYWxsZXJ5IC5jaGV2cm9uOjpiZWZvcmV7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDouMTVlbSAuMTVlbSAwIDA7Y29udGVudDonJztkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjVlbTt3aWR0aDouNWVtO3RvcDouMTVlbTtsZWZ0Oi4xNWVtO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmdhbGxlcnkgLmNoZXZyb24ucmlnaHQ6YmVmb3Jle2xlZnQ6LjFlbTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5nYWxsZXJ5IC5jaGV2cm9uLmJvdHRvbTpiZWZvcmV7dG9wOjA7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpfS5nYWxsZXJ5IC5jaGV2cm9uLmxlZnQ6YmVmb3Jle2xlZnQ6LjFlbTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKX0uZ2FsbGVyeTpob3ZlciAuY2hldnJvbntkaXNwbGF5OmlubGluZS1ibG9jaztvcGFjaXR5Oi44fS5nYWxsZXJ5IC5nYWxsZXJ5LWlubmVye2ZsZXgtZmxvdzpyb3cgbm93cmFwO2Rpc3BsYXk6ZmxleDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoLjQ1LC4wMDUsLjI5LDEuNTIpO3RyYW5zaXRpb246dHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoLjQ1LC4wMDUsLjI5LDEuNTIpO3RyYW5zaXRpb246dHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoLjQ1LC4wMDUsLjI5LDEuNTIpLC13ZWJraXQtdHJhbnNmb3JtIC41cyBjdWJpYy1iZXppZXIoLjQ1LC4wMDUsLjI5LDEuNTIpfS5nYWxsZXJ5IC5nYWxsZXJ5LWlubmVyLmRyYWdnYWJsZXtjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFifS5nYWxsZXJ5IC5nYWxsZXJ5LWlubmVyLmRyYWdnaW5ne3RyYW5zaXRpb246bm9uZTtjdXJzb3I6LXdlYmtpdC1ncmFiYmluZztjdXJzb3I6Z3JhYmJpbmd9QG1lZGlhIChtYXgtd2lkdGg6NTk5cHgpey5jaGV2cm9ue2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fWBdXG59KVxuZXhwb3J0IGNsYXNzIE5nQ2Fyb3VzZWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIG1haW4gY2Fyb3VzZWwgZWxlbWVudFxuICAgKi9cbiAgQFZpZXdDaGlsZCgnY2Fyb3VzZWwnKSBjYXJvdXNlbDogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogVGhlIFwiZmlsbXN0cmlwXCIgb2YgdGhlIGNhcm91c2VsICh0aGUgd3JhcHBlciBvZiB0aGUgaXRlbXMpXG4gICAqL1xuICBAVmlld0NoaWxkKCdmaWxtc3RyaXAnKSBmaWxtc3RyaXA6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIENhcm91c2VsIGl0ZW1zXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlKSBpdGVtczogUXVlcnlMaXN0PE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlPjtcblxuICAvKipcbiAgICogU0hvdyBwcmV2IGFuZCBuZXh0IGJ1dHRvbnNcbiAgICovXG4gIEBJbnB1dCgpIHNob3dCdXR0b25zOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogTG9vcCB0aGUgY2Fyb3VzZWwgb25jZSB5b3UgaGl0IGxhc3QvZmlyc3QgaXRlbVxuICAgKi9cbiAgQElucHV0KCkgbG9vcDogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEF1dG8gc2xpZGUgdGhlIGNhcm91c2VsIChtcylcbiAgICovXG4gIEBJbnB1dCgpIGF1dG9QbGF5OiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBEbyBub3Qgc25hcCB0byB0aGUgY2xvc2VzdCBpdGVtXG4gICAqL1xuICBASW5wdXQoKSBmcmVlRHJhZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBHaXZlIGFuIGVsYXN0aWMgZmVlbGluZyB3aGVuIHRoZSB1c2VyIGlzIGRyYWdnaW5nIGJleW9uZCB0aGUgYm91bmRzIG9mIHRoZSBmaWxtc3RyaXBcbiAgICovXG4gIEBJbnB1dCgpIGVsYXN0aWNCb3VuZHM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBCcmVha3BvaW50cyB0byB3YXRjaCBmb3JcbiAgICovXG4gIGJyZWFrcyA9IHtcbiAgICAnc20nIDogJyhtYXgtd2lkdGg6IDk1OXB4KScsXG4gICAgJ21kJyA6ICcobWluLXdpZHRoOiA5NjBweCkgYW5kIChtYXgtd2lkdGg6IDEyNzlweCknLFxuICAgICdsZycgOiAnKG1pbi13aWR0aDogMTI4MHB4KScsXG4gICAgJ3AnICA6ICcob3JpZW50YXRpb246cG9ydHJhaXQpJyxcbiAgICAnbCcgIDogJyhvcmllbnRhdGlvbjpsYW5kc2NhcGUpJ1xuICB9O1xuXG4gIC8qKlxuICAgKiBjdXJyZW50bHkgZHJhZ2dpbmdcbiAgICovXG4gIGRyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gZHJhZyBvZmZzZXQgKG1pbnVzKVxuICAgKi9cbiAgbWF4RHJhZzogbnVtYmVyIHwgZmFsc2UgPSBmYWxzZTtcblxuICAvKipcbiAgICogUGFuIGV2ZW50IHN1YmplY3RcbiAgICovXG4gIGRyYWckOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIExhc3Qga25vd24gWCBvZmZzZXRcbiAgICovXG4gIHByb3RlY3RlZCBsYXN0WDogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogVGVtcCAoZm9yIHRoZSBjdXJyZW50IGRyYWdnaW5nIHNlc3Npb24pIGxhc3Qga25vd24gWCBvZmZzZXRcbiAgICovXG4gIHByb3RlY3RlZCB0bXBMYXN0WDogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIGZvciB0aGUgUEFOIGV2ZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgZHJhZ1NicyQ6IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogSXRlbXMgY2hhbmdlIHN1YnNjcmlwdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGl0ZW1zJDogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgdmlzaWJsZSBpdGVtc1xuICAgKi9cbiAgcHJvdGVjdGVkIF92aXNDb25mOiBWSVNJQkxFX0lURU1TID0geyBhbGwgOiAwIH07XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiB2aXNpYmxlIGl0ZW1zXG4gICAqL1xuICBwcm90ZWN0ZWQgX3Zpc0l0ZW1zOiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBDYXJvdXNlbCB3YXMgaW5pdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNTUlxuICAgKi9cbiAgcHJvdGVjdGVkIGlzU2VydmVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIExhc3Qgc3RhdGUgb2YgdGhlIG9ic2VydmVkIGJyZWFrcG9pbnRzXG4gICAqL1xuICBwcm90ZWN0ZWQgbGFzdEJyOiB7IHNtOiBib29sZWFuLCBtZDogYm9vbGVhbiwgbGc6IGJvb2xlYW4sIHA6IGJvb2xlYW4gfSA9IHtcbiAgICBzbSA6IGZhbHNlLFxuICAgIG1kIDogZmFsc2UsXG4gICAgbGcgOiB0cnVlLFxuICAgIHAgIDogZmFsc2VcbiAgfTtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBicmVha3BvaW50IG9ic2VydmVyXG4gICAqL1xuICBwcm90ZWN0ZWQgYnJrcG50czogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBBdXRvbG9vcCB0aW1lclxuICAgKi9cbiAgcHJvdGVjdGVkIGF1dG9Mb29wJDogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQsIHByb3RlY3RlZCByZW5kOiBSZW5kZXJlcjIsIHByb3RlY3RlZCB6b25lOiBOZ1pvbmUsIGJyZWFrT2JzOiBCcmVha3BvaW50T2JzZXJ2ZXIpIHtcbiAgICB0aGlzLmlzU2VydmVyID0gaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKTtcblxuICAgIGlmICghdGhpcy5pc1NlcnZlcikge1xuICAgICAgdGhpcy5icmtwbnRzID0gYnJlYWtPYnMub2JzZXJ2ZShbXG4gICAgICAgIHRoaXMuYnJlYWtzLnNtLFxuICAgICAgICB0aGlzLmJyZWFrcy5tZCxcbiAgICAgICAgdGhpcy5icmVha3MubGcsXG4gICAgICAgIHRoaXMuYnJlYWtzLmwsXG4gICAgICAgIHRoaXMuYnJlYWtzLnBcbiAgICAgIF0pLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgICBzbSA6IGJyZWFrT2JzLmlzTWF0Y2hlZCh0aGlzLmJyZWFrcy5zbSksXG4gICAgICAgICAgbWQgOiBicmVha09icy5pc01hdGNoZWQodGhpcy5icmVha3MubWQpLFxuICAgICAgICAgIGxnIDogYnJlYWtPYnMuaXNNYXRjaGVkKHRoaXMuYnJlYWtzLmxnKSxcbiAgICAgICAgICBwICA6IGJyZWFrT2JzLmlzTWF0Y2hlZCh0aGlzLmJyZWFrcy5wKSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoc3RhdGUuc20gIT0gdGhpcy5sYXN0QnIuc20gfHwgc3RhdGUubWQgIT0gdGhpcy5sYXN0QnIubWQgfHwgc3RhdGUubGcgIT0gdGhpcy5sYXN0QnIubGcgfHwgc3RhdGUucCAhPSB0aGlzLmxhc3RCci5wKSB7XG4gICAgICAgICAgdGhpcy5sYXN0QnIgPSBzdGF0ZTtcbiAgICAgICAgICB0aGlzLnNldFZpc2libGUoKTtcbiAgICAgICAgICB0aGlzLmluaXRlZCAmJiB0aGlzLmluaXRDYXJvdXNlbCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRyYWdTYnMkICYmIHRoaXMuZHJhZ1NicyQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLml0ZW1zJCAmJiB0aGlzLml0ZW1zJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuYnJrcG50cyAmJiB0aGlzLmJya3BudHMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmF1dG9Mb29wJCAmJiB0aGlzLmF1dG9Mb29wJC51bnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5hdXRvUGxheSA9IDA7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLml0ZW1zJCA9IHRoaXMuaXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdENhcm91c2VsKCk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbml0Q2Fyb3VzZWwoKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG51bWJlciBvZiB2aXNpYmxlIGl0ZW1zIChzZXQgMCBmb3IgYXV0bylcbiAgICogY2FuIGJlIG51bWJlciBvciBWSVNJQkxFX0lURU1TIHR5cGUgYHsgc20/OiBudW1iZXIsIG1kPzogbnVtYmVyLCBsZz86IG51bWJlciwgYWxsOiBudW1iZXIgfWBcbiAgICogQHBhcmFtIGl0ZW1zXG4gICAqL1xuICBASW5wdXQoKSBzZXQgdmlzaWJsZShpdGVtczogVklTSUJMRV9JVEVNUyB8IG51bWJlcikge1xuICAgIGlmICh0eXBlb2YgaXRlbXMgPT0gJ251bWJlcicpIHtcbiAgICAgIGl0ZW1zID0geyBhbGwgOiBpdGVtcyB9O1xuICAgIH1cblxuICAgIHRoaXMuX3Zpc0NvbmYgPSBpdGVtcztcblxuICAgIHRoaXMuc2V0VmlzaWJsZSgpO1xuICAgIHRoaXMuaW5pdGVkICYmIHRoaXMuaW5pdENhcm91c2VsKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCB0aGUgbG9vcCBvbiBob3ZlclxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpIG9uSG92ZXIoKSB7XG4gICAgdGhpcy5zdG9wTG9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHRoZSBsb29wIG9uIG1vdXNlIG91dFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpIG9uSG92ZXJTdG9wKCkge1xuICAgIHRoaXMuc3RhcnRMb29wKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdCB0aGUgY2Fyb3VzZWxcbiAgICovXG4gIGluaXRDYXJvdXNlbCgpIHtcbiAgICBpZiAodGhpcy5pc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTtcblxuICAgIHRoaXMucmVzZXQoKTtcbiAgICB0aGlzLnNldEl0ZW1zU3R5bGUoKTtcbiAgICB0aGlzLm1hcmtDdXJyZW50KCk7XG5cbiAgICB0aGlzLmRyYWdTYnMkICYmIHRoaXMuZHJhZ1NicyQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmF1dG9Mb29wJCAmJiB0aGlzLmF1dG9Mb29wJC51bnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuZHJhZ1NicyQgPSB0aGlzLmRyYWckLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXYpID0+IHRoaXMubWF4RHJhZyAhPT0gMClcbiAgICAgICkuc3Vic2NyaWJlKChldikgPT4gdGhpcy5kcmFnKGV2KSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXJ0TG9vcCgpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSBtYXhpbXVtIHBvc3NpYmxlIGRyYWcgb2Zmc2V0XG4gICAqIDA6IGl0IGNhbm5vdCBiZSBkcmFnZ2VkIGF0IGFsbFxuICAgKiBmYWxzZTogd2UgZG8gbm90IGtub3cgeWV0IHNvIGRyYWcgYXQgd2lsbFxuICAgKlxuICAgKi9cbiAgY2FsY01heERyYWcoKTogbnVtYmVyIHwgZmFsc2Uge1xuICAgIHRoaXMubWF4RHJhZyA9IGZhbHNlO1xuXG4gICAgaWYgKCF0aGlzLml0ZW1zKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdyA9IHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLndpZHRoKS5yZWR1Y2UoKHByZXYsIG5vdykgPT4gcHJldiArIG5vdywgMCk7XG5cbiAgICBpZiAodykge1xuICAgICAgaWYgKHcgPD0gdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKSB7XG4gICAgICAgIHRoaXMubWF4RHJhZyA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwYXJ0ID0gKHcgLyB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpIC0gMTtcblxuICAgICAgICB0aGlzLm1heERyYWcgPSBNYXRoLnJvdW5kKE1hdGguYWJzKHBhcnQgKiB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tYXhEcmFnO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBzaG9ydCBwYW4gc2Vzc2lvbnMgKHN3aXBlIG9uIGxlZnQgbmFkIHJpZ2h0KSBhbmQgdHJ5IHRvIGZsaXAgdG8gdGhlIG5leHQvcHJldiBpdGVtXG4gICAqXG4gICAqIEBwYXJhbSBldlxuICAgKiBAcGFyYW0gZGlyXG4gICAqL1xuICBvblN3aXBlKGV2LCBkaXI6ICdsJyB8ICdyJyA9ICdsJykge1xuICAgIGlmICh0aGlzLm1heERyYWcgIT09IDAgJiYgdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50ICYmICh0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLyAyKSA+IGV2LmRpc3RhbmNlKSB7XG4gICAgICBldi5kZWx0YVggKz0gdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIC8gMiAqIChkaXIgPT0gJ3InID8gMSA6IC0xKTtcbiAgICAgIGV2LmlzRmluYWwgPSB0cnVlO1xuXG4gICAgICB0aGlzLmRyYWcoZXYpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBuZXh0IHNsaWRlICh3b3JrcyBvbmx5IHdoZW4gX3Zpc0l0ZW1zIGlzIG1vcmUgdGhhbiAwKVxuICAgKiBAcGFyYW0gZXZcbiAgICovXG4gIG5leHQoZXY/KSB7XG4gICAgZXYgJiYgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICBldiAmJiBldi5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLl92aXNJdGVtcykge1xuICAgICAgY29uc3QgZW5kID0gdGhpcy5pc0F0RW5kKCk7XG5cbiAgICAgIGlmIChlbmQgJiYgdGhpcy5sb29wKSB7XG4gICAgICAgIHRoaXMubW92ZVN0cmlwKHRoaXMubGFzdFggPSAwKTtcbiAgICAgIH0gZWxzZSBpZiAoIWVuZCkge1xuICAgICAgICB0aGlzLm1vdmVTdHJpcCh0aGlzLmxhc3RYICs9IHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAvIHRoaXMuX3Zpc0l0ZW1zICogLTEpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm1vdmVXaXRoaW5Cb3VuZHMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR28gdG8gcHJldiBzbGlkZSAod29ya3Mgb25seSB3aGVuIF92aXNJdGVtcyBpcyBtb3JlIHRoYW4gMClcbiAgICogQHBhcmFtIGV2XG4gICAqL1xuICBwcmV2KGV2Pykge1xuICAgIGV2ICYmIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXYgJiYgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5fdmlzSXRlbXMpIHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5pc0F0U3RhcnQoKTtcblxuICAgICAgaWYgKHN0YXJ0ICYmIHRoaXMubG9vcCAmJiB0aGlzLm1heERyYWcgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMubW92ZVN0cmlwKHRoaXMubGFzdFggPSAodGhpcy5tYXhEcmFnICogLTEpKTtcbiAgICAgIH0gZWxzZSBpZiAoIXN0YXJ0KSB7XG4gICAgICAgIHRoaXMubW92ZVN0cmlwKHRoaXMubGFzdFggKz0gdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIC8gdGhpcy5fdmlzSXRlbXMpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm1vdmVXaXRoaW5Cb3VuZHMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgdGhlIGF1dG8gbG9vcFxuICAgKi9cbiAgc3RhcnRMb29wKCkge1xuICAgIHRoaXMuYXV0b0xvb3AkICYmIHRoaXMuYXV0b0xvb3AkLnVuc3Vic2NyaWJlKCk7XG5cbiAgICBpZiAodGhpcy5hdXRvUGxheSkge1xuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5hdXRvTG9vcCQgPSBpbnRlcnZhbCh0aGlzLmF1dG9QbGF5KS5waXBlKFxuICAgICAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLmF1dG9QbGF5ID4gMClcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5uZXh0KCkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgdGhlIGF1dG9sb29wXG4gICAqL1xuICBzdG9wTG9vcCgpIHtcbiAgICB0aGlzLmF1dG9Mb29wJCAmJiB0aGlzLmF1dG9Mb29wJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdlIGFyZSBhdCB0aGUgZmlyc3Qgc2xpZGUgaXRlbVxuICAgKi9cbiAgaXNBdFN0YXJ0KCkge1xuICAgIHJldHVybiB0aGlzLmxhc3RYID49IDA7XG4gIH1cblxuICAvKipcbiAgICogV2UgYXJlIGF0IHRoZSBsYXN0IHNsaWRlIGl0ZW1cbiAgICovXG4gIGlzQXRFbmQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF4RHJhZyAhPT0gZmFsc2UgJiYgTWF0aC5hYnModGhpcy5sYXN0WCkgPj0gdGhpcy5tYXhEcmFnO1xuICB9XG5cbiAgLyoqXG4gICAqIFdlIGFyZSBiZWluZyBkcmFnZ2VkXG4gICAqXG4gICAqIEBwYXJhbSBldlxuICAgKi9cbiAgcHJvdGVjdGVkIGRyYWcoZXYpIHtcbiAgICAvLyBsZWZ0b3ZlciBwYW4gZXZlbnRzXG4gICAgaWYgKCF0aGlzLmRyYWdnaW5nICYmIGV2LmlzRmluYWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiAhZHJhZ2dpbmcgdGhlbiB0aGlzIGlzIHRoZSBzdGFydCBvZiBhIG5ldyBkcmFnXG4gICAgICovXG4gICAgaWYgKCF0aGlzLmRyYWdnaW5nKSB7XG4gICAgICB0aGlzLnNldERyYWdnaW5nKCk7XG5cbiAgICAgIHRoaXMudG1wTGFzdFggPSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdlIGhhdmVuJ3QgY2FsY3VsYXRlZCB0aGUgbWF4IG9mZnNldCB0aGF0IGNvdWxkIGJlIGRyYWdnZWQgc28gdHJ5IHRoYXQgbm93XG4gICAgICovXG4gICAgaWYgKHRoaXMubWF4RHJhZyA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuY2FsY01heERyYWcoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhZGQgdGhlIGxhc3Qga25vd24gcG9zaXRpb24gdG8gdGhlIGRlbHRhWFxuICAgICAqL1xuICAgIGxldCBwb3MgPSBldi5kZWx0YVggKyB0aGlzLmxhc3RYO1xuXG4gICAgLyoqXG4gICAgICogTWFrZSBhZGp1c3RtZW50czpcbiAgICAgKiBJZiB0aGUgbmV3IHBvc2l0aW9uIGlzIG1vcmUgdGhhbiAwIHdlIGNhbid0IHJlYWxseSBkcmFnIG1vcmUgaW4gdGhhdCBkaXJlY3Rpb25cbiAgICAgKiBJZiB3ZSBoYXZlIG1heERyYWcgd2UgY2Fubm90IGRyYWcgbW9yZSB0aGFuIHRoYXRcbiAgICAgKiB0aGlzLmVsYXN0aWNCb3VuZHMgZ2l2ZXMgYSBiaXQgbW9yZSBwbGVhc2FudCBleHBlcmllbmNlXG4gICAgICovXG4gICAgaWYgKHBvcyA+IDApIHtcbiAgICAgIHBvcyA9IHRoaXMuZWxhc3RpY0JvdW5kcyA/IHBvcyAqIDAuMSA6IDA7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1heERyYWcgIT09IGZhbHNlICYmIE1hdGguYWJzKHBvcykgPiB0aGlzLm1heERyYWcpIHtcbiAgICAgIGNvbnN0IHRtcCA9IHRoaXMubWF4RHJhZyAqIE1hdGguc2lnbihwb3MpO1xuICAgICAgcG9zICAgICAgID0gdG1wICsgKHRoaXMuZWxhc3RpY0JvdW5kcyA/IChwb3MgLSB0bXApICogMC4xIDogMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGxhc3QgZHJhZyBldmVudCBoYXMgaXNGaW5hbCB0byB0cnVlXG4gICAgICovXG4gICAgaWYgKGV2LmlzRmluYWwpIHtcbiAgICAgIHRoaXMubGFzdFggPSBwb3M7XG5cbiAgICAgIHRoaXMuZGVsRHJhZ2dpbmcoKTtcblxuICAgICAgLy8gZ2l2ZSBpdCBzb21lIHRpbWUgYW5kIHRoZW4gdHJ5IHRvIHBpbiB0byB0aGUgbmVhcmVzdCBpdGVtIGlmIG5vdCBmcmVlRHJhZ1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnBpblBvc2l0aW9uKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1vdmUgdGhlIHN0cmlwIGlmIHdlIGhhdmUgbmV3IHBvc2l0aW9uXG4gICAgICovXG4gICAgaWYgKHRoaXMudG1wTGFzdFggIT0gcG9zKSB7XG4gICAgICB0aGlzLnRtcExhc3RYID0gcG9zO1xuICAgICAgdGhpcy5tb3ZlU3RyaXAocG9zID8gcG9zIDogbnVsbClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSWYgd2UgY2Fubm90IGZyZWUgZHJhZyB3ZSBzaG91bGQgZ2V0IHRvIHRoZSBuZWFyZXN0IGl0ZW0gYWZ0ZXIgdGhlIGRyYWcgd2FzIGZpbmlzaGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgcGluUG9zaXRpb24oKSB7XG4gICAgdGhpcy5tb3ZlV2l0aGluQm91bmRzKCk7XG4gICAgdGhpcy5tYXJrQ3VycmVudCgpO1xuXG4gICAgY29uc3QgcG9zID0gTWF0aC5hYnModGhpcy5sYXN0WCk7XG5cbiAgICBpZiAodGhpcy5mcmVlRHJhZyB8fCB0aGlzLmxhc3RYID09IDAgfHwgcG9zID09IHRoaXMubWF4RHJhZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBuZXdQb3MgPSAwO1xuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgbGVmdCBtb3N0IGl0ZW0gdGhhdCBoYXMgaXQncyBoYWxmIHdpZHRoIHdpdGhpbiB2aWV3XG4gICAgICovXG4gICAgdGhpcy5pdGVtcy5zb21lKChpdGVtKSA9PiB7XG4gICAgICBpZiAobmV3UG9zICsgKGl0ZW0ud2lkdGggLyAyKSA+PSBwb3MpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIG5ld1BvcyArPSBpdGVtLndpZHRoO1xuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG5cbiAgICB0aGlzLmxhc3RYID0gbmV3UG9zICogTWF0aC5zaWduKHRoaXMubGFzdFgpO1xuXG4gICAgLyoqXG4gICAgICogRG9uJ3QgZ28gYmV5b25kIG1heERyYWcgaWYgc2V0ICh0aGlzIHdpbGwgZWZmZWN0aXZlbHkgZGlzcmVnYXJkIHRoZSBtb3N0IGxlZnQgcG9zaXRpb24gb2YgdGhlIGl0ZW0pXG4gICAgICovXG4gICAgaWYgKHRoaXMubWF4RHJhZyAmJiBuZXdQb3MgPiB0aGlzLm1heERyYWcpIHtcbiAgICAgIHRoaXMubGFzdFggPSB0aGlzLm1heERyYWcgKiBNYXRoLnNpZ24odGhpcy5sYXN0WCk7XG4gICAgfVxuXG4gICAgdGhpcy5tb3ZlU3RyaXAodGhpcy5sYXN0WCk7XG4gIH1cblxuICAvKipcbiAgICogTWFyayBjYXJvdXNlbCBpdGVtcyB0aGF0IGFyZSBjdXJyZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgbWFya0N1cnJlbnQoKSB7XG4gICAgY29uc3QgcG9zTWluID0gTWF0aC5hYnModGhpcy5sYXN0WCksXG4gICAgICAgICAgcG9zTWF4ID0gcG9zTWluICsgdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIGxldCB0bXBQb3MgICA9IDA7XG5cbiAgICB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5jdXJyZW50ID0gdG1wUG9zID49IHBvc01pbiAmJiB0bXBQb3MgPCBwb3NNYXg7XG4gICAgICB0bXBQb3MgKz0gaXRlbS53aWR0aDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgZmlsbXN0cmlwIGlzIG91dCBvZiBib3VuZHMgKDAgYW5kIG1heERyYWcpIG1vdmUgaXQgYmFjayB3aXRoaW5cbiAgICovXG4gIHByb3RlY3RlZCBtb3ZlV2l0aGluQm91bmRzKCkge1xuICAgIGlmICh0aGlzLmxhc3RYID4gMCkge1xuICAgICAgdGhpcy5tb3ZlU3RyaXAodGhpcy5sYXN0WCA9IDApO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGhpcy5tYXhEcmFnICE9PSBmYWxzZSAmJiBNYXRoLmFicyh0aGlzLmxhc3RYKSA+IHRoaXMubWF4RHJhZykge1xuICAgICAgdGhpcy5tb3ZlU3RyaXAodGhpcy5sYXN0WCA9IHRoaXMubWF4RHJhZyAqIE1hdGguc2lnbih0aGlzLmxhc3RYKSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmbGV4IHN0eWxlcyB0byB0aGUgY2Fyb3VzZWwgaXRlbXNcbiAgICovXG4gIHByb3RlY3RlZCBzZXRJdGVtc1N0eWxlKCkge1xuICAgIGNvbnN0IGZsZXggPSB0aGlzLl92aXNJdGVtcyAhPSAwID8gKDEwMCAvIHRoaXMuX3Zpc0l0ZW1zKSArICclJyA6ICdhdXRvJztcblxuICAgIHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnNldEZsZXgoZmxleCkpO1xuICAgIHRoaXMuY2FsY01heERyYWcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgY2Fyb3VzZWxcbiAgICovXG4gIHByb3RlY3RlZCByZXNldCgpIHtcbiAgICB0aGlzLmxhc3RYICAgID0gMDtcbiAgICB0aGlzLm1heERyYWcgID0gZmFsc2U7XG4gICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlO1xuICAgIHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnJlc2V0KCkpO1xuICAgIHRoaXMubW92ZVN0cmlwKDApLmRlbERyYWdnaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogTW92ZSB0aGUgZmlsbSBzdHJpcCB3aXRoIGNzcyB0cmFuc2Zvcm1cbiAgICogQHBhcmFtIHBvc1xuICAgKi9cbiAgcHJvdGVjdGVkIG1vdmVTdHJpcChwb3M6IG51bWJlcikge1xuICAgIHRoaXMucmVuZC5zZXRTdHlsZSh0aGlzLmZpbG1zdHJpcC5uYXRpdmVFbGVtZW50LCAndHJhbnNmb3JtJywgcG9zID8gJ3RyYW5zbGF0ZVgoJyArIHBvcyArICdweCknIDogJycpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCBzZXREcmFnZ2luZygpIHtcbiAgICB0aGlzLmRyYWdnaW5nID0gdHJ1ZTtcblxuICAgIHRoaXMucmVuZC5hZGRDbGFzcyh0aGlzLmZpbG1zdHJpcC5uYXRpdmVFbGVtZW50LCAnZHJhZ2dpbmcnKTtcbiAgICB0aGlzLnJlbmQuYWRkQ2xhc3ModGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LCAnZHJhZ2dpbmcnKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVsRHJhZ2dpbmcoKSB7XG4gICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlO1xuXG4gICAgdGhpcy5yZW5kLnJlbW92ZUNsYXNzKHRoaXMuZmlsbXN0cmlwLm5hdGl2ZUVsZW1lbnQsICdkcmFnZ2luZycpO1xuICAgIHRoaXMucmVuZC5yZW1vdmVDbGFzcyh0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQsICdkcmFnZ2luZycpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCBzZXRWaXNpYmxlKCkge1xuICAgIGlmICh0aGlzLmxhc3RCci5zbSkge1xuICAgICAgdGhpcy5fdmlzSXRlbXMgPSB0aGlzLl92aXNDb25mLnNtICE9PSB1bmRlZmluZWQgPyB0aGlzLl92aXNDb25mLnNtIDogKHRoaXMuX3Zpc0NvbmYuYWxsIHx8IDApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sYXN0QnIubWQpIHtcbiAgICAgIHRoaXMuX3Zpc0l0ZW1zID0gdGhpcy5fdmlzQ29uZi5tZCAhPT0gdW5kZWZpbmVkID8gdGhpcy5fdmlzQ29uZi5tZCA6ICh0aGlzLl92aXNDb25mLmFsbCB8fCAwKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFzdEJyLmxnKSB7XG4gICAgICB0aGlzLl92aXNJdGVtcyA9IHRoaXMuX3Zpc0NvbmYubGcgIT09IHVuZGVmaW5lZCA/IHRoaXMuX3Zpc0NvbmYubGcgOiAodGhpcy5fdmlzQ29uZi5hbGwgfHwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3Zpc0l0ZW1zID0gdGhpcy5fdmlzQ29uZi5hbGwgfHwgMDtcbiAgICB9XG4gIH1cbn0iXX0= |
@@ -32,2 +32,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNpbG1hci9uZy1jYXJvdXNlbC8iLCJzb3VyY2VzIjpbImxpYi9uZy1jYXJvdXNlbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVVuRCxNQUFNOzs7WUFSTCxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFRO29CQUNiLFlBQVk7b0JBQ1osWUFBWTtpQkFDYjtnQkFDRCxZQUFZLEVBQUcsQ0FBRSxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBRTtnQkFDL0QsT0FBTyxFQUFRLENBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUU7YUFDaEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0Nhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9uZy1jYXJvdXNlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ0Nhcm91c2VsSXRlbURpcmVjdGl2ZSB9IGZyb20gXCIuL25nLWNhcm91c2VsLWl0ZW0uZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTGF5b3V0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9sYXlvdXRcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0cyAgICAgIDogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTGF5b3V0TW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnMgOiBbIE5nQ2Fyb3VzZWxDb21wb25lbnQsIE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIF0sXHJcbiAgZXhwb3J0cyAgICAgIDogWyBOZ0Nhcm91c2VsQ29tcG9uZW50LCBOZ0Nhcm91c2VsSXRlbURpcmVjdGl2ZSBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ0Nhcm91c2VsTW9kdWxlIHtcclxufVxyXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNpbG1hci9uZy1jYXJvdXNlbC8iLCJzb3VyY2VzIjpbImxpYi9uZy1jYXJvdXNlbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVVuRCxNQUFNOzs7WUFSTCxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFRO29CQUNiLFlBQVk7b0JBQ1osWUFBWTtpQkFDYjtnQkFDRCxZQUFZLEVBQUcsQ0FBRSxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBRTtnQkFDL0QsT0FBTyxFQUFRLENBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUU7YUFDaEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDYXJvdXNlbENvbXBvbmVudCB9IGZyb20gJy4vbmctY2Fyb3VzZWwuY29tcG9uZW50JztcbmltcG9ydCB7IE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIH0gZnJvbSBcIi4vbmctY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IExheW91dE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvbGF5b3V0XCI7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHMgICAgICA6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTGF5b3V0TW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9ucyA6IFsgTmdDYXJvdXNlbENvbXBvbmVudCwgTmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmUgXSxcbiAgZXhwb3J0cyAgICAgIDogWyBOZ0Nhcm91c2VsQ29tcG9uZW50LCBOZ0Nhcm91c2VsSXRlbURpcmVjdGl2ZSBdXG59KVxuZXhwb3J0IGNsYXNzIE5nQ2Fyb3VzZWxNb2R1bGUge1xufVxuIl19 |
@@ -12,2 +12,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzaWxtYXIvbmctY2Fyb3VzZWwvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxvQ0FBYyw2QkFBNkIsQ0FBQztBQUM1Qyx3Q0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxpQ0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZy1jYXJvdXNlbFxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLWNhcm91c2VsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLWNhcm91c2VsLWl0ZW0uZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctY2Fyb3VzZWwubW9kdWxlJztcclxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzaWxtYXIvbmctY2Fyb3VzZWwvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxvQ0FBYyw2QkFBNkIsQ0FBQztBQUM1Qyx3Q0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxpQ0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbmctY2Fyb3VzZWxcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZy1jYXJvdXNlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctY2Fyb3VzZWwubW9kdWxlJztcbiJdfQ== |
@@ -0,0 +0,0 @@ /** |
@@ -131,2 +131,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2lsbWFyL25nLWNhcm91c2VsLyIsInNvdXJjZXMiOlsibGliL25nLWNhcm91c2VsLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0lBVy9ELGlDQUFzQixFQUFjLEVBQVksSUFBZTtRQUF6QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVksU0FBSSxHQUFKLElBQUksQ0FBVzswQkFGL0IsS0FBSztLQUUrQjtJQUtwRSxzQkFBSSwwQ0FBSztRQUhUOztXQUVHOzs7OztRQUNIO1lBQ0UsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ2xCO1lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDcEI7OztPQUFBO0lBRUQ7OztPQUdHOzs7Ozs7SUFDSCx5Q0FBTzs7Ozs7SUFBUCxVQUFRLE9BQU87UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUNsQjtJQU1ELHNCQUFJLDRDQUFPO1FBSlg7OztXQUdHOzs7Ozs7UUFDSCxVQUFZLFNBQWtCO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1lBRTVCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDekQ7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQzthQUM1RDtTQUNGOzs7T0FBQTtJQUVEOztPQUVHOzs7OztJQUNILHVDQUFLOzs7O0lBQUw7UUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztLQUN6QjtJQUVEOztPQUVHOzs7OztJQUNILDJDQUFTOzs7O0lBQVQ7UUFDRSxxQkFBTSxHQUFHLEdBQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUU7UUFDdEQsTUFBTSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3RHOztnQkE1REYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRyxrQkFBa0I7b0JBQzdCLFFBQVEsRUFBRyxnQkFBZ0I7aUJBQzVCOzs7O2dCQUxtQixVQUFVO2dCQUFFLFNBQVM7O2tDQUF6Qzs7U0FNYSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3IgOiAnW3NpQ2Fyb3VzZWxJdGVtXScsXHJcbiAgZXhwb3J0QXMgOiAnc2lDYXJvdXNlbEl0ZW0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ0Nhcm91c2VsSXRlbURpcmVjdGl2ZSB7XHJcbiAgcHJvdGVjdGVkIF93aWR0aDogbnVtYmVyO1xyXG5cclxuICBwcm90ZWN0ZWQgX2lzQ3VycmVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCByZW5kOiBSZW5kZXJlcjIpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHdpZHRoIG9mIHRoZSBpdGVtXHJcbiAgICovXHJcbiAgZ2V0IHdpZHRoKCkge1xyXG4gICAgaWYgKCF0aGlzLl93aWR0aCkge1xyXG4gICAgICB0aGlzLmNhbGNXaWR0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl93aWR0aDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgaXRlbSBmbGV4IHBlcmNlbnQgKG9yICdhdXRvJylcclxuICAgKiBAcGFyYW0gcGVyY2VudFxyXG4gICAqL1xyXG4gIHNldEZsZXgocGVyY2VudCkge1xyXG4gICAgdGhpcy5yZW5kLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2ZsZXgnLCAnMCAwICcgKyBwZXJjZW50KTtcclxuICAgIHRoaXMuY2FsY1dpZHRoKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgaWYgdGhlIGl0ZW0gaXMgY3VycmVudGx5IHZpc2libGVcclxuICAgKiBAcGFyYW0gaXNDdXJyZW50XHJcbiAgICovXHJcbiAgc2V0IGN1cnJlbnQoaXNDdXJyZW50OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc0N1cnJlbnQgPSBpc0N1cnJlbnQ7XHJcblxyXG4gICAgaWYgKGlzQ3VycmVudCkge1xyXG4gICAgICB0aGlzLnJlbmQuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaXMtY3VycmVudCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZW5kLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2lzLWN1cnJlbnQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IHRoZSBpdGVtXHJcbiAgICovXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLl93aWR0aCA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGN1bGF0ZSB0aGUgaXRlbSB3aWR0aCAodGhpcyB3aWxsIGdldCBpbnRvIGFjY291bnQgdGhlIG1hcmdpbnMgb2YgdGhlIGJveClcclxuICAgKi9cclxuICBjYWxjV2lkdGgoKSB7XHJcbiAgICBjb25zdCBib3ggICAgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXHJcbiAgICAgICAgICBzdHlsZXMgPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XHJcblxyXG4gICAgdGhpcy5fd2lkdGggPSBib3gud2lkdGggPyBib3gud2lkdGggKyBwYXJzZUludChzdHlsZXMubWFyZ2luTGVmdCkgKyBwYXJzZUludChzdHlsZXMubWFyZ2luUmlnaHQpIDogMDtcclxuICB9XHJcbn1cclxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2lsbWFyL25nLWNhcm91c2VsLyIsInNvdXJjZXMiOlsibGliL25nLWNhcm91c2VsLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0lBVy9ELGlDQUFzQixFQUFjLEVBQVksSUFBZTtRQUF6QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVksU0FBSSxHQUFKLElBQUksQ0FBVzswQkFGL0IsS0FBSztLQUUrQjtJQUtwRSxzQkFBSSwwQ0FBSztRQUhUOztXQUVHOzs7OztRQUNIO1lBQ0UsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ2xCO1lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDcEI7OztPQUFBO0lBRUQ7OztPQUdHOzs7Ozs7SUFDSCx5Q0FBTzs7Ozs7SUFBUCxVQUFRLE9BQU87UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUNsQjtJQU1ELHNCQUFJLDRDQUFPO1FBSlg7OztXQUdHOzs7Ozs7UUFDSCxVQUFZLFNBQWtCO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1lBRTVCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDekQ7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQzthQUM1RDtTQUNGOzs7T0FBQTtJQUVEOztPQUVHOzs7OztJQUNILHVDQUFLOzs7O0lBQUw7UUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztLQUN6QjtJQUVEOztPQUVHOzs7OztJQUNILDJDQUFTOzs7O0lBQVQ7UUFDRSxxQkFBTSxHQUFHLEdBQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUU7UUFDdEQsTUFBTSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3RHOztnQkE1REYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRyxrQkFBa0I7b0JBQzdCLFFBQVEsRUFBRyxnQkFBZ0I7aUJBQzVCOzs7O2dCQUxtQixVQUFVO2dCQUFFLFNBQVM7O2tDQUF6Qzs7U0FNYSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3IgOiAnW3NpQ2Fyb3VzZWxJdGVtXScsXG4gIGV4cG9ydEFzIDogJ3NpQ2Fyb3VzZWxJdGVtJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ0Nhcm91c2VsSXRlbURpcmVjdGl2ZSB7XG4gIHByb3RlY3RlZCBfd2lkdGg6IG51bWJlcjtcblxuICBwcm90ZWN0ZWQgX2lzQ3VycmVudDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbDogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHJlbmQ6IFJlbmRlcmVyMikgeyB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgd2lkdGggb2YgdGhlIGl0ZW1cbiAgICovXG4gIGdldCB3aWR0aCgpIHtcbiAgICBpZiAoIXRoaXMuX3dpZHRoKSB7XG4gICAgICB0aGlzLmNhbGNXaWR0aCgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl93aWR0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGl0ZW0gZmxleCBwZXJjZW50IChvciAnYXV0bycpXG4gICAqIEBwYXJhbSBwZXJjZW50XG4gICAqL1xuICBzZXRGbGV4KHBlcmNlbnQpIHtcbiAgICB0aGlzLnJlbmQuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZmxleCcsICcwIDAgJyArIHBlcmNlbnQpO1xuICAgIHRoaXMuY2FsY1dpZHRoKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGlmIHRoZSBpdGVtIGlzIGN1cnJlbnRseSB2aXNpYmxlXG4gICAqIEBwYXJhbSBpc0N1cnJlbnRcbiAgICovXG4gIHNldCBjdXJyZW50KGlzQ3VycmVudDogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzQ3VycmVudCA9IGlzQ3VycmVudDtcblxuICAgIGlmIChpc0N1cnJlbnQpIHtcbiAgICAgIHRoaXMucmVuZC5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdpcy1jdXJyZW50Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZC5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdpcy1jdXJyZW50Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBpdGVtXG4gICAqL1xuICByZXNldCgpIHtcbiAgICB0aGlzLl93aWR0aCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIGl0ZW0gd2lkdGggKHRoaXMgd2lsbCBnZXQgaW50byBhY2NvdW50IHRoZSBtYXJnaW5zIG9mIHRoZSBib3gpXG4gICAqL1xuICBjYWxjV2lkdGgoKSB7XG4gICAgY29uc3QgYm94ICAgID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgIHN0eWxlcyA9IGdldENvbXB1dGVkU3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcblxuICAgIHRoaXMuX3dpZHRoID0gYm94LndpZHRoID8gYm94LndpZHRoICsgcGFyc2VJbnQoc3R5bGVzLm1hcmdpbkxlZnQpICsgcGFyc2VJbnQoc3R5bGVzLm1hcmdpblJpZ2h0KSA6IDA7XG4gIH1cbn1cbiJdfQ== |
@@ -36,2 +36,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNpbG1hci9uZy1jYXJvdXNlbC8iLCJzb3VyY2VzIjpbImxpYi9uZy1jYXJvdXNlbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Z0JBRWxELFFBQVEsU0FBQztvQkFDUixPQUFPLEVBQVE7d0JBQ2IsWUFBWTt3QkFDWixZQUFZO3FCQUNiO29CQUNELFlBQVksRUFBRyxDQUFFLG1CQUFtQixFQUFFLHVCQUF1QixDQUFFO29CQUMvRCxPQUFPLEVBQVEsQ0FBRSxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBRTtpQkFDaEU7OzJCQWJEOztTQWNhLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICcuL25nLWNhcm91c2VsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIH0gZnJvbSBcIi4vbmctY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBMYXlvdXRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2xheW91dFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzICAgICAgOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBMYXlvdXRNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9ucyA6IFsgTmdDYXJvdXNlbENvbXBvbmVudCwgTmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmUgXSxcclxuICBleHBvcnRzICAgICAgOiBbIE5nQ2Fyb3VzZWxDb21wb25lbnQsIE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5nQ2Fyb3VzZWxNb2R1bGUge1xyXG59XHJcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNpbG1hci9uZy1jYXJvdXNlbC8iLCJzb3VyY2VzIjpbImxpYi9uZy1jYXJvdXNlbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Z0JBRWxELFFBQVEsU0FBQztvQkFDUixPQUFPLEVBQVE7d0JBQ2IsWUFBWTt3QkFDWixZQUFZO3FCQUNiO29CQUNELFlBQVksRUFBRyxDQUFFLG1CQUFtQixFQUFFLHVCQUF1QixDQUFFO29CQUMvRCxPQUFPLEVBQVEsQ0FBRSxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBRTtpQkFDaEU7OzJCQWJEOztTQWNhLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0Nhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9uZy1jYXJvdXNlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmUgfSBmcm9tIFwiLi9uZy1jYXJvdXNlbC1pdGVtLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTGF5b3V0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9sYXlvdXRcIjtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0cyAgICAgIDogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBMYXlvdXRNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zIDogWyBOZ0Nhcm91c2VsQ29tcG9uZW50LCBOZ0Nhcm91c2VsSXRlbURpcmVjdGl2ZSBdLFxuICBleHBvcnRzICAgICAgOiBbIE5nQ2Fyb3VzZWxDb21wb25lbnQsIE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIF1cbn0pXG5leHBvcnQgY2xhc3MgTmdDYXJvdXNlbE1vZHVsZSB7XG59XG4iXX0= |
@@ -12,2 +12,2 @@ /** | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzaWxtYXIvbmctY2Fyb3VzZWwvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxvQ0FBYyw2QkFBNkIsQ0FBQztBQUM1Qyx3Q0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxpQ0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZy1jYXJvdXNlbFxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLWNhcm91c2VsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLWNhcm91c2VsLWl0ZW0uZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctY2Fyb3VzZWwubW9kdWxlJztcclxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzaWxtYXIvbmctY2Fyb3VzZWwvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxvQ0FBYyw2QkFBNkIsQ0FBQztBQUM1Qyx3Q0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxpQ0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbmctY2Fyb3VzZWxcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZy1jYXJvdXNlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctY2Fyb3VzZWwubW9kdWxlJztcbiJdfQ== |
@@ -0,0 +0,0 @@ /** |
@@ -623,2 +623,2 @@ import { Directive, ElementRef, Renderer2, Component, ContentChildren, HostListener, Inject, Input, NgZone, PLATFORM_ID, ViewChild, NgModule } from '@angular/core'; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lsbWFyLW5nLWNhcm91c2VsLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9Ac2lsbWFyL25nLWNhcm91c2VsL2xpYi9uZy1jYXJvdXNlbC1pdGVtLmRpcmVjdGl2ZS50cyIsIm5nOi8vQHNpbG1hci9uZy1jYXJvdXNlbC9saWIvbmctY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwibmc6Ly9Ac2lsbWFyL25nLWNhcm91c2VsL2xpYi9uZy1jYXJvdXNlbC5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yIDogJ1tzaUNhcm91c2VsSXRlbV0nLFxyXG4gIGV4cG9ydEFzIDogJ3NpQ2Fyb3VzZWxJdGVtJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmUge1xyXG4gIHByb3RlY3RlZCBfd2lkdGg6IG51bWJlcjtcclxuXHJcbiAgcHJvdGVjdGVkIF9pc0N1cnJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgcmVuZDogUmVuZGVyZXIyKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSB3aWR0aCBvZiB0aGUgaXRlbVxyXG4gICAqL1xyXG4gIGdldCB3aWR0aCgpIHtcclxuICAgIGlmICghdGhpcy5fd2lkdGgpIHtcclxuICAgICAgdGhpcy5jYWxjV2lkdGgoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fd2lkdGg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIGl0ZW0gZmxleCBwZXJjZW50IChvciAnYXV0bycpXHJcbiAgICogQHBhcmFtIHBlcmNlbnRcclxuICAgKi9cclxuICBzZXRGbGV4KHBlcmNlbnQpIHtcclxuICAgIHRoaXMucmVuZC5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdmbGV4JywgJzAgMCAnICsgcGVyY2VudCk7XHJcbiAgICB0aGlzLmNhbGNXaWR0aCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IGlmIHRoZSBpdGVtIGlzIGN1cnJlbnRseSB2aXNpYmxlXHJcbiAgICogQHBhcmFtIGlzQ3VycmVudFxyXG4gICAqL1xyXG4gIHNldCBjdXJyZW50KGlzQ3VycmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faXNDdXJyZW50ID0gaXNDdXJyZW50O1xyXG5cclxuICAgIGlmIChpc0N1cnJlbnQpIHtcclxuICAgICAgdGhpcy5yZW5kLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2lzLWN1cnJlbnQnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVuZC5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdpcy1jdXJyZW50Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldCB0aGUgaXRlbVxyXG4gICAqL1xyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5fd2lkdGggPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWxjdWxhdGUgdGhlIGl0ZW0gd2lkdGggKHRoaXMgd2lsbCBnZXQgaW50byBhY2NvdW50IHRoZSBtYXJnaW5zIG9mIHRoZSBib3gpXHJcbiAgICovXHJcbiAgY2FsY1dpZHRoKCkge1xyXG4gICAgY29uc3QgYm94ICAgID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxyXG4gICAgICAgICAgc3R5bGVzID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG5cclxuICAgIHRoaXMuX3dpZHRoID0gYm94LndpZHRoID8gYm94LndpZHRoICsgcGFyc2VJbnQoc3R5bGVzLm1hcmdpbkxlZnQpICsgcGFyc2VJbnQoc3R5bGVzLm1hcmdpblJpZ2h0KSA6IDA7XHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBOZ1pvbmUsXHJcbiAgT25EZXN0cm95LFxyXG4gIFBMQVRGT1JNX0lELFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBpbnRlcnZhbCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlV2hpbGUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciB9IGZyb20gXCJAYW5ndWxhci9jZGsvbGF5b3V0XCI7XHJcbmltcG9ydCB7IE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIH0gZnJvbSBcIi4vbmctY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmVcIjtcclxuXHJcbmV4cG9ydCB0eXBlIFZJU0lCTEVfSVRFTVMgPSB7IHNtPzogbnVtYmVyLCBtZD86IG51bWJlciwgbGc/OiBudW1iZXIsIGFsbDogbnVtYmVyIH07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvciAgICA6ICdzaS1uZy1jYXJvdXNlbCcsXHJcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZ2FsbGVyeVwiICNjYXJvdXNlbCBbY2xhc3MuZHJhZ2dhYmxlXT1cIm1heERyYWcgIT09IDBcIj5cclxuICA8ZGl2ICNmaWxtc3RyaXAgY2xhc3M9XCJnYWxsZXJ5LWlubmVyXCIgKHN3aXBlbGVmdCk9XCJvblN3aXBlKCRldmVudCwgJ2wnKVwiIChzd2lwZXJpZ2h0KT1cIm9uU3dpcGUoJGV2ZW50LCAncicpXCJcclxuICAgICAgIChwYW4pPVwiZHJhZyQubmV4dCgkZXZlbnQpXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dCdXR0b25zICYmIG1heERyYWcgIT09IDBcIj5cclxuICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJjaGV2cm9uIGxlZnRcIiAoY2xpY2spPVwicHJldigkZXZlbnQpXCIgdGl0bGU9XCJQcmV2aW91c1wiIHRhYmluZGV4PVwiLTFcIj48L2E+XHJcbiAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiY2hldnJvbiByaWdodFwiIChjbGljayk9XCJuZXh0KCRldmVudClcIiB0aXRsZT1cIk5leHRcIiB0YWJpbmRleD1cIi0xXCI+PC9hPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5gLFxyXG4gIHN0eWxlczogW2BzaS1uZy1jYXJvdXNlbHtkaXNwbGF5OmJsb2NrfS5nYWxsZXJ5e292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0uZ2FsbGVyeSAuY2hldnJvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYyg1MCUgLSAxcmVtKTt3aWR0aDoycmVtO2hlaWdodDoycmVtO2ZvbnQtc2l6ZToxLjRyZW07cGFkZGluZzouM3JlbSAuMjVyZW0gLjI1cmVtO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6I2ZmZjtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgMTUwbXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LmdhbGxlcnkgLmNoZXZyb246aG92ZXJ7Ym94LXNoYWRvdzowIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLC4yKSwwIDRweCA1cHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKX0uZ2FsbGVyeSAuY2hldnJvbi5sZWZ0e2xlZnQ6NXB4O3RleHQtYWxpZ246Y2VudGVyfS5nYWxsZXJ5IC5jaGV2cm9uLnJpZ2h0e3JpZ2h0OjVweH0uZ2FsbGVyeSAuY2hldnJvbjo6YmVmb3Jle2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6LjE1ZW0gLjE1ZW0gMCAwO2NvbnRlbnQ6Jyc7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0Oi41ZW07d2lkdGg6LjVlbTt0b3A6LjE1ZW07bGVmdDouMTVlbTtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dmVydGljYWwtYWxpZ246dG9wfS5nYWxsZXJ5IC5jaGV2cm9uLnJpZ2h0OmJlZm9yZXtsZWZ0Oi4xZW07LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uZ2FsbGVyeSAuY2hldnJvbi5ib3R0b206YmVmb3Jle3RvcDowOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX0uZ2FsbGVyeSAuY2hldnJvbi5sZWZ0OmJlZm9yZXtsZWZ0Oi4xZW07LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyl9LmdhbGxlcnk6aG92ZXIgLmNoZXZyb257ZGlzcGxheTppbmxpbmUtYmxvY2s7b3BhY2l0eTouOH0uZ2FsbGVyeSAuZ2FsbGVyeS1pbm5lcntmbGV4LWZsb3c6cm93IG5vd3JhcDtkaXNwbGF5OmZsZXg7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuNXMgY3ViaWMtYmV6aWVyKC40NSwuMDA1LC4yOSwxLjUyKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNXMgY3ViaWMtYmV6aWVyKC40NSwuMDA1LC4yOSwxLjUyKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNXMgY3ViaWMtYmV6aWVyKC40NSwuMDA1LC4yOSwxLjUyKSwtd2Via2l0LXRyYW5zZm9ybSAuNXMgY3ViaWMtYmV6aWVyKC40NSwuMDA1LC4yOSwxLjUyKX0uZ2FsbGVyeSAuZ2FsbGVyeS1pbm5lci5kcmFnZ2FibGV7Y3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYn0uZ2FsbGVyeSAuZ2FsbGVyeS1pbm5lci5kcmFnZ2luZ3t0cmFuc2l0aW9uOm5vbmU7Y3Vyc29yOi13ZWJraXQtZ3JhYmJpbmc7Y3Vyc29yOmdyYWJiaW5nfUBtZWRpYSAobWF4LXdpZHRoOjU5OXB4KXsuY2hldnJvbntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqXHJcbiAgICogVGhlIG1haW4gY2Fyb3VzZWwgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoJ2Nhcm91c2VsJykgY2Fyb3VzZWw6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBcImZpbG1zdHJpcFwiIG9mIHRoZSBjYXJvdXNlbCAodGhlIHdyYXBwZXIgb2YgdGhlIGl0ZW1zKVxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbG1zdHJpcCcpIGZpbG1zdHJpcDogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2Fyb3VzZWwgaXRlbXNcclxuICAgKi9cclxuICBAQ29udGVudENoaWxkcmVuKE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlKSBpdGVtczogUXVlcnlMaXN0PE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU0hvdyBwcmV2IGFuZCBuZXh0IGJ1dHRvbnNcclxuICAgKi9cclxuICBASW5wdXQoKSBzaG93QnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIExvb3AgdGhlIGNhcm91c2VsIG9uY2UgeW91IGhpdCBsYXN0L2ZpcnN0IGl0ZW1cclxuICAgKi9cclxuICBASW5wdXQoKSBsb29wOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQXV0byBzbGlkZSB0aGUgY2Fyb3VzZWwgKG1zKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGF1dG9QbGF5OiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBEbyBub3Qgc25hcCB0byB0aGUgY2xvc2VzdCBpdGVtXHJcbiAgICovXHJcbiAgQElucHV0KCkgZnJlZURyYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogR2l2ZSBhbiBlbGFzdGljIGZlZWxpbmcgd2hlbiB0aGUgdXNlciBpcyBkcmFnZ2luZyBiZXlvbmQgdGhlIGJvdW5kcyBvZiB0aGUgZmlsbXN0cmlwXHJcbiAgICovXHJcbiAgQElucHV0KCkgZWxhc3RpY0JvdW5kczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJyZWFrcG9pbnRzIHRvIHdhdGNoIGZvclxyXG4gICAqL1xyXG4gIGJyZWFrcyA9IHtcclxuICAgICdzbScgOiAnKG1heC13aWR0aDogOTU5cHgpJyxcclxuICAgICdtZCcgOiAnKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpJyxcclxuICAgICdsZycgOiAnKG1pbi13aWR0aDogMTI4MHB4KScsXHJcbiAgICAncCcgIDogJyhvcmllbnRhdGlvbjpwb3J0cmFpdCknLFxyXG4gICAgJ2wnICA6ICcob3JpZW50YXRpb246bGFuZHNjYXBlKSdcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBjdXJyZW50bHkgZHJhZ2dpbmdcclxuICAgKi9cclxuICBkcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBNYXhpbXVtIGRyYWcgb2Zmc2V0IChtaW51cylcclxuICAgKi9cclxuICBtYXhEcmFnOiBudW1iZXIgfCBmYWxzZSA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBQYW4gZXZlbnQgc3ViamVjdFxyXG4gICAqL1xyXG4gIGRyYWckOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIExhc3Qga25vd24gWCBvZmZzZXRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbGFzdFg6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRlbXAgKGZvciB0aGUgY3VycmVudCBkcmFnZ2luZyBzZXNzaW9uKSBsYXN0IGtub3duIFggb2Zmc2V0XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHRtcExhc3RYOiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpcHRpb24gZm9yIHRoZSBQQU4gZXZlbnRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZHJhZ1NicyQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogSXRlbXMgY2hhbmdlIHN1YnNjcmlwdGlvblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpdGVtcyQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogTnVtYmVyIG9mIHZpc2libGUgaXRlbXNcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX3Zpc0NvbmY6IFZJU0lCTEVfSVRFTVMgPSB7IGFsbCA6IDAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogTnVtYmVyIG9mIHZpc2libGUgaXRlbXNcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgX3Zpc0l0ZW1zOiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBDYXJvdXNlbCB3YXMgaW5pdGVkXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGluaXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBTU1JcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgaXNTZXJ2ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGFzdCBzdGF0ZSBvZiB0aGUgb2JzZXJ2ZWQgYnJlYWtwb2ludHNcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbGFzdEJyOiB7IHNtOiBib29sZWFuLCBtZDogYm9vbGVhbiwgbGc6IGJvb2xlYW4sIHA6IGJvb2xlYW4gfSA9IHtcclxuICAgIHNtIDogZmFsc2UsXHJcbiAgICBtZCA6IGZhbHNlLFxyXG4gICAgbGcgOiB0cnVlLFxyXG4gICAgcCAgOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgYnJlYWtwb2ludCBvYnNlcnZlclxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBicmtwbnRzOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8qKlxyXG4gICAqIEF1dG9sb29wIHRpbWVyXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGF1dG9Mb29wJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkLCBwcm90ZWN0ZWQgcmVuZDogUmVuZGVyZXIyLCBwcm90ZWN0ZWQgem9uZTogTmdab25lLCBicmVha09iczogQnJlYWtwb2ludE9ic2VydmVyKSB7XHJcbiAgICB0aGlzLmlzU2VydmVyID0gaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuaXNTZXJ2ZXIpIHtcclxuICAgICAgdGhpcy5icmtwbnRzID0gYnJlYWtPYnMub2JzZXJ2ZShbXHJcbiAgICAgICAgdGhpcy5icmVha3Muc20sXHJcbiAgICAgICAgdGhpcy5icmVha3MubWQsXHJcbiAgICAgICAgdGhpcy5icmVha3MubGcsXHJcbiAgICAgICAgdGhpcy5icmVha3MubCxcclxuICAgICAgICB0aGlzLmJyZWFrcy5wXHJcbiAgICAgIF0pLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgICAgc20gOiBicmVha09icy5pc01hdGNoZWQodGhpcy5icmVha3Muc20pLFxyXG4gICAgICAgICAgbWQgOiBicmVha09icy5pc01hdGNoZWQodGhpcy5icmVha3MubWQpLFxyXG4gICAgICAgICAgbGcgOiBicmVha09icy5pc01hdGNoZWQodGhpcy5icmVha3MubGcpLFxyXG4gICAgICAgICAgcCAgOiBicmVha09icy5pc01hdGNoZWQodGhpcy5icmVha3MucCksXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKHN0YXRlLnNtICE9IHRoaXMubGFzdEJyLnNtIHx8IHN0YXRlLm1kICE9IHRoaXMubGFzdEJyLm1kIHx8IHN0YXRlLmxnICE9IHRoaXMubGFzdEJyLmxnIHx8IHN0YXRlLnAgIT0gdGhpcy5sYXN0QnIucCkge1xyXG4gICAgICAgICAgdGhpcy5sYXN0QnIgPSBzdGF0ZTtcclxuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZSgpO1xyXG4gICAgICAgICAgdGhpcy5pbml0ZWQgJiYgdGhpcy5pbml0Q2Fyb3VzZWwoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRyYWdTYnMkICYmIHRoaXMuZHJhZ1NicyQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuaXRlbXMkICYmIHRoaXMuaXRlbXMkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmJya3BudHMgJiYgdGhpcy5icmtwbnRzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmF1dG9Mb29wJCAmJiB0aGlzLmF1dG9Mb29wJC51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMuYXV0b1BsYXkgPSAwO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuaXNTZXJ2ZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXRlbXMkID0gdGhpcy5pdGVtcy5jaGFuZ2VzLnN1YnNjcmliZShcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaW5pdENhcm91c2VsKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmluaXRDYXJvdXNlbCgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBudW1iZXIgb2YgdmlzaWJsZSBpdGVtcyAoc2V0IDAgZm9yIGF1dG8pXHJcbiAgICogY2FuIGJlIG51bWJlciBvciBWSVNJQkxFX0lURU1TIHR5cGUgYHsgc20/OiBudW1iZXIsIG1kPzogbnVtYmVyLCBsZz86IG51bWJlciwgYWxsOiBudW1iZXIgfWBcclxuICAgKiBAcGFyYW0gaXRlbXNcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgdmlzaWJsZShpdGVtczogVklTSUJMRV9JVEVNUyB8IG51bWJlcikge1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtcyA9PSAnbnVtYmVyJykge1xyXG4gICAgICBpdGVtcyA9IHsgYWxsIDogaXRlbXMgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl92aXNDb25mID0gaXRlbXM7XHJcblxyXG4gICAgdGhpcy5zZXRWaXNpYmxlKCk7XHJcbiAgICB0aGlzLmluaXRlZCAmJiB0aGlzLmluaXRDYXJvdXNlbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB0aGUgbG9vcCBvbiBob3ZlclxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKSBvbkhvdmVyKCkge1xyXG4gICAgdGhpcy5zdG9wTG9vcCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnQgdGhlIGxvb3Agb24gbW91c2Ugb3V0XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpIG9uSG92ZXJTdG9wKCkge1xyXG4gICAgdGhpcy5zdGFydExvb3AoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXQgdGhlIGNhcm91c2VsXHJcbiAgICovXHJcbiAgaW5pdENhcm91c2VsKCkge1xyXG4gICAgaWYgKHRoaXMuaXNTZXJ2ZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICB0aGlzLnNldEl0ZW1zU3R5bGUoKTtcclxuICAgIHRoaXMubWFya0N1cnJlbnQoKTtcclxuXHJcbiAgICB0aGlzLmRyYWdTYnMkICYmIHRoaXMuZHJhZ1NicyQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuYXV0b0xvb3AkICYmIHRoaXMuYXV0b0xvb3AkLnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgdGhpcy5kcmFnU2JzJCA9IHRoaXMuZHJhZyQucGlwZShcclxuICAgICAgICBmaWx0ZXIoKGV2KSA9PiB0aGlzLm1heERyYWcgIT09IDApXHJcbiAgICAgICkuc3Vic2NyaWJlKChldikgPT4gdGhpcy5kcmFnKGV2KSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnN0YXJ0TG9vcCgpO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsY3VsYXRlIHRoZSBtYXhpbXVtIHBvc3NpYmxlIGRyYWcgb2Zmc2V0XHJcbiAgICogMDogaXQgY2Fubm90IGJlIGRyYWdnZWQgYXQgYWxsXHJcbiAgICogZmFsc2U6IHdlIGRvIG5vdCBrbm93IHlldCBzbyBkcmFnIGF0IHdpbGxcclxuICAgKlxyXG4gICAqL1xyXG4gIGNhbGNNYXhEcmFnKCk6IG51bWJlciB8IGZhbHNlIHtcclxuICAgIHRoaXMubWF4RHJhZyA9IGZhbHNlO1xyXG5cclxuICAgIGlmICghdGhpcy5pdGVtcykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdyA9IHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLndpZHRoKS5yZWR1Y2UoKHByZXYsIG5vdykgPT4gcHJldiArIG5vdywgMCk7XHJcblxyXG4gICAgaWYgKHcpIHtcclxuICAgICAgaWYgKHcgPD0gdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKSB7XHJcbiAgICAgICAgdGhpcy5tYXhEcmFnID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBwYXJ0ID0gKHcgLyB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpIC0gMTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXhEcmFnID0gTWF0aC5yb3VuZChNYXRoLmFicyhwYXJ0ICogdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5tYXhEcmFnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIHNob3J0IHBhbiBzZXNzaW9ucyAoc3dpcGUgb24gbGVmdCBuYWQgcmlnaHQpIGFuZCB0cnkgdG8gZmxpcCB0byB0aGUgbmV4dC9wcmV2IGl0ZW1cclxuICAgKlxyXG4gICAqIEBwYXJhbSBldlxyXG4gICAqIEBwYXJhbSBkaXJcclxuICAgKi9cclxuICBvblN3aXBlKGV2LCBkaXI6ICdsJyB8ICdyJyA9ICdsJykge1xyXG4gICAgaWYgKHRoaXMubWF4RHJhZyAhPT0gMCAmJiB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQgJiYgKHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAvIDIpID4gZXYuZGlzdGFuY2UpIHtcclxuICAgICAgZXYuZGVsdGFYICs9IHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAvIDIgKiAoZGlyID09ICdyJyA/IDEgOiAtMSk7XHJcbiAgICAgIGV2LmlzRmluYWwgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5kcmFnKGV2KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIHRvIG5leHQgc2xpZGUgKHdvcmtzIG9ubHkgd2hlbiBfdmlzSXRlbXMgaXMgbW9yZSB0aGFuIDApXHJcbiAgICogQHBhcmFtIGV2XHJcbiAgICovXHJcbiAgbmV4dChldj8pIHtcclxuICAgIGV2ICYmIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldiAmJiBldi5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZiAodGhpcy5fdmlzSXRlbXMpIHtcclxuICAgICAgY29uc3QgZW5kID0gdGhpcy5pc0F0RW5kKCk7XHJcblxyXG4gICAgICBpZiAoZW5kICYmIHRoaXMubG9vcCkge1xyXG4gICAgICAgIHRoaXMubW92ZVN0cmlwKHRoaXMubGFzdFggPSAwKTtcclxuICAgICAgfSBlbHNlIGlmICghZW5kKSB7XHJcbiAgICAgICAgdGhpcy5tb3ZlU3RyaXAodGhpcy5sYXN0WCArPSB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLyB0aGlzLl92aXNJdGVtcyAqIC0xKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5tb3ZlV2l0aGluQm91bmRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHbyB0byBwcmV2IHNsaWRlICh3b3JrcyBvbmx5IHdoZW4gX3Zpc0l0ZW1zIGlzIG1vcmUgdGhhbiAwKVxyXG4gICAqIEBwYXJhbSBldlxyXG4gICAqL1xyXG4gIHByZXYoZXY/KSB7XHJcbiAgICBldiAmJiBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXYgJiYgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX3Zpc0l0ZW1zKSB7XHJcbiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5pc0F0U3RhcnQoKTtcclxuXHJcbiAgICAgIGlmIChzdGFydCAmJiB0aGlzLmxvb3AgJiYgdGhpcy5tYXhEcmFnICE9PSBmYWxzZSkge1xyXG4gICAgICAgIHRoaXMubW92ZVN0cmlwKHRoaXMubGFzdFggPSAodGhpcy5tYXhEcmFnICogLTEpKTtcclxuICAgICAgfSBlbHNlIGlmICghc3RhcnQpIHtcclxuICAgICAgICB0aGlzLm1vdmVTdHJpcCh0aGlzLmxhc3RYICs9IHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAvIHRoaXMuX3Zpc0l0ZW1zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5tb3ZlV2l0aGluQm91bmRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdGFydCB0aGUgYXV0byBsb29wXHJcbiAgICovXHJcbiAgc3RhcnRMb29wKCkge1xyXG4gICAgdGhpcy5hdXRvTG9vcCQgJiYgdGhpcy5hdXRvTG9vcCQudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICBpZiAodGhpcy5hdXRvUGxheSkge1xyXG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXV0b0xvb3AkID0gaW50ZXJ2YWwodGhpcy5hdXRvUGxheSkucGlwZShcclxuICAgICAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLmF1dG9QbGF5ID4gMClcclxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLm5leHQoKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB0aGUgYXV0b2xvb3BcclxuICAgKi9cclxuICBzdG9wTG9vcCgpIHtcclxuICAgIHRoaXMuYXV0b0xvb3AkICYmIHRoaXMuYXV0b0xvb3AkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXZSBhcmUgYXQgdGhlIGZpcnN0IHNsaWRlIGl0ZW1cclxuICAgKi9cclxuICBpc0F0U3RhcnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sYXN0WCA+PSAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2UgYXJlIGF0IHRoZSBsYXN0IHNsaWRlIGl0ZW1cclxuICAgKi9cclxuICBpc0F0RW5kKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWF4RHJhZyAhPT0gZmFsc2UgJiYgTWF0aC5hYnModGhpcy5sYXN0WCkgPj0gdGhpcy5tYXhEcmFnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2UgYXJlIGJlaW5nIGRyYWdnZWRcclxuICAgKlxyXG4gICAqIEBwYXJhbSBldlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkcmFnKGV2KSB7XHJcbiAgICAvLyBsZWZ0b3ZlciBwYW4gZXZlbnRzXHJcbiAgICBpZiAoIXRoaXMuZHJhZ2dpbmcgJiYgZXYuaXNGaW5hbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJZiAhZHJhZ2dpbmcgdGhlbiB0aGlzIGlzIHRoZSBzdGFydCBvZiBhIG5ldyBkcmFnXHJcbiAgICAgKi9cclxuICAgIGlmICghdGhpcy5kcmFnZ2luZykge1xyXG4gICAgICB0aGlzLnNldERyYWdnaW5nKCk7XHJcblxyXG4gICAgICB0aGlzLnRtcExhc3RYID0gMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdlIGhhdmVuJ3QgY2FsY3VsYXRlZCB0aGUgbWF4IG9mZnNldCB0aGF0IGNvdWxkIGJlIGRyYWdnZWQgc28gdHJ5IHRoYXQgbm93XHJcbiAgICAgKi9cclxuICAgIGlmICh0aGlzLm1heERyYWcgPT09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMuY2FsY01heERyYWcoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGFkZCB0aGUgbGFzdCBrbm93biBwb3NpdGlvbiB0byB0aGUgZGVsdGFYXHJcbiAgICAgKi9cclxuICAgIGxldCBwb3MgPSBldi5kZWx0YVggKyB0aGlzLmxhc3RYO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFrZSBhZGp1c3RtZW50czpcclxuICAgICAqIElmIHRoZSBuZXcgcG9zaXRpb24gaXMgbW9yZSB0aGFuIDAgd2UgY2FuJ3QgcmVhbGx5IGRyYWcgbW9yZSBpbiB0aGF0IGRpcmVjdGlvblxyXG4gICAgICogSWYgd2UgaGF2ZSBtYXhEcmFnIHdlIGNhbm5vdCBkcmFnIG1vcmUgdGhhbiB0aGF0XHJcbiAgICAgKiB0aGlzLmVsYXN0aWNCb3VuZHMgZ2l2ZXMgYSBiaXQgbW9yZSBwbGVhc2FudCBleHBlcmllbmNlXHJcbiAgICAgKi9cclxuICAgIGlmIChwb3MgPiAwKSB7XHJcbiAgICAgIHBvcyA9IHRoaXMuZWxhc3RpY0JvdW5kcyA/IHBvcyAqIDAuMSA6IDA7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubWF4RHJhZyAhPT0gZmFsc2UgJiYgTWF0aC5hYnMocG9zKSA+IHRoaXMubWF4RHJhZykge1xyXG4gICAgICBjb25zdCB0bXAgPSB0aGlzLm1heERyYWcgKiBNYXRoLnNpZ24ocG9zKTtcclxuICAgICAgcG9zICAgICAgID0gdG1wICsgKHRoaXMuZWxhc3RpY0JvdW5kcyA/IChwb3MgLSB0bXApICogMC4xIDogMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbGFzdCBkcmFnIGV2ZW50IGhhcyBpc0ZpbmFsIHRvIHRydWVcclxuICAgICAqL1xyXG4gICAgaWYgKGV2LmlzRmluYWwpIHtcclxuICAgICAgdGhpcy5sYXN0WCA9IHBvcztcclxuXHJcbiAgICAgIHRoaXMuZGVsRHJhZ2dpbmcoKTtcclxuXHJcbiAgICAgIC8vIGdpdmUgaXQgc29tZSB0aW1lIGFuZCB0aGVuIHRyeSB0byBwaW4gdG8gdGhlIG5lYXJlc3QgaXRlbSBpZiBub3QgZnJlZURyYWdcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnBpblBvc2l0aW9uKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW92ZSB0aGUgc3RyaXAgaWYgd2UgaGF2ZSBuZXcgcG9zaXRpb25cclxuICAgICAqL1xyXG4gICAgaWYgKHRoaXMudG1wTGFzdFggIT0gcG9zKSB7XHJcbiAgICAgIHRoaXMudG1wTGFzdFggPSBwb3M7XHJcbiAgICAgIHRoaXMubW92ZVN0cmlwKHBvcyA/IHBvcyA6IG51bGwpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJZiB3ZSBjYW5ub3QgZnJlZSBkcmFnIHdlIHNob3VsZCBnZXQgdG8gdGhlIG5lYXJlc3QgaXRlbSBhZnRlciB0aGUgZHJhZyB3YXMgZmluaXNoZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcGluUG9zaXRpb24oKSB7XHJcbiAgICB0aGlzLm1vdmVXaXRoaW5Cb3VuZHMoKTtcclxuICAgIHRoaXMubWFya0N1cnJlbnQoKTtcclxuXHJcbiAgICBjb25zdCBwb3MgPSBNYXRoLmFicyh0aGlzLmxhc3RYKTtcclxuXHJcbiAgICBpZiAodGhpcy5mcmVlRHJhZyB8fCB0aGlzLmxhc3RYID09IDAgfHwgcG9zID09IHRoaXMubWF4RHJhZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG5ld1BvcyA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBsZWZ0IG1vc3QgaXRlbSB0aGF0IGhhcyBpdCdzIGhhbGYgd2lkdGggd2l0aGluIHZpZXdcclxuICAgICAqL1xyXG4gICAgdGhpcy5pdGVtcy5zb21lKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChuZXdQb3MgKyAoaXRlbS53aWR0aCAvIDIpID49IHBvcykge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBuZXdQb3MgKz0gaXRlbS53aWR0aDtcclxuXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubGFzdFggPSBuZXdQb3MgKiBNYXRoLnNpZ24odGhpcy5sYXN0WCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEb24ndCBnbyBiZXlvbmQgbWF4RHJhZyBpZiBzZXQgKHRoaXMgd2lsbCBlZmZlY3RpdmVseSBkaXNyZWdhcmQgdGhlIG1vc3QgbGVmdCBwb3NpdGlvbiBvZiB0aGUgaXRlbSlcclxuICAgICAqL1xyXG4gICAgaWYgKHRoaXMubWF4RHJhZyAmJiBuZXdQb3MgPiB0aGlzLm1heERyYWcpIHtcclxuICAgICAgdGhpcy5sYXN0WCA9IHRoaXMubWF4RHJhZyAqIE1hdGguc2lnbih0aGlzLmxhc3RYKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1vdmVTdHJpcCh0aGlzLmxhc3RYKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcmsgY2Fyb3VzZWwgaXRlbXMgdGhhdCBhcmUgY3VycmVudFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtYXJrQ3VycmVudCgpIHtcclxuICAgIGNvbnN0IHBvc01pbiA9IE1hdGguYWJzKHRoaXMubGFzdFgpLFxyXG4gICAgICAgICAgcG9zTWF4ID0gcG9zTWluICsgdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgbGV0IHRtcFBvcyAgID0gMDtcclxuXHJcbiAgICB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBpdGVtLmN1cnJlbnQgPSB0bXBQb3MgPj0gcG9zTWluICYmIHRtcFBvcyA8IHBvc01heDtcclxuICAgICAgdG1wUG9zICs9IGl0ZW0ud2lkdGg7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHRoZSBmaWxtc3RyaXAgaXMgb3V0IG9mIGJvdW5kcyAoMCBhbmQgbWF4RHJhZykgbW92ZSBpdCBiYWNrIHdpdGhpblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtb3ZlV2l0aGluQm91bmRzKCkge1xyXG4gICAgaWYgKHRoaXMubGFzdFggPiAwKSB7XHJcbiAgICAgIHRoaXMubW92ZVN0cmlwKHRoaXMubGFzdFggPSAwKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1heERyYWcgIT09IGZhbHNlICYmIE1hdGguYWJzKHRoaXMubGFzdFgpID4gdGhpcy5tYXhEcmFnKSB7XHJcbiAgICAgIHRoaXMubW92ZVN0cmlwKHRoaXMubGFzdFggPSB0aGlzLm1heERyYWcgKiBNYXRoLnNpZ24odGhpcy5sYXN0WCkpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIGZsZXggc3R5bGVzIHRvIHRoZSBjYXJvdXNlbCBpdGVtc1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzZXRJdGVtc1N0eWxlKCkge1xyXG4gICAgY29uc3QgZmxleCA9IHRoaXMuX3Zpc0l0ZW1zICE9IDAgPyAoMTAwIC8gdGhpcy5fdmlzSXRlbXMpICsgJyUnIDogJ2F1dG8nO1xyXG5cclxuICAgIHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnNldEZsZXgoZmxleCkpO1xyXG4gICAgdGhpcy5jYWxjTWF4RHJhZygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzZXQgdGhlIGNhcm91c2VsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHJlc2V0KCkge1xyXG4gICAgdGhpcy5sYXN0WCAgICA9IDA7XHJcbiAgICB0aGlzLm1heERyYWcgID0gZmFsc2U7XHJcbiAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5yZXNldCgpKTtcclxuICAgIHRoaXMubW92ZVN0cmlwKDApLmRlbERyYWdnaW5nKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNb3ZlIHRoZSBmaWxtIHN0cmlwIHdpdGggY3NzIHRyYW5zZm9ybVxyXG4gICAqIEBwYXJhbSBwb3NcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbW92ZVN0cmlwKHBvczogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnJlbmQuc2V0U3R5bGUodGhpcy5maWxtc3RyaXAubmF0aXZlRWxlbWVudCwgJ3RyYW5zZm9ybScsIHBvcyA/ICd0cmFuc2xhdGVYKCcgKyBwb3MgKyAncHgpJyA6ICcnKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNldERyYWdnaW5nKCkge1xyXG4gICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5yZW5kLmFkZENsYXNzKHRoaXMuZmlsbXN0cmlwLm5hdGl2ZUVsZW1lbnQsICdkcmFnZ2luZycpO1xyXG4gICAgdGhpcy5yZW5kLmFkZENsYXNzKHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudCwgJ2RyYWdnaW5nJyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkZWxEcmFnZ2luZygpIHtcclxuICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnJlbmQucmVtb3ZlQ2xhc3ModGhpcy5maWxtc3RyaXAubmF0aXZlRWxlbWVudCwgJ2RyYWdnaW5nJyk7XHJcbiAgICB0aGlzLnJlbmQucmVtb3ZlQ2xhc3ModGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LCAnZHJhZ2dpbmcnKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNldFZpc2libGUoKSB7XHJcbiAgICBpZiAodGhpcy5sYXN0QnIuc20pIHtcclxuICAgICAgdGhpcy5fdmlzSXRlbXMgPSB0aGlzLl92aXNDb25mLnNtICE9PSB1bmRlZmluZWQgPyB0aGlzLl92aXNDb25mLnNtIDogKHRoaXMuX3Zpc0NvbmYuYWxsIHx8IDApO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxhc3RCci5tZCkge1xyXG4gICAgICB0aGlzLl92aXNJdGVtcyA9IHRoaXMuX3Zpc0NvbmYubWQgIT09IHVuZGVmaW5lZCA/IHRoaXMuX3Zpc0NvbmYubWQgOiAodGhpcy5fdmlzQ29uZi5hbGwgfHwgMCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFzdEJyLmxnKSB7XHJcbiAgICAgIHRoaXMuX3Zpc0l0ZW1zID0gdGhpcy5fdmlzQ29uZi5sZyAhPT0gdW5kZWZpbmVkID8gdGhpcy5fdmlzQ29uZi5sZyA6ICh0aGlzLl92aXNDb25mLmFsbCB8fCAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3Zpc0l0ZW1zID0gdGhpcy5fdmlzQ29uZi5hbGwgfHwgMDtcclxuICAgIH1cclxuICB9XHJcbn0iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0Nhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9uZy1jYXJvdXNlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ0Nhcm91c2VsSXRlbURpcmVjdGl2ZSB9IGZyb20gXCIuL25nLWNhcm91c2VsLWl0ZW0uZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTGF5b3V0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9sYXlvdXRcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0cyAgICAgIDogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTGF5b3V0TW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnMgOiBbIE5nQ2Fyb3VzZWxDb21wb25lbnQsIE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIF0sXHJcbiAgZXhwb3J0cyAgICAgIDogWyBOZ0Nhcm91c2VsQ29tcG9uZW50LCBOZ0Nhcm91c2VsSXRlbURpcmVjdGl2ZSBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ0Nhcm91c2VsTW9kdWxlIHtcclxufVxyXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7OztJQVdFLFlBQXNCLEVBQWMsRUFBWSxJQUFlO1FBQXpDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBWSxT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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lsbWFyLW5nLWNhcm91c2VsLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9Ac2lsbWFyL25nLWNhcm91c2VsL2xpYi9uZy1jYXJvdXNlbC1pdGVtLmRpcmVjdGl2ZS50cyIsIm5nOi8vQHNpbG1hci9uZy1jYXJvdXNlbC9saWIvbmctY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwibmc6Ly9Ac2lsbWFyL25nLWNhcm91c2VsL2xpYi9uZy1jYXJvdXNlbC5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yIDogJ1tzaUNhcm91c2VsSXRlbV0nLFxuICBleHBvcnRBcyA6ICdzaUNhcm91c2VsSXRlbSdcbn0pXG5leHBvcnQgY2xhc3MgTmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmUge1xuICBwcm90ZWN0ZWQgX3dpZHRoOiBudW1iZXI7XG5cbiAgcHJvdGVjdGVkIF9pc0N1cnJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCByZW5kOiBSZW5kZXJlcjIpIHsgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHdpZHRoIG9mIHRoZSBpdGVtXG4gICAqL1xuICBnZXQgd2lkdGgoKSB7XG4gICAgaWYgKCF0aGlzLl93aWR0aCkge1xuICAgICAgdGhpcy5jYWxjV2lkdGgoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fd2lkdGg7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBpdGVtIGZsZXggcGVyY2VudCAob3IgJ2F1dG8nKVxuICAgKiBAcGFyYW0gcGVyY2VudFxuICAgKi9cbiAgc2V0RmxleChwZXJjZW50KSB7XG4gICAgdGhpcy5yZW5kLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2ZsZXgnLCAnMCAwICcgKyBwZXJjZW50KTtcbiAgICB0aGlzLmNhbGNXaWR0aCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBpZiB0aGUgaXRlbSBpcyBjdXJyZW50bHkgdmlzaWJsZVxuICAgKiBAcGFyYW0gaXNDdXJyZW50XG4gICAqL1xuICBzZXQgY3VycmVudChpc0N1cnJlbnQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0N1cnJlbnQgPSBpc0N1cnJlbnQ7XG5cbiAgICBpZiAoaXNDdXJyZW50KSB7XG4gICAgICB0aGlzLnJlbmQuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaXMtY3VycmVudCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmQucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnaXMtY3VycmVudCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgaXRlbVxuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5fd2lkdGggPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSBpdGVtIHdpZHRoICh0aGlzIHdpbGwgZ2V0IGludG8gYWNjb3VudCB0aGUgbWFyZ2lucyBvZiB0aGUgYm94KVxuICAgKi9cbiAgY2FsY1dpZHRoKCkge1xuICAgIGNvbnN0IGJveCAgICA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgICBzdHlsZXMgPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG5cbiAgICB0aGlzLl93aWR0aCA9IGJveC53aWR0aCA/IGJveC53aWR0aCArIHBhcnNlSW50KHN0eWxlcy5tYXJnaW5MZWZ0KSArIHBhcnNlSW50KHN0eWxlcy5tYXJnaW5SaWdodCkgOiAwO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgUExBVEZPUk1fSUQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IGludGVydmFsLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlV2hpbGUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9sYXlvdXRcIjtcbmltcG9ydCB7IE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIH0gZnJvbSBcIi4vbmctY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmVcIjtcblxuZXhwb3J0IHR5cGUgVklTSUJMRV9JVEVNUyA9IHsgc20/OiBudW1iZXIsIG1kPzogbnVtYmVyLCBsZz86IG51bWJlciwgYWxsOiBudW1iZXIgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yICAgIDogJ3NpLW5nLWNhcm91c2VsJyxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZ2FsbGVyeVwiICNjYXJvdXNlbCBbY2xhc3MuZHJhZ2dhYmxlXT1cIm1heERyYWcgIT09IDBcIj5cbiAgPGRpdiAjZmlsbXN0cmlwIGNsYXNzPVwiZ2FsbGVyeS1pbm5lclwiIChzd2lwZWxlZnQpPVwib25Td2lwZSgkZXZlbnQsICdsJylcIiAoc3dpcGVyaWdodCk9XCJvblN3aXBlKCRldmVudCwgJ3InKVwiXG4gICAgICAgKHBhbik9XCJkcmFnJC5uZXh0KCRldmVudClcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0J1dHRvbnMgJiYgbWF4RHJhZyAhPT0gMFwiPlxuICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJjaGV2cm9uIGxlZnRcIiAoY2xpY2spPVwicHJldigkZXZlbnQpXCIgdGl0bGU9XCJQcmV2aW91c1wiIHRhYmluZGV4PVwiLTFcIj48L2E+XG4gICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImNoZXZyb24gcmlnaHRcIiAoY2xpY2spPVwibmV4dCgkZXZlbnQpXCIgdGl0bGU9XCJOZXh0XCIgdGFiaW5kZXg9XCItMVwiPjwvYT5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5gLFxuICBzdHlsZXM6IFtgc2ktbmctY2Fyb3VzZWx7ZGlzcGxheTpibG9ja30uZ2FsbGVyeXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9LmdhbGxlcnkgLmNoZXZyb257cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoNTAlIC0gMXJlbSk7d2lkdGg6MnJlbTtoZWlnaHQ6MnJlbTtmb250LXNpemU6MS40cmVtO3BhZGRpbmc6LjNyZW0gLjI1cmVtIC4yNXJlbTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTowO3RyYW5zaXRpb246YWxsIDE1MG1zIGN1YmljLWJlemllciguNCwwLC4yLDEpfS5nYWxsZXJ5IC5jaGV2cm9uOmhvdmVye2JveC1zaGFkb3c6MCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMiksMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMil9LmdhbGxlcnkgLmNoZXZyb24ubGVmdHtsZWZ0OjVweDt0ZXh0LWFsaWduOmNlbnRlcn0uZ2FsbGVyeSAuY2hldnJvbi5yaWdodHtyaWdodDo1cHh9LmdhbGxlcnkgLmNoZXZyb246OmJlZm9yZXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4xNWVtIC4xNWVtIDAgMDtjb250ZW50OicnO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDouNWVtO3dpZHRoOi41ZW07dG9wOi4xNWVtO2xlZnQ6LjE1ZW07cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3ZlcnRpY2FsLWFsaWduOnRvcH0uZ2FsbGVyeSAuY2hldnJvbi5yaWdodDpiZWZvcmV7bGVmdDouMWVtOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LmdhbGxlcnkgLmNoZXZyb24uYm90dG9tOmJlZm9yZXt0b3A6MDstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyl9LmdhbGxlcnkgLmNoZXZyb24ubGVmdDpiZWZvcmV7bGVmdDouMWVtOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpfS5nYWxsZXJ5OmhvdmVyIC5jaGV2cm9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO29wYWNpdHk6Ljh9LmdhbGxlcnkgLmdhbGxlcnktaW5uZXJ7ZmxleC1mbG93OnJvdyBub3dyYXA7ZGlzcGxheTpmbGV4Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjVzIGN1YmljLWJlemllciguNDUsLjAwNSwuMjksMS41Mik7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjVzIGN1YmljLWJlemllciguNDUsLjAwNSwuMjksMS41Mik7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjVzIGN1YmljLWJlemllciguNDUsLjAwNSwuMjksMS41MiksLXdlYmtpdC10cmFuc2Zvcm0gLjVzIGN1YmljLWJlemllciguNDUsLjAwNSwuMjksMS41Mil9LmdhbGxlcnkgLmdhbGxlcnktaW5uZXIuZHJhZ2dhYmxle2N1cnNvcjotd2Via2l0LWdyYWI7Y3Vyc29yOmdyYWJ9LmdhbGxlcnkgLmdhbGxlcnktaW5uZXIuZHJhZ2dpbmd7dHJhbnNpdGlvbjpub25lO2N1cnNvcjotd2Via2l0LWdyYWJiaW5nO2N1cnNvcjpncmFiYmluZ31AbWVkaWEgKG1heC13aWR0aDo1OTlweCl7LmNoZXZyb257ZGlzcGxheTpub25lIWltcG9ydGFudH19YF1cbn0pXG5leHBvcnQgY2xhc3MgTmdDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgbWFpbiBjYXJvdXNlbCBlbGVtZW50XG4gICAqL1xuICBAVmlld0NoaWxkKCdjYXJvdXNlbCcpIGNhcm91c2VsOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBUaGUgXCJmaWxtc3RyaXBcIiBvZiB0aGUgY2Fyb3VzZWwgKHRoZSB3cmFwcGVyIG9mIHRoZSBpdGVtcylcbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2ZpbG1zdHJpcCcpIGZpbG1zdHJpcDogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogQ2Fyb3VzZWwgaXRlbXNcbiAgICovXG4gIEBDb250ZW50Q2hpbGRyZW4oTmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmUpIGl0ZW1zOiBRdWVyeUxpc3Q8TmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmU+O1xuXG4gIC8qKlxuICAgKiBTSG93IHByZXYgYW5kIG5leHQgYnV0dG9uc1xuICAgKi9cbiAgQElucHV0KCkgc2hvd0J1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBMb29wIHRoZSBjYXJvdXNlbCBvbmNlIHlvdSBoaXQgbGFzdC9maXJzdCBpdGVtXG4gICAqL1xuICBASW5wdXQoKSBsb29wOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQXV0byBzbGlkZSB0aGUgY2Fyb3VzZWwgKG1zKVxuICAgKi9cbiAgQElucHV0KCkgYXV0b1BsYXk6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIERvIG5vdCBzbmFwIHRvIHRoZSBjbG9zZXN0IGl0ZW1cbiAgICovXG4gIEBJbnB1dCgpIGZyZWVEcmFnOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEdpdmUgYW4gZWxhc3RpYyBmZWVsaW5nIHdoZW4gdGhlIHVzZXIgaXMgZHJhZ2dpbmcgYmV5b25kIHRoZSBib3VuZHMgb2YgdGhlIGZpbG1zdHJpcFxuICAgKi9cbiAgQElucHV0KCkgZWxhc3RpY0JvdW5kczogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEJyZWFrcG9pbnRzIHRvIHdhdGNoIGZvclxuICAgKi9cbiAgYnJlYWtzID0ge1xuICAgICdzbScgOiAnKG1heC13aWR0aDogOTU5cHgpJyxcbiAgICAnbWQnIDogJyhtaW4td2lkdGg6IDk2MHB4KSBhbmQgKG1heC13aWR0aDogMTI3OXB4KScsXG4gICAgJ2xnJyA6ICcobWluLXdpZHRoOiAxMjgwcHgpJyxcbiAgICAncCcgIDogJyhvcmllbnRhdGlvbjpwb3J0cmFpdCknLFxuICAgICdsJyAgOiAnKG9yaWVudGF0aW9uOmxhbmRzY2FwZSknXG4gIH07XG5cbiAgLyoqXG4gICAqIGN1cnJlbnRseSBkcmFnZ2luZ1xuICAgKi9cbiAgZHJhZ2dpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogTWF4aW11bSBkcmFnIG9mZnNldCAobWludXMpXG4gICAqL1xuICBtYXhEcmFnOiBudW1iZXIgfCBmYWxzZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBQYW4gZXZlbnQgc3ViamVjdFxuICAgKi9cbiAgZHJhZyQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAvKipcbiAgICogTGFzdCBrbm93biBYIG9mZnNldFxuICAgKi9cbiAgcHJvdGVjdGVkIGxhc3RYOiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBUZW1wIChmb3IgdGhlIGN1cnJlbnQgZHJhZ2dpbmcgc2Vzc2lvbikgbGFzdCBrbm93biBYIG9mZnNldFxuICAgKi9cbiAgcHJvdGVjdGVkIHRtcExhc3RYOiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBTdWJzY3JpcHRpb24gZm9yIHRoZSBQQU4gZXZlbnRcbiAgICovXG4gIHByb3RlY3RlZCBkcmFnU2JzJDogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBJdGVtcyBjaGFuZ2Ugc3Vic2NyaXB0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgaXRlbXMkOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiB2aXNpYmxlIGl0ZW1zXG4gICAqL1xuICBwcm90ZWN0ZWQgX3Zpc0NvbmY6IFZJU0lCTEVfSVRFTVMgPSB7IGFsbCA6IDAgfTtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIHZpc2libGUgaXRlbXNcbiAgICovXG4gIHByb3RlY3RlZCBfdmlzSXRlbXM6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIENhcm91c2VsIHdhcyBpbml0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBpbml0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU1NSXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNTZXJ2ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogTGFzdCBzdGF0ZSBvZiB0aGUgb2JzZXJ2ZWQgYnJlYWtwb2ludHNcbiAgICovXG4gIHByb3RlY3RlZCBsYXN0QnI6IHsgc206IGJvb2xlYW4sIG1kOiBib29sZWFuLCBsZzogYm9vbGVhbiwgcDogYm9vbGVhbiB9ID0ge1xuICAgIHNtIDogZmFsc2UsXG4gICAgbWQgOiBmYWxzZSxcbiAgICBsZyA6IHRydWUsXG4gICAgcCAgOiBmYWxzZVxuICB9O1xuXG4gIC8qKlxuICAgKiBTdWJzY3JpcHRpb24gdG8gdGhlIGJyZWFrcG9pbnQgb2JzZXJ2ZXJcbiAgICovXG4gIHByb3RlY3RlZCBicmtwbnRzOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIEF1dG9sb29wIHRpbWVyXG4gICAqL1xuICBwcm90ZWN0ZWQgYXV0b0xvb3AkOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZCwgcHJvdGVjdGVkIHJlbmQ6IFJlbmRlcmVyMiwgcHJvdGVjdGVkIHpvbmU6IE5nWm9uZSwgYnJlYWtPYnM6IEJyZWFrcG9pbnRPYnNlcnZlcikge1xuICAgIHRoaXMuaXNTZXJ2ZXIgPSBpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtSWQpO1xuXG4gICAgaWYgKCF0aGlzLmlzU2VydmVyKSB7XG4gICAgICB0aGlzLmJya3BudHMgPSBicmVha09icy5vYnNlcnZlKFtcbiAgICAgICAgdGhpcy5icmVha3Muc20sXG4gICAgICAgIHRoaXMuYnJlYWtzLm1kLFxuICAgICAgICB0aGlzLmJyZWFrcy5sZyxcbiAgICAgICAgdGhpcy5icmVha3MubCxcbiAgICAgICAgdGhpcy5icmVha3MucFxuICAgICAgXSkuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0ge1xuICAgICAgICAgIHNtIDogYnJlYWtPYnMuaXNNYXRjaGVkKHRoaXMuYnJlYWtzLnNtKSxcbiAgICAgICAgICBtZCA6IGJyZWFrT2JzLmlzTWF0Y2hlZCh0aGlzLmJyZWFrcy5tZCksXG4gICAgICAgICAgbGcgOiBicmVha09icy5pc01hdGNoZWQodGhpcy5icmVha3MubGcpLFxuICAgICAgICAgIHAgIDogYnJlYWtPYnMuaXNNYXRjaGVkKHRoaXMuYnJlYWtzLnApLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChzdGF0ZS5zbSAhPSB0aGlzLmxhc3RCci5zbSB8fCBzdGF0ZS5tZCAhPSB0aGlzLmxhc3RCci5tZCB8fCBzdGF0ZS5sZyAhPSB0aGlzLmxhc3RCci5sZyB8fCBzdGF0ZS5wICE9IHRoaXMubGFzdEJyLnApIHtcbiAgICAgICAgICB0aGlzLmxhc3RCciA9IHN0YXRlO1xuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZSgpO1xuICAgICAgICAgIHRoaXMuaW5pdGVkICYmIHRoaXMuaW5pdENhcm91c2VsKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZHJhZ1NicyQgJiYgdGhpcy5kcmFnU2JzJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaXRlbXMkICYmIHRoaXMuaXRlbXMkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5icmtwbnRzICYmIHRoaXMuYnJrcG50cy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuYXV0b0xvb3AkICYmIHRoaXMuYXV0b0xvb3AkLnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLmF1dG9QbGF5ID0gMDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5pc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbXMkID0gdGhpcy5pdGVtcy5jaGFuZ2VzLnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5pbml0Q2Fyb3VzZWwoKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmluaXRDYXJvdXNlbCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbnVtYmVyIG9mIHZpc2libGUgaXRlbXMgKHNldCAwIGZvciBhdXRvKVxuICAgKiBjYW4gYmUgbnVtYmVyIG9yIFZJU0lCTEVfSVRFTVMgdHlwZSBgeyBzbT86IG51bWJlciwgbWQ/OiBudW1iZXIsIGxnPzogbnVtYmVyLCBhbGw6IG51bWJlciB9YFxuICAgKiBAcGFyYW0gaXRlbXNcbiAgICovXG4gIEBJbnB1dCgpIHNldCB2aXNpYmxlKGl0ZW1zOiBWSVNJQkxFX0lURU1TIHwgbnVtYmVyKSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtcyA9PSAnbnVtYmVyJykge1xuICAgICAgaXRlbXMgPSB7IGFsbCA6IGl0ZW1zIH07XG4gICAgfVxuXG4gICAgdGhpcy5fdmlzQ29uZiA9IGl0ZW1zO1xuXG4gICAgdGhpcy5zZXRWaXNpYmxlKCk7XG4gICAgdGhpcy5pbml0ZWQgJiYgdGhpcy5pbml0Q2Fyb3VzZWwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHRoZSBsb29wIG9uIGhvdmVyXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgb25Ib3ZlcigpIHtcbiAgICB0aGlzLnN0b3BMb29wKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgdGhlIGxvb3Agb24gbW91c2Ugb3V0XG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Ib3ZlclN0b3AoKSB7XG4gICAgdGhpcy5zdGFydExvb3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0IHRoZSBjYXJvdXNlbFxuICAgKi9cbiAgaW5pdENhcm91c2VsKCkge1xuICAgIGlmICh0aGlzLmlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pbml0ZWQgPSB0cnVlO1xuXG4gICAgdGhpcy5yZXNldCgpO1xuICAgIHRoaXMuc2V0SXRlbXNTdHlsZSgpO1xuICAgIHRoaXMubWFya0N1cnJlbnQoKTtcblxuICAgIHRoaXMuZHJhZ1NicyQgJiYgdGhpcy5kcmFnU2JzJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuYXV0b0xvb3AkICYmIHRoaXMuYXV0b0xvb3AkLnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5kcmFnU2JzJCA9IHRoaXMuZHJhZyQucGlwZShcbiAgICAgICAgZmlsdGVyKChldikgPT4gdGhpcy5tYXhEcmFnICE9PSAwKVxuICAgICAgKS5zdWJzY3JpYmUoKGV2KSA9PiB0aGlzLmRyYWcoZXYpKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3RhcnRMb29wKCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIG1heGltdW0gcG9zc2libGUgZHJhZyBvZmZzZXRcbiAgICogMDogaXQgY2Fubm90IGJlIGRyYWdnZWQgYXQgYWxsXG4gICAqIGZhbHNlOiB3ZSBkbyBub3Qga25vdyB5ZXQgc28gZHJhZyBhdCB3aWxsXG4gICAqXG4gICAqL1xuICBjYWxjTWF4RHJhZygpOiBudW1iZXIgfCBmYWxzZSB7XG4gICAgdGhpcy5tYXhEcmFnID0gZmFsc2U7XG5cbiAgICBpZiAoIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB3ID0gdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ud2lkdGgpLnJlZHVjZSgocHJldiwgbm93KSA9PiBwcmV2ICsgbm93LCAwKTtcblxuICAgIGlmICh3KSB7XG4gICAgICBpZiAodyA8PSB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpIHtcbiAgICAgICAgdGhpcy5tYXhEcmFnID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBhcnQgPSAodyAvIHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCkgLSAxO1xuXG4gICAgICAgIHRoaXMubWF4RHJhZyA9IE1hdGgucm91bmQoTWF0aC5hYnMocGFydCAqIHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm1heERyYWc7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHNob3J0IHBhbiBzZXNzaW9ucyAoc3dpcGUgb24gbGVmdCBuYWQgcmlnaHQpIGFuZCB0cnkgdG8gZmxpcCB0byB0aGUgbmV4dC9wcmV2IGl0ZW1cbiAgICpcbiAgICogQHBhcmFtIGV2XG4gICAqIEBwYXJhbSBkaXJcbiAgICovXG4gIG9uU3dpcGUoZXYsIGRpcjogJ2wnIHwgJ3InID0gJ2wnKSB7XG4gICAgaWYgKHRoaXMubWF4RHJhZyAhPT0gMCAmJiB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQgJiYgKHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAvIDIpID4gZXYuZGlzdGFuY2UpIHtcbiAgICAgIGV2LmRlbHRhWCArPSB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLyAyICogKGRpciA9PSAncicgPyAxIDogLTEpO1xuICAgICAgZXYuaXNGaW5hbCA9IHRydWU7XG5cbiAgICAgIHRoaXMuZHJhZyhldik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIG5leHQgc2xpZGUgKHdvcmtzIG9ubHkgd2hlbiBfdmlzSXRlbXMgaXMgbW9yZSB0aGFuIDApXG4gICAqIEBwYXJhbSBldlxuICAgKi9cbiAgbmV4dChldj8pIHtcbiAgICBldiAmJiBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ICYmIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuX3Zpc0l0ZW1zKSB7XG4gICAgICBjb25zdCBlbmQgPSB0aGlzLmlzQXRFbmQoKTtcblxuICAgICAgaWYgKGVuZCAmJiB0aGlzLmxvb3ApIHtcbiAgICAgICAgdGhpcy5tb3ZlU3RyaXAodGhpcy5sYXN0WCA9IDApO1xuICAgICAgfSBlbHNlIGlmICghZW5kKSB7XG4gICAgICAgIHRoaXMubW92ZVN0cmlwKHRoaXMubGFzdFggKz0gdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIC8gdGhpcy5fdmlzSXRlbXMgKiAtMSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubW92ZVdpdGhpbkJvdW5kcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBwcmV2IHNsaWRlICh3b3JrcyBvbmx5IHdoZW4gX3Zpc0l0ZW1zIGlzIG1vcmUgdGhhbiAwKVxuICAgKiBAcGFyYW0gZXZcbiAgICovXG4gIHByZXYoZXY/KSB7XG4gICAgZXYgJiYgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICBldiAmJiBldi5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLl92aXNJdGVtcykge1xuICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmlzQXRTdGFydCgpO1xuXG4gICAgICBpZiAoc3RhcnQgJiYgdGhpcy5sb29wICYmIHRoaXMubWF4RHJhZyAhPT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5tb3ZlU3RyaXAodGhpcy5sYXN0WCA9ICh0aGlzLm1heERyYWcgKiAtMSkpO1xuICAgICAgfSBlbHNlIGlmICghc3RhcnQpIHtcbiAgICAgICAgdGhpcy5tb3ZlU3RyaXAodGhpcy5sYXN0WCArPSB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLyB0aGlzLl92aXNJdGVtcyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubW92ZVdpdGhpbkJvdW5kcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgYXV0byBsb29wXG4gICAqL1xuICBzdGFydExvb3AoKSB7XG4gICAgdGhpcy5hdXRvTG9vcCQgJiYgdGhpcy5hdXRvTG9vcCQudW5zdWJzY3JpYmUoKTtcblxuICAgIGlmICh0aGlzLmF1dG9QbGF5KSB7XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmF1dG9Mb29wJCA9IGludGVydmFsKHRoaXMuYXV0b1BsYXkpLnBpcGUoXG4gICAgICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuYXV0b1BsYXkgPiAwKVxuICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLm5leHQoKSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RvcCB0aGUgYXV0b2xvb3BcbiAgICovXG4gIHN0b3BMb29wKCkge1xuICAgIHRoaXMuYXV0b0xvb3AkICYmIHRoaXMuYXV0b0xvb3AkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogV2UgYXJlIGF0IHRoZSBmaXJzdCBzbGlkZSBpdGVtXG4gICAqL1xuICBpc0F0U3RhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFzdFggPj0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXZSBhcmUgYXQgdGhlIGxhc3Qgc2xpZGUgaXRlbVxuICAgKi9cbiAgaXNBdEVuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5tYXhEcmFnICE9PSBmYWxzZSAmJiBNYXRoLmFicyh0aGlzLmxhc3RYKSA+PSB0aGlzLm1heERyYWc7XG4gIH1cblxuICAvKipcbiAgICogV2UgYXJlIGJlaW5nIGRyYWdnZWRcbiAgICpcbiAgICogQHBhcmFtIGV2XG4gICAqL1xuICBwcm90ZWN0ZWQgZHJhZyhldikge1xuICAgIC8vIGxlZnRvdmVyIHBhbiBldmVudHNcbiAgICBpZiAoIXRoaXMuZHJhZ2dpbmcgJiYgZXYuaXNGaW5hbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmICFkcmFnZ2luZyB0aGVuIHRoaXMgaXMgdGhlIHN0YXJ0IG9mIGEgbmV3IGRyYWdcbiAgICAgKi9cbiAgICBpZiAoIXRoaXMuZHJhZ2dpbmcpIHtcbiAgICAgIHRoaXMuc2V0RHJhZ2dpbmcoKTtcblxuICAgICAgdGhpcy50bXBMYXN0WCA9IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2UgaGF2ZW4ndCBjYWxjdWxhdGVkIHRoZSBtYXggb2Zmc2V0IHRoYXQgY291bGQgYmUgZHJhZ2dlZCBzbyB0cnkgdGhhdCBub3dcbiAgICAgKi9cbiAgICBpZiAodGhpcy5tYXhEcmFnID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5jYWxjTWF4RHJhZygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGFkZCB0aGUgbGFzdCBrbm93biBwb3NpdGlvbiB0byB0aGUgZGVsdGFYXG4gICAgICovXG4gICAgbGV0IHBvcyA9IGV2LmRlbHRhWCArIHRoaXMubGFzdFg7XG5cbiAgICAvKipcbiAgICAgKiBNYWtlIGFkanVzdG1lbnRzOlxuICAgICAqIElmIHRoZSBuZXcgcG9zaXRpb24gaXMgbW9yZSB0aGFuIDAgd2UgY2FuJ3QgcmVhbGx5IGRyYWcgbW9yZSBpbiB0aGF0IGRpcmVjdGlvblxuICAgICAqIElmIHdlIGhhdmUgbWF4RHJhZyB3ZSBjYW5ub3QgZHJhZyBtb3JlIHRoYW4gdGhhdFxuICAgICAqIHRoaXMuZWxhc3RpY0JvdW5kcyBnaXZlcyBhIGJpdCBtb3JlIHBsZWFzYW50IGV4cGVyaWVuY2VcbiAgICAgKi9cbiAgICBpZiAocG9zID4gMCkge1xuICAgICAgcG9zID0gdGhpcy5lbGFzdGljQm91bmRzID8gcG9zICogMC4xIDogMDtcbiAgICB9IGVsc2UgaWYgKHRoaXMubWF4RHJhZyAhPT0gZmFsc2UgJiYgTWF0aC5hYnMocG9zKSA+IHRoaXMubWF4RHJhZykge1xuICAgICAgY29uc3QgdG1wID0gdGhpcy5tYXhEcmFnICogTWF0aC5zaWduKHBvcyk7XG4gICAgICBwb3MgICAgICAgPSB0bXAgKyAodGhpcy5lbGFzdGljQm91bmRzID8gKHBvcyAtIHRtcCkgKiAwLjEgOiAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbGFzdCBkcmFnIGV2ZW50IGhhcyBpc0ZpbmFsIHRvIHRydWVcbiAgICAgKi9cbiAgICBpZiAoZXYuaXNGaW5hbCkge1xuICAgICAgdGhpcy5sYXN0WCA9IHBvcztcblxuICAgICAgdGhpcy5kZWxEcmFnZ2luZygpO1xuXG4gICAgICAvLyBnaXZlIGl0IHNvbWUgdGltZSBhbmQgdGhlbiB0cnkgdG8gcGluIHRvIHRoZSBuZWFyZXN0IGl0ZW0gaWYgbm90IGZyZWVEcmFnXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucGluUG9zaXRpb24oKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTW92ZSB0aGUgc3RyaXAgaWYgd2UgaGF2ZSBuZXcgcG9zaXRpb25cbiAgICAgKi9cbiAgICBpZiAodGhpcy50bXBMYXN0WCAhPSBwb3MpIHtcbiAgICAgIHRoaXMudG1wTGFzdFggPSBwb3M7XG4gICAgICB0aGlzLm1vdmVTdHJpcChwb3MgPyBwb3MgOiBudWxsKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB3ZSBjYW5ub3QgZnJlZSBkcmFnIHdlIHNob3VsZCBnZXQgdG8gdGhlIG5lYXJlc3QgaXRlbSBhZnRlciB0aGUgZHJhZyB3YXMgZmluaXNoZWRcbiAgICovXG4gIHByb3RlY3RlZCBwaW5Qb3NpdGlvbigpIHtcbiAgICB0aGlzLm1vdmVXaXRoaW5Cb3VuZHMoKTtcbiAgICB0aGlzLm1hcmtDdXJyZW50KCk7XG5cbiAgICBjb25zdCBwb3MgPSBNYXRoLmFicyh0aGlzLmxhc3RYKTtcblxuICAgIGlmICh0aGlzLmZyZWVEcmFnIHx8IHRoaXMubGFzdFggPT0gMCB8fCBwb3MgPT0gdGhpcy5tYXhEcmFnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG5ld1BvcyA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBsZWZ0IG1vc3QgaXRlbSB0aGF0IGhhcyBpdCdzIGhhbGYgd2lkdGggd2l0aGluIHZpZXdcbiAgICAgKi9cbiAgICB0aGlzLml0ZW1zLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgIGlmIChuZXdQb3MgKyAoaXRlbS53aWR0aCAvIDIpID49IHBvcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgbmV3UG9zICs9IGl0ZW0ud2lkdGg7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcblxuICAgIHRoaXMubGFzdFggPSBuZXdQb3MgKiBNYXRoLnNpZ24odGhpcy5sYXN0WCk7XG5cbiAgICAvKipcbiAgICAgKiBEb24ndCBnbyBiZXlvbmQgbWF4RHJhZyBpZiBzZXQgKHRoaXMgd2lsbCBlZmZlY3RpdmVseSBkaXNyZWdhcmQgdGhlIG1vc3QgbGVmdCBwb3NpdGlvbiBvZiB0aGUgaXRlbSlcbiAgICAgKi9cbiAgICBpZiAodGhpcy5tYXhEcmFnICYmIG5ld1BvcyA+IHRoaXMubWF4RHJhZykge1xuICAgICAgdGhpcy5sYXN0WCA9IHRoaXMubWF4RHJhZyAqIE1hdGguc2lnbih0aGlzLmxhc3RYKTtcbiAgICB9XG5cbiAgICB0aGlzLm1vdmVTdHJpcCh0aGlzLmxhc3RYKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJrIGNhcm91c2VsIGl0ZW1zIHRoYXQgYXJlIGN1cnJlbnRcbiAgICovXG4gIHByb3RlY3RlZCBtYXJrQ3VycmVudCgpIHtcbiAgICBjb25zdCBwb3NNaW4gPSBNYXRoLmFicyh0aGlzLmxhc3RYKSxcbiAgICAgICAgICBwb3NNYXggPSBwb3NNaW4gKyB0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgbGV0IHRtcFBvcyAgID0gMDtcblxuICAgIHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLmN1cnJlbnQgPSB0bXBQb3MgPj0gcG9zTWluICYmIHRtcFBvcyA8IHBvc01heDtcbiAgICAgIHRtcFBvcyArPSBpdGVtLndpZHRoO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSBmaWxtc3RyaXAgaXMgb3V0IG9mIGJvdW5kcyAoMCBhbmQgbWF4RHJhZykgbW92ZSBpdCBiYWNrIHdpdGhpblxuICAgKi9cbiAgcHJvdGVjdGVkIG1vdmVXaXRoaW5Cb3VuZHMoKSB7XG4gICAgaWYgKHRoaXMubGFzdFggPiAwKSB7XG4gICAgICB0aGlzLm1vdmVTdHJpcCh0aGlzLmxhc3RYID0gMCk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLm1heERyYWcgIT09IGZhbHNlICYmIE1hdGguYWJzKHRoaXMubGFzdFgpID4gdGhpcy5tYXhEcmFnKSB7XG4gICAgICB0aGlzLm1vdmVTdHJpcCh0aGlzLmxhc3RYID0gdGhpcy5tYXhEcmFnICogTWF0aC5zaWduKHRoaXMubGFzdFgpKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGZsZXggc3R5bGVzIHRvIHRoZSBjYXJvdXNlbCBpdGVtc1xuICAgKi9cbiAgcHJvdGVjdGVkIHNldEl0ZW1zU3R5bGUoKSB7XG4gICAgY29uc3QgZmxleCA9IHRoaXMuX3Zpc0l0ZW1zICE9IDAgPyAoMTAwIC8gdGhpcy5fdmlzSXRlbXMpICsgJyUnIDogJ2F1dG8nO1xuXG4gICAgdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0uc2V0RmxleChmbGV4KSk7XG4gICAgdGhpcy5jYWxjTWF4RHJhZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBjYXJvdXNlbFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc2V0KCkge1xuICAgIHRoaXMubGFzdFggICAgPSAwO1xuICAgIHRoaXMubWF4RHJhZyAgPSBmYWxzZTtcbiAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucmVzZXQoKSk7XG4gICAgdGhpcy5tb3ZlU3RyaXAoMCkuZGVsRHJhZ2dpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIHRoZSBmaWxtIHN0cmlwIHdpdGggY3NzIHRyYW5zZm9ybVxuICAgKiBAcGFyYW0gcG9zXG4gICAqL1xuICBwcm90ZWN0ZWQgbW92ZVN0cmlwKHBvczogbnVtYmVyKSB7XG4gICAgdGhpcy5yZW5kLnNldFN0eWxlKHRoaXMuZmlsbXN0cmlwLm5hdGl2ZUVsZW1lbnQsICd0cmFuc2Zvcm0nLCBwb3MgPyAndHJhbnNsYXRlWCgnICsgcG9zICsgJ3B4KScgOiAnJyk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldERyYWdnaW5nKCkge1xuICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5yZW5kLmFkZENsYXNzKHRoaXMuZmlsbXN0cmlwLm5hdGl2ZUVsZW1lbnQsICdkcmFnZ2luZycpO1xuICAgIHRoaXMucmVuZC5hZGRDbGFzcyh0aGlzLmNhcm91c2VsLm5hdGl2ZUVsZW1lbnQsICdkcmFnZ2luZycpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCBkZWxEcmFnZ2luZygpIHtcbiAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG5cbiAgICB0aGlzLnJlbmQucmVtb3ZlQ2xhc3ModGhpcy5maWxtc3RyaXAubmF0aXZlRWxlbWVudCwgJ2RyYWdnaW5nJyk7XG4gICAgdGhpcy5yZW5kLnJlbW92ZUNsYXNzKHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudCwgJ2RyYWdnaW5nJyk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldFZpc2libGUoKSB7XG4gICAgaWYgKHRoaXMubGFzdEJyLnNtKSB7XG4gICAgICB0aGlzLl92aXNJdGVtcyA9IHRoaXMuX3Zpc0NvbmYuc20gIT09IHVuZGVmaW5lZCA/IHRoaXMuX3Zpc0NvbmYuc20gOiAodGhpcy5fdmlzQ29uZi5hbGwgfHwgMCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxhc3RCci5tZCkge1xuICAgICAgdGhpcy5fdmlzSXRlbXMgPSB0aGlzLl92aXNDb25mLm1kICE9PSB1bmRlZmluZWQgPyB0aGlzLl92aXNDb25mLm1kIDogKHRoaXMuX3Zpc0NvbmYuYWxsIHx8IDApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sYXN0QnIubGcpIHtcbiAgICAgIHRoaXMuX3Zpc0l0ZW1zID0gdGhpcy5fdmlzQ29uZi5sZyAhPT0gdW5kZWZpbmVkID8gdGhpcy5fdmlzQ29uZi5sZyA6ICh0aGlzLl92aXNDb25mLmFsbCB8fCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmlzSXRlbXMgPSB0aGlzLl92aXNDb25mLmFsbCB8fCAwO1xuICAgIH1cbiAgfVxufSIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0Nhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9uZy1jYXJvdXNlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDYXJvdXNlbEl0ZW1EaXJlY3RpdmUgfSBmcm9tIFwiLi9uZy1jYXJvdXNlbC1pdGVtLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTGF5b3V0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9sYXlvdXRcIjtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0cyAgICAgIDogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBMYXlvdXRNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zIDogWyBOZ0Nhcm91c2VsQ29tcG9uZW50LCBOZ0Nhcm91c2VsSXRlbURpcmVjdGl2ZSBdLFxuICBleHBvcnRzICAgICAgOiBbIE5nQ2Fyb3VzZWxDb21wb25lbnQsIE5nQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIF1cbn0pXG5leHBvcnQgY2xhc3MgTmdDYXJvdXNlbE1vZHVsZSB7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7OztJQVdFLFlBQXNCLEVBQWMsRUFBWSxJQUFlO1FBQXpDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBWSxTQUFJLEdBQUosSUFBSSxDQUFXOzBCQUYvQixLQUFLO0tBRStCOzs7OztJQUtwRSxJQUFJLEtBQUs7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDcEI7Ozs7OztJQU1ELE9BQU8sQ0FBQyxPQUFPO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7S0FDbEI7Ozs7OztJQU1ELElBQUksT0FBTyxDQUFDLFNBQWtCO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBRTVCLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMs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 |
@@ -0,0 +0,0 @@ import { ElementRef, Renderer2 } from '@angular/core'; |
@@ -0,0 +0,0 @@ import { AfterViewInit, ElementRef, NgZone, OnDestroy, QueryList, Renderer2 } from '@angular/core'; |
export declare class NgCarouselModule { | ||
} |
{ | ||
"name": "@silmar/ng-carousel", | ||
"version": "1.4.13", | ||
"version": "1.4.14", | ||
"license": "WTFPL", | ||
@@ -5,0 +5,0 @@ "repository": { |
export * from './lib/ng-carousel.component'; | ||
export * from './lib/ng-carousel-item.directive'; | ||
export * from './lib/ng-carousel.module'; |
@@ -0,0 +0,0 @@ # @silmar/ng-lazy-images |
@@ -0,0 +0,0 @@ /** |
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 too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
0
493628