keevo-components 1.8.536 → 1.8.538
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +9 -9
- package/fesm2022/keevo-components.mjs +8 -8
- package/fesm2022/keevo-components.mjs.map +1 -1
- package/lib/components/kv-layout/layout/kv-layout.component.d.ts +4 -4
- package/package.json +1 -1
- package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.scss +56 -0
|
@@ -28,10 +28,10 @@ export class KvLayoutComponent {
|
|
|
28
28
|
* @type {Array<{id: number, numNotifications?: number, action?: (e: any) => void}>}
|
|
29
29
|
*
|
|
30
30
|
* Opções disponíveis:
|
|
31
|
-
* - 2 -
|
|
32
|
-
* - 3 -
|
|
33
|
-
* - 4 -
|
|
34
|
-
* - 5 -
|
|
31
|
+
* - 2 - Kiara
|
|
32
|
+
* - 3 - Notificações
|
|
33
|
+
* - 4 - Tarefas
|
|
34
|
+
* - 5 - Comunicador
|
|
35
35
|
*
|
|
36
36
|
* @property {number} id - identificador do menu.
|
|
37
37
|
* @property {number} [numNotifications] - Número de notificações (opcional).
|
|
@@ -41,10 +41,10 @@ export class KvLayoutComponent {
|
|
|
41
41
|
this.topMenusVisible = input([]);
|
|
42
42
|
this.topMenuOptions = [
|
|
43
43
|
{ id: 1, visible: true, icon: 'ti-user', tooltip: 'Meus Dados', numNotifications: 0, action: (e) => { this.meusDadosPanel.toggle(e); } },
|
|
44
|
-
{ id: 2, visible: false, icon: 'ti-
|
|
45
|
-
{ id: 3, visible: false, icon: 'ti-
|
|
46
|
-
{ id: 4, visible: false, icon: 'ti-
|
|
47
|
-
{ id: 5, visible: false, icon: 'ti-
|
|
44
|
+
{ id: 2, visible: false, icon: 'ti-sparkles', tooltip: 'Kiara', numNotifications: 0, action: () => { } },
|
|
45
|
+
{ id: 3, visible: false, icon: 'ti-bell', tooltip: 'Notificações', numNotifications: 0, action: () => { } },
|
|
46
|
+
{ id: 4, visible: false, icon: 'ti-list-check', tooltip: 'Tarefas', numNotifications: 0, action: () => { } },
|
|
47
|
+
{ id: 5, visible: false, icon: 'ti-message', tooltip: 'Comunicador', numNotifications: 0, action: () => { } },
|
|
48
48
|
];
|
|
49
49
|
this.profileImage = input('');
|
|
50
50
|
this.breadCrumbItems = [];
|
|
@@ -346,4 +346,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
346
346
|
type: HostListener,
|
|
347
347
|
args: ['window:resize', ['$event']]
|
|
348
348
|
}] } });
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC9sYXlvdXQva3YtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC9sYXlvdXQva3YtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFFTCxTQUFTLEVBSVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFHTCxNQUFNLEVBQ04sTUFBTSxFQUdOLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQW1DdkIsTUFBTSxPQUFPLGlCQUFpQjtJQW1HNUIsWUFDVSxHQUFzQixFQUN0QixFQUFlLEVBQ2IsTUFBYyxFQUNkLGNBQThCO1FBSGhDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBdEdqQyxTQUFJLEdBVVAsRUFBRSxDQUFDO1FBRUEsWUFBTyxHQUEwRCxFQUFFLENBQUM7UUFFN0U7Ozs7Ozs7Ozs7Ozs7OztXQWVHO1FBQ0gsb0JBQWUsR0FBRyxLQUFLLENBQW1FLEVBQUUsQ0FBQyxDQUFDO1FBRTlGLG1CQUFjLEdBQW9CO1lBQ2hDLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBSyxF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QUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRywwQkFBMEI7c0JBQW5DLE1BQU07Z0JBRXNCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQXdLcEIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZHJlbixcclxuICBlZmZlY3QsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbnB1dCxcclxuICBJbnB1dCxcclxuICBtb2RlbCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgV3JpdGFibGVTaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XHJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tICdwcmltZW5nL3NpZGViYXInO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIGFuaW1hdGUsXHJcbiAgc3RhdGUsXHJcbiAgc3R5bGUsXHJcbiAgdHJhbnNpdGlvbixcclxuICB0cmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBUb3BBY3Rpb25zTW9kZWwgfSBmcm9tICcuLi90b3AtaWNvbnMvdG9wLWljb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGxpbmsgfSBmcm9tICdkMyc7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRNZW51SXRlbSB7XHJcbiAgaWRtZW51OiBudW1iZXI7XHJcbiAgaWRtZW51cGFpOiBudW1iZXIgfCBudWxsO1xyXG4gIGlkYXBsaWNhdGl2bzogbnVtYmVyO1xyXG4gIGRlc2NyaWNhb21lbnU6IHN0cmluZztcclxuICBsaW5rOiBzdHJpbmcgfCBudWxsO1xyXG4gIGljb25lOiBzdHJpbmcgfCBudWxsO1xyXG4gIGluZHB1YmxpY2FkbzogYm9vbGVhbjtcclxuICBpbmRtZW51cGFpOiBib29sZWFuO1xyXG4gIGxpc3RhaWR2aXNhb21lbnU6IG51bWJlcltdO1xyXG4gIGJnQ29sb3I/OiBzdHJpbmc7XHJcbiAgdGV4dENvbG9yPzogc3RyaW5nO1xyXG59IFxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LWxheW91dC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgYXBwczoge1xyXG4gICAgaWRhcGxpY2F0aXZvOiBudW1iZXI7XHJcbiAgICBpZHNpc3RlbWE6IG51bWJlcjtcclxuICAgIG5vbWVhcGxpY2F0aXZvOiBzdHJpbmc7XHJcbiAgICBkZXNjcmljYW9hcGxpY2F0aXZvOiBzdHJpbmc7XHJcbiAgICByb3RhcGFkcmFvOiBzdHJpbmc7XHJcbiAgICBpbmRwdWJsaWNhZG86IGJvb2xlYW47XHJcbiAgICBpbmRwdWJsaWNhY2FvZ3JhZGF0aXZhOiBib29sZWFuO1xyXG4gICAgaW5kZXhpZ2VlbXByZXNhZW50cmFkYTogYm9vbGVhbjtcclxuICAgIHVybGljb25lPzogc3RyaW5nO1xyXG4gIH1bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBhY3Rpb25zOiB7IGljb246IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgYWN0aW9uOiAoKSA9PiB2b2lkIH1bXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2EgcXVhaXMgbWVudXMgc8OjbyB2aXPDrXZlaXMgbm8gdG9wby5cclxuICAgKiBcclxuICAgKiBAdHlwZSB7QXJyYXk8e2lkOiBudW1iZXIsIG51bU5vdGlmaWNhdGlvbnM/OiBudW1iZXIsIGFjdGlvbj86IChlOiBhbnkpID0+IHZvaWR9Pn1cclxuICAgKiBcclxuICAgKiBPcMOnw7VlcyBkaXNwb27DrXZlaXM6XHJcbiAgICogLSAyIC0gTm90aWZpY2HDp8O1ZXMgXHJcbiAgICogLSAzIC0gQ29tdW5pY2Fkb3JcclxuICAgKiAtIDQgLSBLaWFyYVxyXG4gICAqIC0gNSAtIFRhcmVmYXNcclxuICAgKiBcclxuICAgKiBAcHJvcGVydHkge251bWJlcn0gaWQgLSBpZGVudGlmaWNhZG9yIGRvIG1lbnUuXHJcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IFtudW1Ob3RpZmljYXRpb25zXSAtIE7Dum1lcm8gZGUgbm90aWZpY2HDp8O1ZXMgKG9wY2lvbmFsKS5cclxuICAgKiBAcHJvcGVydHkgeyhlOiBhbnkpID0+IHZvaWR9IFthY3Rpb25dIC0gQcOnw6NvIGRvIGNsaXF1ZSwgcXVlIHJldG9ybmEgbyBldmVudG8gZG8gY2xpcXVlIChvcHRpb25hbCkuXHJcbiAgICogXHJcbiAgICovXHJcbiAgdG9wTWVudXNWaXNpYmxlID0gaW5wdXQ8e2lkOm51bWJlciwgbnVtTm90aWZpY2F0aW9ucz86bnVtYmVyLCBhY3Rpb24/OihlOmFueSkgPT4gdm9pZH1bXT4oW10pO1xyXG5cclxuICB0b3BNZW51T3B0aW9uczogVG9wQWN0aW9uc01vZGVsW109W1xyXG4gICAge2lkOiAxLCB2aXNpYmxlOiB0cnVlLCBpY29uOiAndGktdXNlcicsIHRvb2x0aXA6ICdNZXVzIERhZG9zJywgbnVtTm90aWZpY2F0aW9uczogMCwgYWN0aW9uOiAoZTphbnkpID0+IHt0aGlzLm1ldXNEYWRvc1BhbmVsLnRvZ2dsZShlKX19LFxyXG4gICAge2lkOiAyLCB2aXNpYmxlOiBmYWxzZSwgaWNvbjogJ3RpLWJlbGwnLCB0b29sdGlwOiAnTm90aWZpY2HDp8O1ZXMnLCBudW1Ob3RpZmljYXRpb25zOiAwLCBhY3Rpb246ICgpID0+IHt9fSxcclxuICAgIHtpZDogMywgdmlzaWJsZTogZmFsc2UsIGljb246ICd0aS1tZXNzYWdlJywgdG9vbHRpcDogJ0NvbXVuaWNhZG9yJywgbnVtTm90aWZpY2F0aW9uczogMCwgYWN0aW9uOiAoKSA9PiB7fX0sXHJcbiAgICB7aWQ6IDQsIHZpc2libGU6IGZhbHNlLCBpY29uOiAndGktc3BhcmtsZXMnLCB0b29sdGlwOiAnS2lhcmEnLCBudW1Ob3RpZmljYXRpb25zOiAwLCBhY3Rpb246ICgpID0+IHt9fSxcclxuICAgIHtpZDogNSwgdmlzaWJsZTogZmFsc2UsIGljb246ICd0aS1saXN0LWNoZWNrJywgdG9vbHRpcDogJ1RhcmVmYXMnLCBudW1Ob3RpZmljYXRpb25zOiAwLCBhY3Rpb246ICgpID0+IHt9fVxyXG4gIF07XHJcbiAgXHJcbiAgcHJvZmlsZUltYWdlID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblxyXG4gIEBJbnB1dCgpIGJyZWFkQ3J1bWJJdGVtczoge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHJvdXRlckxpbms6IHN0cmluZztcclxuICB9W10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgbWFzdGVyczoge1xyXG4gICAgaWRtYXN0ZXI6IG51bWJlcjtcclxuICAgIGNwZmNucGo6IHN0cmluZztcclxuICAgIG5vbWU6IHN0cmluZztcclxuICAgIGlkbWFzdGVybm9tZTogc3RyaW5nO1xyXG4gIH1bXSA9IFtdO1xyXG5cclxuICBtZW51cyA9IG1vZGVsPExheW91dE1lbnVJdGVtW10+KFtdKTtcclxuICBtZW51VmlzaXZlbCA9IHNpZ25hbDxudW1iZXJ8dW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIHNob3dNZW51U2lzdGVtYXMgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBleHBhbmRNZW51ID0gbW9kZWw8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gIEBJbnB1dCgpIGxvZ29NZW51RXhwYW5kITogYW55O1xyXG4gIEBJbnB1dCgpIGxvZ29NZW51SGlkZSE6IGFueTtcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWRBcHAhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRFbXByZXNhITogYW55O1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkTWFzdGVyITogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSBzaG93QnV0dG9uQXBwczogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0J1dHRvblVzZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dFeHBhbmRNZW51OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RHJvcGRvd25MaWNlbmNhOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93TWVudTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1Ryb2NhRW1wcmVzYTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dCcmVhZGNydW1iOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB1c2VyTmFtZTogc3RyaW5nID0gJ1VzdcOhcmlvJztcclxuICBASW5wdXQoKSBtYXN0ZXJOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVtcHJlc2FOYW1lITogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgYWNjZXNzS2VlUGFzc0VtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2VFbXByZXNhRW1pdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2VMaWNlbnNlRW1pdDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGV4cGFuZE1lbnVFbWl0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGxvZ291dEVtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RBcHBFbWl0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbmF2aWdhdGVUb0RlZmF1bHRSb3V0ZUVtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdtZXVzRGFkb3NQYW5lbCcpIG1ldXNEYWRvc1BhbmVsITogT3ZlcmxheVBhbmVsO1xyXG5cclxuICAvLyB0b3BNZW51QWN0aW9ucyA9IGNvbnRlbnRDaGlsZHJlbjxUZW1wbGF0ZVJlZjxhbnk+PigndG9wTWVudUFjdGlvbicpO1xyXG5cclxuICBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgaGVpZ2h0Q2FyZCE6IG51bWJlcjtcclxuICBtb3VzZU92ZXJGaWxob0luZGV4OiBhbnk7XHJcbiAgbW91c2VPdmVySW5kZXg6IGFueTtcclxuICB3aWR0aENhcmQhOiBudW1iZXI7XHJcblxyXG4gIHdpZHRoUGFnZSA9IHNpZ25hbDxudW1iZXI+KDApO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJvdGVjdGVkIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgaWRtYXN0ZXI6IFt0aGlzLnNlbGVjdGVkTWFzdGVyLCBbXV0sXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnByb2Nlc3Nhck1lbnVzKCk7XHJcbiAgICB0aGlzLmFkanVzdFdpZHRoQ2FyZCgpO1xyXG4gICAgdGhpcy52ZXJpZnlNZW51QmVoYXZpb3IoKTtcclxuICAgIHRoaXMuZXhwYW5kTWVudUV2ZW50KCk7XHJcbiAgfVxyXG5cclxuICBwcm9jZXNzYXJNZW51cygpIHtcclxuICAgIGlmKHRoaXMucHJvZmlsZUltYWdlKCkpe1xyXG4gICAgICB0aGlzLnRvcE1lbnVPcHRpb25zWzBdLmltZyA9IHRoaXMucHJvZmlsZUltYWdlKCk7XHJcbiAgICB9XHJcbiAgICAvL2ludmVydGVyIG8gdG9wTWVudU9wdGlvbnNcclxuICAgIHRoaXMudG9wTWVudU9wdGlvbnMucmV2ZXJzZSgpO1xyXG5cclxuICAgIHRoaXMudG9wTWVudXNWaXNpYmxlKCkuZm9yRWFjaCgoaXRlbTphbnkpID0+IHtcclxuICAgICAgbGV0IG1lbnUgPSB0aGlzLnRvcE1lbnVPcHRpb25zLmZpbmQoKHgpID0+IHguaWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICBpZihtZW51KXtcclxuICAgICAgICBtZW51LnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGlmKGl0ZW0uYWN0aW9uKXtcclxuICAgICAgICAgIG1lbnUuYWN0aW9uID0gaXRlbS5hY3Rpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGl0ZW0ubnVtTm90aWZpY2F0aW9ucyl7XHJcbiAgICAgICAgICBtZW51Lm51bU5vdGlmaWNhdGlvbnMgPSBpdGVtLm51bU5vdGlmaWNhdGlvbnM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhY2Nlc3NLZWVQYXNzKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuYWNjZXNzS2VlUGFzc0VtaXQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRqdXN0SGVpZ2h0Q2FyZCgpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMud2lkdGhDYXJkID4gNDAwKSB7XHJcbiAgICAgIGlmICh0aGlzLndpZHRoUGFnZSgpIDwgOTkyICYmIHRoaXMuc2hvd0xpY2VuY2FzKCkpIHJldHVybiAxNDU7XHJcblxyXG4gICAgICBpZiAodGhpcy5icmVhZENydW1iSXRlbXMubGVuZ3RoID4gMCkgcmV0dXJuIDk1O1xyXG4gICAgICBlbHNlIHJldHVybiA4NTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gMTI1O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGp1c3RXaWR0aENhcmQoKSB7XHJcbiAgICB0aGlzLndpZHRoUGFnZS5zZXQod2luZG93LmlubmVyV2lkdGgpO1xyXG5cclxuICAgIHRoaXMuaGVpZ2h0Q2FyZCA9IE51bWJlcihcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhZ2UtY29udGVudCcpPy5vZmZzZXRIZWlnaHRcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5zaG93TWVudSlcclxuICAgICAgdGhpcy53aWR0aENhcmQgPVxyXG4gICAgICAgIE51bWJlcih3aW5kb3cuaW5uZXJXaWR0aCkgLSAodGhpcy5leHBhbmRNZW51KCkgPyAzMzMgOiA5Myk7XHJcbiAgICBlbHNlIHRoaXMud2lkdGhDYXJkID0gTnVtYmVyKHdpbmRvdy5pbm5lcldpZHRoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYWxsUm91dGUocm90YTogYW55LCBleHBhbmQ/OiBib29sZWFuKSB7XHJcbiAgICBpZiAoIWV4cGFuZCAmJiAhdGhpcy5leHBhbmRNZW51KCkgJiYgdGhpcy5zaG93RXhwYW5kTWVudSlcclxuICAgICAgdGhpcy5leHBhbmRNZW51LnVwZGF0ZSgoY3VycmVudFZhbHVlOiBib29sZWFuKSA9PiAhY3VycmVudFZhbHVlKTtcclxuXHJcbiAgICBpZiAodGhpcy53aWR0aFBhZ2UoKSAhPSAwICYmIHRoaXMud2lkdGhQYWdlKCkgPCA4MDAgJiYgdGhpcy5leHBhbmRNZW51KCkgJiYgdGhpcy5zaG93RXhwYW5kTWVudSlcclxuICAgICAgdGhpcy5leHBhbmRNZW51LnNldChmYWxzZSk7XHJcblxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChyb3RhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VFbXByZXNhKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY2hhbmdlRW1wcmVzYUVtaXQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlTGljZW5zZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNoYW5nZUxpY2Vuc2VFbWl0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2ZXJpZnlNZW51QmVoYXZpb3IoKSB7XHJcbiAgICBpZiAodGhpcy53aWR0aFBhZ2UoKSA8IDgwMClcclxuICAgICAgdGhpcy5leHBhbmRNZW51LnNldChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4cGFuZE1lbnVFdmVudCgpIHtcclxuICAgIHRoaXMuZXhwYW5kTWVudUVtaXQuZW1pdCh0aGlzLmV4cGFuZE1lbnUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9nb3V0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMubG9nb3V0RW1pdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWVudXNQZXJBcHAoKSB7XHJcbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsICYmIHRoaXMubWVudXMoKSAmJiB0aGlzLm1lbnVzKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAodGhpcy5yb3V0ZXIudXJsID09PSAnLycpIHtcclxuICAgICAgICAvLyB0aGlzLm5hdmlnYXRlVG9GaXJzdE1lbnUoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBtZW51U2VsZWNpb25hZG8gPSB0aGlzLm1lbnVzKCkuZmluZChcclxuICAgICAgICAgIChtZW51OiBhbnkpID0+XHJcbiAgICAgICAgICAgIG1lbnUubGluayAmJiBtZW51LmxpbmsuaW5jbHVkZXModGhpcy5yb3V0ZXIudXJsLnNsaWNlKDEpKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKG1lbnVTZWxlY2lvbmFkbykge1xyXG4gICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvTWVudShtZW51U2VsZWNpb25hZG8pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5hbWVFbXByZXNhKG5vbWVMaWNlbmNhOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgaWYgKG5vbWVMaWNlbmNhKSB7XHJcbiAgICAgIGlmIChub21lTGljZW5jYS5sZW5ndGggPiAyMykgcmV0dXJuIG5vbWVMaWNlbmNhLnN1YnN0cmluZygwLCAyMykgKyAnLi4uJztcclxuICAgICAgZWxzZSByZXR1cm4gbm9tZUxpY2VuY2E7XHJcbiAgICB9IGVsc2UgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvRmlyc3RNZW51KCk6IHZvaWQge1xyXG4gICAgY29uc3QgZmlyc3RNZW51ID0gdGhpcy5tZW51cygpWzBdO1xyXG4gICAgaWYgKGZpcnN0TWVudS5pbmRtZW51cGFpKSB7XHJcbiAgICAgIGNvbnN0IGZpbGhvcyA9IHRoaXMucmV0dXJuTWVudUNoaWxkKGZpcnN0TWVudS5pZG1lbnUpO1xyXG4gICAgICBpZiAoZmlsaG9zKSB7XHJcbiAgICAgICAgdGhpcy5jYWxsUm91dGUoZmlsaG9zWzBdLmxpbmssIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNhbGxSb3V0ZShmaXJzdE1lbnUubGluaywgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5hdmlnYXRlVG9NZW51KG1lbnU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKG1lbnUubWVudXBhaSkge1xyXG4gICAgICBjb25zdCBmaWxob3MgPSB0aGlzLnJldHVybk1lbnVDaGlsZChtZW51LmlkbWVudSk7XHJcbiAgICAgIGlmIChmaWxob3MpIHtcclxuICAgICAgICB0aGlzLmNhbGxSb3V0ZShmaWxob3NbMF0ubGluaywgdHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2FsbFJvdXRlKG1lbnUubGluaywgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtZW51U2VsZWNpb25hZG8gPSBzaWduYWw8YW55PihudWxsKTtcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgbGF0ZXN0UmVxdWVzdCA9IGNoYW5nZXNbJ21lbnVzJ107XHJcbiAgICBpZiAobGF0ZXN0UmVxdWVzdD8uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIHRoaXMubWVudXNQZXJBcHAoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlbGVjaW9uYXJNZW51KCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICB0aGlzLmFkanVzdFdpZHRoQ2FyZCgpO1xyXG4gICAgLy8gdGhpcy52ZXJpZnlNZW51QmVoYXZpb3IoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGlzU2VsZWN0ZWRNZW51UGFpKG1lbnU6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmV4cGFuZE1lbnUoKSAmJiBtZW51LmluZG1lbnVwYWkpXHJcbiAgICAgIHJldHVybiBtZW51LmlkbWVudSA9PT0gdGhpcy5tZW51U2VsZWNpb25hZG8oKT8uaWRtZW51cGFpO1xyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNlbGVjaW9uYXJNZW51KCkge1xyXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnJvdXRlci51cmwsIHdpbmRvdy5vcmlnaW4pO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gdXJsLnBhdGhuYW1lO1xyXG4gICAgY29uc3QgcHVyZVBhdGggPSBjdXJyZW50UGF0aC5tYXRjaCgvXlteO10qL2kpO1xyXG5cclxuICAgIGNvbnN0IHBhdGhzID0gcHVyZVBhdGghWzBdO1xyXG5cclxuICAgIHRoaXMubWVudXMuc2V0KFxyXG4gICAgICB0aGlzLm1lbnVzKCkubWFwKChtZW51KSA9PiB7XHJcbiAgICAgICAgaWYgKG1lbnUubGluaykge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4ubWVudSxcclxuICAgICAgICAgICAgYmdDb2xvcjogcGF0aHMuaW5jbHVkZXMobWVudS5saW5rISkgPyAncmdiKDQxLCAxODUsIDQ1KScgOiAnJyxcclxuICAgICAgICAgICAgdGV4dENvbG9yOiBwYXRocy5pbmNsdWRlcyhtZW51LmxpbmshKSA/ICd0ZXh0LXdoaXRlJyA6ICcnLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1lbnU7XHJcbiAgICAgIH0pXHJcbiAgICApXHJcblxyXG4gICAgY29uc3QgbWVudSA9IHRoaXMubWVudXMoKS5maW5kKChtZW51OiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIG1lbnUubGluayAmJiBwYXRocy5pbmNsdWRlcyhtZW51LmxpbmshKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubWVudVNlbGVjaW9uYWRvLnNldChtZW51KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXR1cm5NZW51Q2hpbGQoaWRtZW51OiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLm1lbnVzKCkuZmlsdGVyKCh4OiBhbnkpID0+IHguaWRtZW51cGFpID09IGlkbWVudSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIHNlbGVjdEFwcChpZGFwbGljYXRpdm86IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWxlY3RBcHBFbWl0LmVtaXQoaWRhcGxpY2F0aXZvKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93TGljZW5jYXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RHJvcGRvd25MaWNlbmNhICYmICh0aGlzLm1hc3RlcnMgfHwgW10pLmxlbmd0aCA+IDE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlTWVudSgpIHtcclxuICAgIHRoaXMuZXhwYW5kTWVudS51cGRhdGUoKGN1cnJlbnRWYWx1ZTogYm9vbGVhbikgPT4gIWN1cnJlbnRWYWx1ZSk7XHJcbiAgICB0aGlzLmV4cGFuZE1lbnVFdmVudCgpO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb0RlZmF1bHRSb3V0ZSgpIHtcclxuICAgIGlmICh0aGlzLndpZHRoUGFnZSgpIDwgODAwICYmIHRoaXMuZXhwYW5kTWVudSgpKVxyXG4gICAgICB0aGlzLmV4cGFuZE1lbnUuc2V0KGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLm5hdmlnYXRlVG9EZWZhdWx0Um91dGVFbWl0LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGdldCBleGliaXJOb21lcygpIHtcclxuICAgIHJldHVybiAhdGhpcy5zaG93TGljZW5jYXMoKSAmJiAodGhpcy5tYXN0ZXJOYW1lIHx8IHRoaXMuZW1wcmVzYU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgZXhpYmlyTWVudUNoaWxkKGV2ZW50OmFueSwgaW5kZXg6bnVtYmVyKXtcclxuICAgIHRoaXMubWVudVZpc2l2ZWwuc2V0KGluZGV4KTtcclxuICAgICAgbGV0IG1lbnVQYXJlbnQgO1xyXG4gICAgICBsZXQgbWVudUNoaWxkIDtcclxuICAgICAgaWYoaW5kZXggPT09IC0xKXtcclxuICAgICAgICBtZW51UGFyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYG1lbnUtc2lzdGVtYXMtcGFyZW50YCk7XHJcbiAgICAgICAgbWVudUNoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYG1lbnUtc2lzdGVtYXMtY2hpbGRgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1lbnVQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgbWVudS1wYXJlbnQtJHtpbmRleH1gKTtcclxuICAgICAgICBtZW51Q2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgbWVudS1jaGlsZC0ke2luZGV4fWApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAobWVudVBhcmVudCkge1xyXG4gICAgICAgIGNvbnN0IHJlY3RfcGFyZW50ID0gbWVudVBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBsZXQgeCA9IHJlY3RfcGFyZW50LnJpZ2h0IC0gMTA7XHJcbiAgICAgICAgbGV0IHkgPSByZWN0X3BhcmVudC50b3AgLTU7XHJcbiAgXHJcbiAgICAgICAgaWYgKG1lbnVDaGlsZCkge1xyXG4gICAgICAgICAgY29uc3QgcmVjdF9jaGlsZCA9IG1lbnVDaGlsZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gIFxyXG4gICAgICAgICAgLy9WZXJpZmljYSBzZSBvIG1lbnUgZmlsaG8gdmFpIHV0cmFwYXNzYXIgbyBmaW5hbCBkbyB2aWV3cG9ydCBwcmEgYmFpeG9cclxuICAgICAgICAgIGlmIChyZWN0X3BhcmVudC5ib3R0b20gKyByZWN0X2NoaWxkLmhlaWdodCA+IHZpZXdwb3J0SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIHkgPSByZWN0X3BhcmVudC5ib3R0b20gLSByZWN0X2NoaWxkLmhlaWdodCAtIDEwO1xyXG4gICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgLy8gVmVyaWZpY2Egc2UgbyBtZW51IHBhaSBlc3TDoSBtdWl0byBlbSBjaW1hXHJcbiAgICAgICAgICBpZiAocmVjdF9wYXJlbnQudG9wIDw9IDApIHtcclxuICAgICAgICAgICAgeSA9IHJlY3RfcGFyZW50LmJvdHRvbSArIDU7XHJcbiAgICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgICBtZW51Q2hpbGQuc3R5bGUudG9wID0gYCR7eX1weGA7XHJcbiAgICAgICAgICBtZW51Q2hpbGQuc3R5bGUubGVmdCA9IGAke3h9cHhgO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZnVsbC1jb250YWluZXJcIj5cclxuICBAaWYoc2hvd01lbnUpIHtcclxuICAgIDxwLXNpZGViYXJcclxuICAgICAgI3NpZGViYXJSZWZcclxuICAgICAgW3Zpc2libGVdPVwidHJ1ZVwiXHJcbiAgICAgIFtzaG93Q2xvc2VJY29uXT1cImZhbHNlXCJcclxuICAgICAgW21vZGFsXT1cImZhbHNlXCJcclxuICAgICAgW3N0eWxlXT1cInsgd2lkdGg6IGV4cGFuZE1lbnUoKSA/ICcxN3JlbScgOiAnMy42NXJlbScgfVwiXHJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ0cmFuc2l0aW9uLWFsbFwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkbGVzc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgZmxleCBmbGV4LWNvbHVtbiBvdmVyZmxvdy1oaWRkZW4gcC0yXCI+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDwhLS0gTE9HTyAtLT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LW5vbmUgZmxleCBmbGV4LWNvbHVtbiBnYXAtMSBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmbGV4LXNocmluay0wIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IHt7XHJcbiAgICAgICAgICAgICAgICBleHBhbmRNZW51KCkgPyAnZmxleC1yb3cnIDogJ2ZsZXgtY29sdW1uJ1xyXG4gICAgICAgICAgICAgIH19IGFsaWduLWl0ZW1zLWNlbnRlciB7e1xyXG4gICAgICAgICAgICAgICAgZXhwYW5kTWVudSgpXHJcbiAgICAgICAgICAgICAgICAgID8gJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuJ1xyXG4gICAgICAgICAgICAgICAgICA6ICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJ1xyXG4gICAgICAgICAgICAgIH19IHAtMlwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8IS0tIExvZ28gcGFyYSBvIG1lbnUgZXhwYW5kaWRvIC0tPlxyXG4gICAgICAgICAgICAgIEBpZihleHBhbmRNZW51KCkgJiYgbG9nb01lbnVFeHBhbmQpe1xyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICBhbHQ9XCJDYXJkXCJcclxuICAgICAgICAgICAgICAgICAgW3NyY109XCJsb2dvTWVudUV4cGFuZFwiXHJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiJzIuNHJlbSdcIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cImF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIHAtMFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvRGVmYXVsdFJvdXRlKClcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gTG9nbyBwYXJhIG8gbWVudSBtaW5pbWl6YWRvLS0+XHJcbiAgICAgICAgICAgICAgQGlmKCFleHBhbmRNZW51KCkgJiYgbG9nb01lbnVIaWRlKXtcclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgYWx0PVwiQ2FyZFwiXHJcbiAgICAgICAgICAgICAgICAgIFtzcmNdPVwibG9nb01lbnVIaWRlXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCInMi40cmVtJ1wiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgcC0xXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9EZWZhdWx0Um91dGUoKVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBUb2dnbGUgbWVudSAtLT5cclxuICAgICAgICAgICAgICBAaWYoc2hvd0V4cGFuZE1lbnUpe1xyXG4gICAgICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgICAgbmFtZT1cInRpLW1lbnUtMlwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGlja2FibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJleHBhbmRNZW51KCkgPyAnT2N1bHRhciBNZW51JyA6ICdFeHBhbmRpciBNZW51J1wiXHJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICBAaWYoc2hvd1Ryb2NhRW1wcmVzYSl7XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQte3tleHBhbmRNZW51KCkgPydiZXR3ZWVuJzonY2VudGVyJ319IGdhcC0yIHNpZGUtbWVudS1pdGVtIHRyb2NhLXNpc3RlbWEtY29udGFpbmVyIG1iLTJcIiBcclxuICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCInVHJvY2FyIGRlIGVtcHJlc2EnXCJcclxuICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlRW1wcmVzYSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ0aS1idWlsZGluZy1za3lzY3JhcGVyXCJcclxuICAgICAgICAgICAgICAgIHNpemU9XCIxLjFyZW1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICBAaWYoZXhwYW5kTWVudSgpICYmIHNlbGVjdGVkRW1wcmVzYSl7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gdy1mdWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlRW1wcmVzYSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZih0aGlzLnNlbGVjdGVkRW1wcmVzYS5yYXphb3NvY2lhbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQteHMgZm9udC1zZW1pYm9sZCBtci0yIGNvbG9yLXN5c3RlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5mb250U3V6ZV09XCInLjVyZW0nXCJcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbmFtZUVtcHJlc2EodGhpcy5zZWxlY3RlZEVtcHJlc2EucmF6YW9zb2NpYWwpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBpZih0aGlzLnNlbGVjdGVkRW1wcmVzYS5jcGZjbnBqKXtcclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14cyBtdC0xIGNvbG9yLXN5c3RlbVwiIFtzdHlsZS5mb250U3V6ZV09XCInLjVyZW0nXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVtcHJlc2EuY3BmY25waiB8IGNwZkNucGpcclxuICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICA8IS0tIDxkaXYgc3R5bGU9XCJ3aWR0aDoxMDAlOyBoZWlnaHQ6Ljc1cmVtXCI+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDxwLWRpdmlkZXIgY2xhc3M9XCJweC0yXCIgW3N0eWxlLm9wYWNpdHldPVwiMVwiIHR5cGU9XCJzb2xpZFwiPjwvcC1kaXZpZGVyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgPCEtLSBNRU5VUyAtLT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgbGlzdC1ub25lIG0tMCBvdmVyZmxvdy15LWF1dG8gbWF4LWgtZnVsbFwiPlxyXG4gICAgICAgICAgICA8IS0tIG1lbnVzIC0tPlxyXG4gICAgICAgICAgICBAZm9yIChtZW51IG9mIG1lbnVzKCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgIDwhLS0gbWVudSBxdWUgbsOjbyB0ZW0gZmlsaG8gLS0+XHJcbiAgICAgICAgICAgICAgICAgIEBpZiggIW1lbnUuaW5kbWVudXBhaSAmJiAoIW1lbnUuaWRtZW51cGFpIHx8IG1lbnUuaWRtZW51cGFpID09IDApKXtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXt7ZXhwYW5kTWVudSgpID8nYmV0d2Vlbic6J2NlbnRlcid9fSBnYXAtMiBzaWRlLW1lbnUtaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy10b3A6IDAuNzVyZW07IHBhZGRpbmctYm90dG9tOjAuNzVyZW07XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbGxSb3V0ZShtZW51LmxpbmspXCJcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJtZW51Lmljb25lfHwgJ3RpLWNpcmNsZS1kb3R0ZWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGV4cGFuZE1lbnUoKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7bWVudS5kZXNjcmljYW9tZW51fX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwhLS0gbWVudSBjb20gZmlsaG8gLS0+XHJcbiAgICAgICAgICAgICAgICAgIEBpZihtZW51LmluZG1lbnVwYWkpe1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXBhcmVudFwiIGlkPVwibWVudS1wYXJlbnQte3skaW5kZXh9fVwiIChtb3VzZWVudGVyKT1cImV4aWJpck1lbnVDaGlsZCgkZXZlbnQsICRpbmRleClcIiAobW91c2VsZWF2ZSk9XCJtZW51VmlzaXZlbC5zZXQodW5kZWZpbmVkKVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIgZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXt7ZXhwYW5kTWVudSgpID8nYmV0d2Vlbic6J2NlbnRlcid9fSBnYXAtMiBzaWRlLW1lbnUtaXRlbVwiIHN0eWxlPVwicGFkZGluZy10b3A6IDAuNzVyZW07IHBhZGRpbmctYm90dG9tOjAuNzVyZW07XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8a3YtaWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm1lbnUuaWNvbmV8fCAndGktY2lyY2xlLWRvdHRlZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYoZXhwYW5kTWVudSgpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3ttZW51LmRlc2NyaWNhb21lbnV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNjaGV2cm9uSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRpLWNoZXZyb24tcmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWNoaWxkc1wiIGlkPVwibWVudS1jaGlsZC17eyRpbmRleH19XCIgW3N0eWxlLm9wYWNpdHldPVwibWVudVZpc2l2ZWwoKT09PSRpbmRleD8nMSc6JzAnXCIgW3N0eWxlLnBvaW50ZXJFdmVudHNdPVwibWVudVZpc2l2ZWwoKT09PSRpbmRleD8nYXV0byc6J25vbmUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTJyZW0gZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInAtMCBtLTAgZm9udC1ib2xkIHB0LTIgcGwtMyB0ZXh0LXhzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e21lbnUuZGVzY3JpY2FvbWVudX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiByZXR1cm5NZW51Q2hpbGQobWVudS5pZG1lbnUpOyB0cmFjayAkaW5kZXgpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIHNpZGUtbWVudS1pdGVtIHB5LTIgcGwtMyBwci0xIHRleHQtc21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbGxSb3V0ZShpdGVtLmxpbmspXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uZGVzY3JpY2FvbWVudX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPHAtZGl2aWRlciBjbGFzcz1cInB4LTJcIiBbc3R5bGUub3BhY2l0eV09XCIxXCIgdHlwZT1cInNvbGlkXCI+PC9wLWRpdmlkZXI+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDwhLS0gQVBQUyBFIFNBSVIgLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGxpc3Qtbm9uZSBtLTAgb3ZlcmZsb3cteS1hdXRvIG1heC1oLWZ1bGxcIj5cclxuICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXBhcmVudFwiIGlkPVwibWVudS1zaXN0ZW1hcy1wYXJlbnRcIiAobW91c2VlbnRlcik9XCJleGliaXJNZW51Q2hpbGQoJGV2ZW50LCAtMSlcIiAobW91c2VsZWF2ZSk9XCJtZW51VmlzaXZlbC5zZXQodW5kZWZpbmVkKVwiID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQte3tleHBhbmRNZW51KCkgPydiZXR3ZWVuJzonY2VudGVyJ319IGdhcC0yIHNpZGUtbWVudS1pdGVtXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLXRvcDogMC43NXJlbTsgcGFkZGluZy1ib3R0b206MC43NXJlbTtcIlxyXG4gICAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiIWV4cGFuZE1lbnUoKSA/ICdTaXN0ZW1hcycgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxrdi1pY29uXHJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ3RpLWFwcHMnXCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgQGlmKGV4cGFuZE1lbnUoKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlNpc3RlbWFzPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8a3YtaWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgI2NoZXZyb25JY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidGktY2hldnJvbi1yaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY2hpbGRzXCIgaWQ9XCJtZW51LXNpc3RlbWFzLWNoaWxkXCIgW3N0eWxlLm9wYWNpdHldPVwibWVudVZpc2l2ZWwoKT09PS0xPycxJzonMCdcIiBbc3R5bGUucG9pbnRlckV2ZW50c109XCJtZW51VmlzaXZlbCgpPT09LTE/J2F1dG8nOidub25lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInAtMCBtLTAgZm9udC1ib2xkIHB0LTIgcGwtMyB0ZXh0LXhzXCI+U2lzdGVtYXM8L3A+XHJcbiAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgYXBwczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgc2lkZS1tZW51LWl0ZW0gcHktMiBwbC0zIHByLTFcIiAoY2xpY2spPVwiY2FsbFJvdXRlKGl0ZW0ucm90YXBhZHJhbykgOyBzZWxlY3RBcHAoaXRlbS5pZGFwbGljYXRpdm8pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0udXJsaWNvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaC0ycmVtIHctMnJlbSBib3JkZXItcm91bmQtbGdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5ub21lYXBsaWNhdGl2b319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC17e2V4cGFuZE1lbnUoKSA/J2JldHdlZW4nOidjZW50ZXInfX0gZ2FwLTIgc2lkZS1tZW51LWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLXRvcDogMC43NXJlbTsgcGFkZGluZy1ib3R0b206MC43NXJlbTtcIlxyXG4gICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cIiFleHBhbmRNZW51KCkgPyAnU2FpcicgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiJ3JlZCdcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLm9wYWNpdHldPVwiMC41XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJsb2dvdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ3RpLWxvZ291dCdcIlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICBAaWYoZXhwYW5kTWVudSgpKXtcclxuICAgICAgICAgICAgICAgICAgPGxhYmVsPlNhaXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Atc2lkZWJhcj5cclxuICB9XHJcblxyXG4gIDwhLS0gU0XDh8ODTyBDT05URcOaRE8gIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwidy1hdXRvIGgtc2NyZWVuIHBhZ2UtY29udGVudCBvdmVyZmxvdy15LWhpZGRlbiBmbGV4IGZsZXgtY29sdW1uXCJcclxuICAgIGlkPVwicGFnZS1jb250ZW50XCJcclxuICAgIHN0eWxlPVwid2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnRcIlxyXG4gID5cclxuICAgIDwhLS0gVE9QTyAtLT5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXktMiBteC0zIG1iLTBcIlxyXG4gICAgPlxyXG4gICAgICBAaWYoIXNob3dNZW51KSB7XHJcbiAgICAgIDwhLS0gTG9nbyBob21lIC0tPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8aW1nIFtzcmNdPVwibG9nb01lbnVFeHBhbmRcIiB3aWR0aD1cIjE1MFwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH0gXHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICA8IS0tIEJyZWFkY3J1bWJzIC0tPlxyXG4gICAgICAgIEBpZihzaG93QnJlYWRjcnVtYikge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbFwiPlxyXG4gICAgICAgICAgICAgIDxwLWJyZWFkY3J1bWJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwid2lkdGhDYXJkID4gNDAwXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJib3JkZXItbm9uZSBwLTAgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgaC0ycmVtIGJnLXRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgIFttb2RlbF09XCJicmVhZENydW1iSXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgKG9uSXRlbUNsaWNrKT1cImNhbGxSb3V0ZSgkZXZlbnQuaXRlbS5yb3V0ZXJMaW5rLCB0cnVlKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpdGVtXCIgbGV0LWl0ZW0gbGV0LWk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICBAaWYoYnJlYWRDcnVtYkl0ZW1zLmluZGV4T2YoaXRlbSkgPCBicmVhZENydW1iSXRlbXMubGVuZ3RoIC0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW5vcm1hbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvcC1icmVhZGNydW1iPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgIDwhLS0gR0hPU1QgRElWIFBBUkEgT0NQVUFSIEVTUEHDh08gTk8gU1BBQ0UgQkVUV0VFTiAtLT5cclxuICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICB9IFxyXG4gICAgICBAaWYgKGV4aWJpck5vbWVzKSB7IFxyXG4gICAgICAgIEBpZih3aWR0aENhcmQgPj0gNTE3KSB7XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwidy1hdXRvIGZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBAaWYgKG1hc3Rlck5hbWUpIHsgPHNwYW4gY2xhc3M9XCJmb250LXNlbWlib2xkIHN5c3RlbS1jb2xvclwiPnt7IG1hc3Rlck5hbWUgfX08L3NwYW4+IH1cclxuICAgICAgICAgICAgQGlmIChlbXByZXNhTmFtZSkgezxzcGFuIGNsYXNzPVwiZW1wcmVzYS1uYW1lXCJcclxuICAgICAgICAgICAgICA+T3JnYW5pemHDp8Ojbzoge3sgZW1wcmVzYU5hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwidy1hdXRvIGZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8IS0tIE5hdmVnYcOnw6NvIGRlIHNpc3RlbWFzIGUgdXN1w6FyaW9zIC0tPlxyXG4gICAgICAgICAgICA8IS0tIEBmb3IgKHRvcEFjdGlvbiBvZiB0b3BNZW51QWN0aW9ucygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcEFjdGlvblwiIC8+XHJcbiAgICAgICAgICAgIH0gLS0+XHJcbiAgICAgICAgICAgIDxrdi10b3AtaWNvbnNcclxuICAgICAgICAgICAgICBbdG9wQWN0aW9uc109XCJ0b3BNZW51T3B0aW9uc1wiXHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfSBcclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwidy1hdXRvIGZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8IS0tIE5hdmVnYcOnw6NvIGRlIHNpc3RlbWFzIGUgdXN1w6FyaW9zIC0tPlxyXG4gICAgICAgICAgICA8IS0tIEBmb3IgKHRvcEFjdGlvbiBvZiB0b3BNZW51QWN0aW9ucygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcEFjdGlvblwiIC8+XHJcbiAgICAgICAgICAgIH0gLS0+XHJcbiAgICAgICAgICAgIDxrdi10b3AtaWNvbnNcclxuICAgICAgICAgICAgICBbdG9wQWN0aW9uc109XCJ0b3BNZW51T3B0aW9uc1wiXHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgQGlmIChtYXN0ZXJOYW1lKSB7IDxzcGFuIGNsYXNzPVwibWFzdGVyLW5hbWVcIj57eyBtYXN0ZXJOYW1lIH19PC9zcGFuPiB9XHJcbiAgICAgICAgICAgIEBpZiAoZW1wcmVzYU5hbWUpIHs8c3BhbiBjbGFzcz1cImVtcHJlc2EtbmFtZVwiPnt7IGVtcHJlc2FOYW1lIH19PC9zcGFuPiB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IFxyXG4gICAgICB9IFxyXG4gICAgICBAZWxzZSB7IFxyXG4gICAgICAgIEBpZih3aWR0aFBhZ2UoKSA+IDk5Mil7XHJcbiAgICAgICAgICA8IS0tIGRyb3Bkb3duIHBhcmEgc2VsZcOnw6NvIGRlIGVtcHJlc2EvbGljZW5jYSAtLT5cclxuICAgICAgICAgIDxkcm9wZG93bi1tYXN0ZXJcclxuICAgICAgICAgICAgKm5nSWY9XCJzaG93TGljZW5jYXMoKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibWF4LXctMjVyZW0gZmxleC0xXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWRtYXN0ZXJcIlxyXG4gICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXHJcbiAgICAgICAgICAgIFttYXN0ZXJzXT1cIm1hc3RlcnNcIlxyXG4gICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlTGljZW5zZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKG9uU2VsZWN0aW9uVmFsdWUpPVwiY2hhbmdlTGljZW5zZSgkZXZlbnQpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvZHJvcGRvd24tbWFzdGVyPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPCEtLSBOYXZlZ2HDp8OjbyBkZSBzaXN0ZW1hcyBlIHVzdcOhcmlvcyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy1hdXRvIGZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblxyXG4gICAgICAgICAgPGt2LXRvcC1pY29uc1xyXG4gICAgICAgICAgICBbdG9wQWN0aW9uc109XCJ0b3BNZW51T3B0aW9uc1wiXHJcbiAgICAgICAgICAvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmKHdpZHRoUGFnZSgpIDw9IDk5Mil7XHJcbiAgICAgIDwhLS0gZHJvcGRvd24gcGFyYSBzZWxlw6fDo28gZGUgZW1wcmVzYS9saWNlbmNhIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC0ycmVtIG14LTNcIj5cclxuICAgICAgICA8ZHJvcGRvd24tbWFzdGVyXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dMaWNlbmNhcygpXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlkbWFzdGVyXCJcclxuICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcclxuICAgICAgICAgIFttYXN0ZXJzXT1cIm1hc3RlcnNcIlxyXG4gICAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZUxpY2Vuc2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAob25TZWxlY3Rpb25WYWx1ZSk9XCJjaGFuZ2VMaWNlbnNlKCRldmVudClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIH0gXHJcblxyXG4gICAgPCEtLSBDb250YWluZXIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuIGZsZXgtMSBwLTAgbS0wIG1iLTIgaC1mdWxsXCI+XHJcbiAgICAgIDxwLWNhcmRcclxuICAgICAgICBzdHlsZUNsYXNzPVwib3ZlcmZsb3cteS1hdXRvIGgtZnVsbCBtYXgtaC1mdWxsIHt7XHJcbiAgICAgICAgICAhc2hvd01lbnUgJiYgJ3NtOm92ZXJmbG93LXktaGlkZGVuJ1xyXG4gICAgICAgIH19IGNhcmQtY29udGFpbmVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICBcclxuICAgICAgPC9wLWNhcmQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBQYWluZWwgZG8gdXN1w6FyaW8gLS0+XHJcbiAgPHAtb3ZlcmxheVBhbmVsXHJcbiAgICAjbWV1c0RhZG9zUGFuZWxcclxuICAgIFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwiJzM1MG1zIGVhc2Utb3V0J1wiXHJcbiAgICBbaGlkZVRyYW5zaXRpb25PcHRpb25zXT1cIicyNTBtcyBlYXNlLWluJ1wiXHJcbiAgPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250YWluZXJcIj5cclxuICAgIDxwIGNsYXNzPVwic3lzdGVtLWNvbG9yIGZvbnQtbWVkaXVtIHRleHQtbGcgcHgtMiBweS0zIG0tMFwiPlxyXG4gICAgICBPbMOhLCB7eyB1c2VyTmFtZSA/IHVzZXJOYW1lLnNwbGl0KFwiIFwiKVswXSA6IFwiVXN1w6FyaW9cIiB9fSFcclxuICAgIDwvcD5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cIm10LTUgbWItM1wiPjwvZGl2PiAtLT5cclxuICBcclxuICAgIDwhLS0gQ29udMOqaW5lciBjb20gZGlyZcOnw6NvIGVtIGNvbHVuYSBwYXJhIGVtcGlsaGFyIG9zIGJvdMO1ZXMgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICA8IS0tIEJvdMO1ZXMgYWRpY2lvbmFpcyBkaW7Dom1pY29zIC0tPlxyXG4gICAgICBAZm9yIChhY3Rpb24gb2YgYWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBzaWRlLW1lbnUtaXRlbSBweS0yIHB4LTJcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uLmFjdGlvbigpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICBbbmFtZV09XCJhY3Rpb24uaWNvblwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7YWN0aW9uLmxhYmVsfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHNpZGUtbWVudS1pdGVtIHB5LTIgcHgtMlwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFjY2Vzc0tlZVBhc3MoJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgICAgIDxrdi1pY29uXHJcbiAgICAgICAgICAgIG5hbWU9XCJ0aS1sb2NrXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8c3Bhbj5BY2Vzc2FyIEtlZVBhc3M8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICBcclxuICA8L3Atb3ZlcmxheVBhbmVsPlxyXG48L2Rpdj5cclxuIl19
|
|
349
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC9sYXlvdXQva3YtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC9sYXlvdXQva3YtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFFTCxTQUFTLEVBSVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFHTCxNQUFNLEVBQ04sTUFBTSxFQUdOLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQW1DdkIsTUFBTSxPQUFPLGlCQUFpQjtJQW1HNUIsWUFDVSxHQUFzQixFQUN0QixFQUFlLEVBQ2IsTUFBYyxFQUNkLGNBQThCO1FBSGhDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBdEdqQyxTQUFJLEdBVVAsRUFBRSxDQUFDO1FBRUEsWUFBTyxHQUEwRCxFQUFFLENBQUM7UUFFN0U7Ozs7Ozs7Ozs7Ozs7OztXQWVHO1FBQ0gsb0JBQWUsR0FBRyxLQUFLLENBQW1FLEVBQUUsQ0FBQyxDQUFDO1FBRTlGLG1CQUFjLEdBQW9CO1lBQ2hDLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBSyxF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QUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRywwQkFBMEI7c0JBQW5DLE1BQU07Z0JBRXNCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQXdLcEIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZHJlbixcclxuICBlZmZlY3QsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbnB1dCxcclxuICBJbnB1dCxcclxuICBtb2RlbCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgV3JpdGFibGVTaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XHJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tICdwcmltZW5nL3NpZGViYXInO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIGFuaW1hdGUsXHJcbiAgc3RhdGUsXHJcbiAgc3R5bGUsXHJcbiAgdHJhbnNpdGlvbixcclxuICB0cmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBUb3BBY3Rpb25zTW9kZWwgfSBmcm9tICcuLi90b3AtaWNvbnMvdG9wLWljb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGxpbmsgfSBmcm9tICdkMyc7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRNZW51SXRlbSB7XHJcbiAgaWRtZW51OiBudW1iZXI7XHJcbiAgaWRtZW51cGFpOiBudW1iZXIgfCBudWxsO1xyXG4gIGlkYXBsaWNhdGl2bzogbnVtYmVyO1xyXG4gIGRlc2NyaWNhb21lbnU6IHN0cmluZztcclxuICBsaW5rOiBzdHJpbmcgfCBudWxsO1xyXG4gIGljb25lOiBzdHJpbmcgfCBudWxsO1xyXG4gIGluZHB1YmxpY2FkbzogYm9vbGVhbjtcclxuICBpbmRtZW51cGFpOiBib29sZWFuO1xyXG4gIGxpc3RhaWR2aXNhb21lbnU6IG51bWJlcltdO1xyXG4gIGJnQ29sb3I/OiBzdHJpbmc7XHJcbiAgdGV4dENvbG9yPzogc3RyaW5nO1xyXG59IFxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LWxheW91dC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgYXBwczoge1xyXG4gICAgaWRhcGxpY2F0aXZvOiBudW1iZXI7XHJcbiAgICBpZHNpc3RlbWE6IG51bWJlcjtcclxuICAgIG5vbWVhcGxpY2F0aXZvOiBzdHJpbmc7XHJcbiAgICBkZXNjcmljYW9hcGxpY2F0aXZvOiBzdHJpbmc7XHJcbiAgICByb3RhcGFkcmFvOiBzdHJpbmc7XHJcbiAgICBpbmRwdWJsaWNhZG86IGJvb2xlYW47XHJcbiAgICBpbmRwdWJsaWNhY2FvZ3JhZGF0aXZhOiBib29sZWFuO1xyXG4gICAgaW5kZXhpZ2VlbXByZXNhZW50cmFkYTogYm9vbGVhbjtcclxuICAgIHVybGljb25lPzogc3RyaW5nO1xyXG4gIH1bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBhY3Rpb25zOiB7IGljb246IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgYWN0aW9uOiAoKSA9PiB2b2lkIH1bXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2EgcXVhaXMgbWVudXMgc8OjbyB2aXPDrXZlaXMgbm8gdG9wby5cclxuICAgKiBcclxuICAgKiBAdHlwZSB7QXJyYXk8e2lkOiBudW1iZXIsIG51bU5vdGlmaWNhdGlvbnM/OiBudW1iZXIsIGFjdGlvbj86IChlOiBhbnkpID0+IHZvaWR9Pn1cclxuICAgKiBcclxuICAgKiBPcMOnw7VlcyBkaXNwb27DrXZlaXM6XHJcbiAgICogLSAyIC0gS2lhcmEgXHJcbiAgICogLSAzIC0gTm90aWZpY2HDp8O1ZXNcclxuICAgKiAtIDQgLSBUYXJlZmFzXHJcbiAgICogLSA1IC0gQ29tdW5pY2Fkb3JcclxuICAgKiBcclxuICAgKiBAcHJvcGVydHkge251bWJlcn0gaWQgLSBpZGVudGlmaWNhZG9yIGRvIG1lbnUuXHJcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IFtudW1Ob3RpZmljYXRpb25zXSAtIE7Dum1lcm8gZGUgbm90aWZpY2HDp8O1ZXMgKG9wY2lvbmFsKS5cclxuICAgKiBAcHJvcGVydHkgeyhlOiBhbnkpID0+IHZvaWR9IFthY3Rpb25dIC0gQcOnw6NvIGRvIGNsaXF1ZSwgcXVlIHJldG9ybmEgbyBldmVudG8gZG8gY2xpcXVlIChvcHRpb25hbCkuXHJcbiAgICogXHJcbiAgICovXHJcbiAgdG9wTWVudXNWaXNpYmxlID0gaW5wdXQ8e2lkOm51bWJlciwgbnVtTm90aWZpY2F0aW9ucz86bnVtYmVyLCBhY3Rpb24/OihlOmFueSkgPT4gdm9pZH1bXT4oW10pO1xyXG5cclxuICB0b3BNZW51T3B0aW9uczogVG9wQWN0aW9uc01vZGVsW109W1xyXG4gICAge2lkOiAxLCB2aXNpYmxlOiB0cnVlLCBpY29uOiAndGktdXNlcicsIHRvb2x0aXA6ICdNZXVzIERhZG9zJywgbnVtTm90aWZpY2F0aW9uczogMCwgYWN0aW9uOiAoZTphbnkpID0+IHt0aGlzLm1ldXNEYWRvc1BhbmVsLnRvZ2dsZShlKX19LFxyXG4gICAge2lkOiAyLCB2aXNpYmxlOiBmYWxzZSwgaWNvbjogJ3RpLXNwYXJrbGVzJywgdG9vbHRpcDogJ0tpYXJhJywgbnVtTm90aWZpY2F0aW9uczogMCwgYWN0aW9uOiAoKSA9PiB7fX0sXHJcbiAgICB7aWQ6IDMsIHZpc2libGU6IGZhbHNlLCBpY29uOiAndGktYmVsbCcsIHRvb2x0aXA6ICdOb3RpZmljYcOnw7VlcycsIG51bU5vdGlmaWNhdGlvbnM6IDAsIGFjdGlvbjogKCkgPT4ge319LFxyXG4gICAge2lkOiA0LCB2aXNpYmxlOiBmYWxzZSwgaWNvbjogJ3RpLWxpc3QtY2hlY2snLCB0b29sdGlwOiAnVGFyZWZhcycsIG51bU5vdGlmaWNhdGlvbnM6IDAsIGFjdGlvbjogKCkgPT4ge319LFxyXG4gICAge2lkOiA1LCB2aXNpYmxlOiBmYWxzZSwgaWNvbjogJ3RpLW1lc3NhZ2UnLCB0b29sdGlwOiAnQ29tdW5pY2Fkb3InLCBudW1Ob3RpZmljYXRpb25zOiAwLCBhY3Rpb246ICgpID0+IHt9fSxcclxuICBdO1xyXG4gIFxyXG4gIHByb2ZpbGVJbWFnZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cclxuICBASW5wdXQoKSBicmVhZENydW1iSXRlbXM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICByb3V0ZXJMaW5rOiBzdHJpbmc7XHJcbiAgfVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIG1hc3RlcnM6IHtcclxuICAgIGlkbWFzdGVyOiBudW1iZXI7XHJcbiAgICBjcGZjbnBqOiBzdHJpbmc7XHJcbiAgICBub21lOiBzdHJpbmc7XHJcbiAgICBpZG1hc3Rlcm5vbWU6IHN0cmluZztcclxuICB9W10gPSBbXTtcclxuXHJcbiAgbWVudXMgPSBtb2RlbDxMYXlvdXRNZW51SXRlbVtdPihbXSk7XHJcbiAgbWVudVZpc2l2ZWwgPSBzaWduYWw8bnVtYmVyfHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICBzaG93TWVudVNpc3RlbWFzID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgZXhwYW5kTWVudSA9IG1vZGVsPGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICBASW5wdXQoKSBsb2dvTWVudUV4cGFuZCE6IGFueTtcclxuICBASW5wdXQoKSBsb2dvTWVudUhpZGUhOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGVkQXBwITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkRW1wcmVzYSE6IGFueTtcclxuICBASW5wdXQoKSBzZWxlY3RlZE1hc3RlciE6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgc2hvd0J1dHRvbkFwcHM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dCdXR0b25Vc2VyOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RXhwYW5kTWVudTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0Ryb3Bkb3duTGljZW5jYTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd01lbnU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dUcm9jYUVtcHJlc2E6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93QnJlYWRjcnVtYjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdXNlck5hbWU6IHN0cmluZyA9ICdVc3XDoXJpbyc7XHJcbiAgQElucHV0KCkgbWFzdGVyTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBlbXByZXNhTmFtZSE6IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIGFjY2Vzc0tlZVBhc3NFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlRW1wcmVzYUVtaXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlTGljZW5zZUVtaXQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBleHBhbmRNZW51RW1pdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsb2dvdXRFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0QXBwRW1pdDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG5hdmlnYXRlVG9EZWZhdWx0Um91dGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbWV1c0RhZG9zUGFuZWwnKSBtZXVzRGFkb3NQYW5lbCE6IE92ZXJsYXlQYW5lbDtcclxuXHJcbiAgLy8gdG9wTWVudUFjdGlvbnMgPSBjb250ZW50Q2hpbGRyZW48VGVtcGxhdGVSZWY8YW55Pj4oJ3RvcE1lbnVBY3Rpb24nKTtcclxuXHJcbiAgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIGhlaWdodENhcmQhOiBudW1iZXI7XHJcbiAgbW91c2VPdmVyRmlsaG9JbmRleDogYW55O1xyXG4gIG1vdXNlT3ZlckluZGV4OiBhbnk7XHJcbiAgd2lkdGhDYXJkITogbnVtYmVyO1xyXG5cclxuICB3aWR0aFBhZ2UgPSBzaWduYWw8bnVtYmVyPigwKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGlkbWFzdGVyOiBbdGhpcy5zZWxlY3RlZE1hc3RlciwgW11dLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5wcm9jZXNzYXJNZW51cygpO1xyXG4gICAgdGhpcy5hZGp1c3RXaWR0aENhcmQoKTtcclxuICAgIHRoaXMudmVyaWZ5TWVudUJlaGF2aW9yKCk7XHJcbiAgICB0aGlzLmV4cGFuZE1lbnVFdmVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc2FyTWVudXMoKSB7XHJcbiAgICBpZih0aGlzLnByb2ZpbGVJbWFnZSgpKXtcclxuICAgICAgdGhpcy50b3BNZW51T3B0aW9uc1swXS5pbWcgPSB0aGlzLnByb2ZpbGVJbWFnZSgpO1xyXG4gICAgfVxyXG4gICAgLy9pbnZlcnRlciBvIHRvcE1lbnVPcHRpb25zXHJcbiAgICB0aGlzLnRvcE1lbnVPcHRpb25zLnJldmVyc2UoKTtcclxuXHJcbiAgICB0aGlzLnRvcE1lbnVzVmlzaWJsZSgpLmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgIGxldCBtZW51ID0gdGhpcy50b3BNZW51T3B0aW9ucy5maW5kKCh4KSA9PiB4LmlkID09PSBpdGVtLmlkKTtcclxuICAgICAgaWYobWVudSl7XHJcbiAgICAgICAgbWVudS52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBpZihpdGVtLmFjdGlvbil7XHJcbiAgICAgICAgICBtZW51LmFjdGlvbiA9IGl0ZW0uYWN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihpdGVtLm51bU5vdGlmaWNhdGlvbnMpe1xyXG4gICAgICAgICAgbWVudS5udW1Ob3RpZmljYXRpb25zID0gaXRlbS5udW1Ob3RpZmljYXRpb25zO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWNjZXNzS2VlUGFzcyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmFjY2Vzc0tlZVBhc3NFbWl0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkanVzdEhlaWdodENhcmQoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLndpZHRoQ2FyZCA+IDQwMCkge1xyXG4gICAgICBpZiAodGhpcy53aWR0aFBhZ2UoKSA8IDk5MiAmJiB0aGlzLnNob3dMaWNlbmNhcygpKSByZXR1cm4gMTQ1O1xyXG5cclxuICAgICAgaWYgKHRoaXMuYnJlYWRDcnVtYkl0ZW1zLmxlbmd0aCA+IDApIHJldHVybiA5NTtcclxuICAgICAgZWxzZSByZXR1cm4gODU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIDEyNTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRqdXN0V2lkdGhDYXJkKCkge1xyXG4gICAgdGhpcy53aWR0aFBhZ2Uuc2V0KHdpbmRvdy5pbm5lcldpZHRoKTtcclxuXHJcbiAgICB0aGlzLmhlaWdodENhcmQgPSBOdW1iZXIoXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlLWNvbnRlbnQnKT8ub2Zmc2V0SGVpZ2h0XHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuc2hvd01lbnUpXHJcbiAgICAgIHRoaXMud2lkdGhDYXJkID1cclxuICAgICAgICBOdW1iZXIod2luZG93LmlubmVyV2lkdGgpIC0gKHRoaXMuZXhwYW5kTWVudSgpID8gMzMzIDogOTMpO1xyXG4gICAgZWxzZSB0aGlzLndpZHRoQ2FyZCA9IE51bWJlcih3aW5kb3cuaW5uZXJXaWR0aCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FsbFJvdXRlKHJvdGE6IGFueSwgZXhwYW5kPzogYm9vbGVhbikge1xyXG4gICAgaWYgKCFleHBhbmQgJiYgIXRoaXMuZXhwYW5kTWVudSgpICYmIHRoaXMuc2hvd0V4cGFuZE1lbnUpXHJcbiAgICAgIHRoaXMuZXhwYW5kTWVudS51cGRhdGUoKGN1cnJlbnRWYWx1ZTogYm9vbGVhbikgPT4gIWN1cnJlbnRWYWx1ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMud2lkdGhQYWdlKCkgIT0gMCAmJiB0aGlzLndpZHRoUGFnZSgpIDwgODAwICYmIHRoaXMuZXhwYW5kTWVudSgpICYmIHRoaXMuc2hvd0V4cGFuZE1lbnUpXHJcbiAgICAgIHRoaXMuZXhwYW5kTWVudS5zZXQoZmFsc2UpO1xyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocm90YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlRW1wcmVzYShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNoYW5nZUVtcHJlc2FFbWl0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZUxpY2Vuc2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jaGFuZ2VMaWNlbnNlRW1pdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmVyaWZ5TWVudUJlaGF2aW9yKCkge1xyXG4gICAgaWYgKHRoaXMud2lkdGhQYWdlKCkgPCA4MDApXHJcbiAgICAgIHRoaXMuZXhwYW5kTWVudS5zZXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHBhbmRNZW51RXZlbnQoKSB7XHJcbiAgICB0aGlzLmV4cGFuZE1lbnVFbWl0LmVtaXQodGhpcy5leHBhbmRNZW51KCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvZ291dChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmxvZ291dEVtaXQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1lbnVzUGVyQXBwKCkge1xyXG4gICAgaWYgKHRoaXMucm91dGVyLnVybCAmJiB0aGlzLm1lbnVzKCkgJiYgdGhpcy5tZW51cygpLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKHRoaXMucm91dGVyLnVybCA9PT0gJy8nKSB7XHJcbiAgICAgICAgLy8gdGhpcy5uYXZpZ2F0ZVRvRmlyc3RNZW51KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbWVudVNlbGVjaW9uYWRvID0gdGhpcy5tZW51cygpLmZpbmQoXHJcbiAgICAgICAgICAobWVudTogYW55KSA9PlxyXG4gICAgICAgICAgICBtZW51LmxpbmsgJiYgbWVudS5saW5rLmluY2x1ZGVzKHRoaXMucm91dGVyLnVybC5zbGljZSgxKSlcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChtZW51U2VsZWNpb25hZG8pIHtcclxuICAgICAgICAgIHRoaXMubmF2aWdhdGVUb01lbnUobWVudVNlbGVjaW9uYWRvKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuYW1lRW1wcmVzYShub21lTGljZW5jYTogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChub21lTGljZW5jYSkge1xyXG4gICAgICBpZiAobm9tZUxpY2VuY2EubGVuZ3RoID4gMjMpIHJldHVybiBub21lTGljZW5jYS5zdWJzdHJpbmcoMCwgMjMpICsgJy4uLic7XHJcbiAgICAgIGVsc2UgcmV0dXJuIG5vbWVMaWNlbmNhO1xyXG4gICAgfSBlbHNlIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVUb0ZpcnN0TWVudSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpcnN0TWVudSA9IHRoaXMubWVudXMoKVswXTtcclxuICAgIGlmIChmaXJzdE1lbnUuaW5kbWVudXBhaSkge1xyXG4gICAgICBjb25zdCBmaWxob3MgPSB0aGlzLnJldHVybk1lbnVDaGlsZChmaXJzdE1lbnUuaWRtZW51KTtcclxuICAgICAgaWYgKGZpbGhvcykge1xyXG4gICAgICAgIHRoaXMuY2FsbFJvdXRlKGZpbGhvc1swXS5saW5rLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jYWxsUm91dGUoZmlyc3RNZW51LmxpbmssIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvTWVudShtZW51OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChtZW51Lm1lbnVwYWkpIHtcclxuICAgICAgY29uc3QgZmlsaG9zID0gdGhpcy5yZXR1cm5NZW51Q2hpbGQobWVudS5pZG1lbnUpO1xyXG4gICAgICBpZiAoZmlsaG9zKSB7XHJcbiAgICAgICAgdGhpcy5jYWxsUm91dGUoZmlsaG9zWzBdLmxpbmssIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNhbGxSb3V0ZShtZW51LmxpbmssIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWVudVNlbGVjaW9uYWRvID0gc2lnbmFsPGFueT4obnVsbCk7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IGxhdGVzdFJlcXVlc3QgPSBjaGFuZ2VzWydtZW51cyddO1xyXG4gICAgaWYgKGxhdGVzdFJlcXVlc3Q/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLm1lbnVzUGVyQXBwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY2lvbmFyTWVudSgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIG9uV2luZG93UmVzaXplKCkge1xyXG4gICAgdGhpcy5hZGp1c3RXaWR0aENhcmQoKTtcclxuICAgIC8vIHRoaXMudmVyaWZ5TWVudUJlaGF2aW9yKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBpc1NlbGVjdGVkTWVudVBhaShtZW51OiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5leHBhbmRNZW51KCkgJiYgbWVudS5pbmRtZW51cGFpKVxyXG4gICAgICByZXR1cm4gbWVudS5pZG1lbnUgPT09IHRoaXMubWVudVNlbGVjaW9uYWRvKCk/LmlkbWVudXBhaTtcclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZWxlY2lvbmFyTWVudSgpIHtcclxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGhpcy5yb3V0ZXIudXJsLCB3aW5kb3cub3JpZ2luKTtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50UGF0aCA9IHVybC5wYXRobmFtZTtcclxuICAgIGNvbnN0IHB1cmVQYXRoID0gY3VycmVudFBhdGgubWF0Y2goL15bXjtdKi9pKTtcclxuXHJcbiAgICBjb25zdCBwYXRocyA9IHB1cmVQYXRoIVswXTtcclxuXHJcbiAgICB0aGlzLm1lbnVzLnNldChcclxuICAgICAgdGhpcy5tZW51cygpLm1hcCgobWVudSkgPT4ge1xyXG4gICAgICAgIGlmIChtZW51LmxpbmspIHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLm1lbnUsXHJcbiAgICAgICAgICAgIGJnQ29sb3I6IHBhdGhzLmluY2x1ZGVzKG1lbnUubGluayEpID8gJ3JnYig0MSwgMTg1LCA0NSknIDogJycsXHJcbiAgICAgICAgICAgIHRleHRDb2xvcjogcGF0aHMuaW5jbHVkZXMobWVudS5saW5rISkgPyAndGV4dC13aGl0ZScgOiAnJyxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBtZW51O1xyXG4gICAgICB9KVxyXG4gICAgKVxyXG5cclxuICAgIGNvbnN0IG1lbnUgPSB0aGlzLm1lbnVzKCkuZmluZCgobWVudTogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiBtZW51LmxpbmsgJiYgcGF0aHMuaW5jbHVkZXMobWVudS5saW5rISk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm1lbnVTZWxlY2lvbmFkby5zZXQobWVudSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmV0dXJuTWVudUNoaWxkKGlkbWVudTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZW51cygpLmZpbHRlcigoeDogYW55KSA9PiB4LmlkbWVudXBhaSA9PSBpZG1lbnUpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBzZWxlY3RBcHAoaWRhcGxpY2F0aXZvOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2VsZWN0QXBwRW1pdC5lbWl0KGlkYXBsaWNhdGl2byk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0xpY2VuY2FzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd0Ryb3Bkb3duTGljZW5jYSAmJiAodGhpcy5tYXN0ZXJzIHx8IFtdKS5sZW5ndGggPiAxO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZU1lbnUoKSB7XHJcbiAgICB0aGlzLmV4cGFuZE1lbnUudXBkYXRlKChjdXJyZW50VmFsdWU6IGJvb2xlYW4pID0+ICFjdXJyZW50VmFsdWUpO1xyXG4gICAgdGhpcy5leHBhbmRNZW51RXZlbnQoKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9EZWZhdWx0Um91dGUoKSB7XHJcbiAgICBpZiAodGhpcy53aWR0aFBhZ2UoKSA8IDgwMCAmJiB0aGlzLmV4cGFuZE1lbnUoKSlcclxuICAgICAgdGhpcy5leHBhbmRNZW51LnNldChmYWxzZSk7XHJcblxyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvRGVmYXVsdFJvdXRlRW1pdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZXhpYmlyTm9tZXMoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMuc2hvd0xpY2VuY2FzKCkgJiYgKHRoaXMubWFzdGVyTmFtZSB8fCB0aGlzLmVtcHJlc2FOYW1lKTtcclxuICB9XHJcblxyXG4gIGV4aWJpck1lbnVDaGlsZChldmVudDphbnksIGluZGV4Om51bWJlcil7XHJcbiAgICB0aGlzLm1lbnVWaXNpdmVsLnNldChpbmRleCk7XHJcbiAgICAgIGxldCBtZW51UGFyZW50IDtcclxuICAgICAgbGV0IG1lbnVDaGlsZCA7XHJcbiAgICAgIGlmKGluZGV4ID09PSAtMSl7XHJcbiAgICAgICAgbWVudVBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBtZW51LXNpc3RlbWFzLXBhcmVudGApO1xyXG4gICAgICAgIG1lbnVDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBtZW51LXNpc3RlbWFzLWNoaWxkYCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICBtZW51UGFyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYG1lbnUtcGFyZW50LSR7aW5kZXh9YCk7XHJcbiAgICAgICAgbWVudUNoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYG1lbnUtY2hpbGQtJHtpbmRleH1gKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKG1lbnVQYXJlbnQpIHtcclxuICAgICAgICBjb25zdCByZWN0X3BhcmVudCA9IG1lbnVQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbGV0IHggPSByZWN0X3BhcmVudC5yaWdodCAtIDEwO1xyXG4gICAgICAgIGxldCB5ID0gcmVjdF9wYXJlbnQudG9wIC01O1xyXG4gIFxyXG4gICAgICAgIGlmIChtZW51Q2hpbGQpIHtcclxuICAgICAgICAgIGNvbnN0IHJlY3RfY2hpbGQgPSBtZW51Q2hpbGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICBcclxuICAgICAgICAgIC8vVmVyaWZpY2Egc2UgbyBtZW51IGZpbGhvIHZhaSB1dHJhcGFzc2FyIG8gZmluYWwgZG8gdmlld3BvcnQgcHJhIGJhaXhvXHJcbiAgICAgICAgICBpZiAocmVjdF9wYXJlbnQuYm90dG9tICsgcmVjdF9jaGlsZC5oZWlnaHQgPiB2aWV3cG9ydEhlaWdodCkge1xyXG4gICAgICAgICAgICB5ID0gcmVjdF9wYXJlbnQuYm90dG9tIC0gcmVjdF9jaGlsZC5oZWlnaHQgLSAxMDtcclxuICAgICAgICAgIH1cclxuICBcclxuICAgICAgICAgIC8vIFZlcmlmaWNhIHNlIG8gbWVudSBwYWkgZXN0w6EgbXVpdG8gZW0gY2ltYVxyXG4gICAgICAgICAgaWYgKHJlY3RfcGFyZW50LnRvcCA8PSAwKSB7XHJcbiAgICAgICAgICAgIHkgPSByZWN0X3BhcmVudC5ib3R0b20gKyA1O1xyXG4gICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgbWVudUNoaWxkLnN0eWxlLnRvcCA9IGAke3l9cHhgO1xyXG4gICAgICAgICAgbWVudUNoaWxkLnN0eWxlLmxlZnQgPSBgJHt4fXB4YDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZ1bGwtY29udGFpbmVyXCI+XHJcbiAgQGlmKHNob3dNZW51KSB7XHJcbiAgICA8cC1zaWRlYmFyXHJcbiAgICAgICNzaWRlYmFyUmVmXHJcbiAgICAgIFt2aXNpYmxlXT1cInRydWVcIlxyXG4gICAgICBbc2hvd0Nsb3NlSWNvbl09XCJmYWxzZVwiXHJcbiAgICAgIFttb2RhbF09XCJmYWxzZVwiXHJcbiAgICAgIFtzdHlsZV09XCJ7IHdpZHRoOiBleHBhbmRNZW51KCkgPyAnMTdyZW0nIDogJzMuNjVyZW0nIH1cIlxyXG4gICAgICBzdHlsZUNsYXNzPVwidHJhbnNpdGlvbi1hbGxcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGxlc3NcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIGZsZXggZmxleC1jb2x1bW4gb3ZlcmZsb3ctaGlkZGVuIHAtMlwiPlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICA8IS0tIExPR08gLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGZsZXggZmxleC1jb2x1bW4gZ2FwLTEganVzdGlmeS1jb250ZW50LWJldHdlZW4gZmxleC1zaHJpbmstMCBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCB7e1xyXG4gICAgICAgICAgICAgICAgZXhwYW5kTWVudSgpID8gJ2ZsZXgtcm93JyA6ICdmbGV4LWNvbHVtbidcclxuICAgICAgICAgICAgICB9fSBhbGlnbi1pdGVtcy1jZW50ZXIge3tcclxuICAgICAgICAgICAgICAgIGV4cGFuZE1lbnUoKVxyXG4gICAgICAgICAgICAgICAgICA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbidcclxuICAgICAgICAgICAgICAgICAgOiAnanVzdGlmeS1jb250ZW50LWNlbnRlcidcclxuICAgICAgICAgICAgICB9fSBwLTJcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPCEtLSBMb2dvIHBhcmEgbyBtZW51IGV4cGFuZGlkbyAtLT5cclxuICAgICAgICAgICAgICBAaWYoZXhwYW5kTWVudSgpICYmIGxvZ29NZW51RXhwYW5kKXtcclxuICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgYWx0PVwiQ2FyZFwiXHJcbiAgICAgICAgICAgICAgICAgIFtzcmNdPVwibG9nb01lbnVFeHBhbmRcIlxyXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cIicyLjRyZW0nXCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCJhdXRvXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBwLTBcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb0RlZmF1bHRSb3V0ZSgpXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICA8IS0tIExvZ28gcGFyYSBvIG1lbnUgbWluaW1pemFkby0tPlxyXG4gICAgICAgICAgICAgIEBpZighZXhwYW5kTWVudSgpICYmIGxvZ29NZW51SGlkZSl7XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIkNhcmRcIlxyXG4gICAgICAgICAgICAgICAgICBbc3JjXT1cImxvZ29NZW51SGlkZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiJzIuNHJlbSdcIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cImF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIHAtMVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvRGVmYXVsdFJvdXRlKClcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gVG9nZ2xlIG1lbnUgLS0+XHJcbiAgICAgICAgICAgICAgQGlmKHNob3dFeHBhbmRNZW51KXtcclxuICAgICAgICAgICAgICAgIDxrdi1pY29uXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0aS1tZW51LTJcIlxyXG4gICAgICAgICAgICAgICAgICBbY2xpY2thYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiZXhwYW5kTWVudSgpID8gJ09jdWx0YXIgTWVudScgOiAnRXhwYW5kaXIgTWVudSdcIlxyXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidyaWdodCdcIlxyXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJ0b2dnbGVNZW51KClcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgQGlmKHNob3dUcm9jYUVtcHJlc2Epe1xyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXt7ZXhwYW5kTWVudSgpID8nYmV0d2Vlbic6J2NlbnRlcid9fSBnYXAtMiBzaWRlLW1lbnUtaXRlbSB0cm9jYS1zaXN0ZW1hLWNvbnRhaW5lciBtYi0yXCIgXHJcbiAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiJ1Ryb2NhciBkZSBlbXByZXNhJ1wiXHJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidyaWdodCdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZUVtcHJlc2EoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxrdi1pY29uXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwidGktYnVpbGRpbmctc2t5c2NyYXBlclwiXHJcbiAgICAgICAgICAgICAgICBzaXplPVwiMS4xcmVtXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgQGlmKGV4cGFuZE1lbnUoKSAmJiBzZWxlY3RlZEVtcHJlc2Epe1xyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIHctZnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZUVtcHJlc2EoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICBAaWYodGhpcy5zZWxlY3RlZEVtcHJlc2EucmF6YW9zb2NpYWwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgbXItMiBjb2xvci1zeXN0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZm9udFN1emVdPVwiJy41cmVtJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5hbWVFbXByZXNhKHRoaXMuc2VsZWN0ZWRFbXByZXNhLnJhemFvc29jaWFsKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBAaWYodGhpcy5zZWxlY3RlZEVtcHJlc2EuY3BmY25wail7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgbXQtMSBjb2xvci1zeXN0ZW1cIiBbc3R5bGUuZm9udFN1emVdPVwiJy41cmVtJ1wiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbXByZXNhLmNwZmNucGogfCBjcGZDbnBqXHJcbiAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgPCEtLSA8ZGl2IHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0Oi43NXJlbVwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICA8cC1kaXZpZGVyIGNsYXNzPVwicHgtMlwiIFtzdHlsZS5vcGFjaXR5XT1cIjFcIiB0eXBlPVwic29saWRcIj48L3AtZGl2aWRlcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgIDwhLS0gTUVOVVMgLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIGxpc3Qtbm9uZSBtLTAgb3ZlcmZsb3cteS1hdXRvIG1heC1oLWZ1bGxcIj5cclxuICAgICAgICAgICAgPCEtLSBtZW51cyAtLT5cclxuICAgICAgICAgICAgQGZvciAobWVudSBvZiBtZW51cygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICA8IS0tIG1lbnUgcXVlIG7Do28gdGVtIGZpbGhvIC0tPlxyXG4gICAgICAgICAgICAgICAgICBAaWYoICFtZW51LmluZG1lbnVwYWkgJiYgKCFtZW51LmlkbWVudXBhaSB8fCBtZW51LmlkbWVudXBhaSA9PSAwKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC17e2V4cGFuZE1lbnUoKSA/J2JldHdlZW4nOidjZW50ZXInfX0gZ2FwLTIgc2lkZS1tZW51LWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmctdG9wOiAwLjc1cmVtOyBwYWRkaW5nLWJvdHRvbTowLjc1cmVtO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYWxsUm91dGUobWVudS5saW5rKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxrdi1pY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibWVudS5pY29uZXx8ICd0aS1jaXJjbGUtZG90dGVkJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZihleHBhbmRNZW51KCkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57e21lbnUuZGVzY3JpY2FvbWVudX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8IS0tIG1lbnUgY29tIGZpbGhvIC0tPlxyXG4gICAgICAgICAgICAgICAgICBAaWYobWVudS5pbmRtZW51cGFpKXtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1wYXJlbnRcIiBpZD1cIm1lbnUtcGFyZW50LXt7JGluZGV4fX1cIiAobW91c2VlbnRlcik9XCJleGliaXJNZW51Q2hpbGQoJGV2ZW50LCAkaW5kZXgpXCIgKG1vdXNlbGVhdmUpPVwibWVudVZpc2l2ZWwuc2V0KHVuZGVmaW5lZClcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIGZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC17e2V4cGFuZE1lbnUoKSA/J2JldHdlZW4nOidjZW50ZXInfX0gZ2FwLTIgc2lkZS1tZW51LWl0ZW1cIiBzdHlsZT1cInBhZGRpbmctdG9wOiAwLjc1cmVtOyBwYWRkaW5nLWJvdHRvbTowLjc1cmVtO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJtZW51Lmljb25lfHwgJ3RpLWNpcmNsZS1kb3R0ZWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGV4cGFuZE1lbnUoKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7bWVudS5kZXNjcmljYW9tZW51fX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxrdi1pY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY2hldnJvbkljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0aS1jaGV2cm9uLXJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1jaGlsZHNcIiBpZD1cIm1lbnUtY2hpbGQte3skaW5kZXh9fVwiIFtzdHlsZS5vcGFjaXR5XT1cIm1lbnVWaXNpdmVsKCk9PT0kaW5kZXg/JzEnOicwJ1wiIFtzdHlsZS5wb2ludGVyRXZlbnRzXT1cIm1lbnVWaXNpdmVsKCk9PT0kaW5kZXg/J2F1dG8nOidub25lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0ycmVtIGZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwLTAgbS0wIGZvbnQtYm9sZCBwdC0yIHBsLTMgdGV4dC14c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3ttZW51LmRlc2NyaWNhb21lbnV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgcmV0dXJuTWVudUNoaWxkKG1lbnUuaWRtZW51KTsgdHJhY2sgJGluZGV4KSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiBzaWRlLW1lbnUtaXRlbSBweS0yIHBsLTMgcHItMSB0ZXh0LXNtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYWxsUm91dGUoaXRlbS5saW5rKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmRlc2NyaWNhb21lbnV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxwLWRpdmlkZXIgY2xhc3M9XCJweC0yXCIgW3N0eWxlLm9wYWNpdHldPVwiMVwiIHR5cGU9XCJzb2xpZFwiPjwvcC1kaXZpZGVyPlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICA8IS0tIEFQUFMgRSBTQUlSIC0tPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtbm9uZSBsaXN0LW5vbmUgbS0wIG92ZXJmbG93LXktYXV0byBtYXgtaC1mdWxsXCI+XHJcbiAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1wYXJlbnRcIiBpZD1cIm1lbnUtc2lzdGVtYXMtcGFyZW50XCIgKG1vdXNlZW50ZXIpPVwiZXhpYmlyTWVudUNoaWxkKCRldmVudCwgLTEpXCIgKG1vdXNlbGVhdmUpPVwibWVudVZpc2l2ZWwuc2V0KHVuZGVmaW5lZClcIiA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXt7ZXhwYW5kTWVudSgpID8nYmV0d2Vlbic6J2NlbnRlcid9fSBnYXAtMiBzaWRlLW1lbnUtaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy10b3A6IDAuNzVyZW07IHBhZGRpbmctYm90dG9tOjAuNzVyZW07XCJcclxuICAgICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cIiFleHBhbmRNZW51KCkgPyAnU2lzdGVtYXMnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8a3YtaWNvblxyXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIid0aS1hcHBzJ1wiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIEBpZihleHBhbmRNZW51KCkpe1xyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5TaXN0ZW1hczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgICAgICAgICNjaGV2cm9uSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRpLWNoZXZyb24tcmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWNoaWxkc1wiIGlkPVwibWVudS1zaXN0ZW1hcy1jaGlsZFwiIFtzdHlsZS5vcGFjaXR5XT1cIm1lbnVWaXNpdmVsKCk9PT0tMT8nMSc6JzAnXCIgW3N0eWxlLnBvaW50ZXJFdmVudHNdPVwibWVudVZpc2l2ZWwoKT09PS0xPydhdXRvJzonbm9uZSdcIj5cclxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwLTAgbS0wIGZvbnQtYm9sZCBwdC0yIHBsLTMgdGV4dC14c1wiPlNpc3RlbWFzPC9wPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGFwcHM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHNpZGUtbWVudS1pdGVtIHB5LTIgcGwtMyBwci0xXCIgKGNsaWNrKT1cImNhbGxSb3V0ZShpdGVtLnJvdGFwYWRyYW8pIDsgc2VsZWN0QXBwKGl0ZW0uaWRhcGxpY2F0aXZvKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtLnVybGljb25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImgtMnJlbSB3LTJyZW0gYm9yZGVyLXJvdW5kLWxnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0ubm9tZWFwbGljYXRpdm99fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQte3tleHBhbmRNZW51KCkgPydiZXR3ZWVuJzonY2VudGVyJ319IGdhcC0yIHNpZGUtbWVudS1pdGVtXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy10b3A6IDAuNzVyZW07IHBhZGRpbmctYm90dG9tOjAuNzVyZW07XCJcclxuICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCIhZXhwYW5kTWVudSgpID8gJ1NhaXInIDogJydcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIidyZWQnXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5vcGFjaXR5XT1cIjAuNVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibG9nb3V0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxrdi1pY29uXHJcbiAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIid0aS1sb2dvdXQnXCJcclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgQGlmKGV4cGFuZE1lbnUoKSl7XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbD5TYWlyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLXNpZGViYXI+XHJcbiAgfVxyXG5cclxuICA8IS0tIFNFw4fDg08gQ09OVEXDmkRPICAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInctYXV0byBoLXNjcmVlbiBwYWdlLWNvbnRlbnQgb3ZlcmZsb3cteS1oaWRkZW4gZmxleCBmbGV4LWNvbHVtblwiXHJcbiAgICBpZD1cInBhZ2UtY29udGVudFwiXHJcbiAgICBzdHlsZT1cIndpZHRoOiAxMDB2dyAhaW1wb3J0YW50XCJcclxuICA+XHJcbiAgICA8IS0tIFRPUE8gLS0+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG15LTIgbXgtMyBtYi0wXCJcclxuICAgID5cclxuICAgICAgQGlmKCFzaG93TWVudSkge1xyXG4gICAgICA8IS0tIExvZ28gaG9tZSAtLT5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGltZyBbc3JjXT1cImxvZ29NZW51RXhwYW5kXCIgd2lkdGg9XCIxNTBcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9IFxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgPCEtLSBCcmVhZGNydW1icyAtLT5cclxuICAgICAgICBAaWYoc2hvd0JyZWFkY3J1bWIpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGxcIj5cclxuICAgICAgICAgICAgICA8cC1icmVhZGNydW1iXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIndpZHRoQ2FyZCA+IDQwMFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiYm9yZGVyLW5vbmUgcC0wIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGgtMnJlbSBiZy10cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICBbbW9kZWxdPVwiYnJlYWRDcnVtYkl0ZW1zXCJcclxuICAgICAgICAgICAgICAgIChvbkl0ZW1DbGljayk9XCJjYWxsUm91dGUoJGV2ZW50Lml0ZW0ucm91dGVyTGluaywgdHJ1ZSlcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaXRlbVwiIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgQGlmKGJyZWFkQ3J1bWJJdGVtcy5pbmRleE9mKGl0ZW0pIDwgYnJlYWRDcnVtYkl0ZW1zLmxlbmd0aCAtIDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ub3JtYWxcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L3AtYnJlYWRjcnVtYj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICA8IS0tIEdIT1NUIERJViBQQVJBIE9DUFVBUiBFU1BBw4dPIE5PIFNQQUNFIEJFVFdFRU4gLS0+XHJcbiAgICAgICAgICA8ZGl2PjwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgfSBcclxuICAgICAgQGlmIChleGliaXJOb21lcykgeyBcclxuICAgICAgICBAaWYod2lkdGhDYXJkID49IDUxNykge1xyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgQGlmIChtYXN0ZXJOYW1lKSB7IDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZCBzeXN0ZW0tY29sb3JcIj57eyBtYXN0ZXJOYW1lIH19PC9zcGFuPiB9XHJcbiAgICAgICAgICAgIEBpZiAoZW1wcmVzYU5hbWUpIHs8c3BhbiBjbGFzcz1cImVtcHJlc2EtbmFtZVwiXHJcbiAgICAgICAgICAgICAgPk9yZ2FuaXphw6fDo286IHt7IGVtcHJlc2FOYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPCEtLSBOYXZlZ2HDp8OjbyBkZSBzaXN0ZW1hcyBlIHVzdcOhcmlvcyAtLT5cclxuICAgICAgICAgICAgPCEtLSBAZm9yICh0b3BBY3Rpb24gb2YgdG9wTWVudUFjdGlvbnMoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b3BBY3Rpb25cIiAvPlxyXG4gICAgICAgICAgICB9IC0tPlxyXG4gICAgICAgICAgICA8a3YtdG9wLWljb25zXHJcbiAgICAgICAgICAgICAgW3RvcEFjdGlvbnNdPVwidG9wTWVudU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH0gXHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPCEtLSBOYXZlZ2HDp8OjbyBkZSBzaXN0ZW1hcyBlIHVzdcOhcmlvcyAtLT5cclxuICAgICAgICAgICAgPCEtLSBAZm9yICh0b3BBY3Rpb24gb2YgdG9wTWVudUFjdGlvbnMoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b3BBY3Rpb25cIiAvPlxyXG4gICAgICAgICAgICB9IC0tPlxyXG4gICAgICAgICAgICA8a3YtdG9wLWljb25zXHJcbiAgICAgICAgICAgICAgW3RvcEFjdGlvbnNdPVwidG9wTWVudU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJ3LWF1dG8gZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIEBpZiAobWFzdGVyTmFtZSkgeyA8c3BhbiBjbGFzcz1cIm1hc3Rlci1uYW1lXCI+e3sgbWFzdGVyTmFtZSB9fTwvc3Bhbj4gfVxyXG4gICAgICAgICAgICBAaWYgKGVtcHJlc2FOYW1lKSB7PHNwYW4gY2xhc3M9XCJlbXByZXNhLW5hbWVcIj57eyBlbXByZXNhTmFtZSB9fTwvc3Bhbj4gfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfSBcclxuICAgICAgfSBcclxuICAgICAgQGVsc2UgeyBcclxuICAgICAgICBAaWYod2lkdGhQYWdlKCkgPiA5OTIpe1xyXG4gICAgICAgICAgPCEtLSBkcm9wZG93biBwYXJhIHNlbGXDp8OjbyBkZSBlbXByZXNhL2xpY2VuY2EgLS0+XHJcbiAgICAgICAgICA8ZHJvcGRvd24tbWFzdGVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0xpY2VuY2FzKClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIm1heC13LTI1cmVtIGZsZXgtMVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlkbWFzdGVyXCJcclxuICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxyXG4gICAgICAgICAgICBbbWFzdGVyc109XCJtYXN0ZXJzXCJcclxuICAgICAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZUxpY2Vuc2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChvblNlbGVjdGlvblZhbHVlKT1cImNoYW5nZUxpY2Vuc2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2Ryb3Bkb3duLW1hc3Rlcj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDwhLS0gTmF2ZWdhw6fDo28gZGUgc2lzdGVtYXMgZSB1c3XDoXJpb3MgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cclxuICAgICAgICAgIDxrdi10b3AtaWNvbnNcclxuICAgICAgICAgICAgW3RvcEFjdGlvbnNdPVwidG9wTWVudU9wdGlvbnNcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZih3aWR0aFBhZ2UoKSA8PSA5OTIpe1xyXG4gICAgICA8IS0tIGRyb3Bkb3duIHBhcmEgc2VsZcOnw6NvIGRlIGVtcHJlc2EvbGljZW5jYSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImgtMnJlbSBteC0zXCI+XHJcbiAgICAgICAgPGRyb3Bkb3duLW1hc3RlclxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93TGljZW5jYXMoKVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpZG1hc3RlclwiXHJcbiAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXHJcbiAgICAgICAgICBbbWFzdGVyc109XCJtYXN0ZXJzXCJcclxuICAgICAgICAgIChvblNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VMaWNlbnNlKCRldmVudClcIlxyXG4gICAgICAgICAgKG9uU2VsZWN0aW9uVmFsdWUpPVwiY2hhbmdlTGljZW5zZSgkZXZlbnQpXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICB9IFxyXG5cclxuICAgIDwhLS0gQ29udGFpbmVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlbiBmbGV4LTEgcC0wIG0tMCBtYi0yIGgtZnVsbFwiPlxyXG4gICAgICA8cC1jYXJkXHJcbiAgICAgICAgc3R5bGVDbGFzcz1cIm92ZXJmbG93LXktYXV0byBoLWZ1bGwgbWF4LWgtZnVsbCB7e1xyXG4gICAgICAgICAgIXNob3dNZW51ICYmICdzbTpvdmVyZmxvdy15LWhpZGRlbidcclxuICAgICAgICB9fSBjYXJkLWNvbnRhaW5lclwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgXHJcbiAgICAgIDwvcC1jYXJkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUGFpbmVsIGRvIHVzdcOhcmlvIC0tPlxyXG4gIDxwLW92ZXJsYXlQYW5lbFxyXG4gICAgI21ldXNEYWRvc1BhbmVsXHJcbiAgICBbc2hvd1RyYW5zaXRpb25PcHRpb25zXT1cIiczNTBtcyBlYXNlLW91dCdcIlxyXG4gICAgW2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCInMjUwbXMgZWFzZS1pbidcIlxyXG4gID5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGFpbmVyXCI+XHJcbiAgICA8cCBjbGFzcz1cInN5c3RlbS1jb2xvciBmb250LW1lZGl1bSB0ZXh0LWxnIHB4LTIgcHktMyBtLTBcIj5cclxuICAgICAgT2zDoSwge3sgdXNlck5hbWUgPyB1c2VyTmFtZS5zcGxpdChcIiBcIilbMF0gOiBcIlVzdcOhcmlvXCIgfX0hXHJcbiAgICA8L3A+XHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJtdC01IG1iLTNcIj48L2Rpdj4gLS0+XHJcbiAgXHJcbiAgICA8IS0tIENvbnTDqmluZXIgY29tIGRpcmXDp8OjbyBlbSBjb2x1bmEgcGFyYSBlbXBpbGhhciBvcyBib3TDtWVzIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgPCEtLSBCb3TDtWVzIGFkaWNpb25haXMgZGluw6JtaWNvcyAtLT5cclxuICAgICAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbnM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgc2lkZS1tZW51LWl0ZW0gcHktMiBweC0yXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5hY3Rpb24oKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxrdi1pY29uXHJcbiAgICAgICAgICAgICAgW25hbWVdPVwiYWN0aW9uLmljb25cIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8c3Bhbj57e2FjdGlvbi5sYWJlbH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBzaWRlLW1lbnUtaXRlbSBweS0yIHB4LTJcIlxyXG4gICAgICAgIChjbGljayk9XCJhY2Nlc3NLZWVQYXNzKCRldmVudClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgICA8a3YtaWNvblxyXG4gICAgICAgICAgICBuYW1lPVwidGktbG9ja1wiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPHNwYW4+QWNlc3NhciBLZWVQYXNzPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICBcclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgPC9wLW92ZXJsYXlQYW5lbD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -5856,10 +5856,10 @@ class KvLayoutComponent {
|
|
|
5856
5856
|
* @type {Array<{id: number, numNotifications?: number, action?: (e: any) => void}>}
|
|
5857
5857
|
*
|
|
5858
5858
|
* Opções disponíveis:
|
|
5859
|
-
* - 2 -
|
|
5860
|
-
* - 3 -
|
|
5861
|
-
* - 4 -
|
|
5862
|
-
* - 5 -
|
|
5859
|
+
* - 2 - Kiara
|
|
5860
|
+
* - 3 - Notificações
|
|
5861
|
+
* - 4 - Tarefas
|
|
5862
|
+
* - 5 - Comunicador
|
|
5863
5863
|
*
|
|
5864
5864
|
* @property {number} id - identificador do menu.
|
|
5865
5865
|
* @property {number} [numNotifications] - Número de notificações (opcional).
|
|
@@ -5869,10 +5869,10 @@ class KvLayoutComponent {
|
|
|
5869
5869
|
this.topMenusVisible = input([]);
|
|
5870
5870
|
this.topMenuOptions = [
|
|
5871
5871
|
{ id: 1, visible: true, icon: 'ti-user', tooltip: 'Meus Dados', numNotifications: 0, action: (e) => { this.meusDadosPanel.toggle(e); } },
|
|
5872
|
-
{ id: 2, visible: false, icon: 'ti-
|
|
5873
|
-
{ id: 3, visible: false, icon: 'ti-
|
|
5874
|
-
{ id: 4, visible: false, icon: 'ti-
|
|
5875
|
-
{ id: 5, visible: false, icon: 'ti-
|
|
5872
|
+
{ id: 2, visible: false, icon: 'ti-sparkles', tooltip: 'Kiara', numNotifications: 0, action: () => { } },
|
|
5873
|
+
{ id: 3, visible: false, icon: 'ti-bell', tooltip: 'Notificações', numNotifications: 0, action: () => { } },
|
|
5874
|
+
{ id: 4, visible: false, icon: 'ti-list-check', tooltip: 'Tarefas', numNotifications: 0, action: () => { } },
|
|
5875
|
+
{ id: 5, visible: false, icon: 'ti-message', tooltip: 'Comunicador', numNotifications: 0, action: () => { } },
|
|
5876
5876
|
];
|
|
5877
5877
|
this.profileImage = input('');
|
|
5878
5878
|
this.breadCrumbItems = [];
|