@merchi/product-form 1.19.41 → 1.19.43
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/lib/components/DropzoneInput.js +7 -9
- package/lib/components/VariationEmbroideryInput.js +304 -85
- package/lib/styles/globals.css +133 -0
- package/lib/styles/globals.css.map +1 -1
- package/lib/styles/globals.scss +133 -0
- package/lib/utils/embroidery.d.ts +16 -0
- package/lib/utils/embroidery.js +48 -1
- package/package.json +2 -2
|
@@ -30,16 +30,99 @@ import InputHiddenStatic from './InputHiddenStatic';
|
|
|
30
30
|
import VariationError from './VariationError';
|
|
31
31
|
import VariationLabel from './VariationLabel';
|
|
32
32
|
import { useMerchiFormContext } from '../context/MerchiProductFormProvider';
|
|
33
|
-
import { embroideryQualityWarning, embroideryValueJson, parseEmbroideryValue } from '../utils/embroidery';
|
|
33
|
+
import { embroideryHex, embroideryQualityWarning, embroideryValueJson, fitEmbroiderySize, parseEmbroideryValue } from '../utils/embroidery';
|
|
34
34
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
35
|
+
function hexChannels(value) {
|
|
36
|
+
var hex = embroideryHex(value).slice(1);
|
|
37
|
+
return [parseInt(hex.slice(0, 2), 16), parseInt(hex.slice(2, 4), 16), parseInt(hex.slice(4, 6), 16)];
|
|
38
|
+
}
|
|
39
|
+
function EmbroideryColourPreview(_ref) {
|
|
40
|
+
var src = _ref.src,
|
|
41
|
+
sourceColours = _ref.sourceColours,
|
|
42
|
+
threadColours = _ref.threadColours;
|
|
43
|
+
var canvasRef = useRef(null);
|
|
44
|
+
var _useState = useState(false),
|
|
45
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
46
|
+
failed = _useState2[0],
|
|
47
|
+
setFailed = _useState2[1];
|
|
48
|
+
var sourceKey = sourceColours.join('|');
|
|
49
|
+
var threadKey = threadColours.join('|');
|
|
50
|
+
useEffect(function () {
|
|
51
|
+
var canvas = canvasRef.current;
|
|
52
|
+
if (!canvas || !src || !sourceColours.length || !threadColours.length) return;
|
|
53
|
+
var cancelled = false;
|
|
54
|
+
setFailed(false);
|
|
55
|
+
var image = new Image();
|
|
56
|
+
image.crossOrigin = 'anonymous';
|
|
57
|
+
image.onload = function () {
|
|
58
|
+
if (cancelled) return;
|
|
59
|
+
var maxEdge = 220;
|
|
60
|
+
var scale = Math.min(maxEdge / image.width, maxEdge / image.height, 1);
|
|
61
|
+
var width = Math.max(1, Math.round(image.width * scale));
|
|
62
|
+
var height = Math.max(1, Math.round(image.height * scale));
|
|
63
|
+
canvas.width = width;
|
|
64
|
+
canvas.height = height;
|
|
65
|
+
var context = canvas.getContext('2d', {
|
|
66
|
+
willReadFrequently: true
|
|
67
|
+
});
|
|
68
|
+
if (!context) return;
|
|
69
|
+
context.clearRect(0, 0, width, height);
|
|
70
|
+
context.drawImage(image, 0, 0, width, height);
|
|
71
|
+
try {
|
|
72
|
+
var frame = context.getImageData(0, 0, width, height);
|
|
73
|
+
var pixels = frame.data;
|
|
74
|
+
var sources = sourceColours.map(hexChannels);
|
|
75
|
+
var threads = threadColours.map(hexChannels);
|
|
76
|
+
for (var index = 0; index < pixels.length; index += 4) {
|
|
77
|
+
if (pixels[index + 3] < 16) continue;
|
|
78
|
+
var nearest = 0;
|
|
79
|
+
var nearestDistance = Number.POSITIVE_INFINITY;
|
|
80
|
+
for (var colourIndex = 0; colourIndex < sources.length; colourIndex += 1) {
|
|
81
|
+
var channel = sources[colourIndex];
|
|
82
|
+
var distance = Math.pow(pixels[index] - channel[0], 2) + Math.pow(pixels[index + 1] - channel[1], 2) + Math.pow(pixels[index + 2] - channel[2], 2);
|
|
83
|
+
if (distance < nearestDistance) {
|
|
84
|
+
nearest = colourIndex;
|
|
85
|
+
nearestDistance = distance;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
var thread = threads[nearest] || threads[threads.length - 1];
|
|
89
|
+
pixels[index] = thread[0];
|
|
90
|
+
pixels[index + 1] = thread[1];
|
|
91
|
+
pixels[index + 2] = thread[2];
|
|
92
|
+
pixels[index + 3] = 255;
|
|
93
|
+
}
|
|
94
|
+
context.putImageData(frame, 0, 0);
|
|
95
|
+
} catch (_unused) {
|
|
96
|
+
if (!cancelled) setFailed(true);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
image.onerror = function () {
|
|
100
|
+
if (!cancelled) setFailed(true);
|
|
101
|
+
};
|
|
102
|
+
image.src = src;
|
|
103
|
+
return function () {
|
|
104
|
+
cancelled = true;
|
|
105
|
+
};
|
|
106
|
+
}, [src, sourceKey, threadKey, sourceColours, threadColours]);
|
|
107
|
+
if (failed) {
|
|
108
|
+
return /*#__PURE__*/_jsx("p", {
|
|
109
|
+
className: "merchi-embroidery-preview-note",
|
|
110
|
+
children: "Colour preview unavailable"
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return /*#__PURE__*/_jsx("canvas", {
|
|
114
|
+
ref: canvasRef,
|
|
115
|
+
"aria-label": "Embroidery colour preview"
|
|
116
|
+
});
|
|
117
|
+
}
|
|
35
118
|
function sizeText(value) {
|
|
36
119
|
return value != null && Number(value) > 0 ? String(value) : '';
|
|
37
120
|
}
|
|
38
|
-
function VariationEmbroideryInput(
|
|
39
|
-
var _saved$colours;
|
|
40
|
-
var disabled =
|
|
41
|
-
name =
|
|
42
|
-
variation =
|
|
121
|
+
function VariationEmbroideryInput(_ref2) {
|
|
122
|
+
var _saved$colours, _saved$sourceColours2, _saved$colours2, _saved$sourceColours3;
|
|
123
|
+
var disabled = _ref2.disabled,
|
|
124
|
+
name = _ref2.name,
|
|
125
|
+
variation = _ref2.variation;
|
|
43
126
|
var _useMerchiFormContext = useMerchiFormContext(),
|
|
44
127
|
apiUrl = _useMerchiFormContext.apiUrl,
|
|
45
128
|
classNameFileUploadContainer = _useMerchiFormContext.classNameFileUploadContainer,
|
|
@@ -52,33 +135,43 @@ function VariationEmbroideryInput(_ref) {
|
|
|
52
135
|
watch = hookForm.watch;
|
|
53
136
|
var variationField = variation.variationField || {};
|
|
54
137
|
var fileMode = variationField.embroideryInputMode !== 'text';
|
|
138
|
+
var ratioLocked = variationField.aspectRatioLock == null ? true : Boolean(variationField.aspectRatioLock);
|
|
139
|
+
var maxWidth = Number(variationField.widthFieldMax) > 0 ? Number(variationField.widthFieldMax) : null;
|
|
140
|
+
var maxHeight = Number(variationField.heightFieldMax) > 0 ? Number(variationField.heightFieldMax) : null;
|
|
55
141
|
var maxColours = Number(variationField.maxColours) > 0 ? Number(variationField.maxColours) : 4;
|
|
56
142
|
var saved = parseEmbroideryValue(watch("".concat(name, ".value"))) || {};
|
|
57
|
-
var
|
|
58
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
59
|
-
wording = _useState2[0],
|
|
60
|
-
setWording = _useState2[1];
|
|
61
|
-
var _useState3 = useState(sizeText(saved.widthMm)),
|
|
143
|
+
var _useState3 = useState(saved.text || ''),
|
|
62
144
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
var _useState5 = useState(sizeText(saved.
|
|
145
|
+
wording = _useState4[0],
|
|
146
|
+
setWording = _useState4[1];
|
|
147
|
+
var _useState5 = useState(sizeText(saved.widthMm)),
|
|
66
148
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
var _useState7 = useState((
|
|
149
|
+
width = _useState6[0],
|
|
150
|
+
setWidth = _useState6[1];
|
|
151
|
+
var _useState7 = useState(sizeText(saved.heightMm)),
|
|
70
152
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
var _useState9 = useState(
|
|
153
|
+
height = _useState8[0],
|
|
154
|
+
setHeight = _useState8[1];
|
|
155
|
+
var _useState9 = useState((_saved$colours = saved.colours) !== null && _saved$colours !== void 0 && _saved$colours.length ? saved.colours : ['#111111']),
|
|
74
156
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
var _useState1 = useState(
|
|
157
|
+
colours = _useState0[0],
|
|
158
|
+
setColours = _useState0[1];
|
|
159
|
+
var _useState1 = useState(false),
|
|
78
160
|
_useState10 = _slicedToArray(_useState1, 2),
|
|
79
|
-
|
|
80
|
-
|
|
161
|
+
measuring = _useState10[0],
|
|
162
|
+
setMeasuring = _useState10[1];
|
|
163
|
+
var _useState11 = useState(null),
|
|
164
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
165
|
+
error = _useState12[0],
|
|
166
|
+
setError = _useState12[1];
|
|
81
167
|
var requestId = useRef(0);
|
|
168
|
+
var editingAxis = useRef(null);
|
|
169
|
+
var editVersion = useRef(0);
|
|
170
|
+
var widthRef = useRef(width);
|
|
171
|
+
var heightRef = useRef(height);
|
|
172
|
+
var fileColourKey = useRef(null);
|
|
173
|
+
widthRef.current = width;
|
|
174
|
+
heightRef.current = height;
|
|
82
175
|
var filesName = "".concat(name, ".variationFiles");
|
|
83
176
|
var _useFieldArray = useFieldArray({
|
|
84
177
|
control: control,
|
|
@@ -89,6 +182,20 @@ function VariationEmbroideryInput(_ref) {
|
|
|
89
182
|
fields = _useFieldArray.fields,
|
|
90
183
|
remove = _useFieldArray.remove;
|
|
91
184
|
var file = fields[0];
|
|
185
|
+
var artworkUrl = (file === null || file === void 0 ? void 0 : file.viewUrl) || (file === null || file === void 0 ? void 0 : file.cachedViewUrl) || '';
|
|
186
|
+
var seenFileId = useRef(null);
|
|
187
|
+
useEffect(function () {
|
|
188
|
+
var _saved$sourceColours;
|
|
189
|
+
var id = file !== null && file !== void 0 && file.id ? String(file.id) : null;
|
|
190
|
+
if (seenFileId.current && id && seenFileId.current !== id) {
|
|
191
|
+
fileColourKey.current = null;
|
|
192
|
+
} else if (!seenFileId.current && id && (_saved$sourceColours = saved.sourceColours) !== null && _saved$sourceColours !== void 0 && _saved$sourceColours.length) {
|
|
193
|
+
fileColourKey.current = id;
|
|
194
|
+
}
|
|
195
|
+
seenFileId.current = id;
|
|
196
|
+
}, [file === null || file === void 0 ? void 0 : file.id, (_saved$sourceColours2 = saved.sourceColours) === null || _saved$sourceColours2 === void 0 ? void 0 : _saved$sourceColours2.length]);
|
|
197
|
+
var threadColours = ((_saved$colours2 = saved.colours) !== null && _saved$colours2 !== void 0 && _saved$colours2.length ? saved.colours : saved.sourceColours || []).map(embroideryHex);
|
|
198
|
+
var sourceColours = ((_saved$sourceColours3 = saved.sourceColours) !== null && _saved$sourceColours3 !== void 0 && _saved$sourceColours3.length ? saved.sourceColours : threadColours).map(embroideryHex);
|
|
92
199
|
var draft = _objectSpread(_objectSpread({}, saved), {}, {
|
|
93
200
|
text: fileMode ? saved.text : wording,
|
|
94
201
|
widthMm: Number(width) || undefined,
|
|
@@ -100,10 +207,10 @@ function VariationEmbroideryInput(_ref) {
|
|
|
100
207
|
useEffect(function () {
|
|
101
208
|
var parsed = parseEmbroideryValue(watchedValue);
|
|
102
209
|
if (!parsed) return;
|
|
103
|
-
if (parsed.widthMm && String(parsed.widthMm) !== width) {
|
|
210
|
+
if (editingAxis.current !== 'width' && parsed.widthMm && String(parsed.widthMm) !== width) {
|
|
104
211
|
setWidth(String(parsed.widthMm));
|
|
105
212
|
}
|
|
106
|
-
if (parsed.heightMm && String(parsed.heightMm) !== height) {
|
|
213
|
+
if (editingAxis.current !== 'height' && parsed.heightMm && String(parsed.heightMm) !== height) {
|
|
107
214
|
setHeight(String(parsed.heightMm));
|
|
108
215
|
}
|
|
109
216
|
// Draft resizes write the form value. Don't depend on local size or this
|
|
@@ -120,8 +227,8 @@ function VariationEmbroideryInput(_ref) {
|
|
|
120
227
|
});
|
|
121
228
|
};
|
|
122
229
|
var measure = /*#__PURE__*/function () {
|
|
123
|
-
var
|
|
124
|
-
var fieldId, current, base, response, data,
|
|
230
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(next, fileId) {
|
|
231
|
+
var fieldId, current, version, _next$sourceColours, base, response, data, editing, measuredWidth, measuredHeight, extracted, keepThreads, merged, _t;
|
|
125
232
|
return _regenerator().w(function (_context) {
|
|
126
233
|
while (1) switch (_context.p = _context.n) {
|
|
127
234
|
case 0:
|
|
@@ -133,6 +240,7 @@ function VariationEmbroideryInput(_ref) {
|
|
|
133
240
|
return _context.a(2);
|
|
134
241
|
case 1:
|
|
135
242
|
current = ++requestId.current;
|
|
243
|
+
version = editVersion.current;
|
|
136
244
|
setMeasuring(true);
|
|
137
245
|
setError(null);
|
|
138
246
|
_context.p = 2;
|
|
@@ -163,24 +271,31 @@ function VariationEmbroideryInput(_ref) {
|
|
|
163
271
|
return response.json();
|
|
164
272
|
case 5:
|
|
165
273
|
data = _context.v;
|
|
166
|
-
if (!(current !== requestId.current)) {
|
|
274
|
+
if (!(current !== requestId.current || version !== editVersion.current)) {
|
|
167
275
|
_context.n = 6;
|
|
168
276
|
break;
|
|
169
277
|
}
|
|
170
278
|
return _context.a(2);
|
|
171
279
|
case 6:
|
|
280
|
+
editing = editingAxis.current;
|
|
281
|
+
measuredWidth = data.widthMm || data.measuredWidthMm;
|
|
282
|
+
measuredHeight = data.heightMm || data.measuredHeightMm;
|
|
283
|
+
extracted = (data.colours || []).map(embroideryHex);
|
|
284
|
+
keepThreads = Boolean(fileId && ((_next$sourceColours = next.sourceColours) === null || _next$sourceColours === void 0 ? void 0 : _next$sourceColours.length) && fileColourKey.current === String(fileId));
|
|
285
|
+
if (!keepThreads && extracted.length && fileId) {
|
|
286
|
+
fileColourKey.current = String(fileId);
|
|
287
|
+
}
|
|
172
288
|
merged = _objectSpread(_objectSpread({}, next), {}, {
|
|
173
|
-
|
|
289
|
+
sourceColours: keepThreads ? next.sourceColours : extracted.length ? extracted : next.sourceColours,
|
|
290
|
+
colours: keepThreads ? next.colours : extracted.length ? extracted : next.colours,
|
|
174
291
|
coverage: data.coverage,
|
|
175
292
|
pixelWidth: data.pixelWidth || next.pixelWidth,
|
|
176
293
|
pixelHeight: data.pixelHeight || next.pixelHeight,
|
|
177
|
-
widthMm: next.widthMm
|
|
178
|
-
heightMm: next.heightMm
|
|
294
|
+
widthMm: editing === 'width' ? next.widthMm : measuredWidth || next.widthMm,
|
|
295
|
+
heightMm: editing === 'height' ? next.heightMm : measuredHeight || next.heightMm
|
|
179
296
|
});
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
if (!next.widthMm && measuredWidth) setWidth(String(measuredWidth));
|
|
183
|
-
if (!next.heightMm && measuredHeight) setHeight(String(measuredHeight));
|
|
297
|
+
if (editing !== 'width' && measuredWidth) setWidth(String(measuredWidth));
|
|
298
|
+
if (editing !== 'height' && measuredHeight) setHeight(String(measuredHeight));
|
|
184
299
|
writeValue(merged);
|
|
185
300
|
_context.n = 8;
|
|
186
301
|
break;
|
|
@@ -200,7 +315,7 @@ function VariationEmbroideryInput(_ref) {
|
|
|
200
315
|
}, _callee, null, [[2, 7, 8, 9]]);
|
|
201
316
|
}));
|
|
202
317
|
return function measure(_x, _x2) {
|
|
203
|
-
return
|
|
318
|
+
return _ref3.apply(this, arguments);
|
|
204
319
|
};
|
|
205
320
|
}();
|
|
206
321
|
useEffect(function () {
|
|
@@ -219,13 +334,92 @@ function VariationEmbroideryInput(_ref) {
|
|
|
219
334
|
// Re-measure when the design or size changes. `draft` is derived each render.
|
|
220
335
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
221
336
|
}, [wording, width, height, colours.join('|'), file === null || file === void 0 ? void 0 : file.id, fileMode]);
|
|
337
|
+
var sizeRatio = function sizeRatio() {
|
|
338
|
+
var pixelWidth = Number(saved.pixelWidth);
|
|
339
|
+
var pixelHeight = Number(saved.pixelHeight);
|
|
340
|
+
if (pixelWidth > 0 && pixelHeight > 0) return pixelWidth / pixelHeight;
|
|
341
|
+
var configured = Number(variationField.aspectRatio);
|
|
342
|
+
if (configured > 0) return configured;
|
|
343
|
+
var currentWidth = Number(width);
|
|
344
|
+
var currentHeight = Number(height);
|
|
345
|
+
if (currentWidth > 0 && currentHeight > 0) return currentWidth / currentHeight;
|
|
346
|
+
return null;
|
|
347
|
+
};
|
|
222
348
|
var updateSize = function updateSize(axis, raw) {
|
|
223
|
-
if (
|
|
349
|
+
if (raw !== '' && !/^\d*\.?\d*$/.test(raw)) return;
|
|
350
|
+
editVersion.current += 1;
|
|
351
|
+
editingAxis.current = axis;
|
|
352
|
+
if (axis === 'width') {
|
|
353
|
+
widthRef.current = raw;
|
|
354
|
+
setWidth(raw);
|
|
355
|
+
} else {
|
|
356
|
+
heightRef.current = raw;
|
|
357
|
+
setHeight(raw);
|
|
358
|
+
}
|
|
359
|
+
var typed = Number(raw);
|
|
360
|
+
var ratio = sizeRatio();
|
|
361
|
+
var widthMm = axis === 'width' ? Number.isFinite(typed) && typed > 0 ? typed : undefined : Number(widthRef.current) || undefined;
|
|
362
|
+
var heightMm = axis === 'height' ? Number.isFinite(typed) && typed > 0 ? typed : undefined : Number(heightRef.current) || undefined;
|
|
363
|
+
if (ratioLocked && ratio && typed > 0) {
|
|
364
|
+
if (axis === 'width') {
|
|
365
|
+
heightMm = Math.round(typed / ratio * 10) / 10;
|
|
366
|
+
heightRef.current = String(heightMm);
|
|
367
|
+
setHeight(heightRef.current);
|
|
368
|
+
} else {
|
|
369
|
+
widthMm = Math.round(typed * ratio * 10) / 10;
|
|
370
|
+
widthRef.current = String(widthMm);
|
|
371
|
+
setWidth(widthRef.current);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
224
374
|
writeValue(_objectSpread(_objectSpread({}, draft), {}, {
|
|
225
|
-
widthMm:
|
|
226
|
-
heightMm:
|
|
375
|
+
widthMm: widthMm,
|
|
376
|
+
heightMm: heightMm
|
|
227
377
|
}), false);
|
|
228
378
|
};
|
|
379
|
+
var commitSize = function commitSize(axis) {
|
|
380
|
+
editVersion.current += 1;
|
|
381
|
+
editingAxis.current = null;
|
|
382
|
+
var fitted = fitEmbroiderySize({
|
|
383
|
+
width: Number(widthRef.current) || undefined,
|
|
384
|
+
height: Number(heightRef.current) || undefined,
|
|
385
|
+
changed: axis,
|
|
386
|
+
maxWidth: maxWidth,
|
|
387
|
+
maxHeight: maxHeight,
|
|
388
|
+
lock: ratioLocked,
|
|
389
|
+
ratio: sizeRatio()
|
|
390
|
+
});
|
|
391
|
+
var nextWidth = fitted.width ? String(fitted.width) : '';
|
|
392
|
+
var nextHeight = fitted.height ? String(fitted.height) : '';
|
|
393
|
+
widthRef.current = nextWidth;
|
|
394
|
+
heightRef.current = nextHeight;
|
|
395
|
+
setWidth(nextWidth);
|
|
396
|
+
setHeight(nextHeight);
|
|
397
|
+
writeValue(_objectSpread(_objectSpread({}, draft), {}, {
|
|
398
|
+
widthMm: fitted.width,
|
|
399
|
+
heightMm: fitted.height
|
|
400
|
+
}));
|
|
401
|
+
};
|
|
402
|
+
var writeThreads = function writeThreads(nextThreads, nextSources) {
|
|
403
|
+
var quote = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
404
|
+
writeValue(_objectSpread(_objectSpread({}, draft), {}, {
|
|
405
|
+
colours: nextThreads.map(embroideryHex),
|
|
406
|
+
sourceColours: nextSources.map(embroideryHex)
|
|
407
|
+
}), quote);
|
|
408
|
+
};
|
|
409
|
+
var changeThread = function changeThread(index, hex) {
|
|
410
|
+
var quote = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
411
|
+
var nextThreads = threadColours.slice();
|
|
412
|
+
nextThreads[index] = embroideryHex(hex);
|
|
413
|
+
writeThreads(nextThreads, sourceColours.slice(0, nextThreads.length), quote);
|
|
414
|
+
};
|
|
415
|
+
var removeThread = function removeThread(index) {
|
|
416
|
+
if (threadColours.length <= 1) return;
|
|
417
|
+
writeThreads(threadColours.filter(function (_, colourIndex) {
|
|
418
|
+
return colourIndex !== index;
|
|
419
|
+
}), sourceColours.filter(function (_, colourIndex) {
|
|
420
|
+
return colourIndex !== index;
|
|
421
|
+
}));
|
|
422
|
+
};
|
|
229
423
|
return /*#__PURE__*/_jsxs("div", {
|
|
230
424
|
className: classNameFileUploadContainer,
|
|
231
425
|
children: [/*#__PURE__*/_jsx(VariationLabel, {
|
|
@@ -250,18 +444,22 @@ function VariationEmbroideryInput(_ref) {
|
|
|
250
444
|
gap: 8
|
|
251
445
|
},
|
|
252
446
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
447
|
+
className: "merchi-embroidery-previews",
|
|
448
|
+
children: [/*#__PURE__*/_jsxs("figure", {
|
|
449
|
+
children: [artworkUrl ? /*#__PURE__*/_jsx("img", {
|
|
450
|
+
alt: file.name || 'Original artwork',
|
|
451
|
+
src: artworkUrl
|
|
452
|
+
}) : null, /*#__PURE__*/_jsx("figcaption", {
|
|
453
|
+
children: "Original"
|
|
454
|
+
})]
|
|
455
|
+
}), artworkUrl && sourceColours.length && threadColours.length ? /*#__PURE__*/_jsxs("figure", {
|
|
456
|
+
children: [/*#__PURE__*/_jsx(EmbroideryColourPreview, {
|
|
457
|
+
src: artworkUrl,
|
|
458
|
+
sourceColours: sourceColours,
|
|
459
|
+
threadColours: threadColours
|
|
460
|
+
}), /*#__PURE__*/_jsx("figcaption", {
|
|
461
|
+
children: "Embroidery"
|
|
462
|
+
})]
|
|
265
463
|
}) : null, /*#__PURE__*/_jsx("button", {
|
|
266
464
|
type: "button",
|
|
267
465
|
"aria-label": "Remove artwork",
|
|
@@ -269,39 +467,56 @@ function VariationEmbroideryInput(_ref) {
|
|
|
269
467
|
onClick: function onClick(event) {
|
|
270
468
|
event.stopPropagation();
|
|
271
469
|
event.preventDefault();
|
|
470
|
+
fileColourKey.current = null;
|
|
272
471
|
remove(0);
|
|
273
472
|
},
|
|
274
|
-
style: {
|
|
275
|
-
position: 'absolute',
|
|
276
|
-
top: 0,
|
|
277
|
-
right: -28
|
|
278
|
-
},
|
|
279
473
|
children: /*#__PURE__*/_jsx(FaTimes, {
|
|
280
474
|
className: "close-icon"
|
|
281
475
|
})
|
|
282
476
|
})]
|
|
283
477
|
}), /*#__PURE__*/_jsxs("div", {
|
|
478
|
+
className: "merchi-embroidery-measure",
|
|
284
479
|
style: {
|
|
285
480
|
fontSize: 12
|
|
286
481
|
},
|
|
287
|
-
children: [
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
482
|
+
children: [measuring ? /*#__PURE__*/_jsx(CgSpinner, {
|
|
483
|
+
className: "animate_spin",
|
|
484
|
+
"aria-hidden": true
|
|
485
|
+
}) : null, width ? "".concat(width, " mm wide") : 'Measuring width…', ' · ', height ? "".concat(height, " mm high") : 'Measuring height…']
|
|
486
|
+
}), threadColours.length > 0 ? /*#__PURE__*/_jsx("div", {
|
|
487
|
+
className: "merchi-embroidery-threads",
|
|
488
|
+
onClick: function onClick(event) {
|
|
489
|
+
return event.stopPropagation();
|
|
490
|
+
},
|
|
491
|
+
onMouseDown: function onMouseDown(event) {
|
|
492
|
+
return event.stopPropagation();
|
|
292
493
|
},
|
|
293
|
-
children:
|
|
294
|
-
return /*#__PURE__*/
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
494
|
+
children: threadColours.map(function (colour, index) {
|
|
495
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
496
|
+
className: "merchi-embroidery-thread",
|
|
497
|
+
children: [/*#__PURE__*/_jsx("input", {
|
|
498
|
+
type: "color",
|
|
499
|
+
"aria-label": "Thread colour ".concat(index + 1),
|
|
500
|
+
disabled: disabled,
|
|
501
|
+
value: colour,
|
|
502
|
+
onChange: function onChange(event) {
|
|
503
|
+
return changeThread(index, event.target.value);
|
|
504
|
+
},
|
|
505
|
+
onBlur: function onBlur(event) {
|
|
506
|
+
return changeThread(index, event.target.value, true);
|
|
507
|
+
}
|
|
508
|
+
}), /*#__PURE__*/_jsx("button", {
|
|
509
|
+
type: "button",
|
|
510
|
+
"aria-label": "Remove colour ".concat(colour),
|
|
511
|
+
disabled: disabled || threadColours.length <= 1,
|
|
512
|
+
onClick: function onClick(event) {
|
|
513
|
+
event.stopPropagation();
|
|
514
|
+
event.preventDefault();
|
|
515
|
+
removeThread(index);
|
|
516
|
+
},
|
|
517
|
+
children: /*#__PURE__*/_jsx(FaTimes, {})
|
|
518
|
+
})]
|
|
519
|
+
}, "".concat(sourceColours[index] || colour, "-").concat(index));
|
|
305
520
|
})
|
|
306
521
|
}) : null, warning ? /*#__PURE__*/_jsx("div", {
|
|
307
522
|
className: "text-danger",
|
|
@@ -373,14 +588,17 @@ function VariationEmbroideryInput(_ref) {
|
|
|
373
588
|
},
|
|
374
589
|
children: "Width (mm)"
|
|
375
590
|
}), /*#__PURE__*/_jsx("input", {
|
|
376
|
-
className: "form-control",
|
|
377
|
-
type: "
|
|
378
|
-
|
|
591
|
+
className: "form-control merchi-embroidery-size-input",
|
|
592
|
+
type: "text",
|
|
593
|
+
inputMode: "decimal",
|
|
379
594
|
disabled: disabled,
|
|
380
595
|
placeholder: "Width (mm)",
|
|
381
596
|
value: width,
|
|
382
597
|
onChange: function onChange(event) {
|
|
383
598
|
return updateSize('width', event.target.value);
|
|
599
|
+
},
|
|
600
|
+
onBlur: function onBlur() {
|
|
601
|
+
return commitSize('width');
|
|
384
602
|
}
|
|
385
603
|
})]
|
|
386
604
|
}), /*#__PURE__*/_jsxs("label", {
|
|
@@ -394,20 +612,21 @@ function VariationEmbroideryInput(_ref) {
|
|
|
394
612
|
},
|
|
395
613
|
children: "Height (mm)"
|
|
396
614
|
}), /*#__PURE__*/_jsx("input", {
|
|
397
|
-
className: "form-control",
|
|
398
|
-
type: "
|
|
399
|
-
|
|
615
|
+
className: "form-control merchi-embroidery-size-input",
|
|
616
|
+
type: "text",
|
|
617
|
+
inputMode: "decimal",
|
|
400
618
|
disabled: disabled,
|
|
401
619
|
placeholder: "Height (mm)",
|
|
402
620
|
value: height,
|
|
403
621
|
onChange: function onChange(event) {
|
|
404
622
|
return updateSize('height', event.target.value);
|
|
623
|
+
},
|
|
624
|
+
onBlur: function onBlur() {
|
|
625
|
+
return commitSize('height');
|
|
405
626
|
}
|
|
406
627
|
})]
|
|
407
628
|
})]
|
|
408
|
-
}),
|
|
409
|
-
className: "animate_spin"
|
|
410
|
-
}) : null, error ? /*#__PURE__*/_jsx("div", {
|
|
629
|
+
}), error ? /*#__PURE__*/_jsx("div", {
|
|
411
630
|
className: "text-danger",
|
|
412
631
|
children: error
|
|
413
632
|
}) : null, /*#__PURE__*/_jsx(VariationError, {
|
|
@@ -416,4 +635,4 @@ function VariationEmbroideryInput(_ref) {
|
|
|
416
635
|
});
|
|
417
636
|
}
|
|
418
637
|
export default VariationEmbroideryInput;
|
|
419
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9yZWdlbmVyYXRvciIsImUiLCJ0IiwibiIsInRvU3RyaW5nVGFnIiwiaSIsImMiLCJHZW5lcmF0b3IiLCJ1IiwiT2JqZWN0IiwiY3JlYXRlIiwiX3JlZ2VuZXJhdG9yRGVmaW5lMiIsImYiLCJwIiwieSIsIkciLCJ2IiwiYSIsImQiLCJiaW5kIiwibGVuZ3RoIiwibCIsImNhbGwiLCJkb25lIiwidmFsdWUiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiZ2V0UHJvdG90eXBlT2YiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImRpc3BsYXlOYW1lIiwidyIsIm0iLCJkZWZpbmVQcm9wZXJ0eSIsIl9yZWdlbmVyYXRvckRlZmluZSIsIl9pbnZva2UiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX25vbkl0ZXJhYmxlUmVzdCIsInRvU3RyaW5nIiwic2xpY2UiLCJuYW1lIiwidGVzdCIsIm5leHQiLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlRmllbGRBcnJheSIsIkZhVGltZXMiLCJDZ1NwaW5uZXIiLCJEcm9wem9uZUlucHV0IiwiSW5wdXRIaWRkZW5TdGF0aWMiLCJWYXJpYXRpb25FcnJvciIsIlZhcmlhdGlvbkxhYmVsIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJlbWJyb2lkZXJ5UXVhbGl0eVdhcm5pbmciLCJlbWJyb2lkZXJ5VmFsdWVKc29uIiwicGFyc2VFbWJyb2lkZXJ5VmFsdWUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJzaXplVGV4dCIsIlZhcmlhdGlvbkVtYnJvaWRlcnlJbnB1dCIsIl9yZWYiLCJfc2F2ZWQkY29sb3VycyIsImRpc2FibGVkIiwidmFyaWF0aW9uIiwiX3VzZU1lcmNoaUZvcm1Db250ZXh0IiwiYXBpVXJsIiwiY2xhc3NOYW1lRmlsZVVwbG9hZENvbnRhaW5lciIsImNsYXNzTmFtZUZpbGVQcmV2aWV3Q29udGFpbmVyIiwiY2xhc3NOYW1lRmlsZVByZXZpZXdJY29uV3JhcHBlciIsImNvbnRyb2wiLCJnZXRRdW90ZSIsImhvb2tGb3JtIiwic2V0VmFsdWUiLCJ3YXRjaCIsInZhcmlhdGlvbkZpZWxkIiwiZmlsZU1vZGUiLCJlbWJyb2lkZXJ5SW5wdXRNb2RlIiwibWF4Q29sb3VycyIsInNhdmVkIiwiY29uY2F0IiwiX3VzZVN0YXRlIiwidGV4dCIsIl91c2VTdGF0ZTIiLCJ3b3JkaW5nIiwic2V0V29yZGluZyIsIl91c2VTdGF0ZTMiLCJ3aWR0aE1tIiwiX3VzZVN0YXRlNCIsIndpZHRoIiwic2V0V2lkdGgiLCJfdXNlU3RhdGU1IiwiaGVpZ2h0TW0iLCJfdXNlU3RhdGU2IiwiaGVpZ2h0Iiwic2V0SGVpZ2h0IiwiX3VzZVN0YXRlNyIsImNvbG91cnMiLCJfdXNlU3RhdGU4Iiwic2V0Q29sb3VycyIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwibWVhc3VyaW5nIiwic2V0TWVhc3VyaW5nIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwiZXJyb3IiLCJzZXRFcnJvciIsInJlcXVlc3RJZCIsImZpbGVzTmFtZSIsIl91c2VGaWVsZEFycmF5Iiwia2V5TmFtZSIsImFwcGVuZCIsImZpZWxkcyIsInJlbW92ZSIsImZpbGUiLCJkcmFmdCIsInVuZGVmaW5lZCIsIndhcm5pbmciLCJ3YXRjaGVkVmFsdWUiLCJwYXJzZWQiLCJ3cml0ZVZhbHVlIiwicXVvdGUiLCJzaG91bGREaXJ0eSIsIm1lYXN1cmUiLCJfcmVmMiIsIl9jYWxsZWUiLCJmaWxlSWQiLCJmaWVsZElkIiwiY3VycmVudCIsImJhc2UiLCJyZXNwb25zZSIsImRhdGEiLCJtZXJnZWQiLCJtZWFzdXJlZFdpZHRoIiwibWVhc3VyZWRIZWlnaHQiLCJfdCIsIl9jb250ZXh0IiwiaWQiLCJlbmRzV2l0aCIsImZldGNoIiwibWV0aG9kIiwiaGVhZGVycyIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwib2siLCJFcnJvciIsInN0YXR1cyIsImpzb24iLCJjb3ZlcmFnZSIsInBpeGVsV2lkdGgiLCJwaXhlbEhlaWdodCIsIm1lYXN1cmVkV2lkdGhNbSIsIm1lYXN1cmVkSGVpZ2h0TW0iLCJtZXNzYWdlIiwiX3giLCJfeDIiLCJoYW5kbGUiLCJ3aW5kb3ciLCJzZXRUaW1lb3V0IiwidHJpbSIsImNsZWFyVGltZW91dCIsImpvaW4iLCJ1cGRhdGVTaXplIiwiYXhpcyIsInJhdyIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwidmFyaWF0aW9uQ2xhc3NOYW1lIiwiYWNjZXB0IiwibXVsdGlwbGUiLCJwbGFjZWhvbGRlciIsIm9uVXBsb2FkU3VjY2VzcyIsInVwbG9hZGVkIiwicHJldmlldyIsInN0eWxlIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwiZ2FwIiwicG9zaXRpb24iLCJ2aWV3VXJsIiwiY2FjaGVkVmlld1VybCIsImFsdCIsInNyYyIsIm1heFdpZHRoIiwibWF4SGVpZ2h0Iiwib2JqZWN0Rml0IiwidHlwZSIsIm9uQ2xpY2siLCJldmVudCIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0IiwidG9wIiwicmlnaHQiLCJmb250U2l6ZSIsIm1hcCIsImNvbG91ciIsInRpdGxlIiwiYm9yZGVyUmFkaXVzIiwiYmFja2dyb3VuZCIsImJvcmRlciIsInJ1bGVzIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsInRhcmdldCIsImZsZXhXcmFwIiwibWFyZ2luVG9wIiwiaW5kZXgiLCJmbGV4IiwibWluIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvVmFyaWF0aW9uRW1icm9pZGVyeUlucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGaWVsZEFycmF5IH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCB7IEZhVGltZXMgfSBmcm9tICdyZWFjdC1pY29ucy9mYSc7XG5pbXBvcnQgeyBDZ1NwaW5uZXIgfSBmcm9tICdyZWFjdC1pY29ucy9jZyc7XG5pbXBvcnQgRHJvcHpvbmVJbnB1dCBmcm9tICcuL0Ryb3B6b25lSW5wdXQnO1xuaW1wb3J0IElucHV0SGlkZGVuU3RhdGljIGZyb20gJy4vSW5wdXRIaWRkZW5TdGF0aWMnO1xuaW1wb3J0IFZhcmlhdGlvbkVycm9yIGZyb20gJy4vVmFyaWF0aW9uRXJyb3InO1xuaW1wb3J0IFZhcmlhdGlvbkxhYmVsIGZyb20gJy4vVmFyaWF0aW9uTGFiZWwnO1xuaW1wb3J0IHsgdXNlTWVyY2hpRm9ybUNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXInO1xuaW1wb3J0IHtcbiAgRW1icm9pZGVyeVZhbHVlLFxuICBlbWJyb2lkZXJ5UXVhbGl0eVdhcm5pbmcsXG4gIGVtYnJvaWRlcnlWYWx1ZUpzb24sXG4gIHBhcnNlRW1icm9pZGVyeVZhbHVlLFxufSBmcm9tICcuLi91dGlscy9lbWJyb2lkZXJ5JztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhcmlhdGlvbjogYW55O1xufVxuXG5mdW5jdGlvbiBzaXplVGV4dCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgTnVtYmVyKHZhbHVlKSA+IDAgPyBTdHJpbmcodmFsdWUpIDogJyc7XG59XG5cbmZ1bmN0aW9uIFZhcmlhdGlvbkVtYnJvaWRlcnlJbnB1dCh7IGRpc2FibGVkLCBuYW1lLCB2YXJpYXRpb24gfTogUHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGFwaVVybCxcbiAgICBjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyLFxuICAgIGNsYXNzTmFtZUZpbGVQcmV2aWV3Q29udGFpbmVyLFxuICAgIGNsYXNzTmFtZUZpbGVQcmV2aWV3SWNvbldyYXBwZXIsXG4gICAgY29udHJvbCxcbiAgICBnZXRRdW90ZSxcbiAgICBob29rRm9ybSxcbiAgfSA9IHVzZU1lcmNoaUZvcm1Db250ZXh0KCk7XG4gIGNvbnN0IHsgc2V0VmFsdWUsIHdhdGNoIH0gPSBob29rRm9ybTtcbiAgY29uc3QgdmFyaWF0aW9uRmllbGQgPSB2YXJpYXRpb24udmFyaWF0aW9uRmllbGQgfHwge307XG4gIGNvbnN0IGZpbGVNb2RlID0gdmFyaWF0aW9uRmllbGQuZW1icm9pZGVyeUlucHV0TW9kZSAhPT0gJ3RleHQnO1xuICBjb25zdCBtYXhDb2xvdXJzID0gTnVtYmVyKHZhcmlhdGlvbkZpZWxkLm1heENvbG91cnMpID4gMFxuICAgID8gTnVtYmVyKHZhcmlhdGlvbkZpZWxkLm1heENvbG91cnMpXG4gICAgOiA0O1xuICBjb25zdCBzYXZlZCA9IHBhcnNlRW1icm9pZGVyeVZhbHVlKHdhdGNoKGAke25hbWV9LnZhbHVlYCkpIHx8IHt9O1xuICBjb25zdCBbd29yZGluZywgc2V0V29yZGluZ10gPSB1c2VTdGF0ZShzYXZlZC50ZXh0IHx8ICcnKTtcbiAgY29uc3QgW3dpZHRoLCBzZXRXaWR0aF0gPSB1c2VTdGF0ZShzaXplVGV4dChzYXZlZC53aWR0aE1tKSk7XG4gIGNvbnN0IFtoZWlnaHQsIHNldEhlaWdodF0gPSB1c2VTdGF0ZShzaXplVGV4dChzYXZlZC5oZWlnaHRNbSkpO1xuICBjb25zdCBbY29sb3Vycywgc2V0Q29sb3Vyc10gPSB1c2VTdGF0ZTxzdHJpbmdbXT4oXG4gICAgc2F2ZWQuY29sb3Vycz8ubGVuZ3RoID8gc2F2ZWQuY29sb3VycyA6IFsnIzExMTExMSddXG4gICk7XG4gIGNvbnN0IFttZWFzdXJpbmcsIHNldE1lYXN1cmluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHJlcXVlc3RJZCA9IHVzZVJlZigwKTtcbiAgY29uc3QgZmlsZXNOYW1lID0gYCR7bmFtZX0udmFyaWF0aW9uRmlsZXNgO1xuICBjb25zdCB7IGFwcGVuZCwgZmllbGRzLCByZW1vdmUgfSA9IHVzZUZpZWxkQXJyYXkoe1xuICAgIGNvbnRyb2wsXG4gICAga2V5TmFtZTogJ2ZpbGVJZCcsXG4gICAgbmFtZTogZmlsZXNOYW1lLFxuICB9KTtcbiAgY29uc3QgZmlsZSA9IGZpZWxkc1swXSBhcyBhbnk7XG4gIGNvbnN0IGRyYWZ0OiBFbWJyb2lkZXJ5VmFsdWUgPSB7XG4gICAgLi4uc2F2ZWQsXG4gICAgdGV4dDogZmlsZU1vZGUgPyBzYXZlZC50ZXh0IDogd29yZGluZyxcbiAgICB3aWR0aE1tOiBOdW1iZXIod2lkdGgpIHx8IHVuZGVmaW5lZCxcbiAgICBoZWlnaHRNbTogTnVtYmVyKGhlaWdodCkgfHwgdW5kZWZpbmVkLFxuICAgIGNvbG91cnM6IGZpbGVNb2RlID8gc2F2ZWQuY29sb3VycyA6IGNvbG91cnMuc2xpY2UoMCwgbWF4Q29sb3VycyksXG4gIH07XG4gIGNvbnN0IHdhcm5pbmcgPSBmaWxlTW9kZSA/IGVtYnJvaWRlcnlRdWFsaXR5V2FybmluZyhkcmFmdCkgOiBudWxsO1xuICBjb25zdCB3YXRjaGVkVmFsdWUgPSB3YXRjaChgJHtuYW1lfS52YWx1ZWApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VFbWJyb2lkZXJ5VmFsdWUod2F0Y2hlZFZhbHVlKTtcbiAgICBpZiAoIXBhcnNlZCkgcmV0dXJuO1xuICAgIGlmIChwYXJzZWQud2lkdGhNbSAmJiBTdHJpbmcocGFyc2VkLndpZHRoTW0pICE9PSB3aWR0aCkge1xuICAgICAgc2V0V2lkdGgoU3RyaW5nKHBhcnNlZC53aWR0aE1tKSk7XG4gICAgfVxuICAgIGlmIChwYXJzZWQuaGVpZ2h0TW0gJiYgU3RyaW5nKHBhcnNlZC5oZWlnaHRNbSkgIT09IGhlaWdodCkge1xuICAgICAgc2V0SGVpZ2h0KFN0cmluZyhwYXJzZWQuaGVpZ2h0TW0pKTtcbiAgICB9XG4gICAgLy8gRHJhZnQgcmVzaXplcyB3cml0ZSB0aGUgZm9ybSB2YWx1ZS4gRG9uJ3QgZGVwZW5kIG9uIGxvY2FsIHNpemUgb3IgdGhpc1xuICAgIC8vIHdvdWxkIGZpZ2h0IHRoZSBpbnB1dHMgd2hpbGUgdGhleSBhcmUgYmVpbmcgdHlwZWQuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbd2F0Y2hlZFZhbHVlXSk7XG5cbiAgY29uc3Qgd3JpdGVWYWx1ZSA9IChuZXh0OiBFbWJyb2lkZXJ5VmFsdWUsIHF1b3RlID0gdHJ1ZSkgPT4ge1xuICAgIHNldFZhbHVlKGAke25hbWV9LnZhbHVlYCwgZW1icm9pZGVyeVZhbHVlSnNvbihuZXh0KSwgeyBzaG91bGREaXJ0eTogdHJ1ZSB9KTtcbiAgICBpZiAocXVvdGUpIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gZ2V0UXVvdGUoKSk7XG4gIH07XG5cbiAgY29uc3QgbWVhc3VyZSA9IGFzeW5jIChuZXh0OiBFbWJyb2lkZXJ5VmFsdWUsIGZpbGVJZD86IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGZpZWxkSWQgPSB2YXJpYXRpb25GaWVsZC5pZDtcbiAgICBpZiAoIWZpZWxkSWQpIHJldHVybjtcbiAgICBjb25zdCBjdXJyZW50ID0gKytyZXF1ZXN0SWQuY3VycmVudDtcbiAgICBzZXRNZWFzdXJpbmcodHJ1ZSk7XG4gICAgc2V0RXJyb3IobnVsbCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJhc2UgPSBhcGlVcmwuZW5kc1dpdGgoJy8nKSA/IGFwaVVybCA6IGAke2FwaVVybH0vYDtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGAke2Jhc2V9dmFyaWF0aW9uLWZpZWxkcy8ke2ZpZWxkSWR9L2VzdGltYXRlLWVtYnJvaWRlcnkvYCxcbiAgICAgICAge1xuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIHRleHQ6IG5leHQudGV4dCB8fCAnJyxcbiAgICAgICAgICAgIHdpZHRoTW06IG5leHQud2lkdGhNbSxcbiAgICAgICAgICAgIGhlaWdodE1tOiBuZXh0LmhlaWdodE1tLFxuICAgICAgICAgICAgY29sb3VyczogbmV4dC5jb2xvdXJzLFxuICAgICAgICAgICAgZmlsZUlkLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgaWYgKCFyZXNwb25zZS5vaykgdGhyb3cgbmV3IEVycm9yKGBNZWFzdXJlIGZhaWxlZCAoJHtyZXNwb25zZS5zdGF0dXN9KWApO1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgIGlmIChjdXJyZW50ICE9PSByZXF1ZXN0SWQuY3VycmVudCkgcmV0dXJuO1xuICAgICAgY29uc3QgbWVyZ2VkOiBFbWJyb2lkZXJ5VmFsdWUgPSB7XG4gICAgICAgIC4uLm5leHQsXG4gICAgICAgIGNvbG91cnM6IGRhdGEuY29sb3VycyB8fCBuZXh0LmNvbG91cnMsXG4gICAgICAgIGNvdmVyYWdlOiBkYXRhLmNvdmVyYWdlLFxuICAgICAgICBwaXhlbFdpZHRoOiBkYXRhLnBpeGVsV2lkdGggfHwgbmV4dC5waXhlbFdpZHRoLFxuICAgICAgICBwaXhlbEhlaWdodDogZGF0YS5waXhlbEhlaWdodCB8fCBuZXh0LnBpeGVsSGVpZ2h0LFxuICAgICAgICB3aWR0aE1tOiBuZXh0LndpZHRoTW0gfHwgZGF0YS53aWR0aE1tIHx8IGRhdGEubWVhc3VyZWRXaWR0aE1tLFxuICAgICAgICBoZWlnaHRNbTogbmV4dC5oZWlnaHRNbSB8fCBkYXRhLmhlaWdodE1tIHx8IGRhdGEubWVhc3VyZWRIZWlnaHRNbSxcbiAgICAgIH07XG4gICAgICBjb25zdCBtZWFzdXJlZFdpZHRoID0gZGF0YS53aWR0aE1tIHx8IGRhdGEubWVhc3VyZWRXaWR0aE1tO1xuICAgICAgY29uc3QgbWVhc3VyZWRIZWlnaHQgPSBkYXRhLmhlaWdodE1tIHx8IGRhdGEubWVhc3VyZWRIZWlnaHRNbTtcbiAgICAgIGlmICghbmV4dC53aWR0aE1tICYmIG1lYXN1cmVkV2lkdGgpIHNldFdpZHRoKFN0cmluZyhtZWFzdXJlZFdpZHRoKSk7XG4gICAgICBpZiAoIW5leHQuaGVpZ2h0TW0gJiYgbWVhc3VyZWRIZWlnaHQpIHNldEhlaWdodChTdHJpbmcobWVhc3VyZWRIZWlnaHQpKTtcbiAgICAgIHdyaXRlVmFsdWUobWVyZ2VkKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGN1cnJlbnQgPT09IHJlcXVlc3RJZC5jdXJyZW50KSB7XG4gICAgICAgIHNldEVycm9yKGVycj8ubWVzc2FnZSB8fCAnVW5hYmxlIHRvIG1lYXN1cmUgdGhpcyBlbWJyb2lkZXJ5LicpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoY3VycmVudCA9PT0gcmVxdWVzdElkLmN1cnJlbnQpIHNldE1lYXN1cmluZyhmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IHtcbiAgICAgICAgLi4uZHJhZnQsXG4gICAgICAgIHRleHQ6IGZpbGVNb2RlID8gdW5kZWZpbmVkIDogd29yZGluZyxcbiAgICAgICAgY29sb3VyczogZmlsZU1vZGUgPyBkcmFmdC5jb2xvdXJzIDogY29sb3VycyxcbiAgICAgIH07XG4gICAgICBpZiAoZmlsZU1vZGUgJiYgIWZpbGU/LmlkICYmICFuZXh0LndpZHRoTW0pIHJldHVybjtcbiAgICAgIGlmICghZmlsZU1vZGUgJiYgIXdvcmRpbmcudHJpbSgpKSByZXR1cm47XG4gICAgICBtZWFzdXJlKG5leHQsIGZpbGU/LmlkKTtcbiAgICB9LCAzNTApO1xuICAgIHJldHVybiAoKSA9PiB3aW5kb3cuY2xlYXJUaW1lb3V0KGhhbmRsZSk7XG4gICAgLy8gUmUtbWVhc3VyZSB3aGVuIHRoZSBkZXNpZ24gb3Igc2l6ZSBjaGFuZ2VzLiBgZHJhZnRgIGlzIGRlcml2ZWQgZWFjaCByZW5kZXIuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbd29yZGluZywgd2lkdGgsIGhlaWdodCwgY29sb3Vycy5qb2luKCd8JyksIGZpbGU/LmlkLCBmaWxlTW9kZV0pO1xuXG4gIGNvbnN0IHVwZGF0ZVNpemUgPSAoYXhpczogJ3dpZHRoJyB8ICdoZWlnaHQnLCByYXc6IHN0cmluZykgPT4ge1xuICAgIGlmIChheGlzID09PSAnd2lkdGgnKSBzZXRXaWR0aChyYXcpO1xuICAgIGVsc2Ugc2V0SGVpZ2h0KHJhdyk7XG4gICAgd3JpdGVWYWx1ZSh7XG4gICAgICAuLi5kcmFmdCxcbiAgICAgIHdpZHRoTW06IE51bWJlcihheGlzID09PSAnd2lkdGgnID8gcmF3IDogd2lkdGgpIHx8IHVuZGVmaW5lZCxcbiAgICAgIGhlaWdodE1tOiBOdW1iZXIoYXhpcyA9PT0gJ2hlaWdodCcgPyByYXcgOiBoZWlnaHQpIHx8IHVuZGVmaW5lZCxcbiAgICB9LCBmYWxzZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lRmlsZVVwbG9hZENvbnRhaW5lcn0+XG4gICAgICA8VmFyaWF0aW9uTGFiZWxcbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgdmFyaWF0aW9uQ2xhc3NOYW1lPSdtZXJjaGktZW1iZWQtZm9ybV9pbnB1dC1maWxlJ1xuICAgICAgICB2YXJpYXRpb249e3ZhcmlhdGlvbn1cbiAgICAgIC8+XG4gICAgICB7ZmlsZU1vZGUgPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPERyb3B6b25lSW5wdXRcbiAgICAgICAgICAgIGFjY2VwdD0nLmpwZywuanBlZywucG5nLC53ZWJwLC5naWYnXG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWQgfHwgbWVhc3VyaW5nfVxuICAgICAgICAgICAgbXVsdGlwbGU9e2ZhbHNlfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3ZhcmlhdGlvbkZpZWxkLnBsYWNlaG9sZGVyIHx8ICdEcm9wIGFydHdvcmsgaW1hZ2U6J31cbiAgICAgICAgICAgIG9uVXBsb2FkU3VjY2Vzcz17KHVwbG9hZGVkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGZpZWxkcy5sZW5ndGgpIHJlbW92ZSgwKTtcbiAgICAgICAgICAgICAgYXBwZW5kKHVwbG9hZGVkKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBwcmV2aWV3PXtmaWxlID8gKFxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6IDggfX0+XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9fT5cbiAgICAgICAgICAgICAgICAgIHsoZmlsZS52aWV3VXJsIHx8IGZpbGUuY2FjaGVkVmlld1VybCkgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICBhbHQ9e2ZpbGUubmFtZSB8fCAnRW1icm9pZGVyeSBhcnR3b3JrJ31cbiAgICAgICAgICAgICAgICAgICAgICBzcmM9e2ZpbGUudmlld1VybCB8fCBmaWxlLmNhY2hlZFZpZXdVcmx9XG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ2Jsb2NrJywgbWF4V2lkdGg6IDIyMCwgbWF4SGVpZ2h0OiAxNjAsIG9iamVjdEZpdDogJ2NvbnRhaW4nIH19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT0nYnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSdSZW1vdmUgYXJ0d29yaydcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVGaWxlUHJldmlld0ljb25XcmFwcGVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgcG9zaXRpb246ICdhYnNvbHV0ZScsIHRvcDogMCwgcmlnaHQ6IC0yOCB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8RmFUaW1lcyBjbGFzc05hbWU9J2Nsb3NlLWljb24nIC8+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiAxMiB9fT5cbiAgICAgICAgICAgICAgICAgIHt3aWR0aCA/IGAke3dpZHRofSBtbSB3aWRlYCA6ICdNZWFzdXJpbmcgd2lkdGjigKYnfVxuICAgICAgICAgICAgICAgICAgeycgwrcgJ31cbiAgICAgICAgICAgICAgICAgIHtoZWlnaHQgPyBgJHtoZWlnaHR9IG1tIGhpZ2hgIDogJ01lYXN1cmluZyBoZWlnaHTigKYnfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHtBcnJheS5pc0FycmF5KGRyYWZ0LmNvbG91cnMpICYmIGRyYWZ0LmNvbG91cnMubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBnYXA6IDYgfX0+XG4gICAgICAgICAgICAgICAgICAgIHtkcmFmdC5jb2xvdXJzLm1hcCgoY29sb3VyKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y29sb3VyfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e2NvbG91cn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgwLDAsMCwwLjIpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7d2FybmluZyA/IChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSd0ZXh0LWRhbmdlcicgc3R5bGU9e3sgZm9udFNpemU6IDEyIH19Pnt3YXJuaW5nfTwvZGl2PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDxJbnB1dEhpZGRlblN0YXRpY1xuICAgICAgICAgICAgICAgICAgbmFtZT17YCR7ZmlsZXNOYW1lfVswXS5pZGB9XG4gICAgICAgICAgICAgICAgICBydWxlcz17eyByZXF1aXJlZDogdHJ1ZSB9fVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2ZpbGUuaWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogdW5kZWZpbmVkfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvPlxuICAgICAgKSA6IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzTmFtZT0nZm9ybS1jb250cm9sJ1xuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgdmFsdWU9e3dvcmRpbmd9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17dmFyaWF0aW9uRmllbGQucGxhY2Vob2xkZXIgfHwgJ1dvcmRpbmcnfVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4gc2V0V29yZGluZyhldmVudC50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogOCwgZmxleFdyYXA6ICd3cmFwJywgbWFyZ2luVG9wOiA4IH19PlxuICAgICAgICAgICAge2NvbG91cnMubWFwKChjb2xvdXIsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGtleT17YCR7Y29sb3VyfS0ke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgdHlwZT0nY29sb3InXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17YFRocmVhZCBjb2xvdXIgJHtpbmRleCArIDF9YH1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgdmFsdWU9e2NvbG91cn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gY29sb3Vycy5zbGljZSgpO1xuICAgICAgICAgICAgICAgICAgbmV4dFtpbmRleF0gPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICBzZXRDb2xvdXJzKG5leHQpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICAgIHtjb2xvdXJzLmxlbmd0aCA8IG1heENvbG91cnMgPyAoXG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPSdidXR0b24nXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdidG4gYnRuLXNtIGJ0bi1saW5rJ1xuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRDb2xvdXJzKFsuLi5jb2xvdXJzLCAnIzAwMDAwMCddKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEFkZCBjb2xvdXJcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC8+XG4gICAgICApfVxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogOCwgbWFyZ2luVG9wOiA4IH19PlxuICAgICAgICA8bGFiZWwgc3R5bGU9e3sgZmxleDogMSB9fT5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnYmxvY2snLCBmb250U2l6ZTogMTIgfX0+V2lkdGggKG1tKTwvc3Bhbj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzTmFtZT0nZm9ybS1jb250cm9sJ1xuICAgICAgICAgICAgdHlwZT0nbnVtYmVyJ1xuICAgICAgICAgICAgbWluPXswfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9J1dpZHRoIChtbSknXG4gICAgICAgICAgICB2YWx1ZT17d2lkdGh9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGV2ZW50KSA9PiB1cGRhdGVTaXplKCd3aWR0aCcsIGV2ZW50LnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIHN0eWxlPXt7IGZsZXg6IDEgfX0+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZGlzcGxheTogJ2Jsb2NrJywgZm9udFNpemU6IDEyIH19PkhlaWdodCAobW0pPC9zcGFuPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3NOYW1lPSdmb3JtLWNvbnRyb2wnXG4gICAgICAgICAgICB0eXBlPSdudW1iZXInXG4gICAgICAgICAgICBtaW49ezB9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj0nSGVpZ2h0IChtbSknXG4gICAgICAgICAgICB2YWx1ZT17aGVpZ2h0fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4gdXBkYXRlU2l6ZSgnaGVpZ2h0JywgZXZlbnQudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICB7bWVhc3VyaW5nID8gPENnU3Bpbm5lciBjbGFzc05hbWU9J2FuaW1hdGVfc3BpbicgLz4gOiBudWxsfVxuICAgICAge2Vycm9yID8gPGRpdiBjbGFzc05hbWU9J3RleHQtZGFuZ2VyJz57ZXJyb3J9PC9kaXY+IDogbnVsbH1cbiAgICAgIDxWYXJpYXRpb25FcnJvciBuYW1lPXtuYW1lfSAvPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBWYXJpYXRpb25FbWJyb2lkZXJ5SW5wdXQ7XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxtQkFBQUMsQ0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxDQUFBLEtBQUFFLGdCQUFBLENBQUFGLENBQUEsS0FB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LFFBQUEsRUFBQztRQUFVLENBQU0sQ0FBQyxlQUNsRWxILElBQUE7VUFDRWlILFNBQVMsRUFBQyxjQUFjO1VBQ3hCc0IsSUFBSSxFQUFDLFFBQVE7VUFDYnNCLEdBQUcsRUFBRSxDQUFFO1VBQ1BwSixRQUFRLEVBQUVBLFFBQVM7VUFDbkI2RyxXQUFXLEVBQUMsWUFBWTtVQUN4QnZMLEtBQUssRUFBRW9HLEtBQU07VUFDYm9ILFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHZCxLQUFLO1lBQUEsT0FBSzNCLFVBQVUsQ0FBQyxPQUFPLEVBQUUyQixLQUFLLENBQUNlLE1BQU0sQ0FBQ3pOLEtBQUssQ0FBQztVQUFBO1FBQUMsQ0FDOUQsQ0FBQztNQUFBLENBQ0csQ0FBQyxlQUNSbUUsS0FBQTtRQUFPd0gsS0FBSyxFQUFFO1VBQUVrQyxJQUFJLEVBQUU7UUFBRSxDQUFFO1FBQUExQyxRQUFBLGdCQUN4QmxILElBQUE7VUFBTTBILEtBQUssRUFBRTtZQUFFQyxPQUFPLEVBQUUsT0FBTztZQUFFbUIsUUFBUSxFQUFFO1VBQUcsQ0FBRTtVQUFBNUIsUUFBQSxFQUFDO1FBQVcsQ0FBTSxDQUFDLGVBQ25FbEgsSUFBQTtVQUNFaUgsU0FBUyxFQUFDLGNBQWM7VUFDeEJzQixJQUFJLEVBQUMsUUFBUTtVQUNic0IsR0FBRyxFQUFFLENBQUU7VUFDUHBKLFFBQVEsRUFBRUEsUUFBUztVQUNuQjZHLFdBQVcsRUFBQyxhQUFhO1VBQ3pCdkwsS0FBSyxFQUFFeUcsTUFBTztVQUNkK0csUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdkLEtBQUs7WUFBQSxPQUFLM0IsVUFBVSxDQUFDLFFBQVEsRUFBRTJCLEtBQUssQ0FBQ2UsTUFBTSxDQUFDek4sS0FBSyxDQUFDO1VBQUE7UUFBQyxDQUMvRCxDQUFDO01BQUEsQ0FDRyxDQUFDO0lBQUEsQ0FDTCxDQUFDLEVBQ0xpSCxTQUFTLGdCQUFHaEQsSUFBQSxDQUFDVixTQUFTO01BQUMySCxTQUFTLEVBQUM7SUFBYyxDQUFFLENBQUMsR0FBRyxJQUFJLEVBQ3pEN0QsS0FBSyxnQkFBR3BELElBQUE7TUFBS2lILFNBQVMsRUFBQyxhQUFhO01BQUFDLFFBQUEsRUFBRTlEO0lBQUssQ0FBTSxDQUFDLEdBQUcsSUFBSSxlQUMxRHBELElBQUEsQ0FBQ1AsY0FBYztNQUFDWixJQUFJLEVBQUVBO0lBQUssQ0FBRSxDQUFDO0VBQUEsQ0FDM0IsQ0FBQztBQUVWO0FBRUEsZUFBZXlCLHdCQUF3QiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
638
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9yZWdlbmVyYXRvciIsImUiLCJ0IiwibiIsInRvU3RyaW5nVGFnIiwiaSIsImMiLCJHZW5lcmF0b3IiLCJ1IiwiT2JqZWN0IiwiY3JlYXRlIiwiX3JlZ2VuZXJhdG9yRGVmaW5lMiIsImYiLCJwIiwieSIsIkciLCJ2IiwiYSIsImQiLCJiaW5kIiwibGVuZ3RoIiwibCIsImNhbGwiLCJkb25lIiwidmFsdWUiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiZ2V0UHJvdG90eXBlT2YiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImRpc3BsYXlOYW1lIiwidyIsIm0iLCJkZWZpbmVQcm9wZXJ0eSIsIl9yZWdlbmVyYXRvckRlZmluZSIsIl9pbnZva2UiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX25vbkl0ZXJhYmxlUmVzdCIsInRvU3RyaW5nIiwic2xpY2UiLCJuYW1lIiwidGVzdCIsIm5leHQiLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlRmllbGRBcnJheSIsIkZhVGltZXMiLCJDZ1NwaW5uZXIiLCJEcm9wem9uZUlucHV0IiwiSW5wdXRIaWRkZW5TdGF0aWMiLCJWYXJpYXRpb25FcnJvciIsIlZhcmlhdGlvbkxhYmVsIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJlbWJyb2lkZXJ5SGV4IiwiZW1icm9pZGVyeVF1YWxpdHlXYXJuaW5nIiwiZW1icm9pZGVyeVZhbHVlSnNvbiIsImZpdEVtYnJvaWRlcnlTaXplIiwicGFyc2VFbWJyb2lkZXJ5VmFsdWUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJoZXhDaGFubmVscyIsImhleCIsInBhcnNlSW50IiwiRW1icm9pZGVyeUNvbG91clByZXZpZXciLCJfcmVmIiwic3JjIiwic291cmNlQ29sb3VycyIsInRocmVhZENvbG91cnMiLCJjYW52YXNSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiZmFpbGVkIiwic2V0RmFpbGVkIiwic291cmNlS2V5Iiwiam9pbiIsInRocmVhZEtleSIsImNhbnZhcyIsImN1cnJlbnQiLCJjYW5jZWxsZWQiLCJpbWFnZSIsIkltYWdlIiwiY3Jvc3NPcmlnaW4iLCJvbmxvYWQiLCJtYXhFZGdlIiwic2NhbGUiLCJNYXRoIiwibWluIiwid2lkdGgiLCJoZWlnaHQiLCJtYXgiLCJyb3VuZCIsImNvbnRleHQiLCJnZXRDb250ZXh0Iiwid2lsbFJlYWRGcmVxdWVudGx5IiwiY2xlYXJSZWN0IiwiZHJhd0ltYWdlIiwiZnJhbWUiLCJnZXRJbWFnZURhdGEiLCJwaXhlbHMiLCJkYXRhIiwic291cmNlcyIsIm1hcCIsInRocmVhZHMiLCJpbmRleCIsIm5lYXJlc3QiLCJuZWFyZXN0RGlzdGFuY2UiLCJQT1NJVElWRV9JTkZJTklUWSIsImNvbG91ckluZGV4IiwiY2hhbm5lbCIsImRpc3RhbmNlIiwicG93IiwidGhyZWFkIiwicHV0SW1hZ2VEYXRhIiwiX3VudXNlZCIsIm9uZXJyb3IiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsInJlZiIsInNpemVUZXh0IiwiVmFyaWF0aW9uRW1icm9pZGVyeUlucHV0IiwiX3JlZjIiLCJfc2F2ZWQkY29sb3VycyIsIl9zYXZlZCRzb3VyY2VDb2xvdXJzMiIsIl9zYXZlZCRjb2xvdXJzMiIsIl9zYXZlZCRzb3VyY2VDb2xvdXJzMyIsImRpc2FibGVkIiwidmFyaWF0aW9uIiwiX3VzZU1lcmNoaUZvcm1Db250ZXh0IiwiYXBpVXJsIiwiY2xhc3NOYW1lRmlsZVVwbG9hZENvbnRhaW5lciIsImNsYXNzTmFtZUZpbGVQcmV2aWV3Q29udGFpbmVyIiwiY2xhc3NOYW1lRmlsZVByZXZpZXdJY29uV3JhcHBlciIsImNvbnRyb2wiLCJnZXRRdW90ZSIsImhvb2tGb3JtIiwic2V0VmFsdWUiLCJ3YXRjaCIsInZhcmlhdGlvbkZpZWxkIiwiZmlsZU1vZGUiLCJlbWJyb2lkZXJ5SW5wdXRNb2RlIiwicmF0aW9Mb2NrZWQiLCJhc3BlY3RSYXRpb0xvY2siLCJCb29sZWFuIiwibWF4V2lkdGgiLCJ3aWR0aEZpZWxkTWF4IiwibWF4SGVpZ2h0IiwiaGVpZ2h0RmllbGRNYXgiLCJtYXhDb2xvdXJzIiwic2F2ZWQiLCJjb25jYXQiLCJfdXNlU3RhdGUzIiwidGV4dCIsIl91c2VTdGF0ZTQiLCJ3b3JkaW5nIiwic2V0V29yZGluZyIsIl91c2VTdGF0ZTUiLCJ3aWR0aE1tIiwiX3VzZVN0YXRlNiIsInNldFdpZHRoIiwiX3VzZVN0YXRlNyIsImhlaWdodE1tIiwiX3VzZVN0YXRlOCIsInNldEhlaWdodCIsIl91c2VTdGF0ZTkiLCJjb2xvdXJzIiwiX3VzZVN0YXRlMCIsInNldENvbG91cnMiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJtZWFzdXJpbmciLCJzZXRNZWFzdXJpbmciLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwiZXJyb3IiLCJzZXRFcnJvciIsInJlcXVlc3RJZCIsImVkaXRpbmdBeGlzIiwiZWRpdFZlcnNpb24iLCJ3aWR0aFJlZiIsImhlaWdodFJlZiIsImZpbGVDb2xvdXJLZXkiLCJmaWxlc05hbWUiLCJfdXNlRmllbGRBcnJheSIsImtleU5hbWUiLCJhcHBlbmQiLCJmaWVsZHMiLCJyZW1vdmUiLCJmaWxlIiwiYXJ0d29ya1VybCIsInZpZXdVcmwiLCJjYWNoZWRWaWV3VXJsIiwic2VlbkZpbGVJZCIsIl9zYXZlZCRzb3VyY2VDb2xvdXJzIiwiaWQiLCJkcmFmdCIsInVuZGVmaW5lZCIsIndhcm5pbmciLCJ3YXRjaGVkVmFsdWUiLCJwYXJzZWQiLCJ3cml0ZVZhbHVlIiwicXVvdGUiLCJzaG91bGREaXJ0eSIsIm1lYXN1cmUiLCJfcmVmMyIsIl9jYWxsZWUiLCJmaWxlSWQiLCJmaWVsZElkIiwidmVyc2lvbiIsIl9uZXh0JHNvdXJjZUNvbG91cnMiLCJiYXNlIiwicmVzcG9uc2UiLCJlZGl0aW5nIiwibWVhc3VyZWRXaWR0aCIsIm1lYXN1cmVkSGVpZ2h0IiwiZXh0cmFjdGVkIiwia2VlcFRocmVhZHMiLCJtZXJnZWQiLCJfdCIsIl9jb250ZXh0IiwiZW5kc1dpdGgiLCJmZXRjaCIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJqc29uIiwibWVhc3VyZWRXaWR0aE1tIiwibWVhc3VyZWRIZWlnaHRNbSIsImNvdmVyYWdlIiwicGl4ZWxXaWR0aCIsInBpeGVsSGVpZ2h0IiwibWVzc2FnZSIsIl94IiwiX3gyIiwiaGFuZGxlIiwid2luZG93Iiwic2V0VGltZW91dCIsInRyaW0iLCJjbGVhclRpbWVvdXQiLCJzaXplUmF0aW8iLCJjb25maWd1cmVkIiwiYXNwZWN0UmF0aW8iLCJjdXJyZW50V2lkdGgiLCJjdXJyZW50SGVpZ2h0IiwidXBkYXRlU2l6ZSIsImF4aXMiLCJyYXciLCJ0eXBlZCIsInJhdGlvIiwiaXNGaW5pdGUiLCJjb21taXRTaXplIiwiZml0dGVkIiwiY2hhbmdlZCIsImxvY2siLCJuZXh0V2lkdGgiLCJuZXh0SGVpZ2h0Iiwid3JpdGVUaHJlYWRzIiwibmV4dFRocmVhZHMiLCJuZXh0U291cmNlcyIsImNoYW5nZVRocmVhZCIsInJlbW92ZVRocmVhZCIsIl8iLCJ2YXJpYXRpb25DbGFzc05hbWUiLCJhY2NlcHQiLCJtdWx0aXBsZSIsInBsYWNlaG9sZGVyIiwib25VcGxvYWRTdWNjZXNzIiwidXBsb2FkZWQiLCJwcmV2aWV3Iiwic3R5bGUiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJnYXAiLCJhbHQiLCJ0eXBlIiwib25DbGljayIsImV2ZW50Iiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJmb250U2l6ZSIsIm9uTW91c2VEb3duIiwiY29sb3VyIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJvbkJsdXIiLCJydWxlcyIsInJlcXVpcmVkIiwiZmxleFdyYXAiLCJtYXJnaW5Ub3AiLCJmbGV4IiwiaW5wdXRNb2RlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvVmFyaWF0aW9uRW1icm9pZGVyeUlucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGaWVsZEFycmF5IH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCB7IEZhVGltZXMgfSBmcm9tICdyZWFjdC1pY29ucy9mYSc7XG5pbXBvcnQgeyBDZ1NwaW5uZXIgfSBmcm9tICdyZWFjdC1pY29ucy9jZyc7XG5pbXBvcnQgRHJvcHpvbmVJbnB1dCBmcm9tICcuL0Ryb3B6b25lSW5wdXQnO1xuaW1wb3J0IElucHV0SGlkZGVuU3RhdGljIGZyb20gJy4vSW5wdXRIaWRkZW5TdGF0aWMnO1xuaW1wb3J0IFZhcmlhdGlvbkVycm9yIGZyb20gJy4vVmFyaWF0aW9uRXJyb3InO1xuaW1wb3J0IFZhcmlhdGlvbkxhYmVsIGZyb20gJy4vVmFyaWF0aW9uTGFiZWwnO1xuaW1wb3J0IHsgdXNlTWVyY2hpRm9ybUNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0L01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXInO1xuaW1wb3J0IHtcbiAgRW1icm9pZGVyeVZhbHVlLFxuICBlbWJyb2lkZXJ5SGV4LFxuICBlbWJyb2lkZXJ5UXVhbGl0eVdhcm5pbmcsXG4gIGVtYnJvaWRlcnlWYWx1ZUpzb24sXG4gIGZpdEVtYnJvaWRlcnlTaXplLFxuICBwYXJzZUVtYnJvaWRlcnlWYWx1ZSxcbn0gZnJvbSAnLi4vdXRpbHMvZW1icm9pZGVyeSc7XG5cbmZ1bmN0aW9uIGhleENoYW5uZWxzKHZhbHVlOiBzdHJpbmcpOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0ge1xuICBjb25zdCBoZXggPSBlbWJyb2lkZXJ5SGV4KHZhbHVlKS5zbGljZSgxKTtcbiAgcmV0dXJuIFtcbiAgICBwYXJzZUludChoZXguc2xpY2UoMCwgMiksIDE2KSxcbiAgICBwYXJzZUludChoZXguc2xpY2UoMiwgNCksIDE2KSxcbiAgICBwYXJzZUludChoZXguc2xpY2UoNCwgNiksIDE2KSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gRW1icm9pZGVyeUNvbG91clByZXZpZXcoe1xuICBzcmMsXG4gIHNvdXJjZUNvbG91cnMsXG4gIHRocmVhZENvbG91cnMsXG59OiB7XG4gIHNyYzogc3RyaW5nO1xuICBzb3VyY2VDb2xvdXJzOiBzdHJpbmdbXTtcbiAgdGhyZWFkQ29sb3Vyczogc3RyaW5nW107XG59KSB7XG4gIGNvbnN0IGNhbnZhc1JlZiA9IHVzZVJlZjxIVE1MQ2FudmFzRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtmYWlsZWQsIHNldEZhaWxlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHNvdXJjZUtleSA9IHNvdXJjZUNvbG91cnMuam9pbignfCcpO1xuICBjb25zdCB0aHJlYWRLZXkgPSB0aHJlYWRDb2xvdXJzLmpvaW4oJ3wnKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNhbnZhcyA9IGNhbnZhc1JlZi5jdXJyZW50O1xuICAgIGlmICghY2FudmFzIHx8ICFzcmMgfHwgIXNvdXJjZUNvbG91cnMubGVuZ3RoIHx8ICF0aHJlYWRDb2xvdXJzLmxlbmd0aCkgcmV0dXJuO1xuICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZTtcbiAgICBzZXRGYWlsZWQoZmFsc2UpO1xuICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgaW1hZ2UuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcbiAgICBpbWFnZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBpZiAoY2FuY2VsbGVkKSByZXR1cm47XG4gICAgICBjb25zdCBtYXhFZGdlID0gMjIwO1xuICAgICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1pbihtYXhFZGdlIC8gaW1hZ2Uud2lkdGgsIG1heEVkZ2UgLyBpbWFnZS5oZWlnaHQsIDEpO1xuICAgICAgY29uc3Qgd2lkdGggPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKGltYWdlLndpZHRoICogc2NhbGUpKTtcbiAgICAgIGNvbnN0IGhlaWdodCA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQoaW1hZ2UuaGVpZ2h0ICogc2NhbGUpKTtcbiAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xuICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnLCB7IHdpbGxSZWFkRnJlcXVlbnRseTogdHJ1ZSB9KTtcbiAgICAgIGlmICghY29udGV4dCkgcmV0dXJuO1xuICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7XG4gICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgd2lkdGgsIGhlaWdodCk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmcmFtZSA9IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICBjb25zdCBwaXhlbHMgPSBmcmFtZS5kYXRhO1xuICAgICAgICBjb25zdCBzb3VyY2VzID0gc291cmNlQ29sb3Vycy5tYXAoaGV4Q2hhbm5lbHMpO1xuICAgICAgICBjb25zdCB0aHJlYWRzID0gdGhyZWFkQ29sb3Vycy5tYXAoaGV4Q2hhbm5lbHMpO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcGl4ZWxzLmxlbmd0aDsgaW5kZXggKz0gNCkge1xuICAgICAgICAgIGlmIChwaXhlbHNbaW5kZXggKyAzXSA8IDE2KSBjb250aW51ZTtcbiAgICAgICAgICBsZXQgbmVhcmVzdCA9IDA7XG4gICAgICAgICAgbGV0IG5lYXJlc3REaXN0YW5jZSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICAgICAgICBmb3IgKGxldCBjb2xvdXJJbmRleCA9IDA7IGNvbG91ckluZGV4IDwgc291cmNlcy5sZW5ndGg7IGNvbG91ckluZGV4ICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5uZWwgPSBzb3VyY2VzW2NvbG91ckluZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID1cbiAgICAgICAgICAgICAgKHBpeGVsc1tpbmRleF0gLSBjaGFubmVsWzBdKSAqKiAyICtcbiAgICAgICAgICAgICAgKHBpeGVsc1tpbmRleCArIDFdIC0gY2hhbm5lbFsxXSkgKiogMiArXG4gICAgICAgICAgICAgIChwaXhlbHNbaW5kZXggKyAyXSAtIGNoYW5uZWxbMl0pICoqIDI7XG4gICAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBuZWFyZXN0RGlzdGFuY2UpIHtcbiAgICAgICAgICAgICAgbmVhcmVzdCA9IGNvbG91ckluZGV4O1xuICAgICAgICAgICAgICBuZWFyZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgdGhyZWFkID0gdGhyZWFkc1tuZWFyZXN0XSB8fCB0aHJlYWRzW3RocmVhZHMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgcGl4ZWxzW2luZGV4XSA9IHRocmVhZFswXTtcbiAgICAgICAgICBwaXhlbHNbaW5kZXggKyAxXSA9IHRocmVhZFsxXTtcbiAgICAgICAgICBwaXhlbHNbaW5kZXggKyAyXSA9IHRocmVhZFsyXTtcbiAgICAgICAgICBwaXhlbHNbaW5kZXggKyAzXSA9IDI1NTtcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0LnB1dEltYWdlRGF0YShmcmFtZSwgMCwgMCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHNldEZhaWxlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGltYWdlLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICBpZiAoIWNhbmNlbGxlZCkgc2V0RmFpbGVkKHRydWUpO1xuICAgIH07XG4gICAgaW1hZ2Uuc3JjID0gc3JjO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgIH07XG4gIH0sIFtzcmMsIHNvdXJjZUtleSwgdGhyZWFkS2V5LCBzb3VyY2VDb2xvdXJzLCB0aHJlYWRDb2xvdXJzXSk7XG5cbiAgaWYgKGZhaWxlZCkge1xuICAgIHJldHVybiA8cCBjbGFzc05hbWU9J21lcmNoaS1lbWJyb2lkZXJ5LXByZXZpZXctbm90ZSc+Q29sb3VyIHByZXZpZXcgdW5hdmFpbGFibGU8L3A+O1xuICB9XG4gIHJldHVybiA8Y2FudmFzIHJlZj17Y2FudmFzUmVmfSBhcmlhLWxhYmVsPSdFbWJyb2lkZXJ5IGNvbG91ciBwcmV2aWV3JyAvPjtcbn1cblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhcmlhdGlvbjogYW55O1xufVxuXG5mdW5jdGlvbiBzaXplVGV4dCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgTnVtYmVyKHZhbHVlKSA+IDAgPyBTdHJpbmcodmFsdWUpIDogJyc7XG59XG5cbmZ1bmN0aW9uIFZhcmlhdGlvbkVtYnJvaWRlcnlJbnB1dCh7IGRpc2FibGVkLCBuYW1lLCB2YXJpYXRpb24gfTogUHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGFwaVVybCxcbiAgICBjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyLFxuICAgIGNsYXNzTmFtZUZpbGVQcmV2aWV3Q29udGFpbmVyLFxuICAgIGNsYXNzTmFtZUZpbGVQcmV2aWV3SWNvbldyYXBwZXIsXG4gICAgY29udHJvbCxcbiAgICBnZXRRdW90ZSxcbiAgICBob29rRm9ybSxcbiAgfSA9IHVzZU1lcmNoaUZvcm1Db250ZXh0KCk7XG4gIGNvbnN0IHsgc2V0VmFsdWUsIHdhdGNoIH0gPSBob29rRm9ybTtcbiAgY29uc3QgdmFyaWF0aW9uRmllbGQgPSB2YXJpYXRpb24udmFyaWF0aW9uRmllbGQgfHwge307XG4gIGNvbnN0IGZpbGVNb2RlID0gdmFyaWF0aW9uRmllbGQuZW1icm9pZGVyeUlucHV0TW9kZSAhPT0gJ3RleHQnO1xuICBjb25zdCByYXRpb0xvY2tlZCA9IHZhcmlhdGlvbkZpZWxkLmFzcGVjdFJhdGlvTG9jayA9PSBudWxsXG4gICAgPyB0cnVlXG4gICAgOiBCb29sZWFuKHZhcmlhdGlvbkZpZWxkLmFzcGVjdFJhdGlvTG9jayk7XG4gIGNvbnN0IG1heFdpZHRoID0gTnVtYmVyKHZhcmlhdGlvbkZpZWxkLndpZHRoRmllbGRNYXgpID4gMFxuICAgID8gTnVtYmVyKHZhcmlhdGlvbkZpZWxkLndpZHRoRmllbGRNYXgpXG4gICAgOiBudWxsO1xuICBjb25zdCBtYXhIZWlnaHQgPSBOdW1iZXIodmFyaWF0aW9uRmllbGQuaGVpZ2h0RmllbGRNYXgpID4gMFxuICAgID8gTnVtYmVyKHZhcmlhdGlvbkZpZWxkLmhlaWdodEZpZWxkTWF4KVxuICAgIDogbnVsbDtcbiAgY29uc3QgbWF4Q29sb3VycyA9IE51bWJlcih2YXJpYXRpb25GaWVsZC5tYXhDb2xvdXJzKSA+IDBcbiAgICA/IE51bWJlcih2YXJpYXRpb25GaWVsZC5tYXhDb2xvdXJzKVxuICAgIDogNDtcbiAgY29uc3Qgc2F2ZWQgPSBwYXJzZUVtYnJvaWRlcnlWYWx1ZSh3YXRjaChgJHtuYW1lfS52YWx1ZWApKSB8fCB7fTtcbiAgY29uc3QgW3dvcmRpbmcsIHNldFdvcmRpbmddID0gdXNlU3RhdGUoc2F2ZWQudGV4dCB8fCAnJyk7XG4gIGNvbnN0IFt3aWR0aCwgc2V0V2lkdGhdID0gdXNlU3RhdGUoc2l6ZVRleHQoc2F2ZWQud2lkdGhNbSkpO1xuICBjb25zdCBbaGVpZ2h0LCBzZXRIZWlnaHRdID0gdXNlU3RhdGUoc2l6ZVRleHQoc2F2ZWQuaGVpZ2h0TW0pKTtcbiAgY29uc3QgW2NvbG91cnMsIHNldENvbG91cnNdID0gdXNlU3RhdGU8c3RyaW5nW10+KFxuICAgIHNhdmVkLmNvbG91cnM/Lmxlbmd0aCA/IHNhdmVkLmNvbG91cnMgOiBbJyMxMTExMTEnXVxuICApO1xuICBjb25zdCBbbWVhc3VyaW5nLCBzZXRNZWFzdXJpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBjb25zdCByZXF1ZXN0SWQgPSB1c2VSZWYoMCk7XG4gIGNvbnN0IGVkaXRpbmdBeGlzID0gdXNlUmVmPCd3aWR0aCcgfCAnaGVpZ2h0JyB8IG51bGw+KG51bGwpO1xuICBjb25zdCBlZGl0VmVyc2lvbiA9IHVzZVJlZigwKTtcbiAgY29uc3Qgd2lkdGhSZWYgPSB1c2VSZWYod2lkdGgpO1xuICBjb25zdCBoZWlnaHRSZWYgPSB1c2VSZWYoaGVpZ2h0KTtcbiAgY29uc3QgZmlsZUNvbG91cktleSA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgd2lkdGhSZWYuY3VycmVudCA9IHdpZHRoO1xuICBoZWlnaHRSZWYuY3VycmVudCA9IGhlaWdodDtcbiAgY29uc3QgZmlsZXNOYW1lID0gYCR7bmFtZX0udmFyaWF0aW9uRmlsZXNgO1xuICBjb25zdCB7IGFwcGVuZCwgZmllbGRzLCByZW1vdmUgfSA9IHVzZUZpZWxkQXJyYXkoe1xuICAgIGNvbnRyb2wsXG4gICAga2V5TmFtZTogJ2ZpbGVJZCcsXG4gICAgbmFtZTogZmlsZXNOYW1lLFxuICB9KTtcbiAgY29uc3QgZmlsZSA9IGZpZWxkc1swXSBhcyBhbnk7XG4gIGNvbnN0IGFydHdvcmtVcmwgPSBmaWxlPy52aWV3VXJsIHx8IGZpbGU/LmNhY2hlZFZpZXdVcmwgfHwgJyc7XG4gIGNvbnN0IHNlZW5GaWxlSWQgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaWQgPSBmaWxlPy5pZCA/IFN0cmluZyhmaWxlLmlkKSA6IG51bGw7XG4gICAgaWYgKHNlZW5GaWxlSWQuY3VycmVudCAmJiBpZCAmJiBzZWVuRmlsZUlkLmN1cnJlbnQgIT09IGlkKSB7XG4gICAgICBmaWxlQ29sb3VyS2V5LmN1cnJlbnQgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoIXNlZW5GaWxlSWQuY3VycmVudCAmJiBpZCAmJiBzYXZlZC5zb3VyY2VDb2xvdXJzPy5sZW5ndGgpIHtcbiAgICAgIGZpbGVDb2xvdXJLZXkuY3VycmVudCA9IGlkO1xuICAgIH1cbiAgICBzZWVuRmlsZUlkLmN1cnJlbnQgPSBpZDtcbiAgfSwgW2ZpbGU/LmlkLCBzYXZlZC5zb3VyY2VDb2xvdXJzPy5sZW5ndGhdKTtcbiAgY29uc3QgdGhyZWFkQ29sb3VycyA9IChzYXZlZC5jb2xvdXJzPy5sZW5ndGggPyBzYXZlZC5jb2xvdXJzIDogc2F2ZWQuc291cmNlQ29sb3VycyB8fCBbXSlcbiAgICAubWFwKGVtYnJvaWRlcnlIZXgpO1xuICBjb25zdCBzb3VyY2VDb2xvdXJzID0gKHNhdmVkLnNvdXJjZUNvbG91cnM/Lmxlbmd0aCA/IHNhdmVkLnNvdXJjZUNvbG91cnMgOiB0aHJlYWRDb2xvdXJzKVxuICAgIC5tYXAoZW1icm9pZGVyeUhleCk7XG4gIGNvbnN0IGRyYWZ0OiBFbWJyb2lkZXJ5VmFsdWUgPSB7XG4gICAgLi4uc2F2ZWQsXG4gICAgdGV4dDogZmlsZU1vZGUgPyBzYXZlZC50ZXh0IDogd29yZGluZyxcbiAgICB3aWR0aE1tOiBOdW1iZXIod2lkdGgpIHx8IHVuZGVmaW5lZCxcbiAgICBoZWlnaHRNbTogTnVtYmVyKGhlaWdodCkgfHwgdW5kZWZpbmVkLFxuICAgIGNvbG91cnM6IGZpbGVNb2RlID8gc2F2ZWQuY29sb3VycyA6IGNvbG91cnMuc2xpY2UoMCwgbWF4Q29sb3VycyksXG4gIH07XG4gIGNvbnN0IHdhcm5pbmcgPSBmaWxlTW9kZSA/IGVtYnJvaWRlcnlRdWFsaXR5V2FybmluZyhkcmFmdCkgOiBudWxsO1xuICBjb25zdCB3YXRjaGVkVmFsdWUgPSB3YXRjaChgJHtuYW1lfS52YWx1ZWApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VFbWJyb2lkZXJ5VmFsdWUod2F0Y2hlZFZhbHVlKTtcbiAgICBpZiAoIXBhcnNlZCkgcmV0dXJuO1xuICAgIGlmIChcbiAgICAgIGVkaXRpbmdBeGlzLmN1cnJlbnQgIT09ICd3aWR0aCcgJiZcbiAgICAgIHBhcnNlZC53aWR0aE1tICYmXG4gICAgICBTdHJpbmcocGFyc2VkLndpZHRoTW0pICE9PSB3aWR0aFxuICAgICkge1xuICAgICAgc2V0V2lkdGgoU3RyaW5nKHBhcnNlZC53aWR0aE1tKSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGVkaXRpbmdBeGlzLmN1cnJlbnQgIT09ICdoZWlnaHQnICYmXG4gICAgICBwYXJzZWQuaGVpZ2h0TW0gJiZcbiAgICAgIFN0cmluZyhwYXJzZWQuaGVpZ2h0TW0pICE9PSBoZWlnaHRcbiAgICApIHtcbiAgICAgIHNldEhlaWdodChTdHJpbmcocGFyc2VkLmhlaWdodE1tKSk7XG4gICAgfVxuICAgIC8vIERyYWZ0IHJlc2l6ZXMgd3JpdGUgdGhlIGZvcm0gdmFsdWUuIERvbid0IGRlcGVuZCBvbiBsb2NhbCBzaXplIG9yIHRoaXNcbiAgICAvLyB3b3VsZCBmaWdodCB0aGUgaW5wdXRzIHdoaWxlIHRoZXkgYXJlIGJlaW5nIHR5cGVkLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW3dhdGNoZWRWYWx1ZV0pO1xuXG4gIGNvbnN0IHdyaXRlVmFsdWUgPSAobmV4dDogRW1icm9pZGVyeVZhbHVlLCBxdW90ZSA9IHRydWUpID0+IHtcbiAgICBzZXRWYWx1ZShgJHtuYW1lfS52YWx1ZWAsIGVtYnJvaWRlcnlWYWx1ZUpzb24obmV4dCksIHsgc2hvdWxkRGlydHk6IHRydWUgfSk7XG4gICAgaWYgKHF1b3RlKSBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IGdldFF1b3RlKCkpO1xuICB9O1xuXG4gIGNvbnN0IG1lYXN1cmUgPSBhc3luYyAobmV4dDogRW1icm9pZGVyeVZhbHVlLCBmaWxlSWQ/OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBmaWVsZElkID0gdmFyaWF0aW9uRmllbGQuaWQ7XG4gICAgaWYgKCFmaWVsZElkKSByZXR1cm47XG4gICAgY29uc3QgY3VycmVudCA9ICsrcmVxdWVzdElkLmN1cnJlbnQ7XG4gICAgY29uc3QgdmVyc2lvbiA9IGVkaXRWZXJzaW9uLmN1cnJlbnQ7XG4gICAgc2V0TWVhc3VyaW5nKHRydWUpO1xuICAgIHNldEVycm9yKG51bGwpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBiYXNlID0gYXBpVXJsLmVuZHNXaXRoKCcvJykgPyBhcGlVcmwgOiBgJHthcGlVcmx9L2A7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgICBgJHtiYXNlfXZhcmlhdGlvbi1maWVsZHMvJHtmaWVsZElkfS9lc3RpbWF0ZS1lbWJyb2lkZXJ5L2AsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICB0ZXh0OiBuZXh0LnRleHQgfHwgJycsXG4gICAgICAgICAgICB3aWR0aE1tOiBuZXh0LndpZHRoTW0sXG4gICAgICAgICAgICBoZWlnaHRNbTogbmV4dC5oZWlnaHRNbSxcbiAgICAgICAgICAgIGNvbG91cnM6IG5leHQuY29sb3VycyxcbiAgICAgICAgICAgIGZpbGVJZCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHRocm93IG5ldyBFcnJvcihgTWVhc3VyZSBmYWlsZWQgKCR7cmVzcG9uc2Uuc3RhdHVzfSlgKTtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICBpZiAoY3VycmVudCAhPT0gcmVxdWVzdElkLmN1cnJlbnQgfHwgdmVyc2lvbiAhPT0gZWRpdFZlcnNpb24uY3VycmVudCkgcmV0dXJuO1xuICAgICAgY29uc3QgZWRpdGluZyA9IGVkaXRpbmdBeGlzLmN1cnJlbnQ7XG4gICAgICBjb25zdCBtZWFzdXJlZFdpZHRoID0gZGF0YS53aWR0aE1tIHx8IGRhdGEubWVhc3VyZWRXaWR0aE1tO1xuICAgICAgY29uc3QgbWVhc3VyZWRIZWlnaHQgPSBkYXRhLmhlaWdodE1tIHx8IGRhdGEubWVhc3VyZWRIZWlnaHRNbTtcbiAgICAgIGNvbnN0IGV4dHJhY3RlZCA9IChkYXRhLmNvbG91cnMgfHwgW10pLm1hcChlbWJyb2lkZXJ5SGV4KTtcbiAgICAgIGNvbnN0IGtlZXBUaHJlYWRzID0gQm9vbGVhbihcbiAgICAgICAgZmlsZUlkICYmXG4gICAgICAgIG5leHQuc291cmNlQ29sb3Vycz8ubGVuZ3RoICYmXG4gICAgICAgIGZpbGVDb2xvdXJLZXkuY3VycmVudCA9PT0gU3RyaW5nKGZpbGVJZClcbiAgICAgICk7XG4gICAgICBpZiAoIWtlZXBUaHJlYWRzICYmIGV4dHJhY3RlZC5sZW5ndGggJiYgZmlsZUlkKSB7XG4gICAgICAgIGZpbGVDb2xvdXJLZXkuY3VycmVudCA9IFN0cmluZyhmaWxlSWQpO1xuICAgICAgfVxuICAgICAgY29uc3QgbWVyZ2VkOiBFbWJyb2lkZXJ5VmFsdWUgPSB7XG4gICAgICAgIC4uLm5leHQsXG4gICAgICAgIHNvdXJjZUNvbG91cnM6IGtlZXBUaHJlYWRzID8gbmV4dC5zb3VyY2VDb2xvdXJzIDogKGV4dHJhY3RlZC5sZW5ndGggPyBleHRyYWN0ZWQgOiBuZXh0LnNvdXJjZUNvbG91cnMpLFxuICAgICAgICBjb2xvdXJzOiBrZWVwVGhyZWFkcyA/IG5leHQuY29sb3VycyA6IChleHRyYWN0ZWQubGVuZ3RoID8gZXh0cmFjdGVkIDogbmV4dC5jb2xvdXJzKSxcbiAgICAgICAgY292ZXJhZ2U6IGRhdGEuY292ZXJhZ2UsXG4gICAgICAgIHBpeGVsV2lkdGg6IGRhdGEucGl4ZWxXaWR0aCB8fCBuZXh0LnBpeGVsV2lkdGgsXG4gICAgICAgIHBpeGVsSGVpZ2h0OiBkYXRhLnBpeGVsSGVpZ2h0IHx8IG5leHQucGl4ZWxIZWlnaHQsXG4gICAgICAgIHdpZHRoTW06IGVkaXRpbmcgPT09ICd3aWR0aCcgPyBuZXh0LndpZHRoTW0gOiAobWVhc3VyZWRXaWR0aCB8fCBuZXh0LndpZHRoTW0pLFxuICAgICAgICBoZWlnaHRNbTogZWRpdGluZyA9PT0gJ2hlaWdodCcgPyBuZXh0LmhlaWdodE1tIDogKG1lYXN1cmVkSGVpZ2h0IHx8IG5leHQuaGVpZ2h0TW0pLFxuICAgICAgfTtcbiAgICAgIGlmIChlZGl0aW5nICE9PSAnd2lkdGgnICYmIG1lYXN1cmVkV2lkdGgpIHNldFdpZHRoKFN0cmluZyhtZWFzdXJlZFdpZHRoKSk7XG4gICAgICBpZiAoZWRpdGluZyAhPT0gJ2hlaWdodCcgJiYgbWVhc3VyZWRIZWlnaHQpIHNldEhlaWdodChTdHJpbmcobWVhc3VyZWRIZWlnaHQpKTtcbiAgICAgIHdyaXRlVmFsdWUobWVyZ2VkKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgaWYgKGN1cnJlbnQgPT09IHJlcXVlc3RJZC5jdXJyZW50KSB7XG4gICAgICAgIHNldEVycm9yKGVycj8ubWVzc2FnZSB8fCAnVW5hYmxlIHRvIG1lYXN1cmUgdGhpcyBlbWJyb2lkZXJ5LicpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoY3VycmVudCA9PT0gcmVxdWVzdElkLmN1cnJlbnQpIHNldE1lYXN1cmluZyhmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IHtcbiAgICAgICAgLi4uZHJhZnQsXG4gICAgICAgIHRleHQ6IGZpbGVNb2RlID8gdW5kZWZpbmVkIDogd29yZGluZyxcbiAgICAgICAgY29sb3VyczogZmlsZU1vZGUgPyBkcmFmdC5jb2xvdXJzIDogY29sb3VycyxcbiAgICAgIH07XG4gICAgICBpZiAoZmlsZU1vZGUgJiYgIWZpbGU/LmlkICYmICFuZXh0LndpZHRoTW0pIHJldHVybjtcbiAgICAgIGlmICghZmlsZU1vZGUgJiYgIXdvcmRpbmcudHJpbSgpKSByZXR1cm47XG4gICAgICBtZWFzdXJlKG5leHQsIGZpbGU/LmlkKTtcbiAgICB9LCAzNTApO1xuICAgIHJldHVybiAoKSA9PiB3aW5kb3cuY2xlYXJUaW1lb3V0KGhhbmRsZSk7XG4gICAgLy8gUmUtbWVhc3VyZSB3aGVuIHRoZSBkZXNpZ24gb3Igc2l6ZSBjaGFuZ2VzLiBgZHJhZnRgIGlzIGRlcml2ZWQgZWFjaCByZW5kZXIuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbd29yZGluZywgd2lkdGgsIGhlaWdodCwgY29sb3Vycy5qb2luKCd8JyksIGZpbGU/LmlkLCBmaWxlTW9kZV0pO1xuXG4gIGNvbnN0IHNpemVSYXRpbyA9ICgpID0+IHtcbiAgICBjb25zdCBwaXhlbFdpZHRoID0gTnVtYmVyKHNhdmVkLnBpeGVsV2lkdGgpO1xuICAgIGNvbnN0IHBpeGVsSGVpZ2h0ID0gTnVtYmVyKHNhdmVkLnBpeGVsSGVpZ2h0KTtcbiAgICBpZiAocGl4ZWxXaWR0aCA+IDAgJiYgcGl4ZWxIZWlnaHQgPiAwKSByZXR1cm4gcGl4ZWxXaWR0aCAvIHBpeGVsSGVpZ2h0O1xuICAgIGNvbnN0IGNvbmZpZ3VyZWQgPSBOdW1iZXIodmFyaWF0aW9uRmllbGQuYXNwZWN0UmF0aW8pO1xuICAgIGlmIChjb25maWd1cmVkID4gMCkgcmV0dXJuIGNvbmZpZ3VyZWQ7XG4gICAgY29uc3QgY3VycmVudFdpZHRoID0gTnVtYmVyKHdpZHRoKTtcbiAgICBjb25zdCBjdXJyZW50SGVpZ2h0ID0gTnVtYmVyKGhlaWdodCk7XG4gICAgaWYgKGN1cnJlbnRXaWR0aCA+IDAgJiYgY3VycmVudEhlaWdodCA+IDApIHJldHVybiBjdXJyZW50V2lkdGggLyBjdXJyZW50SGVpZ2h0O1xuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZVNpemUgPSAoYXhpczogJ3dpZHRoJyB8ICdoZWlnaHQnLCByYXc6IHN0cmluZykgPT4ge1xuICAgIGlmIChyYXcgIT09ICcnICYmICEvXlxcZCpcXC4/XFxkKiQvLnRlc3QocmF3KSkgcmV0dXJuO1xuICAgIGVkaXRWZXJzaW9uLmN1cnJlbnQgKz0gMTtcbiAgICBlZGl0aW5nQXhpcy5jdXJyZW50ID0gYXhpcztcbiAgICBpZiAoYXhpcyA9PT0gJ3dpZHRoJykge1xuICAgICAgd2lkdGhSZWYuY3VycmVudCA9IHJhdztcbiAgICAgIHNldFdpZHRoKHJhdyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhlaWdodFJlZi5jdXJyZW50ID0gcmF3O1xuICAgICAgc2V0SGVpZ2h0KHJhdyk7XG4gICAgfVxuICAgIGNvbnN0IHR5cGVkID0gTnVtYmVyKHJhdyk7XG4gICAgY29uc3QgcmF0aW8gPSBzaXplUmF0aW8oKTtcbiAgICBsZXQgd2lkdGhNbSA9IGF4aXMgPT09ICd3aWR0aCdcbiAgICAgID8gKE51bWJlci5pc0Zpbml0ZSh0eXBlZCkgJiYgdHlwZWQgPiAwID8gdHlwZWQgOiB1bmRlZmluZWQpXG4gICAgICA6IChOdW1iZXIod2lkdGhSZWYuY3VycmVudCkgfHwgdW5kZWZpbmVkKTtcbiAgICBsZXQgaGVpZ2h0TW0gPSBheGlzID09PSAnaGVpZ2h0J1xuICAgICAgPyAoTnVtYmVyLmlzRmluaXRlKHR5cGVkKSAmJiB0eXBlZCA+IDAgPyB0eXBlZCA6IHVuZGVmaW5lZClcbiAgICAgIDogKE51bWJlcihoZWlnaHRSZWYuY3VycmVudCkgfHwgdW5kZWZpbmVkKTtcbiAgICBpZiAocmF0aW9Mb2NrZWQgJiYgcmF0aW8gJiYgdHlwZWQgPiAwKSB7XG4gICAgICBpZiAoYXhpcyA9PT0gJ3dpZHRoJykge1xuICAgICAgICBoZWlnaHRNbSA9IE1hdGgucm91bmQoKHR5cGVkIC8gcmF0aW8pICogMTApIC8gMTA7XG4gICAgICAgIGhlaWdodFJlZi5jdXJyZW50ID0gU3RyaW5nKGhlaWdodE1tKTtcbiAgICAgICAgc2V0SGVpZ2h0KGhlaWdodFJlZi5jdXJyZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpZHRoTW0gPSBNYXRoLnJvdW5kKCh0eXBlZCAqIHJhdGlvKSAqIDEwKSAvIDEwO1xuICAgICAgICB3aWR0aFJlZi5jdXJyZW50ID0gU3RyaW5nKHdpZHRoTW0pO1xuICAgICAgICBzZXRXaWR0aCh3aWR0aFJlZi5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgd3JpdGVWYWx1ZSh7XG4gICAgICAuLi5kcmFmdCxcbiAgICAgIHdpZHRoTW0sXG4gICAgICBoZWlnaHRNbSxcbiAgICB9LCBmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgY29tbWl0U2l6ZSA9IChheGlzOiAnd2lkdGgnIHwgJ2hlaWdodCcpID0+IHtcbiAgICBlZGl0VmVyc2lvbi5jdXJyZW50ICs9IDE7XG4gICAgZWRpdGluZ0F4aXMuY3VycmVudCA9IG51bGw7XG4gICAgY29uc3QgZml0dGVkID0gZml0RW1icm9pZGVyeVNpemUoe1xuICAgICAgd2lkdGg6IE51bWJlcih3aWR0aFJlZi5jdXJyZW50KSB8fCB1bmRlZmluZWQsXG4gICAgICBoZWlnaHQ6IE51bWJlcihoZWlnaHRSZWYuY3VycmVudCkgfHwgdW5kZWZpbmVkLFxuICAgICAgY2hhbmdlZDogYXhpcyxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgbWF4SGVpZ2h0LFxuICAgICAgbG9jazogcmF0aW9Mb2NrZWQsXG4gICAgICByYXRpbzogc2l6ZVJhdGlvKCksXG4gICAgfSk7XG4gICAgY29uc3QgbmV4dFdpZHRoID0gZml0dGVkLndpZHRoID8gU3RyaW5nKGZpdHRlZC53aWR0aCkgOiAnJztcbiAgICBjb25zdCBuZXh0SGVpZ2h0ID0gZml0dGVkLmhlaWdodCA/IFN0cmluZyhmaXR0ZWQuaGVpZ2h0KSA6ICcnO1xuICAgIHdpZHRoUmVmLmN1cnJlbnQgPSBuZXh0V2lkdGg7XG4gICAgaGVpZ2h0UmVmLmN1cnJlbnQgPSBuZXh0SGVpZ2h0O1xuICAgIHNldFdpZHRoKG5leHRXaWR0aCk7XG4gICAgc2V0SGVpZ2h0KG5leHRIZWlnaHQpO1xuICAgIHdyaXRlVmFsdWUoe1xuICAgICAgLi4uZHJhZnQsXG4gICAgICB3aWR0aE1tOiBmaXR0ZWQud2lkdGgsXG4gICAgICBoZWlnaHRNbTogZml0dGVkLmhlaWdodCxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCB3cml0ZVRocmVhZHMgPSAobmV4dFRocmVhZHM6IHN0cmluZ1tdLCBuZXh0U291cmNlczogc3RyaW5nW10sIHF1b3RlID0gdHJ1ZSkgPT4ge1xuICAgIHdyaXRlVmFsdWUoe1xuICAgICAgLi4uZHJhZnQsXG4gICAgICBjb2xvdXJzOiBuZXh0VGhyZWFkcy5tYXAoZW1icm9pZGVyeUhleCksXG4gICAgICBzb3VyY2VDb2xvdXJzOiBuZXh0U291cmNlcy5tYXAoZW1icm9pZGVyeUhleCksXG4gICAgfSwgcXVvdGUpO1xuICB9O1xuXG4gIGNvbnN0IGNoYW5nZVRocmVhZCA9IChpbmRleDogbnVtYmVyLCBoZXg6IHN0cmluZywgcXVvdGUgPSBmYWxzZSkgPT4ge1xuICAgIGNvbnN0IG5leHRUaHJlYWRzID0gdGhyZWFkQ29sb3Vycy5zbGljZSgpO1xuICAgIG5leHRUaHJlYWRzW2luZGV4XSA9IGVtYnJvaWRlcnlIZXgoaGV4KTtcbiAgICB3cml0ZVRocmVhZHMobmV4dFRocmVhZHMsIHNvdXJjZUNvbG91cnMuc2xpY2UoMCwgbmV4dFRocmVhZHMubGVuZ3RoKSwgcXVvdGUpO1xuICB9O1xuXG4gIGNvbnN0IHJlbW92ZVRocmVhZCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKHRocmVhZENvbG91cnMubGVuZ3RoIDw9IDEpIHJldHVybjtcbiAgICB3cml0ZVRocmVhZHMoXG4gICAgICB0aHJlYWRDb2xvdXJzLmZpbHRlcigoXywgY29sb3VySW5kZXgpID0+IGNvbG91ckluZGV4ICE9PSBpbmRleCksXG4gICAgICBzb3VyY2VDb2xvdXJzLmZpbHRlcigoXywgY29sb3VySW5kZXgpID0+IGNvbG91ckluZGV4ICE9PSBpbmRleClcbiAgICApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZUZpbGVVcGxvYWRDb250YWluZXJ9PlxuICAgICAgPFZhcmlhdGlvbkxhYmVsXG4gICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgIHZhcmlhdGlvbkNsYXNzTmFtZT0nbWVyY2hpLWVtYmVkLWZvcm1faW5wdXQtZmlsZSdcbiAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICAvPlxuICAgICAge2ZpbGVNb2RlID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxEcm9wem9uZUlucHV0XG4gICAgICAgICAgICBhY2NlcHQ9Jy5qcGcsLmpwZWcsLnBuZywud2VicCwuZ2lmJ1xuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IG1lYXN1cmluZ31cbiAgICAgICAgICAgIG11bHRpcGxlPXtmYWxzZX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt2YXJpYXRpb25GaWVsZC5wbGFjZWhvbGRlciB8fCAnRHJvcCBhcnR3b3JrIGltYWdlOid9XG4gICAgICAgICAgICBvblVwbG9hZFN1Y2Nlc3M9eyh1cGxvYWRlZDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChmaWVsZHMubGVuZ3RoKSByZW1vdmUoMCk7XG4gICAgICAgICAgICAgIGFwcGVuZCh1cGxvYWRlZCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcHJldmlldz17ZmlsZSA/IChcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiA4IH19PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktZW1icm9pZGVyeS1wcmV2aWV3cyc+XG4gICAgICAgICAgICAgICAgICA8ZmlndXJlPlxuICAgICAgICAgICAgICAgICAgICB7YXJ0d29ya1VybCA/IChcbiAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICBhbHQ9e2ZpbGUubmFtZSB8fCAnT3JpZ2luYWwgYXJ0d29yayd9XG4gICAgICAgICAgICAgICAgICAgICAgICBzcmM9e2FydHdvcmtVcmx9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIDxmaWdjYXB0aW9uPk9yaWdpbmFsPC9maWdjYXB0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9maWd1cmU+XG4gICAgICAgICAgICAgICAgICB7YXJ0d29ya1VybCAmJiBzb3VyY2VDb2xvdXJzLmxlbmd0aCAmJiB0aHJlYWRDb2xvdXJzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICAgICAgPGZpZ3VyZT5cbiAgICAgICAgICAgICAgICAgICAgICA8RW1icm9pZGVyeUNvbG91clByZXZpZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17YXJ0d29ya1VybH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUNvbG91cnM9e3NvdXJjZUNvbG91cnN9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRDb2xvdXJzPXt0aHJlYWRDb2xvdXJzfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24+RW1icm9pZGVyeTwvZmlnY2FwdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9maWd1cmU+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT0nYnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSdSZW1vdmUgYXJ0d29yaydcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVGaWxlUHJldmlld0ljb25XcmFwcGVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgIGZpbGVDb2xvdXJLZXkuY3VycmVudCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKDApO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8RmFUaW1lcyBjbGFzc05hbWU9J2Nsb3NlLWljb24nIC8+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWVtYnJvaWRlcnktbWVhc3VyZScgc3R5bGU9e3sgZm9udFNpemU6IDEyIH19PlxuICAgICAgICAgICAgICAgICAge21lYXN1cmluZyA/IChcbiAgICAgICAgICAgICAgICAgICAgPENnU3Bpbm5lciBjbGFzc05hbWU9J2FuaW1hdGVfc3BpbicgYXJpYS1oaWRkZW4gLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAge3dpZHRoID8gYCR7d2lkdGh9IG1tIHdpZGVgIDogJ01lYXN1cmluZyB3aWR0aOKApid9XG4gICAgICAgICAgICAgICAgICB7JyDCtyAnfVxuICAgICAgICAgICAgICAgICAge2hlaWdodCA/IGAke2hlaWdodH0gbW0gaGlnaGAgOiAnTWVhc3VyaW5nIGhlaWdodOKApid9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAge3RocmVhZENvbG91cnMubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdtZXJjaGktZW1icm9pZGVyeS10aHJlYWRzJ1xuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3RocmVhZENvbG91cnMubWFwKChjb2xvdXIsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1lbWJyb2lkZXJ5LXRocmVhZCcga2V5PXtgJHtzb3VyY2VDb2xvdXJzW2luZGV4XSB8fCBjb2xvdXJ9LSR7aW5kZXh9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0nY29sb3InXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2BUaHJlYWQgY29sb3VyICR7aW5kZXggKyAxfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbG91cn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4gY2hhbmdlVGhyZWFkKGluZGV4LCBldmVudC50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhldmVudCkgPT4gY2hhbmdlVGhyZWFkKGluZGV4LCBldmVudC50YXJnZXQudmFsdWUsIHRydWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0nYnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtgUmVtb3ZlIGNvbG91ciAke2NvbG91cn1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWQgfHwgdGhyZWFkQ29sb3Vycy5sZW5ndGggPD0gMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVUaHJlYWQoaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RmFUaW1lcyAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3dhcm5pbmcgPyAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ndGV4dC1kYW5nZXInIHN0eWxlPXt7IGZvbnRTaXplOiAxMiB9fT57d2FybmluZ308L2Rpdj5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8SW5wdXRIaWRkZW5TdGF0aWNcbiAgICAgICAgICAgICAgICAgIG5hbWU9e2Ake2ZpbGVzTmFtZX1bMF0uaWRgfVxuICAgICAgICAgICAgICAgICAgcnVsZXM9e3sgcmVxdWlyZWQ6IHRydWUgfX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtmaWxlLmlkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAvPlxuICAgICAgICA8Lz5cbiAgICAgICkgOiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzc05hbWU9J2Zvcm0tY29udHJvbCdcbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIHZhbHVlPXt3b3JkaW5nfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3ZhcmlhdGlvbkZpZWxkLnBsYWNlaG9sZGVyIHx8ICdXb3JkaW5nJ31cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHNldFdvcmRpbmcoZXZlbnQudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBnYXA6IDgsIGZsZXhXcmFwOiAnd3JhcCcsIG1hcmdpblRvcDogOCB9fT5cbiAgICAgICAgICAgIHtjb2xvdXJzLm1hcCgoY29sb3VyLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBrZXk9e2Ake2NvbG91cn0tJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgIHR5cGU9J2NvbG9yJ1xuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2BUaHJlYWQgY29sb3VyICR7aW5kZXggKyAxfWB9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtjb2xvdXJ9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IGNvbG91cnMuc2xpY2UoKTtcbiAgICAgICAgICAgICAgICAgIG5leHRbaW5kZXhdID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgc2V0Q29sb3VycyhuZXh0KTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICB7Y29sb3Vycy5sZW5ndGggPCBtYXhDb2xvdXJzID8gKFxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT0nYnV0dG9uJ1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0nYnRuIGJ0bi1zbSBidG4tbGluaydcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0Q29sb3VycyhbLi4uY29sb3VycywgJyMwMDAwMDAnXSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBBZGQgY29sb3VyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICAgKX1cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBnYXA6IDgsIG1hcmdpblRvcDogOCB9fT5cbiAgICAgICAgPGxhYmVsIHN0eWxlPXt7IGZsZXg6IDEgfX0+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZGlzcGxheTogJ2Jsb2NrJywgZm9udFNpemU6IDEyIH19PldpZHRoIChtbSk8L3NwYW4+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzc05hbWU9J2Zvcm0tY29udHJvbCBtZXJjaGktZW1icm9pZGVyeS1zaXplLWlucHV0J1xuICAgICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICAgIGlucHV0TW9kZT0nZGVjaW1hbCdcbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSdXaWR0aCAobW0pJ1xuICAgICAgICAgICAgdmFsdWU9e3dpZHRofVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4gdXBkYXRlU2l6ZSgnd2lkdGgnLCBldmVudC50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgb25CbHVyPXsoKSA9PiBjb21taXRTaXplKCd3aWR0aCcpfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCBzdHlsZT17eyBmbGV4OiAxIH19PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdibG9jaycsIGZvbnRTaXplOiAxMiB9fT5IZWlnaHQgKG1tKTwvc3Bhbj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzTmFtZT0nZm9ybS1jb250cm9sIG1lcmNoaS1lbWJyb2lkZXJ5LXNpemUtaW5wdXQnXG4gICAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgICAgaW5wdXRNb2RlPSdkZWNpbWFsJ1xuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9J0hlaWdodCAobW0pJ1xuICAgICAgICAgICAgdmFsdWU9e2hlaWdodH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHVwZGF0ZVNpemUoJ2hlaWdodCcsIGV2ZW50LnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICBvbkJsdXI9eygpID0+IGNvbW1pdFNpemUoJ2hlaWdodCcpfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIHtlcnJvciA/IDxkaXYgY2xhc3NOYW1lPSd0ZXh0LWRhbmdlcic+e2Vycm9yfTwvZGl2PiA6IG51bGx9XG4gICAgICA8VmFyaWF0aW9uRXJyb3IgbmFtZT17bmFtZX0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVmFyaWF0aW9uRW1icm9pZGVyeUlucHV0O1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUFDLFNBQUFBLFFBQUFDLENBQUEsc0NBQUFELE9BQUEsd0JBQUFFLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBRixDQUFBLGtCQUFBQSxDQUFBLGdCQUFBQSxDQUFBLFdBQUFBLENBQUEseUJBQUFDLE1BQUEsSUFBQUQsQ0FBQSxDQUFBRyxXQUFBLEtBQUFGLE1BQUEsSUFBQUQsQ0FBQSxLQUFBQyxNQUFBLENBQUFHLFNBQUEscUJBQUFKLENBQUEsS0FBQUQsT0FBQSxDQUFBQyxDQUFBO0FBQUEsU0FBQUssbUJBQUFDLENBQUEsV0FBQUMsa0JB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RUFBRSxPQUFPO1lBQUVVLFFBQVEsRUFBRTtVQUFHLENBQUU7VUFBQXhLLFFBQUEsRUFBQztRQUFVLENBQU0sQ0FBQyxlQUNsRTdELElBQUE7VUFDRTRELFNBQVMsRUFBQywyQ0FBMkM7VUFDckRvSyxJQUFJLEVBQUMsTUFBTTtVQUNYZ0IsU0FBUyxFQUFDLFNBQVM7VUFDbkIxSyxRQUFRLEVBQUVBLFFBQVM7VUFDbkJnSixXQUFXLEVBQUMsWUFBWTtVQUN4QnpSLEtBQUssRUFBRW1HLEtBQU07VUFDYndNLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHTixLQUFLO1lBQUEsT0FBS2pDLFVBQVUsQ0FBQyxPQUFPLEVBQUVpQyxLQUFLLENBQUNPLE1BQU0sQ0FBQzVTLEtBQUssQ0FBQztVQUFBLENBQUM7VUFDN0Q2UyxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBQTtZQUFBLE9BQVFuQyxVQUFVLENBQUMsT0FBTyxDQUFDO1VBQUE7UUFBQyxDQUNuQyxDQUFDO01BQUEsQ0FDRyxDQUFDLGVBQ1JyTSxLQUFBO1FBQU93TixLQUFLLEVBQUU7VUFBRXFCLElBQUksRUFBRTtRQUFFLENBQUU7UUFBQWxMLFFBQUEsZ0JBQ3hCN0QsSUFBQTtVQUFNME4sS0FBSyxFQUFFO1lBQUVDLE9BQU8sRUFBRSxPQUFPO1lBQUVVLFFBQVEsRUFBRTtVQUFHLENBQUU7VUFBQXhLLFFBQUEsRUFBQztRQUFXLENBQU0sQ0FBQyxlQUNuRTdELElBQUE7VUFDRTRELFNBQVMsRUFBQywyQ0FBMkM7VUFDckRvSyxJQUFJLEVBQUMsTUFBTTtVQUNYZ0IsU0FBUyxFQUFDLFNBQVM7VUFDbkIxSyxRQUFRLEVBQUVBLFFBQVM7VUFDbkJnSixXQUFXLEVBQUMsYUFBYTtVQUN6QnpSLEtBQUssRUFBRW9HLE1BQU87VUFDZHVNLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFHTixLQUFLO1lBQUEsT0FBS2pDLFVBQVUsQ0FBQyxRQUFRLEVBQUVpQyxLQUFLLENBQUNPLE1BQU0sQ0FBQzVTLEtBQUssQ0FBQztVQUFBLENBQUM7VUFDOUQ2UyxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBQTtZQUFBLE9BQVFuQyxVQUFVLENBQUMsUUFBUSxDQUFDO1VBQUE7UUFBQyxDQUNwQyxDQUFDO01BQUEsQ0FDRyxDQUFDO0lBQUEsQ0FDTCxDQUFDLEVBQ0xqRixLQUFLLGdCQUFHdEgsSUFBQTtNQUFLNEQsU0FBUyxFQUFDLGFBQWE7TUFBQUMsUUFBQSxFQUFFeUQ7SUFBSyxDQUFNLENBQUMsR0FBRyxJQUFJLGVBQzFEdEgsSUFBQSxDQUFDVCxjQUFjO01BQUNaLElBQUksRUFBRUE7SUFBSyxDQUFFLENBQUM7RUFBQSxDQUMzQixDQUFDO0FBRVY7QUFFQSxlQUFlcUYsd0JBQXdCIiwiaWdub3JlTGlzdCI6W119
|