ato-water-lib 0.0.12 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,7 +4,6 @@ export class AtoLoadingDirective {
4
4
  constructor(el, renderer) {
5
5
  this.el = el;
6
6
  this.renderer = renderer;
7
- // Tạo phần tử spinner wrapper
8
7
  this.spinnerWrapper = this.renderer.createElement('div');
9
8
  this.renderer.setStyle(this.spinnerWrapper, 'position', 'absolute');
10
9
  this.renderer.setStyle(this.spinnerWrapper, 'top', '0');
@@ -16,36 +15,11 @@ export class AtoLoadingDirective {
16
15
  this.renderer.setStyle(this.spinnerWrapper, 'justify-content', 'center');
17
16
  this.renderer.setStyle(this.spinnerWrapper, 'background', 'rgba(255, 255, 255, 0.7)');
18
17
  this.renderer.setStyle(this.spinnerWrapper, 'z-index', '10');
19
- // Tạo phần tử spinner icon (sử dụng hình ảnh base64)
20
18
  const spinner = this.renderer.createElement('img');
21
- // this.renderer.setAttribute(spinner, 'src', 'data:image/gif;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyIgd2lkdGg9Ijg4cHgiIGhlaWdodD0iODhweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KPGRlZnMgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgPG1hc2sgaWQ9ImxkaW8tdmN5YjQ1YmFvdWstbWFzayIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0id2hpdGUiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KICA8L21hc2s+CjwvZGVmcz4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiM1Y2FhZWEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KPGcgbWFzaz0idXJsKCNsZGlvLXZjeWI0NWJhb3VrLW1hc2spIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICA8cmVjdCB4PSItMTAwIiB5PSItMjUwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjkwIiByeT0iOTAiIGZpbGw9IiM4MmNlZmYiIG9wYWNpdHk9IjAuNCIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIHZhbHVlcz0iMCA1MCAtMTAwOzkwIDUwIC0xMDAiIGtleVRpbWVzPSIwOzEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+CgogIDxyZWN0IHg9Ii0xMDAiIHk9Ii0yNjAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIiByeD0iOTUiIHJ5PSI5NSIgZmlsbD0iI2E1ZGNmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjEuNTE1MTUxNTE1MTUxNTE1MXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTExMDs5MCA1MCAtMTEwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKICA8cmVjdCB4PSItMTAwIiB5PSItMjcwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjEwMCIgcnk9IjEwMCIgZmlsbD0iI2ZmZmZmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjMuMDMwMzAzMDMwMzAzMDMwM3MiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTEyMDs5MCA1MCAtMTIwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKPC9nPgo8IS0tIFtsZGlvXSBnZW5lcmF0ZWQgYnkgaHR0cHM6Ly9sb2FkaW5nLmlvLyAtLT48L3N2Zz4=');
22
- this.renderer.setProperty(spinner, 'innerHTML', `
23
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin: auto; background: rgb(255, 255, 255); display: block; shape-rendering: auto; animation-play-state: running; animation-delay: 0s;" width="88px" height="88px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
24
- <defs style="animation-play-state: running; animation-delay: 0s;">
25
- <mask id="ldio-vcyb45baouk-mask" style="animation-play-state: running; animation-delay: 0s;">
26
- <rect x="0" y="0" width="100" height="100" fill="white" style="animation-play-state: running; animation-delay: 0s;"/>
27
- </mask>
28
- </defs>
29
- <rect x="0" y="0" width="100" height="100" fill="#5caaea" style="animation-play-state: running; animation-delay: 0s;"/>
30
- <g mask="url(#ldio-vcyb45baouk-mask)" style="animation-play-state: running; animation-delay: 0s;">
31
- <rect x="-100" y="-250" width="300" height="300" rx="90" ry="90" fill="#82ceff" opacity="0.4" style="animation-play-state: running; animation-delay: 0s;">
32
- <animateTransform attributeName="transform" type="rotate" dur="1s" repeatCount="indefinite" values="0 50 -100;90 50 -100" keyTimes="0;1" style="animation-play-state: running; animation-delay: 0s;"/>
33
- </rect>
34
-
35
- <rect x="-100" y="-260" width="300" height="300" rx="95" ry="95" fill="#a5dcff" opacity="0.4" style="animation-play-state: running; animation-delay: 0s;">
36
- <animateTransform attributeName="transform" type="rotate" dur="1.5151515151515151s" repeatCount="indefinite" values="0 50 -110;90 50 -110" keyTimes="0;1" style="animation-play-state: running; animation-delay: 0s;"/>
37
- </rect>
38
-
39
- <rect x="-100" y="-270" width="300" height="300" rx="100" ry="100" fill="#ffffff" opacity="0.4" style="animation-play-state: running; animation-delay: 0s;">
40
- <animateTransform attributeName="transform" type="rotate" dur="3.0303030303030303s" repeatCount="indefinite" values="0 50 -120;90 50 -120" keyTimes="0;1" style="animation-play-state: running; animation-delay: 0s;"/>
41
- </rect>
42
-
43
- </g>
44
- <!-- [ldio] generated by https://loading.io/ --></svg>
45
- `);
19
+ this.renderer.setAttribute(spinner, 'src', 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyIgd2lkdGg9Ijg4cHgiIGhlaWdodD0iODhweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KPGRlZnMgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgPG1hc2sgaWQ9ImxkaW8tdmN5YjQ1YmFvdWstbWFzayIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0id2hpdGUiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KICA8L21hc2s+CjwvZGVmcz4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiM1Y2FhZWEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KPGcgbWFzaz0idXJsKCNsZGlvLXZjeWI0NWJhb3VrLW1hc2spIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICA8cmVjdCB4PSItMTAwIiB5PSItMjUwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjkwIiByeT0iOTAiIGZpbGw9IiM4MmNlZmYiIG9wYWNpdHk9IjAuNCIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIHZhbHVlcz0iMCA1MCAtMTAwOzkwIDUwIC0xMDAiIGtleVRpbWVzPSIwOzEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+CgogIDxyZWN0IHg9Ii0xMDAiIHk9Ii0yNjAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIiByeD0iOTUiIHJ5PSI5NSIgZmlsbD0iI2E1ZGNmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjEuNTE1MTUxNTE1MTUxNTE1MXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTExMDs5MCA1MCAtMTEwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKICA8cmVjdCB4PSItMTAwIiB5PSItMjcwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjEwMCIgcnk9IjEwMCIgZmlsbD0iI2ZmZmZmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjMuMDMwMzAzMDMwMzAzMDMwM3MiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTEyMDs5MCA1MCAtMTIwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKPC9nPgo8IS0tIFtsZGlvXSBnZW5lcmF0ZWQgYnkgaHR0cHM6Ly9sb2FkaW5nLmlvLyAtLT48L3N2Zz4=');
46
20
  this.renderer.setStyle(spinner, 'width', '40px');
47
21
  this.renderer.setStyle(spinner, 'height', '40px');
48
- // Thêm spinner vào spinner wrapper
22
+ this.renderer.setStyle(spinner, 'border-radius', '50%');
49
23
  this.renderer.appendChild(this.spinnerWrapper, spinner);
50
24
  }
51
25
  ngOnChanges(changes) {
@@ -60,11 +34,9 @@ export class AtoLoadingDirective {
60
34
  }
61
35
  showSpinner() {
62
36
  this.renderer.setStyle(this.el.nativeElement, 'position', 'relative');
63
- this.renderer.setStyle(this.el.nativeElement, 'filter', 'blur(2px)');
64
37
  this.renderer.appendChild(this.el.nativeElement, this.spinnerWrapper);
65
38
  }
66
39
  hideSpinner() {
67
- this.renderer.removeStyle(this.el.nativeElement, 'filter');
68
40
  if (this.el.nativeElement.contains(this.spinnerWrapper)) {
69
41
  this.renderer.removeChild(this.el.nativeElement, this.spinnerWrapper);
70
42
  }
@@ -80,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
80
52
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { appLoading: [{
81
53
  type: Input
82
54
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvLWxvYWRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXRvLXdhdGVyLWxpYi9zcmMvbGliL2RpcmVjdGl2ZS9hdG8tbG9hZGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQzs7QUFLbEcsTUFBTSxPQUFPLG1CQUFtQjtJQU05QixZQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDN0QsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdELHFEQUFxRDtRQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxvM0ZBQW8zRjtRQUNwM0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QmpELENBQUMsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRCxtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3pCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQjtTQUNGO0lBQ0gsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN2RTtJQUNILENBQUM7O2lIQTNFVSxtQkFBbUI7cUdBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjt5SEFHVSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F0b0xvYWRpbmddJ1xufSlcbmV4cG9ydCBjbGFzcyBBdG9Mb2FkaW5nRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBhcHBMb2FkaW5nOiBib29sZWFuO1xuXG4gIHByaXZhdGUgc3Bpbm5lcldyYXBwZXI6IEhUTUxFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIC8vIFThuqFvIHBo4bqnbiB04butIHNwaW5uZXIgd3JhcHBlclxuICAgIHRoaXMuc3Bpbm5lcldyYXBwZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5zcGlubmVyV3JhcHBlciwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNwaW5uZXJXcmFwcGVyLCAndG9wJywgJzAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdsZWZ0JywgJzAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICd3aWR0aCcsICcxMDAlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNwaW5uZXJXcmFwcGVyLCAnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdkaXNwbGF5JywgJ2ZsZXgnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdhbGlnbi1pdGVtcycsICdjZW50ZXInKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdqdXN0aWZ5LWNvbnRlbnQnLCAnY2VudGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNwaW5uZXJXcmFwcGVyLCAnYmFja2dyb3VuZCcsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyknKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICd6LWluZGV4JywgJzEwJyk7XG5cbiAgICAvLyBU4bqhbyBwaOG6p24gdOG7rSBzcGlubmVyIGljb24gKHPhu60gZOG7pW5nIGjDrG5oIOG6o25oIGJhc2U2NClcbiAgICBjb25zdCBzcGlubmVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdpbWcnKTtcbiAgICAvLyB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzcGlubmVyLCAnc3JjJywgJ2RhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIaHRiRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCemRIbHNaVDBpYldGeVoybHVPaUJoZFhSdk95QmlZV05yWjNKdmRXNWtPaUJ5WjJJb01qVTFMQ0F5TlRVc0lESTFOU2s3SUdScGMzQnNZWGs2SUdKc2IyTnJPeUJ6YUdGd1pTMXlaVzVrWlhKcGJtYzZJR0YxZEc4N0lHRnVhVzFoZEdsdmJpMXdiR0Y1TFhOMFlYUmxPaUJ5ZFc1dWFXNW5PeUJoYm1sdFlYUnBiMjR0WkdWc1lYazZJREJ6T3lJZ2QybGtkR2c5SWpnNGNIZ2lJR2hsYVdkb2REMGlPRGh3ZUNJZ2RtbGxkMEp2ZUQwaU1DQXdJREV3TUNBeE1EQWlJSEJ5WlhObGNuWmxRWE53WldOMFVtRjBhVzg5SW5oTmFXUlpUV2xrSWo0S1BHUmxabk1nYzNSNWJHVTlJbUZ1YVcxaGRHbHZiaTF3YkdGNUxYTjBZWFJsT2lCeWRXNXVhVzVuT3lCaGJtbHRZWFJwYjI0dFpHVnNZWGs2SURCek95SStDaUFnUEcxaGMyc2dhV1E5SW14a2FXOHRkbU41WWpRMVltRnZkV3N0YldGemF5SWdjM1I1YkdVOUltRnVhVzFoZEdsdmJpMXdiR0Y1TFhOMFlYUmxPaUJ5ZFc1dWFXNW5PeUJoYm1sdFlYUnBiMjR0WkdWc1lYazZJREJ6T3lJK0NpQWdJQ0E4Y21WamRDQjRQU0l3SWlCNVBTSXdJaUIzYVdSMGFEMGlNVEF3SWlCb1pXbG5hSFE5SWpFd01DSWdabWxzYkQwaWQyaHBkR1VpSUhOMGVXeGxQU0poYm1sdFlYUnBiMjR0Y0d4aGVTMXpkR0YwWlRvZ2NuVnVibWx1WnpzZ1lXNXBiV0YwYVc5dUxXUmxiR0Y1T2lBd2N6c2lQand2Y21WamRENEtJQ0E4TDIxaGMycytDand2WkdWbWN6NEtQSEpsWTNRZ2VEMGlNQ0lnZVQwaU1DSWdkMmxrZEdnOUlqRXdNQ0lnYUdWcFoyaDBQU0l4TURBaUlHWnBiR3c5SWlNMVkyRmhaV0VpSUhOMGVXeGxQU0poYm1sdFlYUnBiMjR0Y0d4aGVTMXpkR0YwWlRvZ2NuVnVibWx1WnpzZ1lXNXBiV0YwYVc5dUxXUmxiR0Y1T2lBd2N6c2lQand2Y21WamRENEtQR2NnYldGemF6MGlkWEpzS0NOc1pHbHZMWFpqZVdJME5XSmhiM1ZyTFcxaGMyc3BJaUJ6ZEhsc1pUMGlZVzVwYldGMGFXOXVMWEJzWVhrdGMzUmhkR1U2SUhKMWJtNXBibWM3SUdGdWFXMWhkR2x2Ymkxa1pXeGhlVG9nTUhNN0lqNEtJQ0E4Y21WamRDQjRQU0l0TVRBd0lpQjVQU0l0TWpVd0lpQjNhV1IwYUQwaU16QXdJaUJvWldsbmFIUTlJak13TUNJZ2NuZzlJamt3SWlCeWVUMGlPVEFpSUdacGJHdzlJaU00TW1ObFptWWlJRzl3WVdOcGRIazlJakF1TkNJZ2MzUjViR1U5SW1GdWFXMWhkR2x2Ymkxd2JHRjVMWE4wWVhSbE9pQnlkVzV1YVc1bk95QmhibWx0WVhScGIyNHRaR1ZzWVhrNklEQnpPeUkrQ2lBZ0lDQThZVzVwYldGMFpWUnlZVzV6Wm05eWJTQmhkSFJ5YVdKMWRHVk9ZVzFsUFNKMGNtRnVjMlp2Y20waUlIUjVjR1U5SW5KdmRHRjBaU0lnWkhWeVBTSXhjeUlnY21Wd1pXRjBRMjkxYm5ROUltbHVaR1ZtYVc1cGRHVWlJSFpoYkhWbGN6MGlNQ0ExTUNBdE1UQXdPemt3SURVd0lDMHhNREFpSUd0bGVWUnBiV1Z6UFNJd096RWlJSE4wZVd4bFBTSmhibWx0WVhScGIyNHRjR3hoZVMxemRHRjBaVG9nY25WdWJtbHVaenNnWVc1cGJXRjBhVzl1TFdSbGJHRjVPaUF3Y3pzaVBqd3ZZVzVwYldGMFpWUnlZVzV6Wm05eWJUNEtJQ0E4TDNKbFkzUStDZ29nSUR4eVpXTjBJSGc5SWkweE1EQWlJSGs5SWkweU5qQWlJSGRwWkhSb1BTSXpNREFpSUdobGFXZG9kRDBpTXpBd0lpQnllRDBpT1RVaUlISjVQU0k1TlNJZ1ptbHNiRDBpSTJFMVpHTm1aaUlnYjNCaFkybDBlVDBpTUM0MElpQnpkSGxzWlQwaVlXNXBiV0YwYVc5dUxYQnNZWGt0YzNSaGRHVTZJSEoxYm01cGJtYzdJR0Z1YVcxaGRHbHZiaTFrWld4aGVUb2dNSE03SWo0S0lDQWdJRHhoYm1sdFlYUmxWSEpoYm5ObWIzSnRJR0YwZEhKcFluVjBaVTVoYldVOUluUnlZVzV6Wm05eWJTSWdkSGx3WlQwaWNtOTBZWFJsSWlCa2RYSTlJakV1TlRFMU1UVXhOVEUxTVRVeE5URTFNWE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUIyWVd4MVpYTTlJakFnTlRBZ0xURXhNRHM1TUNBMU1DQXRNVEV3SWlCclpYbFVhVzFsY3owaU1Ec3hJaUJ6ZEhsc1pUMGlZVzVwYldGMGFXOXVMWEJzWVhrdGMzUmhkR1U2SUhKMWJtNXBibWM3SUdGdWFXMWhkR2x2Ymkxa1pXeGhlVG9nTUhNN0lqNDhMMkZ1YVcxaGRHVlVjbUZ1YzJadmNtMCtDaUFnUEM5eVpXTjBQZ29LSUNBOGNtVmpkQ0I0UFNJdE1UQXdJaUI1UFNJdE1qY3dJaUIzYVdSMGFEMGlNekF3SWlCb1pXbG5hSFE5SWpNd01DSWdjbmc5SWpFd01DSWdjbms5SWpFd01DSWdabWxzYkQwaUkyWm1abVptWmlJZ2IzQmhZMmwwZVQwaU1DNDBJaUJ6ZEhsc1pUMGlZVzVwYldGMGFXOXVMWEJzWVhrdGMzUmhkR1U2SUhKMWJtNXBibWM3SUdGdWFXMWhkR2x2Ymkxa1pXeGhlVG9nTUhNN0lqNEtJQ0FnSUR4aGJtbHRZWFJsVkhKaGJuTm1iM0p0SUdGMGRISnBZblYwWlU1aGJXVTlJblJ5WVc1elptOXliU0lnZEhsd1pUMGljbTkwWVhSbElpQmtkWEk5SWpNdU1ETXdNekF6TURNd016QXpNRE13TTNNaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlCMllXeDFaWE05SWpBZ05UQWdMVEV5TURzNU1DQTFNQ0F0TVRJd0lpQnJaWGxVYVcxbGN6MGlNRHN4SWlCemRIbHNaVDBpWVc1cGJXRjBhVzl1TFhCc1lYa3RjM1JoZEdVNklISjFibTVwYm1jN0lHRnVhVzFoZEdsdmJpMWtaV3hoZVRvZ01ITTdJajQ4TDJGdWFXMWhkR1ZVY21GdWMyWnZjbTArQ2lBZ1BDOXlaV04wUGdvS1BDOW5QZ284SVMwdElGdHNaR2x2WFNCblpXNWxjbUYwWldRZ1lua2dhSFIwY0hNNkx5OXNiMkZrYVc1bkxtbHZMeUF0TFQ0OEwzTjJaejQ9Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShzcGlubmVyLCAnaW5uZXJIVE1MJywgYFxuICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHN0eWxlPVwibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzO1wiIHdpZHRoPVwiODhweFwiIGhlaWdodD1cIjg4cHhcIiB2aWV3Qm94PVwiMCAwIDEwMCAxMDBcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWRcIj5cbjxkZWZzIHN0eWxlPVwiYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7XCI+XG4gIDxtYXNrIGlkPVwibGRpby12Y3liNDViYW91ay1tYXNrXCIgc3R5bGU9XCJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwcztcIj5cbiAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIxMDBcIiBoZWlnaHQ9XCIxMDBcIiBmaWxsPVwid2hpdGVcIiBzdHlsZT1cImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzO1wiLz5cbiAgPC9tYXNrPlxuPC9kZWZzPlxuPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMTAwXCIgaGVpZ2h0PVwiMTAwXCIgZmlsbD1cIiM1Y2FhZWFcIiBzdHlsZT1cImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzO1wiLz5cbjxnIG1hc2s9XCJ1cmwoI2xkaW8tdmN5YjQ1YmFvdWstbWFzaylcIiBzdHlsZT1cImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzO1wiPlxuICA8cmVjdCB4PVwiLTEwMFwiIHk9XCItMjUwXCIgd2lkdGg9XCIzMDBcIiBoZWlnaHQ9XCIzMDBcIiByeD1cIjkwXCIgcnk9XCI5MFwiIGZpbGw9XCIjODJjZWZmXCIgb3BhY2l0eT1cIjAuNFwiIHN0eWxlPVwiYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7XCI+XG4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiIHR5cGU9XCJyb3RhdGVcIiBkdXI9XCIxc1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiIHZhbHVlcz1cIjAgNTAgLTEwMDs5MCA1MCAtMTAwXCIga2V5VGltZXM9XCIwOzFcIiBzdHlsZT1cImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzO1wiLz5cbiAgPC9yZWN0PlxuXG4gIDxyZWN0IHg9XCItMTAwXCIgeT1cIi0yNjBcIiB3aWR0aD1cIjMwMFwiIGhlaWdodD1cIjMwMFwiIHJ4PVwiOTVcIiByeT1cIjk1XCIgZmlsbD1cIiNhNWRjZmZcIiBvcGFjaXR5PVwiMC40XCIgc3R5bGU9XCJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwcztcIj5cbiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInJvdGF0ZVwiIGR1cj1cIjEuNTE1MTUxNTE1MTUxNTE1MXNcIiByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIiB2YWx1ZXM9XCIwIDUwIC0xMTA7OTAgNTAgLTExMFwiIGtleVRpbWVzPVwiMDsxXCIgc3R5bGU9XCJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwcztcIi8+XG4gIDwvcmVjdD5cblxuICA8cmVjdCB4PVwiLTEwMFwiIHk9XCItMjcwXCIgd2lkdGg9XCIzMDBcIiBoZWlnaHQ9XCIzMDBcIiByeD1cIjEwMFwiIHJ5PVwiMTAwXCIgZmlsbD1cIiNmZmZmZmZcIiBvcGFjaXR5PVwiMC40XCIgc3R5bGU9XCJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwcztcIj5cbiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInJvdGF0ZVwiIGR1cj1cIjMuMDMwMzAzMDMwMzAzMDMwM3NcIiByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIiB2YWx1ZXM9XCIwIDUwIC0xMjA7OTAgNTAgLTEyMFwiIGtleVRpbWVzPVwiMDsxXCIgc3R5bGU9XCJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwcztcIi8+XG4gIDwvcmVjdD5cblxuPC9nPlxuPCEtLSBbbGRpb10gZ2VuZXJhdGVkIGJ5IGh0dHBzOi8vbG9hZGluZy5pby8gLS0+PC9zdmc+XG4gIGApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc3Bpbm5lciwgJ3dpZHRoJywgJzQwcHgnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNwaW5uZXIsICdoZWlnaHQnLCAnNDBweCcpO1xuXG4gICAgLy8gVGjDqm0gc3Bpbm5lciB2w6BvIHNwaW5uZXIgd3JhcHBlclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5zcGlubmVyV3JhcHBlciwgc3Bpbm5lcik7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2FwcExvYWRpbmcnXSkge1xuICAgICAgaWYgKHRoaXMuYXBwTG9hZGluZykge1xuICAgICAgICB0aGlzLnNob3dTcGlubmVyKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhpZGVTcGlubmVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG93U3Bpbm5lcigpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdmaWx0ZXInLCAnYmx1cigycHgpJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuc3Bpbm5lcldyYXBwZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlU3Bpbm5lcigpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2ZpbHRlcicpO1xuICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGhpcy5zcGlubmVyV3JhcHBlcikpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLnNwaW5uZXJXcmFwcGVyKTtcbiAgICB9XG4gIH1cblxufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvLWxvYWRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXRvLXdhdGVyLWxpYi9zcmMvbGliL2RpcmVjdGl2ZS9hdG8tbG9hZGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQzs7QUFLbEcsTUFBTSxPQUFPLG1CQUFtQjtJQU05QixZQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSx3MEZBQXcwRixDQUFDLENBQUM7UUFDcjNGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN6QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNwQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7U0FDRjtJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN2RTtJQUNILENBQUM7O2lIQS9DVSxtQkFBbUI7cUdBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjt5SEFHVSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F0b0xvYWRpbmddJ1xufSlcbmV4cG9ydCBjbGFzcyBBdG9Mb2FkaW5nRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBhcHBMb2FkaW5nOiBib29sZWFuO1xuXG4gIHByaXZhdGUgc3Bpbm5lcldyYXBwZXI6IEhUTUxFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHRoaXMuc3Bpbm5lcldyYXBwZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5zcGlubmVyV3JhcHBlciwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNwaW5uZXJXcmFwcGVyLCAndG9wJywgJzAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdsZWZ0JywgJzAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICd3aWR0aCcsICcxMDAlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNwaW5uZXJXcmFwcGVyLCAnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdkaXNwbGF5JywgJ2ZsZXgnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdhbGlnbi1pdGVtcycsICdjZW50ZXInKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICdqdXN0aWZ5LWNvbnRlbnQnLCAnY2VudGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnNwaW5uZXJXcmFwcGVyLCAnYmFja2dyb3VuZCcsICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyknKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc3Bpbm5lcldyYXBwZXIsICd6LWluZGV4JywgJzEwJyk7XG5cbiAgICBjb25zdCBzcGlubmVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdpbWcnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzcGlubmVyLCAnc3JjJywgJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0S1BITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQnpkSGxzWlQwaWJXRnlaMmx1T2lCaGRYUnZPeUJpWVdOclozSnZkVzVrT2lCeVoySW9NalUxTENBeU5UVXNJREkxTlNrN0lHUnBjM0JzWVhrNklHSnNiMk5yT3lCemFHRndaUzF5Wlc1a1pYSnBibWM2SUdGMWRHODdJR0Z1YVcxaGRHbHZiaTF3YkdGNUxYTjBZWFJsT2lCeWRXNXVhVzVuT3lCaGJtbHRZWFJwYjI0dFpHVnNZWGs2SURCek95SWdkMmxrZEdnOUlqZzRjSGdpSUdobGFXZG9kRDBpT0Rod2VDSWdkbWxsZDBKdmVEMGlNQ0F3SURFd01DQXhNREFpSUhCeVpYTmxjblpsUVhOd1pXTjBVbUYwYVc4OUluaE5hV1JaVFdsa0lqNEtQR1JsWm5NZ2MzUjViR1U5SW1GdWFXMWhkR2x2Ymkxd2JHRjVMWE4wWVhSbE9pQnlkVzV1YVc1bk95QmhibWx0WVhScGIyNHRaR1ZzWVhrNklEQnpPeUkrQ2lBZ1BHMWhjMnNnYVdROUlteGthVzh0ZG1ONVlqUTFZbUZ2ZFdzdGJXRnpheUlnYzNSNWJHVTlJbUZ1YVcxaGRHbHZiaTF3YkdGNUxYTjBZWFJsT2lCeWRXNXVhVzVuT3lCaGJtbHRZWFJwYjI0dFpHVnNZWGs2SURCek95SStDaUFnSUNBOGNtVmpkQ0I0UFNJd0lpQjVQU0l3SWlCM2FXUjBhRDBpTVRBd0lpQm9aV2xuYUhROUlqRXdNQ0lnWm1sc2JEMGlkMmhwZEdVaUlITjBlV3hsUFNKaGJtbHRZWFJwYjI0dGNHeGhlUzF6ZEdGMFpUb2djblZ1Ym1sdVp6c2dZVzVwYldGMGFXOXVMV1JsYkdGNU9pQXdjenNpUGp3dmNtVmpkRDRLSUNBOEwyMWhjMnMrQ2p3dlpHVm1jejRLUEhKbFkzUWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJakV3TUNJZ2FHVnBaMmgwUFNJeE1EQWlJR1pwYkd3OUlpTTFZMkZoWldFaUlITjBlV3hsUFNKaGJtbHRZWFJwYjI0dGNHeGhlUzF6ZEdGMFpUb2djblZ1Ym1sdVp6c2dZVzVwYldGMGFXOXVMV1JsYkdGNU9pQXdjenNpUGp3dmNtVmpkRDRLUEdjZ2JXRnphejBpZFhKc0tDTnNaR2x2TFhaamVXSTBOV0poYjNWckxXMWhjMnNwSWlCemRIbHNaVDBpWVc1cGJXRjBhVzl1TFhCc1lYa3RjM1JoZEdVNklISjFibTVwYm1jN0lHRnVhVzFoZEdsdmJpMWtaV3hoZVRvZ01ITTdJajRLSUNBOGNtVmpkQ0I0UFNJdE1UQXdJaUI1UFNJdE1qVXdJaUIzYVdSMGFEMGlNekF3SWlCb1pXbG5hSFE5SWpNd01DSWdjbmc5SWprd0lpQnllVDBpT1RBaUlHWnBiR3c5SWlNNE1tTmxabVlpSUc5d1lXTnBkSGs5SWpBdU5DSWdjM1I1YkdVOUltRnVhVzFoZEdsdmJpMXdiR0Y1TFhOMFlYUmxPaUJ5ZFc1dWFXNW5PeUJoYm1sdFlYUnBiMjR0WkdWc1lYazZJREJ6T3lJK0NpQWdJQ0E4WVc1cGJXRjBaVlJ5WVc1elptOXliU0JoZEhSeWFXSjFkR1ZPWVcxbFBTSjBjbUZ1YzJadmNtMGlJSFI1Y0dVOUluSnZkR0YwWlNJZ1pIVnlQU0l4Y3lJZ2NtVndaV0YwUTI5MWJuUTlJbWx1WkdWbWFXNXBkR1VpSUhaaGJIVmxjejBpTUNBMU1DQXRNVEF3T3prd0lEVXdJQzB4TURBaUlHdGxlVlJwYldWelBTSXdPekVpSUhOMGVXeGxQU0poYm1sdFlYUnBiMjR0Y0d4aGVTMXpkR0YwWlRvZ2NuVnVibWx1WnpzZ1lXNXBiV0YwYVc5dUxXUmxiR0Y1T2lBd2N6c2lQand2WVc1cGJXRjBaVlJ5WVc1elptOXliVDRLSUNBOEwzSmxZM1ErQ2dvZ0lEeHlaV04wSUhnOUlpMHhNREFpSUhrOUlpMHlOakFpSUhkcFpIUm9QU0l6TURBaUlHaGxhV2RvZEQwaU16QXdJaUJ5ZUQwaU9UVWlJSEo1UFNJNU5TSWdabWxzYkQwaUkyRTFaR05tWmlJZ2IzQmhZMmwwZVQwaU1DNDBJaUJ6ZEhsc1pUMGlZVzVwYldGMGFXOXVMWEJzWVhrdGMzUmhkR1U2SUhKMWJtNXBibWM3SUdGdWFXMWhkR2x2Ymkxa1pXeGhlVG9nTUhNN0lqNEtJQ0FnSUR4aGJtbHRZWFJsVkhKaGJuTm1iM0p0SUdGMGRISnBZblYwWlU1aGJXVTlJblJ5WVc1elptOXliU0lnZEhsd1pUMGljbTkwWVhSbElpQmtkWEk5SWpFdU5URTFNVFV4TlRFMU1UVXhOVEUxTVhNaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlCMllXeDFaWE05SWpBZ05UQWdMVEV4TURzNU1DQTFNQ0F0TVRFd0lpQnJaWGxVYVcxbGN6MGlNRHN4SWlCemRIbHNaVDBpWVc1cGJXRjBhVzl1TFhCc1lYa3RjM1JoZEdVNklISjFibTVwYm1jN0lHRnVhVzFoZEdsdmJpMWtaV3hoZVRvZ01ITTdJajQ4TDJGdWFXMWhkR1ZVY21GdWMyWnZjbTArQ2lBZ1BDOXlaV04wUGdvS0lDQThjbVZqZENCNFBTSXRNVEF3SWlCNVBTSXRNamN3SWlCM2FXUjBhRDBpTXpBd0lpQm9aV2xuYUhROUlqTXdNQ0lnY25nOUlqRXdNQ0lnY25rOUlqRXdNQ0lnWm1sc2JEMGlJMlptWm1abVppSWdiM0JoWTJsMGVUMGlNQzQwSWlCemRIbHNaVDBpWVc1cGJXRjBhVzl1TFhCc1lYa3RjM1JoZEdVNklISjFibTVwYm1jN0lHRnVhVzFoZEdsdmJpMWtaV3hoZVRvZ01ITTdJajRLSUNBZ0lEeGhibWx0WVhSbFZISmhibk5tYjNKdElHRjBkSEpwWW5WMFpVNWhiV1U5SW5SeVlXNXpabTl5YlNJZ2RIbHdaVDBpY205MFlYUmxJaUJrZFhJOUlqTXVNRE13TXpBek1ETXdNekF6TURNd00zTWlJSEpsY0dWaGRFTnZkVzUwUFNKcGJtUmxabWx1YVhSbElpQjJZV3gxWlhNOUlqQWdOVEFnTFRFeU1EczVNQ0ExTUNBdE1USXdJaUJyWlhsVWFXMWxjejBpTURzeElpQnpkSGxzWlQwaVlXNXBiV0YwYVc5dUxYQnNZWGt0YzNSaGRHVTZJSEoxYm01cGJtYzdJR0Z1YVcxaGRHbHZiaTFrWld4aGVUb2dNSE03SWo0OEwyRnVhVzFoZEdWVWNtRnVjMlp2Y20wK0NpQWdQQzl5WldOMFBnb0tQQzluUGdvOElTMHRJRnRzWkdsdlhTQm5aVzVsY21GMFpXUWdZbmtnYUhSMGNITTZMeTlzYjJGa2FXNW5MbWx2THlBdExUNDhMM04yWno0PScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc3Bpbm5lciwgJ3dpZHRoJywgJzQwcHgnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNwaW5uZXIsICdoZWlnaHQnLCAnNDBweCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc3Bpbm5lciwgJ2JvcmRlci1yYWRpdXMnLCAnNTAlJyk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuc3Bpbm5lcldyYXBwZXIsIHNwaW5uZXIpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydhcHBMb2FkaW5nJ10pIHtcbiAgICAgIGlmICh0aGlzLmFwcExvYWRpbmcpIHtcbiAgICAgICAgdGhpcy5zaG93U3Bpbm5lcigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oaWRlU3Bpbm5lcigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd1NwaW5uZXIoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLnNwaW5uZXJXcmFwcGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZVNwaW5uZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5jb250YWlucyh0aGlzLnNwaW5uZXJXcmFwcGVyKSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuc3Bpbm5lcldyYXBwZXIpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=