diff --git a/lib/base/IRenderableOwner.js b/lib/base/IRenderableOwner.js index 686334bc9..4572b3919 100755 --- a/lib/base/IRenderableOwner.js +++ b/lib/base/IRenderableOwner.js @@ -1,3 +1,3 @@ -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL2lyZW5kZXJhYmxlb3duZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUQwQiIsImZpbGUiOiJiYXNlL0lSZW5kZXJhYmxlT3duZXIuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFVWVHJhbnNmb3JtXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9VVlRyYW5zZm9ybVwiKTtcbmltcG9ydCBJQXNzZXRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2xpYnJhcnkvSUFzc2V0XCIpO1xuXG5pbXBvcnQgSUFuaW1hdG9yXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYW5pbWF0b3JzL0lBbmltYXRvclwiKTtcbmltcG9ydCBNYXRlcmlhbEJhc2VcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9tYXRlcmlhbHMvTWF0ZXJpYWxCYXNlXCIpO1xuaW1wb3J0IElSZW5kZXJhYmxlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcG9vbC9JUmVuZGVyYWJsZVwiKTtcbmltcG9ydCBJUmVuZGVyZXJcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9yZW5kZXIvSVJlbmRlcmVyXCIpO1xuXG5cbi8qKlxuICogSVJlbmRlcmFibGVPd25lciBwcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIG9iamVjdHMgdGhhdCBjYW4gdXNlIG1hdGVyaWFscy5cbiAqXG4gKiBAaW50ZXJmYWNlIGF3YXkuYmFzZS5JUmVuZGVyYWJsZU93bmVyXG4gKi9cbmludGVyZmFjZSBJUmVuZGVyYWJsZU93bmVyIGV4dGVuZHMgSUFzc2V0XG57XG5cdC8qKlxuXHQgKiBUaGUgYW5pbWF0aW9uIHVzZWQgYnkgdGhlIG1hdGVyaWFsIG93bmVyIHRvIGFzc2VtYmxlIHRoZSB2ZXJ0ZXggY29kZS5cblx0ICovXG5cdGFuaW1hdG9yOklBbmltYXRvcjtcblxuXHQvKipcblx0ICpcblx0ICovXG5cdHV2VHJhbnNmb3JtOlVWVHJhbnNmb3JtO1xuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gcmVuZGVyYWJsZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2lBZGRSZW5kZXJhYmxlKHJlbmRlcmFibGU6SVJlbmRlcmFibGUpOklSZW5kZXJhYmxlO1xuXG5cblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSByZW5kZXJhYmxlXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfaVJlbW92ZVJlbmRlcmFibGUocmVuZGVyYWJsZTpJUmVuZGVyYWJsZSk6SVJlbmRlcmFibGU7XG5cblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSByZW5kZXJlclxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2lDb2xsZWN0UmVuZGVyYWJsZShyZW5kZXJlcjpJUmVuZGVyZXIpXG59XG5cbmV4cG9ydCA9IElSZW5kZXJhYmxlT3duZXI7Il19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL2lyZW5kZXJhYmxlb3duZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUQwQiIsImZpbGUiOiJiYXNlL0lSZW5kZXJhYmxlT3duZXIuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFVWVHJhbnNmb3JtXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9VVlRyYW5zZm9ybVwiKTtcbmltcG9ydCBJQXNzZXRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2xpYnJhcnkvSUFzc2V0XCIpO1xuXG5pbXBvcnQgSUFuaW1hdG9yXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYW5pbWF0b3JzL0lBbmltYXRvclwiKTtcbmltcG9ydCBNYXRlcmlhbEJhc2VcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9tYXRlcmlhbHMvTWF0ZXJpYWxCYXNlXCIpO1xuaW1wb3J0IElSZW5kZXJhYmxlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcG9vbC9JUmVuZGVyYWJsZVwiKTtcbmltcG9ydCBJUmVuZGVyZXJQb29sXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3Bvb2wvSVJlbmRlcmVyUG9vbFwiKTtcblxuXG4vKipcbiAqIElSZW5kZXJhYmxlT3duZXIgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBvYmplY3RzIHRoYXQgY2FuIHVzZSBtYXRlcmlhbHMuXG4gKlxuICogQGludGVyZmFjZSBhd2F5LmJhc2UuSVJlbmRlcmFibGVPd25lclxuICovXG5pbnRlcmZhY2UgSVJlbmRlcmFibGVPd25lciBleHRlbmRzIElBc3NldFxue1xuXHQvKipcblx0ICogVGhlIGFuaW1hdGlvbiB1c2VkIGJ5IHRoZSBtYXRlcmlhbCBvd25lciB0byBhc3NlbWJsZSB0aGUgdmVydGV4IGNvZGUuXG5cdCAqL1xuXHRhbmltYXRvcjpJQW5pbWF0b3I7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHR1dlRyYW5zZm9ybTpVVlRyYW5zZm9ybTtcblxuXHQvKipcblx0ICpcblx0ICogQHBhcmFtIHJlbmRlcmFibGVcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9pQWRkUmVuZGVyYWJsZShyZW5kZXJhYmxlOklSZW5kZXJhYmxlKTpJUmVuZGVyYWJsZTtcblxuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gcmVuZGVyYWJsZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2lSZW1vdmVSZW5kZXJhYmxlKHJlbmRlcmFibGU6SVJlbmRlcmFibGUpOklSZW5kZXJhYmxlO1xuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gcmVuZGVyZXJcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9pQ29sbGVjdFJlbmRlcmFibGUocmVuZGVyZXJQb29sOklSZW5kZXJlclBvb2wpXG59XG5cbmV4cG9ydCA9IElSZW5kZXJhYmxlT3duZXI7Il19 \ No newline at end of file diff --git a/lib/base/IRenderableOwner.ts b/lib/base/IRenderableOwner.ts index 10bf757e6..b22851705 100644 --- a/lib/base/IRenderableOwner.ts +++ b/lib/base/IRenderableOwner.ts @@ -4,7 +4,7 @@ import IAsset = require("awayjs-core/lib/library/IAsset"); import IAnimator = require("awayjs-display/lib/animators/IAnimator"); import MaterialBase = require("awayjs-display/lib/materials/MaterialBase"); import IRenderable = require("awayjs-display/lib/pool/IRenderable"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); /** @@ -44,7 +44,7 @@ interface IRenderableOwner extends IAsset * @param renderer * @private */ - _iCollectRenderable(renderer:IRenderer) + _iCollectRenderable(rendererPool:IRendererPool) } export = IRenderableOwner; \ No newline at end of file diff --git a/lib/base/LineSubMesh.js b/lib/base/LineSubMesh.js index e2526b76f..1fddba21b 100755 --- a/lib/base/LineSubMesh.js +++ b/lib/base/LineSubMesh.js @@ -57,11 +57,11 @@ var LineSubMesh = (function (_super) { this.material = null; _super.prototype.dispose.call(this); }; - LineSubMesh.prototype._iCollectRenderable = function (renderer) { - renderer.applyLineSubMesh(this); + LineSubMesh.prototype._iCollectRenderable = function (rendererPool) { + rendererPool.applyLineSubMesh(this); }; return LineSubMesh; })(SubMeshBase); module.exports = LineSubMesh; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL2xpbmVzdWJtZXNoLnRzIl0sIm5hbWVzIjpbIkxpbmVTdWJNZXNoIiwiTGluZVN1Yk1lc2guY29uc3RydWN0b3IiLCJMaW5lU3ViTWVzaC5hc3NldFR5cGUiLCJMaW5lU3ViTWVzaC5zdWJHZW9tZXRyeSIsIkxpbmVTdWJNZXNoLmRpc3Bvc2UiLCJMaW5lU3ViTWVzaC5faUNvbGxlY3RSZW5kZXJhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFPLFNBQVMsV0FBYyxtQ0FBbUMsQ0FBQyxDQUFDO0FBSW5FLElBQU8sV0FBVyxXQUFjLHFDQUFxQyxDQUFDLENBQUM7QUFLdkUsQUFTQTs7Ozs7Ozs7R0FERztJQUNHLFdBQVc7SUFBU0EsVUFBcEJBLFdBQVdBLFVBQW9CQTtJQW9CcENBOzs7OztPQUtHQTtJQUNIQSxTQTFCS0EsV0FBV0EsQ0EwQkpBLFdBQTJCQSxFQUFFQSxVQUFlQSxFQUFFQSxRQUE0QkE7UUFBNUJDLHdCQUE0QkEsR0FBNUJBLGVBQTRCQTtRQUVyRkEsaUJBQU9BLENBQUNBO1FBRVJBLElBQUlBLENBQUNBLFlBQVlBLEdBQUdBLFVBQVVBLENBQUNBO1FBQy9CQSxJQUFJQSxDQUFDQSxZQUFZQSxHQUFHQSxXQUFXQSxDQUFDQTtRQUNoQ0EsSUFBSUEsQ0FBQ0EsUUFBUUEsR0FBR0EsUUFBUUEsQ0FBQ0E7SUFDMUJBLENBQUNBO0lBMUJERCxzQkFBV0Esa0NBQVNBO1FBSHBCQTs7V0FFR0E7YUFDSEE7WUFFQ0UsTUFBTUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsYUFBYUEsQ0FBQ0E7UUFDaENBLENBQUNBOzs7T0FBQUY7SUFLREEsc0JBQVdBLG9DQUFXQTtRQUh0QkE7O1dBRUdBO2FBQ0hBO1lBRUNHLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBO1FBQzFCQSxDQUFDQTs7O09BQUFIO0lBaUJEQTs7T0FFR0E7SUFDSUEsNkJBQU9BLEdBQWRBO1FBRUNJLElBQUlBLENBQUNBLFFBQVFBLEdBQUdBLElBQUlBLENBQUNBO1FBRXJCQSxnQkFBS0EsQ0FBQ0EsT0FBT0EsV0FBRUEsQ0FBQ0E7SUFDakJBLENBQUNBO0lBRU1KLHlDQUFtQkEsR0FBMUJBLFVBQTJCQSxRQUFrQkE7UUFFNUNLLFFBQVFBLENBQUNBLGdCQUFnQkEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7SUFDakNBLENBQUNBO0lBQ0ZMLGtCQUFDQTtBQUFEQSxDQWpEQSxBQWlEQ0EsRUFqRHlCLFdBQVcsRUFpRHBDO0FBRUQsQUFBcUIsaUJBQVosV0FBVyxDQUFDIiwiZmlsZSI6ImJhc2UvTGluZVN1Yk1lc2guanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFzc2V0VHlwZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2xpYnJhcnkvQXNzZXRUeXBlXCIpO1xuXG5pbXBvcnQgSVN1Yk1lc2hcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvSVN1Yk1lc2hcIik7XG5pbXBvcnQgTGluZVN1Ykdlb21ldHJ5XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvTGluZVN1Ykdlb21ldHJ5XCIpO1xuaW1wb3J0IFN1Yk1lc2hCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9TdWJNZXNoQmFzZVwiKTtcbmltcG9ydCBJUmVuZGVyZXJcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9yZW5kZXIvSVJlbmRlcmVyXCIpO1xuaW1wb3J0IE1lc2hcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvTWVzaFwiKTtcbmltcG9ydCBNYXRlcmlhbEJhc2VcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9tYXRlcmlhbHMvTWF0ZXJpYWxCYXNlXCIpO1xuXG4vKipcbiAqIExpbmVTdWJNZXNoIHdyYXBzIGEgTGluZVN1Ykdlb21ldHJ5IGFzIGEgc2NlbmUgZ3JhcGggaW5zdGFudGlhdGlvbi4gQSBMaW5lU3ViTWVzaCBpcyBvd25lZCBieSBhIE1lc2ggb2JqZWN0LlxuICpcbiAqXG4gKiBAc2VlIGF3YXkuYmFzZS5MaW5lU3ViR2VvbWV0cnlcbiAqIEBzZWUgYXdheS5lbnRpdGllcy5NZXNoXG4gKlxuICogQGNsYXNzIGF3YXkuYmFzZS5MaW5lU3ViTWVzaFxuICovXG5jbGFzcyBMaW5lU3ViTWVzaCBleHRlbmRzIFN1Yk1lc2hCYXNlIGltcGxlbWVudHMgSVN1Yk1lc2hcbntcblx0cHJpdmF0ZSBfc3ViR2VvbWV0cnk6TGluZVN1Ykdlb21ldHJ5O1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCBhc3NldFR5cGUoKTpzdHJpbmdcblx0e1xuXHRcdHJldHVybiBBc3NldFR5cGUuTElORV9TVUJfTUVTSDtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgTGluZVN1Ykdlb21ldHJ5IG9iamVjdCB3aGljaCBwcm92aWRlcyB0aGUgZ2VvbWV0cnkgZGF0YSBmb3IgdGhpcyBMaW5lU3ViTWVzaC5cblx0ICovXG5cdHB1YmxpYyBnZXQgc3ViR2VvbWV0cnkoKTpMaW5lU3ViR2VvbWV0cnlcblx0e1xuXHRcdHJldHVybiB0aGlzLl9zdWJHZW9tZXRyeTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgbmV3IExpbmVTdWJNZXNoIG9iamVjdFxuXHQgKiBAcGFyYW0gc3ViR2VvbWV0cnkgVGhlIExpbmVTdWJHZW9tZXRyeSBvYmplY3Qgd2hpY2ggcHJvdmlkZXMgdGhlIGdlb21ldHJ5IGRhdGEgZm9yIHRoaXMgTGluZVN1Yk1lc2guXG5cdCAqIEBwYXJhbSBwYXJlbnRNZXNoIFRoZSBNZXNoIG9iamVjdCB0byB3aGljaCB0aGlzIExpbmVTdWJNZXNoIGJlbG9uZ3MuXG5cdCAqIEBwYXJhbSBtYXRlcmlhbCBBbiBvcHRpb25hbCBtYXRlcmlhbCB1c2VkIHRvIHJlbmRlciB0aGlzIExpbmVTdWJNZXNoLlxuXHQgKi9cblx0Y29uc3RydWN0b3Ioc3ViR2VvbWV0cnk6TGluZVN1Ykdlb21ldHJ5LCBwYXJlbnRNZXNoOk1lc2gsIG1hdGVyaWFsOk1hdGVyaWFsQmFzZSA9IG51bGwpXG5cdHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy5fcFBhcmVudE1lc2ggPSBwYXJlbnRNZXNoO1xuXHRcdHRoaXMuX3N1Ykdlb21ldHJ5ID0gc3ViR2VvbWV0cnk7XG5cdFx0dGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZGlzcG9zZSgpXG5cdHtcblx0XHR0aGlzLm1hdGVyaWFsID0gbnVsbDtcblxuXHRcdHN1cGVyLmRpc3Bvc2UoKTtcblx0fVxuXG5cdHB1YmxpYyBfaUNvbGxlY3RSZW5kZXJhYmxlKHJlbmRlcmVyOklSZW5kZXJlcilcblx0e1xuXHRcdHJlbmRlcmVyLmFwcGx5TGluZVN1Yk1lc2godGhpcyk7XG5cdH1cbn1cblxuZXhwb3J0ID0gTGluZVN1Yk1lc2g7Il19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL2xpbmVzdWJtZXNoLnRzIl0sIm5hbWVzIjpbIkxpbmVTdWJNZXNoIiwiTGluZVN1Yk1lc2guY29uc3RydWN0b3IiLCJMaW5lU3ViTWVzaC5hc3NldFR5cGUiLCJMaW5lU3ViTWVzaC5zdWJHZW9tZXRyeSIsIkxpbmVTdWJNZXNoLmRpc3Bvc2UiLCJMaW5lU3ViTWVzaC5faUNvbGxlY3RSZW5kZXJhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFPLFNBQVMsV0FBYyxtQ0FBbUMsQ0FBQyxDQUFDO0FBSW5FLElBQU8sV0FBVyxXQUFjLHFDQUFxQyxDQUFDLENBQUM7QUFLdkUsQUFTQTs7Ozs7Ozs7R0FERztJQUNHLFdBQVc7SUFBU0EsVUFBcEJBLFdBQVdBLFVBQW9CQTtJQW9CcENBOzs7OztPQUtHQTtJQUNIQSxTQTFCS0EsV0FBV0EsQ0EwQkpBLFdBQTJCQSxFQUFFQSxVQUFlQSxFQUFFQSxRQUE0QkE7UUFBNUJDLHdCQUE0QkEsR0FBNUJBLGVBQTRCQTtRQUVyRkEsaUJBQU9BLENBQUNBO1FBRVJBLElBQUlBLENBQUNBLFlBQVlBLEdBQUdBLFVBQVVBLENBQUNBO1FBQy9CQSxJQUFJQSxDQUFDQSxZQUFZQSxHQUFHQSxXQUFXQSxDQUFDQTtRQUNoQ0EsSUFBSUEsQ0FBQ0EsUUFBUUEsR0FBR0EsUUFBUUEsQ0FBQ0E7SUFDMUJBLENBQUNBO0lBMUJERCxzQkFBV0Esa0NBQVNBO1FBSHBCQTs7V0FFR0E7YUFDSEE7WUFFQ0UsTUFBTUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsYUFBYUEsQ0FBQ0E7UUFDaENBLENBQUNBOzs7T0FBQUY7SUFLREEsc0JBQVdBLG9DQUFXQTtRQUh0QkE7O1dBRUdBO2FBQ0hBO1lBRUNHLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBO1FBQzFCQSxDQUFDQTs7O09BQUFIO0lBaUJEQTs7T0FFR0E7SUFDSUEsNkJBQU9BLEdBQWRBO1FBRUNJLElBQUlBLENBQUNBLFFBQVFBLEdBQUdBLElBQUlBLENBQUNBO1FBRXJCQSxnQkFBS0EsQ0FBQ0EsT0FBT0EsV0FBRUEsQ0FBQ0E7SUFDakJBLENBQUNBO0lBRU1KLHlDQUFtQkEsR0FBMUJBLFVBQTJCQSxZQUEwQkE7UUFFcERLLFlBQVlBLENBQUNBLGdCQUFnQkEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7SUFDckNBLENBQUNBO0lBQ0ZMLGtCQUFDQTtBQUFEQSxDQWpEQSxBQWlEQ0EsRUFqRHlCLFdBQVcsRUFpRHBDO0FBRUQsQUFBcUIsaUJBQVosV0FBVyxDQUFDIiwiZmlsZSI6ImJhc2UvTGluZVN1Yk1lc2guanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFzc2V0VHlwZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2xpYnJhcnkvQXNzZXRUeXBlXCIpO1xuXG5pbXBvcnQgSVN1Yk1lc2hcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvSVN1Yk1lc2hcIik7XG5pbXBvcnQgTGluZVN1Ykdlb21ldHJ5XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvTGluZVN1Ykdlb21ldHJ5XCIpO1xuaW1wb3J0IFN1Yk1lc2hCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9TdWJNZXNoQmFzZVwiKTtcbmltcG9ydCBJUmVuZGVyZXJQb29sXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3Bvb2wvSVJlbmRlcmVyUG9vbFwiKTtcbmltcG9ydCBNZXNoXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2VudGl0aWVzL01lc2hcIik7XG5pbXBvcnQgTWF0ZXJpYWxCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvbWF0ZXJpYWxzL01hdGVyaWFsQmFzZVwiKTtcblxuLyoqXG4gKiBMaW5lU3ViTWVzaCB3cmFwcyBhIExpbmVTdWJHZW9tZXRyeSBhcyBhIHNjZW5lIGdyYXBoIGluc3RhbnRpYXRpb24uIEEgTGluZVN1Yk1lc2ggaXMgb3duZWQgYnkgYSBNZXNoIG9iamVjdC5cbiAqXG4gKlxuICogQHNlZSBhd2F5LmJhc2UuTGluZVN1Ykdlb21ldHJ5XG4gKiBAc2VlIGF3YXkuZW50aXRpZXMuTWVzaFxuICpcbiAqIEBjbGFzcyBhd2F5LmJhc2UuTGluZVN1Yk1lc2hcbiAqL1xuY2xhc3MgTGluZVN1Yk1lc2ggZXh0ZW5kcyBTdWJNZXNoQmFzZSBpbXBsZW1lbnRzIElTdWJNZXNoXG57XG5cdHByaXZhdGUgX3N1Ykdlb21ldHJ5OkxpbmVTdWJHZW9tZXRyeTtcblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgYXNzZXRUeXBlKCk6c3RyaW5nXG5cdHtcblx0XHRyZXR1cm4gQXNzZXRUeXBlLkxJTkVfU1VCX01FU0g7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIExpbmVTdWJHZW9tZXRyeSBvYmplY3Qgd2hpY2ggcHJvdmlkZXMgdGhlIGdlb21ldHJ5IGRhdGEgZm9yIHRoaXMgTGluZVN1Yk1lc2guXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHN1Ykdlb21ldHJ5KCk6TGluZVN1Ykdlb21ldHJ5XG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fc3ViR2VvbWV0cnk7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG5ldyBMaW5lU3ViTWVzaCBvYmplY3Rcblx0ICogQHBhcmFtIHN1Ykdlb21ldHJ5IFRoZSBMaW5lU3ViR2VvbWV0cnkgb2JqZWN0IHdoaWNoIHByb3ZpZGVzIHRoZSBnZW9tZXRyeSBkYXRhIGZvciB0aGlzIExpbmVTdWJNZXNoLlxuXHQgKiBAcGFyYW0gcGFyZW50TWVzaCBUaGUgTWVzaCBvYmplY3QgdG8gd2hpY2ggdGhpcyBMaW5lU3ViTWVzaCBiZWxvbmdzLlxuXHQgKiBAcGFyYW0gbWF0ZXJpYWwgQW4gb3B0aW9uYWwgbWF0ZXJpYWwgdXNlZCB0byByZW5kZXIgdGhpcyBMaW5lU3ViTWVzaC5cblx0ICovXG5cdGNvbnN0cnVjdG9yKHN1Ykdlb21ldHJ5OkxpbmVTdWJHZW9tZXRyeSwgcGFyZW50TWVzaDpNZXNoLCBtYXRlcmlhbDpNYXRlcmlhbEJhc2UgPSBudWxsKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuX3BQYXJlbnRNZXNoID0gcGFyZW50TWVzaDtcblx0XHR0aGlzLl9zdWJHZW9tZXRyeSA9IHN1Ykdlb21ldHJ5O1xuXHRcdHRoaXMubWF0ZXJpYWwgPSBtYXRlcmlhbDtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGRpc3Bvc2UoKVxuXHR7XG5cdFx0dGhpcy5tYXRlcmlhbCA9IG51bGw7XG5cblx0XHRzdXBlci5kaXNwb3NlKCk7XG5cdH1cblxuXHRwdWJsaWMgX2lDb2xsZWN0UmVuZGVyYWJsZShyZW5kZXJlclBvb2w6SVJlbmRlcmVyUG9vbClcblx0e1xuXHRcdHJlbmRlcmVyUG9vbC5hcHBseUxpbmVTdWJNZXNoKHRoaXMpO1xuXHR9XG59XG5cbmV4cG9ydCA9IExpbmVTdWJNZXNoOyJdfQ== \ No newline at end of file diff --git a/lib/base/LineSubMesh.ts b/lib/base/LineSubMesh.ts index db2b6ca5f..46d84ca04 100644 --- a/lib/base/LineSubMesh.ts +++ b/lib/base/LineSubMesh.ts @@ -3,7 +3,7 @@ import AssetType = require("awayjs-core/lib/library/AssetType"); import ISubMesh = require("awayjs-display/lib/base/ISubMesh"); import LineSubGeometry = require("awayjs-display/lib/base/LineSubGeometry"); import SubMeshBase = require("awayjs-display/lib/base/SubMeshBase"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); import Mesh = require("awayjs-display/lib/entities/Mesh"); import MaterialBase = require("awayjs-display/lib/materials/MaterialBase"); @@ -61,9 +61,9 @@ class LineSubMesh extends SubMeshBase implements ISubMesh super.dispose(); } - public _iCollectRenderable(renderer:IRenderer) + public _iCollectRenderable(rendererPool:IRendererPool) { - renderer.applyLineSubMesh(this); + rendererPool.applyLineSubMesh(this); } } diff --git a/lib/base/SubMeshBase.js b/lib/base/SubMeshBase.js index 0791910a7..3b87d923f 100755 --- a/lib/base/SubMeshBase.js +++ b/lib/base/SubMeshBase.js @@ -123,7 +123,7 @@ var SubMeshBase = (function (_super) { for (var i = 0; i < len; i++) this._renderables[i].invalidateGeometry(); }; - SubMeshBase.prototype._iCollectRenderable = function (renderer) { + SubMeshBase.prototype._iCollectRenderable = function (rendererPool) { throw new AbstractMethodError(); }; SubMeshBase.prototype._iGetExplicitMaterial = function () { @@ -133,4 +133,4 @@ var SubMeshBase = (function (_super) { })(NamedAssetBase); module.exports = SubMeshBase; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL3N1Ym1lc2hiYXNlLnRzIl0sIm5hbWVzIjpbIlN1Yk1lc2hCYXNlIiwiU3ViTWVzaEJhc2UuY29uc3RydWN0b3IiLCJTdWJNZXNoQmFzZS5hbmltYXRvciIsIlN1Yk1lc2hCYXNlLm1hdGVyaWFsIiwiU3ViTWVzaEJhc2Uuc2NlbmVUcmFuc2Zvcm0iLCJTdWJNZXNoQmFzZS5wYXJlbnRNZXNoIiwiU3ViTWVzaEJhc2UudXZUcmFuc2Zvcm0iLCJTdWJNZXNoQmFzZS5kaXNwb3NlIiwiU3ViTWVzaEJhc2UuZ2V0UmVuZGVyU2NlbmVUcmFuc2Zvcm0iLCJTdWJNZXNoQmFzZS5faUFkZFJlbmRlcmFibGUiLCJTdWJNZXNoQmFzZS5faVJlbW92ZVJlbmRlcmFibGUiLCJTdWJNZXNoQmFzZS5faUludmFsaWRhdGVSZW5kZXJhYmxlR2VvbWV0cnkiLCJTdWJNZXNoQmFzZS5faUNvbGxlY3RSZW5kZXJhYmxlIiwiU3ViTWVzaEJhc2UuX2lHZXRFeHBsaWNpdE1hdGVyaWFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFPLG1CQUFtQixXQUFZLDRDQUE0QyxDQUFDLENBQUM7QUFHcEYsSUFBTyxjQUFjLFdBQWEsd0NBQXdDLENBQUMsQ0FBQztBQVM1RSxBQVNBOzs7Ozs7OztHQURHO0lBQ0csV0FBVztJQUFTQSxVQUFwQkEsV0FBV0EsVUFBdUJBO0lBeUV2Q0E7O09BRUdBO0lBQ0hBLFNBNUVLQSxXQUFXQTtRQThFZkMsaUJBQU9BLENBQUNBO1FBekVGQSxZQUFPQSxHQUFVQSxDQUFDQSxDQUFDQTtRQUdsQkEsaUJBQVlBLEdBQXNCQSxJQUFJQSxLQUFLQSxFQUFlQSxDQUFDQTtJQXVFbkVBLENBQUNBO0lBM0RERCxzQkFBV0EsaUNBQVFBO1FBVm5CQSwwQkFBMEJBO1FBQzNCQSw2Q0FBNkNBO1FBQzdDQSxLQUFLQTtRQUNMQSxFQUFFQTtRQUNGQSxtREFBbURBO1FBQ25EQSxLQUFLQTtRQUVKQTs7V0FFR0E7YUFDSEE7WUFFQ0UsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsUUFBUUEsQ0FBQ0E7UUFDbkNBLENBQUNBOzs7T0FBQUY7SUFLREEsc0JBQVdBLGlDQUFRQTtRQUhuQkE7O1dBRUdBO2FBQ0hBO1lBRUNHLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLElBQUlBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBLFFBQVFBLENBQUNBO1FBQ3JEQSxDQUFDQTthQUVESCxVQUFvQkEsS0FBa0JBO1lBRXJDRyxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQTtnQkFDakJBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBLFlBQVlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBRWxDQSxJQUFJQSxDQUFDQSxTQUFTQSxHQUFHQSxLQUFLQSxDQUFDQTtZQUV2QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsUUFBUUEsQ0FBQ0E7Z0JBQ2pCQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQSxTQUFTQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUNoQ0EsQ0FBQ0E7OztPQVhBSDtJQWdCREEsc0JBQVdBLHVDQUFjQTtRQUh6QkE7O1dBRUdBO2FBQ0hBO1lBRUNJLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBLGNBQWNBLENBQUNBO1FBQ3pDQSxDQUFDQTs7O09BQUFKO0lBS0RBLHNCQUFXQSxtQ0FBVUE7UUFIckJBOztXQUVHQTthQUNIQTtZQUVDSyxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxZQUFZQSxDQUFDQTtRQUMxQkEsQ0FBQ0E7OztPQUFBTDtJQUtEQSxzQkFBV0Esb0NBQVdBO1FBSHRCQTs7V0FFR0E7YUFDSEE7WUFFQ00sTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsWUFBWUEsSUFBSUEsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsV0FBV0EsQ0FBQ0E7UUFDM0RBLENBQUNBO2FBRUROLFVBQXVCQSxLQUFpQkE7WUFFdkNNLElBQUlBLENBQUNBLFlBQVlBLEdBQUdBLEtBQUtBLENBQUNBO1FBQzNCQSxDQUFDQTs7O09BTEFOO0lBZURBOztPQUVHQTtJQUNJQSw2QkFBT0EsR0FBZEE7UUFFQ08sSUFBSUEsQ0FBQ0EsUUFBUUEsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFFckJBLElBQUlBLEdBQUdBLEdBQVVBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBLE1BQU1BLENBQUNBO1FBQzFDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFVQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxHQUFHQSxFQUFFQSxDQUFDQSxFQUFFQTtZQUNsQ0EsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsT0FBT0EsRUFBRUEsQ0FBQ0E7UUFFaENBLElBQUlBLENBQUNBLFlBQVlBLEdBQUdBLElBQUlBLEtBQUtBLEVBQWVBLENBQUNBO0lBQzlDQSxDQUFDQTtJQUVEUDs7OztPQUlHQTtJQUNJQSw2Q0FBdUJBLEdBQTlCQSxVQUErQkEsTUFBYUE7UUFFM0NRLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBLHVCQUF1QkEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7SUFDMURBLENBQUNBO0lBRU1SLHFDQUFlQSxHQUF0QkEsVUFBdUJBLFVBQXNCQTtRQUU1Q1MsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsQ0FBQ0E7UUFFbkNBLE1BQU1BLENBQUNBLFVBQVVBLENBQUNBO0lBQ25CQSxDQUFDQTtJQUdNVCx3Q0FBa0JBLEdBQXpCQSxVQUEwQkEsVUFBc0JBO1FBRS9DVSxJQUFJQSxLQUFLQSxHQUFVQSxJQUFJQSxDQUFDQSxZQUFZQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFVQSxDQUFDQSxDQUFDQTtRQUV6REEsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFFbkNBLE1BQU1BLENBQUNBLFVBQVVBLENBQUNBO0lBQ25CQSxDQUFDQTtJQUVNVixvREFBOEJBLEdBQXJDQTtRQUVDVyxJQUFJQSxHQUFHQSxHQUFVQSxJQUFJQSxDQUFDQSxZQUFZQSxDQUFDQSxNQUFNQSxDQUFDQTtRQUMxQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBVUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsR0FBR0EsRUFBRUEsQ0FBQ0EsRUFBRUE7WUFDbENBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLGtCQUFrQkEsRUFBRUEsQ0FBQ0E7SUFDNUNBLENBQUNBO0lBRU1YLHlDQUFtQkEsR0FBMUJBLFVBQTJCQSxRQUFrQkE7UUFFNUNZLE1BQU1BLElBQUlBLG1CQUFtQkEsRUFBRUEsQ0FBQ0E7SUFDakNBLENBQUNBO0lBRU1aLDJDQUFxQkEsR0FBNUJBO1FBRUNhLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBO0lBQ3ZCQSxDQUFDQTtJQUNGYixrQkFBQ0E7QUFBREEsQ0ExSUEsQUEwSUNBLEVBMUl5QixjQUFjLEVBMEl2QztBQUVELEFBQXFCLGlCQUFaLFdBQVcsQ0FBQyIsImZpbGUiOiJiYXNlL1N1Yk1lc2hCYXNlLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBYnN0cmFjdE1ldGhvZEVycm9yXHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9lcnJvcnMvQWJzdHJhY3RNZXRob2RFcnJvclwiKTtcbmltcG9ydCBNYXRyaXgzRFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9NYXRyaXgzRFwiKTtcbmltcG9ydCBVVlRyYW5zZm9ybVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vVVZUcmFuc2Zvcm1cIik7XG5pbXBvcnQgTmFtZWRBc3NldEJhc2VcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvbGlicmFyeS9OYW1lZEFzc2V0QmFzZVwiKTtcblxuaW1wb3J0IElBbmltYXRvclx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2FuaW1hdG9ycy9JQW5pbWF0b3JcIik7XG5pbXBvcnQgSVJlbmRlcmFibGVcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL0lSZW5kZXJhYmxlXCIpO1xuaW1wb3J0IElSZW5kZXJlclx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3JlbmRlci9JUmVuZGVyZXJcIik7XG5pbXBvcnQgQ2FtZXJhXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9DYW1lcmFcIik7XG5pbXBvcnQgTWVzaFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9NZXNoXCIpO1xuaW1wb3J0IE1hdGVyaWFsQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9NYXRlcmlhbEJhc2VcIik7XG5cbi8qKlxuICogU3ViTWVzaEJhc2Ugd3JhcHMgYSBUcmlhbmdsZVN1Ykdlb21ldHJ5IGFzIGEgc2NlbmUgZ3JhcGggaW5zdGFudGlhdGlvbi4gQSBTdWJNZXNoQmFzZSBpcyBvd25lZCBieSBhIE1lc2ggb2JqZWN0LlxuICpcbiAqXG4gKiBAc2VlIGF3YXkuYmFzZS5UcmlhbmdsZVN1Ykdlb21ldHJ5XG4gKiBAc2VlIGF3YXkuZW50aXRpZXMuTWVzaFxuICpcbiAqIEBjbGFzcyBhd2F5LmJhc2UuU3ViTWVzaEJhc2VcbiAqL1xuY2xhc3MgU3ViTWVzaEJhc2UgZXh0ZW5kcyBOYW1lZEFzc2V0QmFzZVxue1xuXHRwdWJsaWMgX3BQYXJlbnRNZXNoOk1lc2g7XG5cdHB1YmxpYyBfdXZUcmFuc2Zvcm06VVZUcmFuc2Zvcm07XG5cblx0cHVibGljIF9pSW5kZXg6bnVtYmVyID0gMDtcblxuXHRwdWJsaWMgX21hdGVyaWFsOk1hdGVyaWFsQmFzZTtcblx0cHJpdmF0ZSBfcmVuZGVyYWJsZXM6QXJyYXk8SVJlbmRlcmFibGU+ID0gbmV3IEFycmF5PElSZW5kZXJhYmxlPigpO1xuXG5cdC8vVE9ETyB0ZXN0IHNoYWRlciBwaWNraW5nXG4vL1x0XHRwdWJsaWMgZ2V0IHNoYWRlclBpY2tpbmdEZXRhaWxzKCk6Ym9vbGVhblxuLy9cdFx0e1xuLy9cbi8vXHRcdFx0cmV0dXJuIHRoaXMuc291cmNlRW50aXR5LnNoYWRlclBpY2tpbmdEZXRhaWxzO1xuLy9cdFx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgYW5pbWF0b3Igb2JqZWN0IHRoYXQgcHJvdmlkZXMgdGhlIHN0YXRlIGZvciB0aGUgVHJpYW5nbGVTdWJNZXNoJ3MgYW5pbWF0aW9uLlxuXHQgKi9cblx0cHVibGljIGdldCBhbmltYXRvcigpOklBbmltYXRvclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BQYXJlbnRNZXNoLmFuaW1hdG9yO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBtYXRlcmlhbCB1c2VkIHRvIHJlbmRlciB0aGUgY3VycmVudCBUcmlhbmdsZVN1Yk1lc2guIElmIHNldCB0byBudWxsLCBpdHMgcGFyZW50IE1lc2gncyBtYXRlcmlhbCB3aWxsIGJlIHVzZWQgaW5zdGVhZC5cblx0ICovXG5cdHB1YmxpYyBnZXQgbWF0ZXJpYWwoKTpNYXRlcmlhbEJhc2Vcblx0e1xuXHRcdHJldHVybiB0aGlzLl9tYXRlcmlhbCB8fCB0aGlzLl9wUGFyZW50TWVzaC5tYXRlcmlhbDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgbWF0ZXJpYWwodmFsdWU6TWF0ZXJpYWxCYXNlKVxuXHR7XG5cdFx0aWYgKHRoaXMubWF0ZXJpYWwpXG5cdFx0XHR0aGlzLm1hdGVyaWFsLmlSZW1vdmVPd25lcih0aGlzKTtcblxuXHRcdHRoaXMuX21hdGVyaWFsID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5tYXRlcmlhbClcblx0XHRcdHRoaXMubWF0ZXJpYWwuaUFkZE93bmVyKHRoaXMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBzY2VuZSB0cmFuc2Zvcm0gb2JqZWN0IHRoYXQgdHJhbnNmb3JtcyBmcm9tIG1vZGVsIHRvIHdvcmxkIHNwYWNlLlxuXHQgKi9cblx0cHVibGljIGdldCBzY2VuZVRyYW5zZm9ybSgpOk1hdHJpeDNEXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcFBhcmVudE1lc2guc2NlbmVUcmFuc2Zvcm07XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGVudGl0eSB0aGF0IHRoYXQgaW5pdGlhbGx5IHByb3ZpZGVkIHRoZSBJUmVuZGVyYWJsZSB0byB0aGUgcmVuZGVyIHBpcGVsaW5lIChpZTogdGhlIG93bmluZyBNZXNoIG9iamVjdCkuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHBhcmVudE1lc2goKTpNZXNoXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcFBhcmVudE1lc2g7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgdXZUcmFuc2Zvcm0oKTpVVlRyYW5zZm9ybVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3V2VHJhbnNmb3JtIHx8IHRoaXMuX3BQYXJlbnRNZXNoLnV2VHJhbnNmb3JtO1xuXHR9XG5cblx0cHVibGljIHNldCB1dlRyYW5zZm9ybSh2YWx1ZTpVVlRyYW5zZm9ybSlcblx0e1xuXHRcdHRoaXMuX3V2VHJhbnNmb3JtID0gdmFsdWU7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG5ldyBTdWJNZXNoQmFzZSBvYmplY3Rcblx0ICovXG5cdGNvbnN0cnVjdG9yKClcblx0e1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBkaXNwb3NlKClcblx0e1xuXHRcdHRoaXMubWF0ZXJpYWwgPSBudWxsO1xuXG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9yZW5kZXJhYmxlcy5sZW5ndGg7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9yZW5kZXJhYmxlc1tpXS5kaXNwb3NlKCk7XG5cblx0XHR0aGlzLl9yZW5kZXJhYmxlcyA9IG5ldyBBcnJheTxJUmVuZGVyYWJsZT4oKTtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gY2FtZXJhXG5cdCAqIEByZXR1cm5zIHthd2F5Lmdlb20uTWF0cml4M0R9XG5cdCAqL1xuXHRwdWJsaWMgZ2V0UmVuZGVyU2NlbmVUcmFuc2Zvcm0oY2FtZXJhOkNhbWVyYSk6TWF0cml4M0Rcblx0e1xuXHRcdHJldHVybiB0aGlzLl9wUGFyZW50TWVzaC5nZXRSZW5kZXJTY2VuZVRyYW5zZm9ybShjYW1lcmEpO1xuXHR9XG5cblx0cHVibGljIF9pQWRkUmVuZGVyYWJsZShyZW5kZXJhYmxlOklSZW5kZXJhYmxlKTpJUmVuZGVyYWJsZVxuXHR7XG5cdFx0dGhpcy5fcmVuZGVyYWJsZXMucHVzaChyZW5kZXJhYmxlKTtcblxuXHRcdHJldHVybiByZW5kZXJhYmxlO1xuXHR9XG5cblxuXHRwdWJsaWMgX2lSZW1vdmVSZW5kZXJhYmxlKHJlbmRlcmFibGU6SVJlbmRlcmFibGUpOklSZW5kZXJhYmxlXG5cdHtcblx0XHR2YXIgaW5kZXg6bnVtYmVyID0gdGhpcy5fcmVuZGVyYWJsZXMuaW5kZXhPZihyZW5kZXJhYmxlKTtcblxuXHRcdHRoaXMuX3JlbmRlcmFibGVzLnNwbGljZShpbmRleCwgMSk7XG5cblx0XHRyZXR1cm4gcmVuZGVyYWJsZTtcblx0fVxuXG5cdHB1YmxpYyBfaUludmFsaWRhdGVSZW5kZXJhYmxlR2VvbWV0cnkoKVxuXHR7XG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9yZW5kZXJhYmxlcy5sZW5ndGg7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9yZW5kZXJhYmxlc1tpXS5pbnZhbGlkYXRlR2VvbWV0cnkoKTtcblx0fVxuXG5cdHB1YmxpYyBfaUNvbGxlY3RSZW5kZXJhYmxlKHJlbmRlcmVyOklSZW5kZXJlcilcblx0e1xuXHRcdHRocm93IG5ldyBBYnN0cmFjdE1ldGhvZEVycm9yKCk7XG5cdH1cblxuXHRwdWJsaWMgX2lHZXRFeHBsaWNpdE1hdGVyaWFsKCk6TWF0ZXJpYWxCYXNlXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fbWF0ZXJpYWw7XG5cdH1cbn1cblxuZXhwb3J0ID0gU3ViTWVzaEJhc2U7Il19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL3N1Ym1lc2hiYXNlLnRzIl0sIm5hbWVzIjpbIlN1Yk1lc2hCYXNlIiwiU3ViTWVzaEJhc2UuY29uc3RydWN0b3IiLCJTdWJNZXNoQmFzZS5hbmltYXRvciIsIlN1Yk1lc2hCYXNlLm1hdGVyaWFsIiwiU3ViTWVzaEJhc2Uuc2NlbmVUcmFuc2Zvcm0iLCJTdWJNZXNoQmFzZS5wYXJlbnRNZXNoIiwiU3ViTWVzaEJhc2UudXZUcmFuc2Zvcm0iLCJTdWJNZXNoQmFzZS5kaXNwb3NlIiwiU3ViTWVzaEJhc2UuZ2V0UmVuZGVyU2NlbmVUcmFuc2Zvcm0iLCJTdWJNZXNoQmFzZS5faUFkZFJlbmRlcmFibGUiLCJTdWJNZXNoQmFzZS5faVJlbW92ZVJlbmRlcmFibGUiLCJTdWJNZXNoQmFzZS5faUludmFsaWRhdGVSZW5kZXJhYmxlR2VvbWV0cnkiLCJTdWJNZXNoQmFzZS5faUNvbGxlY3RSZW5kZXJhYmxlIiwiU3ViTWVzaEJhc2UuX2lHZXRFeHBsaWNpdE1hdGVyaWFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFPLG1CQUFtQixXQUFhLDRDQUE0QyxDQUFDLENBQUM7QUFHckYsSUFBTyxjQUFjLFdBQWMsd0NBQXdDLENBQUMsQ0FBQztBQVM3RSxBQVNBOzs7Ozs7OztHQURHO0lBQ0csV0FBVztJQUFTQSxVQUFwQkEsV0FBV0EsVUFBdUJBO0lBeUV2Q0E7O09BRUdBO0lBQ0hBLFNBNUVLQSxXQUFXQTtRQThFZkMsaUJBQU9BLENBQUNBO1FBekVGQSxZQUFPQSxHQUFVQSxDQUFDQSxDQUFDQTtRQUdsQkEsaUJBQVlBLEdBQXNCQSxJQUFJQSxLQUFLQSxFQUFlQSxDQUFDQTtJQXVFbkVBLENBQUNBO0lBM0RERCxzQkFBV0EsaUNBQVFBO1FBVm5CQSwwQkFBMEJBO1FBQzNCQSw2Q0FBNkNBO1FBQzdDQSxLQUFLQTtRQUNMQSxFQUFFQTtRQUNGQSxtREFBbURBO1FBQ25EQSxLQUFLQTtRQUVKQTs7V0FFR0E7YUFDSEE7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LENBQUNBO0lBQ25CQSxDQUFDQTtJQUVNVixvREFBOEJBLEdBQXJDQTtRQUVDVyxJQUFJQSxHQUFHQSxHQUFVQSxJQUFJQSxDQUFDQSxZQUFZQSxDQUFDQSxNQUFNQSxDQUFDQTtRQUMxQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBVUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsR0FBR0EsRUFBRUEsQ0FBQ0EsRUFBRUE7WUFDbENBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLGtCQUFrQkEsRUFBRUEsQ0FBQ0E7SUFDNUNBLENBQUNBO0lBRU1YLHlDQUFtQkEsR0FBMUJBLFVBQTJCQSxZQUEwQkE7UUFFcERZLE1BQU1BLElBQUlBLG1CQUFtQkEsRUFBRUEsQ0FBQ0E7SUFDakNBLENBQUNBO0lBRU1aLDJDQUFxQkEsR0FBNUJBO1FBRUNhLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBO0lBQ3ZCQSxDQUFDQTtJQUNGYixrQkFBQ0E7QUFBREEsQ0ExSUEsQUEwSUNBLEVBMUl5QixjQUFjLEVBMEl2QztBQUVELEFBQXFCLGlCQUFaLFdBQVcsQ0FBQyIsImZpbGUiOiJiYXNlL1N1Yk1lc2hCYXNlLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBYnN0cmFjdE1ldGhvZEVycm9yXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2Vycm9ycy9BYnN0cmFjdE1ldGhvZEVycm9yXCIpO1xuaW1wb3J0IE1hdHJpeDNEXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vTWF0cml4M0RcIik7XG5pbXBvcnQgVVZUcmFuc2Zvcm1cdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vVVZUcmFuc2Zvcm1cIik7XG5pbXBvcnQgTmFtZWRBc3NldEJhc2VcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9saWJyYXJ5L05hbWVkQXNzZXRCYXNlXCIpO1xuXG5pbXBvcnQgSUFuaW1hdG9yXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9hbmltYXRvcnMvSUFuaW1hdG9yXCIpO1xuaW1wb3J0IElSZW5kZXJhYmxlXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL0lSZW5kZXJhYmxlXCIpO1xuaW1wb3J0IElSZW5kZXJlclBvb2xcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL0lSZW5kZXJlclBvb2xcIik7XG5pbXBvcnQgQ2FtZXJhXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2VudGl0aWVzL0NhbWVyYVwiKTtcbmltcG9ydCBNZXNoXHRcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvTWVzaFwiKTtcbmltcG9ydCBNYXRlcmlhbEJhc2VcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9NYXRlcmlhbEJhc2VcIik7XG5cbi8qKlxuICogU3ViTWVzaEJhc2Ugd3JhcHMgYSBUcmlhbmdsZVN1Ykdlb21ldHJ5IGFzIGEgc2NlbmUgZ3JhcGggaW5zdGFudGlhdGlvbi4gQSBTdWJNZXNoQmFzZSBpcyBvd25lZCBieSBhIE1lc2ggb2JqZWN0LlxuICpcbiAqXG4gKiBAc2VlIGF3YXkuYmFzZS5UcmlhbmdsZVN1Ykdlb21ldHJ5XG4gKiBAc2VlIGF3YXkuZW50aXRpZXMuTWVzaFxuICpcbiAqIEBjbGFzcyBhd2F5LmJhc2UuU3ViTWVzaEJhc2VcbiAqL1xuY2xhc3MgU3ViTWVzaEJhc2UgZXh0ZW5kcyBOYW1lZEFzc2V0QmFzZVxue1xuXHRwdWJsaWMgX3BQYXJlbnRNZXNoOk1lc2g7XG5cdHB1YmxpYyBfdXZUcmFuc2Zvcm06VVZUcmFuc2Zvcm07XG5cblx0cHVibGljIF9pSW5kZXg6bnVtYmVyID0gMDtcblxuXHRwdWJsaWMgX21hdGVyaWFsOk1hdGVyaWFsQmFzZTtcblx0cHJpdmF0ZSBfcmVuZGVyYWJsZXM6QXJyYXk8SVJlbmRlcmFibGU+ID0gbmV3IEFycmF5PElSZW5kZXJhYmxlPigpO1xuXG5cdC8vVE9ETyB0ZXN0IHNoYWRlciBwaWNraW5nXG4vL1x0XHRwdWJsaWMgZ2V0IHNoYWRlclBpY2tpbmdEZXRhaWxzKCk6Ym9vbGVhblxuLy9cdFx0e1xuLy9cbi8vXHRcdFx0cmV0dXJuIHRoaXMuc291cmNlRW50aXR5LnNoYWRlclBpY2tpbmdEZXRhaWxzO1xuLy9cdFx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgYW5pbWF0b3Igb2JqZWN0IHRoYXQgcHJvdmlkZXMgdGhlIHN0YXRlIGZvciB0aGUgVHJpYW5nbGVTdWJNZXNoJ3MgYW5pbWF0aW9uLlxuXHQgKi9cblx0cHVibGljIGdldCBhbmltYXRvcigpOklBbmltYXRvclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BQYXJlbnRNZXNoLmFuaW1hdG9yO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBtYXRlcmlhbCB1c2VkIHRvIHJlbmRlciB0aGUgY3VycmVudCBUcmlhbmdsZVN1Yk1lc2guIElmIHNldCB0byBudWxsLCBpdHMgcGFyZW50IE1lc2gncyBtYXRlcmlhbCB3aWxsIGJlIHVzZWQgaW5zdGVhZC5cblx0ICovXG5cdHB1YmxpYyBnZXQgbWF0ZXJpYWwoKTpNYXRlcmlhbEJhc2Vcblx0e1xuXHRcdHJldHVybiB0aGlzLl9tYXRlcmlhbCB8fCB0aGlzLl9wUGFyZW50TWVzaC5tYXRlcmlhbDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgbWF0ZXJpYWwodmFsdWU6TWF0ZXJpYWxCYXNlKVxuXHR7XG5cdFx0aWYgKHRoaXMubWF0ZXJpYWwpXG5cdFx0XHR0aGlzLm1hdGVyaWFsLmlSZW1vdmVPd25lcih0aGlzKTtcblxuXHRcdHRoaXMuX21hdGVyaWFsID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5tYXRlcmlhbClcblx0XHRcdHRoaXMubWF0ZXJpYWwuaUFkZE93bmVyKHRoaXMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBzY2VuZSB0cmFuc2Zvcm0gb2JqZWN0IHRoYXQgdHJhbnNmb3JtcyBmcm9tIG1vZGVsIHRvIHdvcmxkIHNwYWNlLlxuXHQgKi9cblx0cHVibGljIGdldCBzY2VuZVRyYW5zZm9ybSgpOk1hdHJpeDNEXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcFBhcmVudE1lc2guc2NlbmVUcmFuc2Zvcm07XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGVudGl0eSB0aGF0IHRoYXQgaW5pdGlhbGx5IHByb3ZpZGVkIHRoZSBJUmVuZGVyYWJsZSB0byB0aGUgcmVuZGVyIHBpcGVsaW5lIChpZTogdGhlIG93bmluZyBNZXNoIG9iamVjdCkuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHBhcmVudE1lc2goKTpNZXNoXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcFBhcmVudE1lc2g7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgdXZUcmFuc2Zvcm0oKTpVVlRyYW5zZm9ybVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3V2VHJhbnNmb3JtIHx8IHRoaXMuX3BQYXJlbnRNZXNoLnV2VHJhbnNmb3JtO1xuXHR9XG5cblx0cHVibGljIHNldCB1dlRyYW5zZm9ybSh2YWx1ZTpVVlRyYW5zZm9ybSlcblx0e1xuXHRcdHRoaXMuX3V2VHJhbnNmb3JtID0gdmFsdWU7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG5ldyBTdWJNZXNoQmFzZSBvYmplY3Rcblx0ICovXG5cdGNvbnN0cnVjdG9yKClcblx0e1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBkaXNwb3NlKClcblx0e1xuXHRcdHRoaXMubWF0ZXJpYWwgPSBudWxsO1xuXG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9yZW5kZXJhYmxlcy5sZW5ndGg7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9yZW5kZXJhYmxlc1tpXS5kaXNwb3NlKCk7XG5cblx0XHR0aGlzLl9yZW5kZXJhYmxlcyA9IG5ldyBBcnJheTxJUmVuZGVyYWJsZT4oKTtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gY2FtZXJhXG5cdCAqIEByZXR1cm5zIHthd2F5Lmdlb20uTWF0cml4M0R9XG5cdCAqL1xuXHRwdWJsaWMgZ2V0UmVuZGVyU2NlbmVUcmFuc2Zvcm0oY2FtZXJhOkNhbWVyYSk6TWF0cml4M0Rcblx0e1xuXHRcdHJldHVybiB0aGlzLl9wUGFyZW50TWVzaC5nZXRSZW5kZXJTY2VuZVRyYW5zZm9ybShjYW1lcmEpO1xuXHR9XG5cblx0cHVibGljIF9pQWRkUmVuZGVyYWJsZShyZW5kZXJhYmxlOklSZW5kZXJhYmxlKTpJUmVuZGVyYWJsZVxuXHR7XG5cdFx0dGhpcy5fcmVuZGVyYWJsZXMucHVzaChyZW5kZXJhYmxlKTtcblxuXHRcdHJldHVybiByZW5kZXJhYmxlO1xuXHR9XG5cblxuXHRwdWJsaWMgX2lSZW1vdmVSZW5kZXJhYmxlKHJlbmRlcmFibGU6SVJlbmRlcmFibGUpOklSZW5kZXJhYmxlXG5cdHtcblx0XHR2YXIgaW5kZXg6bnVtYmVyID0gdGhpcy5fcmVuZGVyYWJsZXMuaW5kZXhPZihyZW5kZXJhYmxlKTtcblxuXHRcdHRoaXMuX3JlbmRlcmFibGVzLnNwbGljZShpbmRleCwgMSk7XG5cblx0XHRyZXR1cm4gcmVuZGVyYWJsZTtcblx0fVxuXG5cdHB1YmxpYyBfaUludmFsaWRhdGVSZW5kZXJhYmxlR2VvbWV0cnkoKVxuXHR7XG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9yZW5kZXJhYmxlcy5sZW5ndGg7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9yZW5kZXJhYmxlc1tpXS5pbnZhbGlkYXRlR2VvbWV0cnkoKTtcblx0fVxuXG5cdHB1YmxpYyBfaUNvbGxlY3RSZW5kZXJhYmxlKHJlbmRlcmVyUG9vbDpJUmVuZGVyZXJQb29sKVxuXHR7XG5cdFx0dGhyb3cgbmV3IEFic3RyYWN0TWV0aG9kRXJyb3IoKTtcblx0fVxuXG5cdHB1YmxpYyBfaUdldEV4cGxpY2l0TWF0ZXJpYWwoKTpNYXRlcmlhbEJhc2Vcblx0e1xuXHRcdHJldHVybiB0aGlzLl9tYXRlcmlhbDtcblx0fVxufVxuXG5leHBvcnQgPSBTdWJNZXNoQmFzZTsiXX0= \ No newline at end of file diff --git a/lib/base/SubMeshBase.ts b/lib/base/SubMeshBase.ts index ae7110939..251da880e 100644 --- a/lib/base/SubMeshBase.ts +++ b/lib/base/SubMeshBase.ts @@ -1,14 +1,14 @@ -import AbstractMethodError = require("awayjs-core/lib/errors/AbstractMethodError"); -import Matrix3D = require("awayjs-core/lib/geom/Matrix3D"); -import UVTransform = require("awayjs-core/lib/geom/UVTransform"); -import NamedAssetBase = require("awayjs-core/lib/library/NamedAssetBase"); - -import IAnimator = require("awayjs-display/lib/animators/IAnimator"); -import IRenderable = require("awayjs-display/lib/pool/IRenderable"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); -import Camera = require("awayjs-display/lib/entities/Camera"); -import Mesh = require("awayjs-display/lib/entities/Mesh"); -import MaterialBase = require("awayjs-display/lib/materials/MaterialBase"); +import AbstractMethodError = require("awayjs-core/lib/errors/AbstractMethodError"); +import Matrix3D = require("awayjs-core/lib/geom/Matrix3D"); +import UVTransform = require("awayjs-core/lib/geom/UVTransform"); +import NamedAssetBase = require("awayjs-core/lib/library/NamedAssetBase"); + +import IAnimator = require("awayjs-display/lib/animators/IAnimator"); +import IRenderable = require("awayjs-display/lib/pool/IRenderable"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); +import Camera = require("awayjs-display/lib/entities/Camera"); +import Mesh = require("awayjs-display/lib/entities/Mesh"); +import MaterialBase = require("awayjs-display/lib/materials/MaterialBase"); /** * SubMeshBase wraps a TriangleSubGeometry as a scene graph instantiation. A SubMeshBase is owned by a Mesh object. @@ -148,7 +148,7 @@ class SubMeshBase extends NamedAssetBase this._renderables[i].invalidateGeometry(); } - public _iCollectRenderable(renderer:IRenderer) + public _iCollectRenderable(rendererPool:IRendererPool) { throw new AbstractMethodError(); } diff --git a/lib/base/TriangleSubMesh.js b/lib/base/TriangleSubMesh.js index 095cbe7a2..eaf1eb231 100755 --- a/lib/base/TriangleSubMesh.js +++ b/lib/base/TriangleSubMesh.js @@ -56,11 +56,11 @@ var TriangleSubMesh = (function (_super) { TriangleSubMesh.prototype.dispose = function () { _super.prototype.dispose.call(this); }; - TriangleSubMesh.prototype._iCollectRenderable = function (renderer) { - renderer.applyTriangleSubMesh(this); + TriangleSubMesh.prototype._iCollectRenderable = function (rendererPool) { + rendererPool.applyTriangleSubMesh(this); }; return TriangleSubMesh; })(SubMeshBase); module.exports = TriangleSubMesh; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL3RyaWFuZ2xlc3VibWVzaC50cyJdLCJuYW1lcyI6WyJUcmlhbmdsZVN1Yk1lc2giLCJUcmlhbmdsZVN1Yk1lc2guY29uc3RydWN0b3IiLCJUcmlhbmdsZVN1Yk1lc2guYXNzZXRUeXBlIiwiVHJpYW5nbGVTdWJNZXNoLnN1Ykdlb21ldHJ5IiwiVHJpYW5nbGVTdWJNZXNoLmRpc3Bvc2UiLCJUcmlhbmdsZVN1Yk1lc2guX2lDb2xsZWN0UmVuZGVyYWJsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBTyxTQUFTLFdBQWMsbUNBQW1DLENBQUMsQ0FBQztBQUVuRSxJQUFPLFdBQVcsV0FBYyxxQ0FBcUMsQ0FBQyxDQUFDO0FBT3ZFLEFBU0E7Ozs7Ozs7O0dBREc7SUFDRyxlQUFlO0lBQVNBLFVBQXhCQSxlQUFlQSxVQUFvQkE7SUFvQnhDQTs7Ozs7T0FLR0E7SUFDSEEsU0ExQktBLGVBQWVBLENBMEJSQSxXQUErQkEsRUFBRUEsVUFBZUEsRUFBRUEsUUFBNEJBO1FBQTVCQyx3QkFBNEJBLEdBQTVCQSxlQUE0QkE7UUFFekZBLGlCQUFPQSxDQUFDQTtRQUVSQSxJQUFJQSxDQUFDQSxZQUFZQSxHQUFHQSxVQUFVQSxDQUFDQTtRQUMvQkEsSUFBSUEsQ0FBQ0EsWUFBWUEsR0FBR0EsV0FBV0EsQ0FBQ0E7UUFDaENBLElBQUlBLENBQUNBLFFBQVFBLEdBQUdBLFFBQVFBLENBQUNBO0lBQzFCQSxDQUFDQTtJQTFCREQsc0JBQVdBLHNDQUFTQTtRQUhwQkE7O1dBRUdBO2FBQ0hBO1lBRUNFLE1BQU1BLENBQUNBLFNBQVNBLENBQUNBLGlCQUFpQkEsQ0FBQ0E7UUFDcENBLENBQUNBOzs7T0FBQUY7SUFLREEsc0JBQVdBLHdDQUFXQTtRQUh0QkE7O1dBRUdBO2FBQ0hBO1lBRUNHLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBO1FBQzFCQSxDQUFDQTs7O09BQUFIO0lBaUJEQTs7T0FFR0E7SUFDSUEsaUNBQU9BLEdBQWRBO1FBRUNJLGdCQUFLQSxDQUFDQSxPQUFPQSxXQUFFQSxDQUFDQTtJQUNqQkEsQ0FBQ0E7SUFFTUosNkNBQW1CQSxHQUExQkEsVUFBMkJBLFFBQWtCQTtRQUU1Q0ssUUFBUUEsQ0FBQ0Esb0JBQW9CQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtJQUNyQ0EsQ0FBQ0E7SUFDRkwsc0JBQUNBO0FBQURBLENBL0NBLEFBK0NDQSxFQS9DNkIsV0FBVyxFQStDeEM7QUFFRCxBQUF5QixpQkFBaEIsZUFBZSxDQUFDIiwiZmlsZSI6ImJhc2UvVHJpYW5nbGVTdWJNZXNoLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBc3NldFR5cGVcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9saWJyYXJ5L0Fzc2V0VHlwZVwiKTtcbmltcG9ydCBJU3ViTWVzaFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9JU3ViTWVzaFwiKTtcbmltcG9ydCBTdWJNZXNoQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvU3ViTWVzaEJhc2VcIik7XG5pbXBvcnQgVHJpYW5nbGVTdWJHZW9tZXRyeVx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9UcmlhbmdsZVN1Ykdlb21ldHJ5XCIpO1xuXG5pbXBvcnQgSVJlbmRlcmVyXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcmVuZGVyL0lSZW5kZXJlclwiKTtcbmltcG9ydCBNZXNoXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2VudGl0aWVzL01lc2hcIik7XG5pbXBvcnQgTWF0ZXJpYWxCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvbWF0ZXJpYWxzL01hdGVyaWFsQmFzZVwiKTtcblxuLyoqXG4gKiBUcmlhbmdsZVN1Yk1lc2ggd3JhcHMgYSBUcmlhbmdsZVN1Ykdlb21ldHJ5IGFzIGEgc2NlbmUgZ3JhcGggaW5zdGFudGlhdGlvbi4gQSBUcmlhbmdsZVN1Yk1lc2ggaXMgb3duZWQgYnkgYSBNZXNoIG9iamVjdC5cbiAqXG4gKlxuICogQHNlZSBhd2F5LmJhc2UuVHJpYW5nbGVTdWJHZW9tZXRyeVxuICogQHNlZSBhd2F5LmVudGl0aWVzLk1lc2hcbiAqXG4gKiBAY2xhc3MgYXdheS5iYXNlLlRyaWFuZ2xlU3ViTWVzaFxuICovXG5jbGFzcyBUcmlhbmdsZVN1Yk1lc2ggZXh0ZW5kcyBTdWJNZXNoQmFzZSBpbXBsZW1lbnRzIElTdWJNZXNoXG57XG5cdHByaXZhdGUgX3N1Ykdlb21ldHJ5OlRyaWFuZ2xlU3ViR2VvbWV0cnk7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGFzc2V0VHlwZSgpOnN0cmluZ1xuXHR7XG5cdFx0cmV0dXJuIEFzc2V0VHlwZS5UUklBTkdMRV9TVUJfTUVTSDtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgVHJpYW5nbGVTdWJHZW9tZXRyeSBvYmplY3Qgd2hpY2ggcHJvdmlkZXMgdGhlIGdlb21ldHJ5IGRhdGEgZm9yIHRoaXMgVHJpYW5nbGVTdWJNZXNoLlxuXHQgKi9cblx0cHVibGljIGdldCBzdWJHZW9tZXRyeSgpOlRyaWFuZ2xlU3ViR2VvbWV0cnlcblx0e1xuXHRcdHJldHVybiB0aGlzLl9zdWJHZW9tZXRyeTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgbmV3IFRyaWFuZ2xlU3ViTWVzaCBvYmplY3Rcblx0ICogQHBhcmFtIHN1Ykdlb21ldHJ5IFRoZSBUcmlhbmdsZVN1Ykdlb21ldHJ5IG9iamVjdCB3aGljaCBwcm92aWRlcyB0aGUgZ2VvbWV0cnkgZGF0YSBmb3IgdGhpcyBUcmlhbmdsZVN1Yk1lc2guXG5cdCAqIEBwYXJhbSBwYXJlbnRNZXNoIFRoZSBNZXNoIG9iamVjdCB0byB3aGljaCB0aGlzIFRyaWFuZ2xlU3ViTWVzaCBiZWxvbmdzLlxuXHQgKiBAcGFyYW0gbWF0ZXJpYWwgQW4gb3B0aW9uYWwgbWF0ZXJpYWwgdXNlZCB0byByZW5kZXIgdGhpcyBUcmlhbmdsZVN1Yk1lc2guXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihzdWJHZW9tZXRyeTpUcmlhbmdsZVN1Ykdlb21ldHJ5LCBwYXJlbnRNZXNoOk1lc2gsIG1hdGVyaWFsOk1hdGVyaWFsQmFzZSA9IG51bGwpXG5cdHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy5fcFBhcmVudE1lc2ggPSBwYXJlbnRNZXNoO1xuXHRcdHRoaXMuX3N1Ykdlb21ldHJ5ID0gc3ViR2VvbWV0cnk7XG5cdFx0dGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZGlzcG9zZSgpXG5cdHtcblx0XHRzdXBlci5kaXNwb3NlKCk7XG5cdH1cblxuXHRwdWJsaWMgX2lDb2xsZWN0UmVuZGVyYWJsZShyZW5kZXJlcjpJUmVuZGVyZXIpXG5cdHtcblx0XHRyZW5kZXJlci5hcHBseVRyaWFuZ2xlU3ViTWVzaCh0aGlzKTtcblx0fVxufVxuXG5leHBvcnQgPSBUcmlhbmdsZVN1Yk1lc2g7Il19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL3RyaWFuZ2xlc3VibWVzaC50cyJdLCJuYW1lcyI6WyJUcmlhbmdsZVN1Yk1lc2giLCJUcmlhbmdsZVN1Yk1lc2guY29uc3RydWN0b3IiLCJUcmlhbmdsZVN1Yk1lc2guYXNzZXRUeXBlIiwiVHJpYW5nbGVTdWJNZXNoLnN1Ykdlb21ldHJ5IiwiVHJpYW5nbGVTdWJNZXNoLmRpc3Bvc2UiLCJUcmlhbmdsZVN1Yk1lc2guX2lDb2xsZWN0UmVuZGVyYWJsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBTyxTQUFTLFdBQWMsbUNBQW1DLENBQUMsQ0FBQztBQUVuRSxJQUFPLFdBQVcsV0FBYyxxQ0FBcUMsQ0FBQyxDQUFDO0FBT3ZFLEFBU0E7Ozs7Ozs7O0dBREc7SUFDRyxlQUFlO0lBQVNBLFVBQXhCQSxlQUFlQSxVQUFvQkE7SUFvQnhDQTs7Ozs7T0FLR0E7SUFDSEEsU0ExQktBLGVBQWVBLENBMEJSQSxXQUErQkEsRUFBRUEsVUFBZUEsRUFBRUEsUUFBNEJBO1FBQTVCQyx3QkFBNEJBLEdBQTVCQSxlQUE0QkE7UUFFekZBLGlCQUFPQSxDQUFDQTtRQUVSQSxJQUFJQSxDQUFDQSxZQUFZQSxHQUFHQSxVQUFVQSxDQUFDQTtRQUMvQkEsSUFBSUEsQ0FBQ0EsWUFBWUEsR0FBR0EsV0FBV0EsQ0FBQ0E7UUFDaENBLElBQUlBLENBQUNBLFFBQVFBLEdBQUdBLFFBQVFBLENBQUNBO0lBQzFCQSxDQUFDQTtJQTFCREQsc0JBQVdBLHNDQUFTQTtRQUhwQkE7O1dBRUdBO2FBQ0hBO1lBRUNFLE1BQU1BLENBQUNBLFNBQVNBLENBQUNBLGlCQUFpQkEsQ0FBQ0E7UUFDcENBLENBQUNBOzs7T0FBQUY7SUFLREEsc0JBQVdBLHdDQUFXQTtRQUh0QkE7O1dBRUdBO2FBQ0hBO1lBRUNHLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBO1FBQzFCQSxDQUFDQTs7O09BQUFIO0lBaUJEQTs7T0FFR0E7SUFDSUEsaUNBQU9BLEdBQWRBO1FBRUNJLGdCQUFLQSxDQUFDQSxPQUFPQSxXQUFFQSxDQUFDQTtJQUNqQkEsQ0FBQ0E7SUFFTUosNkNBQW1CQSxHQUExQkEsVUFBMkJBLFlBQTBCQTtRQUVwREssWUFBWUEsQ0FBQ0Esb0JBQW9CQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtJQUN6Q0EsQ0FBQ0E7SUFDRkwsc0JBQUNBO0FBQURBLENBL0NBLEFBK0NDQSxFQS9DNkIsV0FBVyxFQStDeEM7QUFFRCxBQUF5QixpQkFBaEIsZUFBZSxDQUFDIiwiZmlsZSI6ImJhc2UvVHJpYW5nbGVTdWJNZXNoLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBc3NldFR5cGVcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9saWJyYXJ5L0Fzc2V0VHlwZVwiKTtcbmltcG9ydCBJU3ViTWVzaFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9JU3ViTWVzaFwiKTtcbmltcG9ydCBTdWJNZXNoQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvU3ViTWVzaEJhc2VcIik7XG5pbXBvcnQgVHJpYW5nbGVTdWJHZW9tZXRyeVx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9UcmlhbmdsZVN1Ykdlb21ldHJ5XCIpO1xuXG5pbXBvcnQgSVJlbmRlcmVyUG9vbFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL0lSZW5kZXJlclBvb2xcIik7XG5pbXBvcnQgTWVzaFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9NZXNoXCIpO1xuaW1wb3J0IE1hdGVyaWFsQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9NYXRlcmlhbEJhc2VcIik7XG5cbi8qKlxuICogVHJpYW5nbGVTdWJNZXNoIHdyYXBzIGEgVHJpYW5nbGVTdWJHZW9tZXRyeSBhcyBhIHNjZW5lIGdyYXBoIGluc3RhbnRpYXRpb24uIEEgVHJpYW5nbGVTdWJNZXNoIGlzIG93bmVkIGJ5IGEgTWVzaCBvYmplY3QuXG4gKlxuICpcbiAqIEBzZWUgYXdheS5iYXNlLlRyaWFuZ2xlU3ViR2VvbWV0cnlcbiAqIEBzZWUgYXdheS5lbnRpdGllcy5NZXNoXG4gKlxuICogQGNsYXNzIGF3YXkuYmFzZS5UcmlhbmdsZVN1Yk1lc2hcbiAqL1xuY2xhc3MgVHJpYW5nbGVTdWJNZXNoIGV4dGVuZHMgU3ViTWVzaEJhc2UgaW1wbGVtZW50cyBJU3ViTWVzaFxue1xuXHRwcml2YXRlIF9zdWJHZW9tZXRyeTpUcmlhbmdsZVN1Ykdlb21ldHJ5O1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCBhc3NldFR5cGUoKTpzdHJpbmdcblx0e1xuXHRcdHJldHVybiBBc3NldFR5cGUuVFJJQU5HTEVfU1VCX01FU0g7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIFRyaWFuZ2xlU3ViR2VvbWV0cnkgb2JqZWN0IHdoaWNoIHByb3ZpZGVzIHRoZSBnZW9tZXRyeSBkYXRhIGZvciB0aGlzIFRyaWFuZ2xlU3ViTWVzaC5cblx0ICovXG5cdHB1YmxpYyBnZXQgc3ViR2VvbWV0cnkoKTpUcmlhbmdsZVN1Ykdlb21ldHJ5XG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fc3ViR2VvbWV0cnk7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG5ldyBUcmlhbmdsZVN1Yk1lc2ggb2JqZWN0XG5cdCAqIEBwYXJhbSBzdWJHZW9tZXRyeSBUaGUgVHJpYW5nbGVTdWJHZW9tZXRyeSBvYmplY3Qgd2hpY2ggcHJvdmlkZXMgdGhlIGdlb21ldHJ5IGRhdGEgZm9yIHRoaXMgVHJpYW5nbGVTdWJNZXNoLlxuXHQgKiBAcGFyYW0gcGFyZW50TWVzaCBUaGUgTWVzaCBvYmplY3QgdG8gd2hpY2ggdGhpcyBUcmlhbmdsZVN1Yk1lc2ggYmVsb25ncy5cblx0ICogQHBhcmFtIG1hdGVyaWFsIEFuIG9wdGlvbmFsIG1hdGVyaWFsIHVzZWQgdG8gcmVuZGVyIHRoaXMgVHJpYW5nbGVTdWJNZXNoLlxuXHQgKi9cblx0Y29uc3RydWN0b3Ioc3ViR2VvbWV0cnk6VHJpYW5nbGVTdWJHZW9tZXRyeSwgcGFyZW50TWVzaDpNZXNoLCBtYXRlcmlhbDpNYXRlcmlhbEJhc2UgPSBudWxsKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuX3BQYXJlbnRNZXNoID0gcGFyZW50TWVzaDtcblx0XHR0aGlzLl9zdWJHZW9tZXRyeSA9IHN1Ykdlb21ldHJ5O1xuXHRcdHRoaXMubWF0ZXJpYWwgPSBtYXRlcmlhbDtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGRpc3Bvc2UoKVxuXHR7XG5cdFx0c3VwZXIuZGlzcG9zZSgpO1xuXHR9XG5cblx0cHVibGljIF9pQ29sbGVjdFJlbmRlcmFibGUocmVuZGVyZXJQb29sOklSZW5kZXJlclBvb2wpXG5cdHtcblx0XHRyZW5kZXJlclBvb2wuYXBwbHlUcmlhbmdsZVN1Yk1lc2godGhpcyk7XG5cdH1cbn1cblxuZXhwb3J0ID0gVHJpYW5nbGVTdWJNZXNoOyJdfQ== \ No newline at end of file diff --git a/lib/base/TriangleSubMesh.ts b/lib/base/TriangleSubMesh.ts index f23014892..25f82d9af 100644 --- a/lib/base/TriangleSubMesh.ts +++ b/lib/base/TriangleSubMesh.ts @@ -3,7 +3,7 @@ import ISubMesh = require("awayjs-display/lib/base/ISubMesh"); import SubMeshBase = require("awayjs-display/lib/base/SubMeshBase"); import TriangleSubGeometry = require("awayjs-display/lib/base/TriangleSubGeometry"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); import Mesh = require("awayjs-display/lib/entities/Mesh"); import MaterialBase = require("awayjs-display/lib/materials/MaterialBase"); @@ -59,9 +59,9 @@ class TriangleSubMesh extends SubMeshBase implements ISubMesh super.dispose(); } - public _iCollectRenderable(renderer:IRenderer) + public _iCollectRenderable(rendererPool:IRendererPool) { - renderer.applyTriangleSubMesh(this); + rendererPool.applyTriangleSubMesh(this); } } diff --git a/lib/entities/Billboard.js b/lib/entities/Billboard.js index d0a702912..250ace654 100755 --- a/lib/entities/Billboard.js +++ b/lib/entities/Billboard.js @@ -167,19 +167,19 @@ var Billboard = (function (_super) { for (var i = 0; i < len; i++) this._pRenderables[i].invalidateVertexData("vertices"); }; - Billboard.prototype._iCollectRenderables = function (renderer) { + Billboard.prototype._iCollectRenderables = function (rendererPool) { // Since this getter is invoked every iteration of the render loop, and // the prefab construct could affect the sub-meshes, the prefab is // validated here to give it a chance to rebuild. if (this._iSourcePrefab) this._iSourcePrefab._iValidate(); - this._iCollectRenderable(renderer); + this._iCollectRenderable(rendererPool); }; - Billboard.prototype._iCollectRenderable = function (renderer) { - renderer.applyBillboard(this); + Billboard.prototype._iCollectRenderable = function (rendererPool) { + rendererPool.applyBillboard(this); }; return Billboard; })(DisplayObject); module.exports = Billboard; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9iaWxsYm9hcmQudHMiXSwibmFtZXMiOlsiQmlsbGJvYXJkIiwiQmlsbGJvYXJkLmNvbnN0cnVjdG9yIiwiQmlsbGJvYXJkLmFuaW1hdG9yIiwiQmlsbGJvYXJkLmFzc2V0VHlwZSIsIkJpbGxib2FyZC5iaWxsYm9hcmRIZWlnaHQiLCJCaWxsYm9hcmQuYmlsbGJvYXJkV2lkdGgiLCJCaWxsYm9hcmQubWF0ZXJpYWwiLCJCaWxsYm9hcmQudXZUcmFuc2Zvcm0iLCJCaWxsYm9hcmQucENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUiLCJCaWxsYm9hcmQucFVwZGF0ZUJvdW5kcyIsIkJpbGxib2FyZC5faVRlc3RDb2xsaXNpb24iLCJCaWxsYm9hcmQub25TaXplQ2hhbmdlZCIsIkJpbGxib2FyZC5faUNvbGxlY3RSZW5kZXJhYmxlcyIsIkJpbGxib2FyZC5faUNvbGxlY3RSZW5kZXJhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxJQUFPLFNBQVMsV0FBYyxtQ0FBbUMsQ0FBQyxDQUFDO0FBR25FLElBQU8sYUFBYSxXQUFhLHVDQUF1QyxDQUFDLENBQUM7QUFFMUUsSUFBTyxVQUFVLFdBQWMseUNBQXlDLENBQUMsQ0FBQztBQUcxRSxJQUFPLGFBQWEsV0FBYSx5Q0FBeUMsQ0FBQyxDQUFDO0FBRzVFLEFBbUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FGRztJQUVHLFNBQVM7SUFBU0EsVUFBbEJBLFNBQVNBLFVBQXNCQTtJQWdIcENBLFNBaEhLQSxTQUFTQSxDQWdIRkEsUUFBcUJBLEVBQUVBLGFBQTZCQSxFQUFFQSxTQUF5QkE7UUFoSDVGQyxpQkE0TENBO1FBNUVtQ0EsNkJBQTZCQSxHQUE3QkEsc0JBQTZCQTtRQUFFQSx5QkFBeUJBLEdBQXpCQSxpQkFBeUJBO1FBRTFGQSxpQkFBT0EsQ0FBQ0E7UUFFUkEsSUFBSUEsQ0FBQ0EsVUFBVUEsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFFdkJB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Q2pEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQTtZQUN2QkEsSUFBSUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFFbENBLElBQUlBLENBQUNBLG1CQUFtQkEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0E7SUFDcENBLENBQUNBO0lBRU1aLHVDQUFtQkEsR0FBMUJBLFVBQTJCQSxRQUFrQkE7UUFFNUNhLFFBQVFBLENBQUNBLGNBQWNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO0lBQy9CQSxDQUFDQTtJQUNGYixnQkFBQ0E7QUFBREEsQ0E1TEEsQUE0TENBLEVBNUx1QixhQUFhLEVBNExwQztBQUVELEFBQW1CLGlCQUFWLFNBQVMsQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9CaWxsYm9hcmQuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpdG1hcERhdGFcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9iYXNlL0JpdG1hcERhdGFcIik7XG5pbXBvcnQgTWF0cml4M0RcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vTWF0cml4M0RcIik7XG5pbXBvcnQgVVZUcmFuc2Zvcm1cdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1VWVHJhbnNmb3JtXCIpO1xuaW1wb3J0IEFzc2V0VHlwZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2xpYnJhcnkvQXNzZXRUeXBlXCIpO1xuXG5pbXBvcnQgSUFuaW1hdG9yXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYW5pbWF0b3JzL0lBbmltYXRvclwiKTtcbmltcG9ydCBEaXNwbGF5T2JqZWN0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvRGlzcGxheU9iamVjdFwiKTtcbmltcG9ydCBJUmVuZGVyYWJsZU93bmVyXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvSVJlbmRlcmFibGVPd25lclwiKTtcbmltcG9ydCBFbnRpdHlOb2RlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcGFydGl0aW9uL0VudGl0eU5vZGVcIik7XG5pbXBvcnQgSVJlbmRlcmVyXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcmVuZGVyL0lSZW5kZXJlclwiKTtcbmltcG9ydCBJRW50aXR5XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9JRW50aXR5XCIpO1xuaW1wb3J0IE1hdGVyaWFsRXZlbnRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZXZlbnRzL01hdGVyaWFsRXZlbnRcIik7XG5pbXBvcnQgTWF0ZXJpYWxCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvbWF0ZXJpYWxzL01hdGVyaWFsQmFzZVwiKTtcblxuLyoqXG4gKiBUaGUgQmlsbGJvYXJkIGNsYXNzIHJlcHJlc2VudHMgZGlzcGxheSBvYmplY3RzIHRoYXQgcmVwcmVzZW50IGJpdG1hcCBpbWFnZXMuXG4gKiBUaGVzZSBjYW4gYmUgaW1hZ2VzIHRoYXQgeW91IGxvYWQgd2l0aCB0aGUgPGNvZGU+Zmxhc2guQXNzZXRzPC9jb2RlPiBvclxuICogPGNvZGU+Zmxhc2guZGlzcGxheS5Mb2FkZXI8L2NvZGU+IGNsYXNzZXMsIG9yIHRoZXkgY2FuIGJlIGltYWdlcyB0aGF0IHlvdVxuICogY3JlYXRlIHdpdGggdGhlIDxjb2RlPkJpbGxib2FyZCgpPC9jb2RlPiBjb25zdHJ1Y3Rvci5cbiAqXG4gKiA8cD5UaGUgPGNvZGU+QmlsbGJvYXJkKCk8L2NvZGU+IGNvbnN0cnVjdG9yIGFsbG93cyB5b3UgdG8gY3JlYXRlIGEgQmlsbGJvYXJkXG4gKiBvYmplY3QgdGhhdCBjb250YWlucyBhIHJlZmVyZW5jZSB0byBhIEJpdG1hcERhdGEgb2JqZWN0LiBBZnRlciB5b3UgY3JlYXRlIGFcbiAqIEJpbGxib2FyZCBvYmplY3QsIHVzZSB0aGUgPGNvZGU+YWRkQ2hpbGQoKTwvY29kZT4gb3IgPGNvZGU+YWRkQ2hpbGRBdCgpPC9jb2RlPlxuICogbWV0aG9kIG9mIHRoZSBwYXJlbnQgRGlzcGxheU9iamVjdENvbnRhaW5lciBpbnN0YW5jZSB0byBwbGFjZSB0aGUgYml0bWFwIG9uXG4gKiB0aGUgZGlzcGxheSBsaXN0LjwvcD5cbiAqXG4gKiA8cD5BIEJpbGxib2FyZCBvYmplY3QgY2FuIHNoYXJlIGl0cyBCaXRtYXBEYXRhIHJlZmVyZW5jZSBhbW9uZyBzZXZlcmFsIEJpbGxib2FyZFxuICogb2JqZWN0cywgaW5kZXBlbmRlbnQgb2YgdHJhbnNsYXRpb24gb3Igcm90YXRpb24gcHJvcGVydGllcy4gQmVjYXVzZSB5b3UgY2FuXG4gKiBjcmVhdGUgbXVsdGlwbGUgQmlsbGJvYXJkIG9iamVjdHMgdGhhdCByZWZlcmVuY2UgdGhlIHNhbWUgQml0bWFwRGF0YSBvYmplY3QsXG4gKiBtdWx0aXBsZSBkaXNwbGF5IG9iamVjdHMgY2FuIHVzZSB0aGUgc2FtZSBjb21wbGV4IEJpdG1hcERhdGEgb2JqZWN0IHdpdGhvdXRcbiAqIGluY3VycmluZyB0aGUgbWVtb3J5IG92ZXJoZWFkIG9mIGEgQml0bWFwRGF0YSBvYmplY3QgZm9yIGVhY2ggZGlzcGxheVxuICogb2JqZWN0IGluc3RhbmNlLjwvcD5cbiAqXG4gKiA8cD5BIEJpdG1hcERhdGEgb2JqZWN0IGNhbiBiZSBkcmF3biB0byB0aGUgc2NyZWVuIGJ5IGEgQmlsbGJvYXJkIG9iamVjdCBpbiBvbmVcbiAqIG9mIHR3byB3YXlzOiBieSB1c2luZyB0aGUgZGVmYXVsdCBoYXJkd2FyZSByZW5kZXJlciB3aXRoIGEgc2luZ2xlIGhhcmR3YXJlIHN1cmZhY2UsXG4gKiBvciBieSB1c2luZyB0aGUgc2xvd2VyIHNvZnR3YXJlIHJlbmRlcmVyIHdoZW4gM0QgYWNjZWxlcmF0aW9uIGlzIG5vdCBhdmFpbGFibGUuPC9wPlxuICpcbiAqIDxwPklmIHlvdSB3b3VsZCBwcmVmZXIgdG8gcGVyZm9ybSBhIGJhdGNoIHJlbmRlcmluZyBjb21tYW5kLCByYXRoZXIgdGhhbiB1c2luZyBhXG4gKiBzaW5nbGUgc3VyZmFjZSBmb3IgZWFjaCBCaWxsYm9hcmQgb2JqZWN0LCB5b3UgY2FuIGFsc28gZHJhdyB0byB0aGUgc2NyZWVuIHVzaW5nIHRoZVxuICogPGNvZGU+ZHJhd1RpbGVzKCk8L2NvZGU+IG9yIDxjb2RlPmRyYXdUcmlhbmdsZXMoKTwvY29kZT4gbWV0aG9kcyB3aGljaCBhcmVcbiAqIGF2YWlsYWJsZSB0byA8Y29kZT5mbGFzaC5kaXNwbGF5LlRpbGVzaGVldDwvY29kZT4gYW5kIDxjb2RlPmZsYXNoLmRpc3BsYXkuR3JhcGhpY3NcbiAqIG9iamVjdHMuPC9jb2RlPjwvcD5cbiAqXG4gKiA8cD48Yj5Ob3RlOjwvYj4gVGhlIEJpbGxib2FyZCBjbGFzcyBpcyBub3QgYSBzdWJjbGFzcyBvZiB0aGUgSW50ZXJhY3RpdmVPYmplY3RcbiAqIGNsYXNzLCBzbyBpdCBjYW5ub3QgZGlzcGF0Y2ggbW91c2UgZXZlbnRzLiBIb3dldmVyLCB5b3UgY2FuIHVzZSB0aGVcbiAqIDxjb2RlPmFkZEV2ZW50TGlzdGVuZXIoKTwvY29kZT4gbWV0aG9kIG9mIHRoZSBkaXNwbGF5IG9iamVjdCBjb250YWluZXIgdGhhdFxuICogY29udGFpbnMgdGhlIEJpbGxib2FyZCBvYmplY3QuPC9wPlxuICovXG5cbmNsYXNzIEJpbGxib2FyZCBleHRlbmRzIERpc3BsYXlPYmplY3QgaW1wbGVtZW50cyBJRW50aXR5LCBJUmVuZGVyYWJsZU93bmVyXG57XG5cdHByaXZhdGUgX2FuaW1hdG9yOklBbmltYXRvcjtcblx0cHJpdmF0ZSBfYmlsbGJvYXJkV2lkdGg6bnVtYmVyO1xuXHRwcml2YXRlIF9iaWxsYm9hcmRIZWlnaHQ6bnVtYmVyO1xuXHRwcml2YXRlIF9tYXRlcmlhbDpNYXRlcmlhbEJhc2U7XG5cdHByaXZhdGUgX3V2VHJhbnNmb3JtOlVWVHJhbnNmb3JtO1xuXG5cdHByaXZhdGUgb25TaXplQ2hhbmdlZERlbGVnYXRlOihldmVudDpNYXRlcmlhbEV2ZW50KSA9PiB2b2lkO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBhbmltYXRvciBvZiB0aGUgbWVzaC4gQWN0IG9uIHRoZSBtZXNoJ3MgZ2VvbWV0cnkuIERlZmF1bHRzIHRvIG51bGxcblx0ICovXG5cdHB1YmxpYyBnZXQgYW5pbWF0b3IoKTpJQW5pbWF0b3Jcblx0e1xuXHRcdHJldHVybiB0aGlzLl9hbmltYXRvcjtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCBhc3NldFR5cGUoKTpzdHJpbmdcblx0e1xuXHRcdHJldHVybiBBc3NldFR5cGUuQklMTEJPQVJEO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBCaXRtYXBEYXRhIG9iamVjdCBiZWluZyByZWZlcmVuY2VkLlxuXHQgKi9cblx0cHVibGljIGJpdG1hcERhdGE6Qml0bWFwRGF0YTsgLy9UT0RPXG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGJpbGxib2FyZEhlaWdodCgpOm51bWJlclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2JpbGxib2FyZEhlaWdodDtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCBiaWxsYm9hcmRXaWR0aCgpOm51bWJlclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2JpbGxib2FyZFdpZHRoO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IG1hdGVyaWFsKCk6TWF0ZXJpYWxCYXNlXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fbWF0ZXJpYWw7XG5cdH1cblxuXHRwdWJsaWMgc2V0IG1hdGVyaWFsKHZhbHVlOk1hdGVyaWFsQmFzZSlcblx0e1xuXHRcdGlmICh2YWx1ZSA9PSB0aGlzLl9tYXRlcmlhbClcblx0XHRcdHJldHVybjtcblxuXHRcdGlmICh0aGlzLl9tYXRlcmlhbCkge1xuXHRcdFx0dGhpcy5fbWF0ZXJpYWwuaVJlbW92ZU93bmVyKHRoaXMpO1xuXHRcdFx0dGhpcy5fbWF0ZXJpYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihNYXRlcmlhbEV2ZW50LlNJWkVfQ0hBTkdFRCwgdGhpcy5vblNpemVDaGFuZ2VkRGVsZWdhdGUpO1xuXHRcdH1cblxuXG5cdFx0dGhpcy5fbWF0ZXJpYWwgPSB2YWx1ZTtcblxuXHRcdGlmICh0aGlzLl9tYXRlcmlhbCkge1xuXHRcdFx0dGhpcy5fbWF0ZXJpYWwuaUFkZE93bmVyKHRoaXMpO1xuXHRcdFx0dGhpcy5fbWF0ZXJpYWwuYWRkRXZlbnRMaXN0ZW5lcihNYXRlcmlhbEV2ZW50LlNJWkVfQ0hBTkdFRCwgdGhpcy5vblNpemVDaGFuZ2VkRGVsZWdhdGUpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDb250cm9scyB3aGV0aGVyIG9yIG5vdCB0aGUgQmlsbGJvYXJkIG9iamVjdCBpcyBzbmFwcGVkIHRvIHRoZSBuZWFyZXN0IHBpeGVsLlxuXHQgKiBUaGlzIHZhbHVlIGlzIGlnbm9yZWQgaW4gdGhlIG5hdGl2ZSBhbmQgSFRNTDUgdGFyZ2V0cy5cblx0ICogVGhlIFBpeGVsU25hcHBpbmcgY2xhc3MgaW5jbHVkZXMgcG9zc2libGUgdmFsdWVzOlxuXHQgKiA8dWw+XG5cdCAqICAgPGxpPjxjb2RlPlBpeGVsU25hcHBpbmcuTkVWRVI8L2NvZGU+IC0gTm8gcGl4ZWwgc25hcHBpbmcgb2NjdXJzLjwvbGk+XG5cdCAqICAgPGxpPjxjb2RlPlBpeGVsU25hcHBpbmcuQUxXQVlTPC9jb2RlPiAtIFRoZSBpbWFnZSBpcyBhbHdheXMgc25hcHBlZCB0b1xuXHQgKiB0aGUgbmVhcmVzdCBwaXhlbCwgaW5kZXBlbmRlbnQgb2YgdHJhbnNmb3JtYXRpb24uPC9saT5cblx0ICogICA8bGk+PGNvZGU+UGl4ZWxTbmFwcGluZy5BVVRPPC9jb2RlPiAtIFRoZSBpbWFnZSBpcyBzbmFwcGVkIHRvIHRoZVxuXHQgKiBuZWFyZXN0IHBpeGVsIGlmIGl0IGlzIGRyYXduIHdpdGggbm8gcm90YXRpb24gb3Igc2tldyBhbmQgaXQgaXMgZHJhd24gYXQgYVxuXHQgKiBzY2FsZSBmYWN0b3Igb2YgOTkuOSUgdG8gMTAwLjElLiBJZiB0aGVzZSBjb25kaXRpb25zIGFyZSBzYXRpc2ZpZWQsIHRoZVxuXHQgKiBiaXRtYXAgaW1hZ2UgaXMgZHJhd24gYXQgMTAwJSBzY2FsZSwgc25hcHBlZCB0byB0aGUgbmVhcmVzdCBwaXhlbC5cblx0ICogV2hlbiB0YXJnZXRpbmcgRmxhc2ggUGxheWVyLCB0aGlzIHZhbHVlIGFsbG93cyB0aGUgaW1hZ2UgdG8gYmUgZHJhd24gYXMgZmFzdFxuXHQgKiBhcyBwb3NzaWJsZSB1c2luZyB0aGUgaW50ZXJuYWwgdmVjdG9yIHJlbmRlcmVyLjwvbGk+XG5cdCAqIDwvdWw+XG5cdCAqL1xuXHRwdWJsaWMgcGl4ZWxTbmFwcGluZzpzdHJpbmc7IC8vVE9ET1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyB3aGV0aGVyIG9yIG5vdCB0aGUgYml0bWFwIGlzIHNtb290aGVkIHdoZW4gc2NhbGVkLiBJZlxuXHQgKiA8Y29kZT50cnVlPC9jb2RlPiwgdGhlIGJpdG1hcCBpcyBzbW9vdGhlZCB3aGVuIHNjYWxlZC4gSWZcblx0ICogPGNvZGU+ZmFsc2U8L2NvZGU+LCB0aGUgYml0bWFwIGlzIG5vdCBzbW9vdGhlZCB3aGVuIHNjYWxlZC5cblx0ICovXG5cdHB1YmxpYyBzbW9vdGhpbmc6Ym9vbGVhbjsgLy9UT0RPXG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHV2VHJhbnNmb3JtKCk6VVZUcmFuc2Zvcm1cblx0e1xuXHRcdHJldHVybiB0aGlzLl91dlRyYW5zZm9ybTtcblx0fVxuXG5cdHB1YmxpYyBzZXQgdXZUcmFuc2Zvcm0odmFsdWU6VVZUcmFuc2Zvcm0pXG5cdHtcblx0XHR0aGlzLl91dlRyYW5zZm9ybSA9IHZhbHVlO1xuXHR9XG5cblx0Y29uc3RydWN0b3IobWF0ZXJpYWw6TWF0ZXJpYWxCYXNlLCBwaXhlbFNuYXBwaW5nOnN0cmluZyA9IFwiYXV0b1wiLCBzbW9vdGhpbmc6Ym9vbGVhbiA9IGZhbHNlKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuX3BJc0VudGl0eSA9IHRydWU7XG5cblx0XHR0aGlzLm9uU2l6ZUNoYW5nZWREZWxlZ2F0ZSA9IChldmVudDpNYXRlcmlhbEV2ZW50KSA9PiB0aGlzLm9uU2l6ZUNoYW5nZWQoZXZlbnQpO1xuXG5cdFx0dGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuXG5cdFx0dGhpcy5fYmlsbGJvYXJkV2lkdGggPSBtYXRlcmlhbC53aWR0aDtcblx0XHR0aGlzLl9iaWxsYm9hcmRIZWlnaHQgPSBtYXRlcmlhbC5oZWlnaHQ7XG5cdH1cblxuXHQvKipcblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0cHVibGljIHBDcmVhdGVFbnRpdHlQYXJ0aXRpb25Ob2RlKCk6RW50aXR5Tm9kZVxuXHR7XG5cdFx0cmV0dXJuIG5ldyBFbnRpdHlOb2RlKHRoaXMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHB1YmxpYyBwVXBkYXRlQm91bmRzKClcblx0e1xuXHRcdHRoaXMuX3BCb3VuZHMuZnJvbUV4dHJlbWVzKDAsIDAsIDAsIHRoaXMuX2JpbGxib2FyZFdpZHRoLCB0aGlzLl9iaWxsYm9hcmRIZWlnaHQsIDApO1xuXG5cdFx0c3VwZXIucFVwZGF0ZUJvdW5kcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIC8vVE9ET1xuXHQgKlxuXHQgKiBAcGFyYW0gc2hvcnRlc3RDb2xsaXNpb25EaXN0YW5jZVxuXHQgKiBAcGFyYW0gZmluZENsb3Nlc3Rcblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0cHVibGljIF9pVGVzdENvbGxpc2lvbihzaG9ydGVzdENvbGxpc2lvbkRpc3RhbmNlOm51bWJlciwgZmluZENsb3Nlc3Q6Ym9vbGVhbik6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BQaWNraW5nQ29sbGlkZXIudGVzdEJpbGxib2FyZENvbGxpc2lvbih0aGlzLCB0aGlzLl9wUGlja2luZ0NvbGxpc2lvblZPLCBzaG9ydGVzdENvbGxpc2lvbkRpc3RhbmNlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBvblNpemVDaGFuZ2VkKGV2ZW50Ok1hdGVyaWFsRXZlbnQpXG5cdHtcblx0XHR0aGlzLl9iaWxsYm9hcmRXaWR0aCA9IHRoaXMuX21hdGVyaWFsLndpZHRoO1xuXHRcdHRoaXMuX2JpbGxib2FyZEhlaWdodCA9IHRoaXMuX21hdGVyaWFsLmhlaWdodDtcblxuXHRcdHRoaXMuX3BCb3VuZHNJbnZhbGlkID0gdHJ1ZTtcblxuXHRcdHZhciBsZW46bnVtYmVyID0gdGhpcy5fcFJlbmRlcmFibGVzLmxlbmd0aDtcblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCBsZW47IGkrKylcblx0XHRcdHRoaXMuX3BSZW5kZXJhYmxlc1tpXS5pbnZhbGlkYXRlVmVydGV4RGF0YShcInZlcnRpY2VzXCIpOyAvL1RPRE9cblx0fVxuXG5cdHB1YmxpYyBfaUNvbGxlY3RSZW5kZXJhYmxlcyhyZW5kZXJlcjpJUmVuZGVyZXIpXG5cdHtcblx0XHQvLyBTaW5jZSB0aGlzIGdldHRlciBpcyBpbnZva2VkIGV2ZXJ5IGl0ZXJhdGlvbiBvZiB0aGUgcmVuZGVyIGxvb3AsIGFuZFxuXHRcdC8vIHRoZSBwcmVmYWIgY29uc3RydWN0IGNvdWxkIGFmZmVjdCB0aGUgc3ViLW1lc2hlcywgdGhlIHByZWZhYiBpc1xuXHRcdC8vIHZhbGlkYXRlZCBoZXJlIHRvIGdpdmUgaXQgYSBjaGFuY2UgdG8gcmVidWlsZC5cblx0XHRpZiAodGhpcy5faVNvdXJjZVByZWZhYilcblx0XHRcdHRoaXMuX2lTb3VyY2VQcmVmYWIuX2lWYWxpZGF0ZSgpO1xuXG5cdFx0dGhpcy5faUNvbGxlY3RSZW5kZXJhYmxlKHJlbmRlcmVyKTtcblx0fVxuXG5cdHB1YmxpYyBfaUNvbGxlY3RSZW5kZXJhYmxlKHJlbmRlcmVyOklSZW5kZXJlcilcblx0e1xuXHRcdHJlbmRlcmVyLmFwcGx5QmlsbGJvYXJkKHRoaXMpO1xuXHR9XG59XG5cbmV4cG9ydCA9IEJpbGxib2FyZDsiXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9iaWxsYm9hcmQudHMiXSwibmFtZXMiOlsiQmlsbGJvYXJkIiwiQmlsbGJvYXJkLmNvbnN0cnVjdG9yIiwiQmlsbGJvYXJkLmFuaW1hdG9yIiwiQmlsbGJvYXJkLmFzc2V0VHlwZSIsIkJpbGxib2FyZC5iaWxsYm9hcmRIZWlnaHQiLCJCaWxsYm9hcmQuYmlsbGJvYXJkV2lkdGgiLCJCaWxsYm9hcmQubWF0ZXJpYWwiLCJCaWxsYm9hcmQudXZUcmFuc2Zvcm0iLCJCaWxsYm9hcmQucENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUiLCJCaWxsYm9hcmQucFVwZGF0ZUJvdW5kcyIsIkJpbGxib2FyZC5faVRlc3RDb2xsaXNpb24iLCJCaWxsYm9hcmQub25TaXplQ2hhbmdlZCIsIkJpbGxib2FyZC5faUNvbGxlY3RSZW5kZXJhYmxlcyIsIkJpbGxib2FyZC5faUNvbGxlY3RSZW5kZXJhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxJQUFPLFNBQVMsV0FBYyxtQ0FBbUMsQ0FBQyxDQUFDO0FBR25FLElBQU8sYUFBYSxXQUFhLHVDQUF1QyxDQUFDLENBQUM7QUFFMUUsSUFBTyxVQUFVLFdBQWMseUNBQXlDLENBQUMsQ0FBQztBQUcxRSxJQUFPLGFBQWEsV0FBYSx5Q0FBeUMsQ0FBQyxDQUFDO0FBRzVFLEFBbUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FGRztJQUVHLFNBQVM7SUFBU0EsVUFBbEJBLFNBQVNBLFVBQXNCQTtJQWdIcENBLFNBaEhLQSxTQUFTQSxDQWdIRkEsUUFBcUJBLEVBQUVBLGFBQTZCQSxFQUFFQSxTQUF5QkE7UUFoSDVGQyxpQkE0TENBO1FBNUVtQ0EsNkJBQTZCQSxHQUE3QkEsc0JBQTZCQTtRQUFFQSx5QkFBeUJBLEdBQXpCQSxpQkFBeUJBO1FBRTFGQSxpQkFBT0EsQ0FBQ0E7UUFFUkEsSUFBSUEsQ0FBQ0EsVUFBVUEsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFFdkJB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Q2pEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQTtZQUN2QkEsSUFBSUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFFbENBLElBQUlBLENBQUNBLG1CQUFtQkEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0E7SUFDeENBLENBQUNBO0lBRU1aLHVDQUFtQkEsR0FBMUJBLFVBQTJCQSxZQUEwQkE7UUFFcERhLFlBQVlBLENBQUNBLGNBQWNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO0lBQ25DQSxDQUFDQTtJQUNGYixnQkFBQ0E7QUFBREEsQ0E1TEEsQUE0TENBLEVBNUx1QixhQUFhLEVBNExwQztBQUVELEFBQW1CLGlCQUFWLFNBQVMsQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9CaWxsYm9hcmQuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpdG1hcERhdGFcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9iYXNlL0JpdG1hcERhdGFcIik7XG5pbXBvcnQgTWF0cml4M0RcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vTWF0cml4M0RcIik7XG5pbXBvcnQgVVZUcmFuc2Zvcm1cdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1VWVHJhbnNmb3JtXCIpO1xuaW1wb3J0IEFzc2V0VHlwZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2xpYnJhcnkvQXNzZXRUeXBlXCIpO1xuXG5pbXBvcnQgSUFuaW1hdG9yXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYW5pbWF0b3JzL0lBbmltYXRvclwiKTtcbmltcG9ydCBEaXNwbGF5T2JqZWN0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvRGlzcGxheU9iamVjdFwiKTtcbmltcG9ydCBJUmVuZGVyYWJsZU93bmVyXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvSVJlbmRlcmFibGVPd25lclwiKTtcbmltcG9ydCBFbnRpdHlOb2RlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcGFydGl0aW9uL0VudGl0eU5vZGVcIik7XG5pbXBvcnQgSVJlbmRlcmVyUG9vbFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL0lSZW5kZXJlclBvb2xcIik7XG5pbXBvcnQgSUVudGl0eVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvSUVudGl0eVwiKTtcbmltcG9ydCBNYXRlcmlhbEV2ZW50XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2V2ZW50cy9NYXRlcmlhbEV2ZW50XCIpO1xuaW1wb3J0IE1hdGVyaWFsQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9NYXRlcmlhbEJhc2VcIik7XG5cbi8qKlxuICogVGhlIEJpbGxib2FyZCBjbGFzcyByZXByZXNlbnRzIGRpc3BsYXkgb2JqZWN0cyB0aGF0IHJlcHJlc2VudCBiaXRtYXAgaW1hZ2VzLlxuICogVGhlc2UgY2FuIGJlIGltYWdlcyB0aGF0IHlvdSBsb2FkIHdpdGggdGhlIDxjb2RlPmZsYXNoLkFzc2V0czwvY29kZT4gb3JcbiAqIDxjb2RlPmZsYXNoLmRpc3BsYXkuTG9hZGVyPC9jb2RlPiBjbGFzc2VzLCBvciB0aGV5IGNhbiBiZSBpbWFnZXMgdGhhdCB5b3VcbiAqIGNyZWF0ZSB3aXRoIHRoZSA8Y29kZT5CaWxsYm9hcmQoKTwvY29kZT4gY29uc3RydWN0b3IuXG4gKlxuICogPHA+VGhlIDxjb2RlPkJpbGxib2FyZCgpPC9jb2RlPiBjb25zdHJ1Y3RvciBhbGxvd3MgeW91IHRvIGNyZWF0ZSBhIEJpbGxib2FyZFxuICogb2JqZWN0IHRoYXQgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gYSBCaXRtYXBEYXRhIG9iamVjdC4gQWZ0ZXIgeW91IGNyZWF0ZSBhXG4gKiBCaWxsYm9hcmQgb2JqZWN0LCB1c2UgdGhlIDxjb2RlPmFkZENoaWxkKCk8L2NvZGU+IG9yIDxjb2RlPmFkZENoaWxkQXQoKTwvY29kZT5cbiAqIG1ldGhvZCBvZiB0aGUgcGFyZW50IERpc3BsYXlPYmplY3RDb250YWluZXIgaW5zdGFuY2UgdG8gcGxhY2UgdGhlIGJpdG1hcCBvblxuICogdGhlIGRpc3BsYXkgbGlzdC48L3A+XG4gKlxuICogPHA+QSBCaWxsYm9hcmQgb2JqZWN0IGNhbiBzaGFyZSBpdHMgQml0bWFwRGF0YSByZWZlcmVuY2UgYW1vbmcgc2V2ZXJhbCBCaWxsYm9hcmRcbiAqIG9iamVjdHMsIGluZGVwZW5kZW50IG9mIHRyYW5zbGF0aW9uIG9yIHJvdGF0aW9uIHByb3BlcnRpZXMuIEJlY2F1c2UgeW91IGNhblxuICogY3JlYXRlIG11bHRpcGxlIEJpbGxib2FyZCBvYmplY3RzIHRoYXQgcmVmZXJlbmNlIHRoZSBzYW1lIEJpdG1hcERhdGEgb2JqZWN0LFxuICogbXVsdGlwbGUgZGlzcGxheSBvYmplY3RzIGNhbiB1c2UgdGhlIHNhbWUgY29tcGxleCBCaXRtYXBEYXRhIG9iamVjdCB3aXRob3V0XG4gKiBpbmN1cnJpbmcgdGhlIG1lbW9yeSBvdmVyaGVhZCBvZiBhIEJpdG1hcERhdGEgb2JqZWN0IGZvciBlYWNoIGRpc3BsYXlcbiAqIG9iamVjdCBpbnN0YW5jZS48L3A+XG4gKlxuICogPHA+QSBCaXRtYXBEYXRhIG9iamVjdCBjYW4gYmUgZHJhd24gdG8gdGhlIHNjcmVlbiBieSBhIEJpbGxib2FyZCBvYmplY3QgaW4gb25lXG4gKiBvZiB0d28gd2F5czogYnkgdXNpbmcgdGhlIGRlZmF1bHQgaGFyZHdhcmUgcmVuZGVyZXIgd2l0aCBhIHNpbmdsZSBoYXJkd2FyZSBzdXJmYWNlLFxuICogb3IgYnkgdXNpbmcgdGhlIHNsb3dlciBzb2Z0d2FyZSByZW5kZXJlciB3aGVuIDNEIGFjY2VsZXJhdGlvbiBpcyBub3QgYXZhaWxhYmxlLjwvcD5cbiAqXG4gKiA8cD5JZiB5b3Ugd291bGQgcHJlZmVyIHRvIHBlcmZvcm0gYSBiYXRjaCByZW5kZXJpbmcgY29tbWFuZCwgcmF0aGVyIHRoYW4gdXNpbmcgYVxuICogc2luZ2xlIHN1cmZhY2UgZm9yIGVhY2ggQmlsbGJvYXJkIG9iamVjdCwgeW91IGNhbiBhbHNvIGRyYXcgdG8gdGhlIHNjcmVlbiB1c2luZyB0aGVcbiAqIDxjb2RlPmRyYXdUaWxlcygpPC9jb2RlPiBvciA8Y29kZT5kcmF3VHJpYW5nbGVzKCk8L2NvZGU+IG1ldGhvZHMgd2hpY2ggYXJlXG4gKiBhdmFpbGFibGUgdG8gPGNvZGU+Zmxhc2guZGlzcGxheS5UaWxlc2hlZXQ8L2NvZGU+IGFuZCA8Y29kZT5mbGFzaC5kaXNwbGF5LkdyYXBoaWNzXG4gKiBvYmplY3RzLjwvY29kZT48L3A+XG4gKlxuICogPHA+PGI+Tm90ZTo8L2I+IFRoZSBCaWxsYm9hcmQgY2xhc3MgaXMgbm90IGEgc3ViY2xhc3Mgb2YgdGhlIEludGVyYWN0aXZlT2JqZWN0XG4gKiBjbGFzcywgc28gaXQgY2Fubm90IGRpc3BhdGNoIG1vdXNlIGV2ZW50cy4gSG93ZXZlciwgeW91IGNhbiB1c2UgdGhlXG4gKiA8Y29kZT5hZGRFdmVudExpc3RlbmVyKCk8L2NvZGU+IG1ldGhvZCBvZiB0aGUgZGlzcGxheSBvYmplY3QgY29udGFpbmVyIHRoYXRcbiAqIGNvbnRhaW5zIHRoZSBCaWxsYm9hcmQgb2JqZWN0LjwvcD5cbiAqL1xuXG5jbGFzcyBCaWxsYm9hcmQgZXh0ZW5kcyBEaXNwbGF5T2JqZWN0IGltcGxlbWVudHMgSUVudGl0eSwgSVJlbmRlcmFibGVPd25lclxue1xuXHRwcml2YXRlIF9hbmltYXRvcjpJQW5pbWF0b3I7XG5cdHByaXZhdGUgX2JpbGxib2FyZFdpZHRoOm51bWJlcjtcblx0cHJpdmF0ZSBfYmlsbGJvYXJkSGVpZ2h0Om51bWJlcjtcblx0cHJpdmF0ZSBfbWF0ZXJpYWw6TWF0ZXJpYWxCYXNlO1xuXHRwcml2YXRlIF91dlRyYW5zZm9ybTpVVlRyYW5zZm9ybTtcblxuXHRwcml2YXRlIG9uU2l6ZUNoYW5nZWREZWxlZ2F0ZTooZXZlbnQ6TWF0ZXJpYWxFdmVudCkgPT4gdm9pZDtcblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgYW5pbWF0b3Igb2YgdGhlIG1lc2guIEFjdCBvbiB0aGUgbWVzaCdzIGdlb21ldHJ5LiBEZWZhdWx0cyB0byBudWxsXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGFuaW1hdG9yKCk6SUFuaW1hdG9yXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fYW5pbWF0b3I7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgYXNzZXRUeXBlKCk6c3RyaW5nXG5cdHtcblx0XHRyZXR1cm4gQXNzZXRUeXBlLkJJTExCT0FSRDtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgQml0bWFwRGF0YSBvYmplY3QgYmVpbmcgcmVmZXJlbmNlZC5cblx0ICovXG5cdHB1YmxpYyBiaXRtYXBEYXRhOkJpdG1hcERhdGE7IC8vVE9ET1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCBiaWxsYm9hcmRIZWlnaHQoKTpudW1iZXJcblx0e1xuXHRcdHJldHVybiB0aGlzLl9iaWxsYm9hcmRIZWlnaHQ7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgYmlsbGJvYXJkV2lkdGgoKTpudW1iZXJcblx0e1xuXHRcdHJldHVybiB0aGlzLl9iaWxsYm9hcmRXaWR0aDtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCBtYXRlcmlhbCgpOk1hdGVyaWFsQmFzZVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX21hdGVyaWFsO1xuXHR9XG5cblx0cHVibGljIHNldCBtYXRlcmlhbCh2YWx1ZTpNYXRlcmlhbEJhc2UpXG5cdHtcblx0XHRpZiAodmFsdWUgPT0gdGhpcy5fbWF0ZXJpYWwpXG5cdFx0XHRyZXR1cm47XG5cblx0XHRpZiAodGhpcy5fbWF0ZXJpYWwpIHtcblx0XHRcdHRoaXMuX21hdGVyaWFsLmlSZW1vdmVPd25lcih0aGlzKTtcblx0XHRcdHRoaXMuX21hdGVyaWFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoTWF0ZXJpYWxFdmVudC5TSVpFX0NIQU5HRUQsIHRoaXMub25TaXplQ2hhbmdlZERlbGVnYXRlKTtcblx0XHR9XG5cblxuXHRcdHRoaXMuX21hdGVyaWFsID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5fbWF0ZXJpYWwpIHtcblx0XHRcdHRoaXMuX21hdGVyaWFsLmlBZGRPd25lcih0aGlzKTtcblx0XHRcdHRoaXMuX21hdGVyaWFsLmFkZEV2ZW50TGlzdGVuZXIoTWF0ZXJpYWxFdmVudC5TSVpFX0NIQU5HRUQsIHRoaXMub25TaXplQ2hhbmdlZERlbGVnYXRlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ29udHJvbHMgd2hldGhlciBvciBub3QgdGhlIEJpbGxib2FyZCBvYmplY3QgaXMgc25hcHBlZCB0byB0aGUgbmVhcmVzdCBwaXhlbC5cblx0ICogVGhpcyB2YWx1ZSBpcyBpZ25vcmVkIGluIHRoZSBuYXRpdmUgYW5kIEhUTUw1IHRhcmdldHMuXG5cdCAqIFRoZSBQaXhlbFNuYXBwaW5nIGNsYXNzIGluY2x1ZGVzIHBvc3NpYmxlIHZhbHVlczpcblx0ICogPHVsPlxuXHQgKiAgIDxsaT48Y29kZT5QaXhlbFNuYXBwaW5nLk5FVkVSPC9jb2RlPiAtIE5vIHBpeGVsIHNuYXBwaW5nIG9jY3Vycy48L2xpPlxuXHQgKiAgIDxsaT48Y29kZT5QaXhlbFNuYXBwaW5nLkFMV0FZUzwvY29kZT4gLSBUaGUgaW1hZ2UgaXMgYWx3YXlzIHNuYXBwZWQgdG9cblx0ICogdGhlIG5lYXJlc3QgcGl4ZWwsIGluZGVwZW5kZW50IG9mIHRyYW5zZm9ybWF0aW9uLjwvbGk+XG5cdCAqICAgPGxpPjxjb2RlPlBpeGVsU25hcHBpbmcuQVVUTzwvY29kZT4gLSBUaGUgaW1hZ2UgaXMgc25hcHBlZCB0byB0aGVcblx0ICogbmVhcmVzdCBwaXhlbCBpZiBpdCBpcyBkcmF3biB3aXRoIG5vIHJvdGF0aW9uIG9yIHNrZXcgYW5kIGl0IGlzIGRyYXduIGF0IGFcblx0ICogc2NhbGUgZmFjdG9yIG9mIDk5LjklIHRvIDEwMC4xJS4gSWYgdGhlc2UgY29uZGl0aW9ucyBhcmUgc2F0aXNmaWVkLCB0aGVcblx0ICogYml0bWFwIGltYWdlIGlzIGRyYXduIGF0IDEwMCUgc2NhbGUsIHNuYXBwZWQgdG8gdGhlIG5lYXJlc3QgcGl4ZWwuXG5cdCAqIFdoZW4gdGFyZ2V0aW5nIEZsYXNoIFBsYXllciwgdGhpcyB2YWx1ZSBhbGxvd3MgdGhlIGltYWdlIHRvIGJlIGRyYXduIGFzIGZhc3Rcblx0ICogYXMgcG9zc2libGUgdXNpbmcgdGhlIGludGVybmFsIHZlY3RvciByZW5kZXJlci48L2xpPlxuXHQgKiA8L3VsPlxuXHQgKi9cblx0cHVibGljIHBpeGVsU25hcHBpbmc6c3RyaW5nOyAvL1RPRE9cblxuXHQvKipcblx0ICogQ29udHJvbHMgd2hldGhlciBvciBub3QgdGhlIGJpdG1hcCBpcyBzbW9vdGhlZCB3aGVuIHNjYWxlZC4gSWZcblx0ICogPGNvZGU+dHJ1ZTwvY29kZT4sIHRoZSBiaXRtYXAgaXMgc21vb3RoZWQgd2hlbiBzY2FsZWQuIElmXG5cdCAqIDxjb2RlPmZhbHNlPC9jb2RlPiwgdGhlIGJpdG1hcCBpcyBub3Qgc21vb3RoZWQgd2hlbiBzY2FsZWQuXG5cdCAqL1xuXHRwdWJsaWMgc21vb3RoaW5nOmJvb2xlYW47IC8vVE9ET1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCB1dlRyYW5zZm9ybSgpOlVWVHJhbnNmb3JtXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fdXZUcmFuc2Zvcm07XG5cdH1cblxuXHRwdWJsaWMgc2V0IHV2VHJhbnNmb3JtKHZhbHVlOlVWVHJhbnNmb3JtKVxuXHR7XG5cdFx0dGhpcy5fdXZUcmFuc2Zvcm0gPSB2YWx1ZTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKG1hdGVyaWFsOk1hdGVyaWFsQmFzZSwgcGl4ZWxTbmFwcGluZzpzdHJpbmcgPSBcImF1dG9cIiwgc21vb3RoaW5nOmJvb2xlYW4gPSBmYWxzZSlcblx0e1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLl9wSXNFbnRpdHkgPSB0cnVlO1xuXG5cdFx0dGhpcy5vblNpemVDaGFuZ2VkRGVsZWdhdGUgPSAoZXZlbnQ6TWF0ZXJpYWxFdmVudCkgPT4gdGhpcy5vblNpemVDaGFuZ2VkKGV2ZW50KTtcblxuXHRcdHRoaXMubWF0ZXJpYWwgPSBtYXRlcmlhbDtcblxuXHRcdHRoaXMuX2JpbGxib2FyZFdpZHRoID0gbWF0ZXJpYWwud2lkdGg7XG5cdFx0dGhpcy5fYmlsbGJvYXJkSGVpZ2h0ID0gbWF0ZXJpYWwuaGVpZ2h0O1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHB1YmxpYyBwQ3JlYXRlRW50aXR5UGFydGl0aW9uTm9kZSgpOkVudGl0eU5vZGVcblx0e1xuXHRcdHJldHVybiBuZXcgRW50aXR5Tm9kZSh0aGlzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcFVwZGF0ZUJvdW5kcygpXG5cdHtcblx0XHR0aGlzLl9wQm91bmRzLmZyb21FeHRyZW1lcygwLCAwLCAwLCB0aGlzLl9iaWxsYm9hcmRXaWR0aCwgdGhpcy5fYmlsbGJvYXJkSGVpZ2h0LCAwKTtcblxuXHRcdHN1cGVyLnBVcGRhdGVCb3VuZHMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiAvL1RPRE9cblx0ICpcblx0ICogQHBhcmFtIHNob3J0ZXN0Q29sbGlzaW9uRGlzdGFuY2Vcblx0ICogQHBhcmFtIGZpbmRDbG9zZXN0XG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHQgKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdHB1YmxpYyBfaVRlc3RDb2xsaXNpb24oc2hvcnRlc3RDb2xsaXNpb25EaXN0YW5jZTpudW1iZXIsIGZpbmRDbG9zZXN0OmJvb2xlYW4pOmJvb2xlYW5cblx0e1xuXHRcdHJldHVybiB0aGlzLl9wUGlja2luZ0NvbGxpZGVyLnRlc3RCaWxsYm9hcmRDb2xsaXNpb24odGhpcywgdGhpcy5fcFBpY2tpbmdDb2xsaXNpb25WTywgc2hvcnRlc3RDb2xsaXNpb25EaXN0YW5jZSk7XG5cdH1cblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHByaXZhdGUgb25TaXplQ2hhbmdlZChldmVudDpNYXRlcmlhbEV2ZW50KVxuXHR7XG5cdFx0dGhpcy5fYmlsbGJvYXJkV2lkdGggPSB0aGlzLl9tYXRlcmlhbC53aWR0aDtcblx0XHR0aGlzLl9iaWxsYm9hcmRIZWlnaHQgPSB0aGlzLl9tYXRlcmlhbC5oZWlnaHQ7XG5cblx0XHR0aGlzLl9wQm91bmRzSW52YWxpZCA9IHRydWU7XG5cblx0XHR2YXIgbGVuOm51bWJlciA9IHRoaXMuX3BSZW5kZXJhYmxlcy5sZW5ndGg7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9wUmVuZGVyYWJsZXNbaV0uaW52YWxpZGF0ZVZlcnRleERhdGEoXCJ2ZXJ0aWNlc1wiKTsgLy9UT0RPXG5cdH1cblxuXHRwdWJsaWMgX2lDb2xsZWN0UmVuZGVyYWJsZXMocmVuZGVyZXJQb29sOklSZW5kZXJlclBvb2wpXG5cdHtcblx0XHQvLyBTaW5jZSB0aGlzIGdldHRlciBpcyBpbnZva2VkIGV2ZXJ5IGl0ZXJhdGlvbiBvZiB0aGUgcmVuZGVyIGxvb3AsIGFuZFxuXHRcdC8vIHRoZSBwcmVmYWIgY29uc3RydWN0IGNvdWxkIGFmZmVjdCB0aGUgc3ViLW1lc2hlcywgdGhlIHByZWZhYiBpc1xuXHRcdC8vIHZhbGlkYXRlZCBoZXJlIHRvIGdpdmUgaXQgYSBjaGFuY2UgdG8gcmVidWlsZC5cblx0XHRpZiAodGhpcy5faVNvdXJjZVByZWZhYilcblx0XHRcdHRoaXMuX2lTb3VyY2VQcmVmYWIuX2lWYWxpZGF0ZSgpO1xuXG5cdFx0dGhpcy5faUNvbGxlY3RSZW5kZXJhYmxlKHJlbmRlcmVyUG9vbCk7XG5cdH1cblxuXHRwdWJsaWMgX2lDb2xsZWN0UmVuZGVyYWJsZShyZW5kZXJlclBvb2w6SVJlbmRlcmVyUG9vbClcblx0e1xuXHRcdHJlbmRlcmVyUG9vbC5hcHBseUJpbGxib2FyZCh0aGlzKTtcblx0fVxufVxuXG5leHBvcnQgPSBCaWxsYm9hcmQ7Il19 \ No newline at end of file diff --git a/lib/entities/Billboard.ts b/lib/entities/Billboard.ts index c1f821b77..a21e94d1f 100644 --- a/lib/entities/Billboard.ts +++ b/lib/entities/Billboard.ts @@ -7,7 +7,7 @@ import IAnimator = require("awayjs-display/lib/animators/IAnimator"); import DisplayObject = require("awayjs-display/lib/base/DisplayObject"); import IRenderableOwner = require("awayjs-display/lib/base/IRenderableOwner"); import EntityNode = require("awayjs-display/lib/partition/EntityNode"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); import IEntity = require("awayjs-display/lib/entities/IEntity"); import MaterialEvent = require("awayjs-display/lib/events/MaterialEvent"); import MaterialBase = require("awayjs-display/lib/materials/MaterialBase"); @@ -220,7 +220,7 @@ class Billboard extends DisplayObject implements IEntity, IRenderableOwner this._pRenderables[i].invalidateVertexData("vertices"); //TODO } - public _iCollectRenderables(renderer:IRenderer) + public _iCollectRenderables(rendererPool:IRendererPool) { // Since this getter is invoked every iteration of the render loop, and // the prefab construct could affect the sub-meshes, the prefab is @@ -228,12 +228,12 @@ class Billboard extends DisplayObject implements IEntity, IRenderableOwner if (this._iSourcePrefab) this._iSourcePrefab._iValidate(); - this._iCollectRenderable(renderer); + this._iCollectRenderable(rendererPool); } - public _iCollectRenderable(renderer:IRenderer) + public _iCollectRenderable(rendererPool:IRendererPool) { - renderer.applyBillboard(this); + rendererPool.applyBillboard(this); } } diff --git a/lib/entities/Camera.js b/lib/entities/Camera.js index cd9a70964..1aea32ec9 100755 --- a/lib/entities/Camera.js +++ b/lib/entities/Camera.js @@ -233,19 +233,19 @@ var Camera = (function (_super) { Camera.prototype.unproject = function (nX, nY, sZ) { return this.sceneTransform.transformVector(this._projection.unproject(nX, nY, sZ)); }; - Camera.prototype._iCollectRenderables = function (renderer) { + Camera.prototype._iCollectRenderables = function (rendererPool) { // Since this getter is invoked every iteration of the render loop, and // the prefab construct could affect the sub-meshes, the prefab is // validated here to give it a chance to rebuild. if (this._iSourcePrefab) this._iSourcePrefab._iValidate(); - this._iCollectRenderable(renderer); + this._iCollectRenderable(rendererPool); }; - Camera.prototype._iCollectRenderable = function (renderer) { + Camera.prototype._iCollectRenderable = function (rendererPool) { //nothing to do here }; return Camera; })(DisplayObjectContainer); module.exports = Camera; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9jYW1lcmEudHMiXSwibmFtZXMiOlsiQ2FtZXJhIiwiQ2FtZXJhLmNvbnN0cnVjdG9yIiwiQ2FtZXJhLnBDcmVhdGVEZWZhdWx0Qm91bmRpbmdWb2x1bWUiLCJDYW1lcmEucENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUiLCJDYW1lcmEuYXNzZXRUeXBlIiwiQ2FtZXJhLm9uUHJvamVjdGlvbk1hdHJpeENoYW5nZWQiLCJDYW1lcmEuZnJ1c3R1bVBsYW5lcyIsIkNhbWVyYS51cGRhdGVGcnVzdHVtIiwiQ2FtZXJhLnBJbnZhbGlkYXRlU2NlbmVUcmFuc2Zvcm0iLCJDYW1lcmEucFVwZGF0ZUJvdW5kcyIsIkNhbWVyYS5wcm9qZWN0aW9uIiwiQ2FtZXJhLnZpZXdQcm9qZWN0aW9uIiwiQ2FtZXJhLmdldFJheSIsIkNhbWVyYS5wcm9qZWN0IiwiQ2FtZXJhLnVucHJvamVjdCIsIkNhbWVyYS5faUNvbGxlY3RSZW5kZXJhYmxlcyIsIkNhbWVyYS5faUNvbGxlY3RSZW5kZXJhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFPLFVBQVUsV0FBYyxtQ0FBbUMsQ0FBQyxDQUFDO0FBQ3BFLElBQU8sUUFBUSxXQUFlLCtCQUErQixDQUFDLENBQUM7QUFDL0QsSUFBTyxPQUFPLFdBQWUsOEJBQThCLENBQUMsQ0FBQztBQUU3RCxJQUFPLFNBQVMsV0FBYyxtQ0FBbUMsQ0FBQyxDQUFDO0FBQ25FLElBQU8sZUFBZSxXQUFhLHdDQUF3QyxDQUFDLENBQUM7QUFFN0UsSUFBTyxxQkFBcUIsV0FBVyxtREFBbUQsQ0FBQyxDQUFDO0FBRTVGLElBQU8sc0JBQXNCLFdBQVcsc0RBQXNELENBQUMsQ0FBQztBQUVoRyxJQUFPLFdBQVcsV0FBYyx1Q0FBdUMsQ0FBQyxDQUFDO0FBQ3pFLElBQU8sVUFBVSxXQUFjLHlDQUF5QyxDQUFDLENBQUM7QUFLMUUsSUFBTSxNQUFNO0lBQVNBLFVBQWZBLE1BQU1BLFVBQStCQTtJQVMx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QTtRQUNkQSxJQUFJQSxHQUFHQSxHQUFZQSxJQUFJQSxLQUFLQSxDQUFTQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUN6Q0EsQ0FBQ0E7UUFDREEsSUFBSUEsTUFBYUEsQ0FBQ0E7UUFDbEJBLElBQUlBLENBQUNBLGNBQWNBLENBQUNBLGFBQWFBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1FBRXZDQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUNkQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUNkQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUNkQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUNkQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUNkQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUVkQSxBQUNBQSxhQURhQTtRQUNiQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBRTFCQSxBQUNBQSxjQURjQTtRQUNkQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBRXpCQSxBQUNBQSxTQURTQTtRQUNUQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBRTFCQSxBQUNBQSxNQURNQTtRQUNOQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBRXpCQSxBQUNBQSxPQURPQTtRQUNQQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDUkEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDUkEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDUkEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLEdBQUNBLE1BQU1BLENBQUNBO1FBRWxCQSxBQUNBQSxNQURNQTtRQUNOQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBRXpCQSxJQUFJQSxDQUFDQSxtQkFBbUJBLEdBQUdBLEtBQUtBLENBQUNBO0lBRWxDQSxDQUFDQTtJQUVEUDs7T0FFR0E7SUFDSUEsMENBQXlCQSxHQUFoQ0E7UUFFQ1EsZ0JBQUtBLENBQUNBLHlCQUF5QkEsV0FBRUEsQ0FBQ0E7UUFFbENBLElB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LENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLFNBQVNBLENBQUNBLEVBQUVBLEVBQUVBLEVBQUVBLEVBQUVBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO0lBQ3BGQSxDQUFDQTtJQUVNZCxxQ0FBb0JBLEdBQTNCQSxVQUE0QkEsUUFBa0JBO1FBRTdDZSxBQUdBQSx1RUFIdUVBO1FBQ3ZFQSxrRUFBa0VBO1FBQ2xFQSxpREFBaURBO1FBQ2pEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQTtZQUN2QkEsSUFBSUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFFbENBLElBQUlBLENBQUNBLG1CQUFtQkEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0E7SUFDcENBLENBQUNBO0lBRU1mLG9DQUFtQkEsR0FBMUJBLFVBQTJCQSxRQUFrQkE7UUFFNUNnQixvQkFBb0JBO0lBQ3JCQSxDQUFDQTtJQUNGaEIsYUFBQ0E7QUFBREEsQ0FoUkEsQUFnUkNBLEVBaFJvQixzQkFBc0IsRUFnUjFDO0FBRUQsQUFBZ0IsaUJBQVAsTUFBTSxDQUFDIiwiZmlsZSI6ImVudGl0aWVzL0NhbWVyYS5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQm91bmRpbmdWb2x1bWVCYXNlXHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9ib3VuZHMvQm91bmRpbmdWb2x1bWVCYXNlXCIpO1xuaW1wb3J0IE51bGxCb3VuZHNcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9ib3VuZHMvTnVsbEJvdW5kc1wiKTtcbmltcG9ydCBNYXRyaXgzRFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9NYXRyaXgzRFwiKTtcbmltcG9ydCBQbGFuZTNEXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1BsYW5lM0RcIik7XG5pbXBvcnQgVmVjdG9yM0RcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vVmVjdG9yM0RcIik7XG5pbXBvcnQgQXNzZXRUeXBlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvbGlicmFyeS9Bc3NldFR5cGVcIik7XG5pbXBvcnQgUHJvamVjdGlvbkV2ZW50XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2V2ZW50cy9Qcm9qZWN0aW9uRXZlbnRcIik7XG5pbXBvcnQgSVByb2plY3Rpb25cdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9wcm9qZWN0aW9ucy9JUHJvamVjdGlvblwiKTtcbmltcG9ydCBQZXJzcGVjdGl2ZVByb2plY3Rpb25cdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9wcm9qZWN0aW9ucy9QZXJzcGVjdGl2ZVByb2plY3Rpb25cIik7XG5cbmltcG9ydCBEaXNwbGF5T2JqZWN0Q29udGFpbmVyXHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvY29udGFpbmVycy9EaXNwbGF5T2JqZWN0Q29udGFpbmVyXCIpO1xuaW1wb3J0IElFbnRpdHlcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2VudGl0aWVzL0lFbnRpdHlcIik7XG5pbXBvcnQgQ2FtZXJhRXZlbnRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9ldmVudHMvQ2FtZXJhRXZlbnRcIik7XG5pbXBvcnQgQ2FtZXJhTm9kZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9DYW1lcmFOb2RlXCIpO1xuaW1wb3J0IEVudGl0eU5vZGVcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wYXJ0aXRpb24vRW50aXR5Tm9kZVwiKTtcbmltcG9ydCBJUmVuZGVyZXJcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9yZW5kZXIvSVJlbmRlcmVyXCIpO1xuXG5cbmNsYXNzIENhbWVyYSBleHRlbmRzIERpc3BsYXlPYmplY3RDb250YWluZXIgaW1wbGVtZW50cyBJRW50aXR5XG57XG5cdHByaXZhdGUgX3ZpZXdQcm9qZWN0aW9uOk1hdHJpeDNEID0gbmV3IE1hdHJpeDNEKCk7XG5cdHByaXZhdGUgX3ZpZXdQcm9qZWN0aW9uRGlydHk6Qm9vbGVhbiA9IHRydWU7XG5cdHByaXZhdGUgX3Byb2plY3Rpb246SVByb2plY3Rpb247XG5cdHByaXZhdGUgX2ZydXN0dW1QbGFuZXM6QXJyYXk8UGxhbmUzRD47XG5cdHByaXZhdGUgX2ZydXN0dW1QbGFuZXNEaXJ0eTpCb29sZWFuID0gdHJ1ZTtcblx0cHJpdmF0ZSBfb25Qcm9qZWN0aW9uTWF0cml4Q2hhbmdlZERlbGVnYXRlOihldmVudDpQcm9qZWN0aW9uRXZlbnQpID0+IHZvaWQ7XG5cblx0Y29uc3RydWN0b3IocHJvamVjdGlvbjpJUHJvamVjdGlvbiA9IG51bGwpXG5cdHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy5fcElzRW50aXR5ID0gdHJ1ZTtcblxuXHRcdHRoaXMuX29uUHJvamVjdGlvbk1hdHJpeENoYW5nZWREZWxlZ2F0ZSA9IChldmVudDpQcm9qZWN0aW9uRXZlbnQpID0+IHRoaXMub25Qcm9qZWN0aW9uTWF0cml4Q2hhbmdlZChldmVudCk7XG5cblx0XHR0aGlzLl9wcm9qZWN0aW9uID0gcHJvamVjdGlvbiB8fCBuZXcgUGVyc3BlY3RpdmVQcm9qZWN0aW9uKCk7XG5cdFx0dGhpcy5fcHJvamVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFByb2plY3Rpb25FdmVudC5NQVRSSVhfQ0hBTkdFRCwgdGhpcy5fb25Qcm9qZWN0aW9uTWF0cml4Q2hhbmdlZERlbGVnYXRlKTtcblxuXHRcdHRoaXMuX2ZydXN0dW1QbGFuZXMgPSBbXTtcblxuXHRcdGZvciAodmFyIGk6bnVtYmVyID0gMDsgaSA8IDY7ICsraSlcblx0XHRcdHRoaXMuX2ZydXN0dW1QbGFuZXNbaV0gPSBuZXcgUGxhbmUzRCgpO1xuXG5cdFx0dGhpcy56ID0gLTEwMDA7XG5cblx0fVxuXG5cdHB1YmxpYyBwQ3JlYXRlRGVmYXVsdEJvdW5kaW5nVm9sdW1lKCk6Qm91bmRpbmdWb2x1bWVCYXNlXG5cdHtcblx0XHRyZXR1cm4gbmV3IE51bGxCb3VuZHMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUoKTpFbnRpdHlOb2RlXG5cdHtcblx0XHRyZXR1cm4gbmV3IENhbWVyYU5vZGUodGhpcyk7XG5cdH1cblxuXHQvL0BvdmVycmlkZVxuXHRwdWJsaWMgZ2V0IGFzc2V0VHlwZSgpOnN0cmluZ1xuXHR7XG5cdFx0cmV0dXJuIEFzc2V0VHlwZS5DQU1FUkE7XG5cdH1cblxuXHRwcml2YXRlIG9uUHJvamVjdGlvbk1hdHJpeENoYW5nZWQoZXZlbnQ6UHJvamVjdGlvbkV2ZW50KVxuXHR7XG5cdFx0dGhpcy5fdmlld1Byb2plY3Rpb25EaXJ0eSA9IHRydWU7XG5cdFx0dGhpcy5fZnJ1c3R1bVBsYW5lc0RpcnR5ID0gdHJ1ZTtcblx0XHR0aGlzLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuXHR9XG5cblx0cHVibGljIGdldCBmcnVzdHVtUGxhbmVzKCk6QXJyYXk8UGxhbmUzRD5cblx0e1xuXHRcdGlmICh0aGlzLl9mcnVzdHVtUGxhbmVzRGlydHkpXG5cdFx0XHR0aGlzLnVwZGF0ZUZydXN0dW0oKTtcblxuXHRcdHJldHVybiB0aGlzLl9mcnVzdHVtUGxhbmVzO1xuXHR9XG5cblx0cHJpdmF0ZSB1cGRhdGVGcnVzdHVtKClcblx0e1xuXHRcdHZhciBhOm51bWJlciwgYjpudW1iZXIsIGM6bnVtYmVyO1xuXHRcdC8vdmFyIGQgOiBOdW1iZXI7XG5cdFx0dmFyIGMxMTpudW1iZXIsIGMxMjpudW1iZXIsIGMxMzpudW1iZXIsIGMxNDpudW1iZXI7XG5cdFx0dmFyIGMyMTpudW1iZXIsIGMyMjpudW1iZXIsIGMyMzpudW1iZXIsIGMyNDpudW1iZXI7XG5cdFx0dmFyIGMzMTpudW1iZXIsIGMzMjpudW1iZXIsIGMzMzpudW1iZXIsIGMzNDpudW1iZXI7XG5cdFx0dmFyIGM0MTpudW1iZXIsIGM0MjpudW1iZXIsIGM0MzpudW1iZXIsIGM0NDpudW1iZXI7XG5cdFx0dmFyIHA6UGxhbmUzRDtcblx0XHR2YXIgcmF3Om51bWJlcltdID0gbmV3IEFycmF5PG51bWJlcj4oMTYpO1xuXHRcdDsvL25ldyBBcnJheSgxNiApO2F3YXkudXRpbHMuTWF0cml4M0RVdGlscy5SQVdfREFUQV9DT05UQUlORVI7Ly9bXTtcblx0XHR2YXIgaW52TGVuOm51bWJlcjtcblx0XHR0aGlzLnZpZXdQcm9qZWN0aW9uLmNvcHlSYXdEYXRhVG8ocmF3KTtcblxuXHRcdGMxMSA9IHJhd1swXTtcblx0XHRjMTIgPSByYXdbNF07XG5cdFx0YzEzID0gcmF3WzhdO1xuXHRcdGMxNCA9IHJhd1sxMl07XG5cdFx0YzIxID0gcmF3WzFdO1xuXHRcdGMyMiA9IHJhd1s1XTtcblx0XHRjMjMgPSByYXdbOV07XG5cdFx0YzI0ID0gcmF3WzEzXTtcblx0XHRjMzEgPSByYXdbMl07XG5cdFx0YzMyID0gcmF3WzZdO1xuXHRcdGMzMyA9IHJhd1sxMF07XG5cdFx0YzM0ID0gcmF3WzE0XTtcblx0XHRjNDEgPSByYXdbM107XG5cdFx0YzQyID0gcmF3WzddO1xuXHRcdGM0MyA9IHJhd1sxMV07XG5cdFx0YzQ0ID0gcmF3WzE1XTtcblxuXHRcdC8vIGxlZnQgcGxhbmVcblx0XHRwID0gdGhpcy5fZnJ1c3R1bVBsYW5lc1swXTtcblx0XHRhID0gYzQxICsgYzExO1xuXHRcdGIgPSBjNDIgKyBjMTI7XG5cdFx0YyA9IGM0MyArIGMxMztcblx0XHRpbnZMZW4gPSAxL01hdGguc3FydChhKmEgKyBiKmIgKyBjKmMpO1xuXHRcdHAuYSA9IGEqaW52TGVuO1xuXHRcdHAuYiA9IGIqaW52TGVuO1xuXHRcdHAuYyA9IGMqaW52TGVuO1xuXHRcdHAuZCA9IC0oYzQ0ICsgYzE0KSppbnZMZW47XG5cblx0XHQvLyByaWdodCBwbGFuZVxuXHRcdHAgPSB0aGlzLl9mcnVzdHVtUGxhbmVzWzFdO1xuXHRcdGEgPSBjNDEgLSBjMTE7XG5cdFx0YiA9IGM0MiAtIGMxMjtcblx0XHRjID0gYzQzIC0gYzEzO1xuXHRcdGludkxlbiA9IDEvTWF0aC5zcXJ0KGEqYSArIGIqYiArIGMqYyk7XG5cdFx0cC5hID0gYSppbnZMZW47XG5cdFx0cC5iID0gYippbnZMZW47XG5cdFx0cC5jID0gYyppbnZMZW47XG5cdFx0cC5kID0gKGMxNCAtIGM0NCkqaW52TGVuO1xuXG5cdFx0Ly8gYm90dG9tXG5cdFx0cCA9IHRoaXMuX2ZydXN0dW1QbGFuZXNbMl07XG5cdFx0YSA9IGM0MSArIGMyMTtcblx0XHRiID0gYzQyICsgYzIyO1xuXHRcdGMgPSBjNDMgKyBjMjM7XG5cdFx0aW52TGVuID0gMS9NYXRoLnNxcnQoYSphICsgYipiICsgYypjKTtcblx0XHRwLmEgPSBhKmludkxlbjtcblx0XHRwLmIgPSBiKmludkxlbjtcblx0XHRwLmMgPSBjKmludkxlbjtcblx0XHRwLmQgPSAtKGM0NCArIGMyNCkqaW52TGVuO1xuXG5cdFx0Ly8gdG9wXG5cdFx0cCA9IHRoaXMuX2ZydXN0dW1QbGFuZXNbM107XG5cdFx0YSA9IGM0MSAtIGMyMTtcblx0XHRiID0gYzQyIC0gYzIyO1xuXHRcdGMgPSBjNDMgLSBjMjM7XG5cdFx0aW52TGVuID0gMS9NYXRoLnNxcnQoYSphICsgYipiICsgYypjKTtcblx0XHRwLmEgPSBhKmludkxlbjtcblx0XHRwLmIgPSBiKmludkxlbjtcblx0XHRwLmMgPSBjKmludkxlbjtcblx0XHRwLmQgPSAoYzI0IC0gYzQ0KSppbnZMZW47XG5cblx0XHQvLyBuZWFyXG5cdFx0cCA9IHRoaXMuX2ZydXN0dW1QbGFuZXNbNF07XG5cdFx0YSA9IGMzMTtcblx0XHRiID0gYzMyO1xuXHRcdGMgPSBjMzM7XG5cdFx0aW52TGVuID0gMS9NYXRoLnNxcnQoYSphICsgYipiICsgYypjKTtcblx0XHRwLmEgPSBhKmludkxlbjtcblx0XHRwLmIgPSBiKmludkxlbjtcblx0XHRwLmMgPSBjKmludkxlbjtcblx0XHRwLmQgPSAtYzM0KmludkxlbjtcblxuXHRcdC8vIGZhclxuXHRcdHAgPSB0aGlzLl9mcnVzdHVtUGxhbmVzWzVdO1xuXHRcdGEgPSBjNDEgLSBjMzE7XG5cdFx0YiA9IGM0MiAtIGMzMjtcblx0XHRjID0gYzQzIC0gYzMzO1xuXHRcdGludkxlbiA9IDEvTWF0aC5zcXJ0KGEqYSArIGIqYiArIGMqYyk7XG5cdFx0cC5hID0gYSppbnZMZW47XG5cdFx0cC5iID0gYippbnZMZW47XG5cdFx0cC5jID0gYyppbnZMZW47XG5cdFx0cC5kID0gKGMzNCAtIGM0NCkqaW52TGVuO1xuXG5cdFx0dGhpcy5fZnJ1c3R1bVBsYW5lc0RpcnR5ID0gZmFsc2U7XG5cblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcEludmFsaWRhdGVTY2VuZVRyYW5zZm9ybSgpXG5cdHtcblx0XHRzdXBlci5wSW52YWxpZGF0ZVNjZW5lVHJhbnNmb3JtKCk7XG5cblx0XHR0aGlzLl92aWV3UHJvamVjdGlvbkRpcnR5ID0gdHJ1ZTtcblx0XHR0aGlzLl9mcnVzdHVtUGxhbmVzRGlydHkgPSB0cnVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHB1YmxpYyBwVXBkYXRlQm91bmRzKClcblx0e1xuXHRcdHRoaXMuX3BCb3VuZHNJbnZhbGlkID0gZmFsc2U7XG5cdFx0dGhpcy5fcEJvdW5kcy5udWxsaWZ5KCk7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgcHJvamVjdGlvbigpOklQcm9qZWN0aW9uXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcHJvamVjdGlvbjtcblx0fVxuXG5cdHB1YmxpYyBzZXQgcHJvamVjdGlvbih2YWx1ZTpJUHJvamVjdGlvbilcblx0e1xuXHRcdGlmICh0aGlzLl9wcm9qZWN0aW9uID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0aWYgKCF2YWx1ZSlcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIlByb2plY3Rpb24gY2Fubm90IGJlIG51bGwhXCIpO1xuXG5cdFx0dGhpcy5fcHJvamVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFByb2plY3Rpb25FdmVudC5NQVRSSVhfQ0hBTkdFRCwgdGhpcy5fb25Qcm9qZWN0aW9uTWF0cml4Q2hhbmdlZERlbGVnYXRlKTtcblx0XHR0aGlzLl9wcm9qZWN0aW9uID0gdmFsdWU7XG5cdFx0dGhpcy5fcHJvamVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFByb2plY3Rpb25FdmVudC5NQVRSSVhfQ0hBTkdFRCwgdGhpcy5fb25Qcm9qZWN0aW9uTWF0cml4Q2hhbmdlZERlbGVnYXRlKTtcblx0XHR0aGlzLmRpc3BhdGNoRXZlbnQobmV3IENhbWVyYUV2ZW50KENhbWVyYUV2ZW50LlBST0pFQ1RJT05fQ0hBTkdFRCwgdGhpcykpO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHZpZXdQcm9qZWN0aW9uKCk6TWF0cml4M0Rcblx0e1xuXHRcdGlmICh0aGlzLl92aWV3UHJvamVjdGlvbkRpcnR5KSB7XG5cdFx0XHR0aGlzLl92aWV3UHJvamVjdGlvbi5jb3B5RnJvbSh0aGlzLmludmVyc2VTY2VuZVRyYW5zZm9ybSk7XG5cdFx0XHR0aGlzLl92aWV3UHJvamVjdGlvbi5hcHBlbmQodGhpcy5fcHJvamVjdGlvbi5tYXRyaXgpO1xuXHRcdFx0dGhpcy5fdmlld1Byb2plY3Rpb25EaXJ0eSA9IGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLl92aWV3UHJvamVjdGlvbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxjdWxhdGVzIHRoZSByYXkgaW4gc2NlbmUgc3BhY2UgZnJvbSB0aGUgY2FtZXJhIHRvIHRoZSBnaXZlbiBub3JtYWxpemVkIGNvb3JkaW5hdGVzIGluIHNjcmVlbiBzcGFjZS5cblx0ICpcblx0ICogQHBhcmFtIG5YIFRoZSBub3JtYWxpc2VkIHggY29vcmRpbmF0ZSBpbiBzY3JlZW4gc3BhY2UsIC0xIGNvcnJlc3BvbmRzIHRvIHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIHZpZXdwb3J0LCAxIHRvIHRoZSByaWdodC5cblx0ICogQHBhcmFtIG5ZIFRoZSBub3JtYWxpc2VkIHkgY29vcmRpbmF0ZSBpbiBzY3JlZW4gc3BhY2UsIC0xIGNvcnJlc3BvbmRzIHRvIHRoZSB0b3AgZWRnZSBvZiB0aGUgdmlld3BvcnQsIDEgdG8gdGhlIGJvdHRvbS5cblx0ICogQHBhcmFtIHNaIFRoZSB6IGNvb3JkaW5hdGUgaW4gc2NyZWVuIHNwYWNlLCByZXByZXNlbnRpbmcgdGhlIGRpc3RhbmNlIGludG8gdGhlIHNjcmVlbi5cblx0ICogQHJldHVybiBUaGUgcmF5IGZyb20gdGhlIGNhbWVyYSB0byB0aGUgc2NlbmUgc3BhY2UgcG9zaXRpb24gb2YgdGhlIGdpdmVuIHNjcmVlbiBjb29yZGluYXRlcy5cblx0ICovXG5cdHB1YmxpYyBnZXRSYXkoblg6bnVtYmVyLCBuWTpudW1iZXIsIHNaOm51bWJlcik6VmVjdG9yM0Rcblx0e1xuXHRcdHJldHVybiB0aGlzLnNjZW5lVHJhbnNmb3JtLmRlbHRhVHJhbnNmb3JtVmVjdG9yKHRoaXMuX3Byb2plY3Rpb24udW5wcm9qZWN0KG5YLCBuWSwgc1opKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxjdWxhdGVzIHRoZSBub3JtYWxpc2VkIHBvc2l0aW9uIGluIHNjcmVlbiBzcGFjZSBvZiB0aGUgZ2l2ZW4gc2NlbmUgcG9zaXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBwb2ludDNkIHRoZSBwb3NpdGlvbiB2ZWN0b3Igb2YgdGhlIHNjZW5lIGNvb3JkaW5hdGVzIHRvIGJlIHByb2plY3RlZC5cblx0ICogQHJldHVybiBUaGUgbm9ybWFsaXNlZCBzY3JlZW4gcG9zaXRpb24gb2YgdGhlIGdpdmVuIHNjZW5lIGNvb3JkaW5hdGVzLlxuXHQgKi9cblx0cHVibGljIHByb2plY3QocG9pbnQzZDpWZWN0b3IzRCk6VmVjdG9yM0Rcblx0e1xuXHRcdHJldHVybiB0aGlzLl9wcm9qZWN0aW9uLnByb2plY3QodGhpcy5pbnZlcnNlU2NlbmVUcmFuc2Zvcm0udHJhbnNmb3JtVmVjdG9yKHBvaW50M2QpKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxjdWxhdGVzIHRoZSBzY2VuZSBwb3NpdGlvbiBvZiB0aGUgZ2l2ZW4gbm9ybWFsaXplZCBjb29yZGluYXRlcyBpbiBzY3JlZW4gc3BhY2UuXG5cdCAqXG5cdCAqIEBwYXJhbSBuWCBUaGUgbm9ybWFsaXNlZCB4IGNvb3JkaW5hdGUgaW4gc2NyZWVuIHNwYWNlLCBtaW51cyB0aGUgb3JpZ2luWCBvZmZzZXQgb2YgdGhlIHByb2plY3Rpb24gcHJvcGVydHkuXG5cdCAqIEBwYXJhbSBuWSBUaGUgbm9ybWFsaXNlZCB5IGNvb3JkaW5hdGUgaW4gc2NyZWVuIHNwYWNlLCBtaW51cyB0aGUgb3JpZ2luWSBvZmZzZXQgb2YgdGhlIHByb2plY3Rpb24gcHJvcGVydHkuXG5cdCAqIEBwYXJhbSBzWiBUaGUgeiBjb29yZGluYXRlIGluIHNjcmVlbiBzcGFjZSwgcmVwcmVzZW50aW5nIHRoZSBkaXN0YW5jZSBpbnRvIHRoZSBzY3JlZW4uXG5cdCAqIEByZXR1cm4gVGhlIHNjZW5lIHBvc2l0aW9uIG9mIHRoZSBnaXZlbiBzY3JlZW4gY29vcmRpbmF0ZXMuXG5cdCAqL1xuXHRwdWJsaWMgdW5wcm9qZWN0KG5YOm51bWJlciwgblk6bnVtYmVyLCBzWjpudW1iZXIpOlZlY3RvcjNEXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5zY2VuZVRyYW5zZm9ybS50cmFuc2Zvcm1WZWN0b3IodGhpcy5fcHJvamVjdGlvbi51bnByb2plY3QoblgsIG5ZLCBzWikpO1xuXHR9XG5cblx0cHVibGljIF9pQ29sbGVjdFJlbmRlcmFibGVzKHJlbmRlcmVyOklSZW5kZXJlcilcblx0e1xuXHRcdC8vIFNpbmNlIHRoaXMgZ2V0dGVyIGlzIGludm9rZWQgZXZlcnkgaXRlcmF0aW9uIG9mIHRoZSByZW5kZXIgbG9vcCwgYW5kXG5cdFx0Ly8gdGhlIHByZWZhYiBjb25zdHJ1Y3QgY291bGQgYWZmZWN0IHRoZSBzdWItbWVzaGVzLCB0aGUgcHJlZmFiIGlzXG5cdFx0Ly8gdmFsaWRhdGVkIGhlcmUgdG8gZ2l2ZSBpdCBhIGNoYW5jZSB0byByZWJ1aWxkLlxuXHRcdGlmICh0aGlzLl9pU291cmNlUHJlZmFiKVxuXHRcdFx0dGhpcy5faVNvdXJjZVByZWZhYi5faVZhbGlkYXRlKCk7XG5cblx0XHR0aGlzLl9pQ29sbGVjdFJlbmRlcmFibGUocmVuZGVyZXIpO1xuXHR9XG5cblx0cHVibGljIF9pQ29sbGVjdFJlbmRlcmFibGUocmVuZGVyZXI6SVJlbmRlcmVyKVxuXHR7XG5cdFx0Ly9ub3RoaW5nIHRvIGRvIGhlcmVcblx0fVxufVxuXG5leHBvcnQgPSBDYW1lcmE7Il19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9jYW1lcmEudHMiXSwibmFtZXMiOlsiQ2FtZXJhIiwiQ2FtZXJhLmNvbnN0cnVjdG9yIiwiQ2FtZXJhLnBDcmVhdGVEZWZhdWx0Qm91bmRpbmdWb2x1bWUiLCJDYW1lcmEucENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUiLCJDYW1lcmEuYXNzZXRUeXBlIiwiQ2FtZXJhLm9uUHJvamVjdGlvbk1hdHJpeENoYW5nZWQiLCJDYW1lcmEuZnJ1c3R1bVBsYW5lcyIsIkNhbWVyYS51cGRhdGVGcnVzdHVtIiwiQ2FtZXJhLnBJbnZhbGlkYXRlU2NlbmVUcmFuc2Zvcm0iLCJDYW1lcmEucFVwZGF0ZUJvdW5kcyIsIkNhbWVyYS5wcm9qZWN0aW9uIiwiQ2FtZXJhLnZpZXdQcm9qZWN0aW9uIiwiQ2FtZXJhLmdldFJheSIsIkNhbWVyYS5wcm9qZWN0IiwiQ2FtZXJhLnVucHJvamVjdCIsIkNhbWVyYS5faUNvbGxlY3RSZW5kZXJhYmxlcyIsIkNhbWVyYS5faUNvbGxlY3RSZW5kZXJhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFPLFVBQVUsV0FBYyxtQ0FBbUMsQ0FBQyxDQUFDO0FBQ3BFLElBQU8sUUFBUSxXQUFlLCtCQUErQixDQUFDLENBQUM7QUFDL0QsSUFBTyxPQUFPLFdBQWUsOEJBQThCLENBQUMsQ0FBQztBQUU3RCxJQUFPLFNBQVMsV0FBYyxtQ0FBbUMsQ0FBQyxDQUFDO0FBQ25FLElBQU8sZUFBZSxXQUFhLHdDQUF3QyxDQUFDLENBQUM7QUFFN0UsSUFBTyxxQkFBcUIsV0FBVyxtREFBbUQsQ0FBQyxDQUFDO0FBRTVGLElBQU8sc0JBQXNCLFdBQVcsc0RBQXNELENBQUMsQ0FBQztBQUVoRyxJQUFPLFdBQVcsV0FBYyx1Q0FBdUMsQ0FBQyxDQUFDO0FBQ3pFLElBQU8sVUFBVSxXQUFjLHlDQUF5QyxDQUFDLENBQUM7QUFLMUUsSUFBTSxNQUFNO0lBQVNBLFVBQWZBLE1BQU1BLFVBQStCQTtJQVMx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QTtRQUNkQSxJQUFJQSxHQUFHQSxHQUFZQSxJQUFJQSxLQUFLQSxDQUFTQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUN6Q0EsQ0FBQ0E7UUFDREEsSUFBSUEsTUFBYUEsQ0FBQ0E7UUFDbEJBLElBQUlBLENBQUNBLGNBQWNBLENBQUNBLGFBQWFBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1FBRXZDQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUNkQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUNkQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUNkQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUNkQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNiQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUNkQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUVkQSxBQUNBQSxhQURhQTtRQUNiQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBRTFCQSxBQUNBQSxjQURjQTtRQUNkQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBRXpCQSxBQUNBQSxTQURTQTtRQUNUQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBRTFCQSxBQUNBQSxNQURNQTtRQUNOQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBRXpCQSxBQUNBQSxPQURPQTtRQUNQQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDUkEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDUkEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDUkEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLEdBQUNBLE1BQU1BLENBQUNBO1FBRWxCQSxBQUNBQSxNQURNQTtRQUNOQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDZEEsTUFBTUEsR0FBR0EsQ0FBQ0EsR0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdENBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLENBQUNBLEdBQUNBLE1BQU1BLENBQUNBO1FBRXpCQSxJQUFJQSxDQUFDQSxtQkFBbUJBLEdBQUdBLEtBQUtBLENBQUNBO0lBRWxDQSxDQUFDQTtJQUVEUDs7T0FFR0E7SUFDSUEsMENBQXlCQSxHQUFoQ0E7UUFFQ1EsZ0JBQUtBLENBQUNBLHlCQUF5QkEsV0FBRUEsQ0FBQ0E7UUFFbENBLElB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LENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLFNBQVNBLENBQUNBLEVBQUVBLEVBQUVBLEVBQUVBLEVBQUVBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO0lBQ3BGQSxDQUFDQTtJQUVNZCxxQ0FBb0JBLEdBQTNCQSxVQUE0QkEsWUFBMEJBO1FBRXJEZSxBQUdBQSx1RUFIdUVBO1FBQ3ZFQSxrRUFBa0VBO1FBQ2xFQSxpREFBaURBO1FBQ2pEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQTtZQUN2QkEsSUFBSUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFFbENBLElBQUlBLENBQUNBLG1CQUFtQkEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0E7SUFDeENBLENBQUNBO0lBRU1mLG9DQUFtQkEsR0FBMUJBLFVBQTJCQSxZQUEwQkE7UUFFcERnQixvQkFBb0JBO0lBQ3JCQSxDQUFDQTtJQUNGaEIsYUFBQ0E7QUFBREEsQ0FoUkEsQUFnUkNBLEVBaFJvQixzQkFBc0IsRUFnUjFDO0FBRUQsQUFBZ0IsaUJBQVAsTUFBTSxDQUFDIiwiZmlsZSI6ImVudGl0aWVzL0NhbWVyYS5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQm91bmRpbmdWb2x1bWVCYXNlXHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9ib3VuZHMvQm91bmRpbmdWb2x1bWVCYXNlXCIpO1xuaW1wb3J0IE51bGxCb3VuZHNcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9ib3VuZHMvTnVsbEJvdW5kc1wiKTtcbmltcG9ydCBNYXRyaXgzRFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9NYXRyaXgzRFwiKTtcbmltcG9ydCBQbGFuZTNEXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1BsYW5lM0RcIik7XG5pbXBvcnQgVmVjdG9yM0RcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vVmVjdG9yM0RcIik7XG5pbXBvcnQgQXNzZXRUeXBlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvbGlicmFyeS9Bc3NldFR5cGVcIik7XG5pbXBvcnQgUHJvamVjdGlvbkV2ZW50XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2V2ZW50cy9Qcm9qZWN0aW9uRXZlbnRcIik7XG5pbXBvcnQgSVByb2plY3Rpb25cdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9wcm9qZWN0aW9ucy9JUHJvamVjdGlvblwiKTtcbmltcG9ydCBQZXJzcGVjdGl2ZVByb2plY3Rpb25cdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9wcm9qZWN0aW9ucy9QZXJzcGVjdGl2ZVByb2plY3Rpb25cIik7XG5cbmltcG9ydCBEaXNwbGF5T2JqZWN0Q29udGFpbmVyXHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvY29udGFpbmVycy9EaXNwbGF5T2JqZWN0Q29udGFpbmVyXCIpO1xuaW1wb3J0IElFbnRpdHlcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2VudGl0aWVzL0lFbnRpdHlcIik7XG5pbXBvcnQgQ2FtZXJhRXZlbnRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9ldmVudHMvQ2FtZXJhRXZlbnRcIik7XG5pbXBvcnQgQ2FtZXJhTm9kZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9DYW1lcmFOb2RlXCIpO1xuaW1wb3J0IEVudGl0eU5vZGVcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wYXJ0aXRpb24vRW50aXR5Tm9kZVwiKTtcbmltcG9ydCBJUmVuZGVyZXJQb29sXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3Bvb2wvSVJlbmRlcmVyUG9vbFwiKTtcblxuXG5jbGFzcyBDYW1lcmEgZXh0ZW5kcyBEaXNwbGF5T2JqZWN0Q29udGFpbmVyIGltcGxlbWVudHMgSUVudGl0eVxue1xuXHRwcml2YXRlIF92aWV3UHJvamVjdGlvbjpNYXRyaXgzRCA9IG5ldyBNYXRyaXgzRCgpO1xuXHRwcml2YXRlIF92aWV3UHJvamVjdGlvbkRpcnR5OkJvb2xlYW4gPSB0cnVlO1xuXHRwcml2YXRlIF9wcm9qZWN0aW9uOklQcm9qZWN0aW9uO1xuXHRwcml2YXRlIF9mcnVzdHVtUGxhbmVzOkFycmF5PFBsYW5lM0Q+O1xuXHRwcml2YXRlIF9mcnVzdHVtUGxhbmVzRGlydHk6Qm9vbGVhbiA9IHRydWU7XG5cdHByaXZhdGUgX29uUHJvamVjdGlvbk1hdHJpeENoYW5nZWREZWxlZ2F0ZTooZXZlbnQ6UHJvamVjdGlvbkV2ZW50KSA9PiB2b2lkO1xuXG5cdGNvbnN0cnVjdG9yKHByb2plY3Rpb246SVByb2plY3Rpb24gPSBudWxsKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuX3BJc0VudGl0eSA9IHRydWU7XG5cblx0XHR0aGlzLl9vblByb2plY3Rpb25NYXRyaXhDaGFuZ2VkRGVsZWdhdGUgPSAoZXZlbnQ6UHJvamVjdGlvbkV2ZW50KSA9PiB0aGlzLm9uUHJvamVjdGlvbk1hdHJpeENoYW5nZWQoZXZlbnQpO1xuXG5cdFx0dGhpcy5fcHJvamVjdGlvbiA9IHByb2plY3Rpb24gfHwgbmV3IFBlcnNwZWN0aXZlUHJvamVjdGlvbigpO1xuXHRcdHRoaXMuX3Byb2plY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihQcm9qZWN0aW9uRXZlbnQuTUFUUklYX0NIQU5HRUQsIHRoaXMuX29uUHJvamVjdGlvbk1hdHJpeENoYW5nZWREZWxlZ2F0ZSk7XG5cblx0XHR0aGlzLl9mcnVzdHVtUGxhbmVzID0gW107XG5cblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCA2OyArK2kpXG5cdFx0XHR0aGlzLl9mcnVzdHVtUGxhbmVzW2ldID0gbmV3IFBsYW5lM0QoKTtcblxuXHRcdHRoaXMueiA9IC0xMDAwO1xuXG5cdH1cblxuXHRwdWJsaWMgcENyZWF0ZURlZmF1bHRCb3VuZGluZ1ZvbHVtZSgpOkJvdW5kaW5nVm9sdW1lQmFzZVxuXHR7XG5cdFx0cmV0dXJuIG5ldyBOdWxsQm91bmRzKCk7XG5cdH1cblxuXHQvKipcblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0cHVibGljIHBDcmVhdGVFbnRpdHlQYXJ0aXRpb25Ob2RlKCk6RW50aXR5Tm9kZVxuXHR7XG5cdFx0cmV0dXJuIG5ldyBDYW1lcmFOb2RlKHRoaXMpO1xuXHR9XG5cblx0Ly9Ab3ZlcnJpZGVcblx0cHVibGljIGdldCBhc3NldFR5cGUoKTpzdHJpbmdcblx0e1xuXHRcdHJldHVybiBBc3NldFR5cGUuQ0FNRVJBO1xuXHR9XG5cblx0cHJpdmF0ZSBvblByb2plY3Rpb25NYXRyaXhDaGFuZ2VkKGV2ZW50OlByb2plY3Rpb25FdmVudClcblx0e1xuXHRcdHRoaXMuX3ZpZXdQcm9qZWN0aW9uRGlydHkgPSB0cnVlO1xuXHRcdHRoaXMuX2ZydXN0dW1QbGFuZXNEaXJ0eSA9IHRydWU7XG5cdFx0dGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcblx0fVxuXG5cdHB1YmxpYyBnZXQgZnJ1c3R1bVBsYW5lcygpOkFycmF5PFBsYW5lM0Q+XG5cdHtcblx0XHRpZiAodGhpcy5fZnJ1c3R1bVBsYW5lc0RpcnR5KVxuXHRcdFx0dGhpcy51cGRhdGVGcnVzdHVtKCk7XG5cblx0XHRyZXR1cm4gdGhpcy5fZnJ1c3R1bVBsYW5lcztcblx0fVxuXG5cdHByaXZhdGUgdXBkYXRlRnJ1c3R1bSgpXG5cdHtcblx0XHR2YXIgYTpudW1iZXIsIGI6bnVtYmVyLCBjOm51bWJlcjtcblx0XHQvL3ZhciBkIDogTnVtYmVyO1xuXHRcdHZhciBjMTE6bnVtYmVyLCBjMTI6bnVtYmVyLCBjMTM6bnVtYmVyLCBjMTQ6bnVtYmVyO1xuXHRcdHZhciBjMjE6bnVtYmVyLCBjMjI6bnVtYmVyLCBjMjM6bnVtYmVyLCBjMjQ6bnVtYmVyO1xuXHRcdHZhciBjMzE6bnVtYmVyLCBjMzI6bnVtYmVyLCBjMzM6bnVtYmVyLCBjMzQ6bnVtYmVyO1xuXHRcdHZhciBjNDE6bnVtYmVyLCBjNDI6bnVtYmVyLCBjNDM6bnVtYmVyLCBjNDQ6bnVtYmVyO1xuXHRcdHZhciBwOlBsYW5lM0Q7XG5cdFx0dmFyIHJhdzpudW1iZXJbXSA9IG5ldyBBcnJheTxudW1iZXI+KDE2KTtcblx0XHQ7Ly9uZXcgQXJyYXkoMTYgKTthd2F5LnV0aWxzLk1hdHJpeDNEVXRpbHMuUkFXX0RBVEFfQ09OVEFJTkVSOy8vW107XG5cdFx0dmFyIGludkxlbjpudW1iZXI7XG5cdFx0dGhpcy52aWV3UHJvamVjdGlvbi5jb3B5UmF3RGF0YVRvKHJhdyk7XG5cblx0XHRjMTEgPSByYXdbMF07XG5cdFx0YzEyID0gcmF3WzRdO1xuXHRcdGMxMyA9IHJhd1s4XTtcblx0XHRjMTQgPSByYXdbMTJdO1xuXHRcdGMyMSA9IHJhd1sxXTtcblx0XHRjMjIgPSByYXdbNV07XG5cdFx0YzIzID0gcmF3WzldO1xuXHRcdGMyNCA9IHJhd1sxM107XG5cdFx0YzMxID0gcmF3WzJdO1xuXHRcdGMzMiA9IHJhd1s2XTtcblx0XHRjMzMgPSByYXdbMTBdO1xuXHRcdGMzNCA9IHJhd1sxNF07XG5cdFx0YzQxID0gcmF3WzNdO1xuXHRcdGM0MiA9IHJhd1s3XTtcblx0XHRjNDMgPSByYXdbMTFdO1xuXHRcdGM0NCA9IHJhd1sxNV07XG5cblx0XHQvLyBsZWZ0IHBsYW5lXG5cdFx0cCA9IHRoaXMuX2ZydXN0dW1QbGFuZXNbMF07XG5cdFx0YSA9IGM0MSArIGMxMTtcblx0XHRiID0gYzQyICsgYzEyO1xuXHRcdGMgPSBjNDMgKyBjMTM7XG5cdFx0aW52TGVuID0gMS9NYXRoLnNxcnQoYSphICsgYipiICsgYypjKTtcblx0XHRwLmEgPSBhKmludkxlbjtcblx0XHRwLmIgPSBiKmludkxlbjtcblx0XHRwLmMgPSBjKmludkxlbjtcblx0XHRwLmQgPSAtKGM0NCArIGMxNCkqaW52TGVuO1xuXG5cdFx0Ly8gcmlnaHQgcGxhbmVcblx0XHRwID0gdGhpcy5fZnJ1c3R1bVBsYW5lc1sxXTtcblx0XHRhID0gYzQxIC0gYzExO1xuXHRcdGIgPSBjNDIgLSBjMTI7XG5cdFx0YyA9IGM0MyAtIGMxMztcblx0XHRpbnZMZW4gPSAxL01hdGguc3FydChhKmEgKyBiKmIgKyBjKmMpO1xuXHRcdHAuYSA9IGEqaW52TGVuO1xuXHRcdHAuYiA9IGIqaW52TGVuO1xuXHRcdHAuYyA9IGMqaW52TGVuO1xuXHRcdHAuZCA9IChjMTQgLSBjNDQpKmludkxlbjtcblxuXHRcdC8vIGJvdHRvbVxuXHRcdHAgPSB0aGlzLl9mcnVzdHVtUGxhbmVzWzJdO1xuXHRcdGEgPSBjNDEgKyBjMjE7XG5cdFx0YiA9IGM0MiArIGMyMjtcblx0XHRjID0gYzQzICsgYzIzO1xuXHRcdGludkxlbiA9IDEvTWF0aC5zcXJ0KGEqYSArIGIqYiArIGMqYyk7XG5cdFx0cC5hID0gYSppbnZMZW47XG5cdFx0cC5iID0gYippbnZMZW47XG5cdFx0cC5jID0gYyppbnZMZW47XG5cdFx0cC5kID0gLShjNDQgKyBjMjQpKmludkxlbjtcblxuXHRcdC8vIHRvcFxuXHRcdHAgPSB0aGlzLl9mcnVzdHVtUGxhbmVzWzNdO1xuXHRcdGEgPSBjNDEgLSBjMjE7XG5cdFx0YiA9IGM0MiAtIGMyMjtcblx0XHRjID0gYzQzIC0gYzIzO1xuXHRcdGludkxlbiA9IDEvTWF0aC5zcXJ0KGEqYSArIGIqYiArIGMqYyk7XG5cdFx0cC5hID0gYSppbnZMZW47XG5cdFx0cC5iID0gYippbnZMZW47XG5cdFx0cC5jID0gYyppbnZMZW47XG5cdFx0cC5kID0gKGMyNCAtIGM0NCkqaW52TGVuO1xuXG5cdFx0Ly8gbmVhclxuXHRcdHAgPSB0aGlzLl9mcnVzdHVtUGxhbmVzWzRdO1xuXHRcdGEgPSBjMzE7XG5cdFx0YiA9IGMzMjtcblx0XHRjID0gYzMzO1xuXHRcdGludkxlbiA9IDEvTWF0aC5zcXJ0KGEqYSArIGIqYiArIGMqYyk7XG5cdFx0cC5hID0gYSppbnZMZW47XG5cdFx0cC5iID0gYippbnZMZW47XG5cdFx0cC5jID0gYyppbnZMZW47XG5cdFx0cC5kID0gLWMzNCppbnZMZW47XG5cblx0XHQvLyBmYXJcblx0XHRwID0gdGhpcy5fZnJ1c3R1bVBsYW5lc1s1XTtcblx0XHRhID0gYzQxIC0gYzMxO1xuXHRcdGIgPSBjNDIgLSBjMzI7XG5cdFx0YyA9IGM0MyAtIGMzMztcblx0XHRpbnZMZW4gPSAxL01hdGguc3FydChhKmEgKyBiKmIgKyBjKmMpO1xuXHRcdHAuYSA9IGEqaW52TGVuO1xuXHRcdHAuYiA9IGIqaW52TGVuO1xuXHRcdHAuYyA9IGMqaW52TGVuO1xuXHRcdHAuZCA9IChjMzQgLSBjNDQpKmludkxlbjtcblxuXHRcdHRoaXMuX2ZydXN0dW1QbGFuZXNEaXJ0eSA9IGZhbHNlO1xuXG5cdH1cblxuXHQvKipcblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0cHVibGljIHBJbnZhbGlkYXRlU2NlbmVUcmFuc2Zvcm0oKVxuXHR7XG5cdFx0c3VwZXIucEludmFsaWRhdGVTY2VuZVRyYW5zZm9ybSgpO1xuXG5cdFx0dGhpcy5fdmlld1Byb2plY3Rpb25EaXJ0eSA9IHRydWU7XG5cdFx0dGhpcy5fZnJ1c3R1bVBsYW5lc0RpcnR5ID0gdHJ1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcFVwZGF0ZUJvdW5kcygpXG5cdHtcblx0XHR0aGlzLl9wQm91bmRzSW52YWxpZCA9IGZhbHNlO1xuXHRcdHRoaXMuX3BCb3VuZHMubnVsbGlmeSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHByb2plY3Rpb24oKTpJUHJvamVjdGlvblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3Byb2plY3Rpb247XG5cdH1cblxuXHRwdWJsaWMgc2V0IHByb2plY3Rpb24odmFsdWU6SVByb2plY3Rpb24pXG5cdHtcblx0XHRpZiAodGhpcy5fcHJvamVjdGlvbiA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdGlmICghdmFsdWUpXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJQcm9qZWN0aW9uIGNhbm5vdCBiZSBudWxsIVwiKTtcblxuXHRcdHRoaXMuX3Byb2plY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihQcm9qZWN0aW9uRXZlbnQuTUFUUklYX0NIQU5HRUQsIHRoaXMuX29uUHJvamVjdGlvbk1hdHJpeENoYW5nZWREZWxlZ2F0ZSk7XG5cdFx0dGhpcy5fcHJvamVjdGlvbiA9IHZhbHVlO1xuXHRcdHRoaXMuX3Byb2plY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihQcm9qZWN0aW9uRXZlbnQuTUFUUklYX0NIQU5HRUQsIHRoaXMuX29uUHJvamVjdGlvbk1hdHJpeENoYW5nZWREZWxlZ2F0ZSk7XG5cdFx0dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDYW1lcmFFdmVudChDYW1lcmFFdmVudC5QUk9KRUNUSU9OX0NIQU5HRUQsIHRoaXMpKTtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCB2aWV3UHJvamVjdGlvbigpOk1hdHJpeDNEXG5cdHtcblx0XHRpZiAodGhpcy5fdmlld1Byb2plY3Rpb25EaXJ0eSkge1xuXHRcdFx0dGhpcy5fdmlld1Byb2plY3Rpb24uY29weUZyb20odGhpcy5pbnZlcnNlU2NlbmVUcmFuc2Zvcm0pO1xuXHRcdFx0dGhpcy5fdmlld1Byb2plY3Rpb24uYXBwZW5kKHRoaXMuX3Byb2plY3Rpb24ubWF0cml4KTtcblx0XHRcdHRoaXMuX3ZpZXdQcm9qZWN0aW9uRGlydHkgPSBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5fdmlld1Byb2plY3Rpb247XG5cdH1cblxuXHQvKipcblx0ICogQ2FsY3VsYXRlcyB0aGUgcmF5IGluIHNjZW5lIHNwYWNlIGZyb20gdGhlIGNhbWVyYSB0byB0aGUgZ2l2ZW4gbm9ybWFsaXplZCBjb29yZGluYXRlcyBpbiBzY3JlZW4gc3BhY2UuXG5cdCAqXG5cdCAqIEBwYXJhbSBuWCBUaGUgbm9ybWFsaXNlZCB4IGNvb3JkaW5hdGUgaW4gc2NyZWVuIHNwYWNlLCAtMSBjb3JyZXNwb25kcyB0byB0aGUgbGVmdCBlZGdlIG9mIHRoZSB2aWV3cG9ydCwgMSB0byB0aGUgcmlnaHQuXG5cdCAqIEBwYXJhbSBuWSBUaGUgbm9ybWFsaXNlZCB5IGNvb3JkaW5hdGUgaW4gc2NyZWVuIHNwYWNlLCAtMSBjb3JyZXNwb25kcyB0byB0aGUgdG9wIGVkZ2Ugb2YgdGhlIHZpZXdwb3J0LCAxIHRvIHRoZSBib3R0b20uXG5cdCAqIEBwYXJhbSBzWiBUaGUgeiBjb29yZGluYXRlIGluIHNjcmVlbiBzcGFjZSwgcmVwcmVzZW50aW5nIHRoZSBkaXN0YW5jZSBpbnRvIHRoZSBzY3JlZW4uXG5cdCAqIEByZXR1cm4gVGhlIHJheSBmcm9tIHRoZSBjYW1lcmEgdG8gdGhlIHNjZW5lIHNwYWNlIHBvc2l0aW9uIG9mIHRoZSBnaXZlbiBzY3JlZW4gY29vcmRpbmF0ZXMuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0UmF5KG5YOm51bWJlciwgblk6bnVtYmVyLCBzWjpudW1iZXIpOlZlY3RvcjNEXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5zY2VuZVRyYW5zZm9ybS5kZWx0YVRyYW5zZm9ybVZlY3Rvcih0aGlzLl9wcm9qZWN0aW9uLnVucHJvamVjdChuWCwgblksIHNaKSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsY3VsYXRlcyB0aGUgbm9ybWFsaXNlZCBwb3NpdGlvbiBpbiBzY3JlZW4gc3BhY2Ugb2YgdGhlIGdpdmVuIHNjZW5lIHBvc2l0aW9uLlxuXHQgKlxuXHQgKiBAcGFyYW0gcG9pbnQzZCB0aGUgcG9zaXRpb24gdmVjdG9yIG9mIHRoZSBzY2VuZSBjb29yZGluYXRlcyB0byBiZSBwcm9qZWN0ZWQuXG5cdCAqIEByZXR1cm4gVGhlIG5vcm1hbGlzZWQgc2NyZWVuIHBvc2l0aW9uIG9mIHRoZSBnaXZlbiBzY2VuZSBjb29yZGluYXRlcy5cblx0ICovXG5cdHB1YmxpYyBwcm9qZWN0KHBvaW50M2Q6VmVjdG9yM0QpOlZlY3RvcjNEXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcHJvamVjdGlvbi5wcm9qZWN0KHRoaXMuaW52ZXJzZVNjZW5lVHJhbnNmb3JtLnRyYW5zZm9ybVZlY3Rvcihwb2ludDNkKSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsY3VsYXRlcyB0aGUgc2NlbmUgcG9zaXRpb24gb2YgdGhlIGdpdmVuIG5vcm1hbGl6ZWQgY29vcmRpbmF0ZXMgaW4gc2NyZWVuIHNwYWNlLlxuXHQgKlxuXHQgKiBAcGFyYW0gblggVGhlIG5vcm1hbGlzZWQgeCBjb29yZGluYXRlIGluIHNjcmVlbiBzcGFjZSwgbWludXMgdGhlIG9yaWdpblggb2Zmc2V0IG9mIHRoZSBwcm9qZWN0aW9uIHByb3BlcnR5LlxuXHQgKiBAcGFyYW0gblkgVGhlIG5vcm1hbGlzZWQgeSBjb29yZGluYXRlIGluIHNjcmVlbiBzcGFjZSwgbWludXMgdGhlIG9yaWdpblkgb2Zmc2V0IG9mIHRoZSBwcm9qZWN0aW9uIHByb3BlcnR5LlxuXHQgKiBAcGFyYW0gc1ogVGhlIHogY29vcmRpbmF0ZSBpbiBzY3JlZW4gc3BhY2UsIHJlcHJlc2VudGluZyB0aGUgZGlzdGFuY2UgaW50byB0aGUgc2NyZWVuLlxuXHQgKiBAcmV0dXJuIFRoZSBzY2VuZSBwb3NpdGlvbiBvZiB0aGUgZ2l2ZW4gc2NyZWVuIGNvb3JkaW5hdGVzLlxuXHQgKi9cblx0cHVibGljIHVucHJvamVjdChuWDpudW1iZXIsIG5ZOm51bWJlciwgc1o6bnVtYmVyKTpWZWN0b3IzRFxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuc2NlbmVUcmFuc2Zvcm0udHJhbnNmb3JtVmVjdG9yKHRoaXMuX3Byb2plY3Rpb24udW5wcm9qZWN0KG5YLCBuWSwgc1opKTtcblx0fVxuXG5cdHB1YmxpYyBfaUNvbGxlY3RSZW5kZXJhYmxlcyhyZW5kZXJlclBvb2w6SVJlbmRlcmVyUG9vbClcblx0e1xuXHRcdC8vIFNpbmNlIHRoaXMgZ2V0dGVyIGlzIGludm9rZWQgZXZlcnkgaXRlcmF0aW9uIG9mIHRoZSByZW5kZXIgbG9vcCwgYW5kXG5cdFx0Ly8gdGhlIHByZWZhYiBjb25zdHJ1Y3QgY291bGQgYWZmZWN0IHRoZSBzdWItbWVzaGVzLCB0aGUgcHJlZmFiIGlzXG5cdFx0Ly8gdmFsaWRhdGVkIGhlcmUgdG8gZ2l2ZSBpdCBhIGNoYW5jZSB0byByZWJ1aWxkLlxuXHRcdGlmICh0aGlzLl9pU291cmNlUHJlZmFiKVxuXHRcdFx0dGhpcy5faVNvdXJjZVByZWZhYi5faVZhbGlkYXRlKCk7XG5cblx0XHR0aGlzLl9pQ29sbGVjdFJlbmRlcmFibGUocmVuZGVyZXJQb29sKTtcblx0fVxuXG5cdHB1YmxpYyBfaUNvbGxlY3RSZW5kZXJhYmxlKHJlbmRlcmVyUG9vbDpJUmVuZGVyZXJQb29sKVxuXHR7XG5cdFx0Ly9ub3RoaW5nIHRvIGRvIGhlcmVcblx0fVxufVxuXG5leHBvcnQgPSBDYW1lcmE7Il19 \ No newline at end of file diff --git a/lib/entities/Camera.ts b/lib/entities/Camera.ts index 0779f4972..edeed0011 100644 --- a/lib/entities/Camera.ts +++ b/lib/entities/Camera.ts @@ -13,7 +13,7 @@ import IEntity = require("awayjs-display/lib/entities/IEntity"); import CameraEvent = require("awayjs-display/lib/events/CameraEvent"); import CameraNode = require("awayjs-display/lib/partition/CameraNode"); import EntityNode = require("awayjs-display/lib/partition/EntityNode"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); class Camera extends DisplayObjectContainer implements IEntity @@ -273,7 +273,7 @@ class Camera extends DisplayObjectContainer implements IEntity return this.sceneTransform.transformVector(this._projection.unproject(nX, nY, sZ)); } - public _iCollectRenderables(renderer:IRenderer) + public _iCollectRenderables(rendererPool:IRendererPool) { // Since this getter is invoked every iteration of the render loop, and // the prefab construct could affect the sub-meshes, the prefab is @@ -281,10 +281,10 @@ class Camera extends DisplayObjectContainer implements IEntity if (this._iSourcePrefab) this._iSourcePrefab._iValidate(); - this._iCollectRenderable(renderer); + this._iCollectRenderable(rendererPool); } - public _iCollectRenderable(renderer:IRenderer) + public _iCollectRenderable(rendererPool:IRendererPool) { //nothing to do here } diff --git a/lib/entities/DirectionalLight.js b/lib/entities/DirectionalLight.js index b8f3049ec..2eee989d1 100755 --- a/lib/entities/DirectionalLight.js +++ b/lib/entities/DirectionalLight.js @@ -124,11 +124,11 @@ var DirectionalLight = (function (_super) { target.prepend(m); return target; }; - DirectionalLight.prototype._iCollectRenderables = function (renderer) { + DirectionalLight.prototype._iCollectRenderables = function (rendererPool) { //nothing to do here }; return DirectionalLight; })(LightBase); module.exports = DirectionalLight; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9kaXJlY3Rpb25hbGxpZ2h0LnRzIl0sIm5hbWVzIjpbIkRpcmVjdGlvbmFsTGlnaHQiLCJEaXJlY3Rpb25hbExpZ2h0LmNvbnN0cnVjdG9yIiwiRGlyZWN0aW9uYWxMaWdodC5zY2VuZURpcmVjdGlvbiIsIkRpcmVjdGlvbmFsTGlnaHQuZGlyZWN0aW9uIiwiRGlyZWN0aW9uYWxMaWdodC5wQ3JlYXRlRGVmYXVsdEJvdW5kaW5nVm9sdW1lIiwiRGlyZWN0aW9uYWxMaWdodC5wVXBkYXRlQm91bmRzIiwiRGlyZWN0aW9uYWxMaWdodC5wVXBkYXRlU2NlbmVUcmFuc2Zvcm0iLCJEaXJlY3Rpb25hbExpZ2h0LnBDcmVhdGVTaGFkb3dNYXBwZXIiLCJEaXJlY3Rpb25hbExpZ2h0LnBDcmVhdGVFbnRpdHlQYXJ0aXRpb25Ob2RlIiwiRGlyZWN0aW9uYWxMaWdodC5pR2V0T2JqZWN0UHJvamVjdGlvbk1hdHJpeCIsIkRpcmVjdGlvbmFsTGlnaHQuX2lDb2xsZWN0UmVuZGVyYWJsZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQU8sVUFBVSxXQUFlLG1DQUFtQyxDQUFDLENBQUM7QUFDckUsSUFBTyxRQUFRLFdBQWdCLCtCQUErQixDQUFDLENBQUM7QUFDaEUsSUFBTyxRQUFRLFdBQWdCLCtCQUErQixDQUFDLENBQUM7QUFFaEUsSUFBTyxTQUFTLFdBQWUsbUNBQW1DLENBQUMsQ0FBQztBQUNwRSxJQUFPLG9CQUFvQixXQUFhLG1EQUFtRCxDQUFDLENBQUM7QUFLN0YsSUFBTyx1QkFBdUIsV0FBWSxvRUFBb0UsQ0FBQyxDQUFDO0FBRWhILElBQU0sZ0JBQWdCO0lBQVNBLFVBQXpCQSxnQkFBZ0JBLFVBQWtCQTtJQU92Q0EsU0FQS0EsZ0JBQWdCQSxDQU9UQSxJQUFlQSxFQUFFQSxJQUFnQkEsRUFBRUEsSUFBZUE7UUFBbERDLG9CQUFlQSxHQUFmQSxRQUFlQTtRQUFFQSxvQkFBZ0JBLEdBQWhCQSxRQUFlQSxD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Q0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0E7Z0JBQ1pBLElBQUlBLEdBQUdBLENBQUNBLENBQUNBO1lBRVZBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLGVBQWVBLENBQUNBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO1lBRTlCQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQTtnQkFDWkEsSUFBSUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFFVkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0E7Z0JBQ1pBLElBQUlBLEdBQUdBLENBQUNBLENBQUNBO1lBRVZBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLGVBQWVBLENBQUNBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO1lBRTlCQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQTtnQkFDWkEsSUFBSUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFFVkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0E7Z0JBQ1pBLElBQUlBLEdBQUdBLENBQUNBLENBQUNBO1FBQ1hBLENBQUNBO1FBRURBLElBQUlBLFNBQVNBLEdBQVVBLENBQUNBLEdBQUNBLENBQUNBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLENBQUNBO1FBQ3ZDQSxJQUFJQSxTQUFTQSxHQUFVQSxDQUFDQSxHQUFDQSxDQUFDQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUN2Q0EsSUFBSUEsU0FBU0EsR0FBVUEsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDdkNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLFNBQVNBLENBQUNBO1FBQ3JCQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxHQUFDQSxTQUFTQSxDQUFDQTtRQUNyQkEsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsU0FBU0EsQ0FBQ0E7UUFDcEJBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLEdBQUNBLFNBQVNBLENBQUNBO1FBQ25DQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxHQUFDQSxTQUFTQSxDQUFDQTtRQUNuQ0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsR0FBQ0EsU0FBU0EsQ0FBQ0E7UUFDMUJBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1FBQ3BGQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTtRQUVaQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQTtZQUNYQSxNQUFNQSxHQUFHQSxJQUFJQSxRQUFRQSxFQUFFQSxDQUFDQTtRQUV6QkEsTUFBTUEsQ0FBQ0EsZUFBZUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7UUFDNUJBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBRWxCQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtJQUNmQSxDQUFDQTtJQUVNVCwrQ0FBb0JBLEdBQTNCQSxVQUE0QkEsUUFBa0JBO1FBRTdDVSxvQkFBb0JBO0lBQ3JCQSxDQUFDQTtJQUNGVix1QkFBQ0E7QUFBREEsQ0ExSkEsQUEwSkNBLEVBMUo4QixTQUFTLEVBMEp2QztBQUVELEFBQTBCLGlCQUFqQixnQkFBZ0IsQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9EaXJlY3Rpb25hbExpZ2h0LmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCb3VuZGluZ1ZvbHVtZUJhc2VcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvYm91bmRzL0JvdW5kaW5nVm9sdW1lQmFzZVwiKTtcbmltcG9ydCBOdWxsQm91bmRzXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9ib3VuZHMvTnVsbEJvdW5kc1wiKTtcbmltcG9ydCBNYXRyaXgzRFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL01hdHJpeDNEXCIpO1xuaW1wb3J0IFZlY3RvcjNEXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vVmVjdG9yM0RcIik7XG5cbmltcG9ydCBMaWdodEJhc2VcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvTGlnaHRCYXNlXCIpO1xuaW1wb3J0IERpcmVjdGlvbmFsTGlnaHROb2RlXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9EaXJlY3Rpb25hbExpZ2h0Tm9kZVwiKTtcbmltcG9ydCBFbnRpdHlOb2RlXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wYXJ0aXRpb24vRW50aXR5Tm9kZVwiKTtcbmltcG9ydCBJUmVuZGVyZXJcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3JlbmRlci9JUmVuZGVyZXJcIik7XG5pbXBvcnQgQ2FtZXJhXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2VudGl0aWVzL0NhbWVyYVwiKTtcbmltcG9ydCBJRW50aXR5XHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2VudGl0aWVzL0lFbnRpdHlcIik7XG5pbXBvcnQgRGlyZWN0aW9uYWxTaGFkb3dNYXBwZXJcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9zaGFkb3dtYXBwZXJzL0RpcmVjdGlvbmFsU2hhZG93TWFwcGVyXCIpO1xuXG5jbGFzcyBEaXJlY3Rpb25hbExpZ2h0IGV4dGVuZHMgTGlnaHRCYXNlIGltcGxlbWVudHMgSUVudGl0eVxue1xuXHRwcml2YXRlIF9kaXJlY3Rpb246VmVjdG9yM0Q7XG5cdHByaXZhdGUgX3RtcExvb2tBdDpWZWN0b3IzRDtcblx0cHJpdmF0ZSBfc2NlbmVEaXJlY3Rpb246VmVjdG9yM0Q7XG5cdHByaXZhdGUgX3Byb2pBQUJCUG9pbnRzOkFycmF5PG51bWJlcj47XG5cblx0Y29uc3RydWN0b3IoeERpcjpudW1iZXIgPSAwLCB5RGlyOm51bWJlciA9IC0xLCB6RGlyOm51bWJlciA9IDEpXG5cdHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy5fcElzRW50aXR5ID0gdHJ1ZTtcblxuXHRcdHRoaXMuZGlyZWN0aW9uID0gbmV3IFZlY3RvcjNEKHhEaXIsIHlEaXIsIHpEaXIpO1xuXG5cdFx0dGhpcy5fc2NlbmVEaXJlY3Rpb24gPSBuZXcgVmVjdG9yM0QoKTtcblx0fVxuXG5cdHB1YmxpYyBnZXQgc2NlbmVEaXJlY3Rpb24oKTpWZWN0b3IzRFxuXHR7XG5cdFx0aWYgKHRoaXMuX3BTY2VuZVRyYW5zZm9ybURpcnR5KVxuXHRcdFx0dGhpcy5wVXBkYXRlU2NlbmVUcmFuc2Zvcm0oKTtcblxuXHRcdHJldHVybiB0aGlzLl9zY2VuZURpcmVjdGlvbjtcblx0fVxuXG5cdHB1YmxpYyBnZXQgZGlyZWN0aW9uKCk6VmVjdG9yM0Rcblx0e1xuXHRcdHJldHVybiB0aGlzLl9kaXJlY3Rpb247XG5cdH1cblxuXHRwdWJsaWMgc2V0IGRpcmVjdGlvbih2YWx1ZTpWZWN0b3IzRClcblx0e1xuXHRcdHRoaXMuX2RpcmVjdGlvbiA9IHZhbHVlO1xuXG5cdFx0aWYgKCF0aGlzLl90bXBMb29rQXQpXG5cdFx0XHR0aGlzLl90bXBMb29rQXQgPSBuZXcgVmVjdG9yM0QoKTtcblxuXHRcdHRoaXMuX3RtcExvb2tBdC54ID0gdGhpcy54ICsgdGhpcy5fZGlyZWN0aW9uLng7XG5cdFx0dGhpcy5fdG1wTG9va0F0LnkgPSB0aGlzLnkgKyB0aGlzLl9kaXJlY3Rpb24ueTtcblx0XHR0aGlzLl90bXBMb29rQXQueiA9IHRoaXMueiArIHRoaXMuX2RpcmVjdGlvbi56O1xuXG5cdFx0dGhpcy5sb29rQXQodGhpcy5fdG1wTG9va0F0KTtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7YXdheS5ib3VuZHMuTnVsbEJvdW5kc31cblx0ICovXG5cdHB1YmxpYyBwQ3JlYXRlRGVmYXVsdEJvdW5kaW5nVm9sdW1lKCk6Qm91bmRpbmdWb2x1bWVCYXNlXG5cdHtcblx0XHQvL2RpcmVjdGlvbmFsIGxpZ2h0cyBhcmUgdG8gYmUgY29uc2lkZXJlZCBnbG9iYWwsIGhlbmNlIGFsd2F5cyBpbiB2aWV3XG5cdFx0cmV0dXJuIG5ldyBOdWxsQm91bmRzKCk7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBwVXBkYXRlQm91bmRzKClcblx0e1xuXHR9XG5cblx0Ly9Ab3ZlcnJpZGVcblx0cHVibGljIHBVcGRhdGVTY2VuZVRyYW5zZm9ybSgpXG5cdHtcblx0XHRzdXBlci5wVXBkYXRlU2NlbmVUcmFuc2Zvcm0oKTtcblx0XHR0aGlzLnNjZW5lVHJhbnNmb3JtLmNvcHlDb2x1bW5UbygyLCB0aGlzLl9zY2VuZURpcmVjdGlvbik7XG5cdFx0dGhpcy5fc2NlbmVEaXJlY3Rpb24ubm9ybWFsaXplKCk7XG5cdH1cblxuXHQvL0BvdmVycmlkZVxuXHRwdWJsaWMgcENyZWF0ZVNoYWRvd01hcHBlcigpOkRpcmVjdGlvbmFsU2hhZG93TWFwcGVyXG5cdHtcblx0XHRyZXR1cm4gbmV3IERpcmVjdGlvbmFsU2hhZG93TWFwcGVyKCk7XG5cdH1cblxuXHQvKipcblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0cHVibGljIHBDcmVhdGVFbnRpdHlQYXJ0aXRpb25Ob2RlKCk6RW50aXR5Tm9kZVxuXHR7XG5cdFx0cmV0dXJuIG5ldyBEaXJlY3Rpb25hbExpZ2h0Tm9kZSh0aGlzKTtcblx0fVxuXG5cdC8vb3ZlcnJpZGVcblx0cHVibGljIGlHZXRPYmplY3RQcm9qZWN0aW9uTWF0cml4KGVudGl0eTpJRW50aXR5LCBjYW1lcmE6Q2FtZXJhLCB0YXJnZXQ6TWF0cml4M0QgPSBudWxsKTpNYXRyaXgzRFxuXHR7XG5cdFx0dmFyIHJhdzpBcnJheTxudW1iZXI+ID0gbmV3IEFycmF5PG51bWJlcj4oKTtcblx0XHR2YXIgYm91bmRzOkJvdW5kaW5nVm9sdW1lQmFzZSA9IGVudGl0eS5ib3VuZHM7XG5cdFx0dmFyIG06TWF0cml4M0QgPSBuZXcgTWF0cml4M0QoKTtcblxuXHRcdG0uY29weUZyb20oZW50aXR5LmdldFJlbmRlclNjZW5lVHJhbnNmb3JtKGNhbWVyYSkpO1xuXHRcdG0uYXBwZW5kKHRoaXMuaW52ZXJzZVNjZW5lVHJhbnNmb3JtKTtcblxuXHRcdGlmICghdGhpcy5fcHJvakFBQkJQb2ludHMpXG5cdFx0XHR0aGlzLl9wcm9qQUFCQlBvaW50cyA9IFtdO1xuXG5cdFx0bS50cmFuc2Zvcm1WZWN0b3JzKGJvdW5kcy5hYWJiUG9pbnRzLCB0aGlzLl9wcm9qQUFCQlBvaW50cyk7XG5cblx0XHR2YXIgeE1pbjpudW1iZXIgPSBJbmZpbml0eSwgeE1heDpudW1iZXIgPSAtSW5maW5pdHk7XG5cdFx0dmFyIHlNaW46bnVtYmVyID0gSW5maW5pdHksIHlNYXg6bnVtYmVyID0gLUluZmluaXR5O1xuXHRcdHZhciB6TWluOm51bWJlciA9IEluZmluaXR5LCB6TWF4Om51bWJlciA9IC1JbmZpbml0eTtcblx0XHR2YXIgZDpudW1iZXI7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgPSAwOyBpIDwgMjQ7KSB7XG5cdFx0XHRkID0gdGhpcy5fcHJvakFBQkJQb2ludHNbaSsrXTtcblxuXHRcdFx0aWYgKGQgPCB4TWluKVxuXHRcdFx0XHR4TWluID0gZDtcblxuXHRcdFx0aWYgKGQgPiB4TWF4KVxuXHRcdFx0XHR4TWF4ID0gZDtcblxuXHRcdFx0ZCA9IHRoaXMuX3Byb2pBQUJCUG9pbnRzW2krK107XG5cblx0XHRcdGlmIChkIDwgeU1pbilcblx0XHRcdFx0eU1pbiA9IGQ7XG5cblx0XHRcdGlmIChkID4geU1heClcblx0XHRcdFx0eU1heCA9IGQ7XG5cblx0XHRcdGQgPSB0aGlzLl9wcm9qQUFCQlBvaW50c1tpKytdO1xuXG5cdFx0XHRpZiAoZCA8IHpNaW4pXG5cdFx0XHRcdHpNaW4gPSBkO1xuXG5cdFx0XHRpZiAoZCA+IHpNYXgpXG5cdFx0XHRcdHpNYXggPSBkO1xuXHRcdH1cblxuXHRcdHZhciBpbnZYUmFuZ2U6bnVtYmVyID0gMS8oeE1heCAtIHhNaW4pO1xuXHRcdHZhciBpbnZZUmFuZ2U6bnVtYmVyID0gMS8oeU1heCAtIHlNaW4pO1xuXHRcdHZhciBpbnZaUmFuZ2U6bnVtYmVyID0gMS8oek1heCAtIHpNaW4pO1xuXHRcdHJhd1swXSA9IDIqaW52WFJhbmdlO1xuXHRcdHJhd1s1XSA9IDIqaW52WVJhbmdlO1xuXHRcdHJhd1sxMF0gPSBpbnZaUmFuZ2U7XG5cdFx0cmF3WzEyXSA9IC0oeE1heCArIHhNaW4pKmludlhSYW5nZTtcblx0XHRyYXdbMTNdID0gLSh5TWF4ICsgeU1pbikqaW52WVJhbmdlO1xuXHRcdHJhd1sxNF0gPSAtek1pbippbnZaUmFuZ2U7XG5cdFx0cmF3WzFdID0gcmF3WzJdID0gcmF3WzNdID0gcmF3WzRdID0gcmF3WzZdID0gcmF3WzddID0gcmF3WzhdID0gcmF3WzldID0gcmF3WzExXSA9IDA7XG5cdFx0cmF3WzE1XSA9IDE7XG5cblx0XHRpZiAoIXRhcmdldClcblx0XHRcdHRhcmdldCA9IG5ldyBNYXRyaXgzRCgpO1xuXG5cdFx0dGFyZ2V0LmNvcHlSYXdEYXRhRnJvbShyYXcpO1xuXHRcdHRhcmdldC5wcmVwZW5kKG0pO1xuXG5cdFx0cmV0dXJuIHRhcmdldDtcblx0fVxuXG5cdHB1YmxpYyBfaUNvbGxlY3RSZW5kZXJhYmxlcyhyZW5kZXJlcjpJUmVuZGVyZXIpXG5cdHtcblx0XHQvL25vdGhpbmcgdG8gZG8gaGVyZVxuXHR9XG59XG5cbmV4cG9ydCA9IERpcmVjdGlvbmFsTGlnaHQ7Il19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9kaXJlY3Rpb25hbGxpZ2h0LnRzIl0sIm5hbWVzIjpbIkRpcmVjdGlvbmFsTGlnaHQiLCJEaXJlY3Rpb25hbExpZ2h0LmNvbnN0cnVjdG9yIiwiRGlyZWN0aW9uYWxMaWdodC5zY2VuZURpcmVjdGlvbiIsIkRpcmVjdGlvbmFsTGlnaHQuZGlyZWN0aW9uIiwiRGlyZWN0aW9uYWxMaWdodC5wQ3JlYXRlRGVmYXVsdEJvdW5kaW5nVm9sdW1lIiwiRGlyZWN0aW9uYWxMaWdodC5wVXBkYXRlQm91bmRzIiwiRGlyZWN0aW9uYWxMaWdodC5wVXBkYXRlU2NlbmVUcmFuc2Zvcm0iLCJEaXJlY3Rpb25hbExpZ2h0LnBDcmVhdGVTaGFkb3dNYXBwZXIiLCJEaXJlY3Rpb25hbExpZ2h0LnBDcmVhdGVFbnRpdHlQYXJ0aXRpb25Ob2RlIiwiRGlyZWN0aW9uYWxMaWdodC5pR2V0T2JqZWN0UHJvamVjdGlvbk1hdHJpeCIsIkRpcmVjdGlvbmFsTGlnaHQuX2lDb2xsZWN0UmVuZGVyYWJsZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQU8sVUFBVSxXQUFlLG1DQUFtQyxDQUFDLENBQUM7QUFDckUsSUFBTyxRQUFRLFdBQWdCLCtCQUErQixDQUFDLENBQUM7QUFDaEUsSUFBTyxRQUFRLFdBQWdCLCtCQUErQixDQUFDLENBQUM7QUFFaEUsSUFBTyxTQUFTLFdBQWUsbUNBQW1DLENBQUMsQ0FBQztBQUNwRSxJQUFPLG9CQUFvQixXQUFhLG1EQUFtRCxDQUFDLENBQUM7QUFLN0YsSUFBTyx1QkFBdUIsV0FBWSxvRUFBb0UsQ0FBQyxDQUFDO0FBRWhILElBQU0sZ0JBQWdCO0lBQVNBLFVBQXpCQSxnQkFBZ0JBLFVBQWtCQTtJQU92Q0EsU0FQS0EsZ0JBQWdCQSxDQU9UQSxJQUFlQSxFQUFFQSxJQUFnQkEsRUFBRUEsSUFBZUE7UUFBbERDLG9CQUFlQSxHQUFmQSxRQUFlQTtRQUFFQSxvQkFBZ0JBLEdBQWhCQSxRQUFlQSxD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Q0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0E7Z0JBQ1pBLElBQUlBLEdBQUdBLENBQUNBLENBQUNBO1lBRVZBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLGVBQWVBLENBQUNBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO1lBRTlCQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQTtnQkFDWkEsSUFBSUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFFVkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0E7Z0JBQ1pBLElBQUlBLEdBQUdBLENBQUNBLENBQUNBO1lBRVZBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLGVBQWVBLENBQUNBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO1lBRTlCQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQTtnQkFDWkEsSUFBSUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFFVkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0E7Z0JBQ1pBLElBQUlBLEdBQUdBLENBQUNBLENBQUNBO1FBQ1hBLENBQUNBO1FBRURBLElBQUlBLFNBQVNBLEdBQVVBLENBQUNBLEdBQUNBLENBQUNBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLENBQUNBO1FBQ3ZDQSxJQUFJQSxTQUFTQSxHQUFVQSxDQUFDQSxHQUFDQSxDQUFDQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUN2Q0EsSUFBSUEsU0FBU0EsR0FBVUEsQ0FBQ0EsR0FBQ0EsQ0FBQ0EsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDdkNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUNBLFNBQVNBLENBQUNBO1FBQ3JCQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxHQUFDQSxTQUFTQSxDQUFDQTtRQUNyQkEsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsU0FBU0EsQ0FBQ0E7UUFDcEJBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLEdBQUNBLFNBQVNBLENBQUNBO1FBQ25DQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxHQUFDQSxTQUFTQSxDQUFDQTtRQUNuQ0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsR0FBQ0EsU0FBU0EsQ0FBQ0E7UUFDMUJBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1FBQ3BGQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTtRQUVaQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQTtZQUNYQSxNQUFNQSxHQUFHQSxJQUFJQSxRQUFRQSxFQUFFQSxDQUFDQTtRQUV6QkEsTUFBTUEsQ0FBQ0EsZUFBZUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7UUFDNUJBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBRWxCQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtJQUNmQSxDQUFDQTtJQUVNVCwrQ0FBb0JBLEdBQTNCQSxVQUE0QkEsWUFBMEJBO1FBRXJEVSxvQkFBb0JBO0lBQ3JCQSxDQUFDQTtJQUNGVix1QkFBQ0E7QUFBREEsQ0ExSkEsQUEwSkNBLEVBMUo4QixTQUFTLEVBMEp2QztBQUVELEFBQTBCLGlCQUFqQixnQkFBZ0IsQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9EaXJlY3Rpb25hbExpZ2h0LmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCb3VuZGluZ1ZvbHVtZUJhc2VcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvYm91bmRzL0JvdW5kaW5nVm9sdW1lQmFzZVwiKTtcbmltcG9ydCBOdWxsQm91bmRzXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9ib3VuZHMvTnVsbEJvdW5kc1wiKTtcbmltcG9ydCBNYXRyaXgzRFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL01hdHJpeDNEXCIpO1xuaW1wb3J0IFZlY3RvcjNEXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vVmVjdG9yM0RcIik7XG5cbmltcG9ydCBMaWdodEJhc2VcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvTGlnaHRCYXNlXCIpO1xuaW1wb3J0IERpcmVjdGlvbmFsTGlnaHROb2RlXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9EaXJlY3Rpb25hbExpZ2h0Tm9kZVwiKTtcbmltcG9ydCBFbnRpdHlOb2RlXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wYXJ0aXRpb24vRW50aXR5Tm9kZVwiKTtcbmltcG9ydCBJUmVuZGVyZXJQb29sXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcG9vbC9JUmVuZGVyZXJQb29sXCIpO1xuaW1wb3J0IENhbWVyYVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9DYW1lcmFcIik7XG5pbXBvcnQgSUVudGl0eVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9JRW50aXR5XCIpO1xuaW1wb3J0IERpcmVjdGlvbmFsU2hhZG93TWFwcGVyXHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9tYXRlcmlhbHMvc2hhZG93bWFwcGVycy9EaXJlY3Rpb25hbFNoYWRvd01hcHBlclwiKTtcblxuY2xhc3MgRGlyZWN0aW9uYWxMaWdodCBleHRlbmRzIExpZ2h0QmFzZSBpbXBsZW1lbnRzIElFbnRpdHlcbntcblx0cHJpdmF0ZSBfZGlyZWN0aW9uOlZlY3RvcjNEO1xuXHRwcml2YXRlIF90bXBMb29rQXQ6VmVjdG9yM0Q7XG5cdHByaXZhdGUgX3NjZW5lRGlyZWN0aW9uOlZlY3RvcjNEO1xuXHRwcml2YXRlIF9wcm9qQUFCQlBvaW50czpBcnJheTxudW1iZXI+O1xuXG5cdGNvbnN0cnVjdG9yKHhEaXI6bnVtYmVyID0gMCwgeURpcjpudW1iZXIgPSAtMSwgekRpcjpudW1iZXIgPSAxKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuX3BJc0VudGl0eSA9IHRydWU7XG5cblx0XHR0aGlzLmRpcmVjdGlvbiA9IG5ldyBWZWN0b3IzRCh4RGlyLCB5RGlyLCB6RGlyKTtcblxuXHRcdHRoaXMuX3NjZW5lRGlyZWN0aW9uID0gbmV3IFZlY3RvcjNEKCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHNjZW5lRGlyZWN0aW9uKCk6VmVjdG9yM0Rcblx0e1xuXHRcdGlmICh0aGlzLl9wU2NlbmVUcmFuc2Zvcm1EaXJ0eSlcblx0XHRcdHRoaXMucFVwZGF0ZVNjZW5lVHJhbnNmb3JtKCk7XG5cblx0XHRyZXR1cm4gdGhpcy5fc2NlbmVEaXJlY3Rpb247XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGRpcmVjdGlvbigpOlZlY3RvcjNEXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fZGlyZWN0aW9uO1xuXHR9XG5cblx0cHVibGljIHNldCBkaXJlY3Rpb24odmFsdWU6VmVjdG9yM0QpXG5cdHtcblx0XHR0aGlzLl9kaXJlY3Rpb24gPSB2YWx1ZTtcblxuXHRcdGlmICghdGhpcy5fdG1wTG9va0F0KVxuXHRcdFx0dGhpcy5fdG1wTG9va0F0ID0gbmV3IFZlY3RvcjNEKCk7XG5cblx0XHR0aGlzLl90bXBMb29rQXQueCA9IHRoaXMueCArIHRoaXMuX2RpcmVjdGlvbi54O1xuXHRcdHRoaXMuX3RtcExvb2tBdC55ID0gdGhpcy55ICsgdGhpcy5fZGlyZWN0aW9uLnk7XG5cdFx0dGhpcy5fdG1wTG9va0F0LnogPSB0aGlzLnogKyB0aGlzLl9kaXJlY3Rpb24uejtcblxuXHRcdHRoaXMubG9va0F0KHRoaXMuX3RtcExvb2tBdCk7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICogQHJldHVybnMge2F3YXkuYm91bmRzLk51bGxCb3VuZHN9XG5cdCAqL1xuXHRwdWJsaWMgcENyZWF0ZURlZmF1bHRCb3VuZGluZ1ZvbHVtZSgpOkJvdW5kaW5nVm9sdW1lQmFzZVxuXHR7XG5cdFx0Ly9kaXJlY3Rpb25hbCBsaWdodHMgYXJlIHRvIGJlIGNvbnNpZGVyZWQgZ2xvYmFsLCBoZW5jZSBhbHdheXMgaW4gdmlld1xuXHRcdHJldHVybiBuZXcgTnVsbEJvdW5kcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgcFVwZGF0ZUJvdW5kcygpXG5cdHtcblx0fVxuXG5cdC8vQG92ZXJyaWRlXG5cdHB1YmxpYyBwVXBkYXRlU2NlbmVUcmFuc2Zvcm0oKVxuXHR7XG5cdFx0c3VwZXIucFVwZGF0ZVNjZW5lVHJhbnNmb3JtKCk7XG5cdFx0dGhpcy5zY2VuZVRyYW5zZm9ybS5jb3B5Q29sdW1uVG8oMiwgdGhpcy5fc2NlbmVEaXJlY3Rpb24pO1xuXHRcdHRoaXMuX3NjZW5lRGlyZWN0aW9uLm5vcm1hbGl6ZSgpO1xuXHR9XG5cblx0Ly9Ab3ZlcnJpZGVcblx0cHVibGljIHBDcmVhdGVTaGFkb3dNYXBwZXIoKTpEaXJlY3Rpb25hbFNoYWRvd01hcHBlclxuXHR7XG5cdFx0cmV0dXJuIG5ldyBEaXJlY3Rpb25hbFNoYWRvd01hcHBlcigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHB1YmxpYyBwQ3JlYXRlRW50aXR5UGFydGl0aW9uTm9kZSgpOkVudGl0eU5vZGVcblx0e1xuXHRcdHJldHVybiBuZXcgRGlyZWN0aW9uYWxMaWdodE5vZGUodGhpcyk7XG5cdH1cblxuXHQvL292ZXJyaWRlXG5cdHB1YmxpYyBpR2V0T2JqZWN0UHJvamVjdGlvbk1hdHJpeChlbnRpdHk6SUVudGl0eSwgY2FtZXJhOkNhbWVyYSwgdGFyZ2V0Ok1hdHJpeDNEID0gbnVsbCk6TWF0cml4M0Rcblx0e1xuXHRcdHZhciByYXc6QXJyYXk8bnVtYmVyPiA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG5cdFx0dmFyIGJvdW5kczpCb3VuZGluZ1ZvbHVtZUJhc2UgPSBlbnRpdHkuYm91bmRzO1xuXHRcdHZhciBtOk1hdHJpeDNEID0gbmV3IE1hdHJpeDNEKCk7XG5cblx0XHRtLmNvcHlGcm9tKGVudGl0eS5nZXRSZW5kZXJTY2VuZVRyYW5zZm9ybShjYW1lcmEpKTtcblx0XHRtLmFwcGVuZCh0aGlzLmludmVyc2VTY2VuZVRyYW5zZm9ybSk7XG5cblx0XHRpZiAoIXRoaXMuX3Byb2pBQUJCUG9pbnRzKVxuXHRcdFx0dGhpcy5fcHJvakFBQkJQb2ludHMgPSBbXTtcblxuXHRcdG0udHJhbnNmb3JtVmVjdG9ycyhib3VuZHMuYWFiYlBvaW50cywgdGhpcy5fcHJvakFBQkJQb2ludHMpO1xuXG5cdFx0dmFyIHhNaW46bnVtYmVyID0gSW5maW5pdHksIHhNYXg6bnVtYmVyID0gLUluZmluaXR5O1xuXHRcdHZhciB5TWluOm51bWJlciA9IEluZmluaXR5LCB5TWF4Om51bWJlciA9IC1JbmZpbml0eTtcblx0XHR2YXIgek1pbjpudW1iZXIgPSBJbmZpbml0eSwgek1heDpudW1iZXIgPSAtSW5maW5pdHk7XG5cdFx0dmFyIGQ6bnVtYmVyO1xuXHRcdGZvciAodmFyIGk6bnVtYmVyID0gMDsgaSA8IDI0Oykge1xuXHRcdFx0ZCA9IHRoaXMuX3Byb2pBQUJCUG9pbnRzW2krK107XG5cblx0XHRcdGlmIChkIDwgeE1pbilcblx0XHRcdFx0eE1pbiA9IGQ7XG5cblx0XHRcdGlmIChkID4geE1heClcblx0XHRcdFx0eE1heCA9IGQ7XG5cblx0XHRcdGQgPSB0aGlzLl9wcm9qQUFCQlBvaW50c1tpKytdO1xuXG5cdFx0XHRpZiAoZCA8IHlNaW4pXG5cdFx0XHRcdHlNaW4gPSBkO1xuXG5cdFx0XHRpZiAoZCA+IHlNYXgpXG5cdFx0XHRcdHlNYXggPSBkO1xuXG5cdFx0XHRkID0gdGhpcy5fcHJvakFBQkJQb2ludHNbaSsrXTtcblxuXHRcdFx0aWYgKGQgPCB6TWluKVxuXHRcdFx0XHR6TWluID0gZDtcblxuXHRcdFx0aWYgKGQgPiB6TWF4KVxuXHRcdFx0XHR6TWF4ID0gZDtcblx0XHR9XG5cblx0XHR2YXIgaW52WFJhbmdlOm51bWJlciA9IDEvKHhNYXggLSB4TWluKTtcblx0XHR2YXIgaW52WVJhbmdlOm51bWJlciA9IDEvKHlNYXggLSB5TWluKTtcblx0XHR2YXIgaW52WlJhbmdlOm51bWJlciA9IDEvKHpNYXggLSB6TWluKTtcblx0XHRyYXdbMF0gPSAyKmludlhSYW5nZTtcblx0XHRyYXdbNV0gPSAyKmludllSYW5nZTtcblx0XHRyYXdbMTBdID0gaW52WlJhbmdlO1xuXHRcdHJhd1sxMl0gPSAtKHhNYXggKyB4TWluKSppbnZYUmFuZ2U7XG5cdFx0cmF3WzEzXSA9IC0oeU1heCArIHlNaW4pKmludllSYW5nZTtcblx0XHRyYXdbMTRdID0gLXpNaW4qaW52WlJhbmdlO1xuXHRcdHJhd1sxXSA9IHJhd1syXSA9IHJhd1szXSA9IHJhd1s0XSA9IHJhd1s2XSA9IHJhd1s3XSA9IHJhd1s4XSA9IHJhd1s5XSA9IHJhd1sxMV0gPSAwO1xuXHRcdHJhd1sxNV0gPSAxO1xuXG5cdFx0aWYgKCF0YXJnZXQpXG5cdFx0XHR0YXJnZXQgPSBuZXcgTWF0cml4M0QoKTtcblxuXHRcdHRhcmdldC5jb3B5UmF3RGF0YUZyb20ocmF3KTtcblx0XHR0YXJnZXQucHJlcGVuZChtKTtcblxuXHRcdHJldHVybiB0YXJnZXQ7XG5cdH1cblxuXHRwdWJsaWMgX2lDb2xsZWN0UmVuZGVyYWJsZXMocmVuZGVyZXJQb29sOklSZW5kZXJlclBvb2wpXG5cdHtcblx0XHQvL25vdGhpbmcgdG8gZG8gaGVyZVxuXHR9XG59XG5cbmV4cG9ydCA9IERpcmVjdGlvbmFsTGlnaHQ7Il19 \ No newline at end of file diff --git a/lib/entities/DirectionalLight.ts b/lib/entities/DirectionalLight.ts index 78923e11e..271f8c962 100644 --- a/lib/entities/DirectionalLight.ts +++ b/lib/entities/DirectionalLight.ts @@ -6,7 +6,7 @@ import Vector3D = require("awayjs-core/lib/geom/Vector3D"); import LightBase = require("awayjs-display/lib/base/LightBase"); import DirectionalLightNode = require("awayjs-display/lib/partition/DirectionalLightNode"); import EntityNode = require("awayjs-display/lib/partition/EntityNode"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); import Camera = require("awayjs-display/lib/entities/Camera"); import IEntity = require("awayjs-display/lib/entities/IEntity"); import DirectionalShadowMapper = require("awayjs-display/lib/materials/shadowmappers/DirectionalShadowMapper"); @@ -161,7 +161,7 @@ class DirectionalLight extends LightBase implements IEntity return target; } - public _iCollectRenderables(renderer:IRenderer) + public _iCollectRenderables(rendererPool:IRendererPool) { //nothing to do here } diff --git a/lib/entities/IEntity.js b/lib/entities/IEntity.js index 021bf8529..6cb9ca2c3 100755 --- a/lib/entities/IEntity.js +++ b/lib/entities/IEntity.js @@ -1,3 +1,3 @@ -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9pZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNKaUIiLCJmaWxlIjoiZW50aXRpZXMvSUVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQm91bmRpbmdWb2x1bWVCYXNlXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2JvdW5kcy9Cb3VuZGluZ1ZvbHVtZUJhc2VcIik7XG5pbXBvcnQgTWF0cml4M0RcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9NYXRyaXgzRFwiKTtcbmltcG9ydCBWZWN0b3IzRFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1ZlY3RvcjNEXCIpO1xuaW1wb3J0IElBc3NldFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9saWJyYXJ5L0lBc3NldFwiKTtcblxuaW1wb3J0IFRyYW5zZm9ybVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9UcmFuc2Zvcm1cIik7XG5pbXBvcnQgU2NlbmVcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvY29udGFpbmVycy9TY2VuZVwiKTtcbmltcG9ydCBDb250cm9sbGVyQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2NvbnRyb2xsZXJzL0NvbnRyb2xsZXJCYXNlXCIpO1xuaW1wb3J0IENhbWVyYVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9DYW1lcmFcIik7XG5pbXBvcnQgUGFydGl0aW9uXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wYXJ0aXRpb24vUGFydGl0aW9uXCIpO1xuaW1wb3J0IEVudGl0eU5vZGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9FbnRpdHlOb2RlXCIpO1xuaW1wb3J0IElQaWNraW5nQ29sbGlkZXJcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9waWNrL0lQaWNraW5nQ29sbGlkZXJcIik7XG5pbXBvcnQgUGlja2luZ0NvbGxpc2lvblZPXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BpY2svUGlja2luZ0NvbGxpc2lvblZPXCIpO1xuaW1wb3J0IElSZW5kZXJlclx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcmVuZGVyL0lSZW5kZXJlclwiKTtcblxuaW50ZXJmYWNlIElFbnRpdHkgZXh0ZW5kcyBJQXNzZXRcbntcblx0eDpudW1iZXI7XG5cdHk6bnVtYmVyO1xuXHR6Om51bWJlcjtcblxuXHRyb3RhdGlvblg6bnVtYmVyO1xuXHRyb3RhdGlvblk6bnVtYmVyO1xuXHRyb3RhdGlvblo6bnVtYmVyO1xuXG5cdHNjYWxlWDpudW1iZXI7XG5cdHNjYWxlWTpudW1iZXI7XG5cdHNjYWxlWjpudW1iZXI7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRib3VuZHM6Qm91bmRpbmdWb2x1bWVCYXNlO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0Y2FzdHNTaGFkb3dzOmJvb2xlYW47XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRpbnZlcnNlU2NlbmVUcmFuc2Zvcm06TWF0cml4M0Q7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwYXJ0aXRpb25Ob2RlOkVudGl0eU5vZGU7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwaWNraW5nQ29sbGlkZXI6SVBpY2tpbmdDb2xsaWRlcjtcblxuXHQvKipcblx0ICpcblx0ICovXG5cdHRyYW5zZm9ybTpUcmFuc2Zvcm07XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRzY2VuZTpTY2VuZTtcblxuXHQvKipcblx0ICpcblx0ICovXG5cdHNjZW5lUG9zaXRpb246VmVjdG9yM0Q7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRzY2VuZVRyYW5zZm9ybTpNYXRyaXgzRDtcblxuXHQvKipcblx0ICpcblx0ICovXG5cdHdvcmxkQm91bmRzOkJvdW5kaW5nVm9sdW1lQmFzZTtcblxuXHQvKipcblx0ICpcblx0ICovXG5cdHpPZmZzZXQ6bnVtYmVyXG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRpc0ludGVyc2VjdGluZ1JheShyYXlQb3NpdGlvbjpWZWN0b3IzRCwgcmF5RGlyZWN0aW9uOlZlY3RvcjNEKTpib29sZWFuO1xuXG5cdC8qKlxuXHQgKlxuXHQgKlxuXHQgKiBAcGFyYW0gdGFyZ2V0XG5cdCAqIEBwYXJhbSB1cEF4aXNcblx0ICovXG5cdGxvb2tBdCh0YXJnZXQ6VmVjdG9yM0QsIHVwQXhpcz86VmVjdG9yM0QpO1xuXG5cdC8qKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdF9pUGlja2luZ0NvbGxpc2lvblZPOlBpY2tpbmdDb2xsaXNpb25WTztcblxuXHQvKipcblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRfaUNvbnRyb2xsZXI6Q29udHJvbGxlckJhc2U7XG5cblx0LyoqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0X2lBc3NpZ25lZFBhcnRpdGlvbjpQYXJ0aXRpb247XG5cblx0LyoqXG5cdCAqIC8vVE9ET1xuXHQgKlxuXHQgKiBAcGFyYW0gc2hvcnRlc3RDb2xsaXNpb25EaXN0YW5jZVxuXHQgKiBAcGFyYW0gZmluZENsb3Nlc3Rcblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0X2lUZXN0Q29sbGlzaW9uKHNob3J0ZXN0Q29sbGlzaW9uRGlzdGFuY2U6bnVtYmVyLCBmaW5kQ2xvc2VzdDpib29sZWFuKTpib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdF9pSXNNb3VzZUVuYWJsZWQoKTpib29sZWFuXG5cblx0LyoqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0X2lJc1Zpc2libGUoKTpib29sZWFuXG5cblx0X2lJbnRlcm5hbFVwZGF0ZSgpXG5cblx0LyoqXG5cdCAqIFRoZSB0cmFuc2Zvcm1hdGlvbiBtYXRyaXggdGhhdCB0cmFuc2Zvcm1zIGZyb20gbW9kZWwgdG8gd29ybGQgc3BhY2UsIGFkYXB0ZWQgd2l0aCBhbnkgc3BlY2lhbCBvcGVyYXRpb25zIG5lZWRlZCB0byByZW5kZXIuXG5cdCAqIEZvciBleGFtcGxlLCBhc3N1cmluZyBjZXJ0YWluIGFsaWduZWRuZXNzIHdoaWNoIGlzIG5vdCBpbmhlcmVudCBpbiB0aGUgc2NlbmUgdHJhbnNmb3JtLiBCeSBkZWZhdWx0LCB0aGlzIHdvdWxkXG5cdCAqIHJldHVybiB0aGUgc2NlbmUgdHJhbnNmb3JtLlxuXHQgKi9cblx0Z2V0UmVuZGVyU2NlbmVUcmFuc2Zvcm0oY2FtZXJhOkNhbWVyYSk6TWF0cml4M0Q7XG5cblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSByZW5kZXJlclxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2lDb2xsZWN0UmVuZGVyYWJsZXMocmVuZGVyZXI6SVJlbmRlcmVyKTtcbn1cblxuZXhwb3J0ID0gSUVudGl0eTsiXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9pZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNKaUIiLCJmaWxlIjoiZW50aXRpZXMvSUVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQm91bmRpbmdWb2x1bWVCYXNlXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2JvdW5kcy9Cb3VuZGluZ1ZvbHVtZUJhc2VcIik7XG5pbXBvcnQgTWF0cml4M0RcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9NYXRyaXgzRFwiKTtcbmltcG9ydCBWZWN0b3IzRFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1ZlY3RvcjNEXCIpO1xuaW1wb3J0IElBc3NldFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9saWJyYXJ5L0lBc3NldFwiKTtcblxuaW1wb3J0IFRyYW5zZm9ybVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9UcmFuc2Zvcm1cIik7XG5pbXBvcnQgU2NlbmVcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvY29udGFpbmVycy9TY2VuZVwiKTtcbmltcG9ydCBDb250cm9sbGVyQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2NvbnRyb2xsZXJzL0NvbnRyb2xsZXJCYXNlXCIpO1xuaW1wb3J0IENhbWVyYVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9DYW1lcmFcIik7XG5pbXBvcnQgUGFydGl0aW9uXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wYXJ0aXRpb24vUGFydGl0aW9uXCIpO1xuaW1wb3J0IEVudGl0eU5vZGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9FbnRpdHlOb2RlXCIpO1xuaW1wb3J0IElQaWNraW5nQ29sbGlkZXJcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9waWNrL0lQaWNraW5nQ29sbGlkZXJcIik7XG5pbXBvcnQgUGlja2luZ0NvbGxpc2lvblZPXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BpY2svUGlja2luZ0NvbGxpc2lvblZPXCIpO1xuaW1wb3J0IElSZW5kZXJlclBvb2xcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL0lSZW5kZXJlclBvb2xcIik7XG5cbmludGVyZmFjZSBJRW50aXR5IGV4dGVuZHMgSUFzc2V0XG57XG5cdHg6bnVtYmVyO1xuXHR5Om51bWJlcjtcblx0ejpudW1iZXI7XG5cblx0cm90YXRpb25YOm51bWJlcjtcblx0cm90YXRpb25ZOm51bWJlcjtcblx0cm90YXRpb25aOm51bWJlcjtcblxuXHRzY2FsZVg6bnVtYmVyO1xuXHRzY2FsZVk6bnVtYmVyO1xuXHRzY2FsZVo6bnVtYmVyO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0Ym91bmRzOkJvdW5kaW5nVm9sdW1lQmFzZTtcblxuXHQvKipcblx0ICpcblx0ICovXG5cdGNhc3RzU2hhZG93czpib29sZWFuO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0aW52ZXJzZVNjZW5lVHJhbnNmb3JtOk1hdHJpeDNEO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cGFydGl0aW9uTm9kZTpFbnRpdHlOb2RlO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cGlja2luZ0NvbGxpZGVyOklQaWNraW5nQ29sbGlkZXI7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHR0cmFuc2Zvcm06VHJhbnNmb3JtO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0c2NlbmU6U2NlbmU7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRzY2VuZVBvc2l0aW9uOlZlY3RvcjNEO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0c2NlbmVUcmFuc2Zvcm06TWF0cml4M0Q7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHR3b3JsZEJvdW5kczpCb3VuZGluZ1ZvbHVtZUJhc2U7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHR6T2Zmc2V0Om51bWJlclxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0aXNJbnRlcnNlY3RpbmdSYXkocmF5UG9zaXRpb246VmVjdG9yM0QsIHJheURpcmVjdGlvbjpWZWN0b3IzRCk6Ym9vbGVhbjtcblxuXHQvKipcblx0ICpcblx0ICpcblx0ICogQHBhcmFtIHRhcmdldFxuXHQgKiBAcGFyYW0gdXBBeGlzXG5cdCAqL1xuXHRsb29rQXQodGFyZ2V0OlZlY3RvcjNELCB1cEF4aXM/OlZlY3RvcjNEKTtcblxuXHQvKipcblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRfaVBpY2tpbmdDb2xsaXNpb25WTzpQaWNraW5nQ29sbGlzaW9uVk87XG5cblx0LyoqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0X2lDb250cm9sbGVyOkNvbnRyb2xsZXJCYXNlO1xuXG5cdC8qKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdF9pQXNzaWduZWRQYXJ0aXRpb246UGFydGl0aW9uO1xuXG5cdC8qKlxuXHQgKiAvL1RPRE9cblx0ICpcblx0ICogQHBhcmFtIHNob3J0ZXN0Q29sbGlzaW9uRGlzdGFuY2Vcblx0ICogQHBhcmFtIGZpbmRDbG9zZXN0XG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHQgKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdF9pVGVzdENvbGxpc2lvbihzaG9ydGVzdENvbGxpc2lvbkRpc3RhbmNlOm51bWJlciwgZmluZENsb3Nlc3Q6Ym9vbGVhbik6Ym9vbGVhbjtcblxuXHQvKipcblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRfaUlzTW91c2VFbmFibGVkKCk6Ym9vbGVhblxuXG5cdC8qKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdF9pSXNWaXNpYmxlKCk6Ym9vbGVhblxuXG5cdF9pSW50ZXJuYWxVcGRhdGUoKVxuXG5cdC8qKlxuXHQgKiBUaGUgdHJhbnNmb3JtYXRpb24gbWF0cml4IHRoYXQgdHJhbnNmb3JtcyBmcm9tIG1vZGVsIHRvIHdvcmxkIHNwYWNlLCBhZGFwdGVkIHdpdGggYW55IHNwZWNpYWwgb3BlcmF0aW9ucyBuZWVkZWQgdG8gcmVuZGVyLlxuXHQgKiBGb3IgZXhhbXBsZSwgYXNzdXJpbmcgY2VydGFpbiBhbGlnbmVkbmVzcyB3aGljaCBpcyBub3QgaW5oZXJlbnQgaW4gdGhlIHNjZW5lIHRyYW5zZm9ybS4gQnkgZGVmYXVsdCwgdGhpcyB3b3VsZFxuXHQgKiByZXR1cm4gdGhlIHNjZW5lIHRyYW5zZm9ybS5cblx0ICovXG5cdGdldFJlbmRlclNjZW5lVHJhbnNmb3JtKGNhbWVyYTpDYW1lcmEpOk1hdHJpeDNEO1xuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gcmVuZGVyZXJcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9pQ29sbGVjdFJlbmRlcmFibGVzKHJlbmRlcmVyUG9vbDpJUmVuZGVyZXJQb29sKTtcbn1cblxuZXhwb3J0ID0gSUVudGl0eTsiXX0= \ No newline at end of file diff --git a/lib/entities/IEntity.ts b/lib/entities/IEntity.ts index 4f1e98e98..693a7dbff 100644 --- a/lib/entities/IEntity.ts +++ b/lib/entities/IEntity.ts @@ -11,7 +11,7 @@ import Partition = require("awayjs-display/lib/partition/Partition"); import EntityNode = require("awayjs-display/lib/partition/EntityNode"); import IPickingCollider = require("awayjs-display/lib/pick/IPickingCollider"); import PickingCollisionVO = require("awayjs-display/lib/pick/PickingCollisionVO"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); interface IEntity extends IAsset { @@ -145,7 +145,7 @@ interface IEntity extends IAsset * @param renderer * @private */ - _iCollectRenderables(renderer:IRenderer); + _iCollectRenderables(rendererPool:IRendererPool); } export = IEntity; \ No newline at end of file diff --git a/lib/entities/LightProbe.js b/lib/entities/LightProbe.js index 46028d704..99dbff2a4 100755 --- a/lib/entities/LightProbe.js +++ b/lib/entities/LightProbe.js @@ -56,11 +56,11 @@ var LightProbe = (function (_super) { if (target === void 0) { target = null; } throw new Error("Object projection matrices are not supported for LightProbe objects!"); }; - LightProbe.prototype._iCollectRenderables = function (renderer) { + LightProbe.prototype._iCollectRenderables = function (rendererPool) { //nothing to do here }; return LightProbe; })(LightBase); module.exports = LightProbe; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9saWdodHByb2JlLnRzIl0sIm5hbWVzIjpbIkxpZ2h0UHJvYmUiLCJMaWdodFByb2JlLmNvbnN0cnVjdG9yIiwiTGlnaHRQcm9iZS5kaWZmdXNlTWFwIiwiTGlnaHRQcm9iZS5zcGVjdWxhck1hcCIsIkxpZ2h0UHJvYmUucENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUiLCJMaWdodFByb2JlLnBVcGRhdGVCb3VuZHMiLCJMaWdodFByb2JlLnBDcmVhdGVEZWZhdWx0Qm91bmRpbmdWb2x1bWUiLCJMaWdodFByb2JlLmlHZXRPYmplY3RQcm9qZWN0aW9uTWF0cml4IiwiTGlnaHRQcm9iZS5faUNvbGxlY3RSZW5kZXJhYmxlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBTyxVQUFVLFdBQWUsbUNBQW1DLENBQUMsQ0FBQztBQUdyRSxJQUFPLEtBQUssV0FBZ0IsOEJBQThCLENBQUMsQ0FBQztBQUU1RCxJQUFPLFNBQVMsV0FBZSxtQ0FBbUMsQ0FBQyxDQUFDO0FBRXBFLElBQU8sY0FBYyxXQUFjLDZDQUE2QyxDQUFDLENBQUM7QUFNbEYsSUFBTSxVQUFVO0lBQVNBLFVBQW5CQSxVQUFVQSxVQUFrQkE7SUFLakNBLFNBTEtBLFVBQVVBLENBS0hBLFVBQTBCQSxFQUFFQSxXQUFrQ0E7UUFBbENDLDJCQUFrQ0EsR0FBbENBLGtCQUFrQ0E7UUFFekVBLGlCQUFPQSxDQUFDQTtRQUVSQSxJQUFJQSxDQUFDQSxVQUFVQSxHQUFHQSxJQUFJQSxDQUFDQTtRQUV2QkEsSUFBSUEsQ0FBQ0EsV0FBV0EsR0FBR0EsVUFBVUEsQ0FBQ0E7UUFDOUJBLElBQUlBLENBQUNBLFlBQVlBLEdBQUdBLFdBQVdBLENBQUNBO0lBQ2pDQSxDQUFDQTtJQUVERCxzQkFBV0Esa0NBQVVBO2FBQXJCQTtZQUVDRSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxXQUFXQSxDQUFDQTtRQUN6QkEsQ0FBQ0E7YUFFREYsVUFBc0JBLEtBQXFCQTtZQUUxQ0UsSUFBSUEsQ0FBQ0EsV0FBV0EsR0FBR0EsS0FBS0EsQ0FBQ0E7UUFDMUJBLENBQUNBOzs7T0FMQUY7SUFPREEsc0JBQVdBLG1DQUFXQTthQUF0QkE7WUFFQ0csTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0E7UUFDMUJBLENBQUNBO2FBRURILFVBQXVCQSxLQUFxQkE7WUFFM0NHLElBQUlBLENBQUNBLFlBQVlBLEdBQUdBLEtBQUtBLENBQUNBO1FBQzNCQSxDQUFDQTs7O09BTEFIO0lBT0RBOztPQUVHQTtJQUNJQSwrQ0FBMEJBLEdBQWpDQTtRQUVDSSxNQUFNQSxDQUFDQSxJQUFJQSxjQUFjQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtJQUNqQ0EsQ0FBQ0E7SUFFREosV0FBV0E7SUFDSkEsa0NBQWFBLEdBQXBCQTtRQUVDSyxJQUFJQSxDQUFDQSxlQUFlQSxHQUFHQSxLQUFLQSxDQUFDQTtJQUM5QkEsQ0FBQ0E7SUFFREwsV0FBV0E7SUFDSkEsaURBQTRCQSxHQUFuQ0E7UUFFQ00sTUFBTUEsQ0FBQ0EsSUFBSUEsVUFBVUEsRUFBRUEsQ0FBQ0E7SUFDekJBLENBQUNBO0lBRUROLFdBQVdBO0lBQ0pBLCtDQUEwQkEsR0FBakNBLFVBQWtDQSxNQUFjQSxFQUFFQSxNQUFhQSxFQUFFQSxNQUFzQkE7UUFBdEJPLHNCQUFzQkEsR0FBdEJBLGFBQXNCQTtRQUV0RkEsTUFBTUEsSUFBSUEsS0FBS0EsQ0FBQ0Esc0VBQXNFQSxDQUFDQSxDQUFDQTtJQUN6RkEsQ0FBQ0E7SUFFTVAseUNBQW9CQSxHQUEzQkEsVUFBNEJBLFFBQWtCQTtRQUU3Q1Esb0JBQW9CQTtJQUNyQkEsQ0FBQ0E7SUFDRlIsaUJBQUNBO0FBQURBLENBakVBLEFBaUVDQSxFQWpFd0IsU0FBUyxFQWlFakM7QUFFRCxBQUFvQixpQkFBWCxVQUFVLENBQUMiLCJmaWxlIjoiZW50aXRpZXMvTGlnaHRQcm9iZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQm91bmRpbmdWb2x1bWVCYXNlXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2JvdW5kcy9Cb3VuZGluZ1ZvbHVtZUJhc2VcIik7XG5pbXBvcnQgTnVsbEJvdW5kc1x0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvYm91bmRzL051bGxCb3VuZHNcIik7XG5pbXBvcnQgTWF0cml4M0RcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9NYXRyaXgzRFwiKTtcbmltcG9ydCBWZWN0b3IzRFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1ZlY3RvcjNEXCIpO1xuaW1wb3J0IEVycm9yXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2Vycm9ycy9FcnJvclwiKTtcblxuaW1wb3J0IExpZ2h0QmFzZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9MaWdodEJhc2VcIik7XG5pbXBvcnQgRW50aXR5Tm9kZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcGFydGl0aW9uL0VudGl0eU5vZGVcIik7XG5pbXBvcnQgTGlnaHRQcm9iZU5vZGVcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wYXJ0aXRpb24vTGlnaHRQcm9iZU5vZGVcIik7XG5pbXBvcnQgSVJlbmRlcmVyXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9yZW5kZXIvSVJlbmRlcmVyXCIpO1xuaW1wb3J0IENhbWVyYVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9DYW1lcmFcIik7XG5pbXBvcnQgSUVudGl0eVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9JRW50aXR5XCIpO1xuaW1wb3J0IEN1YmVUZXh0dXJlQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL3RleHR1cmVzL0N1YmVUZXh0dXJlQmFzZVwiKTtcblxuY2xhc3MgTGlnaHRQcm9iZSBleHRlbmRzIExpZ2h0QmFzZSBpbXBsZW1lbnRzIElFbnRpdHlcbntcblx0cHJpdmF0ZSBfZGlmZnVzZU1hcDpDdWJlVGV4dHVyZUJhc2U7XG5cdHByaXZhdGUgX3NwZWN1bGFyTWFwOkN1YmVUZXh0dXJlQmFzZTtcblxuXHRjb25zdHJ1Y3RvcihkaWZmdXNlTWFwOkN1YmVUZXh0dXJlQmFzZSwgc3BlY3VsYXJNYXA6Q3ViZVRleHR1cmVCYXNlID0gbnVsbClcblx0e1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLl9wSXNFbnRpdHkgPSB0cnVlO1xuXG5cdFx0dGhpcy5fZGlmZnVzZU1hcCA9IGRpZmZ1c2VNYXA7XG5cdFx0dGhpcy5fc3BlY3VsYXJNYXAgPSBzcGVjdWxhck1hcDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgZGlmZnVzZU1hcCgpOkN1YmVUZXh0dXJlQmFzZVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2RpZmZ1c2VNYXA7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGRpZmZ1c2VNYXAodmFsdWU6Q3ViZVRleHR1cmVCYXNlKVxuXHR7XG5cdFx0dGhpcy5fZGlmZnVzZU1hcCA9IHZhbHVlO1xuXHR9XG5cblx0cHVibGljIGdldCBzcGVjdWxhck1hcCgpOkN1YmVUZXh0dXJlQmFzZVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3NwZWN1bGFyTWFwO1xuXHR9XG5cblx0cHVibGljIHNldCBzcGVjdWxhck1hcCh2YWx1ZTpDdWJlVGV4dHVyZUJhc2UpXG5cdHtcblx0XHR0aGlzLl9zcGVjdWxhck1hcCA9IHZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHB1YmxpYyBwQ3JlYXRlRW50aXR5UGFydGl0aW9uTm9kZSgpOkVudGl0eU5vZGVcblx0e1xuXHRcdHJldHVybiBuZXcgTGlnaHRQcm9iZU5vZGUodGhpcyk7XG5cdH1cblxuXHQvL0BvdmVycmlkZVxuXHRwdWJsaWMgcFVwZGF0ZUJvdW5kcygpXG5cdHtcblx0XHR0aGlzLl9wQm91bmRzSW52YWxpZCA9IGZhbHNlO1xuXHR9XG5cblx0Ly9Ab3ZlcnJpZGVcblx0cHVibGljIHBDcmVhdGVEZWZhdWx0Qm91bmRpbmdWb2x1bWUoKTpCb3VuZGluZ1ZvbHVtZUJhc2Vcblx0e1xuXHRcdHJldHVybiBuZXcgTnVsbEJvdW5kcygpO1xuXHR9XG5cblx0Ly9Ab3ZlcnJpZGVcblx0cHVibGljIGlHZXRPYmplY3RQcm9qZWN0aW9uTWF0cml4KGVudGl0eTpJRW50aXR5LCBjYW1lcmE6Q2FtZXJhLCB0YXJnZXQ6TWF0cml4M0QgPSBudWxsKTpNYXRyaXgzRFxuXHR7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiT2JqZWN0IHByb2plY3Rpb24gbWF0cmljZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIExpZ2h0UHJvYmUgb2JqZWN0cyFcIik7XG5cdH1cblxuXHRwdWJsaWMgX2lDb2xsZWN0UmVuZGVyYWJsZXMocmVuZGVyZXI6SVJlbmRlcmVyKVxuXHR7XG5cdFx0Ly9ub3RoaW5nIHRvIGRvIGhlcmVcblx0fVxufVxuXG5leHBvcnQgPSBMaWdodFByb2JlOyJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9saWdodHByb2JlLnRzIl0sIm5hbWVzIjpbIkxpZ2h0UHJvYmUiLCJMaWdodFByb2JlLmNvbnN0cnVjdG9yIiwiTGlnaHRQcm9iZS5kaWZmdXNlTWFwIiwiTGlnaHRQcm9iZS5zcGVjdWxhck1hcCIsIkxpZ2h0UHJvYmUucENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUiLCJMaWdodFByb2JlLnBVcGRhdGVCb3VuZHMiLCJMaWdodFByb2JlLnBDcmVhdGVEZWZhdWx0Qm91bmRpbmdWb2x1bWUiLCJMaWdodFByb2JlLmlHZXRPYmplY3RQcm9qZWN0aW9uTWF0cml4IiwiTGlnaHRQcm9iZS5faUNvbGxlY3RSZW5kZXJhYmxlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBTyxVQUFVLFdBQWUsbUNBQW1DLENBQUMsQ0FBQztBQUdyRSxJQUFPLEtBQUssV0FBZ0IsOEJBQThCLENBQUMsQ0FBQztBQUU1RCxJQUFPLFNBQVMsV0FBZSxtQ0FBbUMsQ0FBQyxDQUFDO0FBRXBFLElBQU8sY0FBYyxXQUFjLDZDQUE2QyxDQUFDLENBQUM7QUFNbEYsSUFBTSxVQUFVO0lBQVNBLFVBQW5CQSxVQUFVQSxVQUFrQkE7SUFLakNBLFNBTEtBLFVBQVVBLENBS0hBLFVBQTBCQSxFQUFFQSxXQUFrQ0E7UUFBbENDLDJCQUFrQ0EsR0FBbENBLGtCQUFrQ0E7UUFFekVBLGlCQUFPQSxDQUFDQTtRQUVSQSxJQUFJQSxDQUFDQSxVQUFVQSxHQUFHQSxJQUFJQSxDQUFDQTtRQUV2QkEsSUFBSUEsQ0FBQ0EsV0FBV0EsR0FBR0EsVUFBVUEsQ0FBQ0E7UUFDOUJBLElBQUlBLENBQUNBLFlBQVlBLEdBQUdBLFdBQVdBLENBQUNBO0lBQ2pDQSxDQUFDQTtJQUVERCxzQkFBV0Esa0NBQVVBO2FBQXJCQTtZQUVDRSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxXQUFXQSxDQUFDQTtRQUN6QkEsQ0FBQ0E7YUFFREYsVUFBc0JBLEtBQXFCQTtZQUUxQ0UsSUFBSUEsQ0FBQ0EsV0FBV0EsR0FBR0EsS0FBS0EsQ0FBQ0E7UUFDMUJBLENBQUNBOzs7T0FMQUY7SUFPREEsc0JBQVdBLG1DQUFXQTthQUF0QkE7WUFFQ0csTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0E7UUFDMUJBLENBQUNBO2FBRURILFVBQXVCQSxLQUFxQkE7WUFFM0NHLElBQUlBLENBQUNBLFlBQVlBLEdBQUdBLEtBQUtBLENBQUNBO1FBQzNCQSxDQUFDQTs7O09BTEFIO0lBT0RBOztPQUVHQTtJQUNJQSwrQ0FBMEJBLEdBQWpDQTtRQUVDSSxNQUFNQSxDQUFDQSxJQUFJQSxjQUFjQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtJQUNqQ0EsQ0FBQ0E7SUFFREosV0FBV0E7SUFDSkEsa0NBQWFBLEdBQXBCQTtRQUVDSyxJQUFJQSxDQUFDQSxlQUFlQSxHQUFHQSxLQUFLQSxDQUFDQTtJQUM5QkEsQ0FBQ0E7SUFFREwsV0FBV0E7SUFDSkEsaURBQTRCQSxHQUFuQ0E7UUFFQ00sTUFBTUEsQ0FBQ0EsSUFBSUEsVUFBVUEsRUFBRUEsQ0FBQ0E7SUFDekJBLENBQUNBO0lBRUROLFdBQVdBO0lBQ0pBLCtDQUEwQkEsR0FBakNBLFVBQWtDQSxNQUFjQSxFQUFFQSxNQUFhQSxFQUFFQSxNQUFzQkE7UUFBdEJPLHNCQUFzQkEsR0FBdEJBLGFBQXNCQTtRQUV0RkEsTUFBTUEsSUFBSUEsS0FBS0EsQ0FBQ0Esc0VBQXNFQSxDQUFDQSxDQUFDQTtJQUN6RkEsQ0FBQ0E7SUFFTVAseUNBQW9CQSxHQUEzQkEsVUFBNEJBLFlBQTBCQTtRQUVyRFEsb0JBQW9CQTtJQUNyQkEsQ0FBQ0E7SUFDRlIsaUJBQUNBO0FBQURBLENBakVBLEFBaUVDQSxFQWpFd0IsU0FBUyxFQWlFakM7QUFFRCxBQUFvQixpQkFBWCxVQUFVLENBQUMiLCJmaWxlIjoiZW50aXRpZXMvTGlnaHRQcm9iZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQm91bmRpbmdWb2x1bWVCYXNlXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2JvdW5kcy9Cb3VuZGluZ1ZvbHVtZUJhc2VcIik7XG5pbXBvcnQgTnVsbEJvdW5kc1x0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvYm91bmRzL051bGxCb3VuZHNcIik7XG5pbXBvcnQgTWF0cml4M0RcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9NYXRyaXgzRFwiKTtcbmltcG9ydCBWZWN0b3IzRFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1ZlY3RvcjNEXCIpO1xuaW1wb3J0IEVycm9yXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2Vycm9ycy9FcnJvclwiKTtcblxuaW1wb3J0IExpZ2h0QmFzZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9MaWdodEJhc2VcIik7XG5pbXBvcnQgRW50aXR5Tm9kZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcGFydGl0aW9uL0VudGl0eU5vZGVcIik7XG5pbXBvcnQgTGlnaHRQcm9iZU5vZGVcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wYXJ0aXRpb24vTGlnaHRQcm9iZU5vZGVcIik7XG5pbXBvcnQgSVJlbmRlcmVyUG9vbFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3Bvb2wvSVJlbmRlcmVyUG9vbFwiKTtcbmltcG9ydCBDYW1lcmFcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvQ2FtZXJhXCIpO1xuaW1wb3J0IElFbnRpdHlcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvSUVudGl0eVwiKTtcbmltcG9ydCBDdWJlVGV4dHVyZUJhc2VcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi90ZXh0dXJlcy9DdWJlVGV4dHVyZUJhc2VcIik7XG5cbmNsYXNzIExpZ2h0UHJvYmUgZXh0ZW5kcyBMaWdodEJhc2UgaW1wbGVtZW50cyBJRW50aXR5XG57XG5cdHByaXZhdGUgX2RpZmZ1c2VNYXA6Q3ViZVRleHR1cmVCYXNlO1xuXHRwcml2YXRlIF9zcGVjdWxhck1hcDpDdWJlVGV4dHVyZUJhc2U7XG5cblx0Y29uc3RydWN0b3IoZGlmZnVzZU1hcDpDdWJlVGV4dHVyZUJhc2UsIHNwZWN1bGFyTWFwOkN1YmVUZXh0dXJlQmFzZSA9IG51bGwpXG5cdHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy5fcElzRW50aXR5ID0gdHJ1ZTtcblxuXHRcdHRoaXMuX2RpZmZ1c2VNYXAgPSBkaWZmdXNlTWFwO1xuXHRcdHRoaXMuX3NwZWN1bGFyTWFwID0gc3BlY3VsYXJNYXA7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGRpZmZ1c2VNYXAoKTpDdWJlVGV4dHVyZUJhc2Vcblx0e1xuXHRcdHJldHVybiB0aGlzLl9kaWZmdXNlTWFwO1xuXHR9XG5cblx0cHVibGljIHNldCBkaWZmdXNlTWFwKHZhbHVlOkN1YmVUZXh0dXJlQmFzZSlcblx0e1xuXHRcdHRoaXMuX2RpZmZ1c2VNYXAgPSB2YWx1ZTtcblx0fVxuXG5cdHB1YmxpYyBnZXQgc3BlY3VsYXJNYXAoKTpDdWJlVGV4dHVyZUJhc2Vcblx0e1xuXHRcdHJldHVybiB0aGlzLl9zcGVjdWxhck1hcDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgc3BlY3VsYXJNYXAodmFsdWU6Q3ViZVRleHR1cmVCYXNlKVxuXHR7XG5cdFx0dGhpcy5fc3BlY3VsYXJNYXAgPSB2YWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUoKTpFbnRpdHlOb2RlXG5cdHtcblx0XHRyZXR1cm4gbmV3IExpZ2h0UHJvYmVOb2RlKHRoaXMpO1xuXHR9XG5cblx0Ly9Ab3ZlcnJpZGVcblx0cHVibGljIHBVcGRhdGVCb3VuZHMoKVxuXHR7XG5cdFx0dGhpcy5fcEJvdW5kc0ludmFsaWQgPSBmYWxzZTtcblx0fVxuXG5cdC8vQG92ZXJyaWRlXG5cdHB1YmxpYyBwQ3JlYXRlRGVmYXVsdEJvdW5kaW5nVm9sdW1lKCk6Qm91bmRpbmdWb2x1bWVCYXNlXG5cdHtcblx0XHRyZXR1cm4gbmV3IE51bGxCb3VuZHMoKTtcblx0fVxuXG5cdC8vQG92ZXJyaWRlXG5cdHB1YmxpYyBpR2V0T2JqZWN0UHJvamVjdGlvbk1hdHJpeChlbnRpdHk6SUVudGl0eSwgY2FtZXJhOkNhbWVyYSwgdGFyZ2V0Ok1hdHJpeDNEID0gbnVsbCk6TWF0cml4M0Rcblx0e1xuXHRcdHRocm93IG5ldyBFcnJvcihcIk9iamVjdCBwcm9qZWN0aW9uIG1hdHJpY2VzIGFyZSBub3Qgc3VwcG9ydGVkIGZvciBMaWdodFByb2JlIG9iamVjdHMhXCIpO1xuXHR9XG5cblx0cHVibGljIF9pQ29sbGVjdFJlbmRlcmFibGVzKHJlbmRlcmVyUG9vbDpJUmVuZGVyZXJQb29sKVxuXHR7XG5cdFx0Ly9ub3RoaW5nIHRvIGRvIGhlcmVcblx0fVxufVxuXG5leHBvcnQgPSBMaWdodFByb2JlOyJdfQ== \ No newline at end of file diff --git a/lib/entities/LightProbe.ts b/lib/entities/LightProbe.ts index 51ff6493c..dbb21e252 100644 --- a/lib/entities/LightProbe.ts +++ b/lib/entities/LightProbe.ts @@ -7,7 +7,7 @@ import Error = require("awayjs-core/lib/errors/Error"); import LightBase = require("awayjs-display/lib/base/LightBase"); import EntityNode = require("awayjs-display/lib/partition/EntityNode"); import LightProbeNode = require("awayjs-display/lib/partition/LightProbeNode"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); import Camera = require("awayjs-display/lib/entities/Camera"); import IEntity = require("awayjs-display/lib/entities/IEntity"); import CubeTextureBase = require("awayjs-core/lib/textures/CubeTextureBase"); @@ -73,7 +73,7 @@ class LightProbe extends LightBase implements IEntity throw new Error("Object projection matrices are not supported for LightProbe objects!"); } - public _iCollectRenderables(renderer:IRenderer) + public _iCollectRenderables(rendererPool:IRendererPool) { //nothing to do here } diff --git a/lib/entities/LineSegment.js b/lib/entities/LineSegment.js index dec1fe432..2b983ae00 100755 --- a/lib/entities/LineSegment.js +++ b/lib/entities/LineSegment.js @@ -170,19 +170,19 @@ var LineSegment = (function (_super) { for (var i = 0; i < len; i++) this._pRenderables[i].invalidateVertexData("vertices"); }; - LineSegment.prototype._iCollectRenderables = function (renderer) { + LineSegment.prototype._iCollectRenderables = function (rendererPool) { // Since this getter is invoked every iteration of the render loop, and // the prefab construct could affect the sub-meshes, the prefab is // validated here to give it a chance to rebuild. if (this._iSourcePrefab) this._iSourcePrefab._iValidate(); - this._iCollectRenderable(renderer); + this._iCollectRenderable(rendererPool); }; - LineSegment.prototype._iCollectRenderable = function (renderer) { + LineSegment.prototype._iCollectRenderable = function (rendererPool) { //TODO }; return LineSegment; })(DisplayObject); module.exports = LineSegment; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9saW5lc2VnbWVudC50cyJdLCJuYW1lcyI6WyJMaW5lU2VnbWVudCIsIkxpbmVTZWdtZW50LmNvbnN0cnVjdG9yIiwiTGluZVNlZ21lbnQuYW5pbWF0b3IiLCJMaW5lU2VnbWVudC5hc3NldFR5cGUiLCJMaW5lU2VnbWVudC5zdGFydFBvc3Rpb24iLCJMaW5lU2VnbWVudC5zdGFydFBvc2l0aW9uIiwiTGluZVNlZ21lbnQuZW5kUG9zaXRpb24iLCJMaW5lU2VnbWVudC5tYXRlcmlhbCIsIkxpbmVTZWdtZW50LnRoaWNrbmVzcyIsIkxpbmVTZWdtZW50LnV2VHJhbnNmb3JtIiwiTGluZVNlZ21lbnQuZGlzcG9zZSIsIkxpbmVTZWdtZW50LnBDcmVhdGVFbnRpdHlQYXJ0aXRpb25Ob2RlIiwiTGluZVNlZ21lbnQucFVwZGF0ZUJvdW5kcyIsIkxpbmVTZWdtZW50Lm9uU2l6ZUNoYW5nZWQiLCJMaW5lU2VnbWVudC5ub3RpZnlSZW5kZXJhYmxlVXBkYXRlIiwiTGluZVNlZ21lbnQuX2lDb2xsZWN0UmVuZGVyYWJsZXMiLCJMaW5lU2VnbWVudC5faUNvbGxlY3RSZW5kZXJhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxJQUFPLFNBQVMsV0FBZSxtQ0FBbUMsQ0FBQyxDQUFDO0FBR3BFLElBQU8sYUFBYSxXQUFjLHVDQUF1QyxDQUFDLENBQUM7QUFFM0UsSUFBTyxVQUFVLFdBQWUseUNBQXlDLENBQUMsQ0FBQztBQUUzRSxJQUFPLGFBQWEsV0FBYyx5Q0FBeUMsQ0FBQyxDQUFDO0FBSTdFLEFBR0E7O0dBREc7SUFDRyxXQUFXO0lBQVNBLFVBQXBCQSxXQUFXQSxVQUFzQkE7SUEySHRDQTs7Ozs7O09BTUdBO0lBQ0hBLFNBbElLQSxXQUFXQSxDQWtJSkEsUUFBcUJBLEVBQUVBLGFBQXNCQSxFQUFFQSxXQUFvQkEsRUFBRUEsU0FBb0JBO1FBbEl0R0MsaUJBME1DQTtRQXhFaUZBLHlCQUFvQkEsR0FBcEJBLGFB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QW1CQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQTtJQUNwQ0EsQ0FBQ0E7SUFFTWYseUNBQW1CQSxHQUExQkEsVUFBMkJBLFFBQWtCQTtRQUU1Q2dCLE1BQU1BO0lBQ1BBLENBQUNBO0lBQ0ZoQixrQkFBQ0E7QUFBREEsQ0ExTUEsQUEwTUNBLEVBMU15QixhQUFhLEVBME10QztBQUVELEFBQXFCLGlCQUFaLFdBQVcsQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9MaW5lU2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgTWF0cml4M0RcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9NYXRyaXgzRFwiKTtcbmltcG9ydCBVVlRyYW5zZm9ybVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9VVlRyYW5zZm9ybVwiKTtcbmltcG9ydCBWZWN0b3IzRFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1ZlY3RvcjNEXCIpO1xuaW1wb3J0IEFzc2V0VHlwZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvbGlicmFyeS9Bc3NldFR5cGVcIik7XG5cbmltcG9ydCBJQW5pbWF0b3JcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2FuaW1hdG9ycy9JQW5pbWF0b3JcIik7XG5pbXBvcnQgRGlzcGxheU9iamVjdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvRGlzcGxheU9iamVjdFwiKTtcbmltcG9ydCBJUmVuZGVyYWJsZU93bmVyXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9JUmVuZGVyYWJsZU93bmVyXCIpO1xuaW1wb3J0IEVudGl0eU5vZGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9FbnRpdHlOb2RlXCIpO1xuaW1wb3J0IElSZW5kZXJlclx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcmVuZGVyL0lSZW5kZXJlclwiKTtcbmltcG9ydCBNYXRlcmlhbEV2ZW50XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZXZlbnRzL01hdGVyaWFsRXZlbnRcIik7XG5pbXBvcnQgSUVudGl0eVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9JRW50aXR5XCIpO1xuaW1wb3J0IE1hdGVyaWFsQmFzZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvbWF0ZXJpYWxzL01hdGVyaWFsQmFzZVwiKTtcblxuLyoqXG4gKiBBIExpbmUgU2VnbWVudCBwcmltaXRpdmUuXG4gKi9cbmNsYXNzIExpbmVTZWdtZW50IGV4dGVuZHMgRGlzcGxheU9iamVjdCBpbXBsZW1lbnRzIElFbnRpdHksIElSZW5kZXJhYmxlT3duZXJcbntcblx0cHJpdmF0ZSBfYW5pbWF0b3I6SUFuaW1hdG9yO1xuXHRwcml2YXRlIF9tYXRlcmlhbDpNYXRlcmlhbEJhc2U7XG5cdHByaXZhdGUgX3V2VHJhbnNmb3JtOlVWVHJhbnNmb3JtO1xuXG5cdHByaXZhdGUgb25TaXplQ2hhbmdlZERlbGVnYXRlOihldmVudDpNYXRlcmlhbEV2ZW50KSA9PiB2b2lkO1xuXG5cdHB1YmxpYyBfc3RhcnRQb3NpdGlvbjpWZWN0b3IzRDtcblx0cHVibGljIF9lbmRQb3NpdGlvbjpWZWN0b3IzRDtcblx0cHVibGljIF9oYWxmVGhpY2tuZXNzOm51bWJlcjtcblxuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBhbmltYXRvciBvZiB0aGUgbGluZSBzZWdtZW50LiBBY3Qgb24gdGhlIGxpbmUgc2VnbWVudCdzIGdlb21ldHJ5LiBEZWZhdWx0cyB0byBudWxsXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGFuaW1hdG9yKCk6SUFuaW1hdG9yXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fYW5pbWF0b3I7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgYXNzZXRUeXBlKCk6c3RyaW5nXG5cdHtcblx0XHRyZXR1cm4gQXNzZXRUeXBlLkxJTkVfU0VHTUVOVDtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCBzdGFydFBvc3Rpb24oKTpWZWN0b3IzRFxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3N0YXJ0UG9zaXRpb247XG5cdH1cblxuXHRwdWJsaWMgc2V0IHN0YXJ0UG9zaXRpb24odmFsdWU6VmVjdG9yM0QpXG5cdHtcblx0XHRpZiAodGhpcy5fc3RhcnRQb3NpdGlvbiA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX3N0YXJ0UG9zaXRpb24gPSB2YWx1ZTtcblxuXHRcdHRoaXMubm90aWZ5UmVuZGVyYWJsZVVwZGF0ZSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGVuZFBvc2l0aW9uKCk6VmVjdG9yM0Rcblx0e1xuXHRcdHJldHVybiB0aGlzLl9lbmRQb3NpdGlvbjtcblx0fVxuXG5cdHB1YmxpYyBzZXQgZW5kUG9zaXRpb24odmFsdWU6VmVjdG9yM0QpXG5cdHtcblx0XHRpZiAodGhpcy5fZW5kUG9zaXRpb24gPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9lbmRQb3NpdGlvbiA9IHZhbHVlO1xuXG5cdFx0dGhpcy5ub3RpZnlSZW5kZXJhYmxlVXBkYXRlKCk7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgbWF0ZXJpYWwoKTpNYXRlcmlhbEJhc2Vcblx0e1xuXHRcdHJldHVybiB0aGlzLl9tYXRlcmlhbDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgbWF0ZXJpYWwodmFsdWU6TWF0ZXJpYWxCYXNlKVxuXHR7XG5cdFx0aWYgKHZhbHVlID09IHRoaXMuX21hdGVyaWFsKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0aWYgKHRoaXMuX21hdGVyaWFsKSB7XG5cdFx0XHR0aGlzLl9tYXRlcmlhbC5pUmVtb3ZlT3duZXIodGhpcyk7XG5cdFx0XHR0aGlzLl9tYXRlcmlhbC5yZW1vdmVFdmVudExpc3RlbmVyKE1hdGVyaWFsRXZlbnQuU0laRV9DSEFOR0VELCB0aGlzLm9uU2l6ZUNoYW5nZWREZWxlZ2F0ZSk7XG5cdFx0fVxuXG5cblx0XHR0aGlzLl9tYXRlcmlhbCA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuX21hdGVyaWFsKSB7XG5cdFx0XHR0aGlzLl9tYXRlcmlhbC5pQWRkT3duZXIodGhpcyk7XG5cdFx0XHR0aGlzLl9tYXRlcmlhbC5hZGRFdmVudExpc3RlbmVyKE1hdGVyaWFsRXZlbnQuU0laRV9DSEFOR0VELCB0aGlzLm9uU2l6ZUNoYW5nZWREZWxlZ2F0ZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHRoaWNrbmVzcygpOm51bWJlclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2hhbGZUaGlja25lc3MqMjtcblx0fVxuXG5cdHB1YmxpYyBzZXQgdGhpY2tuZXNzKHZhbHVlOm51bWJlcilcblx0e1xuXHRcdGlmICh0aGlzLl9oYWxmVGhpY2tuZXNzID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5faGFsZlRoaWNrbmVzcyA9IHZhbHVlKjAuNTtcblxuXHRcdHRoaXMubm90aWZ5UmVuZGVyYWJsZVVwZGF0ZSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHV2VHJhbnNmb3JtKCk6VVZUcmFuc2Zvcm1cblx0e1xuXHRcdHJldHVybiB0aGlzLl91dlRyYW5zZm9ybTtcblx0fVxuXG5cdHB1YmxpYyBzZXQgdXZUcmFuc2Zvcm0odmFsdWU6VVZUcmFuc2Zvcm0pXG5cdHtcblx0XHR0aGlzLl91dlRyYW5zZm9ybSA9IHZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSBhIGxpbmUgc2VnbWVudFxuXHQgKlxuXHQgKiBAcGFyYW0gc3RhcnRQb3NpdGlvbiBTdGFydCBwb3NpdGlvbiBvZiB0aGUgbGluZSBzZWdtZW50XG5cdCAqIEBwYXJhbSBlbmRQb3NpdGlvbiBFbmRpbmcgcG9zaXRpb24gb2YgdGhlIGxpbmUgc2VnbWVudFxuXHQgKiBAcGFyYW0gdGhpY2tuZXNzIFRoaWNrbmVzcyBvZiB0aGUgbGluZVxuXHQgKi9cblx0Y29uc3RydWN0b3IobWF0ZXJpYWw6TWF0ZXJpYWxCYXNlLCBzdGFydFBvc2l0aW9uOlZlY3RvcjNELCBlbmRQb3NpdGlvbjpWZWN0b3IzRCwgdGhpY2tuZXNzOm51bWJlciA9IDEpXG5cdHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy5fcElzRW50aXR5ID0gdHJ1ZTtcblxuXHRcdHRoaXMub25TaXplQ2hhbmdlZERlbGVnYXRlID0gKGV2ZW50Ok1hdGVyaWFsRXZlbnQpID0+IHRoaXMub25TaXplQ2hhbmdlZChldmVudCk7XG5cblx0XHR0aGlzLm1hdGVyaWFsID0gbWF0ZXJpYWw7XG5cblx0XHR0aGlzLl9zdGFydFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbjtcblx0XHR0aGlzLl9lbmRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uO1xuXHRcdHRoaXMuX2hhbGZUaGlja25lc3MgPSB0aGlja25lc3MqMC41O1xuXHR9XG5cblx0cHVibGljIGRpc3Bvc2UoKVxuXHR7XG5cdFx0dGhpcy5fc3RhcnRQb3NpdGlvbiA9IG51bGw7XG5cdFx0dGhpcy5fZW5kUG9zaXRpb24gPSBudWxsO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHB1YmxpYyBwQ3JlYXRlRW50aXR5UGFydGl0aW9uTm9kZSgpOkVudGl0eU5vZGVcblx0e1xuXHRcdHJldHVybiBuZXcgRW50aXR5Tm9kZSh0aGlzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcFVwZGF0ZUJvdW5kcygpXG5cdHtcblx0XHR0aGlzLl9wQm91bmRzLmZyb21FeHRyZW1lcyh0aGlzLl9zdGFydFBvc2l0aW9uLngsIHRoaXMuX3N0YXJ0UG9zaXRpb24ueSwgdGhpcy5fc3RhcnRQb3NpdGlvbi56LCB0aGlzLl9lbmRQb3NpdGlvbi54LCB0aGlzLl9lbmRQb3NpdGlvbi55LCB0aGlzLl9lbmRQb3NpdGlvbi56KTtcblxuXHRcdHN1cGVyLnBVcGRhdGVCb3VuZHMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBvblNpemVDaGFuZ2VkKGV2ZW50Ok1hdGVyaWFsRXZlbnQpXG5cdHtcblx0XHR0aGlzLm5vdGlmeVJlbmRlcmFibGVVcGRhdGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBub3RpZnlSZW5kZXJhYmxlVXBkYXRlKClcblx0e1xuXHRcdHZhciBsZW46bnVtYmVyID0gdGhpcy5fcFJlbmRlcmFibGVzLmxlbmd0aDtcblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCBsZW47IGkrKylcblx0XHRcdHRoaXMuX3BSZW5kZXJhYmxlc1tpXS5pbnZhbGlkYXRlVmVydGV4RGF0YShcInZlcnRpY2VzXCIpOyAvL1RPRE9cblx0fVxuXG5cdHB1YmxpYyBfaUNvbGxlY3RSZW5kZXJhYmxlcyhyZW5kZXJlcjpJUmVuZGVyZXIpXG5cdHtcblx0XHQvLyBTaW5jZSB0aGlzIGdldHRlciBpcyBpbnZva2VkIGV2ZXJ5IGl0ZXJhdGlvbiBvZiB0aGUgcmVuZGVyIGxvb3AsIGFuZFxuXHRcdC8vIHRoZSBwcmVmYWIgY29uc3RydWN0IGNvdWxkIGFmZmVjdCB0aGUgc3ViLW1lc2hlcywgdGhlIHByZWZhYiBpc1xuXHRcdC8vIHZhbGlkYXRlZCBoZXJlIHRvIGdpdmUgaXQgYSBjaGFuY2UgdG8gcmVidWlsZC5cblx0XHRpZiAodGhpcy5faVNvdXJjZVByZWZhYilcblx0XHRcdHRoaXMuX2lTb3VyY2VQcmVmYWIuX2lWYWxpZGF0ZSgpO1xuXG5cdFx0dGhpcy5faUNvbGxlY3RSZW5kZXJhYmxlKHJlbmRlcmVyKTtcblx0fVxuXG5cdHB1YmxpYyBfaUNvbGxlY3RSZW5kZXJhYmxlKHJlbmRlcmVyOklSZW5kZXJlcilcblx0e1xuXHRcdC8vVE9ET1xuXHR9XG59XG5cbmV4cG9ydCA9IExpbmVTZWdtZW50OyJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9saW5lc2VnbWVudC50cyJdLCJuYW1lcyI6WyJMaW5lU2VnbWVudCIsIkxpbmVTZWdtZW50LmNvbnN0cnVjdG9yIiwiTGluZVNlZ21lbnQuYW5pbWF0b3IiLCJMaW5lU2VnbWVudC5hc3NldFR5cGUiLCJMaW5lU2VnbWVudC5zdGFydFBvc3Rpb24iLCJMaW5lU2VnbWVudC5zdGFydFBvc2l0aW9uIiwiTGluZVNlZ21lbnQuZW5kUG9zaXRpb24iLCJMaW5lU2VnbWVudC5tYXRlcmlhbCIsIkxpbmVTZWdtZW50LnRoaWNrbmVzcyIsIkxpbmVTZWdtZW50LnV2VHJhbnNmb3JtIiwiTGluZVNlZ21lbnQuZGlzcG9zZSIsIkxpbmVTZWdtZW50LnBDcmVhdGVFbnRpdHlQYXJ0aXRpb25Ob2RlIiwiTGluZVNlZ21lbnQucFVwZGF0ZUJvdW5kcyIsIkxpbmVTZWdtZW50Lm9uU2l6ZUNoYW5nZWQiLCJMaW5lU2VnbWVudC5ub3RpZnlSZW5kZXJhYmxlVXBkYXRlIiwiTGluZVNlZ21lbnQuX2lDb2xsZWN0UmVuZGVyYWJsZXMiLCJMaW5lU2VnbWVudC5faUNvbGxlY3RSZW5kZXJhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxJQUFPLFNBQVMsV0FBZSxtQ0FBbUMsQ0FBQyxDQUFDO0FBR3BFLElBQU8sYUFBYSxXQUFjLHVDQUF1QyxDQUFDLENBQUM7QUFFM0UsSUFBTyxVQUFVLFdBQWUseUNBQXlDLENBQUMsQ0FBQztBQUUzRSxJQUFPLGFBQWEsV0FBYyx5Q0FBeUMsQ0FBQyxDQUFDO0FBSTdFLEFBR0E7O0dBREc7SUFDRyxXQUFXO0lBQVNBLFVBQXBCQSxXQUFXQSxVQUFzQkE7SUEySHRDQTs7Ozs7O09BTUdBO0lBQ0hBLFNBbElLQSxXQUFXQSxDQWtJSkEsUUFBcUJBLEVBQUVBLGFBQXNCQSxFQUFFQSxXQUFvQkEsRUFBRUEsU0FBb0JBO1FBbEl0R0MsaUJBME1DQTtRQXhFaUZBLHlCQUFvQkEsR0FBcEJBLGFB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QW1CQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQTtJQUN4Q0EsQ0FBQ0E7SUFFTWYseUNBQW1CQSxHQUExQkEsVUFBMkJBLFlBQTBCQTtRQUVwRGdCLE1BQU1BO0lBQ1BBLENBQUNBO0lBQ0ZoQixrQkFBQ0E7QUFBREEsQ0ExTUEsQUEwTUNBLEVBMU15QixhQUFhLEVBME10QztBQUVELEFBQXFCLGlCQUFaLFdBQVcsQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9MaW5lU2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgTWF0cml4M0RcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9NYXRyaXgzRFwiKTtcbmltcG9ydCBVVlRyYW5zZm9ybVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9VVlRyYW5zZm9ybVwiKTtcbmltcG9ydCBWZWN0b3IzRFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1ZlY3RvcjNEXCIpO1xuaW1wb3J0IEFzc2V0VHlwZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvbGlicmFyeS9Bc3NldFR5cGVcIik7XG5cbmltcG9ydCBJQW5pbWF0b3JcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2FuaW1hdG9ycy9JQW5pbWF0b3JcIik7XG5pbXBvcnQgRGlzcGxheU9iamVjdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvRGlzcGxheU9iamVjdFwiKTtcbmltcG9ydCBJUmVuZGVyYWJsZU93bmVyXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9JUmVuZGVyYWJsZU93bmVyXCIpO1xuaW1wb3J0IEVudGl0eU5vZGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9FbnRpdHlOb2RlXCIpO1xuaW1wb3J0IElSZW5kZXJlclBvb2xcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL0lSZW5kZXJlclBvb2xcIik7XG5pbXBvcnQgTWF0ZXJpYWxFdmVudFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2V2ZW50cy9NYXRlcmlhbEV2ZW50XCIpO1xuaW1wb3J0IElFbnRpdHlcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvSUVudGl0eVwiKTtcbmltcG9ydCBNYXRlcmlhbEJhc2VcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9NYXRlcmlhbEJhc2VcIik7XG5cbi8qKlxuICogQSBMaW5lIFNlZ21lbnQgcHJpbWl0aXZlLlxuICovXG5jbGFzcyBMaW5lU2VnbWVudCBleHRlbmRzIERpc3BsYXlPYmplY3QgaW1wbGVtZW50cyBJRW50aXR5LCBJUmVuZGVyYWJsZU93bmVyXG57XG5cdHByaXZhdGUgX2FuaW1hdG9yOklBbmltYXRvcjtcblx0cHJpdmF0ZSBfbWF0ZXJpYWw6TWF0ZXJpYWxCYXNlO1xuXHRwcml2YXRlIF91dlRyYW5zZm9ybTpVVlRyYW5zZm9ybTtcblxuXHRwcml2YXRlIG9uU2l6ZUNoYW5nZWREZWxlZ2F0ZTooZXZlbnQ6TWF0ZXJpYWxFdmVudCkgPT4gdm9pZDtcblxuXHRwdWJsaWMgX3N0YXJ0UG9zaXRpb246VmVjdG9yM0Q7XG5cdHB1YmxpYyBfZW5kUG9zaXRpb246VmVjdG9yM0Q7XG5cdHB1YmxpYyBfaGFsZlRoaWNrbmVzczpudW1iZXI7XG5cblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgYW5pbWF0b3Igb2YgdGhlIGxpbmUgc2VnbWVudC4gQWN0IG9uIHRoZSBsaW5lIHNlZ21lbnQncyBnZW9tZXRyeS4gRGVmYXVsdHMgdG8gbnVsbFxuXHQgKi9cblx0cHVibGljIGdldCBhbmltYXRvcigpOklBbmltYXRvclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2FuaW1hdG9yO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGFzc2V0VHlwZSgpOnN0cmluZ1xuXHR7XG5cdFx0cmV0dXJuIEFzc2V0VHlwZS5MSU5FX1NFR01FTlQ7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgc3RhcnRQb3N0aW9uKCk6VmVjdG9yM0Rcblx0e1xuXHRcdHJldHVybiB0aGlzLl9zdGFydFBvc2l0aW9uO1xuXHR9XG5cblx0cHVibGljIHNldCBzdGFydFBvc2l0aW9uKHZhbHVlOlZlY3RvcjNEKVxuXHR7XG5cdFx0aWYgKHRoaXMuX3N0YXJ0UG9zaXRpb24gPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9zdGFydFBvc2l0aW9uID0gdmFsdWU7XG5cblx0XHR0aGlzLm5vdGlmeVJlbmRlcmFibGVVcGRhdGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCBlbmRQb3NpdGlvbigpOlZlY3RvcjNEXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fZW5kUG9zaXRpb247XG5cdH1cblxuXHRwdWJsaWMgc2V0IGVuZFBvc2l0aW9uKHZhbHVlOlZlY3RvcjNEKVxuXHR7XG5cdFx0aWYgKHRoaXMuX2VuZFBvc2l0aW9uID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fZW5kUG9zaXRpb24gPSB2YWx1ZTtcblxuXHRcdHRoaXMubm90aWZ5UmVuZGVyYWJsZVVwZGF0ZSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IG1hdGVyaWFsKCk6TWF0ZXJpYWxCYXNlXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fbWF0ZXJpYWw7XG5cdH1cblxuXHRwdWJsaWMgc2V0IG1hdGVyaWFsKHZhbHVlOk1hdGVyaWFsQmFzZSlcblx0e1xuXHRcdGlmICh2YWx1ZSA9PSB0aGlzLl9tYXRlcmlhbClcblx0XHRcdHJldHVybjtcblxuXHRcdGlmICh0aGlzLl9tYXRlcmlhbCkge1xuXHRcdFx0dGhpcy5fbWF0ZXJpYWwuaVJlbW92ZU93bmVyKHRoaXMpO1xuXHRcdFx0dGhpcy5fbWF0ZXJpYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihNYXRlcmlhbEV2ZW50LlNJWkVfQ0hBTkdFRCwgdGhpcy5vblNpemVDaGFuZ2VkRGVsZWdhdGUpO1xuXHRcdH1cblxuXG5cdFx0dGhpcy5fbWF0ZXJpYWwgPSB2YWx1ZTtcblxuXHRcdGlmICh0aGlzLl9tYXRlcmlhbCkge1xuXHRcdFx0dGhpcy5fbWF0ZXJpYWwuaUFkZE93bmVyKHRoaXMpO1xuXHRcdFx0dGhpcy5fbWF0ZXJpYWwuYWRkRXZlbnRMaXN0ZW5lcihNYXRlcmlhbEV2ZW50LlNJWkVfQ0hBTkdFRCwgdGhpcy5vblNpemVDaGFuZ2VkRGVsZWdhdGUpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCB0aGlja25lc3MoKTpudW1iZXJcblx0e1xuXHRcdHJldHVybiB0aGlzLl9oYWxmVGhpY2tuZXNzKjI7XG5cdH1cblxuXHRwdWJsaWMgc2V0IHRoaWNrbmVzcyh2YWx1ZTpudW1iZXIpXG5cdHtcblx0XHRpZiAodGhpcy5faGFsZlRoaWNrbmVzcyA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX2hhbGZUaGlja25lc3MgPSB2YWx1ZSowLjU7XG5cblx0XHR0aGlzLm5vdGlmeVJlbmRlcmFibGVVcGRhdGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCB1dlRyYW5zZm9ybSgpOlVWVHJhbnNmb3JtXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fdXZUcmFuc2Zvcm07XG5cdH1cblxuXHRwdWJsaWMgc2V0IHV2VHJhbnNmb3JtKHZhbHVlOlVWVHJhbnNmb3JtKVxuXHR7XG5cdFx0dGhpcy5fdXZUcmFuc2Zvcm0gPSB2YWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgYSBsaW5lIHNlZ21lbnRcblx0ICpcblx0ICogQHBhcmFtIHN0YXJ0UG9zaXRpb24gU3RhcnQgcG9zaXRpb24gb2YgdGhlIGxpbmUgc2VnbWVudFxuXHQgKiBAcGFyYW0gZW5kUG9zaXRpb24gRW5kaW5nIHBvc2l0aW9uIG9mIHRoZSBsaW5lIHNlZ21lbnRcblx0ICogQHBhcmFtIHRoaWNrbmVzcyBUaGlja25lc3Mgb2YgdGhlIGxpbmVcblx0ICovXG5cdGNvbnN0cnVjdG9yKG1hdGVyaWFsOk1hdGVyaWFsQmFzZSwgc3RhcnRQb3NpdGlvbjpWZWN0b3IzRCwgZW5kUG9zaXRpb246VmVjdG9yM0QsIHRoaWNrbmVzczpudW1iZXIgPSAxKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuX3BJc0VudGl0eSA9IHRydWU7XG5cblx0XHR0aGlzLm9uU2l6ZUNoYW5nZWREZWxlZ2F0ZSA9IChldmVudDpNYXRlcmlhbEV2ZW50KSA9PiB0aGlzLm9uU2l6ZUNoYW5nZWQoZXZlbnQpO1xuXG5cdFx0dGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuXG5cdFx0dGhpcy5fc3RhcnRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb247XG5cdFx0dGhpcy5fZW5kUG9zaXRpb24gPSBlbmRQb3NpdGlvbjtcblx0XHR0aGlzLl9oYWxmVGhpY2tuZXNzID0gdGhpY2tuZXNzKjAuNTtcblx0fVxuXG5cdHB1YmxpYyBkaXNwb3NlKClcblx0e1xuXHRcdHRoaXMuX3N0YXJ0UG9zaXRpb24gPSBudWxsO1xuXHRcdHRoaXMuX2VuZFBvc2l0aW9uID0gbnVsbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUoKTpFbnRpdHlOb2RlXG5cdHtcblx0XHRyZXR1cm4gbmV3IEVudGl0eU5vZGUodGhpcyk7XG5cdH1cblxuXHQvKipcblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0cHVibGljIHBVcGRhdGVCb3VuZHMoKVxuXHR7XG5cdFx0dGhpcy5fcEJvdW5kcy5mcm9tRXh0cmVtZXModGhpcy5fc3RhcnRQb3NpdGlvbi54LCB0aGlzLl9zdGFydFBvc2l0aW9uLnksIHRoaXMuX3N0YXJ0UG9zaXRpb24ueiwgdGhpcy5fZW5kUG9zaXRpb24ueCwgdGhpcy5fZW5kUG9zaXRpb24ueSwgdGhpcy5fZW5kUG9zaXRpb24ueik7XG5cblx0XHRzdXBlci5wVXBkYXRlQm91bmRzKCk7XG5cdH1cblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHByaXZhdGUgb25TaXplQ2hhbmdlZChldmVudDpNYXRlcmlhbEV2ZW50KVxuXHR7XG5cdFx0dGhpcy5ub3RpZnlSZW5kZXJhYmxlVXBkYXRlKCk7XG5cdH1cblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHByaXZhdGUgbm90aWZ5UmVuZGVyYWJsZVVwZGF0ZSgpXG5cdHtcblx0XHR2YXIgbGVuOm51bWJlciA9IHRoaXMuX3BSZW5kZXJhYmxlcy5sZW5ndGg7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9wUmVuZGVyYWJsZXNbaV0uaW52YWxpZGF0ZVZlcnRleERhdGEoXCJ2ZXJ0aWNlc1wiKTsgLy9UT0RPXG5cdH1cblxuXHRwdWJsaWMgX2lDb2xsZWN0UmVuZGVyYWJsZXMocmVuZGVyZXJQb29sOklSZW5kZXJlclBvb2wpXG5cdHtcblx0XHQvLyBTaW5jZSB0aGlzIGdldHRlciBpcyBpbnZva2VkIGV2ZXJ5IGl0ZXJhdGlvbiBvZiB0aGUgcmVuZGVyIGxvb3AsIGFuZFxuXHRcdC8vIHRoZSBwcmVmYWIgY29uc3RydWN0IGNvdWxkIGFmZmVjdCB0aGUgc3ViLW1lc2hlcywgdGhlIHByZWZhYiBpc1xuXHRcdC8vIHZhbGlkYXRlZCBoZXJlIHRvIGdpdmUgaXQgYSBjaGFuY2UgdG8gcmVidWlsZC5cblx0XHRpZiAodGhpcy5faVNvdXJjZVByZWZhYilcblx0XHRcdHRoaXMuX2lTb3VyY2VQcmVmYWIuX2lWYWxpZGF0ZSgpO1xuXG5cdFx0dGhpcy5faUNvbGxlY3RSZW5kZXJhYmxlKHJlbmRlcmVyUG9vbCk7XG5cdH1cblxuXHRwdWJsaWMgX2lDb2xsZWN0UmVuZGVyYWJsZShyZW5kZXJlclBvb2w6SVJlbmRlcmVyUG9vbClcblx0e1xuXHRcdC8vVE9ET1xuXHR9XG59XG5cbmV4cG9ydCA9IExpbmVTZWdtZW50OyJdfQ== \ No newline at end of file diff --git a/lib/entities/LineSegment.ts b/lib/entities/LineSegment.ts index 1037c67cc..4d0aeb4dd 100644 --- a/lib/entities/LineSegment.ts +++ b/lib/entities/LineSegment.ts @@ -7,7 +7,7 @@ import IAnimator = require("awayjs-display/lib/animators/IAnimator"); import DisplayObject = require("awayjs-display/lib/base/DisplayObject"); import IRenderableOwner = require("awayjs-display/lib/base/IRenderableOwner"); import EntityNode = require("awayjs-display/lib/partition/EntityNode"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); import MaterialEvent = require("awayjs-display/lib/events/MaterialEvent"); import IEntity = require("awayjs-display/lib/entities/IEntity"); import MaterialBase = require("awayjs-display/lib/materials/MaterialBase"); @@ -202,7 +202,7 @@ class LineSegment extends DisplayObject implements IEntity, IRenderableOwner this._pRenderables[i].invalidateVertexData("vertices"); //TODO } - public _iCollectRenderables(renderer:IRenderer) + public _iCollectRenderables(rendererPool:IRendererPool) { // Since this getter is invoked every iteration of the render loop, and // the prefab construct could affect the sub-meshes, the prefab is @@ -210,10 +210,10 @@ class LineSegment extends DisplayObject implements IEntity, IRenderableOwner if (this._iSourcePrefab) this._iSourcePrefab._iValidate(); - this._iCollectRenderable(renderer); + this._iCollectRenderable(rendererPool); } - public _iCollectRenderable(renderer:IRenderer) + public _iCollectRenderable(rendererPool:IRendererPool) { //TODO } diff --git a/lib/entities/Mesh.js b/lib/entities/Mesh.js index b100be70d..aedd3cfda 100755 --- a/lib/entities/Mesh.js +++ b/lib/entities/Mesh.js @@ -388,7 +388,7 @@ var Mesh = (function (_super) { * * @internal */ - Mesh.prototype._iCollectRenderables = function (renderer) { + Mesh.prototype._iCollectRenderables = function (rendererPool) { // Since this getter is invoked every iteration of the render loop, and // the prefab construct could affect the sub-meshes, the prefab is // validated here to give it a chance to rebuild. @@ -396,7 +396,7 @@ var Mesh = (function (_super) { this._iSourcePrefab._iValidate(); var len = this._subMeshes.length; for (var i = 0; i < len; i++) - this._subMeshes[i]._iCollectRenderable(renderer); + this._subMeshes[i]._iCollectRenderable(rendererPool); }; Mesh.prototype._iInvalidateRenderableGeometries = function () { var len = this._subMeshes.length; @@ -407,4 +407,4 @@ var Mesh = (function (_super) { })(DisplayObjectContainer); module.exports = Mesh; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9tZXNoLnRzIl0sIm5hbWVzIjpbIk1lc2giLCJNZXNoLmNvbnN0cnVjdG9yIiwiTWVzaC5hbmltYXRvciIsIk1lc2guYXNzZXRUeXBlIiwiTWVzaC5jYXN0c1NoYWRvd3MiLCJNZXNoLmdlb21ldHJ5IiwiTWVzaC5tYXRlcmlhbCIsIk1lc2guc2hhcmVBbmltYXRpb25HZW9tZXRyeSIsIk1lc2guc3ViTWVzaGVzIiwiTWVzaC51dlRyYW5zZm9ybSIsIk1lc2guYmFrZVRyYW5zZm9ybWF0aW9ucyIsIk1lc2guZGlzcG9zZSIsIk1lc2guZGlzcG9zZVdpdGhBbmltYXRvckFuZENoaWxkcmVuIiwiTWVzaC5jbG9uZSIsIk1lc2guZ2V0U3ViTWVzaEZyb21TdWJHZW9tZXRyeSIsIk1lc2gucENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUiLCJNZXNoLnBVcGRhdGVCb3VuZHMiLCJNZXNoLm9uR2VvbWV0cnlCb3VuZHNJbnZhbGlkIiwiTWVzaC5vblN1Ykdlb21ldHJ5QWRkZWQiLCJNZXNoLm9uU3ViR2VvbWV0cnlSZW1vdmVkIiwiTWVzaC5hZGRTdWJNZXNoIiwiTWVzaC5faVRlc3RDb2xsaXNpb24iLCJNZXNoLl9pQ29sbGVjdFJlbmRlcmFibGVzIiwiTWVzaC5faUludmFsaWRhdGVSZW5kZXJhYmxlR2VvbWV0cmllcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBTyxTQUFTLFdBQWUsbUNBQW1DLENBQUMsQ0FBQztBQUlwRSxJQUFPLFFBQVEsV0FBZ0Isa0NBQWtDLENBQUMsQ0FBQztBQUtuRSxJQUFPLHNCQUFzQixXQUFZLHNEQUFzRCxDQUFDLENBQUM7QUFDakcsSUFBTyxVQUFVLFdBQWUseUNBQXlDLENBQUMsQ0FBQztBQUUzRSxJQUFPLGFBQWEsV0FBYyx5Q0FBeUMsQ0FBQyxDQUFDO0FBSTdFLEFBS0E7Ozs7R0FERztJQUNHLElBQUk7SUFBU0EsVUFBYkEsSUFBSUEsVUFBK0JBO0lBcUx4Q0E7Ozs7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Q0FBQ0EsR0FBVUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsR0FBR0EsRUFBRUEsRUFBRUEsQ0FBQ0E7WUFDbENBLElBQUlBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLDhCQUE4QkEsRUFBRUEsQ0FBQ0E7SUFDdERBLENBQUNBO0lBQ0Z2QixXQUFDQTtBQUFEQSxDQWplQSxBQWllQ0EsRUFqZWtCLHNCQUFzQixFQWlleEM7QUFFRCxBQUFjLGlCQUFMLElBQUksQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9NZXNoLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBVVlRyYW5zZm9ybVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9VVlRyYW5zZm9ybVwiKTtcbmltcG9ydCBBc3NldFR5cGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2xpYnJhcnkvQXNzZXRUeXBlXCIpO1xuXG5pbXBvcnQgSUFuaW1hdG9yXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9hbmltYXRvcnMvSUFuaW1hdG9yXCIpO1xuaW1wb3J0IERpc3BsYXlPYmplY3RcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL0Rpc3BsYXlPYmplY3RcIik7XG5pbXBvcnQgR2VvbWV0cnlcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9HZW9tZXRyeVwiKTtcbmltcG9ydCBJU3ViTWVzaFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL0lTdWJNZXNoXCIpO1xuaW1wb3J0IElTdWJNZXNoQ2xhc3NcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL0lTdWJNZXNoQ2xhc3NcIik7XG5pbXBvcnQgVHJpYW5nbGVTdWJHZW9tZXRyeVx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL1RyaWFuZ2xlU3ViR2VvbWV0cnlcIik7XG5pbXBvcnQgU3ViR2VvbWV0cnlCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9TdWJHZW9tZXRyeUJhc2VcIik7XG5pbXBvcnQgRGlzcGxheU9iamVjdENvbnRhaW5lclx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvY29udGFpbmVycy9EaXNwbGF5T2JqZWN0Q29udGFpbmVyXCIpO1xuaW1wb3J0IEVudGl0eU5vZGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9FbnRpdHlOb2RlXCIpO1xuaW1wb3J0IElSZW5kZXJlclx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcmVuZGVyL0lSZW5kZXJlclwiKTtcbmltcG9ydCBHZW9tZXRyeUV2ZW50XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZXZlbnRzL0dlb21ldHJ5RXZlbnRcIik7XG5pbXBvcnQgSUVudGl0eVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9JRW50aXR5XCIpO1xuaW1wb3J0IE1hdGVyaWFsQmFzZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvbWF0ZXJpYWxzL01hdGVyaWFsQmFzZVwiKTtcblxuLyoqXG4gKiBNZXNoIGlzIGFuIGluc3RhbmNlIG9mIGEgR2VvbWV0cnksIGF1Z21lbnRpbmcgaXQgd2l0aCBhIHByZXNlbmNlIGluIHRoZSBzY2VuZSBncmFwaCwgYSBtYXRlcmlhbCwgYW5kIGFuIGFuaW1hdGlvblxuICogc3RhdGUuIEl0IGNvbnNpc3RzIG91dCBvZiBTdWJNZXNoZXMsIHdoaWNoIGluIHR1cm4gY29ycmVzcG9uZCB0byBTdWJHZW9tZXRyaWVzLiBTdWJNZXNoZXMgYWxsb3cgZGlmZmVyZW50IHBhcnRzXG4gKiBvZiB0aGUgZ2VvbWV0cnkgdG8gYmUgYXNzaWduZWQgZGlmZmVyZW50IG1hdGVyaWFscy5cbiAqL1xuY2xhc3MgTWVzaCBleHRlbmRzIERpc3BsYXlPYmplY3RDb250YWluZXIgaW1wbGVtZW50cyBJRW50aXR5XG57XG5cdHByaXZhdGUgX3V2VHJhbnNmb3JtOlVWVHJhbnNmb3JtO1xuXG5cdHByaXZhdGUgX3N1Yk1lc2hlczpBcnJheTxJU3ViTWVzaD47XG5cdHByaXZhdGUgX2dlb21ldHJ5Okdlb21ldHJ5O1xuXHRwcml2YXRlIF9tYXRlcmlhbDpNYXRlcmlhbEJhc2U7XG5cdHByaXZhdGUgX2FuaW1hdG9yOklBbmltYXRvcjtcblx0cHJpdmF0ZSBfY2FzdHNTaGFkb3dzOmJvb2xlYW4gPSB0cnVlO1xuXHRwcml2YXRlIF9zaGFyZUFuaW1hdGlvbkdlb21ldHJ5OmJvb2xlYW4gPSB0cnVlO1xuXG5cdHByaXZhdGUgX29uR2VvbWV0cnlCb3VuZHNJbnZhbGlkRGVsZWdhdGU6KGV2ZW50Okdlb21ldHJ5RXZlbnQpID0+IHZvaWQ7XG5cdHByaXZhdGUgX29uU3ViR2VvbWV0cnlBZGRlZERlbGVnYXRlOihldmVudDpHZW9tZXRyeUV2ZW50KSA9PiB2b2lkO1xuXHRwcml2YXRlIF9vblN1Ykdlb21ldHJ5UmVtb3ZlZERlbGVnYXRlOihldmVudDpHZW9tZXRyeUV2ZW50KSA9PiB2b2lkO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBhbmltYXRvciBvZiB0aGUgbWVzaC4gQWN0IG9uIHRoZSBtZXNoJ3MgZ2VvbWV0cnkuICBEZWZhdWx0IHZhbHVlIGlzIDxjb2RlPm51bGw8L2NvZGU+LlxuXHQgKi9cblx0cHVibGljIGdldCBhbmltYXRvcigpOklBbmltYXRvclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2FuaW1hdG9yO1xuXHR9XG5cblx0cHVibGljIHNldCBhbmltYXRvcih2YWx1ZTpJQW5pbWF0b3IpXG5cdHtcblx0XHRpZiAodGhpcy5fYW5pbWF0b3IpXG5cdFx0XHR0aGlzLl9hbmltYXRvci5yZW1vdmVPd25lcih0aGlzKTtcblxuXHRcdHRoaXMuX2FuaW1hdG9yID0gdmFsdWU7XG5cblx0XHR2YXIgbGVuOm51bWJlciA9IHRoaXMuX3N1Yk1lc2hlcy5sZW5ndGg7XG5cdFx0dmFyIHN1Yk1lc2g6SVN1Yk1lc2g7XG5cblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCBsZW47ICsraSkge1xuXHRcdFx0c3ViTWVzaCA9IHRoaXMuX3N1Yk1lc2hlc1tpXTtcblxuXHRcdFx0Ly8gY2F1c2UgbWF0ZXJpYWwgdG8gYmUgdW5yZWdpc3RlcmVkIGFuZCByZWdpc3RlcmVkIGFnYWluIHRvIHdvcmsgd2l0aCB0aGUgbmV3IGFuaW1hdGlvbiB0eXBlIChpZiBwb3NzaWJsZSlcblx0XHRcdGlmIChzdWJNZXNoLm1hdGVyaWFsKSB7XG5cdFx0XHRcdHN1Yk1lc2gubWF0ZXJpYWwuaVJlbW92ZU93bmVyKHN1Yk1lc2gpO1xuXHRcdFx0XHRzdWJNZXNoLm1hdGVyaWFsLmlBZGRPd25lcihzdWJNZXNoKTtcblx0XHRcdH1cblxuXHRcdFx0Ly9pbnZhbGlkYXRlIGFueSBleGlzdGluZyByZW5kZXJhYmxlcyBpbiBjYXNlIHRoZXkgbmVlZCB0byBwdWxsIG5ldyBnZW9tZXRyeVxuXHRcdFx0c3ViTWVzaC5faUludmFsaWRhdGVSZW5kZXJhYmxlR2VvbWV0cnkoKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5fYW5pbWF0b3IpXG5cdFx0XHR0aGlzLl9hbmltYXRvci5hZGRPd25lcih0aGlzKTtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCBhc3NldFR5cGUoKTpzdHJpbmdcblx0e1xuXHRcdHJldHVybiBBc3NldFR5cGUuTUVTSDtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIE1lc2ggY2FuIGNhc3Qgc2hhZG93cy4gRGVmYXVsdCB2YWx1ZSBpcyA8Y29kZT50cnVlPC9jb2RlPi5cblx0ICovXG5cdHB1YmxpYyBnZXQgY2FzdHNTaGFkb3dzKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2Nhc3RzU2hhZG93cztcblx0fVxuXG5cdHB1YmxpYyBzZXQgY2FzdHNTaGFkb3dzKHZhbHVlOmJvb2xlYW4pXG5cdHtcblx0XHR0aGlzLl9jYXN0c1NoYWRvd3MgPSB2YWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgZ2VvbWV0cnkgdXNlZCBieSB0aGUgbWVzaCB0aGF0IHByb3ZpZGVzIGl0IHdpdGggaXRzIHNoYXBlLlxuXHQgKi9cblx0cHVibGljIGdldCBnZW9tZXRyeSgpOkdlb21ldHJ5XG5cdHtcblx0XHRpZiAodGhpcy5faVNvdXJjZVByZWZhYilcblx0XHRcdHRoaXMuX2lTb3VyY2VQcmVmYWIuX2lWYWxpZGF0ZSgpO1xuXG5cdFx0cmV0dXJuIHRoaXMuX2dlb21ldHJ5O1xuXHR9XG5cblx0cHVibGljIHNldCBnZW9tZXRyeSh2YWx1ZTpHZW9tZXRyeSlcblx0e1xuXHRcdHZhciBpOm51bWJlcjtcblxuXHRcdGlmICh0aGlzLl9nZW9tZXRyeSkge1xuXHRcdFx0dGhpcy5fZ2VvbWV0cnkucmVtb3ZlRXZlbnRMaXN0ZW5lcihHZW9tZXRyeUV2ZW50LkJPVU5EU19JTlZBTElELCB0aGlzLl9vbkdlb21ldHJ5Qm91bmRzSW52YWxpZERlbGVnYXRlKTtcblx0XHRcdHRoaXMuX2dlb21ldHJ5LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VvbWV0cnlFdmVudC5TVUJfR0VPTUVUUllfQURERUQsIHRoaXMuX29uU3ViR2VvbWV0cnlBZGRlZERlbGVnYXRlKTtcblx0XHRcdHRoaXMuX2dlb21ldHJ5LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VvbWV0cnlFdmVudC5TVUJfR0VPTUVUUllfUkVNT1ZFRCwgdGhpcy5fb25TdWJHZW9tZXRyeVJlbW92ZWREZWxlZ2F0ZSk7XG5cblx0XHRcdGZvciAoaSA9IDA7IGkgPCB0aGlzLl9zdWJNZXNoZXMubGVuZ3RoOyArK2kpXG5cdFx0XHRcdHRoaXMuX3N1Yk1lc2hlc1tpXS5kaXNwb3NlKCk7XG5cblx0XHRcdHRoaXMuX3N1Yk1lc2hlcy5sZW5ndGggPSAwO1xuXHRcdH1cblxuXHRcdHRoaXMuX2dlb21ldHJ5ID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5fZ2VvbWV0cnkpIHtcblxuXHRcdFx0dGhpcy5fZ2VvbWV0cnkuYWRkRXZlbnRMaXN0ZW5lcihHZW9tZXRyeUV2ZW50LkJPVU5EU19JTlZBTElELCB0aGlzLl9vbkdlb21ldHJ5Qm91bmRzSW52YWxpZERlbGVnYXRlKTtcblx0XHRcdHRoaXMuX2dlb21ldHJ5LmFkZEV2ZW50TGlzdGVuZXIoR2VvbWV0cnlFdmVudC5TVUJfR0VPTUVUUllfQURERUQsIHRoaXMuX29uU3ViR2VvbWV0cnlBZGRlZERlbGVnYXRlKTtcblx0XHRcdHRoaXMuX2dlb21ldHJ5LmFkZEV2ZW50TGlzdGVuZXIoR2VvbWV0cnlFdmVudC5TVUJfR0VPTUVUUllfUkVNT1ZFRCwgdGhpcy5fb25TdWJHZW9tZXRyeVJlbW92ZWREZWxlZ2F0ZSk7XG5cblx0XHRcdHZhciBzdWJHZW9tczpBcnJheTxTdWJHZW9tZXRyeUJhc2U+ID0gdGhpcy5fZ2VvbWV0cnkuc3ViR2VvbWV0cmllcztcblxuXHRcdFx0Zm9yIChpID0gMDsgaSA8IHN1Ykdlb21zLmxlbmd0aDsgKytpKVxuXHRcdFx0XHR0aGlzLmFkZFN1Yk1lc2goc3ViR2VvbXNbaV0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgbWF0ZXJpYWwgd2l0aCB3aGljaCB0byByZW5kZXIgdGhlIE1lc2guXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IG1hdGVyaWFsKCk6TWF0ZXJpYWxCYXNlXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fbWF0ZXJpYWw7XG5cdH1cblxuXHRwdWJsaWMgc2V0IG1hdGVyaWFsKHZhbHVlOk1hdGVyaWFsQmFzZSlcblx0e1xuXHRcdGlmICh2YWx1ZSA9PSB0aGlzLl9tYXRlcmlhbClcblx0XHRcdHJldHVybjtcblxuXHRcdHZhciBpOm51bWJlcjtcblx0XHR2YXIgbGVuOm51bWJlciA9IHRoaXMuX3N1Yk1lc2hlcy5sZW5ndGg7XG5cdFx0dmFyIHN1Yk1lc2g6SVN1Yk1lc2g7XG5cblx0XHRmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHRpZiAodGhpcy5fbWF0ZXJpYWwgJiYgKHN1Yk1lc2ggPSB0aGlzLl9zdWJNZXNoZXNbaV0pLm1hdGVyaWFsID09IHRoaXMuX21hdGVyaWFsKVxuXHRcdFx0XHR0aGlzLl9tYXRlcmlhbC5pUmVtb3ZlT3duZXIoc3ViTWVzaCk7XG5cblx0XHR0aGlzLl9tYXRlcmlhbCA9IHZhbHVlO1xuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKVxuXHRcdFx0aWYgKHRoaXMuX21hdGVyaWFsICYmIChzdWJNZXNoID0gdGhpcy5fc3ViTWVzaGVzW2ldKS5tYXRlcmlhbCA9PSB0aGlzLl9tYXRlcmlhbClcblx0XHRcdFx0dGhpcy5fbWF0ZXJpYWwuaUFkZE93bmVyKHN1Yk1lc2gpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0aGUgbWVzaCBzaGFyZSB0aGUgc2FtZSBhbmltYXRpb24gZ2VvbWV0cnkuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHNoYXJlQW5pbWF0aW9uR2VvbWV0cnkoKTpib29sZWFuXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fc2hhcmVBbmltYXRpb25HZW9tZXRyeTtcblx0fVxuXG5cdHB1YmxpYyBzZXQgc2hhcmVBbmltYXRpb25HZW9tZXRyeSh2YWx1ZTpib29sZWFuKVxuXHR7XG5cdFx0dGhpcy5fc2hhcmVBbmltYXRpb25HZW9tZXRyeSA9IHZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBTdWJNZXNoZXMgb3V0IG9mIHdoaWNoIHRoZSBNZXNoIGNvbnNpc3RzLiBFdmVyeSBTdWJNZXNoIGNhbiBiZSBhc3NpZ25lZCBhIG1hdGVyaWFsIHRvIG92ZXJyaWRlIHRoZSBNZXNoJ3Ncblx0ICogbWF0ZXJpYWwuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHN1Yk1lc2hlcygpOkFycmF5PElTdWJNZXNoPlxuXHR7XG5cdFx0Ly8gU2luY2UgdGhpcyBnZXR0ZXIgaXMgaW52b2tlZCBldmVyeSBpdGVyYXRpb24gb2YgdGhlIHJlbmRlciBsb29wLCBhbmRcblx0XHQvLyB0aGUgcHJlZmFiIGNvbnN0cnVjdCBjb3VsZCBhZmZlY3QgdGhlIHN1Yi1tZXNoZXMsIHRoZSBwcmVmYWIgaXNcblx0XHQvLyB2YWxpZGF0ZWQgaGVyZSB0byBnaXZlIGl0IGEgY2hhbmNlIHRvIHJlYnVpbGQuXG5cdFx0aWYgKHRoaXMuX2lTb3VyY2VQcmVmYWIpXG5cdFx0XHR0aGlzLl9pU291cmNlUHJlZmFiLl9pVmFsaWRhdGUoKTtcblxuXHRcdHJldHVybiB0aGlzLl9zdWJNZXNoZXM7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgdXZUcmFuc2Zvcm0oKTpVVlRyYW5zZm9ybVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3V2VHJhbnNmb3JtO1xuXHR9XG5cblx0cHVibGljIHNldCB1dlRyYW5zZm9ybSh2YWx1ZTpVVlRyYW5zZm9ybSlcblx0e1xuXHRcdHRoaXMuX3V2VHJhbnNmb3JtID0gdmFsdWU7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlIGEgbmV3IE1lc2ggb2JqZWN0LlxuXHQgKlxuXHQgKiBAcGFyYW0gZ2VvbWV0cnkgICAgICAgICAgICAgICAgICAgIFRoZSBnZW9tZXRyeSB1c2VkIGJ5IHRoZSBtZXNoIHRoYXQgcHJvdmlkZXMgaXQgd2l0aCBpdHMgc2hhcGUuXG5cdCAqIEBwYXJhbSBtYXRlcmlhbCAgICBbb3B0aW9uYWxdICAgICAgICBUaGUgbWF0ZXJpYWwgd2l0aCB3aGljaCB0byByZW5kZXIgdGhlIE1lc2guXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihnZW9tZXRyeTpHZW9tZXRyeSwgbWF0ZXJpYWw6TWF0ZXJpYWxCYXNlID0gbnVsbClcblx0e1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLl9wSXNFbnRpdHkgPSB0cnVlO1xuXG5cdFx0dGhpcy5fc3ViTWVzaGVzID0gbmV3IEFycmF5PElTdWJNZXNoPigpO1xuXG5cdFx0dGhpcy5fb25HZW9tZXRyeUJvdW5kc0ludmFsaWREZWxlZ2F0ZSA9IChldmVudDpHZW9tZXRyeUV2ZW50KSA9PiB0aGlzLm9uR2VvbWV0cnlCb3VuZHNJbnZhbGlkKGV2ZW50KTtcblx0XHR0aGlzLl9vblN1Ykdlb21ldHJ5QWRkZWREZWxlZ2F0ZSA9IChldmVudDpHZW9tZXRyeUV2ZW50KSA9PiB0aGlzLm9uU3ViR2VvbWV0cnlBZGRlZChldmVudCk7XG5cdFx0dGhpcy5fb25TdWJHZW9tZXRyeVJlbW92ZWREZWxlZ2F0ZSA9IChldmVudDpHZW9tZXRyeUV2ZW50KSA9PiB0aGlzLm9uU3ViR2VvbWV0cnlSZW1vdmVkKGV2ZW50KTtcblxuXHRcdC8vdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLCBidXQgaWYgcGVvcGxlIGluc2lzdCBvbiB0cnlpbmcgdG8gY3JlYXRlIHRoZWlyIG1lc2hlcyBiZWZvcmUgdGhleSBoYXZlIGdlb21ldHJ5IHRvIGZpbGwgaXQsIGl0IGJlY29tZXMgbmVjZXNzYXJ5XG5cdFx0dGhpcy5nZW9tZXRyeSA9IGdlb21ldHJ5IHx8IG5ldyBHZW9tZXRyeSgpO1xuXG5cdFx0dGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgYmFrZVRyYW5zZm9ybWF0aW9ucygpXG5cdHtcblx0XHR0aGlzLmdlb21ldHJ5LmFwcGx5VHJhbnNmb3JtYXRpb24odGhpcy5faU1hdHJpeDNEKTtcblx0XHR0aGlzLl9pTWF0cml4M0QuaWRlbnRpdHkoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAaW5oZXJpdERvY1xuXHQgKi9cblx0cHVibGljIGRpc3Bvc2UoKVxuXHR7XG5cdFx0c3VwZXIuZGlzcG9zZSgpO1xuXG5cdFx0dGhpcy5tYXRlcmlhbCA9IG51bGw7XG5cdFx0dGhpcy5nZW9tZXRyeSA9IG51bGw7XG5cdH1cblxuXHQvKipcblx0ICogRGlzcG9zZXMgbWVzaCBpbmNsdWRpbmcgdGhlIGFuaW1hdG9yIGFuZCBjaGlsZHJlbi4gVGhpcyBpcyBhIG1lcmVseSBhIGNvbnZlbmllbmNlIG1ldGhvZC5cblx0ICogQHJldHVyblxuXHQgKi9cblx0cHVibGljIGRpc3Bvc2VXaXRoQW5pbWF0b3JBbmRDaGlsZHJlbigpXG5cdHtcblx0XHR0aGlzLmRpc3Bvc2VXaXRoQ2hpbGRyZW4oKTtcblxuXHRcdCBpZiAodGhpcy5fYW5pbWF0b3IpXG5cdFx0XHR0aGlzLl9hbmltYXRvci5kaXNwb3NlKCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2xvbmVzIHRoaXMgTWVzaCBpbnN0YW5jZSBhbG9uZyB3aXRoIGFsbCBpdCdzIGNoaWxkcmVuLCB3aGlsZSByZS11c2luZyB0aGUgc2FtZVxuXHQgKiBtYXRlcmlhbCwgZ2VvbWV0cnkgYW5kIGFuaW1hdGlvbiBzZXQuIFRoZSByZXR1cm5lZCByZXN1bHQgd2lsbCBiZSBhIGNvcHkgb2YgdGhpcyBtZXNoLFxuXHQgKiBjb250YWluaW5nIGNvcGllcyBvZiBhbGwgb2YgaXQncyBjaGlsZHJlbi5cblx0ICpcblx0ICogUHJvcGVydGllcyB0aGF0IGFyZSByZS11c2VkIChpLmUuIG5vdCBjbG9uZWQpIGJ5IHRoZSBuZXcgY29weSBpbmNsdWRlIG5hbWUsXG5cdCAqIGdlb21ldHJ5LCBhbmQgbWF0ZXJpYWwuIFByb3BlcnRpZXMgdGhhdCBhcmUgY2xvbmVkIG9yIGNyZWF0ZWQgYW5ldyBmb3IgdGhlIGNvcHlcblx0ICogaW5jbHVkZSBzdWJNZXNoZXMsIGNoaWxkcmVuIG9mIHRoZSBtZXNoLCBhbmQgdGhlIGFuaW1hdG9yLlxuXHQgKlxuXHQgKiBJZiB5b3Ugd2FudCB0byBjb3B5IGp1c3QgdGhlIG1lc2gsIHJldXNpbmcgaXQncyBnZW9tZXRyeSBhbmQgbWF0ZXJpYWwgd2hpbGUgbm90XG5cdCAqIGNsb25pbmcgaXQncyBjaGlsZHJlbiwgdGhlIHNpbXBsZXN0IHdheSBpcyB0byBjcmVhdGUgYSBuZXcgbWVzaCBtYW51YWxseTpcblx0ICpcblx0ICogPGNvZGU+XG5cdCAqIHZhciBjbG9uZSA6IE1lc2ggPSBuZXcgTWVzaChvcmlnaW5hbC5nZW9tZXRyeSwgb3JpZ2luYWwubWF0ZXJpYWwpO1xuXHQgKiA8L2NvZGU+XG5cdCAqL1xuXHRwdWJsaWMgY2xvbmUoKTpEaXNwbGF5T2JqZWN0XG5cdHtcblx0XHR2YXIgY2xvbmU6TWVzaCA9IG5ldyBNZXNoKHRoaXMuX2dlb21ldHJ5LCB0aGlzLl9tYXRlcmlhbCk7XG5cblx0XHRjbG9uZS5faU1hdHJpeDNEID0gdGhpcy5faU1hdHJpeDNEO1xuXHRcdGNsb25lLnBpdm90ID0gdGhpcy5waXZvdDtcblx0XHRjbG9uZS5wYXJ0aXRpb24gPSB0aGlzLnBhcnRpdGlvbjtcblx0XHRjbG9uZS5ib3VuZHMgPSB0aGlzLmJvdW5kcy5jbG9uZSgpO1xuXG5cblx0XHRjbG9uZS5uYW1lID0gdGhpcy5uYW1lO1xuXHRcdGNsb25lLmNhc3RzU2hhZG93cyA9IHRoaXMuY2FzdHNTaGFkb3dzO1xuXHRcdGNsb25lLnNoYXJlQW5pbWF0aW9uR2VvbWV0cnkgPSB0aGlzLnNoYXJlQW5pbWF0aW9uR2VvbWV0cnk7XG5cdFx0Y2xvbmUubW91c2VFbmFibGVkID0gdGhpcy5tb3VzZUVuYWJsZWQ7XG5cdFx0Y2xvbmUubW91c2VDaGlsZHJlbiA9IHRoaXMubW91c2VDaGlsZHJlbjtcblx0XHQvL3RoaXMgaXMgb2YgY291cnNlIG5vIHByb3BlciBjbG9uaW5nXG5cdFx0Ly9tYXliZSB1c2UgdGhpcyBpbnN0ZWFkPzogaHR0cDovL2Jsb2cuYW5vdGhlci1kLW1lbnRpb24ucm8vcHJvZ3JhbW1pbmcvaG93LXRvLWNsb25lLWR1cGxpY2F0ZS1hbi1vYmplY3QtaW4tYWN0aW9uc2NyaXB0LTMvXG5cdFx0Y2xvbmUuZXh0cmEgPSB0aGlzLmV4dHJhO1xuXG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9zdWJNZXNoZXMubGVuZ3RoO1xuXHRcdGZvciAodmFyIGk6bnVtYmVyID0gMDsgaSA8IGxlbjsgKytpKVxuXHRcdFx0Y2xvbmUuX3N1Yk1lc2hlc1tpXS5tYXRlcmlhbCA9IHRoaXMuX3N1Yk1lc2hlc1tpXS5faUdldEV4cGxpY2l0TWF0ZXJpYWwoKTtcblxuXG5cdFx0bGVuID0gdGhpcy5udW1DaGlsZHJlbjtcblx0XHR2YXIgb2JqOmFueTtcblxuXHRcdGZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkge1xuXHRcdFx0b2JqID0gdGhpcy5nZXRDaGlsZEF0KGkpLmNsb25lKCk7XG5cdFx0XHRjbG9uZS5hZGRDaGlsZCg8RGlzcGxheU9iamVjdENvbnRhaW5lcj4gb2JqKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5fYW5pbWF0b3IpXG5cdFx0XHRjbG9uZS5hbmltYXRvciA9IHRoaXMuX2FuaW1hdG9yLmNsb25lKCk7XG5cblx0XHRyZXR1cm4gY2xvbmU7XG5cdH1cblxuXHQvKipcblx0ICogLy9UT0RPXG5cdCAqXG5cdCAqIEBwYXJhbSBzdWJHZW9tZXRyeVxuXHQgKiBAcmV0dXJucyB7U3ViTWVzaEJhc2V9XG5cdCAqL1xuXHRwdWJsaWMgZ2V0U3ViTWVzaEZyb21TdWJHZW9tZXRyeShzdWJHZW9tZXRyeTpTdWJHZW9tZXRyeUJhc2UpOklTdWJNZXNoXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fc3ViTWVzaGVzW3RoaXMuX2dlb21ldHJ5LnN1Ykdlb21ldHJpZXMuaW5kZXhPZihzdWJHZW9tZXRyeSldO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHB1YmxpYyBwQ3JlYXRlRW50aXR5UGFydGl0aW9uTm9kZSgpOkVudGl0eU5vZGVcblx0e1xuXHRcdHJldHVybiBuZXcgRW50aXR5Tm9kZSh0aGlzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiAvL1RPRE9cblx0ICpcblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0cHVibGljIHBVcGRhdGVCb3VuZHMoKVxuXHR7XG5cdFx0dmFyIGk6bnVtYmVyLCBqOm51bWJlciwgcDpudW1iZXI7XG5cdFx0dmFyIHN1Ykdlb21zOkFycmF5PFN1Ykdlb21ldHJ5QmFzZT4gPSB0aGlzLl9nZW9tZXRyeS5zdWJHZW9tZXRyaWVzO1xuXHRcdHZhciBzdWJHZW9tOlN1Ykdlb21ldHJ5QmFzZTtcblx0XHR2YXIgYm91bmRpbmdQb3NpdGlvbnM6QXJyYXk8bnVtYmVyPjtcblx0XHR2YXIgbnVtU3ViR2VvbXM6bnVtYmVyID0gc3ViR2VvbXMubGVuZ3RoO1xuXHRcdHZhciBtaW5YOm51bWJlciwgbWluWTpudW1iZXIsIG1pblo6bnVtYmVyO1xuXHRcdHZhciBtYXhYOm51bWJlciwgbWF4WTpudW1iZXIsIG1heFo6bnVtYmVyO1xuXG5cdFx0aWYgKG51bVN1Ykdlb21zID4gMCkge1xuXHRcdFx0aSA9IDA7XG5cdFx0XHRzdWJHZW9tID0gc3ViR2VvbXNbMF07XG5cdFx0XHRib3VuZGluZ1Bvc2l0aW9ucyA9IHN1Ykdlb20uZ2V0Qm91bmRpbmdQb3NpdGlvbnMoKTtcblx0XHRcdG1pblggPSBtYXhYID0gYm91bmRpbmdQb3NpdGlvbnNbaV07XG5cdFx0XHRtaW5ZID0gbWF4WSA9IGJvdW5kaW5nUG9zaXRpb25zW2kgKyAxXTtcblx0XHRcdG1pblogPSBtYXhaID0gYm91bmRpbmdQb3NpdGlvbnNbaSArIDJdO1xuXG5cdFx0XHRqID0gbnVtU3ViR2VvbXM7XG5cdFx0XHR3aGlsZSAoai0tKSB7XG5cdFx0XHRcdHN1Ykdlb20gPSBzdWJHZW9tc1tqXTtcblx0XHRcdFx0Ym91bmRpbmdQb3NpdGlvbnMgPSBzdWJHZW9tLmdldEJvdW5kaW5nUG9zaXRpb25zKCk7XG5cdFx0XHRcdGkgPSBib3VuZGluZ1Bvc2l0aW9ucy5sZW5ndGg7XG5cdFx0XHRcdHdoaWxlIChpLS0pIHtcblx0XHRcdFx0XHRwID0gYm91bmRpbmdQb3NpdGlvbnNbaV07XG5cdFx0XHRcdFx0aWYgKHAgPCBtaW5YKVxuXHRcdFx0XHRcdFx0bWluWCA9IHA7XG5cdFx0XHRcdFx0ZWxzZSBpZiAocCA+IG1heFgpXG5cdFx0XHRcdFx0XHRtYXhYID0gcDtcblxuXHRcdFx0XHRcdHAgPSBib3VuZGluZ1Bvc2l0aW9uc1tpICsgMV07XG5cblx0XHRcdFx0XHRpZiAocCA8IG1pblkpXG5cdFx0XHRcdFx0XHRtaW5ZID0gcDtcblx0XHRcdFx0XHRlbHNlIGlmIChwID4gbWF4WSlcblx0XHRcdFx0XHRcdG1heFkgPSBwO1xuXG5cdFx0XHRcdFx0cCA9IGJvdW5kaW5nUG9zaXRpb25zW2kgKyAyXTtcblxuXHRcdFx0XHRcdGlmIChwIDwgbWluWilcblx0XHRcdFx0XHRcdG1pblogPSBwO1xuXHRcdFx0XHRcdGVsc2UgaWYgKHAgPiBtYXhaKVxuXHRcdFx0XHRcdFx0bWF4WiA9IHA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dGhpcy5fcEJvdW5kcy5mcm9tRXh0cmVtZXMobWluWCwgbWluWSwgbWluWiwgbWF4WCwgbWF4WSwgbWF4Wik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX3BCb3VuZHMuZnJvbUV4dHJlbWVzKDAsIDAsIDAsIDAsIDAsIDApO1xuXHRcdH1cblxuXHRcdHN1cGVyLnBVcGRhdGVCb3VuZHMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiAvL1RPRE9cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHByaXZhdGUgb25HZW9tZXRyeUJvdW5kc0ludmFsaWQoZXZlbnQ6R2VvbWV0cnlFdmVudClcblx0e1xuXHRcdHRoaXMucEludmFsaWRhdGVCb3VuZHMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsZWQgd2hlbiBhIFN1Ykdlb21ldHJ5IHdhcyBhZGRlZCB0byB0aGUgR2VvbWV0cnkuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwcml2YXRlIG9uU3ViR2VvbWV0cnlBZGRlZChldmVudDpHZW9tZXRyeUV2ZW50KVxuXHR7XG5cdFx0dGhpcy5hZGRTdWJNZXNoKGV2ZW50LnN1Ykdlb21ldHJ5KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsZWQgd2hlbiBhIFN1Ykdlb21ldHJ5IHdhcyByZW1vdmVkIGZyb20gdGhlIEdlb21ldHJ5LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBvblN1Ykdlb21ldHJ5UmVtb3ZlZChldmVudDpHZW9tZXRyeUV2ZW50KVxuXHR7XG5cdFx0dmFyIHN1Yk1lc2g6SVN1Yk1lc2g7XG5cdFx0dmFyIHN1Ykdlb206U3ViR2VvbWV0cnlCYXNlID0gZXZlbnQuc3ViR2VvbWV0cnk7XG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9zdWJNZXNoZXMubGVuZ3RoO1xuXHRcdHZhciBpOm51bWJlcjtcblxuXHRcdC8vIEltcG9ydGFudCEgVGhpcyBoYXMgdG8gYmUgZG9uZSBoZXJlLCBhbmQgbm90IGRlbGF5ZWQgdW50aWwgdGhlXG5cdFx0Ly8gbmV4dCByZW5kZXIgbG9vcCwgc2luY2UgdGhpcyBtYXkgYmUgY2F1c2VkIGJ5IHRoZSBnZW9tZXRyeSBiZWluZ1xuXHRcdC8vIHJlYnVpbHQgSU4gVEhFIFJFTkRFUiBMT09QLiBJbnZhbGlkYXRpbmcgYW5kIHdhaXRpbmcgd2lsbCBkZWxheVxuXHRcdC8vIGl0IHVudGlsIHRoZSBORVhUIFJFTkRFUiBGUkFNRSB3aGljaCBpcyBwcm9iYWJseSBub3QgZGVzaXJhYmxlLlxuXHRcdGZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkge1xuXG5cdFx0XHRzdWJNZXNoID0gdGhpcy5fc3ViTWVzaGVzW2ldO1xuXG5cdFx0XHRpZiAoc3ViTWVzaC5zdWJHZW9tZXRyeSA9PSBzdWJHZW9tKSB7XG5cdFx0XHRcdHN1Yk1lc2guZGlzcG9zZSgpO1xuXG5cdFx0XHRcdHRoaXMuX3N1Yk1lc2hlcy5zcGxpY2UoaSwgMSk7XG5cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LS1sZW47XG5cdFx0Zm9yICg7IGkgPCBsZW47ICsraSlcblx0XHRcdHRoaXMuX3N1Yk1lc2hlc1tpXS5faUluZGV4ID0gaTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgU3ViTWVzaEJhc2Ugd3JhcHBpbmcgYSBTdWJHZW9tZXRyeS5cblx0ICpcblx0ICogQHBhcmFtIHN1Ykdlb21ldHJ5XG5cdCAqL1xuXHRwcml2YXRlIGFkZFN1Yk1lc2goc3ViR2VvbWV0cnk6U3ViR2VvbWV0cnlCYXNlKVxuXHR7XG5cdFx0dmFyIFN1Yk1lc2hDbGFzczpJU3ViTWVzaENsYXNzID0gc3ViR2VvbWV0cnkuc3ViTWVzaENsYXNzO1xuXG5cdFx0dmFyIHN1Yk1lc2g6SVN1Yk1lc2ggPSBuZXcgU3ViTWVzaENsYXNzKHN1Ykdlb21ldHJ5LCB0aGlzLCBudWxsKTtcblx0XHR2YXIgbGVuOm51bWJlciA9IHRoaXMuX3N1Yk1lc2hlcy5sZW5ndGg7XG5cblx0XHRzdWJNZXNoLl9pSW5kZXggPSBsZW47XG5cblx0XHR0aGlzLl9zdWJNZXNoZXNbbGVuXSA9IHN1Yk1lc2g7XG5cblx0XHR0aGlzLnBJbnZhbGlkYXRlQm91bmRzKCk7XG5cdH1cblxuXHQvKipcblx0ICogLy9UT0RPXG5cdCAqXG5cdCAqIEBwYXJhbSBzaG9ydGVzdENvbGxpc2lvbkRpc3RhbmNlXG5cdCAqIEBwYXJhbSBmaW5kQ2xvc2VzdFxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cblx0ICpcblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRwdWJsaWMgX2lUZXN0Q29sbGlzaW9uKHNob3J0ZXN0Q29sbGlzaW9uRGlzdGFuY2U6bnVtYmVyLCBmaW5kQ2xvc2VzdDpib29sZWFuKTpib29sZWFuXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcFBpY2tpbmdDb2xsaWRlci50ZXN0TWVzaENvbGxpc2lvbih0aGlzLCB0aGlzLl9wUGlja2luZ0NvbGxpc2lvblZPLCBzaG9ydGVzdENvbGxpc2lvbkRpc3RhbmNlLCBmaW5kQ2xvc2VzdCk7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICogQHBhcmFtIHJlbmRlcmVyXG5cdCAqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0cHVibGljIF9pQ29sbGVjdFJlbmRlcmFibGVzKHJlbmRlcmVyOklSZW5kZXJlcilcblx0e1xuXHRcdC8vIFNpbmNlIHRoaXMgZ2V0dGVyIGlzIGludm9rZWQgZXZlcnkgaXRlcmF0aW9uIG9mIHRoZSByZW5kZXIgbG9vcCwgYW5kXG5cdFx0Ly8gdGhlIHByZWZhYiBjb25zdHJ1Y3QgY291bGQgYWZmZWN0IHRoZSBzdWItbWVzaGVzLCB0aGUgcHJlZmFiIGlzXG5cdFx0Ly8gdmFsaWRhdGVkIGhlcmUgdG8gZ2l2ZSBpdCBhIGNoYW5jZSB0byByZWJ1aWxkLlxuXHRcdGlmICh0aGlzLl9pU291cmNlUHJlZmFiKVxuXHRcdFx0dGhpcy5faVNvdXJjZVByZWZhYi5faVZhbGlkYXRlKCk7XG5cblx0XHR2YXIgbGVuOm51bWJlciAvKnVpbnQqLyA9IHRoaXMuX3N1Yk1lc2hlcy5sZW5ndGg7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgLyp1aW50Ki8gPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9zdWJNZXNoZXNbaV0uX2lDb2xsZWN0UmVuZGVyYWJsZShyZW5kZXJlcik7XG5cdH1cblxuXHRwdWJsaWMgX2lJbnZhbGlkYXRlUmVuZGVyYWJsZUdlb21ldHJpZXMoKVxuXHR7XG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9zdWJNZXNoZXMubGVuZ3RoO1xuXHRcdGZvciAodmFyIGk6bnVtYmVyID0gMDsgaSA8IGxlbjsgKytpKVxuXHRcdFx0dGhpcy5fc3ViTWVzaGVzW2ldLl9pSW52YWxpZGF0ZVJlbmRlcmFibGVHZW9tZXRyeSgpO1xuXHR9XG59XG5cbmV4cG9ydCA9IE1lc2g7Il19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9tZXNoLnRzIl0sIm5hbWVzIjpbIk1lc2giLCJNZXNoLmNvbnN0cnVjdG9yIiwiTWVzaC5hbmltYXRvciIsIk1lc2guYXNzZXRUeXBlIiwiTWVzaC5jYXN0c1NoYWRvd3MiLCJNZXNoLmdlb21ldHJ5IiwiTWVzaC5tYXRlcmlhbCIsIk1lc2guc2hhcmVBbmltYXRpb25HZW9tZXRyeSIsIk1lc2guc3ViTWVzaGVzIiwiTWVzaC51dlRyYW5zZm9ybSIsIk1lc2guYmFrZVRyYW5zZm9ybWF0aW9ucyIsIk1lc2guZGlzcG9zZSIsIk1lc2guZGlzcG9zZVdpdGhBbmltYXRvckFuZENoaWxkcmVuIiwiTWVzaC5jbG9uZSIsIk1lc2guZ2V0U3ViTWVzaEZyb21TdWJHZW9tZXRyeSIsIk1lc2gucENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUiLCJNZXNoLnBVcGRhdGVCb3VuZHMiLCJNZXNoLm9uR2VvbWV0cnlCb3VuZHNJbnZhbGlkIiwiTWVzaC5vblN1Ykdlb21ldHJ5QWRkZWQiLCJNZXNoLm9uU3ViR2VvbWV0cnlSZW1vdmVkIiwiTWVzaC5hZGRTdWJNZXNoIiwiTWVzaC5faVRlc3RDb2xsaXNpb24iLCJNZXNoLl9pQ29sbGVjdFJlbmRlcmFibGVzIiwiTWVzaC5faUludmFsaWRhdGVSZW5kZXJhYmxlR2VvbWV0cmllcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBTyxTQUFTLFdBQWUsbUNBQW1DLENBQUMsQ0FBQztBQUlwRSxJQUFPLFFBQVEsV0FBZ0Isa0NBQWtDLENBQUMsQ0FBQztBQUtuRSxJQUFPLHNCQUFzQixXQUFZLHNEQUFzRCxDQUFDLENBQUM7QUFDakcsSUFBTyxVQUFVLFdBQWUseUNBQXlDLENBQUMsQ0FBQztBQUUzRSxJQUFPLGFBQWEsV0FBYyx5Q0FBeUMsQ0FBQyxDQUFDO0FBSTdFLEFBS0E7Ozs7R0FERztJQUNHLElBQUk7SUFBU0EsVUFBYkEsSUFBSUEsVUFBK0JBO0lBcUx4Q0E7Ozs7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Q0FBQ0EsR0FBVUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsR0FBR0EsRUFBRUEsRUFBRUEsQ0FBQ0E7WUFDbENBLElBQUlBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLDhCQUE4QkEsRUFBRUEsQ0FBQ0E7SUFDdERBLENBQUNBO0lBQ0Z2QixXQUFDQTtBQUFEQSxDQWplQSxBQWllQ0EsRUFqZWtCLHNCQUFzQixFQWlleEM7QUFFRCxBQUFjLGlCQUFMLElBQUksQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9NZXNoLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBVVlRyYW5zZm9ybVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9VVlRyYW5zZm9ybVwiKTtcbmltcG9ydCBBc3NldFR5cGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2xpYnJhcnkvQXNzZXRUeXBlXCIpO1xuXG5pbXBvcnQgSUFuaW1hdG9yXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9hbmltYXRvcnMvSUFuaW1hdG9yXCIpO1xuaW1wb3J0IERpc3BsYXlPYmplY3RcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL0Rpc3BsYXlPYmplY3RcIik7XG5pbXBvcnQgR2VvbWV0cnlcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9HZW9tZXRyeVwiKTtcbmltcG9ydCBJU3ViTWVzaFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL0lTdWJNZXNoXCIpO1xuaW1wb3J0IElTdWJNZXNoQ2xhc3NcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL0lTdWJNZXNoQ2xhc3NcIik7XG5pbXBvcnQgVHJpYW5nbGVTdWJHZW9tZXRyeVx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL1RyaWFuZ2xlU3ViR2VvbWV0cnlcIik7XG5pbXBvcnQgU3ViR2VvbWV0cnlCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9TdWJHZW9tZXRyeUJhc2VcIik7XG5pbXBvcnQgRGlzcGxheU9iamVjdENvbnRhaW5lclx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvY29udGFpbmVycy9EaXNwbGF5T2JqZWN0Q29udGFpbmVyXCIpO1xuaW1wb3J0IEVudGl0eU5vZGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9FbnRpdHlOb2RlXCIpO1xuaW1wb3J0IElSZW5kZXJlclBvb2xcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL0lSZW5kZXJlclBvb2xcIik7XG5pbXBvcnQgR2VvbWV0cnlFdmVudFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2V2ZW50cy9HZW9tZXRyeUV2ZW50XCIpO1xuaW1wb3J0IElFbnRpdHlcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvSUVudGl0eVwiKTtcbmltcG9ydCBNYXRlcmlhbEJhc2VcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9NYXRlcmlhbEJhc2VcIik7XG5cbi8qKlxuICogTWVzaCBpcyBhbiBpbnN0YW5jZSBvZiBhIEdlb21ldHJ5LCBhdWdtZW50aW5nIGl0IHdpdGggYSBwcmVzZW5jZSBpbiB0aGUgc2NlbmUgZ3JhcGgsIGEgbWF0ZXJpYWwsIGFuZCBhbiBhbmltYXRpb25cbiAqIHN0YXRlLiBJdCBjb25zaXN0cyBvdXQgb2YgU3ViTWVzaGVzLCB3aGljaCBpbiB0dXJuIGNvcnJlc3BvbmQgdG8gU3ViR2VvbWV0cmllcy4gU3ViTWVzaGVzIGFsbG93IGRpZmZlcmVudCBwYXJ0c1xuICogb2YgdGhlIGdlb21ldHJ5IHRvIGJlIGFzc2lnbmVkIGRpZmZlcmVudCBtYXRlcmlhbHMuXG4gKi9cbmNsYXNzIE1lc2ggZXh0ZW5kcyBEaXNwbGF5T2JqZWN0Q29udGFpbmVyIGltcGxlbWVudHMgSUVudGl0eVxue1xuXHRwcml2YXRlIF91dlRyYW5zZm9ybTpVVlRyYW5zZm9ybTtcblxuXHRwcml2YXRlIF9zdWJNZXNoZXM6QXJyYXk8SVN1Yk1lc2g+O1xuXHRwcml2YXRlIF9nZW9tZXRyeTpHZW9tZXRyeTtcblx0cHJpdmF0ZSBfbWF0ZXJpYWw6TWF0ZXJpYWxCYXNlO1xuXHRwcml2YXRlIF9hbmltYXRvcjpJQW5pbWF0b3I7XG5cdHByaXZhdGUgX2Nhc3RzU2hhZG93czpib29sZWFuID0gdHJ1ZTtcblx0cHJpdmF0ZSBfc2hhcmVBbmltYXRpb25HZW9tZXRyeTpib29sZWFuID0gdHJ1ZTtcblxuXHRwcml2YXRlIF9vbkdlb21ldHJ5Qm91bmRzSW52YWxpZERlbGVnYXRlOihldmVudDpHZW9tZXRyeUV2ZW50KSA9PiB2b2lkO1xuXHRwcml2YXRlIF9vblN1Ykdlb21ldHJ5QWRkZWREZWxlZ2F0ZTooZXZlbnQ6R2VvbWV0cnlFdmVudCkgPT4gdm9pZDtcblx0cHJpdmF0ZSBfb25TdWJHZW9tZXRyeVJlbW92ZWREZWxlZ2F0ZTooZXZlbnQ6R2VvbWV0cnlFdmVudCkgPT4gdm9pZDtcblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgYW5pbWF0b3Igb2YgdGhlIG1lc2guIEFjdCBvbiB0aGUgbWVzaCdzIGdlb21ldHJ5LiAgRGVmYXVsdCB2YWx1ZSBpcyA8Y29kZT5udWxsPC9jb2RlPi5cblx0ICovXG5cdHB1YmxpYyBnZXQgYW5pbWF0b3IoKTpJQW5pbWF0b3Jcblx0e1xuXHRcdHJldHVybiB0aGlzLl9hbmltYXRvcjtcblx0fVxuXG5cdHB1YmxpYyBzZXQgYW5pbWF0b3IodmFsdWU6SUFuaW1hdG9yKVxuXHR7XG5cdFx0aWYgKHRoaXMuX2FuaW1hdG9yKVxuXHRcdFx0dGhpcy5fYW5pbWF0b3IucmVtb3ZlT3duZXIodGhpcyk7XG5cblx0XHR0aGlzLl9hbmltYXRvciA9IHZhbHVlO1xuXG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9zdWJNZXNoZXMubGVuZ3RoO1xuXHRcdHZhciBzdWJNZXNoOklTdWJNZXNoO1xuXG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgPSAwOyBpIDwgbGVuOyArK2kpIHtcblx0XHRcdHN1Yk1lc2ggPSB0aGlzLl9zdWJNZXNoZXNbaV07XG5cblx0XHRcdC8vIGNhdXNlIG1hdGVyaWFsIHRvIGJlIHVucmVnaXN0ZXJlZCBhbmQgcmVnaXN0ZXJlZCBhZ2FpbiB0byB3b3JrIHdpdGggdGhlIG5ldyBhbmltYXRpb24gdHlwZSAoaWYgcG9zc2libGUpXG5cdFx0XHRpZiAoc3ViTWVzaC5tYXRlcmlhbCkge1xuXHRcdFx0XHRzdWJNZXNoLm1hdGVyaWFsLmlSZW1vdmVPd25lcihzdWJNZXNoKTtcblx0XHRcdFx0c3ViTWVzaC5tYXRlcmlhbC5pQWRkT3duZXIoc3ViTWVzaCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vaW52YWxpZGF0ZSBhbnkgZXhpc3RpbmcgcmVuZGVyYWJsZXMgaW4gY2FzZSB0aGV5IG5lZWQgdG8gcHVsbCBuZXcgZ2VvbWV0cnlcblx0XHRcdHN1Yk1lc2guX2lJbnZhbGlkYXRlUmVuZGVyYWJsZUdlb21ldHJ5KCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX2FuaW1hdG9yKVxuXHRcdFx0dGhpcy5fYW5pbWF0b3IuYWRkT3duZXIodGhpcyk7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgYXNzZXRUeXBlKCk6c3RyaW5nXG5cdHtcblx0XHRyZXR1cm4gQXNzZXRUeXBlLk1FU0g7XG5cdH1cblxuXHQvKipcblx0ICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBNZXNoIGNhbiBjYXN0IHNoYWRvd3MuIERlZmF1bHQgdmFsdWUgaXMgPGNvZGU+dHJ1ZTwvY29kZT4uXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGNhc3RzU2hhZG93cygpOmJvb2xlYW5cblx0e1xuXHRcdHJldHVybiB0aGlzLl9jYXN0c1NoYWRvd3M7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGNhc3RzU2hhZG93cyh2YWx1ZTpib29sZWFuKVxuXHR7XG5cdFx0dGhpcy5fY2FzdHNTaGFkb3dzID0gdmFsdWU7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGdlb21ldHJ5IHVzZWQgYnkgdGhlIG1lc2ggdGhhdCBwcm92aWRlcyBpdCB3aXRoIGl0cyBzaGFwZS5cblx0ICovXG5cdHB1YmxpYyBnZXQgZ2VvbWV0cnkoKTpHZW9tZXRyeVxuXHR7XG5cdFx0aWYgKHRoaXMuX2lTb3VyY2VQcmVmYWIpXG5cdFx0XHR0aGlzLl9pU291cmNlUHJlZmFiLl9pVmFsaWRhdGUoKTtcblxuXHRcdHJldHVybiB0aGlzLl9nZW9tZXRyeTtcblx0fVxuXG5cdHB1YmxpYyBzZXQgZ2VvbWV0cnkodmFsdWU6R2VvbWV0cnkpXG5cdHtcblx0XHR2YXIgaTpudW1iZXI7XG5cblx0XHRpZiAodGhpcy5fZ2VvbWV0cnkpIHtcblx0XHRcdHRoaXMuX2dlb21ldHJ5LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VvbWV0cnlFdmVudC5CT1VORFNfSU5WQUxJRCwgdGhpcy5fb25HZW9tZXRyeUJvdW5kc0ludmFsaWREZWxlZ2F0ZSk7XG5cdFx0XHR0aGlzLl9nZW9tZXRyeS5yZW1vdmVFdmVudExpc3RlbmVyKEdlb21ldHJ5RXZlbnQuU1VCX0dFT01FVFJZX0FEREVELCB0aGlzLl9vblN1Ykdlb21ldHJ5QWRkZWREZWxlZ2F0ZSk7XG5cdFx0XHR0aGlzLl9nZW9tZXRyeS5yZW1vdmVFdmVudExpc3RlbmVyKEdlb21ldHJ5RXZlbnQuU1VCX0dFT01FVFJZX1JFTU9WRUQsIHRoaXMuX29uU3ViR2VvbWV0cnlSZW1vdmVkRGVsZWdhdGUpO1xuXG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgdGhpcy5fc3ViTWVzaGVzLmxlbmd0aDsgKytpKVxuXHRcdFx0XHR0aGlzLl9zdWJNZXNoZXNbaV0uZGlzcG9zZSgpO1xuXG5cdFx0XHR0aGlzLl9zdWJNZXNoZXMubGVuZ3RoID0gMDtcblx0XHR9XG5cblx0XHR0aGlzLl9nZW9tZXRyeSA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuX2dlb21ldHJ5KSB7XG5cblx0XHRcdHRoaXMuX2dlb21ldHJ5LmFkZEV2ZW50TGlzdGVuZXIoR2VvbWV0cnlFdmVudC5CT1VORFNfSU5WQUxJRCwgdGhpcy5fb25HZW9tZXRyeUJvdW5kc0ludmFsaWREZWxlZ2F0ZSk7XG5cdFx0XHR0aGlzLl9nZW9tZXRyeS5hZGRFdmVudExpc3RlbmVyKEdlb21ldHJ5RXZlbnQuU1VCX0dFT01FVFJZX0FEREVELCB0aGlzLl9vblN1Ykdlb21ldHJ5QWRkZWREZWxlZ2F0ZSk7XG5cdFx0XHR0aGlzLl9nZW9tZXRyeS5hZGRFdmVudExpc3RlbmVyKEdlb21ldHJ5RXZlbnQuU1VCX0dFT01FVFJZX1JFTU9WRUQsIHRoaXMuX29uU3ViR2VvbWV0cnlSZW1vdmVkRGVsZWdhdGUpO1xuXG5cdFx0XHR2YXIgc3ViR2VvbXM6QXJyYXk8U3ViR2VvbWV0cnlCYXNlPiA9IHRoaXMuX2dlb21ldHJ5LnN1Ykdlb21ldHJpZXM7XG5cblx0XHRcdGZvciAoaSA9IDA7IGkgPCBzdWJHZW9tcy5sZW5ndGg7ICsraSlcblx0XHRcdFx0dGhpcy5hZGRTdWJNZXNoKHN1Ykdlb21zW2ldKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG1hdGVyaWFsIHdpdGggd2hpY2ggdG8gcmVuZGVyIHRoZSBNZXNoLlxuXHQgKi9cblx0cHVibGljIGdldCBtYXRlcmlhbCgpOk1hdGVyaWFsQmFzZVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX21hdGVyaWFsO1xuXHR9XG5cblx0cHVibGljIHNldCBtYXRlcmlhbCh2YWx1ZTpNYXRlcmlhbEJhc2UpXG5cdHtcblx0XHRpZiAodmFsdWUgPT0gdGhpcy5fbWF0ZXJpYWwpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR2YXIgaTpudW1iZXI7XG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9zdWJNZXNoZXMubGVuZ3RoO1xuXHRcdHZhciBzdWJNZXNoOklTdWJNZXNoO1xuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKVxuXHRcdFx0aWYgKHRoaXMuX21hdGVyaWFsICYmIChzdWJNZXNoID0gdGhpcy5fc3ViTWVzaGVzW2ldKS5tYXRlcmlhbCA9PSB0aGlzLl9tYXRlcmlhbClcblx0XHRcdFx0dGhpcy5fbWF0ZXJpYWwuaVJlbW92ZU93bmVyKHN1Yk1lc2gpO1xuXG5cdFx0dGhpcy5fbWF0ZXJpYWwgPSB2YWx1ZTtcblxuXHRcdGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKylcblx0XHRcdGlmICh0aGlzLl9tYXRlcmlhbCAmJiAoc3ViTWVzaCA9IHRoaXMuX3N1Yk1lc2hlc1tpXSkubWF0ZXJpYWwgPT0gdGhpcy5fbWF0ZXJpYWwpXG5cdFx0XHRcdHRoaXMuX21hdGVyaWFsLmlBZGRPd25lcihzdWJNZXNoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIG1lc2ggc2hhcmUgdGhlIHNhbWUgYW5pbWF0aW9uIGdlb21ldHJ5LlxuXHQgKi9cblx0cHVibGljIGdldCBzaGFyZUFuaW1hdGlvbkdlb21ldHJ5KCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3NoYXJlQW5pbWF0aW9uR2VvbWV0cnk7XG5cdH1cblxuXHRwdWJsaWMgc2V0IHNoYXJlQW5pbWF0aW9uR2VvbWV0cnkodmFsdWU6Ym9vbGVhbilcblx0e1xuXHRcdHRoaXMuX3NoYXJlQW5pbWF0aW9uR2VvbWV0cnkgPSB2YWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgU3ViTWVzaGVzIG91dCBvZiB3aGljaCB0aGUgTWVzaCBjb25zaXN0cy4gRXZlcnkgU3ViTWVzaCBjYW4gYmUgYXNzaWduZWQgYSBtYXRlcmlhbCB0byBvdmVycmlkZSB0aGUgTWVzaCdzXG5cdCAqIG1hdGVyaWFsLlxuXHQgKi9cblx0cHVibGljIGdldCBzdWJNZXNoZXMoKTpBcnJheTxJU3ViTWVzaD5cblx0e1xuXHRcdC8vIFNpbmNlIHRoaXMgZ2V0dGVyIGlzIGludm9rZWQgZXZlcnkgaXRlcmF0aW9uIG9mIHRoZSByZW5kZXIgbG9vcCwgYW5kXG5cdFx0Ly8gdGhlIHByZWZhYiBjb25zdHJ1Y3QgY291bGQgYWZmZWN0IHRoZSBzdWItbWVzaGVzLCB0aGUgcHJlZmFiIGlzXG5cdFx0Ly8gdmFsaWRhdGVkIGhlcmUgdG8gZ2l2ZSBpdCBhIGNoYW5jZSB0byByZWJ1aWxkLlxuXHRcdGlmICh0aGlzLl9pU291cmNlUHJlZmFiKVxuXHRcdFx0dGhpcy5faVNvdXJjZVByZWZhYi5faVZhbGlkYXRlKCk7XG5cblx0XHRyZXR1cm4gdGhpcy5fc3ViTWVzaGVzO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHV2VHJhbnNmb3JtKCk6VVZUcmFuc2Zvcm1cblx0e1xuXHRcdHJldHVybiB0aGlzLl91dlRyYW5zZm9ybTtcblx0fVxuXG5cdHB1YmxpYyBzZXQgdXZUcmFuc2Zvcm0odmFsdWU6VVZUcmFuc2Zvcm0pXG5cdHtcblx0XHR0aGlzLl91dlRyYW5zZm9ybSA9IHZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSBhIG5ldyBNZXNoIG9iamVjdC5cblx0ICpcblx0ICogQHBhcmFtIGdlb21ldHJ5ICAgICAgICAgICAgICAgICAgICBUaGUgZ2VvbWV0cnkgdXNlZCBieSB0aGUgbWVzaCB0aGF0IHByb3ZpZGVzIGl0IHdpdGggaXRzIHNoYXBlLlxuXHQgKiBAcGFyYW0gbWF0ZXJpYWwgICAgW29wdGlvbmFsXSAgICAgICAgVGhlIG1hdGVyaWFsIHdpdGggd2hpY2ggdG8gcmVuZGVyIHRoZSBNZXNoLlxuXHQgKi9cblx0Y29uc3RydWN0b3IoZ2VvbWV0cnk6R2VvbWV0cnksIG1hdGVyaWFsOk1hdGVyaWFsQmFzZSA9IG51bGwpXG5cdHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy5fcElzRW50aXR5ID0gdHJ1ZTtcblxuXHRcdHRoaXMuX3N1Yk1lc2hlcyA9IG5ldyBBcnJheTxJU3ViTWVzaD4oKTtcblxuXHRcdHRoaXMuX29uR2VvbWV0cnlCb3VuZHNJbnZhbGlkRGVsZWdhdGUgPSAoZXZlbnQ6R2VvbWV0cnlFdmVudCkgPT4gdGhpcy5vbkdlb21ldHJ5Qm91bmRzSW52YWxpZChldmVudCk7XG5cdFx0dGhpcy5fb25TdWJHZW9tZXRyeUFkZGVkRGVsZWdhdGUgPSAoZXZlbnQ6R2VvbWV0cnlFdmVudCkgPT4gdGhpcy5vblN1Ykdlb21ldHJ5QWRkZWQoZXZlbnQpO1xuXHRcdHRoaXMuX29uU3ViR2VvbWV0cnlSZW1vdmVkRGVsZWdhdGUgPSAoZXZlbnQ6R2VvbWV0cnlFdmVudCkgPT4gdGhpcy5vblN1Ykdlb21ldHJ5UmVtb3ZlZChldmVudCk7XG5cblx0XHQvL3RoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiwgYnV0IGlmIHBlb3BsZSBpbnNpc3Qgb24gdHJ5aW5nIHRvIGNyZWF0ZSB0aGVpciBtZXNoZXMgYmVmb3JlIHRoZXkgaGF2ZSBnZW9tZXRyeSB0byBmaWxsIGl0LCBpdCBiZWNvbWVzIG5lY2Vzc2FyeVxuXHRcdHRoaXMuZ2VvbWV0cnkgPSBnZW9tZXRyeSB8fCBuZXcgR2VvbWV0cnkoKTtcblxuXHRcdHRoaXMubWF0ZXJpYWwgPSBtYXRlcmlhbDtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGJha2VUcmFuc2Zvcm1hdGlvbnMoKVxuXHR7XG5cdFx0dGhpcy5nZW9tZXRyeS5hcHBseVRyYW5zZm9ybWF0aW9uKHRoaXMuX2lNYXRyaXgzRCk7XG5cdFx0dGhpcy5faU1hdHJpeDNELmlkZW50aXR5KCk7XG5cdH1cblxuXHQvKipcblx0ICogQGluaGVyaXREb2Ncblx0ICovXG5cdHB1YmxpYyBkaXNwb3NlKClcblx0e1xuXHRcdHN1cGVyLmRpc3Bvc2UoKTtcblxuXHRcdHRoaXMubWF0ZXJpYWwgPSBudWxsO1xuXHRcdHRoaXMuZ2VvbWV0cnkgPSBudWxsO1xuXHR9XG5cblx0LyoqXG5cdCAqIERpc3Bvc2VzIG1lc2ggaW5jbHVkaW5nIHRoZSBhbmltYXRvciBhbmQgY2hpbGRyZW4uIFRoaXMgaXMgYSBtZXJlbHkgYSBjb252ZW5pZW5jZSBtZXRob2QuXG5cdCAqIEByZXR1cm5cblx0ICovXG5cdHB1YmxpYyBkaXNwb3NlV2l0aEFuaW1hdG9yQW5kQ2hpbGRyZW4oKVxuXHR7XG5cdFx0dGhpcy5kaXNwb3NlV2l0aENoaWxkcmVuKCk7XG5cblx0XHQgaWYgKHRoaXMuX2FuaW1hdG9yKVxuXHRcdFx0dGhpcy5fYW5pbWF0b3IuZGlzcG9zZSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENsb25lcyB0aGlzIE1lc2ggaW5zdGFuY2UgYWxvbmcgd2l0aCBhbGwgaXQncyBjaGlsZHJlbiwgd2hpbGUgcmUtdXNpbmcgdGhlIHNhbWVcblx0ICogbWF0ZXJpYWwsIGdlb21ldHJ5IGFuZCBhbmltYXRpb24gc2V0LiBUaGUgcmV0dXJuZWQgcmVzdWx0IHdpbGwgYmUgYSBjb3B5IG9mIHRoaXMgbWVzaCxcblx0ICogY29udGFpbmluZyBjb3BpZXMgb2YgYWxsIG9mIGl0J3MgY2hpbGRyZW4uXG5cdCAqXG5cdCAqIFByb3BlcnRpZXMgdGhhdCBhcmUgcmUtdXNlZCAoaS5lLiBub3QgY2xvbmVkKSBieSB0aGUgbmV3IGNvcHkgaW5jbHVkZSBuYW1lLFxuXHQgKiBnZW9tZXRyeSwgYW5kIG1hdGVyaWFsLiBQcm9wZXJ0aWVzIHRoYXQgYXJlIGNsb25lZCBvciBjcmVhdGVkIGFuZXcgZm9yIHRoZSBjb3B5XG5cdCAqIGluY2x1ZGUgc3ViTWVzaGVzLCBjaGlsZHJlbiBvZiB0aGUgbWVzaCwgYW5kIHRoZSBhbmltYXRvci5cblx0ICpcblx0ICogSWYgeW91IHdhbnQgdG8gY29weSBqdXN0IHRoZSBtZXNoLCByZXVzaW5nIGl0J3MgZ2VvbWV0cnkgYW5kIG1hdGVyaWFsIHdoaWxlIG5vdFxuXHQgKiBjbG9uaW5nIGl0J3MgY2hpbGRyZW4sIHRoZSBzaW1wbGVzdCB3YXkgaXMgdG8gY3JlYXRlIGEgbmV3IG1lc2ggbWFudWFsbHk6XG5cdCAqXG5cdCAqIDxjb2RlPlxuXHQgKiB2YXIgY2xvbmUgOiBNZXNoID0gbmV3IE1lc2gob3JpZ2luYWwuZ2VvbWV0cnksIG9yaWdpbmFsLm1hdGVyaWFsKTtcblx0ICogPC9jb2RlPlxuXHQgKi9cblx0cHVibGljIGNsb25lKCk6RGlzcGxheU9iamVjdFxuXHR7XG5cdFx0dmFyIGNsb25lOk1lc2ggPSBuZXcgTWVzaCh0aGlzLl9nZW9tZXRyeSwgdGhpcy5fbWF0ZXJpYWwpO1xuXG5cdFx0Y2xvbmUuX2lNYXRyaXgzRCA9IHRoaXMuX2lNYXRyaXgzRDtcblx0XHRjbG9uZS5waXZvdCA9IHRoaXMucGl2b3Q7XG5cdFx0Y2xvbmUucGFydGl0aW9uID0gdGhpcy5wYXJ0aXRpb247XG5cdFx0Y2xvbmUuYm91bmRzID0gdGhpcy5ib3VuZHMuY2xvbmUoKTtcblxuXG5cdFx0Y2xvbmUubmFtZSA9IHRoaXMubmFtZTtcblx0XHRjbG9uZS5jYXN0c1NoYWRvd3MgPSB0aGlzLmNhc3RzU2hhZG93cztcblx0XHRjbG9uZS5zaGFyZUFuaW1hdGlvbkdlb21ldHJ5ID0gdGhpcy5zaGFyZUFuaW1hdGlvbkdlb21ldHJ5O1xuXHRcdGNsb25lLm1vdXNlRW5hYmxlZCA9IHRoaXMubW91c2VFbmFibGVkO1xuXHRcdGNsb25lLm1vdXNlQ2hpbGRyZW4gPSB0aGlzLm1vdXNlQ2hpbGRyZW47XG5cdFx0Ly90aGlzIGlzIG9mIGNvdXJzZSBubyBwcm9wZXIgY2xvbmluZ1xuXHRcdC8vbWF5YmUgdXNlIHRoaXMgaW5zdGVhZD86IGh0dHA6Ly9ibG9nLmFub3RoZXItZC1tZW50aW9uLnJvL3Byb2dyYW1taW5nL2hvdy10by1jbG9uZS1kdXBsaWNhdGUtYW4tb2JqZWN0LWluLWFjdGlvbnNjcmlwdC0zL1xuXHRcdGNsb25lLmV4dHJhID0gdGhpcy5leHRyYTtcblxuXHRcdHZhciBsZW46bnVtYmVyID0gdGhpcy5fc3ViTWVzaGVzLmxlbmd0aDtcblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCBsZW47ICsraSlcblx0XHRcdGNsb25lLl9zdWJNZXNoZXNbaV0ubWF0ZXJpYWwgPSB0aGlzLl9zdWJNZXNoZXNbaV0uX2lHZXRFeHBsaWNpdE1hdGVyaWFsKCk7XG5cblxuXHRcdGxlbiA9IHRoaXMubnVtQ2hpbGRyZW47XG5cdFx0dmFyIG9iajphbnk7XG5cblx0XHRmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcblx0XHRcdG9iaiA9IHRoaXMuZ2V0Q2hpbGRBdChpKS5jbG9uZSgpO1xuXHRcdFx0Y2xvbmUuYWRkQ2hpbGQoPERpc3BsYXlPYmplY3RDb250YWluZXI+IG9iaik7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX2FuaW1hdG9yKVxuXHRcdFx0Y2xvbmUuYW5pbWF0b3IgPSB0aGlzLl9hbmltYXRvci5jbG9uZSgpO1xuXG5cdFx0cmV0dXJuIGNsb25lO1xuXHR9XG5cblx0LyoqXG5cdCAqIC8vVE9ET1xuXHQgKlxuXHQgKiBAcGFyYW0gc3ViR2VvbWV0cnlcblx0ICogQHJldHVybnMge1N1Yk1lc2hCYXNlfVxuXHQgKi9cblx0cHVibGljIGdldFN1Yk1lc2hGcm9tU3ViR2VvbWV0cnkoc3ViR2VvbWV0cnk6U3ViR2VvbWV0cnlCYXNlKTpJU3ViTWVzaFxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3N1Yk1lc2hlc1t0aGlzLl9nZW9tZXRyeS5zdWJHZW9tZXRyaWVzLmluZGV4T2Yoc3ViR2VvbWV0cnkpXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUoKTpFbnRpdHlOb2RlXG5cdHtcblx0XHRyZXR1cm4gbmV3IEVudGl0eU5vZGUodGhpcyk7XG5cdH1cblxuXHQvKipcblx0ICogLy9UT0RPXG5cdCAqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHB1YmxpYyBwVXBkYXRlQm91bmRzKClcblx0e1xuXHRcdHZhciBpOm51bWJlciwgajpudW1iZXIsIHA6bnVtYmVyO1xuXHRcdHZhciBzdWJHZW9tczpBcnJheTxTdWJHZW9tZXRyeUJhc2U+ID0gdGhpcy5fZ2VvbWV0cnkuc3ViR2VvbWV0cmllcztcblx0XHR2YXIgc3ViR2VvbTpTdWJHZW9tZXRyeUJhc2U7XG5cdFx0dmFyIGJvdW5kaW5nUG9zaXRpb25zOkFycmF5PG51bWJlcj47XG5cdFx0dmFyIG51bVN1Ykdlb21zOm51bWJlciA9IHN1Ykdlb21zLmxlbmd0aDtcblx0XHR2YXIgbWluWDpudW1iZXIsIG1pblk6bnVtYmVyLCBtaW5aOm51bWJlcjtcblx0XHR2YXIgbWF4WDpudW1iZXIsIG1heFk6bnVtYmVyLCBtYXhaOm51bWJlcjtcblxuXHRcdGlmIChudW1TdWJHZW9tcyA+IDApIHtcblx0XHRcdGkgPSAwO1xuXHRcdFx0c3ViR2VvbSA9IHN1Ykdlb21zWzBdO1xuXHRcdFx0Ym91bmRpbmdQb3NpdGlvbnMgPSBzdWJHZW9tLmdldEJvdW5kaW5nUG9zaXRpb25zKCk7XG5cdFx0XHRtaW5YID0gbWF4WCA9IGJvdW5kaW5nUG9zaXRpb25zW2ldO1xuXHRcdFx0bWluWSA9IG1heFkgPSBib3VuZGluZ1Bvc2l0aW9uc1tpICsgMV07XG5cdFx0XHRtaW5aID0gbWF4WiA9IGJvdW5kaW5nUG9zaXRpb25zW2kgKyAyXTtcblxuXHRcdFx0aiA9IG51bVN1Ykdlb21zO1xuXHRcdFx0d2hpbGUgKGotLSkge1xuXHRcdFx0XHRzdWJHZW9tID0gc3ViR2VvbXNbal07XG5cdFx0XHRcdGJvdW5kaW5nUG9zaXRpb25zID0gc3ViR2VvbS5nZXRCb3VuZGluZ1Bvc2l0aW9ucygpO1xuXHRcdFx0XHRpID0gYm91bmRpbmdQb3NpdGlvbnMubGVuZ3RoO1xuXHRcdFx0XHR3aGlsZSAoaS0tKSB7XG5cdFx0XHRcdFx0cCA9IGJvdW5kaW5nUG9zaXRpb25zW2ldO1xuXHRcdFx0XHRcdGlmIChwIDwgbWluWClcblx0XHRcdFx0XHRcdG1pblggPSBwO1xuXHRcdFx0XHRcdGVsc2UgaWYgKHAgPiBtYXhYKVxuXHRcdFx0XHRcdFx0bWF4WCA9IHA7XG5cblx0XHRcdFx0XHRwID0gYm91bmRpbmdQb3NpdGlvbnNbaSArIDFdO1xuXG5cdFx0XHRcdFx0aWYgKHAgPCBtaW5ZKVxuXHRcdFx0XHRcdFx0bWluWSA9IHA7XG5cdFx0XHRcdFx0ZWxzZSBpZiAocCA+IG1heFkpXG5cdFx0XHRcdFx0XHRtYXhZID0gcDtcblxuXHRcdFx0XHRcdHAgPSBib3VuZGluZ1Bvc2l0aW9uc1tpICsgMl07XG5cblx0XHRcdFx0XHRpZiAocCA8IG1pblopXG5cdFx0XHRcdFx0XHRtaW5aID0gcDtcblx0XHRcdFx0XHRlbHNlIGlmIChwID4gbWF4Wilcblx0XHRcdFx0XHRcdG1heFogPSBwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuX3BCb3VuZHMuZnJvbUV4dHJlbWVzKG1pblgsIG1pblksIG1pblosIG1heFgsIG1heFksIG1heFopO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9wQm91bmRzLmZyb21FeHRyZW1lcygwLCAwLCAwLCAwLCAwLCAwKTtcblx0XHR9XG5cblx0XHRzdXBlci5wVXBkYXRlQm91bmRzKCk7XG5cdH1cblxuXHQvKipcblx0ICogLy9UT0RPXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwcml2YXRlIG9uR2VvbWV0cnlCb3VuZHNJbnZhbGlkKGV2ZW50Okdlb21ldHJ5RXZlbnQpXG5cdHtcblx0XHR0aGlzLnBJbnZhbGlkYXRlQm91bmRzKCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGVkIHdoZW4gYSBTdWJHZW9tZXRyeSB3YXMgYWRkZWQgdG8gdGhlIEdlb21ldHJ5LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBvblN1Ykdlb21ldHJ5QWRkZWQoZXZlbnQ6R2VvbWV0cnlFdmVudClcblx0e1xuXHRcdHRoaXMuYWRkU3ViTWVzaChldmVudC5zdWJHZW9tZXRyeSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGVkIHdoZW4gYSBTdWJHZW9tZXRyeSB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBHZW9tZXRyeS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHByaXZhdGUgb25TdWJHZW9tZXRyeVJlbW92ZWQoZXZlbnQ6R2VvbWV0cnlFdmVudClcblx0e1xuXHRcdHZhciBzdWJNZXNoOklTdWJNZXNoO1xuXHRcdHZhciBzdWJHZW9tOlN1Ykdlb21ldHJ5QmFzZSA9IGV2ZW50LnN1Ykdlb21ldHJ5O1xuXHRcdHZhciBsZW46bnVtYmVyID0gdGhpcy5fc3ViTWVzaGVzLmxlbmd0aDtcblx0XHR2YXIgaTpudW1iZXI7XG5cblx0XHQvLyBJbXBvcnRhbnQhIFRoaXMgaGFzIHRvIGJlIGRvbmUgaGVyZSwgYW5kIG5vdCBkZWxheWVkIHVudGlsIHRoZVxuXHRcdC8vIG5leHQgcmVuZGVyIGxvb3AsIHNpbmNlIHRoaXMgbWF5IGJlIGNhdXNlZCBieSB0aGUgZ2VvbWV0cnkgYmVpbmdcblx0XHQvLyByZWJ1aWx0IElOIFRIRSBSRU5ERVIgTE9PUC4gSW52YWxpZGF0aW5nIGFuZCB3YWl0aW5nIHdpbGwgZGVsYXlcblx0XHQvLyBpdCB1bnRpbCB0aGUgTkVYVCBSRU5ERVIgRlJBTUUgd2hpY2ggaXMgcHJvYmFibHkgbm90IGRlc2lyYWJsZS5cblx0XHRmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcblxuXHRcdFx0c3ViTWVzaCA9IHRoaXMuX3N1Yk1lc2hlc1tpXTtcblxuXHRcdFx0aWYgKHN1Yk1lc2guc3ViR2VvbWV0cnkgPT0gc3ViR2VvbSkge1xuXHRcdFx0XHRzdWJNZXNoLmRpc3Bvc2UoKTtcblxuXHRcdFx0XHR0aGlzLl9zdWJNZXNoZXMuc3BsaWNlKGksIDEpO1xuXG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC0tbGVuO1xuXHRcdGZvciAoOyBpIDwgbGVuOyArK2kpXG5cdFx0XHR0aGlzLl9zdWJNZXNoZXNbaV0uX2lJbmRleCA9IGk7XG5cdH1cblxuXHQvKipcblx0ICogQWRkcyBhIFN1Yk1lc2hCYXNlIHdyYXBwaW5nIGEgU3ViR2VvbWV0cnkuXG5cdCAqXG5cdCAqIEBwYXJhbSBzdWJHZW9tZXRyeVxuXHQgKi9cblx0cHJpdmF0ZSBhZGRTdWJNZXNoKHN1Ykdlb21ldHJ5OlN1Ykdlb21ldHJ5QmFzZSlcblx0e1xuXHRcdHZhciBTdWJNZXNoQ2xhc3M6SVN1Yk1lc2hDbGFzcyA9IHN1Ykdlb21ldHJ5LnN1Yk1lc2hDbGFzcztcblxuXHRcdHZhciBzdWJNZXNoOklTdWJNZXNoID0gbmV3IFN1Yk1lc2hDbGFzcyhzdWJHZW9tZXRyeSwgdGhpcywgbnVsbCk7XG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9zdWJNZXNoZXMubGVuZ3RoO1xuXG5cdFx0c3ViTWVzaC5faUluZGV4ID0gbGVuO1xuXG5cdFx0dGhpcy5fc3ViTWVzaGVzW2xlbl0gPSBzdWJNZXNoO1xuXG5cdFx0dGhpcy5wSW52YWxpZGF0ZUJvdW5kcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIC8vVE9ET1xuXHQgKlxuXHQgKiBAcGFyYW0gc2hvcnRlc3RDb2xsaXNpb25EaXN0YW5jZVxuXHQgKiBAcGFyYW0gZmluZENsb3Nlc3Rcblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0cHVibGljIF9pVGVzdENvbGxpc2lvbihzaG9ydGVzdENvbGxpc2lvbkRpc3RhbmNlOm51bWJlciwgZmluZENsb3Nlc3Q6Ym9vbGVhbik6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BQaWNraW5nQ29sbGlkZXIudGVzdE1lc2hDb2xsaXNpb24odGhpcywgdGhpcy5fcFBpY2tpbmdDb2xsaXNpb25WTywgc2hvcnRlc3RDb2xsaXNpb25EaXN0YW5jZSwgZmluZENsb3Nlc3QpO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSByZW5kZXJlclxuXHQgKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdHB1YmxpYyBfaUNvbGxlY3RSZW5kZXJhYmxlcyhyZW5kZXJlclBvb2w6SVJlbmRlcmVyUG9vbClcblx0e1xuXHRcdC8vIFNpbmNlIHRoaXMgZ2V0dGVyIGlzIGludm9rZWQgZXZlcnkgaXRlcmF0aW9uIG9mIHRoZSByZW5kZXIgbG9vcCwgYW5kXG5cdFx0Ly8gdGhlIHByZWZhYiBjb25zdHJ1Y3QgY291bGQgYWZmZWN0IHRoZSBzdWItbWVzaGVzLCB0aGUgcHJlZmFiIGlzXG5cdFx0Ly8gdmFsaWRhdGVkIGhlcmUgdG8gZ2l2ZSBpdCBhIGNoYW5jZSB0byByZWJ1aWxkLlxuXHRcdGlmICh0aGlzLl9pU291cmNlUHJlZmFiKVxuXHRcdFx0dGhpcy5faVNvdXJjZVByZWZhYi5faVZhbGlkYXRlKCk7XG5cblx0XHR2YXIgbGVuOm51bWJlciAvKnVpbnQqLyA9IHRoaXMuX3N1Yk1lc2hlcy5sZW5ndGg7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgLyp1aW50Ki8gPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9zdWJNZXNoZXNbaV0uX2lDb2xsZWN0UmVuZGVyYWJsZShyZW5kZXJlclBvb2wpO1xuXHR9XG5cblx0cHVibGljIF9pSW52YWxpZGF0ZVJlbmRlcmFibGVHZW9tZXRyaWVzKClcblx0e1xuXHRcdHZhciBsZW46bnVtYmVyID0gdGhpcy5fc3ViTWVzaGVzLmxlbmd0aDtcblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCBsZW47ICsraSlcblx0XHRcdHRoaXMuX3N1Yk1lc2hlc1tpXS5faUludmFsaWRhdGVSZW5kZXJhYmxlR2VvbWV0cnkoKTtcblx0fVxufVxuXG5leHBvcnQgPSBNZXNoOyJdfQ== \ No newline at end of file diff --git a/lib/entities/Mesh.ts b/lib/entities/Mesh.ts index e072812b7..59692e04f 100644 --- a/lib/entities/Mesh.ts +++ b/lib/entities/Mesh.ts @@ -10,7 +10,7 @@ import TriangleSubGeometry = require("awayjs-display/lib/base/TriangleSubGeome import SubGeometryBase = require("awayjs-display/lib/base/SubGeometryBase"); import DisplayObjectContainer = require("awayjs-display/lib/containers/DisplayObjectContainer"); import EntityNode = require("awayjs-display/lib/partition/EntityNode"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); import GeometryEvent = require("awayjs-display/lib/events/GeometryEvent"); import IEntity = require("awayjs-display/lib/entities/IEntity"); import MaterialBase = require("awayjs-display/lib/materials/MaterialBase"); @@ -482,7 +482,7 @@ class Mesh extends DisplayObjectContainer implements IEntity * * @internal */ - public _iCollectRenderables(renderer:IRenderer) + public _iCollectRenderables(rendererPool:IRendererPool) { // Since this getter is invoked every iteration of the render loop, and // the prefab construct could affect the sub-meshes, the prefab is @@ -492,7 +492,7 @@ class Mesh extends DisplayObjectContainer implements IEntity var len:number /*uint*/ = this._subMeshes.length; for (var i:number /*uint*/ = 0; i < len; i++) - this._subMeshes[i]._iCollectRenderable(renderer); + this._subMeshes[i]._iCollectRenderable(rendererPool); } public _iInvalidateRenderableGeometries() diff --git a/lib/entities/PointLight.js b/lib/entities/PointLight.js index b47e65b8b..e0064a746 100755 --- a/lib/entities/PointLight.js +++ b/lib/entities/PointLight.js @@ -106,11 +106,11 @@ var PointLight = (function (_super) { target.prepend(m); return target; }; - PointLight.prototype._iCollectRenderables = function (renderer) { + PointLight.prototype._iCollectRenderables = function (rendererPool) { //nothing to do here }; return PointLight; })(LightBase); module.exports = PointLight; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9wb2ludGxpZ2h0LnRzIl0sIm5hbWVzIjpbIlBvaW50TGlnaHQiLCJQb2ludExpZ2h0LmNvbnN0cnVjdG9yIiwiUG9pbnRMaWdodC5wQ3JlYXRlU2hhZG93TWFwcGVyIiwiUG9pbnRMaWdodC5yYWRpdXMiLCJQb2ludExpZ2h0LmlGYWxsT2ZmRmFjdG9yIiwiUG9pbnRMaWdodC5mYWxsT2ZmIiwiUG9pbnRMaWdodC5wQ3JlYXRlRW50aXR5UGFydGl0aW9uTm9kZSIsIlBvaW50TGlnaHQucFVwZGF0ZUJvdW5kcyIsIlBvaW50TGlnaHQucENyZWF0ZURlZmF1bHRCb3VuZGluZ1ZvbHVtZSIsIlBvaW50TGlnaHQuaUdldE9iamVjdFByb2plY3Rpb25NYXRyaXgiLCJQb2ludExpZ2h0Ll9pQ29sbGVjdFJlbmRlcmFibGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFPLGNBQWMsV0FBYyx1Q0FBdUMsQ0FBQyxDQUFDO0FBRzVFLElBQU8sUUFBUSxXQUFnQiwrQkFBK0IsQ0FBQyxDQUFDO0FBQ2hFLElBQU8sUUFBUSxXQUFnQiwrQkFBK0IsQ0FBQyxDQUFDO0FBRWhFLElBQU8sU0FBUyxXQUFlLG1DQUFtQyxDQUFDLENBQUM7QUFFcEUsSUFBTyxjQUFjLFdBQWMsNkNBQTZDLENBQUMsQ0FBQztBQUlsRixJQUFPLG1CQUFtQixXQUFhLGdFQUFnRSxDQUFDLENBQUM7QUFFekcsSUFBTSxVQUFVO0lBQVNBLFVBQW5CQSxVQUFVQSxVQUFrQkE7SUFNakNBLFNBTktBLFVBQVVBO1FBUWRDLGlCQUFPQSxDQUFDQTtRQU5GQSxhQUFRQSxHQUFVQSxLQUFLQSxDQUFDQTtRQUN4QkEsY0FBU0EsR0FBVUEsTUFBTUEsQ0FBQ0E7UUFPaENBLElBQUlBLENBQUNBLFVBQVVBLEdBQUdBLElBQUlBLENBQUNBO1FBRXZCQSxJQUFJQSxDQUFDQSxlQUFlQSxHQUFHQSxDQUFDQSxHQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFT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LElBQUlBLEVBQUVBLEdBQVlBLENBQUNBLENBQUNBLG9CQUFvQkEsQ0FBQ0EsSUFBSUEsUUFBUUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsS0FBS0EsRUFBRUEsR0FBR0EsQ0FBQ0EsR0FBR0EsRUFBRUEsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDckZBLElBQUlBLEVBQUVBLEdBQVVBLEVBQUVBLENBQUNBLENBQUNBLEdBQUNBLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLEVBQUVBLENBQUNBLENBQUNBLEdBQUNBLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLEVBQUVBLENBQUNBLENBQUNBLEdBQUNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO1FBQ2xEQSxJQUFJQSxFQUFFQSxHQUFVQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFHQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFHQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNsREEsSUFBSUEsQ0FBQ0EsR0FBVUEsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsR0FBR0EsRUFBRUEsR0FBRUEsRUFBRUEsR0FBR0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7UUFDM0NBLElBQUlBLElBQVdBLENBQUNBO1FBQ2hCQSxJQUFJQSxJQUFXQSxDQUFDQTtRQUVoQkEsSUFBSUEsQ0FBQ0EsR0FBVUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7UUFDN0JBLElBQUlBLEdBQUdBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1FBQ2JBLElBQUlBLEdBQUdBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1FBRWJBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLElBQUlBLEdBQUNBLENBQUNBLENBQUNBO1FBQ3pCQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxJQUFJQSxHQUFDQSxDQUFDQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUM3QkEsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7UUFDWkEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7UUFDeEdBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLEdBQUNBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO1FBRXhCQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQTtZQUNYQSxNQUFNQSxHQUFHQSxJQUFJQSxRQUFRQSxFQUFFQSxDQUFDQTtRQUV6QkEsTUFBTUEsQ0FBQ0EsZUFBZUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7UUFDNUJBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBRWxCQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtJQUNmQSxDQUFDQTtJQUVNVCx5Q0FBb0JBLEdBQTNCQSxVQUE0QkEsUUFBa0JBO1FBRTdDVSxvQkFBb0JBO0lBQ3JCQSxDQUFDQTtJQUNGVixpQkFBQ0E7QUFBREEsQ0FoSUEsQUFnSUNBLEVBaEl3QixTQUFTLEVBZ0lqQztBQUVELEFBQW9CLGlCQUFYLFVBQVUsQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9Qb2ludExpZ2h0LmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCb3VuZGluZ1NwaGVyZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2JvdW5kcy9Cb3VuZGluZ1NwaGVyZVwiKTtcbmltcG9ydCBCb3VuZGluZ1ZvbHVtZUJhc2VcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvYm91bmRzL0JvdW5kaW5nVm9sdW1lQmFzZVwiKTtcbmltcG9ydCBCb3hcdFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL0JveFwiKTtcbmltcG9ydCBNYXRyaXgzRFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL01hdHJpeDNEXCIpO1xuaW1wb3J0IFZlY3RvcjNEXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vVmVjdG9yM0RcIik7XG5cbmltcG9ydCBMaWdodEJhc2VcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvTGlnaHRCYXNlXCIpO1xuaW1wb3J0IEVudGl0eU5vZGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9FbnRpdHlOb2RlXCIpO1xuaW1wb3J0IFBvaW50TGlnaHROb2RlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcGFydGl0aW9uL1BvaW50TGlnaHROb2RlXCIpO1xuaW1wb3J0IElSZW5kZXJlclx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcmVuZGVyL0lSZW5kZXJlclwiKTtcbmltcG9ydCBDYW1lcmFcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvQ2FtZXJhXCIpO1xuaW1wb3J0IElFbnRpdHlcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvSUVudGl0eVwiKTtcbmltcG9ydCBDdWJlTWFwU2hhZG93TWFwcGVyXHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9zaGFkb3dtYXBwZXJzL0N1YmVNYXBTaGFkb3dNYXBwZXJcIik7XG5cbmNsYXNzIFBvaW50TGlnaHQgZXh0ZW5kcyBMaWdodEJhc2UgaW1wbGVtZW50cyBJRW50aXR5XG57XG5cdHB1YmxpYyBfcFJhZGl1czpudW1iZXIgPSA5MDAwMDtcblx0cHVibGljIF9wRmFsbE9mZjpudW1iZXIgPSAxMDAwMDA7XG5cdHB1YmxpYyBfcEZhbGxPZmZGYWN0b3I6bnVtYmVyO1xuXG5cdGNvbnN0cnVjdG9yKClcblx0e1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLl9wSXNFbnRpdHkgPSB0cnVlO1xuXG5cdFx0dGhpcy5fcEZhbGxPZmZGYWN0b3IgPSAxLyh0aGlzLl9wRmFsbE9mZip0aGlzLl9wRmFsbE9mZiAtIHRoaXMuX3BSYWRpdXMqdGhpcy5fcFJhZGl1cyk7XG5cdH1cblxuXHRwdWJsaWMgcENyZWF0ZVNoYWRvd01hcHBlcigpOkN1YmVNYXBTaGFkb3dNYXBwZXJcblx0e1xuXHRcdHJldHVybiBuZXcgQ3ViZU1hcFNoYWRvd01hcHBlcigpO1xuXHR9XG5cblx0cHVibGljIGdldCByYWRpdXMoKTpudW1iZXJcblx0e1xuXHRcdHJldHVybiB0aGlzLl9wUmFkaXVzO1xuXHR9XG5cblx0cHVibGljIHNldCByYWRpdXModmFsdWU6bnVtYmVyKVxuXHR7XG5cdFx0dGhpcy5fcFJhZGl1cyA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuX3BSYWRpdXMgPCAwKSB7XG5cdFx0XHR0aGlzLl9wUmFkaXVzID0gMDtcblx0XHR9IGVsc2UgaWYgKHRoaXMuX3BSYWRpdXMgPiB0aGlzLl9wRmFsbE9mZikge1xuXHRcdFx0dGhpcy5fcEZhbGxPZmYgPSB0aGlzLl9wUmFkaXVzO1xuXHRcdFx0dGhpcy5wSW52YWxpZGF0ZUJvdW5kcygpO1xuXHRcdH1cblx0XHR0aGlzLl9wRmFsbE9mZkZhY3RvciA9IDEvKCB0aGlzLl9wRmFsbE9mZip0aGlzLl9wRmFsbE9mZiAtIHRoaXMuX3BSYWRpdXMqdGhpcy5fcFJhZGl1cyApO1xuXHR9XG5cblx0cHVibGljIGlGYWxsT2ZmRmFjdG9yKCk6bnVtYmVyXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcEZhbGxPZmZGYWN0b3I7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGZhbGxPZmYoKTpudW1iZXJcblx0e1xuXHRcdHJldHVybiB0aGlzLl9wRmFsbE9mZjtcblx0fVxuXG5cdHB1YmxpYyBzZXQgZmFsbE9mZih2YWx1ZTpudW1iZXIpXG5cdHtcblx0XHR0aGlzLl9wRmFsbE9mZiA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuX3BGYWxsT2ZmIDwgMClcblx0XHRcdHRoaXMuX3BGYWxsT2ZmID0gMDtcblxuXHRcdGlmICh0aGlzLl9wRmFsbE9mZiA8IHRoaXMuX3BSYWRpdXMpXG5cdFx0XHR0aGlzLl9wUmFkaXVzID0gdGhpcy5fcEZhbGxPZmY7XG5cblx0XHR0aGlzLl9wRmFsbE9mZkZhY3RvciA9IDEvKCB0aGlzLl9wRmFsbE9mZip0aGlzLl9wRmFsbE9mZiAtIHRoaXMuX3BSYWRpdXMqdGhpcy5fcFJhZGl1cyk7XG5cdFx0dGhpcy5wSW52YWxpZGF0ZUJvdW5kcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHB1YmxpYyBwQ3JlYXRlRW50aXR5UGFydGl0aW9uTm9kZSgpOkVudGl0eU5vZGVcblx0e1xuXHRcdHJldHVybiBuZXcgUG9pbnRMaWdodE5vZGUodGhpcyk7XG5cdH1cblxuXHRwdWJsaWMgcFVwZGF0ZUJvdW5kcygpXG5cdHtcblx0XHR0aGlzLl9wQm91bmRzLmZyb21TcGhlcmUobmV3IFZlY3RvcjNEKCksIHRoaXMuX3BGYWxsT2ZmKTtcblx0XHR0aGlzLl9wQm91bmRzSW52YWxpZCA9IGZhbHNlO1xuXHR9XG5cblx0cHVibGljIHBDcmVhdGVEZWZhdWx0Qm91bmRpbmdWb2x1bWUoKTpCb3VuZGluZ1ZvbHVtZUJhc2Vcblx0e1xuXHRcdC8vcG9pbnQgbGlnaHRzIGFyZSBjdWxsZWQgYmFzZWQgb24gdGhlaXIgZmFsbG9mZiByYWRpdXNcblx0XHRyZXR1cm4gbmV3IEJvdW5kaW5nU3BoZXJlKCk7XG5cdH1cblxuXHRwdWJsaWMgaUdldE9iamVjdFByb2plY3Rpb25NYXRyaXgoZW50aXR5OklFbnRpdHksIGNhbWVyYTpDYW1lcmEsIHRhcmdldDpNYXRyaXgzRCA9IG51bGwpOk1hdHJpeDNEXG5cdHtcblx0XHR2YXIgcmF3Om51bWJlcltdID0gbmV3IEFycmF5PG51bWJlcj4oMTYpO1xuXHRcdHZhciBib3VuZHM6Qm91bmRpbmdWb2x1bWVCYXNlID0gZW50aXR5LmJvdW5kcztcblx0XHR2YXIgbTpNYXRyaXgzRCA9IG5ldyBNYXRyaXgzRCgpO1xuXG5cdFx0Ly8gdG9kbzogZG8gbm90IHVzZSBsb29rQXQgb24gTGlnaHRcblx0XHRtLmNvcHlGcm9tKGVudGl0eS5nZXRSZW5kZXJTY2VuZVRyYW5zZm9ybShjYW1lcmEpKTtcblx0XHRtLmFwcGVuZCh0aGlzLl9wUGFyZW50LmludmVyc2VTY2VuZVRyYW5zZm9ybSk7XG5cdFx0dGhpcy5sb29rQXQobS5wb3NpdGlvbik7XG5cblx0XHRtLmNvcHlGcm9tKGVudGl0eS5nZXRSZW5kZXJTY2VuZVRyYW5zZm9ybShjYW1lcmEpKTtcblx0XHRtLmFwcGVuZCh0aGlzLmludmVyc2VTY2VuZVRyYW5zZm9ybSk7XG5cblx0XHR2YXIgYm94OkJveCA9IGJvdW5kcy5hYWJiO1xuXHRcdHZhciB2MTpWZWN0b3IzRCA9IG0uZGVsdGFUcmFuc2Zvcm1WZWN0b3IobmV3IFZlY3RvcjNEKGJveC5sZWZ0LCBib3guYm90dG9tLCBib3guZnJvbnQpKTtcblx0XHR2YXIgdjI6VmVjdG9yM0QgPSBtLmRlbHRhVHJhbnNmb3JtVmVjdG9yKG5ldyBWZWN0b3IzRChib3gucmlnaHQsIGJveC50b3AsIGJveC5iYWNrKSk7XG5cdFx0dmFyIGQxOm51bWJlciA9IHYxLngqdjEueCArIHYxLnkqdjEueSArIHYxLnoqdjEuejtcblx0XHR2YXIgZDI6bnVtYmVyID0gdjIueCp2Mi54ICsgdjIueSp2Mi55ICsgdjIueip2Mi56O1xuXHRcdHZhciBkOm51bWJlciA9IE1hdGguc3FydChkMSA+IGQyPyBkMSA6IGQyKTtcblx0XHR2YXIgek1pbjpudW1iZXI7XG5cdFx0dmFyIHpNYXg6bnVtYmVyO1xuXG5cdFx0dmFyIHo6bnVtYmVyID0gbS5yYXdEYXRhWzE0XTtcblx0XHR6TWluID0geiAtIGQ7XG5cdFx0ek1heCA9IHogKyBkO1xuXG5cdFx0cmF3WzVdID0gcmF3WzBdID0gek1pbi9kO1xuXHRcdHJhd1sxMF0gPSB6TWF4Lyh6TWF4IC0gek1pbik7XG5cdFx0cmF3WzExXSA9IDE7XG5cdFx0cmF3WzFdID0gcmF3WzJdID0gcmF3WzNdID0gcmF3WzRdID0gcmF3WzZdID0gcmF3WzddID0gcmF3WzhdID0gcmF3WzldID0gcmF3WzEyXSA9IHJhd1sxM10gPSByYXdbMTVdID0gMDtcblx0XHRyYXdbMTRdID0gLXpNaW4qcmF3WzEwXTtcblxuXHRcdGlmICghdGFyZ2V0KVxuXHRcdFx0dGFyZ2V0ID0gbmV3IE1hdHJpeDNEKCk7XG5cblx0XHR0YXJnZXQuY29weVJhd0RhdGFGcm9tKHJhdyk7XG5cdFx0dGFyZ2V0LnByZXBlbmQobSk7XG5cblx0XHRyZXR1cm4gdGFyZ2V0O1xuXHR9XG5cblx0cHVibGljIF9pQ29sbGVjdFJlbmRlcmFibGVzKHJlbmRlcmVyOklSZW5kZXJlcilcblx0e1xuXHRcdC8vbm90aGluZyB0byBkbyBoZXJlXG5cdH1cbn1cblxuZXhwb3J0ID0gUG9pbnRMaWdodDsiXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9wb2ludGxpZ2h0LnRzIl0sIm5hbWVzIjpbIlBvaW50TGlnaHQiLCJQb2ludExpZ2h0LmNvbnN0cnVjdG9yIiwiUG9pbnRMaWdodC5wQ3JlYXRlU2hhZG93TWFwcGVyIiwiUG9pbnRMaWdodC5yYWRpdXMiLCJQb2ludExpZ2h0LmlGYWxsT2ZmRmFjdG9yIiwiUG9pbnRMaWdodC5mYWxsT2ZmIiwiUG9pbnRMaWdodC5wQ3JlYXRlRW50aXR5UGFydGl0aW9uTm9kZSIsIlBvaW50TGlnaHQucFVwZGF0ZUJvdW5kcyIsIlBvaW50TGlnaHQucENyZWF0ZURlZmF1bHRCb3VuZGluZ1ZvbHVtZSIsIlBvaW50TGlnaHQuaUdldE9iamVjdFByb2plY3Rpb25NYXRyaXgiLCJQb2ludExpZ2h0Ll9pQ29sbGVjdFJlbmRlcmFibGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFPLGNBQWMsV0FBYyx1Q0FBdUMsQ0FBQyxDQUFDO0FBRzVFLElBQU8sUUFBUSxXQUFnQiwrQkFBK0IsQ0FBQyxDQUFDO0FBQ2hFLElBQU8sUUFBUSxXQUFnQiwrQkFBK0IsQ0FBQyxDQUFDO0FBRWhFLElBQU8sU0FBUyxXQUFlLG1DQUFtQyxDQUFDLENBQUM7QUFFcEUsSUFBTyxjQUFjLFdBQWMsNkNBQTZDLENBQUMsQ0FBQztBQUlsRixJQUFPLG1CQUFtQixXQUFhLGdFQUFnRSxDQUFDLENBQUM7QUFFekcsSUFBTSxVQUFVO0lBQVNBLFVBQW5CQSxVQUFVQSxVQUFrQkE7SUFNakNBLFNBTktBLFVBQVVBO1FBUWRDLGlCQUFPQSxDQUFDQTtRQU5GQSxhQUFRQSxHQUFVQSxLQUFLQSxDQUFDQTtRQUN4QkEsY0FBU0EsR0FBVUEsTUFBTUEsQ0FBQ0E7UUFPaENBLElBQUlBLENBQUNBLFVBQVVBLEdBQUdBLElBQUlBLENBQUNBO1FBRXZCQSxJQUFJQSxDQUFDQSxlQUFlQSxHQUFHQSxDQUFDQSxHQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFT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LElBQUlBLEVBQUVBLEdBQVlBLENBQUNBLENBQUNBLG9CQUFvQkEsQ0FBQ0EsSUFBSUEsUUFBUUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsS0FBS0EsRUFBRUEsR0FBR0EsQ0FBQ0EsR0FBR0EsRUFBRUEsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDckZBLElBQUlBLEVBQUVBLEdBQVVBLEVBQUVBLENBQUNBLENBQUNBLEdBQUNBLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLEVBQUVBLENBQUNBLENBQUNBLEdBQUNBLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLEVBQUVBLENBQUNBLENBQUNBLEdBQUNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO1FBQ2xEQSxJQUFJQSxFQUFFQSxHQUFVQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFHQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFHQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNsREEsSUFBSUEsQ0FBQ0EsR0FBVUEsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsR0FBR0EsRUFBRUEsR0FBRUEsRUFBRUEsR0FBR0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7UUFDM0NBLElBQUlBLElBQVdBLENBQUNBO1FBQ2hCQSxJQUFJQSxJQUFXQSxDQUFDQTtRQUVoQkEsSUFBSUEsQ0FBQ0EsR0FBVUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7UUFDN0JBLElBQUlBLEdBQUdBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1FBQ2JBLElBQUlBLEdBQUdBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1FBRWJBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLElBQUlBLEdBQUNBLENBQUNBLENBQUNBO1FBQ3pCQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxJQUFJQSxHQUFDQSxDQUFDQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUM3QkEsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7UUFDWkEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7UUFDeEdBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLEdBQUNBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO1FBRXhCQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQTtZQUNYQSxNQUFNQSxHQUFHQSxJQUFJQSxRQUFRQSxFQUFFQSxDQUFDQTtRQUV6QkEsTUFBTUEsQ0FBQ0EsZUFBZUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7UUFDNUJBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBRWxCQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtJQUNmQSxDQUFDQTtJQUVNVCx5Q0FBb0JBLEdBQTNCQSxVQUE0QkEsWUFBMEJBO1FBRXJEVSxvQkFBb0JBO0lBQ3JCQSxDQUFDQTtJQUNGVixpQkFBQ0E7QUFBREEsQ0FoSUEsQUFnSUNBLEVBaEl3QixTQUFTLEVBZ0lqQztBQUVELEFBQW9CLGlCQUFYLFVBQVUsQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9Qb2ludExpZ2h0LmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCb3VuZGluZ1NwaGVyZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2JvdW5kcy9Cb3VuZGluZ1NwaGVyZVwiKTtcbmltcG9ydCBCb3VuZGluZ1ZvbHVtZUJhc2VcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvYm91bmRzL0JvdW5kaW5nVm9sdW1lQmFzZVwiKTtcbmltcG9ydCBCb3hcdFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL0JveFwiKTtcbmltcG9ydCBNYXRyaXgzRFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL01hdHJpeDNEXCIpO1xuaW1wb3J0IFZlY3RvcjNEXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vVmVjdG9yM0RcIik7XG5cbmltcG9ydCBMaWdodEJhc2VcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvTGlnaHRCYXNlXCIpO1xuaW1wb3J0IEVudGl0eU5vZGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3BhcnRpdGlvbi9FbnRpdHlOb2RlXCIpO1xuaW1wb3J0IFBvaW50TGlnaHROb2RlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcGFydGl0aW9uL1BvaW50TGlnaHROb2RlXCIpO1xuaW1wb3J0IElSZW5kZXJlclBvb2xcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcG9vbC9JUmVuZGVyZXJQb29sXCIpO1xuaW1wb3J0IENhbWVyYVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9DYW1lcmFcIik7XG5pbXBvcnQgSUVudGl0eVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9JRW50aXR5XCIpO1xuaW1wb3J0IEN1YmVNYXBTaGFkb3dNYXBwZXJcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvbWF0ZXJpYWxzL3NoYWRvd21hcHBlcnMvQ3ViZU1hcFNoYWRvd01hcHBlclwiKTtcblxuY2xhc3MgUG9pbnRMaWdodCBleHRlbmRzIExpZ2h0QmFzZSBpbXBsZW1lbnRzIElFbnRpdHlcbntcblx0cHVibGljIF9wUmFkaXVzOm51bWJlciA9IDkwMDAwO1xuXHRwdWJsaWMgX3BGYWxsT2ZmOm51bWJlciA9IDEwMDAwMDtcblx0cHVibGljIF9wRmFsbE9mZkZhY3RvcjpudW1iZXI7XG5cblx0Y29uc3RydWN0b3IoKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuX3BJc0VudGl0eSA9IHRydWU7XG5cblx0XHR0aGlzLl9wRmFsbE9mZkZhY3RvciA9IDEvKHRoaXMuX3BGYWxsT2ZmKnRoaXMuX3BGYWxsT2ZmIC0gdGhpcy5fcFJhZGl1cyp0aGlzLl9wUmFkaXVzKTtcblx0fVxuXG5cdHB1YmxpYyBwQ3JlYXRlU2hhZG93TWFwcGVyKCk6Q3ViZU1hcFNoYWRvd01hcHBlclxuXHR7XG5cdFx0cmV0dXJuIG5ldyBDdWJlTWFwU2hhZG93TWFwcGVyKCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHJhZGl1cygpOm51bWJlclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BSYWRpdXM7XG5cdH1cblxuXHRwdWJsaWMgc2V0IHJhZGl1cyh2YWx1ZTpudW1iZXIpXG5cdHtcblx0XHR0aGlzLl9wUmFkaXVzID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5fcFJhZGl1cyA8IDApIHtcblx0XHRcdHRoaXMuX3BSYWRpdXMgPSAwO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5fcFJhZGl1cyA+IHRoaXMuX3BGYWxsT2ZmKSB7XG5cdFx0XHR0aGlzLl9wRmFsbE9mZiA9IHRoaXMuX3BSYWRpdXM7XG5cdFx0XHR0aGlzLnBJbnZhbGlkYXRlQm91bmRzKCk7XG5cdFx0fVxuXHRcdHRoaXMuX3BGYWxsT2ZmRmFjdG9yID0gMS8oIHRoaXMuX3BGYWxsT2ZmKnRoaXMuX3BGYWxsT2ZmIC0gdGhpcy5fcFJhZGl1cyp0aGlzLl9wUmFkaXVzICk7XG5cdH1cblxuXHRwdWJsaWMgaUZhbGxPZmZGYWN0b3IoKTpudW1iZXJcblx0e1xuXHRcdHJldHVybiB0aGlzLl9wRmFsbE9mZkZhY3Rvcjtcblx0fVxuXG5cdHB1YmxpYyBnZXQgZmFsbE9mZigpOm51bWJlclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BGYWxsT2ZmO1xuXHR9XG5cblx0cHVibGljIHNldCBmYWxsT2ZmKHZhbHVlOm51bWJlcilcblx0e1xuXHRcdHRoaXMuX3BGYWxsT2ZmID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5fcEZhbGxPZmYgPCAwKVxuXHRcdFx0dGhpcy5fcEZhbGxPZmYgPSAwO1xuXG5cdFx0aWYgKHRoaXMuX3BGYWxsT2ZmIDwgdGhpcy5fcFJhZGl1cylcblx0XHRcdHRoaXMuX3BSYWRpdXMgPSB0aGlzLl9wRmFsbE9mZjtcblxuXHRcdHRoaXMuX3BGYWxsT2ZmRmFjdG9yID0gMS8oIHRoaXMuX3BGYWxsT2ZmKnRoaXMuX3BGYWxsT2ZmIC0gdGhpcy5fcFJhZGl1cyp0aGlzLl9wUmFkaXVzKTtcblx0XHR0aGlzLnBJbnZhbGlkYXRlQm91bmRzKCk7XG5cdH1cblxuXHQvKipcblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0cHVibGljIHBDcmVhdGVFbnRpdHlQYXJ0aXRpb25Ob2RlKCk6RW50aXR5Tm9kZVxuXHR7XG5cdFx0cmV0dXJuIG5ldyBQb2ludExpZ2h0Tm9kZSh0aGlzKTtcblx0fVxuXG5cdHB1YmxpYyBwVXBkYXRlQm91bmRzKClcblx0e1xuXHRcdHRoaXMuX3BCb3VuZHMuZnJvbVNwaGVyZShuZXcgVmVjdG9yM0QoKSwgdGhpcy5fcEZhbGxPZmYpO1xuXHRcdHRoaXMuX3BCb3VuZHNJbnZhbGlkID0gZmFsc2U7XG5cdH1cblxuXHRwdWJsaWMgcENyZWF0ZURlZmF1bHRCb3VuZGluZ1ZvbHVtZSgpOkJvdW5kaW5nVm9sdW1lQmFzZVxuXHR7XG5cdFx0Ly9wb2ludCBsaWdodHMgYXJlIGN1bGxlZCBiYXNlZCBvbiB0aGVpciBmYWxsb2ZmIHJhZGl1c1xuXHRcdHJldHVybiBuZXcgQm91bmRpbmdTcGhlcmUoKTtcblx0fVxuXG5cdHB1YmxpYyBpR2V0T2JqZWN0UHJvamVjdGlvbk1hdHJpeChlbnRpdHk6SUVudGl0eSwgY2FtZXJhOkNhbWVyYSwgdGFyZ2V0Ok1hdHJpeDNEID0gbnVsbCk6TWF0cml4M0Rcblx0e1xuXHRcdHZhciByYXc6bnVtYmVyW10gPSBuZXcgQXJyYXk8bnVtYmVyPigxNik7XG5cdFx0dmFyIGJvdW5kczpCb3VuZGluZ1ZvbHVtZUJhc2UgPSBlbnRpdHkuYm91bmRzO1xuXHRcdHZhciBtOk1hdHJpeDNEID0gbmV3IE1hdHJpeDNEKCk7XG5cblx0XHQvLyB0b2RvOiBkbyBub3QgdXNlIGxvb2tBdCBvbiBMaWdodFxuXHRcdG0uY29weUZyb20oZW50aXR5LmdldFJlbmRlclNjZW5lVHJhbnNmb3JtKGNhbWVyYSkpO1xuXHRcdG0uYXBwZW5kKHRoaXMuX3BQYXJlbnQuaW52ZXJzZVNjZW5lVHJhbnNmb3JtKTtcblx0XHR0aGlzLmxvb2tBdChtLnBvc2l0aW9uKTtcblxuXHRcdG0uY29weUZyb20oZW50aXR5LmdldFJlbmRlclNjZW5lVHJhbnNmb3JtKGNhbWVyYSkpO1xuXHRcdG0uYXBwZW5kKHRoaXMuaW52ZXJzZVNjZW5lVHJhbnNmb3JtKTtcblxuXHRcdHZhciBib3g6Qm94ID0gYm91bmRzLmFhYmI7XG5cdFx0dmFyIHYxOlZlY3RvcjNEID0gbS5kZWx0YVRyYW5zZm9ybVZlY3RvcihuZXcgVmVjdG9yM0QoYm94LmxlZnQsIGJveC5ib3R0b20sIGJveC5mcm9udCkpO1xuXHRcdHZhciB2MjpWZWN0b3IzRCA9IG0uZGVsdGFUcmFuc2Zvcm1WZWN0b3IobmV3IFZlY3RvcjNEKGJveC5yaWdodCwgYm94LnRvcCwgYm94LmJhY2spKTtcblx0XHR2YXIgZDE6bnVtYmVyID0gdjEueCp2MS54ICsgdjEueSp2MS55ICsgdjEueip2MS56O1xuXHRcdHZhciBkMjpudW1iZXIgPSB2Mi54KnYyLnggKyB2Mi55KnYyLnkgKyB2Mi56KnYyLno7XG5cdFx0dmFyIGQ6bnVtYmVyID0gTWF0aC5zcXJ0KGQxID4gZDI/IGQxIDogZDIpO1xuXHRcdHZhciB6TWluOm51bWJlcjtcblx0XHR2YXIgek1heDpudW1iZXI7XG5cblx0XHR2YXIgejpudW1iZXIgPSBtLnJhd0RhdGFbMTRdO1xuXHRcdHpNaW4gPSB6IC0gZDtcblx0XHR6TWF4ID0geiArIGQ7XG5cblx0XHRyYXdbNV0gPSByYXdbMF0gPSB6TWluL2Q7XG5cdFx0cmF3WzEwXSA9IHpNYXgvKHpNYXggLSB6TWluKTtcblx0XHRyYXdbMTFdID0gMTtcblx0XHRyYXdbMV0gPSByYXdbMl0gPSByYXdbM10gPSByYXdbNF0gPSByYXdbNl0gPSByYXdbN10gPSByYXdbOF0gPSByYXdbOV0gPSByYXdbMTJdID0gcmF3WzEzXSA9IHJhd1sxNV0gPSAwO1xuXHRcdHJhd1sxNF0gPSAtek1pbipyYXdbMTBdO1xuXG5cdFx0aWYgKCF0YXJnZXQpXG5cdFx0XHR0YXJnZXQgPSBuZXcgTWF0cml4M0QoKTtcblxuXHRcdHRhcmdldC5jb3B5UmF3RGF0YUZyb20ocmF3KTtcblx0XHR0YXJnZXQucHJlcGVuZChtKTtcblxuXHRcdHJldHVybiB0YXJnZXQ7XG5cdH1cblxuXHRwdWJsaWMgX2lDb2xsZWN0UmVuZGVyYWJsZXMocmVuZGVyZXJQb29sOklSZW5kZXJlclBvb2wpXG5cdHtcblx0XHQvL25vdGhpbmcgdG8gZG8gaGVyZVxuXHR9XG59XG5cbmV4cG9ydCA9IFBvaW50TGlnaHQ7Il19 \ No newline at end of file diff --git a/lib/entities/PointLight.ts b/lib/entities/PointLight.ts index 9291c7f6c..c5dad6518 100644 --- a/lib/entities/PointLight.ts +++ b/lib/entities/PointLight.ts @@ -7,7 +7,7 @@ import Vector3D = require("awayjs-core/lib/geom/Vector3D"); import LightBase = require("awayjs-display/lib/base/LightBase"); import EntityNode = require("awayjs-display/lib/partition/EntityNode"); import PointLightNode = require("awayjs-display/lib/partition/PointLightNode"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); import Camera = require("awayjs-display/lib/entities/Camera"); import IEntity = require("awayjs-display/lib/entities/IEntity"); import CubeMapShadowMapper = require("awayjs-display/lib/materials/shadowmappers/CubeMapShadowMapper"); @@ -136,7 +136,7 @@ class PointLight extends LightBase implements IEntity return target; } - public _iCollectRenderables(renderer:IRenderer) + public _iCollectRenderables(rendererPool:IRendererPool) { //nothing to do here } diff --git a/lib/entities/Skybox.js b/lib/entities/Skybox.js index d17a0741b..3439a5f77 100755 --- a/lib/entities/Skybox.js +++ b/lib/entities/Skybox.js @@ -51,7 +51,7 @@ var Skybox = (function (_super) { if (this._pAlphaThreshold == value) return; this._pAlphaThreshold = value; - this._pInvalidateProperties(); + this._pIinvalidatePasses(); }, enumerable: true, configurable: true @@ -67,7 +67,7 @@ var Skybox = (function (_super) { if (this._mipmap == value) return; this._mipmap = value; - this._pInvalidateProperties(); + this._pIinvalidatePasses(); }, enumerable: true, configurable: true @@ -83,7 +83,7 @@ var Skybox = (function (_super) { if (this._smooth == value) return; this._smooth = value; - this._pInvalidateProperties(); + this._pIinvalidatePasses(); }, enumerable: true, configurable: true @@ -144,10 +144,10 @@ var Skybox = (function (_super) { * * @private */ - Skybox.prototype._pInvalidateProperties = function () { + Skybox.prototype._pIinvalidatePasses = function () { var len = this._renderObjects.length; for (var i = 0; i < len; i++) - this._renderObjects[i].invalidateProperties(); + this._renderObjects[i].invalidatePasses(); }; Object.defineProperty(Skybox.prototype, "iOwners", { /** @@ -250,10 +250,10 @@ var Skybox = (function (_super) { this._renderables[i].dispose(); this._renderables = new Array(); }; - Skybox.prototype._iCollectRenderables = function (renderer) { + Skybox.prototype._iCollectRenderables = function (rendererPool) { //skybox do not get collected in the standard entity list }; - Skybox.prototype._iCollectRenderable = function (renderer) { + Skybox.prototype._iCollectRenderable = function (rendererPool) { }; Skybox.prototype._iAddRenderObject = function (renderObject) { this._renderObjects.push(renderObject); @@ -285,4 +285,4 @@ var Skybox = (function (_super) { })(DisplayObject); module.exports = Skybox; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9za3lib3gudHMiXSwibmFtZXMiOlsiU2t5Ym94IiwiU2t5Ym94LmNvbnN0cnVjdG9yIiwiU2t5Ym94LmFscGhhVGhyZXNob2xkIiwiU2t5Ym94Lm1pcG1hcCIsIlNreWJveC5zbW9vdGgiLCJTa3lib3gubGlnaHRQaWNrZXIiLCJTa3lib3guYW5pbWF0aW9uU2V0IiwiU2t5Ym94LmJsZW5kTW9kZSIsIlNreWJveC5fcEludmFsaWRhdGVSZW5kZXJPYmplY3QiLCJTa3lib3guX3BJbnZhbGlkYXRlUHJvcGVydGllcyIsIlNreWJveC5pT3duZXJzIiwiU2t5Ym94LmFuaW1hdG9yIiwiU2t5Ym94LnV2VHJhbnNmb3JtIiwiU2t5Ym94LmN1YmVNYXAiLCJTa3lib3guYXNzZXRUeXBlIiwiU2t5Ym94LnBJbnZhbGlkYXRlQm91bmRzIiwiU2t5Ym94LnBDcmVhdGVFbnRpdHlQYXJ0aXRpb25Ob2RlIiwiU2t5Ym94LnBDcmVhdGVEZWZhdWx0Qm91bmRpbmdWb2x1bWUiLCJTa3lib3gucFVwZGF0ZUJvdW5kcyIsIlNreWJveC5jYXN0c1NoYWRvd3MiLCJTa3lib3guZGlzcG9zZSIsIlNreWJveC5faUNvbGxlY3RSZW5kZXJhYmxlcyIsIlNreWJveC5faUNvbGxlY3RSZW5kZXJhYmxlIiwiU2t5Ym94Ll9pQWRkUmVuZGVyT2JqZWN0IiwiU2t5Ym94Ll9pUmVtb3ZlUmVuZGVyT2JqZWN0IiwiU2t5Ym94Ll9pQWRkUmVuZGVyYWJsZSIsIlNreWJveC5faVJlbW92ZVJlbmRlcmFibGUiLCJTa3lib3guZ2V0UmVuZGVyT2JqZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFPLFVBQVUsV0FBZSxtQ0FBbUMsQ0FBQyxDQUFDO0FBRXJFLElBQU8sU0FBUyxXQUFlLG1DQUFtQyxDQUFDLENBQUM7QUFLcEUsSUFBTyxhQUFhLFdBQWMsdUNBQXVDLENBQUMsQ0FBQztBQUMzRSxJQUFPLFNBQVMsV0FBZSxtQ0FBbUMsQ0FB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LENBQUNBLE1BQU1BLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO1FBRW5DQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQTtJQUNuQkEsQ0FBQ0E7SUFFRDFCOzs7OztPQUtHQTtJQUNJQSxnQ0FBZUEsR0FBdEJBLFVBQXVCQSxjQUE4QkE7UUFFcEQyQixNQUFNQSxDQUFDQSxjQUFjQSxDQUFDQSxxQkFBcUJBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO0lBQ25EQSxDQUFDQTtJQUNGM0IsYUFBQ0E7QUFBREEsQ0EzVEEsQUEyVENBLEVBM1RvQixhQUFhLEVBMlRqQztBQUVELEFBQWdCLGlCQUFQLE1BQU0sQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9Ta3lib3guanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJvdW5kaW5nVm9sdW1lQmFzZVx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9ib3VuZHMvQm91bmRpbmdWb2x1bWVCYXNlXCIpO1xuaW1wb3J0IE51bGxCb3VuZHNcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2JvdW5kcy9OdWxsQm91bmRzXCIpO1xuaW1wb3J0IFVWVHJhbnNmb3JtXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1VWVHJhbnNmb3JtXCIpO1xuaW1wb3J0IEFzc2V0VHlwZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvbGlicmFyeS9Bc3NldFR5cGVcIik7XG5pbXBvcnQgQ3ViZVRleHR1cmVCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvdGV4dHVyZXMvQ3ViZVRleHR1cmVCYXNlXCIpO1xuXG5pbXBvcnQgSUFuaW1hdGlvblNldFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2FuaW1hdG9ycy9JQW5pbWF0aW9uU2V0XCIpO1xuaW1wb3J0IElBbmltYXRvclx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYW5pbWF0b3JzL0lBbmltYXRvclwiKTtcbmltcG9ydCBEaXNwbGF5T2JqZWN0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9EaXNwbGF5T2JqZWN0XCIpO1xuaW1wb3J0IEJsZW5kTW9kZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9CbGVuZE1vZGVcIik7XG5pbXBvcnQgSVJlbmRlcmFibGVPd25lclx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvSVJlbmRlcmFibGVPd25lclwiKTtcbmltcG9ydCBJUmVuZGVyT2JqZWN0T3duZXJcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9JUmVuZGVyT2JqZWN0T3duZXJcIik7XG5pbXBvcnQgSVJlbmRlcmFibGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3Bvb2wvSVJlbmRlcmFibGVcIik7XG5pbXBvcnQgSVJlbmRlcmFibGVQb29sXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcG9vbC9JUmVuZGVyYWJsZVBvb2xcIik7XG5pbXBvcnQgSVJlbmRlck9iamVjdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3Bvb2wvSVJlbmRlck9iamVjdFwiKTtcbmltcG9ydCBTa3lib3hOb2RlXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wYXJ0aXRpb24vU2t5Ym94Tm9kZVwiKTtcbmltcG9ydCBJUmVuZGVyZXJcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3JlbmRlci9JUmVuZGVyZXJcIik7XG5pbXBvcnQgSUVudGl0eVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9JRW50aXR5XCIpO1xuaW1wb3J0IExpZ2h0UGlja2VyQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9saWdodHBpY2tlcnMvTGlnaHRQaWNrZXJCYXNlXCIpO1xuaW1wb3J0IE1hdGVyaWFsQmFzZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvbWF0ZXJpYWxzL01hdGVyaWFsQmFzZVwiKTtcblxuLyoqXG4gKiBBIFNreWJveCBjbGFzcyBpcyB1c2VkIHRvIHJlbmRlciBhIHNreSBpbiB0aGUgc2NlbmUuIEl0J3MgYWx3YXlzIGNvbnNpZGVyZWQgc3RhdGljIGFuZCAnYXQgaW5maW5pdHknLCBhbmQgYXNcbiAqIHN1Y2ggaXQncyBhbHdheXMgY2VudGVyZWQgYXQgdGhlIGNhbWVyYSdzIHBvc2l0aW9uIGFuZCBzaXplZCB0byBleGFjdGx5IGZpdCB3aXRoaW4gdGhlIGNhbWVyYSdzIGZydXN0dW0sIGVuc3VyaW5nXG4gKiB0aGUgc2t5IGJveCBpcyBhbHdheXMgYXMgbGFyZ2UgYXMgcG9zc2libGUgd2l0aG91dCBiZWluZyBjbGlwcGVkLlxuICovXG5jbGFzcyBTa3lib3ggZXh0ZW5kcyBEaXNwbGF5T2JqZWN0IGltcGxlbWVudHMgSUVudGl0eSwgSVJlbmRlcmFibGVPd25lciwgSVJlbmRlck9iamVjdE93bmVyXG57XG5cdHByaXZhdGUgX2N1YmVNYXA6Q3ViZVRleHR1cmVCYXNlO1xuXHRwdWJsaWMgX3BBbHBoYVRocmVzaG9sZDpudW1iZXIgPSAwO1xuXHRwcml2YXRlIF9hbmltYXRpb25TZXQ6SUFuaW1hdGlvblNldDtcblx0cHVibGljIF9wTGlnaHRQaWNrZXI6TGlnaHRQaWNrZXJCYXNlO1xuXHRwdWJsaWMgX3BCbGVuZE1vZGU6c3RyaW5nID0gQmxlbmRNb2RlLk5PUk1BTDtcblx0cHJpdmF0ZSBfcmVuZGVyT2JqZWN0czpBcnJheTxJUmVuZGVyT2JqZWN0PiA9IG5ldyBBcnJheTxJUmVuZGVyT2JqZWN0PigpO1xuXHRwcml2YXRlIF9yZW5kZXJhYmxlczpBcnJheTxJUmVuZGVyYWJsZT4gPSBuZXcgQXJyYXk8SVJlbmRlcmFibGU+KCk7XG5cdHByaXZhdGUgX3V2VHJhbnNmb3JtOlVWVHJhbnNmb3JtO1xuXHRwcml2YXRlIF9vd25lcnM6QXJyYXk8SVJlbmRlcmFibGVPd25lcj47XG5cdHByaXZhdGUgX21pcG1hcDpib29sZWFuID0gZmFsc2U7XG5cdHByaXZhdGUgX3Ntb290aDpib29sZWFuID0gdHJ1ZTtcblx0XG5cdHByaXZhdGUgX21hdGVyaWFsOk1hdGVyaWFsQmFzZTtcblx0cHJpdmF0ZSBfYW5pbWF0b3I6SUFuaW1hdG9yO1xuXG5cdC8qKlxuXHQgKiBUaGUgbWluaW11bSBhbHBoYSB2YWx1ZSBmb3Igd2hpY2ggcGl4ZWxzIHNob3VsZCBiZSBkcmF3bi4gVGhpcyBpcyB1c2VkIGZvciB0cmFuc3BhcmVuY3kgdGhhdCBpcyBlaXRoZXJcblx0ICogaW52aXNpYmxlIG9yIGVudGlyZWx5IG9wYXF1ZSwgb2Z0ZW4gdXNlZCB3aXRoIHRleHR1cmVzIGZvciBmb2xpYWdlLCBldGMuXG5cdCAqIFJlY29tbWVuZGVkIHZhbHVlcyBhcmUgMCB0byBkaXNhYmxlIGFscGhhLCBvciAwLjUgdG8gY3JlYXRlIHNtb290aCBlZGdlcy4gRGVmYXVsdCB2YWx1ZSBpcyAwIChkaXNhYmxlZCkuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGFscGhhVGhyZXNob2xkKCk6bnVtYmVyXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcEFscGhhVGhyZXNob2xkO1xuXHR9XG5cblx0cHVibGljIHNldCBhbHBoYVRocmVzaG9sZCh2YWx1ZTpudW1iZXIpXG5cdHtcblx0XHRpZiAodmFsdWUgPCAwKVxuXHRcdFx0dmFsdWUgPSAwO1xuXHRcdGVsc2UgaWYgKHZhbHVlID4gMSlcblx0XHRcdHZhbHVlID0gMTtcblxuXHRcdGlmICh0aGlzLl9wQWxwaGFUaHJlc2hvbGQgPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9wQWxwaGFUaHJlc2hvbGQgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUHJvcGVydGllcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbnkgdXNlZCB0ZXh0dXJlcyBzaG91bGQgdXNlIG1pcG1hcHBpbmcuIERlZmF1bHRzIHRvIHRydWUuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IG1pcG1hcCgpOmJvb2xlYW5cblx0e1xuXHRcdHJldHVybiB0aGlzLl9taXBtYXA7XG5cdH1cblxuXHRwdWJsaWMgc2V0IG1pcG1hcCh2YWx1ZTpib29sZWFuKVxuXHR7XG5cdFx0aWYgKHRoaXMuX21pcG1hcCA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX21pcG1hcCA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVQcm9wZXJ0aWVzKCk7XG5cdH1cblxuXHQvKipcblx0ICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFueSB1c2VkIHRleHR1cmVzIHNob3VsZCB1c2Ugc21vb3RoaW5nLlxuXHQgKi9cblx0cHVibGljIGdldCBzbW9vdGgoKTpib29sZWFuXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fc21vb3RoO1xuXHR9XG5cblx0cHVibGljIHNldCBzbW9vdGgodmFsdWU6Ym9vbGVhbilcblx0e1xuXHRcdGlmICh0aGlzLl9zbW9vdGggPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9zbW9vdGggPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUHJvcGVydGllcygpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogVGhlIGxpZ2h0IHBpY2tlciB1c2VkIGJ5IHRoZSBtYXRlcmlhbCB0byBwcm92aWRlIGxpZ2h0cyB0byB0aGUgbWF0ZXJpYWwgaWYgaXQgc3VwcG9ydHMgbGlnaHRpbmcuXG5cdCAqXG5cdCAqIEBzZWUgTGlnaHRQaWNrZXJCYXNlXG5cdCAqIEBzZWUgU3RhdGljTGlnaHRQaWNrZXJcblx0ICovXG5cdHB1YmxpYyBnZXQgbGlnaHRQaWNrZXIoKTpMaWdodFBpY2tlckJhc2Vcblx0e1xuXHRcdHJldHVybiB0aGlzLl9wTGlnaHRQaWNrZXI7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgYW5pbWF0aW9uU2V0KCk6SUFuaW1hdGlvblNldFxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2FuaW1hdGlvblNldDtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgYmxlbmQgbW9kZSB0byB1c2Ugd2hlbiBkcmF3aW5nIHRoaXMgcmVuZGVyYWJsZS4gVGhlIGZvbGxvd2luZyBibGVuZCBtb2RlcyBhcmUgc3VwcG9ydGVkOlxuXHQgKiA8dWw+XG5cdCAqIDxsaT5CbGVuZE1vZGUuTk9STUFMOiBObyBibGVuZGluZywgdW5sZXNzIHRoZSBtYXRlcmlhbCBpbmhlcmVudGx5IG5lZWRzIGl0PC9saT5cblx0ICogPGxpPkJsZW5kTW9kZS5MQVlFUjogRm9yY2UgYmxlbmRpbmcuIFRoaXMgd2lsbCBkcmF3IHRoZSBvYmplY3QgdGhlIHNhbWUgYXMgTk9STUFMLCBidXQgd2l0aG91dCB3cml0aW5nIGRlcHRoIHdyaXRlcy48L2xpPlxuXHQgKiA8bGk+QmxlbmRNb2RlLk1VTFRJUExZPC9saT5cblx0ICogPGxpPkJsZW5kTW9kZS5BREQ8L2xpPlxuXHQgKiA8bGk+QmxlbmRNb2RlLkFMUEhBPC9saT5cblx0ICogPC91bD5cblx0ICovXG5cdHB1YmxpYyBnZXQgYmxlbmRNb2RlKCk6c3RyaW5nXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcEJsZW5kTW9kZTtcblx0fVxuXG5cdHB1YmxpYyBzZXQgYmxlbmRNb2RlKHZhbHVlOnN0cmluZylcblx0e1xuXHRcdGlmICh0aGlzLl9wQmxlbmRNb2RlID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fcEJsZW5kTW9kZSA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVSZW5kZXJPYmplY3QoKTtcblx0fVxuXG5cdHB1YmxpYyBfcEludmFsaWRhdGVSZW5kZXJPYmplY3QoKVxuXHR7XG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9yZW5kZXJPYmplY3RzLmxlbmd0aDtcblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCBsZW47IGkrKylcblx0XHRcdHRoaXMuX3JlbmRlck9iamVjdHNbaV0uaW52YWxpZGF0ZVJlbmRlck9iamVjdCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1hcmtzIHRoZSBzaGFkZXIgcHJvZ3JhbXMgZm9yIGFsbCBwYXNzZXMgYXMgaW52YWxpZCwgc28gdGhleSB3aWxsIGJlIHJlY29tcGlsZWQgYmVmb3JlIHRoZSBuZXh0IHVzZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHB1YmxpYyBfcEludmFsaWRhdGVQcm9wZXJ0aWVzKClcblx0e1xuXHRcdHZhciBsZW46bnVtYmVyID0gdGhpcy5fcmVuZGVyT2JqZWN0cy5sZW5ndGg7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9yZW5kZXJPYmplY3RzW2ldLmludmFsaWRhdGVQcm9wZXJ0aWVzKCk7XG5cdH1cblxuXHQvKipcblx0ICogQSBsaXN0IG9mIHRoZSBJUmVuZGVyYWJsZU93bmVycyB0aGF0IHVzZSB0aGlzIG1hdGVyaWFsXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGlPd25lcnMoKTpBcnJheTxJUmVuZGVyYWJsZU93bmVyPlxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX293bmVycztcblx0fVxuXG5cdHB1YmxpYyBnZXQgYW5pbWF0b3IoKTpJQW5pbWF0b3Jcblx0e1xuXHRcdHJldHVybiB0aGlzLl9hbmltYXRvcjtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCB1dlRyYW5zZm9ybSgpOlVWVHJhbnNmb3JtXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fdXZUcmFuc2Zvcm07XG5cdH1cblxuXHRwdWJsaWMgc2V0IHV2VHJhbnNmb3JtKHZhbHVlOlVWVHJhbnNmb3JtKVxuXHR7XG5cdFx0dGhpcy5fdXZUcmFuc2Zvcm0gPSB2YWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQqIFRoZSBjdWJlIHRleHR1cmUgdG8gdXNlIGFzIHRoZSBza3lib3guXG5cdCovXG5cdHB1YmxpYyBnZXQgY3ViZU1hcCgpOkN1YmVUZXh0dXJlQmFzZVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2N1YmVNYXA7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGN1YmVNYXAodmFsdWU6Q3ViZVRleHR1cmVCYXNlKVxuXHR7XG5cdFx0aWYgKHZhbHVlICYmIHRoaXMuX2N1YmVNYXAgJiYgKHZhbHVlLmhhc01pcG1hcHMgIT0gdGhpcy5fY3ViZU1hcC5oYXNNaXBtYXBzIHx8IHZhbHVlLmZvcm1hdCAhPSB0aGlzLl9jdWJlTWFwLmZvcm1hdCkpXG5cdFx0XHR0aGlzLl9wSW52YWxpZGF0ZVJlbmRlck9iamVjdCgpO1xuXG5cdFx0dGhpcy5fY3ViZU1hcCA9IHZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSBhIG5ldyBTa3lib3ggb2JqZWN0LlxuXHQgKlxuXHQgKiBAcGFyYW0gbWF0ZXJpYWxcdFRoZSBtYXRlcmlhbCB3aXRoIHdoaWNoIHRvIHJlbmRlciB0aGUgU2t5Ym94LlxuXHQgKi9cblx0Y29uc3RydWN0b3IoY3ViZU1hcDpDdWJlVGV4dHVyZUJhc2UgPSBudWxsKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuX3BJc0VudGl0eSA9IHRydWU7XG5cdFx0dGhpcy5fb3duZXJzID0gbmV3IEFycmF5PElSZW5kZXJhYmxlT3duZXI+KHRoaXMpO1xuXG5cdFx0dGhpcy5jdWJlTWFwID0gY3ViZU1hcDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgYXNzZXRUeXBlKCk6c3RyaW5nXG5cdHtcblx0XHRyZXR1cm4gQXNzZXRUeXBlLlNLWUJPWDtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcEludmFsaWRhdGVCb3VuZHMoKVxuXHR7XG5cdFx0Ly8gZGVhZCBlbmRcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUoKTpTa3lib3hOb2RlXG5cdHtcblx0XHRyZXR1cm4gbmV3IFNreWJveE5vZGUodGhpcyk7XG5cdH1cblxuXHQvKipcblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0cHVibGljIHBDcmVhdGVEZWZhdWx0Qm91bmRpbmdWb2x1bWUoKTpCb3VuZGluZ1ZvbHVtZUJhc2Vcblx0e1xuXHRcdHJldHVybiA8Qm91bmRpbmdWb2x1bWVCYXNlPiBuZXcgTnVsbEJvdW5kcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHB1YmxpYyBwVXBkYXRlQm91bmRzKClcblx0e1xuXHRcdHRoaXMuX3BCb3VuZHNJbnZhbGlkID0gZmFsc2U7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGNhc3RzU2hhZG93cygpOmJvb2xlYW5cblx0e1xuXHRcdHJldHVybiBmYWxzZTsgLy9UT0RPXG5cdH1cblxuXHQvKipcblx0ICogQ2xlYW5zIHVwIHJlc291cmNlcyBvd25lZCBieSB0aGUgbWF0ZXJpYWwsIGluY2x1ZGluZyBwYXNzZXMuIFRleHR1cmVzIGFyZSBub3Qgb3duZWQgYnkgdGhlIG1hdGVyaWFsIHNpbmNlIHRoZXlcblx0ICogY291bGQgYmUgdXNlZCBieSBvdGhlciBtYXRlcmlhbHMgYW5kIHdpbGwgbm90IGJlIGRpc3Bvc2VkLlxuXHQgKi9cblx0cHVibGljIGRpc3Bvc2UoKVxuXHR7XG5cdFx0dmFyIGk6bnVtYmVyO1xuXHRcdHZhciBsZW46bnVtYmVyO1xuXG5cdFx0bGVuID0gdGhpcy5fcmVuZGVyT2JqZWN0cy5sZW5ndGg7XG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKVxuXHRcdFx0dGhpcy5fcmVuZGVyT2JqZWN0c1tpXS5kaXNwb3NlKCk7XG5cblx0XHR0aGlzLl9yZW5kZXJPYmplY3RzID0gbmV3IEFycmF5PElSZW5kZXJPYmplY3Q+KCk7XG5cblx0XHR2YXIgbGVuOm51bWJlciA9IHRoaXMuX3JlbmRlcmFibGVzLmxlbmd0aDtcblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCBsZW47IGkrKylcblx0XHRcdHRoaXMuX3JlbmRlcmFibGVzW2ldLmRpc3Bvc2UoKTtcblxuXHRcdHRoaXMuX3JlbmRlcmFibGVzID0gbmV3IEFycmF5PElSZW5kZXJhYmxlPigpO1xuXHR9XG5cblx0cHVibGljIF9pQ29sbGVjdFJlbmRlcmFibGVzKHJlbmRlcmVyOklSZW5kZXJlcilcblx0e1xuXHRcdC8vc2t5Ym94IGRvIG5vdCBnZXQgY29sbGVjdGVkIGluIHRoZSBzdGFuZGFyZCBlbnRpdHkgbGlzdFxuXHR9XG5cblx0cHVibGljIF9pQ29sbGVjdFJlbmRlcmFibGUocmVuZGVyZXI6SVJlbmRlcmVyKVxuXHR7XG5cblx0fVxuXG5cdHB1YmxpYyBfaUFkZFJlbmRlck9iamVjdChyZW5kZXJPYmplY3Q6SVJlbmRlck9iamVjdCk6SVJlbmRlck9iamVjdFxuXHR7XG5cdFx0dGhpcy5fcmVuZGVyT2JqZWN0cy5wdXNoKHJlbmRlck9iamVjdCk7XG5cblx0XHRyZXR1cm4gcmVuZGVyT2JqZWN0O1xuXHR9XG5cblx0cHVibGljIF9pUmVtb3ZlUmVuZGVyT2JqZWN0KHJlbmRlck9iamVjdDpJUmVuZGVyT2JqZWN0KTpJUmVuZGVyT2JqZWN0XG5cdHtcblx0XHR0aGlzLl9yZW5kZXJPYmplY3RzLnNwbGljZSh0aGlzLl9yZW5kZXJPYmplY3RzLmluZGV4T2YocmVuZGVyT2JqZWN0KSwgMSk7XG5cblx0XHRyZXR1cm4gcmVuZGVyT2JqZWN0O1xuXHR9XG5cblx0cHVibGljIF9pQWRkUmVuZGVyYWJsZShyZW5kZXJhYmxlOklSZW5kZXJhYmxlKTpJUmVuZGVyYWJsZVxuXHR7XG5cdFx0dGhpcy5fcmVuZGVyYWJsZXMucHVzaChyZW5kZXJhYmxlKTtcblxuXHRcdHJldHVybiByZW5kZXJhYmxlO1xuXHR9XG5cblxuXHRwdWJsaWMgX2lSZW1vdmVSZW5kZXJhYmxlKHJlbmRlcmFibGU6SVJlbmRlcmFibGUpOklSZW5kZXJhYmxlXG5cdHtcblx0XHR2YXIgaW5kZXg6bnVtYmVyID0gdGhpcy5fcmVuZGVyYWJsZXMuaW5kZXhPZihyZW5kZXJhYmxlKTtcblxuXHRcdHRoaXMuX3JlbmRlcmFibGVzLnNwbGljZShpbmRleCwgMSk7XG5cblx0XHRyZXR1cm4gcmVuZGVyYWJsZTtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gcmVuZGVyZXJcblx0ICpcblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRwdWJsaWMgZ2V0UmVuZGVyT2JqZWN0KHJlbmRlcmFibGVQb29sOklSZW5kZXJhYmxlUG9vbClcblx0e1xuXHRcdHJldHVybiByZW5kZXJhYmxlUG9vbC5nZXRTa3lib3hSZW5kZXJPYmplY3QodGhpcyk7XG5cdH1cbn1cblxuZXhwb3J0ID0gU2t5Ym94OyJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9za3lib3gudHMiXSwibmFtZXMiOlsiU2t5Ym94IiwiU2t5Ym94LmNvbnN0cnVjdG9yIiwiU2t5Ym94LmFscGhhVGhyZXNob2xkIiwiU2t5Ym94Lm1pcG1hcCIsIlNreWJveC5zbW9vdGgiLCJTa3lib3gubGlnaHRQaWNrZXIiLCJTa3lib3guYW5pbWF0aW9uU2V0IiwiU2t5Ym94LmJsZW5kTW9kZSIsIlNreWJveC5fcEludmFsaWRhdGVSZW5kZXJPYmplY3QiLCJTa3lib3guX3BJaW52YWxpZGF0ZVBhc3NlcyIsIlNreWJveC5pT3duZXJzIiwiU2t5Ym94LmFuaW1hdG9yIiwiU2t5Ym94LnV2VHJhbnNmb3JtIiwiU2t5Ym94LmN1YmVNYXAiLCJTa3lib3guYXNzZXRUeXBlIiwiU2t5Ym94LnBJbnZhbGlkYXRlQm91bmRzIiwiU2t5Ym94LnBDcmVhdGVFbnRpdHlQYXJ0aXRpb25Ob2RlIiwiU2t5Ym94LnBDcmVhdGVEZWZhdWx0Qm91bmRpbmdWb2x1bWUiLCJTa3lib3gucFVwZGF0ZUJvdW5kcyIsIlNreWJveC5jYXN0c1NoYWRvd3MiLCJTa3lib3guZGlzcG9zZSIsIlNreWJveC5faUNvbGxlY3RSZW5kZXJhYmxlcyIsIlNreWJveC5faUNvbGxlY3RSZW5kZXJhYmxlIiwiU2t5Ym94Ll9pQWRkUmVuZGVyT2JqZWN0IiwiU2t5Ym94Ll9pUmVtb3ZlUmVuZGVyT2JqZWN0IiwiU2t5Ym94Ll9pQWRkUmVuZGVyYWJsZSIsIlNreWJveC5faVJlbW92ZVJlbmRlcmFibGUiLCJTa3lib3guZ2V0UmVuZGVyT2JqZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFPLFVBQVUsV0FBZSxtQ0FBbUMsQ0FBQyxDQUFDO0FBRXJFLElBQU8sU0FBUyxXQUFlLG1DQUFtQyxDQUFDLENBQUM7QUFLcEUsSUFBTyxhQUFhLFdBQWMsdUNBQXVDLENBQUMsQ0FBQztBQUMzRSxJQUFPLFNBQVMsV0FBZSxtQ0FBbUMsQ0FBQyxD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QUNBLE1BQU1BLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO1FBRW5DQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQTtJQUNuQkEsQ0FBQ0E7SUFFRDFCOzs7OztPQUtHQTtJQUNJQSxnQ0FBZUEsR0FBdEJBLFVBQXVCQSxjQUE4QkE7UUFFcEQyQixNQUFNQSxDQUFDQSxjQUFjQSxDQUFDQSxxQkFBcUJBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO0lBQ25EQSxDQUFDQTtJQUNGM0IsYUFBQ0E7QUFBREEsQ0EzVEEsQUEyVENBLEVBM1RvQixhQUFhLEVBMlRqQztBQUVELEFBQWdCLGlCQUFQLE1BQU0sQ0FBQyIsImZpbGUiOiJlbnRpdGllcy9Ta3lib3guanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJvdW5kaW5nVm9sdW1lQmFzZVx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9ib3VuZHMvQm91bmRpbmdWb2x1bWVCYXNlXCIpO1xuaW1wb3J0IE51bGxCb3VuZHNcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2JvdW5kcy9OdWxsQm91bmRzXCIpO1xuaW1wb3J0IFVWVHJhbnNmb3JtXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL1VWVHJhbnNmb3JtXCIpO1xuaW1wb3J0IEFzc2V0VHlwZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvbGlicmFyeS9Bc3NldFR5cGVcIik7XG5pbXBvcnQgQ3ViZVRleHR1cmVCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvdGV4dHVyZXMvQ3ViZVRleHR1cmVCYXNlXCIpO1xuXG5pbXBvcnQgSUFuaW1hdGlvblNldFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2FuaW1hdG9ycy9JQW5pbWF0aW9uU2V0XCIpO1xuaW1wb3J0IElBbmltYXRvclx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYW5pbWF0b3JzL0lBbmltYXRvclwiKTtcbmltcG9ydCBEaXNwbGF5T2JqZWN0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9EaXNwbGF5T2JqZWN0XCIpO1xuaW1wb3J0IEJsZW5kTW9kZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9CbGVuZE1vZGVcIik7XG5pbXBvcnQgSVJlbmRlcmFibGVPd25lclx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvSVJlbmRlcmFibGVPd25lclwiKTtcbmltcG9ydCBJUmVuZGVyT2JqZWN0T3duZXJcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9JUmVuZGVyT2JqZWN0T3duZXJcIik7XG5pbXBvcnQgSVJlbmRlcmFibGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3Bvb2wvSVJlbmRlcmFibGVcIik7XG5pbXBvcnQgSVJlbmRlcmFibGVQb29sXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcG9vbC9JUmVuZGVyYWJsZVBvb2xcIik7XG5pbXBvcnQgSVJlbmRlck9iamVjdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3Bvb2wvSVJlbmRlck9iamVjdFwiKTtcbmltcG9ydCBTa3lib3hOb2RlXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wYXJ0aXRpb24vU2t5Ym94Tm9kZVwiKTtcbmltcG9ydCBJUmVuZGVyZXJQb29sXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcG9vbC9JUmVuZGVyZXJQb29sXCIpO1xuaW1wb3J0IElFbnRpdHlcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvSUVudGl0eVwiKTtcbmltcG9ydCBMaWdodFBpY2tlckJhc2VcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9tYXRlcmlhbHMvbGlnaHRwaWNrZXJzL0xpZ2h0UGlja2VyQmFzZVwiKTtcbmltcG9ydCBNYXRlcmlhbEJhc2VcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9NYXRlcmlhbEJhc2VcIik7XG5cbi8qKlxuICogQSBTa3lib3ggY2xhc3MgaXMgdXNlZCB0byByZW5kZXIgYSBza3kgaW4gdGhlIHNjZW5lLiBJdCdzIGFsd2F5cyBjb25zaWRlcmVkIHN0YXRpYyBhbmQgJ2F0IGluZmluaXR5JywgYW5kIGFzXG4gKiBzdWNoIGl0J3MgYWx3YXlzIGNlbnRlcmVkIGF0IHRoZSBjYW1lcmEncyBwb3NpdGlvbiBhbmQgc2l6ZWQgdG8gZXhhY3RseSBmaXQgd2l0aGluIHRoZSBjYW1lcmEncyBmcnVzdHVtLCBlbnN1cmluZ1xuICogdGhlIHNreSBib3ggaXMgYWx3YXlzIGFzIGxhcmdlIGFzIHBvc3NpYmxlIHdpdGhvdXQgYmVpbmcgY2xpcHBlZC5cbiAqL1xuY2xhc3MgU2t5Ym94IGV4dGVuZHMgRGlzcGxheU9iamVjdCBpbXBsZW1lbnRzIElFbnRpdHksIElSZW5kZXJhYmxlT3duZXIsIElSZW5kZXJPYmplY3RPd25lclxue1xuXHRwcml2YXRlIF9jdWJlTWFwOkN1YmVUZXh0dXJlQmFzZTtcblx0cHVibGljIF9wQWxwaGFUaHJlc2hvbGQ6bnVtYmVyID0gMDtcblx0cHJpdmF0ZSBfYW5pbWF0aW9uU2V0OklBbmltYXRpb25TZXQ7XG5cdHB1YmxpYyBfcExpZ2h0UGlja2VyOkxpZ2h0UGlja2VyQmFzZTtcblx0cHVibGljIF9wQmxlbmRNb2RlOnN0cmluZyA9IEJsZW5kTW9kZS5OT1JNQUw7XG5cdHByaXZhdGUgX3JlbmRlck9iamVjdHM6QXJyYXk8SVJlbmRlck9iamVjdD4gPSBuZXcgQXJyYXk8SVJlbmRlck9iamVjdD4oKTtcblx0cHJpdmF0ZSBfcmVuZGVyYWJsZXM6QXJyYXk8SVJlbmRlcmFibGU+ID0gbmV3IEFycmF5PElSZW5kZXJhYmxlPigpO1xuXHRwcml2YXRlIF91dlRyYW5zZm9ybTpVVlRyYW5zZm9ybTtcblx0cHJpdmF0ZSBfb3duZXJzOkFycmF5PElSZW5kZXJhYmxlT3duZXI+O1xuXHRwcml2YXRlIF9taXBtYXA6Ym9vbGVhbiA9IGZhbHNlO1xuXHRwcml2YXRlIF9zbW9vdGg6Ym9vbGVhbiA9IHRydWU7XG5cdFxuXHRwcml2YXRlIF9tYXRlcmlhbDpNYXRlcmlhbEJhc2U7XG5cdHByaXZhdGUgX2FuaW1hdG9yOklBbmltYXRvcjtcblxuXHQvKipcblx0ICogVGhlIG1pbmltdW0gYWxwaGEgdmFsdWUgZm9yIHdoaWNoIHBpeGVscyBzaG91bGQgYmUgZHJhd24uIFRoaXMgaXMgdXNlZCBmb3IgdHJhbnNwYXJlbmN5IHRoYXQgaXMgZWl0aGVyXG5cdCAqIGludmlzaWJsZSBvciBlbnRpcmVseSBvcGFxdWUsIG9mdGVuIHVzZWQgd2l0aCB0ZXh0dXJlcyBmb3IgZm9saWFnZSwgZXRjLlxuXHQgKiBSZWNvbW1lbmRlZCB2YWx1ZXMgYXJlIDAgdG8gZGlzYWJsZSBhbHBoYSwgb3IgMC41IHRvIGNyZWF0ZSBzbW9vdGggZWRnZXMuIERlZmF1bHQgdmFsdWUgaXMgMCAoZGlzYWJsZWQpLlxuXHQgKi9cblx0cHVibGljIGdldCBhbHBoYVRocmVzaG9sZCgpOm51bWJlclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BBbHBoYVRocmVzaG9sZDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgYWxwaGFUaHJlc2hvbGQodmFsdWU6bnVtYmVyKVxuXHR7XG5cdFx0aWYgKHZhbHVlIDwgMClcblx0XHRcdHZhbHVlID0gMDtcblx0XHRlbHNlIGlmICh2YWx1ZSA+IDEpXG5cdFx0XHR2YWx1ZSA9IDE7XG5cblx0XHRpZiAodGhpcy5fcEFscGhhVGhyZXNob2xkID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fcEFscGhhVGhyZXNob2xkID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSWludmFsaWRhdGVQYXNzZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW55IHVzZWQgdGV4dHVyZXMgc2hvdWxkIHVzZSBtaXBtYXBwaW5nLiBEZWZhdWx0cyB0byB0cnVlLlxuXHQgKi9cblx0cHVibGljIGdldCBtaXBtYXAoKTpib29sZWFuXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fbWlwbWFwO1xuXHR9XG5cblx0cHVibGljIHNldCBtaXBtYXAodmFsdWU6Ym9vbGVhbilcblx0e1xuXHRcdGlmICh0aGlzLl9taXBtYXAgPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9taXBtYXAgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJaW52YWxpZGF0ZVBhc3NlcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbnkgdXNlZCB0ZXh0dXJlcyBzaG91bGQgdXNlIHNtb290aGluZy5cblx0ICovXG5cdHB1YmxpYyBnZXQgc21vb3RoKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3Ntb290aDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgc21vb3RoKHZhbHVlOmJvb2xlYW4pXG5cdHtcblx0XHRpZiAodGhpcy5fc21vb3RoID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fc21vb3RoID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSWludmFsaWRhdGVQYXNzZXMoKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIFRoZSBsaWdodCBwaWNrZXIgdXNlZCBieSB0aGUgbWF0ZXJpYWwgdG8gcHJvdmlkZSBsaWdodHMgdG8gdGhlIG1hdGVyaWFsIGlmIGl0IHN1cHBvcnRzIGxpZ2h0aW5nLlxuXHQgKlxuXHQgKiBAc2VlIExpZ2h0UGlja2VyQmFzZVxuXHQgKiBAc2VlIFN0YXRpY0xpZ2h0UGlja2VyXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGxpZ2h0UGlja2VyKCk6TGlnaHRQaWNrZXJCYXNlXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcExpZ2h0UGlja2VyO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGFuaW1hdGlvblNldCgpOklBbmltYXRpb25TZXRcblx0e1xuXHRcdHJldHVybiB0aGlzLl9hbmltYXRpb25TZXQ7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGJsZW5kIG1vZGUgdG8gdXNlIHdoZW4gZHJhd2luZyB0aGlzIHJlbmRlcmFibGUuIFRoZSBmb2xsb3dpbmcgYmxlbmQgbW9kZXMgYXJlIHN1cHBvcnRlZDpcblx0ICogPHVsPlxuXHQgKiA8bGk+QmxlbmRNb2RlLk5PUk1BTDogTm8gYmxlbmRpbmcsIHVubGVzcyB0aGUgbWF0ZXJpYWwgaW5oZXJlbnRseSBuZWVkcyBpdDwvbGk+XG5cdCAqIDxsaT5CbGVuZE1vZGUuTEFZRVI6IEZvcmNlIGJsZW5kaW5nLiBUaGlzIHdpbGwgZHJhdyB0aGUgb2JqZWN0IHRoZSBzYW1lIGFzIE5PUk1BTCwgYnV0IHdpdGhvdXQgd3JpdGluZyBkZXB0aCB3cml0ZXMuPC9saT5cblx0ICogPGxpPkJsZW5kTW9kZS5NVUxUSVBMWTwvbGk+XG5cdCAqIDxsaT5CbGVuZE1vZGUuQUREPC9saT5cblx0ICogPGxpPkJsZW5kTW9kZS5BTFBIQTwvbGk+XG5cdCAqIDwvdWw+XG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGJsZW5kTW9kZSgpOnN0cmluZ1xuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BCbGVuZE1vZGU7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGJsZW5kTW9kZSh2YWx1ZTpzdHJpbmcpXG5cdHtcblx0XHRpZiAodGhpcy5fcEJsZW5kTW9kZSA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX3BCbGVuZE1vZGUgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUmVuZGVyT2JqZWN0KCk7XG5cdH1cblxuXHRwdWJsaWMgX3BJbnZhbGlkYXRlUmVuZGVyT2JqZWN0KClcblx0e1xuXHRcdHZhciBsZW46bnVtYmVyID0gdGhpcy5fcmVuZGVyT2JqZWN0cy5sZW5ndGg7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9yZW5kZXJPYmplY3RzW2ldLmludmFsaWRhdGVSZW5kZXJPYmplY3QoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNYXJrcyB0aGUgc2hhZGVyIHByb2dyYW1zIGZvciBhbGwgcGFzc2VzIGFzIGludmFsaWQsIHNvIHRoZXkgd2lsbCBiZSByZWNvbXBpbGVkIGJlZm9yZSB0aGUgbmV4dCB1c2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwdWJsaWMgX3BJaW52YWxpZGF0ZVBhc3NlcygpXG5cdHtcblx0XHR2YXIgbGVuOm51bWJlciA9IHRoaXMuX3JlbmRlck9iamVjdHMubGVuZ3RoO1xuXHRcdGZvciAodmFyIGk6bnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKVxuXHRcdFx0dGhpcy5fcmVuZGVyT2JqZWN0c1tpXS5pbnZhbGlkYXRlUGFzc2VzKCk7XG5cdH1cblxuXHQvKipcblx0ICogQSBsaXN0IG9mIHRoZSBJUmVuZGVyYWJsZU93bmVycyB0aGF0IHVzZSB0aGlzIG1hdGVyaWFsXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGlPd25lcnMoKTpBcnJheTxJUmVuZGVyYWJsZU93bmVyPlxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX293bmVycztcblx0fVxuXG5cdHB1YmxpYyBnZXQgYW5pbWF0b3IoKTpJQW5pbWF0b3Jcblx0e1xuXHRcdHJldHVybiB0aGlzLl9hbmltYXRvcjtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCB1dlRyYW5zZm9ybSgpOlVWVHJhbnNmb3JtXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fdXZUcmFuc2Zvcm07XG5cdH1cblxuXHRwdWJsaWMgc2V0IHV2VHJhbnNmb3JtKHZhbHVlOlVWVHJhbnNmb3JtKVxuXHR7XG5cdFx0dGhpcy5fdXZUcmFuc2Zvcm0gPSB2YWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQqIFRoZSBjdWJlIHRleHR1cmUgdG8gdXNlIGFzIHRoZSBza3lib3guXG5cdCovXG5cdHB1YmxpYyBnZXQgY3ViZU1hcCgpOkN1YmVUZXh0dXJlQmFzZVxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2N1YmVNYXA7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGN1YmVNYXAodmFsdWU6Q3ViZVRleHR1cmVCYXNlKVxuXHR7XG5cdFx0aWYgKHZhbHVlICYmIHRoaXMuX2N1YmVNYXAgJiYgKHZhbHVlLmhhc01pcG1hcHMgIT0gdGhpcy5fY3ViZU1hcC5oYXNNaXBtYXBzIHx8IHZhbHVlLmZvcm1hdCAhPSB0aGlzLl9jdWJlTWFwLmZvcm1hdCkpXG5cdFx0XHR0aGlzLl9wSW52YWxpZGF0ZVJlbmRlck9iamVjdCgpO1xuXG5cdFx0dGhpcy5fY3ViZU1hcCA9IHZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSBhIG5ldyBTa3lib3ggb2JqZWN0LlxuXHQgKlxuXHQgKiBAcGFyYW0gbWF0ZXJpYWxcdFRoZSBtYXRlcmlhbCB3aXRoIHdoaWNoIHRvIHJlbmRlciB0aGUgU2t5Ym94LlxuXHQgKi9cblx0Y29uc3RydWN0b3IoY3ViZU1hcDpDdWJlVGV4dHVyZUJhc2UgPSBudWxsKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuX3BJc0VudGl0eSA9IHRydWU7XG5cdFx0dGhpcy5fb3duZXJzID0gbmV3IEFycmF5PElSZW5kZXJhYmxlT3duZXI+KHRoaXMpO1xuXG5cdFx0dGhpcy5jdWJlTWFwID0gY3ViZU1hcDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgYXNzZXRUeXBlKCk6c3RyaW5nXG5cdHtcblx0XHRyZXR1cm4gQXNzZXRUeXBlLlNLWUJPWDtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcEludmFsaWRhdGVCb3VuZHMoKVxuXHR7XG5cdFx0Ly8gZGVhZCBlbmRcblx0fVxuXG5cdC8qKlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRwdWJsaWMgcENyZWF0ZUVudGl0eVBhcnRpdGlvbk5vZGUoKTpTa3lib3hOb2RlXG5cdHtcblx0XHRyZXR1cm4gbmV3IFNreWJveE5vZGUodGhpcyk7XG5cdH1cblxuXHQvKipcblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0cHVibGljIHBDcmVhdGVEZWZhdWx0Qm91bmRpbmdWb2x1bWUoKTpCb3VuZGluZ1ZvbHVtZUJhc2Vcblx0e1xuXHRcdHJldHVybiA8Qm91bmRpbmdWb2x1bWVCYXNlPiBuZXcgTnVsbEJvdW5kcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdHB1YmxpYyBwVXBkYXRlQm91bmRzKClcblx0e1xuXHRcdHRoaXMuX3BCb3VuZHNJbnZhbGlkID0gZmFsc2U7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGNhc3RzU2hhZG93cygpOmJvb2xlYW5cblx0e1xuXHRcdHJldHVybiBmYWxzZTsgLy9UT0RPXG5cdH1cblxuXHQvKipcblx0ICogQ2xlYW5zIHVwIHJlc291cmNlcyBvd25lZCBieSB0aGUgbWF0ZXJpYWwsIGluY2x1ZGluZyBwYXNzZXMuIFRleHR1cmVzIGFyZSBub3Qgb3duZWQgYnkgdGhlIG1hdGVyaWFsIHNpbmNlIHRoZXlcblx0ICogY291bGQgYmUgdXNlZCBieSBvdGhlciBtYXRlcmlhbHMgYW5kIHdpbGwgbm90IGJlIGRpc3Bvc2VkLlxuXHQgKi9cblx0cHVibGljIGRpc3Bvc2UoKVxuXHR7XG5cdFx0dmFyIGk6bnVtYmVyO1xuXHRcdHZhciBsZW46bnVtYmVyO1xuXG5cdFx0bGVuID0gdGhpcy5fcmVuZGVyT2JqZWN0cy5sZW5ndGg7XG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKVxuXHRcdFx0dGhpcy5fcmVuZGVyT2JqZWN0c1tpXS5kaXNwb3NlKCk7XG5cblx0XHR0aGlzLl9yZW5kZXJPYmplY3RzID0gbmV3IEFycmF5PElSZW5kZXJPYmplY3Q+KCk7XG5cblx0XHR2YXIgbGVuOm51bWJlciA9IHRoaXMuX3JlbmRlcmFibGVzLmxlbmd0aDtcblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCBsZW47IGkrKylcblx0XHRcdHRoaXMuX3JlbmRlcmFibGVzW2ldLmRpc3Bvc2UoKTtcblxuXHRcdHRoaXMuX3JlbmRlcmFibGVzID0gbmV3IEFycmF5PElSZW5kZXJhYmxlPigpO1xuXHR9XG5cblx0cHVibGljIF9pQ29sbGVjdFJlbmRlcmFibGVzKHJlbmRlcmVyUG9vbDpJUmVuZGVyZXJQb29sKVxuXHR7XG5cdFx0Ly9za3lib3ggZG8gbm90IGdldCBjb2xsZWN0ZWQgaW4gdGhlIHN0YW5kYXJkIGVudGl0eSBsaXN0XG5cdH1cblxuXHRwdWJsaWMgX2lDb2xsZWN0UmVuZGVyYWJsZShyZW5kZXJlclBvb2w6SVJlbmRlcmVyUG9vbClcblx0e1xuXG5cdH1cblxuXHRwdWJsaWMgX2lBZGRSZW5kZXJPYmplY3QocmVuZGVyT2JqZWN0OklSZW5kZXJPYmplY3QpOklSZW5kZXJPYmplY3Rcblx0e1xuXHRcdHRoaXMuX3JlbmRlck9iamVjdHMucHVzaChyZW5kZXJPYmplY3QpO1xuXG5cdFx0cmV0dXJuIHJlbmRlck9iamVjdDtcblx0fVxuXG5cdHB1YmxpYyBfaVJlbW92ZVJlbmRlck9iamVjdChyZW5kZXJPYmplY3Q6SVJlbmRlck9iamVjdCk6SVJlbmRlck9iamVjdFxuXHR7XG5cdFx0dGhpcy5fcmVuZGVyT2JqZWN0cy5zcGxpY2UodGhpcy5fcmVuZGVyT2JqZWN0cy5pbmRleE9mKHJlbmRlck9iamVjdCksIDEpO1xuXG5cdFx0cmV0dXJuIHJlbmRlck9iamVjdDtcblx0fVxuXG5cdHB1YmxpYyBfaUFkZFJlbmRlcmFibGUocmVuZGVyYWJsZTpJUmVuZGVyYWJsZSk6SVJlbmRlcmFibGVcblx0e1xuXHRcdHRoaXMuX3JlbmRlcmFibGVzLnB1c2gocmVuZGVyYWJsZSk7XG5cblx0XHRyZXR1cm4gcmVuZGVyYWJsZTtcblx0fVxuXG5cblx0cHVibGljIF9pUmVtb3ZlUmVuZGVyYWJsZShyZW5kZXJhYmxlOklSZW5kZXJhYmxlKTpJUmVuZGVyYWJsZVxuXHR7XG5cdFx0dmFyIGluZGV4Om51bWJlciA9IHRoaXMuX3JlbmRlcmFibGVzLmluZGV4T2YocmVuZGVyYWJsZSk7XG5cblx0XHR0aGlzLl9yZW5kZXJhYmxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuXG5cdFx0cmV0dXJuIHJlbmRlcmFibGU7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICogQHBhcmFtIHJlbmRlcmVyXG5cdCAqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0cHVibGljIGdldFJlbmRlck9iamVjdChyZW5kZXJhYmxlUG9vbDpJUmVuZGVyYWJsZVBvb2wpXG5cdHtcblx0XHRyZXR1cm4gcmVuZGVyYWJsZVBvb2wuZ2V0U2t5Ym94UmVuZGVyT2JqZWN0KHRoaXMpO1xuXHR9XG59XG5cbmV4cG9ydCA9IFNreWJveDsiXX0= \ No newline at end of file diff --git a/lib/entities/Skybox.ts b/lib/entities/Skybox.ts index e8d5ee1f2..bb671ed6e 100755 --- a/lib/entities/Skybox.ts +++ b/lib/entities/Skybox.ts @@ -14,7 +14,7 @@ import IRenderable = require("awayjs-display/lib/pool/IRenderable"); import IRenderablePool = require("awayjs-display/lib/pool/IRenderablePool"); import IRenderObject = require("awayjs-display/lib/pool/IRenderObject"); import SkyboxNode = require("awayjs-display/lib/partition/SkyboxNode"); -import IRenderer = require("awayjs-display/lib/render/IRenderer"); +import IRendererPool = require("awayjs-display/lib/pool/IRendererPool"); import IEntity = require("awayjs-display/lib/entities/IEntity"); import LightPickerBase = require("awayjs-display/lib/materials/lightpickers/LightPickerBase"); import MaterialBase = require("awayjs-display/lib/materials/MaterialBase"); @@ -63,7 +63,7 @@ class Skybox extends DisplayObject implements IEntity, IRenderableOwner, IRender this._pAlphaThreshold = value; - this._pInvalidateProperties(); + this._pIinvalidatePasses(); } /** @@ -81,7 +81,7 @@ class Skybox extends DisplayObject implements IEntity, IRenderableOwner, IRender this._mipmap = value; - this._pInvalidateProperties(); + this._pIinvalidatePasses(); } /** @@ -99,7 +99,7 @@ class Skybox extends DisplayObject implements IEntity, IRenderableOwner, IRender this._smooth = value; - this._pInvalidateProperties(); + this._pIinvalidatePasses(); } /** @@ -158,11 +158,11 @@ class Skybox extends DisplayObject implements IEntity, IRenderableOwner, IRender * * @private */ - public _pInvalidateProperties() + public _pIinvalidatePasses() { var len:number = this._renderObjects.length; for (var i:number = 0; i < len; i++) - this._renderObjects[i].invalidateProperties(); + this._renderObjects[i].invalidatePasses(); } /** @@ -288,12 +288,12 @@ class Skybox extends DisplayObject implements IEntity, IRenderableOwner, IRender this._renderables = new Array(); } - public _iCollectRenderables(renderer:IRenderer) + public _iCollectRenderables(rendererPool:IRendererPool) { //skybox do not get collected in the standard entity list } - public _iCollectRenderable(renderer:IRenderer) + public _iCollectRenderable(rendererPool:IRendererPool) { } diff --git a/lib/events/RenderableOwnerEvent.js b/lib/events/RenderableOwnerEvent.js new file mode 100755 index 000000000..955d7f062 --- /dev/null +++ b/lib/events/RenderableOwnerEvent.js @@ -0,0 +1,51 @@ +var __extends = this.__extends || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + __.prototype = b.prototype; + d.prototype = new __(); +}; +var Event = require("awayjs-core/lib/events/Event"); +/** + * Dispatched to notify changes in a sub geometry object's state. + * + * @class away.events.RenderableOwnerEvent + * @see away.core.base.Geometry + */ +var RenderableOwnerEvent = (function (_super) { + __extends(RenderableOwnerEvent, _super); + /** + * Create a new GeometryEvent + * @param type The event type. + * @param dataType An optional data type of the vertex data being updated. + */ + function RenderableOwnerEvent(type, renderObjectOwner) { + _super.call(this, type); + this._renderObjectOwner = renderObjectOwner; + } + Object.defineProperty(RenderableOwnerEvent.prototype, "renderObjectOwner", { + /** + * The renderobject owner of the renderable owner. + */ + get: function () { + return this._renderObjectOwner; + }, + enumerable: true, + configurable: true + }); + /** + * Clones the event. + * + * @return An exact duplicate of the current object. + */ + RenderableOwnerEvent.prototype.clone = function () { + return new RenderableOwnerEvent(this.type, this._renderObjectOwner); + }; + /** + * Dispatched when a Renderable owners's render object owner has been updated. + */ + RenderableOwnerEvent.RENDER_OBJECT_OWNER_UPDATED = "renderObjectOwnerUpdated"; + return RenderableOwnerEvent; +})(Event); +module.exports = RenderableOwnerEvent; + +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9ldmVudHMvcmVuZGVyYWJsZW93bmVyZXZlbnQudHMiXSwibmFtZXMiOlsiUmVuZGVyYWJsZU93bmVyRXZlbnQiLCJSZW5kZXJhYmxlT3duZXJFdmVudC5jb25zdHJ1Y3RvciIsIlJlbmRlcmFibGVPd25lckV2ZW50LnJlbmRlck9iamVjdE93bmVyIiwiUmVuZGVyYWJsZU93bmVyRXZlbnQuY2xvbmUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQU8sS0FBSyxXQUFnQiw4QkFBOEIsQ0FBQyxDQUFDO0FBSTVELEFBTUE7Ozs7O0dBREc7SUFDRyxvQkFBb0I7SUFBU0EsVUFBN0JBLG9CQUFvQkEsVUFBY0E7SUFTdkNBOzs7O09BSUdBO0lBQ0hBLFNBZEtBLG9CQUFvQkEsQ0FjYkEsSUFBV0EsRUFBRUEsaUJBQW9DQTtRQUU1REMsa0JBQU1BLElBQUlBLENBQUNBLENBQUNBO1FBRVpBLElBQUlBLENBQUNBLGtCQUFrQkEsR0FBR0EsaUJBQWlCQSxDQUFDQTtJQUM3Q0EsQ0FBQ0E7SUFLREQsc0JBQVdBLG1EQUFpQkE7UUFINUJBOztXQUVHQTthQUNIQTtZQUVDRSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxrQkFBa0JBLENBQUNBO1FBQ2hDQSxDQUFDQTs7O09BQUFGO0lBRURBOzs7O09BSUdBO0lBQ0lBLG9DQUFLQSxHQUFaQTtRQUVDRyxNQUFNQSxDQUFDQSxJQUFJQSxvQkFBb0JBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLEVBQUVBLElBQUlBLENBQUNBLGtCQUFrQkEsQ0FBQ0EsQ0FBQ0E7SUFDckVBLENBQUNBO0lBbkNESDs7T0FFR0E7SUFDV0EsZ0RBQTJCQSxHQUFVQSwwQkFBMEJBLENBQUNBO0lBaUMvRUEsMkJBQUNBO0FBQURBLENBdENBLEFBc0NDQSxFQXRDa0MsS0FBSyxFQXNDdkM7QUFFRCxBQUE4QixpQkFBckIsb0JBQW9CLENBQUMiLCJmaWxlIjoiZXZlbnRzL1JlbmRlcmFibGVPd25lckV2ZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFdmVudFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9ldmVudHMvRXZlbnRcIik7XG5cbmltcG9ydCBJUmVuZGVyT2JqZWN0T3duZXJcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9JUmVuZGVyT2JqZWN0T3duZXJcIik7XG5cbi8qKlxuICogRGlzcGF0Y2hlZCB0byBub3RpZnkgY2hhbmdlcyBpbiBhIHN1YiBnZW9tZXRyeSBvYmplY3QncyBzdGF0ZS5cbiAqXG4gKiBAY2xhc3MgYXdheS5ldmVudHMuUmVuZGVyYWJsZU93bmVyRXZlbnRcbiAqIEBzZWUgYXdheS5jb3JlLmJhc2UuR2VvbWV0cnlcbiAqL1xuY2xhc3MgUmVuZGVyYWJsZU93bmVyRXZlbnQgZXh0ZW5kcyBFdmVudFxue1xuXHQvKipcblx0ICogRGlzcGF0Y2hlZCB3aGVuIGEgUmVuZGVyYWJsZSBvd25lcnMncyByZW5kZXIgb2JqZWN0IG93bmVyIGhhcyBiZWVuIHVwZGF0ZWQuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIFJFTkRFUl9PQkpFQ1RfT1dORVJfVVBEQVRFRDpzdHJpbmcgPSBcInJlbmRlck9iamVjdE93bmVyVXBkYXRlZFwiO1xuXG5cdHByaXZhdGUgX3JlbmRlck9iamVjdE93bmVyOklSZW5kZXJPYmplY3RPd25lcjtcblxuXHQvKipcblx0ICogQ3JlYXRlIGEgbmV3IEdlb21ldHJ5RXZlbnRcblx0ICogQHBhcmFtIHR5cGUgVGhlIGV2ZW50IHR5cGUuXG5cdCAqIEBwYXJhbSBkYXRhVHlwZSBBbiBvcHRpb25hbCBkYXRhIHR5cGUgb2YgdGhlIHZlcnRleCBkYXRhIGJlaW5nIHVwZGF0ZWQuXG5cdCAqL1xuXHRjb25zdHJ1Y3Rvcih0eXBlOnN0cmluZywgcmVuZGVyT2JqZWN0T3duZXI6SVJlbmRlck9iamVjdE93bmVyKVxuXHR7XG5cdFx0c3VwZXIodHlwZSk7XG5cblx0XHR0aGlzLl9yZW5kZXJPYmplY3RPd25lciA9IHJlbmRlck9iamVjdE93bmVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSByZW5kZXJvYmplY3Qgb3duZXIgb2YgdGhlIHJlbmRlcmFibGUgb3duZXIuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHJlbmRlck9iamVjdE93bmVyKCk6SVJlbmRlck9iamVjdE93bmVyXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcmVuZGVyT2JqZWN0T3duZXI7XG5cdH1cblxuXHQvKipcblx0ICogQ2xvbmVzIHRoZSBldmVudC5cblx0ICpcblx0ICogQHJldHVybiBBbiBleGFjdCBkdXBsaWNhdGUgb2YgdGhlIGN1cnJlbnQgb2JqZWN0LlxuXHQgKi9cblx0cHVibGljIGNsb25lKCk6RXZlbnRcblx0e1xuXHRcdHJldHVybiBuZXcgUmVuZGVyYWJsZU93bmVyRXZlbnQodGhpcy50eXBlLCB0aGlzLl9yZW5kZXJPYmplY3RPd25lcik7XG5cdH1cbn1cblxuZXhwb3J0ID0gUmVuZGVyYWJsZU93bmVyRXZlbnQ7Il19 \ No newline at end of file diff --git a/lib/events/RenderableOwnerEvent.ts b/lib/events/RenderableOwnerEvent.ts new file mode 100644 index 000000000..096f8458b --- /dev/null +++ b/lib/events/RenderableOwnerEvent.ts @@ -0,0 +1,51 @@ +import Event = require("awayjs-core/lib/events/Event"); + +import IRenderObjectOwner = require("awayjs-display/lib/base/IRenderObjectOwner"); + +/** + * Dispatched to notify changes in a sub geometry object's state. + * + * @class away.events.RenderableOwnerEvent + * @see away.core.base.Geometry + */ +class RenderableOwnerEvent extends Event +{ + /** + * Dispatched when a Renderable owners's render object owner has been updated. + */ + public static RENDER_OBJECT_OWNER_UPDATED:string = "renderObjectOwnerUpdated"; + + private _renderObjectOwner:IRenderObjectOwner; + + /** + * Create a new GeometryEvent + * @param type The event type. + * @param dataType An optional data type of the vertex data being updated. + */ + constructor(type:string, renderObjectOwner:IRenderObjectOwner) + { + super(type); + + this._renderObjectOwner = renderObjectOwner; + } + + /** + * The renderobject owner of the renderable owner. + */ + public get renderObjectOwner():IRenderObjectOwner + { + return this._renderObjectOwner; + } + + /** + * Clones the event. + * + * @return An exact duplicate of the current object. + */ + public clone():Event + { + return new RenderableOwnerEvent(this.type, this._renderObjectOwner); + } +} + +export = RenderableOwnerEvent; \ No newline at end of file diff --git a/lib/materials/BasicMaterial.js b/lib/materials/BasicMaterial.js index ecb72b52e..cb48db68d 100755 --- a/lib/materials/BasicMaterial.js +++ b/lib/materials/BasicMaterial.js @@ -18,8 +18,6 @@ var BasicMaterial = (function (_super) { if (repeat === void 0) { repeat = false; } if (mipmap === void 0) { mipmap = false; } _super.call(this); - this._alphaBlending = false; - this._alpha = 1; if (textureColor instanceof Texture2DBase) { this.texture = textureColor; this.smooth = (smoothAlpha == null) ? true : false; @@ -31,45 +29,17 @@ var BasicMaterial = (function (_super) { this.alpha = (smoothAlpha == null) ? 1 : Number(smoothAlpha); } } - Object.defineProperty(BasicMaterial.prototype, "alpha", { - /** - * The alpha of the surface. - */ - get: function () { - return this._alpha; - }, - set: function (value) { - if (value > 1) - value = 1; - else if (value < 0) - value = 0; - if (this._alpha == value) - return; - this._alpha = value; - this._pInvalidateProperties(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(BasicMaterial.prototype, "alphaBlending", { - /** - * Indicates whether or not the material has transparency. If binary transparency is sufficient, for - * example when using textures of foliage, consider using alphaThreshold instead. - */ - get: function () { - return this._alphaBlending; - }, - set: function (value) { - if (this._alphaBlending == value) - return; - this._alphaBlending = value; - this._pInvalidateProperties(); - }, - enumerable: true, - configurable: true - }); + /** + * + * @param renderer + * + * @internal + */ + BasicMaterial.prototype.getRenderObject = function (renderablePool) { + return renderablePool.getMaterialRenderObject(this); + }; return BasicMaterial; })(MaterialBase); module.exports = BasicMaterial; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9tYXRlcmlhbHMvYmFzaWNtYXRlcmlhbC50cyJdLCJuYW1lcyI6WyJCYXNpY01hdGVyaWFsIiwiQmFzaWNNYXRlcmlhbC5jb25zdHJ1Y3RvciIsIkJhc2ljTWF0ZXJpYWwuYWxwaGEiLCJCYXNpY01hdGVyaWFsLmFscGhhQmxlbmRpbmciXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQU8sYUFBYSxXQUFjLHdDQUF3QyxDQUFDLENBQUM7QUFHNUUsSUFBTyxZQUFZLFdBQWUsMkNBQTJDLENBQUMsQ0FBQztBQUkvRSxBQUlBOzs7R0FERztJQUNHLGFBQWE7SUFBU0EsVUFBdEJBLGFBQWFBLFVBQXFCQTtJQWV2Q0EsU0FmS0EsYUFBYUEsQ0FlTkEsWUFBdUJBLEVBQUVBLFdBQXNCQSxFQUFFQSxNQUFzQkEsRUFBRUEsTUFBc0JBO1FBQS9GQyw0QkFBdUJBLEdBQXZCQSxtQkFBdUJBO1FBQUVBLDJCQUFzQkEsR0FBdEJBLGtCQUFzQkE7UUFBRUEsc0JBQXNCQSxHQUF0QkEsY0FBc0JBO1FBQUVBLHNCQUFzQkEsR0FBdEJBLGNBQXNCQTtRQUUxR0EsaUJBQU9BLENBQUNBO1FBZkRBLG1CQUFjQSxHQUFXQSxLQUFLQSxDQUFDQTtRQUMvQkEsV0FBTUEsR0FBVUEsQ0FBQ0EsQ0FBQ0E7UUFnQnpCQSxFQUFFQSxDQUFDQSxDQUFDQSxZQUFZQSxZQUFZQSxhQUFhQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUMzQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsR0FBbUJBLFlBQVlBLENBQUNBO1lBRTVDQSxJQUFJQSxDQUFDQSxNQUFNQSxHQUFHQSxDQUFDQSxXQUFXQSxJQUFJQSxJQUFJQSxDQUFDQSxHQUFFQSxJQUFJQSxHQUFHQSxLQUFLQSxDQUFDQTtZQUNsREEsSUFBSUEsQ0FBQ0EsTUFBTUEsR0FBR0EsTUFBTUEsQ0FBQ0E7WUFDckJBLElBQUlBLENBQUNBLE1BQU1BLEdBQUdBLE1BQU1BLENBQUNBO1FBQ3RCQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUNQQSxJQUFJQSxDQUFDQSxLQUFLQSxHQUFHQSxZQUFZQSxHQUFFQSxNQUFNQSxDQUFDQSxZQUFZQSxDQUFDQSxHQUFHQSxRQUFRQSxDQUFDQTtZQUMzREEsSUFBSUEsQ0FBQ0EsS0FBS0EsR0FBR0EsQ0FBQ0EsV0FBV0EsSUFBSUEsSUFBSUEsQ0FBQ0EsR0FBRUEsQ0FBQ0EsR0FBR0EsTUFBTUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7UUFDN0RBLENBQUNBO0lBQ0ZBLENBQUNBO0lBS0RELHNCQUFXQSxnQ0FBS0E7UUFIaEJBOztXQUVHQTthQUNIQTtZQUVDRSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQTtRQUNwQkEsQ0FBQ0E7YUFFREYsVUFBaUJBLEtBQVlBO1lBRTVCRSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxHQUFHQSxDQUFDQSxDQUFDQTtnQkFDYkEsS0FBS0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFDWEEsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2xCQSxLQUFLQSxHQUFHQSxDQUFDQSxDQUFDQTtZQUVYQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxJQUFJQSxLQUFLQSxDQUFDQTtnQkFDeEJBLE1BQU1BLENBQUNBO1lBRVJBLElBQUlBLENBQUNBLE1BQU1BLEdBQUdBLEtBQUtBLENBQUNBO1lBRXBCQSxJQUFJQSxDQUFDQSxzQkFBc0JBLEVBQUVBLENBQUNBO1FBQy9CQSxDQUFDQTs7O09BZkFGO0lBcUJEQSxzQkFBV0Esd0NBQWFBO1FBSnhCQTs7O1dBR0dBO2FBQ0hBO1lBRUNHLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLGNBQWNBLENBQUNBO1FBQzVCQSxDQUFDQTthQUVESCxVQUF5QkEsS0FBYUE7WUFFckNHLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLGNBQWNBLElBQUlBLEtBQUtBLENBQUNBO2dCQUNoQ0EsTUFBTUEsQ0FBQ0E7WUFFUkEsSUFBSUEsQ0FBQ0EsY0FBY0EsR0FBR0EsS0FBS0EsQ0FBQ0E7WUFFNUJBLElBQUlBLENBQUNBLHNCQUFzQkEsRUFBRUEsQ0FBQ0E7UUFDL0JBLENBQUNBOzs7T0FWQUg7SUFXRkEsb0JBQUNBO0FBQURBLENBeEVBLEFBd0VDQSxFQXhFMkIsWUFBWSxFQXdFdkM7QUFFRCxBQUF1QixpQkFBZCxhQUFhLENBQUMiLCJmaWxlIjoibWF0ZXJpYWxzL0Jhc2ljTWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hdHJpeFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL01hdHJpeFwiKTtcbmltcG9ydCBNYXRyaXgzRFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL01hdHJpeDNEXCIpO1xuaW1wb3J0IE1hdHJpeDNEVXRpbHNcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL01hdHJpeDNEVXRpbHNcIik7XG5pbXBvcnQgVGV4dHVyZTJEQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL3RleHR1cmVzL1RleHR1cmUyREJhc2VcIik7XG5cbmltcG9ydCBCbGVuZE1vZGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvQmxlbmRNb2RlXCIpO1xuaW1wb3J0IE1hdGVyaWFsQmFzZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvbWF0ZXJpYWxzL01hdGVyaWFsQmFzZVwiKTtcbmltcG9ydCBUcmlhbmdsZVN1Ykdlb21ldHJ5XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvVHJpYW5nbGVTdWJHZW9tZXRyeVwiKTtcbmltcG9ydCBDYW1lcmFcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvQ2FtZXJhXCIpO1xuXG4vKipcbiAqIEJhc2ljTWF0ZXJpYWwgZm9ybXMgYW4gYWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgdGhlIGRlZmF1bHQgc2hhZGVkIG1hdGVyaWFscyBwcm92aWRlZCBieSBTdGFnZSxcbiAqIHVzaW5nIG1hdGVyaWFsIG1ldGhvZHMgdG8gZGVmaW5lIHRoZWlyIGFwcGVhcmFuY2UuXG4gKi9cbmNsYXNzIEJhc2ljTWF0ZXJpYWwgZXh0ZW5kcyBNYXRlcmlhbEJhc2Vcbntcblx0cHJpdmF0ZSBfYWxwaGFCbGVuZGluZzpib29sZWFuID0gZmFsc2U7XG5cdHByaXZhdGUgX2FscGhhOm51bWJlciA9IDE7XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBuZXcgQmFzaWNNYXRlcmlhbCBvYmplY3QuXG5cdCAqXG5cdCAqIEBwYXJhbSB0ZXh0dXJlIFRoZSB0ZXh0dXJlIHVzZWQgZm9yIHRoZSBtYXRlcmlhbCdzIGFsYmVkbyBjb2xvci5cblx0ICogQHBhcmFtIHNtb290aCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGV4dHVyZSBzaG91bGQgYmUgZmlsdGVyZWQgd2hlbiBzYW1wbGVkLiBEZWZhdWx0cyB0byB0cnVlLlxuXHQgKiBAcGFyYW0gcmVwZWF0IEluZGljYXRlcyB3aGV0aGVyIHRoZSB0ZXh0dXJlIHNob3VsZCBiZSB0aWxlZCB3aGVuIHNhbXBsZWQuIERlZmF1bHRzIHRvIGZhbHNlLlxuXHQgKiBAcGFyYW0gbWlwbWFwIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbnkgdXNlZCB0ZXh0dXJlcyBzaG91bGQgdXNlIG1pcG1hcHBpbmcuIERlZmF1bHRzIHRvIGZhbHNlLlxuXHQgKi9cblx0Y29uc3RydWN0b3IodGV4dHVyZT86VGV4dHVyZTJEQmFzZSwgc21vb3RoPzpib29sZWFuLCByZXBlYXQ/OmJvb2xlYW4sIG1pcG1hcD86Ym9vbGVhbik7XG5cdGNvbnN0cnVjdG9yKGNvbG9yPzpudW1iZXIsIGFscGhhPzpudW1iZXIpO1xuXHRjb25zdHJ1Y3Rvcih0ZXh0dXJlQ29sb3I6YW55ID0gbnVsbCwgc21vb3RoQWxwaGE6YW55ID0gbnVsbCwgcmVwZWF0OmJvb2xlYW4gPSBmYWxzZSwgbWlwbWFwOmJvb2xlYW4gPSBmYWxzZSlcblx0e1xuXHRcdHN1cGVyKCk7XG5cblx0XHRpZiAodGV4dHVyZUNvbG9yIGluc3RhbmNlb2YgVGV4dHVyZTJEQmFzZSkge1xuXHRcdFx0dGhpcy50ZXh0dXJlID0gPFRleHR1cmUyREJhc2U+IHRleHR1cmVDb2xvcjtcblxuXHRcdFx0dGhpcy5zbW9vdGggPSAoc21vb3RoQWxwaGEgPT0gbnVsbCk/IHRydWUgOiBmYWxzZTtcblx0XHRcdHRoaXMucmVwZWF0ID0gcmVwZWF0O1xuXHRcdFx0dGhpcy5taXBtYXAgPSBtaXBtYXA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuY29sb3IgPSB0ZXh0dXJlQ29sb3I/IE51bWJlcih0ZXh0dXJlQ29sb3IpIDogMHhDQ0NDQ0M7XG5cdFx0XHR0aGlzLmFscGhhID0gKHNtb290aEFscGhhID09IG51bGwpPyAxIDogTnVtYmVyKHNtb290aEFscGhhKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGFscGhhIG9mIHRoZSBzdXJmYWNlLlxuXHQgKi9cblx0cHVibGljIGdldCBhbHBoYSgpOm51bWJlclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2FscGhhO1xuXHR9XG5cblx0cHVibGljIHNldCBhbHBoYSh2YWx1ZTpudW1iZXIpXG5cdHtcblx0XHRpZiAodmFsdWUgPiAxKVxuXHRcdFx0dmFsdWUgPSAxO1xuXHRcdGVsc2UgaWYgKHZhbHVlIDwgMClcblx0XHRcdHZhbHVlID0gMDtcblxuXHRcdGlmICh0aGlzLl9hbHBoYSA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX2FscGhhID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVByb3BlcnRpZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIG1hdGVyaWFsIGhhcyB0cmFuc3BhcmVuY3kuIElmIGJpbmFyeSB0cmFuc3BhcmVuY3kgaXMgc3VmZmljaWVudCwgZm9yXG5cdCAqIGV4YW1wbGUgd2hlbiB1c2luZyB0ZXh0dXJlcyBvZiBmb2xpYWdlLCBjb25zaWRlciB1c2luZyBhbHBoYVRocmVzaG9sZCBpbnN0ZWFkLlxuXHQgKi9cblx0cHVibGljIGdldCBhbHBoYUJsZW5kaW5nKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2FscGhhQmxlbmRpbmc7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGFscGhhQmxlbmRpbmcodmFsdWU6Ym9vbGVhbilcblx0e1xuXHRcdGlmICh0aGlzLl9hbHBoYUJsZW5kaW5nID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fYWxwaGFCbGVuZGluZyA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVQcm9wZXJ0aWVzKCk7XG5cdH1cbn1cblxuZXhwb3J0ID0gQmFzaWNNYXRlcmlhbDsiXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9tYXRlcmlhbHMvYmFzaWNtYXRlcmlhbC50cyJdLCJuYW1lcyI6WyJCYXNpY01hdGVyaWFsIiwiQmFzaWNNYXRlcmlhbC5jb25zdHJ1Y3RvciIsIkJhc2ljTWF0ZXJpYWwuZ2V0UmVuZGVyT2JqZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFPLGFBQWEsV0FBYyx3Q0FBd0MsQ0FBQyxDQUFDO0FBRzVFLElBQU8sWUFBWSxXQUFlLDJDQUEyQyxDQUFDLENBQUM7QUFJL0UsQUFJQTs7O0dBREc7SUFDRyxhQUFhO0lBQVNBLFVBQXRCQSxhQUFhQSxVQUFxQkE7SUFZdkNBLFNBWktBLGFBQWFBLENBWU5BLFlBQXVCQSxFQUFFQSxXQUFzQkEsRUFBRUEsTUFBc0JBLEVBQUVBLE1BQXNCQTtRQUEvRkMsNEJBQXVCQSxHQUF2QkEsbUJBQXVCQTtRQUFFQSwyQkFBc0JBLEdBQXRCQSxrQkFBc0JBO1FBQUVBLHNCQUFzQkEsR0FBdEJBLGNBQXNCQTtRQUFFQSxzQkFBc0JBLEdBQXRCQSxjQUFzQkE7UUFFMUdBLGlCQUFPQSxDQUFDQTtRQUVSQSxFQUFFQSxDQUFDQSxDQUFDQSxZQUFZQSxZQUFZQSxhQUFhQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUMzQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsR0FBbUJBLFlBQVlBLENBQUNBO1lBRTVDQSxJQUFJQSxDQUFDQSxNQUFNQSxHQUFHQSxDQUFDQSxXQUFXQSxJQUFJQSxJQUFJQSxDQUFDQSxHQUFFQSxJQUFJQSxHQUFHQSxLQUFLQSxDQUFDQTtZQUNsREEsSUFBSUEsQ0FBQ0EsTUFBTUEsR0FBR0EsTUFBTUEsQ0FBQ0E7WUFDckJBLElBQUlBLENBQUNBLE1BQU1BLEdBQUdBLE1BQU1BLENBQUNBO1FBQ3RCQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUNQQSxJQUFJQSxDQUFDQSxLQUFLQSxHQUFHQSxZQUFZQSxHQUFFQSxNQUFNQSxDQUFDQSxZQUFZQSxDQUFDQSxHQUFHQSxRQUFRQSxDQUFDQTtZQUMzREEsSUFBSUEsQ0FBQ0EsS0FBS0EsR0FBR0EsQ0FBQ0EsV0FBV0EsSUFBSUEsSUFBSUEsQ0FBQ0EsR0FBRUEsQ0FBQ0EsR0FBR0EsTUFBTUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7UUFDN0RBLENBQUNBO0lBQ0ZBLENBQUNBO0lBRUREOzs7OztPQUtHQTtJQUNJQSx1Q0FBZUEsR0FBdEJBLFVBQXVCQSxjQUE4QkE7UUFFcERFLE1BQU1BLENBQUNBLGNBQWNBLENBQUNBLHVCQUF1QkEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7SUFDckRBLENBQUNBO0lBQ0ZGLG9CQUFDQTtBQUFEQSxDQXRDQSxBQXNDQ0EsRUF0QzJCLFlBQVksRUFzQ3ZDO0FBRUQsQUFBdUIsaUJBQWQsYUFBYSxDQUFDIiwiZmlsZSI6Im1hdGVyaWFscy9CYXNpY01hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZXh0dXJlMkRCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvdGV4dHVyZXMvVGV4dHVyZTJEQmFzZVwiKTtcblxuaW1wb3J0IElSZW5kZXJPYmplY3RPd25lclx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL0lSZW5kZXJPYmplY3RPd25lclwiKTtcbmltcG9ydCBNYXRlcmlhbEJhc2VcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9NYXRlcmlhbEJhc2VcIik7XG5pbXBvcnQgSVJlbmRlcmFibGVQb29sXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcG9vbC9JUmVuZGVyYWJsZVBvb2xcIik7XG5pbXBvcnQgSVJlbmRlck9iamVjdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3Bvb2wvSVJlbmRlck9iamVjdFwiKTtcblxuLyoqXG4gKiBCYXNpY01hdGVyaWFsIGZvcm1zIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIHRoZSBkZWZhdWx0IHNoYWRlZCBtYXRlcmlhbHMgcHJvdmlkZWQgYnkgU3RhZ2UsXG4gKiB1c2luZyBtYXRlcmlhbCBtZXRob2RzIHRvIGRlZmluZSB0aGVpciBhcHBlYXJhbmNlLlxuICovXG5jbGFzcyBCYXNpY01hdGVyaWFsIGV4dGVuZHMgTWF0ZXJpYWxCYXNlIGltcGxlbWVudHMgSVJlbmRlck9iamVjdE93bmVyXG57XG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgbmV3IEJhc2ljTWF0ZXJpYWwgb2JqZWN0LlxuXHQgKlxuXHQgKiBAcGFyYW0gdGV4dHVyZSBUaGUgdGV4dHVyZSB1c2VkIGZvciB0aGUgbWF0ZXJpYWwncyBhbGJlZG8gY29sb3IuXG5cdCAqIEBwYXJhbSBzbW9vdGggSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRleHR1cmUgc2hvdWxkIGJlIGZpbHRlcmVkIHdoZW4gc2FtcGxlZC4gRGVmYXVsdHMgdG8gdHJ1ZS5cblx0ICogQHBhcmFtIHJlcGVhdCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGV4dHVyZSBzaG91bGQgYmUgdGlsZWQgd2hlbiBzYW1wbGVkLiBEZWZhdWx0cyB0byBmYWxzZS5cblx0ICogQHBhcmFtIG1pcG1hcCBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW55IHVzZWQgdGV4dHVyZXMgc2hvdWxkIHVzZSBtaXBtYXBwaW5nLiBEZWZhdWx0cyB0byBmYWxzZS5cblx0ICovXG5cdGNvbnN0cnVjdG9yKHRleHR1cmU/OlRleHR1cmUyREJhc2UsIHNtb290aD86Ym9vbGVhbiwgcmVwZWF0Pzpib29sZWFuLCBtaXBtYXA/OmJvb2xlYW4pO1xuXHRjb25zdHJ1Y3Rvcihjb2xvcj86bnVtYmVyLCBhbHBoYT86bnVtYmVyKTtcblx0Y29uc3RydWN0b3IodGV4dHVyZUNvbG9yOmFueSA9IG51bGwsIHNtb290aEFscGhhOmFueSA9IG51bGwsIHJlcGVhdDpib29sZWFuID0gZmFsc2UsIG1pcG1hcDpib29sZWFuID0gZmFsc2UpXG5cdHtcblx0XHRzdXBlcigpO1xuXG5cdFx0aWYgKHRleHR1cmVDb2xvciBpbnN0YW5jZW9mIFRleHR1cmUyREJhc2UpIHtcblx0XHRcdHRoaXMudGV4dHVyZSA9IDxUZXh0dXJlMkRCYXNlPiB0ZXh0dXJlQ29sb3I7XG5cblx0XHRcdHRoaXMuc21vb3RoID0gKHNtb290aEFscGhhID09IG51bGwpPyB0cnVlIDogZmFsc2U7XG5cdFx0XHR0aGlzLnJlcGVhdCA9IHJlcGVhdDtcblx0XHRcdHRoaXMubWlwbWFwID0gbWlwbWFwO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmNvbG9yID0gdGV4dHVyZUNvbG9yPyBOdW1iZXIodGV4dHVyZUNvbG9yKSA6IDB4Q0NDQ0NDO1xuXHRcdFx0dGhpcy5hbHBoYSA9IChzbW9vdGhBbHBoYSA9PSBudWxsKT8gMSA6IE51bWJlcihzbW9vdGhBbHBoYSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSByZW5kZXJlclxuXHQgKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdHB1YmxpYyBnZXRSZW5kZXJPYmplY3QocmVuZGVyYWJsZVBvb2w6SVJlbmRlcmFibGVQb29sKTpJUmVuZGVyT2JqZWN0XG5cdHtcblx0XHRyZXR1cm4gcmVuZGVyYWJsZVBvb2wuZ2V0TWF0ZXJpYWxSZW5kZXJPYmplY3QodGhpcyk7XG5cdH1cbn1cblxuZXhwb3J0ID0gQmFzaWNNYXRlcmlhbDsiXX0= \ No newline at end of file diff --git a/lib/materials/BasicMaterial.ts b/lib/materials/BasicMaterial.ts index 191e519bf..332bd40a1 100644 --- a/lib/materials/BasicMaterial.ts +++ b/lib/materials/BasicMaterial.ts @@ -1,22 +1,16 @@ -import Matrix = require("awayjs-core/lib/geom/Matrix"); -import Matrix3D = require("awayjs-core/lib/geom/Matrix3D"); -import Matrix3DUtils = require("awayjs-core/lib/geom/Matrix3DUtils"); import Texture2DBase = require("awayjs-core/lib/textures/Texture2DBase"); -import BlendMode = require("awayjs-display/lib/base/BlendMode"); +import IRenderObjectOwner = require("awayjs-display/lib/base/IRenderObjectOwner"); import MaterialBase = require("awayjs-display/lib/materials/MaterialBase"); -import TriangleSubGeometry = require("awayjs-display/lib/base/TriangleSubGeometry"); -import Camera = require("awayjs-display/lib/entities/Camera"); +import IRenderablePool = require("awayjs-display/lib/pool/IRenderablePool"); +import IRenderObject = require("awayjs-display/lib/pool/IRenderObject"); /** * BasicMaterial forms an abstract base class for the default shaded materials provided by Stage, * using material methods to define their appearance. */ -class BasicMaterial extends MaterialBase +class BasicMaterial extends MaterialBase implements IRenderObjectOwner { - private _alphaBlending:boolean = false; - private _alpha:number = 1; - /** * Creates a new BasicMaterial object. * @@ -44,45 +38,14 @@ class BasicMaterial extends MaterialBase } /** - * The alpha of the surface. - */ - public get alpha():number - { - return this._alpha; - } - - public set alpha(value:number) - { - if (value > 1) - value = 1; - else if (value < 0) - value = 0; - - if (this._alpha == value) - return; - - this._alpha = value; - - this._pInvalidateProperties(); - } - - /** - * Indicates whether or not the material has transparency. If binary transparency is sufficient, for - * example when using textures of foliage, consider using alphaThreshold instead. + * + * @param renderer + * + * @internal */ - public get alphaBlending():boolean + public getRenderObject(renderablePool:IRenderablePool):IRenderObject { - return this._alphaBlending; - } - - public set alphaBlending(value:boolean) - { - if (this._alphaBlending == value) - return; - - this._alphaBlending = value; - - this._pInvalidateProperties(); + return renderablePool.getMaterialRenderObject(this); } } diff --git a/lib/materials/MaterialBase.js b/lib/materials/MaterialBase.js index 088fc6482..e9ed90fc6 100755 --- a/lib/materials/MaterialBase.js +++ b/lib/materials/MaterialBase.js @@ -4,10 +4,14 @@ var __extends = this.__extends || function (d, b) { __.prototype = b.prototype; d.prototype = new __(); }; +var ColorTransform = require("awayjs-core/lib/geom/ColorTransform"); +var AbstractMethodError = require("awayjs-core/lib/errors/AbstractMethodError"); var Event = require("awayjs-core/lib/events/Event"); +var AssetType = require("awayjs-core/lib/library/AssetType"); var NamedAssetBase = require("awayjs-core/lib/library/NamedAssetBase"); var BlendMode = require("awayjs-display/lib/base/BlendMode"); var MaterialEvent = require("awayjs-display/lib/events/MaterialEvent"); +var RenderableOwnerEvent = require("awayjs-display/lib/events/RenderableOwnerEvent"); /** * MaterialBase forms an abstract base class for any material. * A material consists of several passes, each of which constitutes at least one render call. Several passes could @@ -27,6 +31,8 @@ var MaterialBase = (function (_super) { function MaterialBase() { var _this = this; _super.call(this); + this._alphaBlending = false; + this._alpha = 1; this._renderObjects = new Array(); this._pAlphaThreshold = 0; this._pAnimateUVs = false; @@ -53,6 +59,71 @@ var MaterialBase = (function (_super) { this._onLightChangeDelegate = function (event) { return _this.onLightsChange(event); }; this.alphaPremultiplied = false; //TODO: work out why this is different for WebGL } + Object.defineProperty(MaterialBase.prototype, "assetType", { + /** + * + */ + get: function () { + return AssetType.MATERIAL; + ; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(MaterialBase.prototype, "alpha", { + /** + * The alpha of the surface. + */ + get: function () { + return this._alpha; + }, + set: function (value) { + if (value > 1) + value = 1; + else if (value < 0) + value = 0; + if (this._alpha == value) + return; + this._alpha = value; + if (this._colorTransform == null) + this._colorTransform = new ColorTransform(); + this._colorTransform.alphaMultiplier = value; + this._pInvalidateRenderObject(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(MaterialBase.prototype, "colorTransform", { + /** + * The ColorTransform object to transform the colour of the material with. Defaults to null. + */ + get: function () { + return this._colorTransform; + }, + set: function (value) { + this._colorTransform = value; + this._pInvalidateRenderObject(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(MaterialBase.prototype, "alphaBlending", { + /** + * Indicates whether or not the material has transparency. If binary transparency is sufficient, for + * example when using textures of foliage, consider using alphaThreshold instead. + */ + get: function () { + return this._alphaBlending; + }, + set: function (value) { + if (this._alphaBlending == value) + return; + this._alphaBlending = value; + this._pInvalidateRenderObject(); + }, + enumerable: true, + configurable: true + }); Object.defineProperty(MaterialBase.prototype, "height", { /** * @@ -107,7 +178,7 @@ var MaterialBase = (function (_super) { if (this._mipmap == value) return; this._mipmap = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); }, enumerable: true, configurable: true @@ -123,7 +194,7 @@ var MaterialBase = (function (_super) { if (this._smooth == value) return; this._smooth = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); }, enumerable: true, configurable: true @@ -140,7 +211,7 @@ var MaterialBase = (function (_super) { if (this._repeat == value) return; this._repeat = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); }, enumerable: true, configurable: true @@ -156,7 +227,7 @@ var MaterialBase = (function (_super) { if (this._color == value) return; this._color = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); }, enumerable: true, configurable: true @@ -172,7 +243,7 @@ var MaterialBase = (function (_super) { if (this._pTexture == value) return; this._pTexture = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); this._pHeight = this._pTexture.height; this._pWidth = this._pTexture.width; this._pNotifySizeChanged(); @@ -191,7 +262,7 @@ var MaterialBase = (function (_super) { if (this._pAnimateUVs == value) return; this._pAnimateUVs = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); }, enumerable: true, configurable: true @@ -208,7 +279,7 @@ var MaterialBase = (function (_super) { if (this._enableLightFallOff == value) return; this._enableLightFallOff = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); }, enumerable: true, configurable: true @@ -227,7 +298,7 @@ var MaterialBase = (function (_super) { if (this._diffuseLightSources == value) return; this._diffuseLightSources = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); }, enumerable: true, configurable: true @@ -246,7 +317,7 @@ var MaterialBase = (function (_super) { if (this._specularLightSources == value) return; this._specularLightSources = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); }, enumerable: true, configurable: true @@ -274,7 +345,7 @@ var MaterialBase = (function (_super) { if (this._bothSides = value) return; this._bothSides = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); }, enumerable: true, configurable: true @@ -315,7 +386,7 @@ var MaterialBase = (function (_super) { if (this._alphaPremultiplied == value) return; this._alphaPremultiplied = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); }, enumerable: true, configurable: true @@ -337,7 +408,7 @@ var MaterialBase = (function (_super) { if (this._pAlphaThreshold == value) return; this._pAlphaThreshold = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); }, enumerable: true, configurable: true @@ -381,6 +452,7 @@ var MaterialBase = (function (_super) { } } } + owner.dispatchEvent(new RenderableOwnerEvent(RenderableOwnerEvent.RENDER_OBJECT_OWNER_UPDATED, this)); }; /** * Removes an IRenderableOwner as owner. @@ -394,6 +466,7 @@ var MaterialBase = (function (_super) { this._animationSet = null; this.invalidateAnimation(); } + owner.dispatchEvent(new RenderableOwnerEvent(RenderableOwnerEvent.RENDER_OBJECT_OWNER_UPDATED, this)); }; Object.defineProperty(MaterialBase.prototype, "iOwners", { /** @@ -412,10 +485,10 @@ var MaterialBase = (function (_super) { * * @private */ - MaterialBase.prototype._pInvalidateProperties = function () { + MaterialBase.prototype._pInvalidatePasses = function () { var len = this._renderObjects.length; for (var i = 0; i < len; i++) - this._renderObjects[i].invalidateProperties(); + this._renderObjects[i].invalidatePasses(); }; MaterialBase.prototype.invalidateAnimation = function () { var len = this._renderObjects.length; @@ -453,10 +526,10 @@ var MaterialBase = (function (_super) { * @internal */ MaterialBase.prototype.getRenderObject = function (renderablePool) { - return renderablePool.getMaterialRenderObject(this); + throw new AbstractMethodError(); }; return MaterialBase; })(NamedAssetBase); module.exports = MaterialBase; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9tYXRlcmlhbHMvbWF0ZXJpYWxiYXNlLnRzIl0sIm5hbWVzIjpbIk1hdGVyaWFsQmFzZSIsIk1hdGVyaWFsQmFzZS5jb25zdHJ1Y3RvciIsIk1hdGVyaWFsQmFzZS5oZWlnaHQiLCJNYXRlcmlhbEJhc2UuYW5pbWF0aW9uU2V0IiwiTWF0ZXJpYWxCYXNlLmxpZ2h0UGlja2VyIiwiTWF0ZXJpYWxCYXNlLm1pcG1hcCIsIk1hdGVyaWFsQmFzZS5zbW9vdGgiLCJNYXRlcmlhbEJhc2UucmVwZWF0IiwiTWF0ZXJpYWxCYXNlLmNvbG9yIiwiTWF0ZXJpYWxCYXNlLnRleHR1cmUiLCJNYXRlcmlhbEJhc2UuYW5pbWF0ZVVWcyIsIk1hdGVyaWFsQmFzZS5lbmFibGVMaWdodEZhbGxPZmYiLCJNYXRlcmlhbEJhc2UuZGlmZnVzZUxpZ2h0U291cmNlcyIsIk1hdGVyaWFsQmFzZS5zcGVjdWxhckxpZ2h0U291cmNlcyIsIk1hdGVyaWFsQmFzZS5kaXNwb3NlIiwiTWF0ZXJpYWxCYXNlLmJvdGhTaWRlcyIsIk1hdGVyaWFsQmFzZS5ibGVuZE1vZGUiLCJNYXRlcmlhbEJhc2UuYWxwaGFQcmVtdWx0aXBsaWVkIiwiTWF0ZXJpYWxCYXNlLmFscGhhVGhyZXNob2xkIiwiTWF0ZXJpYWxCYXNlLndpZHRoIiwiTWF0ZXJpYWxCYXNlLmlBZGRPd25lciIsIk1hdGVyaWFsQmFzZS5pUmVtb3ZlT3duZXIiLCJNYXRlcmlhbEJhc2UuaU93bmVycyIsIk1hdGVyaWFsQmFzZS5fcEludmFsaWRhdGVQcm9wZXJ0aWVzIiwiTWF0ZXJpYWxCYXNlLmludmFsaWRhdGVBbmltYXRpb24iLCJNYXRlcmlhbEJhc2UuX3BJbnZhbGlkYXRlUmVuZGVyT2JqZWN0IiwiTWF0ZXJpYWxCYXNlLm9uTGlnaHRzQ2hhbmdlIiwiTWF0ZXJpYWxCYXNlLl9wTm90aWZ5U2l6ZUNoYW5nZWQiLCJNYXRlcmlhbEJhc2UuX2lBZGRSZW5kZXJPYmplY3QiLCJNYXRlcmlhbEJhc2UuX2lSZW1vdmVSZW5kZXJPYmplY3QiLCJNYXRlcmlhbEJhc2UuZ2V0UmVuZGVyT2JqZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFPLEtBQUssV0FBZ0IsOEJBQThCLENBQUMsQ0FBQztBQUc1RCxJQUFPLGNBQWMsV0FBYyx3Q0FBd0MsQ0FBQyxDQUFDO0FBSzdFLElBQU8sU0FBUyxXQUFlLG1DQUFtQyxDQUFDLENBQUM7QUFNcEUsSUFBTyxhQUFhLFdBQWMseUNBQXlDLENBQUMsQ0FBQztBQUs3RSxBQVdBOzs7Ozs7Ozs7O0dBREc7SUFDRyxZQUFZO0lBQVNBLFVBQXJCQSxZQUFZQSxVQUF1QkE7SUE0RHhDQTs7T0FFR0E7SUFDSEEsU0EvREtBLFlBQVlBO1FBQWxCQyxpQkF3aEJDQTtRQXZkQ0EsaUJBQU9BLENBQUNBO1FBOUREQSxtQkFBY0EsR0FBd0JBLElBQUlBLEtBQUtBLEVBQWlCQSxDQUFDQTtRQUVsRUEscUJBQWdCQSxHQUFVQSxDQUFDQSxDQUFDQTtRQUM1QkEsaUJBQVlBLEdBQVdBLEtBQUtBLENBQUNBO1FBQzVCQSx3QkFBbUJBLEdBQVdBLElBQUlBLENBQUNBO1FBQ25DQSwwQkFBcUJBLEdBQVVBLElBQUlBLENBQUNBO1FBQ3BDQSx5QkFBb0JBLEdBQVVBLElBQUlBLENBQUNBO1FBaUIzQ0E7Ozs7V0FJR0E7UUFDSUEsaUJBQVlBLEdBQVVBLENBQUNBLENBQUNBO1FBRXhCQSwwQkFBcUJBLEdBQVVBLENBQUNBLENBQUNBO1FBRWhDQSxlQUFVQSxHQUFXQSxLQUFLQSxDQUFDQSxDQUFDQSxTQUFTQTtRQVV0Q0EsZ0JBQVdBLEdBQVVBLFNBQVNBLENBQUNBLE1BQU1BLENBQUNBO1FBRXJDQSxZQUFPQSxHQUFXQSxLQUFLQSxDQUFDQTtRQUN4QkEsWUFBT0EsR0FBV0EsSUFBSUEsQ0FBQ0E7UUFDdkJBLFlBQU9BLEdBQVdBLEtBQUtBLENBQUNBO1FBQ3hCQSxXQUFNQSxHQUFVQSxRQUFRQSxDQUFDQTtRQUsxQkEsYUFBUUEsR0FBVUEsQ0FBQ0EsQ0FBQ0E7UUFDcEJBLFlBQU9BLEdBQVVBLENBQUNBLENBQUNBO1FBV3pCQSxJQUFJQSxDQUFDQSxZQUFZQSxHQUFHQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUVwQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsR0FBR0EsSUFBSUEsS0FBS0EsRUFBb0JBLENBQUNBO1FBRTdDQSxJQUFJQSxDQUFDQSxzQkFBc0JBLEdBQUdBLFVBQUNBLEtBQVdBLElBQUtBLE9BQUFBLEtBQUlBLENBQUNBLGNBQWNBLENBQUNBLEtBQUtBLENBQUNBLEVBQTFCQSxDQUEwQkEsQ0FBQ0E7UUFFMUVBLElBQUlBLENBQUNBLGtCQUFrQkEsR0FBR0EsS0FBS0EsRUFBRUEsZ0RBQWdEQTtJQUNsRkEsQ0FBQ0EsR0FEZ0NBO0lBTWpDRCxzQkFBV0EsZ0NBQU1BO1FBSGpCQTs7V0FFR0E7YUFDSEE7WUFFQ0UsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsUUFBUUEsQ0FBQ0E7UUFDdEJBLENBQUNBOzs7T0FBQUY7SUFLREEsc0JBQVdBLHNDQUFZQTtRQUh2QkE7O1dBRUdBO2FBQ0hBO1lBRUNHLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLGFBQWFBLENBQUNBO1FBQzNCQSxDQUFDQTs7O09BQUFIO0lBU0RBLHNCQUFXQSxxQ0FBV0E7UUFOdEJBOzs7OztXQUtHQTthQUNIQTtZQUVDSSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxhQUFhQSxDQUFDQTtRQUMzQkEsQ0FBQ0E7YUFFREosVUFBdUJBLEtBQXFCQTtZQUUzQ0ksRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsYUFBYUEsSUFBSUEsS0FBS0EsQ0FBQ0E7Z0JBQy9CQSxNQUFNQSxDQUFDQTtZQUVSQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxhQUFhQSxDQUFDQTtnQkFDdEJBLElBQUlBLENBQUNBLGFBQWFBLENBQUNBLG1CQUFtQkEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsTUFBTUEsRUFBRUEsSUFBSUEsQ0FBQ0Esc0JBQXNCQSxDQUFDQSxDQUFDQTtZQUVuRkEsSUFBSUEsQ0FBQ0EsYUFBYUEsR0FBR0EsS0FBS0EsQ0FBQ0E7WUFFM0JBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLGFBQWFBLENBQUNBO2dCQUN0QkEsSUFBSUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxLQUFLQSxDQUFDQSxNQUFNQSxFQUFFQSxJQUFJQSxDQUFDQSxzQkFBc0JBLENBQUNBLENBQUNBO1lBRWhGQSxJQUFJQSxDQUFDQSx3QkFBd0JBLEVBQUVBLENBQUNBO1FBQ2pDQSxDQUFDQTs7O09BaEJBSjtJQXFCREEsc0JBQVdBLGdDQUFNQTtRQUhqQkE7O1dBRUdBO2FBQ0hBO1lBRUNLLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBO1FBQ3JCQSxDQUFDQTthQUVETCxVQUFrQkEsS0FBYUE7WUFFOUJLLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLElBQUlBLEtBQUtBLENBQUNBO2dCQUN6QkEsTUFBTUEsQ0FBQ0E7WUFFUkEsSUFBSUEsQ0FBQ0EsT0FBT0EsR0FBR0EsS0FBS0EsQ0FBQ0E7WUFFckJBLElBQUlBLENBQUNBLHNCQUFzQkEsRUFBRUEsQ0FBQ0E7UUFDL0JBLENBQUNBOzs7T0FWQUw7SUFlREEsc0JBQVdBLGdDQUFNQTtRQUhqQkE7O1dBRUdBO2FBQ0hBO1lBRUNNLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBO1FBQ3JCQSxDQUFDQTthQUVETixVQUFrQkEsS0FBYUE7WUFFOUJNLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLElBQUlBLEtBQUtBLENBQUNBO2dCQUN6QkEsTUFBTUEsQ0FBQ0E7WUFFUkEsSUFBSUEsQ0FBQ0EsT0FBT0EsR0FBR0EsS0FBS0EsQ0FBQ0E7WUFFckJBLElBQUlBLENBQUNBLHNCQUFzQkEsRUFBRUEsQ0FBQ0E7UUFDL0JBLENBQUNBOzs7T0FWQU47SUFnQkRBLHNCQUFXQSxnQ0FBTUE7UUFKakJBOzs7V0FHR0E7YUFDSEE7WUFFQ08sTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0E7UUFDckJBLENBQUNBO2FBRURQLFVBQWtCQSxLQUFhQTtZQUU5Qk8sRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsSUFBSUEsS0FBS0EsQ0FBQ0E7Z0JBQ3pCQSxNQUFNQSxDQUFDQTtZQUVSQSxJQUFJQSxDQUFDQSxPQUFPQSxHQUFHQSxLQUFLQSxDQUFDQTtZQUVyQkEsSUFBSUEsQ0FBQ0Esc0JBQXNCQSxFQUFFQSxDQUFDQTtRQUMvQkEsQ0FBQ0E7OztPQVZBUDtJQWVEQSxzQkFBV0EsK0JBQUtBO1FBSGhCQTs7V0FFR0E7YUFDSEE7WUFFQ1EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7UUFDcEJBLENBQUNBO2FBRURSLFVBQWlCQSxLQUFZQTtZQUU1QlEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsSUFBSUEsS0FBS0EsQ0FBQ0E7Z0JBQ3hCQSxNQUFNQSxDQUFDQTtZQUVSQSxJQUFJQSxDQUFDQSxNQUFNQSxHQUFHQSxLQUFLQSxDQUFDQTtZQUVwQkEsSUFBSUEsQ0FBQ0Esc0JBQXNCQSxFQUFFQSxDQUFDQTtRQUMvQkEsQ0FBQ0E7OztPQVZBUjtJQWVEQSxzQkFBV0EsaUNBQU9BO1FBSGxCQTs7V0FFR0E7YUFDSEE7WUFFQ1MsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0E7UUFDdkJBLENBQUNBO2FBRURULFVBQW1CQSxLQUFtQkE7WUFFckNTLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLElBQUlBLEtBQUtBLENBQUNBO2dCQUMzQkEsTUFBTUEsQ0FBQ0E7WUFFUkEsSUFBSUEsQ0FBQ0EsU0FBU0EsR0FBR0EsS0FBS0EsQ0FBQ0E7WUFFdkJBLElBQUlBLENBQUNBLHNCQUFzQkEsRUFBRUEsQ0FBQ0E7WUFFOUJBLElBQUlBLENBQUNBLFFBQVFBLEdBQUdBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLE1BQU1BLENBQUNBO1lBQ3RDQSxJQUFJQSxDQUFDQSxPQUFPQSxHQUFHQSxJQUFJQSxDQUFDQSxTQUFTQSxDQUFDQSxLQUFLQSxDQUFDQTtZQUVwQ0EsSUFBSUEsQ0FBQ0EsbUJBQW1CQSxFQUFFQSxDQUFDQTtRQUM1QkEsQ0FBQ0E7OztPQWZBVDtJQW9CREEsc0JBQVdBLG9DQUFVQTtRQUhyQkE7O1dBRUdBO2FBQ0hBO1lBRUNVLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBO1FBQzFCQSxDQUFDQTthQUVEVixVQUFzQkEsS0FBYUE7WUFFbENVLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLFlBQVlBLElBQUlBLEtBQUtBLENBQUNBO2dCQUM5QkEsTUFBTUEsQ0FBQ0E7WUFFUkEsSUFBSUEsQ0FBQ0EsWUFBWUEsR0FBR0EsS0FBS0EsQ0FBQ0E7WUFFMUJBLElBQUlBLENBQUNBLHNCQUFzQkEsRUFBRUEsQ0FBQ0E7UUFDL0JBLENBQUNBOzs7T0FWQVY7SUFnQkRBLHNCQUFXQSw0Q0FBa0JBO1FBSjdCQTs7O1dBR0dBO2FBQ0hBO1lBRUNXLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLG1CQUFtQkEsQ0FBQ0E7UUFDakNBLENBQUNBO2FBRURYLFVBQThCQSxLQUFhQTtZQUUxQ1csRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsbUJBQW1CQSxJQUFJQSxLQUFLQSxDQUFDQTtnQkFDckNBLE1BQU1BLENBQUNBO1lBRVJBLElBQUlBLENBQUNBLG1CQUFtQkEsR0FBR0EsS0FBS0EsQ0FBQ0E7WUFFakNBLElBQUlBLENBQUNBLHNCQUFzQkEsRUFBRUEsQ0FBQ0E7UUFDL0JBLENBQUNBOzs7T0FWQVg7SUFrQkRBLHNCQUFXQSw2Q0FBbUJBO1FBTjlCQTs7Ozs7V0FLR0E7YUFDSEE7WUFFQ1ksTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0Esb0JBQW9CQSxDQUFDQTtRQUNsQ0EsQ0FBQ0E7YUFFRFosVUFBK0JBLEtBQVlBO1lBRTFDWSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxvQkFBb0JBLElBQUlBLEtBQUtBLENBQUNBO2dCQUN0Q0EsTUFBTUEsQ0FBQ0E7WUFFUkEsSUFBSUEsQ0FBQ0Esb0JBQW9CQSxHQUFHQSxLQUFLQSxDQUFDQTtZQUVsQ0EsSUFBSUEsQ0FBQ0Esc0JBQXNCQSxFQUFFQSxDQUFDQTtRQUMvQkEsQ0FBQ0E7OztPQVZBWjtJQWtCREEsc0JBQVdBLDhDQUFvQkE7UUFOL0JBOzs7OztXQUtHQTthQUNIQTtZQUVDYSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxxQkFBcUJBLENBQUNBO1FBQ25DQSxDQUFDQTthQUVEYixVQUFnQ0EsS0FBWUE7WUFFM0NhLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLHFCQUFxQkEsSUFBSUEsS0FBS0EsQ0FBQ0E7Z0JBQ3ZDQSxNQUFNQSxDQUFDQTtZQUVSQSxJQUFJQSxDQUFDQSxxQkFBcUJBLEdBQUdBLEtBQUtBLENBQUNBO1lBRW5DQSxJQUFJQSxDQUFDQSxzQkFBc0JBLEVBQUVBLENBQUNBO1FBQy9CQSxDQUFDQTs7O09BVkFiO0lBWURBOzs7T0FHR0E7SUFDSUEsOEJBQU9BLEdBQWRBO1FBRUNjLElBQUlBLENBQVFBLENBQUNBO1FBQ2JBLElBQUlBLEdBQVVBLENBQUNBO1FBRWZBLEdBQUdBLEdBQUdBLElBQUlBLENBQUNBLGNBQWNBLENBQUNBLE1BQU1BLENBQUNBO1FBQ2pDQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxHQUFHQSxFQUFFQSxDQUFDQSxFQUFFQTtZQUN2QkEsSUFBSUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsT0FBT0EsRUFBRUEsQ0FBQ0E7UUFFbENBLElBQUlBLENBQUNBLGNBQWNBLEdBQUdBLElBQUlBLEtBQUtBLEVBQWlCQSxDQUFDQTtJQUNsREEsQ0FBQ0E7SUFLRGQsc0JBQVdBLG1DQUFTQTtRQUhwQkE7O1dBRUdBO2FBQ0hBO1lBRUNlLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFVBQVVBLENBQUNBO1FBQ3hCQSxDQUFDQTthQUVEZixVQUFxQkEsS0FBYUE7WUFFakNlLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLFVBQVVBLEdBQUdBLEtBQUtBLENBQUNBO2dCQUMzQkEsTUFBTUEsQ0FBQ0E7WUFFUkEsSUFBSUEsQ0FBQ0EsVUFBVUEsR0FBR0EsS0FBS0EsQ0FBQ0E7WUFFeEJBLElBQUlBLENBQUNBLHNCQUFzQkEsRUFBRUEsQ0FBQ0E7UUFDL0JBLENBQUNBOzs7T0FWQWY7SUFzQkRBLHNCQUFXQSxtQ0FBU0E7UUFWcEJBOzs7Ozs7Ozs7V0FTR0E7YUFDSEE7WUFFQ2dCLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBO1FBQ3pCQSxDQUFDQTthQUVEaEIsVUFBcUJBLEtBQVlBO1lBRWhDZ0IsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsSUFBSUEsS0FBS0EsQ0FBQ0E7Z0JBQzdCQSxNQUFNQSxDQUFDQTtZQUVSQSxJQUFJQSxDQUFDQSxXQUFXQSxHQUFHQSxLQUFLQSxDQUFDQTtZQUV6QkEsSUFBSUEsQ0FBQ0Esd0JBQXdCQSxFQUFFQSxDQUFDQTtRQUNqQ0EsQ0FBQ0E7OztPQVZBaEI7SUFpQkRBLHNCQUFXQSw0Q0FBa0JBO1FBTDdCQTs7OztXQUlHQTthQUNIQTtZQUVDaUIsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsbUJBQW1CQSxDQUFDQTtRQUNqQ0EsQ0FBQ0E7YUFFRGpCLFVBQThCQSxLQUFhQTtZQUUxQ2lCLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLG1CQUFtQkEsSUFBSUEsS0FBS0EsQ0FBQ0E7Z0JBQ3JDQSxNQUFNQSxDQUFDQTtZQUVSQSxJQUFJQSxDQUFDQSxtQkFBbUJBLEdBQUdBLEtBQUtBLENBQUNBO1lBRWpDQSxJQUFJQSxDQUFDQSxzQkFBc0JBLEVBQUVBLENBQUNBO1FBQy9CQSxDQUFDQTs7O09BVkFqQjtJQWlCREEsc0JBQVdBLHdDQUFjQTtRQUx6QkE7Ozs7V0FJR0E7YUFDSEE7WUFFQ2tCLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLGdCQUFnQkEsQ0FBQ0E7UUFDOUJBLENBQUNBO2FBRURsQixVQUEwQkEsS0FBWUE7WUFFckNrQixFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxHQUFHQSxDQUFDQSxDQUFDQTtnQkFDYkEsS0FBS0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFDWEEsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2xCQSxLQUFLQSxHQUFHQSxDQUFDQSxDQUFDQTtZQUVYQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxnQkFBZ0JBLElBQUlBLEtBQUtBLENBQUNBO2dCQUNsQ0EsTUFBTUEsQ0FBQ0E7WUFFUkEsSUFBSUEsQ0FBQ0EsZ0JBQWdCQSxHQUFHQSxLQUFLQSxDQUFDQTtZQUU5QkEsSUFBSUEsQ0FBQ0Esc0JBQXNCQSxFQUFFQSxDQUFDQTtRQUMvQkEsQ0FBQ0E7OztPQWZBbEI7SUFvQkRBLHNCQUFXQSwrQkFBS0E7UUFIaEJBOztXQUVHQTthQUNIQTtZQUVDbUIsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0E7UUFDckJBLENBQUNBOzs7T0FBQW5CO0lBRURBLEVBQUVBO0lBQ0ZBLHNCQUFzQkE7SUFDdEJBLEVBQUVBO0lBQ0ZBOzs7Ozs7OztPQVFHQTtJQUNJQSxnQ0FBU0EsR0FBaEJBLFVBQWlCQSxLQUFzQkE7UUFFdENvQixJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQTtRQUV6QkEsSUFBSUEsWUFBMEJBLENBQUNBO1FBQy9CQSxJQUFJQSxRQUFRQSxHQUF5QkEsS0FBS0EsQ0FBQ0EsUUFBUUEsQ0FBQ0E7UUFFcERBLEVBQUVBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBO1lBQ1pBLFlBQVlBLEdBQW1CQSxRQUFRQSxDQUFDQSxZQUFZQSxDQUFDQTtRQUV0REEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDcEJBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLGFBQWFBLElBQUlBLFlBQVlBLElBQUlBLElBQUlBLENBQUNBLGFBQWFBLENBQUNBLENBQUNBLENBQUNBO2dCQUM5REEsTUFBTUEsSUFBSUEsS0FBS0EsQ0FBQ0EsMkZBQTJGQSxDQUFDQSxDQUFDQTtZQUM5R0EsQ0FBQ0E7WUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ1BBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLGFBQWFBLElBQUlBLFlBQVlBLENBQUNBLENBQUNBLENBQUNBO29CQUV4Q0EsSUFBSUEsQ0FBQ0EsYUFBYUEsR0FBR0EsWUFBWUEsQ0FBQ0E7b0JBRWxDQSxJQUFJQSxDQUFDQSxtQkFBbUJBLEVBQUVBLENBQUNBO2dCQUM1QkEsQ0FBQ0E7WUFDRkEsQ0FBQ0E7UUFDRkEsQ0FBQ0E7SUFDRkEsQ0FBQ0E7SUFFRHBCOzs7OztPQUtHQTtJQUNJQSxtQ0FBWUEsR0FBbkJBLFVBQW9CQSxLQUFzQkE7UUFFekNxQixJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUVwREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDOUJBLElBQUlBLENBQUNBLGFBQWFBLEdBQUdBLElBQUlBLENBQUNBO1lBRTFCQSxJQUFJQSxDQUFDQSxtQkFBbUJBLEVBQUVBLENBQUNBO1FBQzVCQSxDQUFDQTtJQUNGQSxDQUFDQTtJQU9EckIsc0JBQVdBLGlDQUFPQTtRQUxsQkE7Ozs7V0FJR0E7YUFDSEE7WUFFQ3NCLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBO1FBQ3JCQSxDQUFDQTs7O09BQUF0QjtJQUVEQTs7OztPQUlHQTtJQUNJQSw2Q0FBc0JBLEdBQTdCQTtRQUVDdUIsSUFBSUEsR0FBR0EsR0FBVUEsSUFBSUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsTUFBTUEsQ0FBQ0E7UUFDNUNBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLEdBQVVBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLEdBQUdBLEVBQUVBLENBQUNBLEVBQUVBO1lBQ2xDQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxvQkFBb0JBLEVBQUVBLENBQUNBO0lBQ2hEQSxDQUFDQTtJQUVPdkIsMENBQW1CQSxHQUEzQkE7UUFFQ3dCLElBQUlBLEdBQUdBLEdBQVVBLElBQUlBLENBQUNBLGNBQWNBLENBQUNBLE1BQU1BLENBQUNBO1FBQzVDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFVQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxHQUFHQSxFQUFFQSxDQUFDQSxFQUFFQTtZQUNsQ0EsSUFBSUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsbUJBQW1CQSxFQUFFQSxDQUFDQTtJQUMvQ0EsQ0FBQ0E7SUFFTXhCLCtDQUF3QkEsR0FBL0JBO1FBRUN5QixJQUFJQSxHQUFHQSxHQUFVQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxNQUFNQSxDQUFDQTtRQUM1Q0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBVUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsR0FBR0EsRUFBRUEsQ0FBQ0EsRUFBRUE7WUFDbENBLElBQUlBLENBQUNBLGNBQWNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLHNCQUFzQkEsRUFBRUEsQ0FBQ0E7SUFDbERBLENBQUNBO0lBRUR6Qjs7T0FFR0E7SUFDS0EscUNBQWNBLEdBQXRCQSxVQUF1QkEsS0FBV0E7UUFFakMwQixJQUFJQSxDQUFDQSx3QkFBd0JBLEVBQUVBLENBQUNBO0lBQ2pDQSxDQUFDQTtJQUVNMUIsMENBQW1CQSxHQUExQkE7UUFFQzJCLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBO1lBQ3RCQSxJQUFJQSxDQUFDQSxZQUFZQSxHQUFHQSxJQUFJQSxhQUFhQSxDQUFDQSxhQUFhQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQTtRQUVuRUEsSUFBSUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0E7SUFDdkNBLENBQUNBO0lBRU0zQix3Q0FBaUJBLEdBQXhCQSxVQUF5QkEsWUFBMEJBO1FBRWxENEIsSUFBSUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0E7UUFFdkNBLE1BQU1BLENBQUNBLFlBQVlBLENBQUNBO0lBQ3JCQSxDQUFDQTtJQUVNNUIsMkNBQW9CQSxHQUEzQkEsVUFBNEJBLFlBQTBCQTtRQUVyRDZCLElBQUlBLENBQUNBLGNBQWNBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLGNBQWNBLENBQUNBLE9BQU9BLENBQUNBLFlBQVlBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO1FBRXpFQSxNQUFNQSxDQUFDQSxZQUFZQSxDQUFDQTtJQUNyQkEsQ0FBQ0E7SUFFRDdCOzs7OztPQUtHQTtJQUNJQSxzQ0FBZUEsR0FBdEJBLFVBQXVCQSxjQUE4QkE7UUFFcEQ4QixNQUFNQSxDQUFDQSxjQUFjQSxDQUFDQSx1QkFBdUJBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO0lBQ3JEQSxDQUFDQTtJQUNGOUIsbUJBQUNBO0FBQURBLENBeGhCQSxBQXdoQkNBLEVBeGhCMEIsY0FBYyxFQXdoQnhDO0FBRUQsQUFBc0IsaUJBQWIsWUFBWSxDQUFDIiwiZmlsZSI6Im1hdGVyaWFscy9NYXRlcmlhbEJhc2UuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hdHJpeDNEXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vTWF0cml4M0RcIik7XG5pbXBvcnQgRXZlbnRcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZXZlbnRzL0V2ZW50XCIpO1xuaW1wb3J0IEFzc2V0VHlwZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvbGlicmFyeS9Bc3NldFR5cGVcIik7XG5pbXBvcnQgSUFzc2V0XHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2xpYnJhcnkvSUFzc2V0XCIpO1xuaW1wb3J0IE5hbWVkQXNzZXRCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvbGlicmFyeS9OYW1lZEFzc2V0QmFzZVwiKTtcbmltcG9ydCBUZXh0dXJlMkRCYXNlXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvdGV4dHVyZXMvVGV4dHVyZTJEQmFzZVwiKTtcblxuaW1wb3J0IElBbmltYXRpb25TZXRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9hbmltYXRvcnMvSUFuaW1hdGlvblNldFwiKTtcbmltcG9ydCBJQW5pbWF0b3JcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2FuaW1hdG9ycy9JQW5pbWF0b3JcIik7XG5pbXBvcnQgQmxlbmRNb2RlXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL0JsZW5kTW9kZVwiKTtcbmltcG9ydCBJUmVuZGVyT2JqZWN0T3duZXJcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9JUmVuZGVyT2JqZWN0T3duZXJcIik7XG5pbXBvcnQgSVJlbmRlcmFibGVPd25lclx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvSVJlbmRlcmFibGVPd25lclwiKTtcbmltcG9ydCBJUmVuZGVyT2JqZWN0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcG9vbC9JUmVuZGVyT2JqZWN0XCIpO1xuaW1wb3J0IElSZW5kZXJhYmxlUG9vbFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3Bvb2wvSVJlbmRlcmFibGVQb29sXCIpO1xuaW1wb3J0IENhbWVyYVx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9DYW1lcmFcIik7XG5pbXBvcnQgTWF0ZXJpYWxFdmVudFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2V2ZW50cy9NYXRlcmlhbEV2ZW50XCIpO1xuaW1wb3J0IExpZ2h0UGlja2VyQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9saWdodHBpY2tlcnMvTGlnaHRQaWNrZXJCYXNlXCIpO1xuaW1wb3J0IElSZW5kZXJlclx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcmVuZGVyL0lSZW5kZXJlclwiKTtcblxuXG4vKipcbiAqIE1hdGVyaWFsQmFzZSBmb3JtcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBhbnkgbWF0ZXJpYWwuXG4gKiBBIG1hdGVyaWFsIGNvbnNpc3RzIG9mIHNldmVyYWwgcGFzc2VzLCBlYWNoIG9mIHdoaWNoIGNvbnN0aXR1dGVzIGF0IGxlYXN0IG9uZSByZW5kZXIgY2FsbC4gU2V2ZXJhbCBwYXNzZXMgY291bGRcbiAqIGJlIHVzZWQgZm9yIHNwZWNpYWwgZWZmZWN0cyAocmVuZGVyIGxpZ2h0aW5nIGZvciBtYW55IGxpZ2h0cyBpbiBzZXZlcmFsIHBhc3NlcywgcmVuZGVyIGFuIG91dGxpbmUgaW4gYSBzZXBhcmF0ZVxuICogcGFzcykgb3IgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIHJlbmRlci10by10ZXh0dXJlIHBhc3NlcyAocmVuZGVyaW5nIGRpZmZ1c2UgbGlnaHQgdG8gdGV4dHVyZSBmb3IgdGV4dHVyZS1zcGFjZVxuICogc3Vic3VyZmFjZSBzY2F0dGVyaW5nLCBvciByZW5kZXJpbmcgYSBkZXB0aCBtYXAgZm9yIHNwZWNpYWxpemVkIHNlbGYtc2hhZG93aW5nKS5cbiAqXG4gKiBBd2F5M0QgcHJvdmlkZXMgZGVmYXVsdCBtYXRlcmlhbHMgdHJvdWdoIFNpbmdsZVBhc3NNYXRlcmlhbEJhc2UgYW5kIFRyaWFuZ2xlTWF0ZXJpYWwsIHdoaWNoIHVzZSBtb2R1bGFyXG4gKiBtZXRob2RzIHRvIGJ1aWxkIHRoZSBzaGFkZXIgY29kZS4gTWF0ZXJpYWxCYXNlIGNhbiBiZSBleHRlbmRlZCB0byBidWlsZCBzcGVjaWZpYyBhbmQgaGlnaC1wZXJmb3JtYW50IGN1c3RvbVxuICogc2hhZGVycywgb3IgZW50aXJlIG5ldyBtYXRlcmlhbCBmcmFtZXdvcmtzLlxuICovXG5jbGFzcyBNYXRlcmlhbEJhc2UgZXh0ZW5kcyBOYW1lZEFzc2V0QmFzZSBpbXBsZW1lbnRzIElSZW5kZXJPYmplY3RPd25lclxue1xuXHRwcml2YXRlIF9zaXplQ2hhbmdlZDpNYXRlcmlhbEV2ZW50O1xuXHRwcml2YXRlIF9yZW5kZXJPYmplY3RzOkFycmF5PElSZW5kZXJPYmplY3Q+ID0gbmV3IEFycmF5PElSZW5kZXJPYmplY3Q+KCk7XG5cblx0cHVibGljIF9wQWxwaGFUaHJlc2hvbGQ6bnVtYmVyID0gMDtcblx0cHVibGljIF9wQW5pbWF0ZVVWczpib29sZWFuID0gZmFsc2U7XG5cdHByaXZhdGUgX2VuYWJsZUxpZ2h0RmFsbE9mZjpib29sZWFuID0gdHJ1ZTtcblx0cHJpdmF0ZSBfc3BlY3VsYXJMaWdodFNvdXJjZXM6bnVtYmVyID0gMHgwMTtcblx0cHJpdmF0ZSBfZGlmZnVzZUxpZ2h0U291cmNlczpudW1iZXIgPSAweDAzO1xuXG5cdC8qKlxuXHQgKiBBbiBvYmplY3QgdG8gY29udGFpbiBhbnkgZXh0cmEgZGF0YS5cblx0ICovXG5cdHB1YmxpYyBleHRyYTpPYmplY3Q7XG5cblx0LyoqXG5cdCAqIEEgdmFsdWUgdGhhdCBjYW4gYmUgdXNlZCBieSBtYXRlcmlhbHMgdGhhdCBvbmx5IHdvcmsgd2l0aCBhIGdpdmVuIHR5cGUgb2YgcmVuZGVyZXIuIFRoZSByZW5kZXJlciBjYW4gdGVzdCB0aGVcblx0ICogY2xhc3NpZmljYXRpb24gdG8gY2hvb3NlIHdoaWNoIHJlbmRlciBwYXRoIHRvIHVzZS4gRm9yIGV4YW1wbGUsIGEgZGVmZXJyZWQgbWF0ZXJpYWwgY291bGQgc2V0IHRoaXMgdmFsdWUgc29cblx0ICogdGhhdCB0aGUgZGVmZXJyZWQgcmVuZGVyZXIga25vd3Mgbm90IHRvIHRha2UgdGhlIGZvcndhcmQgcmVuZGVyaW5nIHBhdGguXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwdWJsaWMgX2lDbGFzc2lmaWNhdGlvbjpzdHJpbmc7XG5cblxuXHQvKipcblx0ICogQW4gaWQgZm9yIHRoaXMgbWF0ZXJpYWwgdXNlZCB0byBzb3J0IHRoZSByZW5kZXJhYmxlcyBieSBzaGFkZXIgcHJvZ3JhbSwgd2hpY2ggcmVkdWNlcyBQcm9ncmFtIHN0YXRlIGNoYW5nZXMuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwdWJsaWMgX2lNYXRlcmlhbElkOm51bWJlciA9IDA7XG5cblx0cHVibGljIF9pQmFzZVNjcmVlblBhc3NJbmRleDpudW1iZXIgPSAwO1xuXG5cdHByaXZhdGUgX2JvdGhTaWRlczpib29sZWFuID0gZmFsc2U7IC8vIHVwZGF0ZVxuXHRwcml2YXRlIF9hbmltYXRpb25TZXQ6SUFuaW1hdGlvblNldDtcblxuXHQvKipcblx0ICogQSBsaXN0IG9mIG1hdGVyaWFsIG93bmVycywgcmVuZGVyYWJsZXMgb3IgY3VzdG9tIEVudGl0aWVzLlxuXHQgKi9cblx0cHJpdmF0ZSBfb3duZXJzOkFycmF5PElSZW5kZXJhYmxlT3duZXI+O1xuXG5cdHByaXZhdGUgX2FscGhhUHJlbXVsdGlwbGllZDpib29sZWFuO1xuXG5cdHB1YmxpYyBfcEJsZW5kTW9kZTpzdHJpbmcgPSBCbGVuZE1vZGUuTk9STUFMO1xuXG5cdHByaXZhdGUgX21pcG1hcDpib29sZWFuID0gZmFsc2U7XG5cdHByaXZhdGUgX3Ntb290aDpib29sZWFuID0gdHJ1ZTtcblx0cHJpdmF0ZSBfcmVwZWF0OmJvb2xlYW4gPSBmYWxzZTtcblx0cHJpdmF0ZSBfY29sb3I6bnVtYmVyID0gMHhGRkZGRkY7XG5cdHB1YmxpYyBfcFRleHR1cmU6VGV4dHVyZTJEQmFzZTtcblxuXHRwdWJsaWMgX3BMaWdodFBpY2tlcjpMaWdodFBpY2tlckJhc2U7XG5cblx0cHVibGljIF9wSGVpZ2h0Om51bWJlciA9IDE7XG5cdHB1YmxpYyBfcFdpZHRoOm51bWJlciA9IDE7XG5cblx0cHJpdmF0ZSBfb25MaWdodENoYW5nZURlbGVnYXRlOihldmVudDpFdmVudCkgPT4gdm9pZDtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG5ldyBNYXRlcmlhbEJhc2Ugb2JqZWN0LlxuXHQgKi9cblx0Y29uc3RydWN0b3IoKVxuXHR7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuX2lNYXRlcmlhbElkID0gTnVtYmVyKHRoaXMuaWQpO1xuXG5cdFx0dGhpcy5fb3duZXJzID0gbmV3IEFycmF5PElSZW5kZXJhYmxlT3duZXI+KCk7XG5cblx0XHR0aGlzLl9vbkxpZ2h0Q2hhbmdlRGVsZWdhdGUgPSAoZXZlbnQ6RXZlbnQpID0+IHRoaXMub25MaWdodHNDaGFuZ2UoZXZlbnQpO1xuXG5cdFx0dGhpcy5hbHBoYVByZW11bHRpcGxpZWQgPSBmYWxzZTsgLy9UT0RPOiB3b3JrIG91dCB3aHkgdGhpcyBpcyBkaWZmZXJlbnQgZm9yIFdlYkdMXG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgaGVpZ2h0KCk6bnVtYmVyXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcEhlaWdodDtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCBhbmltYXRpb25TZXQoKTpJQW5pbWF0aW9uU2V0XG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fYW5pbWF0aW9uU2V0O1xuXHR9XG5cblxuXHQvKipcblx0ICogVGhlIGxpZ2h0IHBpY2tlciB1c2VkIGJ5IHRoZSBtYXRlcmlhbCB0byBwcm92aWRlIGxpZ2h0cyB0byB0aGUgbWF0ZXJpYWwgaWYgaXQgc3VwcG9ydHMgbGlnaHRpbmcuXG5cdCAqXG5cdCAqIEBzZWUgTGlnaHRQaWNrZXJCYXNlXG5cdCAqIEBzZWUgU3RhdGljTGlnaHRQaWNrZXJcblx0ICovXG5cdHB1YmxpYyBnZXQgbGlnaHRQaWNrZXIoKTpMaWdodFBpY2tlckJhc2Vcblx0e1xuXHRcdHJldHVybiB0aGlzLl9wTGlnaHRQaWNrZXI7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGxpZ2h0UGlja2VyKHZhbHVlOkxpZ2h0UGlja2VyQmFzZSlcblx0e1xuXHRcdGlmICh0aGlzLl9wTGlnaHRQaWNrZXIgPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHRpZiAodGhpcy5fcExpZ2h0UGlja2VyKVxuXHRcdFx0dGhpcy5fcExpZ2h0UGlja2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoRXZlbnQuQ0hBTkdFLCB0aGlzLl9vbkxpZ2h0Q2hhbmdlRGVsZWdhdGUpO1xuXG5cdFx0dGhpcy5fcExpZ2h0UGlja2VyID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5fcExpZ2h0UGlja2VyKVxuXHRcdFx0dGhpcy5fcExpZ2h0UGlja2VyLmFkZEV2ZW50TGlzdGVuZXIoRXZlbnQuQ0hBTkdFLCB0aGlzLl9vbkxpZ2h0Q2hhbmdlRGVsZWdhdGUpO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVSZW5kZXJPYmplY3QoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW55IHVzZWQgdGV4dHVyZXMgc2hvdWxkIHVzZSBtaXBtYXBwaW5nLiBEZWZhdWx0cyB0byB0cnVlLlxuXHQgKi9cblx0cHVibGljIGdldCBtaXBtYXAoKTpib29sZWFuXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fbWlwbWFwO1xuXHR9XG5cblx0cHVibGljIHNldCBtaXBtYXAodmFsdWU6Ym9vbGVhbilcblx0e1xuXHRcdGlmICh0aGlzLl9taXBtYXAgPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9taXBtYXAgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUHJvcGVydGllcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbnkgdXNlZCB0ZXh0dXJlcyBzaG91bGQgdXNlIHNtb290aGluZy5cblx0ICovXG5cdHB1YmxpYyBnZXQgc21vb3RoKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3Ntb290aDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgc21vb3RoKHZhbHVlOmJvb2xlYW4pXG5cdHtcblx0XHRpZiAodGhpcy5fc21vb3RoID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fc21vb3RoID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVByb3BlcnRpZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW55IHVzZWQgdGV4dHVyZXMgc2hvdWxkIGJlIHRpbGVkLiBJZiBzZXQgdG8gZmFsc2UsIHRleHR1cmUgc2FtcGxlcyBhcmUgY2xhbXBlZCB0b1xuXHQgKiB0aGUgdGV4dHVyZSdzIGJvcmRlcnMgd2hlbiB0aGUgdXYgY29vcmRpbmF0ZXMgYXJlIG91dHNpZGUgdGhlIFswLCAxXSBpbnRlcnZhbC5cblx0ICovXG5cdHB1YmxpYyBnZXQgcmVwZWF0KCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3JlcGVhdDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgcmVwZWF0KHZhbHVlOmJvb2xlYW4pXG5cdHtcblx0XHRpZiAodGhpcy5fcmVwZWF0ID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fcmVwZWF0ID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVByb3BlcnRpZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgZGlmZnVzZSByZWZsZWN0aXZpdHkgY29sb3Igb2YgdGhlIHN1cmZhY2UuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGNvbG9yKCk6bnVtYmVyXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fY29sb3I7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGNvbG9yKHZhbHVlOm51bWJlcilcblx0e1xuXHRcdGlmICh0aGlzLl9jb2xvciA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX2NvbG9yID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVByb3BlcnRpZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgdGV4dHVyZSBvYmplY3QgdG8gdXNlIGZvciB0aGUgYWxiZWRvIGNvbG91ci5cblx0ICovXG5cdHB1YmxpYyBnZXQgdGV4dHVyZSgpOlRleHR1cmUyREJhc2Vcblx0e1xuXHRcdHJldHVybiB0aGlzLl9wVGV4dHVyZTtcblx0fVxuXG5cdHB1YmxpYyBzZXQgdGV4dHVyZSh2YWx1ZTpUZXh0dXJlMkRCYXNlKVxuXHR7XG5cdFx0aWYgKHRoaXMuX3BUZXh0dXJlID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fcFRleHR1cmUgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUHJvcGVydGllcygpO1xuXG5cdFx0dGhpcy5fcEhlaWdodCA9IHRoaXMuX3BUZXh0dXJlLmhlaWdodDtcblx0XHR0aGlzLl9wV2lkdGggPSB0aGlzLl9wVGV4dHVyZS53aWR0aDtcblxuXHRcdHRoaXMuX3BOb3RpZnlTaXplQ2hhbmdlZCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNwZWNpZmllcyB3aGV0aGVyIG9yIG5vdCB0aGUgVVYgY29vcmRpbmF0ZXMgc2hvdWxkIGJlIGFuaW1hdGVkIHVzaW5nIGEgdHJhbnNmb3JtYXRpb24gbWF0cml4LlxuXHQgKi9cblx0cHVibGljIGdldCBhbmltYXRlVVZzKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BBbmltYXRlVVZzO1xuXHR9XG5cblx0cHVibGljIHNldCBhbmltYXRlVVZzKHZhbHVlOmJvb2xlYW4pXG5cdHtcblx0XHRpZiAodGhpcy5fcEFuaW1hdGVVVnMgPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9wQW5pbWF0ZVVWcyA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVQcm9wZXJ0aWVzKCk7XG5cdH1cblxuXHQvKipcblx0ICogV2hldGhlciBvciBub3QgdG8gdXNlIGZhbGxPZmYgYW5kIHJhZGl1cyBwcm9wZXJ0aWVzIGZvciBsaWdodHMuIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZSBhbmRcblx0ICogY29tcGF0aWJpbGl0eSBmb3IgY29uc3RyYWluZWQgbW9kZS5cblx0ICovXG5cdHB1YmxpYyBnZXQgZW5hYmxlTGlnaHRGYWxsT2ZmKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2VuYWJsZUxpZ2h0RmFsbE9mZjtcblx0fVxuXG5cdHB1YmxpYyBzZXQgZW5hYmxlTGlnaHRGYWxsT2ZmKHZhbHVlOmJvb2xlYW4pXG5cdHtcblx0XHRpZiAodGhpcy5fZW5hYmxlTGlnaHRGYWxsT2ZmID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fZW5hYmxlTGlnaHRGYWxsT2ZmID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVByb3BlcnRpZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEZWZpbmUgd2hpY2ggbGlnaHQgc291cmNlIHR5cGVzIHRvIHVzZSBmb3IgZGlmZnVzZSByZWZsZWN0aW9ucy4gVGhpcyBhbGxvd3MgY2hvb3NpbmcgYmV0d2VlbiByZWd1bGFyIGxpZ2h0c1xuXHQgKiBhbmQvb3IgbGlnaHQgcHJvYmVzIGZvciBkaWZmdXNlIHJlZmxlY3Rpb25zLlxuXHQgKlxuXHQgKiBAc2VlIGF3YXkzZC5tYXRlcmlhbHMuTGlnaHRTb3VyY2VzXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGRpZmZ1c2VMaWdodFNvdXJjZXMoKTpudW1iZXJcblx0e1xuXHRcdHJldHVybiB0aGlzLl9kaWZmdXNlTGlnaHRTb3VyY2VzO1xuXHR9XG5cblx0cHVibGljIHNldCBkaWZmdXNlTGlnaHRTb3VyY2VzKHZhbHVlOm51bWJlcilcblx0e1xuXHRcdGlmICh0aGlzLl9kaWZmdXNlTGlnaHRTb3VyY2VzID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fZGlmZnVzZUxpZ2h0U291cmNlcyA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVQcm9wZXJ0aWVzKCk7XG5cdH1cblxuXHQvKipcblx0ICogRGVmaW5lIHdoaWNoIGxpZ2h0IHNvdXJjZSB0eXBlcyB0byB1c2UgZm9yIHNwZWN1bGFyIHJlZmxlY3Rpb25zLiBUaGlzIGFsbG93cyBjaG9vc2luZyBiZXR3ZWVuIHJlZ3VsYXIgbGlnaHRzXG5cdCAqIGFuZC9vciBsaWdodCBwcm9iZXMgZm9yIHNwZWN1bGFyIHJlZmxlY3Rpb25zLlxuXHQgKlxuXHQgKiBAc2VlIGF3YXkzZC5tYXRlcmlhbHMuTGlnaHRTb3VyY2VzXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHNwZWN1bGFyTGlnaHRTb3VyY2VzKCk6bnVtYmVyXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fc3BlY3VsYXJMaWdodFNvdXJjZXM7XG5cdH1cblxuXHRwdWJsaWMgc2V0IHNwZWN1bGFyTGlnaHRTb3VyY2VzKHZhbHVlOm51bWJlcilcblx0e1xuXHRcdGlmICh0aGlzLl9zcGVjdWxhckxpZ2h0U291cmNlcyA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX3NwZWN1bGFyTGlnaHRTb3VyY2VzID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVByb3BlcnRpZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDbGVhbnMgdXAgcmVzb3VyY2VzIG93bmVkIGJ5IHRoZSBtYXRlcmlhbCwgaW5jbHVkaW5nIHBhc3Nlcy4gVGV4dHVyZXMgYXJlIG5vdCBvd25lZCBieSB0aGUgbWF0ZXJpYWwgc2luY2UgdGhleVxuXHQgKiBjb3VsZCBiZSB1c2VkIGJ5IG90aGVyIG1hdGVyaWFscyBhbmQgd2lsbCBub3QgYmUgZGlzcG9zZWQuXG5cdCAqL1xuXHRwdWJsaWMgZGlzcG9zZSgpXG5cdHtcblx0XHR2YXIgaTpudW1iZXI7XG5cdFx0dmFyIGxlbjpudW1iZXI7XG5cblx0XHRsZW4gPSB0aGlzLl9yZW5kZXJPYmplY3RzLmxlbmd0aDtcblx0XHRmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9yZW5kZXJPYmplY3RzW2ldLmRpc3Bvc2UoKTtcblxuXHRcdHRoaXMuX3JlbmRlck9iamVjdHMgPSBuZXcgQXJyYXk8SVJlbmRlck9iamVjdD4oKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBtYXRlcmlhbCBzaG91bGQgY3VsbCB0cmlhbmdsZXMgZmFjaW5nIGF3YXkgZnJvbSB0aGUgY2FtZXJhLlxuXHQgKi9cblx0cHVibGljIGdldCBib3RoU2lkZXMoKTpib29sZWFuXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fYm90aFNpZGVzO1xuXHR9XG5cblx0cHVibGljIHNldCBib3RoU2lkZXModmFsdWU6Ym9vbGVhbilcblx0e1xuXHRcdGlmICh0aGlzLl9ib3RoU2lkZXMgPSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX2JvdGhTaWRlcyA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVQcm9wZXJ0aWVzKCk7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGJsZW5kIG1vZGUgdG8gdXNlIHdoZW4gZHJhd2luZyB0aGlzIHJlbmRlcmFibGUuIFRoZSBmb2xsb3dpbmcgYmxlbmQgbW9kZXMgYXJlIHN1cHBvcnRlZDpcblx0ICogPHVsPlxuXHQgKiA8bGk+QmxlbmRNb2RlLk5PUk1BTDogTm8gYmxlbmRpbmcsIHVubGVzcyB0aGUgbWF0ZXJpYWwgaW5oZXJlbnRseSBuZWVkcyBpdDwvbGk+XG5cdCAqIDxsaT5CbGVuZE1vZGUuTEFZRVI6IEZvcmNlIGJsZW5kaW5nLiBUaGlzIHdpbGwgZHJhdyB0aGUgb2JqZWN0IHRoZSBzYW1lIGFzIE5PUk1BTCwgYnV0IHdpdGhvdXQgd3JpdGluZyBkZXB0aCB3cml0ZXMuPC9saT5cblx0ICogPGxpPkJsZW5kTW9kZS5NVUxUSVBMWTwvbGk+XG5cdCAqIDxsaT5CbGVuZE1vZGUuQUREPC9saT5cblx0ICogPGxpPkJsZW5kTW9kZS5BTFBIQTwvbGk+XG5cdCAqIDwvdWw+XG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGJsZW5kTW9kZSgpOnN0cmluZ1xuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BCbGVuZE1vZGU7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGJsZW5kTW9kZSh2YWx1ZTpzdHJpbmcpXG5cdHtcblx0XHRpZiAodGhpcy5fcEJsZW5kTW9kZSA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX3BCbGVuZE1vZGUgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUmVuZGVyT2JqZWN0KCk7XG5cdH1cblxuXHQvKipcblx0ICogSW5kaWNhdGVzIHdoZXRoZXIgdmlzaWJsZSB0ZXh0dXJlcyAob3Igb3RoZXIgcGl4ZWxzKSB1c2VkIGJ5IHRoaXMgbWF0ZXJpYWwgaGF2ZVxuXHQgKiBhbHJlYWR5IGJlZW4gcHJlbXVsdGlwbGllZC4gVG9nZ2xlIHRoaXMgaWYgeW91IGFyZSBzZWVpbmcgYmxhY2sgaGFsb3MgYXJvdW5kIHlvdXJcblx0ICogYmxlbmRlZCBhbHBoYSBlZGdlcy5cblx0ICovXG5cdHB1YmxpYyBnZXQgYWxwaGFQcmVtdWx0aXBsaWVkKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2FscGhhUHJlbXVsdGlwbGllZDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgYWxwaGFQcmVtdWx0aXBsaWVkKHZhbHVlOmJvb2xlYW4pXG5cdHtcblx0XHRpZiAodGhpcy5fYWxwaGFQcmVtdWx0aXBsaWVkID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fYWxwaGFQcmVtdWx0aXBsaWVkID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVByb3BlcnRpZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgbWluaW11bSBhbHBoYSB2YWx1ZSBmb3Igd2hpY2ggcGl4ZWxzIHNob3VsZCBiZSBkcmF3bi4gVGhpcyBpcyB1c2VkIGZvciB0cmFuc3BhcmVuY3kgdGhhdCBpcyBlaXRoZXJcblx0ICogaW52aXNpYmxlIG9yIGVudGlyZWx5IG9wYXF1ZSwgb2Z0ZW4gdXNlZCB3aXRoIHRleHR1cmVzIGZvciBmb2xpYWdlLCBldGMuXG5cdCAqIFJlY29tbWVuZGVkIHZhbHVlcyBhcmUgMCB0byBkaXNhYmxlIGFscGhhLCBvciAwLjUgdG8gY3JlYXRlIHNtb290aCBlZGdlcy4gRGVmYXVsdCB2YWx1ZSBpcyAwIChkaXNhYmxlZCkuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGFscGhhVGhyZXNob2xkKCk6bnVtYmVyXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcEFscGhhVGhyZXNob2xkO1xuXHR9XG5cblx0cHVibGljIHNldCBhbHBoYVRocmVzaG9sZCh2YWx1ZTpudW1iZXIpXG5cdHtcblx0XHRpZiAodmFsdWUgPCAwKVxuXHRcdFx0dmFsdWUgPSAwO1xuXHRcdGVsc2UgaWYgKHZhbHVlID4gMSlcblx0XHRcdHZhbHVlID0gMTtcblxuXHRcdGlmICh0aGlzLl9wQWxwaGFUaHJlc2hvbGQgPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9wQWxwaGFUaHJlc2hvbGQgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUHJvcGVydGllcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IHdpZHRoKCk6bnVtYmVyXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcFdpZHRoO1xuXHR9XG5cblx0Ly9cblx0Ly8gTUFURVJJQUwgTUFOQUdFTUVOVFxuXHQvL1xuXHQvKipcblx0ICogTWFyayBhbiBJUmVuZGVyYWJsZU93bmVyIGFzIG93bmVyIG9mIHRoaXMgbWF0ZXJpYWwuXG5cdCAqIEFzc3VyZXMgd2UncmUgbm90IHVzaW5nIHRoZSBzYW1lIG1hdGVyaWFsIGFjcm9zcyByZW5kZXJhYmxlcyB3aXRoIGRpZmZlcmVudCBhbmltYXRpb25zLCBzaW5jZSB0aGVcblx0ICogUHJvZ3JhbXMgZGVwZW5kIG9uIGFuaW1hdGlvbi4gVGhpcyBtZXRob2QgbmVlZHMgdG8gYmUgY2FsbGVkIHdoZW4gYSBtYXRlcmlhbCBpcyBhc3NpZ25lZC5cblx0ICpcblx0ICogQHBhcmFtIG93bmVyIFRoZSBJUmVuZGVyYWJsZU93bmVyIHRoYXQgaGFkIHRoaXMgbWF0ZXJpYWwgYXNzaWduZWRcblx0ICpcblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRwdWJsaWMgaUFkZE93bmVyKG93bmVyOklSZW5kZXJhYmxlT3duZXIpXG5cdHtcblx0XHR0aGlzLl9vd25lcnMucHVzaChvd25lcik7XG5cblx0XHR2YXIgYW5pbWF0aW9uU2V0OklBbmltYXRpb25TZXQ7XG5cdFx0dmFyIGFuaW1hdG9yOklBbmltYXRvciA9IDxJQW5pbWF0b3I+IG93bmVyLmFuaW1hdG9yO1xuXG5cdFx0aWYgKGFuaW1hdG9yKVxuXHRcdFx0YW5pbWF0aW9uU2V0ID0gPElBbmltYXRpb25TZXQ+IGFuaW1hdG9yLmFuaW1hdGlvblNldDtcblxuXHRcdGlmIChvd25lci5hbmltYXRvcikge1xuXHRcdFx0aWYgKHRoaXMuX2FuaW1hdGlvblNldCAmJiBhbmltYXRpb25TZXQgIT0gdGhpcy5fYW5pbWF0aW9uU2V0KSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIkEgTWF0ZXJpYWwgaW5zdGFuY2UgY2Fubm90IGJlIHNoYXJlZCBhY3Jvc3MgbWF0ZXJpYWwgb3duZXJzIHdpdGggZGlmZmVyZW50IGFuaW1hdGlvbiBzZXRzXCIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKHRoaXMuX2FuaW1hdGlvblNldCAhPSBhbmltYXRpb25TZXQpIHtcblxuXHRcdFx0XHRcdHRoaXMuX2FuaW1hdGlvblNldCA9IGFuaW1hdGlvblNldDtcblxuXHRcdFx0XHRcdHRoaXMuaW52YWxpZGF0ZUFuaW1hdGlvbigpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgYW4gSVJlbmRlcmFibGVPd25lciBhcyBvd25lci5cblx0ICogQHBhcmFtIG93bmVyXG5cdCAqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0cHVibGljIGlSZW1vdmVPd25lcihvd25lcjpJUmVuZGVyYWJsZU93bmVyKVxuXHR7XG5cdFx0dGhpcy5fb3duZXJzLnNwbGljZSh0aGlzLl9vd25lcnMuaW5kZXhPZihvd25lciksIDEpO1xuXG5cdFx0aWYgKHRoaXMuX293bmVycy5sZW5ndGggPT0gMCkge1xuXHRcdFx0dGhpcy5fYW5pbWF0aW9uU2V0ID0gbnVsbDtcblxuXHRcdFx0dGhpcy5pbnZhbGlkYXRlQW5pbWF0aW9uKCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEEgbGlzdCBvZiB0aGUgSVJlbmRlcmFibGVPd25lcnMgdGhhdCB1c2UgdGhpcyBtYXRlcmlhbFxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHVibGljIGdldCBpT3duZXJzKCk6QXJyYXk8SVJlbmRlcmFibGVPd25lcj5cblx0e1xuXHRcdHJldHVybiB0aGlzLl9vd25lcnM7XG5cdH1cblxuXHQvKipcblx0ICogTWFya3MgdGhlIHNoYWRlciBwcm9ncmFtcyBmb3IgYWxsIHBhc3NlcyBhcyBpbnZhbGlkLCBzbyB0aGV5IHdpbGwgYmUgcmVjb21waWxlZCBiZWZvcmUgdGhlIG5leHQgdXNlLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHVibGljIF9wSW52YWxpZGF0ZVByb3BlcnRpZXMoKVxuXHR7XG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9yZW5kZXJPYmplY3RzLmxlbmd0aDtcblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCBsZW47IGkrKylcblx0XHRcdHRoaXMuX3JlbmRlck9iamVjdHNbaV0uaW52YWxpZGF0ZVByb3BlcnRpZXMoKTtcblx0fVxuXG5cdHByaXZhdGUgaW52YWxpZGF0ZUFuaW1hdGlvbigpXG5cdHtcblx0XHR2YXIgbGVuOm51bWJlciA9IHRoaXMuX3JlbmRlck9iamVjdHMubGVuZ3RoO1xuXHRcdGZvciAodmFyIGk6bnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKVxuXHRcdFx0dGhpcy5fcmVuZGVyT2JqZWN0c1tpXS5pbnZhbGlkYXRlQW5pbWF0aW9uKCk7XG5cdH1cblx0XG5cdHB1YmxpYyBfcEludmFsaWRhdGVSZW5kZXJPYmplY3QoKVxuXHR7XG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9yZW5kZXJPYmplY3RzLmxlbmd0aDtcblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCBsZW47IGkrKylcblx0XHRcdHRoaXMuX3JlbmRlck9iamVjdHNbaV0uaW52YWxpZGF0ZVJlbmRlck9iamVjdCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENhbGxlZCB3aGVuIHRoZSBsaWdodCBwaWNrZXIncyBjb25maWd1cmF0aW9uIGNoYW5nZWQuXG5cdCAqL1xuXHRwcml2YXRlIG9uTGlnaHRzQ2hhbmdlKGV2ZW50OkV2ZW50KVxuXHR7XG5cdFx0dGhpcy5fcEludmFsaWRhdGVSZW5kZXJPYmplY3QoKTtcblx0fVxuXG5cdHB1YmxpYyBfcE5vdGlmeVNpemVDaGFuZ2VkKClcblx0e1xuXHRcdGlmICghdGhpcy5fc2l6ZUNoYW5nZWQpXG5cdFx0XHR0aGlzLl9zaXplQ2hhbmdlZCA9IG5ldyBNYXRlcmlhbEV2ZW50KE1hdGVyaWFsRXZlbnQuU0laRV9DSEFOR0VEKTtcblxuXHRcdHRoaXMuZGlzcGF0Y2hFdmVudCh0aGlzLl9zaXplQ2hhbmdlZCk7XG5cdH1cblxuXHRwdWJsaWMgX2lBZGRSZW5kZXJPYmplY3QocmVuZGVyT2JqZWN0OklSZW5kZXJPYmplY3QpOklSZW5kZXJPYmplY3Rcblx0e1xuXHRcdHRoaXMuX3JlbmRlck9iamVjdHMucHVzaChyZW5kZXJPYmplY3QpO1xuXG5cdFx0cmV0dXJuIHJlbmRlck9iamVjdDtcblx0fVxuXG5cdHB1YmxpYyBfaVJlbW92ZVJlbmRlck9iamVjdChyZW5kZXJPYmplY3Q6SVJlbmRlck9iamVjdCk6SVJlbmRlck9iamVjdFxuXHR7XG5cdFx0dGhpcy5fcmVuZGVyT2JqZWN0cy5zcGxpY2UodGhpcy5fcmVuZGVyT2JqZWN0cy5pbmRleE9mKHJlbmRlck9iamVjdCksIDEpO1xuXG5cdFx0cmV0dXJuIHJlbmRlck9iamVjdDtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gcmVuZGVyZXJcblx0ICpcblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRwdWJsaWMgZ2V0UmVuZGVyT2JqZWN0KHJlbmRlcmFibGVQb29sOklSZW5kZXJhYmxlUG9vbClcblx0e1xuXHRcdHJldHVybiByZW5kZXJhYmxlUG9vbC5nZXRNYXRlcmlhbFJlbmRlck9iamVjdCh0aGlzKTtcblx0fVxufVxuXG5leHBvcnQgPSBNYXRlcmlhbEJhc2U7Il19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9tYXRlcmlhbHMvbWF0ZXJpYWxiYXNlLnRzIl0sIm5hbWVzIjpbIk1hdGVyaWFsQmFzZSIsIk1hdGVyaWFsQmFzZS5jb25zdHJ1Y3RvciIsIk1hdGVyaWFsQmFzZS5hc3NldFR5cGUiLCJNYXRlcmlhbEJhc2UuYWxwaGEiLCJNYXRlcmlhbEJhc2UuY29sb3JUcmFuc2Zvcm0iLCJNYXRlcmlhbEJhc2UuYWxwaGFCbGVuZGluZyIsIk1hdGVyaWFsQmFzZS5oZWlnaHQiLCJNYXRlcmlhbEJhc2UuYW5pbWF0aW9uU2V0IiwiTWF0ZXJpYWxCYXNlLmxpZ2h0UGlja2VyIiwiTWF0ZXJpYWxCYXNlLm1pcG1hcCIsIk1hdGVyaWFsQmFzZS5zbW9vdGgiLCJNYXRlcmlhbEJhc2UucmVwZWF0IiwiTWF0ZXJpYWxCYXNlLmNvbG9yIiwiTWF0ZXJpYWxCYXNlLnRleHR1cmUiLCJNYXRlcmlhbEJhc2UuYW5pbWF0ZVVWcyIsIk1hdGVyaWFsQmFzZS5lbmFibGVMaWdodEZhbGxPZmYiLCJNYXRlcmlhbEJhc2UuZGlmZnVzZUxpZ2h0U291cmNlcyIsIk1hdGVyaWFsQmFzZS5zcGVjdWxhckxpZ2h0U291cmNlcyIsIk1hdGVyaWFsQmFzZS5kaXNwb3NlIiwiTWF0ZXJpYWxCYXNlLmJvdGhTaWRlcyIsIk1hdGVyaWFsQmFzZS5ibGVuZE1vZGUiLCJNYXRlcmlhbEJhc2UuYWxwaGFQcmVtdWx0aXBsaWVkIiwiTWF0ZXJpYWxCYXNlLmFscGhhVGhyZXNob2xkIiwiTWF0ZXJpYWxCYXNlLndpZHRoIiwiTWF0ZXJpYWxCYXNlLmlBZGRPd25lciIsIk1hdGVyaWFsQmFzZS5pUmVtb3ZlT3duZXIiLCJNYXRlcmlhbEJhc2UuaU93bmVycyIsIk1hdGVyaWFsQmFzZS5fcEludmFsaWRhdGVQYXNzZXMiLCJNYXRlcmlhbEJhc2UuaW52YWxpZGF0ZUFuaW1hdGlvbiIsIk1hdGVyaWFsQmFzZS5fcEludmFsaWRhdGVSZW5kZXJPYmplY3QiLCJNYXRlcmlhbEJhc2Uub25MaWdodHNDaGFuZ2UiLCJNYXRlcmlhbEJhc2UuX3BOb3RpZnlTaXplQ2hhbmdlZCIsIk1hdGVyaWFsQmFzZS5faUFkZFJlbmRlck9iamVjdCIsIk1hdGVyaWFsQmFzZS5faVJlbW92ZVJlbmRlck9iamVjdCIsIk1hdGVyaWFsQmFzZS5nZXRSZW5kZXJPYmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQU8sY0FBYyxXQUFjLHFDQUFxQyxDQUFDLENBQUM7QUFFMUUsSUFBTyxtQkFBbUIsV0FBYSw0Q0FBNEMsQ0FBQyxDQUFDO0FBQ3JGLElBQU8sS0FBSyxXQUFnQiw4QkFBOEIsQ0FBQyxDQUFDO0FBQzVELElBQU8sU0FBUyxXQUFlLG1DQUFtQyxDQUFDLENBQUM7QUFFcEUsSUFBTyxjQUFjLFdBQWMsd0NBQXdDLENBQUMsQ0FBQztBQUs3RSxJQUFPLFNBQVMsV0FBZSxtQ0FBbUMsQ0FBQyxDQUFDO0FBTXBFLElBQU8sYUFBYSxXQUFjLHlDQUF5QyxDQUFDLENBQUM7QUFDN0UsSUFBTyxvQkFBb0IsV0FBYSxnREFBZ0QsQ0FBQyxDQUFDO0FBSzFGLEFBV0E7Ozs7Ozs7Ozs7R0FERztJQUNHLFlBQVk7SUFBU0EsVUFBckJBLFlBQVlBLFVBQXVCQTtJQXlFeENBOztPQUVHQTtJQUNIQSxTQTVFS0EsWUFBWUE7UUFBbEJDLGlCQXVtQkNBO1FBemhCQ0EsaUJBQU9BLENBQUNBO1FBM0VEQSxtQkFBY0EsR0FBV0EsS0FBS0EsQ0FBQ0E7UUFDL0JBLFdBQU1BLEdBQVVBLENBQUNBLENBQUNBO1FBR2xCQSxtQkFBY0EsR0FBd0JBLElBQUlBLEtBQUtBLEVBQWlCQSxDQUFDQTtRQUVsRUEscUJBQWdCQSxHQUFVQSxDQUFDQSxDQUFDQTtRQUM1QkEsaUJBQVlBLEdBQVdBLEtBQUtBLENBQUNBO1FBQzVCQSx3QkFBbUJBLEdBQVdBLElBQUlBLENBQUNBO1FBQ25DQSwwQkFBcUJBLEdBQVVBLElBQUlBLENBQUNBO1FBQ3BDQSx5QkFBb0JBLEdBQVVBLElBQUlBLENBQUNBO1FBaUIzQ0E7Ozs7V0FJ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WUFBWUEsQ0FBQ0E7WUFDdEJBLElBQUlBLENBQUNBLFlBQVlBLEdBQUdBLElBQUlBLGFBQWFBLENBQUNBLGFBQWFBLENBQUNBLFlBQVlBLENBQUNBLENBQUNBO1FBRW5FQSxJQUFJQSxDQUFDQSxhQUFhQSxDQUFDQSxJQUFJQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQTtJQUN2Q0EsQ0FBQ0E7SUFFTS9CLHdDQUFpQkEsR0FBeEJBLFVBQXlCQSxZQUEwQkE7UUFFbERnQyxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxJQUFJQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQTtRQUV2Q0EsTUFBTUEsQ0FBQ0EsWUFBWUEsQ0FBQ0E7SUFDckJBLENBQUNBO0lBRU1oQywyQ0FBb0JBLEdBQTNCQSxVQUE0QkEsWUFBMEJBO1FBRXJEaUMsSUFBSUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFFekVBLE1BQU1BLENBQUNBLFlBQVlBLENBQUNBO0lBQ3JCQSxDQUFDQTtJQUVEakM7Ozs7O09BS0dBO0lBQ0lBLHNDQUFlQSxHQUF0QkEsVUFBdUJBLGNBQThCQTtRQUVwRGtDLE1BQU1BLElBQUlBLG1CQUFtQkEsRUFBRUEsQ0FBQ0E7SUFDakNBLENBQUNBO0lBQ0ZsQyxtQkFBQ0E7QUFBREEsQ0F2bUJBLEFBdW1CQ0EsRUF2bUIwQixjQUFjLEVBdW1CeEM7QUFFRCxBQUFzQixpQkFBYixZQUFZLENBQUMiLCJmaWxlIjoibWF0ZXJpYWxzL01hdGVyaWFsQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29sb3JUcmFuc2Zvcm1cdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9nZW9tL0NvbG9yVHJhbnNmb3JtXCIpO1xuaW1wb3J0IE1hdHJpeDNEXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2dlb20vTWF0cml4M0RcIik7XG5pbXBvcnQgQWJzdHJhY3RNZXRob2RFcnJvclx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9lcnJvcnMvQWJzdHJhY3RNZXRob2RFcnJvclwiKTtcbmltcG9ydCBFdmVudFx0XHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9ldmVudHMvRXZlbnRcIik7XG5pbXBvcnQgQXNzZXRUeXBlXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9saWJyYXJ5L0Fzc2V0VHlwZVwiKTtcbmltcG9ydCBJQXNzZXRcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvbGlicmFyeS9JQXNzZXRcIik7XG5pbXBvcnQgTmFtZWRBc3NldEJhc2VcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi9saWJyYXJ5L05hbWVkQXNzZXRCYXNlXCIpO1xuaW1wb3J0IFRleHR1cmUyREJhc2VcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi90ZXh0dXJlcy9UZXh0dXJlMkRCYXNlXCIpO1xuXG5pbXBvcnQgSUFuaW1hdGlvblNldFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2FuaW1hdG9ycy9JQW5pbWF0aW9uU2V0XCIpO1xuaW1wb3J0IElBbmltYXRvclx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYW5pbWF0b3JzL0lBbmltYXRvclwiKTtcbmltcG9ydCBCbGVuZE1vZGVcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvQmxlbmRNb2RlXCIpO1xuaW1wb3J0IElSZW5kZXJPYmplY3RPd25lclx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL0lSZW5kZXJPYmplY3RPd25lclwiKTtcbmltcG9ydCBJUmVuZGVyYWJsZU93bmVyXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9JUmVuZGVyYWJsZU93bmVyXCIpO1xuaW1wb3J0IElSZW5kZXJPYmplY3RcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL0lSZW5kZXJPYmplY3RcIik7XG5pbXBvcnQgSVJlbmRlcmFibGVQb29sXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcG9vbC9JUmVuZGVyYWJsZVBvb2xcIik7XG5pbXBvcnQgQ2FtZXJhXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2VudGl0aWVzL0NhbWVyYVwiKTtcbmltcG9ydCBNYXRlcmlhbEV2ZW50XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZXZlbnRzL01hdGVyaWFsRXZlbnRcIik7XG5pbXBvcnQgUmVuZGVyYWJsZU93bmVyRXZlbnRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZXZlbnRzL1JlbmRlcmFibGVPd25lckV2ZW50XCIpO1xuaW1wb3J0IExpZ2h0UGlja2VyQmFzZVx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL21hdGVyaWFscy9saWdodHBpY2tlcnMvTGlnaHRQaWNrZXJCYXNlXCIpO1xuaW1wb3J0IElSZW5kZXJlclx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvcmVuZGVyL0lSZW5kZXJlclwiKTtcblxuXG4vKipcbiAqIE1hdGVyaWFsQmFzZSBmb3JtcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBhbnkgbWF0ZXJpYWwuXG4gKiBBIG1hdGVyaWFsIGNvbnNpc3RzIG9mIHNldmVyYWwgcGFzc2VzLCBlYWNoIG9mIHdoaWNoIGNvbnN0aXR1dGVzIGF0IGxlYXN0IG9uZSByZW5kZXIgY2FsbC4gU2V2ZXJhbCBwYXNzZXMgY291bGRcbiAqIGJlIHVzZWQgZm9yIHNwZWNpYWwgZWZmZWN0cyAocmVuZGVyIGxpZ2h0aW5nIGZvciBtYW55IGxpZ2h0cyBpbiBzZXZlcmFsIHBhc3NlcywgcmVuZGVyIGFuIG91dGxpbmUgaW4gYSBzZXBhcmF0ZVxuICogcGFzcykgb3IgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIHJlbmRlci10by10ZXh0dXJlIHBhc3NlcyAocmVuZGVyaW5nIGRpZmZ1c2UgbGlnaHQgdG8gdGV4dHVyZSBmb3IgdGV4dHVyZS1zcGFjZVxuICogc3Vic3VyZmFjZSBzY2F0dGVyaW5nLCBvciByZW5kZXJpbmcgYSBkZXB0aCBtYXAgZm9yIHNwZWNpYWxpemVkIHNlbGYtc2hhZG93aW5nKS5cbiAqXG4gKiBBd2F5M0QgcHJvdmlkZXMgZGVmYXVsdCBtYXRlcmlhbHMgdHJvdWdoIFNpbmdsZVBhc3NNYXRlcmlhbEJhc2UgYW5kIFRyaWFuZ2xlTWF0ZXJpYWwsIHdoaWNoIHVzZSBtb2R1bGFyXG4gKiBtZXRob2RzIHRvIGJ1aWxkIHRoZSBzaGFkZXIgY29kZS4gTWF0ZXJpYWxCYXNlIGNhbiBiZSBleHRlbmRlZCB0byBidWlsZCBzcGVjaWZpYyBhbmQgaGlnaC1wZXJmb3JtYW50IGN1c3RvbVxuICogc2hhZGVycywgb3IgZW50aXJlIG5ldyBtYXRlcmlhbCBmcmFtZXdvcmtzLlxuICovXG5jbGFzcyBNYXRlcmlhbEJhc2UgZXh0ZW5kcyBOYW1lZEFzc2V0QmFzZSBpbXBsZW1lbnRzIElSZW5kZXJPYmplY3RPd25lclxue1xuXHRwcml2YXRlIF9jb2xvclRyYW5zZm9ybTpDb2xvclRyYW5zZm9ybTtcblx0cHJpdmF0ZSBfYWxwaGFCbGVuZGluZzpib29sZWFuID0gZmFsc2U7XG5cdHByaXZhdGUgX2FscGhhOm51bWJlciA9IDE7XG5cdFxuXHRwcml2YXRlIF9zaXplQ2hhbmdlZDpNYXRlcmlhbEV2ZW50O1xuXHRwcml2YXRlIF9yZW5kZXJPYmplY3RzOkFycmF5PElSZW5kZXJPYmplY3Q+ID0gbmV3IEFycmF5PElSZW5kZXJPYmplY3Q+KCk7XG5cblx0cHVibGljIF9wQWxwaGFUaHJlc2hvbGQ6bnVtYmVyID0gMDtcblx0cHVibGljIF9wQW5pbWF0ZVVWczpib29sZWFuID0gZmFsc2U7XG5cdHByaXZhdGUgX2VuYWJsZUxpZ2h0RmFsbE9mZjpib29sZWFuID0gdHJ1ZTtcblx0cHJpdmF0ZSBfc3BlY3VsYXJMaWdodFNvdXJjZXM6bnVtYmVyID0gMHgwMTtcblx0cHJpdmF0ZSBfZGlmZnVzZUxpZ2h0U291cmNlczpudW1iZXIgPSAweDAzO1xuXG5cdC8qKlxuXHQgKiBBbiBvYmplY3QgdG8gY29udGFpbiBhbnkgZXh0cmEgZGF0YS5cblx0ICovXG5cdHB1YmxpYyBleHRyYTpPYmplY3Q7XG5cblx0LyoqXG5cdCAqIEEgdmFsdWUgdGhhdCBjYW4gYmUgdXNlZCBieSBtYXRlcmlhbHMgdGhhdCBvbmx5IHdvcmsgd2l0aCBhIGdpdmVuIHR5cGUgb2YgcmVuZGVyZXIuIFRoZSByZW5kZXJlciBjYW4gdGVzdCB0aGVcblx0ICogY2xhc3NpZmljYXRpb24gdG8gY2hvb3NlIHdoaWNoIHJlbmRlciBwYXRoIHRvIHVzZS4gRm9yIGV4YW1wbGUsIGEgZGVmZXJyZWQgbWF0ZXJpYWwgY291bGQgc2V0IHRoaXMgdmFsdWUgc29cblx0ICogdGhhdCB0aGUgZGVmZXJyZWQgcmVuZGVyZXIga25vd3Mgbm90IHRvIHRha2UgdGhlIGZvcndhcmQgcmVuZGVyaW5nIHBhdGguXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwdWJsaWMgX2lDbGFzc2lmaWNhdGlvbjpzdHJpbmc7XG5cblxuXHQvKipcblx0ICogQW4gaWQgZm9yIHRoaXMgbWF0ZXJpYWwgdXNlZCB0byBzb3J0IHRoZSByZW5kZXJhYmxlcyBieSBzaGFkZXIgcHJvZ3JhbSwgd2hpY2ggcmVkdWNlcyBQcm9ncmFtIHN0YXRlIGNoYW5nZXMuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwdWJsaWMgX2lNYXRlcmlhbElkOm51bWJlciA9IDA7XG5cblx0cHVibGljIF9pQmFzZVNjcmVlblBhc3NJbmRleDpudW1iZXIgPSAwO1xuXG5cdHByaXZhdGUgX2JvdGhTaWRlczpib29sZWFuID0gZmFsc2U7IC8vIHVwZGF0ZVxuXHRwcml2YXRlIF9hbmltYXRpb25TZXQ6SUFuaW1hdGlvblNldDtcblxuXHQvKipcblx0ICogQSBsaXN0IG9mIG1hdGVyaWFsIG93bmVycywgcmVuZGVyYWJsZXMgb3IgY3VzdG9tIEVudGl0aWVzLlxuXHQgKi9cblx0cHJpdmF0ZSBfb3duZXJzOkFycmF5PElSZW5kZXJhYmxlT3duZXI+O1xuXG5cdHByaXZhdGUgX2FscGhhUHJlbXVsdGlwbGllZDpib29sZWFuO1xuXG5cdHB1YmxpYyBfcEJsZW5kTW9kZTpzdHJpbmcgPSBCbGVuZE1vZGUuTk9STUFMO1xuXG5cdHByaXZhdGUgX21pcG1hcDpib29sZWFuID0gZmFsc2U7XG5cdHByaXZhdGUgX3Ntb290aDpib29sZWFuID0gdHJ1ZTtcblx0cHJpdmF0ZSBfcmVwZWF0OmJvb2xlYW4gPSBmYWxzZTtcblx0cHJpdmF0ZSBfY29sb3I6bnVtYmVyID0gMHhGRkZGRkY7XG5cdHB1YmxpYyBfcFRleHR1cmU6VGV4dHVyZTJEQmFzZTtcblxuXHRwdWJsaWMgX3BMaWdodFBpY2tlcjpMaWdodFBpY2tlckJhc2U7XG5cblx0cHVibGljIF9wSGVpZ2h0Om51bWJlciA9IDE7XG5cdHB1YmxpYyBfcFdpZHRoOm51bWJlciA9IDE7XG5cblx0cHJpdmF0ZSBfb25MaWdodENoYW5nZURlbGVnYXRlOihldmVudDpFdmVudCkgPT4gdm9pZDtcblxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCBhc3NldFR5cGUoKTpzdHJpbmdcblx0e1xuXHRcdHJldHVybiBBc3NldFR5cGUuTUFURVJJQUw7O1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBuZXcgTWF0ZXJpYWxCYXNlIG9iamVjdC5cblx0ICovXG5cdGNvbnN0cnVjdG9yKClcblx0e1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLl9pTWF0ZXJpYWxJZCA9IE51bWJlcih0aGlzLmlkKTtcblxuXHRcdHRoaXMuX293bmVycyA9IG5ldyBBcnJheTxJUmVuZGVyYWJsZU93bmVyPigpO1xuXG5cdFx0dGhpcy5fb25MaWdodENoYW5nZURlbGVnYXRlID0gKGV2ZW50OkV2ZW50KSA9PiB0aGlzLm9uTGlnaHRzQ2hhbmdlKGV2ZW50KTtcblxuXHRcdHRoaXMuYWxwaGFQcmVtdWx0aXBsaWVkID0gZmFsc2U7IC8vVE9ETzogd29yayBvdXQgd2h5IHRoaXMgaXMgZGlmZmVyZW50IGZvciBXZWJHTFxuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBhbHBoYSBvZiB0aGUgc3VyZmFjZS5cblx0ICovXG5cdHB1YmxpYyBnZXQgYWxwaGEoKTpudW1iZXJcblx0e1xuXHRcdHJldHVybiB0aGlzLl9hbHBoYTtcblx0fVxuXG5cdHB1YmxpYyBzZXQgYWxwaGEodmFsdWU6bnVtYmVyKVxuXHR7XG5cdFx0aWYgKHZhbHVlID4gMSlcblx0XHRcdHZhbHVlID0gMTtcblx0XHRlbHNlIGlmICh2YWx1ZSA8IDApXG5cdFx0XHR2YWx1ZSA9IDA7XG5cblx0XHRpZiAodGhpcy5fYWxwaGEgPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9hbHBoYSA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuX2NvbG9yVHJhbnNmb3JtID09IG51bGwpXG5cdFx0XHR0aGlzLl9jb2xvclRyYW5zZm9ybSA9IG5ldyBDb2xvclRyYW5zZm9ybSgpO1xuXG5cdFx0dGhpcy5fY29sb3JUcmFuc2Zvcm0uYWxwaGFNdWx0aXBsaWVyID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVJlbmRlck9iamVjdCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBDb2xvclRyYW5zZm9ybSBvYmplY3QgdG8gdHJhbnNmb3JtIHRoZSBjb2xvdXIgb2YgdGhlIG1hdGVyaWFsIHdpdGguIERlZmF1bHRzIHRvIG51bGwuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGNvbG9yVHJhbnNmb3JtKCk6Q29sb3JUcmFuc2Zvcm1cblx0e1xuXHRcdHJldHVybiB0aGlzLl9jb2xvclRyYW5zZm9ybTtcblx0fVxuXG5cdHB1YmxpYyBzZXQgY29sb3JUcmFuc2Zvcm0odmFsdWU6Q29sb3JUcmFuc2Zvcm0pXG5cdHtcblx0XHR0aGlzLl9jb2xvclRyYW5zZm9ybSA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVSZW5kZXJPYmplY3QoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIG1hdGVyaWFsIGhhcyB0cmFuc3BhcmVuY3kuIElmIGJpbmFyeSB0cmFuc3BhcmVuY3kgaXMgc3VmZmljaWVudCwgZm9yXG5cdCAqIGV4YW1wbGUgd2hlbiB1c2luZyB0ZXh0dXJlcyBvZiBmb2xpYWdlLCBjb25zaWRlciB1c2luZyBhbHBoYVRocmVzaG9sZCBpbnN0ZWFkLlxuXHQgKi9cblx0cHVibGljIGdldCBhbHBoYUJsZW5kaW5nKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2FscGhhQmxlbmRpbmc7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGFscGhhQmxlbmRpbmcodmFsdWU6Ym9vbGVhbilcblx0e1xuXHRcdGlmICh0aGlzLl9hbHBoYUJsZW5kaW5nID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fYWxwaGFCbGVuZGluZyA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVSZW5kZXJPYmplY3QoKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGhlaWdodCgpOm51bWJlclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BIZWlnaHQ7XG5cdH1cblxuXHQvKipcblx0ICpcblx0ICovXG5cdHB1YmxpYyBnZXQgYW5pbWF0aW9uU2V0KCk6SUFuaW1hdGlvblNldFxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2FuaW1hdGlvblNldDtcblx0fVxuXG5cblx0LyoqXG5cdCAqIFRoZSBsaWdodCBwaWNrZXIgdXNlZCBieSB0aGUgbWF0ZXJpYWwgdG8gcHJvdmlkZSBsaWdodHMgdG8gdGhlIG1hdGVyaWFsIGlmIGl0IHN1cHBvcnRzIGxpZ2h0aW5nLlxuXHQgKlxuXHQgKiBAc2VlIExpZ2h0UGlja2VyQmFzZVxuXHQgKiBAc2VlIFN0YXRpY0xpZ2h0UGlja2VyXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGxpZ2h0UGlja2VyKCk6TGlnaHRQaWNrZXJCYXNlXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcExpZ2h0UGlja2VyO1xuXHR9XG5cblx0cHVibGljIHNldCBsaWdodFBpY2tlcih2YWx1ZTpMaWdodFBpY2tlckJhc2UpXG5cdHtcblx0XHRpZiAodGhpcy5fcExpZ2h0UGlja2VyID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0aWYgKHRoaXMuX3BMaWdodFBpY2tlcilcblx0XHRcdHRoaXMuX3BMaWdodFBpY2tlci5yZW1vdmVFdmVudExpc3RlbmVyKEV2ZW50LkNIQU5HRSwgdGhpcy5fb25MaWdodENoYW5nZURlbGVnYXRlKTtcblxuXHRcdHRoaXMuX3BMaWdodFBpY2tlciA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuX3BMaWdodFBpY2tlcilcblx0XHRcdHRoaXMuX3BMaWdodFBpY2tlci5hZGRFdmVudExpc3RlbmVyKEV2ZW50LkNIQU5HRSwgdGhpcy5fb25MaWdodENoYW5nZURlbGVnYXRlKTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUmVuZGVyT2JqZWN0KCk7XG5cdH1cblxuXHQvKipcblx0ICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFueSB1c2VkIHRleHR1cmVzIHNob3VsZCB1c2UgbWlwbWFwcGluZy4gRGVmYXVsdHMgdG8gdHJ1ZS5cblx0ICovXG5cdHB1YmxpYyBnZXQgbWlwbWFwKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX21pcG1hcDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgbWlwbWFwKHZhbHVlOmJvb2xlYW4pXG5cdHtcblx0XHRpZiAodGhpcy5fbWlwbWFwID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fbWlwbWFwID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVBhc3NlcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbnkgdXNlZCB0ZXh0dXJlcyBzaG91bGQgdXNlIHNtb290aGluZy5cblx0ICovXG5cdHB1YmxpYyBnZXQgc21vb3RoKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3Ntb290aDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgc21vb3RoKHZhbHVlOmJvb2xlYW4pXG5cdHtcblx0XHRpZiAodGhpcy5fc21vb3RoID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fc21vb3RoID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVBhc3NlcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbnkgdXNlZCB0ZXh0dXJlcyBzaG91bGQgYmUgdGlsZWQuIElmIHNldCB0byBmYWxzZSwgdGV4dHVyZSBzYW1wbGVzIGFyZSBjbGFtcGVkIHRvXG5cdCAqIHRoZSB0ZXh0dXJlJ3MgYm9yZGVycyB3aGVuIHRoZSB1diBjb29yZGluYXRlcyBhcmUgb3V0c2lkZSB0aGUgWzAsIDFdIGludGVydmFsLlxuXHQgKi9cblx0cHVibGljIGdldCByZXBlYXQoKTpib29sZWFuXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcmVwZWF0O1xuXHR9XG5cblx0cHVibGljIHNldCByZXBlYXQodmFsdWU6Ym9vbGVhbilcblx0e1xuXHRcdGlmICh0aGlzLl9yZXBlYXQgPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9yZXBlYXQgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUGFzc2VzKCk7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGRpZmZ1c2UgcmVmbGVjdGl2aXR5IGNvbG9yIG9mIHRoZSBzdXJmYWNlLlxuXHQgKi9cblx0cHVibGljIGdldCBjb2xvcigpOm51bWJlclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2NvbG9yO1xuXHR9XG5cblx0cHVibGljIHNldCBjb2xvcih2YWx1ZTpudW1iZXIpXG5cdHtcblx0XHRpZiAodGhpcy5fY29sb3IgPT0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9jb2xvciA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVQYXNzZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgdGV4dHVyZSBvYmplY3QgdG8gdXNlIGZvciB0aGUgYWxiZWRvIGNvbG91ci5cblx0ICovXG5cdHB1YmxpYyBnZXQgdGV4dHVyZSgpOlRleHR1cmUyREJhc2Vcblx0e1xuXHRcdHJldHVybiB0aGlzLl9wVGV4dHVyZTtcblx0fVxuXG5cdHB1YmxpYyBzZXQgdGV4dHVyZSh2YWx1ZTpUZXh0dXJlMkRCYXNlKVxuXHR7XG5cdFx0aWYgKHRoaXMuX3BUZXh0dXJlID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fcFRleHR1cmUgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUGFzc2VzKCk7XG5cblx0XHR0aGlzLl9wSGVpZ2h0ID0gdGhpcy5fcFRleHR1cmUuaGVpZ2h0O1xuXHRcdHRoaXMuX3BXaWR0aCA9IHRoaXMuX3BUZXh0dXJlLndpZHRoO1xuXG5cdFx0dGhpcy5fcE5vdGlmeVNpemVDaGFuZ2VkKCk7XG5cdH1cblxuXHQvKipcblx0ICogU3BlY2lmaWVzIHdoZXRoZXIgb3Igbm90IHRoZSBVViBjb29yZGluYXRlcyBzaG91bGQgYmUgYW5pbWF0ZWQgdXNpbmcgYSB0cmFuc2Zvcm1hdGlvbiBtYXRyaXguXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGFuaW1hdGVVVnMoKTpib29sZWFuXG5cdHtcblx0XHRyZXR1cm4gdGhpcy5fcEFuaW1hdGVVVnM7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGFuaW1hdGVVVnModmFsdWU6Ym9vbGVhbilcblx0e1xuXHRcdGlmICh0aGlzLl9wQW5pbWF0ZVVWcyA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX3BBbmltYXRlVVZzID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVBhc3NlcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSBmYWxsT2ZmIGFuZCByYWRpdXMgcHJvcGVydGllcyBmb3IgbGlnaHRzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UgYW5kXG5cdCAqIGNvbXBhdGliaWxpdHkgZm9yIGNvbnN0cmFpbmVkIG1vZGUuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGVuYWJsZUxpZ2h0RmFsbE9mZigpOmJvb2xlYW5cblx0e1xuXHRcdHJldHVybiB0aGlzLl9lbmFibGVMaWdodEZhbGxPZmY7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGVuYWJsZUxpZ2h0RmFsbE9mZih2YWx1ZTpib29sZWFuKVxuXHR7XG5cdFx0aWYgKHRoaXMuX2VuYWJsZUxpZ2h0RmFsbE9mZiA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX2VuYWJsZUxpZ2h0RmFsbE9mZiA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVQYXNzZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEZWZpbmUgd2hpY2ggbGlnaHQgc291cmNlIHR5cGVzIHRvIHVzZSBmb3IgZGlmZnVzZSByZWZsZWN0aW9ucy4gVGhpcyBhbGxvd3MgY2hvb3NpbmcgYmV0d2VlbiByZWd1bGFyIGxpZ2h0c1xuXHQgKiBhbmQvb3IgbGlnaHQgcHJvYmVzIGZvciBkaWZmdXNlIHJlZmxlY3Rpb25zLlxuXHQgKlxuXHQgKiBAc2VlIGF3YXkzZC5tYXRlcmlhbHMuTGlnaHRTb3VyY2VzXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGRpZmZ1c2VMaWdodFNvdXJjZXMoKTpudW1iZXJcblx0e1xuXHRcdHJldHVybiB0aGlzLl9kaWZmdXNlTGlnaHRTb3VyY2VzO1xuXHR9XG5cblx0cHVibGljIHNldCBkaWZmdXNlTGlnaHRTb3VyY2VzKHZhbHVlOm51bWJlcilcblx0e1xuXHRcdGlmICh0aGlzLl9kaWZmdXNlTGlnaHRTb3VyY2VzID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fZGlmZnVzZUxpZ2h0U291cmNlcyA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVQYXNzZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEZWZpbmUgd2hpY2ggbGlnaHQgc291cmNlIHR5cGVzIHRvIHVzZSBmb3Igc3BlY3VsYXIgcmVmbGVjdGlvbnMuIFRoaXMgYWxsb3dzIGNob29zaW5nIGJldHdlZW4gcmVndWxhciBsaWdodHNcblx0ICogYW5kL29yIGxpZ2h0IHByb2JlcyBmb3Igc3BlY3VsYXIgcmVmbGVjdGlvbnMuXG5cdCAqXG5cdCAqIEBzZWUgYXdheTNkLm1hdGVyaWFscy5MaWdodFNvdXJjZXNcblx0ICovXG5cdHB1YmxpYyBnZXQgc3BlY3VsYXJMaWdodFNvdXJjZXMoKTpudW1iZXJcblx0e1xuXHRcdHJldHVybiB0aGlzLl9zcGVjdWxhckxpZ2h0U291cmNlcztcblx0fVxuXG5cdHB1YmxpYyBzZXQgc3BlY3VsYXJMaWdodFNvdXJjZXModmFsdWU6bnVtYmVyKVxuXHR7XG5cdFx0aWYgKHRoaXMuX3NwZWN1bGFyTGlnaHRTb3VyY2VzID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fc3BlY3VsYXJMaWdodFNvdXJjZXMgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUGFzc2VzKCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2xlYW5zIHVwIHJlc291cmNlcyBvd25lZCBieSB0aGUgbWF0ZXJpYWwsIGluY2x1ZGluZyBwYXNzZXMuIFRleHR1cmVzIGFyZSBub3Qgb3duZWQgYnkgdGhlIG1hdGVyaWFsIHNpbmNlIHRoZXlcblx0ICogY291bGQgYmUgdXNlZCBieSBvdGhlciBtYXRlcmlhbHMgYW5kIHdpbGwgbm90IGJlIGRpc3Bvc2VkLlxuXHQgKi9cblx0cHVibGljIGRpc3Bvc2UoKVxuXHR7XG5cdFx0dmFyIGk6bnVtYmVyO1xuXHRcdHZhciBsZW46bnVtYmVyO1xuXG5cdFx0bGVuID0gdGhpcy5fcmVuZGVyT2JqZWN0cy5sZW5ndGg7XG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKVxuXHRcdFx0dGhpcy5fcmVuZGVyT2JqZWN0c1tpXS5kaXNwb3NlKCk7XG5cblx0XHR0aGlzLl9yZW5kZXJPYmplY3RzID0gbmV3IEFycmF5PElSZW5kZXJPYmplY3Q+KCk7XG5cdH1cblxuXHQvKipcblx0ICogRGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgbWF0ZXJpYWwgc2hvdWxkIGN1bGwgdHJpYW5nbGVzIGZhY2luZyBhd2F5IGZyb20gdGhlIGNhbWVyYS5cblx0ICovXG5cdHB1YmxpYyBnZXQgYm90aFNpZGVzKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2JvdGhTaWRlcztcblx0fVxuXG5cdHB1YmxpYyBzZXQgYm90aFNpZGVzKHZhbHVlOmJvb2xlYW4pXG5cdHtcblx0XHRpZiAodGhpcy5fYm90aFNpZGVzID0gdmFsdWUpXG5cdFx0XHRyZXR1cm47XG5cblx0XHR0aGlzLl9ib3RoU2lkZXMgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUGFzc2VzKCk7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGJsZW5kIG1vZGUgdG8gdXNlIHdoZW4gZHJhd2luZyB0aGlzIHJlbmRlcmFibGUuIFRoZSBmb2xsb3dpbmcgYmxlbmQgbW9kZXMgYXJlIHN1cHBvcnRlZDpcblx0ICogPHVsPlxuXHQgKiA8bGk+QmxlbmRNb2RlLk5PUk1BTDogTm8gYmxlbmRpbmcsIHVubGVzcyB0aGUgbWF0ZXJpYWwgaW5oZXJlbnRseSBuZWVkcyBpdDwvbGk+XG5cdCAqIDxsaT5CbGVuZE1vZGUuTEFZRVI6IEZvcmNlIGJsZW5kaW5nLiBUaGlzIHdpbGwgZHJhdyB0aGUgb2JqZWN0IHRoZSBzYW1lIGFzIE5PUk1BTCwgYnV0IHdpdGhvdXQgd3JpdGluZyBkZXB0aCB3cml0ZXMuPC9saT5cblx0ICogPGxpPkJsZW5kTW9kZS5NVUxUSVBMWTwvbGk+XG5cdCAqIDxsaT5CbGVuZE1vZGUuQUREPC9saT5cblx0ICogPGxpPkJsZW5kTW9kZS5BTFBIQTwvbGk+XG5cdCAqIDwvdWw+XG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGJsZW5kTW9kZSgpOnN0cmluZ1xuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BCbGVuZE1vZGU7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGJsZW5kTW9kZSh2YWx1ZTpzdHJpbmcpXG5cdHtcblx0XHRpZiAodGhpcy5fcEJsZW5kTW9kZSA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX3BCbGVuZE1vZGUgPSB2YWx1ZTtcblxuXHRcdHRoaXMuX3BJbnZhbGlkYXRlUmVuZGVyT2JqZWN0KCk7XG5cdH1cblxuXHQvKipcblx0ICogSW5kaWNhdGVzIHdoZXRoZXIgdmlzaWJsZSB0ZXh0dXJlcyAob3Igb3RoZXIgcGl4ZWxzKSB1c2VkIGJ5IHRoaXMgbWF0ZXJpYWwgaGF2ZVxuXHQgKiBhbHJlYWR5IGJlZW4gcHJlbXVsdGlwbGllZC4gVG9nZ2xlIHRoaXMgaWYgeW91IGFyZSBzZWVpbmcgYmxhY2sgaGFsb3MgYXJvdW5kIHlvdXJcblx0ICogYmxlbmRlZCBhbHBoYSBlZGdlcy5cblx0ICovXG5cdHB1YmxpYyBnZXQgYWxwaGFQcmVtdWx0aXBsaWVkKCk6Ym9vbGVhblxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX2FscGhhUHJlbXVsdGlwbGllZDtcblx0fVxuXG5cdHB1YmxpYyBzZXQgYWxwaGFQcmVtdWx0aXBsaWVkKHZhbHVlOmJvb2xlYW4pXG5cdHtcblx0XHRpZiAodGhpcy5fYWxwaGFQcmVtdWx0aXBsaWVkID09IHZhbHVlKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0dGhpcy5fYWxwaGFQcmVtdWx0aXBsaWVkID0gdmFsdWU7XG5cblx0XHR0aGlzLl9wSW52YWxpZGF0ZVBhc3NlcygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBtaW5pbXVtIGFscGhhIHZhbHVlIGZvciB3aGljaCBwaXhlbHMgc2hvdWxkIGJlIGRyYXduLiBUaGlzIGlzIHVzZWQgZm9yIHRyYW5zcGFyZW5jeSB0aGF0IGlzIGVpdGhlclxuXHQgKiBpbnZpc2libGUgb3IgZW50aXJlbHkgb3BhcXVlLCBvZnRlbiB1c2VkIHdpdGggdGV4dHVyZXMgZm9yIGZvbGlhZ2UsIGV0Yy5cblx0ICogUmVjb21tZW5kZWQgdmFsdWVzIGFyZSAwIHRvIGRpc2FibGUgYWxwaGEsIG9yIDAuNSB0byBjcmVhdGUgc21vb3RoIGVkZ2VzLiBEZWZhdWx0IHZhbHVlIGlzIDAgKGRpc2FibGVkKS5cblx0ICovXG5cdHB1YmxpYyBnZXQgYWxwaGFUaHJlc2hvbGQoKTpudW1iZXJcblx0e1xuXHRcdHJldHVybiB0aGlzLl9wQWxwaGFUaHJlc2hvbGQ7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGFscGhhVGhyZXNob2xkKHZhbHVlOm51bWJlcilcblx0e1xuXHRcdGlmICh2YWx1ZSA8IDApXG5cdFx0XHR2YWx1ZSA9IDA7XG5cdFx0ZWxzZSBpZiAodmFsdWUgPiAxKVxuXHRcdFx0dmFsdWUgPSAxO1xuXG5cdFx0aWYgKHRoaXMuX3BBbHBoYVRocmVzaG9sZCA9PSB2YWx1ZSlcblx0XHRcdHJldHVybjtcblxuXHRcdHRoaXMuX3BBbHBoYVRocmVzaG9sZCA9IHZhbHVlO1xuXG5cdFx0dGhpcy5fcEludmFsaWRhdGVQYXNzZXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0cHVibGljIGdldCB3aWR0aCgpOm51bWJlclxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX3BXaWR0aDtcblx0fVxuXG5cdC8vXG5cdC8vIE1BVEVSSUFMIE1BTkFHRU1FTlRcblx0Ly9cblx0LyoqXG5cdCAqIE1hcmsgYW4gSVJlbmRlcmFibGVPd25lciBhcyBvd25lciBvZiB0aGlzIG1hdGVyaWFsLlxuXHQgKiBBc3N1cmVzIHdlJ3JlIG5vdCB1c2luZyB0aGUgc2FtZSBtYXRlcmlhbCBhY3Jvc3MgcmVuZGVyYWJsZXMgd2l0aCBkaWZmZXJlbnQgYW5pbWF0aW9ucywgc2luY2UgdGhlXG5cdCAqIFByb2dyYW1zIGRlcGVuZCBvbiBhbmltYXRpb24uIFRoaXMgbWV0aG9kIG5lZWRzIHRvIGJlIGNhbGxlZCB3aGVuIGEgbWF0ZXJpYWwgaXMgYXNzaWduZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSBvd25lciBUaGUgSVJlbmRlcmFibGVPd25lciB0aGF0IGhhZCB0aGlzIG1hdGVyaWFsIGFzc2lnbmVkXG5cdCAqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0cHVibGljIGlBZGRPd25lcihvd25lcjpJUmVuZGVyYWJsZU93bmVyKVxuXHR7XG5cdFx0dGhpcy5fb3duZXJzLnB1c2gob3duZXIpO1xuXG5cdFx0dmFyIGFuaW1hdGlvblNldDpJQW5pbWF0aW9uU2V0O1xuXHRcdHZhciBhbmltYXRvcjpJQW5pbWF0b3IgPSA8SUFuaW1hdG9yPiBvd25lci5hbmltYXRvcjtcblxuXHRcdGlmIChhbmltYXRvcilcblx0XHRcdGFuaW1hdGlvblNldCA9IDxJQW5pbWF0aW9uU2V0PiBhbmltYXRvci5hbmltYXRpb25TZXQ7XG5cblx0XHRpZiAob3duZXIuYW5pbWF0b3IpIHtcblx0XHRcdGlmICh0aGlzLl9hbmltYXRpb25TZXQgJiYgYW5pbWF0aW9uU2V0ICE9IHRoaXMuX2FuaW1hdGlvblNldCkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJBIE1hdGVyaWFsIGluc3RhbmNlIGNhbm5vdCBiZSBzaGFyZWQgYWNyb3NzIG1hdGVyaWFsIG93bmVycyB3aXRoIGRpZmZlcmVudCBhbmltYXRpb24gc2V0c1wiKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlmICh0aGlzLl9hbmltYXRpb25TZXQgIT0gYW5pbWF0aW9uU2V0KSB7XG5cblx0XHRcdFx0XHR0aGlzLl9hbmltYXRpb25TZXQgPSBhbmltYXRpb25TZXQ7XG5cblx0XHRcdFx0XHR0aGlzLmludmFsaWRhdGVBbmltYXRpb24oKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdG93bmVyLmRpc3BhdGNoRXZlbnQobmV3IFJlbmRlcmFibGVPd25lckV2ZW50KFJlbmRlcmFibGVPd25lckV2ZW50LlJFTkRFUl9PQkpFQ1RfT1dORVJfVVBEQVRFRCwgdGhpcykpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgYW4gSVJlbmRlcmFibGVPd25lciBhcyBvd25lci5cblx0ICogQHBhcmFtIG93bmVyXG5cdCAqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0cHVibGljIGlSZW1vdmVPd25lcihvd25lcjpJUmVuZGVyYWJsZU93bmVyKVxuXHR7XG5cdFx0dGhpcy5fb3duZXJzLnNwbGljZSh0aGlzLl9vd25lcnMuaW5kZXhPZihvd25lciksIDEpO1xuXG5cdFx0aWYgKHRoaXMuX293bmVycy5sZW5ndGggPT0gMCkge1xuXHRcdFx0dGhpcy5fYW5pbWF0aW9uU2V0ID0gbnVsbDtcblxuXHRcdFx0dGhpcy5pbnZhbGlkYXRlQW5pbWF0aW9uKCk7XG5cdFx0fVxuXG5cdFx0b3duZXIuZGlzcGF0Y2hFdmVudChuZXcgUmVuZGVyYWJsZU93bmVyRXZlbnQoUmVuZGVyYWJsZU93bmVyRXZlbnQuUkVOREVSX09CSkVDVF9PV05FUl9VUERBVEVELCB0aGlzKSk7XG5cdH1cblxuXHQvKipcblx0ICogQSBsaXN0IG9mIHRoZSBJUmVuZGVyYWJsZU93bmVycyB0aGF0IHVzZSB0aGlzIG1hdGVyaWFsXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IGlPd25lcnMoKTpBcnJheTxJUmVuZGVyYWJsZU93bmVyPlxuXHR7XG5cdFx0cmV0dXJuIHRoaXMuX293bmVycztcblx0fVxuXG5cdC8qKlxuXHQgKiBNYXJrcyB0aGUgc2hhZGVyIHByb2dyYW1zIGZvciBhbGwgcGFzc2VzIGFzIGludmFsaWQsIHNvIHRoZXkgd2lsbCBiZSByZWNvbXBpbGVkIGJlZm9yZSB0aGUgbmV4dCB1c2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwdWJsaWMgX3BJbnZhbGlkYXRlUGFzc2VzKClcblx0e1xuXHRcdHZhciBsZW46bnVtYmVyID0gdGhpcy5fcmVuZGVyT2JqZWN0cy5sZW5ndGg7XG5cdFx0Zm9yICh2YXIgaTpudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspXG5cdFx0XHR0aGlzLl9yZW5kZXJPYmplY3RzW2ldLmludmFsaWRhdGVQYXNzZXMoKTtcblx0fVxuXG5cdHByaXZhdGUgaW52YWxpZGF0ZUFuaW1hdGlvbigpXG5cdHtcblx0XHR2YXIgbGVuOm51bWJlciA9IHRoaXMuX3JlbmRlck9iamVjdHMubGVuZ3RoO1xuXHRcdGZvciAodmFyIGk6bnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKVxuXHRcdFx0dGhpcy5fcmVuZGVyT2JqZWN0c1tpXS5pbnZhbGlkYXRlQW5pbWF0aW9uKCk7XG5cdH1cblx0XG5cdHB1YmxpYyBfcEludmFsaWRhdGVSZW5kZXJPYmplY3QoKVxuXHR7XG5cdFx0dmFyIGxlbjpudW1iZXIgPSB0aGlzLl9yZW5kZXJPYmplY3RzLmxlbmd0aDtcblx0XHRmb3IgKHZhciBpOm51bWJlciA9IDA7IGkgPCBsZW47IGkrKylcblx0XHRcdHRoaXMuX3JlbmRlck9iamVjdHNbaV0uaW52YWxpZGF0ZVJlbmRlck9iamVjdCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENhbGxlZCB3aGVuIHRoZSBsaWdodCBwaWNrZXIncyBjb25maWd1cmF0aW9uIGNoYW5nZWQuXG5cdCAqL1xuXHRwcml2YXRlIG9uTGlnaHRzQ2hhbmdlKGV2ZW50OkV2ZW50KVxuXHR7XG5cdFx0dGhpcy5fcEludmFsaWRhdGVSZW5kZXJPYmplY3QoKTtcblx0fVxuXG5cdHB1YmxpYyBfcE5vdGlmeVNpemVDaGFuZ2VkKClcblx0e1xuXHRcdGlmICghdGhpcy5fc2l6ZUNoYW5nZWQpXG5cdFx0XHR0aGlzLl9zaXplQ2hhbmdlZCA9IG5ldyBNYXRlcmlhbEV2ZW50KE1hdGVyaWFsRXZlbnQuU0laRV9DSEFOR0VEKTtcblxuXHRcdHRoaXMuZGlzcGF0Y2hFdmVudCh0aGlzLl9zaXplQ2hhbmdlZCk7XG5cdH1cblxuXHRwdWJsaWMgX2lBZGRSZW5kZXJPYmplY3QocmVuZGVyT2JqZWN0OklSZW5kZXJPYmplY3QpOklSZW5kZXJPYmplY3Rcblx0e1xuXHRcdHRoaXMuX3JlbmRlck9iamVjdHMucHVzaChyZW5kZXJPYmplY3QpO1xuXG5cdFx0cmV0dXJuIHJlbmRlck9iamVjdDtcblx0fVxuXG5cdHB1YmxpYyBfaVJlbW92ZVJlbmRlck9iamVjdChyZW5kZXJPYmplY3Q6SVJlbmRlck9iamVjdCk6SVJlbmRlck9iamVjdFxuXHR7XG5cdFx0dGhpcy5fcmVuZGVyT2JqZWN0cy5zcGxpY2UodGhpcy5fcmVuZGVyT2JqZWN0cy5pbmRleE9mKHJlbmRlck9iamVjdCksIDEpO1xuXG5cdFx0cmV0dXJuIHJlbmRlck9iamVjdDtcblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gcmVuZGVyZXJcblx0ICpcblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRwdWJsaWMgZ2V0UmVuZGVyT2JqZWN0KHJlbmRlcmFibGVQb29sOklSZW5kZXJhYmxlUG9vbCk6SVJlbmRlck9iamVjdFxuXHR7XG5cdFx0dGhyb3cgbmV3IEFic3RyYWN0TWV0aG9kRXJyb3IoKTtcblx0fVxufVxuXG5leHBvcnQgPSBNYXRlcmlhbEJhc2U7Il19 \ No newline at end of file diff --git a/lib/materials/MaterialBase.ts b/lib/materials/MaterialBase.ts index 92548b915..5ef1030b8 100644 --- a/lib/materials/MaterialBase.ts +++ b/lib/materials/MaterialBase.ts @@ -1,4 +1,6 @@ +import ColorTransform = require("awayjs-core/lib/geom/ColorTransform"); import Matrix3D = require("awayjs-core/lib/geom/Matrix3D"); +import AbstractMethodError = require("awayjs-core/lib/errors/AbstractMethodError"); import Event = require("awayjs-core/lib/events/Event"); import AssetType = require("awayjs-core/lib/library/AssetType"); import IAsset = require("awayjs-core/lib/library/IAsset"); @@ -14,6 +16,7 @@ import IRenderObject = require("awayjs-display/lib/pool/IRenderObject"); import IRenderablePool = require("awayjs-display/lib/pool/IRenderablePool"); import Camera = require("awayjs-display/lib/entities/Camera"); import MaterialEvent = require("awayjs-display/lib/events/MaterialEvent"); +import RenderableOwnerEvent = require("awayjs-display/lib/events/RenderableOwnerEvent"); import LightPickerBase = require("awayjs-display/lib/materials/lightpickers/LightPickerBase"); import IRenderer = require("awayjs-display/lib/render/IRenderer"); @@ -31,6 +34,10 @@ import IRenderer = require("awayjs-display/lib/render/IRenderer"); */ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner { + private _colorTransform:ColorTransform; + private _alphaBlending:boolean = false; + private _alpha:number = 1; + private _sizeChanged:MaterialEvent; private _renderObjects:Array = new Array(); @@ -89,6 +96,15 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner private _onLightChangeDelegate:(event:Event) => void; + + /** + * + */ + public get assetType():string + { + return AssetType.MATERIAL;; + } + /** * Creates a new MaterialBase object. */ @@ -105,6 +121,68 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this.alphaPremultiplied = false; //TODO: work out why this is different for WebGL } + /** + * The alpha of the surface. + */ + public get alpha():number + { + return this._alpha; + } + + public set alpha(value:number) + { + if (value > 1) + value = 1; + else if (value < 0) + value = 0; + + if (this._alpha == value) + return; + + this._alpha = value; + + if (this._colorTransform == null) + this._colorTransform = new ColorTransform(); + + this._colorTransform.alphaMultiplier = value; + + this._pInvalidateRenderObject(); + } + + /** + * The ColorTransform object to transform the colour of the material with. Defaults to null. + */ + public get colorTransform():ColorTransform + { + return this._colorTransform; + } + + public set colorTransform(value:ColorTransform) + { + this._colorTransform = value; + + this._pInvalidateRenderObject(); + } + + /** + * Indicates whether or not the material has transparency. If binary transparency is sufficient, for + * example when using textures of foliage, consider using alphaThreshold instead. + */ + public get alphaBlending():boolean + { + return this._alphaBlending; + } + + public set alphaBlending(value:boolean) + { + if (this._alphaBlending == value) + return; + + this._alphaBlending = value; + + this._pInvalidateRenderObject(); + } + /** * */ @@ -164,7 +242,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._mipmap = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); } /** @@ -182,7 +260,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._smooth = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); } /** @@ -201,7 +279,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._repeat = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); } /** @@ -219,7 +297,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._color = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); } /** @@ -237,7 +315,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._pTexture = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); this._pHeight = this._pTexture.height; this._pWidth = this._pTexture.width; @@ -260,7 +338,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._pAnimateUVs = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); } /** @@ -279,7 +357,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._enableLightFallOff = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); } /** @@ -300,7 +378,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._diffuseLightSources = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); } /** @@ -321,7 +399,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._specularLightSources = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); } /** @@ -355,7 +433,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._bothSides = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); } /** @@ -400,7 +478,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._alphaPremultiplied = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); } /** @@ -425,7 +503,7 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this._pAlphaThreshold = value; - this._pInvalidateProperties(); + this._pInvalidatePasses(); } /** @@ -470,6 +548,8 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner } } } + + owner.dispatchEvent(new RenderableOwnerEvent(RenderableOwnerEvent.RENDER_OBJECT_OWNER_UPDATED, this)); } /** @@ -487,6 +567,8 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner this.invalidateAnimation(); } + + owner.dispatchEvent(new RenderableOwnerEvent(RenderableOwnerEvent.RENDER_OBJECT_OWNER_UPDATED, this)); } /** @@ -504,11 +586,11 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner * * @private */ - public _pInvalidateProperties() + public _pInvalidatePasses() { var len:number = this._renderObjects.length; for (var i:number = 0; i < len; i++) - this._renderObjects[i].invalidateProperties(); + this._renderObjects[i].invalidatePasses(); } private invalidateAnimation() @@ -561,9 +643,9 @@ class MaterialBase extends NamedAssetBase implements IRenderObjectOwner * * @internal */ - public getRenderObject(renderablePool:IRenderablePool) + public getRenderObject(renderablePool:IRenderablePool):IRenderObject { - return renderablePool.getMaterialRenderObject(this); + throw new AbstractMethodError(); } } diff --git a/lib/pool/IRenderObject.js b/lib/pool/IRenderObject.js index fae5b1254..1abff2e2a 100755 --- a/lib/pool/IRenderObject.js +++ b/lib/pool/IRenderObject.js @@ -1,3 +1,3 @@ -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL2lyZW5kZXJvYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkJ1QiIsImZpbGUiOiJwb29sL0lSZW5kZXJPYmplY3QuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJUmVuZGVyUGFzcyBwcm92aWRlcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBtYXRlcmlhbCBzaGFkZXIgcGFzc2VzLiBBIG1hdGVyaWFsIHBhc3MgY29uc3RpdHV0ZXMgYXQgbGVhc3RcbiAqIGEgcmVuZGVyIGNhbGwgcGVyIHJlcXVpcmVkIHJlbmRlcmFibGUuXG4gKi9cbmludGVyZmFjZSBJUmVuZGVyT2JqZWN0XG57XG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0ZGlzcG9zZSgpO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0aW52YWxpZGF0ZVJlbmRlck9iamVjdCgpO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0aW52YWxpZGF0ZVByb3BlcnRpZXMoKTtcblxuXHQvKipcblx0ICpcblx0ICovXG5cdGludmFsaWRhdGVBbmltYXRpb24oKTtcbn1cblxuZXhwb3J0ID0gSVJlbmRlck9iamVjdDsiXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL2lyZW5kZXJvYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkJ1QiIsImZpbGUiOiJwb29sL0lSZW5kZXJPYmplY3QuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJUmVuZGVyUGFzcyBwcm92aWRlcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBtYXRlcmlhbCBzaGFkZXIgcGFzc2VzLiBBIG1hdGVyaWFsIHBhc3MgY29uc3RpdHV0ZXMgYXQgbGVhc3RcbiAqIGEgcmVuZGVyIGNhbGwgcGVyIHJlcXVpcmVkIHJlbmRlcmFibGUuXG4gKi9cbmludGVyZmFjZSBJUmVuZGVyT2JqZWN0XG57XG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0ZGlzcG9zZSgpO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0aW52YWxpZGF0ZVJlbmRlck9iamVjdCgpO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0aW52YWxpZGF0ZVBhc3NlcygpO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0aW52YWxpZGF0ZUFuaW1hdGlvbigpO1xufVxuXG5leHBvcnQgPSBJUmVuZGVyT2JqZWN0OyJdfQ== \ No newline at end of file diff --git a/lib/pool/IRenderObject.ts b/lib/pool/IRenderObject.ts index 3e9da49b6..b57f8b063 100644 --- a/lib/pool/IRenderObject.ts +++ b/lib/pool/IRenderObject.ts @@ -17,7 +17,7 @@ interface IRenderObject /** * */ - invalidateProperties(); + invalidatePasses(); /** * diff --git a/lib/pool/IRendererPool.js b/lib/pool/IRendererPool.js new file mode 100755 index 000000000..6c941a62e --- /dev/null +++ b/lib/pool/IRendererPool.js @@ -0,0 +1,3 @@ + + +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9wb29sL2lyZW5kZXJlcnBvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0J1QiIsImZpbGUiOiJwb29sL0lSZW5kZXJlclBvb2wuanMiLCJzb3VyY2VSb290IjoiLi4vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExpbmVTdWJNZXNoXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL0xpbmVTdWJNZXNoXCIpO1xuaW1wb3J0IFRyaWFuZ2xlU3ViTWVzaFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2Jhc2UvVHJpYW5nbGVTdWJNZXNoXCIpO1xuaW1wb3J0IEJpbGxib2FyZFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvQmlsbGJvYXJkXCIpO1xuXG4vKipcbiAqIElSZW5kZXJlciBpcyBhbiBpbnRlcmZhY2UgZm9yIGNsYXNzZXMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgcmVuZGVyaW5nIHBpcGVsaW5lIHRvIHJlbmRlciB0aGVcbiAqIGNvbnRlbnRzIG9mIGEgcGFydGl0aW9uXG4gKlxuICogQGNsYXNzIGF3YXkucmVuZGVyLklSZW5kZXJlclxuICovXG5pbnRlcmZhY2UgSVJlbmRlcmVyUG9vbFxue1xuXHQvKipcblx0ICpcblx0ICogQHBhcmFtIGJpbGxib2FyZFxuXHQgKi9cblx0YXBwbHlCaWxsYm9hcmQoYmlsbGJvYXJkOkJpbGxib2FyZCk7XG5cblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSB0cmlhbmdsZVN1Yk1lc2hcblx0ICovXG5cdGFwcGx5TGluZVN1Yk1lc2godHJpYW5nbGVTdWJNZXNoOkxpbmVTdWJNZXNoKTtcblxuXHQvKipcblx0ICpcblx0ICogQHBhcmFtIHRyaWFuZ2xlU3ViTWVzaFxuXHQgKi9cblx0YXBwbHlUcmlhbmdsZVN1Yk1lc2godHJpYW5nbGVTdWJNZXNoOlRyaWFuZ2xlU3ViTWVzaCk7XG59XG5cbmV4cG9ydCA9IElSZW5kZXJlclBvb2w7Il19 \ No newline at end of file diff --git a/lib/pool/IRendererPool.ts b/lib/pool/IRendererPool.ts new file mode 100644 index 000000000..2cea4196e --- /dev/null +++ b/lib/pool/IRendererPool.ts @@ -0,0 +1,32 @@ +import LineSubMesh = require("awayjs-display/lib/base/LineSubMesh"); +import TriangleSubMesh = require("awayjs-display/lib/base/TriangleSubMesh"); +import Billboard = require("awayjs-display/lib/entities/Billboard"); + +/** + * IRenderer is an interface for classes that are used in the rendering pipeline to render the + * contents of a partition + * + * @class away.render.IRenderer + */ +interface IRendererPool +{ + /** + * + * @param billboard + */ + applyBillboard(billboard:Billboard); + + /** + * + * @param triangleSubMesh + */ + applyLineSubMesh(triangleSubMesh:LineSubMesh); + + /** + * + * @param triangleSubMesh + */ + applyTriangleSubMesh(triangleSubMesh:TriangleSubMesh); +} + +export = IRendererPool; \ No newline at end of file diff --git a/lib/render/IRenderer.js b/lib/render/IRenderer.js index a8dabe922..7343afde6 100755 --- a/lib/render/IRenderer.js +++ b/lib/render/IRenderer.js @@ -1,3 +1,3 @@ -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9yZW5kZXIvaXJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVIbUIiLCJmaWxlIjoicmVuZGVyL0lSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSUV2ZW50RGlzcGF0Y2hlclx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2V2ZW50cy9JRXZlbnREaXNwYXRjaGVyXCIpO1xuaW1wb3J0IFJlY3RhbmdsZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9SZWN0YW5nbGVcIik7XG5cbmltcG9ydCBMaW5lU3ViTWVzaFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvYmFzZS9MaW5lU3ViTWVzaFwiKTtcbmltcG9ydCBUcmlhbmdsZVN1Yk1lc2hcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9iYXNlL1RyaWFuZ2xlU3ViTWVzaFwiKTtcbmltcG9ydCBJRW50aXR5U29ydGVyXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvc29ydC9JRW50aXR5U29ydGVyXCIpO1xuaW1wb3J0IElDb2xsZWN0b3JcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3RyYXZlcnNlL0lDb2xsZWN0b3JcIik7XG5pbXBvcnQgQmlsbGJvYXJkXHRcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1kaXNwbGF5L2xpYi9lbnRpdGllcy9CaWxsYm9hcmRcIik7XG5pbXBvcnQgQ2FtZXJhXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2VudGl0aWVzL0NhbWVyYVwiKTtcbmltcG9ydCBTa3lib3hcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvU2t5Ym94XCIpO1xuaW1wb3J0IFRleHR1cmVQcm94eUJhc2VcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi90ZXh0dXJlcy9UZXh0dXJlUHJveHlCYXNlXCIpO1xuXG4vKipcbiAqIElSZW5kZXJlciBpcyBhbiBpbnRlcmZhY2UgZm9yIGNsYXNzZXMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgcmVuZGVyaW5nIHBpcGVsaW5lIHRvIHJlbmRlciB0aGVcbiAqIGNvbnRlbnRzIG9mIGEgcGFydGl0aW9uXG4gKlxuICogQGNsYXNzIGF3YXkucmVuZGVyLklSZW5kZXJlclxuICovXG5pbnRlcmZhY2UgSVJlbmRlcmVyIGV4dGVuZHMgSUV2ZW50RGlzcGF0Y2hlclxue1xuXHQvKipcblx0ICpcblx0ICovXG5cdHJlbmRlcmFibGVTb3J0ZXI6SUVudGl0eVNvcnRlcjtcblxuXHQvKipcblx0ICpcblx0ICovXG5cdHNoYXJlQ29udGV4dDpib29sZWFuO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0eDpudW1iZXIgLyp1aW50Ki87XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHR5Om51bWJlciAvKnVpbnQqLztcblxuXHQvKipcblx0ICpcblx0ICovXG5cdHdpZHRoOm51bWJlciAvKnVpbnQqLztcblxuXHQvKipcblx0ICpcblx0ICovXG5cdGhlaWdodDpudW1iZXIgLyp1aW50Ki87XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHR2aWV3UG9ydDpSZWN0YW5nbGU7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRzY2lzc29yUmVjdDpSZWN0YW5nbGU7XG5cblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSBiaWxsYm9hcmRcblx0ICovXG5cdGFwcGx5QmlsbGJvYXJkKGJpbGxib2FyZDpCaWxsYm9hcmQpO1xuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gdHJpYW5nbGVTdWJNZXNoXG5cdCAqL1xuXHRhcHBseUxpbmVTdWJNZXNoKHRyaWFuZ2xlU3ViTWVzaDpMaW5lU3ViTWVzaCk7XG5cblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSB0cmlhbmdsZVN1Yk1lc2hcblx0ICovXG5cdGFwcGx5VHJpYW5nbGVTdWJNZXNoKHRyaWFuZ2xlU3ViTWVzaDpUcmlhbmdsZVN1Yk1lc2gpO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0ZGlzcG9zZSgpO1xuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gZW50aXR5Q29sbGVjdG9yXG5cdCAqL1xuXHRyZW5kZXIoZW50aXR5Q29sbGVjdG9yOklDb2xsZWN0b3IpO1xuXG5cdC8qKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdF9pQmFja2dyb3VuZFI6bnVtYmVyIC8qdWludCovO1xuXG5cdC8qKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdF9pQmFja2dyb3VuZEc6bnVtYmVyIC8qdWludCovO1xuXG5cdC8qKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdF9pQmFja2dyb3VuZEI6bnVtYmVyIC8qdWludCovO1xuXG5cdC8qKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdF9pQmFja2dyb3VuZEFscGhhOm51bWJlcjtcblxuXHQvKipcblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRfaUNyZWF0ZUVudGl0eUNvbGxlY3RvcigpOklDb2xsZWN0b3I7XG5cblx0X2lSZW5kZXIoZW50aXR5Q29sbGVjdG9yOklDb2xsZWN0b3IsIHRhcmdldD86VGV4dHVyZVByb3h5QmFzZSwgc2Npc3NvclJlY3Q/OlJlY3RhbmdsZSwgc3VyZmFjZVNlbGVjdG9yPzpudW1iZXIpO1xuXG5cdF9pUmVuZGVyQ2FzY2FkZXMoZW50aXR5Q29sbGVjdG9yOklDb2xsZWN0b3IsIHRhcmdldDpUZXh0dXJlUHJveHlCYXNlLCBudW1DYXNjYWRlczpudW1iZXIsIHNjaXNzb3JSZWN0czpBcnJheTxSZWN0YW5nbGU+LCBjYW1lcmFzOkFycmF5PENhbWVyYT4pXG59XG5cbmV4cG9ydCA9IElSZW5kZXJlcjsiXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF3YXlqcy1kaXNwbGF5L2xpYi9yZW5kZXIvaXJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtHbUIiLCJmaWxlIjoicmVuZGVyL0lSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSUV2ZW50RGlzcGF0Y2hlclx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWNvcmUvbGliL2V2ZW50cy9JRXZlbnREaXNwYXRjaGVyXCIpO1xuaW1wb3J0IFJlY3RhbmdsZVx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtY29yZS9saWIvZ2VvbS9SZWN0YW5nbGVcIik7XG5cbmltcG9ydCBJRW50aXR5U29ydGVyXHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvc29ydC9JRW50aXR5U29ydGVyXCIpO1xuaW1wb3J0IElDb2xsZWN0b3JcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL3RyYXZlcnNlL0lDb2xsZWN0b3JcIik7XG5pbXBvcnQgQ2FtZXJhXHRcdFx0XHRcdFx0PSByZXF1aXJlKFwiYXdheWpzLWRpc3BsYXkvbGliL2VudGl0aWVzL0NhbWVyYVwiKTtcbmltcG9ydCBTa3lib3hcdFx0XHRcdFx0XHQ9IHJlcXVpcmUoXCJhd2F5anMtZGlzcGxheS9saWIvZW50aXRpZXMvU2t5Ym94XCIpO1xuaW1wb3J0IFRleHR1cmVQcm94eUJhc2VcdFx0XHRcdD0gcmVxdWlyZShcImF3YXlqcy1jb3JlL2xpYi90ZXh0dXJlcy9UZXh0dXJlUHJveHlCYXNlXCIpO1xuXG4vKipcbiAqIElSZW5kZXJlciBpcyBhbiBpbnRlcmZhY2UgZm9yIGNsYXNzZXMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgcmVuZGVyaW5nIHBpcGVsaW5lIHRvIHJlbmRlciB0aGVcbiAqIGNvbnRlbnRzIG9mIGEgcGFydGl0aW9uXG4gKlxuICogQGNsYXNzIGF3YXkucmVuZGVyLklSZW5kZXJlclxuICovXG5pbnRlcmZhY2UgSVJlbmRlcmVyIGV4dGVuZHMgSUV2ZW50RGlzcGF0Y2hlclxue1xuXHQvKipcblx0ICpcblx0ICovXG5cdHJlbmRlcmFibGVTb3J0ZXI6SUVudGl0eVNvcnRlcjtcblxuXHQvKipcblx0ICpcblx0ICovXG5cdHNoYXJlQ29udGV4dDpib29sZWFuO1xuXG5cdC8qKlxuXHQgKlxuXHQgKi9cblx0eDpudW1iZXIgLyp1aW50Ki87XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHR5Om51bWJlciAvKnVpbnQqLztcblxuXHQvKipcblx0ICpcblx0ICovXG5cdHdpZHRoOm51bWJlciAvKnVpbnQqLztcblxuXHQvKipcblx0ICpcblx0ICovXG5cdGhlaWdodDpudW1iZXIgLyp1aW50Ki87XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHR2aWV3UG9ydDpSZWN0YW5nbGU7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRzY2lzc29yUmVjdDpSZWN0YW5nbGU7XG5cblx0LyoqXG5cdCAqXG5cdCAqL1xuXHRkaXNwb3NlKCk7XG5cblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSBlbnRpdHlDb2xsZWN0b3Jcblx0ICovXG5cdHJlbmRlcihlbnRpdHlDb2xsZWN0b3I6SUNvbGxlY3Rvcik7XG5cblx0LyoqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0X2lCYWNrZ3JvdW5kUjpudW1iZXIgLyp1aW50Ki87XG5cblx0LyoqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0X2lCYWNrZ3JvdW5kRzpudW1iZXIgLyp1aW50Ki87XG5cblx0LyoqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0X2lCYWNrZ3JvdW5kQjpudW1iZXIgLyp1aW50Ki87XG5cblx0LyoqXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0X2lCYWNrZ3JvdW5kQWxwaGE6bnVtYmVyO1xuXG5cdC8qKlxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdF9pQ3JlYXRlRW50aXR5Q29sbGVjdG9yKCk6SUNvbGxlY3RvcjtcblxuXHRfaVJlbmRlcihlbnRpdHlDb2xsZWN0b3I6SUNvbGxlY3RvciwgdGFyZ2V0PzpUZXh0dXJlUHJveHlCYXNlLCBzY2lzc29yUmVjdD86UmVjdGFuZ2xlLCBzdXJmYWNlU2VsZWN0b3I/Om51bWJlcik7XG5cblx0X2lSZW5kZXJDYXNjYWRlcyhlbnRpdHlDb2xsZWN0b3I6SUNvbGxlY3RvciwgdGFyZ2V0OlRleHR1cmVQcm94eUJhc2UsIG51bUNhc2NhZGVzOm51bWJlciwgc2Npc3NvclJlY3RzOkFycmF5PFJlY3RhbmdsZT4sIGNhbWVyYXM6QXJyYXk8Q2FtZXJhPilcbn1cblxuZXhwb3J0ID0gSVJlbmRlcmVyOyJdfQ== \ No newline at end of file diff --git a/lib/render/IRenderer.ts b/lib/render/IRenderer.ts index 92fc76f77..84106a015 100644 --- a/lib/render/IRenderer.ts +++ b/lib/render/IRenderer.ts @@ -1,11 +1,8 @@ import IEventDispatcher = require("awayjs-core/lib/events/IEventDispatcher"); import Rectangle = require("awayjs-core/lib/geom/Rectangle"); -import LineSubMesh = require("awayjs-display/lib/base/LineSubMesh"); -import TriangleSubMesh = require("awayjs-display/lib/base/TriangleSubMesh"); import IEntitySorter = require("awayjs-display/lib/sort/IEntitySorter"); import ICollector = require("awayjs-display/lib/traverse/ICollector"); -import Billboard = require("awayjs-display/lib/entities/Billboard"); import Camera = require("awayjs-display/lib/entities/Camera"); import Skybox = require("awayjs-display/lib/entities/Skybox"); import TextureProxyBase = require("awayjs-core/lib/textures/TextureProxyBase"); @@ -58,24 +55,6 @@ interface IRenderer extends IEventDispatcher */ scissorRect:Rectangle; - /** - * - * @param billboard - */ - applyBillboard(billboard:Billboard); - - /** - * - * @param triangleSubMesh - */ - applyLineSubMesh(triangleSubMesh:LineSubMesh); - - /** - * - * @param triangleSubMesh - */ - applyTriangleSubMesh(triangleSubMesh:TriangleSubMesh); - /** * */