@bizdoc/core 1.16.9 → 1.16.10

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.
Files changed (55) hide show
  1. package/assets/system/{Microsoft_Azure.svg → Azure.svg} +0 -0
  2. package/assets/system/QAD.svg +12 -358
  3. package/assets/system/priority.svg +19 -0
  4. package/esm2020/lib/admin/configuration-designer/cube-axes-filter.component.mjs +2 -2
  5. package/esm2020/lib/admin/configuration-designer/declarations.mjs +108 -0
  6. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +120 -223
  7. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +23 -82
  8. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +5 -3
  9. package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +3 -3
  10. package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +13 -12
  11. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +13 -12
  12. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +89 -75
  13. package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +4 -3
  14. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +3 -3
  15. package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +6 -5
  16. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +3 -3
  17. package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +3 -3
  18. package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +1 -1
  19. package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +6 -12
  20. package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +3 -3
  21. package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +3 -3
  22. package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +1 -1
  23. package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +3 -3
  24. package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +5 -11
  25. package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +3 -3
  26. package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +3 -3
  27. package/esm2020/lib/core/translations.mjs +10 -4
  28. package/esm2020/lib/system.module.mjs +6 -6
  29. package/esm2020/public-api.mjs +2 -2
  30. package/fesm2015/bizdoc-core.mjs +468 -521
  31. package/fesm2015/bizdoc-core.mjs.map +1 -1
  32. package/fesm2020/bizdoc-core.mjs +463 -508
  33. package/fesm2020/bizdoc-core.mjs.map +1 -1
  34. package/lib/admin/configuration-designer/cube-axes-filter.component.d.ts +1 -1
  35. package/lib/admin/configuration-designer/declarations.d.ts +203 -0
  36. package/lib/admin/configuration-designer/designer-element.component.d.ts +45 -65
  37. package/lib/admin/configuration-designer/designer.base.d.ts +5 -197
  38. package/lib/admin/configuration-designer/designer.component.d.ts +1 -1
  39. package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts +1 -1
  40. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts +1 -1
  41. package/lib/admin/configuration-designer/elements/cube.component.d.ts +30 -26
  42. package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts +2 -1
  43. package/lib/admin/configuration-designer/elements/folder.component.d.ts +2 -1
  44. package/lib/admin/configuration-designer/elements/form.component.d.ts +2 -1
  45. package/lib/admin/configuration-designer/elements/report.component.d.ts +2 -1
  46. package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts +2 -1
  47. package/lib/admin/configuration-designer/elements/role.component.d.ts +2 -1
  48. package/lib/admin/configuration-designer/elements/rule.component.d.ts +1 -1
  49. package/lib/admin/configuration-designer/elements/tasks-report.component.d.ts +2 -1
  50. package/lib/admin/configuration-designer/elements/view.component.d.ts +1 -1
  51. package/lib/admin/configuration-designer/elements/widget.component.d.ts +3 -2
  52. package/lib/core/translations.d.ts +9 -3
  53. package/lib/system.module.d.ts +16 -16
  54. package/package.json +1 -1
  55. package/public-api.d.ts +2 -2
