ngx-spine
Version:
[](https://travis-ci.org/PoiScript/ngx-spine)
299 lines • 19.7 kB
JavaScript
/**
* @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==