@esotericsoftware/spine-webgl 4.2.117 → 4.3.1
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/dist/AssetManager.d.ts +1 -1
- package/dist/AssetManager.js +2 -4
- package/dist/Camera.js +7 -7
- package/dist/CameraController.d.ts +1 -1
- package/dist/CameraController.js +14 -14
- package/dist/GLTexture.d.ts +3 -3
- package/dist/GLTexture.js +14 -12
- package/dist/Input.d.ts +1 -1
- package/dist/Input.js +40 -39
- package/dist/LoadingScreen.d.ts +2 -2
- package/dist/LoadingScreen.js +16 -16
- package/dist/Matrix4.js +31 -31
- package/dist/Mesh.d.ts +1 -1
- package/dist/Mesh.js +15 -15
- package/dist/PolygonBatcher.d.ts +4 -4
- package/dist/PolygonBatcher.js +20 -22
- package/dist/SceneRenderer.d.ts +8 -7
- package/dist/SceneRenderer.js +44 -37
- package/dist/Shader.d.ts +1 -1
- package/dist/Shader.js +23 -23
- package/dist/ShapeRenderer.d.ts +2 -2
- package/dist/ShapeRenderer.js +38 -47
- package/dist/SkeletonDebugRenderer.d.ts +2 -3
- package/dist/SkeletonDebugRenderer.js +56 -58
- package/dist/SkeletonRenderer.d.ts +3 -4
- package/dist/SkeletonRenderer.js +59 -69
- package/dist/SpineCanvas.d.ts +2 -2
- package/dist/SpineCanvas.js +4 -4
- package/dist/Vector3.d.ts +1 -1
- package/dist/Vector3.js +8 -8
- package/dist/esm/spine-webgl.min.mjs +26 -26
- package/dist/esm/spine-webgl.mjs +8097 -6477
- package/dist/esm/spine-webgl.mjs.map +4 -4
- package/dist/iife/spine-webgl.js +8097 -6477
- package/dist/iife/spine-webgl.js.map +4 -4
- package/dist/iife/spine-webgl.min.js +26 -26
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/package.json +2 -2
package/dist/SceneRenderer.js
CHANGED
|
@@ -80,14 +80,12 @@ export class SceneRenderer {
|
|
|
80
80
|
this.camera.update();
|
|
81
81
|
this.enableRenderer(this.batcher);
|
|
82
82
|
}
|
|
83
|
-
drawSkeleton(skeleton,
|
|
83
|
+
drawSkeleton(skeleton, slotRangeStart = -1, slotRangeEnd = -1, transform = null) {
|
|
84
84
|
this.enableRenderer(this.batcher);
|
|
85
|
-
this.skeletonRenderer.premultipliedAlpha = premultipliedAlpha;
|
|
86
85
|
this.skeletonRenderer.draw(this.batcher, skeleton, slotRangeStart, slotRangeEnd, transform);
|
|
87
86
|
}
|
|
88
|
-
drawSkeletonDebug(skeleton,
|
|
87
|
+
drawSkeletonDebug(skeleton, ignoredBones) {
|
|
89
88
|
this.enableRenderer(this.shapes);
|
|
90
|
-
this.skeletonDebugRenderer.premultipliedAlpha = premultipliedAlpha;
|
|
91
89
|
this.skeletonDebugRenderer.draw(this.shapes, skeleton, ignoredBones);
|
|
92
90
|
}
|
|
93
91
|
drawTexture(texture, x, y, width, height, color) {
|
|
@@ -221,21 +219,21 @@ export class SceneRenderer {
|
|
|
221
219
|
if (!color)
|
|
222
220
|
color = WHITE;
|
|
223
221
|
// bottom left and top right corner points relative to origin
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
222
|
+
const worldOriginX = x + pivotX;
|
|
223
|
+
const worldOriginY = y + pivotY;
|
|
224
|
+
const fx = -pivotX;
|
|
225
|
+
const fy = -pivotY;
|
|
226
|
+
const fx2 = width - pivotX;
|
|
227
|
+
const fy2 = height - pivotY;
|
|
230
228
|
// construct corner points, start from top left and go counter clockwise
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
229
|
+
const p1x = fx;
|
|
230
|
+
const p1y = fy;
|
|
231
|
+
const p2x = fx;
|
|
232
|
+
const p2y = fy2;
|
|
233
|
+
const p3x = fx2;
|
|
234
|
+
const p3y = fy2;
|
|
235
|
+
const p4x = fx2;
|
|
236
|
+
const p4y = fy;
|
|
239
237
|
let x1 = 0;
|
|
240
238
|
let y1 = 0;
|
|
241
239
|
let x2 = 0;
|
|
@@ -245,9 +243,9 @@ export class SceneRenderer {
|
|
|
245
243
|
let x4 = 0;
|
|
246
244
|
let y4 = 0;
|
|
247
245
|
// rotate
|
|
248
|
-
if (angle
|
|
249
|
-
|
|
250
|
-
|
|
246
|
+
if (angle !== 0) {
|
|
247
|
+
const cos = MathUtils.cosDeg(angle);
|
|
248
|
+
const sin = MathUtils.sinDeg(angle);
|
|
251
249
|
x1 = cos * p1x - sin * p1y;
|
|
252
250
|
y1 = sin * p1x + cos * p1y;
|
|
253
251
|
x4 = cos * p2x - sin * p2y;
|
|
@@ -436,26 +434,34 @@ export class SceneRenderer {
|
|
|
436
434
|
this.shapes.end();
|
|
437
435
|
this.activeRenderer = null;
|
|
438
436
|
}
|
|
439
|
-
resize(resizeMode) {
|
|
440
|
-
|
|
441
|
-
|
|
437
|
+
resize(resizeMode, worldWidth, worldHeight) {
|
|
438
|
+
const canvas = this.canvas;
|
|
439
|
+
const dpr = this.getSafeDevicePixelRatio(canvas.clientWidth, canvas.clientHeight);
|
|
442
440
|
var w = Math.round(canvas.clientWidth * dpr);
|
|
443
441
|
var h = Math.round(canvas.clientHeight * dpr);
|
|
444
|
-
if (canvas.width
|
|
442
|
+
if (canvas.width !== w || canvas.height !== h) {
|
|
445
443
|
canvas.width = w;
|
|
446
444
|
canvas.height = h;
|
|
447
445
|
}
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
446
|
+
if (resizeMode === ResizeMode.FitClip && worldWidth !== undefined && worldHeight !== undefined) {
|
|
447
|
+
const targetRatio = h / w, sourceRatio = worldHeight / worldWidth;
|
|
448
|
+
const scale = targetRatio > sourceRatio ? w / worldWidth : h / worldHeight;
|
|
449
|
+
worldWidth *= scale;
|
|
450
|
+
worldHeight *= scale;
|
|
451
|
+
this.camera.setViewport(worldWidth, worldHeight);
|
|
452
|
+
this.context.gl.viewport((w - worldWidth) / 2, (h - worldHeight) / 2, worldWidth, worldHeight);
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
if (resizeMode === ResizeMode.Fit) {
|
|
456
|
+
const targetWidth = this.camera.viewportWidth, targetHeight = this.camera.viewportHeight;
|
|
457
|
+
const targetRatio = targetHeight / targetWidth, sourceRatio = h / w;
|
|
458
|
+
const scale = targetRatio < sourceRatio ? targetWidth / w : targetHeight / h;
|
|
459
|
+
this.camera.setViewport(w * scale, h * scale);
|
|
460
|
+
}
|
|
461
|
+
else if (resizeMode === ResizeMode.Expand)
|
|
462
|
+
this.camera.setViewport(w, h);
|
|
463
|
+
// Nothing to do for stretch, we simply apply the viewport size of the camera.
|
|
464
|
+
this.context.gl.viewport(0, 0, w, h);
|
|
459
465
|
}
|
|
460
466
|
this.camera.update();
|
|
461
467
|
}
|
|
@@ -498,5 +504,6 @@ export var ResizeMode;
|
|
|
498
504
|
ResizeMode[ResizeMode["Stretch"] = 0] = "Stretch";
|
|
499
505
|
ResizeMode[ResizeMode["Expand"] = 1] = "Expand";
|
|
500
506
|
ResizeMode[ResizeMode["Fit"] = 2] = "Fit";
|
|
507
|
+
ResizeMode[ResizeMode["FitClip"] = 3] = "FitClip";
|
|
501
508
|
})(ResizeMode || (ResizeMode = {}));
|
|
502
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TY2VuZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQXNCLE1BQU0sOEJBQThCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRCxDQUFDO0FBRUQsTUFBTSxJQUFJLEdBQUc7SUFDWixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUN0QixDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQUcsQ0FB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SUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGFBQWEsQ0FBRSxPQUFrQixFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsS0FBYTtRQUNsSixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSztZQUFFLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENB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QyxHQUFHLENBQUMsQ0FBQztRQUNWLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNiLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUUsTUFBMEIsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsS0FBYTtRQUN6RyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSztZQUFFLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFZLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxDQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUNoRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVEsQ0FBRSxNQUFlLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQzdJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxJQUFJLENBQUUsTUFBZSxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxNQUFjLEVBQUUsTUFBYztRQUNqTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsSUFBSSxDQUFFLE1BQWUsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsS0FBYTtRQUN4RixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxRQUFRLENBQUUsTUFBZSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsS0FBYTtRQUN0RyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsT0FBTyxDQUFFLGVBQWtDLEVBQUUsTUFBYyxFQUFFLEtBQWEsRUFBRSxLQUFhO1FBQ3hGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLENBQUUsTUFBZSxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsTUFBYyxF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SXJCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBBcHJpbCA1LCAyMDI1LiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmVcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICogVEhFIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgeyBDb2xvciwgRGlzcG9zYWJsZSwgU2tlbGV0b24sIE1hdGhVdGlscywgVGV4dHVyZUF0bGFzUmVnaW9uIH0gZnJvbSBcIkBlc290ZXJpY3NvZnR3YXJlL3NwaW5lLWNvcmVcIjtcbmltcG9ydCB7IE9ydGhvQ2FtZXJhIH0gZnJvbSBcIi4vQ2FtZXJhLmpzXCI7XG5pbXBvcnQgeyBHTFRleHR1cmUgfSBmcm9tIFwiLi9HTFRleHR1cmUuanNcIjtcbmltcG9ydCB7IFBvbHlnb25CYXRjaGVyIH0gZnJvbSBcIi4vUG9seWdvbkJhdGNoZXIuanNcIjtcbmltcG9ydCB7IFNoYWRlciB9IGZyb20gXCIuL1NoYWRlci5qc1wiO1xuaW1wb3J0IHsgU2hhcGVSZW5kZXJlciB9IGZyb20gXCIuL1NoYXBlUmVuZGVyZXIuanNcIjtcbmltcG9ydCB7IFNrZWxldG9uRGVidWdSZW5kZXJlciB9IGZyb20gXCIuL1NrZWxldG9uRGVidWdSZW5kZXJlci5qc1wiO1xuaW1wb3J0IHsgU2tlbGV0b25SZW5kZXJlciwgVmVydGV4VHJhbnNmb3JtZXIgfSBmcm9tIFwiLi9Ta2VsZXRvblJlbmRlcmVyLmpzXCI7XG5pbXBvcnQgeyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IH0gZnJvbSBcIi4vV2ViR0wuanNcIjtcbjtcblxuY29uc3QgcXVhZCA9IFtcblx0MCwgMCwgMSwgMSwgMSwgMSwgMCwgMCxcblx0MCwgMCwgMSwgMSwgMSwgMSwgMCwgMCxcblx0MCwgMCwgMSwgMSwgMSwgMSwgMCwgMCxcblx0MCwgMCwgMSwgMSwgMSwgMSwgMCwgMCxcbl07XG5jb25zdCBRVUFEX1RSSUFOR0xFUyA9IFswLCAxLCAyLCAyLCAzLCAwXTtcbmNvbnN0IFdISVRFID0gbmV3IENvbG9yKDEsIDEsIDEsIDEpO1xuXG5leHBvcnQgY2xhc3MgU2NlbmVSZW5kZXJlciBpbXBsZW1lbnRzIERpc3Bvc2FibGUge1xuXHRjb250ZXh0OiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0O1xuXHRjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50O1xuXHRjYW1lcmE6IE9ydGhvQ2FtZXJhO1xuXHRiYXRjaGVyOiBQb2x5Z29uQmF0Y2hlcjtcblx0cHJpdmF0ZSB0d29Db2xvclRpbnQgPSBmYWxzZTtcblx0cHJpdmF0ZSBiYXRjaGVyU2hhZGVyOiBTaGFkZXI7XG5cdHByaXZhdGUgc2hhcGVzOiBTaGFwZVJlbmRlcmVyO1xuXHRwcml2YXRlIHNoYXBlc1NoYWRlcjogU2hhZGVyO1xuXHRwcml2YXRlIGFjdGl2ZVJlbmRlcmVyOiBQb2x5Z29uQmF0Y2hlciB8IFNoYXBlUmVuZGVyZXIgfCBTa2VsZXRvbkRlYnVnUmVuZGVyZXIgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBtYXhDYW52YXNXaWR0aCA9IDA7XG5cdHByaXZhdGUgbWF4Q2FudmFzSGVpZ2h0ID0gMDtcblx0c2tlbGV0b25SZW5kZXJlcjogU2tlbGV0b25SZW5kZXJlcjtcblx0c2tlbGV0b25EZWJ1Z1JlbmRlcmVyOiBTa2VsZXRvbkRlYnVnUmVuZGVyZXI7XG5cblx0Y29uc3RydWN0b3IgKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfCBXZWJHTFJlbmRlcmluZ0NvbnRleHQsIHR3b0NvbG9yVGludDogYm9vbGVhbiA9IHRydWUpIHtcblx0XHR0aGlzLmNhbnZhcyA9IGNhbnZhcztcblx0XHR0aGlzLmNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCA/IGNvbnRleHQgOiBuZXcgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dChjb250ZXh0KTtcblx0XHR0aGlzLnR3b0NvbG9yVGludCA9IHR3b0NvbG9yVGludDtcblx0XHR0aGlzLmNhbWVyYSA9IG5ldyBPcnRob0NhbWVyYShjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuXHRcdHRoaXMuYmF0Y2hlclNoYWRlciA9IHR3b0NvbG9yVGludCA/IFNoYWRlci5uZXdUd29Db2xvcmVkVGV4dHVyZWQodGhpcy5jb250ZXh0KSA6IFNoYWRlci5uZXdDb2xvcmVkVGV4dHVyZWQodGhpcy5jb250ZXh0KTtcblx0XHR0aGlzLmJhdGNoZXIgPSBuZXcgUG9seWdvbkJhdGNoZXIodGhpcy5jb250ZXh0LCB0d29Db2xvclRpbnQpO1xuXHRcdHRoaXMuc2hhcGVzU2hhZGVyID0gU2hhZGVyLm5ld0NvbG9yZWQodGhpcy5jb250ZXh0KTtcblx0XHR0aGlzLnNoYXBlcyA9IG5ldyBTaGFwZVJlbmRlcmVyKHRoaXMuY29udGV4dCk7XG5cdFx0dGhpcy5za2VsZXRvblJlbmRlcmVyID0gbmV3IFNrZWxldG9uUmVuZGVyZXIodGhpcy5jb250ZXh0LCB0d29Db2xvclRpbnQpO1xuXHRcdHRoaXMuc2tlbGV0b25EZWJ1Z1JlbmRlcmVyID0gbmV3IFNrZWxldG9uRGVidWdSZW5kZXJlcih0aGlzLmNvbnRleHQpO1xuXHR9XG5cblx0ZGlzcG9zZSAoKSB7XG5cdFx0dGhpcy5iYXRjaGVyLmRpc3Bvc2UoKTtcblx0XHR0aGlzLmJhdGNoZXJTaGFkZXIuZGlzcG9zZSgpO1xuXHRcdHRoaXMuc2hhcGVzLmRpc3Bvc2UoKTtcblx0XHR0aGlzLnNoYXBlc1NoYWRlci5kaXNwb3NlKCk7XG5cdFx0dGhpcy5za2VsZXRvbkRlYnVnUmVuZGVyZXIuZGlzcG9zZSgpO1xuXHR9XG5cblx0YmVnaW4gKCkge1xuXHRcdHRoaXMuY2FtZXJhLnVwZGF0ZSgpO1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0fVxuXG5cdGRyYXdTa2VsZXRvbiAoc2tlbGV0b246IFNrZWxldG9uLCBwcmVtdWx0aXBsaWVkQWxwaGEgPSBmYWxzZSwgc2xvdFJhbmdlU3RhcnQgPSAtMSwgc2xvdFJhbmdlRW5kID0gLTEsIHRyYW5zZm9ybTogVmVydGV4VHJhbnNmb3JtZXIgfCBudWxsID0gbnVsbCkge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHR0aGlzLnNrZWxldG9uUmVuZGVyZXIucHJlbXVsdGlwbGllZEFscGhhID0gcHJlbXVsdGlwbGllZEFscGhhO1xuXHRcdHRoaXMuc2tlbGV0b25SZW5kZXJlci5kcmF3KHRoaXMuYmF0Y2hlciwgc2tlbGV0b24sIHNsb3RSYW5nZVN0YXJ0LCBzbG90UmFuZ2VFbmQsIHRyYW5zZm9ybSk7XG5cdH1cblxuXHRkcmF3U2tlbGV0b25EZWJ1ZyAoc2tlbGV0b246IFNrZWxldG9uLCBwcmVtdWx0aXBsaWVkQWxwaGEgPSBmYWxzZSwgaWdub3JlZEJvbmVzPzogQXJyYXk8c3RyaW5nPikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5zaGFwZXMpO1xuXHRcdHRoaXMuc2tlbGV0b25EZWJ1Z1JlbmRlcmVyLnByZW11bHRpcGxpZWRBbHBoYSA9IHByZW11bHRpcGxpZWRBbHBoYTtcblx0XHR0aGlzLnNrZWxldG9uRGVidWdSZW5kZXJlci5kcmF3KHRoaXMuc2hhcGVzLCBza2VsZXRvbiwgaWdub3JlZEJvbmVzKTtcblx0fVxuXG5cdGRyYXdUZXh0dXJlICh0ZXh0dXJlOiBHTFRleHR1cmUsIHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHk7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMDtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpXSA9IDA7XG5cdFx0fVxuXHRcdHRoaXMuYmF0Y2hlci5kcmF3KHRleHR1cmUsIHF1YWQsIFFVQURfVFJJQU5HTEVTKTtcblx0fVxuXG5cdGRyYXdUZXh0dXJlVVYgKHRleHR1cmU6IEdMVGV4dHVyZSwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCB1OiBudW1iZXIsIHY6IG51bWJlciwgdTI6IG51bWJlciwgdjI6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHk7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSB1O1xuXHRcdHF1YWRbaSsrXSA9IHY7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHUyO1xuXHRcdHF1YWRbaSsrXSA9IHY7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geSArIGhlaWdodDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHUyO1xuXHRcdHF1YWRbaSsrXSA9IHYyO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gdTtcblx0XHRxdWFkW2krK10gPSB2Mjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaV0gPSAwO1xuXHRcdH1cblx0XHR0aGlzLmJhdGNoZXIuZHJhdyh0ZXh0dXJlLCBxdWFkLCBRVUFEX1RSSUFOR0xFUyk7XG5cdH1cblxuXHRkcmF3VGV4dHVyZVJvdGF0ZWQgKHRleHR1cmU6IEdMVGV4dHVyZSwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBwaXZvdFg6IG51bWJlciwgcGl2b3RZOiBudW1iZXIsIGFuZ2xlOiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuYmF0Y2hlcik7XG5cdFx0aWYgKCFjb2xvcikgY29sb3IgPSBXSElURTtcblxuXHRcdC8vIGJvdHRvbSBsZWZ0IGFuZCB0b3AgcmlnaHQgY29ybmVyIHBvaW50cyByZWxhdGl2ZSB0byBvcmlnaW5cblx0XHRsZXQgd29ybGRPcmlnaW5YID0geCArIHBpdm90WDtcblx0XHRsZXQgd29ybGRPcmlnaW5ZID0geSArIHBpdm90WTtcblx0XHRsZXQgZnggPSAtcGl2b3RYO1xuXHRcdGxldCBmeSA9IC1waXZvdFk7XG5cdFx0bGV0IGZ4MiA9IHdpZHRoIC0gcGl2b3RYO1xuXHRcdGxldCBmeTIgPSBoZWlnaHQgLSBwaXZvdFk7XG5cblx0XHQvLyBjb25zdHJ1Y3QgY29ybmVyIHBvaW50cywgc3RhcnQgZnJvbSB0b3AgbGVmdCBhbmQgZ28gY291bnRlciBjbG9ja3dpc2Vcblx0XHRsZXQgcDF4ID0gZng7XG5cdFx0bGV0IHAxeSA9IGZ5O1xuXHRcdGxldCBwMnggPSBmeDtcblx0XHRsZXQgcDJ5ID0gZnkyO1xuXHRcdGxldCBwM3ggPSBmeDI7XG5cdFx0bGV0IHAzeSA9IGZ5Mjtcblx0XHRsZXQgcDR4ID0gZngyO1xuXHRcdGxldCBwNHkgPSBmeTtcblxuXHRcdGxldCB4MSA9IDA7XG5cdFx0bGV0IHkxID0gMDtcblx0XHRsZXQgeDIgPSAwO1xuXHRcdGxldCB5MiA9IDA7XG5cdFx0bGV0IHgzID0gMDtcblx0XHRsZXQgeTMgPSAwO1xuXHRcdGxldCB4NCA9IDA7XG5cdFx0bGV0IHk0ID0gMDtcblxuXHRcdC8vIHJvdGF0ZVxuXHRcdGlmIChhbmdsZSAhPSAwKSB7XG5cdFx0XHRsZXQgY29zID0gTWF0aFV0aWxzLmNvc0RlZyhhbmdsZSk7XG5cdFx0XHRsZXQgc2luID0gTWF0aFV0aWxzLnNpbkRlZyhhbmdsZSk7XG5cblx0XHRcdHgxID0gY29zICogcDF4IC0gc2luICogcDF5O1xuXHRcdFx0eTEgPSBzaW4gKiBwMXggKyBjb3MgKiBwMXk7XG5cblx0XHRcdHg0ID0gY29zICogcDJ4IC0gc2luICogcDJ5O1xuXHRcdFx0eTQgPSBzaW4gKiBwMnggKyBjb3MgKiBwMnk7XG5cblx0XHRcdHgzID0gY29zICogcDN4IC0gc2luICogcDN5O1xuXHRcdFx0eTMgPSBzaW4gKiBwM3ggKyBjb3MgKiBwM3k7XG5cblx0XHRcdHgyID0geDMgKyAoeDEgLSB4NCk7XG5cdFx0XHR5MiA9IHkzICsgKHkxIC0geTQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR4MSA9IHAxeDtcblx0XHRcdHkxID0gcDF5O1xuXG5cdFx0XHR4NCA9IHAyeDtcblx0XHRcdHk0ID0gcDJ5O1xuXG5cdFx0XHR4MyA9IHAzeDtcblx0XHRcdHkzID0gcDN5O1xuXG5cdFx0XHR4MiA9IHA0eDtcblx0XHRcdHkyID0gcDR5O1xuXHRcdH1cblxuXHRcdHgxICs9IHdvcmxkT3JpZ2luWDtcblx0XHR5MSArPSB3b3JsZE9yaWdpblk7XG5cdFx0eDIgKz0gd29ybGRPcmlnaW5YO1xuXHRcdHkyICs9IHdvcmxkT3JpZ2luWTtcblx0XHR4MyArPSB3b3JsZE9yaWdpblg7XG5cdFx0eTMgKz0gd29ybGRPcmlnaW5ZO1xuXHRcdHg0ICs9IHdvcmxkT3JpZ2luWDtcblx0XHR5NCArPSB3b3JsZE9yaWdpblk7XG5cblx0XHR2YXIgaSA9IDA7XG5cdFx0cXVhZFtpKytdID0geDE7XG5cdFx0cXVhZFtpKytdID0geTE7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4Mjtcblx0XHRxdWFkW2krK10gPSB5Mjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHgzO1xuXHRcdHF1YWRbaSsrXSA9IHkzO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDQ7XG5cdFx0cXVhZFtpKytdID0geTQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2ldID0gMDtcblx0XHR9XG5cdFx0dGhpcy5iYXRjaGVyLmRyYXcodGV4dHVyZSwgcXVhZCwgUVVBRF9UUklBTkdMRVMpO1xuXHR9XG5cblx0ZHJhd1JlZ2lvbiAocmVnaW9uOiBUZXh0dXJlQXRsYXNSZWdpb24sIHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHk7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSByZWdpb24udTtcblx0XHRxdWFkW2krK10gPSByZWdpb24udjI7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51Mjtcblx0XHRxdWFkW2krK10gPSByZWdpb24udjI7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geSArIGhlaWdodDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51Mjtcblx0XHRxdWFkW2krK10gPSByZWdpb24udjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geSArIGhlaWdodDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51O1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52O1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpXSA9IDA7XG5cdFx0fVxuXHRcdHRoaXMuYmF0Y2hlci5kcmF3KDxHTFRleHR1cmU+cmVnaW9uLnBhZ2UudGV4dHVyZSwgcXVhZCwgUVVBRF9UUklBTkdMRVMpO1xuXHR9XG5cblx0bGluZSAoeDogbnVtYmVyLCB5OiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIGNvbG9yPzogQ29sb3IsIGNvbG9yMj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMubGluZSh4LCB5LCB4MiwgeTIsIGNvbG9yKTtcblx0fVxuXG5cdHRyaWFuZ2xlIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB4MzogbnVtYmVyLCB5MzogbnVtYmVyLCBjb2xvcj86IENvbG9yLCBjb2xvcjI/OiBDb2xvciwgY29sb3IzPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy50cmlhbmdsZShmaWxsZWQsIHgsIHksIHgyLCB5MiwgeDMsIHkzLCBjb2xvciwgY29sb3IyLCBjb2xvcjMpO1xuXHR9XG5cblx0cXVhZCAoZmlsbGVkOiBib29sZWFuLCB4OiBudW1iZXIsIHk6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgeDM6IG51bWJlciwgeTM6IG51bWJlciwgeDQ6IG51bWJlciwgeTQ6IG51bWJlciwgY29sb3I/OiBDb2xvciwgY29sb3IyPzogQ29sb3IsIGNvbG9yMz86IENvbG9yLCBjb2xvcjQ/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5zaGFwZXMpO1xuXHRcdHRoaXMuc2hhcGVzLnF1YWQoZmlsbGVkLCB4LCB5LCB4MiwgeTIsIHgzLCB5MywgeDQsIHk0LCBjb2xvciwgY29sb3IyLCBjb2xvcjMsIGNvbG9yNCk7XG5cdH1cblxuXHRyZWN0IChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5zaGFwZXMpO1xuXHRcdHRoaXMuc2hhcGVzLnJlY3QoZmlsbGVkLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvcik7XG5cdH1cblxuXHRyZWN0TGluZSAoZmlsbGVkOiBib29sZWFuLCB4MTogbnVtYmVyLCB5MTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucmVjdExpbmUoZmlsbGVkLCB4MSwgeTEsIHgyLCB5Miwgd2lkdGgsIGNvbG9yKTtcblx0fVxuXG5cdHBvbHlnb24gKHBvbHlnb25WZXJ0aWNlczogQXJyYXlMaWtlPG51bWJlcj4sIG9mZnNldDogbnVtYmVyLCBjb3VudDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucG9seWdvbihwb2x5Z29uVmVydGljZXMsIG9mZnNldCwgY291bnQsIGNvbG9yKTtcblx0fVxuXG5cdGNpcmNsZSAoZmlsbGVkOiBib29sZWFuLCB4OiBudW1iZXIsIHk6IG51bWJlciwgcmFkaXVzOiBudW1iZXIsIGNvbG9yPzogQ29sb3IsIHNlZ21lbnRzOiBudW1iZXIgPSAwKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMuY2lyY2xlKGZpbGxlZCwgeCwgeSwgcmFkaXVzLCBjb2xvciwgc2VnbWVudHMpO1xuXHR9XG5cblx0Y3VydmUgKHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIGN4MTogbnVtYmVyLCBjeTE6IG51bWJlciwgY3gyOiBudW1iZXIsIGN5MjogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCBzZWdtZW50czogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMuY3VydmUoeDEsIHkxLCBjeDEsIGN5MSwgY3gyLCBjeTIsIHgyLCB5Miwgc2VnbWVudHMsIGNvbG9yKTtcblx0fVxuXG5cdGVuZCAoKSB7XG5cdFx0aWYgKHRoaXMuYWN0aXZlUmVuZGVyZXIgPT09IHRoaXMuYmF0Y2hlcikgdGhpcy5iYXRjaGVyLmVuZCgpO1xuXHRcdGVsc2UgaWYgKHRoaXMuYWN0aXZlUmVuZGVyZXIgPT09IHRoaXMuc2hhcGVzKSB0aGlzLnNoYXBlcy5lbmQoKTtcblx0XHR0aGlzLmFjdGl2ZVJlbmRlcmVyID0gbnVsbDtcblx0fVxuXG5cdHJlc2l6ZSAocmVzaXplTW9kZTogUmVzaXplTW9kZSkge1xuXHRcdGxldCBjYW52YXMgPSB0aGlzLmNhbnZhcztcblx0XHR2YXIgZHByID0gdGhpcy5nZXRTYWZlRGV2aWNlUGl4ZWxSYXRpbyhjYW52YXMuY2xpZW50V2lkdGgsIGNhbnZhcy5jbGllbnRIZWlnaHQpO1xuXHRcdHZhciB3ID0gTWF0aC5yb3VuZChjYW52YXMuY2xpZW50V2lkdGggKiBkcHIpO1xuXHRcdHZhciBoID0gTWF0aC5yb3VuZChjYW52YXMuY2xpZW50SGVpZ2h0ICogZHByKTtcblxuXHRcdGlmIChjYW52YXMud2lkdGggIT0gdyB8fCBjYW52YXMuaGVpZ2h0ICE9IGgpIHtcblx0XHRcdGNhbnZhcy53aWR0aCA9IHc7XG5cdFx0XHRjYW52YXMuaGVpZ2h0ID0gaDtcblx0XHR9XG5cdFx0dGhpcy5jb250ZXh0LmdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cblx0XHQvLyBOb3RoaW5nIHRvIGRvIGZvciBzdHJldGNoLCB3ZSBzaW1wbHkgYXBwbHkgdGhlIHZpZXdwb3J0IHNpemUgb2YgdGhlIGNhbWVyYS5cblx0XHRpZiAocmVzaXplTW9kZSA9PT0gUmVzaXplTW9kZS5FeHBhbmQpXG5cdFx0XHR0aGlzLmNhbWVyYS5zZXRWaWV3cG9ydCh3LCBoKTtcblx0XHRlbHNlIGlmIChyZXNpemVNb2RlID09PSBSZXNpemVNb2RlLkZpdCkge1xuXHRcdFx0bGV0IHNvdXJjZVdpZHRoID0gY2FudmFzLndpZHRoLCBzb3VyY2VIZWlnaHQgPSBjYW52YXMuaGVpZ2h0O1xuXHRcdFx0bGV0IHRhcmdldFdpZHRoID0gdGhpcy5jYW1lcmEudmlld3BvcnRXaWR0aCwgdGFyZ2V0SGVpZ2h0ID0gdGhpcy5jYW1lcmEudmlld3BvcnRIZWlnaHQ7XG5cdFx0XHRsZXQgdGFyZ2V0UmF0aW8gPSB0YXJnZXRIZWlnaHQgLyB0YXJnZXRXaWR0aDtcblx0XHRcdGxldCBzb3VyY2VSYXRpbyA9IHNvdXJjZUhlaWdodCAvIHNvdXJjZVdpZHRoO1xuXHRcdFx0bGV0IHNjYWxlID0gdGFyZ2V0UmF0aW8gPCBzb3VyY2VSYXRpbyA/IHRhcmdldFdpZHRoIC8gc291cmNlV2lkdGggOiB0YXJnZXRIZWlnaHQgLyBzb3VyY2VIZWlnaHQ7XG5cdFx0XHR0aGlzLmNhbWVyYS5zZXRWaWV3cG9ydChzb3VyY2VXaWR0aCAqIHNjYWxlLCBzb3VyY2VIZWlnaHQgKiBzY2FsZSk7XG5cdFx0fVxuXHRcdHRoaXMuY2FtZXJhLnVwZGF0ZSgpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRTYWZlRGV2aWNlUGl4ZWxSYXRpbyAoY3NzV2lkdGg6IG51bWJlciwgY3NzSGVpZ2h0OiBudW1iZXIpOiBudW1iZXIge1xuXHRcdGNvbnN0IGRwciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7XG5cdFx0aWYgKGNzc1dpZHRoIDw9IDAgfHwgY3NzSGVpZ2h0IDw9IDApIHJldHVybiBkcHI7XG5cblx0XHRpZiAodGhpcy5tYXhDYW52YXNXaWR0aCA9PT0gMCB8fCB0aGlzLm1heENhbnZhc0hlaWdodCA9PT0gMCkge1xuXHRcdFx0Y29uc3QgZ2wgPSB0aGlzLmNvbnRleHQuZ2w7XG5cdFx0XHRjb25zdCBtYXhSZW5kZXJidWZmZXJTaXplID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9SRU5ERVJCVUZGRVJfU0laRSk7XG5cdFx0XHRjb25zdCBtYXhWaWV3cG9ydERpbXMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJRVdQT1JUX0RJTVMpO1xuXHRcdFx0dGhpcy5tYXhDYW52YXNXaWR0aCA9IE1hdGgubWluKG1heFJlbmRlcmJ1ZmZlclNpemUsIG1heFZpZXdwb3J0RGltc1swXSk7XG5cdFx0XHR0aGlzLm1heENhbnZhc0hlaWdodCA9IE1hdGgubWluKG1heFJlbmRlcmJ1ZmZlclNpemUsIG1heFZpZXdwb3J0RGltc1sxXSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIE1hdGgubWluKGRwciwgdGhpcy5tYXhDYW52YXNXaWR0aCAvIGNzc1dpZHRoLCB0aGlzLm1heENhbnZhc0hlaWdodCAvIGNzc0hlaWdodCk7XG5cdH1cblxuXHRwcml2YXRlIGVuYWJsZVJlbmRlcmVyIChyZW5kZXJlcjogUG9seWdvbkJhdGNoZXIgfCBTaGFwZVJlbmRlcmVyIHwgU2tlbGV0b25EZWJ1Z1JlbmRlcmVyKSB7XG5cdFx0aWYgKHRoaXMuYWN0aXZlUmVuZGVyZXIgPT09IHJlbmRlcmVyKSByZXR1cm47XG5cdFx0dGhpcy5lbmQoKTtcblx0XHRpZiAocmVuZGVyZXIgaW5zdGFuY2VvZiBQb2x5Z29uQmF0Y2hlcikge1xuXHRcdFx0dGhpcy5iYXRjaGVyU2hhZGVyLmJpbmQoKTtcblx0XHRcdHRoaXMuYmF0Y2hlclNoYWRlci5zZXRVbmlmb3JtNHg0ZihTaGFkZXIuTVZQX01BVFJJWCwgdGhpcy5jYW1lcmEucHJvamVjdGlvblZpZXcudmFsdWVzKTtcblx0XHRcdHRoaXMuYmF0Y2hlclNoYWRlci5zZXRVbmlmb3JtaShcInVfdGV4dHVyZVwiLCAwKTtcblx0XHRcdHRoaXMuYmF0Y2hlci5iZWdpbih0aGlzLmJhdGNoZXJTaGFkZXIpO1xuXHRcdFx0dGhpcy5hY3RpdmVSZW5kZXJlciA9IHRoaXMuYmF0Y2hlcjtcblx0XHR9IGVsc2UgaWYgKHJlbmRlcmVyIGluc3RhbmNlb2YgU2hhcGVSZW5kZXJlcikge1xuXHRcdFx0dGhpcy5zaGFwZXNTaGFkZXIuYmluZCgpO1xuXHRcdFx0dGhpcy5zaGFwZXNTaGFkZXIuc2V0VW5pZm9ybTR4NGYoU2hhZGVyLk1WUF9NQVRSSVgsIHRoaXMuY2FtZXJhLnByb2plY3Rpb25WaWV3LnZhbHVlcyk7XG5cdFx0XHR0aGlzLnNoYXBlcy5iZWdpbih0aGlzLnNoYXBlc1NoYWRlcik7XG5cdFx0XHR0aGlzLmFjdGl2ZVJlbmRlcmVyID0gdGhpcy5zaGFwZXM7XG5cdFx0fSBlbHNlXG5cdFx0XHR0aGlzLmFjdGl2ZVJlbmRlcmVyID0gdGhpcy5za2VsZXRvbkRlYnVnUmVuZGVyZXI7XG5cdH1cbn1cblxuZXhwb3J0IGVudW0gUmVzaXplTW9kZSB7XG5cdFN0cmV0Y2gsXG5cdEV4cGFuZCxcblx0Rml0XG59XG4iXX0=
|
|
509
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TY2VuZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBQUUsS0FBSyxFQUFtQixTQUFTLEVBQTBDLE1BQU0sOEJBQThCLENBQUM7QUFDekgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLHVCQUF1QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxRCxDQUFDO0FBRUQsTUFBTSxJQUFJLEdBQUc7SUFDWixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUN0QixDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQUcsQ0FB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QUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsYUFBYSxDQUFFLE9BQWtCLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhO1FBQ2xKLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFB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QUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNiLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUUsTUFBMEIsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsS0FBYTtRQUN6RyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSztZQUFFLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFZLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxDQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUNoRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVEsQ0FBRSxNQUFlLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQzdJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxJQUFJLENBQUUsTUFBZSxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxNQUFjLEVBQUUsTUFBYztRQUNqTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsSUFBSSxDQUFFLE1BQWUsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsS0FBYTtRQUN4RixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxRQUFRLENBQUUsTUFBZSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsS0FBYTtRQUN0RyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsT0FBTyxDQUFFLGVBQWtDLEVBQUUsTUFBYyxFQUFFLEtBQWEsRUFBRSxLQUFhO1FBQ3hGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLENBQUUsTUFBZSxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsTUFBYyxFQUFFLEtBQWEsRUFBRSxXQUFtQixDQUFDO1FBQ2pHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELEtBQUssQ0FBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEdBQVcsRUFBRSxHQUFXLEVBQUUsR0FBVyxFQUFFLEdBQVcsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLFFBQWdCLEVBQUUsS0FBYTtRQUN6SSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsR0FBRztRQUNGLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDeEQsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFFLFVBQXNCLEVBQUUsVUFBbUIsRUFBRSxXQUFvQjtRQUN4RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNqQixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNuQixDQUFDO1FBRUQsSUFBSSxVQUFVLEtBQUssVUFBVSxDQUFDLE9BQU8sSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoRyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsR0FBRyxXQUFXLEdBQUcsVUFBVSxDQUFDO1lBQ2xFLE1BQU0sS0FBSyxHQUFHLFdBQVcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7WUFDM0UsVUFBVSxJQUFJLEtBQUssQ0FBQztZQUNwQixXQUFXLElBQUksS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDaEcsQ0FBQzthQUFNLENBQUM7WUFDUCxJQUFJLFVBQVUsS0FBSyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztnQkFDekYsTUFBTSxXQUFXLEdBQUcsWUFBWSxHQUFHLFdBQVcsRUFBRSxXQUFXLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDcEUsTUFBTSxLQUFLLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDL0MsQ0FBQztpQkFBTSxJQUFJLFVBQVUsS0FBSyxVQUFVLENBQUMsTUFBTTtnQkFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9CLDhFQUE4RTtZQUU5RSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLHVCQUF1QixDQUFFLFFBQWdCLEVBQUUsU0FBaUI7UUFDbkUsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksU0FBUyxJQUFJLENBQUM7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUVoRCxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFTyxjQUFjLENBQUUsUUFBZ0U7UUFDdkYsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFFBQVE7WUFBRSxPQUFPO1FBQzdDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNYLElBQUksUUFBUSxZQUFZLGNBQWMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4RixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNwQyxDQUFDO2FBQU0sSUFBSSxRQUFRLFlBQVksYUFBYSxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDbkMsQ0FBQzs7WUFDQSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNuRCxDQUFDO0NBQ0Q7QUFFRCxNQUFNLENBQU4sSUFBWSxVQUtYO0FBTEQsV0FBWSxVQUFVO0lBQ3JCLGlEQUFPLENBQUE7SUFDUCwrQ0FBTSxDQUFBO0lBQ04seUNBQUcsQ0FBQTtJQUNILGlEQUFPLENBQUE7QUFDUixDQUFDLEVBTFcsVUFBVSxLQUFWLFVBQVUsUUFLckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEFwcmlsIDUsIDIwMjUuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyNSwgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZVxuICogb3Igb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IENvbG9yLCB0eXBlIERpc3Bvc2FibGUsIE1hdGhVdGlscywgdHlwZSBTa2VsZXRvbiwgdHlwZSBUZXh0dXJlQXRsYXNSZWdpb24gfSBmcm9tIFwiQGVzb3Rlcmljc29mdHdhcmUvc3BpbmUtY29yZVwiO1xuaW1wb3J0IHsgT3J0aG9DYW1lcmEgfSBmcm9tIFwiLi9DYW1lcmEuanNcIjtcbmltcG9ydCB0eXBlIHsgR0xUZXh0dXJlIH0gZnJvbSBcIi4vR0xUZXh0dXJlLmpzXCI7XG5pbXBvcnQgeyBQb2x5Z29uQmF0Y2hlciB9IGZyb20gXCIuL1BvbHlnb25CYXRjaGVyLmpzXCI7XG5pbXBvcnQgeyBTaGFkZXIgfSBmcm9tIFwiLi9TaGFkZXIuanNcIjtcbmltcG9ydCB7IFNoYXBlUmVuZGVyZXIgfSBmcm9tIFwiLi9TaGFwZVJlbmRlcmVyLmpzXCI7XG5pbXBvcnQgeyBTa2VsZXRvbkRlYnVnUmVuZGVyZXIgfSBmcm9tIFwiLi9Ta2VsZXRvbkRlYnVnUmVuZGVyZXIuanNcIjtcbmltcG9ydCB7IFNrZWxldG9uUmVuZGVyZXIsIHR5cGUgVmVydGV4VHJhbnNmb3JtZXIgfSBmcm9tIFwiLi9Ta2VsZXRvblJlbmRlcmVyLmpzXCI7XG5pbXBvcnQgeyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IH0gZnJvbSBcIi4vV2ViR0wuanNcIjtcblxuO1xuXG5jb25zdCBxdWFkID0gW1xuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXTtcbmNvbnN0IFFVQURfVFJJQU5HTEVTID0gWzAsIDEsIDIsIDIsIDMsIDBdO1xuY29uc3QgV0hJVEUgPSBuZXcgQ29sb3IoMSwgMSwgMSwgMSk7XG5cbmV4cG9ydCBjbGFzcyBTY2VuZVJlbmRlcmVyIGltcGxlbWVudHMgRGlzcG9zYWJsZSB7XG5cdGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQ7XG5cdGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG5cdGNhbWVyYTogT3J0aG9DYW1lcmE7XG5cdGJhdGNoZXI6IFBvbHlnb25CYXRjaGVyO1xuXHRwcml2YXRlIHR3b0NvbG9yVGludCA9IGZhbHNlO1xuXHRwcml2YXRlIGJhdGNoZXJTaGFkZXI6IFNoYWRlcjtcblx0cHJpdmF0ZSBzaGFwZXM6IFNoYXBlUmVuZGVyZXI7XG5cdHByaXZhdGUgc2hhcGVzU2hhZGVyOiBTaGFkZXI7XG5cdHByaXZhdGUgYWN0aXZlUmVuZGVyZXI6IFBvbHlnb25CYXRjaGVyIHwgU2hhcGVSZW5kZXJlciB8IFNrZWxldG9uRGVidWdSZW5kZXJlciB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIG1heENhbnZhc1dpZHRoID0gMDtcblx0cHJpdmF0ZSBtYXhDYW52YXNIZWlnaHQgPSAwO1xuXHRza2VsZXRvblJlbmRlcmVyOiBTa2VsZXRvblJlbmRlcmVyO1xuXHRza2VsZXRvbkRlYnVnUmVuZGVyZXI6IFNrZWxldG9uRGVidWdSZW5kZXJlcjtcblxuXHRjb25zdHJ1Y3RvciAoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgdHdvQ29sb3JUaW50OiBib29sZWFuID0gdHJ1ZSkge1xuXHRcdHRoaXMuY2FudmFzID0gY2FudmFzO1xuXHRcdHRoaXMuY29udGV4dCA9IGNvbnRleHQgaW5zdGFuY2VvZiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0ID8gY29udGV4dCA6IG5ldyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0KGNvbnRleHQpO1xuXHRcdHRoaXMudHdvQ29sb3JUaW50ID0gdHdvQ29sb3JUaW50O1xuXHRcdHRoaXMuY2FtZXJhID0gbmV3IE9ydGhvQ2FtZXJhKGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cdFx0dGhpcy5iYXRjaGVyU2hhZGVyID0gdHdvQ29sb3JUaW50ID8gU2hhZGVyLm5ld1R3b0NvbG9yZWRUZXh0dXJlZCh0aGlzLmNvbnRleHQpIDogU2hhZGVyLm5ld0NvbG9yZWRUZXh0dXJlZCh0aGlzLmNvbnRleHQpO1xuXHRcdHRoaXMuYmF0Y2hlciA9IG5ldyBQb2x5Z29uQmF0Y2hlcih0aGlzLmNvbnRleHQsIHR3b0NvbG9yVGludCk7XG5cdFx0dGhpcy5zaGFwZXNTaGFkZXIgPSBTaGFkZXIubmV3Q29sb3JlZCh0aGlzLmNvbnRleHQpO1xuXHRcdHRoaXMuc2hhcGVzID0gbmV3IFNoYXBlUmVuZGVyZXIodGhpcy5jb250ZXh0KTtcblx0XHR0aGlzLnNrZWxldG9uUmVuZGVyZXIgPSBuZXcgU2tlbGV0b25SZW5kZXJlcih0aGlzLmNvbnRleHQsIHR3b0NvbG9yVGludCk7XG5cdFx0dGhpcy5za2VsZXRvbkRlYnVnUmVuZGVyZXIgPSBuZXcgU2tlbGV0b25EZWJ1Z1JlbmRlcmVyKHRoaXMuY29udGV4dCk7XG5cdH1cblxuXHRkaXNwb3NlICgpIHtcblx0XHR0aGlzLmJhdGNoZXIuZGlzcG9zZSgpO1xuXHRcdHRoaXMuYmF0Y2hlclNoYWRlci5kaXNwb3NlKCk7XG5cdFx0dGhpcy5zaGFwZXMuZGlzcG9zZSgpO1xuXHRcdHRoaXMuc2hhcGVzU2hhZGVyLmRpc3Bvc2UoKTtcblx0XHR0aGlzLnNrZWxldG9uRGVidWdSZW5kZXJlci5kaXNwb3NlKCk7XG5cdH1cblxuXHRiZWdpbiAoKSB7XG5cdFx0dGhpcy5jYW1lcmEudXBkYXRlKCk7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHR9XG5cblx0ZHJhd1NrZWxldG9uIChza2VsZXRvbjogU2tlbGV0b24sIHNsb3RSYW5nZVN0YXJ0ID0gLTEsIHNsb3RSYW5nZUVuZCA9IC0xLCB0cmFuc2Zvcm06IFZlcnRleFRyYW5zZm9ybWVyIHwgbnVsbCA9IG51bGwpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuYmF0Y2hlcik7XG5cdFx0dGhpcy5za2VsZXRvblJlbmRlcmVyLmRyYXcodGhpcy5iYXRjaGVyLCBza2VsZXRvbiwgc2xvdFJhbmdlU3RhcnQsIHNsb3RSYW5nZUVuZCwgdHJhbnNmb3JtKTtcblx0fVxuXG5cdGRyYXdTa2VsZXRvbkRlYnVnIChza2VsZXRvbjogU2tlbGV0b24sIGlnbm9yZWRCb25lcz86IEFycmF5PHN0cmluZz4pIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNrZWxldG9uRGVidWdSZW5kZXJlci5kcmF3KHRoaXMuc2hhcGVzLCBza2VsZXRvbiwgaWdub3JlZEJvbmVzKTtcblx0fVxuXG5cdGRyYXdUZXh0dXJlICh0ZXh0dXJlOiBHTFRleHR1cmUsIHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHk7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMDtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpXSA9IDA7XG5cdFx0fVxuXHRcdHRoaXMuYmF0Y2hlci5kcmF3KHRleHR1cmUsIHF1YWQsIFFVQURfVFJJQU5HTEVTKTtcblx0fVxuXG5cdGRyYXdUZXh0dXJlVVYgKHRleHR1cmU6IEdMVGV4dHVyZSwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCB1OiBudW1iZXIsIHY6IG51bWJlciwgdTI6IG51bWJlciwgdjI6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHk7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSB1O1xuXHRcdHF1YWRbaSsrXSA9IHY7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHUyO1xuXHRcdHF1YWRbaSsrXSA9IHY7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geSArIGhlaWdodDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHUyO1xuXHRcdHF1YWRbaSsrXSA9IHYyO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gdTtcblx0XHRxdWFkW2krK10gPSB2Mjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaV0gPSAwO1xuXHRcdH1cblx0XHR0aGlzLmJhdGNoZXIuZHJhdyh0ZXh0dXJlLCBxdWFkLCBRVUFEX1RSSUFOR0xFUyk7XG5cdH1cblxuXHRkcmF3VGV4dHVyZVJvdGF0ZWQgKHRleHR1cmU6IEdMVGV4dHVyZSwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBwaXZvdFg6IG51bWJlciwgcGl2b3RZOiBudW1iZXIsIGFuZ2xlOiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuYmF0Y2hlcik7XG5cdFx0aWYgKCFjb2xvcikgY29sb3IgPSBXSElURTtcblxuXHRcdC8vIGJvdHRvbSBsZWZ0IGFuZCB0b3AgcmlnaHQgY29ybmVyIHBvaW50cyByZWxhdGl2ZSB0byBvcmlnaW5cblx0XHRjb25zdCB3b3JsZE9yaWdpblggPSB4ICsgcGl2b3RYO1xuXHRcdGNvbnN0IHdvcmxkT3JpZ2luWSA9IHkgKyBwaXZvdFk7XG5cdFx0Y29uc3QgZnggPSAtcGl2b3RYO1xuXHRcdGNvbnN0IGZ5ID0gLXBpdm90WTtcblx0XHRjb25zdCBmeDIgPSB3aWR0aCAtIHBpdm90WDtcblx0XHRjb25zdCBmeTIgPSBoZWlnaHQgLSBwaXZvdFk7XG5cblx0XHQvLyBjb25zdHJ1Y3QgY29ybmVyIHBvaW50cywgc3RhcnQgZnJvbSB0b3AgbGVmdCBhbmQgZ28gY291bnRlciBjbG9ja3dpc2Vcblx0XHRjb25zdCBwMXggPSBmeDtcblx0XHRjb25zdCBwMXkgPSBmeTtcblx0XHRjb25zdCBwMnggPSBmeDtcblx0XHRjb25zdCBwMnkgPSBmeTI7XG5cdFx0Y29uc3QgcDN4ID0gZngyO1xuXHRcdGNvbnN0IHAzeSA9IGZ5Mjtcblx0XHRjb25zdCBwNHggPSBmeDI7XG5cdFx0Y29uc3QgcDR5ID0gZnk7XG5cblx0XHRsZXQgeDEgPSAwO1xuXHRcdGxldCB5MSA9IDA7XG5cdFx0bGV0IHgyID0gMDtcblx0XHRsZXQgeTIgPSAwO1xuXHRcdGxldCB4MyA9IDA7XG5cdFx0bGV0IHkzID0gMDtcblx0XHRsZXQgeDQgPSAwO1xuXHRcdGxldCB5NCA9IDA7XG5cblx0XHQvLyByb3RhdGVcblx0XHRpZiAoYW5nbGUgIT09IDApIHtcblx0XHRcdGNvbnN0IGNvcyA9IE1hdGhVdGlscy5jb3NEZWcoYW5nbGUpO1xuXHRcdFx0Y29uc3Qgc2luID0gTWF0aFV0aWxzLnNpbkRlZyhhbmdsZSk7XG5cblx0XHRcdHgxID0gY29zICogcDF4IC0gc2luICogcDF5O1xuXHRcdFx0eTEgPSBzaW4gKiBwMXggKyBjb3MgKiBwMXk7XG5cblx0XHRcdHg0ID0gY29zICogcDJ4IC0gc2luICogcDJ5O1xuXHRcdFx0eTQgPSBzaW4gKiBwMnggKyBjb3MgKiBwMnk7XG5cblx0XHRcdHgzID0gY29zICogcDN4IC0gc2luICogcDN5O1xuXHRcdFx0eTMgPSBzaW4gKiBwM3ggKyBjb3MgKiBwM3k7XG5cblx0XHRcdHgyID0geDMgKyAoeDEgLSB4NCk7XG5cdFx0XHR5MiA9IHkzICsgKHkxIC0geTQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR4MSA9IHAxeDtcblx0XHRcdHkxID0gcDF5O1xuXG5cdFx0XHR4NCA9IHAyeDtcblx0XHRcdHk0ID0gcDJ5O1xuXG5cdFx0XHR4MyA9IHAzeDtcblx0XHRcdHkzID0gcDN5O1xuXG5cdFx0XHR4MiA9IHA0eDtcblx0XHRcdHkyID0gcDR5O1xuXHRcdH1cblxuXHRcdHgxICs9IHdvcmxkT3JpZ2luWDtcblx0XHR5MSArPSB3b3JsZE9yaWdpblk7XG5cdFx0eDIgKz0gd29ybGRPcmlnaW5YO1xuXHRcdHkyICs9IHdvcmxkT3JpZ2luWTtcblx0XHR4MyArPSB3b3JsZE9yaWdpblg7XG5cdFx0eTMgKz0gd29ybGRPcmlnaW5ZO1xuXHRcdHg0ICs9IHdvcmxkT3JpZ2luWDtcblx0XHR5NCArPSB3b3JsZE9yaWdpblk7XG5cblx0XHR2YXIgaSA9IDA7XG5cdFx0cXVhZFtpKytdID0geDE7XG5cdFx0cXVhZFtpKytdID0geTE7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4Mjtcblx0XHRxdWFkW2krK10gPSB5Mjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHgzO1xuXHRcdHF1YWRbaSsrXSA9IHkzO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDQ7XG5cdFx0cXVhZFtpKytdID0geTQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2ldID0gMDtcblx0XHR9XG5cdFx0dGhpcy5iYXRjaGVyLmRyYXcodGV4dHVyZSwgcXVhZCwgUVVBRF9UUklBTkdMRVMpO1xuXHR9XG5cblx0ZHJhd1JlZ2lvbiAocmVnaW9uOiBUZXh0dXJlQXRsYXNSZWdpb24sIHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHk7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSByZWdpb24udTtcblx0XHRxdWFkW2krK10gPSByZWdpb24udjI7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51Mjtcblx0XHRxdWFkW2krK10gPSByZWdpb24udjI7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geSArIGhlaWdodDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51Mjtcblx0XHRxdWFkW2krK10gPSByZWdpb24udjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geSArIGhlaWdodDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51O1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52O1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpXSA9IDA7XG5cdFx0fVxuXHRcdHRoaXMuYmF0Y2hlci5kcmF3KDxHTFRleHR1cmU+cmVnaW9uLnBhZ2UudGV4dHVyZSwgcXVhZCwgUVVBRF9UUklBTkdMRVMpO1xuXHR9XG5cblx0bGluZSAoeDogbnVtYmVyLCB5OiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIGNvbG9yPzogQ29sb3IsIGNvbG9yMj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMubGluZSh4LCB5LCB4MiwgeTIsIGNvbG9yKTtcblx0fVxuXG5cdHRyaWFuZ2xlIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB4MzogbnVtYmVyLCB5MzogbnVtYmVyLCBjb2xvcj86IENvbG9yLCBjb2xvcjI/OiBDb2xvciwgY29sb3IzPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy50cmlhbmdsZShmaWxsZWQsIHgsIHksIHgyLCB5MiwgeDMsIHkzLCBjb2xvciwgY29sb3IyLCBjb2xvcjMpO1xuXHR9XG5cblx0cXVhZCAoZmlsbGVkOiBib29sZWFuLCB4OiBudW1iZXIsIHk6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgeDM6IG51bWJlciwgeTM6IG51bWJlciwgeDQ6IG51bWJlciwgeTQ6IG51bWJlciwgY29sb3I/OiBDb2xvciwgY29sb3IyPzogQ29sb3IsIGNvbG9yMz86IENvbG9yLCBjb2xvcjQ/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5zaGFwZXMpO1xuXHRcdHRoaXMuc2hhcGVzLnF1YWQoZmlsbGVkLCB4LCB5LCB4MiwgeTIsIHgzLCB5MywgeDQsIHk0LCBjb2xvciwgY29sb3IyLCBjb2xvcjMsIGNvbG9yNCk7XG5cdH1cblxuXHRyZWN0IChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5zaGFwZXMpO1xuXHRcdHRoaXMuc2hhcGVzLnJlY3QoZmlsbGVkLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvcik7XG5cdH1cblxuXHRyZWN0TGluZSAoZmlsbGVkOiBib29sZWFuLCB4MTogbnVtYmVyLCB5MTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucmVjdExpbmUoZmlsbGVkLCB4MSwgeTEsIHgyLCB5Miwgd2lkdGgsIGNvbG9yKTtcblx0fVxuXG5cdHBvbHlnb24gKHBvbHlnb25WZXJ0aWNlczogQXJyYXlMaWtlPG51bWJlcj4sIG9mZnNldDogbnVtYmVyLCBjb3VudDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucG9seWdvbihwb2x5Z29uVmVydGljZXMsIG9mZnNldCwgY291bnQsIGNvbG9yKTtcblx0fVxuXG5cdGNpcmNsZSAoZmlsbGVkOiBib29sZWFuLCB4OiBudW1iZXIsIHk6IG51bWJlciwgcmFkaXVzOiBudW1iZXIsIGNvbG9yPzogQ29sb3IsIHNlZ21lbnRzOiBudW1iZXIgPSAwKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMuY2lyY2xlKGZpbGxlZCwgeCwgeSwgcmFkaXVzLCBjb2xvciwgc2VnbWVudHMpO1xuXHR9XG5cblx0Y3VydmUgKHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIGN4MTogbnVtYmVyLCBjeTE6IG51bWJlciwgY3gyOiBudW1iZXIsIGN5MjogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCBzZWdtZW50czogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMuY3VydmUoeDEsIHkxLCBjeDEsIGN5MSwgY3gyLCBjeTIsIHgyLCB5Miwgc2VnbWVudHMsIGNvbG9yKTtcblx0fVxuXG5cdGVuZCAoKSB7XG5cdFx0aWYgKHRoaXMuYWN0aXZlUmVuZGVyZXIgPT09IHRoaXMuYmF0Y2hlcikgdGhpcy5iYXRjaGVyLmVuZCgpO1xuXHRcdGVsc2UgaWYgKHRoaXMuYWN0aXZlUmVuZGVyZXIgPT09IHRoaXMuc2hhcGVzKSB0aGlzLnNoYXBlcy5lbmQoKTtcblx0XHR0aGlzLmFjdGl2ZVJlbmRlcmVyID0gbnVsbDtcblx0fVxuXG5cdHJlc2l6ZSAocmVzaXplTW9kZTogUmVzaXplTW9kZSwgd29ybGRXaWR0aD86IG51bWJlciwgd29ybGRIZWlnaHQ/OiBudW1iZXIpIHtcblx0XHRjb25zdCBjYW52YXMgPSB0aGlzLmNhbnZhcztcblx0XHRjb25zdCBkcHIgPSB0aGlzLmdldFNhZmVEZXZpY2VQaXhlbFJhdGlvKGNhbnZhcy5jbGllbnRXaWR0aCwgY2FudmFzLmNsaWVudEhlaWdodCk7XG5cdFx0dmFyIHcgPSBNYXRoLnJvdW5kKGNhbnZhcy5jbGllbnRXaWR0aCAqIGRwcik7XG5cdFx0dmFyIGggPSBNYXRoLnJvdW5kKGNhbnZhcy5jbGllbnRIZWlnaHQgKiBkcHIpO1xuXHRcdGlmIChjYW52YXMud2lkdGggIT09IHcgfHwgY2FudmFzLmhlaWdodCAhPT0gaCkge1xuXHRcdFx0Y2FudmFzLndpZHRoID0gdztcblx0XHRcdGNhbnZhcy5oZWlnaHQgPSBoO1xuXHRcdH1cblxuXHRcdGlmIChyZXNpemVNb2RlID09PSBSZXNpemVNb2RlLkZpdENsaXAgJiYgd29ybGRXaWR0aCAhPT0gdW5kZWZpbmVkICYmIHdvcmxkSGVpZ2h0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGNvbnN0IHRhcmdldFJhdGlvID0gaCAvIHcsIHNvdXJjZVJhdGlvID0gd29ybGRIZWlnaHQgLyB3b3JsZFdpZHRoO1xuXHRcdFx0Y29uc3Qgc2NhbGUgPSB0YXJnZXRSYXRpbyA+IHNvdXJjZVJhdGlvID8gdyAvIHdvcmxkV2lkdGggOiBoIC8gd29ybGRIZWlnaHQ7XG5cdFx0XHR3b3JsZFdpZHRoICo9IHNjYWxlO1xuXHRcdFx0d29ybGRIZWlnaHQgKj0gc2NhbGU7XG5cdFx0XHR0aGlzLmNhbWVyYS5zZXRWaWV3cG9ydCh3b3JsZFdpZHRoLCB3b3JsZEhlaWdodCk7XG5cdFx0XHR0aGlzLmNvbnRleHQuZ2wudmlld3BvcnQoKHcgLSB3b3JsZFdpZHRoKSAvIDIsIChoIC0gd29ybGRIZWlnaHQpIC8gMiwgd29ybGRXaWR0aCwgd29ybGRIZWlnaHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAocmVzaXplTW9kZSA9PT0gUmVzaXplTW9kZS5GaXQpIHtcblx0XHRcdFx0Y29uc3QgdGFyZ2V0V2lkdGggPSB0aGlzLmNhbWVyYS52aWV3cG9ydFdpZHRoLCB0YXJnZXRIZWlnaHQgPSB0aGlzLmNhbWVyYS52aWV3cG9ydEhlaWdodDtcblx0XHRcdFx0Y29uc3QgdGFyZ2V0UmF0aW8gPSB0YXJnZXRIZWlnaHQgLyB0YXJnZXRXaWR0aCwgc291cmNlUmF0aW8gPSBoIC8gdztcblx0XHRcdFx0Y29uc3Qgc2NhbGUgPSB0YXJnZXRSYXRpbyA8IHNvdXJjZVJhdGlvID8gdGFyZ2V0V2lkdGggLyB3IDogdGFyZ2V0SGVpZ2h0IC8gaDtcblx0XHRcdFx0dGhpcy5jYW1lcmEuc2V0Vmlld3BvcnQodyAqIHNjYWxlLCBoICogc2NhbGUpO1xuXHRcdFx0fSBlbHNlIGlmIChyZXNpemVNb2RlID09PSBSZXNpemVNb2RlLkV4cGFuZClcblx0XHRcdFx0dGhpcy5jYW1lcmEuc2V0Vmlld3BvcnQodywgaCk7XG5cdFx0XHQvLyBOb3RoaW5nIHRvIGRvIGZvciBzdHJldGNoLCB3ZSBzaW1wbHkgYXBwbHkgdGhlIHZpZXdwb3J0IHNpemUgb2YgdGhlIGNhbWVyYS5cblxuXHRcdFx0dGhpcy5jb250ZXh0LmdsLnZpZXdwb3J0KDAsIDAsIHcsIGgpO1xuXHRcdH1cblx0XHR0aGlzLmNhbWVyYS51cGRhdGUoKTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0U2FmZURldmljZVBpeGVsUmF0aW8gKGNzc1dpZHRoOiBudW1iZXIsIGNzc0hlaWdodDogbnVtYmVyKTogbnVtYmVyIHtcblx0XHRjb25zdCBkcHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxO1xuXHRcdGlmIChjc3NXaWR0aCA8PSAwIHx8IGNzc0hlaWdodCA8PSAwKSByZXR1cm4gZHByO1xuXG5cdFx0aWYgKHRoaXMubWF4Q2FudmFzV2lkdGggPT09IDAgfHwgdGhpcy5tYXhDYW52YXNIZWlnaHQgPT09IDApIHtcblx0XHRcdGNvbnN0IGdsID0gdGhpcy5jb250ZXh0LmdsO1xuXHRcdFx0Y29uc3QgbWF4UmVuZGVyYnVmZmVyU2l6ZSA9IGdsLmdldFBhcmFtZXRlcihnbC5NQVhfUkVOREVSQlVGRkVSX1NJWkUpO1xuXHRcdFx0Y29uc3QgbWF4Vmlld3BvcnREaW1zID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9WSUVXUE9SVF9ESU1TKTtcblx0XHRcdHRoaXMubWF4Q2FudmFzV2lkdGggPSBNYXRoLm1pbihtYXhSZW5kZXJidWZmZXJTaXplLCBtYXhWaWV3cG9ydERpbXNbMF0pO1xuXHRcdFx0dGhpcy5tYXhDYW52YXNIZWlnaHQgPSBNYXRoLm1pbihtYXhSZW5kZXJidWZmZXJTaXplLCBtYXhWaWV3cG9ydERpbXNbMV0pO1xuXHRcdH1cblxuXHRcdHJldHVybiBNYXRoLm1pbihkcHIsIHRoaXMubWF4Q2FudmFzV2lkdGggLyBjc3NXaWR0aCwgdGhpcy5tYXhDYW52YXNIZWlnaHQgLyBjc3NIZWlnaHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBlbmFibGVSZW5kZXJlciAocmVuZGVyZXI6IFBvbHlnb25CYXRjaGVyIHwgU2hhcGVSZW5kZXJlciB8IFNrZWxldG9uRGVidWdSZW5kZXJlcikge1xuXHRcdGlmICh0aGlzLmFjdGl2ZVJlbmRlcmVyID09PSByZW5kZXJlcikgcmV0dXJuO1xuXHRcdHRoaXMuZW5kKCk7XG5cdFx0aWYgKHJlbmRlcmVyIGluc3RhbmNlb2YgUG9seWdvbkJhdGNoZXIpIHtcblx0XHRcdHRoaXMuYmF0Y2hlclNoYWRlci5iaW5kKCk7XG5cdFx0XHR0aGlzLmJhdGNoZXJTaGFkZXIuc2V0VW5pZm9ybTR4NGYoU2hhZGVyLk1WUF9NQVRSSVgsIHRoaXMuY2FtZXJhLnByb2plY3Rpb25WaWV3LnZhbHVlcyk7XG5cdFx0XHR0aGlzLmJhdGNoZXJTaGFkZXIuc2V0VW5pZm9ybWkoXCJ1X3RleHR1cmVcIiwgMCk7XG5cdFx0XHR0aGlzLmJhdGNoZXIuYmVnaW4odGhpcy5iYXRjaGVyU2hhZGVyKTtcblx0XHRcdHRoaXMuYWN0aXZlUmVuZGVyZXIgPSB0aGlzLmJhdGNoZXI7XG5cdFx0fSBlbHNlIGlmIChyZW5kZXJlciBpbnN0YW5jZW9mIFNoYXBlUmVuZGVyZXIpIHtcblx0XHRcdHRoaXMuc2hhcGVzU2hhZGVyLmJpbmQoKTtcblx0XHRcdHRoaXMuc2hhcGVzU2hhZGVyLnNldFVuaWZvcm00eDRmKFNoYWRlci5NVlBfTUFUUklYLCB0aGlzLmNhbWVyYS5wcm9qZWN0aW9uVmlldy52YWx1ZXMpO1xuXHRcdFx0dGhpcy5zaGFwZXMuYmVnaW4odGhpcy5zaGFwZXNTaGFkZXIpO1xuXHRcdFx0dGhpcy5hY3RpdmVSZW5kZXJlciA9IHRoaXMuc2hhcGVzO1xuXHRcdH0gZWxzZVxuXHRcdFx0dGhpcy5hY3RpdmVSZW5kZXJlciA9IHRoaXMuc2tlbGV0b25EZWJ1Z1JlbmRlcmVyO1xuXHR9XG59XG5cbmV4cG9ydCBlbnVtIFJlc2l6ZU1vZGUge1xuXHRTdHJldGNoLFxuXHRFeHBhbmQsXG5cdEZpdCxcblx0Rml0Q2xpcCxcbn1cbiJdfQ==
|
package/dist/Shader.d.ts
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
27
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
|
-
import { Disposable, Restorable } from "@esotericsoftware/spine-core";
|
|
29
|
+
import type { Disposable, Restorable } from "@esotericsoftware/spine-core";
|
|
30
30
|
import { ManagedWebGLRenderingContext } from "./WebGL.js";
|
|
31
31
|
export declare class Shader implements Disposable, Restorable {
|
|
32
32
|
private vertexShader;
|