@@ -0,0 +1,108 @@
1
+ import { Injector } from "@angular/core";
2
+ import { isString } from "../../core/functions";
3
+ import { Subject } from "rxjs";
4
+ export const FAMILY_SVG = {
5
+ "Azure": `<svg width="34" height="34" viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg">
6
+ <defs>
7
+ <linearGradient id="e399c19f-b68f-429d-b176-18c2117ff73c" x1="-1032.172" x2="-1059.213" y1="145.312" y2="65.426" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
8
+ <stop offset="0" stop-color="#114a8b"/>
9
+ <stop offset="1" stop-color="#0669bc"/>
10
+ </linearGradient>
11
+ <linearGradient id="ac2a6fc2-ca48-4327-9a3c-d4dcc3256e15" x1="-1023.725" x2="-1029.98" y1="108.083" y2="105.968" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
12
+ <stop offset="0" stop-opacity=".3"/>
13
+ <stop offset=".071" stop-opacity=".2"/>
14
+ <stop offset=".321" stop-opacity=".1"/>
15
+ <stop offset=".623" stop-opacity=".05"/>
16
+ <stop offset="1" stop-opacity="0"/>
17
+ </linearGradient>
18
+ <linearGradient id="a7fee970-a784-4bb1-af8d-63d18e5f7db9" x1="-1027.165" x2="-997.482" y1="147.642" y2="68.561" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
19
+ <stop offset="0" stop-color="#3ccbf4"/>
20
+ <stop offset="1" stop-color="#2892df"/>
21
+ </linearGradient>
22
+ </defs>
23
+ <path fill="url(#e399c19f-b68f-429d-b176-18c2117ff73c)" d="M33.338 6.544h26.038l-27.03 80.087a4.152 4.152 0 0 1-3.933 2.824H8.149a4.145 4.145 0 0 1-3.928-5.47L29.404 9.368a4.152 4.152 0 0 1 3.934-2.825z"/>
24
+ <path fill="#0078d4" d="M71.175 60.261h-41.29a1.911 1.911 0 0 0-1.305 3.309l26.532 24.764a4.171 4.171 0 0 0 2.846 1.121h23.38z"/>
25
+ <path fill="url(#ac2a6fc2-ca48-4327-9a3c-d4dcc3256e15)" d="M33.338 6.544a4.118 4.118 0 0 0-3.943 2.879L4.252 83.917a4.14 4.14 0 0 0 3.908 5.538h20.787a4.443 4.443 0 0 0 3.41-2.9l5.014-14.777 17.91 16.705a4.237 4.237 0 0 0 2.666.972H81.24L71.024 60.261l-29.781.007L59.47 6.544z"/>
26
+ <path fill="url(#a7fee970-a784-4bb1-af8d-63d18e5f7db9)" d="M66.595 9.364a4.145 4.145 0 0 0-3.928-2.82H33.648a4.146 4.146 0 0 1 3.928 2.82l25.184 74.62a4.146 4.146 0 0 1-3.928 5.472h29.02a4.146 4.146 0 0 0 3.927-5.472z"/>
27
+ </svg>`,
28
+ 'SAP': '<svg xmlns="http://www.w3.org/2000/svg" width="92" height="34" viewBox="0 0 92 45"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="45.483" x2="45.483" y2="45.001"><stop offset="0" stop-color="#00AEEF"/><stop offset=".212" stop-color="#0097DC"/><stop offset=".519" stop-color="#007CC5"/><stop offset=".792" stop-color="#006CB8"/><stop offset="1" stop-color="#0066B3"/></linearGradient><path fill-rule="evenodd" clip-rule="evenodd" fill="url(#a)" d="M0 45h45.974L90.966 0H0v45"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#fff" d="M53.984 9H45l.03 21.13-7.823-21.137H29.45l-6.678 17.653c-.71-4.492-5.354-6.042-9.008-7.203-2.413-.775-4.974-1.915-4.948-3.175.02-1.034 1.37-1.993 4.053-1.85 1.8.097 3.39.242 6.553 1.77l3.11-5.42C19.648 9.3 15.66 8.373 12.39 8.37h-.02c-3.813 0-6.988 1.235-8.956 3.27-1.372 1.42-2.112 3.226-2.142 5.223-.05 2.748.957 4.696 3.073 6.253 1.788 1.31 4.075 2.16 6.09 2.784 2.485.77 4.515 1.44 4.49 2.866-.02.52-.216 1.006-.59 1.398-.62.64-1.57.88-2.885.906-2.537.054-4.417-.345-7.413-2.116L1.27 34.444C4.263 36.146 7.44 37 11.05 37l.812-.006c3.142-.057 5.692-.81 7.718-2.44.116-.093.22-.187.328-.282l-.34 1.752 7.58-.024 1.36-3.482c1.43.488 3.056.758 4.782.758 1.682 0 3.264-.256 4.667-.716l.948 3.44 13.6.013.033-7.938h2.894c6.995 0 11.13-3.56 11.13-9.53C66.56 11.896 62.54 9 53.984 9zM33.29 27.062c-1.045 0-2.025-.182-2.868-.502l2.836-8.955h.055l2.79 8.98c-.84.3-1.797.477-2.814.477zm21.22-5.145h-1.974V14.7h1.975c2.63 0 4.73.876 4.73 3.562-.002 2.78-2.1 3.655-4.73 3.655"/><path fill="none" d="M0 0h92v45H0z"/></svg>',
29
+ 'Mfg': `<svg height="34" viewBox="0 0 100 50" xmlns="http://www.w3.org/2000/svg">
30
+ <defs></defs>
31
+ <rect width="93" height="38" style="fill: rgb(216, 216, 216);"></rect>
32
+ <g transform="matrix(1, 0, 0, 1, 5, 6)">
33
+ <g>
34
+ <g>
35
+ <path fill="#FFFFFF" d="M41.1,1.8l13.1,20.5h-3.8L47,17.1H35.6l-3.1,5.2h-3.8L41.1,1.8z M37.2,14.5h8.1l-4.2-6.6L37.2,14.5z"></path>
36
+ <path fill="#FFFFFF" d="M59.3,2.5h9.3c8.8,0,12.7,5.2,12.7,9.9c0,5.1-4.8,9.9-12.6,9.9h-9.3V2.5z M62.7,19.7h5.4
37
+ c7.8,0,9.5-4.9,9.5-7.4c0-4-3-7.4-9.7-7.4h-5.3V19.7z"></path>
38
+ <path fill="#FFFFFF" d="M25.7,12.3c0-5.8-5.4-10.1-12.5-10.1C5.4,2.2,0,6.4,0,12.4c0,6,5.4,10.2,13.1,10.2c1.4,0,2.6-0.2,3.8-0.5
39
+ l3.3,2.6h5l-4.9-3.9C23.6,19,25.7,15.9,25.7,12.3z M13.1,20c-6.4,0-9.5-3.5-9.5-7.5c0-3,2.3-7.6,9.5-7.6c5.3,0,9.2,3.3,9.2,7.7
40
+ C22.1,16.5,18.4,20,13.1,20z"></path>
41
+ </g>
42
+ </g>
43
+ </g>
44
+ </svg>`,
45
+ 'Priority': `<svg fill="none" height="60" viewBox="0 0 240 133" xmlns="http://www.w3.org/2000/svg">
46
+ <g>
47
+ <path d="M 0 0 L 240 0 L 240 80.47 L 0 80.47 L 0 0 Z" fill="#fff" style=""/>
48
+ <g transform="matrix(1, 0, 0, 1, -12.524841, -24.591444)">
49
+ <path d="M 177.748 50.673 L 173.642 50.673 L 173.642 55.022 L 177.748 55.022 L 177.748 50.673 Z" fill="#00aeef"/>
50
+ <path d="M 62.734 56.578 C 62.734 55.44 62.423 55.077 61.437 55.026 L 59.263 54.869 L 59.263 50.674 L 68.019 50.674 L 68.019 54.558 C 69.211 51.968 71.956 49.896 75.373 49.896 C 77.086 49.896 78.64 50.207 80.348 51.035 L 80.348 58.755 L 75.531 59.117 L 75.531 56.734 C 75.531 56.113 75.428 55.647 75.012 55.44 C 74.544 55.232 74.18 55.18 73.613 55.18 C 70.815 55.18 68.898 57.409 68.898 60.414 L 68.898 72.431 L 73.408 72.636 L 73.408 76.73 L 59.52 76.73 L 59.52 72.795 L 61.232 72.636 C 62.217 72.533 62.734 72.224 62.734 70.929 L 62.734 56.578 Z" fill="#000"/>
51
+ <path d="M 115.469 63.832 C 115.469 58.031 114.074 54.456 109.93 54.456 C 105.833 54.456 104.177 57.978 104.177 62.952 C 104.177 67.768 104.85 72.946 109.825 72.946 C 113.865 72.946 115.469 69.221 115.469 63.832 Z M 110.239 49.896 C 114.074 49.896 121.789 51.085 121.789 63.003 C 121.789 72.946 116.247 77.507 109.41 77.507 C 102.467 77.507 97.909 73.053 97.909 63.674 C 97.909 52.902 104.904 49.896 110.239 49.896 Z" fill="#000"/>
52
+ <path d="M 127.543 56.578 C 127.543 55.44 127.235 55.077 126.25 55.026 L 124.072 54.869 L 124.072 50.674 L 132.83 50.674 L 132.83 54.558 C 134.019 51.968 136.766 49.896 140.187 49.896 C 141.894 49.896 143.449 50.207 145.158 51.035 L 145.158 58.755 L 140.341 59.117 L 140.341 56.734 C 140.341 56.113 140.238 55.647 139.822 55.44 C 139.356 55.232 138.995 55.18 138.425 55.18 C 135.625 55.18 133.71 57.409 133.71 60.414 L 133.71 72.431 L 138.215 72.636 L 138.215 76.73 L 124.333 76.73 L 124.333 72.795 L 126.042 72.636 C 127.026 72.533 127.543 72.224 127.543 70.929 L 127.543 56.578 Z" fill="#000"/>
53
+ <path d="M 202.016 71.812 C 200.203 74.4 197.046 75.851 193.622 75.851 C 188.443 75.851 185.594 73.001 185.594 66.887 L 185.594 56.477 C 185.594 55.386 185.178 55.078 184.301 55.023 L 182.639 54.921 L 182.639 50.673 L 191.756 50.673 L 191.756 65.541 C 191.756 68.7 192.274 71.084 195.591 71.084 C 199.22 71.084 201.136 68.647 201.136 65.957 L 201.136 56.578 C 201.136 55.44 200.822 55.023 199.837 55.023 L 198.182 54.921 L 198.182 50.673 L 207.297 50.673 L 207.297 75.747 C 207.297 84.296 203 87.817 195.278 87.817 C 192.016 87.817 187.719 87.196 185.544 86.109 L 185.544 80.694 L 190.463 80.278 L 190.463 80.978 C 190.463 81.962 190.721 82.482 191.657 82.843 C 192.639 83.207 193.781 83.362 195.334 83.362 C 200.099 83.362 202.016 80.461 202.016 75.747 L 202.016 71.812 Z" fill="#000"/>
54
+ <path d="M 157.671 72.43 L 157.671 50.674 L 148.398 50.674 L 148.398 54.972 L 150.21 55.077 C 151.193 55.077 151.508 55.439 151.508 56.577 L 151.535 76.73 L 160.622 76.73 L 160.622 72.586 L 157.671 72.43 Z" fill="#000"/>
55
+ <path d="M 92.86 72.43 L 92.86 50.674 L 83.589 50.674 L 83.589 54.972 L 85.399 55.077 C 86.386 55.077 86.697 55.439 86.697 56.577 L 86.669 76.73 L 95.814 76.73 L 95.814 72.586 L 92.86 72.43 Z" fill="#000"/>
56
+ <path d="M 179.171 71.653 C 178.346 72.173 177.048 72.741 175.653 72.741 C 173.524 72.741 172.281 71.811 172.281 68.647 L 172.281 45.183 L 168.916 45.183 C 167.828 48.134 166.586 50.933 162.958 51.242 L 162.442 55.023 L 166.12 55.023 L 166.12 68.855 C 166.12 72.481 166.066 77.455 174.144 77.455 C 176.582 77.455 179.171 76.73 180.728 75.644 L 179.171 71.653 Z" fill="#000"/>
57
+ <path d="M 44.332 72.587 C 42.986 72.587 41.121 72.173 39.775 71.291 L 39.775 59.377 C 39.775 56.995 42.053 54.92 45.007 54.92 C 47.751 54.92 50.242 56.684 50.242 63.572 C 50.242 68.077 48.737 72.587 44.332 72.587 Z M 47.289 49.896 C 42.884 49.896 40.036 52.279 39.103 54.04 L 39.103 50.675 L 30.347 50.675 L 30.347 54.868 L 32.525 55.023 C 33.507 55.023 33.816 55.44 33.816 56.578 L 33.781 87.455 L 43.968 87.455 L 43.968 83.362 L 39.775 83.153 L 39.775 76.005 C 41.121 76.833 43.296 77.507 45.317 77.507 C 52.158 77.507 56.662 72.587 56.662 63.055 C 56.662 53.783 53.038 49.896 47.289 49.896 Z" fill="#000"/>
58
+ <path d="M 212.882 72.662 L 212.882 73.272 L 211.674 73.272 L 211.674 76.676 L 210.927 76.676 L 210.927 73.272 L 209.717 73.272 L 209.717 72.662 L 212.882 72.662 Z" fill="#000"/>
59
+ <path d="M 215.401 75.194 C 215.429 75.258 215.456 75.322 215.48 75.388 C 215.51 75.322 215.534 75.253 215.564 75.19 C 215.589 75.124 215.618 75.066 215.65 75.004 L 216.84 72.781 C 216.855 72.752 216.868 72.73 216.884 72.717 C 216.901 72.697 216.921 72.685 216.939 72.678 C 216.956 72.669 216.98 72.668 217.003 72.665 C 217.023 72.663 217.057 72.662 217.089 72.662 L 217.653 72.662 L 217.653 76.676 L 216.994 76.676 L 216.994 74.082 C 216.994 74.033 216.995 73.98 216.999 73.926 C 217.002 73.866 217.005 73.809 217.011 73.751 L 215.799 76.026 C 215.77 76.075 215.734 76.117 215.689 76.146 C 215.646 76.175 215.594 76.187 215.534 76.187 L 215.433 76.187 C 215.373 76.187 215.319 76.175 215.275 76.146 C 215.233 76.117 215.195 76.075 215.165 76.026 L 213.941 73.742 C 213.947 73.803 213.95 73.861 213.953 73.92 C 213.957 73.978 213.958 74.032 213.958 74.082 L 213.958 76.676 L 213.299 76.676 L 213.299 72.662 L 213.866 72.662 C 213.899 72.662 213.924 72.663 213.95 72.665 C 213.974 72.668 213.992 72.669 214.015 72.678 C 214.035 72.685 214.052 72.697 214.067 72.717 C 214.089 72.73 214.103 72.752 214.116 72.781 L 215.314 75.009 C 215.348 75.068 215.375 75.133 215.401 75.194 Z" fill="#000"/>
60
+ </g>
61
+ </g>
62
+ </svg>`
63
+ };
64
+ /** */
65
+ export class DesignerRef {
66
+ constructor(_designer, _element, mode) {
67
+ this._designer = _designer;
68
+ this._element = _element;
69
+ this.mode = mode;
70
+ this._unlock$ = new Subject();
71
+ this._state$ = new Subject();
72
+ }
73
+ get designer() { return this._designer; }
74
+ get model() { return this._element; }
75
+ get unlock() { return this._unlock$.asObservable(); }
76
+ get state() { return this._state$.asObservable(); }
77
+ create(element, template) {
78
+ const ref = new DesignerRef(this._designer, element, 'widget');
79
+ const injector = Injector.create([{
80
+ provide: DesignerRef, useValue: ref
81
+ }], this._element.injector);
82
+ element.template = template;
83
+ element.injector = injector;
84
+ return element;
85
+ }
86
+ }
87
+ export function clone(element) {
88
+ return JSON.parse(JSON.stringify(element));
89
+ }
90
+ export function arrayOf(val) {
91
+ if (!val)
92
+ return [];
93
+ if (isString(val))
94
+ return [val];
95
+ return val;
96
+ }
97
+ const NAME_CHAR = /[A-Z]+/g, NON_NAME_CHAR = /[^\w]+/g;
98
+ /**
99
+ *
100
+ * @param name
101
+ */
102
+ export function programName(name) {
103
+ return name.
104
+ replace(' ', '-').
105
+ replace(NAME_CHAR, (c, i) => (i > 0 && name.charAt(i - 1) !== '-' ? '-' : '') + c.toLowerCase()).
106
+ replace(NON_NAME_CHAR, '_');
107
+ }
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2RlY2xhcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixPQUFPLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FzQko7SUFDTCxLQUFLLEVBQUUsMGhEQUEwaEQ7SUFDamlELEtBQUssRUFBRTs7Ozs7Ozs7Ozs7Ozs7O09BZUY7SUFDTCxVQUFVLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJQO0NBQ04sQ0FBQztBQUNGLE1BQU07QUFDTixNQUFNLE9BQU8sV0FBVztJQUd0QixZQUFvQixTQUF3QixFQUNsQyxRQUFzQixFQUN2QixJQUFnQjtRQUZMLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBYztRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSnpCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ2xDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBR0EsQ0FBQztJQUM5QixJQUFJLFFBQVEsS0FBbUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN2RCxJQUFJLEtBQUssS0FBcUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyRCxJQUFJLE1BQU0sS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JELElBQUksS0FBSyxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsTUFBTSxDQUFDLE9BQW9CLEVBQUUsUUFBaUI7UUFDNUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUF1QixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDaEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRzthQUNwQyxDQUFDLEVBQUcsSUFBSSxDQUFDLFFBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsT0FBd0IsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzdDLE9BQXdCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM5QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFRRCxNQUFNLFVBQVUsS0FBSyxDQUFDLE9BQXFCO0lBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUNELE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBc0I7SUFDNUMsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNwQixJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxTQUFTLEdBQUcsU0FBUyxFQUN6QixhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQzVCOzs7R0FHRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUN0QyxPQUFPLElBQUk7UUFDVCxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztRQUNqQixPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEcsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgU2NvcGVUeXBlIH0gZnJvbSBcIi4uLy4uL2NvcmUvY29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBBeGVzTWFwLCBDaGFydFR5cGUsIEN1YmVGaWx0ZXIsIEZpZWxkSW5mbywgRm9sZGVyQ29sdW1uLCBHdWlkZVN0ZXAsIFBvc2l0aW9uUG9saWN5LCBWaWV3VHlwZSB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuZXhwb3J0IGNvbnN0IEZBTUlMWV9TVkcgPSB7XHJcbiAgXCJBenVyZVwiOiBgPHN2ZyB3aWR0aD1cIjM0XCIgaGVpZ2h0PVwiMzRcIiB2aWV3Qm94PVwiMCAwIDk2IDk2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgPGRlZnM+XHJcbiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwiZTM5OWMxOWYtYjY4Zi00MjlkLWIxNzYtMThjMjExN2ZmNzNjXCIgeDE9XCItMTAzMi4xNzJcIiB4Mj1cIi0xMDU5LjIxM1wiIHkxPVwiMTQ1LjMxMlwiIHkyPVwiNjUuNDI2XCIgZ3JhZGllbnRUcmFuc2Zvcm09XCJtYXRyaXgoMSAwIDAgLTEgMTA3NSAxNTgpXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjBcIiBzdG9wLWNvbG9yPVwiIzExNGE4YlwiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMVwiIHN0b3AtY29sb3I9XCIjMDY2OWJjXCIvPlxyXG4gICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwiYWMyYTZmYzItY2E0OC00MzI3LTlhM2MtZDRkY2MzMjU2ZTE1XCIgeDE9XCItMTAyMy43MjVcIiB4Mj1cIi0xMDI5Ljk4XCIgeTE9XCIxMDguMDgzXCIgeTI9XCIxMDUuOTY4XCIgZ3JhZGllbnRUcmFuc2Zvcm09XCJtYXRyaXgoMSAwIDAgLTEgMTA3NSAxNTgpXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjBcIiBzdG9wLW9wYWNpdHk9XCIuM1wiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiLjA3MVwiIHN0b3Atb3BhY2l0eT1cIi4yXCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIuMzIxXCIgc3RvcC1vcGFjaXR5PVwiLjFcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIi42MjNcIiBzdG9wLW9wYWNpdHk9XCIuMDVcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjFcIiBzdG9wLW9wYWNpdHk9XCIwXCIvPlxyXG4gICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwiYTdmZWU5NzAtYTc4NC00YmIxLWFmOGQtNjNkMThlNWY3ZGI5XCIgeDE9XCItMTAyNy4xNjVcIiB4Mj1cIi05OTcuNDgyXCIgeTE9XCIxNDcuNjQyXCIgeTI9XCI2OC41NjFcIiBncmFkaWVudFRyYW5zZm9ybT1cIm1hdHJpeCgxIDAgMCAtMSAxMDc1IDE1OClcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMFwiIHN0b3AtY29sb3I9XCIjM2NjYmY0XCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1jb2xvcj1cIiMyODkyZGZcIi8+XHJcbiAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cclxuICAgIDwvZGVmcz5cclxuICAgIDxwYXRoIGZpbGw9XCJ1cmwoI2UzOTljMTlmLWI2OGYtNDI5ZC1iMTc2LTE4YzIxMTdmZjczYylcIiBkPVwiTTMzLjMzOCA2LjU0NGgyNi4wMzhsLTI3LjAzIDgwLjA4N2E0LjE1MiA0LjE1MiAwIDAgMS0zLjkzMyAyLjgyNEg4LjE0OWE0LjE0NSA0LjE0NSAwIDAgMS0zLjkyOC01LjQ3TDI5LjQwNCA5LjM2OGE0LjE1MiA0LjE1MiAwIDAgMSAzLjkzNC0yLjgyNXpcIi8+XHJcbiAgICA8cGF0aCBmaWxsPVwiIzAwNzhkNFwiIGQ9XCJNNzEuMTc1IDYwLjI2MWgtNDEuMjlhMS45MTEgMS45MTEgMCAwIDAtMS4zMDUgMy4zMDlsMjYuNTMyIDI0Ljc2NGE0LjE3MSA0LjE3MSAwIDAgMCAyLjg0NiAxLjEyMWgyMy4zOHpcIi8+XHJcbiAgICA8cGF0aCBmaWxsPVwidXJsKCNhYzJhNmZjMi1jYTQ4LTQzMjctOWEzYy1kNGRjYzMyNTZlMTUpXCIgZD1cIk0zMy4zMzggNi41NDRhNC4xMTggNC4xMTggMCAwIDAtMy45NDMgMi44NzlMNC4yNTIgODMuOTE3YTQuMTQgNC4xNCAwIDAgMCAzLjkwOCA1LjUzOGgyMC43ODdhNC40NDMgNC40NDMgMCAwIDAgMy40MS0yLjlsNS4wMTQtMTQuNzc3IDE3LjkxIDE2LjcwNWE0LjIzNyA0LjIzNyAwIDAgMCAyLjY2Ni45NzJIODEuMjRMNzEuMDI0IDYwLjI2MWwtMjkuNzgxLjAwN0w1OS40NyA2LjU0NHpcIi8+XHJcbiAgICA8cGF0aCBmaWxsPVwidXJsKCNhN2ZlZTk3MC1hNzg0LTRiYjEtYWY4ZC02M2QxOGU1ZjdkYjkpXCIgZD1cIk02Ni41OTUgOS4zNjRhNC4xNDUgNC4xNDUgMCAwIDAtMy45MjgtMi44MkgzMy42NDhhNC4xNDYgNC4xNDYgMCAwIDEgMy45MjggMi44MmwyNS4xODQgNzQuNjJhNC4xNDYgNC4xNDYgMCAwIDEtMy45MjggNS40NzJoMjkuMDJhNC4xNDYgNC4xNDYgMCAwIDAgMy45MjctNS40NzJ6XCIvPlxyXG48L3N2Zz5gLFxyXG4gICdTQVAnOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI5MlwiIGhlaWdodD1cIjM0XCIgdmlld0JveD1cIjAgMCA5MiA0NVwiPjxsaW5lYXJHcmFkaWVudCBpZD1cImFcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiB4MT1cIjQ1LjQ4M1wiIHgyPVwiNDUuNDgzXCIgeTI9XCI0NS4wMDFcIj48c3RvcCBvZmZzZXQ9XCIwXCIgc3RvcC1jb2xvcj1cIiMwMEFFRUZcIi8+PHN0b3Agb2Zmc2V0PVwiLjIxMlwiIHN0b3AtY29sb3I9XCIjMDA5N0RDXCIvPjxzdG9wIG9mZnNldD1cIi41MTlcIiBzdG9wLWNvbG9yPVwiIzAwN0NDNVwiLz48c3RvcCBvZmZzZXQ9XCIuNzkyXCIgc3RvcC1jb2xvcj1cIiMwMDZDQjhcIi8+PHN0b3Agb2Zmc2V0PVwiMVwiIHN0b3AtY29sb3I9XCIjMDA2NkIzXCIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBmaWxsPVwidXJsKCNhKVwiIGQ9XCJNMCA0NWg0NS45NzRMOTAuOTY2IDBIMHY0NVwiLz48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGZpbGw9XCIjZmZmXCIgZD1cIk01My45ODQgOUg0NWwuMDMgMjEuMTMtNy44MjMtMjEuMTM3SDI5LjQ1bC02LjY3OCAxNy42NTNjLS43MS00LjQ5Mi01LjM1NC02LjA0Mi05LjAwOC03LjIwMy0yLjQxMy0uNzc1LTQuOTc0LTEuOTE1LTQuOTQ4LTMuMTc1LjAyLTEuMDM0IDEuMzctMS45OTMgNC4wNTMtMS44NSAxLjguMDk3IDMuMzkuMjQyIDYuNTUzIDEuNzdsMy4xMS01LjQyQzE5LjY0OCA5LjMgMTUuNjYgOC4zNzMgMTIuMzkgOC4zN2gtLjAyYy0zLjgxMyAwLTYuOTg4IDEuMjM1LTguOTU2IDMuMjctMS4zNzIgMS40Mi0yLjExMiAzLjIyNi0yLjE0MiA1LjIyMy0uMDUgMi43NDguOTU3IDQuNjk2IDMuMDczIDYuMjUzIDEuNzg4IDEuMzEgNC4wNzUgMi4xNiA2LjA5IDIuNzg0IDIuNDg1Ljc3IDQuNTE1IDEuNDQgNC40OSAyLjg2Ni0uMDIuNTItLjIxNiAxLjAwNi0uNTkgMS4zOTgtLjYyLjY0LTEuNTcuODgtMi44ODUuOTA2LTIuNTM3LjA1NC00LjQxNy0uMzQ1LTcuNDEzLTIuMTE2TDEuMjcgMzQuNDQ0QzQuMjYzIDM2LjE0NiA3LjQ0IDM3IDExLjA1IDM3bC44MTItLjAwNmMzLjE0Mi0uMDU3IDUuNjkyLS44MSA3LjcxOC0yLjQ0LjExNi0uMDkzLjIyLS4xODcuMzI4LS4yODJsLS4zNCAxLjc1MiA3LjU4LS4wMjQgMS4zNi0zLjQ4MmMxLjQzLjQ4OCAzLjA1Ni43NTggNC43ODIuNzU4IDEuNjgyIDAgMy4yNjQtLjI1NiA0LjY2Ny0uNzE2bC45NDggMy40NCAxMy42LjAxMy4wMzMtNy45MzhoMi44OTRjNi45OTUgMCAxMS4xMy0zLjU2IDExLjEzLTkuNTNDNjYuNTYgMTEuODk2IDYyLjU0IDkgNTMuOTg0IDl6TTMzLjI5IDI3LjA2MmMtMS4wNDUgMC0yLjAyNS0uMTgyLTIuODY4LS41MDJsMi44MzYtOC45NTVoLjA1NWwyLjc5IDguOThjLS44NC4zLTEuNzk3LjQ3Ny0yLjgxNC40Nzd6bTIxLjIyLTUuMTQ1aC0xLjk3NFYxNC43aDEuOTc1YzIuNjMgMCA0LjczLjg3NiA0LjczIDMuNTYyLS4wMDIgMi43OC0yLjEgMy42NTUtNC43MyAzLjY1NVwiLz48cGF0aCBmaWxsPVwibm9uZVwiIGQ9XCJNMCAwaDkydjQ1SDB6XCIvPjwvc3ZnPicsXHJcbiAgJ01mZyc6IGA8c3ZnIGhlaWdodD1cIjM0XCIgdmlld0JveD1cIjAgMCAxMDAgNTBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgPGRlZnM+PC9kZWZzPlxyXG4gIDxyZWN0IHdpZHRoPVwiOTNcIiBoZWlnaHQ9XCIzOFwiIHN0eWxlPVwiZmlsbDogcmdiKDIxNiwgMjE2LCAyMTYpO1wiPjwvcmVjdD5cclxuICA8ZyB0cmFuc2Zvcm09XCJtYXRyaXgoMSwgMCwgMCwgMSwgNSwgNilcIj5cclxuICAgIDxnPlxyXG4gICAgICA8Zz5cclxuICAgICAgICA8cGF0aCBmaWxsPVwiI0ZGRkZGRlwiIGQ9XCJNNDEuMSwxLjhsMTMuMSwyMC41aC0zLjhMNDcsMTcuMUgzNS42bC0zLjEsNS4yaC0zLjhMNDEuMSwxLjh6IE0zNy4yLDE0LjVoOC4xbC00LjItNi42TDM3LjIsMTQuNXpcIj48L3BhdGg+XHJcbiAgICAgICAgPHBhdGggZmlsbD1cIiNGRkZGRkZcIiBkPVwiTTU5LjMsMi41aDkuM2M4LjgsMCwxMi43LDUuMiwxMi43LDkuOWMwLDUuMS00LjgsOS45LTEyLjYsOS45aC05LjNWMi41eiBNNjIuNywxOS43aDUuNFxyXG5cdFx0XHRcdGM3LjgsMCw5LjUtNC45LDkuNS03LjRjMC00LTMtNy40LTkuNy03LjRoLTUuM1YxOS43elwiPjwvcGF0aD5cclxuICAgICAgICA8cGF0aCBmaWxsPVwiI0ZGRkZGRlwiIGQ9XCJNMjUuNywxMi4zYzAtNS44LTUuNC0xMC4xLTEyLjUtMTAuMUM1LjQsMi4yLDAsNi40LDAsMTIuNGMwLDYsNS40LDEwLjIsMTMuMSwxMC4yYzEuNCwwLDIuNi0wLjIsMy44LTAuNVxyXG5cdFx0XHRcdGwzLjMsMi42aDVsLTQuOS0zLjlDMjMuNiwxOSwyNS43LDE1LjksMjUuNywxMi4zeiBNMTMuMSwyMGMtNi40LDAtOS41LTMuNS05LjUtNy41YzAtMywyLjMtNy42LDkuNS03LjZjNS4zLDAsOS4yLDMuMyw5LjIsNy43XHJcblx0XHRcdFx0QzIyLjEsMTYuNSwxOC40LDIwLDEzLjEsMjB6XCI+PC9wYXRoPlxyXG4gICAgICA8L2c+XHJcbiAgICA8L2c+XHJcbiAgPC9nPlxyXG48L3N2Zz5gLFxyXG4gICdQcmlvcml0eSc6IGA8c3ZnIGZpbGw9XCJub25lXCIgaGVpZ2h0PVwiNjBcIiB2aWV3Qm94PVwiMCAwIDI0MCAxMzNcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgPGc+XHJcbiAgICA8cGF0aCBkPVwiTSAwIDAgTCAyNDAgMCBMIDI0MCA4MC40NyBMIDAgODAuNDcgTCAwIDAgWlwiIGZpbGw9XCIjZmZmXCIgc3R5bGU9XCJcIi8+XHJcbiAgICA8ZyB0cmFuc2Zvcm09XCJtYXRyaXgoMSwgMCwgMCwgMSwgLTEyLjUyNDg0MSwgLTI0LjU5MTQ0NClcIj5cclxuICAgICAgPHBhdGggZD1cIk0gMTc3Ljc0OCA1MC42NzMgTCAxNzMuNjQyIDUwLjY3MyBMIDE3My42NDIgNTUuMDIyIEwgMTc3Ljc0OCA1NS4wMjIgTCAxNzcuNzQ4IDUwLjY3MyBaXCIgZmlsbD1cIiMwMGFlZWZcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDYyLjczNCA1Ni41NzggQyA2Mi43MzQgNTUuNDQgNjIuNDIzIDU1LjA3NyA2MS40MzcgNTUuMDI2IEwgNTkuMjYzIDU0Ljg2OSBMIDU5LjI2MyA1MC42NzQgTCA2OC4wMTkgNTAuNjc0IEwgNjguMDE5IDU0LjU1OCBDIDY5LjIxMSA1MS45NjggNzEuOTU2IDQ5Ljg5NiA3NS4zNzMgNDkuODk2IEMgNzcuMDg2IDQ5Ljg5NiA3OC42NCA1MC4yMDcgODAuMzQ4IDUxLjAzNSBMIDgwLjM0OCA1OC43NTUgTCA3NS41MzEgNTkuMTE3IEwgNzUuNTMxIDU2LjczNCBDIDc1LjUzMSA1Ni4xMTMgNzUuNDI4IDU1LjY0NyA3NS4wMTIgNTUuNDQgQyA3NC41NDQgNTUuMjMyIDc0LjE4IDU1LjE4IDczLjYxMyA1NS4xOCBDIDcwLjgxNSA1NS4xOCA2OC44OTggNTcuNDA5IDY4Ljg5OCA2MC40MTQgTCA2OC44OTggNzIuNDMxIEwgNzMuNDA4IDcyLjYzNiBMIDczLjQwOCA3Ni43MyBMIDU5LjUyIDc2LjczIEwgNTkuNTIgNzIuNzk1IEwgNjEuMjMyIDcyLjYzNiBDIDYyLjIxNyA3Mi41MzMgNjIuNzM0IDcyLjIyNCA2Mi43MzQgNzAuOTI5IEwgNjIuNzM0IDU2LjU3OCBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDExNS40NjkgNjMuODMyIEMgMTE1LjQ2OSA1OC4wMzEgMTE0LjA3NCA1NC40NTYgMTA5LjkzIDU0LjQ1NiBDIDEwNS44MzMgNTQuNDU2IDEwNC4xNzcgNTcuOTc4IDEwNC4xNzcgNjIuOTUyIEMgMTA0LjE3NyA2Ny43NjggMTA0Ljg1IDcyLjk0NiAxMDkuODI1IDcyLjk0NiBDIDExMy44NjUgNzIuOTQ2IDExNS40NjkgNjkuMjIxIDExNS40NjkgNjMuODMyIFogTSAxMTAuMjM5IDQ5Ljg5NiBDIDExNC4wNzQgNDkuODk2IDEyMS43ODkgNTEuMDg1IDEyMS43ODkgNjMuMDAzIEMgMTIxLjc4OSA3Mi45NDYgMTE2LjI0NyA3Ny41MDcgMTA5LjQxIDc3LjUwNyBDIDEwMi40NjcgNzcuNTA3IDk3LjkwOSA3My4wNTMgOTcuOTA5IDYzLjY3NCBDIDk3LjkwOSA1Mi45MDIgMTA0LjkwNCA0OS44OTYgMTEwLjIzOSA0OS44OTYgWlwiIGZpbGw9XCIjMDAwXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTSAxMjcuNTQzIDU2LjU3OCBDIDEyNy41NDMgNTUuNDQgMTI3LjIzNSA1NS4wNzcgMTI2LjI1IDU1LjAyNiBMIDEyNC4wNzIgNTQuODY5IEwgMTI0LjA3MiA1MC42NzQgTCAxMzIuODMgNTAuNjc0IEwgMTMyLjgzIDU0LjU1OCBDIDEzNC4wMTkgNTEuOTY4IDEzNi43NjYgNDkuODk2IDE0MC4xODcgNDkuODk2IEMgMTQxLjg5NCA0OS44OTYgMTQzLjQ0OSA1MC4yMDcgMTQ1LjE1OCA1MS4wMzUgTCAxNDUuMTU4IDU4Ljc1NSBMIDE0MC4zNDEgNTkuMTE3IEwgMTQwLjM0MSA1Ni43MzQgQyAxNDAuMzQxIDU2LjExMyAxNDAuMjM4IDU1LjY0NyAxMzkuODIyIDU1LjQ0IEMgMTM5LjM1NiA1NS4yMzIgMTM4Ljk5NSA1NS4xOCAxMzguNDI1IDU1LjE4IEMgMTM1LjYyNSA1NS4xOCAxMzMuNzEgNTcuNDA5IDEzMy43MSA2MC40MTQgTCAxMzMuNzEgNzIuNDMxIEwgMTM4LjIxNSA3Mi42MzYgTCAxMzguMjE1IDc2LjczIEwgMTI0LjMzMyA3Ni43MyBMIDEyNC4zMzMgNzIuNzk1IEwgMTI2LjA0MiA3Mi42MzYgQyAxMjcuMDI2IDcyLjUzMyAxMjcuNTQzIDcyLjIyNCAxMjcuNTQzIDcwLjkyOSBMIDEyNy41NDMgNTYuNTc4IFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjAyLjAxNiA3MS44MTIgQyAyMDAuMjAzIDc0LjQgMTk3LjA0NiA3NS44NTEgMTkzLjYyMiA3NS44NTEgQyAxODguNDQzIDc1Ljg1MSAxODUuNTk0IDczLjAwMSAxODUuNTk0IDY2Ljg4NyBMIDE4NS41OTQgNTYuNDc3IEMgMTg1LjU5NCA1NS4zODYgMTg1LjE3OCA1NS4wNzggMTg0LjMwMSA1NS4wMjMgTCAxODIuNjM5IDU0LjkyMSBMIDE4Mi42MzkgNTAuNjczIEwgMTkxLjc1NiA1MC42NzMgTCAxOTEuNzU2IDY1LjU0MSBDIDE5MS43NTYgNjguNyAxOTIuMjc0IDcxLjA4NCAxOTUuNTkxIDcxLjA4NCBDIDE5OS4yMiA3MS4wODQgMjAxLjEzNiA2OC42NDcgMjAxLjEzNiA2NS45NTcgTCAyMDEuMTM2IDU2LjU3OCBDIDIwMS4xMzYgNTUuNDQgMjAwLjgyMiA1NS4wMjMgMTk5LjgzNyA1NS4wMjMgTCAxOTguMTgyIDU0LjkyMSBMIDE5OC4xODIgNTAuNjczIEwgMjA3LjI5NyA1MC42NzMgTCAyMDcuMjk3IDc1Ljc0NyBDIDIwNy4yOTcgODQuMjk2IDIwMyA4Ny44MTcgMTk1LjI3OCA4Ny44MTcgQyAxOTIuMDE2IDg3LjgxNyAxODcuNzE5IDg3LjE5NiAxODUuNTQ0IDg2LjEwOSBMIDE4NS41NDQgODAuNjk0IEwgMTkwLjQ2MyA4MC4yNzggTCAxOTAuNDYzIDgwLjk3OCBDIDE5MC40NjMgODEuOTYyIDE5MC43MjEgODIuNDgyIDE5MS42NTcgODIuODQzIEMgMTkyLjYzOSA4My4yMDcgMTkzLjc4MSA4My4zNjIgMTk1LjMzNCA4My4zNjIgQyAyMDAuMDk5IDgzLjM2MiAyMDIuMDE2IDgwLjQ2MSAyMDIuMDE2IDc1Ljc0NyBMIDIwMi4wMTYgNzEuODEyIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMTU3LjY3MSA3Mi40MyBMIDE1Ny42NzEgNTAuNjc0IEwgMTQ4LjM5OCA1MC42NzQgTCAxNDguMzk4IDU0Ljk3MiBMIDE1MC4yMSA1NS4wNzcgQyAxNTEuMTkzIDU1LjA3NyAxNTEuNTA4IDU1LjQzOSAxNTEuNTA4IDU2LjU3NyBMIDE1MS41MzUgNzYuNzMgTCAxNjAuNjIyIDc2LjczIEwgMTYwLjYyMiA3Mi41ODYgTCAxNTcuNjcxIDcyLjQzIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gOTIuODYgNzIuNDMgTCA5Mi44NiA1MC42NzQgTCA4My41ODkgNTAuNjc0IEwgODMuNTg5IDU0Ljk3MiBMIDg1LjM5OSA1NS4wNzcgQyA4Ni4zODYgNTUuMDc3IDg2LjY5NyA1NS40MzkgODYuNjk3IDU2LjU3NyBMIDg2LjY2OSA3Ni43MyBMIDk1LjgxNCA3Ni43MyBMIDk1LjgxNCA3Mi41ODYgTCA5Mi44NiA3Mi40MyBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDE3OS4xNzEgNzEuNjUzIEMgMTc4LjM0NiA3Mi4xNzMgMTc3LjA0OCA3Mi43NDEgMTc1LjY1MyA3Mi43NDEgQyAxNzMuNTI0IDcyLjc0MSAxNzIuMjgxIDcxLjgxMSAxNzIuMjgxIDY4LjY0NyBMIDE3Mi4yODEgNDUuMTgzIEwgMTY4LjkxNiA0NS4xODMgQyAxNjcuODI4IDQ4LjEzNCAxNjYuNTg2IDUwLjkzMyAxNjIuOTU4IDUxLjI0MiBMIDE2Mi40NDIgNTUuMDIzIEwgMTY2LjEyIDU1LjAyMyBMIDE2Ni4xMiA2OC44NTUgQyAxNjYuMTIgNzIuNDgxIDE2Ni4wNjYgNzcuNDU1IDE3NC4xNDQgNzcuNDU1IEMgMTc2LjU4MiA3Ny40NTUgMTc5LjE3MSA3Ni43MyAxODAuNzI4IDc1LjY0NCBMIDE3OS4xNzEgNzEuNjUzIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gNDQuMzMyIDcyLjU4NyBDIDQyLjk4NiA3Mi41ODcgNDEuMTIxIDcyLjE3MyAzOS43NzUgNzEuMjkxIEwgMzkuNzc1IDU5LjM3NyBDIDM5Ljc3NSA1Ni45OTUgNDIuMDUzIDU0LjkyIDQ1LjAwNyA1NC45MiBDIDQ3Ljc1MSA1NC45MiA1MC4yNDIgNTYuNjg0IDUwLjI0MiA2My41NzIgQyA1MC4yNDIgNjguMDc3IDQ4LjczNyA3Mi41ODcgNDQuMzMyIDcyLjU4NyBaIE0gNDcuMjg5IDQ5Ljg5NiBDIDQyLjg4NCA0OS44OTYgNDAuMDM2IDUyLjI3OSAzOS4xMDMgNTQuMDQgTCAzOS4xMDMgNTAuNjc1IEwgMzAuMzQ3IDUwLjY3NSBMIDMwLjM0NyA1NC44NjggTCAzMi41MjUgNTUuMDIzIEMgMzMuNTA3IDU1LjAyMyAzMy44MTYgNTUuNDQgMzMuODE2IDU2LjU3OCBMIDMzLjc4MSA4Ny40NTUgTCA0My45NjggODcuNDU1IEwgNDMuOTY4IDgzLjM2MiBMIDM5Ljc3NSA4My4xNTMgTCAzOS43NzUgNzYuMDA1IEMgNDEuMTIxIDc2LjgzMyA0My4yOTYgNzcuNTA3IDQ1LjMxNyA3Ny41MDcgQyA1Mi4xNTggNzcuNTA3IDU2LjY2MiA3Mi41ODcgNTYuNjYyIDYzLjA1NSBDIDU2LjY2MiA1My43ODMgNTMuMDM4IDQ5Ljg5NiA0Ny4yODkgNDkuODk2IFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjEyLjg4MiA3Mi42NjIgTCAyMTIuODgyIDczLjI3MiBMIDIxMS42NzQgNzMuMjcyIEwgMjExLjY3NCA3Ni42NzYgTCAyMTAuOTI3IDc2LjY3NiBMIDIxMC45MjcgNzMuMjcyIEwgMjA5LjcxNyA3My4yNzIgTCAyMDkuNzE3IDcyLjY2MiBMIDIxMi44ODIgNzIuNjYyIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjE1LjQwMSA3NS4xOTQgQyAyMTUuNDI5IDc1LjI1OCAyMTUuNDU2IDc1LjMyMiAyMTUuNDggNzUuMzg4IEMgMjE1LjUxIDc1LjMyMiAyMTUuNTM0IDc1LjI1MyAyMTUuNTY0IDc1LjE5IEMgMjE1LjU4OSA3NS4xMjQgMjE1LjYxOCA3NS4wNjYgMjE1LjY1IDc1LjAwNCBMIDIxNi44NCA3Mi43ODEgQyAyMTYuODU1IDcyLjc1MiAyMTYuODY4IDcyLjczIDIxNi44ODQgNzIuNzE3IEMgMjE2LjkwMSA3Mi42OTcgMjE2LjkyMSA3Mi42ODUgMjE2LjkzOSA3Mi42NzggQyAyMTYuOTU2IDcyLjY2OSAyMTYuOTggNzIuNjY4IDIxNy4wMDMgNzIuNjY1IEMgMjE3LjAyMyA3Mi42NjMgMjE3LjA1NyA3Mi42NjIgMjE3LjA4OSA3Mi42NjIgTCAyMTcuNjUzIDcyLjY2MiBMIDIxNy42NTMgNzYuNjc2IEwgMjE2Ljk5NCA3Ni42NzYgTCAyMTYuOTk0IDc0LjA4MiBDIDIxNi45OTQgNzQuMDMzIDIxNi45OTUgNzMuOTggMjE2Ljk5OSA3My45MjYgQyAyMTcuMDAyIDczLjg2NiAyMTcuMDA1IDczLjgwOSAyMTcuMDExIDczLjc1MSBMIDIxNS43OTkgNzYuMDI2IEMgMjE1Ljc3IDc2LjA3NSAyMTUuNzM0IDc2LjExNyAyMTUuNjg5IDc2LjE0NiBDIDIxNS42NDYgNzYuMTc1IDIxNS41OTQgNzYuMTg3IDIxNS41MzQgNzYuMTg3IEwgMjE1LjQzMyA3Ni4xODcgQyAyMTUuMzczIDc2LjE4NyAyMTUuMzE5IDc2LjE3NSAyMTUuMjc1IDc2LjE0NiBDIDIxNS4yMzMgNzYuMTE3IDIxNS4xOTUgNzYuMDc1IDIxNS4xNjUgNzYuMDI2IEwgMjEzLjk0MSA3My43NDIgQyAyMTMuOTQ3IDczLjgwMyAyMTMuOTUgNzMuODYxIDIxMy45NTMgNzMuOTIgQyAyMTMuOTU3IDczLjk3OCAyMTMuOTU4IDc0LjAzMiAyMTMuOTU4IDc0LjA4MiBMIDIxMy45NTggNzYuNjc2IEwgMjEzLjI5OSA3Ni42NzYgTCAyMTMuMjk5IDcyLjY2MiBMIDIxMy44NjYgNzIuNjYyIEMgMjEzLjg5OSA3Mi42NjIgMjEzLjkyNCA3Mi42NjMgMjEzLjk1IDcyLjY2NSBDIDIxMy45NzQgNzIuNjY4IDIxMy45OTIgNzIuNjY5IDIxNC4wMTUgNzIuNjc4IEMgMjE0LjAzNSA3Mi42ODUgMjE0LjA1MiA3Mi42OTcgMjE0LjA2NyA3Mi43MTcgQyAyMTQuMDg5IDcyLjczIDIxNC4xMDMgNzIuNzUyIDIxNC4xMTYgNzIuNzgxIEwgMjE1LjMxNCA3NS4wMDkgQyAyMTUuMzQ4IDc1LjA2OCAyMTUuMzc1IDc1LjEzMyAyMTUuNDAxIDc1LjE5NCBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICA8L2c+XHJcbiAgPC9nPlxyXG48L3N2Zz5gXHJcbn07XHJcbi8qKiAqL1xyXG5leHBvcnQgY2xhc3MgRGVzaWduZXJSZWY8TyA9IGFueT4ge1xyXG4gIF91bmxvY2skID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBfc3RhdGUkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Rlc2lnbmVyOiBEZXNpZ25lck1vZGVsLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudE1vZGVsLFxyXG4gICAgcHVibGljIG1vZGU6IERlc2lnbk1vZGUpIHsgfVxyXG4gIGdldCBkZXNpZ25lcigpOiBEZXNpZ25lckluZm8geyByZXR1cm4gdGhpcy5fZGVzaWduZXI7IH1cclxuICBnZXQgbW9kZWwoKTogRWxlbWVudEluZm88Tz4geyByZXR1cm4gdGhpcy5fZWxlbWVudDsgfVxyXG4gIGdldCB1bmxvY2soKSB7IHJldHVybiB0aGlzLl91bmxvY2skLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgZ2V0IHN0YXRlKCkgeyByZXR1cm4gdGhpcy5fc3RhdGUkLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgY3JlYXRlKGVsZW1lbnQ6IEVsZW1lbnRJbmZvLCB0ZW1wbGF0ZT86IHN0cmluZykge1xyXG4gICAgY29uc3QgcmVmID0gbmV3IERlc2lnbmVyUmVmKHRoaXMuX2Rlc2lnbmVyLCBlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCwgJ3dpZGdldCcpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW3tcclxuICAgICAgcHJvdmlkZTogRGVzaWduZXJSZWYsIHVzZVZhbHVlOiByZWZcclxuICAgIH1dLCAodGhpcy5fZWxlbWVudCBhcyBFbGVtZW50TW9kZWwpLmluamVjdG9yKTtcclxuICAgIChlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCkudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcclxuICAgIChlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCkuaW5qZWN0b3IgPSBpbmplY3RvcjtcclxuICAgIHJldHVybiBlbGVtZW50O1xyXG4gIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxUPiB7XHJcbiAgbW9kZWw6IEVsZW1lbnRJbmZvPFQ+O1xyXG4gIG1vZGU6IERlc2lnbk1vZGU7XHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG4gIG9uQ29udGludWU/KCk7XHJcbn1cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBEZXNpZ25Nb2RlID0gJ2FkZCcgfCAnZWRpdCcgfCAnd2lkZ2V0JztcclxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lKGVsZW1lbnQ6IEVsZW1lbnRNb2RlbCkge1xyXG4gIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGVsZW1lbnQpKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlPZih2YWw6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgaWYgKCF2YWwpIHJldHVybiBbXTtcclxuICBpZiAoaXNTdHJpbmcodmFsKSkgcmV0dXJuIFt2YWxdO1xyXG4gIHJldHVybiB2YWw7XHJcbn1cclxuXHJcbmNvbnN0IE5BTUVfQ0hBUiA9IC9bQS1aXSsvZyxcclxuICBOT05fTkFNRV9DSEFSID0gL1teXFx3XSsvZztcclxuLyoqXHJcbiAqIFxyXG4gKiBAcGFyYW0gbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByb2dyYW1OYW1lKG5hbWU6IHN0cmluZykge1xyXG4gIHJldHVybiBuYW1lLlxyXG4gICAgcmVwbGFjZSgnICcsICctJykuXHJcbiAgICByZXBsYWNlKE5BTUVfQ0hBUiwgKGMsIGkpID0+IChpID4gMCAmJiBuYW1lLmNoYXJBdChpIC0gMSkgIT09ICctJyA/ICctJyA6ICcnKSArIGMudG9Mb3dlckNhc2UoKSkuXHJcbiAgICByZXBsYWNlKE5PTl9OQU1FX0NIQVIsICdfJyk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEZXNpZ25lck1vZGVsIHtcclxuICB0eXBlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0VHlwZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGd1aWRlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICByZXBvcnRzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRSZXBvcnRzOiBUZW1wbGF0ZUluZm9bXTtcclxuICBmb3JtczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0Rm9ybXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGN1YmVzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRDdWJlczogVGVtcGxhdGVJbmZvW107XHJcbiAgdXRpbGl0aWVzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRVdGlsaXRpZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGZvbGRlcnM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgcm9sZXM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgcnVsZXM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdFJ1bGVzOiBUZW1wbGF0ZUluZm9bXTtcclxuICB2aWV3czogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0Vmlld3M6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIHdpZGdldHM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdFdpZGdldHM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGFjdGlvbnM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdEFjdGlvbnM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIHN0YXRlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlSW5mbyB7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRNb2RlbDxUID0gYW55PiB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGluamVjdG9yOiBJbmplY3RvcjtcclxuICBvcmRpbmFsPzogbnVtYmVyO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgY29uZmlndXJhdGlvbkZpbGU/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICByZXNvdXJjZT86IHN0cmluZztcclxuICBjb3B5T2Y/OiBzdHJpbmc7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBlbXB0eT86IGJvb2xlYW47XHJcbiAgb3B0aW9ucz86IFQ7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgcHJpdmlsZWdlcz86IFByaXZpbGVnZXNNb2RlbDtcclxuICBmaWx0ZXJzPzogQ3ViZUZpbHRlcjtcclxuICBjb2x1bW5zPzogRm9sZGVyQ29sdW1uW107XHJcbiAgYW5vbWFseT86IEFub21hbHlQb2xpY3k7XHJcbiAgdmVyYj86IHN0cmluZztcclxuICB5b3U/OiBzdHJpbmc7XHJcbiAgeW91TWFsZT86IHN0cmluZztcclxuICB5b3VGZW1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdD86IHN0cmluZztcclxuICBwYXN0TWFsZT86IHN0cmluZztcclxuICBwYXN0RmVtYWxlPzogc3RyaW5nO1xyXG4gIGFkamVjdGl2ZT86IHN0cmluZztcclxuICBsb2dnYWJsZT86IGJvb2xlYW47XHJcbiAgYWRqZWN0aXZlUGx1cmFsPzogc3RyaW5nO1xyXG4gIGFzc2lnbmFibGU/OiBib29sZWFuO1xyXG4gIHBvc2l0aW9uPzogUG9zaXRpb25Qb2xpY3k7XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIGdyb3VwPzogbnVtYmVyO1xyXG4gIGRhdGFUeXBlPzogc3RyaW5nO1xyXG4gIHN0ZXBzPzogR3VpZGVTdGVwW107XHJcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gIGF4ZXM/OiBDdWJlQXhpc01vZGVsW107XHJcbiAgdmlld3M/OiBDdWJlVmlld01vZGVsW107XHJcbiAgaW5kaWNlcz86IEN1YmVJbmRleE1vZGVsW107XHJcbiAgc2NvcGU/OiBTY29wZVR5cGU7XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gIHJ1bGVzPzogUGVybWlzc2lvbk1vZGVsW107XHJcbiAgcG9zaXRpb25zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIHBhdHRlcm5zPzogUGF0dGVybk1vZGVsW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlSW5kZXhNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVWaWV3TW9kZWwge1xyXG4gIHByaXZpbGVnZXM/OiBQcml2aWxlZ2VzTW9kZWw7XHJcbiAgeEF4aXM6IHN0cmluZ1tdO1xyXG4gIHNlcmllcz86IHN0cmluZ1tdO1xyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXTtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHR5cGU6IFZpZXdUeXBlO1xyXG4gIGNoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxuICBpbmRpY2VzQ2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUF4aXNNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IHN0cmluZztcclxuICBoaWRkZW4/OiBib29sZWFuO1xyXG4gIGNvbWJpbmF0aW9uPzogYm9vbGVhbjtcclxuICBpbmRleGFibGU/OiBib29sZWFuO1xyXG4gIHNlbnNpdGl2ZT86IGJvb2xlYW47XHJcbiAgcmVzb3VyY2VUeXBlPzogc3RyaW5nO1xyXG4gIHNlbGVjdGlvbk1vZGU/OiAnU2luZ2xlJyB8ICdQYXR0ZXJuJyB8ICdNdWx0aXBsZScgfCAnU2VhcmNoJyB8ICdOb25lJztcclxuICBkZXNjZW5kZW50T2Y/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IHR5cGUgQW5vbWFseVBvbGljeSA9ICdQb3NpdGlvbnMnIHwgJ1JlY2lwaWVudHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXR0ZXJuTW9kZWwge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcmVzb3VyY2VUeXBlPzogc3RyaW5nO1xyXG4gIGF4ZXM6IEF4ZXNNYXA7XHJcbiAgcnVsZT86IHN0cmluZztcclxuICByb2xlcz86IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvbk1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBydWxlPzogc3RyaW5nO1xyXG4gIHJvbGVzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQcml2aWxlZ2VzTW9kZWwge1xyXG4gIHJ1bGU/OiBzdHJpbmc7XHJcbiAgcm9sZXM/OiBzdHJpbmdbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERlc2lnbmVySW5mbyB7XHJcbiAgdHlwZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgZ3VpZGVzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHJlcG9ydHM6IEVsZW1lbnRJbmZvW107XHJcbiAgdFJlcG9ydHM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGZvcm1zOiBFbGVtZW50SW5mb1tdO1xyXG4gIGN1YmVzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHV0aWxpdGllczogRWxlbWVudEluZm9bXTtcclxuICBmb2xkZXJzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHJvbGVzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHJ1bGVzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHZpZXdzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHdpZGdldHM6IEVsZW1lbnRJbmZvW107XHJcbiAgYWN0aW9uczogRWxlbWVudEluZm9bXTtcclxuICBzdGF0ZXM6IEVsZW1lbnRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50SW5mbzxUID0gYW55PiB7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgZW1wdHk/OiBib29sZWFuO1xyXG4gIG9wdGlvbnM/OiBUO1xyXG59XHJcbiJdfQ==