@po-ui/ng-components 18.18.0 → 18.19.1
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/po-badge/po-badge-base.component.mjs +2 -2
- package/esm2022/lib/components/po-button/index.mjs +2 -1
- package/esm2022/lib/components/po-button/po-button-base.component.mjs +16 -3
- package/esm2022/lib/components/po-button/po-button-type.enum.mjs +36 -0
- package/esm2022/lib/components/po-button/po-button.component.mjs +4 -4
- package/esm2022/lib/components/po-button-group/po-button-group-item.interface.mjs +1 -1
- package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.mjs +9 -3
- package/esm2022/lib/components/po-field/po-combo/po-combo-base.component.mjs +2 -2
- package/esm2022/lib/components/po-field/po-input/po-input-base.component.mjs +2 -2
- package/esm2022/lib/components/po-icon/po-icon.component.mjs +2 -2
- package/esm2022/lib/components/po-listbox/po-item-list/interfaces/po-item-list-action.interface.mjs +1 -1
- package/esm2022/lib/components/po-menu/po-menu-item.interface.mjs +1 -1
- package/esm2022/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item.interface.mjs +1 -1
- package/esm2022/lib/components/po-modal/po-modal-base.component.mjs +2 -2
- package/esm2022/lib/components/po-navbar/interfaces/po-navbar-icon-action.interface.mjs +1 -1
- package/esm2022/lib/components/po-page/po-page-list/po-page-list-base.component.mjs +2 -2
- package/esm2022/lib/components/po-popup/po-popup-action.interface.mjs +1 -1
- package/esm2022/lib/components/po-stepper/po-step/po-step.component.mjs +2 -2
- package/esm2022/lib/components/po-stepper/po-stepper-base.component.mjs +3 -3
- package/esm2022/lib/components/po-table/po-table-base.component.mjs +2 -2
- package/esm2022/lib/components/po-table/po-table-column-icon/po-table-column-icon.interface.mjs +1 -1
- package/esm2022/lib/components/po-table/po-table-column-label/po-table-column-label.interface.mjs +1 -1
- package/esm2022/lib/components/po-tag/po-tag-base.component.mjs +2 -2
- package/esm2022/lib/components/po-toolbar/po-toolbar-base.component.mjs +3 -3
- package/fesm2022/po-ui-ng-components.mjs +75 -21
- package/fesm2022/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/po-badge/po-badge-base.component.d.ts +1 -1
- package/lib/components/po-button/index.d.ts +1 -0
- package/lib/components/po-button/po-button-base.component.d.ts +12 -2
- package/lib/components/po-button/po-button-type.enum.d.ts +34 -0
- package/lib/components/po-button-group/po-button-group-item.interface.d.ts +1 -1
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.d.ts +1 -1
- package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-field.interface.d.ts +1 -1
- package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +1 -1
- package/lib/components/po-field/po-input/po-input-base.component.d.ts +1 -1
- package/lib/components/po-icon/po-icon.component.d.ts +1 -1
- package/lib/components/po-listbox/po-item-list/interfaces/po-item-list-action.interface.d.ts +1 -1
- package/lib/components/po-menu/po-menu-item.interface.d.ts +1 -1
- package/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item.interface.d.ts +1 -1
- package/lib/components/po-modal/po-modal-base.component.d.ts +1 -1
- package/lib/components/po-navbar/interfaces/po-navbar-icon-action.interface.d.ts +1 -1
- package/lib/components/po-page/po-page-list/po-page-list-base.component.d.ts +1 -1
- package/lib/components/po-popup/po-popup-action.interface.d.ts +1 -1
- package/lib/components/po-stepper/po-step/po-step.component.d.ts +1 -1
- package/lib/components/po-stepper/po-stepper-base.component.d.ts +2 -2
- package/lib/components/po-table/po-table-base.component.d.ts +1 -1
- package/lib/components/po-table/po-table-column-icon/po-table-column-icon.interface.d.ts +1 -1
- package/lib/components/po-table/po-table-column-label/po-table-column-label.interface.d.ts +1 -1
- package/lib/components/po-tag/po-tag-base.component.d.ts +1 -1
- package/lib/components/po-toolbar/po-toolbar-base.component.d.ts +2 -2
- package/package.json +4 -4
- package/po-ui-ng-components-18.19.1.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/v14/index.js +1 -1
- package/schematics/ng-update/v15/index.js +1 -1
- package/schematics/ng-update/v16/index.js +1 -1
- package/schematics/ng-update/v17/index.js +1 -1
- package/schematics/ng-update/v18/index.js +2 -2
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/po-ui-ng-components-18.18.0.tgz +0 -0
|
@@ -206,7 +206,7 @@ export class PoStepperBaseComponent {
|
|
|
206
206
|
*
|
|
207
207
|
* @description
|
|
208
208
|
* Permite definir o ícone do step no status concluído.
|
|
209
|
-
* Esta propriedade permite usar ícones da [Biblioteca de ícones](/
|
|
209
|
+
* Esta propriedade permite usar ícones da [Biblioteca de ícones](https://po-ui.io/icons) ou da biblioteca [Phosphor](https://phosphoricons.com/).
|
|
210
210
|
*
|
|
211
211
|
* Exemplo usando a biblioteca de ícones padrão:
|
|
212
212
|
* ```
|
|
@@ -240,7 +240,7 @@ export class PoStepperBaseComponent {
|
|
|
240
240
|
*
|
|
241
241
|
* @description
|
|
242
242
|
* Permite definir o ícone do step no status ativo.
|
|
243
|
-
* Esta propriedade permite usar ícones da [Biblioteca de ícones](/
|
|
243
|
+
* Esta propriedade permite usar ícones da [Biblioteca de ícones](https://po-ui.io/icons) ou da biblioteca [Phosphor](https://phosphoricons.com/).
|
|
244
244
|
*
|
|
245
245
|
* Exemplo usando a biblioteca de ícones padrão:
|
|
246
246
|
* ```
|
|
@@ -303,4 +303,4 @@ export class PoStepperBaseComponent {
|
|
|
303
303
|
type: Input,
|
|
304
304
|
args: ['p-step-icon-active']
|
|
305
305
|
}] }); })();
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc3RlcHBlci1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1zdGVwcGVyL3BvLXN0ZXBwZXItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRWpFLE1BQU0sMkJBQTJCLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxDQUFDO0FBRXBFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDOzs7Ozs7Ozs7O09BVUc7SUFDb0IsU0FBUyxDQUFVO0lBRTFDOzs7Ozs7Ozs7Ozs7T0FZRztJQUNtQixRQUFRLENBQVM7SUFFdkMsOEVBQThFO0lBQ3JELFlBQVksR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztJQUU3RSxZQUFZLEdBQWEsSUFBSSxDQUFDO0lBQzlCLFlBQVksR0FBMEIsMkJBQTJCLENBQUM7SUFDbEUsV0FBVyxHQUFhLElBQUksQ0FBQztJQUM3QixLQUFLLEdBQVcsQ0FBQyxDQUFDO0lBQ2xCLE1BQU0sR0FBeUIsRUFBRSxDQUFDO0lBRTFDOzs7Ozs7Ozs7OztPQVdHO0lBRUgsSUFBNkIsV0FBVyxDQUFDLFdBQW9CO1FBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENB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LEtBQUs7a0JBQTFCLEtBQUs7bUJBQUMsU0FBUztZQXFCVyxVQUFVO2tCQUFwQyxLQUFLO21CQUFDLGNBQWM7WUF5Q00sUUFBUTtrQkFBbEMsS0FBSzttQkFBQyxrQkFBa0I7WUEyQkksVUFBVTtrQkFBdEMsS0FBSzttQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQgeyBQb1N0ZXBDb21wb25lbnQgfSBmcm9tICcuL3BvLXN0ZXAvcG8tc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9TdGVwcGVySXRlbSB9IGZyb20gJy4vcG8tc3RlcHBlci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1N0ZXBwZXJPcmllbnRhdGlvbiB9IGZyb20gJy4vZW51bXMvcG8tc3RlcHBlci1vcmllbnRhdGlvbi5lbnVtJztcbmltcG9ydCB7IFBvU3RlcHBlclN0YXR1cyB9IGZyb20gJy4vZW51bXMvcG8tc3RlcHBlci1zdGF0dXMuZW51bSc7XG5cbmNvbnN0IHBvU3RlcHBlck9yaWVudGF0aW9uRGVmYXVsdCA9IFBvU3RlcHBlck9yaWVudGF0aW9uLkhvcml6b250YWw7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBgcG8tc3RlcHBlcmAgcGVybWl0ZSBxdWUgdW0gcHJvY2Vzc28gc2VqYSBkaXZpZGlkbyBlbSBwYXNzb3MgcGFyYSBxdWUgbyB1c3XDoXJpbyBvIHJlYWxpemVcbiAqIG1haXMgZmFjaWxtZW50ZS5cbiAqXG4gKiBFeGlzdGVtIGR1YXMgZm9ybWFzIGRlIHV0aWxpemHDp8OjbzpcbiAqXG4gKiAxIC0gVXNhbmRvIG8gY29tcG9uZW50ZSBbKipwby1zdGVwKipdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXApIHBhcmEgcmVuZGVyaXphciBlIGRlc2NyZXZlciBvcyBwYXNzb3MuXG4gKlxuICogMiAtIEF0cmF2w6lzIGRhIHByb3ByaWVkYWRlIGBwLXN0ZXBzYCBwYXJhIGRlc2NyZXZlciBvcyBwYXNzb3MgZG8gcHJvY2Vzc28sIHNlbmRvIHJlc3BvbnNhYmlsaWRhZGUgZG8gZGVzZW52b2x2ZWRvciBvIGNvbnRyb2xlXG4gKiBkZSByZW5kZXJpemHDp8OjbyBkbyBxdWUgc2Vyw6EgZXhpYmlkbyBhIGNhZGEgKnN0ZXAqIGF0aXZvLlxuICpcbiAqIEF0cmF2w6lzIGRlIHN1YXMgcHJvcHJpZWRhZGVzLCDDqSBwb3Nzw612ZWwgZGVmaW5pciBzZSBzdWEgb3JpZW50YcOnw6NvIHNlcsOhIGhvcml6b250YWwgb3UgdmVydGljYWwsXG4gKiBhbMOpbSBkYSBwb3NzaWJpbGlkYWRlIGRlIGF1bWVudGFyIG8gdGFtYW5obyBkb3MgKnN0ZXBzKi5cbiAqXG4gKiBUYW1iw6ltIMOpIHBvc3PDrXZlbCBuYXZlZ2FyIGVudHJlIG9zICpzdGVwcyogYXRyYXbDqXMgZG8gdGVjbGFkbyB1dGlsaXphbmRvIGEgdGVjbGEgKnRhYiogZSwgcGFyYSBhdGl2YXIgbyAqc3RlcCogZW0gZm9jbyBiYXN0YVxuICogcHJlc3Npb25hciBhIHRlY2xhICplbnRlciouIEFsw6ltIGRpc3NvLCDDqSBwb3Nzw612ZWwgYXRpdmFyIGEgZXhpYmnDp8OjbyBkZSDDrWNvbmVzIG5vIGx1Z2FyIGRlIG7Dum1lcm9zIG5vcyAqc3RlcHMqIGF0cmF2w6lzIGRhXG4gKiBwcm9wcmllZGFkZSBbYHAtc3RlcC1pY29uc2BdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXBwZXIjc3RlcEljb25zUHJvcGVydHkpLlxuICpcbiAqICMjIyMgVXRpbGl6YW5kbyBvcyBtw6l0b2RvcyBkbyBjb21wb25lbnRlOlxuICpcbiAqIFBhcmEgYWNlc3NhciBvcyBtw6l0b2RvcyBkbyBjb21wb25lbnRlIMOpIG5lY2Vzc8OhcmlvIHRlciBhIHJlZmVyw6puY2lhIGRvIG1lc21vLlxuICpcbiAqIFBvciBleGVtcGxvLCB1dGlsaXphbmRvIHVtIFsqKlZpZXdDaGlsZCoqXShodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvVmlld0NoaWxkKTpcbiAqXG4gKiBgYGBcbiAqIEBWaWV3Q2hpbGQoUG9TdGVwcGVyQ29tcG9uZW50KSBwb1N0ZXBwZXJDb21wb25lbnQ6IFBvU3RlcHBlckNvbXBvbmVudDtcbiAqIGBgYFxuICpcbiAqIEUgcGFyYSBhY2Vzc2FyIG8gbcOpdG9kbzpcbiAqXG4gKiBgYGBcbiAqIHBvU3RlcHBlckNvbXBvbmVudC5uZXh0KCk7XG4gKiBgYGBcbiAqXG4gKiAjIyMjIEJvYXMgcHLDoXRpY2FzXG4gKlxuICogLSBFdml0ZSBgbGFiZWxzYCBleHRlbnNvcyBxdWUgcXVlYnJhbSBvIGxheW91dCBkbyBgcG8tc3RlcHBlcmAsIHVzZSBgbGFiZWxzYCBkaXJldG9zLCBjdXJ0b3MgZSBpbnR1aXRpdm9zLlxuICogLSBVdGlsaXplIGFwZW5hcyB1bSBgcG8tc3RlcHBlcmAgcG9yIHDDoWdpbmEuXG4gKlxuICogIyMjIyBUb2tlbnMgY3VzdG9taXrDoXZlaXNcbiAqXG4gKiDDiSBwb3Nzw612ZWwgYWx0ZXJhciBvIGVzdGlsbyBkbyBjb21wb25lbnRlIHVzYW5kbyBvcyBzZWd1aW50ZXMgdG9rZW5zIChDU1MpOlxuICpcbiAqID4gUGFyYSBtYWlvcmVzIGluZm9ybWHDp8O1ZXMsIGFjZXNzZSBvIGd1aWEgW1BlcnNvbmFsaXphbmRvIG8gVGVtYSBQYWRyw6NvIGNvbSBUb2tlbnMgQ1NTXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy90aGVtZS1jdXN0b21pemF0aW9uKS5cbiAqXG4gKiB8IFByb3ByaWVkYWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmnDp8OjbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmFsb3IgUGFkcsOjbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipMYWJlbCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWZvbnQtZmFtaWx5YCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBGYW3DrWxpYSB0aXBvZ3LDoWZpY2EgdXNhZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtZmFtaWx5LXRoZW1lKWAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWZvbnQtc2l6ZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUYW1hbmhvIGRhIGZvbnRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXNpemUtZGVmYXVsdClgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXdlaWdodGAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVzbyBkYSBmb250ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tZm9udC13ZWlnaHQtbm9ybWFsKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipTdGVwIC0gRG9uZSoqICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLXRleHQtY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZG8gdGV4dG8gbm8gc3RlcCBjb25jbHXDrWRvICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1kYXJrLTcwKWAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItaWNvbi1kb25lYCAgICAgICAgICAgICAgICAgICAgICB8IENvciBkbyDDrWNvbmUgbm8gc3RlcCBjb25jbHXDrWRvICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1kYXJrLTcwKWAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1kb25lYCAgICAgICAgICAgICAgICAgICAgICB8IENvciBkZSBmdW5kbyBubyBzdGVwIGNvbmNsdcOtZG8gICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTAwKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkxpbmUgLSBEb25lKiogICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItbGluZS1kb25lYCAgICAgICAgICAgICAgICAgICAgICB8IENvciBkYSBsaW5oYSBubyBzdGVwIGNvbmNsdcOtZG8gICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLW1pZC00MClgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKlN0ZXAgLSBDdXJyZW50KiogICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItaWNvbi1jdXJyZW50YCAgICAgICAgICAgICAgICAgICB8IENvciBkbyDDrWNvbmUgbm8gc3RlcCBhdHVhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTAwKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kLWN1cnJlbnRgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRlIGZ1bmRvIG5vIHN0ZXAgYXR1YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWRlZmF1bHQpYCAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHQtY3VycmVudGAgICAgICAgICAgICAgICAgICB8IFBlc28gZGEgZm9udGUgbm8gc3RlcCBhdHVhbCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpYCAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqU3RlcCAtIE5leHQqKiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXNpemUtY2lyY2xlYCAgICAgICAgICAgICAgICAgICAgIHwgVGFtYW5obyBkYSBmb250ZSBubyBjw61yY3VsbyBkbyBwcsOzeGltbyBzdGVwICAgICAgICAgICB8IGB2YXIoLS1mb250LXNpemUtc20pYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvci1uZXh0YCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRvIMOtY29uZSBubyBwcsOzeGltbyBzdGVwICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZGlzYWJsZWQpYCAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS10ZXh0LWNvbG9yLW5leHRgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRvIHRleHRvIG5vIHByw7N4aW1vIHN0ZXAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMzApYCAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqRm9jdXNlZCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1vdXRsaW5lLWNvbG9yLWZvY3VzZWRgICAgICAgICAgICAgICAgIHwgQ29yIGRvIG91dGxpbmUgZG8gZXN0YWRvIGRlIGZvY3VzICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWZvY3VzKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUG9TdGVwcGVyQmFzZUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIDxhIGlkPVwic3RlcEljb25zUHJvcGVydHlcIj48L2E+XG4gICAqXG4gICAqIEhhYmlsaXRhIGEgZXhpYmnDp8OjbyBkZSDDrWNvbmUgYW8gaW52w6lzIGRlIG7Dum1lcm8gbm8gY2VudHJvIGRvIGPDrXJjdWxvIGRvcyAqc3RlcHMqLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atc3RlcC1pY29ucycpIHN0ZXBJY29uczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgbyB0YW1hbmhvIGRvcyAqc3RlcHMqIGVtICpwaXhlbHMqLCBwb3NzaWJpbGl0YW5kbyB1bSBtYWlvciBkZXN0YXF1ZS5cbiAgICpcbiAgICogTyB2YWxvciBpbmZvcm1hZG8gZGV2ZSBzZXIgZW50cmUgYDI0YCBlIGA2NGAuXG4gICAqXG4gICAqID4gVmFsb3JlcyBxdWUgbsOjbyBzZSBlbnF1YWRyYXJlbSBhIGVzdGEgcmVncmEgc2Vyw6NvIGlnbm9yYWRvcywgbWFudGVuZG8tc2UgbyB2YWxvciAqZGVmYXVsdCouXG4gICAqXG4gICAqIEBkZWZhdWx0IGAyNGBcbiAgICovXG4gIEBJbnB1dCgncC1zdGVwLXNpemUnKSBzdGVwU2l6ZTogbnVtYmVyO1xuXG4gIC8qKiBBw6fDo28gcXVlIHNlcsOhIGV4ZWN1dGFkYSBxdWFuZG8gbyB1c3XDoXJpbyBtdWRhciBvIHBhc3NvIGRvIGBwby1zdGVwcGVyYC4gKi9cbiAgQE91dHB1dCgncC1jaGFuZ2Utc3RlcCcpIG9uQ2hhbmdlU3RlcCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgUG9TdGVwQ29tcG9uZW50PigpO1xuXG4gIHByaXZhdGUgX2FsaWduQ2VudGVyPzogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgX29yaWVudGF0aW9uPzogUG9TdGVwcGVyT3JpZW50YXRpb24gPSBwb1N0ZXBwZXJPcmllbnRhdGlvbkRlZmF1bHQ7XG4gIHByaXZhdGUgX3NlcXVlbnRpYWw/OiBib29sZWFuID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfc3RlcDogbnVtYmVyID0gMTtcbiAgcHJpdmF0ZSBfc3RlcHM6IEFycmF5PFBvU3RlcHBlckl0ZW0+ID0gW107XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIG8gYWxpbmhhbWVudG8gZG9zICpzdGVwcyogZSAqbGFiZWxzKiBubyAqc3RlcHBlciosIGRlcGVuZGVuZG8gZGEgb3JpZW50YcOnw6NvLlxuICAgKlxuICAgKiAtIFF1YW5kbyBgdHJ1ZWAsIGZpY2FtIGNlbnRyYWxpemFkb3MgZW0gYW1iYXMgYXMgb3JpZW50YcOnw7VlcyAoaG9yaXpvbnRhbCBlIHZlcnRpY2FsKS5cbiAgICogLSBRdWFuZG8gYGZhbHNlYCwgZmljYW0gYWxpbmhhZG9zIMOgIGVzcXVlcmRhIG5hIG9yaWVudGHDp8OjbyBob3Jpem9udGFsIGUgYW8gdG9wbyBuYSBvcmllbnRhw6fDo28gdmVydGljYWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cblxuICBASW5wdXQoJ3AtYWxpZ24tY2VudGVyJykgc2V0IGFsaWduQ2VudGVyKGFsaWduQ2VudGVyOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYWxpZ25DZW50ZXIgPSBjb252ZXJ0VG9Cb29sZWFuKGFsaWduQ2VudGVyKTtcbiAgfVxuXG4gIGdldCBhbGlnbkNlbnRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYWxpZ25DZW50ZXI7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgYSBvcmllbnRhw6fDo28gZGUgZXhpYmnDp8OjbyBkbyBgcG8tc3RlcHBlcmAuXG4gICAqXG4gICAqID4gVmVqYSBvcyB2YWxvcmVzIHbDoWxpZG9zIG5vICplbnVtKiBbUG9TdGVwcGVyT3JpZW50YXRpb25dKGRvY3VtZW50YXRpb24vcG8tc3RlcHBlciNzdGVwcGVyT3JpZW50YXRpb24pLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgUG9TdGVwcGVyT3JpZW50YXRpb24uSG9yaXpvbnRhbGBcbiAgICovXG4gIEBJbnB1dCgncC1vcmllbnRhdGlvbicpIHNldCBvcmllbnRhdGlvbih2YWx1ZTogUG9TdGVwcGVyT3JpZW50YXRpb24pIHtcbiAgICB0aGlzLl9vcmllbnRhdGlvbiA9ICg8YW55Pk9iamVjdCkudmFsdWVzKFBvU3RlcHBlck9yaWVudGF0aW9uKS5pbmNsdWRlcyh2YWx1ZSlcbiAgICAgID8gdmFsdWVcbiAgICAgIDogcG9TdGVwcGVyT3JpZW50YXRpb25EZWZhdWx0O1xuICB9XG5cbiAgZ2V0IG9yaWVudGF0aW9uKCk6IFBvU3RlcHBlck9yaWVudGF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fb3JpZW50YXRpb247XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBDb250cm9sYSBvIHBhc3NvIGF0dWFsIGRvIGBwby1zdGVwcGVyYC5cbiAgICpcbiAgICogPiBBbyB1dGlsaXphciBlc3RhIHByb3ByaWVkYWRlIGUgdGFtYsOpbSB1dGlsaXphciBvIGNvbXBvbmVudGUgWyoqcG8tc3RlcCoqXSgvZG9jdW1lbnRhdGlvbi9wby1zdGVwKSxcbiAgICogbyB2YWxvciBkZXN0YSBwcm9wcmllZGFkZSBzZXLDoSBpZ25vcmFkYSBwZXJtYW5lY2VuZG8gYSBkZWZpbmnDp8OjbyBkbyBbKipwby1zdGVwKipdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXApLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMWBcbiAgICovXG4gIEBJbnB1dCgncC1zdGVwJykgc2V0IHN0ZXAoc3RlcDogbnVtYmVyKSB7XG4gICAgaWYgKHN0ZXAgPj0gMSAmJiBzdGVwIDw9IHRoaXMuc3RlcHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9zdGVwID0gc3RlcDtcbiAgICAgIHRoaXMuX3N0ZXBzW3RoaXMuX3N0ZXAgLSAxXS5zdGF0dXMgPSBQb1N0ZXBwZXJTdGF0dXMuQWN0aXZlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXA7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBMaXN0YSBkb3MgaXRlbnMgZG8gc3RlcHBlci4gU2UgbyB2YWxvciBlc3RpdmVyIGluZGVmaW5pZG8gb3UgaW52w6FsaWRvLCBzZXLDoSBpbmljaWFsaXphZG8gY29tbyB1bSBhcnJheSB2YXppby5cbiAgICpcbiAgICogPiBBbyB1dGlsaXphciBlc3RhIHByb3ByaWVkYWRlIGUgdGFtYsOpbSB1dGlsaXphciBvIGNvbXBvbmVudGUgWyoqcG8tc3RlcCoqXSgvZG9jdW1lbnRhdGlvbi9wby1zdGVwKSxcbiAgICogbyB2YWxvciBkZXN0YSBwcm9wcmllZGFkZSBzZXLDoSBpZ25vcmFkYSBwZXJtYW5lY2VuZG8gYSBkZWZpbmnDp8OjbyBkbyBbKipwby1zdGVwKipdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXApLlxuICAgKi9cbiAgQElucHV0KCdwLXN0ZXBzJykgc2V0IHN0ZXBzKHN0ZXBzOiBBcnJheTxQb1N0ZXBwZXJJdGVtPikge1xuICAgIHRoaXMuX3N0ZXBzID0gQXJyYXkuaXNBcnJheShzdGVwcykgPyBzdGVwcyA6IFtdO1xuICAgIHRoaXMuX3N0ZXBzLmZvckVhY2goc3RlcCA9PiAoc3RlcC5zdGF0dXMgPSBzdGVwLnN0YXR1cyA/PyBQb1N0ZXBwZXJTdGF0dXMuRGVmYXVsdCkpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVN0ZXBzKCk7XG4gIH1cblxuICBnZXQgc3RlcHMoKTogQXJyYXk8UG9TdGVwcGVySXRlbT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGVwcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBzZSBvIGBwby1zdGVwcGVyYCBzZXLDoSBzZXF1ZW5jaWFsIG91IGFsZWF0w7NyaW8uXG4gICAqXG4gICAqID4gQW8gdXRpbGl6YXIgbyBjb21wb25lbnRlIFsqKnBvLXN0ZXAqKl0oL2RvY3VtZW50YXRpb24vcG8tc3RlcCksIG8gdmFsb3IgZGVzdGEgcHJvcHJpZWRhZGUgc2VtcHJlIHNlcsOhIHZlcmRhZGVpcm8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgQElucHV0KCdwLXNlcXVlbnRpYWwnKSBzZXQgc2VxdWVudGlhbChzZXF1ZW50aWFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2VxdWVudGlhbCA9IGNvbnZlcnRUb0Jvb2xlYW4oc2VxdWVudGlhbCk7XG4gIH1cblxuICBnZXQgc2VxdWVudGlhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2VxdWVudGlhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFBlcm1pdGUgZGVmaW5pciBvIMOtY29uZSBkbyBzdGVwIG5vIHN0YXR1cyBjb25jbHXDrWRvLlxuICAgKiBFc3RhIHByb3ByaWVkYWRlIHBlcm1pdGUgdXNhciDDrWNvbmVzIGRhIFtCaWJsaW90ZWNhIGRlIMOtY29uZXNdKC9ndWlkZXMvaWNvbnMpIG91IGRhIGJpYmxpb3RlY2EgW1Bob3NwaG9yXShodHRwczovL3Bob3NwaG9yaWNvbnMuY29tLykuXG4gICAqXG4gICAqIEV4ZW1wbG8gdXNhbmRvIGEgYmlibGlvdGVjYSBkZSDDrWNvbmVzIHBhZHLDo286XG4gICAqIGBgYFxuICAgKiA8cG8tc3RlcHBlciBwLXN0ZXAtaWNvbi1kb25lPVwicG8taWNvbiBwby1pY29uLWV5ZVwiPlxuICAgKiAgICAuLi5cbiAgICogPC9wby1zdGVwcGVyPlxuICAgKiBgYGBcbiAgICogRXhlbXBsbyB1c2FuZG8gYSBiaWJsaW90ZWNhICpQaG9zcGhvcio6XG4gICAqIGBgYFxuICAgKiA8cG8tc3RlcHBlciBwLXN0ZXAtaWNvbi1kb25lPVwicGggcGgtY2hlY2stY2lyY2xlXCI+XG4gICAqICAgIC4uLlxuICAgKiA8L3BvLXN0ZXBwZXI+XG4gICAqIGBgYFxuICAgKiBPdXRyYSBvcMOnw6NvIHNlcmlhIGEgY3VzdG9taXphw6fDo28gZG8gw61jb25lIGF0cmF2w6lzIGRvIGBUZW1wbGF0ZVJlZmAsIGNvbmZvcm1lIGV4ZW1wbG8gYWJhaXhvOlxuICAgKiBgYGBcbiAgICogPHBvLXN0ZXBwZXIgW3Atc3RlcC1pY29uLWRvbmVdPVwiZG9uZUljb25cIj5cbiAgICogICAgLi4uXG4gICAqIDwvcG8tc3RlcHBlcj5cbiAgICpcbiAgICogPG5nLXRlbXBsYXRlICNkb25lSWNvbj5cbiAgICogICAgPGkgY2xhc3M9XCJwaCBwaC1jaGVjay1mYXRcIj48L2k+XG4gICAqIDwvbmctdGVtcGxhdGU+XG4gICAqIGBgYFxuICAgKiA+IERldmUtc2UgdXNhciBgZm9udC1zaXplOiBpbmhlcml0YCBwYXJhIGFqdXN0YXIgw61jb25lcyBxdWUgbsOjbyBzZSBhanVzdGFtIGF1dG9tYXRpY2FtZW50ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHBvLWljb24tb2tgXG4gICAqL1xuICBASW5wdXQoJ3Atc3RlcC1pY29uLWRvbmUnKSBpY29uRG9uZT86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFBlcm1pdGUgZGVmaW5pciBvIMOtY29uZSBkbyBzdGVwIG5vIHN0YXR1cyBhdGl2by5cbiAgICogRXN0YSBwcm9wcmllZGFkZSBwZXJtaXRlIHVzYXIgw61jb25lcyBkYSBbQmlibGlvdGVjYSBkZSDDrWNvbmVzXSgvZ3VpZGVzL2ljb25zKSBvdSBkYSBiaWJsaW90ZWNhIFtQaG9zcGhvcl0oaHR0cHM6Ly9waG9zcGhvcmljb25zLmNvbS8pLlxuICAgKlxuICAgKiBFeGVtcGxvIHVzYW5kbyBhIGJpYmxpb3RlY2EgZGUgw61jb25lcyBwYWRyw6NvOlxuICAgKiBgYGBcbiAgICogPHBvLXN0ZXBwZXIgcC1zdGVwLWljb24tYWN0aXZlPVwicG8taWNvbiBwby1pY29uLXNldHRpbmdzXCI+XG4gICAqICAgIC4uLlxuICAgKiA8L3BvLXN0ZXBwZXI+XG4gICAqIGBgYFxuICAgKiBFeGVtcGxvIHVzYW5kbyBhIGJpYmxpb3RlY2EgKlBob3NwaG9yKjpcbiAgICogYGBgXG4gICAqIDxwby1zdGVwcGVyIHAtc3RlcC1pY29uLWFjdGl2ZT1cInBoIHBoLXBlbmNpbC1zaW1wbGUtbGluZVwiPlxuICAgKiAgICAuLi5cbiAgICogPC9wby1zdGVwcGVyPlxuICAgKiBgYGBcbiAgICogUGFyYSBjdXN0b21pemFyIG8gw61jb25lIGF0cmF2w6lzIGRvIGBUZW1wbGF0ZVJlZmAsIHZlamEgYSBkb2N1bWVudGHDp8OjbyBkYSBwcm9wcmllZGFkZSBgcC1zdGVwLWljb24tZG9uZWAuXG4gICAqXG4gICAqID4gRGV2ZS1zZSB1c2FyIGBmb250LXNpemU6IGluaGVyaXRgIHBhcmEgYWp1c3RhciDDrWNvbmVzIHF1ZSBuw6NvIHNlIGFqdXN0YW0gYXV0b21hdGljYW1lbnRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgcG8taWNvbi1lZGl0YFxuICAgKi9cbiAgQElucHV0KCdwLXN0ZXAtaWNvbi1hY3RpdmUnKSBpY29uQWN0aXZlPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplU3RlcHMoKTogdm9pZCB7XG4gICAgY29uc3QgaGFzU3RhdHVzID0gdGhpcy5fc3RlcHMuc29tZShzdGVwID0+IHN0ZXAuc3RhdHVzICE9PSBQb1N0ZXBwZXJTdGF0dXMuRGVmYXVsdCk7XG5cbiAgICBpZiAoIWhhc1N0YXR1cyAmJiB0aGlzLnN0ZXAgPT09IDEpIHtcbiAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc3RlcHBlci1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1zdGVwcGVyL3BvLXN0ZXBwZXItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRWpFLE1BQU0sMkJBQTJCLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxDQUFDO0FBRXBFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDOzs7Ozs7Ozs7O09BVUc7SUFDb0IsU0FBUyxDQUFVO0lBRTFDOzs7Ozs7Ozs7Ozs7T0FZRztJQUNtQixRQUFRLENBQVM7SUFFdkMsOEVBQThFO0lBQ3JELFlBQVksR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztJQUU3RSxZQUFZLEdBQWEsSUFBSSxDQUFDO0lBQzlCLFlBQVksR0FBMEIsMkJBQTJCLENBQUM7SUFDbEUsV0FBVyxHQUFhLElBQUksQ0FBQztJQUM3QixLQUFLLEdBQVcsQ0FBQyxDQUFDO0lBQ2xCLE1BQU0sR0FBeUIsRUFBRSxDQUFDO0lBRTFDOzs7Ozs7Ozs7OztPQVdHO0lBRUgsSUFBNkIsV0FBVyxDQUFDLFdBQW9CO1FBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENB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LEtBQUs7a0JBQTFCLEtBQUs7bUJBQUMsU0FBUztZQXFCVyxVQUFVO2tCQUFwQyxLQUFLO21CQUFDLGNBQWM7WUF5Q00sUUFBUTtrQkFBbEMsS0FBSzttQkFBQyxrQkFBa0I7WUEyQkksVUFBVTtrQkFBdEMsS0FBSzttQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQgeyBQb1N0ZXBDb21wb25lbnQgfSBmcm9tICcuL3BvLXN0ZXAvcG8tc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9TdGVwcGVySXRlbSB9IGZyb20gJy4vcG8tc3RlcHBlci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1N0ZXBwZXJPcmllbnRhdGlvbiB9IGZyb20gJy4vZW51bXMvcG8tc3RlcHBlci1vcmllbnRhdGlvbi5lbnVtJztcbmltcG9ydCB7IFBvU3RlcHBlclN0YXR1cyB9IGZyb20gJy4vZW51bXMvcG8tc3RlcHBlci1zdGF0dXMuZW51bSc7XG5cbmNvbnN0IHBvU3RlcHBlck9yaWVudGF0aW9uRGVmYXVsdCA9IFBvU3RlcHBlck9yaWVudGF0aW9uLkhvcml6b250YWw7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBgcG8tc3RlcHBlcmAgcGVybWl0ZSBxdWUgdW0gcHJvY2Vzc28gc2VqYSBkaXZpZGlkbyBlbSBwYXNzb3MgcGFyYSBxdWUgbyB1c3XDoXJpbyBvIHJlYWxpemVcbiAqIG1haXMgZmFjaWxtZW50ZS5cbiAqXG4gKiBFeGlzdGVtIGR1YXMgZm9ybWFzIGRlIHV0aWxpemHDp8OjbzpcbiAqXG4gKiAxIC0gVXNhbmRvIG8gY29tcG9uZW50ZSBbKipwby1zdGVwKipdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXApIHBhcmEgcmVuZGVyaXphciBlIGRlc2NyZXZlciBvcyBwYXNzb3MuXG4gKlxuICogMiAtIEF0cmF2w6lzIGRhIHByb3ByaWVkYWRlIGBwLXN0ZXBzYCBwYXJhIGRlc2NyZXZlciBvcyBwYXNzb3MgZG8gcHJvY2Vzc28sIHNlbmRvIHJlc3BvbnNhYmlsaWRhZGUgZG8gZGVzZW52b2x2ZWRvciBvIGNvbnRyb2xlXG4gKiBkZSByZW5kZXJpemHDp8OjbyBkbyBxdWUgc2Vyw6EgZXhpYmlkbyBhIGNhZGEgKnN0ZXAqIGF0aXZvLlxuICpcbiAqIEF0cmF2w6lzIGRlIHN1YXMgcHJvcHJpZWRhZGVzLCDDqSBwb3Nzw612ZWwgZGVmaW5pciBzZSBzdWEgb3JpZW50YcOnw6NvIHNlcsOhIGhvcml6b250YWwgb3UgdmVydGljYWwsXG4gKiBhbMOpbSBkYSBwb3NzaWJpbGlkYWRlIGRlIGF1bWVudGFyIG8gdGFtYW5obyBkb3MgKnN0ZXBzKi5cbiAqXG4gKiBUYW1iw6ltIMOpIHBvc3PDrXZlbCBuYXZlZ2FyIGVudHJlIG9zICpzdGVwcyogYXRyYXbDqXMgZG8gdGVjbGFkbyB1dGlsaXphbmRvIGEgdGVjbGEgKnRhYiogZSwgcGFyYSBhdGl2YXIgbyAqc3RlcCogZW0gZm9jbyBiYXN0YVxuICogcHJlc3Npb25hciBhIHRlY2xhICplbnRlciouIEFsw6ltIGRpc3NvLCDDqSBwb3Nzw612ZWwgYXRpdmFyIGEgZXhpYmnDp8OjbyBkZSDDrWNvbmVzIG5vIGx1Z2FyIGRlIG7Dum1lcm9zIG5vcyAqc3RlcHMqIGF0cmF2w6lzIGRhXG4gKiBwcm9wcmllZGFkZSBbYHAtc3RlcC1pY29uc2BdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXBwZXIjc3RlcEljb25zUHJvcGVydHkpLlxuICpcbiAqICMjIyMgVXRpbGl6YW5kbyBvcyBtw6l0b2RvcyBkbyBjb21wb25lbnRlOlxuICpcbiAqIFBhcmEgYWNlc3NhciBvcyBtw6l0b2RvcyBkbyBjb21wb25lbnRlIMOpIG5lY2Vzc8OhcmlvIHRlciBhIHJlZmVyw6puY2lhIGRvIG1lc21vLlxuICpcbiAqIFBvciBleGVtcGxvLCB1dGlsaXphbmRvIHVtIFsqKlZpZXdDaGlsZCoqXShodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvVmlld0NoaWxkKTpcbiAqXG4gKiBgYGBcbiAqIEBWaWV3Q2hpbGQoUG9TdGVwcGVyQ29tcG9uZW50KSBwb1N0ZXBwZXJDb21wb25lbnQ6IFBvU3RlcHBlckNvbXBvbmVudDtcbiAqIGBgYFxuICpcbiAqIEUgcGFyYSBhY2Vzc2FyIG8gbcOpdG9kbzpcbiAqXG4gKiBgYGBcbiAqIHBvU3RlcHBlckNvbXBvbmVudC5uZXh0KCk7XG4gKiBgYGBcbiAqXG4gKiAjIyMjIEJvYXMgcHLDoXRpY2FzXG4gKlxuICogLSBFdml0ZSBgbGFiZWxzYCBleHRlbnNvcyBxdWUgcXVlYnJhbSBvIGxheW91dCBkbyBgcG8tc3RlcHBlcmAsIHVzZSBgbGFiZWxzYCBkaXJldG9zLCBjdXJ0b3MgZSBpbnR1aXRpdm9zLlxuICogLSBVdGlsaXplIGFwZW5hcyB1bSBgcG8tc3RlcHBlcmAgcG9yIHDDoWdpbmEuXG4gKlxuICogIyMjIyBUb2tlbnMgY3VzdG9taXrDoXZlaXNcbiAqXG4gKiDDiSBwb3Nzw612ZWwgYWx0ZXJhciBvIGVzdGlsbyBkbyBjb21wb25lbnRlIHVzYW5kbyBvcyBzZWd1aW50ZXMgdG9rZW5zIChDU1MpOlxuICpcbiAqID4gUGFyYSBtYWlvcmVzIGluZm9ybWHDp8O1ZXMsIGFjZXNzZSBvIGd1aWEgW1BlcnNvbmFsaXphbmRvIG8gVGVtYSBQYWRyw6NvIGNvbSBUb2tlbnMgQ1NTXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy90aGVtZS1jdXN0b21pemF0aW9uKS5cbiAqXG4gKiB8IFByb3ByaWVkYWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmnDp8OjbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmFsb3IgUGFkcsOjbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipMYWJlbCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWZvbnQtZmFtaWx5YCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBGYW3DrWxpYSB0aXBvZ3LDoWZpY2EgdXNhZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtZmFtaWx5LXRoZW1lKWAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWZvbnQtc2l6ZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUYW1hbmhvIGRhIGZvbnRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXNpemUtZGVmYXVsdClgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXdlaWdodGAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVzbyBkYSBmb250ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tZm9udC13ZWlnaHQtbm9ybWFsKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipTdGVwIC0gRG9uZSoqICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLXRleHQtY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZG8gdGV4dG8gbm8gc3RlcCBjb25jbHXDrWRvICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1kYXJrLTcwKWAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItaWNvbi1kb25lYCAgICAgICAgICAgICAgICAgICAgICB8IENvciBkbyDDrWNvbmUgbm8gc3RlcCBjb25jbHXDrWRvICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1kYXJrLTcwKWAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1kb25lYCAgICAgICAgICAgICAgICAgICAgICB8IENvciBkZSBmdW5kbyBubyBzdGVwIGNvbmNsdcOtZG8gICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTAwKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkxpbmUgLSBEb25lKiogICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItbGluZS1kb25lYCAgICAgICAgICAgICAgICAgICAgICB8IENvciBkYSBsaW5oYSBubyBzdGVwIGNvbmNsdcOtZG8gICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLW1pZC00MClgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKlN0ZXAgLSBDdXJyZW50KiogICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItaWNvbi1jdXJyZW50YCAgICAgICAgICAgICAgICAgICB8IENvciBkbyDDrWNvbmUgbm8gc3RlcCBhdHVhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTAwKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kLWN1cnJlbnRgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRlIGZ1bmRvIG5vIHN0ZXAgYXR1YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWRlZmF1bHQpYCAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHQtY3VycmVudGAgICAgICAgICAgICAgICAgICB8IFBlc28gZGEgZm9udGUgbm8gc3RlcCBhdHVhbCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpYCAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqU3RlcCAtIE5leHQqKiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXNpemUtY2lyY2xlYCAgICAgICAgICAgICAgICAgICAgIHwgVGFtYW5obyBkYSBmb250ZSBubyBjw61yY3VsbyBkbyBwcsOzeGltbyBzdGVwICAgICAgICAgICB8IGB2YXIoLS1mb250LXNpemUtc20pYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvci1uZXh0YCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRvIMOtY29uZSBubyBwcsOzeGltbyBzdGVwICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZGlzYWJsZWQpYCAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS10ZXh0LWNvbG9yLW5leHRgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRvIHRleHRvIG5vIHByw7N4aW1vIHN0ZXAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMzApYCAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqRm9jdXNlZCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1vdXRsaW5lLWNvbG9yLWZvY3VzZWRgICAgICAgICAgICAgICAgIHwgQ29yIGRvIG91dGxpbmUgZG8gZXN0YWRvIGRlIGZvY3VzICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWZvY3VzKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUG9TdGVwcGVyQmFzZUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIDxhIGlkPVwic3RlcEljb25zUHJvcGVydHlcIj48L2E+XG4gICAqXG4gICAqIEhhYmlsaXRhIGEgZXhpYmnDp8OjbyBkZSDDrWNvbmUgYW8gaW52w6lzIGRlIG7Dum1lcm8gbm8gY2VudHJvIGRvIGPDrXJjdWxvIGRvcyAqc3RlcHMqLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atc3RlcC1pY29ucycpIHN0ZXBJY29uczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgbyB0YW1hbmhvIGRvcyAqc3RlcHMqIGVtICpwaXhlbHMqLCBwb3NzaWJpbGl0YW5kbyB1bSBtYWlvciBkZXN0YXF1ZS5cbiAgICpcbiAgICogTyB2YWxvciBpbmZvcm1hZG8gZGV2ZSBzZXIgZW50cmUgYDI0YCBlIGA2NGAuXG4gICAqXG4gICAqID4gVmFsb3JlcyBxdWUgbsOjbyBzZSBlbnF1YWRyYXJlbSBhIGVzdGEgcmVncmEgc2Vyw6NvIGlnbm9yYWRvcywgbWFudGVuZG8tc2UgbyB2YWxvciAqZGVmYXVsdCouXG4gICAqXG4gICAqIEBkZWZhdWx0IGAyNGBcbiAgICovXG4gIEBJbnB1dCgncC1zdGVwLXNpemUnKSBzdGVwU2l6ZTogbnVtYmVyO1xuXG4gIC8qKiBBw6fDo28gcXVlIHNlcsOhIGV4ZWN1dGFkYSBxdWFuZG8gbyB1c3XDoXJpbyBtdWRhciBvIHBhc3NvIGRvIGBwby1zdGVwcGVyYC4gKi9cbiAgQE91dHB1dCgncC1jaGFuZ2Utc3RlcCcpIG9uQ2hhbmdlU3RlcCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgUG9TdGVwQ29tcG9uZW50PigpO1xuXG4gIHByaXZhdGUgX2FsaWduQ2VudGVyPzogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgX29yaWVudGF0aW9uPzogUG9TdGVwcGVyT3JpZW50YXRpb24gPSBwb1N0ZXBwZXJPcmllbnRhdGlvbkRlZmF1bHQ7XG4gIHByaXZhdGUgX3NlcXVlbnRpYWw/OiBib29sZWFuID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfc3RlcDogbnVtYmVyID0gMTtcbiAgcHJpdmF0ZSBfc3RlcHM6IEFycmF5PFBvU3RlcHBlckl0ZW0+ID0gW107XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIG8gYWxpbmhhbWVudG8gZG9zICpzdGVwcyogZSAqbGFiZWxzKiBubyAqc3RlcHBlciosIGRlcGVuZGVuZG8gZGEgb3JpZW50YcOnw6NvLlxuICAgKlxuICAgKiAtIFF1YW5kbyBgdHJ1ZWAsIGZpY2FtIGNlbnRyYWxpemFkb3MgZW0gYW1iYXMgYXMgb3JpZW50YcOnw7VlcyAoaG9yaXpvbnRhbCBlIHZlcnRpY2FsKS5cbiAgICogLSBRdWFuZG8gYGZhbHNlYCwgZmljYW0gYWxpbmhhZG9zIMOgIGVzcXVlcmRhIG5hIG9yaWVudGHDp8OjbyBob3Jpem9udGFsIGUgYW8gdG9wbyBuYSBvcmllbnRhw6fDo28gdmVydGljYWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cblxuICBASW5wdXQoJ3AtYWxpZ24tY2VudGVyJykgc2V0IGFsaWduQ2VudGVyKGFsaWduQ2VudGVyOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYWxpZ25DZW50ZXIgPSBjb252ZXJ0VG9Cb29sZWFuKGFsaWduQ2VudGVyKTtcbiAgfVxuXG4gIGdldCBhbGlnbkNlbnRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYWxpZ25DZW50ZXI7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgYSBvcmllbnRhw6fDo28gZGUgZXhpYmnDp8OjbyBkbyBgcG8tc3RlcHBlcmAuXG4gICAqXG4gICAqID4gVmVqYSBvcyB2YWxvcmVzIHbDoWxpZG9zIG5vICplbnVtKiBbUG9TdGVwcGVyT3JpZW50YXRpb25dKGRvY3VtZW50YXRpb24vcG8tc3RlcHBlciNzdGVwcGVyT3JpZW50YXRpb24pLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgUG9TdGVwcGVyT3JpZW50YXRpb24uSG9yaXpvbnRhbGBcbiAgICovXG4gIEBJbnB1dCgncC1vcmllbnRhdGlvbicpIHNldCBvcmllbnRhdGlvbih2YWx1ZTogUG9TdGVwcGVyT3JpZW50YXRpb24pIHtcbiAgICB0aGlzLl9vcmllbnRhdGlvbiA9ICg8YW55Pk9iamVjdCkudmFsdWVzKFBvU3RlcHBlck9yaWVudGF0aW9uKS5pbmNsdWRlcyh2YWx1ZSlcbiAgICAgID8gdmFsdWVcbiAgICAgIDogcG9TdGVwcGVyT3JpZW50YXRpb25EZWZhdWx0O1xuICB9XG5cbiAgZ2V0IG9yaWVudGF0aW9uKCk6IFBvU3RlcHBlck9yaWVudGF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fb3JpZW50YXRpb247XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBDb250cm9sYSBvIHBhc3NvIGF0dWFsIGRvIGBwby1zdGVwcGVyYC5cbiAgICpcbiAgICogPiBBbyB1dGlsaXphciBlc3RhIHByb3ByaWVkYWRlIGUgdGFtYsOpbSB1dGlsaXphciBvIGNvbXBvbmVudGUgWyoqcG8tc3RlcCoqXSgvZG9jdW1lbnRhdGlvbi9wby1zdGVwKSxcbiAgICogbyB2YWxvciBkZXN0YSBwcm9wcmllZGFkZSBzZXLDoSBpZ25vcmFkYSBwZXJtYW5lY2VuZG8gYSBkZWZpbmnDp8OjbyBkbyBbKipwby1zdGVwKipdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXApLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMWBcbiAgICovXG4gIEBJbnB1dCgncC1zdGVwJykgc2V0IHN0ZXAoc3RlcDogbnVtYmVyKSB7XG4gICAgaWYgKHN0ZXAgPj0gMSAmJiBzdGVwIDw9IHRoaXMuc3RlcHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9zdGVwID0gc3RlcDtcbiAgICAgIHRoaXMuX3N0ZXBzW3RoaXMuX3N0ZXAgLSAxXS5zdGF0dXMgPSBQb1N0ZXBwZXJTdGF0dXMuQWN0aXZlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXA7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBMaXN0YSBkb3MgaXRlbnMgZG8gc3RlcHBlci4gU2UgbyB2YWxvciBlc3RpdmVyIGluZGVmaW5pZG8gb3UgaW52w6FsaWRvLCBzZXLDoSBpbmljaWFsaXphZG8gY29tbyB1bSBhcnJheSB2YXppby5cbiAgICpcbiAgICogPiBBbyB1dGlsaXphciBlc3RhIHByb3ByaWVkYWRlIGUgdGFtYsOpbSB1dGlsaXphciBvIGNvbXBvbmVudGUgWyoqcG8tc3RlcCoqXSgvZG9jdW1lbnRhdGlvbi9wby1zdGVwKSxcbiAgICogbyB2YWxvciBkZXN0YSBwcm9wcmllZGFkZSBzZXLDoSBpZ25vcmFkYSBwZXJtYW5lY2VuZG8gYSBkZWZpbmnDp8OjbyBkbyBbKipwby1zdGVwKipdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXApLlxuICAgKi9cbiAgQElucHV0KCdwLXN0ZXBzJykgc2V0IHN0ZXBzKHN0ZXBzOiBBcnJheTxQb1N0ZXBwZXJJdGVtPikge1xuICAgIHRoaXMuX3N0ZXBzID0gQXJyYXkuaXNBcnJheShzdGVwcykgPyBzdGVwcyA6IFtdO1xuICAgIHRoaXMuX3N0ZXBzLmZvckVhY2goc3RlcCA9PiAoc3RlcC5zdGF0dXMgPSBzdGVwLnN0YXR1cyA/PyBQb1N0ZXBwZXJTdGF0dXMuRGVmYXVsdCkpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVN0ZXBzKCk7XG4gIH1cblxuICBnZXQgc3RlcHMoKTogQXJyYXk8UG9TdGVwcGVySXRlbT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGVwcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBzZSBvIGBwby1zdGVwcGVyYCBzZXLDoSBzZXF1ZW5jaWFsIG91IGFsZWF0w7NyaW8uXG4gICAqXG4gICAqID4gQW8gdXRpbGl6YXIgbyBjb21wb25lbnRlIFsqKnBvLXN0ZXAqKl0oL2RvY3VtZW50YXRpb24vcG8tc3RlcCksIG8gdmFsb3IgZGVzdGEgcHJvcHJpZWRhZGUgc2VtcHJlIHNlcsOhIHZlcmRhZGVpcm8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgQElucHV0KCdwLXNlcXVlbnRpYWwnKSBzZXQgc2VxdWVudGlhbChzZXF1ZW50aWFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2VxdWVudGlhbCA9IGNvbnZlcnRUb0Jvb2xlYW4oc2VxdWVudGlhbCk7XG4gIH1cblxuICBnZXQgc2VxdWVudGlhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2VxdWVudGlhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFBlcm1pdGUgZGVmaW5pciBvIMOtY29uZSBkbyBzdGVwIG5vIHN0YXR1cyBjb25jbHXDrWRvLlxuICAgKiBFc3RhIHByb3ByaWVkYWRlIHBlcm1pdGUgdXNhciDDrWNvbmVzIGRhIFtCaWJsaW90ZWNhIGRlIMOtY29uZXNdKGh0dHBzOi8vcG8tdWkuaW8vaWNvbnMpIG91IGRhIGJpYmxpb3RlY2EgW1Bob3NwaG9yXShodHRwczovL3Bob3NwaG9yaWNvbnMuY29tLykuXG4gICAqXG4gICAqIEV4ZW1wbG8gdXNhbmRvIGEgYmlibGlvdGVjYSBkZSDDrWNvbmVzIHBhZHLDo286XG4gICAqIGBgYFxuICAgKiA8cG8tc3RlcHBlciBwLXN0ZXAtaWNvbi1kb25lPVwicG8taWNvbiBwby1pY29uLWV5ZVwiPlxuICAgKiAgICAuLi5cbiAgICogPC9wby1zdGVwcGVyPlxuICAgKiBgYGBcbiAgICogRXhlbXBsbyB1c2FuZG8gYSBiaWJsaW90ZWNhICpQaG9zcGhvcio6XG4gICAqIGBgYFxuICAgKiA8cG8tc3RlcHBlciBwLXN0ZXAtaWNvbi1kb25lPVwicGggcGgtY2hlY2stY2lyY2xlXCI+XG4gICAqICAgIC4uLlxuICAgKiA8L3BvLXN0ZXBwZXI+XG4gICAqIGBgYFxuICAgKiBPdXRyYSBvcMOnw6NvIHNlcmlhIGEgY3VzdG9taXphw6fDo28gZG8gw61jb25lIGF0cmF2w6lzIGRvIGBUZW1wbGF0ZVJlZmAsIGNvbmZvcm1lIGV4ZW1wbG8gYWJhaXhvOlxuICAgKiBgYGBcbiAgICogPHBvLXN0ZXBwZXIgW3Atc3RlcC1pY29uLWRvbmVdPVwiZG9uZUljb25cIj5cbiAgICogICAgLi4uXG4gICAqIDwvcG8tc3RlcHBlcj5cbiAgICpcbiAgICogPG5nLXRlbXBsYXRlICNkb25lSWNvbj5cbiAgICogICAgPGkgY2xhc3M9XCJwaCBwaC1jaGVjay1mYXRcIj48L2k+XG4gICAqIDwvbmctdGVtcGxhdGU+XG4gICAqIGBgYFxuICAgKiA+IERldmUtc2UgdXNhciBgZm9udC1zaXplOiBpbmhlcml0YCBwYXJhIGFqdXN0YXIgw61jb25lcyBxdWUgbsOjbyBzZSBhanVzdGFtIGF1dG9tYXRpY2FtZW50ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHBvLWljb24tb2tgXG4gICAqL1xuICBASW5wdXQoJ3Atc3RlcC1pY29uLWRvbmUnKSBpY29uRG9uZT86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFBlcm1pdGUgZGVmaW5pciBvIMOtY29uZSBkbyBzdGVwIG5vIHN0YXR1cyBhdGl2by5cbiAgICogRXN0YSBwcm9wcmllZGFkZSBwZXJtaXRlIHVzYXIgw61jb25lcyBkYSBbQmlibGlvdGVjYSBkZSDDrWNvbmVzXShodHRwczovL3BvLXVpLmlvL2ljb25zKSBvdSBkYSBiaWJsaW90ZWNhIFtQaG9zcGhvcl0oaHR0cHM6Ly9waG9zcGhvcmljb25zLmNvbS8pLlxuICAgKlxuICAgKiBFeGVtcGxvIHVzYW5kbyBhIGJpYmxpb3RlY2EgZGUgw61jb25lcyBwYWRyw6NvOlxuICAgKiBgYGBcbiAgICogPHBvLXN0ZXBwZXIgcC1zdGVwLWljb24tYWN0aXZlPVwicG8taWNvbiBwby1pY29uLXNldHRpbmdzXCI+XG4gICAqICAgIC4uLlxuICAgKiA8L3BvLXN0ZXBwZXI+XG4gICAqIGBgYFxuICAgKiBFeGVtcGxvIHVzYW5kbyBhIGJpYmxpb3RlY2EgKlBob3NwaG9yKjpcbiAgICogYGBgXG4gICAqIDxwby1zdGVwcGVyIHAtc3RlcC1pY29uLWFjdGl2ZT1cInBoIHBoLXBlbmNpbC1zaW1wbGUtbGluZVwiPlxuICAgKiAgICAuLi5cbiAgICogPC9wby1zdGVwcGVyPlxuICAgKiBgYGBcbiAgICogUGFyYSBjdXN0b21pemFyIG8gw61jb25lIGF0cmF2w6lzIGRvIGBUZW1wbGF0ZVJlZmAsIHZlamEgYSBkb2N1bWVudGHDp8OjbyBkYSBwcm9wcmllZGFkZSBgcC1zdGVwLWljb24tZG9uZWAuXG4gICAqXG4gICAqID4gRGV2ZS1zZSB1c2FyIGBmb250LXNpemU6IGluaGVyaXRgIHBhcmEgYWp1c3RhciDDrWNvbmVzIHF1ZSBuw6NvIHNlIGFqdXN0YW0gYXV0b21hdGljYW1lbnRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgcG8taWNvbi1lZGl0YFxuICAgKi9cbiAgQElucHV0KCdwLXN0ZXAtaWNvbi1hY3RpdmUnKSBpY29uQWN0aXZlPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplU3RlcHMoKTogdm9pZCB7XG4gICAgY29uc3QgaGFzU3RhdHVzID0gdGhpcy5fc3RlcHMuc29tZShzdGVwID0+IHN0ZXAuc3RhdHVzICE9PSBQb1N0ZXBwZXJTdGF0dXMuRGVmYXVsdCk7XG5cbiAgICBpZiAoIWhhc1N0YXR1cyAmJiB0aGlzLnN0ZXAgPT09IDEpIHtcbiAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -679,7 +679,7 @@ export class PoTableBaseComponent {
|
|
|
679
679
|
* Define uma lista de ações.
|
|
680
680
|
*
|
|
681
681
|
* Quando houver apenas uma ação definida ela será exibida diretamente na coluna, caso contrário, o componente
|
|
682
|
-
* se encarrega de agrupá-las exibindo o ícone [**ph ph-dots-three**](/
|
|
682
|
+
* se encarrega de agrupá-las exibindo o ícone [**ph ph-dots-three**](https://po-ui.io/icons) que listará as ações ao ser clicado.
|
|
683
683
|
*
|
|
684
684
|
* **A coluna de ações não será exibida quando:**
|
|
685
685
|
* - a lista conter valores inválidos ou indefinidos.
|
|
@@ -1335,4 +1335,4 @@ export class PoTableBaseComponent {
|
|
|
1335
1335
|
type: Input,
|
|
1336
1336
|
args: ['p-virtual-scroll']
|
|
1337
1337
|
}] }); })();
|
|
1338
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tdGFibGUvcG8tdGFibGUtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF3QixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBSTVHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7OztBQVdyRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQUM7QUFDaEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ3BDLEVBQUUsRUFBbUI7UUFDbkIsU0FBUyxFQUFFLHlCQUF5QjtRQUNwQyxNQUFNLEVBQUUsZUFBZTtRQUN2QixNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsYUFBYSxFQUFFLGdCQUFnQjtRQUMvQixlQUFlLEVBQUUsbUJBQW1CO1FBQ3BDLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLFlBQVksRUFBRSxnQkFBZ0I7UUFD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QUFtQjtZQWtCZSxzQkFBc0I7a0JBQTlELEtBQUs7bUJBQUMsNEJBQTRCO1lBa0NQLFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZTtZQXlCUyxnQkFBZ0I7a0JBQTlDLEtBQUs7bUJBQUMsa0JBQWtCO1lBb0JELE9BQU87a0JBQTlCLEtBQUs7bUJBQUMsV0FBVztZQXFCZSxlQUFlO2tCQUEvQyxLQUFLO21CQUFDLG9CQUFvQjtZQWdFRCxTQUFTO2tCQUFsQyxLQUFLO21CQUFDLGFBQWE7WUFvQlcsYUFBYTtrQkFBM0MsS0FBSzttQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQb0RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tZGF0ZS9wby1kYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IGNhcGl0YWxpemVGaXJzdExldHRlciwgY29udmVydFRvQm9vbGVhbiwgaXNUeXBlb2YsIHNvcnRWYWx1ZXMgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9TZWFyY2hGaWx0ZXJNb2RlIH0gZnJvbSAnLi4vcG8tc2VhcmNoL2VudW0vcG8tc2VhcmNoLWZpbHRlci1tb2RlLmVudW0nO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtblNvcnRUeXBlIH0gZnJvbSAnLi9lbnVtcy9wby10YWJsZS1jb2x1bW4tc29ydC10eXBlLmVudW0nO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtblNwYWNpbmcgfSBmcm9tICcuL2VudW1zL3BvLXRhYmxlLXNwYWNpbmcuZW51bSc7XG5pbXBvcnQgeyBQb1RhYmxlQWN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXRhYmxlLWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtblNvcnQgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tdGFibGUtY29sdW1uLXNvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW4gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tdGFibGUtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlRmlsdGVyZWRJdGVtc1BhcmFtcyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby10YWJsZS1maWx0ZXJlZC1pdGVtcy1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGFibGVMaXRlcmFscyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby10YWJsZS1saXRlcmFscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZVJlc3BvbnNlQXBpIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXRhYmxlLXJlc3BvbnNlLWFwaS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLXRhYmxlLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBRdWVyeVBhcmFtc1R5cGUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xuXG5leHBvcnQgY29uc3QgcG9UYWJsZUNvbnRhaW5lciA9IFsnYm9yZGVyJywgJ3NoYWRvdyddO1xuZXhwb3J0IGNvbnN0IHBvVGFibGVDb250YWluZXJEZWZhdWx0ID0gJ2JvcmRlcic7XG5leHBvcnQgY29uc3QgcG9UYWJsZVBhcmFtRGVsZXRlQXBpID0gJ2lkJztcblxuZXhwb3J0IGNvbnN0IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQgPSB7XG4gIGVuOiA8UG9UYWJsZUxpdGVyYWxzPntcbiAgICBub0NvbHVtbnM6ICdDb2x1bW5zIGFyZSBub3QgZGVmaW5lZCcsXG4gICAgbm9EYXRhOiAnTm8gZGF0YSBmb3VuZCcsXG4gICAgbm9JdGVtOiAnTm8gc2VsZWN0ZWQgaXRlbScsXG4gICAgb25lSXRlbTogJzEgc2VsZWN0ZWQgaXRlbScsXG4gICAgbXVsdGlwbGVJdGVtczogJ3NlbGVjdGVkIGl0ZW1zJyxcbiAgICBub1Zpc2libGVDb2x1bW46ICdObyB2aXNpYmxlIGNvbHVtbicsXG4gICAgbG9hZGluZ0RhdGE6ICdMb2FkaW5nJyxcbiAgICBsb2FkTW9yZURhdGE6ICdMb2FkIG1vcmUgZGF0YScsXG4gICAgc2VlQ29tcGxldGVTdWJ0aXRsZTogJ1NlZSBjb21wbGV0ZSBzdWJ0aXRsZScsXG4gICAgY29tcGxldGVTdWJ0aXRsZTogJ0NvbXBsZXRlIHN1YnRpdGxlJyxcbiAgICBjb2x1bW5zTWFuYWdlcjogJ0NvbHVtbnMgbWFuYWdlcicsXG4gICAgYm9keURlbGV0ZTogJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBpdGVtPycsXG4gICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgIGRlbGV0ZVN1Y2Nlc3NmdWw6ICdJdGVtcyByZW1vdmVkIHN1Y2Nlc3NmdWxseScsXG4gICAgZGVsZXRlQXBpRXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyJ1xuICB9LFxuICBlczogPFBvVGFibGVMaXRlcmFscz57XG4gICAgbm9Db2x1bW5zOiAnQ29sdW1uYXMgbm8gZGVmaW5pZGFzJyxcbiAgICBub0RhdGE6ICdEYXRvcyBubyBlbmNvbnRyYWRvcycsXG4gICAgbm9JdGVtOiAnTmluZ8O6biBlbGVtZW50byBzZWxlY2Npb25hZG8nLFxuICAgIG9uZUl0ZW06ICcxIGVsZW1lbnRvIHNlbGVjY2lvbmFkbycsXG4gICAgbXVsdGlwbGVJdGVtczogJ2VsZW1lbnRvcyBzZWxlY2Npb25hZG9zJyxcbiAgICBub1Zpc2libGVDb2x1bW46ICdTaW4gY29sdW1uYXMgdmlzaWJsZXMnLFxuICAgIGxvYWRpbmdEYXRhOiAnQ2FyZ2FuZG8gZGF0b3MnLFxuICAgIGxvYWRNb3JlRGF0YTogJ0NhcmdhciBtw6FzIHJlc3VsdGFkb3MnLFxuICAgIHNlZUNvbXBsZXRlU3VidGl0bGU6ICdWZXIgc3VidGl0dWxvIGNvbXBsZXRvJyxcbiAgICBjb21wbGV0ZVN1YnRpdGxlOiAnU3VidGl0dWxvIGNvbXBsZXRvJyxcbiAgICBjb2x1bW5zTWFuYWdlcjogJ0dlcmVudGUgZGUgY29sdW1uYScsXG4gICAgYm9keURlbGV0ZTogJ8K/UmVhbG1lbnRlIGRlc2VhIGVsaW1pbmFyIGVzdGUgZWxlbWVudG8/JyxcbiAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgZGVsZXRlOiAnQm9ycmFyJyxcbiAgICBkZWxldGVTdWNjZXNzZnVsOiAnRWxlbWVudG9zIGVsaW1pbmFkb3MgY29uIMOpeGl0bycsXG4gICAgZGVsZXRlQXBpRXJyb3I6ICdPY3VycmnDsyB1biBlcnJvciBpbmVzcGVyYWRvLCBpbnTDqW50YWxvIGRlIG51ZXZvIG3DoXMgdGFyZGUnXG4gIH0sXG4gIHB0OiA8UG9UYWJsZUxpdGVyYWxzPntcbiAgICBub0NvbHVtbnM6ICdOZW5odW1hIGRlZmluacOnw6NvIGRlIGNvbHVuYXMnLFxuICAgIG5vRGF0YTogJ05lbmh1bSBkYWRvIGVuY29udHJhZG8nLFxuICAgIG5vVmlzaWJsZUNvbHVtbjogJ05lbmh1bWEgY29sdW5hIHZpc8OtdmVsJyxcbiAgICBub0l0ZW06ICdOZW5odW0gaXRlbSBzZWxlY2lvbmFkbycsXG4gICAgb25lSXRlbTogJzEgaXRlbSBzZWxlY2lvbmFkbycsXG4gICAgbXVsdGlwbGVJdGVtczogJ2l0ZW5zIHNlbGVjaW9uYWRvcycsXG4gICAgbG9hZGluZ0RhdGE6ICdDYXJyZWdhbmRvJyxcbiAgICBsb2FkTW9yZURhdGE6ICdDYXJyZWdhciBtYWlzIHJlc3VsdGFkb3MnLFxuICAgIHNlZUNvbXBsZXRlU3VidGl0bGU6ICdWZXIgbGVnZW5kYSBjb21wbGV0YScsXG4gICAgY29tcGxldGVTdWJ0aXRsZTogJ0xlZ2VuZGEgY29tcGxldGEnLFxuICAgIGNvbHVtbnNNYW5hZ2VyOiAnR2VyZW5jaWFkb3IgZGUgY29sdW5hcycsXG4gICAgYm9keURlbGV0ZTogJ0Rlc2VqYSByZWFsbWVudGUgZXhjbHVpciBlc3NlIGl0ZW0/JyxcbiAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgZGVsZXRlOiAnRXhjbHVpcicsXG4gICAgZGVsZXRlU3VjY2Vzc2Z1bDogJ0l0ZW5zIHJlbW92aWRvcyBjb20gc3VjZXNzbycsXG4gICAgZGVsZXRlQXBpRXJyb3I6ICdPY29ycmV1IHVtIGVycm8gaW5lc3BlcmFkbywgdGVudGUgbm92YW1lbnRlIG1haXMgdGFyZGUhJ1xuICB9LFxuICBydTogPFBvVGFibGVMaXRlcmFscz57XG4gICAgbm9Db2x1bW5zOiAn0J3QtdGCINC+0L/RgNC10LTQtdC70LXQvdC40Y8g0YHRgtC+0LvQsdGG0LAnLFxuICAgIG5vRGF0YTogJ9CU0LDQvdC90YvQtSDQvdC1INC90LDQudC00LXQvdGLJyxcbiAgICBub0l0ZW06ICfQndC10YIg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0Y3Qu9C10LzQtdC90YLQsCcsXG4gICAgb25lSXRlbTogJzEg0Y3Qu9C10LzQtdC90YIg0LLRi9Cx0YDQsNC9JyxcbiAgICBtdWx0aXBsZUl0ZW1zOiAn0LLRi9Cx0YDQsNC90L3Ri9C1INGN0LvQtdC80LXQvdGC0YsnLFxuICAgIG5vVmlzaWJsZUNvbHVtbjogJ9C90LXRgiDQstC40LTQuNC80YvRhSDRgdGC0L7Qu9Cx0YbQvtCyJyxcbiAgICBsb2FkaW5nRGF0YTogJ9CX0LDQs9GA0YPQt9C60LAnLFxuICAgIGxvYWRNb3JlRGF0YTogJ9CX0LDQs9GA0YPQt9C60LAnLFxuICAgIHNlZUNvbXBsZXRlU3VidGl0bGU6ICfQn9C+0YHQvNC+0YLRgNC10YLRjCDQv9C+0LvQvdGL0Lkg0YHRg9Cx0YLQuNGC0YAnLFxuICAgIGNvbXBsZXRlU3VidGl0bGU6ICfQn9C+0LvQvdGL0Lkg0LfQsNCz0L7Qu9C+0LLQvtC6JyxcbiAgICBjb2x1bW5zTWFuYWdlcjogJ9C80LXQvdC10LTQttC10YAg0LrQvtC70L7QvdC+0LonLFxuICAgIGJvZHlEZWxldGU6ICfQktGLINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDRjdGC0L7RgiDRjdC70LXQvNC10L3Rgj8nLFxuICAgIGNhbmNlbDogJ9Ce0YLQvNC10L3QsCcsXG4gICAgZGVsZXRlOiAn0KPQtNCw0LvQuNGC0YwnLFxuICAgIGRlbGV0ZVN1Y2Nlc3NmdWw6ICfQrdC70LXQvNC10L3RgtGLINGD0YHQv9C10YjQvdC+INGD0LTQsNC70LXQvdGLJyxcbiAgICBkZWxldGVBcGlFcnJvcjogJ9Cf0YDQvtC40LfQvtGI0LvQsCDQvdC10L/RgNC10LTQstC40LTQtdC90L3QsNGPINC+0YjQuNCx0LrQsCwg0L/QvtCy0YLQvtGA0LjRgtC1INC/0L7Qv9GL0YLQutGDINC/0L7Qt9C20LUnXG4gIH1cbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogRXN0ZSBjb21wb25lbnRlIGRlIHRhYmVsYSDDqSB1dGlsaXphZG8gcGFyYSBleGliacOnw6NvIGRlIGRhZG9zIGNvbSBkaWZlcmVudGVzIHRpcG9zIGNvbW8gcG9yIGV4ZW1wbG8gdGV4dG9zLCBkYXRhLCBob3JhcyBlIG7Dum1lcm9zIGNvbVxuICogZm9ybWF0byBwZXJzb25hbGl6YWRvLlxuICpcbiAqIFRhbWLDqW0gw6kgcG9zc2l2ZWwgY3JpYXIgdGFiZWxhcyBjb20gb3JkZW5hw6fDo28gZGUgZGFkb3MsIGxpbmhhcyBjb20gZGV0YWxoZXMsIGNvbHVuYSBwYXJhIHNlbGXDp8OjbyBkZSBsaW5oYXMsIGNvbHVuYSBjb20gYcOnw7VlcyBlIHRhbWLDqW1cbiAqIGNhcnJlZ2FtZW50byBwb3IgZGVtYW5kYSBhdHJhdsOpcyBkbyBib3TDo28gKipDYXJyZWdhciBtYWlzIHJlc3VsdGFkb3MqKi5cbiAqXG4gKiA+IEFzIGxpbmhhcyBkZSBkZXRhbGhlcyBwb2RlbSB0YW1iw6ltIHNlciBjdXN0b21pemFkYXMgYXRyYXbDqXMgZG8gW2BwLXRhYmxlLXJvdy10ZW1wbGF0ZWBdKC9kb2N1bWVudGF0aW9uL3BvLXRhYmxlLXJvdy10ZW1wbGF0ZSkuXG4gKlxuICogPiBBcyBjb2x1bmFzIHBvZGVtIHNlciBjdXN0b21pemFkYXMgYXRyYXbDqXMgZG9zIHRlbXBsYXRlcyBbYHAtdGFibGUtY29sdW1uLXRlbXBsYXRlYF0oL2RvY3VtZW50YXRpb24vcG8tdGFibGUtY29sdW1uLXRlbXBsYXRlKVxuICogZSBbYHAtdGFibGUtY2VsbC10ZW1wbGF0ZWBdKC9kb2N1bWVudGF0aW9uL3BvLXRhYmxlLWNlbGwtdGVtcGxhdGUpLlxuICpcbiAqIE8gY29tcG9uZW50ZSBwZXJtaXRlIGdlcmVuY2lhciBhIGV4aWJpw6fDo28gZGFzIGNvbHVuYXMgZGluYW1pY2FtZW50ZS4gRXN0YSBmdW5jaW9uYWxpZGFkZSBwb2RlIHNlciBhY2Vzc2FkYSBhdHJhdsOpcyBkbyDDrWNvbmUgZGUgZW5ncmVuYWdlbVxuICogbm8gY2FudG8gc3VwZXJpb3IgZGlyZWl0byBkbyBjYWJlw6dhbGhvIGRhIHRhYmVsYS5cbiAqXG4gKiBDYXNvIGEgbGFyZ3VyYSBkZSB0b2RhcyBhcyBjb2x1bmFzIGZvcmVtIGRlZmluaWRhcyBlIG8gdG90YWwgdWx0cmFwYXNzYXIgbyB0YW1hbmhvIHRhYmVsYSwgc2Vyw6EgZXhpYmlkbyB1bSAqc2Nyb2xsKiBuYSBob3Jpem9udGFsIHBhcmEgYVxuICogY29tcGxldGEgdmlzdWFsaXphw6fDo28gZG9zIGRhZG9zLlxuICpcbiAqICMjIyMgVG9rZW5zIGN1c3RvbWl6w6F2ZWlzXG4gKlxuICogw4kgcG9zc8OtdmVsIGFsdGVyYXIgbyBlc3RpbG8gZG8gY29tcG9uZW50ZSB1c2FuZG8gb3Mgc2VndWludGVzIHRva2VucyAoQ1NTKTpcbiAqXG4gKiA+IFBhcmEgbWFpb3JlcyBpbmZvcm1hw6fDtWVzLCBhY2Vzc2UgbyBndWlhIFtQZXJzb25hbGl6YW5kbyBvIFRlbWEgUGFkcsOjbyBjb20gVG9rZW5zIENTU10oaHR0cHM6Ly9wby11aS5pby9ndWlkZXMvdGhlbWUtY3VzdG9taXphdGlvbikuXG4gKlxuICogfCBQcm9wcmllZGFkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyacOnw6NvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWYWxvciBQYWRyw6NvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipEZWZhdWx0IFZhbHVlcyoqICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LWZhbWlseWAgICAgICAgICAgICAgICAgICAgICAgICB8IEZhbcOtbGlhIHRpcG9ncsOhZmljYSB1c2FkYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tZm9udC1mYW1pbHktdGhlbWUpYCAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvcmAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGUgYmFja2dyb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTAwKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvcmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBwcmluY2lwYWwgZGEgdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtZGFyay05NSlgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWJhY2tncm91bmQtc3RyaXBlZC1jb2xvcmAgICAgICAgICAgIHwgQ29yIGRvIGJhY2tncm91bmQgcXVhbmRvIHN0cmlwZWQgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1saWdodC0wNSlgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItbGluZWAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGFzIGxpbmhhcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLW1pZC00MClgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkhvdmVyKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWNvbG9yLWhvdmVyYCAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIHByaW5jaXBhbCBubyBlc3RhZG8gaG92ZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWhvdmVyKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvci1ob3ZlcmAgICAgICAgICAgICAgfCBDb3IgZGUgYmFja2dyb3VuZCBubyBlc3RhZG8gaG92ZXIgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1saWdodGVyKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkZvY3VzZWQqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLW91dGxpbmUtY29sb3ItZm9jdXNlZGAgICAgICAgICAgICAgIHwgQ29yIGRvIG91dGxpbmUgZG8gZXN0YWRvIGRlIGZvY3VzICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWZvY3VzKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipEaXNhYmxlZCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvci1kaXNhYmxlZGAgICAgICAgICAgICAgICAgICAgICB8IENvciBwcmluY2lwYWwgbm8gZXN0YWRvIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbWlkLTQwKWAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqSGVhZGxpbmUqKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvci1oZWFkbGluZWAgJm5ic3A7ICAgfCBDb3IgZG8gY2FiZcOnYWxobyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1saWdodC0xMClgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHQtaGVhZGxpbmVgICAgICAgICAgICAgICAgfCBQZXNvIGRhIGZvbnRlIGRvIGNhYmXDp2FsaG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tZm9udC13ZWlnaHQtYm9sZClgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipTZWxlY3RlZCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkYCZuYnNwOyAgICB8IENvciBkZSBiYWNrZ3JvdW5kIG5vIGVzdGFkbyBkZSBzZWxlY2lvbmFkbyAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWJyYW5kLTAxLWxpZ2h0ZXN0KWAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqQWN0aXZlZCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItYWN0aXZlZGAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZG8gdGV4dG8gbm8gZXN0YWRvIGRlIHNlbGVjaW9uYWRvICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWRhcmstOTApYCAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZWRgICAgICAgICAgICB8IENvciBkZSBiYWNrZ3JvdW5kIG5vIGVzdGFkbyBkZSBzZWxlY2lvbmFkbyAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWJyYW5kLTAxLWxpZ2h0KWAgICAgICAgICAgICAgICAgICAgICB8XG4gKlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb1RhYmxlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUGVybWl0ZSBxdWUgbyBnZXJlbmNpYWRvciBkZSBjb2x1bmFzLCByZXNwb25zw6F2ZWwgcGVsYSBkZWZpbmnDp8OjbyBkZSBxdWFpcyBjb2x1bmFzIHNlcsOjbyBleGliaWRhcywgc2VqYSBlc2NvbmRpZG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1oaWRlLWNvbHVtbnMtbWFuYWdlcicsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBoaWRlQ29sdW1uc01hbmFnZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUGVybWl0ZSBxdWUgYXMgYcOnw7VlcyBlbSBsb3RlLCByZXNwb25zw6F2ZWwgcG9yIGV4Y2x1aXIgZSBleGliaXIgYSBxdWFudGlkYWRlIGRlIGl0ZW5zLCBzZWphbSBlc2NvbmRpZGFzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1oaWRlLWJhdGNoLWFjdGlvbnMnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgaGlkZUJhdGNoQWN0aW9uczogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSGFiaWxpdGEgb3UgZGVzYWJpbGl0YSBhIHF1ZWJyYSBhdXRvbcOhdGljYSBkZSB0ZXh0by4gUXVhbmRvIGF0aXZhZGEsIG8gdGV4dG8gcXVlIGV4Y2VkZVxuICAgKiBvIGVzcGHDp28gZGlzcG9uw612ZWwgw6kgdHJhbnNmZXJpZG8gcGFyYSBhIHByw7N4aW1hIGxpbmhhIGVtIHBvbnRvcyBhcHJvcHJpYWRvcyBwYXJhIHVtYVxuICAgKiBsZWl0dXJhIGNsYXJhLlxuICAgKlxuICAgKiA+IEluY29tcGF0w612ZWwgY29tIGB2aXJ0dWFsLXNjcm9sbGAsIHF1ZSByZXF1ZXIgYWx0dXJhIGZpeGEgbmFzIGxpbmhhcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLXRleHQtd3JhcCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSB0ZXh0V3JhcD86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBQZXJtaXRlIHF1ZSBhcyBhw6fDtWVzIHBhcmEgZml4YXIgdW1hIGNvbHVuYSBkYSB0YWJlbGEgc2VqYW0gZXNjb25kaWRhcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWhpZGUtYWN0aW9uLWZpeGVkLWNvbHVtbnMnKSBzZXQgaGlkZUFjdGlvbkZpeGVkQ29sdW1ucyhoaWRlOiBib29sZWFuKSB7XG4gICAgaWYgKGhpZGUpIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMucmVtb3ZlUHJvcGVydHlGaXhlZCh0aGlzLmNvbHVtbnMpO1xuICAgIH1cbiAgICB0aGlzLl9oaWRlQWN0aW9uRml4ZWRDb2x1bW5zID0gaGlkZTtcbiAgfVxuXG4gIGdldCBoaWRlQWN0aW9uRml4ZWRDb2x1bW5zKCkge1xuICAgIHJldHVybiB0aGlzLl9oaWRlQWN0aW9uRml4ZWRDb2x1bW5zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUGVybWl0ZSBxdWUgbyBjYW1wbyBkZSBwZXNxdWlzYSBzZWphIGVzY29uZGlkby5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtaGlkZS10YWJsZS1zZWFyY2gnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgaGlkZVRhYmxlU2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBQZXJtaXRlIGZlY2hhciB1bSBkZXRhbGhlIG91IHJvdyB0ZW1wbGF0ZSBhdXRvbWF0aWNhbWVudGUsIGFvIGFicmlyIG91dHJvIGl0ZW0uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1hdXRvLWNvbGxhcHNlJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIGF1dG9Db2xsYXBzZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBlcm1pdGUgcXVlIHNlamEgYWRpY2lvbmFkbyBvIGVzdGFkbyBkZSBjYXJyZWdhbWVudG8gbm8gYm90w6NvIFwiQ2FycmVnYXIgbWFpcyByZXN1bHRhZG9zXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1sb2FkaW5nLXNob3ctbW9yZScsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBsb2FkaW5nU2hvd01vcmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSGFiaWxpdGEgZW0gdG9kYXMgYXMgY29sdW5hcyBhIG9ww6fDo28gZGUgb3JkZW5hw6fDo28gZGUgZGFkb3MuIENhc28gYSBjb2x1bmEgc2VqYSBkbyB0aXBvICdkYXRhJyBvdSAnZGF0ZVRpbWUnIGFcbiAgICogbWVzbWEgZGV2ZSByZXNwZWl0YXIgb3MgdGlwb3MgZGUgZW50cmFkYSBkZWZpbmlkb3MgcGFyYSBxdWUgc2VqYW0gb3JkZW5hZGFzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3Atc29ydCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBzb3J0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBTZSB2ZXJkYWRlaXJvLCB0b3JuYSBoYWJpbGl0YWRvIG8gYm90w6NvIFwiQ2FycmVnYXIgbWFpcyByZXN1bHRhZG9zXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1zaG93LW1vcmUtZGlzYWJsZWQnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgc2hvd01vcmVEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSGFiaWxpdGEgb3UgZGVzYWJpbGl0YSBvIGVzdGlsbyBsaXN0cmFkbyBkYSB0YWJlbGEgKGBzdHJpcGVkYCkuXG4gICAqID4gUmVjb21lbmRhZG8gcGFyYSB0YWJlbGFzIGNvbSBtYWlvciBuw7ptZXJvIGRlIGRhZG9zLCBmYWNpbGl0YW5kbyBhIHN1YSB2aXN1YWxpemHDp8OjbyBuYSB0YWJlbGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1zdHJpcGVkJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIHN0cmlwZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEVzY29uZGUgbyAqY2hlY2tib3gqIHBhcmEgc2VsZcOnw6NvIGRlIHRvZGFzIGFzIGxpbmhhcy5cbiAgICpcbiAgICogPiBTZW1wcmUgcmVjZWJlcsOhICp0cnVlKiBjYXNvIGEgc2VsZcOnw6NvIGRlIGFwZW5hcyB1bWEgbGluaGEgZXN0ZWphIGF0aXZhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtaGlkZS1zZWxlY3QtYWxsJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIGhpZGVTZWxlY3RBbGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBxdWUgc29tZW50ZSB1bWEgbGluaGEgZGEgdGFiZWxhIHBvZGUgc2VyIHNlbGVjaW9uYWRhLlxuICAgKlxuICAgKiA+IEVzdGEgZGVmaW5pw6fDo28gbsOjbyBzZSBhcGxpY2EgYW9zIGl0ZW5zIGZpbGhvcywgb3MgbWVzbW9zIHBvc3N1ZW0gY29tcG9ydGFtZW50byBpbmRlcGVuZGVudGUgZG8gaXRlbSBwYWkuXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3Atc2luZ2xlLXNlbGVjdCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBzaW5nbGVTZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBlcm1pdGUgc2VsZWNpb25hciB1bSBpdGVtIGRhIHRhYmVsYSBjbGljYW5kbyBuYSBsaW5oYS5cbiAgICpcbiAgICogPiBDYXNvIGhhamEgbmVjZXNzaWRhZGUgZGUgc2VsZWNpb25hciBvIGl0ZW0gYXBlbmFzIHZpYSByYWRpbyBvdSBjaGVja2JveCwgZGV2ZS1zZSBkZWZpbmlyIGVzdGEgcHJvcHJpZWRhZGUgY29tbyBgZmFsc2VgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1zZWxlY3RhYmxlLWVudGlyZS1saW5lJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIHNlbGVjdGFibGVFbnRpcmVMaW5lOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgcXVlIGEgY29sdW5hIGRlIGHDp8O1ZXMgZmljYXLDoSBubyBsYWRvIGRpcmVpdG8gZGEgdGFiZWxhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtYWN0aW9ucy1yaWdodCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBhY3Rpb25SaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSB1bWEgcXVhbnRpZGFkZSBtw6F4aW1hIGRlIGNvbHVuYXMgcXVlIHNlcsOjbyBleGliaWRhcyBuYSB0YWJlbGEuXG4gICAqXG4gICAqIFF1YW5kbyBjaGVnYXIgbm8gdmFsb3IgaW5mb3JtYWRvLCBhcyBjb2x1bmFzIHF1ZSBuw6NvIGVzdGl2ZXJlbSBzZWxlY2lvbmFkYXMgZmljYXLDo29cbiAgICogZGVzYWJpbGl0YWRhcyBlIGNhc28gaG91dmVyIG1haXMgY29sdW5hcyB2aXPDrXZlaXMgZG8gcXVlIG8gcGVybWl0aWRvLCBhcyBleGNlZGVudGVzXG4gICAqIHNlcsOjbyBpZ25vcmFkYXMgcG9yIG9yZGVtIGRlIHBvc2nDp8Ojby5cbiAgICovXG4gIEBJbnB1dCgncC1tYXgtY29sdW1ucycpIG1heENvbHVtbnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIG8gbW9kbyBkZSBwZXNxdWlzYSB1dGlsaXphZG8gbm8gY2FtcG8gZGUgYnVzY2EsIHF1YW5kbyBoYWJpbGl0YWRvLlxuICAgKiBWYWxvcmVzIGRlZmluaWRvcyBubyBlbnVtOiBQb1NlYXJjaEZpbHRlck1vZGVcbiAgICogPiBPYnM6IEEgcGVzcXVpc2Egw6kgcmVhbGl6YWRhIGV4Y2x1c2l2YW1lbnRlIG5vcyBkYWRvcyBsb2NhaXMsIG91IHNlamEsIGFxdWVsZXMgcXVlIGZvcmFtXG4gICAqID4gcmVuZGVyaXphZG9zIG5hIHRhYmVsYS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHN0YXJ0c1dpdGhgXG4gICAqL1xuICBASW5wdXQoJ3AtZmlsdGVyLXR5cGUnKSBmaWx0ZXJUeXBlOiBQb1NlYXJjaEZpbHRlck1vZGUgPSBQb1NlYXJjaEZpbHRlck1vZGUuc3RhcnRzV2l0aDtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFdmVudG8gZXhlY3V0YWRvIHF1YW5kbyB0b2RhcyBhcyBsaW5oYXMgc8OjbyBzZWxlY2lvbmFkYXMgcG9yIG1laW8gZG8gKmNoZWNrYm94KiBxdWUgc2VsZWNpb25hIHRvZGFzIGFzIGxpbmhhcy5cbiAgICovXG4gIEBPdXRwdXQoJ3AtYWxsLXNlbGVjdGVkJykgYWxsU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXZlbnRvIGV4ZWN1dGFkbyBxdWFuZG8gYSBzZWxlw6fDo28gZGFzIGxpbmhhcyDDqSBkZXNtYXJjYWRhIHBvciBtZWlvIGRvICpjaGVja2JveCogcXVlIHNlbGVjaW9uYSB0b2RhcyBhcyBsaW5oYXMuXG4gICAqL1xuICBAT3V0cHV0KCdwLWFsbC11bnNlbGVjdGVkJykgYWxsVW5zZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZXhlY3V0YWRvIGFvIGNvbGFwc2FyIHVtYSBsaW5oYSBkbyBgcG8tdGFibGVgLlxuICAgKlxuICAgKiA+IENvbW8gcGFyw6JtZXRybyBvIGNvbXBvbmVudGUgZW52aWEgbyBpdGVtIGNvbGFwc2Fkby5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY29sbGFwc2VkJykgY29sbGFwc2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBleGVjdXRhZG8gYW8gZXhwYW5kaXIgdW1hIGxpbmhhIGRvIGBwby10YWJsZWAuXG4gICAqXG4gICAqID4gQ29tbyBwYXLDom1ldHJvIG8gY29tcG9uZW50ZSBlbnZpYSBvIGl0ZW0gZXhwYW5kaWRvLlxuICAgKi9cbiAgQE91dHB1dCgncC1leHBhbmRlZCcpIGV4cGFuZGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBleGVjdXRhZG8gYXDDs3MgbyBtw6l0b2RvIGRlIGV4Y2x1c8OjbyBzZXIgZmluYWxpemFkby5cbiAgICpcbiAgICogYGBgXG4gICAqPHBvLXRhYmxlXG4gICAqICAocC1kZWxldGUtaXRlbXMpPVwiaXRlbXMgPSAkZXZlbnRcIlxuICAgKiA+XG4gICAqPC9wby10YWJsZT5cbiAgICogYGBgXG4gICAqXG4gICAqXG4gICAqID4gQ29tbyBwYXLDom1ldHJvIG8gY29tcG9uZW50ZSBlbnZpYSBhIGxpc3RhIGF0dWFsaXphZGEsIHNlbSBvcyBpdGVucyBleGNsdcOtZG9zLlxuICAgKi9cbiAgQE91dHB1dCgncC1kZWxldGUtaXRlbXMnKSBldmVudERlbGV0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZXhlY3V0YWRvIGFvIHNlbGVjaW9uYXIgdW1hIGxpbmhhIGRvIGBwby10YWJsZWAuXG4gICAqL1xuICBAT3V0cHV0KCdwLXNlbGVjdGVkJykgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUmVjZWJlIHVtYSBhw6fDo28gZGUgY2xpcXVlIHBhcmEgbyBib3TDo28gXCJDYXJyZWdhciBtYWlzIHJlc3VsdGFkb3NcIiwgY2FzbyBuZW5odW1hIGHDp8OjbyBmb3IgZGVmaW5pZGEgbyBtZXNtb1xuICAgKiBuw6NvIMOpIHZpc8OtdmVsLlxuICAgKlxuICAgKiBSZWNlYmUgdW0gb2JqZXRvIGB7IGNvbHVtbiwgdHlwZSB9YCBvbmRlOlxuICAgKlxuICAgKiAtIGNvbHVtbiAoYFBvVGFibGVDb2x1bW5gKTogb2JqZXRvIGRhIGNvbHVuYSBxdWUgZXN0w6Egb3JkZW5hZGEuXG4gICAqIC0gdHlwZSAoYFBvVGFibGVDb2x1bW5Tb3J0VHlwZWApOiB0aXBvIGRhIG9yZGVuYcOnw6NvLlxuICAgKi9cbiAgQE91dHB1dCgncC1zaG93LW1vcmUnKSBzaG93TW9yZTogRXZlbnRFbWl0dGVyPFBvVGFibGVDb2x1bW5Tb3J0PiA9IG5ldyBFdmVudEVtaXR0ZXI8UG9UYWJsZUNvbHVtblNvcnQ+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIGV4ZWN1dGFkbyBhbyBvcmRlbmFyIGNvbHVuYXMgZGEgdGFiZWxhLlxuICAgKlxuICAgKiBSZWNlYmUgdW0gb2JqZXRvIGB7IGNvbHVtbiwgdHlwZSB9YCBvbmRlOlxuICAgKlxuICAgKiAtIGNvbHVtbiAoYFBvVGFibGVDb2x1bW5gKTogb2JqZXRvIGRhIGNvbHVuYSBxdWUgZm9pIGNsaWNhZGEvb3JkZW5hZGEuXG4gICAqIC0gdHlwZSAoYFBvVGFibGVDb2x1bW5Tb3J0VHlwZWApOiB0aXBvIGRhIG9yZGVuYcOnw6NvLlxuICAgKi9cbiAgQE91dHB1dCgncC1zb3J0LWJ5Jykgc29ydEJ5OiBFdmVudEVtaXR0ZXI8UG9UYWJsZUNvbHVtblNvcnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb1RhYmxlQ29sdW1uU29ydD4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFdmVudG8gZXhlY3V0YWRvIGFvIGRlc21hcmNhciBhIHNlbGXDp8OjbyBkZSB1bWEgbGluaGEgZG8gYHBvLXRhYmxlYC5cbiAgICovXG4gIEBPdXRwdXQoJ3AtdW5zZWxlY3RlZCcpIHVuc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXZlbnRvIGRpc3BhcmFkbyBhbyBmZWNoYXIgbyBwYWdlIHNsaWRlIGRvIGdlcmVuY2lhZG9yIGRlIGNvbHVuYXMgYXDDs3MgYWx0ZXJhciBhcyBjb2x1bmFzIHZpc8OtdmVpcy5cbiAgICpcbiAgICogTyBjb21wb25lbnRlIGVudmlhIGNvbW8gcGFyw6JtZXRybyB1bSBhcnJheSBkZSBzdHJpbmcgY29tIGFzIGNvbHVuYXMgdmlzw612ZWlzIGF0dWFsaXphZGFzLlxuICAgKiBQb3IgZXhlbXBsbzogW1wiaWRDYXJkXCIsIFwibmFtZVwiLCBcImhpcmVTdGF0dXNcIiwgXCJhZ2VcIl0uXG4gICAqL1xuICBAT3V0cHV0KCdwLWNoYW5nZS12aXNpYmxlLWNvbHVtbnMnKSBjaGFuZ2VWaXNpYmxlQ29sdW1ucyA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8c3RyaW5nPj4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFdmVudG8gZGlzcGFyYWRvIGFvIGNsaWNhciBubyBib3TDo28gZGUgcmVzdGF1cmFyIHBhZHLDo28gbm8gZ2VyZW5jaWFkb3IgZGUgY29sdW5hcy5cbiAgICpcbiAgICogTyBjb21wb25lbnRlIGVudmlhIGNvbW8gcGFyw6JtZXRybyB1bSBhcnJheSBkZSBzdHJpbmcgY29tIGFzIGNvbHVuYXMgY29uZmlndXJhZGFzIGluaWNpYWxtZW50ZS5cbiAgICogUG9yIGV4ZW1wbG86IFtcImlkQ2FyZFwiLCBcIm5hbWVcIiwgXCJoaXJlU3RhdHVzXCIsIFwiYWdlXCJdLlxuICAgKi9cbiAgQE91dHB1dCgncC1yZXN0b3JlLWNvbHVtbi1tYW5hZ2VyJykgY29sdW1uUmVzdG9yZU1hbmFnZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PFN0cmluZz4+KCk7XG5cbiAgYWxsQ29sdW1uc1dpZHRoUGl4ZWxzOiBib29sZWFuO1xuICBjb2x1bW5NYXN0ZXJEZXRhaWw6IFBvVGFibGVDb2x1bW47XG4gIGhhc01haW5Db2x1bW5zOiBib29sZWFuID0gZmFsc2U7XG4gIG1haW5Db2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPiA9IFtdO1xuICBzZWxlY3RBbGwgPSBmYWxzZTtcbiAgc29ydGVkQ29sdW1uID0geyBwcm9wZXJ0eTogPFBvVGFibGVDb2x1bW4+bnVsbCwgYXNjZW5kaW5nOiB0cnVlIH07XG4gIHN1YnRpdGxlQ29sdW1uczogQXJyYXk8UG9UYWJsZUNvbHVtbj4gPSBbXTtcbiAgcGFnZSA9IDE7XG4gIHBhZ2VTaXplID0gMTA7XG4gIGhhc1NlcnZpY2U/OiBib29sZWFuID0gZmFsc2U7XG4gIGluaXRpYWxDb2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPjtcbiAgc2hvd0JhdGNoQWN0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xuICBpdGVtc1NlbGVjdGVkOiBBcnJheTxhbnk+ID0gW107XG4gIHBhcmFtc0ZpbHRlcjoge307XG4gIGZpbHRlcmVkSXRlbXM6IEFycmF5PGFueT4gPSBbXTtcbiAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgZml4ZWRMYXlvdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpbml0aWFsVmlzaWJsZUNvbHVtbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc3BhY2luZzogUG9UYWJsZUNvbHVtblNwYWNpbmcgPSBQb1RhYmxlQ29sdW1uU3BhY2luZy5NZWRpdW07XG4gIHByaXZhdGUgX2ZpbHRlcmVkQ29sdW1uczogQXJyYXk8c3RyaW5nPjtcbiAgcHJpdmF0ZSBfYWN0aW9ucz86IEFycmF5PFBvVGFibGVBY3Rpb24+ID0gW107XG4gIHByaXZhdGUgX2NvbHVtbnM6IEFycmF5PFBvVGFibGVDb2x1bW4+ID0gW107XG4gIHByaXZhdGUgX2NvbnRhaW5lcj86IHN0cmluZztcbiAgcHJpdmF0ZSBfcGFyYW1EZWxldGU6IHN0cmluZyA9IHBvVGFibGVQYXJhbURlbGV0ZUFwaTtcbiAgcHJpdmF0ZSBfaGVpZ2h0PzogbnVtYmVyO1xuICBwcml2YXRlIF9oaWRlRGV0YWlsPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9pdGVtczogQXJyYXk8UG9UYWJsZUNvbHVtbj47XG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb1RhYmxlTGl0ZXJhbHM7XG4gIHByaXZhdGUgX2xvYWRpbmc/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3NlbGVjdGFibGU/OiBib29sZWFuO1xuICBwcml2YXRlIGxhbmd1YWdlOiBzdHJpbmcgPSBwb0xvY2FsZURlZmF1bHQ7XG4gIHByaXZhdGUgX3NlcnZpY2VBcGk6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2VydmljZURlbGV0ZUFwaTogc3RyaW5nO1xuICBwcml2YXRlIHBvVGFibGVTZXJ2aWNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc29ydFN0b3JlOiBQb1RhYmxlQ29sdW1uU29ydDtcbiAgcHJpdmF0ZSBfaW5maW5pdGVTY3JvbGxEaXN0YW5jZT86IG51bWJlciA9IDEwMDtcbiAgcHJpdmF0ZSBfaW5maW5pdGVTY3JvbGw/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2RyYWdnYWJsZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaGlkZUFjdGlvbkZpeGVkQ29sdW1ucz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdmlydHVhbFNjcm9sbD86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcG9EYXRlOiBQb0RhdGVTZXJ2aWNlLFxuICAgIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb1RhYmxlU2VydmljZTogUG9UYWJsZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIExpc3RhIGRlIGl0ZW5zIGRhIHRhYmVsYS5cbiAgICogPiBTZSBmYWxzbywgc2Vyw6EgaW5pY2lhbGl6YWRvIGNvbW8gdW0gKmFycmF5KiB2YXppby5cbiAgICovXG4gIEBJbnB1dCgncC1pdGVtcycpIHNldCBpdGVtcyhpdGVtczogQXJyYXk8YW55Pikge1xuICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgdGhpcy5faXRlbXMgPSBBcnJheS5pc0FycmF5KGl0ZW1zKSA/IFsuLi5pdGVtc10gOiBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faXRlbXMgPSBBcnJheS5pc0FycmF5KGl0ZW1zKSA/IGl0ZW1zIDogW107XG4gICAgfVxuXG4gICAgLy8gd2hlbiBoYXZlbid0IGl0ZW1zLCBzZWxlY3RBbGwgc2hvdWxkIGJlIHVuY2hlY2tlZC5cbiAgICBpZiAoIXRoaXMuaGFzSXRlbXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICghdGhpcy5oYXNDb2x1bW5zKSB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmdldERlZmF1bHRDb2x1bW5zKGl0ZW1zWzBdKTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5oZWlnaHQgPyBbLi4udGhpcy5pdGVtc10gOiB0aGlzLml0ZW1zO1xuXG4gICAgLy8gdGltZW91dCBuZWNlc3PDoXJpbyBwYXJhIG9zIGl0ZW5zIHNlcmVtIHJlZmxldGlkb3MgbmEgdGFiZWxhXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoZWNrSW5maW5pdGVTY3JvbGwoKSk7XG4gIH1cblxuICBnZXQgaXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTGlzdGEgZGFzIGNvbHVuYXMgZGEgdGFiZWxhLCBkZXZlIHJlY2ViZXIgdW0gKmFycmF5KiBkZSBvYmpldG9zIHF1ZSBpbXBsZW1lbnRhbSBhIGludGVyZmFjZSBgUG9UYWJsZUNvbHVtbmAuXG4gICAqIFBvciBwYWRyw6NvIHJlY2ViZXLDoSBjb21vIHZhbG9yIGEgcHJpbWVpcmEgY29sdW5hIGRhIGxpc3RhIGRlIGl0ZW5zIGRhIHRhYmVsYS5cbiAgICogPiBDYXNvIG7Do28gZW5jb250cmUgdmFsb3IsIGEgbWVuc2FnZW0gJ05lbmh1bWEgZGVmaW5pw6fDo28gZGUgY29sdW5hcycgc2Vyw6EgZXhpYmlkYS5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgncC1jb2x1bW5zJykgc2V0IGNvbHVtbnMoY29sdW1uczogQXJyYXk8UG9UYWJsZUNvbHVtbj4pIHtcbiAgICBjb25zdCBoYXNDb2x1bW5zV2l0aFZpc2libGUgPSBjb2x1bW5zPy5maW5kKGNvbHVtbiA9PiBjb2x1bW4udmlzaWJsZSA9PT0gdHJ1ZSk7XG4gICAgaWYgKHRoaXMuaW5pdGlhbENvbHVtbnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pbml0aWFsQ29sdW1ucyA9IGNvbHVtbnM7XG4gICAgfVxuXG4gICAgdGhpcy5fY29sdW1ucyA9IGNvbHVtbnMgfHwgW107XG5cbiAgICBpZiAoaGFzQ29sdW1uc1dpdGhWaXNpYmxlICYmICF0aGlzLmluaXRpYWxWaXNpYmxlQ29sdW1ucykge1xuICAgICAgdGhpcy5pbml0aWFsVmlzaWJsZUNvbHVtbnMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb2x1bW5zLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRDb2x1bW5MaW5rKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0l0ZW1zKSB7XG4gICAgICB0aGlzLl9jb2x1bW5zID0gdGhpcy5nZXREZWZhdWx0Q29sdW1ucyh0aGlzLml0ZW1zWzBdKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlQ29sdW1ucygpO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBBZGljaW9uYSB1bSBjb250b3JubyBhcnJlZG9uZGFkbyBhbyBgcG8tdGFibGVgLCBhcyBvcMOnw7VlcyBzw6NvOlxuICAgKiAtIGBib3JkZXJgOiBjb20gYm9yZGFzL2xpbmhhcy5cbiAgICogLSBgc2hhZG93YDogY29tIHNvbWJyYXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBib3JkZXJgXG4gICAqL1xuICBASW5wdXQoJ3AtY29udGFpbmVyJykgc2V0IGNvbnRhaW5lcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29udGFpbmVyID0gcG9UYWJsZUNvbnRhaW5lci5pbmNsdWRlcyh2YWx1ZSkgPyB2YWx1ZSA6IHBvVGFibGVDb250YWluZXJEZWZhdWx0O1xuICB9XG5cbiAgZ2V0IGNvbnRhaW5lcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jb250YWluZXI7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBBZGljaW9uYSBvIHBhcsOibWV0cm8gYSBzZXIgZW52aWFkbyBwYXJhIGEgcmVxdWlzacOnw6NvIGRlIERFTEVURS5cbiAgICpcbiAgICogw4kgbmVjZXNzw6FyaW8gYSB1dGlsaXphw6fDo28gZGEgcHJvcHJpZWRhZGUgYHAtc2VydmljZS1kZWxldGVgIGVtIGNvbmp1bnRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgaWRgXG4gICAqL1xuICBASW5wdXQoJ3AtcGFyYW0tZGVsZXRlLWFwaScpIHNldCBwYXJhbURlbGV0ZUFwaSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGFyYW1EZWxldGUgPSB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBwb1RhYmxlUGFyYW1EZWxldGVBcGk7XG4gIH1cblxuICBnZXQgcGFyYW1EZWxldGVBcGkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyYW1EZWxldGU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgYSBhbHR1cmEgZGEgdGFiZWxhIGVtICpwaXhlbHMqIGUgZml4YSBvIGNhYmXDp2FsaG8uXG4gICAqXG4gICAqIEFvIHV0aWxpemFyIGVzc2EgcHJvcHJpZWRhZGUgc2Vyw6EgaW5zZXJpZG8gbyBgdmlydHVhbC1zY3JvbGxgIG5hIHRhYmVsYSBtZWxob3JhbmRvIGEgcGVyZm9ybWFuY2UuXG4gICAqL1xuICBASW5wdXQoJ3AtaGVpZ2h0Jykgc2V0IGhlaWdodChoZWlnaHQ6IG51bWJlcikge1xuICAgIHRoaXMuX2hlaWdodCA9IGhlaWdodDtcbiAgfVxuXG4gIGdldCBoZWlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hlaWdodDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEhhYmlsaXRhIGEgdmlzdWFsaXphw6fDo28gZGEgbGlzdGEgZGUgZGV0YWxoZXMgZGUgY2FkYSBsaW5oYSBkYSBjb2x1bmEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1oaWRlLWRldGFpbCcpIHNldCBoaWRlRGV0YWlsKGhpZGVEZXRhaWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9oaWRlRGV0YWlsID0gaGlkZURldGFpbCAhPSBudWxsICYmIGhpZGVEZXRhaWwudG9TdHJpbmcoKSA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbihoaWRlRGV0YWlsKTtcbiAgfVxuXG4gIGdldCBoaWRlRGV0YWlsKCkge1xuICAgIHJldHVybiB0aGlzLl9oaWRlRGV0YWlsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT2JqZXRvIGNvbSBhcyBsaXRlcmFpcyB1c2FkYXMgbm8gYHBvLXRhYmxlYC5cbiAgICpcbiAgICogRXhpc3RlbSBkdWFzIG1hbmVpcmFzIGRlIGN1c3RvbWl6YXIgbyBjb21wb25lbnRlLCBwYXNzYW5kbyB1bSBvYmpldG8gY29tIHRvZGFzIGFzIGxpdGVyYWlzIGRpc3BvbsOtdmVpczpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9UYWJsZUxpdGVyYWxzID0ge1xuICAgKiAgICBub0NvbHVtbnM6ICdOZW5odW1hIGRlZmluacOnw6NvIGRlIGNvbHVuYXMnLFxuICAgKiAgICBub0RhdGE6ICdOZW5odW0gZGFkbyBlbmNvbnRyYWRvJyxcbiAgICogICAgbm9WaXNpYmxlQ29sdW1uOiAnTmVuaHVtYSBjb2x1bmEgdmlzw612ZWwnLFxuICAgKiAgICBub0l0ZW06ICdOZW5odW0gaXRlbSBzZWxlY2lvbmFkbycsXG4gICAqICAgIG9uZUl0ZW06ICcxIGl0ZW0gc2VsZWNpb25hZG8nLFxuICAgKiAgICBtdWx0aXBsZUl0ZW1zOiAnaXRlbnMgc2VsZWNpb25hZG9zJyxcbiAgICogICAgbG9hZGluZ0RhdGE6ICdDYXJyZWdhbmRvJyxcbiAgICogICAgbG9hZE1vcmVEYXRhOiAnQ2FycmVnYXIgbWFpcyByZXN1bHRhZG9zJyxcbiAgICogICAgc2VlQ29tcGxldGVTdWJ0aXRsZTogJ1ZlciBsZWdlbmRhIGNvbXBsZXRhJyxcbiAgICogICAgY29tcGxldGVTdWJ0aXRsZTogJ0xlZ2VuZGEgY29tcGxldGEnLFxuICAgKiAgICBjb2x1bW5zTWFuYWdlcjogJ0dlcmVuY2lhZG9yIGRlIGNvbHVuYXMnLFxuICAgKiAgICBib2R5RGVsZXRlOiAnRGVzZWphIHJlYWxtZW50ZSBleGNsdWlyIGVzc2UgaXRlbT8nLFxuICAgKiAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAqICAgIGRlbGV0ZTogJ0V4Y2x1aXInLFxuICAgKiAgICBkZWxldGVTdWNjZXNzZnVsOiAnSXRlbnMgcmVtb3ZpZG9zIGNvbSBzdWNlc3NvJyxcbiAgICogICAgZGVsZXRlQXBpRXJyb3I6ICdPY29ycmV1IHVtIGVycm8gaW5lc3BlcmFkbywgdGVudGUgbm92YW1lbnRlIG1haXMgdGFyZGUhJyxcbiAgICogIH07XG4gICAqIGBgYFxuICAgKlxuICAgKiBPdSBwYXNzYW5kbyBhcGVuYXMgYXMgbGl0ZXJhaXMgcXVlIGRlc2VqYSBjdXN0b21pemFyOlxuICAgKlxuICAgKiBgYGBcbiAgICogIGNvbnN0IGN1c3RvbUxpdGVyYWxzOiBQb1RhYmxlTGl0ZXJhbHMgPSB7XG4gICAqICAgIG5vRGF0YTogJ1NlbSBkYWRvcydcbiAgICogIH07XG4gICAqIGBgYFxuICAgKlxuICAgKiBFIHBhcmEgY2FycmVnYXIgYXMgbGl0ZXJhaXMgY3VzdG9taXphZGFzLCBiYXN0YSBhcGVuYXMgcGFzc2FyIG8gb2JqZXRvIHBhcmEgbyBjb21wb25lbnRlLlxuICAgKlxuICAgKiBgYGBcbiAgICogPHBvLXRhYmxlXG4gICAqICAgW3AtbGl0ZXJhbHNdPVwiY3VzdG9tTGl0ZXJhbHNcIj5cbiAgICogPC9wby10YWJsZT5cbiAgICogYGBgXG4gICAqXG4gICAqID4gTyBvYmpldG8gcGFkcsOjbyBkZSBsaXRlcmFpcyBzZXLDoSB0cmFkdXppZG8gZGUgYWNvcmRvIGNvbSBvIGlkaW9tYSBkb1xuICAgKiBbYFBvSTE4blNlcnZpY2VgXSgvZG9jdW1lbnRhdGlvbi9wby1pMThuKSBvdSBkbyBicm93c2VyLlxuICAgKi9cbiAgQElucHV0KCdwLWxpdGVyYWxzJykgc2V0IGxpdGVyYWxzKHZhbHVlOiBQb1RhYmxlTGl0ZXJhbHMpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgdGhpcy5fbGl0ZXJhbHMgPSB7XG4gICAgICAgIC4uLnBvVGFibGVMaXRlcmFsc0RlZmF1bHRbcG9Mb2NhbGVEZWZhdWx0XSxcbiAgICAgICAgLi4ucG9UYWJsZUxpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXSxcbiAgICAgICAgLi4udmFsdWVcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0gcG9UYWJsZUxpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcbiAgICB9XG4gIH1cbiAgZ2V0IGxpdGVyYWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXRlcmFscyB8fCBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQmxvcXVlaWEgYSBpbnRlcmHDp8OjbyBkbyB1c3XDoXJpbyBjb20gb3MgZGFkb3MgZGEgX3RhYmxlXy5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWxvYWRpbmcnKSBzZXQgbG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IGNvbnZlcnRUb0Jvb2xlYW4obG9hZGluZyk7XG4gIH1cblxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSB1bWEgbGlzdGEgZGUgYcOnw7Vlcy5cbiAgICpcbiAgICogUXVhbmRvIGhvdXZlciBhcGVuYXMgdW1hIGHDp8OjbyBkZWZpbmlkYSBlbGEgc2Vyw6EgZXhpYmlkYSBkaXJldGFtZW50ZSBuYSBjb2x1bmEsIGNhc28gY29udHLDoXJpbywgbyBjb21wb25lbnRlXG4gICAqIHNlIGVuY2FycmVnYSBkZSBhZ3J1cMOhLWxhcyBleGliaW5kbyBvIMOtY29uZSBbKipwaCBwaC1kb3RzLXRocmVlKipdKC9ndWlkZXMvaWNvbnMpIHF1ZSBsaXN0YXLDoSBhcyBhw6fDtWVzIGFvIHNlciBjbGljYWRvLlxuICAgKlxuICAgKiAqKkEgY29sdW5hIGRlIGHDp8O1ZXMgbsOjbyBzZXLDoSBleGliaWRhIHF1YW5kbzoqKlxuICAgKiAgLSBhIGxpc3RhIGNvbnRlciB2YWxvcmVzIGludsOhbGlkb3Mgb3UgaW5kZWZpbmlkb3MuXG4gICAqICAtIHRlbmhhIHVtYSDDum5pY2EgYcOnw6NvIGUgYSBtZXNtYSBuw6NvIGZvciB2aXPDrXZlbC5cbiAgICovXG4gIEBJbnB1dCgncC1hY3Rpb25zJykgc2V0IGFjdGlvbnMoYWN0aW9uczogQXJyYXk8UG9UYWJsZUFjdGlvbj4pIHtcbiAgICB0aGlzLl9hY3Rpb25zID0gYWN0aW9ucztcbiAgfVxuXG4gIGdldCBhY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUGVybWl0ZSBhIHNlbGXDp8OjbyBkZSBsaW5oYXMgbmEgdGFiZWxhIGUsIGNhc28gYSBwcm9wcmllZGFkZSBgcC1zaW5nbGUtc2VsZWN0YCBlc3RlamEgZGVmaW5pZGEgc2Vyw6EgcG9zc8OtdmVsXG4gICAqIHNlbGVjaW9uYXIgYXBlbmFzIHVtYSDDum5pY2EgbGluaGEuXG4gICAqXG4gICAqICoqSW1wb3J0YW50ZToqKlxuICAgKiAgLSBBcyBsaW5oYXMgZGUgZGV0YWxoZSBkZWZpbmlkYXMgZW0gYFBvVGFibGVEZXRhaWxgIHBvc3N1ZW0gY29tcG9ydGFtZW50byBpbmRlcGVuZGVudGUgZGEgbGluaGEgbWVzdHJlO1xuICAgKiAgLSBDYWRhIGxpbmhhIHBvc3N1aSBwb3IgcGFkcsOjbyBhIHByb3ByaWVkYWRlIGRpbsOibWljYSBgJHNlbGVjdGVkYCwgbmEgcXVhbCDDqSBwb3Nzw612ZWwgdmFsaWRhciBzZSBhIGxpbmhhXG4gICAqIGVzdMOhIHNlbGVjaW9uYWRhLCBwb3IgZXhlbXBsbzogYGl0ZW0uJHNlbGVjdGVkYCBvdSBgaXRlbVsnJHNlbGVjdGVkJ11gLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atc2VsZWN0YWJsZScpIHNldCBzZWxlY3RhYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2VsZWN0YWJsZSA9IDxhbnk+dmFsdWUgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBTZSB2ZXJkYWRlaXJvLCBhdGl2YSBhIGZ1bmNpb25hbGlkYWRlIGRlIHNjcm9sbCBpbmZpbml0byBwYXJhIGEgdGFiZWxhIGUgbyBib3TDo28gXCJDYXJyZWdhciBNYWlzXCIgZGVpeGFyw6EgZGUgc2VyIGV4aWJpZG8uIEFvIGNoZWdhciBubyBmaW0gZGEgdGFiZWxhXG4gICAqIGV4ZWN1dGFyw6EgYSBmdW7Dp8OjbyBgcC1zaG93LW1vcmVgLlxuICAgKlxuICAgKiAqKlJlZ3JhcyBkZSB1dGlsaXphw6fDo286KipcbiAgICogIC0gTyBzY3JvbGwgaW5maW5pdG8gc8OzIGZ1bmNpb25hIHBhcmEgdGFiZWxhcyBxdWUgdXRpbGl6YW0gYSBwcm9wcmllZGFkZSBgcC1oZWlnaHRgIGUgcXVlIHBvc3N1ZW0gbyBzY3JvbGwgasOhIG5hIGNhcmdhIGluaWNpYWwgZG9zIGRhZG9zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtaW5maW5pdGUtc2Nyb2xsJykgc2V0IGluZmluaXRlU2Nyb2xsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faW5maW5pdGVTY3JvbGwgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlICYmIHRoaXMuaGVpZ2h0ID4gMCk7XG4gIH1cblxuICBnZXQgaW5maW5pdGVTY3JvbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luZmluaXRlU2Nyb2xsO1xuICB9XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBvIHBlcmNlbnR1YWwgbmVjZXNzw6FyaW8gcGFyYSBkaXNwYXJhciBvIGV2ZW50byBgcC1zaG93LW1vcmVgLCBxdWUgw6kgcmVzcG9uc8OhdmVsIHBvciBjYXJyZWdhciBtYWlzIGRhZG9zIG5hIHRhYmVsYS4gQ2FzbyBvIHZhbG9yIGluZm9ybWFkbyBzZWphIG1haW9yIHF1ZSAxMDAgb3UgbWVub3JcbiAgICogcXVlIDAsIG8gdmFsb3IgcGFkcsOjbyBzZXLDoSAxMDAlXG4gICAqXG4gICAqICoqRXhlbXBsb3M6KipcbiAgICogIC0gcC1pbmZpbml0ZS1zY3JvbGwtZGlzdGFuY2UgPSA4MDogUXVhbmRvIGF0aW5naXIgODAlICBkbyBzY3JvbGwgZGEgdGFiZWxhLCBvIGBwLXNob3ctbW9yZWAgc2Vyw6EgZGlzcGFyYWRvLlxuICAgKi9cbiAgQElucHV0KCdwLWluZmluaXRlLXNjcm9sbC1kaXN0YW5jZScpIHNldCBpbmZpbml0ZVNjcm9sbERpc3RhbmNlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9pbmZpbml0ZVNjcm9sbERpc3RhbmNlID0gdmFsdWUgPiAxMDAgfHwgdmFsdWUgPCAwID8gMTAwIDogdmFsdWU7XG4gIH1cblxuICBnZXQgaW5maW5pdGVTY3JvbGxEaXN0YW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5maW5pdGVTY3JvbGxEaXN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFVSTCBkYSBBUEkgcmVzcG9uc8OhdmVsIHBvciByZXRvcm5hciBvcyByZWdpc3Ryb3MuXG4gICAqXG4gICAqIEFvIHJlYWxpemFyIGEgYnVzY2EgZGUgbWFpcyByZWdpc3Ryb3MgdmlhIHBhZ2luYcOnw6NvIChDYXJyZWdhciBtYWlzIHJlc3VsdGFkb3MpLCBzZXLDoSBlbnZpYWRvIG9zIHBhcsOibWV0cm9zIGBwYWdlYCBlIGBwYWdlU2l6ZWAsIGNvbmZvcm1lIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIHVybCArID9wYWdlPTEmcGFnZVNpemU9MTBcbiAgICogYGBgXG4gICAqXG4gICAqIENhc28gdXRpbGl6YXIgb3JkZW5hw6fDo28sIGEgY29sdW5hIG9yZGVuYWRhIHNlcsOhIGVudmlhZGEgYXRyYXbDqXMgZG8gcGFyw6JtZXRybyBgb3JkZXJgLCBwb3IgZXhlbXBsbzpcbiAgICogLSBDb2x1bmEgZGVjcmVzY2VudGU6XG4gICAqIGBgYFxuICAgKiAgdXJsICsgP3BhZ2U9MSZwYWdlU2l6ZT0xMCZvcmRlcj0tbmFtZVxuICAgKiBgYGBcbiAgICpcbiAgICogLSBDb2x1bmEgYXNjZW5kZW50ZTpcbiAgICogYGBgXG4gICAqICB1cmwgKyA/cGFnZT0xJnBhZ2VTaXplPTEwJm9yZGVyPW5hbWVcbiAgICogYGBgXG4gICAqXG4gICAqID4gRXN0YSBVUkwgZGV2ZSByZXRvcm5hciBlIHJlY2ViZXIgb3MgZGFkb3Mgbm8gcGFkcsOjbyBkZSBbQVBJIGRvIFBPIFVJXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9hcGkpLlxuICAgKi9cbiAgQElucHV0KCdwLXNlcnZpY2UtYXBpJykgc2V0IHNlcnZpY2VBcGkoc2VydmljZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2VydmljZUFwaSA9IHNlcnZpY2U7XG4gICAgdGhpcy5zZXRTZXJ2aWNlKHRoaXMuc2VydmljZUFwaSwgJ0dFVCcpO1xuICAgIHRoaXMuaGFzU2VydmljZSA9ICEhc2VydmljZTtcbiAgICB0aGlzLnNob3dNb3JlRGlzYWJsZWQgPSAhdGhpcy5oYXNTZXJ2aWNlO1xuICAgIHRoaXMucGFnZSA9IDE7XG4gICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xuICB9XG5cbiAgZ2V0IHNlcnZpY2VBcGkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2VBcGk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBVUkwgZGEgQVBJIHJlc3BvbnPDoXZlbCBwb3IgZXhjbHVpciBvcyByZWdpc3Ryb3MuXG4gICAqXG4gICAqIEFvIHNlbGVjaW9uYXIgbyBib3TDo28gZGUgZXhjbHVpciBpdGVucywgZXNzYSB1cmwgc2Vyw6EgZXhlY3V0YWRhIHV0aWxpemFuZG8gbyBwYXLDom1ldHJvIGVudmlhZG8gbmEgcHJvcHJpZWRhZGUgYHAtcGFyYW0tZGVsZXRlLWFwaWAuXG4gICAqIENhc28gZWxhIG7Do28gc2VqYSB1dGlsaXphZGEsIG8gcGFyw6JtZXRybyBwYWRyw6NvIGEgc2VyIGVudmlhZG8gc2Vyw6EgYGlkYC5cbiAgICpcbiAgICogPiBFc3RhIFVSTCBkZXZlIHJldG9ybmFyIGUgcmVjZWJlciBvcyBkYWRvcyBubyBwYWRyw6NvIGRlIFtBUEkgZG8gUE8gVUldKGh0dHBzOi8vcG8tdWkuaW8vZ3VpZGVzL2FwaSkuXG4gICAqL1xuICBASW5wdXQoJ3Atc2VydmljZS1kZWxldGUnKSBzZXQgc2VydmljZURlbGV0ZUFwaShzZXJ2aWNlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZXJ2aWNlRGVsZXRlQXBpID0gc2VydmljZTtcbiAgICB0aGlzLnNldFNlcnZpY2UodGhpcy5zZXJ2aWNlRGVsZXRlQXBpLCAnREVMRVRFJyk7XG4gIH1cblxuICBnZXQgc2VydmljZURlbGV0ZUFwaSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZURlbGV0ZUFwaTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFJlc3BvbnPDoXZlbCBwb3IgYXBsaWNhciBlc3Bhw6dhbWVudG8gbmFzIGNvbHVuYXMuXG4gICAqXG4gICAqIERldmUgcmVjZWJlciB1bSBkb3MgdmFsb3JlcyBkbyBlbnVtIGBQb1RhYmxlQ29sdW1uU3BhY2luZ2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBtZWRpdW1gXG4gICAqL1xuICBASW5wdXQoJ3Atc3BhY2luZycpIHNldCBzcGFjaW5nKHZhbHVlOiBQb1RhYmxlQ29sdW1uU3BhY2luZykge1xuICAgIGlmICh2YWx1ZSA9PT0gJ3NtYWxsJyB8fCB2YWx1ZSA9PT0gJ21lZGl1bScgfHwgdmFsdWUgPT09ICdsYXJnZScpIHtcbiAgICAgIHRoaXMuX3NwYWNpbmcgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc3BhY2luZyA9IFBvVGFibGVDb2x1bW5TcGFjaW5nLk1lZGl1bTtcbiAgICB9XG4gIH1cblxuICBnZXQgc3BhY2luZygpIHtcbiAgICByZXR1cm4gdGhpcy5fc3BhY2luZztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBhcyBjb2x1bmFzIHF1ZSBzZXLDo28gZmlsdHJhZGFzIG5vIGNhbXBvIGRlIHBlc3F1aXNhLlxuICAgKiBBY2VpdGEgdW0gYXJyYXkgZGUgc3RyaW5ncywgcmVwcmVzZW50YW5kbyBhcyBjb2x1bmFzIGVzcGVjw61maWNhcyBxdWUgc2Vyw6NvIGNvbnNpZGVyYWRhcyBuYSBmaWx0cmFnZW0uXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3AtZmlsdGVyZWQtY29sdW1ucycpIHNldCBmaWx0ZXJlZENvbHVtbnModmFsdWVzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5fZmlsdGVyZWRDb2x1bW5zID0gdmFsdWVzO1xuICB9XG5cbiAgZ2V0IGZpbHRlcmVkQ29sdW1ucygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyZWRDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IGhhc0NvbHVtbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucyAmJiB0aGlzLmNvbHVtbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGdldCBoYXNJdGVtcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCk7XG4gIH1cblxuICBnZXQgbmFtZUNvbHVtbkRldGFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5NYXN0ZXJEZXRhaWwgPyB0aGlzLmNvbHVtbk1hc3RlckRldGFpbC5wcm9wZXJ0eSA6IG51bGw7XG4gIH1cblxuICBnZXQgdmFsaWRDb2x1bW5zKCkge1xuICAgIGNvbnN0IHR5cGVzVmFsaWQgPSBbXG4gICAgICAnc3RyaW5nJyxcbiAgICAgICdudW1iZXInLFxuICAgICAgJ2Jvb2xlYW4nLFxuICAgICAgJ2RhdGUnLFxuICAgICAgJ3RpbWUnLFxuICAgICAgJ2RhdGVUaW1lJyxcbiAgICAgICdjdXJyZW5jeScsXG4gICAgICAnc3VidGl0bGUnLFxuICAgICAgJ2xpbmsnLFxuICAgICAgJ2xhYmVsJyxcbiAgICAgICdpY29uJyxcbiAgICAgICdjZWxsVGVtcGxhdGUnLFxuICAgICAgJ2NvbHVtblRlbXBsYXRlJ1xuICAgIF07XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucy5maWx0ZXIoY29sID0+ICFjb2wudHlwZSB8fCB0eXBlc1ZhbGlkLmluY2x1ZGVzKGNvbC50eXBlKSk7XG4gIH1cblxuICBnZXQgdmlzaWJsZUFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuYWN0aW9ucyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuYWN0aW9ucyAmJiB0aGlzLmFjdGlvbnMuZmlsdGVyKGFjdGlvbiA9PiBhY3Rpb24gJiYgYWN0aW9uLnZpc2libGUgIT09IGZhbHNlKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbHRlcmVkQ29sdW1ucygpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcmVkQ29sdW1ucyA9IHRoaXMuY29sdW1uc1xuICAgICAgLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLnZpc2libGUgIT09IGZhbHNlKVxuICAgICAgLm1hcChjb2x1bW4gPT4gY29sdW1uLnByb3BlcnR5IHx8IGNvbHVtbi5sYWJlbCk7XG4gIH1cblxuICBwcml2YXRlIGdldCBzb3J0VHlwZSgpOiBQb1RhYmxlQ29sdW1uU29ydFR5cGUge1xuICAgIHJldHVybiB0aGlzLnNvcnRlZENvbHVtbi5hc2NlbmRpbmcgPyBQb1RhYmxlQ29sdW1uU29ydFR5cGUuQXNjZW5kaW5nIDogUG9UYWJsZUNvbHVtblNvcnRUeXBlLkRlc2NlbmRpbmc7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBIYWJpbGl0YSBvIG1vZG8gZHJhZyBhbmQgZHJvcCBwYXJhIGFzIGNvbHVuYXMgZGEgdGFiZWxhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtZHJhZ2dhYmxlJykgc2V0IGRyYWdnYWJsZShkcmFnZ2FibGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kcmFnZ2FibGUgPSBkcmFnZ2FibGUgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgZHJhZ2dhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9kcmFnZ2FibGU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBIYWJpbGl0YSBvIGB2aXJ0dWFsLXNjcm9sbGAgbmEgdGFiZWxhIHBhcmEgbWVsaG9yYXIgYSBwZXJmb3JtYW5jZSBjb20gZ3JhbmRlcyB2b2x1bWVzIGRlIGRhZG9zLlxuICAgKiBSZXF1ZXIgYWx0dXJhIChgcC1oZWlnaHRgKSBwYXJhIGZ1bmNpb25hciBjb3JyZXRhbWVudGUuXG4gICAqXG4gICAqID4gSW5jb21wYXTDrXZlbCBjb20gYHAtdGV4dC13cmFwYCBlIGBtYXN0ZXItZGV0YWlsYCwgcG9pcyBvIGB2aXJ0dWFsLXNjcm9sbGAgZXhpZ2UgYWx0dXJhIGZpeGEgbmFzIGxpbmhhcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICBASW5wdXQoJ3AtdmlydHVhbC1zY3JvbGwnKSBzZXQgdmlydHVhbFNjcm9sbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3ZpcnR1YWxTY3JvbGwgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlICYmIHRoaXMuaGVpZ2h0ID4gMCk7XG4gIH1cblxuICBnZXQgdmlydHVhbFNjcm9sbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlydHVhbFNjcm9sbDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucG9UYWJsZVNlcnZpY2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0IHx8IHRoaXMuaGlkZVNlbGVjdEFsbCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBmYWxzZTtcbiAgICAgIHRoaXMuaGlkZVNlbGVjdEFsbCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuaGVpZ2h0KSB7XG4gICAgICB0aGlzLmNhbGN1bGF0ZUhlaWdodFRhYmxlQ29udGFpbmVyKHRoaXMuaGVpZ2h0KTtcbiAgICB9XG5cbiAgICBpZiAoKGNoYW5nZXMuaGVpZ2h0IHx8IGNoYW5nZXMuaXRlbXMpICYmIHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuY2hhbmdlSGVhZGVyV2lkdGgoKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VTaXplTG9hZGluZygpO1xuICB9XG5cbiAgc2VsZWN0QWxsUm93cygpIHtcbiAgICBpZiAoIXRoaXMuaGlkZVNlbGVjdEFsbCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGwgPSAhdGhpcy5zZWxlY3RBbGw7XG5cbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaXRlbS4kc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdEFsbDtcblxuICAgICAgICBpZiAoaXRlbVt0aGlzLm5hbWVDb2x1bW5EZXRhaWxdKSB7XG4gICAgICAgICAgY29uc3QgY2hpbGRJdGVtcyA9IGl0ZW1bdGhpcy5uYW1lQ29sdW1uRGV0YWlsXTtcbiAgICAgICAgICBjaGlsZEl0ZW1zLmZvckVhY2goY2hpbGRJdGVtID0+IChjaGlsZEl0ZW0uJHNlbGVjdGVkID0gdGhpcy5zZWxlY3RBbGwpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZW1pdFNlbGVjdEFsbEV2ZW50cyh0aGlzLnNlbGVjdEFsbCwgWy4uLnRoaXMuaXRlbXNdKTtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRMaXN0KCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Um93KHJvdzogYW55KSB7XG4gICAgcm93LiRzZWxlY3RlZCA9ICFyb3cuJHNlbGVjdGVkO1xuXG4gICAgdGhpcy5lbWl0U2VsZWN0RXZlbnRzKHJvdyk7XG4gICAgdGhpcy5jb25maWdBZnRlclNlbGVjdFJvdyh0aGlzLml0ZW1zLCByb3cpO1xuXG4gICAgaWYgKHJvd1t0aGlzLm5hbWVDb2x1bW5EZXRhaWxdICYmIChyb3cuJHNlbGVjdGVkID09PSB0cnVlIHx8IHJvdy4kc2VsZWN0ZWQgPT09IGZhbHNlKSkge1xuICAgICAgY29uc3QgY2hpbGRJdGVtcyA9IHJvd1t0aGlzLm5hbWVDb2x1bW5EZXRhaWxdO1xuICAgICAgY2hpbGRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uJHNlbGVjdGVkID0gcm93LiRzZWxlY3RlZCkpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U2VsZWN0ZWRMaXN0KCk7XG4gIH1cblxuICBoYXNTZWxlY3RhYmxlUm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGFibGUgJiYgdGhpcy5zZWxlY3RhYmxlRW50aXJlTGluZTtcbiAgfVxuXG4gIHNlbGVjdERldGFpbFJvdyhldmVudDogYW55KSB7XG4gICAgY29uc3QgeyBpdGVtLCBwYXJlbnRSb3cgfSA9IGV2ZW50O1xuICAgIHRoaXMuZW1pdFNlbGVjdEV2ZW50cyhpdGVtKTtcbiAgICB0aGlzLnVwZGF0ZVBhcmVudFJvd1NlbGVjdGlvbihwYXJlbnRSb3cpO1xuICB9XG5cbiAgdXBkYXRlUGFyZW50Um93U2VsZWN0aW9uKHBhcmVudFJvdzogYW55KSB7XG4gICAgY29uc3Qgb2xkID0gcGFyZW50Um93LiRzZWxlY3RlZCB8fCBudWxsO1xuICAgIGNvbnN0IGNoaWxkSXRlbXMgPSBwYXJlbnRSb3dbdGhpcy5uYW1lQ29sdW1uRGV0YWlsXTtcblxuICAgIGlmIChjaGlsZEl0ZW1zLmV2ZXJ5KGl0ZW0gPT4gaXRlbS4kc2VsZWN0ZWQpKSB7XG4gICAgICBwYXJlbnRSb3cuJHNlbGVjdGVkID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGNoaWxkSXRlbXMuZXZlcnkoaXRlbSA9PiAhaXRlbS4kc2VsZWN0ZWQpKSB7XG4gICAgICBwYXJlbnRSb3cuJHNlbGVjdGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmVudFJvdy4kc2VsZWN0ZWQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAob2xkICE9IHBhcmVudFJvdy4kc2VsZWN0ZWQgJiYgIShvbGQgPT0gbnVsbCAmJiBwYXJlbnRSb3cuJHNlbGVjdGVkID09PSBmYWxzZSkpIHtcbiAgICAgIHRoaXMuZW1pdFNlbGVjdEV2ZW50cyhwYXJlbnRSb3cpO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnQWZ0ZXJTZWxlY3RSb3codGhpcy5pdGVtcywgcGFyZW50Um93KTtcbiAgICB0aGlzLnNldFNlbGVjdGVkTGlzdCgpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRMaXN0KCkge1xuICAgIHRoaXMuaXRlbXNTZWxlY3RlZCA9IFtdO1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLiRzZWxlY3RlZCkge1xuICAgICAgICB0aGlzLml0ZW1zU2VsZWN0ZWQucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldENsYXNzQ29sb3Iocm93LCBjb2x1bW4pIHtcbiAgICByZXR1cm4gY29sdW1uLmNvbG9yID8gYHBvLXRleHQtJHt0aGlzLmdldENvbHVtbkNvbG9yKHJvdywgY29sdW1uKX1gIDogJyc7XG4gIH1cblxuICB0b2dnbGVEZXRhaWwocm93OiBhbnkpIHtcbiAgICBjb25zdCByb3dTaG93RGV0YWlsID0gcm93LiRzaG93RGV0YWlsO1xuICAgIGlmICh0aGlzLmF1dG9Db2xsYXBzZSkge1xuICAgICAgdGhpcy5jb2xsYXBzZUFsbEl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U2hvd0RldGFpbChyb3csICFyb3dTaG93RGV0YWlsKTtcbiAgICB0aGlzLmVtaXRFeHBhbmRFdmVudHMocm93KTtcbiAgfVxuXG4gIHRvZ2dsZVJvd0FjdGlvbihyb3c6IGFueSkge1xuICAgIGNvbnN0IHRvZ2dsZVNob3dBY3Rpb24gPSByb3cuJHNob3dBY3Rpb247XG5cbiAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAoaXRlbS4kc2hvd0FjdGlvbikge1xuICAgICAgICBpdGVtLiRzaG93QWN0aW9uID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcm93LiRzaG93QWN0aW9uID0gIXRvZ2dsZVNob3dBY3Rpb247XG4gIH1cblxuICBzb3J0Q29sdW1uKGNvbHVtbjogUG9UYWJsZUNvbHVtbikge1xuICAgIGlmICghdGhpcy5zb3J0IHx8IGNvbHVtbi50eXBlID09PSAnZGV0YWlsJyB8fCBjb2x1bW4uc29ydGFibGUgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zb3J0ZWRDb2x1bW4uYXNjZW5kaW5nID0gdGhpcy5zb3J0ZWRDb2x1bW4ucHJvcGVydHkgPT09IGNvbHVtbiA/ICF0aGlzLnNvcnRlZENvbHVtbi5hc2NlbmRpbmcgOiB0cnVlO1xuXG4gICAgdGhpcy5zb3J0QXJyYXkoY29sdW1uLCB0aGlzLnNvcnRlZENvbHVtbi5hc2NlbmRpbmcpO1xuICAgIHRoaXMuc29ydEJ5LmVtaXQoeyBjb2x1bW4sIHR5cGU6IHRoaXMuc29ydFR5cGUgfSk7XG4gICAgaWYgKHRoaXMuaGFzU2VydmljZSAmJiB0aGlzLnNvcnQpIHtcbiAgICAgIHRoaXMuc29ydFN0b3JlID0geyBjb2x1bW4sIHR5cGU6IHRoaXMuc29ydFR5cGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLnNvcnRlZENvbHVtbi5wcm9wZXJ0eSA9IGNvbHVtbjtcbiAgfVxuXG4gIG9uU2hvd01vcmUoKTogdm9pZCB7XG4gICAgY29uc3Qgc29ydCA9IHRoaXMuc29ydGVkQ29sdW1uLnByb3BlcnR5ID8geyBjb2x1bW46IHRoaXMuc29ydGVkQ29sdW1uLnByb3BlcnR5LCB0eXBlOiB0aGlzLnNvcnRUeXBlIH0gOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAodGhpcy5oYXNTZXJ2aWNlKSB7XG4gICAgICB0aGlzLnBhZ2UrKztcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmxvYWRpbmdTaG93TW9yZSA9IHRydWU7XG5cbiAgICAgIHRoaXMucG9UYWJsZVNlcnZpY2VTdWJzY3JpcHRpb24gPSB0aGlzLmdldEZpbHRlcmVkSXRlbXMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbLi4udGhpcy5pdGVtcywgLi4uZGF0YS5pdGVtc107XG4gICAgICAgIHRoaXMuc2hvd01vcmVEaXNhYmxlZCA9ICFkYXRhLmhhc05leHQ7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvYWRpbmdTaG93TW9yZSA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93TW9yZS5lbWl0KHNvcnQpO1xuICB9XG5cbiAgZ2V0RmlsdGVyZWRJdGVtcyhxdWVyeVBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogUXVlcnlQYXJhbXNUeXBlIH0pOiBPYnNlcnZhYmxlPFBvVGFibGVSZXNwb25zZUFwaT4ge1xuICAgIGNvbnN0IGZpbHRlcmVkUGFyYW1zOiBQb1RhYmxlRmlsdGVyZWRJdGVtc1BhcmFtcyA9IHRoaXMuZ2V0RmlsdGVyZWRQYXJhbXMocXVlcnlQYXJhbXMpO1xuXG4gICAgcmV0dXJuIHRoaXMucG9UYWJsZVNlcnZpY2UuZ2V0RmlsdGVyZWRJdGVtcyhmaWx0ZXJlZFBhcmFtcyk7XG4gIH1cblxuICBzZXRUYWJsZVJlc3BvbnNlUHJvcGVydGllcyhkYXRhOiBQb1RhYmxlUmVzcG9uc2VBcGkpIHtcbiAgICB0aGlzLml0ZW1zID0gZGF0YS5pdGVtcyB8fCBbXTtcbiAgICB0aGlzLnNob3dNb3JlRGlzYWJsZWQgPSAhZGF0YS5oYXNOZXh0O1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgaW5pdGlhbGl6ZURhdGEocGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBRdWVyeVBhcmFtc1R5cGUgfSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc1NlcnZpY2UpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnBhcmFtc0ZpbHRlciA9IHBhcmFtcztcbiAgICAgIHRoaXMuZ2V0RmlsdGVyZWRJdGVtcyhwYXJhbXMpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5zZXRUYWJsZVJlc3BvbnNlUHJvcGVydGllcyhkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNvcnRBcnJheShjb2x1bW46IFBvVGFibGVDb2x1bW4sIGFzY2VuZGluZzogYm9vbGVhbiwgaXRlbT86IEFycmF5PGFueT4pIHtcbiAgICBsZXQgaXRlbXNMaXN0O1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBpdGVtc0xpc3QgPSB0aGlzLmhlaWdodCA/IFsuLi5pdGVtXSA6IGl0ZW07XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZW1zTGlzdCA9IHRoaXMuaGVpZ2h0ID8gWy4uLnRoaXMuZmlsdGVyZWRJdGVtc10gOiB0aGlzLmZpbHRlcmVkSXRlbXM7XG4gICAgfVxuICAgIGl0ZW1zTGlzdC5zb3J0KChsZWZ0U2lkZSwgcmlnaHRTaWRlKTogbnVtYmVyID0+XG4gICAgICBzb3J0VmFsdWVzKGxlZnRTaWRlW2NvbHVtbi5wcm9wZXJ0eV0sIHJpZ2h0U2lkZVtjb2x1bW4ucHJvcGVydHldLCBhc2NlbmRpbmcpXG4gICAgKTtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBpdGVtc0xpc3Q7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdENvbHVtbnMoaXRlbTogYW55KSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGl0ZW0pO1xuXG4gICAgcmV0dXJuIGtleXNcbiAgICAgIC5maWx0ZXIoa2V5ID0+IHR5cGVvZiBpdGVtW2tleV0gIT09ICdvYmplY3QnKVxuICAgICAgLm1hcChrZXkgPT4gKHsgbGFiZWw6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpLCBwcm9wZXJ0eToga2V5IH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRTaG93RGV0YWlsKHJvd0lkZW50aWZpZXI6IGFueSB8IG51bWJlciwgaXNTaG93RGV0YWlsOiBib29sZWFuKSB7XG4gICAgY29uc3QgaXNSb3dJbmRleCA9IHR5cGVvZiByb3dJZGVudGlmaWVyID09PSAnbnVtYmVyJyAmJiB0aGlzLml0ZW1zW3Jvd0lkZW50aWZpZXJdO1xuXG4gICAgY29uc3Qgcm93ID0gaXNSb3dJbmRleCA/IHRoaXMuaXRlbXNbcm93SWRlbnRpZmllcl0gOiByb3dJZGVudGlmaWVyO1xuXG4gICAgcm93LiRzaG93RGV0YWlsID0gaXNTaG93RGV0YWlsO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsYXBzZUFsbEl0ZW1zKGl0ZW1zOiBBcnJheTx7IFtrZXk6IHN0cmluZ106IGFueSB9Pikge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgaWYgKGl0ZW0uJHNob3dEZXRhaWwpIHtcbiAgICAgICAgdGhpcy5zZXRTaG93RGV0YWlsKGl0ZW0sIGZhbHNlKTtcbiAgICAgICAgdGhpcy5lbWl0RXhwYW5kRXZlbnRzKGl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29uZmlnQWZ0ZXJTZWxlY3RSb3cocm93czogQXJyYXk8YW55Piwgcm93KSB7XG4gICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0KSB7XG4gICAgICB0aGlzLnVuc2VsZWN0T3RoZXJSb3dzKHJvd3MsIHJvdyk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5oaWRlU2VsZWN0QWxsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbCA9IHRoaXMuaXNFdmVyeVNlbGVjdGVkKHJvd3MpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdEV4cGFuZEV2ZW50cyhyb3c6IGFueSkge1xuICAgIHJvdy4kc2hvd0RldGFpbCA/IHRoaXMuZXhwYW5kZWQuZW1pdChyb3cpIDogdGhpcy5jb2xsYXBzZWQuZW1pdChyb3cpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U2VsZWN0QWxsRXZlbnRzKHNlbGVjdEFsbDogYm9vbGVhbiwgcm93czogYW55KSB7XG4gICAgc2VsZWN0QWxsID8gdGhpcy5hbGxTZWxlY3RlZC5lbWl0KHJvd3MpIDogdGhpcy5hbGxVbnNlbGVjdGVkLmVtaXQocm93cyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTZWxlY3RFdmVudHMocm93OiBhbnkpIHtcbiAgICByb3cuJHNlbGVjdGVkID8gdGhpcy5zZWxlY3RlZC5lbWl0KHJvdykgOiB0aGlzLnVuc2VsZWN0ZWQuZW1pdChyb3cpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5Db2xvcihyb3csIGNvbHVtbikge1xuICAgIGNvbnN0IGNvbHVtbkNvbG9yID0gY29sdW1uLmNvbG9yO1xuXG4gICAgcmV0dXJuIGlzVHlwZW9mKGNvbHVtbkNvbG9yLCAnZnVuY3Rpb24nKSA/IGNvbHVtbkNvbG9yKHJvdywgY29sdW1uLnByb3BlcnR5KSA6IGNvbHVtbkNvbG9yO1xuICB9XG5cbiAgLy8gUmV0b3JuYSBhIGNvbHVuYSBkYSBsaXN0YSBkZSBjb2x1bmFzIHF1ZSDDqSBkbyB0aXBvIGRldGFpbFxuICBwcml2YXRlIGdldENvbHVtbk1hc3RlckRldGFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbmQoY29sID0+IGNvbC50eXBlID09PSAnZGV0YWlsJyk7XG4gIH1cblxuICAvLyBDb2x1bmFzIHF1ZSBzw6NvIGluc2VyaWRhcyBubyA8aGVhZD4gZGEgdGFiZWxhXG4gIHByaXZhdGUgZ2V0TWFpbkNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRDb2x1bW5zLmZpbHRlcihjb2wgPT4gY29sLnZpc2libGUgIT09IGZhbHNlKTtcbiAgfVxuXG4gIC8vIFJldG9ybmEgYXMgY29sdW5hcyBjb20gc3RhdHVzXG4gIHByaXZhdGUgZ2V0U3VidGl0bGVDb2x1bW5zKCkge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wudHlwZSA9PT0gJ3N1YnRpdGxlJyk7XG4gIH1cblxuICBwcml2YXRlIGlzRXZlcnlTZWxlY3RlZChpdGVtczogQXJyYXk8YW55Pik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNvbWVDaGVja2VkT3JJbmRldGVybWluYXRlID0gaXRlbSA9PiBpdGVtLiRzZWxlY3RlZCB8fCBpdGVtLiRzZWxlY3RlZCA9PT0gbnVsbDtcbiAgICBjb25zdCBldmVyeUNoZWNrZWQgPSBpdGVtID0+IGl0ZW0uJHNlbGVjdGVkO1xuXG4gICAgaWYgKGl0ZW1zLmV2ZXJ5KGV2ZXJ5Q2hlY2tlZCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChpdGVtcy5zb21lKHNvbWVDaGVja2VkT3JJbmRldGVybWluYXRlKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZUNvbHVtbnMoKSB7XG4gICAgdGhpcy5zZXRNYWluQ29sdW1ucygpO1xuICAgIHRoaXMuc2V0Q29sdW1uTWFzdGVyRGV0YWlsKCk7XG4gICAgdGhpcy5zZXRTdWJ0aXRsZUNvbHVtbnMoKTtcbiAgICB0aGlzLmdldEZpbHRlcmVkQ29sdW1ucygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb2x1bW5MaW5rKCkge1xuICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgICBpZiAoY29sdW1uWyd0eXBlJ10gPT09ICdsaW5rJyAmJiAhY29sdW1uWydsaW5rJ10pIHtcbiAgICAgICAgY29sdW1uWydsaW5rJ10gPSAnbGluayc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbHVtbk1hc3RlckRldGFpbCgpIHtcbiAgICB0aGlzLmNvbHVtbk1hc3RlckRldGFpbCA9IHRoaXMuZ2V0Q29sdW1uTWFzdGVyRGV0YWlsKCk7XG4gIH1cblxuICBwcml2YXRlIHNldE1haW5Db2x1bW5zKCkge1xuICAgIHRoaXMubWFpbkNvbHVtbnMgPSB0aGlzLmdldE1haW5Db2x1bW5zKCk7XG5cbiAgICB0aGlzLmhhc01haW5Db2x1bW5zID0gISF0aGlzLm1haW5Db2x1bW5zLmxlbmd0aDtcblxuICAgIHRoaXMuYWxsQ29sdW1uc1dpZHRoUGl4ZWxzID0gdGhpcy52ZXJpZnlXaWR0aENvbHVtbnNQaXhlbHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U3VidGl0bGVDb2x1bW5zKCkge1xuICAgIHRoaXMuc3VidGl0bGVDb2x1bW5zID0gdGhpcy5nZXRTdWJ0aXRsZUNvbHVtbnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zZWxlY3RPdGhlclJvd3Mocm93czogQXJyYXk8YW55Piwgcm93KSB7XG4gICAgcm93cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKGl0ZW0gIT09IHJvdykge1xuICAgICAgICBpdGVtLiRzZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlXaWR0aENvbHVtbnNQaXhlbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzTWFpbkNvbHVtbnMgPyB0aGlzLm1haW5Db2x1bW5zLmV2ZXJ5KGNvbHVtbiA9PiBjb2x1bW4ud2lkdGggJiYgY29sdW1uLndpZHRoLmluY2x1ZGVzKCdweCcpKSA6IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZXJ2aWNlKHNlcnZpY2U6IHN0cmluZywgbWV0aG9kOiAnR0VUJyB8ICdERUxFVEUnKSB7XG4gICAgaWYgKHNlcnZpY2UgJiYgaXNUeXBlb2Yoc2VydmljZSwgJ3N0cmluZycpKSB7XG4gICAgICB0aGlzLnBvVGFibGVTZXJ2aWNlLnNldFVybChzZXJ2aWNlLCBtZXRob2QpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsdGVyZWRQYXJhbXMocXVlcnlQYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IFF1ZXJ5UGFyYW1zVHlwZSB9KSB7XG4gICAgY29uc3QgeyBwYWdlLCBwYWdlU2l6ZSwgc29ydFN0b3JlIH0gPSB0aGlzO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQYXJhbXMgPSB7fTtcbiAgICBjb25zdCBvcmRlciA9IHRoaXMuZ2V0T3JkZXJQYXJhbShzb3J0U3RvcmUpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgcGFnZSwgcGFnZVNpemUsIG9yZGVyLCAuLi5xdWVyeVBhcmFtcyB9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGFyYW1zKSB7XG4gICAgICBpZiAocGFyYW1zLmhhc093blByb3BlcnR5KGtleSkgJiYgcGFyYW1zW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmaWx0ZXJlZFBhcmFtc1trZXldID0gcGFyYW1zW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXJlZFBhcmFtcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3JkZXJQYXJhbShzb3J0OiBQb1RhYmxlQ29sdW1uU29ydCA9IHsgdHlwZTogdW5kZWZpbmVkIH0pIHtcbiAgICBjb25zdCB7IGNvbHVtbiwgdHlwZSB9ID0gc29ydDtcblxuICAgIGlmICghY29sdW1uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09IFBvVGFibGVDb2x1bW5Tb3J0VHlwZS5EZXNjZW5kaW5nKSB7XG4gICAgICByZXR1cm4gYC0ke2NvbHVtbi5wcm9wZXJ0eX1gO1xuICAgIH1cblxuICAgIHJldHVybiBgJHtjb2x1bW4ucHJvcGVydHl9YDtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUHJvcGVydHlGaXhlZChhcnI6IEFycmF5PGFueT4pIHtcbiAgICByZXR1cm4gYXJyLm1hcChvYmogPT4ge1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eSgnZml4ZWQnKSkge1xuICAgICAgICBvYmouZml4ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2FsY3VsYXRlSGVpZ2h0VGFibGVDb250YWluZXIoaGVpZ2h0KTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2hlY2tJbmZpbml0ZVNjcm9sbCgpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjaGFuZ2VTaXplTG9hZGluZygpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjaGFuZ2VIZWFkZXJXaWR0aCgpO1xufVxuIl19
|
|
1338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tdGFibGUvcG8tdGFibGUtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUF3QixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBSTVHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7OztBQVdyRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQUM7QUFDaEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ3BDLEVBQUUsRUFBbUI7UUFDbkIsU0FBUyxFQUFFLHlCQUF5QjtRQUNwQyxNQUFNLEVBQUUsZUFBZTtRQUN2QixNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsYUFBYSxFQUFFLGdCQUFnQjtRQUMvQixlQUFlLEVBQUUsbUJBQW1CO1FBQ3BDLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLFlBQVksRUFBRSxnQkFBZ0I7UUFD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QUFtQjtZQWtCZSxzQkFBc0I7a0JBQTlELEtBQUs7bUJBQUMsNEJBQTRCO1lBa0NQLFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZTtZQXlCUyxnQkFBZ0I7a0JBQTlDLEtBQUs7bUJBQUMsa0JBQWtCO1lBb0JELE9BQU87a0JBQTlCLEtBQUs7bUJBQUMsV0FBVztZQXFCZSxlQUFlO2tCQUEvQyxLQUFLO21CQUFDLG9CQUFvQjtZQWdFRCxTQUFTO2tCQUFsQyxLQUFLO21CQUFDLGFBQWE7WUFvQlcsYUFBYTtrQkFBM0MsS0FBSzttQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQb0RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tZGF0ZS9wby1kYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IGNhcGl0YWxpemVGaXJzdExldHRlciwgY29udmVydFRvQm9vbGVhbiwgaXNUeXBlb2YsIHNvcnRWYWx1ZXMgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9TZWFyY2hGaWx0ZXJNb2RlIH0gZnJvbSAnLi4vcG8tc2VhcmNoL2VudW0vcG8tc2VhcmNoLWZpbHRlci1tb2RlLmVudW0nO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtblNvcnRUeXBlIH0gZnJvbSAnLi9lbnVtcy9wby10YWJsZS1jb2x1bW4tc29ydC10eXBlLmVudW0nO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtblNwYWNpbmcgfSBmcm9tICcuL2VudW1zL3BvLXRhYmxlLXNwYWNpbmcuZW51bSc7XG5pbXBvcnQgeyBQb1RhYmxlQWN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXRhYmxlLWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtblNvcnQgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tdGFibGUtY29sdW1uLXNvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW4gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tdGFibGUtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlRmlsdGVyZWRJdGVtc1BhcmFtcyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby10YWJsZS1maWx0ZXJlZC1pdGVtcy1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGFibGVMaXRlcmFscyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby10YWJsZS1saXRlcmFscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZVJlc3BvbnNlQXBpIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXRhYmxlLXJlc3BvbnNlLWFwaS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UYWJsZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLXRhYmxlLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBRdWVyeVBhcmFtc1R5cGUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xuXG5leHBvcnQgY29uc3QgcG9UYWJsZUNvbnRhaW5lciA9IFsnYm9yZGVyJywgJ3NoYWRvdyddO1xuZXhwb3J0IGNvbnN0IHBvVGFibGVDb250YWluZXJEZWZhdWx0ID0gJ2JvcmRlcic7XG5leHBvcnQgY29uc3QgcG9UYWJsZVBhcmFtRGVsZXRlQXBpID0gJ2lkJztcblxuZXhwb3J0IGNvbnN0IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQgPSB7XG4gIGVuOiA8UG9UYWJsZUxpdGVyYWxzPntcbiAgICBub0NvbHVtbnM6ICdDb2x1bW5zIGFyZSBub3QgZGVmaW5lZCcsXG4gICAgbm9EYXRhOiAnTm8gZGF0YSBmb3VuZCcsXG4gICAgbm9JdGVtOiAnTm8gc2VsZWN0ZWQgaXRlbScsXG4gICAgb25lSXRlbTogJzEgc2VsZWN0ZWQgaXRlbScsXG4gICAgbXVsdGlwbGVJdGVtczogJ3NlbGVjdGVkIGl0ZW1zJyxcbiAgICBub1Zpc2libGVDb2x1bW46ICdObyB2aXNpYmxlIGNvbHVtbicsXG4gICAgbG9hZGluZ0RhdGE6ICdMb2FkaW5nJyxcbiAgICBsb2FkTW9yZURhdGE6ICdMb2FkIG1vcmUgZGF0YScsXG4gICAgc2VlQ29tcGxldGVTdWJ0aXRsZTogJ1NlZSBjb21wbGV0ZSBzdWJ0aXRsZScsXG4gICAgY29tcGxldGVTdWJ0aXRsZTogJ0NvbXBsZXRlIHN1YnRpdGxlJyxcbiAgICBjb2x1bW5zTWFuYWdlcjogJ0NvbHVtbnMgbWFuYWdlcicsXG4gICAgYm9keURlbGV0ZTogJ0RvIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBpdGVtPycsXG4gICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgIGRlbGV0ZVN1Y2Nlc3NmdWw6ICdJdGVtcyByZW1vdmVkIHN1Y2Nlc3NmdWxseScsXG4gICAgZGVsZXRlQXBpRXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyJ1xuICB9LFxuICBlczogPFBvVGFibGVMaXRlcmFscz57XG4gICAgbm9Db2x1bW5zOiAnQ29sdW1uYXMgbm8gZGVmaW5pZGFzJyxcbiAgICBub0RhdGE6ICdEYXRvcyBubyBlbmNvbnRyYWRvcycsXG4gICAgbm9JdGVtOiAnTmluZ8O6biBlbGVtZW50byBzZWxlY2Npb25hZG8nLFxuICAgIG9uZUl0ZW06ICcxIGVsZW1lbnRvIHNlbGVjY2lvbmFkbycsXG4gICAgbXVsdGlwbGVJdGVtczogJ2VsZW1lbnRvcyBzZWxlY2Npb25hZG9zJyxcbiAgICBub1Zpc2libGVDb2x1bW46ICdTaW4gY29sdW1uYXMgdmlzaWJsZXMnLFxuICAgIGxvYWRpbmdEYXRhOiAnQ2FyZ2FuZG8gZGF0b3MnLFxuICAgIGxvYWRNb3JlRGF0YTogJ0NhcmdhciBtw6FzIHJlc3VsdGFkb3MnLFxuICAgIHNlZUNvbXBsZXRlU3VidGl0bGU6ICdWZXIgc3VidGl0dWxvIGNvbXBsZXRvJyxcbiAgICBjb21wbGV0ZVN1YnRpdGxlOiAnU3VidGl0dWxvIGNvbXBsZXRvJyxcbiAgICBjb2x1bW5zTWFuYWdlcjogJ0dlcmVudGUgZGUgY29sdW1uYScsXG4gICAgYm9keURlbGV0ZTogJ8K/UmVhbG1lbnRlIGRlc2VhIGVsaW1pbmFyIGVzdGUgZWxlbWVudG8/JyxcbiAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgZGVsZXRlOiAnQm9ycmFyJyxcbiAgICBkZWxldGVTdWNjZXNzZnVsOiAnRWxlbWVudG9zIGVsaW1pbmFkb3MgY29uIMOpeGl0bycsXG4gICAgZGVsZXRlQXBpRXJyb3I6ICdPY3VycmnDsyB1biBlcnJvciBpbmVzcGVyYWRvLCBpbnTDqW50YWxvIGRlIG51ZXZvIG3DoXMgdGFyZGUnXG4gIH0sXG4gIHB0OiA8UG9UYWJsZUxpdGVyYWxzPntcbiAgICBub0NvbHVtbnM6ICdOZW5odW1hIGRlZmluacOnw6NvIGRlIGNvbHVuYXMnLFxuICAgIG5vRGF0YTogJ05lbmh1bSBkYWRvIGVuY29udHJhZG8nLFxuICAgIG5vVmlzaWJsZUNvbHVtbjogJ05lbmh1bWEgY29sdW5hIHZpc8OtdmVsJyxcbiAgICBub0l0ZW06ICdOZW5odW0gaXRlbSBzZWxlY2lvbmFkbycsXG4gICAgb25lSXRlbTogJzEgaXRlbSBzZWxlY2lvbmFkbycsXG4gICAgbXVsdGlwbGVJdGVtczogJ2l0ZW5zIHNlbGVjaW9uYWRvcycsXG4gICAgbG9hZGluZ0RhdGE6ICdDYXJyZWdhbmRvJyxcbiAgICBsb2FkTW9yZURhdGE6ICdDYXJyZWdhciBtYWlzIHJlc3VsdGFkb3MnLFxuICAgIHNlZUNvbXBsZXRlU3VidGl0bGU6ICdWZXIgbGVnZW5kYSBjb21wbGV0YScsXG4gICAgY29tcGxldGVTdWJ0aXRsZTogJ0xlZ2VuZGEgY29tcGxldGEnLFxuICAgIGNvbHVtbnNNYW5hZ2VyOiAnR2VyZW5jaWFkb3IgZGUgY29sdW5hcycsXG4gICAgYm9keURlbGV0ZTogJ0Rlc2VqYSByZWFsbWVudGUgZXhjbHVpciBlc3NlIGl0ZW0/JyxcbiAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgZGVsZXRlOiAnRXhjbHVpcicsXG4gICAgZGVsZXRlU3VjY2Vzc2Z1bDogJ0l0ZW5zIHJlbW92aWRvcyBjb20gc3VjZXNzbycsXG4gICAgZGVsZXRlQXBpRXJyb3I6ICdPY29ycmV1IHVtIGVycm8gaW5lc3BlcmFkbywgdGVudGUgbm92YW1lbnRlIG1haXMgdGFyZGUhJ1xuICB9LFxuICBydTogPFBvVGFibGVMaXRlcmFscz57XG4gICAgbm9Db2x1bW5zOiAn0J3QtdGCINC+0L/RgNC10LTQtdC70LXQvdC40Y8g0YHRgtC+0LvQsdGG0LAnLFxuICAgIG5vRGF0YTogJ9CU0LDQvdC90YvQtSDQvdC1INC90LDQudC00LXQvdGLJyxcbiAgICBub0l0ZW06ICfQndC10YIg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0Y3Qu9C10LzQtdC90YLQsCcsXG4gICAgb25lSXRlbTogJzEg0Y3Qu9C10LzQtdC90YIg0LLRi9Cx0YDQsNC9JyxcbiAgICBtdWx0aXBsZUl0ZW1zOiAn0LLRi9Cx0YDQsNC90L3Ri9C1INGN0LvQtdC80LXQvdGC0YsnLFxuICAgIG5vVmlzaWJsZUNvbHVtbjogJ9C90LXRgiDQstC40LTQuNC80YvRhSDRgdGC0L7Qu9Cx0YbQvtCyJyxcbiAgICBsb2FkaW5nRGF0YTogJ9CX0LDQs9GA0YPQt9C60LAnLFxuICAgIGxvYWRNb3JlRGF0YTogJ9CX0LDQs9GA0YPQt9C60LAnLFxuICAgIHNlZUNvbXBsZXRlU3VidGl0bGU6ICfQn9C+0YHQvNC+0YLRgNC10YLRjCDQv9C+0LvQvdGL0Lkg0YHRg9Cx0YLQuNGC0YAnLFxuICAgIGNvbXBsZXRlU3VidGl0bGU6ICfQn9C+0LvQvdGL0Lkg0LfQsNCz0L7Qu9C+0LLQvtC6JyxcbiAgICBjb2x1bW5zTWFuYWdlcjogJ9C80LXQvdC10LTQttC10YAg0LrQvtC70L7QvdC+0LonLFxuICAgIGJvZHlEZWxldGU6ICfQktGLINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDRjdGC0L7RgiDRjdC70LXQvNC10L3Rgj8nLFxuICAgIGNhbmNlbDogJ9Ce0YLQvNC10L3QsCcsXG4gICAgZGVsZXRlOiAn0KPQtNCw0LvQuNGC0YwnLFxuICAgIGRlbGV0ZVN1Y2Nlc3NmdWw6ICfQrdC70LXQvNC10L3RgtGLINGD0YHQv9C10YjQvdC+INGD0LTQsNC70LXQvdGLJyxcbiAgICBkZWxldGVBcGlFcnJvcjogJ9Cf0YDQvtC40LfQvtGI0LvQsCDQvdC10L/RgNC10LTQstC40LTQtdC90L3QsNGPINC+0YjQuNCx0LrQsCwg0L/QvtCy0YLQvtGA0LjRgtC1INC/0L7Qv9GL0YLQutGDINC/0L7Qt9C20LUnXG4gIH1cbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogRXN0ZSBjb21wb25lbnRlIGRlIHRhYmVsYSDDqSB1dGlsaXphZG8gcGFyYSBleGliacOnw6NvIGRlIGRhZG9zIGNvbSBkaWZlcmVudGVzIHRpcG9zIGNvbW8gcG9yIGV4ZW1wbG8gdGV4dG9zLCBkYXRhLCBob3JhcyBlIG7Dum1lcm9zIGNvbVxuICogZm9ybWF0byBwZXJzb25hbGl6YWRvLlxuICpcbiAqIFRhbWLDqW0gw6kgcG9zc2l2ZWwgY3JpYXIgdGFiZWxhcyBjb20gb3JkZW5hw6fDo28gZGUgZGFkb3MsIGxpbmhhcyBjb20gZGV0YWxoZXMsIGNvbHVuYSBwYXJhIHNlbGXDp8OjbyBkZSBsaW5oYXMsIGNvbHVuYSBjb20gYcOnw7VlcyBlIHRhbWLDqW1cbiAqIGNhcnJlZ2FtZW50byBwb3IgZGVtYW5kYSBhdHJhdsOpcyBkbyBib3TDo28gKipDYXJyZWdhciBtYWlzIHJlc3VsdGFkb3MqKi5cbiAqXG4gKiA+IEFzIGxpbmhhcyBkZSBkZXRhbGhlcyBwb2RlbSB0YW1iw6ltIHNlciBjdXN0b21pemFkYXMgYXRyYXbDqXMgZG8gW2BwLXRhYmxlLXJvdy10ZW1wbGF0ZWBdKC9kb2N1bWVudGF0aW9uL3BvLXRhYmxlLXJvdy10ZW1wbGF0ZSkuXG4gKlxuICogPiBBcyBjb2x1bmFzIHBvZGVtIHNlciBjdXN0b21pemFkYXMgYXRyYXbDqXMgZG9zIHRlbXBsYXRlcyBbYHAtdGFibGUtY29sdW1uLXRlbXBsYXRlYF0oL2RvY3VtZW50YXRpb24vcG8tdGFibGUtY29sdW1uLXRlbXBsYXRlKVxuICogZSBbYHAtdGFibGUtY2VsbC10ZW1wbGF0ZWBdKC9kb2N1bWVudGF0aW9uL3BvLXRhYmxlLWNlbGwtdGVtcGxhdGUpLlxuICpcbiAqIE8gY29tcG9uZW50ZSBwZXJtaXRlIGdlcmVuY2lhciBhIGV4aWJpw6fDo28gZGFzIGNvbHVuYXMgZGluYW1pY2FtZW50ZS4gRXN0YSBmdW5jaW9uYWxpZGFkZSBwb2RlIHNlciBhY2Vzc2FkYSBhdHJhdsOpcyBkbyDDrWNvbmUgZGUgZW5ncmVuYWdlbVxuICogbm8gY2FudG8gc3VwZXJpb3IgZGlyZWl0byBkbyBjYWJlw6dhbGhvIGRhIHRhYmVsYS5cbiAqXG4gKiBDYXNvIGEgbGFyZ3VyYSBkZSB0b2RhcyBhcyBjb2x1bmFzIGZvcmVtIGRlZmluaWRhcyBlIG8gdG90YWwgdWx0cmFwYXNzYXIgbyB0YW1hbmhvIHRhYmVsYSwgc2Vyw6EgZXhpYmlkbyB1bSAqc2Nyb2xsKiBuYSBob3Jpem9udGFsIHBhcmEgYVxuICogY29tcGxldGEgdmlzdWFsaXphw6fDo28gZG9zIGRhZG9zLlxuICpcbiAqICMjIyMgVG9rZW5zIGN1c3RvbWl6w6F2ZWlzXG4gKlxuICogw4kgcG9zc8OtdmVsIGFsdGVyYXIgbyBlc3RpbG8gZG8gY29tcG9uZW50ZSB1c2FuZG8gb3Mgc2VndWludGVzIHRva2VucyAoQ1NTKTpcbiAqXG4gKiA+IFBhcmEgbWFpb3JlcyBpbmZvcm1hw6fDtWVzLCBhY2Vzc2UgbyBndWlhIFtQZXJzb25hbGl6YW5kbyBvIFRlbWEgUGFkcsOjbyBjb20gVG9rZW5zIENTU10oaHR0cHM6Ly9wby11aS5pby9ndWlkZXMvdGhlbWUtY3VzdG9taXphdGlvbikuXG4gKlxuICogfCBQcm9wcmllZGFkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyacOnw6NvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWYWxvciBQYWRyw6NvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipEZWZhdWx0IFZhbHVlcyoqICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LWZhbWlseWAgICAgICAgICAgICAgICAgICAgICAgICB8IEZhbcOtbGlhIHRpcG9ncsOhZmljYSB1c2FkYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tZm9udC1mYW1pbHktdGhlbWUpYCAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvcmAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGUgYmFja2dyb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTAwKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvcmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBwcmluY2lwYWwgZGEgdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtZGFyay05NSlgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWJhY2tncm91bmQtc3RyaXBlZC1jb2xvcmAgICAgICAgICAgIHwgQ29yIGRvIGJhY2tncm91bmQgcXVhbmRvIHN0cmlwZWQgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1saWdodC0wNSlgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItbGluZWAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGFzIGxpbmhhcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLW1pZC00MClgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkhvdmVyKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWNvbG9yLWhvdmVyYCAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIHByaW5jaXBhbCBubyBlc3RhZG8gaG92ZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWhvdmVyKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvci1ob3ZlcmAgICAgICAgICAgICAgfCBDb3IgZGUgYmFja2dyb3VuZCBubyBlc3RhZG8gaG92ZXIgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1saWdodGVyKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkZvY3VzZWQqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLW91dGxpbmUtY29sb3ItZm9jdXNlZGAgICAgICAgICAgICAgIHwgQ29yIGRvIG91dGxpbmUgZG8gZXN0YWRvIGRlIGZvY3VzICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWZvY3VzKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipEaXNhYmxlZCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvci1kaXNhYmxlZGAgICAgICAgICAgICAgICAgICAgICB8IENvciBwcmluY2lwYWwgbm8gZXN0YWRvIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbWlkLTQwKWAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqSGVhZGxpbmUqKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvci1oZWFkbGluZWAgJm5ic3A7ICAgfCBDb3IgZG8gY2FiZcOnYWxobyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1saWdodC0xMClgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHQtaGVhZGxpbmVgICAgICAgICAgICAgICAgfCBQZXNvIGRhIGZvbnRlIGRvIGNhYmXDp2FsaG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tZm9udC13ZWlnaHQtYm9sZClgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipTZWxlY3RlZCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkYCZuYnNwOyAgICB8IENvciBkZSBiYWNrZ3JvdW5kIG5vIGVzdGFkbyBkZSBzZWxlY2lvbmFkbyAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWJyYW5kLTAxLWxpZ2h0ZXN0KWAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqQWN0aXZlZCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItYWN0aXZlZGAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZG8gdGV4dG8gbm8gZXN0YWRvIGRlIHNlbGVjaW9uYWRvICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWRhcmstOTApYCAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZWRgICAgICAgICAgICB8IENvciBkZSBiYWNrZ3JvdW5kIG5vIGVzdGFkbyBkZSBzZWxlY2lvbmFkbyAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWJyYW5kLTAxLWxpZ2h0KWAgICAgICAgICAgICAgICAgICAgICB8XG4gKlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb1RhYmxlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUGVybWl0ZSBxdWUgbyBnZXJlbmNpYWRvciBkZSBjb2x1bmFzLCByZXNwb25zw6F2ZWwgcGVsYSBkZWZpbmnDp8OjbyBkZSBxdWFpcyBjb2x1bmFzIHNlcsOjbyBleGliaWRhcywgc2VqYSBlc2NvbmRpZG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1oaWRlLWNvbHVtbnMtbWFuYWdlcicsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBoaWRlQ29sdW1uc01hbmFnZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUGVybWl0ZSBxdWUgYXMgYcOnw7VlcyBlbSBsb3RlLCByZXNwb25zw6F2ZWwgcG9yIGV4Y2x1aXIgZSBleGliaXIgYSBxdWFudGlkYWRlIGRlIGl0ZW5zLCBzZWphbSBlc2NvbmRpZGFzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1oaWRlLWJhdGNoLWFjdGlvbnMnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgaGlkZUJhdGNoQWN0aW9uczogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSGFiaWxpdGEgb3UgZGVzYWJpbGl0YSBhIHF1ZWJyYSBhdXRvbcOhdGljYSBkZSB0ZXh0by4gUXVhbmRvIGF0aXZhZGEsIG8gdGV4dG8gcXVlIGV4Y2VkZVxuICAgKiBvIGVzcGHDp28gZGlzcG9uw612ZWwgw6kgdHJhbnNmZXJpZG8gcGFyYSBhIHByw7N4aW1hIGxpbmhhIGVtIHBvbnRvcyBhcHJvcHJpYWRvcyBwYXJhIHVtYVxuICAgKiBsZWl0dXJhIGNsYXJhLlxuICAgKlxuICAgKiA+IEluY29tcGF0w612ZWwgY29tIGB2aXJ0dWFsLXNjcm9sbGAsIHF1ZSByZXF1ZXIgYWx0dXJhIGZpeGEgbmFzIGxpbmhhcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLXRleHQtd3JhcCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSB0ZXh0V3JhcD86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBQZXJtaXRlIHF1ZSBhcyBhw6fDtWVzIHBhcmEgZml4YXIgdW1hIGNvbHVuYSBkYSB0YWJlbGEgc2VqYW0gZXNjb25kaWRhcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWhpZGUtYWN0aW9uLWZpeGVkLWNvbHVtbnMnKSBzZXQgaGlkZUFjdGlvbkZpeGVkQ29sdW1ucyhoaWRlOiBib29sZWFuKSB7XG4gICAgaWYgKGhpZGUpIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMucmVtb3ZlUHJvcGVydHlGaXhlZCh0aGlzLmNvbHVtbnMpO1xuICAgIH1cbiAgICB0aGlzLl9oaWRlQWN0aW9uRml4ZWRDb2x1bW5zID0gaGlkZTtcbiAgfVxuXG4gIGdldCBoaWRlQWN0aW9uRml4ZWRDb2x1bW5zKCkge1xuICAgIHJldHVybiB0aGlzLl9oaWRlQWN0aW9uRml4ZWRDb2x1bW5zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUGVybWl0ZSBxdWUgbyBjYW1wbyBkZSBwZXNxdWlzYSBzZWphIGVzY29uZGlkby5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtaGlkZS10YWJsZS1zZWFyY2gnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgaGlkZVRhYmxlU2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBQZXJtaXRlIGZlY2hhciB1bSBkZXRhbGhlIG91IHJvdyB0ZW1wbGF0ZSBhdXRvbWF0aWNhbWVudGUsIGFvIGFicmlyIG91dHJvIGl0ZW0uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1hdXRvLWNvbGxhcHNlJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIGF1dG9Db2xsYXBzZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBlcm1pdGUgcXVlIHNlamEgYWRpY2lvbmFkbyBvIGVzdGFkbyBkZSBjYXJyZWdhbWVudG8gbm8gYm90w6NvIFwiQ2FycmVnYXIgbWFpcyByZXN1bHRhZG9zXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1sb2FkaW5nLXNob3ctbW9yZScsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBsb2FkaW5nU2hvd01vcmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSGFiaWxpdGEgZW0gdG9kYXMgYXMgY29sdW5hcyBhIG9ww6fDo28gZGUgb3JkZW5hw6fDo28gZGUgZGFkb3MuIENhc28gYSBjb2x1bmEgc2VqYSBkbyB0aXBvICdkYXRhJyBvdSAnZGF0ZVRpbWUnIGFcbiAgICogbWVzbWEgZGV2ZSByZXNwZWl0YXIgb3MgdGlwb3MgZGUgZW50cmFkYSBkZWZpbmlkb3MgcGFyYSBxdWUgc2VqYW0gb3JkZW5hZGFzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3Atc29ydCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBzb3J0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBTZSB2ZXJkYWRlaXJvLCB0b3JuYSBoYWJpbGl0YWRvIG8gYm90w6NvIFwiQ2FycmVnYXIgbWFpcyByZXN1bHRhZG9zXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1zaG93LW1vcmUtZGlzYWJsZWQnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgc2hvd01vcmVEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSGFiaWxpdGEgb3UgZGVzYWJpbGl0YSBvIGVzdGlsbyBsaXN0cmFkbyBkYSB0YWJlbGEgKGBzdHJpcGVkYCkuXG4gICAqID4gUmVjb21lbmRhZG8gcGFyYSB0YWJlbGFzIGNvbSBtYWlvciBuw7ptZXJvIGRlIGRhZG9zLCBmYWNpbGl0YW5kbyBhIHN1YSB2aXN1YWxpemHDp8OjbyBuYSB0YWJlbGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1zdHJpcGVkJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIHN0cmlwZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEVzY29uZGUgbyAqY2hlY2tib3gqIHBhcmEgc2VsZcOnw6NvIGRlIHRvZGFzIGFzIGxpbmhhcy5cbiAgICpcbiAgICogPiBTZW1wcmUgcmVjZWJlcsOhICp0cnVlKiBjYXNvIGEgc2VsZcOnw6NvIGRlIGFwZW5hcyB1bWEgbGluaGEgZXN0ZWphIGF0aXZhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtaGlkZS1zZWxlY3QtYWxsJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIGhpZGVTZWxlY3RBbGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBxdWUgc29tZW50ZSB1bWEgbGluaGEgZGEgdGFiZWxhIHBvZGUgc2VyIHNlbGVjaW9uYWRhLlxuICAgKlxuICAgKiA+IEVzdGEgZGVmaW5pw6fDo28gbsOjbyBzZSBhcGxpY2EgYW9zIGl0ZW5zIGZpbGhvcywgb3MgbWVzbW9zIHBvc3N1ZW0gY29tcG9ydGFtZW50byBpbmRlcGVuZGVudGUgZG8gaXRlbSBwYWkuXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3Atc2luZ2xlLXNlbGVjdCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBzaW5nbGVTZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBlcm1pdGUgc2VsZWNpb25hciB1bSBpdGVtIGRhIHRhYmVsYSBjbGljYW5kbyBuYSBsaW5oYS5cbiAgICpcbiAgICogPiBDYXNvIGhhamEgbmVjZXNzaWRhZGUgZGUgc2VsZWNpb25hciBvIGl0ZW0gYXBlbmFzIHZpYSByYWRpbyBvdSBjaGVja2JveCwgZGV2ZS1zZSBkZWZpbmlyIGVzdGEgcHJvcHJpZWRhZGUgY29tbyBgZmFsc2VgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1zZWxlY3RhYmxlLWVudGlyZS1saW5lJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIHNlbGVjdGFibGVFbnRpcmVMaW5lOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgcXVlIGEgY29sdW5hIGRlIGHDp8O1ZXMgZmljYXLDoSBubyBsYWRvIGRpcmVpdG8gZGEgdGFiZWxhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtYWN0aW9ucy1yaWdodCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBhY3Rpb25SaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSB1bWEgcXVhbnRpZGFkZSBtw6F4aW1hIGRlIGNvbHVuYXMgcXVlIHNlcsOjbyBleGliaWRhcyBuYSB0YWJlbGEuXG4gICAqXG4gICAqIFF1YW5kbyBjaGVnYXIgbm8gdmFsb3IgaW5mb3JtYWRvLCBhcyBjb2x1bmFzIHF1ZSBuw6NvIGVzdGl2ZXJlbSBzZWxlY2lvbmFkYXMgZmljYXLDo29cbiAgICogZGVzYWJpbGl0YWRhcyBlIGNhc28gaG91dmVyIG1haXMgY29sdW5hcyB2aXPDrXZlaXMgZG8gcXVlIG8gcGVybWl0aWRvLCBhcyBleGNlZGVudGVzXG4gICAqIHNlcsOjbyBpZ25vcmFkYXMgcG9yIG9yZGVtIGRlIHBvc2nDp8Ojby5cbiAgICovXG4gIEBJbnB1dCgncC1tYXgtY29sdW1ucycpIG1heENvbHVtbnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIG8gbW9kbyBkZSBwZXNxdWlzYSB1dGlsaXphZG8gbm8gY2FtcG8gZGUgYnVzY2EsIHF1YW5kbyBoYWJpbGl0YWRvLlxuICAgKiBWYWxvcmVzIGRlZmluaWRvcyBubyBlbnVtOiBQb1NlYXJjaEZpbHRlck1vZGVcbiAgICogPiBPYnM6IEEgcGVzcXVpc2Egw6kgcmVhbGl6YWRhIGV4Y2x1c2l2YW1lbnRlIG5vcyBkYWRvcyBsb2NhaXMsIG91IHNlamEsIGFxdWVsZXMgcXVlIGZvcmFtXG4gICAqID4gcmVuZGVyaXphZG9zIG5hIHRhYmVsYS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHN0YXJ0c1dpdGhgXG4gICAqL1xuICBASW5wdXQoJ3AtZmlsdGVyLXR5cGUnKSBmaWx0ZXJUeXBlOiBQb1NlYXJjaEZpbHRlck1vZGUgPSBQb1NlYXJjaEZpbHRlck1vZGUuc3RhcnRzV2l0aDtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFdmVudG8gZXhlY3V0YWRvIHF1YW5kbyB0b2RhcyBhcyBsaW5oYXMgc8OjbyBzZWxlY2lvbmFkYXMgcG9yIG1laW8gZG8gKmNoZWNrYm94KiBxdWUgc2VsZWNpb25hIHRvZGFzIGFzIGxpbmhhcy5cbiAgICovXG4gIEBPdXRwdXQoJ3AtYWxsLXNlbGVjdGVkJykgYWxsU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXZlbnRvIGV4ZWN1dGFkbyBxdWFuZG8gYSBzZWxlw6fDo28gZGFzIGxpbmhhcyDDqSBkZXNtYXJjYWRhIHBvciBtZWlvIGRvICpjaGVja2JveCogcXVlIHNlbGVjaW9uYSB0b2RhcyBhcyBsaW5oYXMuXG4gICAqL1xuICBAT3V0cHV0KCdwLWFsbC11bnNlbGVjdGVkJykgYWxsVW5zZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZXhlY3V0YWRvIGFvIGNvbGFwc2FyIHVtYSBsaW5oYSBkbyBgcG8tdGFibGVgLlxuICAgKlxuICAgKiA+IENvbW8gcGFyw6JtZXRybyBvIGNvbXBvbmVudGUgZW52aWEgbyBpdGVtIGNvbGFwc2Fkby5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY29sbGFwc2VkJykgY29sbGFwc2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBleGVjdXRhZG8gYW8gZXhwYW5kaXIgdW1hIGxpbmhhIGRvIGBwby10YWJsZWAuXG4gICAqXG4gICAqID4gQ29tbyBwYXLDom1ldHJvIG8gY29tcG9uZW50ZSBlbnZpYSBvIGl0ZW0gZXhwYW5kaWRvLlxuICAgKi9cbiAgQE91dHB1dCgncC1leHBhbmRlZCcpIGV4cGFuZGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBleGVjdXRhZG8gYXDDs3MgbyBtw6l0b2RvIGRlIGV4Y2x1c8OjbyBzZXIgZmluYWxpemFkby5cbiAgICpcbiAgICogYGBgXG4gICAqPHBvLXRhYmxlXG4gICAqICAocC1kZWxldGUtaXRlbXMpPVwiaXRlbXMgPSAkZXZlbnRcIlxuICAgKiA+XG4gICAqPC9wby10YWJsZT5cbiAgICogYGBgXG4gICAqXG4gICAqXG4gICAqID4gQ29tbyBwYXLDom1ldHJvIG8gY29tcG9uZW50ZSBlbnZpYSBhIGxpc3RhIGF0dWFsaXphZGEsIHNlbSBvcyBpdGVucyBleGNsdcOtZG9zLlxuICAgKi9cbiAgQE91dHB1dCgncC1kZWxldGUtaXRlbXMnKSBldmVudERlbGV0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZXhlY3V0YWRvIGFvIHNlbGVjaW9uYXIgdW1hIGxpbmhhIGRvIGBwby10YWJsZWAuXG4gICAqL1xuICBAT3V0cHV0KCdwLXNlbGVjdGVkJykgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUmVjZWJlIHVtYSBhw6fDo28gZGUgY2xpcXVlIHBhcmEgbyBib3TDo28gXCJDYXJyZWdhciBtYWlzIHJlc3VsdGFkb3NcIiwgY2FzbyBuZW5odW1hIGHDp8OjbyBmb3IgZGVmaW5pZGEgbyBtZXNtb1xuICAgKiBuw6NvIMOpIHZpc8OtdmVsLlxuICAgKlxuICAgKiBSZWNlYmUgdW0gb2JqZXRvIGB7IGNvbHVtbiwgdHlwZSB9YCBvbmRlOlxuICAgKlxuICAgKiAtIGNvbHVtbiAoYFBvVGFibGVDb2x1bW5gKTogb2JqZXRvIGRhIGNvbHVuYSBxdWUgZXN0w6Egb3JkZW5hZGEuXG4gICAqIC0gdHlwZSAoYFBvVGFibGVDb2x1bW5Tb3J0VHlwZWApOiB0aXBvIGRhIG9yZGVuYcOnw6NvLlxuICAgKi9cbiAgQE91dHB1dCgncC1zaG93LW1vcmUnKSBzaG93TW9yZTogRXZlbnRFbWl0dGVyPFBvVGFibGVDb2x1bW5Tb3J0PiA9IG5ldyBFdmVudEVtaXR0ZXI8UG9UYWJsZUNvbHVtblNvcnQ+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIGV4ZWN1dGFkbyBhbyBvcmRlbmFyIGNvbHVuYXMgZGEgdGFiZWxhLlxuICAgKlxuICAgKiBSZWNlYmUgdW0gb2JqZXRvIGB7IGNvbHVtbiwgdHlwZSB9YCBvbmRlOlxuICAgKlxuICAgKiAtIGNvbHVtbiAoYFBvVGFibGVDb2x1bW5gKTogb2JqZXRvIGRhIGNvbHVuYSBxdWUgZm9pIGNsaWNhZGEvb3JkZW5hZGEuXG4gICAqIC0gdHlwZSAoYFBvVGFibGVDb2x1bW5Tb3J0VHlwZWApOiB0aXBvIGRhIG9yZGVuYcOnw6NvLlxuICAgKi9cbiAgQE91dHB1dCgncC1zb3J0LWJ5Jykgc29ydEJ5OiBFdmVudEVtaXR0ZXI8UG9UYWJsZUNvbHVtblNvcnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb1RhYmxlQ29sdW1uU29ydD4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFdmVudG8gZXhlY3V0YWRvIGFvIGRlc21hcmNhciBhIHNlbGXDp8OjbyBkZSB1bWEgbGluaGEgZG8gYHBvLXRhYmxlYC5cbiAgICovXG4gIEBPdXRwdXQoJ3AtdW5zZWxlY3RlZCcpIHVuc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXZlbnRvIGRpc3BhcmFkbyBhbyBmZWNoYXIgbyBwYWdlIHNsaWRlIGRvIGdlcmVuY2lhZG9yIGRlIGNvbHVuYXMgYXDDs3MgYWx0ZXJhciBhcyBjb2x1bmFzIHZpc8OtdmVpcy5cbiAgICpcbiAgICogTyBjb21wb25lbnRlIGVudmlhIGNvbW8gcGFyw6JtZXRybyB1bSBhcnJheSBkZSBzdHJpbmcgY29tIGFzIGNvbHVuYXMgdmlzw612ZWlzIGF0dWFsaXphZGFzLlxuICAgKiBQb3IgZXhlbXBsbzogW1wiaWRDYXJkXCIsIFwibmFtZVwiLCBcImhpcmVTdGF0dXNcIiwgXCJhZ2VcIl0uXG4gICAqL1xuICBAT3V0cHV0KCdwLWNoYW5nZS12aXNpYmxlLWNvbHVtbnMnKSBjaGFuZ2VWaXNpYmxlQ29sdW1ucyA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8c3RyaW5nPj4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFdmVudG8gZGlzcGFyYWRvIGFvIGNsaWNhciBubyBib3TDo28gZGUgcmVzdGF1cmFyIHBhZHLDo28gbm8gZ2VyZW5jaWFkb3IgZGUgY29sdW5hcy5cbiAgICpcbiAgICogTyBjb21wb25lbnRlIGVudmlhIGNvbW8gcGFyw6JtZXRybyB1bSBhcnJheSBkZSBzdHJpbmcgY29tIGFzIGNvbHVuYXMgY29uZmlndXJhZGFzIGluaWNpYWxtZW50ZS5cbiAgICogUG9yIGV4ZW1wbG86IFtcImlkQ2FyZFwiLCBcIm5hbWVcIiwgXCJoaXJlU3RhdHVzXCIsIFwiYWdlXCJdLlxuICAgKi9cbiAgQE91dHB1dCgncC1yZXN0b3JlLWNvbHVtbi1tYW5hZ2VyJykgY29sdW1uUmVzdG9yZU1hbmFnZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PFN0cmluZz4+KCk7XG5cbiAgYWxsQ29sdW1uc1dpZHRoUGl4ZWxzOiBib29sZWFuO1xuICBjb2x1bW5NYXN0ZXJEZXRhaWw6IFBvVGFibGVDb2x1bW47XG4gIGhhc01haW5Db2x1bW5zOiBib29sZWFuID0gZmFsc2U7XG4gIG1haW5Db2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPiA9IFtdO1xuICBzZWxlY3RBbGwgPSBmYWxzZTtcbiAgc29ydGVkQ29sdW1uID0geyBwcm9wZXJ0eTogPFBvVGFibGVDb2x1bW4+bnVsbCwgYXNjZW5kaW5nOiB0cnVlIH07XG4gIHN1YnRpdGxlQ29sdW1uczogQXJyYXk8UG9UYWJsZUNvbHVtbj4gPSBbXTtcbiAgcGFnZSA9IDE7XG4gIHBhZ2VTaXplID0gMTA7XG4gIGhhc1NlcnZpY2U/OiBib29sZWFuID0gZmFsc2U7XG4gIGluaXRpYWxDb2x1bW5zOiBBcnJheTxQb1RhYmxlQ29sdW1uPjtcbiAgc2hvd0JhdGNoQWN0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xuICBpdGVtc1NlbGVjdGVkOiBBcnJheTxhbnk+ID0gW107XG4gIHBhcmFtc0ZpbHRlcjoge307XG4gIGZpbHRlcmVkSXRlbXM6IEFycmF5PGFueT4gPSBbXTtcbiAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgZml4ZWRMYXlvdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpbml0aWFsVmlzaWJsZUNvbHVtbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc3BhY2luZzogUG9UYWJsZUNvbHVtblNwYWNpbmcgPSBQb1RhYmxlQ29sdW1uU3BhY2luZy5NZWRpdW07XG4gIHByaXZhdGUgX2ZpbHRlcmVkQ29sdW1uczogQXJyYXk8c3RyaW5nPjtcbiAgcHJpdmF0ZSBfYWN0aW9ucz86IEFycmF5PFBvVGFibGVBY3Rpb24+ID0gW107XG4gIHByaXZhdGUgX2NvbHVtbnM6IEFycmF5PFBvVGFibGVDb2x1bW4+ID0gW107XG4gIHByaXZhdGUgX2NvbnRhaW5lcj86IHN0cmluZztcbiAgcHJpdmF0ZSBfcGFyYW1EZWxldGU6IHN0cmluZyA9IHBvVGFibGVQYXJhbURlbGV0ZUFwaTtcbiAgcHJpdmF0ZSBfaGVpZ2h0PzogbnVtYmVyO1xuICBwcml2YXRlIF9oaWRlRGV0YWlsPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9pdGVtczogQXJyYXk8UG9UYWJsZUNvbHVtbj47XG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb1RhYmxlTGl0ZXJhbHM7XG4gIHByaXZhdGUgX2xvYWRpbmc/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3NlbGVjdGFibGU/OiBib29sZWFuO1xuICBwcml2YXRlIGxhbmd1YWdlOiBzdHJpbmcgPSBwb0xvY2FsZURlZmF1bHQ7XG4gIHByaXZhdGUgX3NlcnZpY2VBcGk6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2VydmljZURlbGV0ZUFwaTogc3RyaW5nO1xuICBwcml2YXRlIHBvVGFibGVTZXJ2aWNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc29ydFN0b3JlOiBQb1RhYmxlQ29sdW1uU29ydDtcbiAgcHJpdmF0ZSBfaW5maW5pdGVTY3JvbGxEaXN0YW5jZT86IG51bWJlciA9IDEwMDtcbiAgcHJpdmF0ZSBfaW5maW5pdGVTY3JvbGw/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2RyYWdnYWJsZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaGlkZUFjdGlvbkZpeGVkQ29sdW1ucz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdmlydHVhbFNjcm9sbD86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcG9EYXRlOiBQb0RhdGVTZXJ2aWNlLFxuICAgIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb1RhYmxlU2VydmljZTogUG9UYWJsZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIExpc3RhIGRlIGl0ZW5zIGRhIHRhYmVsYS5cbiAgICogPiBTZSBmYWxzbywgc2Vyw6EgaW5pY2lhbGl6YWRvIGNvbW8gdW0gKmFycmF5KiB2YXppby5cbiAgICovXG4gIEBJbnB1dCgncC1pdGVtcycpIHNldCBpdGVtcyhpdGVtczogQXJyYXk8YW55Pikge1xuICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgdGhpcy5faXRlbXMgPSBBcnJheS5pc0FycmF5KGl0ZW1zKSA/IFsuLi5pdGVtc10gOiBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faXRlbXMgPSBBcnJheS5pc0FycmF5KGl0ZW1zKSA/IGl0ZW1zIDogW107XG4gICAgfVxuXG4gICAgLy8gd2hlbiBoYXZlbid0IGl0ZW1zLCBzZWxlY3RBbGwgc2hvdWxkIGJlIHVuY2hlY2tlZC5cbiAgICBpZiAoIXRoaXMuaGFzSXRlbXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICghdGhpcy5oYXNDb2x1bW5zKSB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmdldERlZmF1bHRDb2x1bW5zKGl0ZW1zWzBdKTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5oZWlnaHQgPyBbLi4udGhpcy5pdGVtc10gOiB0aGlzLml0ZW1zO1xuXG4gICAgLy8gdGltZW91dCBuZWNlc3PDoXJpbyBwYXJhIG9zIGl0ZW5zIHNlcmVtIHJlZmxldGlkb3MgbmEgdGFiZWxhXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoZWNrSW5maW5pdGVTY3JvbGwoKSk7XG4gIH1cblxuICBnZXQgaXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTGlzdGEgZGFzIGNvbHVuYXMgZGEgdGFiZWxhLCBkZXZlIHJlY2ViZXIgdW0gKmFycmF5KiBkZSBvYmpldG9zIHF1ZSBpbXBsZW1lbnRhbSBhIGludGVyZmFjZSBgUG9UYWJsZUNvbHVtbmAuXG4gICAqIFBvciBwYWRyw6NvIHJlY2ViZXLDoSBjb21vIHZhbG9yIGEgcHJpbWVpcmEgY29sdW5hIGRhIGxpc3RhIGRlIGl0ZW5zIGRhIHRhYmVsYS5cbiAgICogPiBDYXNvIG7Do28gZW5jb250cmUgdmFsb3IsIGEgbWVuc2FnZW0gJ05lbmh1bWEgZGVmaW5pw6fDo28gZGUgY29sdW5hcycgc2Vyw6EgZXhpYmlkYS5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgncC1jb2x1bW5zJykgc2V0IGNvbHVtbnMoY29sdW1uczogQXJyYXk8UG9UYWJsZUNvbHVtbj4pIHtcbiAgICBjb25zdCBoYXNDb2x1bW5zV2l0aFZpc2libGUgPSBjb2x1bW5zPy5maW5kKGNvbHVtbiA9PiBjb2x1bW4udmlzaWJsZSA9PT0gdHJ1ZSk7XG4gICAgaWYgKHRoaXMuaW5pdGlhbENvbHVtbnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pbml0aWFsQ29sdW1ucyA9IGNvbHVtbnM7XG4gICAgfVxuXG4gICAgdGhpcy5fY29sdW1ucyA9IGNvbHVtbnMgfHwgW107XG5cbiAgICBpZiAoaGFzQ29sdW1uc1dpdGhWaXNpYmxlICYmICF0aGlzLmluaXRpYWxWaXNpYmxlQ29sdW1ucykge1xuICAgICAgdGhpcy5pbml0aWFsVmlzaWJsZUNvbHVtbnMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb2x1bW5zLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRDb2x1bW5MaW5rKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0l0ZW1zKSB7XG4gICAgICB0aGlzLl9jb2x1bW5zID0gdGhpcy5nZXREZWZhdWx0Q29sdW1ucyh0aGlzLml0ZW1zWzBdKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlQ29sdW1ucygpO1xuICB9XG5cbiAgZ2V0IGNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBBZGljaW9uYSB1bSBjb250b3JubyBhcnJlZG9uZGFkbyBhbyBgcG8tdGFibGVgLCBhcyBvcMOnw7VlcyBzw6NvOlxuICAgKiAtIGBib3JkZXJgOiBjb20gYm9yZGFzL2xpbmhhcy5cbiAgICogLSBgc2hhZG93YDogY29tIHNvbWJyYXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBib3JkZXJgXG4gICAqL1xuICBASW5wdXQoJ3AtY29udGFpbmVyJykgc2V0IGNvbnRhaW5lcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29udGFpbmVyID0gcG9UYWJsZUNvbnRhaW5lci5pbmNsdWRlcyh2YWx1ZSkgPyB2YWx1ZSA6IHBvVGFibGVDb250YWluZXJEZWZhdWx0O1xuICB9XG5cbiAgZ2V0IGNvbnRhaW5lcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jb250YWluZXI7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBBZGljaW9uYSBvIHBhcsOibWV0cm8gYSBzZXIgZW52aWFkbyBwYXJhIGEgcmVxdWlzacOnw6NvIGRlIERFTEVURS5cbiAgICpcbiAgICogw4kgbmVjZXNzw6FyaW8gYSB1dGlsaXphw6fDo28gZGEgcHJvcHJpZWRhZGUgYHAtc2VydmljZS1kZWxldGVgIGVtIGNvbmp1bnRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgaWRgXG4gICAqL1xuICBASW5wdXQoJ3AtcGFyYW0tZGVsZXRlLWFwaScpIHNldCBwYXJhbURlbGV0ZUFwaSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGFyYW1EZWxldGUgPSB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBwb1RhYmxlUGFyYW1EZWxldGVBcGk7XG4gIH1cblxuICBnZXQgcGFyYW1EZWxldGVBcGkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyYW1EZWxldGU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgYSBhbHR1cmEgZGEgdGFiZWxhIGVtICpwaXhlbHMqIGUgZml4YSBvIGNhYmXDp2FsaG8uXG4gICAqXG4gICAqIEFvIHV0aWxpemFyIGVzc2EgcHJvcHJpZWRhZGUgc2Vyw6EgaW5zZXJpZG8gbyBgdmlydHVhbC1zY3JvbGxgIG5hIHRhYmVsYSBtZWxob3JhbmRvIGEgcGVyZm9ybWFuY2UuXG4gICAqL1xuICBASW5wdXQoJ3AtaGVpZ2h0Jykgc2V0IGhlaWdodChoZWlnaHQ6IG51bWJlcikge1xuICAgIHRoaXMuX2hlaWdodCA9IGhlaWdodDtcbiAgfVxuXG4gIGdldCBoZWlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hlaWdodDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEhhYmlsaXRhIGEgdmlzdWFsaXphw6fDo28gZGEgbGlzdGEgZGUgZGV0YWxoZXMgZGUgY2FkYSBsaW5oYSBkYSBjb2x1bmEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1oaWRlLWRldGFpbCcpIHNldCBoaWRlRGV0YWlsKGhpZGVEZXRhaWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9oaWRlRGV0YWlsID0gaGlkZURldGFpbCAhPSBudWxsICYmIGhpZGVEZXRhaWwudG9TdHJpbmcoKSA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbihoaWRlRGV0YWlsKTtcbiAgfVxuXG4gIGdldCBoaWRlRGV0YWlsKCkge1xuICAgIHJldHVybiB0aGlzLl9oaWRlRGV0YWlsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT2JqZXRvIGNvbSBhcyBsaXRlcmFpcyB1c2FkYXMgbm8gYHBvLXRhYmxlYC5cbiAgICpcbiAgICogRXhpc3RlbSBkdWFzIG1hbmVpcmFzIGRlIGN1c3RvbWl6YXIgbyBjb21wb25lbnRlLCBwYXNzYW5kbyB1bSBvYmpldG8gY29tIHRvZGFzIGFzIGxpdGVyYWlzIGRpc3BvbsOtdmVpczpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9UYWJsZUxpdGVyYWxzID0ge1xuICAgKiAgICBub0NvbHVtbnM6ICdOZW5odW1hIGRlZmluacOnw6NvIGRlIGNvbHVuYXMnLFxuICAgKiAgICBub0RhdGE6ICdOZW5odW0gZGFkbyBlbmNvbnRyYWRvJyxcbiAgICogICAgbm9WaXNpYmxlQ29sdW1uOiAnTmVuaHVtYSBjb2x1bmEgdmlzw612ZWwnLFxuICAgKiAgICBub0l0ZW06ICdOZW5odW0gaXRlbSBzZWxlY2lvbmFkbycsXG4gICAqICAgIG9uZUl0ZW06ICcxIGl0ZW0gc2VsZWNpb25hZG8nLFxuICAgKiAgICBtdWx0aXBsZUl0ZW1zOiAnaXRlbnMgc2VsZWNpb25hZG9zJyxcbiAgICogICAgbG9hZGluZ0RhdGE6ICdDYXJyZWdhbmRvJyxcbiAgICogICAgbG9hZE1vcmVEYXRhOiAnQ2FycmVnYXIgbWFpcyByZXN1bHRhZG9zJyxcbiAgICogICAgc2VlQ29tcGxldGVTdWJ0aXRsZTogJ1ZlciBsZWdlbmRhIGNvbXBsZXRhJyxcbiAgICogICAgY29tcGxldGVTdWJ0aXRsZTogJ0xlZ2VuZGEgY29tcGxldGEnLFxuICAgKiAgICBjb2x1bW5zTWFuYWdlcjogJ0dlcmVuY2lhZG9yIGRlIGNvbHVuYXMnLFxuICAgKiAgICBib2R5RGVsZXRlOiAnRGVzZWphIHJlYWxtZW50ZSBleGNsdWlyIGVzc2UgaXRlbT8nLFxuICAgKiAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAqICAgIGRlbGV0ZTogJ0V4Y2x1aXInLFxuICAgKiAgICBkZWxldGVTdWNjZXNzZnVsOiAnSXRlbnMgcmVtb3ZpZG9zIGNvbSBzdWNlc3NvJyxcbiAgICogICAgZGVsZXRlQXBpRXJyb3I6ICdPY29ycmV1IHVtIGVycm8gaW5lc3BlcmFkbywgdGVudGUgbm92YW1lbnRlIG1haXMgdGFyZGUhJyxcbiAgICogIH07XG4gICAqIGBgYFxuICAgKlxuICAgKiBPdSBwYXNzYW5kbyBhcGVuYXMgYXMgbGl0ZXJhaXMgcXVlIGRlc2VqYSBjdXN0b21pemFyOlxuICAgKlxuICAgKiBgYGBcbiAgICogIGNvbnN0IGN1c3RvbUxpdGVyYWxzOiBQb1RhYmxlTGl0ZXJhbHMgPSB7XG4gICAqICAgIG5vRGF0YTogJ1NlbSBkYWRvcydcbiAgICogIH07XG4gICAqIGBgYFxuICAgKlxuICAgKiBFIHBhcmEgY2FycmVnYXIgYXMgbGl0ZXJhaXMgY3VzdG9taXphZGFzLCBiYXN0YSBhcGVuYXMgcGFzc2FyIG8gb2JqZXRvIHBhcmEgbyBjb21wb25lbnRlLlxuICAgKlxuICAgKiBgYGBcbiAgICogPHBvLXRhYmxlXG4gICAqICAgW3AtbGl0ZXJhbHNdPVwiY3VzdG9tTGl0ZXJhbHNcIj5cbiAgICogPC9wby10YWJsZT5cbiAgICogYGBgXG4gICAqXG4gICAqID4gTyBvYmpldG8gcGFkcsOjbyBkZSBsaXRlcmFpcyBzZXLDoSB0cmFkdXppZG8gZGUgYWNvcmRvIGNvbSBvIGlkaW9tYSBkb1xuICAgKiBbYFBvSTE4blNlcnZpY2VgXSgvZG9jdW1lbnRhdGlvbi9wby1pMThuKSBvdSBkbyBicm93c2VyLlxuICAgKi9cbiAgQElucHV0KCdwLWxpdGVyYWxzJykgc2V0IGxpdGVyYWxzKHZhbHVlOiBQb1RhYmxlTGl0ZXJhbHMpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgdGhpcy5fbGl0ZXJhbHMgPSB7XG4gICAgICAgIC4uLnBvVGFibGVMaXRlcmFsc0RlZmF1bHRbcG9Mb2NhbGVEZWZhdWx0XSxcbiAgICAgICAgLi4ucG9UYWJsZUxpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXSxcbiAgICAgICAgLi4udmFsdWVcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0gcG9UYWJsZUxpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcbiAgICB9XG4gIH1cbiAgZ2V0IGxpdGVyYWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXRlcmFscyB8fCBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQmxvcXVlaWEgYSBpbnRlcmHDp8OjbyBkbyB1c3XDoXJpbyBjb20gb3MgZGFkb3MgZGEgX3RhYmxlXy5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWxvYWRpbmcnKSBzZXQgbG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IGNvbnZlcnRUb0Jvb2xlYW4obG9hZGluZyk7XG4gIH1cblxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSB1bWEgbGlzdGEgZGUgYcOnw7Vlcy5cbiAgICpcbiAgICogUXVhbmRvIGhvdXZlciBhcGVuYXMgdW1hIGHDp8OjbyBkZWZpbmlkYSBlbGEgc2Vyw6EgZXhpYmlkYSBkaXJldGFtZW50ZSBuYSBjb2x1bmEsIGNhc28gY29udHLDoXJpbywgbyBjb21wb25lbnRlXG4gICAqIHNlIGVuY2FycmVnYSBkZSBhZ3J1cMOhLWxhcyBleGliaW5kbyBvIMOtY29uZSBbKipwaCBwaC1kb3RzLXRocmVlKipdKGh0dHBzOi8vcG8tdWkuaW8vaWNvbnMpIHF1ZSBsaXN0YXLDoSBhcyBhw6fDtWVzIGFvIHNlciBjbGljYWRvLlxuICAgKlxuICAgKiAqKkEgY29sdW5hIGRlIGHDp8O1ZXMgbsOjbyBzZXLDoSBleGliaWRhIHF1YW5kbzoqKlxuICAgKiAgLSBhIGxpc3RhIGNvbnRlciB2YWxvcmVzIGludsOhbGlkb3Mgb3UgaW5kZWZpbmlkb3MuXG4gICAqICAtIHRlbmhhIHVtYSDDum5pY2EgYcOnw6NvIGUgYSBtZXNtYSBuw6NvIGZvciB2aXPDrXZlbC5cbiAgICovXG4gIEBJbnB1dCgncC1hY3Rpb25zJykgc2V0IGFjdGlvbnMoYWN0aW9uczogQXJyYXk8UG9UYWJsZUFjdGlvbj4pIHtcbiAgICB0aGlzLl9hY3Rpb25zID0gYWN0aW9ucztcbiAgfVxuXG4gIGdldCBhY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUGVybWl0ZSBhIHNlbGXDp8OjbyBkZSBsaW5oYXMgbmEgdGFiZWxhIGUsIGNhc28gYSBwcm9wcmllZGFkZSBgcC1zaW5nbGUtc2VsZWN0YCBlc3RlamEgZGVmaW5pZGEgc2Vyw6EgcG9zc8OtdmVsXG4gICAqIHNlbGVjaW9uYXIgYXBlbmFzIHVtYSDDum5pY2EgbGluaGEuXG4gICAqXG4gICAqICoqSW1wb3J0YW50ZToqKlxuICAgKiAgLSBBcyBsaW5oYXMgZGUgZGV0YWxoZSBkZWZpbmlkYXMgZW0gYFBvVGFibGVEZXRhaWxgIHBvc3N1ZW0gY29tcG9ydGFtZW50byBpbmRlcGVuZGVudGUgZGEgbGluaGEgbWVzdHJlO1xuICAgKiAgLSBDYWRhIGxpbmhhIHBvc3N1aSBwb3IgcGFkcsOjbyBhIHByb3ByaWVkYWRlIGRpbsOibWljYSBgJHNlbGVjdGVkYCwgbmEgcXVhbCDDqSBwb3Nzw612ZWwgdmFsaWRhciBzZSBhIGxpbmhhXG4gICAqIGVzdMOhIHNlbGVjaW9uYWRhLCBwb3IgZXhlbXBsbzogYGl0ZW0uJHNlbGVjdGVkYCBvdSBgaXRlbVsnJHNlbGVjdGVkJ11gLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atc2VsZWN0YWJsZScpIHNldCBzZWxlY3RhYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2VsZWN0YWJsZSA9IDxhbnk+dmFsdWUgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBTZSB2ZXJkYWRlaXJvLCBhdGl2YSBhIGZ1bmNpb25hbGlkYWRlIGRlIHNjcm9sbCBpbmZpbml0byBwYXJhIGEgdGFiZWxhIGUgbyBib3TDo28gXCJDYXJyZWdhciBNYWlzXCIgZGVpeGFyw6EgZGUgc2VyIGV4aWJpZG8uIEFvIGNoZWdhciBubyBmaW0gZGEgdGFiZWxhXG4gICAqIGV4ZWN1dGFyw6EgYSBmdW7Dp8OjbyBgcC1zaG93LW1vcmVgLlxuICAgKlxuICAgKiAqKlJlZ3JhcyBkZSB1dGlsaXphw6fDo286KipcbiAgICogIC0gTyBzY3JvbGwgaW5maW5pdG8gc8OzIGZ1bmNpb25hIHBhcmEgdGFiZWxhcyBxdWUgdXRpbGl6YW0gYSBwcm9wcmllZGFkZSBgcC1oZWlnaHRgIGUgcXVlIHBvc3N1ZW0gbyBzY3JvbGwgasOhIG5hIGNhcmdhIGluaWNpYWwgZG9zIGRhZG9zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtaW5maW5pdGUtc2Nyb2xsJykgc2V0IGluZmluaXRlU2Nyb2xsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faW5maW5pdGVTY3JvbGwgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlICYmIHRoaXMuaGVpZ2h0ID4gMCk7XG4gIH1cblxuICBnZXQgaW5maW5pdGVTY3JvbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luZmluaXRlU2Nyb2xsO1xuICB9XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBvIHBlcmNlbnR1YWwgbmVjZXNzw6FyaW8gcGFyYSBkaXNwYXJhciBvIGV2ZW50byBgcC1zaG93LW1vcmVgLCBxdWUgw6kgcmVzcG9uc8OhdmVsIHBvciBjYXJyZWdhciBtYWlzIGRhZG9zIG5hIHRhYmVsYS4gQ2FzbyBvIHZhbG9yIGluZm9ybWFkbyBzZWphIG1haW9yIHF1ZSAxMDAgb3UgbWVub3JcbiAgICogcXVlIDAsIG8gdmFsb3IgcGFkcsOjbyBzZXLDoSAxMDAlXG4gICAqXG4gICAqICoqRXhlbXBsb3M6KipcbiAgICogIC0gcC1pbmZpbml0ZS1zY3JvbGwtZGlzdGFuY2UgPSA4MDogUXVhbmRvIGF0aW5naXIgODAlICBkbyBzY3JvbGwgZGEgdGFiZWxhLCBvIGBwLXNob3ctbW9yZWAgc2Vyw6EgZGlzcGFyYWRvLlxuICAgKi9cbiAgQElucHV0KCdwLWluZmluaXRlLXNjcm9sbC1kaXN0YW5jZScpIHNldCBpbmZpbml0ZVNjcm9sbERpc3RhbmNlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9pbmZpbml0ZVNjcm9sbERpc3RhbmNlID0gdmFsdWUgPiAxMDAgfHwgdmFsdWUgPCAwID8gMTAwIDogdmFsdWU7XG4gIH1cblxuICBnZXQgaW5maW5pdGVTY3JvbGxEaXN0YW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5maW5pdGVTY3JvbGxEaXN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFVSTCBkYSBBUEkgcmVzcG9uc8OhdmVsIHBvciByZXRvcm5hciBvcyByZWdpc3Ryb3MuXG4gICAqXG4gICAqIEFvIHJlYWxpemFyIGEgYnVzY2EgZGUgbWFpcyByZWdpc3Ryb3MgdmlhIHBhZ2luYcOnw6NvIChDYXJyZWdhciBtYWlzIHJlc3VsdGFkb3MpLCBzZXLDoSBlbnZpYWRvIG9zIHBhcsOibWV0cm9zIGBwYWdlYCBlIGBwYWdlU2l6ZWAsIGNvbmZvcm1lIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIHVybCArID9wYWdlPTEmcGFnZVNpemU9MTBcbiAgICogYGBgXG4gICAqXG4gICAqIENhc28gdXRpbGl6YXIgb3JkZW5hw6fDo28sIGEgY29sdW5hIG9yZGVuYWRhIHNlcsOhIGVudmlhZGEgYXRyYXbDqXMgZG8gcGFyw6JtZXRybyBgb3JkZXJgLCBwb3IgZXhlbXBsbzpcbiAgICogLSBDb2x1bmEgZGVjcmVzY2VudGU6XG4gICAqIGBgYFxuICAgKiAgdXJsICsgP3BhZ2U9MSZwYWdlU2l6ZT0xMCZvcmRlcj0tbmFtZVxuICAgKiBgYGBcbiAgICpcbiAgICogLSBDb2x1bmEgYXNjZW5kZW50ZTpcbiAgICogYGBgXG4gICAqICB1cmwgKyA/cGFnZT0xJnBhZ2VTaXplPTEwJm9yZGVyPW5hbWVcbiAgICogYGBgXG4gICAqXG4gICAqID4gRXN0YSBVUkwgZGV2ZSByZXRvcm5hciBlIHJlY2ViZXIgb3MgZGFkb3Mgbm8gcGFkcsOjbyBkZSBbQVBJIGRvIFBPIFVJXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9hcGkpLlxuICAgKi9cbiAgQElucHV0KCdwLXNlcnZpY2UtYXBpJykgc2V0IHNlcnZpY2VBcGkoc2VydmljZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2VydmljZUFwaSA9IHNlcnZpY2U7XG4gICAgdGhpcy5zZXRTZXJ2aWNlKHRoaXMuc2VydmljZUFwaSwgJ0dFVCcpO1xuICAgIHRoaXMuaGFzU2VydmljZSA9ICEhc2VydmljZTtcbiAgICB0aGlzLnNob3dNb3JlRGlzYWJsZWQgPSAhdGhpcy5oYXNTZXJ2aWNlO1xuICAgIHRoaXMucGFnZSA9IDE7XG4gICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xuICB9XG5cbiAgZ2V0IHNlcnZpY2VBcGkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2VBcGk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBVUkwgZGEgQVBJIHJlc3BvbnPDoXZlbCBwb3IgZXhjbHVpciBvcyByZWdpc3Ryb3MuXG4gICAqXG4gICAqIEFvIHNlbGVjaW9uYXIgbyBib3TDo28gZGUgZXhjbHVpciBpdGVucywgZXNzYSB1cmwgc2Vyw6EgZXhlY3V0YWRhIHV0aWxpemFuZG8gbyBwYXLDom1ldHJvIGVudmlhZG8gbmEgcHJvcHJpZWRhZGUgYHAtcGFyYW0tZGVsZXRlLWFwaWAuXG4gICAqIENhc28gZWxhIG7Do28gc2VqYSB1dGlsaXphZGEsIG8gcGFyw6JtZXRybyBwYWRyw6NvIGEgc2VyIGVudmlhZG8gc2Vyw6EgYGlkYC5cbiAgICpcbiAgICogPiBFc3RhIFVSTCBkZXZlIHJldG9ybmFyIGUgcmVjZWJlciBvcyBkYWRvcyBubyBwYWRyw6NvIGRlIFtBUEkgZG8gUE8gVUldKGh0dHBzOi8vcG8tdWkuaW8vZ3VpZGVzL2FwaSkuXG4gICAqL1xuICBASW5wdXQoJ3Atc2VydmljZS1kZWxldGUnKSBzZXQgc2VydmljZURlbGV0ZUFwaShzZXJ2aWNlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZXJ2aWNlRGVsZXRlQXBpID0gc2VydmljZTtcbiAgICB0aGlzLnNldFNlcnZpY2UodGhpcy5zZXJ2aWNlRGVsZXRlQXBpLCAnREVMRVRFJyk7XG4gIH1cblxuICBnZXQgc2VydmljZURlbGV0ZUFwaSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZURlbGV0ZUFwaTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFJlc3BvbnPDoXZlbCBwb3IgYXBsaWNhciBlc3Bhw6dhbWVudG8gbmFzIGNvbHVuYXMuXG4gICAqXG4gICAqIERldmUgcmVjZWJlciB1bSBkb3MgdmFsb3JlcyBkbyBlbnVtIGBQb1RhYmxlQ29sdW1uU3BhY2luZ2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBtZWRpdW1gXG4gICAqL1xuICBASW5wdXQoJ3Atc3BhY2luZycpIHNldCBzcGFjaW5nKHZhbHVlOiBQb1RhYmxlQ29sdW1uU3BhY2luZykge1xuICAgIGlmICh2YWx1ZSA9PT0gJ3NtYWxsJyB8fCB2YWx1ZSA9PT0gJ21lZGl1bScgfHwgdmFsdWUgPT09ICdsYXJnZScpIHtcbiAgICAgIHRoaXMuX3NwYWNpbmcgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc3BhY2luZyA9IFBvVGFibGVDb2x1bW5TcGFjaW5nLk1lZGl1bTtcbiAgICB9XG4gIH1cblxuICBnZXQgc3BhY2luZygpIHtcbiAgICByZXR1cm4gdGhpcy5fc3BhY2luZztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBhcyBjb2x1bmFzIHF1ZSBzZXLDo28gZmlsdHJhZGFzIG5vIGNhbXBvIGRlIHBlc3F1aXNhLlxuICAgKiBBY2VpdGEgdW0gYXJyYXkgZGUgc3RyaW5ncywgcmVwcmVzZW50YW5kbyBhcyBjb2x1bmFzIGVzcGVjw61maWNhcyBxdWUgc2Vyw6NvIGNvbnNpZGVyYWRhcyBuYSBmaWx0cmFnZW0uXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3AtZmlsdGVyZWQtY29sdW1ucycpIHNldCBmaWx0ZXJlZENvbHVtbnModmFsdWVzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5fZmlsdGVyZWRDb2x1bW5zID0gdmFsdWVzO1xuICB9XG5cbiAgZ2V0IGZpbHRlcmVkQ29sdW1ucygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyZWRDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IGhhc0NvbHVtbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucyAmJiB0aGlzLmNvbHVtbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGdldCBoYXNJdGVtcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCk7XG4gIH1cblxuICBnZXQgbmFtZUNvbHVtbkRldGFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5NYXN0ZXJEZXRhaWwgPyB0aGlzLmNvbHVtbk1hc3RlckRldGFpbC5wcm9wZXJ0eSA6IG51bGw7XG4gIH1cblxuICBnZXQgdmFsaWRDb2x1bW5zKCkge1xuICAgIGNvbnN0IHR5cGVzVmFsaWQgPSBbXG4gICAgICAnc3RyaW5nJyxcbiAgICAgICdudW1iZXInLFxuICAgICAgJ2Jvb2xlYW4nLFxuICAgICAgJ2RhdGUnLFxuICAgICAgJ3RpbWUnLFxuICAgICAgJ2RhdGVUaW1lJyxcbiAgICAgICdjdXJyZW5jeScsXG4gICAgICAnc3VidGl0bGUnLFxuICAgICAgJ2xpbmsnLFxuICAgICAgJ2xhYmVsJyxcbiAgICAgICdpY29uJyxcbiAgICAgICdjZWxsVGVtcGxhdGUnLFxuICAgICAgJ2NvbHVtblRlbXBsYXRlJ1xuICAgIF07XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucy5maWx0ZXIoY29sID0+ICFjb2wudHlwZSB8fCB0eXBlc1ZhbGlkLmluY2x1ZGVzKGNvbC50eXBlKSk7XG4gIH1cblxuICBnZXQgdmlzaWJsZUFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuYWN0aW9ucyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuYWN0aW9ucyAmJiB0aGlzLmFjdGlvbnMuZmlsdGVyKGFjdGlvbiA9PiBhY3Rpb24gJiYgYWN0aW9uLnZpc2libGUgIT09IGZhbHNlKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbHRlcmVkQ29sdW1ucygpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcmVkQ29sdW1ucyA9IHRoaXMuY29sdW1uc1xuICAgICAgLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLnZpc2libGUgIT09IGZhbHNlKVxuICAgICAgLm1hcChjb2x1bW4gPT4gY29sdW1uLnByb3BlcnR5IHx8IGNvbHVtbi5sYWJlbCk7XG4gIH1cblxuICBwcml2YXRlIGdldCBzb3J0VHlwZSgpOiBQb1RhYmxlQ29sdW1uU29ydFR5cGUge1xuICAgIHJldHVybiB0aGlzLnNvcnRlZENvbHVtbi5hc2NlbmRpbmcgPyBQb1RhYmxlQ29sdW1uU29ydFR5cGUuQXNjZW5kaW5nIDogUG9UYWJsZUNvbHVtblNvcnRUeXBlLkRlc2NlbmRpbmc7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBIYWJpbGl0YSBvIG1vZG8gZHJhZyBhbmQgZHJvcCBwYXJhIGFzIGNvbHVuYXMgZGEgdGFiZWxhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtZHJhZ2dhYmxlJykgc2V0IGRyYWdnYWJsZShkcmFnZ2FibGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kcmFnZ2FibGUgPSBkcmFnZ2FibGUgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgZHJhZ2dhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9kcmFnZ2FibGU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBIYWJpbGl0YSBvIGB2aXJ0dWFsLXNjcm9sbGAgbmEgdGFiZWxhIHBhcmEgbWVsaG9yYXIgYSBwZXJmb3JtYW5jZSBjb20gZ3JhbmRlcyB2b2x1bWVzIGRlIGRhZG9zLlxuICAgKiBSZXF1ZXIgYWx0dXJhIChgcC1oZWlnaHRgKSBwYXJhIGZ1bmNpb25hciBjb3JyZXRhbWVudGUuXG4gICAqXG4gICAqID4gSW5jb21wYXTDrXZlbCBjb20gYHAtdGV4dC13cmFwYCBlIGBtYXN0ZXItZGV0YWlsYCwgcG9pcyBvIGB2aXJ0dWFsLXNjcm9sbGAgZXhpZ2UgYWx0dXJhIGZpeGEgbmFzIGxpbmhhcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICBASW5wdXQoJ3AtdmlydHVhbC1zY3JvbGwnKSBzZXQgdmlydHVhbFNjcm9sbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3ZpcnR1YWxTY3JvbGwgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlICYmIHRoaXMuaGVpZ2h0ID4gMCk7XG4gIH1cblxuICBnZXQgdmlydHVhbFNjcm9sbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlydHVhbFNjcm9sbDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucG9UYWJsZVNlcnZpY2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0IHx8IHRoaXMuaGlkZVNlbGVjdEFsbCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBmYWxzZTtcbiAgICAgIHRoaXMuaGlkZVNlbGVjdEFsbCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuaGVpZ2h0KSB7XG4gICAgICB0aGlzLmNhbGN1bGF0ZUhlaWdodFRhYmxlQ29udGFpbmVyKHRoaXMuaGVpZ2h0KTtcbiAgICB9XG5cbiAgICBpZiAoKGNoYW5nZXMuaGVpZ2h0IHx8IGNoYW5nZXMuaXRlbXMpICYmIHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuY2hhbmdlSGVhZGVyV2lkdGgoKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VTaXplTG9hZGluZygpO1xuICB9XG5cbiAgc2VsZWN0QWxsUm93cygpIHtcbiAgICBpZiAoIXRoaXMuaGlkZVNlbGVjdEFsbCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGwgPSAhdGhpcy5zZWxlY3RBbGw7XG5cbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaXRlbS4kc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdEFsbDtcblxuICAgICAgICBpZiAoaXRlbVt0aGlzLm5hbWVDb2x1bW5EZXRhaWxdKSB7XG4gICAgICAgICAgY29uc3QgY2hpbGRJdGVtcyA9IGl0ZW1bdGhpcy5uYW1lQ29sdW1uRGV0YWlsXTtcbiAgICAgICAgICBjaGlsZEl0ZW1zLmZvckVhY2goY2hpbGRJdGVtID0+IChjaGlsZEl0ZW0uJHNlbGVjdGVkID0gdGhpcy5zZWxlY3RBbGwpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZW1pdFNlbGVjdEFsbEV2ZW50cyh0aGlzLnNlbGVjdEFsbCwgWy4uLnRoaXMuaXRlbXNdKTtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRMaXN0KCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Um93KHJvdzogYW55KSB7XG4gICAgcm93LiRzZWxlY3RlZCA9ICFyb3cuJHNlbGVjdGVkO1xuXG4gICAgdGhpcy5lbWl0U2VsZWN0RXZlbnRzKHJvdyk7XG4gICAgdGhpcy5jb25maWdBZnRlclNlbGVjdFJvdyh0aGlzLml0ZW1zLCByb3cpO1xuXG4gICAgaWYgKHJvd1t0aGlzLm5hbWVDb2x1bW5EZXRhaWxdICYmIChyb3cuJHNlbGVjdGVkID09PSB0cnVlIHx8IHJvdy4kc2VsZWN0ZWQgPT09IGZhbHNlKSkge1xuICAgICAgY29uc3QgY2hpbGRJdGVtcyA9IHJvd1t0aGlzLm5hbWVDb2x1bW5EZXRhaWxdO1xuICAgICAgY2hpbGRJdGVtcy5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0uJHNlbGVjdGVkID0gcm93LiRzZWxlY3RlZCkpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U2VsZWN0ZWRMaXN0KCk7XG4gIH1cblxuICBoYXNTZWxlY3RhYmxlUm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGFibGUgJiYgdGhpcy5zZWxlY3RhYmxlRW50aXJlTGluZTtcbiAgfVxuXG4gIHNlbGVjdERldGFpbFJvdyhldmVudDogYW55KSB7XG4gICAgY29uc3QgeyBpdGVtLCBwYXJlbnRSb3cgfSA9IGV2ZW50O1xuICAgIHRoaXMuZW1pdFNlbGVjdEV2ZW50cyhpdGVtKTtcbiAgICB0aGlzLnVwZGF0ZVBhcmVudFJvd1NlbGVjdGlvbihwYXJlbnRSb3cpO1xuICB9XG5cbiAgdXBkYXRlUGFyZW50Um93U2VsZWN0aW9uKHBhcmVudFJvdzogYW55KSB7XG4gICAgY29uc3Qgb2xkID0gcGFyZW50Um93LiRzZWxlY3RlZCB8fCBudWxsO1xuICAgIGNvbnN0IGNoaWxkSXRlbXMgPSBwYXJlbnRSb3dbdGhpcy5uYW1lQ29sdW1uRGV0YWlsXTtcblxuICAgIGlmIChjaGlsZEl0ZW1zLmV2ZXJ5KGl0ZW0gPT4gaXRlbS4kc2VsZWN0ZWQpKSB7XG4gICAgICBwYXJlbnRSb3cuJHNlbGVjdGVkID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGNoaWxkSXRlbXMuZXZlcnkoaXRlbSA9PiAhaXRlbS4kc2VsZWN0ZWQpKSB7XG4gICAgICBwYXJlbnRSb3cuJHNlbGVjdGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmVudFJvdy4kc2VsZWN0ZWQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAob2xkICE9IHBhcmVudFJvdy4kc2VsZWN0ZWQgJiYgIShvbGQgPT0gbnVsbCAmJiBwYXJlbnRSb3cuJHNlbGVjdGVkID09PSBmYWxzZSkpIHtcbiAgICAgIHRoaXMuZW1pdFNlbGVjdEV2ZW50cyhwYXJlbnRSb3cpO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnQWZ0ZXJTZWxlY3RSb3codGhpcy5pdGVtcywgcGFyZW50Um93KTtcbiAgICB0aGlzLnNldFNlbGVjdGVkTGlzdCgpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRMaXN0KCkge1xuICAgIHRoaXMuaXRlbXNTZWxlY3RlZCA9IFtdO1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLiRzZWxlY3RlZCkge1xuICAgICAgICB0aGlzLml0ZW1zU2VsZWN0ZWQucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldENsYXNzQ29sb3Iocm93LCBjb2x1bW4pIHtcbiAgICByZXR1cm4gY29sdW1uLmNvbG9yID8gYHBvLXRleHQtJHt0aGlzLmdldENvbHVtbkNvbG9yKHJvdywgY29sdW1uKX1gIDogJyc7XG4gIH1cblxuICB0b2dnbGVEZXRhaWwocm93OiBhbnkpIHtcbiAgICBjb25zdCByb3dTaG93RGV0YWlsID0gcm93LiRzaG93RGV0YWlsO1xuICAgIGlmICh0aGlzLmF1dG9Db2xsYXBzZSkge1xuICAgICAgdGhpcy5jb2xsYXBzZUFsbEl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U2hvd0RldGFpbChyb3csICFyb3dTaG93RGV0YWlsKTtcbiAgICB0aGlzLmVtaXRFeHBhbmRFdmVudHMocm93KTtcbiAgfVxuXG4gIHRvZ2dsZVJvd0FjdGlvbihyb3c6IGFueSkge1xuICAgIGNvbnN0IHRvZ2dsZVNob3dBY3Rpb24gPSByb3cuJHNob3dBY3Rpb247XG5cbiAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAoaXRlbS4kc2hvd0FjdGlvbikge1xuICAgICAgICBpdGVtLiRzaG93QWN0aW9uID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcm93LiRzaG93QWN0aW9uID0gIXRvZ2dsZVNob3dBY3Rpb247XG4gIH1cblxuICBzb3J0Q29sdW1uKGNvbHVtbjogUG9UYWJsZUNvbHVtbikge1xuICAgIGlmICghdGhpcy5zb3J0IHx8IGNvbHVtbi50eXBlID09PSAnZGV0YWlsJyB8fCBjb2x1bW4uc29ydGFibGUgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zb3J0ZWRDb2x1bW4uYXNjZW5kaW5nID0gdGhpcy5zb3J0ZWRDb2x1bW4ucHJvcGVydHkgPT09IGNvbHVtbiA/ICF0aGlzLnNvcnRlZENvbHVtbi5hc2NlbmRpbmcgOiB0cnVlO1xuXG4gICAgdGhpcy5zb3J0QXJyYXkoY29sdW1uLCB0aGlzLnNvcnRlZENvbHVtbi5hc2NlbmRpbmcpO1xuICAgIHRoaXMuc29ydEJ5LmVtaXQoeyBjb2x1bW4sIHR5cGU6IHRoaXMuc29ydFR5cGUgfSk7XG4gICAgaWYgKHRoaXMuaGFzU2VydmljZSAmJiB0aGlzLnNvcnQpIHtcbiAgICAgIHRoaXMuc29ydFN0b3JlID0geyBjb2x1bW4sIHR5cGU6IHRoaXMuc29ydFR5cGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLnNvcnRlZENvbHVtbi5wcm9wZXJ0eSA9IGNvbHVtbjtcbiAgfVxuXG4gIG9uU2hvd01vcmUoKTogdm9pZCB7XG4gICAgY29uc3Qgc29ydCA9IHRoaXMuc29ydGVkQ29sdW1uLnByb3BlcnR5ID8geyBjb2x1bW46IHRoaXMuc29ydGVkQ29sdW1uLnByb3BlcnR5LCB0eXBlOiB0aGlzLnNvcnRUeXBlIH0gOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAodGhpcy5oYXNTZXJ2aWNlKSB7XG4gICAgICB0aGlzLnBhZ2UrKztcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmxvYWRpbmdTaG93TW9yZSA9IHRydWU7XG5cbiAgICAgIHRoaXMucG9UYWJsZVNlcnZpY2VTdWJzY3JpcHRpb24gPSB0aGlzLmdldEZpbHRlcmVkSXRlbXMoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbLi4udGhpcy5pdGVtcywgLi4uZGF0YS5pdGVtc107XG4gICAgICAgIHRoaXMuc2hvd01vcmVEaXNhYmxlZCA9ICFkYXRhLmhhc05leHQ7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvYWRpbmdTaG93TW9yZSA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93TW9yZS5lbWl0KHNvcnQpO1xuICB9XG5cbiAgZ2V0RmlsdGVyZWRJdGVtcyhxdWVyeVBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogUXVlcnlQYXJhbXNUeXBlIH0pOiBPYnNlcnZhYmxlPFBvVGFibGVSZXNwb25zZUFwaT4ge1xuICAgIGNvbnN0IGZpbHRlcmVkUGFyYW1zOiBQb1RhYmxlRmlsdGVyZWRJdGVtc1BhcmFtcyA9IHRoaXMuZ2V0RmlsdGVyZWRQYXJhbXMocXVlcnlQYXJhbXMpO1xuXG4gICAgcmV0dXJuIHRoaXMucG9UYWJsZVNlcnZpY2UuZ2V0RmlsdGVyZWRJdGVtcyhmaWx0ZXJlZFBhcmFtcyk7XG4gIH1cblxuICBzZXRUYWJsZVJlc3BvbnNlUHJvcGVydGllcyhkYXRhOiBQb1RhYmxlUmVzcG9uc2VBcGkpIHtcbiAgICB0aGlzLml0ZW1zID0gZGF0YS5pdGVtcyB8fCBbXTtcbiAgICB0aGlzLnNob3dNb3JlRGlzYWJsZWQgPSAhZGF0YS5oYXNOZXh0O1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgaW5pdGlhbGl6ZURhdGEocGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBRdWVyeVBhcmFtc1R5cGUgfSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc1NlcnZpY2UpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnBhcmFtc0ZpbHRlciA9IHBhcmFtcztcbiAgICAgIHRoaXMuZ2V0RmlsdGVyZWRJdGVtcyhwYXJhbXMpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5zZXRUYWJsZVJlc3BvbnNlUHJvcGVydGllcyhkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNvcnRBcnJheShjb2x1bW46IFBvVGFibGVDb2x1bW4sIGFzY2VuZGluZzogYm9vbGVhbiwgaXRlbT86IEFycmF5PGFueT4pIHtcbiAgICBsZXQgaXRlbXNMaXN0O1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBpdGVtc0xpc3QgPSB0aGlzLmhlaWdodCA/IFsuLi5pdGVtXSA6IGl0ZW07XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZW1zTGlzdCA9IHRoaXMuaGVpZ2h0ID8gWy4uLnRoaXMuZmlsdGVyZWRJdGVtc10gOiB0aGlzLmZpbHRlcmVkSXRlbXM7XG4gICAgfVxuICAgIGl0ZW1zTGlzdC5zb3J0KChsZWZ0U2lkZSwgcmlnaHRTaWRlKTogbnVtYmVyID0+XG4gICAgICBzb3J0VmFsdWVzKGxlZnRTaWRlW2NvbHVtbi5wcm9wZXJ0eV0sIHJpZ2h0U2lkZVtjb2x1bW4ucHJvcGVydHldLCBhc2NlbmRpbmcpXG4gICAgKTtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBpdGVtc0xpc3Q7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdENvbHVtbnMoaXRlbTogYW55KSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGl0ZW0pO1xuXG4gICAgcmV0dXJuIGtleXNcbiAgICAgIC5maWx0ZXIoa2V5ID0+IHR5cGVvZiBpdGVtW2tleV0gIT09ICdvYmplY3QnKVxuICAgICAgLm1hcChrZXkgPT4gKHsgbGFiZWw6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpLCBwcm9wZXJ0eToga2V5IH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRTaG93RGV0YWlsKHJvd0lkZW50aWZpZXI6IGFueSB8IG51bWJlciwgaXNTaG93RGV0YWlsOiBib29sZWFuKSB7XG4gICAgY29uc3QgaXNSb3dJbmRleCA9IHR5cGVvZiByb3dJZGVudGlmaWVyID09PSAnbnVtYmVyJyAmJiB0aGlzLml0ZW1zW3Jvd0lkZW50aWZpZXJdO1xuXG4gICAgY29uc3Qgcm93ID0gaXNSb3dJbmRleCA/IHRoaXMuaXRlbXNbcm93SWRlbnRpZmllcl0gOiByb3dJZGVudGlmaWVyO1xuXG4gICAgcm93LiRzaG93RGV0YWlsID0gaXNTaG93RGV0YWlsO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsYXBzZUFsbEl0ZW1zKGl0ZW1zOiBBcnJheTx7IFtrZXk6IHN0cmluZ106IGFueSB9Pikge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgaWYgKGl0ZW0uJHNob3dEZXRhaWwpIHtcbiAgICAgICAgdGhpcy5zZXRTaG93RGV0YWlsKGl0ZW0sIGZhbHNlKTtcbiAgICAgICAgdGhpcy5lbWl0RXhwYW5kRXZlbnRzKGl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29uZmlnQWZ0ZXJTZWxlY3RSb3cocm93czogQXJyYXk8YW55Piwgcm93KSB7XG4gICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0KSB7XG4gICAgICB0aGlzLnVuc2VsZWN0T3RoZXJSb3dzKHJvd3MsIHJvdyk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5oaWRlU2VsZWN0QWxsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbCA9IHRoaXMuaXNFdmVyeVNlbGVjdGVkKHJvd3MpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdEV4cGFuZEV2ZW50cyhyb3c6IGFueSkge1xuICAgIHJvdy4kc2hvd0RldGFpbCA/IHRoaXMuZXhwYW5kZWQuZW1pdChyb3cpIDogdGhpcy5jb2xsYXBzZWQuZW1pdChyb3cpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U2VsZWN0QWxsRXZlbnRzKHNlbGVjdEFsbDogYm9vbGVhbiwgcm93czogYW55KSB7XG4gICAgc2VsZWN0QWxsID8gdGhpcy5hbGxTZWxlY3RlZC5lbWl0KHJvd3MpIDogdGhpcy5hbGxVbnNlbGVjdGVkLmVtaXQocm93cyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTZWxlY3RFdmVudHMocm93OiBhbnkpIHtcbiAgICByb3cuJHNlbGVjdGVkID8gdGhpcy5zZWxlY3RlZC5lbWl0KHJvdykgOiB0aGlzLnVuc2VsZWN0ZWQuZW1pdChyb3cpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5Db2xvcihyb3csIGNvbHVtbikge1xuICAgIGNvbnN0IGNvbHVtbkNvbG9yID0gY29sdW1uLmNvbG9yO1xuXG4gICAgcmV0dXJuIGlzVHlwZW9mKGNvbHVtbkNvbG9yLCAnZnVuY3Rpb24nKSA/IGNvbHVtbkNvbG9yKHJvdywgY29sdW1uLnByb3BlcnR5KSA6IGNvbHVtbkNvbG9yO1xuICB9XG5cbiAgLy8gUmV0b3JuYSBhIGNvbHVuYSBkYSBsaXN0YSBkZSBjb2x1bmFzIHF1ZSDDqSBkbyB0aXBvIGRldGFpbFxuICBwcml2YXRlIGdldENvbHVtbk1hc3RlckRldGFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbmQoY29sID0+IGNvbC50eXBlID09PSAnZGV0YWlsJyk7XG4gIH1cblxuICAvLyBDb2x1bmFzIHF1ZSBzw6NvIGluc2VyaWRhcyBubyA8aGVhZD4gZGEgdGFiZWxhXG4gIHByaXZhdGUgZ2V0TWFpbkNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRDb2x1bW5zLmZpbHRlcihjb2wgPT4gY29sLnZpc2libGUgIT09IGZhbHNlKTtcbiAgfVxuXG4gIC8vIFJldG9ybmEgYXMgY29sdW5hcyBjb20gc3RhdHVzXG4gIHByaXZhdGUgZ2V0U3VidGl0bGVDb2x1bW5zKCkge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wudHlwZSA9PT0gJ3N1YnRpdGxlJyk7XG4gIH1cblxuICBwcml2YXRlIGlzRXZlcnlTZWxlY3RlZChpdGVtczogQXJyYXk8YW55Pik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNvbWVDaGVja2VkT3JJbmRldGVybWluYXRlID0gaXRlbSA9PiBpdGVtLiRzZWxlY3RlZCB8fCBpdGVtLiRzZWxlY3RlZCA9PT0gbnVsbDtcbiAgICBjb25zdCBldmVyeUNoZWNrZWQgPSBpdGVtID0+IGl0ZW0uJHNlbGVjdGVkO1xuXG4gICAgaWYgKGl0ZW1zLmV2ZXJ5KGV2ZXJ5Q2hlY2tlZCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChpdGVtcy5zb21lKHNvbWVDaGVja2VkT3JJbmRldGVybWluYXRlKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZUNvbHVtbnMoKSB7XG4gICAgdGhpcy5zZXRNYWluQ29sdW1ucygpO1xuICAgIHRoaXMuc2V0Q29sdW1uTWFzdGVyRGV0YWlsKCk7XG4gICAgdGhpcy5zZXRTdWJ0aXRsZUNvbHVtbnMoKTtcbiAgICB0aGlzLmdldEZpbHRlcmVkQ29sdW1ucygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb2x1bW5MaW5rKCkge1xuICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgICBpZiAoY29sdW1uWyd0eXBlJ10gPT09ICdsaW5rJyAmJiAhY29sdW1uWydsaW5rJ10pIHtcbiAgICAgICAgY29sdW1uWydsaW5rJ10gPSAnbGluayc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbHVtbk1hc3RlckRldGFpbCgpIHtcbiAgICB0aGlzLmNvbHVtbk1hc3RlckRldGFpbCA9IHRoaXMuZ2V0Q29sdW1uTWFzdGVyRGV0YWlsKCk7XG4gIH1cblxuICBwcml2YXRlIHNldE1haW5Db2x1bW5zKCkge1xuICAgIHRoaXMubWFpbkNvbHVtbnMgPSB0aGlzLmdldE1haW5Db2x1bW5zKCk7XG5cbiAgICB0aGlzLmhhc01haW5Db2x1bW5zID0gISF0aGlzLm1haW5Db2x1bW5zLmxlbmd0aDtcblxuICAgIHRoaXMuYWxsQ29sdW1uc1dpZHRoUGl4ZWxzID0gdGhpcy52ZXJpZnlXaWR0aENvbHVtbnNQaXhlbHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U3VidGl0bGVDb2x1bW5zKCkge1xuICAgIHRoaXMuc3VidGl0bGVDb2x1bW5zID0gdGhpcy5nZXRTdWJ0aXRsZUNvbHVtbnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zZWxlY3RPdGhlclJvd3Mocm93czogQXJyYXk8YW55Piwgcm93KSB7XG4gICAgcm93cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKGl0ZW0gIT09IHJvdykge1xuICAgICAgICBpdGVtLiRzZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlXaWR0aENvbHVtbnNQaXhlbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFzTWFpbkNvbHVtbnMgPyB0aGlzLm1haW5Db2x1bW5zLmV2ZXJ5KGNvbHVtbiA9PiBjb2x1bW4ud2lkdGggJiYgY29sdW1uLndpZHRoLmluY2x1ZGVzKCdweCcpKSA6IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZXJ2aWNlKHNlcnZpY2U6IHN0cmluZywgbWV0aG9kOiAnR0VUJyB8ICdERUxFVEUnKSB7XG4gICAgaWYgKHNlcnZpY2UgJiYgaXNUeXBlb2Yoc2VydmljZSwgJ3N0cmluZycpKSB7XG4gICAgICB0aGlzLnBvVGFibGVTZXJ2aWNlLnNldFVybChzZXJ2aWNlLCBtZXRob2QpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsdGVyZWRQYXJhbXMocXVlcnlQYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IFF1ZXJ5UGFyYW1zVHlwZSB9KSB7XG4gICAgY29uc3QgeyBwYWdlLCBwYWdlU2l6ZSwgc29ydFN0b3JlIH0gPSB0aGlzO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQYXJhbXMgPSB7fTtcbiAgICBjb25zdCBvcmRlciA9IHRoaXMuZ2V0T3JkZXJQYXJhbShzb3J0U3RvcmUpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgcGFnZSwgcGFnZVNpemUsIG9yZGVyLCAuLi5xdWVyeVBhcmFtcyB9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGFyYW1zKSB7XG4gICAgICBpZiAocGFyYW1zLmhhc093blByb3BlcnR5KGtleSkgJiYgcGFyYW1zW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmaWx0ZXJlZFBhcmFtc1trZXldID0gcGFyYW1zW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXJlZFBhcmFtcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3JkZXJQYXJhbShzb3J0OiBQb1RhYmxlQ29sdW1uU29ydCA9IHsgdHlwZTogdW5kZWZpbmVkIH0pIHtcbiAgICBjb25zdCB7IGNvbHVtbiwgdHlwZSB9ID0gc29ydDtcblxuICAgIGlmICghY29sdW1uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09IFBvVGFibGVDb2x1bW5Tb3J0VHlwZS5EZXNjZW5kaW5nKSB7XG4gICAgICByZXR1cm4gYC0ke2NvbHVtbi5wcm9wZXJ0eX1gO1xuICAgIH1cblxuICAgIHJldHVybiBgJHtjb2x1bW4ucHJvcGVydHl9YDtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUHJvcGVydHlGaXhlZChhcnI6IEFycmF5PGFueT4pIHtcbiAgICByZXR1cm4gYXJyLm1hcChvYmogPT4ge1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eSgnZml4ZWQnKSkge1xuICAgICAgICBvYmouZml4ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2FsY3VsYXRlSGVpZ2h0VGFibGVDb250YWluZXIoaGVpZ2h0KTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2hlY2tJbmZpbml0ZVNjcm9sbCgpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjaGFuZ2VTaXplTG9hZGluZygpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjaGFuZ2VIZWFkZXJXaWR0aCgpO1xufVxuIl19
|
package/esm2022/lib/components/po-table/po-table-column-icon/po-table-column-icon.interface.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtY29sdW1uLWljb24uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXRhYmxlL3BvLXRhYmxlLWNvbHVtbi1pY29uL3BvLXRhYmxlLWNvbHVtbi1pY29uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAdXNlZEJ5IFBvVGFibGVDb21wb25lbnRcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiA8YSBpZD1cInRhYmxlQ29sdW1uSWNvblwiPjwvYT5cbiAqXG4gKiBJbnRlcmZhY2UgcXVlIGRlZmluZSBhIGNvbHVuYSBjb20gw61jb25lKHMpIGRvIGBwby10YWJsZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9UYWJsZUNvbHVtbkljb24ge1xuICAvKiogRGVmaW5lIGEgYcOnw6NvIHF1ZSBzZXLDoSBleGVjdXRhZGEgYW8gY2xpY2FyIG5vIMOtY29uZS4gKi9cbiAgYWN0aW9uPzogRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGEgY29yIGRvIMOtY29uZS5cbiAgICpcbiAgICogVmFsb3JlcyB2w6FsaWRvczpcbiAgICogLSA8c3BhbiBjbGFzcz1cImRvdCBwby1jb2xvci0wMVwiPjwvc3Bhbj4gYGNvbG9yLTAxYFxuICAgKiAtIDxzcGFuIGNsYXNzPVwiZG90IHBvLWNvbG9yLTAyXCI+PC9zcGFuPiBgY29sb3ItMDJgXG4gICAqIC0gPHNwYW4gY2xhc3M9XCJkb3QgcG8tY29sb3ItMDNcIj48L3NwYW4+IGBjb2xvci0wM2BcbiAgICogLSA8c3BhbiBjbGFzcz1cImRvdCBwby1jb2xvci0wNFwiPjwvc3Bhbj4gYGNvbG9yLTA0YFxuICAgKiAtIDxzcGFuIGNsYXNzPVwiZG90IHBvLWNvbG9yLTA1XCI+PC9zcGFuPiBgY29sb3ItMDVgXG4gICAqIC0gPHNwYW4gY2xhc3M9XCJkb3QgcG8tY29sb3ItMDZcIj48L3NwYW4+IGBjb2xvci0wNmBcbiAgICogLSA8c3BhbiBjbGFzcz1cImRvdCBwby1jb2xvci0wN1wiPjwvc3Bhbj4gYGNvbG9yLTA3YFxuICAgKiAtIDxzcGFuIGNsYXNzPVwiZG90IHBvLWNvbG9yLTA4XCI+PC9zcGFuPiBgY29sb3ItMDhgXG4gICAqIC0gPHNwYW4gY2xhc3M9XCJkb3QgcG8tY29sb3ItMDlcIj48L3NwYW4+IGBjb2xvci0wOWBcbiAgICogLSA8c3BhbiBjbGFzcz1cImRvdCBwby1jb2xvci0xMFwiPjwvc3Bhbj4gYGNvbG9yLTEwYFxuICAgKiAtIDxzcGFuIGNsYXNzPVwiZG90IHBvLWNvbG9yLTExXCI+PC9zcGFuPiBgY29sb3ItMTFgXG4gICAqIC0gPHNwYW4gY2xhc3M9XCJkb3QgcG8tY29sb3ItMTJcIj48L3NwYW4+IGBjb2xvci0xMmBcbiAgICpcbiAgICovXG4gIGNvbG9yPzogc3RyaW5nIHwgRnVuY3Rpb247XG5cbiAgLyoqIEZ1bsOnw6NvIHF1ZSBkZXZlIHJldG9ybmFyIHVtIGJvb2xlYW5vIHBhcmEgaGFiaWxpdGFyIG91IGRlc2FiaWxpdGFyIG8gw61jb25lIGUgc3VhIGHDp8Ojby4gKi9cbiAgZGlzYWJsZWQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtY29sdW1uLWljb24uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXRhYmxlL3BvLXRhYmxlLWNvbHVtbi1pY29uL3BvLXRhYmxlLWNvbHVtbi1pY29uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAdXNlZEJ5IFBvVGFibGVDb21wb25lbnRcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiA8YSBpZD1cInRhYmxlQ29sdW1uSWNvblwiPjwvYT5cbiAqXG4gKiBJbnRlcmZhY2UgcXVlIGRlZmluZSBhIGNvbHVuYSBjb20gw61jb25lKHMpIGRvIGBwby10YWJsZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9UYWJsZUNvbHVtbkljb24ge1xuICAvKiogRGVmaW5lIGEgYcOnw6NvIHF1ZSBzZXLDoSBleGVjdXRhZGEgYW8gY2xpY2FyIG5vIMOtY29uZS4gKi9cbiAgYWN0aW9uPzogRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGEgY29yIGRvIMOtY29uZS5cbiAgICpcbiAgICogVmFsb3JlcyB2w6FsaWRvczpcbiAgICogLSA8c3BhbiBjbGFzcz1cImRvdCBwby1jb2xvci0wMVwiPjwvc3Bhbj4gYGNvbG9yLTAxYFxuICAgKiAtIDxzcGFuIGNsYXNzPVwiZG90IHBvLWNvbG9yLTAyXCI+PC9zcGFuPiBgY29sb3ItMDJgXG4gICAqIC0gPHNwYW4gY2xhc3M9XCJkb3QgcG8tY29sb3ItMDNcIj48L3NwYW4+IGBjb2xvci0wM2BcbiAgICogLSA8c3BhbiBjbGFzcz1cImRvdCBwby1jb2xvci0wNFwiPjwvc3Bhbj4gYGNvbG9yLTA0YFxuICAgKiAtIDxzcGFuIGNsYXNzPVwiZG90IHBvLWNvbG9yLTA1XCI+PC9zcGFuPiBgY29sb3ItMDVgXG4gICAqIC0gPHNwYW4gY2xhc3M9XCJkb3QgcG8tY29sb3ItMDZcIj48L3NwYW4+IGBjb2xvci0wNmBcbiAgICogLSA8c3BhbiBjbGFzcz1cImRvdCBwby1jb2xvci0wN1wiPjwvc3Bhbj4gYGNvbG9yLTA3YFxuICAgKiAtIDxzcGFuIGNsYXNzPVwiZG90IHBvLWNvbG9yLTA4XCI+PC9zcGFuPiBgY29sb3ItMDhgXG4gICAqIC0gPHNwYW4gY2xhc3M9XCJkb3QgcG8tY29sb3ItMDlcIj48L3NwYW4+IGBjb2xvci0wOWBcbiAgICogLSA8c3BhbiBjbGFzcz1cImRvdCBwby1jb2xvci0xMFwiPjwvc3Bhbj4gYGNvbG9yLTEwYFxuICAgKiAtIDxzcGFuIGNsYXNzPVwiZG90IHBvLWNvbG9yLTExXCI+PC9zcGFuPiBgY29sb3ItMTFgXG4gICAqIC0gPHNwYW4gY2xhc3M9XCJkb3QgcG8tY29sb3ItMTJcIj48L3NwYW4+IGBjb2xvci0xMmBcbiAgICpcbiAgICovXG4gIGNvbG9yPzogc3RyaW5nIHwgRnVuY3Rpb247XG5cbiAgLyoqIEZ1bsOnw6NvIHF1ZSBkZXZlIHJldG9ybmFyIHVtIGJvb2xlYW5vIHBhcmEgaGFiaWxpdGFyIG91IGRlc2FiaWxpdGFyIG8gw61jb25lIGUgc3VhIGHDp8Ojby4gKi9cbiAgZGlzYWJsZWQ/OiBGdW5jdGlvbjtcblxuICAvKipcbiAgICogw4kgcG9zc8OtdmVsIHVzYXIgcXVhbHF1ZXIgdW0gZG9zIMOtY29uZXMgZGEgW0JpYmxpb3RlY2EgZGUgw61jb25lc10oaHR0cHM6Ly9wby11aS5pby9pY29ucykuIGNvbmZvcm1lIGV4ZW1wbG8gYWJhaXhvOlxuICAgKiBgYGBcbiAgICogWyB7IGljb246ICdwaCBwaC1wbHVzJyB9IF1cbiAgICogYGBgXG4gICAqXG4gICAqIFRhbWLDqW0gw6kgcG9zc8OtdmVsIHV0aWxpemFyIG91dHJhcyBmb250ZXMgZGUgw61jb25lcywgcG9yIGV4ZW1wbG8gYSBiaWJsaW90ZWNhIEZvbnQgQXdlc29tZSwgZGEgc2VndWludGUgZm9ybWE6XG4gICAqIGBgYFxuICAgKiBbIHsgIGljb246ICdmYXMgZmEtcGx1cycgfSBdXG4gICAqIGBgYFxuICAgKlxuICAgKiBPdXRyYSBvcMOnw6NvIHNlcmlhIGEgY3VzdG9taXphw6fDo28gZG8gw61jb25lIGF0cmF2w6lzIGRvIGBUZW1wbGF0ZVJlZmAsIGNvbmZvcm1lIGV4ZW1wbG8gYWJhaXhvOlxuICAgKiBgY29tcG9uZW50Lmh0bWxgOlxuICAgKiBgYGBcbiAgICogPG5nLXRlbXBsYXRlICNpY29uVGVtcGxhdGVBZGQ+XG4gICAqICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgc3R5bGU9XCJmb250LXNpemU6IGluaGVyaXQ7XCI+YWRkPC9zcGFuPlxuICAgKiA8L25nLXRlbXBsYXRlPlxuICAgKlxuICAgKiA8cG8tdGFibGUgW3AtY29sdW1uXT1cIm15UHJvcGVydHlcIj48L3BvLXRhYmxlPlxuICAgKiBgYGBcbiAgICogYGNvbXBvbmVudC50c2A6XG4gICAqIGBgYFxuICAgKlxuICAgKiBAVmlld0NoaWxkKCdpY29uVGVtcGxhdGVBZGQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpY29uVGVtcGxhdGVBZGQ6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICAgKlxuICAgKiBteVByb3BlcnR5ID0gW1xuICAgKiAgeyBwcm9wZXJ0eTogJ2NvbHVtbkljb24nLCBsYWJlbDogJ0ljb25zJywgdHlwZTogJ2ljb24nLCBpY29uczogW1xuICAgKiAgIHsgdmFsdWU6ICdwbHVzJywgaWNvbjogdGhpcy5pY29uVGVtcGxhdGVBZGQgfSxcbiAgICogIF19XG4gICAqIF07XG4gICAqIGBgYFxuICAgKlxuICAgKiA+IENhc28gZXN0YSBwcm9wcmllZGFkZSBuw6NvIHNlamEgZGVmaW5pZGEsIGEgbWVzbWEgcmVjZWJlcsOhIG8gdmFsb3IgY29udGlkbyBlbSBgdmFsdWVgLlxuICAgKi9cbiAgaWNvbj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIC8qKiBEZWZpbmUgdW0gdGV4dG8gZGUgYWp1ZGEgcXVlIHNlcsOhIGV4aWJpZG8gYW8gcGFzc2FyIG8gKm1vdXNlKiBlbSBjaW1hIGRvIMOtY29uZS4gKi9cbiAgdG9vbHRpcD86IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lIG8gdmFsb3IgZG8gw61jb25lIHF1ZSBzZXLDoSBleGliaWRvLlxuICAgKi9cbiAgdmFsdWU6IHN0cmluZztcbn1cbiJdfQ==
|