UNPKG

ngx-spine

Version:

[![Build Status](https://travis-ci.org/PoiScript/ngx-spine.svg?branch=master)](https://travis-ci.org/PoiScript/ngx-spine)

299 lines 19.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; /** * *************************************************************************** * Spine Runtimes License Agreement * Last updated May 1, 2019. Replaces all prior versions. * * Copyright (c) 2013-2019, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and * conditions of Section 2 of the Spine Editor License Agreement: * http://esotericsoftware.com/spine-editor-license * * Otherwise, it is permitted to integrate the Spine Runtimes into software * or otherwise create derivative works of the Spine Runtimes (collectively, * "Products"), provided that each user of the Products must obtain their own * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS * INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *************************************************************************** * @abstract */ var /** * *************************************************************************** * Spine Runtimes License Agreement * Last updated May 1, 2019. Replaces all prior versions. * * Copyright (c) 2013-2019, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and * conditions of Section 2 of the Spine Editor License Agreement: * http://esotericsoftware.com/spine-editor-license * * Otherwise, it is permitted to integrate the Spine Runtimes into software * or otherwise create derivative works of the Spine Runtimes (collectively, * "Products"), provided that each user of the Products must obtain their own * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS * INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *************************************************************************** * @abstract */ Texture = /** @class */ (function () { function Texture(image) { this._image = image; } /** * @return {?} */ Texture.prototype.getImage = /** * @return {?} */ function () { return this._image; }; /** * @param {?} text * @return {?} */ Texture.filterFromString = /** * @param {?} text * @return {?} */ function (text) { switch (text.toLowerCase()) { case "nearest": return TextureFilter.Nearest; case "linear": return TextureFilter.Linear; case "mipmap": return TextureFilter.MipMap; case "mipmapnearestnearest": return TextureFilter.MipMapNearestNearest; case "mipmaplinearnearest": return TextureFilter.MipMapLinearNearest; case "mipmapnearestlinear": return TextureFilter.MipMapNearestLinear; case "mipmaplinearlinear": return TextureFilter.MipMapLinearLinear; default: throw new Error("Unknown texture filter " + text); } }; /** * @param {?} text * @return {?} */ Texture.wrapFromString = /** * @param {?} text * @return {?} */ function (text) { switch (text.toLowerCase()) { case "mirroredtepeat": return TextureWrap.MirroredRepeat; case "clamptoedge": return TextureWrap.ClampToEdge; case "repeat": return TextureWrap.Repeat; default: throw new Error("Unknown texture wrap " + text); } }; return Texture; }()); /** * *************************************************************************** * Spine Runtimes License Agreement * Last updated May 1, 2019. Replaces all prior versions. * * Copyright (c) 2013-2019, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and * conditions of Section 2 of the Spine Editor License Agreement: * http://esotericsoftware.com/spine-editor-license * * Otherwise, it is permitted to integrate the Spine Runtimes into software * or otherwise create derivative works of the Spine Runtimes (collectively, * "Products"), provided that each user of the Products must obtain their own * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS * INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *************************************************************************** * @abstract */ export { Texture }; if (false) { /** * @type {?} * @protected */ Texture.prototype._image; /** * @abstract * @param {?} minFilter * @param {?} magFilter * @return {?} */ Texture.prototype.setFilters = function (minFilter, magFilter) { }; /** * @abstract * @param {?} uWrap * @param {?} vWrap * @return {?} */ Texture.prototype.setWraps = function (uWrap, vWrap) { }; /** * @abstract * @return {?} */ Texture.prototype.dispose = function () { }; } /** @enum {number} */ var TextureFilter = { Nearest: 9728, Linear: 9729, MipMap: 9987, MipMapNearestNearest: 9984, MipMapLinearNearest: 9985, MipMapNearestLinear: 9986, MipMapLinearLinear: 9987 // WebGLRenderingContext.LINEAR_MIPMAP_LINEAR , }; export { TextureFilter }; TextureFilter[TextureFilter.Nearest] = 'Nearest'; TextureFilter[TextureFilter.Linear] = 'Linear'; TextureFilter[TextureFilter.MipMap] = 'MipMap'; TextureFilter[TextureFilter.MipMapNearestNearest] = 'MipMapNearestNearest'; TextureFilter[TextureFilter.MipMapLinearNearest] = 'MipMapLinearNearest'; TextureFilter[TextureFilter.MipMapNearestLinear] = 'MipMapNearestLinear'; TextureFilter[TextureFilter.MipMapLinearLinear] = 'MipMapLinearLinear'; /** @enum {number} */ var TextureWrap = { MirroredRepeat: 33648, ClampToEdge: 33071, Repeat: 10497 // WebGLRenderingContext.REPEAT , }; export { TextureWrap }; TextureWrap[TextureWrap.MirroredRepeat] = 'MirroredRepeat'; TextureWrap[TextureWrap.ClampToEdge] = 'ClampToEdge'; TextureWrap[TextureWrap.Repeat] = 'Repeat'; var TextureRegion = /** @class */ (function () { function TextureRegion() { this.u = 0; this.v = 0; this.u2 = 0; this.v2 = 0; this.width = 0; this.height = 0; this.rotate = false; this.offsetX = 0; this.offsetY = 0; this.originalWidth = 0; this.originalHeight = 0; } return TextureRegion; }()); export { TextureRegion }; if (false) { /** @type {?} */ TextureRegion.prototype.renderObject; /** @type {?} */ TextureRegion.prototype.u; /** @type {?} */ TextureRegion.prototype.v; /** @type {?} */ TextureRegion.prototype.u2; /** @type {?} */ TextureRegion.prototype.v2; /** @type {?} */ TextureRegion.prototype.width; /** @type {?} */ TextureRegion.prototype.height; /** @type {?} */ TextureRegion.prototype.rotate; /** @type {?} */ TextureRegion.prototype.offsetX; /** @type {?} */ TextureRegion.prototype.offsetY; /** @type {?} */ TextureRegion.prototype.originalWidth; /** @type {?} */ TextureRegion.prototype.originalHeight; } var FakeTexture = /** @class */ (function (_super) { tslib_1.__extends(FakeTexture, _super); function FakeTexture() { return _super !== null && _super.apply(this, arguments) || this; } /** * @param {?} minFilter * @param {?} magFilter * @return {?} */ FakeTexture.prototype.setFilters = /** * @param {?} minFilter * @param {?} magFilter * @return {?} */ function (minFilter, magFilter) { }; /** * @param {?} uWrap * @param {?} vWrap * @return {?} */ FakeTexture.prototype.setWraps = /** * @param {?} uWrap * @param {?} vWrap * @return {?} */ function (uWrap, vWrap) { }; /** * @return {?} */ FakeTexture.prototype.dispose = /** * @return {?} */ function () { }; return FakeTexture; }(Texture)); export { FakeTexture }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1zcGluZS8iLCJzb3VyY2VzIjpbImxpYi9zcGluZS10cy9jb3JlL1RleHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUVFLGlCQUFZLEtBQXVCO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7Ozs7SUFDRCwwQkFBUTs7O0lBQVI7UUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQzs7Ozs7SUFJYSx3QkFBZ0I7Ozs7SUFBOUIsVUFBK0IsSUFBWTtRQUN6QyxRQUFRLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUMxQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQy9CLEtBQUssUUFBUTtnQkFDWCxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDOUIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUM5QixLQUFLLHNCQUFzQjtnQkFDekIsT0FBTyxhQUFhLENBQUMsb0JBQW9CLENBQUM7WUFDNUMsS0FBSyxxQkFBcUI7Z0JBQ3hCLE9BQU8sYUFBYSxDQUFDLG1CQUFtQixDQUFDO1lBQzNDLEtBQUsscUJBQXFCO2dCQUN4QixPQUFPLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQztZQUMzQyxLQUFLLG9CQUFvQjtnQkFDdkIsT0FBTyxhQUFhLENBQUMsa0JBQWtCLENBQUM7WUFDMUM7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBMEIsSUFBTSxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDOzs7OztJQUNhLHNCQUFjOzs7O0lBQTVCLFVBQTZCLElBQVk7UUFDdkMsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDMUIsS0FBSyxnQkFBZ0I7Z0JBQ25CLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQztZQUNwQyxLQUFLLGFBQWE7Z0JBQ2hCLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQztZQUNqQyxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQzVCO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQXdCLElBQU0sQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUNILGNBQUM7QUFBRCxDQUFDLEFBM0NELElBMkNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTFDQyx5QkFBbUM7Ozs7Ozs7SUFPbkMsbUVBQThFOzs7Ozs7O0lBQzlFLHlEQUFnRTs7Ozs7SUFDaEUsNENBQXlCOzs7O0lBbUN6QixhQUFjO0lBQ2QsWUFBYTtJQUNiLFlBQWE7SUFDYiwwQkFBMkI7SUFDM0IseUJBQTBCO0lBQzFCLHlCQUEwQjtJQUMxQix3QkFBeUIsQ0FBQyw2Q0FBNkM7Ozs7Ozs7Ozs7Ozs7SUFHdkUscUJBQXNCO0lBQ3RCLGtCQUFtQjtJQUNuQixhQUFjLENBQUMsK0JBQStCOzs7Ozs7O0FBRWhEO0lBQUE7UUFFRSxNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sTUFBQyxHQUFHLENBQUMsQ0FBQztRQUNOLE9BQUUsR0FBRyxDQUFDLENBQUM7UUFDUCxPQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1AsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixtQkFBYyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQUQsb0JBQUM7QUFBRCxDQUFDLEFBYkQsSUFhQzs7OztJQVpDLHFDQUFrQjs7SUFDbEIsMEJBQU07O0lBQ04sMEJBQU07O0lBQ04sMkJBQU87O0lBQ1AsMkJBQU87O0lBQ1AsOEJBQVU7O0lBQ1YsK0JBQVc7O0lBQ1gsK0JBQWU7O0lBQ2YsZ0NBQVk7O0lBQ1osZ0NBQVk7O0lBQ1osc0NBQWtCOztJQUNsQix1Q0FBbUI7O0FBRXJCO0lBQWlDLHVDQUFPO0lBQXhDOztJQUlBLENBQUM7Ozs7OztJQUhDLGdDQUFVOzs7OztJQUFWLFVBQVcsU0FBd0IsRUFBRSxTQUF3QixJQUFHLENBQUM7Ozs7OztJQUNqRSw4QkFBUTs7Ozs7SUFBUixVQUFTLEtBQWtCLEVBQUUsS0FBa0IsSUFBRyxDQUFDOzs7O0lBQ25ELDZCQUFPOzs7SUFBUCxjQUFXLENBQUM7SUFDZCxrQkFBQztBQUFELENBQUMsQUFKRCxDQUFpQyxPQUFPLEdBSXZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxyXG4gKiBMYXN0IHVwZGF0ZWQgTWF5IDEsIDIwMTkuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cclxuICpcclxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMTksIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xyXG4gKlxyXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcclxuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcclxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcclxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXHJcbiAqXHJcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZVxyXG4gKiBvciBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXHJcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cclxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XHJcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxyXG4gKlxyXG4gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWSBFWFBSRVNTXHJcbiAqIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVNcclxuICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU5cclxuICogTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsXHJcbiAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsXHJcbiAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUywgQlVTSU5FU1NcclxuICogSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWVxyXG4gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkdcclxuICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLFxyXG4gKiBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUZXh0dXJlIHtcclxuICBwcm90ZWN0ZWQgX2ltYWdlOiBIVE1MSW1hZ2VFbGVtZW50O1xyXG4gIGNvbnN0cnVjdG9yKGltYWdlOiBIVE1MSW1hZ2VFbGVtZW50KSB7XHJcbiAgICB0aGlzLl9pbWFnZSA9IGltYWdlO1xyXG4gIH1cclxuICBnZXRJbWFnZSgpOiBIVE1MSW1hZ2VFbGVtZW50IHtcclxuICAgIHJldHVybiB0aGlzLl9pbWFnZTtcclxuICB9XHJcbiAgYWJzdHJhY3Qgc2V0RmlsdGVycyhtaW5GaWx0ZXI6IFRleHR1cmVGaWx0ZXIsIG1hZ0ZpbHRlcjogVGV4dHVyZUZpbHRlcik6IHZvaWQ7XHJcbiAgYWJzdHJhY3Qgc2V0V3JhcHModVdyYXA6IFRleHR1cmVXcmFwLCB2V3JhcDogVGV4dHVyZVdyYXApOiB2b2lkO1xyXG4gIGFic3RyYWN0IGRpc3Bvc2UoKTogdm9pZDtcclxuICBwdWJsaWMgc3RhdGljIGZpbHRlckZyb21TdHJpbmcodGV4dDogc3RyaW5nKTogVGV4dHVyZUZpbHRlciB7XHJcbiAgICBzd2l0Y2ggKHRleHQudG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICBjYXNlIFwibmVhcmVzdFwiOlxyXG4gICAgICAgIHJldHVybiBUZXh0dXJlRmlsdGVyLk5lYXJlc3Q7XHJcbiAgICAgIGNhc2UgXCJsaW5lYXJcIjpcclxuICAgICAgICByZXR1cm4gVGV4dHVyZUZpbHRlci5MaW5lYXI7XHJcbiAgICAgIGNhc2UgXCJtaXBtYXBcIjpcclxuICAgICAgICByZXR1cm4gVGV4dHVyZUZpbHRlci5NaXBNYXA7XHJcbiAgICAgIGNhc2UgXCJtaXBtYXBuZWFyZXN0bmVhcmVzdFwiOlxyXG4gICAgICAgIHJldHVybiBUZXh0dXJlRmlsdGVyLk1pcE1hcE5lYXJlc3ROZWFyZXN0O1xyXG4gICAgICBjYXNlIFwibWlwbWFwbGluZWFybmVhcmVzdFwiOlxyXG4gICAgICAgIHJldHVybiBUZXh0dXJlRmlsdGVyLk1pcE1hcExpbmVhck5lYXJlc3Q7XHJcbiAgICAgIGNhc2UgXCJtaXBtYXBuZWFyZXN0bGluZWFyXCI6XHJcbiAgICAgICAgcmV0dXJuIFRleHR1cmVGaWx0ZXIuTWlwTWFwTmVhcmVzdExpbmVhcjtcclxuICAgICAgY2FzZSBcIm1pcG1hcGxpbmVhcmxpbmVhclwiOlxyXG4gICAgICAgIHJldHVybiBUZXh0dXJlRmlsdGVyLk1pcE1hcExpbmVhckxpbmVhcjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdGV4dHVyZSBmaWx0ZXIgJHt0ZXh0fWApO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgc3RhdGljIHdyYXBGcm9tU3RyaW5nKHRleHQ6IHN0cmluZyk6IFRleHR1cmVXcmFwIHtcclxuICAgIHN3aXRjaCAodGV4dC50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgXCJtaXJyb3JlZHRlcGVhdFwiOlxyXG4gICAgICAgIHJldHVybiBUZXh0dXJlV3JhcC5NaXJyb3JlZFJlcGVhdDtcclxuICAgICAgY2FzZSBcImNsYW1wdG9lZGdlXCI6XHJcbiAgICAgICAgcmV0dXJuIFRleHR1cmVXcmFwLkNsYW1wVG9FZGdlO1xyXG4gICAgICBjYXNlIFwicmVwZWF0XCI6XHJcbiAgICAgICAgcmV0dXJuIFRleHR1cmVXcmFwLlJlcGVhdDtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdGV4dHVyZSB3cmFwICR7dGV4dH1gKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuZXhwb3J0IGVudW0gVGV4dHVyZUZpbHRlciB7XHJcbiAgTmVhcmVzdCA9IDk3MjgsIC8vIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5ORUFSRVNUXHJcbiAgTGluZWFyID0gOTcyOSwgLy8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LkxJTkVBUlxyXG4gIE1pcE1hcCA9IDk5ODcsIC8vIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5MSU5FQVJfTUlQTUFQX0xJTkVBUlxyXG4gIE1pcE1hcE5lYXJlc3ROZWFyZXN0ID0gOTk4NCwgLy8gV2ViR0xSZW5kZXJpbmdDb250ZXh0Lk5FQVJFU1RfTUlQTUFQX05FQVJFU1RcclxuICBNaXBNYXBMaW5lYXJOZWFyZXN0ID0gOTk4NSwgLy8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LkxJTkVBUl9NSVBNQVBfTkVBUkVTVFxyXG4gIE1pcE1hcE5lYXJlc3RMaW5lYXIgPSA5OTg2LCAvLyBXZWJHTFJlbmRlcmluZ0NvbnRleHQuTkVBUkVTVF9NSVBNQVBfTElORUFSXHJcbiAgTWlwTWFwTGluZWFyTGluZWFyID0gOTk4NyAvLyBXZWJHTFJlbmRlcmluZ0NvbnRleHQuTElORUFSX01JUE1BUF9MSU5FQVJcclxufVxyXG5leHBvcnQgZW51bSBUZXh0dXJlV3JhcCB7XHJcbiAgTWlycm9yZWRSZXBlYXQgPSAzMzY0OCwgLy8gV2ViR0xSZW5kZXJpbmdDb250ZXh0Lk1JUlJPUkVEX1JFUEVBVFxyXG4gIENsYW1wVG9FZGdlID0gMzMwNzEsIC8vIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5DTEFNUF9UT19FREdFXHJcbiAgUmVwZWF0ID0gMTA0OTcgLy8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LlJFUEVBVFxyXG59XHJcbmV4cG9ydCBjbGFzcyBUZXh0dXJlUmVnaW9uIHtcclxuICByZW5kZXJPYmplY3Q6IGFueTtcclxuICB1ID0gMDtcclxuICB2ID0gMDtcclxuICB1MiA9IDA7XHJcbiAgdjIgPSAwO1xyXG4gIHdpZHRoID0gMDtcclxuICBoZWlnaHQgPSAwO1xyXG4gIHJvdGF0ZSA9IGZhbHNlO1xyXG4gIG9mZnNldFggPSAwO1xyXG4gIG9mZnNldFkgPSAwO1xyXG4gIG9yaWdpbmFsV2lkdGggPSAwO1xyXG4gIG9yaWdpbmFsSGVpZ2h0ID0gMDtcclxufVxyXG5leHBvcnQgY2xhc3MgRmFrZVRleHR1cmUgZXh0ZW5kcyBUZXh0dXJlIHtcclxuICBzZXRGaWx0ZXJzKG1pbkZpbHRlcjogVGV4dHVyZUZpbHRlciwgbWFnRmlsdGVyOiBUZXh0dXJlRmlsdGVyKSB7fVxyXG4gIHNldFdyYXBzKHVXcmFwOiBUZXh0dXJlV3JhcCwgdldyYXA6IFRleHR1cmVXcmFwKSB7fVxyXG4gIGRpc3Bvc2UoKSB7fVxyXG59XHJcbiJdfQ==