@esotericsoftware/spine-webgl 4.2.81 → 4.2.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +12 -12
- package/dist/AssetManager.d.ts +6 -6
- package/dist/AssetManager.js +7 -7
- package/dist/Camera.d.ts +6 -6
- package/dist/Camera.js +7 -7
- package/dist/CameraController.d.ts +6 -6
- package/dist/CameraController.js +7 -7
- package/dist/GLTexture.d.ts +6 -6
- package/dist/GLTexture.js +7 -7
- package/dist/Input.d.ts +19 -15
- package/dist/Input.js +80 -51
- package/dist/LoadingScreen.d.ts +7 -6
- package/dist/LoadingScreen.js +24 -7
- package/dist/Matrix4.d.ts +6 -6
- package/dist/Matrix4.js +7 -7
- package/dist/Mesh.d.ts +6 -6
- package/dist/Mesh.js +7 -7
- package/dist/PolygonBatcher.d.ts +6 -6
- package/dist/PolygonBatcher.js +7 -7
- package/dist/SceneRenderer.d.ts +6 -6
- package/dist/SceneRenderer.js +7 -7
- package/dist/Shader.d.ts +6 -6
- package/dist/Shader.js +7 -7
- package/dist/ShapeRenderer.d.ts +6 -6
- package/dist/ShapeRenderer.js +7 -7
- package/dist/SkeletonDebugRenderer.d.ts +6 -6
- package/dist/SkeletonDebugRenderer.js +7 -7
- package/dist/SkeletonRenderer.d.ts +6 -6
- package/dist/SkeletonRenderer.js +7 -7
- package/dist/SpineCanvas.d.ts +6 -6
- package/dist/SpineCanvas.js +7 -7
- package/dist/Vector3.d.ts +6 -6
- package/dist/Vector3.js +7 -7
- package/dist/WebGL.d.ts +6 -6
- package/dist/WebGL.js +7 -7
- package/dist/esm/spine-webgl.min.mjs +26 -26
- package/dist/esm/spine-webgl.mjs +1065 -1542
- package/dist/esm/spine-webgl.mjs.map +3 -3
- package/dist/iife/spine-webgl.js +1068 -1543
- package/dist/iife/spine-webgl.js.map +3 -3
- package/dist/iife/spine-webgl.min.js +26 -26
- package/package.json +2 -2
package/dist/ShapeRenderer.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/******************************************************************************
|
|
2
2
|
* Spine Runtimes License Agreement
|
|
3
|
-
* Last updated
|
|
3
|
+
* Last updated April 5, 2025. Replaces all prior versions.
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2013-
|
|
5
|
+
* Copyright (c) 2013-2025, Esoteric Software LLC
|
|
6
6
|
*
|
|
7
7
|
* Integration of the Spine Runtimes into software or otherwise creating
|
|
8
8
|
* derivative works of the Spine Runtimes is permitted under the terms and
|
|
9
9
|
* conditions of Section 2 of the Spine Editor License Agreement:
|
|
10
10
|
* http://esotericsoftware.com/spine-editor-license
|
|
11
11
|
*
|
|
12
|
-
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
-
* otherwise create derivative works of the Spine Runtimes (collectively,
|
|
12
|
+
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
+
* or otherwise create derivative works of the Spine Runtimes (collectively,
|
|
14
14
|
* "Products"), provided that each user of the Products must obtain their own
|
|
15
15
|
* Spine Editor license and redistribution of the Products in any form must
|
|
16
16
|
* include this license and copyright notice.
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
|
|
24
24
|
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
|
|
25
25
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
26
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
-
* SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
26
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
+
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
29
|
import { Disposable, Color } from "@esotericsoftware/spine-core";
|
|
30
30
|
import { Shader } from "./Shader.js";
|
package/dist/ShapeRenderer.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/******************************************************************************
|
|
2
2
|
* Spine Runtimes License Agreement
|
|
3
|
-
* Last updated
|
|
3
|
+
* Last updated April 5, 2025. Replaces all prior versions.
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2013-
|
|
5
|
+
* Copyright (c) 2013-2025, Esoteric Software LLC
|
|
6
6
|
*
|
|
7
7
|
* Integration of the Spine Runtimes into software or otherwise creating
|
|
8
8
|
* derivative works of the Spine Runtimes is permitted under the terms and
|
|
9
9
|
* conditions of Section 2 of the Spine Editor License Agreement:
|
|
10
10
|
* http://esotericsoftware.com/spine-editor-license
|
|
11
11
|
*
|
|
12
|
-
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
-
* otherwise create derivative works of the Spine Runtimes (collectively,
|
|
12
|
+
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
+
* or otherwise create derivative works of the Spine Runtimes (collectively,
|
|
14
14
|
* "Products"), provided that each user of the Products must obtain their own
|
|
15
15
|
* Spine Editor license and redistribution of the Products in any form must
|
|
16
16
|
* include this license and copyright notice.
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
|
|
24
24
|
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
|
|
25
25
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
26
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
-
* SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
26
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
+
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
29
|
import { Color, Vector2, MathUtils } from "@esotericsoftware/spine-core";
|
|
30
30
|
import { Mesh, Position2Attribute, ColorAttribute } from "./Mesh.js";
|
|
@@ -344,4 +344,4 @@ export var ShapeType;
|
|
|
344
344
|
ShapeType[ShapeType["Line"] = 1] = "Line";
|
|
345
345
|
ShapeType[ShapeType["Filled"] = 4] = "Filled";
|
|
346
346
|
})(ShapeType || (ShapeType = {}));
|
|
347
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhcGVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TaGFwZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBQWMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRixPQUFPLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUQsTUFBTSxPQUFPLGFBQWE7SUFDakIsT0FBTyxDQUErQjtJQUN0QyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLElBQUksQ0FBTztJQUNYLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQzdCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLEdBQWtCLElBQUksQ0FBQztJQUM3QixXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLGFBQWEsQ0FBUztJQUN0QixhQUFhLENBQVM7SUFDdEIsUUFBUSxDQUFTO0lBRXpCLFlBQWEsT0FBNkQsRUFBRSxjQUFzQixLQUFLO1FBQ3RHLElBQUksV0FBVyxHQUFHLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxZQUFZLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckgsSUFBSSxDQUFDLElBQUksR0FBRyxJ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SUFBSSxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRixDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0YsQ0FBQztJQUVELElBQUksQ0FBRSxNQUFlLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLEtBQWE7UUFDeEYsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELFFBQVEsQ0FBRSxNQUFlLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEtBQWEsRUFBRSxLQUFhO1FBQ3RHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2QsS0FBSyxJQUFJLEdBQUcsQ0FBQztRQUNiLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXJDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXJDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFF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b250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XG4gKiBMYXN0IHVwZGF0ZWQgSnVseSAyOCwgMjAyMy4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDIzLCBFc290ZXJpYyBTb2Z0d2FyZSBMTENcbiAqXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcbiAqIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGlzIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgYW5kXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXG4gKlxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yXG4gKiBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXG4gKiBcIlByb2R1Y3RzXCIpLCBwcm92aWRlZCB0aGF0IGVhY2ggdXNlciBvZiB0aGUgUHJvZHVjdHMgbXVzdCBvYnRhaW4gdGhlaXIgb3duXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxuICpcbiAqIFRIRSBTUElORSBSVU5USU1FUyBBUkUgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZXG4gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTllcbiAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVMsXG4gKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhFXG4gKiBTUElORSBSVU5USU1FUywgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IHsgRGlzcG9zYWJsZSwgQ29sb3IsIFZlY3RvcjIsIE1hdGhVdGlscyB9IGZyb20gXCJAZXNvdGVyaWNzb2Z0d2FyZS9zcGluZS1jb3JlXCI7XG5pbXBvcnQgeyBNZXNoLCBQb3NpdGlvbjJBdHRyaWJ1dGUsIENvbG9yQXR0cmlidXRlIH0gZnJvbSBcIi4vTWVzaC5qc1wiO1xuaW1wb3J0IHsgU2hhZGVyIH0gZnJvbSBcIi4vU2hhZGVyLmpzXCI7XG5pbXBvcnQgeyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IH0gZnJvbSBcIi4vV2ViR0wuanNcIjtcblxuZXhwb3J0IGNsYXNzIFNoYXBlUmVuZGVyZXIgaW1wbGVtZW50cyBEaXNwb3NhYmxlIHtcblx0cHJpdmF0ZSBjb250ZXh0OiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0O1xuXHRwcml2YXRlIGlzRHJhd2luZyA9IGZhbHNlO1xuXHRwcml2YXRlIG1lc2g6IE1lc2g7XG5cdHByaXZhdGUgc2hhcGVUeXBlID0gU2hhcGVUeXBlLkZpbGxlZDtcblx0cHJpdmF0ZSBjb2xvciA9IG5ldyBDb2xvcigxLCAxLCAxLCAxKTtcblx0cHJpdmF0ZSBzaGFkZXI6IFNoYWRlciB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIHZlcnRleEluZGV4ID0gMDtcblx0cHJpdmF0ZSB0bXAgPSBuZXcgVmVjdG9yMigpO1xuXHRwcml2YXRlIHNyY0NvbG9yQmxlbmQ6IG51bWJlcjtcblx0cHJpdmF0ZSBzcmNBbHBoYUJsZW5kOiBudW1iZXI7XG5cdHByaXZhdGUgZHN0QmxlbmQ6IG51bWJlcjtcblxuXHRjb25zdHJ1Y3RvciAoY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgbWF4VmVydGljZXM6IG51bWJlciA9IDEwOTIwKSB7XG5cdFx0aWYgKG1heFZlcnRpY2VzID4gMTA5MjApIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGhhdmUgbW9yZSB0aGFuIDEwOTIwIHRyaWFuZ2xlcyBwZXIgYmF0Y2g6IFwiICsgbWF4VmVydGljZXMpO1xuXHRcdHRoaXMuY29udGV4dCA9IGNvbnRleHQgaW5zdGFuY2VvZiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0ID8gY29udGV4dCA6IG5ldyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0KGNvbnRleHQpO1xuXHRcdHRoaXMubWVzaCA9IG5ldyBNZXNoKGNvbnRleHQsIFtuZXcgUG9zaXRpb24yQXR0cmlidXRlKCksIG5ldyBDb2xvckF0dHJpYnV0ZSgpXSwgbWF4VmVydGljZXMsIDApO1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHR0aGlzLnNyY0NvbG9yQmxlbmQgPSBnbC5TUkNfQUxQSEE7XG5cdFx0dGhpcy5zcmNBbHBoYUJsZW5kID0gZ2wuT05FO1xuXHRcdHRoaXMuZHN0QmxlbmQgPSBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBO1xuXHR9XG5cblx0YmVnaW4gKHNoYWRlcjogU2hhZGVyKSB7XG5cdFx0aWYgKHRoaXMuaXNEcmF3aW5nKSB0aHJvdyBuZXcgRXJyb3IoXCJTaGFwZVJlbmRlcmVyLmJlZ2luKCkgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWRcIik7XG5cdFx0dGhpcy5zaGFkZXIgPSBzaGFkZXI7XG5cdFx0dGhpcy52ZXJ0ZXhJbmRleCA9IDA7XG5cdFx0dGhpcy5pc0RyYXdpbmcgPSB0cnVlO1xuXG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdGdsLmVuYWJsZShnbC5CTEVORCk7XG5cdFx0Z2wuYmxlbmRGdW5jU2VwYXJhdGUodGhpcy5zcmNDb2xvckJsZW5kLCB0aGlzLmRzdEJsZW5kLCB0aGlzLnNyY0FscGhhQmxlbmQsIHRoaXMuZHN0QmxlbmQpO1xuXHR9XG5cblx0c2V0QmxlbmRNb2RlIChzcmNDb2xvckJsZW5kOiBudW1iZXIsIHNyY0FscGhhQmxlbmQ6IG51bWJlciwgZHN0QmxlbmQ6IG51bWJlcikge1xuXHRcdHRoaXMuc3JjQ29sb3JCbGVuZCA9IHNyY0NvbG9yQmxlbmQ7XG5cdFx0dGhpcy5zcmNBbHBoYUJsZW5kID0gc3JjQWxwaGFCbGVuZDtcblx0XHR0aGlzLmRzdEJsZW5kID0gZHN0QmxlbmQ7XG5cdFx0aWYgKHRoaXMuaXNEcmF3aW5nKSB7XG5cdFx0XHR0aGlzLmZsdXNoKCk7XG5cdFx0XHRsZXQgZ2wgPSB0aGlzLmNvbnRleHQuZ2w7XG5cdFx0XHRnbC5ibGVuZEZ1bmNTZXBhcmF0ZShzcmNDb2xvckJsZW5kLCBkc3RCbGVuZCwgc3JjQWxwaGFCbGVuZCwgZHN0QmxlbmQpO1xuXHRcdH1cblx0fVxuXG5cdHNldENvbG9yIChjb2xvcjogQ29sb3IpIHtcblx0XHR0aGlzLmNvbG9yLnNldEZyb21Db2xvcihjb2xvcik7XG5cdH1cblxuXHRzZXRDb2xvcldpdGggKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIsIGE6IG51bWJlcikge1xuXHRcdHRoaXMuY29sb3Iuc2V0KHIsIGcsIGIsIGEpO1xuXHR9XG5cblx0cG9pbnQgKHg6IG51bWJlciwgeTogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5jaGVjayhTaGFwZVR5cGUuUG9pbnQsIDEpO1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gdGhpcy5jb2xvcjtcblx0XHR0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7XG5cdH1cblxuXHRsaW5lICh4OiBudW1iZXIsIHk6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuY2hlY2soU2hhcGVUeXBlLkxpbmUsIDIpO1xuXHRcdGxldCB2ZXJ0aWNlcyA9IHRoaXMubWVzaC5nZXRWZXJ0aWNlcygpO1xuXHRcdGxldCBpZHggPSB0aGlzLnZlcnRleEluZGV4O1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gdGhpcy5jb2xvcjtcblx0XHR0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7XG5cdFx0dGhpcy52ZXJ0ZXgoeDIsIHkyLCBjb2xvcik7XG5cdH1cblxuXHR0cmlhbmdsZSAoZmlsbGVkOiBib29sZWFuLCB4OiBudW1iZXIsIHk6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgeDM6IG51bWJlciwgeTM6IG51bWJlciwgY29sb3I/OiBDb2xvciwgY29sb3IyPzogQ29sb3IsIGNvbG9yMz86IENvbG9yKSB7XG5cdFx0dGhpcy5jaGVjayhmaWxsZWQgPyBTaGFwZVR5cGUuRmlsbGVkIDogU2hhcGVUeXBlLkxpbmUsIDMpO1xuXHRcdGxldCB2ZXJ0aWNlcyA9IHRoaXMubWVzaC5nZXRWZXJ0aWNlcygpO1xuXHRcdGxldCBpZHggPSB0aGlzLnZlcnRleEluZGV4O1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoIWNvbG9yMikgY29sb3IyID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoIWNvbG9yMykgY29sb3IzID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoZmlsbGVkKSB7XG5cdFx0XHR0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7XG5cdFx0XHR0aGlzLnZlcnRleCh4MiwgeTIsIGNvbG9yMik7XG5cdFx0XHR0aGlzLnZlcnRleCh4MywgeTMsIGNvbG9yMyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMudmVydGV4KHgsIHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgyLCB5MiwgY29sb3IyKTtcblxuXHRcdFx0dGhpcy52ZXJ0ZXgoeDIsIHkyLCBjb2xvcik7XG5cdFx0XHR0aGlzLnZlcnRleCh4MywgeTMsIGNvbG9yMik7XG5cblx0XHRcdHRoaXMudmVydGV4KHgzLCB5MywgY29sb3IpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeCwgeSwgY29sb3IyKTtcblx0XHR9XG5cdH1cblxuXHRxdWFkIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB4MzogbnVtYmVyLCB5MzogbnVtYmVyLCB4NDogbnVtYmVyLCB5NDogbnVtYmVyLCBjb2xvcj86IENvbG9yLCBjb2xvcjI/OiBDb2xvciwgY29sb3IzPzogQ29sb3IsIGNvbG9yND86IENvbG9yKSB7XG5cdFx0dGhpcy5jaGVjayhmaWxsZWQgPyBTaGFwZVR5cGUuRmlsbGVkIDogU2hhcGVUeXBlLkxpbmUsIDMpO1xuXHRcdGxldCB2ZXJ0aWNlcyA9IHRoaXMubWVzaC5nZXRWZXJ0aWNlcygpO1xuXHRcdGxldCBpZHggPSB0aGlzLnZlcnRleEluZGV4O1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoIWNvbG9yMikgY29sb3IyID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoIWNvbG9yMykgY29sb3IzID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoIWNvbG9yNCkgY29sb3I0ID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoZmlsbGVkKSB7XG5cdFx0XHR0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7IHRoaXMudmVydGV4KHgyLCB5MiwgY29sb3IyKTsgdGhpcy52ZXJ0ZXgoeDMsIHkzLCBjb2xvcjMpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeDMsIHkzLCBjb2xvcjMpOyB0aGlzLnZlcnRleCh4NCwgeTQsIGNvbG9yNCk7IHRoaXMudmVydGV4KHgsIHksIGNvbG9yKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeCwgeSwgY29sb3IpOyB0aGlzLnZlcnRleCh4MiwgeTIsIGNvbG9yMik7XG5cdFx0XHR0aGlzLnZlcnRleCh4MiwgeTIsIGNvbG9yMik7IHRoaXMudmVydGV4KHgzLCB5MywgY29sb3IzKTtcblx0XHRcdHRoaXMudmVydGV4KHgzLCB5MywgY29sb3IzKTsgdGhpcy52ZXJ0ZXgoeDQsIHk0LCBjb2xvcjQpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeDQsIHk0LCBjb2xvcjQpOyB0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7XG5cdFx0fVxuXHR9XG5cblx0cmVjdCAoZmlsbGVkOiBib29sZWFuLCB4OiBudW1iZXIsIHk6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLnF1YWQoZmlsbGVkLCB4LCB5LCB4ICsgd2lkdGgsIHksIHggKyB3aWR0aCwgeSArIGhlaWdodCwgeCwgeSArIGhlaWdodCwgY29sb3IsIGNvbG9yLCBjb2xvciwgY29sb3IpO1xuXHR9XG5cblx0cmVjdExpbmUgKGZpbGxlZDogYm9vbGVhbiwgeDE6IG51bWJlciwgeTE6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgd2lkdGg6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuY2hlY2soZmlsbGVkID8gU2hhcGVUeXBlLkZpbGxlZCA6IFNoYXBlVHlwZS5MaW5lLCA4KTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IHRoaXMuY29sb3I7XG5cdFx0bGV0IHQgPSB0aGlzLnRtcC5zZXQoeTIgLSB5MSwgeDEgLSB4Mik7XG5cdFx0dC5ub3JtYWxpemUoKTtcblx0XHR3aWR0aCAqPSAwLjU7XG5cdFx0bGV0IHR4ID0gdC54ICogd2lkdGg7XG5cdFx0bGV0IHR5ID0gdC55ICogd2lkdGg7XG5cdFx0aWYgKCFmaWxsZWQpIHtcblx0XHRcdHRoaXMudmVydGV4KHgxICsgdHgsIHkxICsgdHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgxIC0gdHgsIHkxIC0gdHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgyICsgdHgsIHkyICsgdHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgyIC0gdHgsIHkyIC0gdHksIGNvbG9yKTtcblxuXHRcdFx0dGhpcy52ZXJ0ZXgoeDIgKyB0eCwgeTIgKyB0eSwgY29sb3IpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeDEgKyB0eCwgeTEgKyB0eSwgY29sb3IpO1xuXG5cdFx0XHR0aGlzLnZlcnRleCh4MiAtIHR4LCB5MiAtIHR5LCBjb2xvcik7XG5cdFx0XHR0aGlzLnZlcnRleCh4MSAtIHR4LCB5MSAtIHR5LCBjb2xvcik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMudmVydGV4KHgxICsgdHgsIHkxICsgdHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgxIC0gdHgsIHkxIC0gdHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgyICsgdHgsIHkyICsgdHksIGNvbG9yKTtcblxuXHRcdFx0dGhpcy52ZXJ0ZXgoeDIgLSB0eCwgeTIgLSB0eSwgY29sb3IpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeDIgKyB0eCwgeTIgKyB0eSwgY29sb3IpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeDEgLSB0eCwgeTEgLSB0eSwgY29sb3IpO1xuXHRcdH1cblx0fVxuXG5cdHggKHg6IG51bWJlciwgeTogbnVtYmVyLCBzaXplOiBudW1iZXIpIHtcblx0XHR0aGlzLmxpbmUoeCAtIHNpemUsIHkgLSBzaXplLCB4ICsgc2l6ZSwgeSArIHNpemUpO1xuXHRcdHRoaXMubGluZSh4IC0gc2l6ZSwgeSArIHNpemUsIHggKyBzaXplLCB5IC0gc2l6ZSk7XG5cdH1cblxuXHRwb2x5Z29uIChwb2x5Z29uVmVydGljZXM6IEFycmF5TGlrZTxudW1iZXI+LCBvZmZzZXQ6IG51bWJlciwgY291bnQ6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdGlmIChjb3VudCA8IDMpIHRocm93IG5ldyBFcnJvcihcIlBvbHlnb24gbXVzdCBjb250YWluIGF0IGxlYXN0IDMgdmVydGljZXNcIik7XG5cdFx0dGhpcy5jaGVjayhTaGFwZVR5cGUuTGluZSwgY291bnQgKiAyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IHRoaXMuY29sb3I7XG5cdFx0bGV0IHZlcnRpY2VzID0gdGhpcy5tZXNoLmdldFZlcnRpY2VzKCk7XG5cdFx0bGV0IGlkeCA9IHRoaXMudmVydGV4SW5kZXg7XG5cblx0XHRvZmZzZXQgPDw9IDE7XG5cdFx0Y291bnQgPDw9IDE7XG5cblx0XHRsZXQgZmlyc3RYID0gcG9seWdvblZlcnRpY2VzW29mZnNldF07XG5cdFx0bGV0IGZpcnN0WSA9IHBvbHlnb25WZXJ0aWNlc1tvZmZzZXQgKyAxXTtcblx0XHRsZXQgbGFzdCA9IG9mZnNldCArIGNvdW50O1xuXG5cdFx0Zm9yIChsZXQgaSA9IG9mZnNldCwgbiA9IG9mZnNldCArIGNvdW50IC0gMjsgaSA8IG47IGkgKz0gMikge1xuXHRcdFx0bGV0IHgxID0gcG9seWdvblZlcnRpY2VzW2ldO1xuXHRcdFx0bGV0IHkxID0gcG9seWdvblZlcnRpY2VzW2kgKyAxXTtcblxuXHRcdFx0bGV0IHgyID0gMDtcblx0XHRcdGxldCB5MiA9IDA7XG5cblx0XHRcdGlmIChpICsgMiA+PSBsYXN0KSB7XG5cdFx0XHRcdHgyID0gZmlyc3RYO1xuXHRcdFx0XHR5MiA9IGZpcnN0WTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHgyID0gcG9seWdvblZlcnRpY2VzW2kgKyAyXTtcblx0XHRcdFx0eTIgPSBwb2x5Z29uVmVydGljZXNbaSArIDNdO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnZlcnRleCh4MSwgeTEsIGNvbG9yISk7XG5cdFx0XHR0aGlzLnZlcnRleCh4MiwgeTIsIGNvbG9yISk7XG5cdFx0fVxuXHR9XG5cblx0Y2lyY2xlIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCByYWRpdXM6IG51bWJlciwgY29sb3I/OiBDb2xvciwgc2VnbWVudHM6IG51bWJlciA9IDApIHtcblx0XHRpZiAoc2VnbWVudHMgPT0gMCkgc2VnbWVudHMgPSBNYXRoLm1heCgxLCAoNiAqIE1hdGhVdGlscy5jYnJ0KHJhZGl1cykpIHwgMCk7XG5cdFx0aWYgKHNlZ21lbnRzIDw9IDApIHRocm93IG5ldyBFcnJvcihcInNlZ21lbnRzIG11c3QgYmUgPiAwLlwiKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IHRoaXMuY29sb3I7XG5cdFx0bGV0IGFuZ2xlID0gMiAqIE1hdGhVdGlscy5QSSAvIHNlZ21lbnRzO1xuXHRcdGxldCBjb3MgPSBNYXRoLmNvcyhhbmdsZSk7XG5cdFx0bGV0IHNpbiA9IE1hdGguc2luKGFuZ2xlKTtcblx0XHRsZXQgY3ggPSByYWRpdXMsIGN5ID0gMDtcblx0XHRpZiAoIWZpbGxlZCkge1xuXHRcdFx0dGhpcy5jaGVjayhTaGFwZVR5cGUuTGluZSwgc2VnbWVudHMgKiAyICsgMik7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHNlZ21lbnRzOyBpKyspIHtcblx0XHRcdFx0dGhpcy52ZXJ0ZXgoeCArIGN4LCB5ICsgY3ksIGNvbG9yKTtcblx0XHRcdFx0bGV0IHRlbXAgPSBjeDtcblx0XHRcdFx0Y3ggPSBjb3MgKiBjeCAtIHNpbiAqIGN5O1xuXHRcdFx0XHRjeSA9IHNpbiAqIHRlbXAgKyBjb3MgKiBjeTtcblx0XHRcdFx0dGhpcy52ZXJ0ZXgoeCArIGN4LCB5ICsgY3ksIGNvbG9yKTtcblx0XHRcdH1cblx0XHRcdC8vIEVuc3VyZSB0aGUgbGFzdCBzZWdtZW50IGlzIGlkZW50aWNhbCB0byB0aGUgZmlyc3QuXG5cdFx0XHR0aGlzLnZlcnRleCh4ICsgY3gsIHkgKyBjeSwgY29sb3IpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmNoZWNrKFNoYXBlVHlwZS5GaWxsZWQsIHNlZ21lbnRzICogMyArIDMpO1xuXHRcdFx0c2VnbWVudHMtLTtcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHM7IGkrKykge1xuXHRcdFx0XHR0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7XG5cdFx0XHRcdHRoaXMudmVydGV4KHggKyBjeCwgeSArIGN5LCBjb2xvcik7XG5cdFx0XHRcdGxldCB0ZW1wID0gY3g7XG5cdFx0XHRcdGN4ID0gY29zICogY3ggLSBzaW4gKiBjeTtcblx0XHRcdFx0Y3kgPSBzaW4gKiB0ZW1wICsgY29zICogY3k7XG5cdFx0XHRcdHRoaXMudmVydGV4KHggKyBjeCwgeSArIGN5LCBjb2xvcik7XG5cdFx0XHR9XG5cdFx0XHQvLyBFbnN1cmUgdGhlIGxhc3Qgc2VnbWVudCBpcyBpZGVudGljYWwgdG8gdGhlIGZpcnN0LlxuXHRcdFx0dGhpcy52ZXJ0ZXgoeCwgeSwgY29sb3IpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeCArIGN4LCB5ICsgY3ksIGNvbG9yKTtcblx0XHR9XG5cblx0XHRsZXQgdGVtcCA9IGN4O1xuXHRcdGN4ID0gcmFkaXVzO1xuXHRcdGN5ID0gMDtcblx0XHR0aGlzLnZlcnRleCh4ICsgY3gsIHkgKyBjeSwgY29sb3IpO1xuXHR9XG5cblx0Y3VydmUgKHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIGN4MTogbnVtYmVyLCBjeTE6IG51bWJlciwgY3gyOiBudW1iZXIsIGN5MjogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCBzZWdtZW50czogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5jaGVjayhTaGFwZVR5cGUuTGluZSwgc2VnbWVudHMgKiAyICsgMik7XG5cdFx0aWYgKCFjb2xvcikgY29sb3IgPSB0aGlzLmNvbG9yO1xuXG5cdFx0Ly8gQWxnb3JpdGhtIGZyb206IGh0dHA6Ly93d3cuYW50aWdyYWluLmNvbS9yZXNlYXJjaC9iZXppZXJfaW50ZXJwb2xhdGlvbi9pbmRleC5odG1sI1BBR0VfQkVaSUVSX0lOVEVSUE9MQVRJT05cblx0XHRsZXQgc3ViZGl2X3N0ZXAgPSAxIC8gc2VnbWVudHM7XG5cdFx0bGV0IHN1YmRpdl9zdGVwMiA9IHN1YmRpdl9zdGVwICogc3ViZGl2X3N0ZXA7XG5cdFx0bGV0IHN1YmRpdl9zdGVwMyA9IHN1YmRpdl9zdGVwICogc3ViZGl2X3N0ZXAgKiBzdWJkaXZfc3RlcDtcblxuXHRcdGxldCBwcmUxID0gMyAqIHN1YmRpdl9zdGVwO1xuXHRcdGxldCBwcmUyID0gMyAqIHN1YmRpdl9zdGVwMjtcblx0XHRsZXQgcHJlNCA9IDYgKiBzdWJkaXZfc3RlcDI7XG5cdFx0bGV0IHByZTUgPSA2ICogc3ViZGl2X3N0ZXAzO1xuXG5cdFx0bGV0IHRtcDF4ID0geDEgLSBjeDEgKiAyICsgY3gyO1xuXHRcdGxldCB0bXAxeSA9IHkxIC0gY3kxICogMiArIGN5MjtcblxuXHRcdGxldCB0bXAyeCA9IChjeDEgLSBjeDIpICogMyAtIHgxICsgeDI7XG5cdFx0bGV0IHRtcDJ5ID0gKGN5MSAtIGN5MikgKiAzIC0geTEgKyB5MjtcblxuXHRcdGxldCBmeCA9IHgxO1xuXHRcdGxldCBmeSA9IHkxO1xuXG5cdFx0bGV0IGRmeCA9IChjeDEgLSB4MSkgKiBwcmUxICsgdG1wMXggKiBwcmUyICsgdG1wMnggKiBzdWJkaXZfc3RlcDM7XG5cdFx0bGV0IGRmeSA9IChjeTEgLSB5MSkgKiBwcmUxICsgdG1wMXkgKiBwcmUyICsgdG1wMnkgKiBzdWJkaXZfc3RlcDM7XG5cblx0XHRsZXQgZGRmeCA9IHRtcDF4ICogcHJlNCArIHRtcDJ4ICogcHJlNTtcblx0XHRsZXQgZGRmeSA9IHRtcDF5ICogcHJlNCArIHRtcDJ5ICogcHJlNTtcblxuXHRcdGxldCBkZGRmeCA9IHRtcDJ4ICogcHJlNTtcblx0XHRsZXQgZGRkZnkgPSB0bXAyeSAqIHByZTU7XG5cblx0XHR3aGlsZSAoc2VnbWVudHMtLSA+IDApIHtcblx0XHRcdHRoaXMudmVydGV4KGZ4LCBmeSwgY29sb3IhKTtcblx0XHRcdGZ4ICs9IGRmeDtcblx0XHRcdGZ5ICs9IGRmeTtcblx0XHRcdGRmeCArPSBkZGZ4O1xuXHRcdFx0ZGZ5ICs9IGRkZnk7XG5cdFx0XHRkZGZ4ICs9IGRkZGZ4O1xuXHRcdFx0ZGRmeSArPSBkZGRmeTtcblx0XHRcdHRoaXMudmVydGV4KGZ4LCBmeSwgY29sb3IhKTtcblx0XHR9XG5cdFx0dGhpcy52ZXJ0ZXgoZngsIGZ5LCBjb2xvciEpO1xuXHRcdHRoaXMudmVydGV4KHgyLCB5MiwgY29sb3IhKTtcblx0fVxuXG5cdHByaXZhdGUgdmVydGV4ICh4OiBudW1iZXIsIHk6IG51bWJlciwgY29sb3I6IENvbG9yKSB7XG5cdFx0bGV0IGlkeCA9IHRoaXMudmVydGV4SW5kZXg7XG5cdFx0bGV0IHZlcnRpY2VzID0gdGhpcy5tZXNoLmdldFZlcnRpY2VzKCk7XG5cdFx0dmVydGljZXNbaWR4KytdID0geDtcblx0XHR2ZXJ0aWNlc1tpZHgrK10gPSB5O1xuXHRcdHZlcnRpY2VzW2lkeCsrXSA9IGNvbG9yLnI7XG5cdFx0dmVydGljZXNbaWR4KytdID0gY29sb3IuZztcblx0XHR2ZXJ0aWNlc1tpZHgrK10gPSBjb2xvci5iO1xuXHRcdHZlcnRpY2VzW2lkeCsrXSA9IGNvbG9yLmE7XG5cdFx0dGhpcy52ZXJ0ZXhJbmRleCA9IGlkeDtcblx0fVxuXG5cdGVuZCAoKSB7XG5cdFx0aWYgKCF0aGlzLmlzRHJhd2luZykgdGhyb3cgbmV3IEVycm9yKFwiU2hhcGVSZW5kZXJlci5iZWdpbigpIGhhcyBub3QgYmVlbiBjYWxsZWRcIik7XG5cdFx0dGhpcy5mbHVzaCgpO1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHRnbC5kaXNhYmxlKGdsLkJMRU5EKTtcblx0XHR0aGlzLmlzRHJhd2luZyA9IGZhbHNlO1xuXHR9XG5cblx0cHJpdmF0ZSBmbHVzaCAoKSB7XG5cdFx0aWYgKHRoaXMudmVydGV4SW5kZXggPT0gMCkgcmV0dXJuO1xuXHRcdGlmICghdGhpcy5zaGFkZXIpIHRocm93IG5ldyBFcnJvcihcIk5vIHNoYWRlciBzZXQuXCIpO1xuXHRcdHRoaXMubWVzaC5zZXRWZXJ0aWNlc0xlbmd0aCh0aGlzLnZlcnRleEluZGV4KTtcblx0XHR0aGlzLm1lc2guZHJhdyh0aGlzLnNoYWRlciwgdGhpcy5zaGFwZVR5cGUpO1xuXHRcdHRoaXMudmVydGV4SW5kZXggPSAwO1xuXHR9XG5cblx0cHJpdmF0ZSBjaGVjayAoc2hhcGVUeXBlOiBTaGFwZVR5cGUsIG51bVZlcnRpY2VzOiBudW1iZXIpIHtcblx0XHRpZiAoIXRoaXMuaXNEcmF3aW5nKSB0aHJvdyBuZXcgRXJyb3IoXCJTaGFwZVJlbmRlcmVyLmJlZ2luKCkgaGFzIG5vdCBiZWVuIGNhbGxlZFwiKTtcblx0XHRpZiAodGhpcy5zaGFwZVR5cGUgPT0gc2hhcGVUeXBlKSB7XG5cdFx0XHRpZiAodGhpcy5tZXNoLm1heFZlcnRpY2VzKCkgLSB0aGlzLm1lc2gubnVtVmVydGljZXMoKSA8IG51bVZlcnRpY2VzKSB0aGlzLmZsdXNoKCk7XG5cdFx0XHRlbHNlIHJldHVybjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5mbHVzaCgpO1xuXHRcdFx0dGhpcy5zaGFwZVR5cGUgPSBzaGFwZVR5cGU7XG5cdFx0fVxuXHR9XG5cblx0ZGlzcG9zZSAoKSB7XG5cdFx0dGhpcy5tZXNoLmRpc3Bvc2UoKTtcblx0fVxufVxuXG5leHBvcnQgZW51bSBTaGFwZVR5cGUge1xuXHRQb2ludCA9IDB4MDAwMCxcblx0TGluZSA9IDB4MDAwMSxcblx0RmlsbGVkID0gMHgwMDA0XG59XG4iXX0=
|
|
347
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhcGVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TaGFwZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBQWMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRixPQUFPLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUQsTUFBTSxPQUFPLGFBQWE7SUFDakIsT0FBTyxDQUErQjtJQUN0QyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLElBQUksQ0FBTztJQUNYLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQzdCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLEdBQWtCLElBQUksQ0FBQztJQUM3QixXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLGFBQWEsQ0FBUztJQUN0QixhQUFhLENBQVM7SUFDdEIsUUFBUSxDQUFTO0lBRXpCLFlBQWEsT0FBNkQsRUFBRSxjQUFzQixLQUFLO1FBQ3RHLElBQUksV0FBVyxHQUFHLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxZQUFZLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckgsSUFBSSxDQUFDLElBQUksR0FBRyxJ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SUFBSSxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRixDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0YsQ0FBQztJQUVELElBQUksQ0FBRSxNQUFlLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLEtBQWE7UUFDeEYsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELFFBQVEsQ0FBRSxNQUFlLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEtBQWEsRUFBRSxLQUFhO1FBQ3RHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2QsS0FBSyxJQUFJLEdBQUcsQ0FBQztRQUNiLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXJDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXJDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNGLENBQUM7SUFFRCxDQUFDLENBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxJQUFZO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPLENBQUUsZUFBa0MsRUFBRSxNQUFjLEVBQUUsS0FBYSxFQUFFLEtBQWE7UUFDeEYsSUFBSSxLQUFLLEdBQUcsQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDL0IsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRTNCLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDYixLQUFLLEtBQUssQ0FBQyxDQUFDO1FBRVosSUFBSSxNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLElBQUksTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxJQUFJLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUUxQixLQUFLLElBQUksQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEdBQUcsTUFBTSxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUQsSUFBSSxFQUFFLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksRUFBRSxHQUFHLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFaEMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ1gsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRVgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNuQixFQUFFLEdBQUcsTUFBTSxDQUFDO2dCQUNaLEVBQUUsR0FBRyxNQUFNLENBQUM7WUFDYixDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsRUFBRSxHQUFHLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLEVBQUUsR0FBRyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBTSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQU0sQ0FBQyxDQUFDO1FBQzdCLENBQUM7SUFDRixDQUFDO0lBRUQsTUFBTSxDQUFFLE1BQWUsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLE1BQWMsRUFBRSxLQUFhLEVBQUUsV0FBbUIsQ0FBQztRQUNqRyxJQUFJLFFBQVEsSUFBSSxDQUFDO1lBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLFFBQVEsSUFBSSxDQUFDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDL0IsSUFBSSxLQUFLLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ3hDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ2QsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDekIsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUNELHFEQUFxRDtZQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQy9DLFFBQVEsRUFBRSxDQUFDO1lBQ1gsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ2QsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDekIsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUNELHFEQUFxRDtZQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNkLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDWixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEdBQVcsRUFBRSxHQUFXLEVBQUUsR0FBVyxFQUFFLEdBQVcsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLFFBQWdCLEVBQUUsS0FBYTtRQUN6SSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsS0FBSztZQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRS9CLDhHQUE4RztRQUM5RyxJQUFJLFdBQVcsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQy9CLElBQUksWUFBWSxHQUFHLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDN0MsSUFBSSxZQUFZLEdBQUcsV0FBVyxHQUFHLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFFM0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQztRQUMzQixJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDO1FBQzVCLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUM7UUFDNUIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQztRQUU1QixJQUFJLEtBQUssR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDL0IsSUFBSSxLQUFLLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBRS9CLElBQUksS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ3RDLElBQUksS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBRXRDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNaLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUVaLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxZQUFZLENBQUM7UUFDbEUsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLFlBQVksQ0FBQztRQUVsRSxJQUFJLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDdkMsSUFBSSxJQUFJLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRXZDLElBQUksS0FBSyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxLQUFLLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztRQUV6QixPQUFPLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFNLENBQUMsQ0FBQztZQUM1QixFQUFFLElBQUksR0FBRyxDQUFDO1lBQ1YsRUFBRSxJQUFJLEdBQUcsQ0FBQztZQUNWLEdBQUcsSUFBSSxJQUFJLENBQUM7WUFDWixHQUFHLElBQUksSUFBSSxDQUFDO1lBQ1osSUFBSSxJQUFJLEtBQUssQ0FBQztZQUNkLElBQUksSUFBSSxLQUFLLENBQUM7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFNLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLE1BQU0sQ0FBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEtBQVk7UUFDakQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMzQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUIsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztJQUN4QixDQUFDO0lBRUQsR0FBRztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN6QixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRU8sS0FBSztRQUNaLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVPLEtBQUssQ0FBRSxTQUFvQixFQUFFLFdBQW1CO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUNsRixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsV0FBVztnQkFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7O2dCQUM3RSxPQUFPO1FBQ2IsQ0FBQzthQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUM1QixDQUFDO0lBQ0YsQ0FBQztJQUVELE9BQU87UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRDtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDcEIsMkNBQWMsQ0FBQTtJQUNkLHlDQUFhLENBQUE7SUFDYiw2Q0FBZSxDQUFBO0FBQ2hCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XG4gKiBMYXN0IHVwZGF0ZWQgQXByaWwgNSwgMjAyNS4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDI1LCBFc290ZXJpYyBTb2Z0d2FyZSBMTENcbiAqXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcbiAqIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGlzIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgYW5kXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXG4gKlxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlXG4gKiBvciBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXG4gKiBcIlByb2R1Y3RzXCIpLCBwcm92aWRlZCB0aGF0IGVhY2ggdXNlciBvZiB0aGUgUHJvZHVjdHMgbXVzdCBvYnRhaW4gdGhlaXIgb3duXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxuICpcbiAqIFRIRSBTUElORSBSVU5USU1FUyBBUkUgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZXG4gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTllcbiAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVMsXG4gKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0ZcbiAqIFRIRSBTUElORSBSVU5USU1FUywgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IHsgRGlzcG9zYWJsZSwgQ29sb3IsIFZlY3RvcjIsIE1hdGhVdGlscyB9IGZyb20gXCJAZXNvdGVyaWNzb2Z0d2FyZS9zcGluZS1jb3JlXCI7XG5pbXBvcnQgeyBNZXNoLCBQb3NpdGlvbjJBdHRyaWJ1dGUsIENvbG9yQXR0cmlidXRlIH0gZnJvbSBcIi4vTWVzaC5qc1wiO1xuaW1wb3J0IHsgU2hhZGVyIH0gZnJvbSBcIi4vU2hhZGVyLmpzXCI7XG5pbXBvcnQgeyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IH0gZnJvbSBcIi4vV2ViR0wuanNcIjtcblxuZXhwb3J0IGNsYXNzIFNoYXBlUmVuZGVyZXIgaW1wbGVtZW50cyBEaXNwb3NhYmxlIHtcblx0cHJpdmF0ZSBjb250ZXh0OiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0O1xuXHRwcml2YXRlIGlzRHJhd2luZyA9IGZhbHNlO1xuXHRwcml2YXRlIG1lc2g6IE1lc2g7XG5cdHByaXZhdGUgc2hhcGVUeXBlID0gU2hhcGVUeXBlLkZpbGxlZDtcblx0cHJpdmF0ZSBjb2xvciA9IG5ldyBDb2xvcigxLCAxLCAxLCAxKTtcblx0cHJpdmF0ZSBzaGFkZXI6IFNoYWRlciB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIHZlcnRleEluZGV4ID0gMDtcblx0cHJpdmF0ZSB0bXAgPSBuZXcgVmVjdG9yMigpO1xuXHRwcml2YXRlIHNyY0NvbG9yQmxlbmQ6IG51bWJlcjtcblx0cHJpdmF0ZSBzcmNBbHBoYUJsZW5kOiBudW1iZXI7XG5cdHByaXZhdGUgZHN0QmxlbmQ6IG51bWJlcjtcblxuXHRjb25zdHJ1Y3RvciAoY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgbWF4VmVydGljZXM6IG51bWJlciA9IDEwOTIwKSB7XG5cdFx0aWYgKG1heFZlcnRpY2VzID4gMTA5MjApIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGhhdmUgbW9yZSB0aGFuIDEwOTIwIHRyaWFuZ2xlcyBwZXIgYmF0Y2g6IFwiICsgbWF4VmVydGljZXMpO1xuXHRcdHRoaXMuY29udGV4dCA9IGNvbnRleHQgaW5zdGFuY2VvZiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0ID8gY29udGV4dCA6IG5ldyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0KGNvbnRleHQpO1xuXHRcdHRoaXMubWVzaCA9IG5ldyBNZXNoKGNvbnRleHQsIFtuZXcgUG9zaXRpb24yQXR0cmlidXRlKCksIG5ldyBDb2xvckF0dHJpYnV0ZSgpXSwgbWF4VmVydGljZXMsIDApO1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHR0aGlzLnNyY0NvbG9yQmxlbmQgPSBnbC5TUkNfQUxQSEE7XG5cdFx0dGhpcy5zcmNBbHBoYUJsZW5kID0gZ2wuT05FO1xuXHRcdHRoaXMuZHN0QmxlbmQgPSBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBO1xuXHR9XG5cblx0YmVnaW4gKHNoYWRlcjogU2hhZGVyKSB7XG5cdFx0aWYgKHRoaXMuaXNEcmF3aW5nKSB0aHJvdyBuZXcgRXJyb3IoXCJTaGFwZVJlbmRlcmVyLmJlZ2luKCkgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWRcIik7XG5cdFx0dGhpcy5zaGFkZXIgPSBzaGFkZXI7XG5cdFx0dGhpcy52ZXJ0ZXhJbmRleCA9IDA7XG5cdFx0dGhpcy5pc0RyYXdpbmcgPSB0cnVlO1xuXG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdGdsLmVuYWJsZShnbC5CTEVORCk7XG5cdFx0Z2wuYmxlbmRGdW5jU2VwYXJhdGUodGhpcy5zcmNDb2xvckJsZW5kLCB0aGlzLmRzdEJsZW5kLCB0aGlzLnNyY0FscGhhQmxlbmQsIHRoaXMuZHN0QmxlbmQpO1xuXHR9XG5cblx0c2V0QmxlbmRNb2RlIChzcmNDb2xvckJsZW5kOiBudW1iZXIsIHNyY0FscGhhQmxlbmQ6IG51bWJlciwgZHN0QmxlbmQ6IG51bWJlcikge1xuXHRcdHRoaXMuc3JjQ29sb3JCbGVuZCA9IHNyY0NvbG9yQmxlbmQ7XG5cdFx0dGhpcy5zcmNBbHBoYUJsZW5kID0gc3JjQWxwaGFCbGVuZDtcblx0XHR0aGlzLmRzdEJsZW5kID0gZHN0QmxlbmQ7XG5cdFx0aWYgKHRoaXMuaXNEcmF3aW5nKSB7XG5cdFx0XHR0aGlzLmZsdXNoKCk7XG5cdFx0XHRsZXQgZ2wgPSB0aGlzLmNvbnRleHQuZ2w7XG5cdFx0XHRnbC5ibGVuZEZ1bmNTZXBhcmF0ZShzcmNDb2xvckJsZW5kLCBkc3RCbGVuZCwgc3JjQWxwaGFCbGVuZCwgZHN0QmxlbmQpO1xuXHRcdH1cblx0fVxuXG5cdHNldENvbG9yIChjb2xvcjogQ29sb3IpIHtcblx0XHR0aGlzLmNvbG9yLnNldEZyb21Db2xvcihjb2xvcik7XG5cdH1cblxuXHRzZXRDb2xvcldpdGggKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIsIGE6IG51bWJlcikge1xuXHRcdHRoaXMuY29sb3Iuc2V0KHIsIGcsIGIsIGEpO1xuXHR9XG5cblx0cG9pbnQgKHg6IG51bWJlciwgeTogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5jaGVjayhTaGFwZVR5cGUuUG9pbnQsIDEpO1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gdGhpcy5jb2xvcjtcblx0XHR0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7XG5cdH1cblxuXHRsaW5lICh4OiBudW1iZXIsIHk6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuY2hlY2soU2hhcGVUeXBlLkxpbmUsIDIpO1xuXHRcdGxldCB2ZXJ0aWNlcyA9IHRoaXMubWVzaC5nZXRWZXJ0aWNlcygpO1xuXHRcdGxldCBpZHggPSB0aGlzLnZlcnRleEluZGV4O1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gdGhpcy5jb2xvcjtcblx0XHR0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7XG5cdFx0dGhpcy52ZXJ0ZXgoeDIsIHkyLCBjb2xvcik7XG5cdH1cblxuXHR0cmlhbmdsZSAoZmlsbGVkOiBib29sZWFuLCB4OiBudW1iZXIsIHk6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgeDM6IG51bWJlciwgeTM6IG51bWJlciwgY29sb3I/OiBDb2xvciwgY29sb3IyPzogQ29sb3IsIGNvbG9yMz86IENvbG9yKSB7XG5cdFx0dGhpcy5jaGVjayhmaWxsZWQgPyBTaGFwZVR5cGUuRmlsbGVkIDogU2hhcGVUeXBlLkxpbmUsIDMpO1xuXHRcdGxldCB2ZXJ0aWNlcyA9IHRoaXMubWVzaC5nZXRWZXJ0aWNlcygpO1xuXHRcdGxldCBpZHggPSB0aGlzLnZlcnRleEluZGV4O1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoIWNvbG9yMikgY29sb3IyID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoIWNvbG9yMykgY29sb3IzID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoZmlsbGVkKSB7XG5cdFx0XHR0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7XG5cdFx0XHR0aGlzLnZlcnRleCh4MiwgeTIsIGNvbG9yMik7XG5cdFx0XHR0aGlzLnZlcnRleCh4MywgeTMsIGNvbG9yMyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMudmVydGV4KHgsIHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgyLCB5MiwgY29sb3IyKTtcblxuXHRcdFx0dGhpcy52ZXJ0ZXgoeDIsIHkyLCBjb2xvcik7XG5cdFx0XHR0aGlzLnZlcnRleCh4MywgeTMsIGNvbG9yMik7XG5cblx0XHRcdHRoaXMudmVydGV4KHgzLCB5MywgY29sb3IpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeCwgeSwgY29sb3IyKTtcblx0XHR9XG5cdH1cblxuXHRxdWFkIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB4MzogbnVtYmVyLCB5MzogbnVtYmVyLCB4NDogbnVtYmVyLCB5NDogbnVtYmVyLCBjb2xvcj86IENvbG9yLCBjb2xvcjI/OiBDb2xvciwgY29sb3IzPzogQ29sb3IsIGNvbG9yND86IENvbG9yKSB7XG5cdFx0dGhpcy5jaGVjayhmaWxsZWQgPyBTaGFwZVR5cGUuRmlsbGVkIDogU2hhcGVUeXBlLkxpbmUsIDMpO1xuXHRcdGxldCB2ZXJ0aWNlcyA9IHRoaXMubWVzaC5nZXRWZXJ0aWNlcygpO1xuXHRcdGxldCBpZHggPSB0aGlzLnZlcnRleEluZGV4O1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoIWNvbG9yMikgY29sb3IyID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoIWNvbG9yMykgY29sb3IzID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoIWNvbG9yNCkgY29sb3I0ID0gdGhpcy5jb2xvcjtcblx0XHRpZiAoZmlsbGVkKSB7XG5cdFx0XHR0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7IHRoaXMudmVydGV4KHgyLCB5MiwgY29sb3IyKTsgdGhpcy52ZXJ0ZXgoeDMsIHkzLCBjb2xvcjMpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeDMsIHkzLCBjb2xvcjMpOyB0aGlzLnZlcnRleCh4NCwgeTQsIGNvbG9yNCk7IHRoaXMudmVydGV4KHgsIHksIGNvbG9yKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeCwgeSwgY29sb3IpOyB0aGlzLnZlcnRleCh4MiwgeTIsIGNvbG9yMik7XG5cdFx0XHR0aGlzLnZlcnRleCh4MiwgeTIsIGNvbG9yMik7IHRoaXMudmVydGV4KHgzLCB5MywgY29sb3IzKTtcblx0XHRcdHRoaXMudmVydGV4KHgzLCB5MywgY29sb3IzKTsgdGhpcy52ZXJ0ZXgoeDQsIHk0LCBjb2xvcjQpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeDQsIHk0LCBjb2xvcjQpOyB0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7XG5cdFx0fVxuXHR9XG5cblx0cmVjdCAoZmlsbGVkOiBib29sZWFuLCB4OiBudW1iZXIsIHk6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLnF1YWQoZmlsbGVkLCB4LCB5LCB4ICsgd2lkdGgsIHksIHggKyB3aWR0aCwgeSArIGhlaWdodCwgeCwgeSArIGhlaWdodCwgY29sb3IsIGNvbG9yLCBjb2xvciwgY29sb3IpO1xuXHR9XG5cblx0cmVjdExpbmUgKGZpbGxlZDogYm9vbGVhbiwgeDE6IG51bWJlciwgeTE6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgd2lkdGg6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuY2hlY2soZmlsbGVkID8gU2hhcGVUeXBlLkZpbGxlZCA6IFNoYXBlVHlwZS5MaW5lLCA4KTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IHRoaXMuY29sb3I7XG5cdFx0bGV0IHQgPSB0aGlzLnRtcC5zZXQoeTIgLSB5MSwgeDEgLSB4Mik7XG5cdFx0dC5ub3JtYWxpemUoKTtcblx0XHR3aWR0aCAqPSAwLjU7XG5cdFx0bGV0IHR4ID0gdC54ICogd2lkdGg7XG5cdFx0bGV0IHR5ID0gdC55ICogd2lkdGg7XG5cdFx0aWYgKCFmaWxsZWQpIHtcblx0XHRcdHRoaXMudmVydGV4KHgxICsgdHgsIHkxICsgdHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgxIC0gdHgsIHkxIC0gdHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgyICsgdHgsIHkyICsgdHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgyIC0gdHgsIHkyIC0gdHksIGNvbG9yKTtcblxuXHRcdFx0dGhpcy52ZXJ0ZXgoeDIgKyB0eCwgeTIgKyB0eSwgY29sb3IpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeDEgKyB0eCwgeTEgKyB0eSwgY29sb3IpO1xuXG5cdFx0XHR0aGlzLnZlcnRleCh4MiAtIHR4LCB5MiAtIHR5LCBjb2xvcik7XG5cdFx0XHR0aGlzLnZlcnRleCh4MSAtIHR4LCB5MSAtIHR5LCBjb2xvcik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMudmVydGV4KHgxICsgdHgsIHkxICsgdHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgxIC0gdHgsIHkxIC0gdHksIGNvbG9yKTtcblx0XHRcdHRoaXMudmVydGV4KHgyICsgdHgsIHkyICsgdHksIGNvbG9yKTtcblxuXHRcdFx0dGhpcy52ZXJ0ZXgoeDIgLSB0eCwgeTIgLSB0eSwgY29sb3IpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeDIgKyB0eCwgeTIgKyB0eSwgY29sb3IpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeDEgLSB0eCwgeTEgLSB0eSwgY29sb3IpO1xuXHRcdH1cblx0fVxuXG5cdHggKHg6IG51bWJlciwgeTogbnVtYmVyLCBzaXplOiBudW1iZXIpIHtcblx0XHR0aGlzLmxpbmUoeCAtIHNpemUsIHkgLSBzaXplLCB4ICsgc2l6ZSwgeSArIHNpemUpO1xuXHRcdHRoaXMubGluZSh4IC0gc2l6ZSwgeSArIHNpemUsIHggKyBzaXplLCB5IC0gc2l6ZSk7XG5cdH1cblxuXHRwb2x5Z29uIChwb2x5Z29uVmVydGljZXM6IEFycmF5TGlrZTxudW1iZXI+LCBvZmZzZXQ6IG51bWJlciwgY291bnQ6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdGlmIChjb3VudCA8IDMpIHRocm93IG5ldyBFcnJvcihcIlBvbHlnb24gbXVzdCBjb250YWluIGF0IGxlYXN0IDMgdmVydGljZXNcIik7XG5cdFx0dGhpcy5jaGVjayhTaGFwZVR5cGUuTGluZSwgY291bnQgKiAyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IHRoaXMuY29sb3I7XG5cdFx0bGV0IHZlcnRpY2VzID0gdGhpcy5tZXNoLmdldFZlcnRpY2VzKCk7XG5cdFx0bGV0IGlkeCA9IHRoaXMudmVydGV4SW5kZXg7XG5cblx0XHRvZmZzZXQgPDw9IDE7XG5cdFx0Y291bnQgPDw9IDE7XG5cblx0XHRsZXQgZmlyc3RYID0gcG9seWdvblZlcnRpY2VzW29mZnNldF07XG5cdFx0bGV0IGZpcnN0WSA9IHBvbHlnb25WZXJ0aWNlc1tvZmZzZXQgKyAxXTtcblx0XHRsZXQgbGFzdCA9IG9mZnNldCArIGNvdW50O1xuXG5cdFx0Zm9yIChsZXQgaSA9IG9mZnNldCwgbiA9IG9mZnNldCArIGNvdW50IC0gMjsgaSA8IG47IGkgKz0gMikge1xuXHRcdFx0bGV0IHgxID0gcG9seWdvblZlcnRpY2VzW2ldO1xuXHRcdFx0bGV0IHkxID0gcG9seWdvblZlcnRpY2VzW2kgKyAxXTtcblxuXHRcdFx0bGV0IHgyID0gMDtcblx0XHRcdGxldCB5MiA9IDA7XG5cblx0XHRcdGlmIChpICsgMiA+PSBsYXN0KSB7XG5cdFx0XHRcdHgyID0gZmlyc3RYO1xuXHRcdFx0XHR5MiA9IGZpcnN0WTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHgyID0gcG9seWdvblZlcnRpY2VzW2kgKyAyXTtcblx0XHRcdFx0eTIgPSBwb2x5Z29uVmVydGljZXNbaSArIDNdO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnZlcnRleCh4MSwgeTEsIGNvbG9yISk7XG5cdFx0XHR0aGlzLnZlcnRleCh4MiwgeTIsIGNvbG9yISk7XG5cdFx0fVxuXHR9XG5cblx0Y2lyY2xlIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCByYWRpdXM6IG51bWJlciwgY29sb3I/OiBDb2xvciwgc2VnbWVudHM6IG51bWJlciA9IDApIHtcblx0XHRpZiAoc2VnbWVudHMgPT0gMCkgc2VnbWVudHMgPSBNYXRoLm1heCgxLCAoNiAqIE1hdGhVdGlscy5jYnJ0KHJhZGl1cykpIHwgMCk7XG5cdFx0aWYgKHNlZ21lbnRzIDw9IDApIHRocm93IG5ldyBFcnJvcihcInNlZ21lbnRzIG11c3QgYmUgPiAwLlwiKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IHRoaXMuY29sb3I7XG5cdFx0bGV0IGFuZ2xlID0gMiAqIE1hdGhVdGlscy5QSSAvIHNlZ21lbnRzO1xuXHRcdGxldCBjb3MgPSBNYXRoLmNvcyhhbmdsZSk7XG5cdFx0bGV0IHNpbiA9IE1hdGguc2luKGFuZ2xlKTtcblx0XHRsZXQgY3ggPSByYWRpdXMsIGN5ID0gMDtcblx0XHRpZiAoIWZpbGxlZCkge1xuXHRcdFx0dGhpcy5jaGVjayhTaGFwZVR5cGUuTGluZSwgc2VnbWVudHMgKiAyICsgMik7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHNlZ21lbnRzOyBpKyspIHtcblx0XHRcdFx0dGhpcy52ZXJ0ZXgoeCArIGN4LCB5ICsgY3ksIGNvbG9yKTtcblx0XHRcdFx0bGV0IHRlbXAgPSBjeDtcblx0XHRcdFx0Y3ggPSBjb3MgKiBjeCAtIHNpbiAqIGN5O1xuXHRcdFx0XHRjeSA9IHNpbiAqIHRlbXAgKyBjb3MgKiBjeTtcblx0XHRcdFx0dGhpcy52ZXJ0ZXgoeCArIGN4LCB5ICsgY3ksIGNvbG9yKTtcblx0XHRcdH1cblx0XHRcdC8vIEVuc3VyZSB0aGUgbGFzdCBzZWdtZW50IGlzIGlkZW50aWNhbCB0byB0aGUgZmlyc3QuXG5cdFx0XHR0aGlzLnZlcnRleCh4ICsgY3gsIHkgKyBjeSwgY29sb3IpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmNoZWNrKFNoYXBlVHlwZS5GaWxsZWQsIHNlZ21lbnRzICogMyArIDMpO1xuXHRcdFx0c2VnbWVudHMtLTtcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHM7IGkrKykge1xuXHRcdFx0XHR0aGlzLnZlcnRleCh4LCB5LCBjb2xvcik7XG5cdFx0XHRcdHRoaXMudmVydGV4KHggKyBjeCwgeSArIGN5LCBjb2xvcik7XG5cdFx0XHRcdGxldCB0ZW1wID0gY3g7XG5cdFx0XHRcdGN4ID0gY29zICogY3ggLSBzaW4gKiBjeTtcblx0XHRcdFx0Y3kgPSBzaW4gKiB0ZW1wICsgY29zICogY3k7XG5cdFx0XHRcdHRoaXMudmVydGV4KHggKyBjeCwgeSArIGN5LCBjb2xvcik7XG5cdFx0XHR9XG5cdFx0XHQvLyBFbnN1cmUgdGhlIGxhc3Qgc2VnbWVudCBpcyBpZGVudGljYWwgdG8gdGhlIGZpcnN0LlxuXHRcdFx0dGhpcy52ZXJ0ZXgoeCwgeSwgY29sb3IpO1xuXHRcdFx0dGhpcy52ZXJ0ZXgoeCArIGN4LCB5ICsgY3ksIGNvbG9yKTtcblx0XHR9XG5cblx0XHRsZXQgdGVtcCA9IGN4O1xuXHRcdGN4ID0gcmFkaXVzO1xuXHRcdGN5ID0gMDtcblx0XHR0aGlzLnZlcnRleCh4ICsgY3gsIHkgKyBjeSwgY29sb3IpO1xuXHR9XG5cblx0Y3VydmUgKHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIGN4MTogbnVtYmVyLCBjeTE6IG51bWJlciwgY3gyOiBudW1iZXIsIGN5MjogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCBzZWdtZW50czogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5jaGVjayhTaGFwZVR5cGUuTGluZSwgc2VnbWVudHMgKiAyICsgMik7XG5cdFx0aWYgKCFjb2xvcikgY29sb3IgPSB0aGlzLmNvbG9yO1xuXG5cdFx0Ly8gQWxnb3JpdGhtIGZyb206IGh0dHA6Ly93d3cuYW50aWdyYWluLmNvbS9yZXNlYXJjaC9iZXppZXJfaW50ZXJwb2xhdGlvbi9pbmRleC5odG1sI1BBR0VfQkVaSUVSX0lOVEVSUE9MQVRJT05cblx0XHRsZXQgc3ViZGl2X3N0ZXAgPSAxIC8gc2VnbWVudHM7XG5cdFx0bGV0IHN1YmRpdl9zdGVwMiA9IHN1YmRpdl9zdGVwICogc3ViZGl2X3N0ZXA7XG5cdFx0bGV0IHN1YmRpdl9zdGVwMyA9IHN1YmRpdl9zdGVwICogc3ViZGl2X3N0ZXAgKiBzdWJkaXZfc3RlcDtcblxuXHRcdGxldCBwcmUxID0gMyAqIHN1YmRpdl9zdGVwO1xuXHRcdGxldCBwcmUyID0gMyAqIHN1YmRpdl9zdGVwMjtcblx0XHRsZXQgcHJlNCA9IDYgKiBzdWJkaXZfc3RlcDI7XG5cdFx0bGV0IHByZTUgPSA2ICogc3ViZGl2X3N0ZXAzO1xuXG5cdFx0bGV0IHRtcDF4ID0geDEgLSBjeDEgKiAyICsgY3gyO1xuXHRcdGxldCB0bXAxeSA9IHkxIC0gY3kxICogMiArIGN5MjtcblxuXHRcdGxldCB0bXAyeCA9IChjeDEgLSBjeDIpICogMyAtIHgxICsgeDI7XG5cdFx0bGV0IHRtcDJ5ID0gKGN5MSAtIGN5MikgKiAzIC0geTEgKyB5MjtcblxuXHRcdGxldCBmeCA9IHgxO1xuXHRcdGxldCBmeSA9IHkxO1xuXG5cdFx0bGV0IGRmeCA9IChjeDEgLSB4MSkgKiBwcmUxICsgdG1wMXggKiBwcmUyICsgdG1wMnggKiBzdWJkaXZfc3RlcDM7XG5cdFx0bGV0IGRmeSA9IChjeTEgLSB5MSkgKiBwcmUxICsgdG1wMXkgKiBwcmUyICsgdG1wMnkgKiBzdWJkaXZfc3RlcDM7XG5cblx0XHRsZXQgZGRmeCA9IHRtcDF4ICogcHJlNCArIHRtcDJ4ICogcHJlNTtcblx0XHRsZXQgZGRmeSA9IHRtcDF5ICogcHJlNCArIHRtcDJ5ICogcHJlNTtcblxuXHRcdGxldCBkZGRmeCA9IHRtcDJ4ICogcHJlNTtcblx0XHRsZXQgZGRkZnkgPSB0bXAyeSAqIHByZTU7XG5cblx0XHR3aGlsZSAoc2VnbWVudHMtLSA+IDApIHtcblx0XHRcdHRoaXMudmVydGV4KGZ4LCBmeSwgY29sb3IhKTtcblx0XHRcdGZ4ICs9IGRmeDtcblx0XHRcdGZ5ICs9IGRmeTtcblx0XHRcdGRmeCArPSBkZGZ4O1xuXHRcdFx0ZGZ5ICs9IGRkZnk7XG5cdFx0XHRkZGZ4ICs9IGRkZGZ4O1xuXHRcdFx0ZGRmeSArPSBkZGRmeTtcblx0XHRcdHRoaXMudmVydGV4KGZ4LCBmeSwgY29sb3IhKTtcblx0XHR9XG5cdFx0dGhpcy52ZXJ0ZXgoZngsIGZ5LCBjb2xvciEpO1xuXHRcdHRoaXMudmVydGV4KHgyLCB5MiwgY29sb3IhKTtcblx0fVxuXG5cdHByaXZhdGUgdmVydGV4ICh4OiBudW1iZXIsIHk6IG51bWJlciwgY29sb3I6IENvbG9yKSB7XG5cdFx0bGV0IGlkeCA9IHRoaXMudmVydGV4SW5kZXg7XG5cdFx0bGV0IHZlcnRpY2VzID0gdGhpcy5tZXNoLmdldFZlcnRpY2VzKCk7XG5cdFx0dmVydGljZXNbaWR4KytdID0geDtcblx0XHR2ZXJ0aWNlc1tpZHgrK10gPSB5O1xuXHRcdHZlcnRpY2VzW2lkeCsrXSA9IGNvbG9yLnI7XG5cdFx0dmVydGljZXNbaWR4KytdID0gY29sb3IuZztcblx0XHR2ZXJ0aWNlc1tpZHgrK10gPSBjb2xvci5iO1xuXHRcdHZlcnRpY2VzW2lkeCsrXSA9IGNvbG9yLmE7XG5cdFx0dGhpcy52ZXJ0ZXhJbmRleCA9IGlkeDtcblx0fVxuXG5cdGVuZCAoKSB7XG5cdFx0aWYgKCF0aGlzLmlzRHJhd2luZykgdGhyb3cgbmV3IEVycm9yKFwiU2hhcGVSZW5kZXJlci5iZWdpbigpIGhhcyBub3QgYmVlbiBjYWxsZWRcIik7XG5cdFx0dGhpcy5mbHVzaCgpO1xuXHRcdGxldCBnbCA9IHRoaXMuY29udGV4dC5nbDtcblx0XHRnbC5kaXNhYmxlKGdsLkJMRU5EKTtcblx0XHR0aGlzLmlzRHJhd2luZyA9IGZhbHNlO1xuXHR9XG5cblx0cHJpdmF0ZSBmbHVzaCAoKSB7XG5cdFx0aWYgKHRoaXMudmVydGV4SW5kZXggPT0gMCkgcmV0dXJuO1xuXHRcdGlmICghdGhpcy5zaGFkZXIpIHRocm93IG5ldyBFcnJvcihcIk5vIHNoYWRlciBzZXQuXCIpO1xuXHRcdHRoaXMubWVzaC5zZXRWZXJ0aWNlc0xlbmd0aCh0aGlzLnZlcnRleEluZGV4KTtcblx0XHR0aGlzLm1lc2guZHJhdyh0aGlzLnNoYWRlciwgdGhpcy5zaGFwZVR5cGUpO1xuXHRcdHRoaXMudmVydGV4SW5kZXggPSAwO1xuXHR9XG5cblx0cHJpdmF0ZSBjaGVjayAoc2hhcGVUeXBlOiBTaGFwZVR5cGUsIG51bVZlcnRpY2VzOiBudW1iZXIpIHtcblx0XHRpZiAoIXRoaXMuaXNEcmF3aW5nKSB0aHJvdyBuZXcgRXJyb3IoXCJTaGFwZVJlbmRlcmVyLmJlZ2luKCkgaGFzIG5vdCBiZWVuIGNhbGxlZFwiKTtcblx0XHRpZiAodGhpcy5zaGFwZVR5cGUgPT0gc2hhcGVUeXBlKSB7XG5cdFx0XHRpZiAodGhpcy5tZXNoLm1heFZlcnRpY2VzKCkgLSB0aGlzLm1lc2gubnVtVmVydGljZXMoKSA8IG51bVZlcnRpY2VzKSB0aGlzLmZsdXNoKCk7XG5cdFx0XHRlbHNlIHJldHVybjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5mbHVzaCgpO1xuXHRcdFx0dGhpcy5zaGFwZVR5cGUgPSBzaGFwZVR5cGU7XG5cdFx0fVxuXHR9XG5cblx0ZGlzcG9zZSAoKSB7XG5cdFx0dGhpcy5tZXNoLmRpc3Bvc2UoKTtcblx0fVxufVxuXG5leHBvcnQgZW51bSBTaGFwZVR5cGUge1xuXHRQb2ludCA9IDB4MDAwMCxcblx0TGluZSA9IDB4MDAwMSxcblx0RmlsbGVkID0gMHgwMDA0XG59XG4iXX0=
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/******************************************************************************
|
|
2
2
|
* Spine Runtimes License Agreement
|
|
3
|
-
* Last updated
|
|
3
|
+
* Last updated April 5, 2025. Replaces all prior versions.
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2013-
|
|
5
|
+
* Copyright (c) 2013-2025, Esoteric Software LLC
|
|
6
6
|
*
|
|
7
7
|
* Integration of the Spine Runtimes into software or otherwise creating
|
|
8
8
|
* derivative works of the Spine Runtimes is permitted under the terms and
|
|
9
9
|
* conditions of Section 2 of the Spine Editor License Agreement:
|
|
10
10
|
* http://esotericsoftware.com/spine-editor-license
|
|
11
11
|
*
|
|
12
|
-
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
-
* otherwise create derivative works of the Spine Runtimes (collectively,
|
|
12
|
+
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
+
* or otherwise create derivative works of the Spine Runtimes (collectively,
|
|
14
14
|
* "Products"), provided that each user of the Products must obtain their own
|
|
15
15
|
* Spine Editor license and redistribution of the Products in any form must
|
|
16
16
|
* include this license and copyright notice.
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
|
|
24
24
|
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
|
|
25
25
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
26
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
-
* SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
26
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
+
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
29
|
import { Disposable, Color, Skeleton } from "@esotericsoftware/spine-core";
|
|
30
30
|
import { ShapeRenderer } from "./ShapeRenderer.js";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/******************************************************************************
|
|
2
2
|
* Spine Runtimes License Agreement
|
|
3
|
-
* Last updated
|
|
3
|
+
* Last updated April 5, 2025. Replaces all prior versions.
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2013-
|
|
5
|
+
* Copyright (c) 2013-2025, Esoteric Software LLC
|
|
6
6
|
*
|
|
7
7
|
* Integration of the Spine Runtimes into software or otherwise creating
|
|
8
8
|
* derivative works of the Spine Runtimes is permitted under the terms and
|
|
9
9
|
* conditions of Section 2 of the Spine Editor License Agreement:
|
|
10
10
|
* http://esotericsoftware.com/spine-editor-license
|
|
11
11
|
*
|
|
12
|
-
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
-
* otherwise create derivative works of the Spine Runtimes (collectively,
|
|
12
|
+
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
+
* or otherwise create derivative works of the Spine Runtimes (collectively,
|
|
14
14
|
* "Products"), provided that each user of the Products must obtain their own
|
|
15
15
|
* Spine Editor license and redistribution of the Products in any form must
|
|
16
16
|
* include this license and copyright notice.
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
|
|
24
24
|
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
|
|
25
25
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
26
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
-
* SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
26
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
+
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
29
|
import { Color, SkeletonBounds, Utils, RegionAttachment, MeshAttachment, PathAttachment, ClippingAttachment } from "@esotericsoftware/spine-core";
|
|
30
30
|
import { ManagedWebGLRenderingContext } from "./WebGL.js";
|
|
@@ -221,4 +221,4 @@ export class SkeletonDebugRenderer {
|
|
|
221
221
|
dispose() {
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25EZWJ1Z1JlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NrZWxldG9uRGVidWdSZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFFL0UsT0FBTyxFQUFjLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFZLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV4SyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUQsTUFBTSxPQUFPLHFCQUFxQjtJQUNqQyxhQUFhLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEMsZUFBZSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLG1CQUFtQixHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLGlCQUFpQixHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDakIscUJB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QkFBRSxTQUFTO2dCQUMxRCxJQUFJLElBQUksR0FBdUIsVUFBVSxDQUFDO2dCQUMxQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2xDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNqRCxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pCLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3JCLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDRixDQUFDO1FBQ0YsQ0FBQztJQUNGLENBQUM7SUFFRCxPQUFPO0lBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XG4gKiBMYXN0IHVwZGF0ZWQgSnVseSAyOCwgMjAyMy4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDIzLCBFc290ZXJpYyBTb2Z0d2FyZSBMTENcbiAqXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcbiAqIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGlzIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgYW5kXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXG4gKlxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yXG4gKiBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXG4gKiBcIlByb2R1Y3RzXCIpLCBwcm92aWRlZCB0aGF0IGVhY2ggdXNlciBvZiB0aGUgUHJvZHVjdHMgbXVzdCBvYnRhaW4gdGhlaXIgb3duXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxuICpcbiAqIFRIRSBTUElORSBSVU5USU1FUyBBUkUgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZXG4gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTllcbiAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVMsXG4gKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhFXG4gKiBTUElORSBSVU5USU1FUywgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IHsgRGlzcG9zYWJsZSwgQ29sb3IsIFNrZWxldG9uQm91bmRzLCBVdGlscywgU2tlbGV0b24sIFJlZ2lvbkF0dGFjaG1lbnQsIE1lc2hBdHRhY2htZW50LCBQYXRoQXR0YWNobWVudCwgQ2xpcHBpbmdBdHRhY2htZW50IH0gZnJvbSBcIkBlc290ZXJpY3NvZnR3YXJlL3NwaW5lLWNvcmVcIjtcbmltcG9ydCB7IFNoYXBlUmVuZGVyZXIgfSBmcm9tIFwiLi9TaGFwZVJlbmRlcmVyLmpzXCI7XG5pbXBvcnQgeyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IH0gZnJvbSBcIi4vV2ViR0wuanNcIjtcblxuZXhwb3J0IGNsYXNzIFNrZWxldG9uRGVidWdSZW5kZXJlciBpbXBsZW1lbnRzIERpc3Bvc2FibGUge1xuXHRib25lTGluZUNvbG9yID0gbmV3IENvbG9yKDEsIDAsIDAsIDEpO1xuXHRib25lT3JpZ2luQ29sb3IgPSBuZXcgQ29sb3IoMCwgMSwgMCwgMSk7XG5cdGF0dGFjaG1lbnRMaW5lQ29sb3IgPSBuZXcgQ29sb3IoMCwgMCwgMSwgMC41KTtcblx0dHJpYW5nbGVMaW5lQ29sb3IgPSBuZXcgQ29sb3IoMSwgMC42NCwgMCwgMC41KTtcblx0cGF0aENvbG9yID0gbmV3IENvbG9yKCkuc2V0RnJvbVN0cmluZyhcIkZGN0YwMFwiKTtcblx0Y2xpcENvbG9yID0gbmV3IENvbG9yKDAuOCwgMCwgMCwgMik7XG5cdGFhYmJDb2xvciA9IG5ldyBDb2xvcigwLCAxLCAwLCAwLjUpO1xuXHRkcmF3Qm9uZXMgPSB0cnVlO1xuXHRkcmF3UmVnaW9uQXR0YWNobWVudHMgPSB0cnVlO1xuXHRkcmF3Qm91bmRpbmdCb3hlcyA9IHRydWU7XG5cdGRyYXdNZXNoSHVsbCA9IHRydWU7XG5cdGRyYXdNZXNoVHJpYW5nbGVzID0gdHJ1ZTtcblx0ZHJhd1BhdGhzID0gdHJ1ZTtcblx0ZHJhd1NrZWxldG9uWFkgPSBmYWxzZTtcblx0ZHJhd0NsaXBwaW5nID0gdHJ1ZTtcblx0cHJlbXVsdGlwbGllZEFscGhhID0gZmFsc2U7XG5cdHNjYWxlID0gMTtcblx0Ym9uZVdpZHRoID0gMjtcblxuXHRwcml2YXRlIGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQ7XG5cdHByaXZhdGUgYm91bmRzID0gbmV3IFNrZWxldG9uQm91bmRzKCk7XG5cdHByaXZhdGUgdGVtcCA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG5cdHByaXZhdGUgdmVydGljZXMgPSBVdGlscy5uZXdGbG9hdEFycmF5KDIgKiAxMDI0KTtcblx0cHJpdmF0ZSBzdGF0aWMgTElHSFRfR1JBWSA9IG5ldyBDb2xvcigxOTIgLyAyNTUsIDE5MiAvIDI1NSwgMTkyIC8gMjU1LCAxKTtcblx0cHJpdmF0ZSBzdGF0aWMgR1JFRU4gPSBuZXcgQ29sb3IoMCwgMSwgMCwgMSk7XG5cblx0Y29uc3RydWN0b3IgKGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfCBXZWJHTFJlbmRlcmluZ0NvbnRleHQpIHtcblx0XHR0aGlzLmNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCA/IGNvbnRleHQgOiBuZXcgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dChjb250ZXh0KTtcblx0fVxuXG5cdGRyYXcgKHNoYXBlczogU2hhcGVSZW5kZXJlciwgc2tlbGV0b246IFNrZWxldG9uLCBpZ25vcmVkQm9uZXM/OiBBcnJheTxzdHJpbmc+KSB7XG5cdFx0bGV0IHNrZWxldG9uWCA9IHNrZWxldG9uLng7XG5cdFx0bGV0IHNrZWxldG9uWSA9IHNrZWxldG9uLnk7XG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdGxldCBzcmNGdW5jID0gdGhpcy5wcmVtdWx0aXBsaWVkQWxwaGEgPyBnbC5PTkUgOiBnbC5TUkNfQUxQSEE7XG5cdFx0c2hhcGVzLnNldEJsZW5kTW9kZShzcmNGdW5jLCBnbC5PTkUsIGdsLk9ORV9NSU5VU19TUkNfQUxQSEEpO1xuXG5cdFx0bGV0IGJvbmVzID0gc2tlbGV0b24uYm9uZXM7XG5cdFx0aWYgKHRoaXMuZHJhd0JvbmVzKSB7XG5cdFx0XHRzaGFwZXMuc2V0Q29sb3IodGhpcy5ib25lTGluZUNvbG9yKTtcblx0XHRcdGZvciAobGV0IGkgPSAwLCBuID0gYm9uZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRcdGxldCBib25lID0gYm9uZXNbaV07XG5cdFx0XHRcdGlmIChpZ25vcmVkQm9uZXMgJiYgaWdub3JlZEJvbmVzLmluZGV4T2YoYm9uZS5kYXRhLm5hbWUpID4gLTEpIGNvbnRpbnVlO1xuXHRcdFx0XHRpZiAoIWJvbmUucGFyZW50KSBjb250aW51ZTtcblx0XHRcdFx0bGV0IHggPSBib25lLmRhdGEubGVuZ3RoICogYm9uZS5hICsgYm9uZS53b3JsZFg7XG5cdFx0XHRcdGxldCB5ID0gYm9uZS5kYXRhLmxlbmd0aCAqIGJvbmUuYyArIGJvbmUud29ybGRZO1xuXHRcdFx0XHRzaGFwZXMucmVjdExpbmUodHJ1ZSwgYm9uZS53b3JsZFgsIGJvbmUud29ybGRZLCB4LCB5LCB0aGlzLmJvbmVXaWR0aCAqIHRoaXMuc2NhbGUpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuZHJhd1NrZWxldG9uWFkpIHNoYXBlcy54KHNrZWxldG9uWCwgc2tlbGV0b25ZLCA0ICogdGhpcy5zY2FsZSk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZHJhd1JlZ2lvbkF0dGFjaG1lbnRzKSB7XG5cdFx0XHRzaGFwZXMuc2V0Q29sb3IodGhpcy5hdHRhY2htZW50TGluZUNvbG9yKTtcblx0XHRcdGxldCBzbG90cyA9IHNrZWxldG9uLnNsb3RzO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSBzbG90cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdFx0bGV0IHNsb3QgPSBzbG90c1tpXTtcblx0XHRcdFx0bGV0IGF0dGFjaG1lbnQgPSBzbG90LmdldEF0dGFjaG1lbnQoKTtcblx0XHRcdFx0aWYgKGF0dGFjaG1lbnQgaW5zdGFuY2VvZiBSZWdpb25BdHRhY2htZW50KSB7XG5cdFx0XHRcdFx0bGV0IHJlZ2lvbkF0dGFjaG1lbnQgPSA8UmVnaW9uQXR0YWNobWVudD5hdHRhY2htZW50O1xuXHRcdFx0XHRcdGxldCB2ZXJ0aWNlcyA9IHRoaXMudmVydGljZXM7XG5cdFx0XHRcdFx0cmVnaW9uQXR0YWNobWVudC5jb21wdXRlV29ybGRWZXJ0aWNlcyhzbG90LCB2ZXJ0aWNlcywgMCwgMik7XG5cdFx0XHRcdFx0c2hhcGVzLmxpbmUodmVydGljZXNbMF0sIHZlcnRpY2VzWzFdLCB2ZXJ0aWNlc1syXSwgdmVydGljZXNbM10pO1xuXHRcdFx0XHRcdHNoYXBlcy5saW5lKHZlcnRpY2VzWzJdLCB2ZXJ0aWNlc1szXSwgdmVydGljZXNbNF0sIHZlcnRpY2VzWzVdKTtcblx0XHRcdFx0XHRzaGFwZXMubGluZSh2ZXJ0aWNlc1s0XSwgdmVydGljZXNbNV0sIHZlcnRpY2VzWzZdLCB2ZXJ0aWNlc1s3XSk7XG5cdFx0XHRcdFx0c2hhcGVzLmxpbmUodmVydGljZXNbNl0sIHZlcnRpY2VzWzddLCB2ZXJ0aWNlc1swXSwgdmVydGljZXNbMV0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZHJhd01lc2hIdWxsIHx8IHRoaXMuZHJhd01lc2hUcmlhbmdsZXMpIHtcblx0XHRcdGxldCBzbG90cyA9IHNrZWxldG9uLnNsb3RzO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSBzbG90cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdFx0bGV0IHNsb3QgPSBzbG90c1tpXTtcblx0XHRcdFx0aWYgKCFzbG90LmJvbmUuYWN0aXZlKSBjb250aW51ZTtcblx0XHRcdFx0bGV0IGF0dGFjaG1lbnQgPSBzbG90LmdldEF0dGFjaG1lbnQoKTtcblx0XHRcdFx0aWYgKCEoYXR0YWNobWVudCBpbnN0YW5jZW9mIE1lc2hBdHRhY2htZW50KSkgY29udGludWU7XG5cdFx0XHRcdGxldCBtZXNoID0gPE1lc2hBdHRhY2htZW50PmF0dGFjaG1lbnQ7XG5cdFx0XHRcdGxldCB2ZXJ0aWNlcyA9IHRoaXMudmVydGljZXM7XG5cdFx0XHRcdG1lc2guY29tcHV0ZVdvcmxkVmVydGljZXMoc2xvdCwgMCwgbWVzaC53b3JsZFZlcnRpY2VzTGVuZ3RoLCB2ZXJ0aWNlcywgMCwgMik7XG5cdFx0XHRcdGxldCB0cmlhbmdsZXMgPSBtZXNoLnRyaWFuZ2xlcztcblx0XHRcdFx0bGV0IGh1bGxMZW5ndGggPSBtZXNoLmh1bGxMZW5ndGg7XG5cdFx0XHRcdGlmICh0aGlzLmRyYXdNZXNoVHJpYW5nbGVzKSB7XG5cdFx0XHRcdFx0c2hhcGVzLnNldENvbG9yKHRoaXMudHJpYW5nbGVMaW5lQ29sb3IpO1xuXHRcdFx0XHRcdGZvciAobGV0IGlpID0gMCwgbm4gPSB0cmlhbmdsZXMubGVuZ3RoOyBpaSA8IG5uOyBpaSArPSAzKSB7XG5cdFx0XHRcdFx0XHRsZXQgdjEgPSB0cmlhbmdsZXNbaWldICogMiwgdjIgPSB0cmlhbmdsZXNbaWkgKyAxXSAqIDIsIHYzID0gdHJpYW5nbGVzW2lpICsgMl0gKiAyO1xuXHRcdFx0XHRcdFx0c2hhcGVzLnRyaWFuZ2xlKGZhbHNlLCB2ZXJ0aWNlc1t2MV0sIHZlcnRpY2VzW3YxICsgMV0sIC8vXG5cdFx0XHRcdFx0XHRcdHZlcnRpY2VzW3YyXSwgdmVydGljZXNbdjIgKyAxXSwgLy9cblx0XHRcdFx0XHRcdFx0dmVydGljZXNbdjNdLCB2ZXJ0aWNlc1t2MyArIDFdIC8vXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5kcmF3TWVzaEh1bGwgJiYgaHVsbExlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRzaGFwZXMuc2V0Q29sb3IodGhpcy5hdHRhY2htZW50TGluZUNvbG9yKTtcblx0XHRcdFx0XHRodWxsTGVuZ3RoID0gKGh1bGxMZW5ndGggPj4gMSkgKiAyO1xuXHRcdFx0XHRcdGxldCBsYXN0WCA9IHZlcnRpY2VzW2h1bGxMZW5ndGggLSAyXSwgbGFzdFkgPSB2ZXJ0aWNlc1todWxsTGVuZ3RoIC0gMV07XG5cdFx0XHRcdFx0Zm9yIChsZXQgaWkgPSAwLCBubiA9IGh1bGxMZW5ndGg7IGlpIDwgbm47IGlpICs9IDIpIHtcblx0XHRcdFx0XHRcdGxldCB4ID0gdmVydGljZXNbaWldLCB5ID0gdmVydGljZXNbaWkgKyAxXTtcblx0XHRcdFx0XHRcdHNoYXBlcy5saW5lKHgsIHksIGxhc3RYLCBsYXN0WSk7XG5cdFx0XHRcdFx0XHRsYXN0WCA9IHg7XG5cdFx0XHRcdFx0XHRsYXN0WSA9IHk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZHJhd0JvdW5kaW5nQm94ZXMpIHtcblx0XHRcdGxldCBib3VuZHMgPSB0aGlzLmJvdW5kcztcblx0XHRcdGJvdW5kcy51cGRhdGUoc2tlbGV0b24sIHRydWUpO1xuXHRcdFx0c2hhcGVzLnNldENvbG9yKHRoaXMuYWFiYkNvbG9yKTtcblx0XHRcdHNoYXBlcy5yZWN0KGZhbHNlLCBib3VuZHMubWluWCwgYm91bmRzLm1pblksIGJvdW5kcy5nZXRXaWR0aCgpLCBib3VuZHMuZ2V0SGVpZ2h0KCkpO1xuXHRcdFx0bGV0IHBvbHlnb25zID0gYm91bmRzLnBvbHlnb25zO1xuXHRcdFx0bGV0IGJveGVzID0gYm91bmRzLmJvdW5kaW5nQm94ZXM7XG5cdFx0XHRmb3IgKGxldCBpID0gMCwgbiA9IHBvbHlnb25zLmxlbmd0aDsgaSA8IG47IGkrKykge1xuXHRcdFx0XHRsZXQgcG9seWdvbiA9IHBvbHlnb25zW2ldO1xuXHRcdFx0XHRzaGFwZXMuc2V0Q29sb3IoYm94ZXNbaV0uY29sb3IpO1xuXHRcdFx0XHRzaGFwZXMucG9seWdvbihwb2x5Z29uLCAwLCBwb2x5Z29uLmxlbmd0aCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZHJhd1BhdGhzKSB7XG5cdFx0XHRsZXQgc2xvdHMgPSBza2VsZXRvbi5zbG90cztcblx0XHRcdGZvciAobGV0IGkgPSAwLCBuID0gc2xvdHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRcdGxldCBzbG90ID0gc2xvdHNbaV07XG5cdFx0XHRcdGlmICghc2xvdC5ib25lLmFjdGl2ZSkgY29udGludWU7XG5cdFx0XHRcdGxldCBhdHRhY2htZW50ID0gc2xvdC5nZXRBdHRhY2htZW50KCk7XG5cdFx0XHRcdGlmICghKGF0dGFjaG1lbnQgaW5zdGFuY2VvZiBQYXRoQXR0YWNobWVudCkpIGNvbnRpbnVlO1xuXHRcdFx0XHRsZXQgcGF0aCA9IDxQYXRoQXR0YWNobWVudD5hdHRhY2htZW50O1xuXHRcdFx0XHRsZXQgbm4gPSBwYXRoLndvcmxkVmVydGljZXNMZW5ndGg7XG5cdFx0XHRcdGxldCB3b3JsZCA9IHRoaXMudGVtcCA9IFV0aWxzLnNldEFycmF5U2l6ZSh0aGlzLnRlbXAsIG5uLCAwKTtcblx0XHRcdFx0cGF0aC5jb21wdXRlV29ybGRWZXJ0aWNlcyhzbG90LCAwLCBubiwgd29ybGQsIDAsIDIpO1xuXHRcdFx0XHRsZXQgY29sb3IgPSB0aGlzLnBhdGhDb2xvcjtcblx0XHRcdFx0bGV0IHgxID0gd29ybGRbMl0sIHkxID0gd29ybGRbM10sIHgyID0gMCwgeTIgPSAwO1xuXHRcdFx0XHRpZiAocGF0aC5jbG9zZWQpIHtcblx0XHRcdFx0XHRzaGFwZXMuc2V0Q29sb3IoY29sb3IpO1xuXHRcdFx0XHRcdGxldCBjeDEgPSB3b3JsZFswXSwgY3kxID0gd29ybGRbMV0sIGN4MiA9IHdvcmxkW25uIC0gMl0sIGN5MiA9IHdvcmxkW25uIC0gMV07XG5cdFx0XHRcdFx0eDIgPSB3b3JsZFtubiAtIDRdO1xuXHRcdFx0XHRcdHkyID0gd29ybGRbbm4gLSAzXTtcblx0XHRcdFx0XHRzaGFwZXMuY3VydmUoeDEsIHkxLCBjeDEsIGN5MSwgY3gyLCBjeTIsIHgyLCB5MiwgMzIpO1xuXHRcdFx0XHRcdHNoYXBlcy5zZXRDb2xvcihTa2VsZXRvbkRlYnVnUmVuZGVyZXIuTElHSFRfR1JBWSk7XG5cdFx0XHRcdFx0c2hhcGVzLmxpbmUoeDEsIHkxLCBjeDEsIGN5MSk7XG5cdFx0XHRcdFx0c2hhcGVzLmxpbmUoeDIsIHkyLCBjeDIsIGN5Mik7XG5cdFx0XHRcdH1cblx0XHRcdFx0bm4gLT0gNDtcblx0XHRcdFx0Zm9yIChsZXQgaWkgPSA0OyBpaSA8IG5uOyBpaSArPSA2KSB7XG5cdFx0XHRcdFx0bGV0IGN4MSA9IHdvcmxkW2lpXSwgY3kxID0gd29ybGRbaWkgKyAxXSwgY3gyID0gd29ybGRbaWkgKyAyXSwgY3kyID0gd29ybGRbaWkgKyAzXTtcblx0XHRcdFx0XHR4MiA9IHdvcmxkW2lpICsgNF07XG5cdFx0XHRcdFx0eTIgPSB3b3JsZFtpaSArIDVdO1xuXHRcdFx0XHRcdHNoYXBlcy5zZXRDb2xvcihjb2xvcik7XG5cdFx0XHRcdFx0c2hhcGVzLmN1cnZlKHgxLCB5MSwgY3gxLCBjeTEsIGN4MiwgY3kyLCB4MiwgeTIsIDMyKTtcblx0XHRcdFx0XHRzaGFwZXMuc2V0Q29sb3IoU2tlbGV0b25EZWJ1Z1JlbmRlcmVyLkxJR0hUX0dSQVkpO1xuXHRcdFx0XHRcdHNoYXBlcy5saW5lKHgxLCB5MSwgY3gxLCBjeTEpO1xuXHRcdFx0XHRcdHNoYXBlcy5saW5lKHgyLCB5MiwgY3gyLCBjeTIpO1xuXHRcdFx0XHRcdHgxID0geDI7XG5cdFx0XHRcdFx0eTEgPSB5Mjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh0aGlzLmRyYXdCb25lcykge1xuXHRcdFx0c2hhcGVzLnNldENvbG9yKHRoaXMuYm9uZU9yaWdpbkNvbG9yKTtcblx0XHRcdGZvciAobGV0IGkgPSAwLCBuID0gYm9uZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRcdGxldCBib25lID0gYm9uZXNbaV07XG5cdFx0XHRcdGlmIChpZ25vcmVkQm9uZXMgJiYgaWdub3JlZEJvbmVzLmluZGV4T2YoYm9uZS5kYXRhLm5hbWUpID4gLTEpIGNvbnRpbnVlO1xuXHRcdFx0XHRzaGFwZXMuY2lyY2xlKHRydWUsIGJvbmUud29ybGRYLCBib25lLndvcmxkWSwgMyAqIHRoaXMuc2NhbGUsIHRoaXMuYm9uZU9yaWdpbkNvbG9yLCA4KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5kcmF3Q2xpcHBpbmcpIHtcblx0XHRcdGxldCBzbG90cyA9IHNrZWxldG9uLnNsb3RzO1xuXHRcdFx0c2hhcGVzLnNldENvbG9yKHRoaXMuY2xpcENvbG9yKVxuXHRcdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSBzbG90cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdFx0bGV0IHNsb3QgPSBzbG90c1tpXTtcblx0XHRcdFx0aWYgKCFzbG90LmJvbmUuYWN0aXZlKSBjb250aW51ZTtcblx0XHRcdFx0bGV0IGF0dGFjaG1lbnQgPSBzbG90LmdldEF0dGFjaG1lbnQoKTtcblx0XHRcdFx0aWYgKCEoYXR0YWNobWVudCBpbnN0YW5jZW9mIENsaXBwaW5nQXR0YWNobWVudCkpIGNvbnRpbnVlO1xuXHRcdFx0XHRsZXQgY2xpcCA9IDxDbGlwcGluZ0F0dGFjaG1lbnQ+YXR0YWNobWVudDtcblx0XHRcdFx0bGV0IG5uID0gY2xpcC53b3JsZFZlcnRpY2VzTGVuZ3RoO1xuXHRcdFx0XHRsZXQgd29ybGQgPSB0aGlzLnRlbXAgPSBVdGlscy5zZXRBcnJheVNpemUodGhpcy50ZW1wLCBubiwgMCk7XG5cdFx0XHRcdGNsaXAuY29tcHV0ZVdvcmxkVmVydGljZXMoc2xvdCwgMCwgbm4sIHdvcmxkLCAwLCAyKTtcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSB3b3JsZC5sZW5ndGg7IGkgPCBuOyBpICs9IDIpIHtcblx0XHRcdFx0XHRsZXQgeCA9IHdvcmxkW2ldO1xuXHRcdFx0XHRcdGxldCB5ID0gd29ybGRbaSArIDFdO1xuXHRcdFx0XHRcdGxldCB4MiA9IHdvcmxkWyhpICsgMikgJSB3b3JsZC5sZW5ndGhdO1xuXHRcdFx0XHRcdGxldCB5MiA9IHdvcmxkWyhpICsgMykgJSB3b3JsZC5sZW5ndGhdO1xuXHRcdFx0XHRcdHNoYXBlcy5saW5lKHgsIHksIHgyLCB5Mik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRkaXNwb3NlICgpIHtcblx0fVxufVxuIl19
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25EZWJ1Z1JlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NrZWxldG9uRGVidWdSZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFFL0UsT0FBTyxFQUFjLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFZLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV4SyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFMUQsTUFBTSxPQUFPLHFCQUFxQjtJQUNqQyxhQUFhLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEMsZUFBZSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLG1CQUFtQixHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLGlCQUFpQixHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDakIscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQzdCLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUN6QixZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUN6QixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDdkIsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNwQixrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDM0IsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNWLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFFTixPQUFPLENBQStCO0lBQ3RDLE1BQU0sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQzlCLElBQUksR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQzNCLFFBQVEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN6QyxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFN0MsWUFBYSxPQUE2RDtRQUN6RSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sWUFBWSw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFRCxJQUFJLENBQUUsTUFBcUIsRUFBRSxRQUFrQixFQUFFLFlBQTRCO1FBQzVFLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN6QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDOUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUU3RCxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUFFLFNBQVM7Z0JBQ3hFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtvQkFBRSxTQUFTO2dCQUMzQixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDaEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEYsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLGNBQWM7Z0JBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMxQyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksVUFBVSxZQUFZLGdCQUFnQixFQUFFLENBQUM7b0JBQzVDLElBQUksZ0JBQWdCLEdBQXFCLFVBQVUsQ0FBQztvQkFDcEQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDN0IsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzVELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pFLENBQUM7WUFDRixDQUFDO1FBQ0YsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNqRCxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO29CQUFFLFNBQVM7Z0JBQ2hDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLENBQUMsVUFBVSxZQUFZLGNBQWMsQ0FBQztvQkFBRSxTQUFTO2dCQUN0RCxJQUFJLElBQUksR0FBbUIsVUFBVSxDQUFDO2dCQUN0QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDL0IsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDakMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztvQkFDNUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDeEMsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQzFELElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDbkYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDeEQsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDbEMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTt5QkFDakMsQ0FBQztvQkFDSCxDQUFDO2dCQUNGLENBQUM7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDekMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztvQkFDMUMsVUFBVSxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkMsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsUUFBUSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDdkUsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDcEQsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUMzQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUNoQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO3dCQUNWLEtBQUssR0FBRyxDQUFDLENBQUM7b0JBQ1gsQ0FBQztnQkFDRixDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzVCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDOUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUNwRixJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQy9CLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDakMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDRixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzlDLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtvQkFBRSxTQUFTO2dCQUNoQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxDQUFDLFVBQVUsWUFBWSxjQUFjLENBQUM7b0JBQUUsU0FBUztnQkFDdEQsSUFBSSxJQUFJLEdBQW1CLFVBQVUsQ0FBQztnQkFDdEMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUNsQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUMzQixJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2pELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNqQixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN2QixJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDN0UsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ25CLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNuQixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3JELE1BQU0sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ2xELE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLENBQUM7Z0JBQ0QsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDUixLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNuRixFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDbkIsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ25CLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDckQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDbEQsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDOUIsRUFBRSxHQUFHLEVBQUUsQ0FBQztvQkFDUixFQUFFLEdBQUcsRUFBRSxDQUFDO2dCQUNULENBQUM7WUFDRixDQUFDO1FBQ0YsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3RDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUFFLFNBQVM7Z0JBQ3hFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7UUFDRixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUMzQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzlDLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtvQkFBRSxTQUFTO2dCQUNoQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxDQUFDLFVBQVUsWUFBWSxrQkFBa0IsQ0FBQztvQkFBRSxTQUFTO2dCQUMxRCxJQUFJLElBQUksR0FBdUIsVUFBVSxDQUFDO2dCQUMxQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2xDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNqRCxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pCLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3JCLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDRixDQUFDO1FBQ0YsQ0FBQztJQUNGLENBQUM7SUFFRCxPQUFPO0lBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XG4gKiBMYXN0IHVwZGF0ZWQgQXByaWwgNSwgMjAyNS4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDI1LCBFc290ZXJpYyBTb2Z0d2FyZSBMTENcbiAqXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcbiAqIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGlzIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgYW5kXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXG4gKlxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlXG4gKiBvciBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXG4gKiBcIlByb2R1Y3RzXCIpLCBwcm92aWRlZCB0aGF0IGVhY2ggdXNlciBvZiB0aGUgUHJvZHVjdHMgbXVzdCBvYnRhaW4gdGhlaXIgb3duXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxuICpcbiAqIFRIRSBTUElORSBSVU5USU1FUyBBUkUgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZXG4gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTllcbiAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVMsXG4gKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0ZcbiAqIFRIRSBTUElORSBSVU5USU1FUywgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IHsgRGlzcG9zYWJsZSwgQ29sb3IsIFNrZWxldG9uQm91bmRzLCBVdGlscywgU2tlbGV0b24sIFJlZ2lvbkF0dGFjaG1lbnQsIE1lc2hBdHRhY2htZW50LCBQYXRoQXR0YWNobWVudCwgQ2xpcHBpbmdBdHRhY2htZW50IH0gZnJvbSBcIkBlc290ZXJpY3NvZnR3YXJlL3NwaW5lLWNvcmVcIjtcbmltcG9ydCB7IFNoYXBlUmVuZGVyZXIgfSBmcm9tIFwiLi9TaGFwZVJlbmRlcmVyLmpzXCI7XG5pbXBvcnQgeyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IH0gZnJvbSBcIi4vV2ViR0wuanNcIjtcblxuZXhwb3J0IGNsYXNzIFNrZWxldG9uRGVidWdSZW5kZXJlciBpbXBsZW1lbnRzIERpc3Bvc2FibGUge1xuXHRib25lTGluZUNvbG9yID0gbmV3IENvbG9yKDEsIDAsIDAsIDEpO1xuXHRib25lT3JpZ2luQ29sb3IgPSBuZXcgQ29sb3IoMCwgMSwgMCwgMSk7XG5cdGF0dGFjaG1lbnRMaW5lQ29sb3IgPSBuZXcgQ29sb3IoMCwgMCwgMSwgMC41KTtcblx0dHJpYW5nbGVMaW5lQ29sb3IgPSBuZXcgQ29sb3IoMSwgMC42NCwgMCwgMC41KTtcblx0cGF0aENvbG9yID0gbmV3IENvbG9yKCkuc2V0RnJvbVN0cmluZyhcIkZGN0YwMFwiKTtcblx0Y2xpcENvbG9yID0gbmV3IENvbG9yKDAuOCwgMCwgMCwgMik7XG5cdGFhYmJDb2xvciA9IG5ldyBDb2xvcigwLCAxLCAwLCAwLjUpO1xuXHRkcmF3Qm9uZXMgPSB0cnVlO1xuXHRkcmF3UmVnaW9uQXR0YWNobWVudHMgPSB0cnVlO1xuXHRkcmF3Qm91bmRpbmdCb3hlcyA9IHRydWU7XG5cdGRyYXdNZXNoSHVsbCA9IHRydWU7XG5cdGRyYXdNZXNoVHJpYW5nbGVzID0gdHJ1ZTtcblx0ZHJhd1BhdGhzID0gdHJ1ZTtcblx0ZHJhd1NrZWxldG9uWFkgPSBmYWxzZTtcblx0ZHJhd0NsaXBwaW5nID0gdHJ1ZTtcblx0cHJlbXVsdGlwbGllZEFscGhhID0gZmFsc2U7XG5cdHNjYWxlID0gMTtcblx0Ym9uZVdpZHRoID0gMjtcblxuXHRwcml2YXRlIGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQ7XG5cdHByaXZhdGUgYm91bmRzID0gbmV3IFNrZWxldG9uQm91bmRzKCk7XG5cdHByaXZhdGUgdGVtcCA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG5cdHByaXZhdGUgdmVydGljZXMgPSBVdGlscy5uZXdGbG9hdEFycmF5KDIgKiAxMDI0KTtcblx0cHJpdmF0ZSBzdGF0aWMgTElHSFRfR1JBWSA9IG5ldyBDb2xvcigxOTIgLyAyNTUsIDE5MiAvIDI1NSwgMTkyIC8gMjU1LCAxKTtcblx0cHJpdmF0ZSBzdGF0aWMgR1JFRU4gPSBuZXcgQ29sb3IoMCwgMSwgMCwgMSk7XG5cblx0Y29uc3RydWN0b3IgKGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfCBXZWJHTFJlbmRlcmluZ0NvbnRleHQpIHtcblx0XHR0aGlzLmNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCA/IGNvbnRleHQgOiBuZXcgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dChjb250ZXh0KTtcblx0fVxuXG5cdGRyYXcgKHNoYXBlczogU2hhcGVSZW5kZXJlciwgc2tlbGV0b246IFNrZWxldG9uLCBpZ25vcmVkQm9uZXM/OiBBcnJheTxzdHJpbmc+KSB7XG5cdFx0bGV0IHNrZWxldG9uWCA9IHNrZWxldG9uLng7XG5cdFx0bGV0IHNrZWxldG9uWSA9IHNrZWxldG9uLnk7XG5cdFx0bGV0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdGxldCBzcmNGdW5jID0gdGhpcy5wcmVtdWx0aXBsaWVkQWxwaGEgPyBnbC5PTkUgOiBnbC5TUkNfQUxQSEE7XG5cdFx0c2hhcGVzLnNldEJsZW5kTW9kZShzcmNGdW5jLCBnbC5PTkUsIGdsLk9ORV9NSU5VU19TUkNfQUxQSEEpO1xuXG5cdFx0bGV0IGJvbmVzID0gc2tlbGV0b24uYm9uZXM7XG5cdFx0aWYgKHRoaXMuZHJhd0JvbmVzKSB7XG5cdFx0XHRzaGFwZXMuc2V0Q29sb3IodGhpcy5ib25lTGluZUNvbG9yKTtcblx0XHRcdGZvciAobGV0IGkgPSAwLCBuID0gYm9uZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRcdGxldCBib25lID0gYm9uZXNbaV07XG5cdFx0XHRcdGlmIChpZ25vcmVkQm9uZXMgJiYgaWdub3JlZEJvbmVzLmluZGV4T2YoYm9uZS5kYXRhLm5hbWUpID4gLTEpIGNvbnRpbnVlO1xuXHRcdFx0XHRpZiAoIWJvbmUucGFyZW50KSBjb250aW51ZTtcblx0XHRcdFx0bGV0IHggPSBib25lLmRhdGEubGVuZ3RoICogYm9uZS5hICsgYm9uZS53b3JsZFg7XG5cdFx0XHRcdGxldCB5ID0gYm9uZS5kYXRhLmxlbmd0aCAqIGJvbmUuYyArIGJvbmUud29ybGRZO1xuXHRcdFx0XHRzaGFwZXMucmVjdExpbmUodHJ1ZSwgYm9uZS53b3JsZFgsIGJvbmUud29ybGRZLCB4LCB5LCB0aGlzLmJvbmVXaWR0aCAqIHRoaXMuc2NhbGUpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuZHJhd1NrZWxldG9uWFkpIHNoYXBlcy54KHNrZWxldG9uWCwgc2tlbGV0b25ZLCA0ICogdGhpcy5zY2FsZSk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZHJhd1JlZ2lvbkF0dGFjaG1lbnRzKSB7XG5cdFx0XHRzaGFwZXMuc2V0Q29sb3IodGhpcy5hdHRhY2htZW50TGluZUNvbG9yKTtcblx0XHRcdGxldCBzbG90cyA9IHNrZWxldG9uLnNsb3RzO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSBzbG90cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdFx0bGV0IHNsb3QgPSBzbG90c1tpXTtcblx0XHRcdFx0bGV0IGF0dGFjaG1lbnQgPSBzbG90LmdldEF0dGFjaG1lbnQoKTtcblx0XHRcdFx0aWYgKGF0dGFjaG1lbnQgaW5zdGFuY2VvZiBSZWdpb25BdHRhY2htZW50KSB7XG5cdFx0XHRcdFx0bGV0IHJlZ2lvbkF0dGFjaG1lbnQgPSA8UmVnaW9uQXR0YWNobWVudD5hdHRhY2htZW50O1xuXHRcdFx0XHRcdGxldCB2ZXJ0aWNlcyA9IHRoaXMudmVydGljZXM7XG5cdFx0XHRcdFx0cmVnaW9uQXR0YWNobWVudC5jb21wdXRlV29ybGRWZXJ0aWNlcyhzbG90LCB2ZXJ0aWNlcywgMCwgMik7XG5cdFx0XHRcdFx0c2hhcGVzLmxpbmUodmVydGljZXNbMF0sIHZlcnRpY2VzWzFdLCB2ZXJ0aWNlc1syXSwgdmVydGljZXNbM10pO1xuXHRcdFx0XHRcdHNoYXBlcy5saW5lKHZlcnRpY2VzWzJdLCB2ZXJ0aWNlc1szXSwgdmVydGljZXNbNF0sIHZlcnRpY2VzWzVdKTtcblx0XHRcdFx0XHRzaGFwZXMubGluZSh2ZXJ0aWNlc1s0XSwgdmVydGljZXNbNV0sIHZlcnRpY2VzWzZdLCB2ZXJ0aWNlc1s3XSk7XG5cdFx0XHRcdFx0c2hhcGVzLmxpbmUodmVydGljZXNbNl0sIHZlcnRpY2VzWzddLCB2ZXJ0aWNlc1swXSwgdmVydGljZXNbMV0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZHJhd01lc2hIdWxsIHx8IHRoaXMuZHJhd01lc2hUcmlhbmdsZXMpIHtcblx0XHRcdGxldCBzbG90cyA9IHNrZWxldG9uLnNsb3RzO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSBzbG90cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdFx0bGV0IHNsb3QgPSBzbG90c1tpXTtcblx0XHRcdFx0aWYgKCFzbG90LmJvbmUuYWN0aXZlKSBjb250aW51ZTtcblx0XHRcdFx0bGV0IGF0dGFjaG1lbnQgPSBzbG90LmdldEF0dGFjaG1lbnQoKTtcblx0XHRcdFx0aWYgKCEoYXR0YWNobWVudCBpbnN0YW5jZW9mIE1lc2hBdHRhY2htZW50KSkgY29udGludWU7XG5cdFx0XHRcdGxldCBtZXNoID0gPE1lc2hBdHRhY2htZW50PmF0dGFjaG1lbnQ7XG5cdFx0XHRcdGxldCB2ZXJ0aWNlcyA9IHRoaXMudmVydGljZXM7XG5cdFx0XHRcdG1lc2guY29tcHV0ZVdvcmxkVmVydGljZXMoc2xvdCwgMCwgbWVzaC53b3JsZFZlcnRpY2VzTGVuZ3RoLCB2ZXJ0aWNlcywgMCwgMik7XG5cdFx0XHRcdGxldCB0cmlhbmdsZXMgPSBtZXNoLnRyaWFuZ2xlcztcblx0XHRcdFx0bGV0IGh1bGxMZW5ndGggPSBtZXNoLmh1bGxMZW5ndGg7XG5cdFx0XHRcdGlmICh0aGlzLmRyYXdNZXNoVHJpYW5nbGVzKSB7XG5cdFx0XHRcdFx0c2hhcGVzLnNldENvbG9yKHRoaXMudHJpYW5nbGVMaW5lQ29sb3IpO1xuXHRcdFx0XHRcdGZvciAobGV0IGlpID0gMCwgbm4gPSB0cmlhbmdsZXMubGVuZ3RoOyBpaSA8IG5uOyBpaSArPSAzKSB7XG5cdFx0XHRcdFx0XHRsZXQgdjEgPSB0cmlhbmdsZXNbaWldICogMiwgdjIgPSB0cmlhbmdsZXNbaWkgKyAxXSAqIDIsIHYzID0gdHJpYW5nbGVzW2lpICsgMl0gKiAyO1xuXHRcdFx0XHRcdFx0c2hhcGVzLnRyaWFuZ2xlKGZhbHNlLCB2ZXJ0aWNlc1t2MV0sIHZlcnRpY2VzW3YxICsgMV0sIC8vXG5cdFx0XHRcdFx0XHRcdHZlcnRpY2VzW3YyXSwgdmVydGljZXNbdjIgKyAxXSwgLy9cblx0XHRcdFx0XHRcdFx0dmVydGljZXNbdjNdLCB2ZXJ0aWNlc1t2MyArIDFdIC8vXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5kcmF3TWVzaEh1bGwgJiYgaHVsbExlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRzaGFwZXMuc2V0Q29sb3IodGhpcy5hdHRhY2htZW50TGluZUNvbG9yKTtcblx0XHRcdFx0XHRodWxsTGVuZ3RoID0gKGh1bGxMZW5ndGggPj4gMSkgKiAyO1xuXHRcdFx0XHRcdGxldCBsYXN0WCA9IHZlcnRpY2VzW2h1bGxMZW5ndGggLSAyXSwgbGFzdFkgPSB2ZXJ0aWNlc1todWxsTGVuZ3RoIC0gMV07XG5cdFx0XHRcdFx0Zm9yIChsZXQgaWkgPSAwLCBubiA9IGh1bGxMZW5ndGg7IGlpIDwgbm47IGlpICs9IDIpIHtcblx0XHRcdFx0XHRcdGxldCB4ID0gdmVydGljZXNbaWldLCB5ID0gdmVydGljZXNbaWkgKyAxXTtcblx0XHRcdFx0XHRcdHNoYXBlcy5saW5lKHgsIHksIGxhc3RYLCBsYXN0WSk7XG5cdFx0XHRcdFx0XHRsYXN0WCA9IHg7XG5cdFx0XHRcdFx0XHRsYXN0WSA9IHk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZHJhd0JvdW5kaW5nQm94ZXMpIHtcblx0XHRcdGxldCBib3VuZHMgPSB0aGlzLmJvdW5kcztcblx0XHRcdGJvdW5kcy51cGRhdGUoc2tlbGV0b24sIHRydWUpO1xuXHRcdFx0c2hhcGVzLnNldENvbG9yKHRoaXMuYWFiYkNvbG9yKTtcblx0XHRcdHNoYXBlcy5yZWN0KGZhbHNlLCBib3VuZHMubWluWCwgYm91bmRzLm1pblksIGJvdW5kcy5nZXRXaWR0aCgpLCBib3VuZHMuZ2V0SGVpZ2h0KCkpO1xuXHRcdFx0bGV0IHBvbHlnb25zID0gYm91bmRzLnBvbHlnb25zO1xuXHRcdFx0bGV0IGJveGVzID0gYm91bmRzLmJvdW5kaW5nQm94ZXM7XG5cdFx0XHRmb3IgKGxldCBpID0gMCwgbiA9IHBvbHlnb25zLmxlbmd0aDsgaSA8IG47IGkrKykge1xuXHRcdFx0XHRsZXQgcG9seWdvbiA9IHBvbHlnb25zW2ldO1xuXHRcdFx0XHRzaGFwZXMuc2V0Q29sb3IoYm94ZXNbaV0uY29sb3IpO1xuXHRcdFx0XHRzaGFwZXMucG9seWdvbihwb2x5Z29uLCAwLCBwb2x5Z29uLmxlbmd0aCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZHJhd1BhdGhzKSB7XG5cdFx0XHRsZXQgc2xvdHMgPSBza2VsZXRvbi5zbG90cztcblx0XHRcdGZvciAobGV0IGkgPSAwLCBuID0gc2xvdHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRcdGxldCBzbG90ID0gc2xvdHNbaV07XG5cdFx0XHRcdGlmICghc2xvdC5ib25lLmFjdGl2ZSkgY29udGludWU7XG5cdFx0XHRcdGxldCBhdHRhY2htZW50ID0gc2xvdC5nZXRBdHRhY2htZW50KCk7XG5cdFx0XHRcdGlmICghKGF0dGFjaG1lbnQgaW5zdGFuY2VvZiBQYXRoQXR0YWNobWVudCkpIGNvbnRpbnVlO1xuXHRcdFx0XHRsZXQgcGF0aCA9IDxQYXRoQXR0YWNobWVudD5hdHRhY2htZW50O1xuXHRcdFx0XHRsZXQgbm4gPSBwYXRoLndvcmxkVmVydGljZXNMZW5ndGg7XG5cdFx0XHRcdGxldCB3b3JsZCA9IHRoaXMudGVtcCA9IFV0aWxzLnNldEFycmF5U2l6ZSh0aGlzLnRlbXAsIG5uLCAwKTtcblx0XHRcdFx0cGF0aC5jb21wdXRlV29ybGRWZXJ0aWNlcyhzbG90LCAwLCBubiwgd29ybGQsIDAsIDIpO1xuXHRcdFx0XHRsZXQgY29sb3IgPSB0aGlzLnBhdGhDb2xvcjtcblx0XHRcdFx0bGV0IHgxID0gd29ybGRbMl0sIHkxID0gd29ybGRbM10sIHgyID0gMCwgeTIgPSAwO1xuXHRcdFx0XHRpZiAocGF0aC5jbG9zZWQpIHtcblx0XHRcdFx0XHRzaGFwZXMuc2V0Q29sb3IoY29sb3IpO1xuXHRcdFx0XHRcdGxldCBjeDEgPSB3b3JsZFswXSwgY3kxID0gd29ybGRbMV0sIGN4MiA9IHdvcmxkW25uIC0gMl0sIGN5MiA9IHdvcmxkW25uIC0gMV07XG5cdFx0XHRcdFx0eDIgPSB3b3JsZFtubiAtIDRdO1xuXHRcdFx0XHRcdHkyID0gd29ybGRbbm4gLSAzXTtcblx0XHRcdFx0XHRzaGFwZXMuY3VydmUoeDEsIHkxLCBjeDEsIGN5MSwgY3gyLCBjeTIsIHgyLCB5MiwgMzIpO1xuXHRcdFx0XHRcdHNoYXBlcy5zZXRDb2xvcihTa2VsZXRvbkRlYnVnUmVuZGVyZXIuTElHSFRfR1JBWSk7XG5cdFx0XHRcdFx0c2hhcGVzLmxpbmUoeDEsIHkxLCBjeDEsIGN5MSk7XG5cdFx0XHRcdFx0c2hhcGVzLmxpbmUoeDIsIHkyLCBjeDIsIGN5Mik7XG5cdFx0XHRcdH1cblx0XHRcdFx0bm4gLT0gNDtcblx0XHRcdFx0Zm9yIChsZXQgaWkgPSA0OyBpaSA8IG5uOyBpaSArPSA2KSB7XG5cdFx0XHRcdFx0bGV0IGN4MSA9IHdvcmxkW2lpXSwgY3kxID0gd29ybGRbaWkgKyAxXSwgY3gyID0gd29ybGRbaWkgKyAyXSwgY3kyID0gd29ybGRbaWkgKyAzXTtcblx0XHRcdFx0XHR4MiA9IHdvcmxkW2lpICsgNF07XG5cdFx0XHRcdFx0eTIgPSB3b3JsZFtpaSArIDVdO1xuXHRcdFx0XHRcdHNoYXBlcy5zZXRDb2xvcihjb2xvcik7XG5cdFx0XHRcdFx0c2hhcGVzLmN1cnZlKHgxLCB5MSwgY3gxLCBjeTEsIGN4MiwgY3kyLCB4MiwgeTIsIDMyKTtcblx0XHRcdFx0XHRzaGFwZXMuc2V0Q29sb3IoU2tlbGV0b25EZWJ1Z1JlbmRlcmVyLkxJR0hUX0dSQVkpO1xuXHRcdFx0XHRcdHNoYXBlcy5saW5lKHgxLCB5MSwgY3gxLCBjeTEpO1xuXHRcdFx0XHRcdHNoYXBlcy5saW5lKHgyLCB5MiwgY3gyLCBjeTIpO1xuXHRcdFx0XHRcdHgxID0geDI7XG5cdFx0XHRcdFx0eTEgPSB5Mjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh0aGlzLmRyYXdCb25lcykge1xuXHRcdFx0c2hhcGVzLnNldENvbG9yKHRoaXMuYm9uZU9yaWdpbkNvbG9yKTtcblx0XHRcdGZvciAobGV0IGkgPSAwLCBuID0gYm9uZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG5cdFx0XHRcdGxldCBib25lID0gYm9uZXNbaV07XG5cdFx0XHRcdGlmIChpZ25vcmVkQm9uZXMgJiYgaWdub3JlZEJvbmVzLmluZGV4T2YoYm9uZS5kYXRhLm5hbWUpID4gLTEpIGNvbnRpbnVlO1xuXHRcdFx0XHRzaGFwZXMuY2lyY2xlKHRydWUsIGJvbmUud29ybGRYLCBib25lLndvcmxkWSwgMyAqIHRoaXMuc2NhbGUsIHRoaXMuYm9uZU9yaWdpbkNvbG9yLCA4KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5kcmF3Q2xpcHBpbmcpIHtcblx0XHRcdGxldCBzbG90cyA9IHNrZWxldG9uLnNsb3RzO1xuXHRcdFx0c2hhcGVzLnNldENvbG9yKHRoaXMuY2xpcENvbG9yKVxuXHRcdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSBzbG90cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdFx0bGV0IHNsb3QgPSBzbG90c1tpXTtcblx0XHRcdFx0aWYgKCFzbG90LmJvbmUuYWN0aXZlKSBjb250aW51ZTtcblx0XHRcdFx0bGV0IGF0dGFjaG1lbnQgPSBzbG90LmdldEF0dGFjaG1lbnQoKTtcblx0XHRcdFx0aWYgKCEoYXR0YWNobWVudCBpbnN0YW5jZW9mIENsaXBwaW5nQXR0YWNobWVudCkpIGNvbnRpbnVlO1xuXHRcdFx0XHRsZXQgY2xpcCA9IDxDbGlwcGluZ0F0dGFjaG1lbnQ+YXR0YWNobWVudDtcblx0XHRcdFx0bGV0IG5uID0gY2xpcC53b3JsZFZlcnRpY2VzTGVuZ3RoO1xuXHRcdFx0XHRsZXQgd29ybGQgPSB0aGlzLnRlbXAgPSBVdGlscy5zZXRBcnJheVNpemUodGhpcy50ZW1wLCBubiwgMCk7XG5cdFx0XHRcdGNsaXAuY29tcHV0ZVdvcmxkVmVydGljZXMoc2xvdCwgMCwgbm4sIHdvcmxkLCAwLCAyKTtcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDAsIG4gPSB3b3JsZC5sZW5ndGg7IGkgPCBuOyBpICs9IDIpIHtcblx0XHRcdFx0XHRsZXQgeCA9IHdvcmxkW2ldO1xuXHRcdFx0XHRcdGxldCB5ID0gd29ybGRbaSArIDFdO1xuXHRcdFx0XHRcdGxldCB4MiA9IHdvcmxkWyhpICsgMikgJSB3b3JsZC5sZW5ndGhdO1xuXHRcdFx0XHRcdGxldCB5MiA9IHdvcmxkWyhpICsgMykgJSB3b3JsZC5sZW5ndGhdO1xuXHRcdFx0XHRcdHNoYXBlcy5saW5lKHgsIHksIHgyLCB5Mik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRkaXNwb3NlICgpIHtcblx0fVxufVxuIl19
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/******************************************************************************
|
|
2
2
|
* Spine Runtimes License Agreement
|
|
3
|
-
* Last updated
|
|
3
|
+
* Last updated April 5, 2025. Replaces all prior versions.
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2013-
|
|
5
|
+
* Copyright (c) 2013-2025, Esoteric Software LLC
|
|
6
6
|
*
|
|
7
7
|
* Integration of the Spine Runtimes into software or otherwise creating
|
|
8
8
|
* derivative works of the Spine Runtimes is permitted under the terms and
|
|
9
9
|
* conditions of Section 2 of the Spine Editor License Agreement:
|
|
10
10
|
* http://esotericsoftware.com/spine-editor-license
|
|
11
11
|
*
|
|
12
|
-
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
-
* otherwise create derivative works of the Spine Runtimes (collectively,
|
|
12
|
+
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
+
* or otherwise create derivative works of the Spine Runtimes (collectively,
|
|
14
14
|
* "Products"), provided that each user of the Products must obtain their own
|
|
15
15
|
* Spine Editor license and redistribution of the Products in any form must
|
|
16
16
|
* include this license and copyright notice.
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
|
|
24
24
|
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
|
|
25
25
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
26
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
-
* SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
26
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
+
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
29
|
import { NumberArrayLike, SkeletonClipping, Skeleton } from "@esotericsoftware/spine-core";
|
|
30
30
|
import { PolygonBatcher } from "./PolygonBatcher.js";
|
package/dist/SkeletonRenderer.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/******************************************************************************
|
|
2
2
|
* Spine Runtimes License Agreement
|
|
3
|
-
* Last updated
|
|
3
|
+
* Last updated April 5, 2025. Replaces all prior versions.
|
|
4
4
|
*
|
|
5
|
-
* Copyright (c) 2013-
|
|
5
|
+
* Copyright (c) 2013-2025, Esoteric Software LLC
|
|
6
6
|
*
|
|
7
7
|
* Integration of the Spine Runtimes into software or otherwise creating
|
|
8
8
|
* derivative works of the Spine Runtimes is permitted under the terms and
|
|
9
9
|
* conditions of Section 2 of the Spine Editor License Agreement:
|
|
10
10
|
* http://esotericsoftware.com/spine-editor-license
|
|
11
11
|
*
|
|
12
|
-
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
-
* otherwise create derivative works of the Spine Runtimes (collectively,
|
|
12
|
+
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
|
13
|
+
* or otherwise create derivative works of the Spine Runtimes (collectively,
|
|
14
14
|
* "Products"), provided that each user of the Products must obtain their own
|
|
15
15
|
* Spine Editor license and redistribution of the Products in any form must
|
|
16
16
|
* include this license and copyright notice.
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
|
|
24
24
|
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
|
|
25
25
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
26
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
-
* SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
26
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
|
+
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
29
|
import { Color, SkeletonClipping, Vector2, Utils, RegionAttachment, MeshAttachment, ClippingAttachment } from "@esotericsoftware/spine-core";
|
|
30
30
|
class Renderable {
|
|
@@ -206,4 +206,4 @@ export class SkeletonRenderer {
|
|
|
206
206
|
return this.clipper;
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25SZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ta2VsZXRvblJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBQW1CLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUF1QixnQkFBZ0IsRUFBc0IsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFNdk0sTUFBTSxVQUFVO0lBQ0s7SUFBa0M7SUFBNEI7SUFBbEYsWUFBb0IsUUFBeUIsRUFBUyxXQUFtQixFQUFTLFNBQWlCO1FBQS9FLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQUksQ0FBQztDQUN4RztBQUFBLENBQUM7QUFJRixNQUFNLE9BQU8sZ0JBQWdCO0lBQzVCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTNDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNuQixTQUFTLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUN4QixVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUN6QixRQUFRLENBQWtCO0lBQzFCLFVBQVUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLFVBQVUsR0FBZSxJQUFJLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xELE9BQU8sR0FBcUIsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQ25ELElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lB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QUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDdEIsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUMzQixDQUFDO29CQUNGLENBQUM7eUJBQU0sQ0FBQzt3QkFDUCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7NEJBQ2pGLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDOzRCQUN4QixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7NEJBQzVCLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQzs0QkFDNUIsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDOzRCQUM1QixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDdEIsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDOzRCQUMxQixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7NEJBQzNCLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQzs0QkFDM0IsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDOzRCQUMzQixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7d0JBQzVCLENBQUM7b0JBQ0YsQ0FBQztvQkFDRCxJQUFJLElBQUksR0FBSSxVQUFVLENBQUMsUUFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDbkYsSUFBSSxXQUFXO3dCQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ3BGLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztZQUNGLENBQUM7WUFFRCxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELCtHQUErRztJQUN4RyxtQkFBbUI7UUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEp1bHkgMjgsIDIwMjMuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyMywgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvclxuICogb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRIRVxuICogU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IE51bWJlckFycmF5TGlrZSwgQ29sb3IsIFNrZWxldG9uQ2xpcHBpbmcsIFZlY3RvcjIsIFV0aWxzLCBTa2VsZXRvbiwgQmxlbmRNb2RlLCBSZWdpb25BdHRhY2htZW50LCBUZXh0dXJlQXRsYXNSZWdpb24sIE1lc2hBdHRhY2htZW50LCBDbGlwcGluZ0F0dGFjaG1lbnQgfSBmcm9tIFwiQGVzb3Rlcmljc29mdHdhcmUvc3BpbmUtY29yZVwiO1xuaW1wb3J0IHsgR0xUZXh0dXJlIH0gZnJvbSBcIi4vR0xUZXh0dXJlLmpzXCI7XG5pbXBvcnQgeyBQb2x5Z29uQmF0Y2hlciB9IGZyb20gXCIuL1BvbHlnb25CYXRjaGVyLmpzXCI7XG5pbXBvcnQgeyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IH0gZnJvbSBcIi4vV2ViR0wuanNcIjtcblxuXG5jbGFzcyBSZW5kZXJhYmxlIHtcblx0Y29uc3RydWN0b3IgKHB1YmxpYyB2ZXJ0aWNlczogTnVtYmVyQXJyYXlMaWtlLCBwdWJsaWMgbnVtVmVydGljZXM6IG51bWJlciwgcHVibGljIG51bUZsb2F0czogbnVtYmVyKSB7IH1cbn07XG5cbmV4cG9ydCB0eXBlIFZlcnRleFRyYW5zZm9ybWVyID0gKHZlcnRpY2VzOiBOdW1iZXJBcnJheUxpa2UsIG51bVZlcnRpY2VzOiBudW1iZXIsIHN0cmlkZTogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgY2xhc3MgU2tlbGV0b25SZW5kZXJlciB7XG5cdHN0YXRpYyBRVUFEX1RSSUFOR0xFUyA9IFswLCAxLCAyLCAyLCAzLCAwXTtcblxuXHRwcmVtdWx0aXBsaWVkQWxwaGEgPSBmYWxzZTtcblx0cHJpdmF0ZSB0ZW1wQ29sb3IgPSBuZXcgQ29sb3IoKTtcblx0cHJpdmF0ZSB0ZW1wQ29sb3IyID0gbmV3IENvbG9yKCk7XG5cdHByaXZhdGUgdmVydGljZXM6IE51bWJlckFycmF5TGlrZTtcblx0cHJpdmF0ZSB2ZXJ0ZXhTaXplID0gMiArIDIgKyA0O1xuXHRwcml2YXRlIHR3b0NvbG9yVGludCA9IGZhbHNlO1xuXHRwcml2YXRlIHJlbmRlcmFibGU6IFJlbmRlcmFibGUgPSBuZXcgUmVuZGVyYWJsZShbXSwgMCwgMCk7XG5cdHByaXZhdGUgY2xpcHBlcjogU2tlbGV0b25DbGlwcGluZyA9IG5ldyBTa2VsZXRvbkNsaXBwaW5nKCk7XG5cdHByaXZhdGUgdGVtcCA9IG5ldyBWZWN0b3IyKCk7XG5cdHByaXZhdGUgdGVtcDIgPSBuZXcgVmVjdG9yMigpO1xuXHRwcml2YXRlIHRlbXAzID0gbmV3IENvbG9yKCk7XG5cdHByaXZhdGUgdGVtcDQgPSBuZXcgQ29sb3IoKTtcblxuXHRjb25zdHJ1Y3RvciAoY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgdHdvQ29sb3JUaW50OiBib29sZWFuID0gdHJ1ZSkge1xuXHRcdHRoaXMudHdvQ29sb3JUaW50ID0gdHdvQ29sb3JUaW50O1xuXHRcdGlmICh0d29Db2xvclRpbnQpXG5cdFx0XHR0aGlzLnZlcnRleFNpemUgKz0gNDtcblx0XHR0aGlzLnZlcnRpY2VzID0gVXRpbHMubmV3RmxvYXRBcnJheSh0aGlzLnZlcnRleFNpemUgKiAxMDI0KTtcblx0fVxuXG5cdGRyYXcgKGJhdGNoZXI6IFBvbHlnb25CYXRjaGVyLCBza2VsZXRvbjogU2tlbGV0b24sIHNsb3RSYW5nZVN0YXJ0OiBudW1iZXIgPSAtMSwgc2xvdFJhbmdlRW5kOiBudW1iZXIgPSAtMSwgdHJhbnNmb3JtZXI6IFZlcnRleFRyYW5zZm9ybWVyIHwgbnVsbCA9IG51bGwpIHtcblx0XHRsZXQgY2xpcHBlciA9IHRoaXMuY2xpcHBlcjtcblx0XHRsZXQgcHJlbXVsdGlwbGllZEFscGhhID0gdGhpcy5wcmVtdWx0aXBsaWVkQWxwaGE7XG5cdFx0bGV0IHR3b0NvbG9yVGludCA9IHRoaXMudHdvQ29sb3JUaW50O1xuXHRcdGxldCBibGVuZE1vZGU6IEJsZW5kTW9kZSB8IG51bGwgPSBudWxsO1xuXG5cdFx0bGV0IHJlbmRlcmFibGU6IFJlbmRlcmFibGUgPSB0aGlzLnJlbmRlcmFibGU7XG5cdFx0bGV0IHV2czogTnVtYmVyQXJyYXlMaWtlO1xuXHRcdGxldCB0cmlhbmdsZXM6IEFycmF5PG51bWJlcj47XG5cdFx0bGV0IGRyYXdPcmRlciA9IHNrZWxldG9uLmRyYXdPcmRlcjtcblx0XHRsZXQgYXR0YWNobWVudENvbG9yOiBDb2xvcjtcblx0XHRsZXQgc2tlbGV0b25Db2xvciA9IHNrZWxldG9uLmNvbG9yO1xuXHRcdGxldCB2ZXJ0ZXhTaXplID0gdHdvQ29sb3JUaW50ID8gMTIgOiA4O1xuXHRcdGxldCBpblJhbmdlID0gZmFsc2U7XG5cdFx0aWYgKHNsb3RSYW5nZVN0YXJ0ID09IC0xKSBpblJhbmdlID0gdHJ1ZTtcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IGRyYXdPcmRlci5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdGxldCBjbGlwcGVkVmVydGV4U2l6ZSA9IGNsaXBwZXIuaXNDbGlwcGluZygpID8gMiA6IHZlcnRleFNpemU7XG5cdFx0XHRsZXQgc2xvdCA9IGRyYXdPcmRlcltpXTtcblx0XHRcdGlmICghc2xvdC5ib25lLmFjdGl2ZSkge1xuXHRcdFx0XHRjbGlwcGVyLmNsaXBFbmRXaXRoU2xvdChzbG90KTtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzbG90UmFuZ2VTdGFydCA+PSAwICYmIHNsb3RSYW5nZVN0YXJ0ID09IHNsb3QuZGF0YS5pbmRleCkge1xuXHRcdFx0XHRpblJhbmdlID0gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCFpblJhbmdlKSB7XG5cdFx0XHRcdGNsaXBwZXIuY2xpcEVuZFdpdGhTbG90KHNsb3QpO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHNsb3RSYW5nZUVuZCA+PSAwICYmIHNsb3RSYW5nZUVuZCA9PSBzbG90LmRhdGEuaW5kZXgpIHtcblx0XHRcdFx0aW5SYW5nZSA9IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHRsZXQgYXR0YWNobWVudCA9IHNsb3QuZ2V0QXR0YWNobWVudCgpO1xuXHRcdFx0bGV0IHRleHR1cmU6IEdMVGV4dHVyZTtcblx0XHRcdGlmIChhdHRhY2htZW50IGluc3RhbmNlb2YgUmVnaW9uQXR0YWNobWVudCkge1xuXHRcdFx0XHRsZXQgcmVnaW9uID0gPFJlZ2lvbkF0dGFjaG1lbnQ+YXR0YWNobWVudDtcblx0XHRcdFx0cmVuZGVyYWJsZS52ZXJ0aWNlcyA9IHRoaXMudmVydGljZXM7XG5cdFx0XHRcdHJlbmRlcmFibGUubnVtVmVydGljZXMgPSA0O1xuXHRcdFx0XHRyZW5kZXJhYmxlLm51bUZsb2F0cyA9IGNsaXBwZWRWZXJ0ZXhTaXplIDw8IDI7XG5cdFx0XHRcdHJlZ2lvbi5jb21wdXRlV29ybGRWZXJ0aWNlcyhzbG90LCByZW5kZXJhYmxlLnZlcnRpY2VzLCAwLCBjbGlwcGVkVmVydGV4U2l6ZSk7XG5cdFx0XHRcdHRyaWFuZ2xlcyA9IFNrZWxldG9uUmVuZGVyZXIuUVVBRF9UUklBTkdMRVM7XG5cdFx0XHRcdHV2cyA9IHJlZ2lvbi51dnM7XG5cdFx0XHRcdHRleHR1cmUgPSA8R0xUZXh0dXJlPnJlZ2lvbi5yZWdpb24hLnRleHR1cmU7XG5cdFx0XHRcdGF0dGFjaG1lbnRDb2xvciA9IHJlZ2lvbi5jb2xvcjtcblx0XHRcdH0gZWxzZSBpZiAoYXR0YWNobWVudCBpbnN0YW5jZW9mIE1lc2hBdHRhY2htZW50KSB7XG5cdFx0XHRcdGxldCBtZXNoID0gPE1lc2hBdHRhY2htZW50PmF0dGFjaG1lbnQ7XG5cdFx0XHRcdHJlbmRlcmFibGUudmVydGljZXMgPSB0aGlzLnZlcnRpY2VzO1xuXHRcdFx0XHRyZW5kZXJhYmxlLm51bVZlcnRpY2VzID0gKG1lc2gud29ybGRWZXJ0aWNlc0xlbmd0aCA+PiAxKTtcblx0XHRcdFx0cmVuZGVyYWJsZS5udW1GbG9hdHMgPSByZW5kZXJhYmxlLm51bVZlcnRpY2VzICogY2xpcHBlZFZlcnRleFNpemU7XG5cdFx0XHRcdGlmIChyZW5kZXJhYmxlLm51bUZsb2F0cyA+IHJlbmRlcmFibGUudmVydGljZXMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0cmVuZGVyYWJsZS52ZXJ0aWNlcyA9IHRoaXMudmVydGljZXMgPSBVdGlscy5uZXdGbG9hdEFycmF5KHJlbmRlcmFibGUubnVtRmxvYXRzKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRtZXNoLmNvbXB1dGVXb3JsZFZlcnRpY2VzKHNsb3QsIDAsIG1lc2gud29ybGRWZXJ0aWNlc0xlbmd0aCwgcmVuZGVyYWJsZS52ZXJ0aWNlcywgMCwgY2xpcHBlZFZlcnRleFNpemUpO1xuXHRcdFx0XHR0cmlhbmdsZXMgPSBtZXNoLnRyaWFuZ2xlcztcblx0XHRcdFx0dGV4dHVyZSA9IDxHTFRleHR1cmU+bWVzaC5yZWdpb24hLnRleHR1cmU7XG5cdFx0XHRcdHV2cyA9IG1lc2gudXZzO1xuXHRcdFx0XHRhdHRhY2htZW50Q29sb3IgPSBtZXNoLmNvbG9yO1xuXHRcdFx0fSBlbHNlIGlmIChhdHRhY2htZW50IGluc3RhbmNlb2YgQ2xpcHBpbmdBdHRhY2htZW50KSB7XG5cdFx0XHRcdGxldCBjbGlwID0gPENsaXBwaW5nQXR0YWNobWVudD4oYXR0YWNobWVudCk7XG5cdFx0XHRcdGNsaXBwZXIuY2xpcFN0YXJ0KHNsb3QsIGNsaXApO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNsaXBwZXIuY2xpcEVuZFdpdGhTbG90KHNsb3QpO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHRleHR1cmUpIHtcblx0XHRcdFx0bGV0IHNsb3RDb2xvciA9IHNsb3QuY29sb3I7XG5cdFx0XHRcdGxldCBmaW5hbENvbG9yID0gdGhpcy50ZW1wQ29sb3I7XG5cdFx0XHRcdGZpbmFsQ29sb3IuciA9IHNrZWxldG9uQ29sb3IuciAqIHNsb3RDb2xvci5yICogYXR0YWNobWVudENvbG9yLnI7XG5cdFx0XHRcdGZpbmFsQ29sb3IuZyA9IHNrZWxldG9uQ29sb3IuZyAqIHNsb3RDb2xvci5nICogYXR0YWNobWVudENvbG9yLmc7XG5cdFx0XHRcdGZpbmFsQ29sb3IuYiA9IHNrZWxldG9uQ29sb3IuYiAqIHNsb3RDb2xvci5iICogYXR0YWNobWVudENvbG9yLmI7XG5cdFx0XHRcdGZpbmFsQ29sb3IuYSA9IHNrZWxldG9uQ29sb3IuYSAqIHNsb3RDb2xvci5hICogYXR0YWNobWVudENvbG9yLmE7XG5cdFx0XHRcdGlmIChwcmVtdWx0aXBsaWVkQWxwaGEpIHtcblx0XHRcdFx0XHRmaW5hbENvbG9yLnIgKj0gZmluYWxDb2xvci5hO1xuXHRcdFx0XHRcdGZpbmFsQ29sb3IuZyAqPSBmaW5hbENvbG9yLmE7XG5cdFx0XHRcdFx0ZmluYWxDb2xvci5iICo9IGZpbmFsQ29sb3IuYTtcblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgZGFya0NvbG9yID0gdGhpcy50ZW1wQ29sb3IyO1xuXHRcdFx0XHRpZiAoIXNsb3QuZGFya0NvbG9yKVxuXHRcdFx0XHRcdGRhcmtDb2xvci5zZXQoMCwgMCwgMCwgMS4wKTtcblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0aWYgKHByZW11bHRpcGxpZWRBbHBoYSkge1xuXHRcdFx0XHRcdFx0ZGFya0NvbG9yLnIgPSBzbG90LmRhcmtDb2xvci5yICogZmluYWxDb2xvci5hO1xuXHRcdFx0XHRcdFx0ZGFya0NvbG9yLmcgPSBzbG90LmRhcmtDb2xvci5nICogZmluYWxDb2xvci5hO1xuXHRcdFx0XHRcdFx0ZGFya0NvbG9yLmIgPSBzbG90LmRhcmtDb2xvci5iICogZmluYWxDb2xvci5hO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRkYXJrQ29sb3Iuc2V0RnJvbUNvbG9yKHNsb3QuZGFya0NvbG9yKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZGFya0NvbG9yLmEgPSBwcmVtdWx0aXBsaWVkQWxwaGEgPyAxLjAgOiAwLjA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRsZXQgc2xvdEJsZW5kTW9kZSA9IHNsb3QuZGF0YS5ibGVuZE1vZGU7XG5cdFx0XHRcdGlmIChzbG90QmxlbmRNb2RlICE9IGJsZW5kTW9kZSkge1xuXHRcdFx0XHRcdGJsZW5kTW9kZSA9IHNsb3RCbGVuZE1vZGU7XG5cdFx0XHRcdFx0YmF0Y2hlci5zZXRCbGVuZE1vZGUoYmxlbmRNb2RlLCBwcmVtdWx0aXBsaWVkQWxwaGEpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGNsaXBwZXIuaXNDbGlwcGluZygpKSB7XG5cdFx0XHRcdFx0Y2xpcHBlci5jbGlwVHJpYW5nbGVzKHJlbmRlcmFibGUudmVydGljZXMsIHRyaWFuZ2xlcywgdHJpYW5nbGVzLmxlbmd0aCwgdXZzLCBmaW5hbENvbG9yLCBkYXJrQ29sb3IsIHR3b0NvbG9yVGludCk7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRWZXJ0aWNlcyA9IG5ldyBGbG9hdDMyQXJyYXkoY2xpcHBlci5jbGlwcGVkVmVydGljZXMpO1xuXHRcdFx0XHRcdGxldCBjbGlwcGVkVHJpYW5nbGVzID0gY2xpcHBlci5jbGlwcGVkVHJpYW5nbGVzO1xuXHRcdFx0XHRcdGlmICh0cmFuc2Zvcm1lcikgdHJhbnNmb3JtZXIoY2xpcHBlZFZlcnRpY2VzLCBjbGlwcGVkVmVydGljZXMubGVuZ3RoLCB2ZXJ0ZXhTaXplKTtcblx0XHRcdFx0XHRiYXRjaGVyLmRyYXcodGV4dHVyZSwgY2xpcHBlZFZlcnRpY2VzLCBjbGlwcGVkVHJpYW5nbGVzKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRsZXQgdmVydHMgPSByZW5kZXJhYmxlLnZlcnRpY2VzO1xuXHRcdFx0XHRcdGlmICghdHdvQ29sb3JUaW50KSB7XG5cdFx0XHRcdFx0XHRmb3IgKGxldCB2ID0gMiwgdSA9IDAsIG4gPSByZW5kZXJhYmxlLm51bUZsb2F0czsgdiA8IG47IHYgKz0gdmVydGV4U2l6ZSwgdSArPSAyKSB7XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3ZdID0gZmluYWxDb2xvci5yO1xuXHRcdFx0XHRcdFx0XHR2ZXJ0c1t2ICsgMV0gPSBmaW5hbENvbG9yLmc7XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3YgKyAyXSA9IGZpbmFsQ29sb3IuYjtcblx0XHRcdFx0XHRcdFx0dmVydHNbdiArIDNdID0gZmluYWxDb2xvci5hO1xuXHRcdFx0XHRcdFx0XHR2ZXJ0c1t2ICsgNF0gPSB1dnNbdV07XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3YgKyA1XSA9IHV2c1t1ICsgMV07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGZvciAobGV0IHYgPSAyLCB1ID0gMCwgbiA9IHJlbmRlcmFibGUubnVtRmxvYXRzOyB2IDwgbjsgdiArPSB2ZXJ0ZXhTaXplLCB1ICs9IDIpIHtcblx0XHRcdFx0XHRcdFx0dmVydHNbdl0gPSBmaW5hbENvbG9yLnI7XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3YgKyAxXSA9IGZpbmFsQ29sb3IuZztcblx0XHRcdFx0XHRcdFx0dmVydHNbdiArIDJdID0gZmluYWxDb2xvci5iO1xuXHRcdFx0XHRcdFx0XHR2ZXJ0c1t2ICsgM10gPSBmaW5hbENvbG9yLmE7XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3YgKyA0XSA9IHV2c1t1XTtcblx0XHRcdFx0XHRcdFx0dmVydHNbdiArIDVdID0gdXZzW3UgKyAxXTtcblx0XHRcdFx0XHRcdFx0dmVydHNbdiArIDZdID0gZGFya0NvbG9yLnI7XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3YgKyA3XSA9IGRhcmtDb2xvci5nO1xuXHRcdFx0XHRcdFx0XHR2ZXJ0c1t2ICsgOF0gPSBkYXJrQ29sb3IuYjtcblx0XHRcdFx0XHRcdFx0dmVydHNbdiArIDldID0gZGFya0NvbG9yLmE7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGxldCB2aWV3ID0gKHJlbmRlcmFibGUudmVydGljZXMgYXMgRmxvYXQzMkFycmF5KS5zdWJhcnJheSgwLCByZW5kZXJhYmxlLm51bUZsb2F0cyk7XG5cdFx0XHRcdFx0aWYgKHRyYW5zZm9ybWVyKSB0cmFuc2Zvcm1lcihyZW5kZXJhYmxlLnZlcnRpY2VzLCByZW5kZXJhYmxlLm51bUZsb2F0cywgdmVydGV4U2l6ZSk7XG5cdFx0XHRcdFx0YmF0Y2hlci5kcmF3KHRleHR1cmUsIHZpZXcsIHRyaWFuZ2xlcyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Y2xpcHBlci5jbGlwRW5kV2l0aFNsb3Qoc2xvdCk7XG5cdFx0fVxuXHRcdGNsaXBwZXIuY2xpcEVuZCgpO1xuXHR9XG5cblx0LyoqIFJldHVybnMgdGhlIHtAbGluayBTa2VsZXRvbkNsaXBwaW5nfSB1c2VkIGJ5IHRoaXMgcmVuZGVyZXIgZm9yIHVzZSB3aXRoIGUuZy4ge0BsaW5rIFNrZWxldG9uLmdldEJvdW5kc30gKiovXG5cdHB1YmxpYyBnZXRTa2VsZXRvbkNsaXBwaW5nICgpOiBTa2VsZXRvbkNsaXBwaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5jbGlwcGVyO1xuXHR9XG59XG4iXX0=
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b25SZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ta2VsZXRvblJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBQW1CLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUF1QixnQkFBZ0IsRUFBc0IsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFNdk0sTUFBTSxVQUFVO0lBQ0s7SUFBa0M7SUFBNEI7SUFBbEYsWUFBb0IsUUFBeUIsRUFBUyxXQUFtQixFQUFTLFNBQWlCO1FBQS9FLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQUksQ0FBQztDQUN4RztBQUFBLENBQUM7QUFJRixNQUFNLE9BQU8sZ0JBQWdCO0lBQzVCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTNDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNuQixTQUFTLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUN4QixVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUN6QixRQUFRLENBQWtCO0lBQzFCLFVBQVUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLFVBQVUsR0FBZSxJQUFJLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xELE9BQU8sR0FBcUIsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQ25ELElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3JCLEtBQUssR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ3BCLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBRTVCLFlBQWEsT0FBcUMsRUFBRSxlQUF3QixJQUFJO1FBQy9FLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksWUFBWTtZQUNmLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLENBQUUsT0FBdUIsRUFBRSxRQUFrQixFQUFFLGlCQUF5QixDQUFDLENBQUMsRUFBRSxlQUF1QixDQUFDLENBQUMsRUFBRSxjQUF3QyxJQUFJO1FBQ3RKLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDM0IsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDakQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNyQyxJQUFJLFNBQVMsR0FBcUIsSUFBSSxDQUFDO1FBRXZDLElBQUksVUFBVSxHQUFlLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDN0MsSUFBSSxHQUFvQixDQUFDO1FBQ3pCLElBQUksU0FBd0IsQ0FBQztRQUM3QixJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksZUFBc0IsQ0FBQztRQUMzQixJQUFJLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ25DLElBQUksVUFBVSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksY0FBYyxJQUFJLENBQUMsQ0FBQztZQUFFLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDekMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xELElBQUksaUJBQWlCLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUM5RCxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLFNBQVM7WUFDVixDQUFDO1lBRUQsSUFBSSxjQUFjLElBQUksQ0FBQyxJQUFJLGNBQWMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM5RCxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsU0FBUztZQUNWLENBQUM7WUFFRCxJQUFJLFlBQVksSUFBSSxDQUFDLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzFELE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDakIsQ0FBQztZQUVELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN0QyxJQUFJLE9BQWtCLENBQUM7WUFDdkIsSUFBSSxVQUFVLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxNQUFNLEdBQXFCLFVBQVUsQ0FBQztnQkFDMUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNwQyxVQUFVLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsVUFBVSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsSUFBSSxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztnQkFDN0UsU0FBUyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztnQkFDNUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7Z0JBQ2pCLE9BQU8sR0FBYyxNQUFNLENBQUMsTUFBTyxDQUFDLE9BQU8sQ0FBQztnQkFDNUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDaEMsQ0FBQztpQkFBTSxJQUFJLFVBQVUsWUFBWSxjQUFjLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxJQUFJLEdBQW1CLFVBQVUsQ0FBQztnQkFDdEMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNwQyxVQUFVLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxVQUFVLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEdBQUcsaUJBQWlCLENBQUM7Z0JBQ2xFLElBQUksVUFBVSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN2RCxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2pGLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3hHLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUMzQixPQUFPLEdBQWMsSUFBSSxDQUFDLE1BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQzFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUNmLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzlCLENBQUM7aUJBQU0sSUFBSSxVQUFVLFlBQVksa0JBQWtCLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxJQUFJLEdBQXVCLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUM5QixTQUFTO1lBQ1YsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLFNBQVM7WUFDVixDQUFDO1lBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDYixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUMzQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxVQUFVLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxVQUFVLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxVQUFVLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxVQUFVLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLGtCQUFrQixFQUFFLENBQUM7b0JBQ3hCLFVBQVUsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDN0IsVUFBVSxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO29CQUM3QixVQUFVLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLENBQUM7Z0JBQ0QsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO29CQUNsQixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUN4QixDQUFDO29CQUNMLElBQUksa0JBQWtCLEVBQUUsQ0FBQzt3QkFDeEIsU0FBUyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO3dCQUM5QyxTQUFTLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7d0JBQzlDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDL0MsQ0FBQzt5QkFBTSxDQUFDO3dCQUNQLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN4QyxDQUFDO29CQUNELFNBQVMsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO2dCQUM5QyxDQUFDO2dCQUVELElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUN4QyxJQUFJLGFBQWEsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDaEMsU0FBUyxHQUFHLGFBQWEsQ0FBQztvQkFDMUIsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztnQkFDckQsQ0FBQztnQkFFRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO29CQUMxQixPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7b0JBQ2xILElBQUksZUFBZSxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDaEUsSUFBSSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hELElBQUksV0FBVzt3QkFBRSxXQUFXLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ2xGLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUMxRCxDQUFDO3FCQUFNLENBQUM7b0JBQ1AsSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztvQkFDaEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO3dCQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7NEJBQ2pGLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDOzRCQUN4QixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7NEJBQzVCLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQzs0QkFDNUIsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDOzRCQUM1QixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDdEIsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUMzQixDQUFDO29CQUNGLENBQUM7eUJBQU0sQ0FBQzt3QkFDUCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7NEJBQ2pGLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDOzRCQUN4QixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7NEJBQzVCLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQzs0QkFDNUIsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDOzRCQUM1QixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDdEIsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDOzRCQUMxQixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7NEJBQzNCLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQzs0QkFDM0IsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDOzRCQUMzQixLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7d0JBQzVCLENBQUM7b0JBQ0YsQ0FBQztvQkFDRCxJQUFJLElBQUksR0FBSSxVQUFVLENBQUMsUUFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDbkYsSUFBSSxXQUFXO3dCQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ3BGLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztZQUNGLENBQUM7WUFFRCxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELCtHQUErRztJQUN4RyxtQkFBbUI7UUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEFwcmlsIDUsIDIwMjUuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyNSwgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZVxuICogb3Igb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IE51bWJlckFycmF5TGlrZSwgQ29sb3IsIFNrZWxldG9uQ2xpcHBpbmcsIFZlY3RvcjIsIFV0aWxzLCBTa2VsZXRvbiwgQmxlbmRNb2RlLCBSZWdpb25BdHRhY2htZW50LCBUZXh0dXJlQXRsYXNSZWdpb24sIE1lc2hBdHRhY2htZW50LCBDbGlwcGluZ0F0dGFjaG1lbnQgfSBmcm9tIFwiQGVzb3Rlcmljc29mdHdhcmUvc3BpbmUtY29yZVwiO1xuaW1wb3J0IHsgR0xUZXh0dXJlIH0gZnJvbSBcIi4vR0xUZXh0dXJlLmpzXCI7XG5pbXBvcnQgeyBQb2x5Z29uQmF0Y2hlciB9IGZyb20gXCIuL1BvbHlnb25CYXRjaGVyLmpzXCI7XG5pbXBvcnQgeyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IH0gZnJvbSBcIi4vV2ViR0wuanNcIjtcblxuXG5jbGFzcyBSZW5kZXJhYmxlIHtcblx0Y29uc3RydWN0b3IgKHB1YmxpYyB2ZXJ0aWNlczogTnVtYmVyQXJyYXlMaWtlLCBwdWJsaWMgbnVtVmVydGljZXM6IG51bWJlciwgcHVibGljIG51bUZsb2F0czogbnVtYmVyKSB7IH1cbn07XG5cbmV4cG9ydCB0eXBlIFZlcnRleFRyYW5zZm9ybWVyID0gKHZlcnRpY2VzOiBOdW1iZXJBcnJheUxpa2UsIG51bVZlcnRpY2VzOiBudW1iZXIsIHN0cmlkZTogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgY2xhc3MgU2tlbGV0b25SZW5kZXJlciB7XG5cdHN0YXRpYyBRVUFEX1RSSUFOR0xFUyA9IFswLCAxLCAyLCAyLCAzLCAwXTtcblxuXHRwcmVtdWx0aXBsaWVkQWxwaGEgPSBmYWxzZTtcblx0cHJpdmF0ZSB0ZW1wQ29sb3IgPSBuZXcgQ29sb3IoKTtcblx0cHJpdmF0ZSB0ZW1wQ29sb3IyID0gbmV3IENvbG9yKCk7XG5cdHByaXZhdGUgdmVydGljZXM6IE51bWJlckFycmF5TGlrZTtcblx0cHJpdmF0ZSB2ZXJ0ZXhTaXplID0gMiArIDIgKyA0O1xuXHRwcml2YXRlIHR3b0NvbG9yVGludCA9IGZhbHNlO1xuXHRwcml2YXRlIHJlbmRlcmFibGU6IFJlbmRlcmFibGUgPSBuZXcgUmVuZGVyYWJsZShbXSwgMCwgMCk7XG5cdHByaXZhdGUgY2xpcHBlcjogU2tlbGV0b25DbGlwcGluZyA9IG5ldyBTa2VsZXRvbkNsaXBwaW5nKCk7XG5cdHByaXZhdGUgdGVtcCA9IG5ldyBWZWN0b3IyKCk7XG5cdHByaXZhdGUgdGVtcDIgPSBuZXcgVmVjdG9yMigpO1xuXHRwcml2YXRlIHRlbXAzID0gbmV3IENvbG9yKCk7XG5cdHByaXZhdGUgdGVtcDQgPSBuZXcgQ29sb3IoKTtcblxuXHRjb25zdHJ1Y3RvciAoY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgdHdvQ29sb3JUaW50OiBib29sZWFuID0gdHJ1ZSkge1xuXHRcdHRoaXMudHdvQ29sb3JUaW50ID0gdHdvQ29sb3JUaW50O1xuXHRcdGlmICh0d29Db2xvclRpbnQpXG5cdFx0XHR0aGlzLnZlcnRleFNpemUgKz0gNDtcblx0XHR0aGlzLnZlcnRpY2VzID0gVXRpbHMubmV3RmxvYXRBcnJheSh0aGlzLnZlcnRleFNpemUgKiAxMDI0KTtcblx0fVxuXG5cdGRyYXcgKGJhdGNoZXI6IFBvbHlnb25CYXRjaGVyLCBza2VsZXRvbjogU2tlbGV0b24sIHNsb3RSYW5nZVN0YXJ0OiBudW1iZXIgPSAtMSwgc2xvdFJhbmdlRW5kOiBudW1iZXIgPSAtMSwgdHJhbnNmb3JtZXI6IFZlcnRleFRyYW5zZm9ybWVyIHwgbnVsbCA9IG51bGwpIHtcblx0XHRsZXQgY2xpcHBlciA9IHRoaXMuY2xpcHBlcjtcblx0XHRsZXQgcHJlbXVsdGlwbGllZEFscGhhID0gdGhpcy5wcmVtdWx0aXBsaWVkQWxwaGE7XG5cdFx0bGV0IHR3b0NvbG9yVGludCA9IHRoaXMudHdvQ29sb3JUaW50O1xuXHRcdGxldCBibGVuZE1vZGU6IEJsZW5kTW9kZSB8IG51bGwgPSBudWxsO1xuXG5cdFx0bGV0IHJlbmRlcmFibGU6IFJlbmRlcmFibGUgPSB0aGlzLnJlbmRlcmFibGU7XG5cdFx0bGV0IHV2czogTnVtYmVyQXJyYXlMaWtlO1xuXHRcdGxldCB0cmlhbmdsZXM6IEFycmF5PG51bWJlcj47XG5cdFx0bGV0IGRyYXdPcmRlciA9IHNrZWxldG9uLmRyYXdPcmRlcjtcblx0XHRsZXQgYXR0YWNobWVudENvbG9yOiBDb2xvcjtcblx0XHRsZXQgc2tlbGV0b25Db2xvciA9IHNrZWxldG9uLmNvbG9yO1xuXHRcdGxldCB2ZXJ0ZXhTaXplID0gdHdvQ29sb3JUaW50ID8gMTIgOiA4O1xuXHRcdGxldCBpblJhbmdlID0gZmFsc2U7XG5cdFx0aWYgKHNsb3RSYW5nZVN0YXJ0ID09IC0xKSBpblJhbmdlID0gdHJ1ZTtcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IGRyYXdPcmRlci5sZW5ndGg7IGkgPCBuOyBpKyspIHtcblx0XHRcdGxldCBjbGlwcGVkVmVydGV4U2l6ZSA9IGNsaXBwZXIuaXNDbGlwcGluZygpID8gMiA6IHZlcnRleFNpemU7XG5cdFx0XHRsZXQgc2xvdCA9IGRyYXdPcmRlcltpXTtcblx0XHRcdGlmICghc2xvdC5ib25lLmFjdGl2ZSkge1xuXHRcdFx0XHRjbGlwcGVyLmNsaXBFbmRXaXRoU2xvdChzbG90KTtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzbG90UmFuZ2VTdGFydCA+PSAwICYmIHNsb3RSYW5nZVN0YXJ0ID09IHNsb3QuZGF0YS5pbmRleCkge1xuXHRcdFx0XHRpblJhbmdlID0gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCFpblJhbmdlKSB7XG5cdFx0XHRcdGNsaXBwZXIuY2xpcEVuZFdpdGhTbG90KHNsb3QpO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHNsb3RSYW5nZUVuZCA+PSAwICYmIHNsb3RSYW5nZUVuZCA9PSBzbG90LmRhdGEuaW5kZXgpIHtcblx0XHRcdFx0aW5SYW5nZSA9IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHRsZXQgYXR0YWNobWVudCA9IHNsb3QuZ2V0QXR0YWNobWVudCgpO1xuXHRcdFx0bGV0IHRleHR1cmU6IEdMVGV4dHVyZTtcblx0XHRcdGlmIChhdHRhY2htZW50IGluc3RhbmNlb2YgUmVnaW9uQXR0YWNobWVudCkge1xuXHRcdFx0XHRsZXQgcmVnaW9uID0gPFJlZ2lvbkF0dGFjaG1lbnQ+YXR0YWNobWVudDtcblx0XHRcdFx0cmVuZGVyYWJsZS52ZXJ0aWNlcyA9IHRoaXMudmVydGljZXM7XG5cdFx0XHRcdHJlbmRlcmFibGUubnVtVmVydGljZXMgPSA0O1xuXHRcdFx0XHRyZW5kZXJhYmxlLm51bUZsb2F0cyA9IGNsaXBwZWRWZXJ0ZXhTaXplIDw8IDI7XG5cdFx0XHRcdHJlZ2lvbi5jb21wdXRlV29ybGRWZXJ0aWNlcyhzbG90LCByZW5kZXJhYmxlLnZlcnRpY2VzLCAwLCBjbGlwcGVkVmVydGV4U2l6ZSk7XG5cdFx0XHRcdHRyaWFuZ2xlcyA9IFNrZWxldG9uUmVuZGVyZXIuUVVBRF9UUklBTkdMRVM7XG5cdFx0XHRcdHV2cyA9IHJlZ2lvbi51dnM7XG5cdFx0XHRcdHRleHR1cmUgPSA8R0xUZXh0dXJlPnJlZ2lvbi5yZWdpb24hLnRleHR1cmU7XG5cdFx0XHRcdGF0dGFjaG1lbnRDb2xvciA9IHJlZ2lvbi5jb2xvcjtcblx0XHRcdH0gZWxzZSBpZiAoYXR0YWNobWVudCBpbnN0YW5jZW9mIE1lc2hBdHRhY2htZW50KSB7XG5cdFx0XHRcdGxldCBtZXNoID0gPE1lc2hBdHRhY2htZW50PmF0dGFjaG1lbnQ7XG5cdFx0XHRcdHJlbmRlcmFibGUudmVydGljZXMgPSB0aGlzLnZlcnRpY2VzO1xuXHRcdFx0XHRyZW5kZXJhYmxlLm51bVZlcnRpY2VzID0gKG1lc2gud29ybGRWZXJ0aWNlc0xlbmd0aCA+PiAxKTtcblx0XHRcdFx0cmVuZGVyYWJsZS5udW1GbG9hdHMgPSByZW5kZXJhYmxlLm51bVZlcnRpY2VzICogY2xpcHBlZFZlcnRleFNpemU7XG5cdFx0XHRcdGlmIChyZW5kZXJhYmxlLm51bUZsb2F0cyA+IHJlbmRlcmFibGUudmVydGljZXMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0cmVuZGVyYWJsZS52ZXJ0aWNlcyA9IHRoaXMudmVydGljZXMgPSBVdGlscy5uZXdGbG9hdEFycmF5KHJlbmRlcmFibGUubnVtRmxvYXRzKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRtZXNoLmNvbXB1dGVXb3JsZFZlcnRpY2VzKHNsb3QsIDAsIG1lc2gud29ybGRWZXJ0aWNlc0xlbmd0aCwgcmVuZGVyYWJsZS52ZXJ0aWNlcywgMCwgY2xpcHBlZFZlcnRleFNpemUpO1xuXHRcdFx0XHR0cmlhbmdsZXMgPSBtZXNoLnRyaWFuZ2xlcztcblx0XHRcdFx0dGV4dHVyZSA9IDxHTFRleHR1cmU+bWVzaC5yZWdpb24hLnRleHR1cmU7XG5cdFx0XHRcdHV2cyA9IG1lc2gudXZzO1xuXHRcdFx0XHRhdHRhY2htZW50Q29sb3IgPSBtZXNoLmNvbG9yO1xuXHRcdFx0fSBlbHNlIGlmIChhdHRhY2htZW50IGluc3RhbmNlb2YgQ2xpcHBpbmdBdHRhY2htZW50KSB7XG5cdFx0XHRcdGxldCBjbGlwID0gPENsaXBwaW5nQXR0YWNobWVudD4oYXR0YWNobWVudCk7XG5cdFx0XHRcdGNsaXBwZXIuY2xpcFN0YXJ0KHNsb3QsIGNsaXApO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNsaXBwZXIuY2xpcEVuZFdpdGhTbG90KHNsb3QpO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHRleHR1cmUpIHtcblx0XHRcdFx0bGV0IHNsb3RDb2xvciA9IHNsb3QuY29sb3I7XG5cdFx0XHRcdGxldCBmaW5hbENvbG9yID0gdGhpcy50ZW1wQ29sb3I7XG5cdFx0XHRcdGZpbmFsQ29sb3IuciA9IHNrZWxldG9uQ29sb3IuciAqIHNsb3RDb2xvci5yICogYXR0YWNobWVudENvbG9yLnI7XG5cdFx0XHRcdGZpbmFsQ29sb3IuZyA9IHNrZWxldG9uQ29sb3IuZyAqIHNsb3RDb2xvci5nICogYXR0YWNobWVudENvbG9yLmc7XG5cdFx0XHRcdGZpbmFsQ29sb3IuYiA9IHNrZWxldG9uQ29sb3IuYiAqIHNsb3RDb2xvci5iICogYXR0YWNobWVudENvbG9yLmI7XG5cdFx0XHRcdGZpbmFsQ29sb3IuYSA9IHNrZWxldG9uQ29sb3IuYSAqIHNsb3RDb2xvci5hICogYXR0YWNobWVudENvbG9yLmE7XG5cdFx0XHRcdGlmIChwcmVtdWx0aXBsaWVkQWxwaGEpIHtcblx0XHRcdFx0XHRmaW5hbENvbG9yLnIgKj0gZmluYWxDb2xvci5hO1xuXHRcdFx0XHRcdGZpbmFsQ29sb3IuZyAqPSBmaW5hbENvbG9yLmE7XG5cdFx0XHRcdFx0ZmluYWxDb2xvci5iICo9IGZpbmFsQ29sb3IuYTtcblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgZGFya0NvbG9yID0gdGhpcy50ZW1wQ29sb3IyO1xuXHRcdFx0XHRpZiAoIXNsb3QuZGFya0NvbG9yKVxuXHRcdFx0XHRcdGRhcmtDb2xvci5zZXQoMCwgMCwgMCwgMS4wKTtcblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0aWYgKHByZW11bHRpcGxpZWRBbHBoYSkge1xuXHRcdFx0XHRcdFx0ZGFya0NvbG9yLnIgPSBzbG90LmRhcmtDb2xvci5yICogZmluYWxDb2xvci5hO1xuXHRcdFx0XHRcdFx0ZGFya0NvbG9yLmcgPSBzbG90LmRhcmtDb2xvci5nICogZmluYWxDb2xvci5hO1xuXHRcdFx0XHRcdFx0ZGFya0NvbG9yLmIgPSBzbG90LmRhcmtDb2xvci5iICogZmluYWxDb2xvci5hO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRkYXJrQ29sb3Iuc2V0RnJvbUNvbG9yKHNsb3QuZGFya0NvbG9yKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZGFya0NvbG9yLmEgPSBwcmVtdWx0aXBsaWVkQWxwaGEgPyAxLjAgOiAwLjA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRsZXQgc2xvdEJsZW5kTW9kZSA9IHNsb3QuZGF0YS5ibGVuZE1vZGU7XG5cdFx0XHRcdGlmIChzbG90QmxlbmRNb2RlICE9IGJsZW5kTW9kZSkge1xuXHRcdFx0XHRcdGJsZW5kTW9kZSA9IHNsb3RCbGVuZE1vZGU7XG5cdFx0XHRcdFx0YmF0Y2hlci5zZXRCbGVuZE1vZGUoYmxlbmRNb2RlLCBwcmVtdWx0aXBsaWVkQWxwaGEpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGNsaXBwZXIuaXNDbGlwcGluZygpKSB7XG5cdFx0XHRcdFx0Y2xpcHBlci5jbGlwVHJpYW5nbGVzKHJlbmRlcmFibGUudmVydGljZXMsIHRyaWFuZ2xlcywgdHJpYW5nbGVzLmxlbmd0aCwgdXZzLCBmaW5hbENvbG9yLCBkYXJrQ29sb3IsIHR3b0NvbG9yVGludCk7XG5cdFx0XHRcdFx0bGV0IGNsaXBwZWRWZXJ0aWNlcyA9IG5ldyBGbG9hdDMyQXJyYXkoY2xpcHBlci5jbGlwcGVkVmVydGljZXMpO1xuXHRcdFx0XHRcdGxldCBjbGlwcGVkVHJpYW5nbGVzID0gY2xpcHBlci5jbGlwcGVkVHJpYW5nbGVzO1xuXHRcdFx0XHRcdGlmICh0cmFuc2Zvcm1lcikgdHJhbnNmb3JtZXIoY2xpcHBlZFZlcnRpY2VzLCBjbGlwcGVkVmVydGljZXMubGVuZ3RoLCB2ZXJ0ZXhTaXplKTtcblx0XHRcdFx0XHRiYXRjaGVyLmRyYXcodGV4dHVyZSwgY2xpcHBlZFZlcnRpY2VzLCBjbGlwcGVkVHJpYW5nbGVzKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRsZXQgdmVydHMgPSByZW5kZXJhYmxlLnZlcnRpY2VzO1xuXHRcdFx0XHRcdGlmICghdHdvQ29sb3JUaW50KSB7XG5cdFx0XHRcdFx0XHRmb3IgKGxldCB2ID0gMiwgdSA9IDAsIG4gPSByZW5kZXJhYmxlLm51bUZsb2F0czsgdiA8IG47IHYgKz0gdmVydGV4U2l6ZSwgdSArPSAyKSB7XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3ZdID0gZmluYWxDb2xvci5yO1xuXHRcdFx0XHRcdFx0XHR2ZXJ0c1t2ICsgMV0gPSBmaW5hbENvbG9yLmc7XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3YgKyAyXSA9IGZpbmFsQ29sb3IuYjtcblx0XHRcdFx0XHRcdFx0dmVydHNbdiArIDNdID0gZmluYWxDb2xvci5hO1xuXHRcdFx0XHRcdFx0XHR2ZXJ0c1t2ICsgNF0gPSB1dnNbdV07XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3YgKyA1XSA9IHV2c1t1ICsgMV07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGZvciAobGV0IHYgPSAyLCB1ID0gMCwgbiA9IHJlbmRlcmFibGUubnVtRmxvYXRzOyB2IDwgbjsgdiArPSB2ZXJ0ZXhTaXplLCB1ICs9IDIpIHtcblx0XHRcdFx0XHRcdFx0dmVydHNbdl0gPSBmaW5hbENvbG9yLnI7XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3YgKyAxXSA9IGZpbmFsQ29sb3IuZztcblx0XHRcdFx0XHRcdFx0dmVydHNbdiArIDJdID0gZmluYWxDb2xvci5iO1xuXHRcdFx0XHRcdFx0XHR2ZXJ0c1t2ICsgM10gPSBmaW5hbENvbG9yLmE7XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3YgKyA0XSA9IHV2c1t1XTtcblx0XHRcdFx0XHRcdFx0dmVydHNbdiArIDVdID0gdXZzW3UgKyAxXTtcblx0XHRcdFx0XHRcdFx0dmVydHNbdiArIDZdID0gZGFya0NvbG9yLnI7XG5cdFx0XHRcdFx0XHRcdHZlcnRzW3YgKyA3XSA9IGRhcmtDb2xvci5nO1xuXHRcdFx0XHRcdFx0XHR2ZXJ0c1t2ICsgOF0gPSBkYXJrQ29sb3IuYjtcblx0XHRcdFx0XHRcdFx0dmVydHNbdiArIDldID0gZGFya0NvbG9yLmE7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGxldCB2aWV3ID0gKHJlbmRlcmFibGUudmVydGljZXMgYXMgRmxvYXQzMkFycmF5KS5zdWJhcnJheSgwLCByZW5kZXJhYmxlLm51bUZsb2F0cyk7XG5cdFx0XHRcdFx0aWYgKHRyYW5zZm9ybWVyKSB0cmFuc2Zvcm1lcihyZW5kZXJhYmxlLnZlcnRpY2VzLCByZW5kZXJhYmxlLm51bUZsb2F0cywgdmVydGV4U2l6ZSk7XG5cdFx0XHRcdFx0YmF0Y2hlci5kcmF3KHRleHR1cmUsIHZpZXcsIHRyaWFuZ2xlcyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Y2xpcHBlci5jbGlwRW5kV2l0aFNsb3Qoc2xvdCk7XG5cdFx0fVxuXHRcdGNsaXBwZXIuY2xpcEVuZCgpO1xuXHR9XG5cblx0LyoqIFJldHVybnMgdGhlIHtAbGluayBTa2VsZXRvbkNsaXBwaW5nfSB1c2VkIGJ5IHRoaXMgcmVuZGVyZXIgZm9yIHVzZSB3aXRoIGUuZy4ge0BsaW5rIFNrZWxldG9uLmdldEJvdW5kc30gKiovXG5cdHB1YmxpYyBnZXRTa2VsZXRvbkNsaXBwaW5nICgpOiBTa2VsZXRvbkNsaXBwaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5jbGlwcGVyO1xuXHR9XG59XG4iXX0=
|