-
Notifications
You must be signed in to change notification settings - Fork 75
/
loading-bar.js
814 lines (808 loc) · 102 KB
/
loading-bar.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
// Generated by LiveScript 1.4.0
var presets, simpleStr, wrap, slice$ = [].slice, toString$ = {}.toString;
presets = require('./presets').presets;
simpleStr = function(arr){
return arr.join('');
};
wrap = function(content){
return "data:image/svg+xml;base64," + btoa(content);
};
(function(){
var make, handler, ldBar;
make = {
head: function(viewBox){
return "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"" + viewBox + "\">";
},
gradient: function(dir, dur){
var colors, ret, len, gx, gy, x, y, i$, i, idx;
dir == null && (dir = 45);
dur == null && (dur = 1);
colors = slice$.call(arguments, 2);
ret = [this.head("0 0 100 100")];
len = colors.length * 4 + 1;
dir = dir * Math.PI / 180;
gx = Math.pow(Math.cos(dir), 2);
gy = Math.sqrt(gx - Math.pow(gx, 2));
if (dir > Math.PI * 0.25) {
gy = Math.pow(Math.sin(dir), 2);
gx = Math.sqrt(gy - Math.pow(gy, 2));
}
x = gx * 100;
y = gy * 100;
ret.push("<defs><linearGradient id=\"gradient\" x1=\"0\" x2=\"" + gx + "\" y1=\"0\" y2=\"" + gy + "\">");
for (i$ = 0; i$ < len; ++i$) {
i = i$;
idx = i * 100 / (len - 1);
ret.push("<stop offset=\"" + idx + "%\" stop-color=\"" + colors[i % colors.length] + "\"/>");
}
ret.push("</linearGradient></defs>\n<rect x=\"0\" y=\"0\" width=\"400\" height=\"400\" fill=\"url(#gradient)\">\n<animateTransform attributeName=\"transform\" type=\"translate\" from=\"-" + x + ",-" + y + "\"\nto=\"0,0\" dur=\"" + dur + "s\" repeatCount=\"indefinite\"/></rect></svg>");
return wrap(ret.join(""));
},
stripe: function(c1, c2, dur){
var ret, i;
c1 == null && (c1 = '#b4b4b4');
c2 == null && (c2 = '#e6e6e6');
dur == null && (dur = 1);
ret = [this.head("0 0 100 100")];
ret = ret.concat([
"<rect fill=\"" + c2 + "\" width=\"100\" height=\"100\"/>", "<g><g>", (function(){
var i$, results$ = [];
for (i$ = 0; i$ < 13; ++i$) {
i = i$;
results$.push(("<polygon fill=\"" + c1 + "\" ") + ("points=\"" + (-90 + i * 20) + ",100 " + (-100 + i * 20) + ",") + ("100 " + (-60 + i * 20) + ",0 " + (-50 + i * 20) + ",0 \"/>"));
}
return results$;
}()).join(""), "</g><animateTransform attributeName=\"transform\" type=\"translate\" ", "from=\"0,0\" to=\"20,0\" dur=\"" + dur + "s\" repeatCount=\"indefinite\"/></g></svg>"
].join(""));
return wrap(ret);
},
bubble: function(c1, c2, count, dur, size, sw){
var ret, i$, i, idx, x, r, d;
c1 == null && (c1 = '#39d');
c2 == null && (c2 = '#9cf');
count == null && (count = 15);
dur == null && (dur = 1);
size == null && (size = 6);
sw == null && (sw = 1);
ret = [this.head("0 0 200 200"), "<rect x=\"0\" y=\"0\" width=\"200\" height=\"200\" fill=\"" + c1 + "\"/>"];
for (i$ = 0; i$ < count; ++i$) {
i = i$;
idx = -(i / count) * dur;
x = Math.random() * 184 + 8;
r = (Math.random() * 0.7 + 0.3) * size;
d = dur * (1 + Math.random() * 0.5);
ret.push(["<circle cx=\"" + x + "\" cy=\"0\" r=\"" + r + "\" fill=\"none\" stroke=\"" + c2 + "\" stroke-width=\"" + sw + "\">", "<animate attributeName=\"cy\" values=\"190;-10\" times=\"0;1\" ", "dur=\"" + d + "s\" begin=\"" + idx + "s\" repeatCount=\"indefinite\"/>", "</circle>", "<circle cx=\"" + x + "\" cy=\"0\" r=\"" + r + "\" fill=\"none\" stroke=\"" + c2 + "\" stroke-width=\"" + sw + "\">", "<animate attributeName=\"cy\" values=\"390;190\" times=\"0;1\" ", "dur=\"" + d + "s\" begin=\"" + idx + "s\" repeatCount=\"indefinite\"/>", "</circle>"].join(""));
}
return wrap(ret.join("") + "</svg>");
}
};
handler = {
queue: {},
running: false,
main: function(timestamp){
var keepon, removed, k, ref$, func, ret, this$ = this;
keepon = false;
removed = [];
for (k in ref$ = this.queue) {
func = ref$[k];
ret = func(timestamp);
if (!ret) {
removed.push(func);
}
keepon = keepon || ret;
}
for (k in ref$ = this.queue) {
func = ref$[k];
if (removed.indexOf(func) >= 0) {
delete this.queue[k];
}
}
if (keepon) {
return requestAnimationFrame(function(it){
return this$.main(it);
});
} else {
return this.running = false;
}
},
add: function(key, f){
var this$ = this;
if (!this.queue[key]) {
this.queue[key] = f;
}
if (!this.running) {
this.running = true;
return requestAnimationFrame(function(it){
return this$.main(it);
});
}
}
};
window.ldBar = ldBar = function(selector, option){
var xmlns, root, cls, idPrefix, id, domTree, newNode, x$, config, attr, that, isStroke, parseRes, dom, svg, text, group, length, path0, path1, patimg, img, ret, size, this$ = this;
option == null && (option = {});
xmlns = {
xlink: "http://www.w3.org/1999/xlink"
};
root = toString$.call(selector).slice(8, -1) === 'String' ? document.querySelector(selector) : selector;
if (!root.ldBar) {
root.ldBar = this;
} else {
return root.ldBar;
}
cls = root.getAttribute('class') || '';
if (!~cls.indexOf('ldBar')) {
root.setAttribute('class', cls + " ldBar");
}
idPrefix = "ldBar-" + Math.random().toString(16).substring(2);
id = {
key: idPrefix,
clip: idPrefix + "-clip",
filter: idPrefix + "-filter",
pattern: idPrefix + "-pattern",
mask: idPrefix + "-mask",
maskPath: idPrefix + "-mask-path"
};
domTree = function(n, o){
var k, v;
n = newNode(n);
for (k in o) {
v = o[k];
if (k !== 'attr') {
n.appendChild(domTree(k, v || {}));
}
}
n.attrs(o.attr || {});
return n;
};
newNode = function(n){
return document.createElementNS("http://www.w3.org/2000/svg", n);
};
x$ = document.body.__proto__.__proto__.__proto__;
x$.text = function(t){
return this.appendChild(document.createTextNode(t));
};
x$.attrs = function(o){
var k, v, ret, results$ = [];
for (k in o) {
v = o[k];
ret = /([^:]+):([^:]+)/.exec(k);
if (!ret || !xmlns[ret[1]]) {
results$.push(this.setAttribute(k, v));
} else {
results$.push(this.setAttributeNS(xmlns[ret[1]], k, v));
}
}
return results$;
};
x$.styles = function(o){
var k, v, results$ = [];
for (k in o) {
v = o[k];
results$.push(this.style[k] = v);
}
return results$;
};
x$.append = function(n){
var r;
return this.appendChild(r = document.createElementNS("http://www.w3.og/2000/svg", n));
};
x$.attr = function(n, v){
if (v != null) {
return this.setAttribute(n, v);
} else {
return this.getAttribute(n);
}
};
config = {
"type": 'stroke',
"img": '',
"path": 'M10 10L90 10M90 8M90 12',
"fill-dir": 'btt',
"fill": '#25b',
"fill-background": '#ddd',
"fill-background-extrude": 3,
"pattern-size": null,
"stroke-dir": 'normal',
"stroke": '#25b',
"stroke-width": '3',
"stroke-trail": '#ddd',
"stroke-trail-width": 0.5,
"duration": 1,
"easing": 'linear',
"value": 0,
"img-size": null,
"bbox": null,
"set-dim": true,
"aspect-ratio": "xMidYMid",
"transition-in": false,
"min": 0,
"max": 100,
"precision": 0,
"padding": undefined
};
config["preset"] = root.attr("data-preset") || option["preset"];
if (config.preset != null) {
import$(config, presets[config.preset]);
}
for (attr in config) {
if (that = that = root.attr("data-" + attr)) {
config[attr] = that;
}
}
import$(config, option);
if (config.img) {
config.path = null;
}
isStroke = config.type === 'stroke';
parseRes = function(v){
var parser, ret;
parser = /data:ldbar\/res,([^()]+)\(([^)]+)\)/;
ret = parser.exec(v);
if (!ret) {
return v;
}
return ret = make[ret[1]].apply(make, ret[2].split(','));
};
config.fill = parseRes(config.fill);
config.stroke = parseRes(config.stroke);
if (config["set-dim"] === 'false') {
config["set-dim"] = false;
}
dom = {
attr: {
"xmlns:xlink": 'http://www.w3.org/1999/xlink',
preserveAspectRatio: config["aspect-ratio"],
width: "100%",
height: "100%"
},
defs: {
filter: {
attr: {
id: id.filter,
x: -1,
y: -1,
width: 3,
height: 3
},
feMorphology: {
attr: {
operator: +config["fill-background-extrude"] >= 0 ? 'dilate' : 'erode',
radius: Math.abs(+config["fill-background-extrude"])
}
},
feColorMatrix: {
attr: {
values: '0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0',
result: "cm"
}
}
},
mask: {
attr: {
id: id.mask
},
image: {
attr: {
"xlink:href": config.img,
filter: "url(#" + id.filter + ")",
x: 0,
y: 0,
width: 100,
height: 100,
preserveAspectRatio: config["aspect-ratio"]
}
}
},
g: {
mask: {
attr: {
id: id.maskPath
},
path: {
attr: {
d: config.path || "",
fill: '#fff',
stroke: '#fff',
filter: "url(#" + id.filter + ")"
}
}
}
},
clipPath: {
attr: {
id: id.clip
},
rect: {
attr: {
'class': 'mask',
fill: '#000'
}
}
},
pattern: {
attr: {
id: id.pattern,
patternUnits: 'userSpaceOnUse',
x: 0,
y: 0,
width: 300,
height: 300
},
image: {
attr: {
x: 0,
y: 0,
width: 300,
height: 300
}
}
}
}
};
svg = domTree('svg', dom);
text = document.createElement('div');
text.setAttribute('class', 'ldBar-label');
root.appendChild(svg);
root.appendChild(text);
group = [0, 0];
length = 0;
this.fit = function(){
var that, box, d, rect;
if (that = config["bbox"]) {
box = that.split(' ').map(function(it){
return +it.trim();
});
box = {
x: box[0],
y: box[1],
width: box[2],
height: box[3]
};
} else {
box = group[1].getBBox();
}
if (!box || box.width === 0 || box.height === 0) {
box = {
x: 0,
y: 0,
width: 100,
height: 100
};
}
d = Math.max.apply(null, ['stroke-width', 'stroke-trail-width', 'fill-background-extrude'].map(function(it){
return config[it];
})) * 1.5;
if (config["padding"] != null) {
d = +config["padding"];
}
svg.attrs({
viewBox: [box.x - d, box.y - d, box.width + d * 2, box.height + d * 2].join(" ")
});
if (config["set-dim"]) {
['width', 'height'].map(function(it){
if (!root.style[it] || this$.fit[it]) {
root.style[it] = (box[it] + d * 2) + "px";
return this$.fit[it] = true;
}
});
}
rect = group[0].querySelector('rect');
if (rect) {
return rect.attrs({
x: box.x - d,
y: box.y - d,
width: box.width + d * 2,
height: box.height + d * 2
});
}
};
if (config.path) {
if (isStroke) {
group[0] = domTree('g', {
path: {
attr: {
d: config.path,
fill: 'none',
'class': 'baseline'
}
}
});
} else {
group[0] = domTree('g', {
rect: {
attr: {
x: 0,
y: 0,
width: 100,
height: 100,
mask: "url(#" + id.maskPath + ")",
fill: config["fill-background"],
'class': 'frame'
}
}
});
}
svg.appendChild(group[0]);
group[1] = domTree('g', {
path: {
attr: {
d: config.path,
'class': isStroke ? 'mainline' : 'solid',
"clip-path": config.type === 'fill' ? "url(#" + id.clip + ")" : ''
}
}
});
svg.appendChild(group[1]);
path0 = group[0].querySelector(isStroke ? 'path' : 'rect');
path1 = group[1].querySelector('path');
if (isStroke) {
path1.attrs({
fill: 'none'
});
}
patimg = svg.querySelector('pattern image');
img = new Image();
img.addEventListener('load', function(){
var box, that;
box = (that = config["pattern-size"])
? {
width: +that,
height: +that
}
: img.width && img.height
? {
width: img.width,
height: img.height
}
: {
width: 300,
height: 300
};
svg.querySelector('pattern').attrs({
width: box.width,
height: box.height
});
return patimg.attrs({
width: box.width,
height: box.height
});
});
if (/.+\..+|^data:/.exec(!isStroke
? config.fill
: config.stroke)) {
img.src = !isStroke
? config.fill
: config.stroke;
patimg.attrs({
"xlink:href": img.src
});
}
if (isStroke) {
path0.attrs({
stroke: config["stroke-trail"],
"stroke-width": config["stroke-trail-width"]
});
path1.attrs({
"stroke-width": config["stroke-width"],
stroke: /.+\..+|^data:/.exec(config.stroke)
? "url(#" + id.pattern + ")"
: config.stroke
});
}
if (config.fill && !isStroke) {
path1.attrs({
fill: /.+\..+|^data:/.exec(config.fill)
? "url(#" + id.pattern + ")"
: config.fill
});
}
length = path1.getTotalLength();
this.fit();
this.inited = true;
} else if (config.img) {
if (config["img-size"]) {
ret = config["img-size"].split(',');
size = {
width: +ret[0],
height: +ret[1]
};
} else {
size = {
width: 100,
height: 100
};
}
group[0] = domTree('g', {
rect: {
attr: {
x: 0,
y: 0,
width: 100,
height: 100,
mask: "url(#" + id.mask + ")",
fill: config["fill-background"]
}
}
});
svg.querySelector('mask image').attrs({
width: size.width,
height: size.height
});
group[1] = domTree('g', {
image: {
attr: {
width: size.width,
height: size.height,
x: 0,
y: 0,
preserveAspectRatio: config["aspect-ratio"],
"clip-path": config.type === 'fill' ? "url(#" + id.clip + ")" : '',
"xlink:href": config.img,
'class': 'solid'
}
}
});
img = new Image();
img.addEventListener('load', function(){
var ret, size;
if (config["img-size"]) {
ret = config["img-size"].split(',');
size = {
width: +ret[0],
height: +ret[1]
};
} else if (img.width && img.height) {
size = {
width: img.width,
height: img.height
};
} else {
size = {
width: 100,
height: 100
};
}
svg.querySelector('mask image').attrs({
width: size.width,
height: size.height
});
group[1].querySelector('image').attrs({
width: size.width,
height: size.height
});
this$.fit();
this$.set(undefined, false);
return this$.inited = true;
});
img.src = config.img;
svg.appendChild(group[0]);
svg.appendChild(group[1]);
}
svg.attrs({
width: '100%',
height: '100%'
});
this.transition = {
value: {
src: 0,
des: 0
},
time: {},
ease: function(t, b, c, d){
t = t / (d * 0.5);
if (t < 1) {
return c * 0.5 * t * t + b;
}
t = t - 1;
return -c * 0.5 * (t * (t - 2) - 1) + b;
},
handler: function(time, doTransition){
var ref$, min, max, prec, dv, dt, dur, v, p, node, style, box, dir;
doTransition == null && (doTransition = true);
if (this.time.src == null) {
this.time.src = time;
}
ref$ = [config["min"], config["max"], 1 / config["precision"]], min = ref$[0], max = ref$[1], prec = ref$[2];
ref$ = [this.value.des - this.value.src, (time - this.time.src) * 0.001, +config["duration"] || 1], dv = ref$[0], dt = ref$[1], dur = ref$[2];
v = doTransition
? this.ease(dt, this.value.src, dv, dur)
: this.value.des;
if (config.precision) {
v = Math.round(v * prec) / prec;
} else if (doTransition) {
v = Math.round(v);
}
v >= min || (v = min);
v <= max || (v = max);
text.textContent = v;
p = 100.0 * (v - min) / (max - min);
if (isStroke) {
node = path1;
style = {
"stroke-dasharray": config["stroke-dir"] === 'reverse'
? "0 " + length * (100 - p) * 0.01 + " " + length * p * 0.01 + " 0"
: p * 0.01 * length + " " + ((100 - p) * 0.01 * length + 1)
};
} else {
box = group[1].getBBox();
dir = config["fill-dir"];
style = dir === 'btt' || !dir
? {
y: box.y + box.height * (100 - p) * 0.01,
height: box.height * p * 0.01,
x: box.x,
width: box.width
}
: dir === 'ttb'
? {
y: box.y,
height: box.height * p * 0.01,
x: box.x,
width: box.width
}
: dir === 'ltr'
? {
y: box.y,
height: box.height,
x: box.x,
width: box.width * p * 0.01
}
: dir === 'rtl' ? {
y: box.y,
height: box.height,
x: box.x + box.width * (100 - p) * 0.01,
width: box.width * p * 0.01
} : void 8;
node = svg.querySelector('rect');
}
node.attrs(style);
if (dt >= dur) {
delete this.time.src;
return false;
}
return true;
},
start: function(src, des, doTransition){
var ref$, this$ = this;
ref$ = this.value;
ref$.src = src;
ref$.des = des;
!!(root.offsetWidth || root.offsetHeight || root.getClientRects().length);
if (!doTransition || !(root.offsetWidth || root.offsetHeight || root.getClientRects().length)) {
this.time.src = 0;
this.handler(1000, false);
return;
}
return handler.add(id.key, function(time){
return this$.handler(time);
});
}
};
this.set = function(v, doTransition){
var src, des;
doTransition == null && (doTransition = true);
src = this.value || 0;
if (v != null) {
this.value = v;
} else {
v = this.value;
}
des = this.value;
return this.transition.start(src, des, doTransition);
};
this.set(+config.value || 0, config["transition-in"]) || false;
return this;
};
return window.addEventListener('load', function(){
var i$, ref$, len$, node, results$ = [];
for (i$ = 0, len$ = (ref$ = document.querySelectorAll('.ldBar')).length; i$ < len$; ++i$) {
node = ref$[i$];
if (!node.ldBar) {
results$.push(node.ldBar = new ldBar(node));
}
}
return results$;
}, false);
})();
module.exports = ldBar;
function import$(obj, src){
var own = {}.hasOwnProperty;
for (var key in src) if (own.call(src, key)) obj[key] = src[key];
return obj;
}
},{"./presets":2}],2:[function(require,module,exports){
// Generated by LiveScript 1.4.0
var presets, out$ = typeof exports != 'undefined' && exports || this;
out$.presets = presets = {
rainbow: {
"type": 'stroke',
"path": 'M10 10L90 10',
"stroke": 'data:ldbar/res,gradient(0,1,#a551df,#fd51ad,#ff7f82,#ffb874,#ffeb90)',
"bbox": "10 10 80 10"
},
energy: {
"type": 'fill',
"path": 'M15 5L85 5A5 5 0 0 1 85 15L15 15A5 5 0 0 1 15 5',
"stroke": '#f00',
"fill": 'data:ldbar/res,gradient(45,2,#4e9,#8fb,#4e9)',
"fill-dir": "ltr",
"fill-background": '#444',
"fill-background-extrude": 1,
"bbox": "10 5 80 10"
},
stripe: {
"type": 'fill',
"path": 'M15 5L85 5A5 5 0 0 1 85 15L15 15A5 5 0 0 1 15 5',
"stroke": '#f00',
"fill": 'data:ldbar/res,stripe(#25b,#58e,1)',
"fill-dir": "ltr",
"fill-background": '#ddd',
"fill-background-extrude": 1,
"bbox": "10 5 80 10"
},
text: {
"type": 'fill',
"img": "data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"70\" height=\"20\" viewBox=\"0 0 70 20\"><text x=\"35\" y=\"10\" text-anchor=\"middle\" dominant-baseline=\"central\" font-family=\"arial\">LOADING</text></svg>",
"fill-background-extrude": 1.3,
"pattern-size": 100,
"fill-dir": "ltr",
"img-size": "70,20",
"bbox": "0 0 70 20"
},
line: {
"type": 'stroke',
"path": 'M10 10L90 10',
"stroke": '#25b',
"stroke-width": 3,
"stroke-trail": '#ddd',
"stroke-trail-width": 1,
"bbox": "10 10 80 10"
},
fan: {
"type": 'stroke',
"path": 'M10 90A40 40 0 0 1 90 90',
"fill-dir": 'btt',
"fill": '#25b',
"fill-background": '#ddd',
"fill-background-extrude": 3,
"stroke-dir": 'normal',
"stroke": '#25b',
"stroke-width": '3',
"stroke-trail": '#ddd',
"stroke-trail-width": 0.5,
"bbox": "10 50 80 40"
},
circle: {
"type": 'stroke',
"path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10',
"fill-dir": 'btt',
"fill": '#25b',
"fill-background": '#ddd',
"fill-background-extrude": 3,
"stroke-dir": 'normal',
"stroke": '#25b',
"stroke-width": '3',
"stroke-trail": '#ddd',
"stroke-trail-width": 0.5,
"bbox": "10 10 80 80"
},
bubble: {
"type": 'fill',
"path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10',
"fill-dir": 'btt',
"fill": 'data:ldbar/res,bubble(#39d,#cef)',
"pattern-size": "150",
"fill-background": '#ddd',
"fill-background-extrude": 2,
"stroke-dir": 'normal',
"stroke": '#25b',
"stroke-width": '3',
"stroke-trail": '#ddd',
"stroke-trail-width": 0.5,
"bbox": "10 10 80 80"
}
};
},{}]},{},[1])
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvdGtpcmJ5L3dvcmtzcGFjZS96YnJ5aWt0L2xvYWRpbmcvcHJvamVjdHMvbGRCYXIvbG9hZGluZy1iYXIvc3JjL2xvYWRpbmctYmFyLmxzIiwiL1VzZXJzL3RraXJieS93b3Jrc3BhY2UvemJyeWlrdC9sb2FkaW5nL3Byb2plY3RzL2xkQmFyL2xvYWRpbmctYmFyL3NyYy9wcmVzZXRzLmxzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7QUNBdUIsT0FBSCxDQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsV0FBQSxDQUFBLENBQUc7QUFFdkIsU0FBVyxDQUFBLENBQUEsQ0FBRSxRQUFBLENBQUEsR0FBQTtTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUE7O0FBQy9CLElBQUssQ0FBQSxDQUFBLENBQUUsUUFBQSxDQUFBLE9BQUE7U0FBeUMsNEJBQUMsQ0FBQSxDQUFBLENBQUUsSUFBRixDQUFPLE9BQUQ7O0FBRXZELENBQUcsUUFBQSxDQUFBLENBQUgsQ0FBQTtBQUFBLE1BQUEsSUFBQSxFQUFBLE9BQUEsRUFBQSxLQUFBO0FBQUEsRUFDSSxJQUFLLENBQUEsQ0FBQSxDQUNELENBRlI7QUFBQSxJQUVRLElBRlIsRUFFYyxRQUFBLENBQUEsT0FBQSxDQUZkLENBQUE7QUFBQSxNQUFBLE1BQUEsQ0FFMkIsMEdBQUEsQ0FBQSxDQUFBLENBRThDLE9BQUEsQ0FBQSxDQUFBLENBQUEsS0FKekUsQ0FBQTtBQUFBLElBQUEsQ0FBQSxDQUFBO0FBQUEsSUFPUSxRQVBSLEVBT2tCLFFBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxDQVBsQixDQUFBO0FBQUEsVUFBQSxNQUFBLEVBQUEsR0FBQSxFQUFBLEdBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLENBQUEsRUFBQSxDQUFBLEVBQUEsRUFBQSxFQUFBLENBQUEsRUFBQSxHQUFBO0FBQUEsTUFPbUIsR0FQbkIsUUFBQSxDQUFBLEVB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O0lBQ00sMkJBQUU7SUFDZixjQUFFO0lBQ04sVUFBRTtJQUNJLGdCQUFFO0lBQ0YsZ0JBQUU7SUFDSSxzQkFBRTtJQUNoQixRQUFlO0VBWGY7RUFZVixRQUNVO0lBQUEsUUFBRTtJQUNGLFFBQUU7SUFDRSxZQUFFO0lBQ04sUUFBRTtJQUNTLG1CQUFFO0lBQ00sMkJBQUU7SUFDZixjQUFFO0lBQ04sVUFBRTtJQUNJLGdCQUFFO0lBQ0YsZ0JBQUU7SUFDSSxzQkFBRTtJQUNoQixRQUFlO0VBWGY7RUFZVixRQUNVO0lBQUEsUUFBRTtJQUNGLFFBQUU7SUFDRSxZQUFFO0lBQ04sUUFBRTtJQUNNLGdCQUFPO0lBQ0osbUJBQUU7SUFDTSwyQkFBRTtJQUNmLGNBQUU7SUFDTixVQUFFO0lBQ0ksZ0JBQUU7SUFDRixnQkFBRTtJQUNJLHNCQUFFO0lBQ2hCLFFBQWU7RUFaZjtBQWxFViIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCJyZXF1aXJlISBcIi4vcHJlc2V0c1wiOiB7cHJlc2V0c31cblxuc2ltcGxlLXN0ciA9IChhcnIpIC0+IGFyci5qb2luICcnXG53cmFwID0gKGNvbnRlbnQpIC0+IFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxcIiArIGJ0b2EoY29udGVudClcblxuZG8gLT5cbiAgICBtYWtlID1cbiAgICAgICAgaGVhZDogKHZpZXdCb3gpIC0+IFwiXCJcIlxuICAgICAgICAgICAgICAgIDw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cInV0Zi04XCI/PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIiN2aWV3Qm94XCI+XG4gICAgICAgICAgICAgICAgXCJcIlwiXG5cbiAgICAgICAgZ3JhZGllbnQ6IChkaXIgPSA0NSwgZHVyID0gMSwgLi4uY29sb3JzKSAtPlxuICAgICAgICAgICAgcmV0ID0gW0BoZWFkIFwiMCAwIDEwMCAxMDBcIl1cbiAgICAgICAgICAgIGxlbiA9IGNvbG9ycy5sZW5ndGggKiA0ICsgMVxuICAgICAgICAgICAgZGlyID0gZGlyICogTWF0aC5QSSAvIDE4MFxuICAgICAgICAgICAgZ3ggPSBNYXRoLmNvcyhkaXIpICoqIDJcbiAgICAgICAgICAgIGd5ID0gTWF0aC5zcXJ0KGd4IC0gZ3ggKiogMilcbiAgICAgICAgICAgIGlmIGRpciA+IE1hdGguUEkgKiAwLjI1ID0+XG4gICAgICAgICAgICAgICAgZ3kgPSBNYXRoLnNpbihkaXIpICoqIDJcbiAgICAgICAgICAgICAgICBneCA9IE1hdGguc3FydChneSAtIGd5ICoqIDIpXG4gICAgICAgICAgICB4ID0gZ3ggKiAxMDBcbiAgICAgICAgICAgIHkgPSBneSAqIDEwMFxuICAgICAgICAgICAgcmV0LnB1c2ggXCJcIlwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVwiZ3JhZGllbnRcIiB4MT1cIjBcIiB4Mj1cIiNneFwiIHkxPVwiMFwiIHkyPVwiI2d5XCI+XCJcIlwiXG4gICAgICAgICAgICBmb3IgaSBmcm9tIDAgdGlsIGxlbiA9PlxuICAgICAgICAgICAgICAgIGlkeCA9IGkgKiAxMDAgLyAobGVuIC0gMSlcbiAgICAgICAgICAgICAgICByZXQucHVzaCBcIlwiXCI8c3RvcCBvZmZzZXQ9XCIje2lkeH0lXCIgc3RvcC1jb2xvcj1cIiN7Y29sb3JzW2kgJSBjb2xvcnMubGVuZ3RoXX1cIi8+XCJcIlwiXG4gICAgICAgICAgICByZXQucHVzaCBcIlwiXCJcbiAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PjwvZGVmcz5cbiAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MDBcIiBoZWlnaHQ9XCI0MDBcIiBmaWxsPVwidXJsKFxcI2dyYWRpZW50KVwiPlxuICAgICAgICAgICAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9XCJ0cmFuc2Zvcm1cIiB0eXBlPVwidHJhbnNsYXRlXCIgZnJvbT1cIi0jeCwtI3lcIlxuICAgICAgICAgICAgICAgIHRvPVwiMCwwXCIgZHVyPVwiI3tkdXJ9c1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz48L3JlY3Q+PC9zdmc+XG4gICAgICAgICAgICAgICAgXCJcIlwiXG4gICAgICAgICAgICB3cmFwIHJldC5qb2luKFwiXCIpXG5cbiAgICAgICAgc3RyaXBlOiAoYzE9XFwjYjRiNGI0LCBjMj1cXCNlNmU2ZTYsIGR1ciA9IDEpIC0+XG4gICAgICAgICAgICByZXQgPSBbQGhlYWQgXCIwIDAgMTAwIDEwMFwiXVxuICAgICAgICAgICAgcmV0ICsrPSBbXG4gICAgICAgICAgICAgICAgXCJcIlwiPHJlY3QgZmlsbD1cIiNjMlwiIHdpZHRoPVwiMTAwXCIgaGVpZ2h0PVwiMTAwXCIvPlwiXCJcIlxuICAgICAgICAgICAgICAgIFwiXCJcIjxnPjxnPlwiXCJcIlxuICAgICAgICAgICAgICAgIFtcIlwiXCI8cG9seWdvbiBmaWxsPVwiI2MxXCIgXCJcIlwiICtcbiAgICAgICAgICAgICAgICAgXCJcIlwicG9pbnRzPVwiI3stOTAgKyBpICogMjB9LDEwMCAjey0xMDAgKyBpICogMjB9LFwiXCJcIiArXG4gICAgICAgICAgICAgICAgIFwiXCJcIjEwMCAjey02MCArIGkgKiAyMH0sMCAjey01MCArIGkgKiAyMH0sMCBcIi8+XCJcIlwiIGZvciBpIGZyb20gMCB0aWwgMTNdLmpvaW4oXCJcIilcbiAgICAgICAgICAgICAgICBcIlwiXCI8L2c+PGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiIHR5cGU9XCJ0cmFuc2xhdGVcIiBcIlwiXCJcbiAgICAgICAgICAgICAgICBcIlwiXCJmcm9tPVwiMCwwXCIgdG89XCIyMCwwXCIgZHVyPVwiI3tkdXJ9c1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz48L2c+PC9zdmc+XCJcIlwiXG4gICAgICAgICAgICBdLmpvaW4oXCJcIilcbiAgICAgICAgICAgIHdyYXAgcmV0XG5cbiAgICAgICAgYnViYmxlOiAoYzEgPSBcXCMzOWQsIGMyID0gXFwjOWNmLCBjb3VudCA9IDE1LCBkdXIgPSAxLCBzaXplID0gNiwgc3c9MSkgLT5cbiAgICAgICAgICAgIHJldCA9IFtAaGVhZChcIjAgMCAyMDAgMjAwXCIpLCBcIlwiXCI8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIyMDBcIiBoZWlnaHQ9XCIyMDBcIiBmaWxsPVwiI2MxXCIvPlwiXCJcIl1cbiAgICAgICAgICAgIGZvciBpIGZyb20gMCB0aWwgY291bnQgPT5cbiAgICAgICAgICAgICAgICBpZHggPSAtKGkgLyBjb3VudCkgKiBkdXJcbiAgICAgICAgICAgICAgICB4ID0gTWF0aC5yYW5kb20hICogMTg0ICsgOFxuICAgICAgICAgICAgICAgIHIgPSAoIE1hdGgucmFuZG9tISAqIDAuNyArIDAuMyApICogc2l6ZVxuICAgICAgICAgICAgICAgIGQgPSBkdXIgKiAoMSArIE1hdGgucmFuZG9tISAqIDAuNSlcbiAgICAgICAgICAgICAgICByZXQucHVzaCBbXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcIjxjaXJjbGUgY3g9XCIjeFwiIGN5PVwiMFwiIHI9XCIjclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiI2MyXCIgc3Ryb2tlLXdpZHRoPVwiI3N3XCI+XCJcIlwiXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcIjxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9XCJjeVwiIHZhbHVlcz1cIjE5MDstMTBcIiB0aW1lcz1cIjA7MVwiIFwiXCJcIlxuICAgICAgICAgICAgICAgICAgICBcIlwiXCJkdXI9XCIje2R9c1wiIGJlZ2luPVwiI3tpZHh9c1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz5cIlwiXCJcbiAgICAgICAgICAgICAgICAgICAgXCJcIlwiPC9jaXJjbGU+XCJcIlwiXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcIjxjaXJjbGUgY3g9XCIjeFwiIGN5PVwiMFwiIHI9XCIjclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiI2MyXCIgc3Ryb2tlLXdpZHRoPVwiI3N3XCI+XCJcIlwiXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcIjxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9XCJjeVwiIHZhbHVlcz1cIjM5MDsxOTBcIiB0aW1lcz1cIjA7MVwiIFwiXCJcIlxuICAgICAgICAgICAgICAgICAgICBcIlwiXCJkdXI9XCIje2R9c1wiIGJlZ2luPVwiI3tpZHh9c1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz5cIlwiXCJcbiAgICAgICAgICAgICAgICAgICAgXCJcIlwiPC9jaXJjbGU+XCJcIlwiXG4gICAgICAgICAgICAgICAgXS5qb2luKFwiXCIpXG4gICAgICAgICAgICB3cmFwKHJldC5qb2luKFwiXCIpICsgXCI8L3N2Zz5cIilcblxuICAgIGhhbmRsZXIgPVxuICAgICAgICBxdWV1ZToge31cbiAgICAgICAgcnVubmluZzogZmFsc2VcbiAgICAgICAgbWFpbjogKHRpbWVzdGFtcCkgLT5cbiAgICAgICAgICAgIGtlZXBvbiA9IGZhbHNlXG4gICAgICAgICAgICByZW1vdmVkID0gW11cbiAgICAgICAgICAgIGZvciBrLGZ1bmMgb2YgQHF1ZXVlID0+XG4gICAgICAgICAgICAgICAgcmV0ID0gZnVuYyB0aW1lc3RhbXBcbiAgICAgICAgICAgICAgICBpZiAhcmV0ID0+IHJlbW92ZWQucHVzaCBmdW5jXG4gICAgICAgICAgICAgICAga2VlcG9uID0ga2VlcG9uIG9yIHJldFxuICAgICAgICAgICAgZm9yIGssZnVuYyBvZiBAcXVldWUgPT4gaWYgcmVtb3ZlZC5pbmRleE9mKGZ1bmMpID49IDAgPT4gZGVsZXRlIEBxdWV1ZVtrXVxuICAgICAgICAgICAgaWYga2VlcG9uID0+IHJlcXVlc3RBbmltYXRpb25GcmFtZSAofj4gQG1haW4gaXQpXG4gICAgICAgICAgICBlbHNlIEBydW5uaW5nID0gZmFsc2VcbiAgICAgICAgYWRkOiAoa2V5LCBmKSAtPlxuICAgICAgICAgICAgaWYgIUBxdWV1ZVtrZXldID0+IEBxdWV1ZVtrZXldID0gZlxuICAgICAgICAgICAgaWYgIUBydW5uaW5nID0+XG4gICAgICAgICAgICAgICAgQHJ1bm5pbmcgPSB0cnVlXG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lICh+PiBAbWFpbiBpdClcblxuXG4gICAgd2luZG93LmxkQmFyID0gbGRCYXIgPSAoc2VsZWN0b3IsIG9wdGlvbiA9IHt9KSAtPlxuICAgICAgICB4bWxucyA9IHhsaW5rOiBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgICAgICByb290ID0gaWYgdHlwZW9mISBzZWxlY3RvciBpcyBcXFN0cmluZ1xuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvciBzZWxlY3RvclxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzZWxlY3RvclxuXG4gICAgICAgIGlmICFyb290LmxkQmFyID0+IHJvb3QubGRCYXIgPSBAXG4gICAgICAgIGVsc2UgcmV0dXJuIHJvb3QubGRCYXJcblxuICAgICAgICBjbHMgPSByb290LmdldEF0dHJpYnV0ZShcXGNsYXNzKSBvciAnJ1xuICAgICAgICBpZiAhfmNscy5pbmRleE9mKCdsZEJhcicpID0+IHJvb3Quc2V0QXR0cmlidXRlIFxcY2xhc3MsIFwiI2NscyBsZEJhclwiXG4gICAgICAgIGlkLXByZWZpeCA9IFwibGRCYXItI3tNYXRoLnJhbmRvbSF0b1N0cmluZyAxNiAuc3Vic3RyaW5nIDJ9XCJcbiAgICAgICAgaWQgPVxuICAgICAgICAgICAga2V5OiBpZC1wcmVmaXhcbiAgICAgICAgICAgIGNsaXA6IFwiI3tpZC1wcmVmaXh9LWNsaXBcIlxuICAgICAgICAgICAgZmlsdGVyOiBcIiN7aWQtcHJlZml4fS1maWx0ZXJcIlxuICAgICAgICAgICAgcGF0dGVybjogXCIje2lkLXByZWZpeH0tcGF0dGVyblwiXG4gICAgICAgICAgICBtYXNrOiBcIiN7aWQtcHJlZml4fS1tYXNrXCJcbiAgICAgICAgICAgIG1hc2stcGF0aDogXCIje2lkLXByZWZpeH0tbWFzay1wYXRoXCJcbiAgICAgICAgZG9tVHJlZSA9IChuLG8pIC0+XG4gICAgICAgICAgICBuID0gbmV3Tm9kZSBuXG4gICAgICAgICAgICBmb3Igayx2IG9mIG8gPT4gaWYgayAhPSBcXGF0dHIgPT4gbi5hcHBlbmRDaGlsZCBkb21UcmVlKGssIHYgb3Ige30pXG4gICAgICAgICAgICBuLmF0dHJzKG8uYXR0ciBvciB7fSlcbiAgICAgICAgICAgIG5cbiAgICAgICAgbmV3Tm9kZSA9IChuKSAtPiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMgXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBuXG4gICAgICAgIGRvY3VtZW50LmJvZHkuX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX19cbiAgICAgICAgICAgIC4udGV4dCA9ICh0KSAtPiBAYXBwZW5kQ2hpbGQgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodClcbiAgICAgICAgICAgIC4uYXR0cnMgPSAobykgLT4gZm9yIGssdiBvZiBvID0+XG4gICAgICAgICAgICAgICAgcmV0ID0gLyhbXjpdKyk6KFteOl0rKS8uZXhlYyhrKVxuICAgICAgICAgICAgICAgIGlmICFyZXQgb3IgIXhtbG5zW3JldC4xXSA9PiBAc2V0QXR0cmlidXRlIGssIHZcbiAgICAgICAgICAgICAgICBlbHNlIEBzZXRBdHRyaWJ1dGVOUyB4bWxuc1tyZXQuMV0sIGssIHZcbiAgICAgICAgICAgIC4uc3R5bGVzID0gKG8pIC0+IGZvciBrLHYgb2YgbyA9PiBAc3R5bGVba10gPSB2XG4gICAgICAgICAgICAuLmFwcGVuZCA9IChuKSAtPiBAYXBwZW5kQ2hpbGQgciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyBcImh0dHA6Ly93d3cudzMub2cvMjAwMC9zdmdcIiwgblxuICAgICAgICAgICAgLi5hdHRyID0gKG4sdikgLT4gaWYgdj8gPT4gQHNldEF0dHJpYnV0ZSBuLCB2IGVsc2UgQGdldEF0dHJpYnV0ZSBuXG4gICAgICAgIGNvbmZpZyA9XG4gICAgICAgICAgICBcInR5cGVcIjogJ3N0cm9rZSdcbiAgICAgICAgICAgIFwiaW1nXCI6ICcnXG4gICAgICAgICAgICBcInBhdGhcIjogJ00xMCAxMEw5MCAxME05MCA4TTkwIDEyJ1xuICAgICAgICAgICAgXCJmaWxsLWRpclwiOiBcXGJ0dFxuICAgICAgICAgICAgXCJmaWxsXCI6IFxcIzI1YlxuICAgICAgICAgICAgXCJmaWxsLWJhY2tncm91bmRcIjogXFwjZGRkXG4gICAgICAgICAgICBcImZpbGwtYmFja2dyb3VuZC1leHRydWRlXCI6IDNcbiAgICAgICAgICAgIFwicGF0dGVybi1zaXplXCI6IG51bGxcbiAgICAgICAgICAgIFwic3Ryb2tlLWRpclwiOiBcXG5vcm1hbFxuICAgICAgICAgICAgXCJzdHJva2VcIjogXFwjMjViXG4gICAgICAgICAgICBcInN0cm9rZS13aWR0aFwiOiBcXDNcbiAgICAgICAgICAgIFwic3Ryb2tlLXRyYWlsXCI6IFxcI2RkZFxuICAgICAgICAgICAgXCJzdHJva2UtdHJhaWwtd2lkdGhcIjogMC41XG4gICAgICAgICAgICBcImR1cmF0aW9uXCI6IDFcbiAgICAgICAgICAgIFwiZWFzaW5nXCI6IFxcbGluZWFyXG4gICAgICAgICAgICBcInZhbHVlXCI6IDBcbiAgICAgICAgICAgIFwiaW1nLXNpemVcIjogbnVsbFxuICAgICAgICAgICAgXCJiYm94XCI6IG51bGxcbiAgICAgICAgICAgIFwic2V0LWRpbVwiOiB0cnVlXG4gICAgICAgICAgICBcImFzcGVjdC1yYXRpb1wiOiBcInhNaWRZTWlkXCJcbiAgICAgICAgICAgIFwidHJhbnNpdGlvbi1pblwiOiBmYWxzZVxuICAgICAgICAgICAgXCJtaW5cIjogMFxuICAgICAgICAgICAgXCJtYXhcIjogMTAwXG4gICAgICAgICAgICBcInByZWNpc2lvblwiOiAwXG4gICAgICAgICAgICBcInBhZGRpbmdcIjogdW5kZWZpbmVkXG5cbiAgICAgICAgY29uZmlnW1wicHJlc2V0XCJdID0gcm9vdC5hdHRyKFwiZGF0YS1wcmVzZXRcIikgb3Igb3B0aW9uW1wicHJlc2V0XCJdXG5cbiAgICAgICAgaWYgY29uZmlnLnByZXNldD9cbiAgICAgICAgICAgICMgdXNlIHRoZSBkZWZhdWx0IHByZXNldFxuICAgICAgICAgICAgY29uZmlnIDw8PCBwcmVzZXRzW2NvbmZpZy5wcmVzZXRdXG5cbiAgICAgICAgIyBvdmVyd3JpdGUgaWYgdGhlcmUgYXJlIGFyZ3VtZW50cyBwYXNzZWQgdmlhIGRhdGEtKiBhdHRyaWJ1dGVzXG4gICAgICAgIGZvciBhdHRyIG9mIGNvbmZpZ1xuICAgICAgICAgICAgaWYgdGhhdCA9IHJvb3QuYXR0ciBcImRhdGEtI3thdHRyfVwiXG4gICAgICAgICAgICAgICAgY29uZmlnW2F0dHJdID0gdGhhdFxuXG4gICAgICAgIGNvbmZpZyA8PDwgb3B0aW9uXG4gICAgICAgIGlmIGNvbmZpZy5pbWcgPT4gY29uZmlnLnBhdGggPSBudWxsXG5cbiAgICAgICAgaXMtc3Ryb2tlID0gY29uZmlnLnR5cGUgPT0gXFxzdHJva2VcbiAgICAgICAgcGFyc2UtcmVzID0gKHYpIC0+XG4gICAgICAgICAgICBwYXJzZXIgPSAvZGF0YTpsZGJhclxcL3JlcywoW14oKV0rKVxcKChbXildKylcXCkvXG4gICAgICAgICAgICByZXQgPSBwYXJzZXIuZXhlYyh2KVxuICAgICAgICAgICAgaWYgIXJldCA9PiByZXR1cm4gdlxuICAgICAgICAgICAgcmV0ID0gbWFrZVtyZXQuMV0uYXBwbHkgbWFrZSwgcmV0LjIuc3BsaXQoXFwsKVxuICAgICAgICBjb25maWcuZmlsbCA9IHBhcnNlLXJlcyBjb25maWcuZmlsbFxuICAgICAgICBjb25maWcuc3Ryb2tlID0gcGFyc2UtcmVzIGNvbmZpZy5zdHJva2VcbiAgICAgICAgaWYgY29uZmlnW1wic2V0LWRpbVwiXSA9PSBcXGZhbHNlID0+IGNvbmZpZ1tcInNldC1kaW1cIl0gPSBmYWxzZVxuXG4gICAgICAgIGRvbSA9XG4gICAgICAgICAgICBhdHRyOlxuICAgICAgICAgICAgICAgIFwieG1sbnM6eGxpbmtcIjogXFxodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXG4gICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbzogY29uZmlnW1wiYXNwZWN0LXJhdGlvXCJdXG4gICAgICAgICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLCBoZWlnaHQ6IFwiMTAwJVwiXG4gICAgICAgICAgICBkZWZzOlxuICAgICAgICAgICAgICAgIGZpbHRlcjpcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogaWQ6IGlkLmZpbHRlciwgeDogLTEsIHk6IC0xLCB3aWR0aDogMywgaGVpZ2h0OiAzXG4gICAgICAgICAgICAgICAgICAgIGZlTW9ycGhvbG9neTogYXR0cjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiAoaWYgK2NvbmZpZ1tcImZpbGwtYmFja2dyb3VuZC1leHRydWRlXCJdPj0wID0+IFxcZGlsYXRlIGVsc2UgXFxlcm9kZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJhZGl1czogTWF0aC5hYnMoK2NvbmZpZ1tcImZpbGwtYmFja2dyb3VuZC1leHRydWRlXCJdKVxuICAgICAgICAgICAgICAgICAgICBmZUNvbG9yTWF0cml4OiBhdHRyOiB7dmFsdWVzOiAnMCAwIDAgMCAxICAgIDAgMCAwIDAgMSAgICAwIDAgMCAwIDEgICAgMCAwIDAgMSAwJywgcmVzdWx0OiBcImNtXCJ9XG4gICAgICAgICAgICAgICAgbWFzazpcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogaWQ6IGlkLm1hc2tcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IGF0dHI6XG4gICAgICAgICAgICAgICAgICAgICAgICBcInhsaW5rOmhyZWZcIjogY29uZmlnLmltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBcInVybChcXCMje2lkLmZpbHRlcn0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IDAsIHk6IDAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBjb25maWdbXCJhc3BlY3QtcmF0aW9cIl1cblxuICAgICAgICAgICAgICAgIGc6XG4gICAgICAgICAgICAgICAgICAgIG1hc2s6XG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyOiBpZDogaWQubWFzay1wYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBhdHRyOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ6IGNvbmZpZy5wYXRoIG9yIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBcXCNmZmZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6IFxcI2ZmZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogXCJ1cmwoXFwjI3tpZC5maWx0ZXJ9KVwiXG5cbiAgICAgICAgICAgICAgICBjbGlwUGF0aDpcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogaWQ6IGlkLmNsaXBcbiAgICAgICAgICAgICAgICAgICAgcmVjdDoge2F0dHI6IGNsYXNzOiBcXG1hc2ssIGZpbGw6IFxcIzAwMH1cbiAgICAgICAgICAgICAgICBwYXR0ZXJuOlxuICAgICAgICAgICAgICAgICAgICBhdHRyOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLnBhdHRlcm4sIHBhdHRlcm5Vbml0czogXFx1c2VyU3BhY2VPblVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgeDowLCB5OiAwLCB3aWR0aDogMzAwLCBoZWlnaHQ6IDMwMFxuICAgICAgICAgICAgICAgICAgICBpbWFnZTogYXR0cjogeDogMCwgeTogMCwgd2lkdGg6IDMwMCwgaGVpZ2h0OiAzMDBcblxuICAgICAgICBzdmcgPSBkb21UcmVlIFxcc3ZnLCBkb21cbiAgICAgICAgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgXFxkaXZcbiAgICAgICAgdGV4dC5zZXRBdHRyaWJ1dGUgXFxjbGFzcywgXFxsZEJhci1sYWJlbFxuICAgICAgICByb290LmFwcGVuZENoaWxkIHN2Z1xuICAgICAgICByb290LmFwcGVuZENoaWxkIHRleHRcblxuICAgICAgICBncm91cCA9IFswLDBdXG4gICAgICAgIGxlbmd0aCA9IDBcblxuICAgICAgICBAZml0ID0gfj5cbiAgICAgICAgICAgIGlmIGNvbmZpZ1tcImJib3hcIl0gPT5cbiAgICAgICAgICAgICAgYm94ID0gdGhhdC5zcGxpdCgnICcpLm1hcCgtPisoaXQudHJpbSEpKVxuICAgICAgICAgICAgICBib3ggPSB7eDogYm94LjAsIHk6IGJveC4xLCB3aWR0aDogYm94LjIsIGhlaWdodDogYm94LjN9XG4gICAgICAgICAgICBlbHNlIGJveCA9IGdyb3VwLjEuZ2V0QkJveCFcbiAgICAgICAgICAgIGlmICFib3ggb3IgYm94LndpZHRoID09IDAgb3IgYm94LmhlaWdodCA9PSAwID0+IGJveCA9IHt4OiAwLCB5OiAwLCB3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMH1cbiAgICAgICAgICAgIGQgPSAoTWF0aC5tYXguYXBwbHkoXG4gICAgICAgICAgICAgIG51bGwsIDxbc3Ryb2tlLXdpZHRoIHN0cm9rZS10cmFpbC13aWR0aCBmaWxsLWJhY2tncm91bmQtZXh0cnVkZV0+Lm1hcCgtPmNvbmZpZ1tpdF0pKVxuICAgICAgICAgICAgKSAqIDEuNVxuICAgICAgICAgICAgaWYgY29uZmlnW1wicGFkZGluZ1wiXT8gPT4gZCA9ICtjb25maWdbXCJwYWRkaW5nXCJdXG5cbiAgICAgICAgICAgIHN2Zy5hdHRycyB2aWV3Qm94OiBbYm94LnggLSBkLCBib3gueSAtIGQsIGJveC53aWR0aCArIGQgKiAyLCBib3guaGVpZ2h0ICsgZCAqIDJdLmpvaW4oXCIgXCIpXG4gICAgICAgICAgICBpZiBjb25maWdbXCJzZXQtZGltXCJdID0+IDxbd2lkdGggaGVpZ2h0XT4ubWFwIH4+IGlmICFyb290LnN0eWxlW2l0XSBvciBAZml0W2l0XSA9PlxuICAgICAgICAgICAgICByb290LnN0eWxlW2l0XSA9IFwiI3tib3hbaXRdICsgZCAqIDJ9cHhcIlxuICAgICAgICAgICAgICBAZml0W2l0XSA9IHRydWVcblxuICAgICAgICAgICAgcmVjdCA9IGdyb3VwLjAucXVlcnlTZWxlY3RvciBcXHJlY3RcbiAgICAgICAgICAgIGlmIHJlY3QgPT4gcmVjdC5hdHRycyBkb1xuICAgICAgICAgICAgICAgIHg6IGJveC54IC0gZCwgeTogYm94LnkgLSBkLCB3aWR0aDogYm94LndpZHRoICsgZCAqIDIsIGhlaWdodDogYm94LmhlaWdodCArIGQgKiAyXG5cbiAgICAgICAgaWYgY29uZmlnLnBhdGggPT5cbiAgICAgICAgICAgIGlmIGlzLXN0cm9rZSA9PlxuICAgICAgICAgICAgICAgIGdyb3VwLjAgPSBkb21UcmVlIFxcZywgcGF0aDogYXR0cjpcbiAgICAgICAgICAgICAgICAgICAgZDogY29uZmlnLnBhdGhcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogXFxub25lXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcXGJhc2VsaW5lXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZ3JvdXAuMCA9IGRvbVRyZWUgXFxnLCByZWN0OiBhdHRyOlxuICAgICAgICAgICAgICAgICAgICB4OiAwLCB5OiAwLCB3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMFxuICAgICAgICAgICAgICAgICAgICBtYXNrOiBcInVybChcXCMje2lkLm1hc2stcGF0aH0pXCIsIGZpbGw6IGNvbmZpZ1tcImZpbGwtYmFja2dyb3VuZFwiXVxuICAgICAgICAgICAgICAgICAgICBjbGFzczogXFxmcmFtZVxuXG4gICAgICAgICAgICBzdmcuYXBwZW5kQ2hpbGQgZ3JvdXAuMFxuICAgICAgICAgICAgZ3JvdXAuMSA9IGRvbVRyZWUgXFxnLCBwYXRoOiBhdHRyOlxuICAgICAgICAgICAgICAgIGQ6IGNvbmZpZy5wYXRoLCBjbGFzczogaWYgaXMtc3Ryb2tlID0+IFxcbWFpbmxpbmUgZWxzZSBcXHNvbGlkXG4gICAgICAgICAgICAgICAgXCJjbGlwLXBhdGhcIjogaWYgY29uZmlnLnR5cGUgPT0gXFxmaWxsID0+IFwidXJsKFxcIyN7aWQuY2xpcH0pXCIgZWxzZSAnJ1xuICAgICAgICAgICAgc3ZnLmFwcGVuZENoaWxkIGdyb3VwLjFcbiAgICAgICAgICAgIHBhdGgwID0gZ3JvdXAuMC5xdWVyeVNlbGVjdG9yIChpZiBpcy1zdHJva2UgPT4gXFxwYXRoIGVsc2UgXFxyZWN0KVxuICAgICAgICAgICAgcGF0aDEgPSBncm91cC4xLnF1ZXJ5U2VsZWN0b3IgXFxwYXRoXG4gICAgICAgICAgICBpZiBpcy1zdHJva2UgPT4gcGF0aDEuYXR0cnMgZmlsbDogXFxub25lXG5cbiAgICAgICAgICAgIHBhdGltZyA9IHN2Zy5xdWVyeVNlbGVjdG9yICdwYXR0ZXJuIGltYWdlJ1xuICAgICAgICAgICAgaW1nID0gbmV3IEltYWdlIVxuICAgICAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIgXFxsb2FkLCAtPlxuICAgICAgICAgICAgICAgIGJveCA9IGlmIGNvbmZpZ1tcInBhdHRlcm4tc2l6ZVwiXSA9PiB7d2lkdGg6ICt0aGF0LCBoZWlnaHQ6ICt0aGF0fVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgaW1nLndpZHRoIGFuZCBpbWcuaGVpZ2h0ID0+IHt3aWR0aDogaW1nLndpZHRoLCBoZWlnaHQ6IGltZy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgZWxzZSB7d2lkdGg6IDMwMCwgaGVpZ2h0OiAzMDB9XG4gICAgICAgICAgICAgICAgc3ZnLnF1ZXJ5U2VsZWN0b3IgXFxwYXR0ZXJuIC5hdHRycyB7d2lkdGg6IGJveC53aWR0aCwgaGVpZ2h0OiBib3guaGVpZ2h0fVxuICAgICAgICAgICAgICAgIHBhdGltZy5hdHRycyB7d2lkdGg6IGJveC53aWR0aCwgaGVpZ2h0OiBib3guaGVpZ2h0fVxuICAgICAgICAgICAgaWYgLy4rXFwuLit8XmRhdGE6Ly5leGVjKGlmICFpcy1zdHJva2UgPT4gY29uZmlnLmZpbGwgZWxzZSBjb25maWcuc3Ryb2tlKSA9PlxuICAgICAgICAgICAgICAgIGltZy5zcmMgPSBpZiAhaXMtc3Ryb2tlID0+IGNvbmZpZy5maWxsIGVsc2UgY29uZmlnLnN0cm9rZVxuICAgICAgICAgICAgICAgIHBhdGltZy5hdHRycyBcInhsaW5rOmhyZWZcIjogaW1nLnNyYyAjaWYgIWlzLXN0cm9rZSA9PiBjb25maWcuZmlsbCBlbHNlIGNvbmZpZy5zdHJva2VcblxuICAgICAgICAgICAgaWYgaXMtc3Ryb2tlID0+XG4gICAgICAgICAgICAgICAgcGF0aDAuYXR0cnMgc3Ryb2tlOiBjb25maWdbXCJzdHJva2UtdHJhaWxcIl0sIFwic3Ryb2tlLXdpZHRoXCI6IGNvbmZpZ1tcInN0cm9rZS10cmFpbC13aWR0aFwiXVxuICAgICAgICAgICAgICAgIHBhdGgxLmF0dHJzIGRvXG4gICAgICAgICAgICAgICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IGNvbmZpZ1tcInN0cm9rZS13aWR0aFwiXVxuICAgICAgICAgICAgICAgICAgICBzdHJva2U6IGlmIC8uK1xcLi4rfF5kYXRhOi8uZXhlYyhjb25maWcuc3Ryb2tlKSA9PiBcInVybChcXCMje2lkLnBhdHRlcm59KVwiIGVsc2UgY29uZmlnLnN0cm9rZVxuICAgICAgICAgICAgaWYgY29uZmlnLmZpbGwgYW5kICFpcy1zdHJva2UgPT5cbiAgICAgICAgICAgICAgICBwYXRoMS5hdHRycyBkb1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiBpZiAvLitcXC4uK3xeZGF0YTovLmV4ZWMoY29uZmlnLmZpbGwpID0+IFwidXJsKFxcIyN7aWQucGF0dGVybn0pXCIgZWxzZSBjb25maWcuZmlsbFxuXG4gICAgICAgICAgICBsZW5ndGggPSBwYXRoMS5nZXRUb3RhbExlbmd0aCFcbiAgICAgICAgICAgIEBmaXQhXG4gICAgICAgICAgICBAaW5pdGVkID0gdHJ1ZVxuICAgICAgICBlbHNlIGlmIGNvbmZpZy5pbWcgPT5cbiAgICAgICAgICAgIGlmIGNvbmZpZ1tcImltZy1zaXplXCJdID0+XG4gICAgICAgICAgICAgICAgcmV0ID0gY29uZmlnW1wiaW1nLXNpemVcIl0uc3BsaXQoXFwsKVxuICAgICAgICAgICAgICAgIHNpemUgPSB7d2lkdGg6ICtyZXQuMCwgaGVpZ2h0OiArcmV0LjF9XG4gICAgICAgICAgICBlbHNlIHNpemUgPSB7d2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDB9XG5cbiAgICAgICAgICAgIGdyb3VwLjAgPSBkb21UcmVlIFxcZywgcmVjdDogYXR0cjpcbiAgICAgICAgICAgICAgICB4OiAwLCB5OiAwLCB3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMCwgbWFzazogXCJ1cmwoXFwjI3tpZC5tYXNrfSlcIiwgZmlsbDogY29uZmlnW1wiZmlsbC1iYWNrZ3JvdW5kXCJdXG4gICAgICAgICAgICBzdmcucXVlcnlTZWxlY3RvciAnbWFzayBpbWFnZScgLmF0dHJzIGRvXG4gICAgICAgICAgICAgICAgd2lkdGg6IHNpemUud2lkdGgsIGhlaWdodDogc2l6ZS5oZWlnaHRcbiAgICAgICAgICAgIGdyb3VwLjEgPSBkb21UcmVlIFxcZywgaW1hZ2U6IGF0dHI6XG4gICAgICAgICAgICAgICAgd2lkdGg6IHNpemUud2lkdGgsIGhlaWdodDogc2l6ZS5oZWlnaHQsIHg6IDAsIHk6IDAsIHByZXNlcnZlQXNwZWN0UmF0aW86IGNvbmZpZ1tcImFzcGVjdC1yYXRpb1wiXVxuICAgICAgICAgICAgICAgICN3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMCwgeDogMCwgeTogMCwgcHJlc2VydmVBc3BlY3RSYXRpbzogXCJ4TWlkWU1pZFwiXG4gICAgICAgICAgICAgICAgXCJjbGlwLXBhdGhcIjogaWYgY29uZmlnLnR5cGUgPT0gXFxmaWxsID0+IFwidXJsKFxcIyN7aWQuY2xpcH0pXCIgZWxzZSAnJ1xuICAgICAgICAgICAgICAgIFwieGxpbms6aHJlZlwiOiBjb25maWcuaW1nLCBjbGFzczogXFxzb2xpZFxuICAgICAgICAgICAgaW1nID0gbmV3IEltYWdlIVxuICAgICAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIgXFxsb2FkLCB+PlxuICAgICAgICAgICAgICAgIGlmIGNvbmZpZ1tcImltZy1zaXplXCJdID0+XG4gICAgICAgICAgICAgICAgICAgIHJldCA9IGNvbmZpZ1tcImltZy1zaXplXCJdLnNwbGl0KFxcLClcbiAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IHt3aWR0aDogK3JldC4wLCBoZWlnaHQ6ICtyZXQuMX1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIGltZy53aWR0aCBhbmQgaW1nLmhlaWdodCA9PiBzaXplID0ge3dpZHRoOiBpbWcud2lkdGgsIGhlaWdodDogaW1nLmhlaWdodH1cbiAgICAgICAgICAgICAgICBlbHNlIHNpemUgPSB7d2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDB9XG4gICAgICAgICAgICAgICAgc3ZnLnF1ZXJ5U2VsZWN0b3IgJ21hc2sgaW1hZ2UnIC5hdHRycyBkb1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCwgaGVpZ2h0OiBzaXplLmhlaWdodFxuICAgICAgICAgICAgICAgIGdyb3VwLjEucXVlcnlTZWxlY3RvciAnaW1hZ2UnIC5hdHRycyBkb1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCwgaGVpZ2h0OiBzaXplLmhlaWdodFxuXG4gICAgICAgICAgICAgICAgQGZpdCFcbiAgICAgICAgICAgICAgICBAc2V0IHVuZGVmaW5lZCwgZmFsc2VcbiAgICAgICAgICAgICAgICBAaW5pdGVkID0gdHJ1ZVxuICAgICAgICAgICAgaW1nLnNyYyA9IGNvbmZpZy5pbWdcbiAgICAgICAgICAgIHN2Zy5hcHBlbmRDaGlsZCBncm91cC4wXG4gICAgICAgICAgICBzdmcuYXBwZW5kQ2hpbGQgZ3JvdXAuMVxuICAgICAgICBzdmcuYXR0cnMgd2lkdGg6IFxcMTAwJSwgaGVpZ2h0OiBcXDEwMCUgIywgdmlld0JveDogJzAgMCAxMDAgMTAwJ1xuXG4gICAgICAgIEB0cmFuc2l0aW9uID1cbiAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgIHNyYzogMFxuICAgICAgICAgICAgICAgIGRlczogMFxuICAgICAgICAgICAgdGltZToge31cblxuICAgICAgICAgICAgZWFzZTogKHQsYixjLGQpIC0+XG4gICAgICAgICAgICAgICAgdCA9IHQgLyAoZCAqIDAuNSlcbiAgICAgICAgICAgICAgICBpZiB0IDwgMSA9PiByZXR1cm4gYyAqIDAuNSAqIHQgKiB0ICsgYlxuICAgICAgICAgICAgICAgIHQgPSB0IC0gMVxuICAgICAgICAgICAgICAgIHJldHVybiAtYyAqIDAuNSAqICh0Kih0IC0gMikgLSAxKSArIGJcblxuICAgICAgICAgICAgaGFuZGxlcjogKHRpbWUsIGRvVHJhbnNpdGlvbiA9IHRydWUpIC0+XG4gICAgICAgICAgICAgICAgaWYgIUB0aW1lLnNyYz8gPT4gQHRpbWUuc3JjID0gdGltZVxuICAgICAgICAgICAgICAgIFttaW4sbWF4LHByZWNdID0gW2NvbmZpZ1tcIm1pblwiXSwgY29uZmlnW1wibWF4XCJdLDEvY29uZmlnW1wicHJlY2lzaW9uXCJdXVxuICAgICAgICAgICAgICAgIFtkdiwgZHQsIGR1cl0gPSBbQHZhbHVlLmRlcyAtIEB2YWx1ZS5zcmMsICh0aW1lIC0gQHRpbWUuc3JjKSAqIDAuMDAxLCArY29uZmlnW1wiZHVyYXRpb25cIl0gb3IgMV1cbiAgICAgICAgICAgICAgICB2ID0gaWYgZG9UcmFuc2l0aW9uID0+IEBlYXNlKGR0LCBAdmFsdWUuc3JjLCBkdiwgZHVyKSBlbHNlIEB2YWx1ZS5kZXNcbiAgICAgICAgICAgICAgICBpZiBjb25maWcucHJlY2lzaW9uID0+IHYgPSBNYXRoLnJvdW5kKHYgKiBwcmVjKSAvIHByZWNcbiAgICAgICAgICAgICAgICBlbHNlIGlmIGRvVHJhbnNpdGlvbiA9PiB2ID0gTWF0aC5yb3VuZCh2KVxuICAgICAgICAgICAgICAgIHYgPj89IG1pblxuICAgICAgICAgICAgICAgIHYgPD89IG1heFxuICAgICAgICAgICAgICAgIHRleHQudGV4dENvbnRlbnQgPSB2XG4gICAgICAgICAgICAgICAgcCA9IDEwMC4wICogKHYgLSBtaW4gKSAvICggbWF4IC0gbWluIClcbiAgICAgICAgICAgICAgICBpZiBpcy1zdHJva2UgPT5cbiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IHBhdGgxXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwic3Ryb2tlLWRhc2hhcnJheVwiOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29uZmlnW1wic3Ryb2tlLWRpclwiXSA9PSBcXHJldmVyc2UgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIwICN7bGVuZ3RoICogKDEwMCAtIHApICogMC4wMX0gI3tsZW5ndGggKiBwICogMC4wMX0gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSA9PiBcIiN7cCAqIDAuMDEgKiBsZW5ndGh9ICN7KDEwMCAtIHApICogMC4wMSAqIGxlbmd0aCArIDF9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGJveCA9IGdyb3VwLjEuZ2V0QkJveCFcbiAgICAgICAgICAgICAgICAgICAgZGlyID0gY29uZmlnW1wiZmlsbC1kaXJcIl1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGUgPSBpZiBkaXIgPT0gXFxidHQgb3IgIWRpciA9PiBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgeTogYm94LnkgKyBib3guaGVpZ2h0ICogKDEwMCAtIHApICogMC4wMVxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBib3guaGVpZ2h0ICogcCAqIDAuMDFcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IGJveC54LCB3aWR0aDogYm94LndpZHRoXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgZGlyID09IFxcdHRiID0+IGRvXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBib3gueSwgaGVpZ2h0OiBib3guaGVpZ2h0ICogcCAqIDAuMDFcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IGJveC54LCB3aWR0aDogYm94LndpZHRoXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgZGlyID09IFxcbHRyID0+IGRvXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBib3gueSwgaGVpZ2h0OiBib3guaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBib3gueCwgd2lkdGg6IGJveC53aWR0aCAqIHAgKiAwLjAxXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgZGlyID09IFxccnRsID0+IGRvXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBib3gueSwgaGVpZ2h0OiBib3guaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBib3gueCArIGJveC53aWR0aCAqICgxMDAgLSBwKSAqIDAuMDFcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBib3gud2lkdGggKiBwICogMC4wMVxuICAgICAgICAgICAgICAgICAgICBub2RlID0gc3ZnLnF1ZXJ5U2VsZWN0b3IgXFxyZWN0XG4gICAgICAgICAgICAgICAgbm9kZS5hdHRycyBzdHlsZVxuICAgICAgICAgICAgICAgIGlmIGR0ID49IGR1ciA9PiBkZWxldGUgQHRpbWUuc3JjOyByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgICAgc3RhcnQ6IChzcmMsIGRlcywgZG9UcmFuc2l0aW9uKSAtPlxuICAgICAgICAgICAgICAgIEB2YWx1ZSA8PDwge3NyYywgZGVzfVxuICAgICAgICAgICAgICAgICEhKCByb290Lm9mZnNldFdpZHRoIHx8IHJvb3Qub2Zmc2V0SGVpZ2h0IHx8IHJvb3QuZ2V0Q2xpZW50UmVjdHMhbGVuZ3RoIClcbiAgICAgICAgICAgICAgICBpZiAhZG9UcmFuc2l0aW9uIG9yICEoIHJvb3Qub2Zmc2V0V2lkdGggfHwgcm9vdC5vZmZzZXRIZWlnaHQgfHwgcm9vdC5nZXRDbGllbnRSZWN0cyFsZW5ndGggKSA9PlxuICAgICAgICAgICAgICAgICAgICBAdGltZS5zcmMgPSAwXG4gICAgICAgICAgICAgICAgICAgIEBoYW5kbGVyIDEwMDAsIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgIGhhbmRsZXIuYWRkIGlkLmtleSwgKHRpbWUpIH4+IHJldHVybiBAaGFuZGxlciB0aW1lXG5cbiAgICAgICAgQHNldCA9ICh2LGRvVHJhbnNpdGlvbiA9IHRydWUpIC0+XG4gICAgICAgICAgICBzcmMgPSBAdmFsdWUgb3IgMFxuICAgICAgICAgICAgaWYgdj8gPT4gQHZhbHVlID0gdiBlbHNlIHYgPSBAdmFsdWVcbiAgICAgICAgICAgIGRlcyA9IEB2YWx1ZVxuICAgICAgICAgICAgQHRyYW5zaXRpb24uc3RhcnQgc3JjLCBkZXMsIGRvVHJhbnNpdGlvblxuXG4gICAgICAgIEBzZXQgKCtjb25maWcudmFsdWUgb3IgMCksIGNvbmZpZ1tcInRyYW5zaXRpb24taW5cIl0gb3IgZmFsc2VcbiAgICAgICAgQFxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgXFxsb2FkLCAoLT5cbiAgICAgICAgZm9yIG5vZGUgaW4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcXC5sZEJhcikgPT5cbiAgICAgICAgICBpZiAhbm9kZS5sZEJhciA9PiBub2RlLmxkQmFyID0gbmV3IGxkQmFyIG5vZGVcbiAgICApLCBmYWxzZVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxkQmFyXG4iLCJleHBvcnQgcHJlc2V0cyA9XG4gICAgcmFpbmJvdzpcbiAgICAgICAgXCJ0eXBlXCI6ICdzdHJva2UnXG4gICAgICAgIFwicGF0aFwiOiAnTTEwIDEwTDkwIDEwJ1xuICAgICAgICBcInN0cm9rZVwiOiAnZGF0YTpsZGJhci9yZXMsZ3JhZGllbnQoMCwxLCNhNTUxZGYsI2ZkNTFhZCwjZmY3ZjgyLCNmZmI4NzQsI2ZmZWI5MCknXG4gICAgICAgIFwiYmJveFwiOiBcIjEwIDEwIDgwIDEwXCJcbiAgICBlbmVyZ3k6XG4gICAgICAgIFwidHlwZVwiOiAnZmlsbCdcbiAgICAgICAgXCJwYXRoXCI6ICdNMTUgNUw4NSA1QTUgNSAwIDAgMSA4NSAxNUwxNSAxNUE1IDUgMCAwIDEgMTUgNSdcbiAgICAgICAgXCJzdHJva2VcIjogXFwjZjAwXG4gICAgICAgIFwiZmlsbFwiOiAnZGF0YTpsZGJhci9yZXMsZ3JhZGllbnQoNDUsMiwjNGU5LCM4ZmIsIzRlOSknXG4gICAgICAgIFwiZmlsbC1kaXJcIjogXCJsdHJcIlxuICAgICAgICBcImZpbGwtYmFja2dyb3VuZFwiOiBcXCM0NDRcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmQtZXh0cnVkZVwiOiAxXG4gICAgICAgIFwiYmJveFwiOiBcIjEwIDUgODAgMTBcIlxuICAgIHN0cmlwZTpcbiAgICAgICAgXCJ0eXBlXCI6ICdmaWxsJ1xuICAgICAgICBcInBhdGhcIjogJ00xNSA1TDg1IDVBNSA1IDAgMCAxIDg1IDE1TDE1IDE1QTUgNSAwIDAgMSAxNSA1J1xuICAgICAgICBcInN0cm9rZVwiOiBcXCNmMDBcbiAgICAgICAgXCJmaWxsXCI6ICdkYXRhOmxkYmFyL3JlcyxzdHJpcGUoIzI1YiwjNThlLDEpJ1xuICAgICAgICBcImZpbGwtZGlyXCI6IFwibHRyXCJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmRcIjogXFwjZGRkXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogMVxuICAgICAgICBcImJib3hcIjogXCIxMCA1IDgwIDEwXCJcbiAgICB0ZXh0OlxuICAgICAgICBcInR5cGVcIjogJ2ZpbGwnXG4gICAgICAgIFwiaW1nXCI6IFwiXCJcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjcwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDcwIDIwXCI+PHRleHQgeD1cIjM1XCIgeT1cIjEwXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIiBmb250LWZhbWlseT1cImFyaWFsXCI+TE9BRElORzwvdGV4dD48L3N2Zz5cIlwiXCJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmQtZXh0cnVkZVwiOiAxLjNcbiAgICAgICAgXCJwYXR0ZXJuLXNpemVcIjogMTAwXG4gICAgICAgIFwiZmlsbC1kaXJcIjogXCJsdHJcIlxuICAgICAgICBcImltZy1zaXplXCI6IFwiNzAsMjBcIlxuICAgICAgICBcImJib3hcIjogXCIwIDAgNzAgMjBcIlxuICAgIGxpbmU6XG4gICAgICAgIFwidHlwZVwiOiAnc3Ryb2tlJ1xuICAgICAgICBcInBhdGhcIjogJ00xMCAxMEw5MCAxMCdcbiAgICAgICAgXCJzdHJva2VcIjogXFwjMjViXG4gICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IDNcbiAgICAgICAgXCJzdHJva2UtdHJhaWxcIjogXFwjZGRkXG4gICAgICAgIFwic3Ryb2tlLXRyYWlsLXdpZHRoXCI6IDFcbiAgICAgICAgXCJiYm94XCI6IFwiMTAgMTAgODAgMTBcIlxuICAgIGZhbjpcbiAgICAgICAgXCJ0eXBlXCI6ICdzdHJva2UnXG4gICAgICAgIFwicGF0aFwiOiAnTTEwIDkwQTQwIDQwIDAgMCAxIDkwIDkwJ1xuICAgICAgICBcImZpbGwtZGlyXCI6IFxcYnR0XG4gICAgICAgIFwiZmlsbFwiOiBcXCMyNWJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmRcIjogXFwjZGRkXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogM1xuICAgICAgICBcInN0cm9rZS1kaXJcIjogXFxub3JtYWxcbiAgICAgICAgXCJzdHJva2VcIjogXFwjMjViXG4gICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IFxcM1xuICAgICAgICBcInN0cm9rZS10cmFpbFwiOiBcXCNkZGRcbiAgICAgICAgXCJzdHJva2UtdHJhaWwtd2lkdGhcIjogMC41XG4gICAgICAgIFwiYmJveFwiOiBcIjEwIDUwIDgwIDQwXCJcbiAgICBjaXJjbGU6XG4gICAgICAgIFwidHlwZVwiOiAnc3Ryb2tlJ1xuICAgICAgICBcInBhdGhcIjogJ001MCAxMEE0MCA0MCAwIDAgMSA1MCA5MEE0MCA0MCAwIDAgMSA1MCAxMCdcbiAgICAgICAgXCJmaWxsLWRpclwiOiBcXGJ0dFxuICAgICAgICBcImZpbGxcIjogXFwjMjViXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kXCI6IFxcI2RkZFxuICAgICAgICBcImZpbGwtYmFja2dyb3VuZC1leHRydWRlXCI6IDNcbiAgICAgICAgXCJzdHJva2UtZGlyXCI6IFxcbm9ybWFsXG4gICAgICAgIFwic3Ryb2tlXCI6IFxcIzI1YlxuICAgICAgICBcInN0cm9rZS13aWR0aFwiOiBcXDNcbiAgICAgICAgXCJzdHJva2UtdHJhaWxcIjogXFwjZGRkXG4gICAgICAgIFwic3Ryb2tlLXRyYWlsLXdpZHRoXCI6IDAuNVxuICAgICAgICBcImJib3hcIjogXCIxMCAxMCA4MCA4MFwiXG4gICAgYnViYmxlOlxuICAgICAgICBcInR5cGVcIjogJ2ZpbGwnXG4gICAgICAgIFwicGF0aFwiOiAnTTUwIDEwQTQwIDQwIDAgMCAxIDUwIDkwQTQwIDQwIDAgMCAxIDUwIDEwJ1xuICAgICAgICBcImZpbGwtZGlyXCI6IFxcYnR0XG4gICAgICAgIFwiZmlsbFwiOiAnZGF0YTpsZGJhci9yZXMsYnViYmxlKCMzOWQsI2NlZiknXG4gICAgICAgIFwicGF0dGVybi1zaXplXCI6IFwiMTUwXCJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmRcIjogXFwjZGRkXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogMlxuICAgICAgICBcInN0cm9rZS1kaXJcIjogXFxub3JtYWxcbiAgICAgICAgXCJzdHJva2VcIjogXFwjMjViXG4gICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IFxcM1xuICAgICAgICBcInN0cm9rZS10cmFpbFwiOiBcXCNkZGRcbiAgICAgICAgXCJzdHJva2UtdHJhaWwtd2lkdGhcIjogMC41XG4gICAgICAgIFwiYmJveFwiOiBcIjEwIDEwIDgwIDgwXCJcbiJdfQ==