ca-components 1.0.77 → 1.0.78
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/ca-input/ca-input.component.mjs +1 -1
- package/esm2022/lib/components/ca-map/ca-map.component.mjs +137 -210
- package/esm2022/lib/components/ca-map/enums/google-map.enum.mjs +2 -1
- package/esm2022/lib/components/ca-map/enums/map-marker-string.enum.mjs +2 -1
- package/esm2022/lib/components/ca-map/models/map.model.mjs +1 -1
- package/esm2022/lib/components/ca-map/utils/constants/index.mjs +2 -1
- package/esm2022/lib/components/ca-map/utils/constants/map-marker-icons.constants.mjs +119 -0
- package/esm2022/lib/components/ca-map/utils/constants/map-options.constants.mjs +1 -2
- package/esm2022/lib/components/ca-map/utils/helpers/map-marker-icon.helper.mjs +50 -12
- package/esm2022/lib/components/ca-map/utils/services/index.mjs +2 -0
- package/esm2022/lib/components/ca-map/utils/services/map-marker-icon.service.mjs +137 -0
- package/esm2022/lib/components/ca-map-dropdown/ca-map-dropdown.component.mjs +25 -11
- package/esm2022/lib/components/ca-progress-bar/ca-progress-bar.component.mjs +15 -15
- package/esm2022/lib/constants/map.constant.mjs +131 -131
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ca-components.mjs +717 -491
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-filters/ca-filter.component.d.ts +2 -2
- package/lib/components/ca-map/ca-map.component.d.ts +22 -25
- package/lib/components/ca-map/enums/google-map.enum.d.ts +2 -1
- package/lib/components/ca-map/enums/map-marker-string.enum.d.ts +2 -1
- package/lib/components/ca-map/models/map.model.d.ts +8 -3
- package/lib/components/ca-map/utils/constants/index.d.ts +1 -0
- package/lib/components/ca-map/utils/constants/map-marker-icons.constants.d.ts +6 -0
- package/lib/components/ca-map/utils/helpers/map-marker-icon.helper.d.ts +2 -0
- package/lib/components/ca-map/utils/services/index.d.ts +1 -0
- package/lib/components/ca-map/utils/services/map-marker-icon.service.d.ts +23 -0
- package/lib/components/ca-map-dropdown/ca-map-dropdown.component.d.ts +5 -3
- package/lib/components/ca-progress-bar/ca-progress-bar.component.d.ts +3 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -346,4 +346,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
346
346
|
type: Output,
|
|
347
347
|
args: ['dropDownKeyNavigation']
|
|
348
348
|
}] } });
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvY2EtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvY2EtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxzQkFBc0IsRUFDdEIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFDTixJQUFJLEVBRUosU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsV0FBVyxFQUVYLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU14RCxRQUFRO0FBQ1IsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsY0FBYyxFQUNkLGNBQWMsRUFDZCxhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFDbEMsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN4QixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7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QUEyQjt3QkFDM0IscUJBQXFCO3dCQUNyQixTQUFTO3dCQUNULG1CQUFtQjt3QkFDbkIsa0NBQWtDO3dCQUNsQyw2QkFBNkI7d0JBQzdCLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QiwrQkFBK0I7d0JBQy9CLHdCQUF3Qjt3QkFDeEIsZ0NBQWdDO3dCQUNoQyw4QkFBOEI7d0JBQzlCLHVCQUF1Qjt3QkFDdkIsK0JBQStCO3dCQUMvQixhQUFhO3dCQUNiLG9CQUFvQjtxQkFDdkIsV0FDVSxDQUFDLHNCQUFzQixDQUFDLGFBQ3RCLENBQUMsaUJBQWlCLEVBQUUsNkJBQTZCLENBQUM7OzBCQXNFMUQsSUFBSTs2SUFqRXNDLEtBQUs7c0JBQWpELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDYixjQUFjO3NCQUFwQyxTQUFTO3VCQUFDLFVBQVU7Z0JBRVosV0FBVztzQkFBbkIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVvQixjQUFjO3NCQUF2QyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFFSCxTQUFTO3NCQUE3QixNQUFNO3VCQUFDLFdBQVc7Z0JBRUcsZUFBZTtzQkFBcEMsTUFBTTt1QkFBQyxZQUFZO2dCQUVGLFdBQVc7c0JBQTVCLE1BQU07dUJBQUMsUUFBUTtnQkFFUSxZQUFZO3NCQUFuQyxNQUFNO3VCQUFDLGNBQWM7Z0JBRUwsZUFBZTtzQkFBL0IsTUFBTTt1QkFBQyxPQUFPO2dCQUlhLHFCQUFxQjtzQkFBaEQsTUFBTTt1QkFBQyxrQkFBa0I7Z0JBRU8sMEJBQTBCO3NCQUExRCxNQUFNO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3Jtc01vZHVsZSxcbiAgTmdDb250cm9sLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5cbi8vIG1vZGVsc1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBMYWJlbENvbG9yLCBDb21tYW5kc0V2ZW50IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHtcbiAgSW5wdXRFcnJvclBpcGUsXG4gIElucHV0Q29udGFpbmVyQ2xhc3NQaXBlLFxuICBJbnB1dENsYXNzUGlwZSxcbiAgTGFiZWxDbGFzc1BpcGUsXG4gIFNob3dDbGVhclBpcGUsXG4gIFNob3dJbnZhbGlkRGFuZ2VyTWFya1BpcGUsXG4gIFNob3dWYWxpZENoZWNrUGlwZSxcbiAgSW5wdXRUeXBlUGlwZSxcbiAgSW5wdXREcm9wZG93bkFycm93Q2xhc3NQaXBlLFxuICBTaG93RHJvcGRvd25BcnJvd1BpcGUsXG4gIElucHV0UGxhY2Vob2xkZXJJY29uUmlnaHRDbGFzc1BpcGUsXG4gIElucHV0UGxhY2Vob2xkZXJUZXh0Q2xhc3NQaXBlLFxuICBTaG93UGxhY2Vob2xkZXJUZXh0UGlwZVxufSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7IENhU3ZnUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2NhLXN2Zy5waXBlJztcbmltcG9ydCB7IExvYWRTdGF0dXNDb2xvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9sb2FkLXN0YXR1cy1jb2xvci5waXBlJztcbmltcG9ydCB7IFRob3VzYW5kU2VwYXJhdG9yUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3Rob3VzYW5kLXNlcGFyYXRvci5waXBlJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dENsZWFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWNsZWFyL2NhLWlucHV0LWNsZWFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0Q29tbWFuZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtY29tbWFuZHMvY2EtaW5wdXQtY29tbWFuZHMuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXRQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1wYXNzd29yZC9jYS1pbnB1dC1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uL2NhLWlucHV0LXBsYWNlaG9sZGVyLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREYXRldGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kYXRldGltZS1waWNrZXIvY2EtaW5wdXQtZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbXBvbmVudCB9IGZyb20gJy4uL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYVByb2ZpbGVJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uL2NhLXByb2ZpbGUtaW1hZ2UvY2EtcHJvZmlsZS1pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FMb2FkTW9kYWxQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJy4uL2NhLWxvYWQtbW9kYWwtcHJvZ3Jlc3MtYmFyL2NhLWxvYWQtbW9kYWwtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7XG5cbi8vIHNlcnZpY2VzXG5pbXBvcnQgeyBJbnB1dFN0YXRlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXRlVGltZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuLi9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9zZXJ2aWNlcy9jYWxlbmRhci1kYXRldGltZS1waWNrZXIuc2VydmljZSc7XG5cbi8vIGhlbHBlcnNcbmltcG9ydCB7IElucHV0Q2hhbmdlVmFsdWUsIElucHV0U3ZnUm91dGVzIH0gZnJvbSAnLi91dGlscyc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IE5nYk1vZHVsZSwgTmdiUG9wb3ZlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE5neE1hc2tNb2R1bGUgfSBmcm9tICduZ3gtbWFzayc7XG5cbi8vIGRpcmVjdGl2ZXNcbmltcG9ydCB7IE1pbk1heFZhbHVlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuLy8gZW51bXNcbmltcG9ydCB7IElucHV0Q29tbWFuZHNUeXBlLCBJbnB1dFN0cmluZ0VudW0gfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7IERyb3Bkb3duVGVtcGxhdGVUeXBlRW51bSB9IGZyb20gJy4uL2NhLWlucHV0LWRyb3Bkb3duL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2EtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICAvLyBNb2R1bGVcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICBOZ2JNb2R1bGUsXG4gICAgTmd4TWFza01vZHVsZSxcbiAgICAvLyBQaXBlXG4gICAgSW5wdXRFcnJvclBpcGUsXG4gICAgSW5wdXRDb250YWluZXJDbGFzc1BpcGUsXG4gICAgSW5wdXRDbGFzc1BpcGUsXG4gICAgTGFiZWxDbGFzc1BpcGUsXG4gICAgU2hvd0NsZWFyUGlwZSxcbiAgICBTaG93SW52YWxpZERhbmdlck1hcmtQaXBlLFxuICAgIFNob3dWYWxpZENoZWNrUGlwZSxcbiAgICBJbnB1dFR5cGVQaXBlLFxuICAgIElucHV0RHJvcGRvd25BcnJvd0NsYXNzUGlwZSxcbiAgICBTaG93RHJvcGRvd25BcnJvd1BpcGUsXG4gICAgQ2FTdmdQaXBlLFxuICAgIExvYWRTdGF0dXNDb2xvclBpcGUsXG4gICAgSW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzUGlwZSxcbiAgICBJbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzUGlwZSxcbiAgICBTaG93UGxhY2Vob2xkZXJUZXh0UGlwZSxcbiAgICAvLyBDb21wb25lbnRzXG4gICAgQ2FJbnB1dENsZWFyQ29tcG9uZW50LFxuICAgIENhQXBwVG9vbHRpcFYyQ29tcG9uZW50LFxuICAgIENhSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgICBDYUlucHV0UGxhY2Vob2xkZXJJY29uQ29tcG9uZW50LFxuICAgIENhSW5wdXRDb21tYW5kc0NvbXBvbmVudCxcbiAgICBDYUN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbXBvbmVudCxcbiAgICBDYUlucHV0RGF0ZXRpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgQ2FQcm9maWxlSW1hZ2VDb21wb25lbnQsXG4gICAgQ2FMb2FkTW9kYWxQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICAvLyBEaXJlY3RpdmVzXG4gICAgTWluTWF4VmFsdWVEaXJlY3RpdmVcbl0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgcHJvdmlkZXJzOiBbSW5wdXRTdGF0ZVNlcnZpY2UsIENhbGVuZGFyRGF0ZVRpbWVQaWNrZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FJbnB1dENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIGlucHV0ITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZChOZ2JQb3BvdmVyKSBuZ2JNYWluUG9wb3ZlciE6IE5nYlBvcG92ZXI7XG5cbiAgQElucHV0KCkgaW5wdXRDb25maWchOiBJQ2FJbnB1dDtcblxuICBASW5wdXQoKSBpbmNvcnJlY3RWYWx1ZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yITogTGFiZWxDb2xvciB8IG51bGw7XG4gIEBJbnB1dCgpIHRlbXBsYXRlITogc3RyaW5nO1xuXG4gIEBPdXRwdXQoJ2luY29ycmVjdEV2ZW50JykgaW5jb3JyZWN0SW5wdXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCdibHVySW5wdXQnKSBibHVySW5wdXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCdmb2N1c0lucHV0JykgZm9jdXNJbnB1dEV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgnY2hhbmdlJykgY2hhbmdlSW5wdXQ6IEV2ZW50RW1pdHRlcjxJbnB1dENoYW5nZVZhbHVlPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxJbnB1dENoYW5nZVZhbHVlPigpO1xuICBAT3V0cHV0KCdjb21tYW5kRXZlbnQnKSBjb21tYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjxDb21tYW5kc0V2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxDb21tYW5kc0V2ZW50PigpO1xuICBAT3V0cHV0KCdjbGVhcicpIGNsZWFySW5wdXRFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLy8gRHJvcGRvd25cbiAgQE91dHB1dCgnc2hvd0hpZGVEcm9wZG93bicpIHNob3dIaWRlRHJvcGRvd25FdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoJ2Ryb3BEb3duS2V5TmF2aWdhdGlvbicpIGRyb3BEb3duS2V5TmF2aWdhdGlvbkV2ZW50OiBFdmVudEVtaXR0ZXI8e1xuICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICBkYXRhOiBJQ2FJbnB1dCB8IG51bGw7XG4gIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAga2V5Q29kZTogbnVtYmVyO1xuICAgIGRhdGE6IElDYUlucHV0IHwgbnVsbDtcbiAgfT4oKTtcblxuICBwdWJsaWMgaXNUb3VjaGVkSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBJbnB1dCBDb21tYW5kc1xuICBwdWJsaWMgaXNWaXNpYmxlQ29tbWFuZHM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBFZGl0IElucHV0XG4gIHB1YmxpYyBpc0VkaXRJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIFBhc3N3b3JkXG4gIHB1YmxpYyBpc1RvZ2dsZVBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc0NhcHNMb2NrT246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBEcm9wZG93blxuICBwdWJsaWMgaXNEcm9wZG93blRvZ2dsZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBEYXRlXG4gIHB1YmxpYyBzaG93RGF0ZUlucHV0OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBkYXRlVGltZUlucHV0RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIHB1YmxpYyBuZXdJbnB1dENoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBEZXN0cm95XG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBpbnB1dFN2Z1JvdXRlcyA9IElucHV0U3ZnUm91dGVzO1xuICBwdWJsaWMgaXNGb2N1c0lucHV0ITogYm9vbGVhbjtcbiAgcHVibGljIHByaWNlU2VwZXJhdG9yV2l0aEZpbGxlZFZhbHVlID0gdHJ1ZTtcblxuICBwdWJsaWMgaW5wdXRDb21tYW5kc1R5cGUgPSBJbnB1dENvbW1hbmRzVHlwZTtcbiAgcHVibGljIGlucHV0U3RyaW5nRW51bSA9IElucHV0U3RyaW5nRW51bTtcbiAgcHVibGljIGRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bSA9IERyb3Bkb3duVGVtcGxhdGVUeXBlRW51bTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIHB1YmxpYyBzdXBlckNvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgaW5wdXRTdGF0ZVNlcnZpY2U6IElucHV0U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGhvdXNhbmRTZXBhcmF0b3JQaXBlOiBUaG91c2FuZFNlcGFyYXRvclBpcGVcbiAgKSB7XG4gICAgdGhpcy5zdXBlckNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gIH1cblxuICBnZXQgZ2V0U3VwZXJDb250cm9sKCkge1xuICAgIHJldHVybiB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0Q2hhbmdlc0xpc3RlbmVyKCk7XG5cbiAgICB0aGlzLmluaXRTdGF0ZVNlcnZpY2UoKTtcblxuICAgIHRoaXMub3V0cHV0TGlzdGVuZXJzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTdGF0ZUlucHV0cyhjaGFuZ2VzKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLmF1dG9Gb2N1c0ZpcnN0SW5wdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0U3RhdGVTZXJ2aWNlKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uuc2V0U3VwZXJDb250cm9sKHRoaXMuc3VwZXJDb250cm9sKTtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLnNldElucHV0RWxlbWVudFJlZih0aGlzLmlucHV0LCB0aGlzLmNkUmVmKTtcblxuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2UuY29tYmluZWRWYXJpYWJsZXMkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoW1xuICAgICAgICAgIGZvY3VzLFxuICAgICAgICAgIHRvdWNoZWQsXG4gICAgICAgICAgaXNWaXNpYmxlQ29tbWFuZHMsXG4gICAgICAgICAgaXNFZGl0SW5wdXQsXG4gICAgICAgICAgaXNEcm9wZG93blRvZ2dsZXIsXG4gICAgICAgICAgZGF0ZVRpbWVJbnB1dERhdGUsXG4gICAgICAgICAgc2hvd0RhdGVJbnB1dCxcbiAgICAgICAgICBpc0NhcHNMb2NrT24sXG4gICAgICAgIF0pID0+IHtcbiAgICAgICAgICB0aGlzLmlzRm9jdXNJbnB1dCA9IGZvY3VzO1xuICAgICAgICAgIHRoaXMuaXNUb3VjaGVkSW5wdXQgPSB0b3VjaGVkO1xuICAgICAgICAgIHRoaXMuaXNWaXNpYmxlQ29tbWFuZHMgPSBpc1Zpc2libGVDb21tYW5kcztcbiAgICAgICAgICB0aGlzLmlzRWRpdElucHV0ID0gaXNFZGl0SW5wdXQ7XG4gICAgICAgICAgdGhpcy5pc0Ryb3Bkb3duVG9nZ2xlciA9IGlzRHJvcGRvd25Ub2dnbGVyO1xuICAgICAgICAgIHRoaXMuZGF0ZVRpbWVJbnB1dERhdGUgPSBkYXRlVGltZUlucHV0RGF0ZTtcbiAgICAgICAgICB0aGlzLnNob3dEYXRlSW5wdXQgPSBzaG93RGF0ZUlucHV0O1xuICAgICAgICAgIHRoaXMuaXNDYXBzTG9ja09uID0gaXNDYXBzTG9ja09uO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIG91dHB1dExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBjb25zdCBvYnNlcnZhYmxlczoge1xuICAgICAgc3RyZWFtJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgICAgZW1pdHRlcjogRXZlbnRFbWl0dGVyPGFueT47XG4gICAgfVtdID0gW1xuICAgICAge1xuICAgICAgICBzdHJlYW0kOiB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLmNvbW1hbmRFdmVudCQsXG4gICAgICAgIGVtaXR0ZXI6IHRoaXMuY29tbWFuZEV2ZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3RyZWFtJDogdGhpcy5pbnB1dFN0YXRlU2VydmljZS5jbGVhcklucHV0RXZlbnQkLFxuICAgICAgICBlbWl0dGVyOiB0aGlzLmNsZWFySW5wdXRFdmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHN0cmVhbSQ6IHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2UuaW5jb3JyZWN0SW5wdXQkLFxuICAgICAgICBlbWl0dGVyOiB0aGlzLmluY29ycmVjdElucHV0LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3RyZWFtJDogdGhpcy5pbnB1dFN0YXRlU2VydmljZS5ibHVySW5wdXQkLFxuICAgICAgICBlbWl0dGVyOiB0aGlzLmJsdXJJbnB1dCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHN0cmVhbSQ6IHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2UuY2hhbmdlSW5wdXQkLFxuICAgICAgICBlbWl0dGVyOiB0aGlzLmNoYW5nZUlucHV0LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3RyZWFtJDogdGhpcy5pbnB1dFN0YXRlU2VydmljZS5zaG93SGlkZURyb3Bkb3duJCxcbiAgICAgICAgZW1pdHRlcjogdGhpcy5zaG93SGlkZURyb3Bkb3duRXZlbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdHJlYW0kOiB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLmRyb3BEb3duS2V5TmF2aWdhdGlvbiQsXG4gICAgICAgIGVtaXR0ZXI6IHRoaXMuZHJvcERvd25LZXlOYXZpZ2F0aW9uRXZlbnQsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBvYnNlcnZhYmxlcy5mb3JFYWNoKCh7IHN0cmVhbSQsIGVtaXR0ZXIgfSkgPT5cbiAgICAgIHN0cmVhbSRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiBlbWl0dGVyLmVtaXQodmFsdWUpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaW5pdENoYW5nZXNMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBjb21iaW5lZENoYW5nZXMgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZ2V0U3VwZXJDb250cm9sPy52YWx1ZUNoYW5nZXMsXG4gICAgICB0aGlzLmdldFN1cGVyQ29udHJvbD8uc3RhdHVzQ2hhbmdlcyxcbiAgICBdKTtcblxuICAgIGNvbWJpbmVkQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS5vbkNoYW5nZSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0U3RhdGVJbnB1dHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydpbnB1dENvbmZpZyddKSB7XG4gICAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLnNldElucHV0Q29uZmlnKFxuICAgICAgICBjaGFuZ2VzWydpbnB1dENvbmZpZyddPy5jdXJyZW50VmFsdWVcbiAgICAgICk7XG4gICAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uSW5wdXRDb25maWdDaGFuZ2UoKTtcbiAgICB9XG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS5zZXRJbmNvcnJlY3RWYWx1ZShcbiAgICAgIGNoYW5nZXNbJ2luY29ycmVjdFZhbHVlJ10/LmN1cnJlbnRWYWx1ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZShvYmo6IElucHV0Q2hhbmdlVmFsdWUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dENvbmZpZy5wcmljZVNlcGFyYXRvcikge1xuICAgICAgaWYgKG9iaiAmJiB0aGlzLnByaWNlU2VwZXJhdG9yV2l0aEZpbGxlZFZhbHVlKVxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPVxuICAgICAgICAgIHRoaXMudGhvdXNhbmRTZXBhcmF0b3JQaXBlLnRyYW5zZm9ybShvYmopO1xuICAgICAgZWxzZSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBvYmo7XG5cbiAgICAgIHRoaXMucHJpY2VTZXBlcmF0b3JXaXRoRmlsbGVkVmFsdWUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLndyaXRlVmFsdWUob2JqKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2UoXzogYW55KTogdm9pZCB7fVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZCgpOiB2b2lkIHt9XG5cbiAgcHVibGljIG9uQmx1cihldmVudD86IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uQmx1cihldmVudCk7XG5cbiAgICB0aGlzLmJsdXJJbnB1dC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoZXZlbnQ/OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c0lucHV0RXZlbnQuZW1pdCh0cnVlKTtcblxuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uub25Gb2N1cyhldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uub25LZXlwcmVzcyhldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS5vbktleWRvd24oZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uS2V5dXAoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHRyYW5zZm9ybVRleHQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS50cmFuc2Zvcm1UZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2UuY2xlYXJJbnB1dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25Ub2dnbGVQYXNzd29yZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXNUb2dnbGVQYXNzd29yZCA9ICF0aGlzLmlzVG9nZ2xlUGFzc3dvcmQ7XG4gIH1cblxuICBwdWJsaWMgb25Db21tYW5kcyhldmVudDoge1xuICAgIGV2ZW50OiBFdmVudDtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgYWN0aW9uOiBzdHJpbmc7XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uQ29tbWFuZHMoZXZlbnQuZXZlbnQsIGV2ZW50LnR5cGUsIGV2ZW50LmFjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgb25FZGl0SW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS5vbkVkaXRJbnB1dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlRHJvcGRvd25PcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2UudG9nZ2xlRHJvcGRvd25PcHRpb25zKCk7XG4gIH1cblxuICBwdWJsaWMgb25QbGFjZWhvbGRlckljb25FdmVudChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uUGxhY2Vob2xkZXJJY29uRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHNldElucHV0Q3Vyc29yQXRUaGVFbmQoaW5wdXQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uuc2V0SW5wdXRDdXJzb3JBdFRoZUVuZChpbnB1dCk7XG4gIH1cblxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERhdGUgJiBUaW1lIFBpY2tlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS5zZWxlY3Rpb25DaGFuZ2UoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uRGF0ZVBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uub25EYXRlUGFzdGUoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHNldFNlbGVjdGlvbihldmVudDoge1xuICAgIHByZXZlbnREZWZhdWx0OiAoKSA9PiB2b2lkO1xuICAgIHN0b3BQcm9wYWdhdGlvbjogKCkgPT4gdm9pZDtcbiAgICB0YXJnZXQ6IGFueTtcbiAgfSk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uuc2V0U2VsZWN0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VTZWxlY3Rpb24oZXZlbnQ6IHtcbiAgICBlOiBLZXlib2FyZEV2ZW50O1xuICAgIG5vUHJldmVudERlZmF1bHQ6IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLmNoYW5nZVNlbGVjdGlvbihldmVudC5lLCBldmVudC5ub1ByZXZlbnREZWZhdWx0KTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvcG92ZXJTaG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uUG9wb3ZlclNob3duKCk7XG4gIH1cblxuICBwdWJsaWMgb25Qb3BvdmVySGlkZGVuKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uub25Qb3BvdmVySGlkZGVuKCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VQb3BvdmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nYk1haW5Qb3BvdmVyKSB0aGlzLm5nYk1haW5Qb3BvdmVyLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0TGFzdE9uZUZvclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLnNlbGVjdExhc3RPbmVGb3JTZWxlY3Rpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RMYXN0T25lQWZ0ZXJNb3VzZVVwKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uuc2VsZWN0TGFzdE9uZUFmdGVyTW91c2VVcCgpO1xuICB9XG5cbiAgcHVibGljIHRyYWNrSWRlbnRpdHkgPSAoaW5kZXg6IG51bWJlcik6IG51bWJlciA9PiBpbmRleDtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uRGVzdG9yeSgpO1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImlucHV0LWN1c3RvbS1ncm91cCB7eyBpbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gIFtuZ0NsYXNzXT1cIlxuICAgIGdldFN1cGVyQ29udHJvbFxuICAgICAgfCBpbnB1dENvbnRhaW5lckNsYXNzXG4gICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgIDogaXNUb3VjaGVkSW5wdXRcbiAgICAgICAgOiBpbnB1dENvbmZpZ1xuICAgICAgICA6IGdldFN1cGVyQ29udHJvbD8udmFsdWVcbiAgXCJcbiAgbmdiVG9vbHRpcFxuICBbbWFpbkNhVG9vbHRpcF09XCJnZXRTdXBlckNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IGlucHV0Q29uZmlnLm5hbWVcIlxuICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyNERjNDM0MnXCJcbiAgW2Rpc2FibGVUb29sdGlwXT1cIiFpbnB1dENvbmZpZy5yZXF1aXJlZExhYmVsIHx8ICEhc3VwZXJDb250cm9sLnZhbGlkXCJcbiAgcG9zaXRpb249XCJib3R0b21cIlxuICB0cmlnZ2Vycz1cImhvdmVyXCJcbj5cbiAgPCEtLSBJbnB1dCBDb21tYW5kcyAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Q29uZmlnLmNvbW1hbmRzPy5hY3RpdmUgJiYgaXNWaXNpYmxlQ29tbWFuZHNcIj5cbiAgICA8YXBwLWNhLWlucHV0LWNvbW1hbmRzXG4gICAgICBbaW5wdXRDb25maWddPVwiaW5wdXRDb25maWdcIlxuICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgW2lzVmlzaWJsZUNvbW1hbmRzXT1cImlzVmlzaWJsZUNvbW1hbmRzXCJcbiAgICAgIChvbkNvbW1hbmRzQ2xpY2spPVwib25Db21tYW5kcygkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9hcHAtY2EtaW5wdXQtY29tbWFuZHM+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gRGF0ZVRpbWUgUGlja2VyIC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIChpbnB1dENvbmZpZy5uYW1lID09PSAnZGF0ZXBpY2tlcicgfHxcbiAgICAgICAgaW5wdXRDb25maWcubmFtZSA9PT0gJ3RpbWVwaWNrZXInKSAmJlxuICAgICAgIWlucHV0Q29uZmlnLmlzRGlzYWJsZWRcbiAgICBcIlxuICA+XG4gICAgPGFwcC1jYS1pbnB1dC1kYXRldGltZS1waWNrZXJcbiAgICAgIFtzaG93RGF0ZUlucHV0XT1cInNob3dEYXRlSW5wdXRcIlxuICAgICAgW2lucHV0Q29uZmlnXT1cImlucHV0Q29uZmlnXCJcbiAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgIFtpc0ZvY3VzSW5wdXRdPVwiaXNGb2N1c0lucHV0XCJcbiAgICAgIFtpc1Zpc2libGVDb21tYW5kc109XCJpc1Zpc2libGVDb21tYW5kc1wiXG4gICAgICBbaXNUb3VjaGVkSW5wdXRdPVwiaXNUb3VjaGVkSW5wdXRcIlxuICAgICAgKHNlbGVjdExhc3RPbmVGb3JTZWxlY3Rpb25FbWl0dGVyKT1cInNlbGVjdExhc3RPbmVGb3JTZWxlY3Rpb24oKVwiXG4gICAgICAoc2VsZWN0TGFzdE9uZUFmdGVyTW91c2VVcEVtaXR0ZXIpPVwic2VsZWN0TGFzdE9uZUFmdGVyTW91c2VVcCgpXCJcbiAgICAgIChvbkRhdGVQYXN0ZUVtaXR0ZXIpPVwib25EYXRlUGFzdGUoJGV2ZW50KVwiXG4gICAgICAob25CbHVyRW1pdHRlcik9XCJvbkJsdXIoKVwiXG4gICAgICAoY2hhbmdlU2VsZWN0aW9uRW1taXRlcik9XCJjaGFuZ2VTZWxlY3Rpb24oJGV2ZW50KVwiXG4gICAgICAob25Gb2N1c0VtaXR0ZXIpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAgIChzZXRTZWxlY3Rpb25FbW1pdGVyKT1cInNldFNlbGVjdGlvbigkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9hcHAtY2EtaW5wdXQtZGF0ZXRpbWUtcGlja2VyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIElucHV0IExhYmVsIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlucHV0Q29uZmlnLm11bHRpU2VsZWN0RHJvcGRvd25BY3RpdmVcIj5cbiAgICA8bGFiZWxcbiAgICAgIFtmb3JdPVwiaW5wdXRDb25maWcubmFtZVwiXG4gICAgICBjbGFzcz1cImlucHV0LWxhYmVsIHt7IGlucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19IHt7XG4gICAgICAgIGlucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmN1c3RvbUNsYXNzXG4gICAgICB9fVwiXG4gICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgZ2V0U3VwZXJDb250cm9sPy52YWx1ZSB8IGxhYmVsQ2xhc3M6IGlzRm9jdXNJbnB1dCA6IGlucHV0Q29uZmlnXG4gICAgICAgIDogaXNUb3VjaGVkSW5wdXQgOiBnZXRTdXBlckNvbnRyb2w/LmludmFsaWRcbiAgICAgICAgOiBnZXRTdXBlckNvbnRyb2w/LnRvdWNoZWRcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Q29uZmlnLmxhYmVsXCI+XG4gICAgICAgIDxzcGFuPnt7IGlucHV0Q29uZmlnLmxhYmVsIH19IDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmxhYmVscz8ubGVuZ3RoXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBbY2xhc3NdPVwiaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8uY3VzdG9tQ2xhc3MhXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnbXVsdGlwbGUtbGFiZWxzLXBvc2l0aW9uLW9uLWZvY3VzJzpcbiAgICAgICAgICAgICAgaXNGb2N1c0lucHV0IHx8XG4gICAgICAgICAgICAgIGlucHV0Q29uZmlnLm11bHRpcGxlSW5wdXRWYWx1ZXM/Lm9wdGlvbnM/Lmxlbmd0aCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBpbnB1dENvbmZpZy5pc1JlcXVpcmVkICYmICFpbnB1dENvbmZpZy5pc0Rpc2FibGVkXG4gICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbGFiZWwgb2YgaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8ubGFiZWxzXCI+XG4gICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2xhYmVsPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIElucHV0IENsZWFyIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRDb25maWcgfCBzaG93Q2xlYXJcIj5cbiAgICA8YXBwLWNhLWlucHV0LWNsZWFyXG4gICAgICBbaW5wdXRDb25maWddPVwiaW5wdXRDb25maWdcIlxuICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgW2luY29ycmVjdFZhbHVlXT1cImluY29ycmVjdFZhbHVlXCJcbiAgICAgIFtzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvcl09XCJzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvclwiXG4gICAgICBbdGVtcGxhdGVdPVwidGVtcGxhdGVcIlxuICAgICAgKGNsZWFySW5wdXRDbGljayk9XCJjbGVhcklucHV0KCRldmVudClcIlxuICAgID5cbiAgICA8L2FwcC1jYS1pbnB1dC1jbGVhcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBJbnB1dCBDbGVhciBmb3IgZGlzcGF0Y2ggZHJvcGRvd24gLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZSA9PT0gJ3N2Z3RleHQtZGlzcGF0Y2gtdGVtcGxhdGUnXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpbnB1dC1jbGVhci1kaXNwYXRjaFwiXG4gICAgICBwb3NpdGlvbj1cInRvcFwiXG4gICAgICAoY2xpY2spPVwiY2xlYXJJbnB1dCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3ZnLWljb25cbiAgICAgICAgW3NyY109XCJpbnB1dFN2Z1JvdXRlcy54Q2xlYXJDb21tb25TdmdcIlxuICAgICAgICBjbGFzcz1cImlucHV0LWNsZWFyLWRpc3BhdGNoLWljb25cIlxuICAgICAgPjwvc3ZnLWljb24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgUGVuIC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIHNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yICYmXG4gICAgICAhaXNFZGl0SW5wdXQgJiZcbiAgICAgICFpc0ZvY3VzSW5wdXQgJiZcbiAgICAgIGdldFN1cGVyQ29udHJvbD8udmFsdWVcbiAgICBcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpbnB1dC1wZW4tY29udGFpbmVyXCJcbiAgICAgIG5nYlRvb2x0aXBcbiAgICAgIFttYWluQ2FUb29sdGlwXT1cIidFZGl0J1wiXG4gICAgICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyMyRjJGMkYnXCJcbiAgICAgIHBvc2l0aW9uPVwidG9wXCJcbiAgICAgIChjbGljayk9XCJvbkVkaXRJbnB1dCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3ZnLWljb24gW3NyY109XCJpbnB1dFN2Z1JvdXRlcy5pbnB1dFBlblN2Z1wiIGNsYXNzPVwiaW5wdXQtcGVuXCI+PC9zdmctaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBJbnB1dCBJbnZhbGlkIERhbmdlciBNYXJrIC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIGlucHV0Q29uZmlnXG4gICAgICAgIHwgc2hvd0ludmFsaWREYW5nZXJNYXJrXG4gICAgICAgICAgOiBnZXRTdXBlckNvbnRyb2xcbiAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgIDogaXNUb3VjaGVkSW5wdXRcbiAgICAgICAgICA6IGdldFN1cGVyQ29udHJvbD8udmFsdWVcbiAgICBcIlxuICA+XG4gICAgPHN2Zy1pY29uXG4gICAgICBjbGFzcz1cImlucHV0LWludmFsaWQtZGFuZ2VyLW1hcmsgIHt7IGlucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgIFtzcmNdPVwiaW5wdXRTdmdSb3V0ZXMuZGFuZ2VyU3ZnXCJcbiAgICA+XG4gICAgPC9zdmctaWNvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBJbnB1dCBWYWxpZCBDaGVjayAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICBnZXRTdXBlckNvbnRyb2xcbiAgICAgICAgfCBzaG93VmFsaWRDaGVjazogaXNGb2N1c0lucHV0IDogaW5wdXRDb25maWcgOiBnZXRTdXBlckNvbnRyb2w/LnZhbHVlXG4gICAgXCJcbiAgPlxuICAgIDxzdmctaWNvblxuICAgICAgY2xhc3M9XCJpbnB1dC1yZXF1aXJlZC1jaGVjayB7eyBpbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgICBbc3JjXT1cImlucHV0U3ZnUm91dGVzLmNvbmZpcm1TdmdcIlxuICAgID48L3N2Zy1pY29uPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIElucHV0IFBhc3N3b3JkIENhcHMgTG9jayBBbmQgRXllIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRDb25maWcudHlwZSA9PT0gJ3Bhc3N3b3JkJ1wiPlxuICAgIDxhcHAtY2EtaW5wdXQtcGFzc3dvcmRcbiAgICAgIFtpbnB1dENvbmZpZ109XCJpbnB1dENvbmZpZ1wiXG4gICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICBbaXNUb3VjaGVkSW5wdXRdPVwiaXNUb3VjaGVkSW5wdXRcIlxuICAgICAgW2lzQ2Fwc0xvY2tPbl09XCJpc0NhcHNMb2NrT25cIlxuICAgICAgW2lzVG9nZ2xlUGFzc3dvcmRdPVwiaXNUb2dnbGVQYXNzd29yZFwiXG4gICAgICAob25Ub2dnbGVQYXNzd29yZENsaWNrKT1cIm9uVG9nZ2xlUGFzc3dvcmQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYXBwLWNhLWlucHV0LXBhc3N3b3JkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIElucHV0IERyb3Bkb3duIEFycm93IC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRDb25maWcgfCBzaG93RHJvcGRvd25BcnJvd1wiPlxuICAgIDxzdmctaWNvblxuICAgICAgY2xhc3M9XCJpbnB1dC1kcm9wZG93bi1hcnJvdyB7eyBpbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgZ2V0U3VwZXJDb250cm9sXG4gICAgICAgICAgfCBpbnB1dERyb3Bkb3duQXJyb3dDbGFzc1xuICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgIDogaW5wdXRDb25maWdcbiAgICAgICAgICAgIDogaXNUb3VjaGVkSW5wdXRcbiAgICAgICAgICAgIDogZ2V0U3VwZXJDb250cm9sPy52YWx1ZVxuICAgICAgXCJcbiAgICAgIFtzcmNdPVwiaW5wdXRTdmdSb3V0ZXMuaW5wdXREcm9wZG93bkFycm93U3ZnXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bk9wdGlvbnMoKVwiXG4gICAgPjwvc3ZnLWljb24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgUGxhY2Vob2xkZXIgSWNvbiAtLT5cbiAgPG5nLWNvbnRhaW5lciBcbiAgICAqbmdJZj1cIlxuICAgICAgaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uIHx8XG4gICAgICBpbnB1dENvbmZpZy5uYW1lID09PSAnZGF0ZXBpY2tlcicgfHxcbiAgICAgIGlucHV0Q29uZmlnLm5hbWUgPT09ICd0aW1lcGlja2VyJ1xuICAgIFwiXG4gID5cbiAgICA8YXBwLWNhLWlucHV0LXBsYWNlaG9sZGVyLWljb25cbiAgICAgIFtpbnB1dENvbmZpZ109XCJpbnB1dENvbmZpZ1wiXG4gICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICBbaXNUb3VjaGVkSW5wdXRdPVwiaXNUb3VjaGVkSW5wdXRcIlxuICAgICAgW3NlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXT1cInNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXCJcbiAgICAgIFtpc0VkaXRJbnB1dF09XCJpc0VkaXRJbnB1dFwiXG4gICAgICBbZGF0ZVRpbWVQb3BvdmVyXT1cImRhdGVUaW1lUG9wb3ZlclwiXG4gICAgICAob25Qb3BvdmVyU2hvd25FbWl0dGVyKT1cIm9uUG9wb3ZlclNob3duKClcIlxuICAgICAgKG9uUG9wb3ZlckhpZGRlbkVtaXR0ZXIpPVwib25Qb3BvdmVySGlkZGVuKClcIlxuICAgICAgKG9uUGxhY2Vob2xkZXJJY29uRXZlbnRFbWl0dGVyKT1cIm9uUGxhY2Vob2xkZXJJY29uRXZlbnQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYXBwLWNhLWlucHV0LXBsYWNlaG9sZGVyLWljb24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgUGxhY2Vob2xkZXIgVGV4dCAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICBpbnB1dENvbmZpZyB8IHNob3dQbGFjZWhvbGRlclRleHQgOiBnZXRTdXBlckNvbnRyb2wgOiBcbiAgICAgIGlzVmlzaWJsZUNvbW1hbmRzIDogZ2V0U3VwZXJDb250cm9sPy52YWx1ZVxuICAgIFwiXG4gID5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJjYS1wbGFjZWhvbGRlci10ZXh0IHt7IGlucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgIFtuZ0NsYXNzXT1cIiAgICAgIFxuICAgICAgaXNGb2N1c0lucHV0IHwgaW5wdXRQbGFjZWhvbGRlclRleHRDbGFzc1xuICAgICAgICA6IGlzVG91Y2hlZElucHV0IDogZ2V0U3VwZXJDb250cm9sIDogaW5wdXRDb25maWdcbiAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kcyA6IGdldFN1cGVyQ29udHJvbD8udmFsdWVcbiAgICAgIFwiXG4gICAgICBbc3R5bGUubGVmdF09XCJcbiAgICAgICAgaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpID09PSBpbnB1dFN0cmluZ0VudW0uUEVSU09OUyB8fFxuICAgICAgICBpbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgPT09IGlucHV0U3RyaW5nRW51bS5WRUhJQ0xFU1xuICAgICAgICAgID8gMzAgK1xuICAgICAgICAgICAgKGdldFN1cGVyQ29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCArIDEpICogOSArXG4gICAgICAgICAgICAncHgnXG4gICAgICAgICAgOiBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgICAgIGlucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSAhPT0gaW5wdXRDb21tYW5kc1R5cGUuTU9OVEhTXG4gICAgICAgICAgPyAnYXV0bydcbiAgICAgICAgICA6IChnZXRTdXBlckNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpPy5sZW5ndGggKyAxKSAqIDggKyAncHgnXG4gICAgICBcIlxuICAgICAgW3N0eWxlLnJpZ2h0XT1cIlxuICAgICAgICBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpICE9PSBpbnB1dENvbW1hbmRzVHlwZS5NT05USFNcbiAgICAgICAgICA/ICcyOHB4J1xuICAgICAgICAgIDogJ2F1dG8nXG4gICAgICBcIlxuICAgICAgPlxuICAgICAgICB7eyBpbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQgfX1cbiAgICA8L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuICBcbiAgPCEtLSBJbnB1dCBMYWJlbCBDb3VudGVyIC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIHNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yICYmXG4gICAgICBnZXRTdXBlckNvbnRyb2w/LnZhbHVlICYmXG4gICAgICAhaXNGb2N1c0lucHV0ICYmXG4gICAgICAhaW5wdXRDb25maWcuaXNEaXNhYmxlZCAmJlxuICAgICAgaW5wdXRDb25maWcuc2hvd0NvdW50XG4gICAgXCJcbiAgPlxuICAgIDxwXG4gICAgICBbc3R5bGUudG9wXT1cIic0cHgnXCJcbiAgICAgIFtzdHlsZS5sZWZ0XT1cIlxuICAgICAgICAoZ2V0U3VwZXJDb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoICsgNi41KSAqIDggKyAncHgnXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJpbnB1dC1sYWJlbC1jb3VudGVyXCJcbiAgICA+XG4gICAgICB7eyBzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvci5jb3VudCB9fVxuICAgIDwvcD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBTcGVjaWFsIERyb3Bkb3duIFNlbGVjdGVkIFNWRyB3aXRoIG9yIFdpdGhvdXQgVGV4dCAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICBpbnB1dENvbmZpZz8uZHJvcGRvd25JbWFnZUlucHV0Py5zdmcgJiZcbiAgICAgICFpbnB1dENvbmZpZz8uaGlkZUFsbEl0ZW1zSW5JbnB1dERyb3Bkb3duICYmXG4gICAgICAhKCFpbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LndpdGhUZXh0ICYmIGlzRm9jdXNJbnB1dCkgJiZcbiAgICAgICEoXG4gICAgICAgICAgWyd0cnVjaycsICd0cmFpbGVyJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgIGlucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8udGVtcGxhdGUhXG4gICAgICAgICAgKSAmJlxuICAgICAgICAgIGlzRm9jdXNJbnB1dCAmJlxuICAgICAgICAgIGlucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8ucmVtb3ZlXG4gICAgICApICYmXG4gICAgICAhaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8ubmFtZUluaXRpYWxzSW5zdGVhZFVybFxuICAgIFwiXG4gID5cbiAgICA8c3ZnLWljb25cbiAgICAgICAgW3NyY109XCJpbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LnVybCFcIlxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLXNlbGVjdGVkLWltYWdlIHt7XG4gICAgICAgICAgaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jbGFzc1xuICAgICAgICB9fVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAndW5zZXQtY29sb3InOiBpc0ZvY3VzSW5wdXQgJiYgaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jbGFzc1xuICAgICAgICB9XCJcbiAgICAgICAgW3N2Z1N0eWxlXT1cIntcbiAgICAgICAgICBmaWxsOlxuICAgICAgICAgICAgaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jb2xvciAmJiAhaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgID8gaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jb2xvclxuICAgICAgICAgICAgICA6ICcjZmZmZmZmJ1xuICAgICAgICB9XCJcbiAgICA+XG4gICAgPC9zdmctaWNvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBTcGVjaWFsIERyb3Bkb3duIFNlbGVjdGVkIEltYWdlIFdpdGggVGV4dCBXaXRoIEluaXRpYWxzIG5hbWUgLS0+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8uaW1hZ2UgJiZcbiAgICAgICFpbnB1dENvbmZpZz8uaGlkZUFsbEl0ZW1zSW5JbnB1dERyb3Bkb3duICYmXG4gICAgICBpbnB1dENvbmZpZz8uZHJvcGRvd25JbWFnZUlucHV0Py51cmwgJiZcbiAgICAgICFpbnB1dENvbmZpZz8uZHJvcGRvd25JbWFnZUlucHV0Py5uYW1lSW5pdGlhbHNJbnN0ZWFkVXJsXG4gICAgXCJcbiAgPlxuICAgIDxpbWdcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24tc2VsZWN0ZWQtaW1hZ2UgbmFtZS1pbml0aWFscy1pbnN0ZWFkLXVybFwiXG4gICAgICBbc3JjXT1cImlucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8udXJsXCJcbiAgICAgIFthbHRdPVwiJ0lucHV0IEltYWdlJ1wiXG4gICAgLz5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8ubmFtZUluaXRpYWxzSW5zdGVhZFVybCAmJlxuICAgICAgIWlucHV0Q29uZmlnPy5oaWRlQWxsSXRlbXNJbklucHV0RHJvcGRvd24gJiZcbiAgICAgICEoIWlucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8ud2l0aFRleHQgJiYgaXNGb2N1c0lucHV0KVxuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm5vLXByb2ZpbGUtaW1hZ2UgZHJvcGRvd24tc2VsZWN0ZWQtaW1hZ2UgbmFtZS1pbml0aWFscy1pbnN0ZWFkLXVybFwiXG4gICAgPlxuICAgICAgPGFwcC1jYS1wcm9maWxlLWltYWdlXG4gICAgICAgICAgW2luZHhdPVwiMFwiXG4gICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW3R5cGVdPVwiJ3VzZXInXCJcbiAgICAgICAgICBbbmFtZV09XCJpbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/Lm5hbWVJbml0aWFsc0luc3RlYWRVcmwhXCJcbiAgICAgID5cbiAgICAgIDwvYXBwLWNhLXByb2ZpbGUtaW1hZ2U+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gTXVsdGlwbGUgSW5wdXQgVmFsdWVzIC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIGlucHV0Q29uZmlnPy5tdWx0aXBsZUlucHV0VmFsdWVzPy5vcHRpb25zPy5sZW5ndGggJiYgIWlzRm9jdXNJbnB1dFxuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImlucHV0LWNvbnRyb2wge3tcbiAgICAgICAgaW5wdXRDb25maWcubXVsdGlwbGVJbnB1dFZhbHVlcz8uY3VzdG9tQ2xhc3NcbiAgICAgIH19XCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bk9wdGlvbnMoKVwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgYWxpZ24taXRlbXM6IGNlbnRlclwiXG4gICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgIGxldCBpdGVtIG9mIGlucHV0Q29uZmlnLm11bHRpcGxlSW5wdXRWYWx1ZXM/Lm9wdGlvbnM7XG4gICAgICAgICAgbGV0IGluZHggPSBpbmRleDtcbiAgICAgICAgICB0cmFja0J5OiB0cmFja0lkZW50aXR5XG4gICAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgICA8IS0tIEltYWdlIC8gU1ZHIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5sb2dvTmFtZSAmJiBpdGVtPy5pc0ltZ1wiPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5sb2dvTmFtZSAhPT0gJ25vLXVybCdcIj5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMThweCcsXG4gICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nOiAxLFxuICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLXJhZGlzJzogJzJweCdcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtLmxvZ29OYW1lXCJcbiAgICAgICAgICAgICAgICAgIFthbHRdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmxvZ29OYW1lID09PSAnbm8tdXJsJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuby1wcm9maWxlLWltYWdlXCI+XG4gICAgICAgICAgICAgICAgICA8YXBwLWNhLXByb2ZpbGUtaW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgW2luZHhdPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJpdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgID48L2FwcC1jYS1wcm9maWxlLWltYWdlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgXG4gICAgICAgICAgICAgIDwhLS0gT3duZXIgRmxhZyAtLT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0/LmlzT3duZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZC1kaXNwYXRjaGVzLXR0ZC1vd25lclwiPlxuICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaW5wdXRTdmdSb3V0ZXMub3duZXJCYWRnZUJsdWVTdmdcIlxuICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICBcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8ubG9nb05hbWUgJiYgaXRlbT8uaXNTdmdcIj5cbiAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3BheXJvbGwtZGVkdWN0aW9uLXRydWNrLXN2Zyc6IHRlbXBsYXRlID09PSBkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uUEFZUk9MTF9UUlVDS1NcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwie3sgaXRlbT8uc3ViRm9sZGVyIH19XCJcbiAgICAgICAgICAgICAgW3NyY109XCJpdGVtPy5sb2dvTmFtZSFcIlxuICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gIFxuICAgICAgICAgIDwhLS0gVGV4dCAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0/LmlzUHJvZ3Jlc3NCYXJcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwibXVsdGlwbGUtaW5wdXQtdGV4dFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICBjb2xvcjogJyMyRjJGMkYnXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgY291bnRlcjogaXRlbT8uaXNDb3VudGVyLFxuICAgICAgICAgICAgICAgICdjb3VudGVyLW9uZSc6IGl0ZW0/LnZhbHVlID09PSAxXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5zZWNvbmRfdmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogJyM5MTkxOTEnIH1cIlxuICAgICAgICAgICAgICAgICAgPnt7IGl0ZW0uc2Vjb25kX3ZhbHVlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgXG4gICAgICAgICAgPCEtLSBMb2FkIEJyb2tlciBQcm9ncmVzc0JhciAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8uaXNQcm9ncmVzc0JhclwiPlxuICAgICAgICAgICAgPGNhLWxvYWQtbW9kYWwtcHJvZ3Jlc3MtYmFyXG4gICAgICAgICAgICAgIFt0b3RhbEFtb3VudF09XCJpdGVtLnNlY29uZF92YWx1ZSFcIlxuICAgICAgICAgICAgICBbYXZhaWxhYmxlQ3JlZGl0XT1cIml0ZW0udmFsdWUgPyBpdGVtLnZhbHVlIDogMFwiXG4gICAgICAgICAgICA+PC9jYS1sb2FkLW1vZGFsLXByb2dyZXNzLWJhcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgXG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gTXVsdGlwbGUgSW5wdXQgUGxhY2Vob2xkZXIgLS0+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgaW5wdXRDb25maWc/Lm11bHRpcGxlSW5wdXRWYWx1ZXM/Lm9wdGlvbnM/Lmxlbmd0aCAmJlxuICAgICAgaXNGb2N1c0lucHV0ICYmXG4gICAgICAhZ2V0U3VwZXJDb250cm9sPy52YWx1ZVxuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImlucHV0LWNvbnRyb2wgbXVsdGlwbGUtaW5wdXQtcGxhY2Vob2xkZXIge3tcbiAgICAgICAgaW5wdXRDb25maWcubXVsdGlwbGVJbnB1dFZhbHVlcz8uY3VzdG9tQ2xhc3NcbiAgICAgIH19XCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgXG4gICAgICAgIGZvY3VzOiBpc0ZvY3VzSW5wdXQsXG4gICAgICAgICdwYXlyb2xsLWRlZHVjdGlvbi10cnVjayc6IHRlbXBsYXRlID09PSBkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uUEFZUk9MTF9UUlVDS1NcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiA2cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIlxuICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICBsZXQgaXRlbSBvZiBpbnB1dENvbmZpZy5tdWx0aXBsZUlucHV0VmFsdWVzPy5vcHRpb25zO1xuICAgICAgICAgIGxldCBpbmR4ID0gaW5kZXg7XG4gICAgICAgICAgdHJhY2tCeTogdHJhY2tJZGVudGl0eVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8IS0tIEltYWdlIC8gU1ZHIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8ubG9nb05hbWUgJiYgaXRlbT8uaXNJbWdcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZm9jdXNhYmxlLWltYWdlJzogaXNGb2N1c0lucHV0IH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5sb2dvTmFtZSAhPT0gJ25vLXVybCdcIj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMThweCcsXG4gICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJzogMSxcbiAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXMnOiAnMnB4J1xuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5sb2dvTmFtZVwiXG4gICAgICAgICAgICAgICAgW2FsdF09XCJpdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubG9nb05hbWUgPT09ICduby11cmwnXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuby1wcm9maWxlLWltYWdlXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1jYS1wcm9maWxlLWltYWdlXG4gICAgICAgICAgICAgICAgICAgIFtpbmR4XT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiaXRlbS52YWx1ZSFcIlxuICAgICAgICAgICAgICAgID48L2FwcC1jYS1wcm9maWxlLWltYWdlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIFxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8ubG9nb05hbWUgJiYgaXRlbT8uaXNTdmdcIj5cbiAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgXG4gICAgICAgICAgICAgICdmb2N1c2FibGUtc3ZnJzogaXNGb2N1c0lucHV0LFxuICAgICAgICAgICAgICAncGF5cm9sbC1kZWR1Y3Rpb24tdHJ1Y2stc3ZnJzogdGVtcGxhdGUgPT09IGRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5QQVlST0xMX1RSVUNLU1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBjbGFzcz1cInt7IGl0ZW0/LnN1YkZvbGRlciB9fSB7e1xuICAgICAgICAgICAgICBpdGVtPy5sb2dvVHlwZT8udHJpbSgpPy5yZXBsYWNlKCcgJywgJycpPy50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICBbc3JjXT1cIml0ZW0/LmxvZ29OYW1lIVwiXG4gICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICBcbiAgICAgICAgPCEtLSBUZXh0IC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0/LmlzUHJvZ3Jlc3NCYXJcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJtdWx0aXBsZS1pbnB1dC10ZXh0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ2ZvY3VzYWJsZS10ZXh0JzogaXNGb2N1c0lucHV0LFxuICAgICAgICAgICAgICBjb3VudGVyOiBpdGVtPy5pc0NvdW50ZXIsXG4gICAgICAgICAgICAgICdjb3VudGVyLWZvY3VzJzogaXRlbT8uaXNDb3VudGVyICYmIGlzRm9jdXNJbnB1dCxcbiAgICAgICAgICAgICAgJ2NvdW50ZXItb25lJzogaXRlbT8udmFsdWUgPT09IDEsXG4gICAgICAgICAgICAgICdjYS1hZGQtZG90JzogdGVtcGxhdGUgPT09IGRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5MT0FEX0RJU1BBVENIRVJcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICBjb2xvcjogJyM2RjlFRTAnXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8uc2Vjb25kX3ZhbHVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0uc2Vjb25kX3ZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgXG4gICAgICAgIDwhLS0gTG9hZCBCcm9rZXIgUHJvZ3Jlc3NCYXIgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5pc1Byb2dyZXNzQmFyXCI+XG4gICAgICAgICAgPGNhLWxvYWQtbW9kYWwtcHJvZ3Jlc3MtYmFyXG4gICAgICAgICAgICBbdG90YWxBbW91bnRdPVwiaXRlbS5zZWNvbmRfdmFsdWUhXCJcbiAgICAgICAgICAgIFthdmFpbGFibGVDcmVkaXRdPVwiaXRlbS52YWx1ZSA/IGl0ZW0udmFsdWUgOiAwXCJcbiAgICAgICAgICAgIFtpbnB1dEZvY3VzXT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICAgICAgPjwvY2EtbG9hZC1tb2RhbC1wcm9ncmVzcy1iYXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8aW5wdXRcbiAgICAjaW5wdXRcbiAgICBbdHlwZV09XCJpbnB1dENvbmZpZy50eXBlIHwgaW5wdXRUeXBlOiBpc1RvZ2dsZVBhc3N3b3JkXCJcbiAgICBbaWRdPVwiaW5wdXRDb25maWcuaWQgPyBpbnB1dENvbmZpZy5pZCA6IGlucHV0Q29uZmlnLm5hbWVcIlxuICAgIFtuYW1lXT1cImlucHV0Q29uZmlnLm5hbWVcIlxuICAgIFtkaXNhYmxlZF09XCJpbnB1dENvbmZpZy5pc0Rpc2FibGVkIVwiXG4gICAgW2F1dG9jb21wbGV0ZV09XCJpbnB1dENvbmZpZy5hdXRvY29tcGxldGUgPyBpbnB1dENvbmZpZy5hdXRvY29tcGxldGUgOiAnb2ZmJ1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgKGlucHV0Q29uZmlnLnBsYWNlaG9sZGVySW5zdGVhZE9mTGFiZWwgJiZcbiAgICAgIGlucHV0Q29uZmlnLnBsYWNlaG9sZGVyICYmXG4gICAgICBpc0ZvY3VzSW5wdXRcbiAgICAgICAgPyBpbnB1dENvbmZpZy5wbGFjZWhvbGRlclxuICAgICAgICA6ICcnKSB8fFxuICAgICAgKGlucHV0Q29uZmlnLnBsYWNlaG9sZGVyICYmIGlzRm9jdXNJbnB1dCA/IGlucHV0Q29uZmlnLnBsYWNlaG9sZGVyIDogJycpXG4gICAgXCJcbiAgICBbbWluTGVuZ3RoXT1cImlucHV0Q29uZmlnLm1pbkxlbmd0aCA/IGlucHV0Q29uZmlnLm1pbkxlbmd0aCA6IDBcIlxuICAgIFttYXhMZW5ndGhdPVwiaW5wdXRDb25maWcubWF4TGVuZ3RoID8gaW5wdXRDb25maWcubWF4TGVuZ3RoIDogOTk5XCJcbiAgICBbbWFza109XCJpbnB1dENvbmZpZy5tYXNrXCJcbiAgICBbbWluXT1cImlucHV0Q29uZmlnLm1pbiA/IGlucHV0Q29uZmlnLm1pbiA6IDBcIlxuICAgIFttYXhdPVwiaW5wdXRDb25maWcubWF4XCJcbiAgICBbc3RlcF09XCJpbnB1dENvbmZpZy5zdGVwID8gaW5wdXRDb25maWcuc3RlcCA6IG51bGxcIlxuICAgIFtyZWFkT25seV09XCJpbnB1dENvbmZpZy5yZWFkT25seVwiXG4gICAgYXBwTWluTWF4VmFsdWVcbiAgICBbbWluVmFsdWVdPVwiaW5wdXRDb25maWcubWluIVwiXG4gICAgW21heFZhbHVlXT1cImlucHV0Q29uZmlnLm1heCFcIlxuICAgIGlucHV0Zm9ybWF0PVwiZGQtbW0teXlcIlxuICAgIGNsYXNzPVwiaW5wdXQtY29udHJvbFxuICB7eyBpbnB1dENvbmZpZy50ZXh0VHJhbnNmb3JtIH19XG4gIHt7IGlucHV0Q29uZmlnLnRleHRBbGlnbiB9fVxuICB7eyBpbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVxuICBcIlxuICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgZ2V0U3VwZXJDb250cm9sXG4gICAgICAgIHwgaW5wdXRDbGFzc1xuICAgICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgICAgOiBpc1RvdWNoZWRJbnB1dFxuICAgICAgICAgIDogaW5wdXRDb25maWdcbiAgICAgICAgICA6IGlucHV0XG4gICAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kc1xuICAgICAgICAgIDogZ2V0U3VwZXJDb250cm9sPy52YWx1ZVxuICAgICAgICAgIDogZ2V0U3VwZXJDb250cm9sPy5pbnZhbGlkXG4gICAgICAgICAgOiBnZXRTdXBlckNvbnRyb2w/LnRvdWNoZWRcbiAgICAgICAgICA6IGlzRHJvcGRvd25Ub2dnbGVyXG4gICAgICAgICAgOiBpc0VkaXRJbnB1dFxuICAgICAgICAgIDogdGVtcGxhdGVcbiAgICBcIlxuICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxuICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAoa2V5dXApPVwib25LZXl1cCgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgKHNlbGVjdCk9XCJzZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGlucHV0KT1cIm9uQ2hhbmdlKCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpOyB0cmFuc2Zvcm1UZXh0KCRldmVudClcIlxuICAgIFsobmdNb2RlbCldPVwiaW5wdXQudmFsdWVcIlxuICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgaW5wdXRDb25maWcuc3RhdHVzU3R5bGUgPyAoaW5wdXQudmFsdWUgfCBsb2FkU3RhdHVzQ29sb3IpIDogJydcbiAgICBcIlxuICAvPlxuXG4gIDwhLS0gUGxhY2Vob2xkZXIgSWNvbiBvbiBSaWdodCBTaWRlIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlXCI+XG4gICAgPHN2Zy1pY29uXG4gICAgICBjbGFzcz1cInBsYWNlaG9sZGVyLWljb24tcmlnaHQtc2lkZSB7e1xuICAgICAgICBpbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25Db2xvclxuICAgICAgfX1cIlxuICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgIGlzRm9jdXNJbnB1dFxuICAgICAgICAgIHwgaW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzXG4gICAgICAgICAgICA6IGdldFN1cGVyQ29udHJvbFxuICAgICAgICAgICAgOiBpbnB1dENvbmZpZ1xuICAgICAgICAgICAgOiBpc1RvdWNoZWRJbnB1dFxuICAgICAgICAgICAgOiBnZXRTdXBlckNvbnRyb2w/LnZhbHVlXG4gICAgICBcIlxuICAgICAgW3NyY109XCJcbiAgICAgICAgaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICB8IGNhU3ZnIDogJ2NvbW1vbidcbiAgICAgIFwiXG4gICAgPjwvc3ZnLWljb24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgRXJyb3IgTWVzc2FnZSAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICAhKCFnZXRTdXBlckNvbnRyb2w/LnZhbHVlICYmIGlzRm9jdXNJbnB1dCkgJiZcbiAgICAgIChpc1RvdWNoZWRJbnB1dCB8fCBnZXRTdXBlckNvbnRyb2w/LnRvdWNoZWQgfHwgZ2V0U3VwZXJDb250cm9sPy52YWx1ZSkgJiZcbiAgICAgIGdldFN1cGVyQ29udHJvbD8uaW52YWxpZCAmJlxuICAgICAgIWlucHV0Q29uZmlnLmlzSW52YWxpZFNlYXJjaEluRHJvcGRvd24gJiZcbiAgICAgICFpbnB1dENvbmZpZy5pc0Rpc2FibGVkXG4gICAgXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGlucHV0Q29uZmlnLmhpZGVFcnJvck1lc3NhZ2UgfHwgaW5wdXRDb25maWcuZXJyb3JJbnNpZGVJbnB1dClcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZXJyb3Ige3sgaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIj5cbiAgICAgICAge3sgZ2V0U3VwZXJDb250cm9sPy5lcnJvcnMgfCBpbnB1dEVycm9yOiBpbnB1dENvbmZpZy5uYW1lIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEVycm9yIE1lc3NhZ2UgSW5zaWRlIElucHV0IC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnB1dENvbmZpZy5lcnJvckluc2lkZUlucHV0XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImVycm9yLWluc2lkZS1pbnB1dCB7eyBpbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiPlxuICAgICAgICB7eyBnZXRTdXBlckNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IGlucHV0Q29uZmlnLm5hbWUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Q29uZmlnLmZpeGVkUGxhY2hvbGRlciAmJiBpbnB1dC52YWx1ZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZml4ZWQtcGxhY2Vob2Rlci1sYWJlbFwiPlxuICAgICAge3sgaW5wdXRDb25maWcuZml4ZWRQbGFjaG9sZGVyIH19XG4gICAgPC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48IS0tIFBvcG92ZXIgZm9yIERhdGVUaW1lIFBpY2tlcnMgLS0+XG48bmctdGVtcGxhdGUgI2RhdGVUaW1lUG9wb3ZlciBsZXQtZGF0YT1cImRhdGFcIj5cbiAgPGRpdiBjbGFzcz1cImRhdGV0aW1lLWRyb3Bkb3duLWhvbGRlclwiPlxuICAgIDxhcHAtY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnNcbiAgICAgIFtjYWxlbmRhclR5cGVdPVwiXG4gICAgICAgIGlucHV0Q29uZmlnLm5hbWUgPT09ICdkYXRlcGlja2VyJyB8fFxuICAgICAgICBpbnB1dENvbmZpZy5uYW1lID09PSAnZGF0ZXBpY2tlckJhbmtDYXJkJ1xuICAgICAgICAgID8gJ2RhdGUnXG4gICAgICAgICAgOiAndGltZSdcbiAgICAgIFwiXG4gICAgICBbaW5wdXRDb25maWddPVwiaW5wdXRDb25maWdcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidNTS9ERC9ZWSdcIlxuICAgICAgW2RhdGVUaW1lXT1cImRhdGVUaW1lSW5wdXREYXRlXCJcbiAgICAgIChjbG9zZVBvcG92ZXIpPVwiY2xvc2VQb3BvdmVyKClcIlxuICAgID48L2FwcC1jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
349
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvY2EtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvY2EtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxzQkFBc0IsRUFDdEIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFDTixJQUFJLEVBRUosU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsV0FBVyxFQUVYLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU14RCxRQUFRO0FBQ1IsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsY0FBYyxFQUNkLGNBQWMsRUFDZCxhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFDbEMsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN4QixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7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QUEyQjt3QkFDM0IscUJBQXFCO3dCQUNyQixTQUFTO3dCQUNULG1CQUFtQjt3QkFDbkIsa0NBQWtDO3dCQUNsQyw2QkFBNkI7d0JBQzdCLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QiwrQkFBK0I7d0JBQy9CLHdCQUF3Qjt3QkFDeEIsZ0NBQWdDO3dCQUNoQyw4QkFBOEI7d0JBQzlCLHVCQUF1Qjt3QkFDdkIsK0JBQStCO3dCQUMvQixhQUFhO3dCQUNiLG9CQUFvQjtxQkFDdkIsV0FDVSxDQUFDLHNCQUFzQixDQUFDLGFBQ3RCLENBQUMsaUJBQWlCLEVBQUUsNkJBQTZCLENBQUM7OzBCQXNFMUQsSUFBSTs2SUFqRXNDLEtBQUs7c0JBQWpELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDYixjQUFjO3NCQUFwQyxTQUFTO3VCQUFDLFVBQVU7Z0JBRVosV0FBVztzQkFBbkIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVvQixjQUFjO3NCQUF2QyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFFSCxTQUFTO3NCQUE3QixNQUFNO3VCQUFDLFdBQVc7Z0JBRUcsZUFBZTtzQkFBcEMsTUFBTTt1QkFBQyxZQUFZO2dCQUVGLFdBQVc7c0JBQTVCLE1BQU07dUJBQUMsUUFBUTtnQkFFUSxZQUFZO3NCQUFuQyxNQUFNO3VCQUFDLGNBQWM7Z0JBRUwsZUFBZTtzQkFBL0IsTUFBTTt1QkFBQyxPQUFPO2dCQUlhLHFCQUFxQjtzQkFBaEQsTUFBTTt1QkFBQyxrQkFBa0I7Z0JBRU8sMEJBQTBCO3NCQUExRCxNQUFNO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3Jtc01vZHVsZSxcbiAgTmdDb250cm9sLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5cbi8vIG1vZGVsc1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBMYWJlbENvbG9yLCBDb21tYW5kc0V2ZW50IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHtcbiAgSW5wdXRFcnJvclBpcGUsXG4gIElucHV0Q29udGFpbmVyQ2xhc3NQaXBlLFxuICBJbnB1dENsYXNzUGlwZSxcbiAgTGFiZWxDbGFzc1BpcGUsXG4gIFNob3dDbGVhclBpcGUsXG4gIFNob3dJbnZhbGlkRGFuZ2VyTWFya1BpcGUsXG4gIFNob3dWYWxpZENoZWNrUGlwZSxcbiAgSW5wdXRUeXBlUGlwZSxcbiAgSW5wdXREcm9wZG93bkFycm93Q2xhc3NQaXBlLFxuICBTaG93RHJvcGRvd25BcnJvd1BpcGUsXG4gIElucHV0UGxhY2Vob2xkZXJJY29uUmlnaHRDbGFzc1BpcGUsXG4gIElucHV0UGxhY2Vob2xkZXJUZXh0Q2xhc3NQaXBlLFxuICBTaG93UGxhY2Vob2xkZXJUZXh0UGlwZVxufSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7IENhU3ZnUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2NhLXN2Zy5waXBlJztcbmltcG9ydCB7IExvYWRTdGF0dXNDb2xvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9sb2FkLXN0YXR1cy1jb2xvci5waXBlJztcbmltcG9ydCB7IFRob3VzYW5kU2VwYXJhdG9yUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3Rob3VzYW5kLXNlcGFyYXRvci5waXBlJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dENsZWFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWNsZWFyL2NhLWlucHV0LWNsZWFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0Q29tbWFuZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtY29tbWFuZHMvY2EtaW5wdXQtY29tbWFuZHMuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXRQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1wYXNzd29yZC9jYS1pbnB1dC1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uL2NhLWlucHV0LXBsYWNlaG9sZGVyLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREYXRldGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kYXRldGltZS1waWNrZXIvY2EtaW5wdXQtZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbXBvbmVudCB9IGZyb20gJy4uL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzL2NhLWN1c3RvbS1kYXRldGltZS1waWNrZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYVByb2ZpbGVJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uL2NhLXByb2ZpbGUtaW1hZ2UvY2EtcHJvZmlsZS1pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FMb2FkTW9kYWxQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJy4uL2NhLWxvYWQtbW9kYWwtcHJvZ3Jlc3MtYmFyL2NhLWxvYWQtbW9kYWwtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7XG5cbi8vIHNlcnZpY2VzXG5pbXBvcnQgeyBJbnB1dFN0YXRlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXRlVGltZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuLi9jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycy9zZXJ2aWNlcy9jYWxlbmRhci1kYXRldGltZS1waWNrZXIuc2VydmljZSc7XG5cbi8vIGhlbHBlcnNcbmltcG9ydCB7IElucHV0Q2hhbmdlVmFsdWUsIElucHV0U3ZnUm91dGVzIH0gZnJvbSAnLi91dGlscyc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IE5nYk1vZHVsZSwgTmdiUG9wb3ZlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE5neE1hc2tNb2R1bGUgfSBmcm9tICduZ3gtbWFzayc7XG5cbi8vIGRpcmVjdGl2ZXNcbmltcG9ydCB7IE1pbk1heFZhbHVlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuLy8gZW51bXNcbmltcG9ydCB7IElucHV0Q29tbWFuZHNUeXBlLCBJbnB1dFN0cmluZ0VudW0gfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7IERyb3Bkb3duVGVtcGxhdGVUeXBlRW51bSB9IGZyb20gJy4uL2NhLWlucHV0LWRyb3Bkb3duL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2EtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICAvLyBNb2R1bGVcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICBOZ2JNb2R1bGUsXG4gICAgTmd4TWFza01vZHVsZSxcbiAgICAvLyBQaXBlXG4gICAgSW5wdXRFcnJvclBpcGUsXG4gICAgSW5wdXRDb250YWluZXJDbGFzc1BpcGUsXG4gICAgSW5wdXRDbGFzc1BpcGUsXG4gICAgTGFiZWxDbGFzc1BpcGUsXG4gICAgU2hvd0NsZWFyUGlwZSxcbiAgICBTaG93SW52YWxpZERhbmdlck1hcmtQaXBlLFxuICAgIFNob3dWYWxpZENoZWNrUGlwZSxcbiAgICBJbnB1dFR5cGVQaXBlLFxuICAgIElucHV0RHJvcGRvd25BcnJvd0NsYXNzUGlwZSxcbiAgICBTaG93RHJvcGRvd25BcnJvd1BpcGUsXG4gICAgQ2FTdmdQaXBlLFxuICAgIExvYWRTdGF0dXNDb2xvclBpcGUsXG4gICAgSW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzUGlwZSxcbiAgICBJbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzUGlwZSxcbiAgICBTaG93UGxhY2Vob2xkZXJUZXh0UGlwZSxcbiAgICAvLyBDb21wb25lbnRzXG4gICAgQ2FJbnB1dENsZWFyQ29tcG9uZW50LFxuICAgIENhQXBwVG9vbHRpcFYyQ29tcG9uZW50LFxuICAgIENhSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgICBDYUlucHV0UGxhY2Vob2xkZXJJY29uQ29tcG9uZW50LFxuICAgIENhSW5wdXRDb21tYW5kc0NvbXBvbmVudCxcbiAgICBDYUN1c3RvbURhdGV0aW1lUGlja2Vyc0NvbXBvbmVudCxcbiAgICBDYUlucHV0RGF0ZXRpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgQ2FQcm9maWxlSW1hZ2VDb21wb25lbnQsXG4gICAgQ2FMb2FkTW9kYWxQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICAvLyBEaXJlY3RpdmVzXG4gICAgTWluTWF4VmFsdWVEaXJlY3RpdmVcbl0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgcHJvdmlkZXJzOiBbSW5wdXRTdGF0ZVNlcnZpY2UsIENhbGVuZGFyRGF0ZVRpbWVQaWNrZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FJbnB1dENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIGlucHV0ITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZChOZ2JQb3BvdmVyKSBuZ2JNYWluUG9wb3ZlciE6IE5nYlBvcG92ZXI7XG5cbiAgQElucHV0KCkgaW5wdXRDb25maWchOiBJQ2FJbnB1dDtcblxuICBASW5wdXQoKSBpbmNvcnJlY3RWYWx1ZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yITogTGFiZWxDb2xvciB8IG51bGw7XG4gIEBJbnB1dCgpIHRlbXBsYXRlITogc3RyaW5nO1xuXG4gIEBPdXRwdXQoJ2luY29ycmVjdEV2ZW50JykgaW5jb3JyZWN0SW5wdXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCdibHVySW5wdXQnKSBibHVySW5wdXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCdmb2N1c0lucHV0JykgZm9jdXNJbnB1dEV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgnY2hhbmdlJykgY2hhbmdlSW5wdXQ6IEV2ZW50RW1pdHRlcjxJbnB1dENoYW5nZVZhbHVlPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxJbnB1dENoYW5nZVZhbHVlPigpO1xuICBAT3V0cHV0KCdjb21tYW5kRXZlbnQnKSBjb21tYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjxDb21tYW5kc0V2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxDb21tYW5kc0V2ZW50PigpO1xuICBAT3V0cHV0KCdjbGVhcicpIGNsZWFySW5wdXRFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLy8gRHJvcGRvd25cbiAgQE91dHB1dCgnc2hvd0hpZGVEcm9wZG93bicpIHNob3dIaWRlRHJvcGRvd25FdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoJ2Ryb3BEb3duS2V5TmF2aWdhdGlvbicpIGRyb3BEb3duS2V5TmF2aWdhdGlvbkV2ZW50OiBFdmVudEVtaXR0ZXI8e1xuICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICBkYXRhOiBJQ2FJbnB1dCB8IG51bGw7XG4gIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAga2V5Q29kZTogbnVtYmVyO1xuICAgIGRhdGE6IElDYUlucHV0IHwgbnVsbDtcbiAgfT4oKTtcblxuICBwdWJsaWMgaXNUb3VjaGVkSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBJbnB1dCBDb21tYW5kc1xuICBwdWJsaWMgaXNWaXNpYmxlQ29tbWFuZHM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBFZGl0IElucHV0XG4gIHB1YmxpYyBpc0VkaXRJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIFBhc3N3b3JkXG4gIHB1YmxpYyBpc1RvZ2dsZVBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc0NhcHNMb2NrT246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBEcm9wZG93blxuICBwdWJsaWMgaXNEcm9wZG93blRvZ2dsZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBEYXRlXG4gIHB1YmxpYyBzaG93RGF0ZUlucHV0OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBkYXRlVGltZUlucHV0RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIHB1YmxpYyBuZXdJbnB1dENoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBEZXN0cm95XG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBpbnB1dFN2Z1JvdXRlcyA9IElucHV0U3ZnUm91dGVzO1xuICBwdWJsaWMgaXNGb2N1c0lucHV0ITogYm9vbGVhbjtcbiAgcHVibGljIHByaWNlU2VwZXJhdG9yV2l0aEZpbGxlZFZhbHVlID0gdHJ1ZTtcblxuICBwdWJsaWMgaW5wdXRDb21tYW5kc1R5cGUgPSBJbnB1dENvbW1hbmRzVHlwZTtcbiAgcHVibGljIGlucHV0U3RyaW5nRW51bSA9IElucHV0U3RyaW5nRW51bTtcbiAgcHVibGljIGRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bSA9IERyb3Bkb3duVGVtcGxhdGVUeXBlRW51bTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIHB1YmxpYyBzdXBlckNvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgaW5wdXRTdGF0ZVNlcnZpY2U6IElucHV0U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGhvdXNhbmRTZXBhcmF0b3JQaXBlOiBUaG91c2FuZFNlcGFyYXRvclBpcGVcbiAgKSB7XG4gICAgdGhpcy5zdXBlckNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gIH1cblxuICBnZXQgZ2V0U3VwZXJDb250cm9sKCkge1xuICAgIHJldHVybiB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0Q2hhbmdlc0xpc3RlbmVyKCk7XG5cbiAgICB0aGlzLmluaXRTdGF0ZVNlcnZpY2UoKTtcblxuICAgIHRoaXMub3V0cHV0TGlzdGVuZXJzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTdGF0ZUlucHV0cyhjaGFuZ2VzKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLmF1dG9Gb2N1c0ZpcnN0SW5wdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0U3RhdGVTZXJ2aWNlKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uuc2V0U3VwZXJDb250cm9sKHRoaXMuc3VwZXJDb250cm9sKTtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLnNldElucHV0RWxlbWVudFJlZih0aGlzLmlucHV0LCB0aGlzLmNkUmVmKTtcblxuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2UuY29tYmluZWRWYXJpYWJsZXMkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoW1xuICAgICAgICAgIGZvY3VzLFxuICAgICAgICAgIHRvdWNoZWQsXG4gICAgICAgICAgaXNWaXNpYmxlQ29tbWFuZHMsXG4gICAgICAgICAgaXNFZGl0SW5wdXQsXG4gICAgICAgICAgaXNEcm9wZG93blRvZ2dsZXIsXG4gICAgICAgICAgZGF0ZVRpbWVJbnB1dERhdGUsXG4gICAgICAgICAgc2hvd0RhdGVJbnB1dCxcbiAgICAgICAgICBpc0NhcHNMb2NrT24sXG4gICAgICAgIF0pID0+IHtcbiAgICAgICAgICB0aGlzLmlzRm9jdXNJbnB1dCA9IGZvY3VzO1xuICAgICAgICAgIHRoaXMuaXNUb3VjaGVkSW5wdXQgPSB0b3VjaGVkO1xuICAgICAgICAgIHRoaXMuaXNWaXNpYmxlQ29tbWFuZHMgPSBpc1Zpc2libGVDb21tYW5kcztcbiAgICAgICAgICB0aGlzLmlzRWRpdElucHV0ID0gaXNFZGl0SW5wdXQ7XG4gICAgICAgICAgdGhpcy5pc0Ryb3Bkb3duVG9nZ2xlciA9IGlzRHJvcGRvd25Ub2dnbGVyO1xuICAgICAgICAgIHRoaXMuZGF0ZVRpbWVJbnB1dERhdGUgPSBkYXRlVGltZUlucHV0RGF0ZTtcbiAgICAgICAgICB0aGlzLnNob3dEYXRlSW5wdXQgPSBzaG93RGF0ZUlucHV0OyBcblxuICAgICAgICAgIHRoaXMuaXNDYXBzTG9ja09uID0gaXNDYXBzTG9ja09uO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIG91dHB1dExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBjb25zdCBvYnNlcnZhYmxlczoge1xuICAgICAgc3RyZWFtJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgICAgZW1pdHRlcjogRXZlbnRFbWl0dGVyPGFueT47XG4gICAgfVtdID0gW1xuICAgICAge1xuICAgICAgICBzdHJlYW0kOiB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLmNvbW1hbmRFdmVudCQsXG4gICAgICAgIGVtaXR0ZXI6IHRoaXMuY29tbWFuZEV2ZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3RyZWFtJDogdGhpcy5pbnB1dFN0YXRlU2VydmljZS5jbGVhcklucHV0RXZlbnQkLFxuICAgICAgICBlbWl0dGVyOiB0aGlzLmNsZWFySW5wdXRFdmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHN0cmVhbSQ6IHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2UuaW5jb3JyZWN0SW5wdXQkLFxuICAgICAgICBlbWl0dGVyOiB0aGlzLmluY29ycmVjdElucHV0LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3RyZWFtJDogdGhpcy5pbnB1dFN0YXRlU2VydmljZS5ibHVySW5wdXQkLFxuICAgICAgICBlbWl0dGVyOiB0aGlzLmJsdXJJbnB1dCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHN0cmVhbSQ6IHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2UuY2hhbmdlSW5wdXQkLFxuICAgICAgICBlbWl0dGVyOiB0aGlzLmNoYW5nZUlucHV0LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc3RyZWFtJDogdGhpcy5pbnB1dFN0YXRlU2VydmljZS5zaG93SGlkZURyb3Bkb3duJCxcbiAgICAgICAgZW1pdHRlcjogdGhpcy5zaG93SGlkZURyb3Bkb3duRXZlbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdHJlYW0kOiB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLmRyb3BEb3duS2V5TmF2aWdhdGlvbiQsXG4gICAgICAgIGVtaXR0ZXI6IHRoaXMuZHJvcERvd25LZXlOYXZpZ2F0aW9uRXZlbnQsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBvYnNlcnZhYmxlcy5mb3JFYWNoKCh7IHN0cmVhbSQsIGVtaXR0ZXIgfSkgPT5cbiAgICAgIHN0cmVhbSRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiBlbWl0dGVyLmVtaXQodmFsdWUpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaW5pdENoYW5nZXNMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBjb21iaW5lZENoYW5nZXMgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZ2V0U3VwZXJDb250cm9sPy52YWx1ZUNoYW5nZXMsXG4gICAgICB0aGlzLmdldFN1cGVyQ29udHJvbD8uc3RhdHVzQ2hhbmdlcyxcbiAgICBdKTtcblxuICAgIGNvbWJpbmVkQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS5vbkNoYW5nZSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0U3RhdGVJbnB1dHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydpbnB1dENvbmZpZyddKSB7XG4gICAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLnNldElucHV0Q29uZmlnKFxuICAgICAgICBjaGFuZ2VzWydpbnB1dENvbmZpZyddPy5jdXJyZW50VmFsdWVcbiAgICAgICk7XG4gICAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uSW5wdXRDb25maWdDaGFuZ2UoKTtcbiAgICB9XG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS5zZXRJbmNvcnJlY3RWYWx1ZShcbiAgICAgIGNoYW5nZXNbJ2luY29ycmVjdFZhbHVlJ10/LmN1cnJlbnRWYWx1ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZShvYmo6IElucHV0Q2hhbmdlVmFsdWUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dENvbmZpZy5wcmljZVNlcGFyYXRvcikge1xuICAgICAgaWYgKG9iaiAmJiB0aGlzLnByaWNlU2VwZXJhdG9yV2l0aEZpbGxlZFZhbHVlKVxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPVxuICAgICAgICAgIHRoaXMudGhvdXNhbmRTZXBhcmF0b3JQaXBlLnRyYW5zZm9ybShvYmopO1xuICAgICAgZWxzZSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBvYmo7XG5cbiAgICAgIHRoaXMucHJpY2VTZXBlcmF0b3JXaXRoRmlsbGVkVmFsdWUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLndyaXRlVmFsdWUob2JqKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2UoXzogYW55KTogdm9pZCB7fVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZCgpOiB2b2lkIHt9XG5cbiAgcHVibGljIG9uQmx1cihldmVudD86IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uQmx1cihldmVudCk7XG5cbiAgICB0aGlzLmJsdXJJbnB1dC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoZXZlbnQ/OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c0lucHV0RXZlbnQuZW1pdCh0cnVlKTtcblxuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uub25Gb2N1cyhldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uub25LZXlwcmVzcyhldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS5vbktleWRvd24oZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uS2V5dXAoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHRyYW5zZm9ybVRleHQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS50cmFuc2Zvcm1UZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2UuY2xlYXJJbnB1dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25Ub2dnbGVQYXNzd29yZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXNUb2dnbGVQYXNzd29yZCA9ICF0aGlzLmlzVG9nZ2xlUGFzc3dvcmQ7XG4gIH1cblxuICBwdWJsaWMgb25Db21tYW5kcyhldmVudDoge1xuICAgIGV2ZW50OiBFdmVudDtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgYWN0aW9uOiBzdHJpbmc7XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uQ29tbWFuZHMoZXZlbnQuZXZlbnQsIGV2ZW50LnR5cGUsIGV2ZW50LmFjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgb25FZGl0SW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS5vbkVkaXRJbnB1dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlRHJvcGRvd25PcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2UudG9nZ2xlRHJvcGRvd25PcHRpb25zKCk7XG4gIH1cblxuICBwdWJsaWMgb25QbGFjZWhvbGRlckljb25FdmVudChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uUGxhY2Vob2xkZXJJY29uRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHNldElucHV0Q3Vyc29yQXRUaGVFbmQoaW5wdXQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uuc2V0SW5wdXRDdXJzb3JBdFRoZUVuZChpbnB1dCk7XG4gIH1cblxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERhdGUgJiBUaW1lIFBpY2tlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFN0YXRlU2VydmljZS5zZWxlY3Rpb25DaGFuZ2UoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uRGF0ZVBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uub25EYXRlUGFzdGUoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHNldFNlbGVjdGlvbihldmVudDoge1xuICAgIHByZXZlbnREZWZhdWx0OiAoKSA9PiB2b2lkO1xuICAgIHN0b3BQcm9wYWdhdGlvbjogKCkgPT4gdm9pZDtcbiAgICB0YXJnZXQ6IGFueTtcbiAgfSk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uuc2V0U2VsZWN0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VTZWxlY3Rpb24oZXZlbnQ6IHtcbiAgICBlOiBLZXlib2FyZEV2ZW50O1xuICAgIG5vUHJldmVudERlZmF1bHQ6IGJvb2xlYW47XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLmNoYW5nZVNlbGVjdGlvbihldmVudC5lLCBldmVudC5ub1ByZXZlbnREZWZhdWx0KTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvcG92ZXJTaG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uUG9wb3ZlclNob3duKCk7XG4gIH1cblxuICBwdWJsaWMgb25Qb3BvdmVySGlkZGVuKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uub25Qb3BvdmVySGlkZGVuKCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VQb3BvdmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nYk1haW5Qb3BvdmVyKSB0aGlzLm5nYk1haW5Qb3BvdmVyLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0TGFzdE9uZUZvclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLnNlbGVjdExhc3RPbmVGb3JTZWxlY3Rpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RMYXN0T25lQWZ0ZXJNb3VzZVVwKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRTdGF0ZVNlcnZpY2Uuc2VsZWN0TGFzdE9uZUFmdGVyTW91c2VVcCgpO1xuICB9XG5cbiAgcHVibGljIHRyYWNrSWRlbnRpdHkgPSAoaW5kZXg6IG51bWJlcik6IG51bWJlciA9PiBpbmRleDtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0U3RhdGVTZXJ2aWNlLm9uRGVzdG9yeSgpO1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImlucHV0LWN1c3RvbS1ncm91cCB7eyBpbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gIFtuZ0NsYXNzXT1cIlxuICAgIGdldFN1cGVyQ29udHJvbFxuICAgICAgfCBpbnB1dENvbnRhaW5lckNsYXNzXG4gICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgIDogaXNUb3VjaGVkSW5wdXRcbiAgICAgICAgOiBpbnB1dENvbmZpZ1xuICAgICAgICA6IGdldFN1cGVyQ29udHJvbD8udmFsdWVcbiAgXCJcbiAgbmdiVG9vbHRpcFxuICBbbWFpbkNhVG9vbHRpcF09XCJnZXRTdXBlckNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IGlucHV0Q29uZmlnLm5hbWVcIlxuICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyNERjNDM0MnXCJcbiAgW2Rpc2FibGVUb29sdGlwXT1cIiFpbnB1dENvbmZpZy5yZXF1aXJlZExhYmVsIHx8ICEhc3VwZXJDb250cm9sLnZhbGlkXCJcbiAgcG9zaXRpb249XCJib3R0b21cIlxuICB0cmlnZ2Vycz1cImhvdmVyXCJcbj5cbiAgPCEtLSBJbnB1dCBDb21tYW5kcyAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Q29uZmlnLmNvbW1hbmRzPy5hY3RpdmUgJiYgaXNWaXNpYmxlQ29tbWFuZHNcIj5cbiAgICA8YXBwLWNhLWlucHV0LWNvbW1hbmRzXG4gICAgICBbaW5wdXRDb25maWddPVwiaW5wdXRDb25maWdcIlxuICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgW2lzVmlzaWJsZUNvbW1hbmRzXT1cImlzVmlzaWJsZUNvbW1hbmRzXCJcbiAgICAgIChvbkNvbW1hbmRzQ2xpY2spPVwib25Db21tYW5kcygkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9hcHAtY2EtaW5wdXQtY29tbWFuZHM+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gRGF0ZVRpbWUgUGlja2VyIC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIChpbnB1dENvbmZpZy5uYW1lID09PSAnZGF0ZXBpY2tlcicgfHxcbiAgICAgICAgaW5wdXRDb25maWcubmFtZSA9PT0gJ3RpbWVwaWNrZXInKSAmJlxuICAgICAgIWlucHV0Q29uZmlnLmlzRGlzYWJsZWRcbiAgICBcIlxuICA+XG4gICAgPGFwcC1jYS1pbnB1dC1kYXRldGltZS1waWNrZXJcbiAgICAgIFtzaG93RGF0ZUlucHV0XT1cInNob3dEYXRlSW5wdXRcIlxuICAgICAgW2lucHV0Q29uZmlnXT1cImlucHV0Q29uZmlnXCJcbiAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgIFtpc0ZvY3VzSW5wdXRdPVwiaXNGb2N1c0lucHV0XCJcbiAgICAgIFtpc1Zpc2libGVDb21tYW5kc109XCJpc1Zpc2libGVDb21tYW5kc1wiXG4gICAgICBbaXNUb3VjaGVkSW5wdXRdPVwiaXNUb3VjaGVkSW5wdXRcIlxuICAgICAgKHNlbGVjdExhc3RPbmVGb3JTZWxlY3Rpb25FbWl0dGVyKT1cInNlbGVjdExhc3RPbmVGb3JTZWxlY3Rpb24oKVwiXG4gICAgICAoc2VsZWN0TGFzdE9uZUFmdGVyTW91c2VVcEVtaXR0ZXIpPVwic2VsZWN0TGFzdE9uZUFmdGVyTW91c2VVcCgpXCJcbiAgICAgIChvbkRhdGVQYXN0ZUVtaXR0ZXIpPVwib25EYXRlUGFzdGUoJGV2ZW50KVwiXG4gICAgICAob25CbHVyRW1pdHRlcik9XCJvbkJsdXIoKVwiXG4gICAgICAoY2hhbmdlU2VsZWN0aW9uRW1taXRlcik9XCJjaGFuZ2VTZWxlY3Rpb24oJGV2ZW50KVwiXG4gICAgICAob25Gb2N1c0VtaXR0ZXIpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAgIChzZXRTZWxlY3Rpb25FbW1pdGVyKT1cInNldFNlbGVjdGlvbigkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9hcHAtY2EtaW5wdXQtZGF0ZXRpbWUtcGlja2VyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIElucHV0IExhYmVsIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlucHV0Q29uZmlnLm11bHRpU2VsZWN0RHJvcGRvd25BY3RpdmVcIj5cbiAgICA8bGFiZWxcbiAgICAgIFtmb3JdPVwiaW5wdXRDb25maWcubmFtZVwiXG4gICAgICBjbGFzcz1cImlucHV0LWxhYmVsIHt7IGlucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19IHt7XG4gICAgICAgIGlucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmN1c3RvbUNsYXNzXG4gICAgICB9fVwiXG4gICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgZ2V0U3VwZXJDb250cm9sPy52YWx1ZSB8IGxhYmVsQ2xhc3M6IGlzRm9jdXNJbnB1dCA6IGlucHV0Q29uZmlnXG4gICAgICAgIDogaXNUb3VjaGVkSW5wdXQgOiBnZXRTdXBlckNvbnRyb2w/LmludmFsaWRcbiAgICAgICAgOiBnZXRTdXBlckNvbnRyb2w/LnRvdWNoZWRcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Q29uZmlnLmxhYmVsXCI+XG4gICAgICAgIDxzcGFuPnt7IGlucHV0Q29uZmlnLmxhYmVsIH19IDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmxhYmVscz8ubGVuZ3RoXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBbY2xhc3NdPVwiaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8uY3VzdG9tQ2xhc3MhXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnbXVsdGlwbGUtbGFiZWxzLXBvc2l0aW9uLW9uLWZvY3VzJzpcbiAgICAgICAgICAgICAgaXNGb2N1c0lucHV0IHx8XG4gICAgICAgICAgICAgIGlucHV0Q29uZmlnLm11bHRpcGxlSW5wdXRWYWx1ZXM/Lm9wdGlvbnM/Lmxlbmd0aCxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBpbnB1dENvbmZpZy5pc1JlcXVpcmVkICYmICFpbnB1dENvbmZpZy5pc0Rpc2FibGVkXG4gICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbGFiZWwgb2YgaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8ubGFiZWxzXCI+XG4gICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2xhYmVsPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIElucHV0IENsZWFyIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRDb25maWcgfCBzaG93Q2xlYXJcIj5cbiAgICA8YXBwLWNhLWlucHV0LWNsZWFyXG4gICAgICBbaW5wdXRDb25maWddPVwiaW5wdXRDb25maWdcIlxuICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgW2luY29ycmVjdFZhbHVlXT1cImluY29ycmVjdFZhbHVlXCJcbiAgICAgIFtzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvcl09XCJzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvclwiXG4gICAgICBbdGVtcGxhdGVdPVwidGVtcGxhdGVcIlxuICAgICAgKGNsZWFySW5wdXRDbGljayk9XCJjbGVhcklucHV0KCRldmVudClcIlxuICAgID5cbiAgICA8L2FwcC1jYS1pbnB1dC1jbGVhcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBJbnB1dCBDbGVhciBmb3IgZGlzcGF0Y2ggZHJvcGRvd24gLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZSA9PT0gJ3N2Z3RleHQtZGlzcGF0Y2gtdGVtcGxhdGUnXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpbnB1dC1jbGVhci1kaXNwYXRjaFwiXG4gICAgICBwb3NpdGlvbj1cInRvcFwiXG4gICAgICAoY2xpY2spPVwiY2xlYXJJbnB1dCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3ZnLWljb25cbiAgICAgICAgW3NyY109XCJpbnB1dFN2Z1JvdXRlcy54Q2xlYXJDb21tb25TdmdcIlxuICAgICAgICBjbGFzcz1cImlucHV0LWNsZWFyLWRpc3BhdGNoLWljb25cIlxuICAgICAgPjwvc3ZnLWljb24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgUGVuIC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIHNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yICYmXG4gICAgICAhaXNFZGl0SW5wdXQgJiZcbiAgICAgICFpc0ZvY3VzSW5wdXQgJiZcbiAgICAgIGdldFN1cGVyQ29udHJvbD8udmFsdWVcbiAgICBcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpbnB1dC1wZW4tY29udGFpbmVyXCJcbiAgICAgIG5nYlRvb2x0aXBcbiAgICAgIFttYWluQ2FUb29sdGlwXT1cIidFZGl0J1wiXG4gICAgICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyMyRjJGMkYnXCJcbiAgICAgIHBvc2l0aW9uPVwidG9wXCJcbiAgICAgIChjbGljayk9XCJvbkVkaXRJbnB1dCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3ZnLWljb24gW3NyY109XCJpbnB1dFN2Z1JvdXRlcy5pbnB1dFBlblN2Z1wiIGNsYXNzPVwiaW5wdXQtcGVuXCI+PC9zdmctaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBJbnB1dCBJbnZhbGlkIERhbmdlciBNYXJrIC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIGlucHV0Q29uZmlnXG4gICAgICAgIHwgc2hvd0ludmFsaWREYW5nZXJNYXJrXG4gICAgICAgICAgOiBnZXRTdXBlckNvbnRyb2xcbiAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgIDogaXNUb3VjaGVkSW5wdXRcbiAgICAgICAgICA6IGdldFN1cGVyQ29udHJvbD8udmFsdWVcbiAgICBcIlxuICA+XG4gICAgPHN2Zy1pY29uXG4gICAgICBjbGFzcz1cImlucHV0LWludmFsaWQtZGFuZ2VyLW1hcmsgIHt7IGlucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgIFtzcmNdPVwiaW5wdXRTdmdSb3V0ZXMuZGFuZ2VyU3ZnXCJcbiAgICA+XG4gICAgPC9zdmctaWNvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBJbnB1dCBWYWxpZCBDaGVjayAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICBnZXRTdXBlckNvbnRyb2xcbiAgICAgICAgfCBzaG93VmFsaWRDaGVjazogaXNGb2N1c0lucHV0IDogaW5wdXRDb25maWcgOiBnZXRTdXBlckNvbnRyb2w/LnZhbHVlXG4gICAgXCJcbiAgPlxuICAgIDxzdmctaWNvblxuICAgICAgY2xhc3M9XCJpbnB1dC1yZXF1aXJlZC1jaGVjayB7eyBpbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgICBbc3JjXT1cImlucHV0U3ZnUm91dGVzLmNvbmZpcm1TdmdcIlxuICAgID48L3N2Zy1pY29uPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIElucHV0IFBhc3N3b3JkIENhcHMgTG9jayBBbmQgRXllIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRDb25maWcudHlwZSA9PT0gJ3Bhc3N3b3JkJ1wiPlxuICAgIDxhcHAtY2EtaW5wdXQtcGFzc3dvcmRcbiAgICAgIFtpbnB1dENvbmZpZ109XCJpbnB1dENvbmZpZ1wiXG4gICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICBbaXNUb3VjaGVkSW5wdXRdPVwiaXNUb3VjaGVkSW5wdXRcIlxuICAgICAgW2lzQ2Fwc0xvY2tPbl09XCJpc0NhcHNMb2NrT25cIlxuICAgICAgW2lzVG9nZ2xlUGFzc3dvcmRdPVwiaXNUb2dnbGVQYXNzd29yZFwiXG4gICAgICAob25Ub2dnbGVQYXNzd29yZENsaWNrKT1cIm9uVG9nZ2xlUGFzc3dvcmQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYXBwLWNhLWlucHV0LXBhc3N3b3JkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIElucHV0IERyb3Bkb3duIEFycm93IC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRDb25maWcgfCBzaG93RHJvcGRvd25BcnJvd1wiPlxuICAgIDxzdmctaWNvblxuICAgICAgY2xhc3M9XCJpbnB1dC1kcm9wZG93bi1hcnJvdyB7eyBpbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgZ2V0U3VwZXJDb250cm9sXG4gICAgICAgICAgfCBpbnB1dERyb3Bkb3duQXJyb3dDbGFzc1xuICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgIDogaW5wdXRDb25maWdcbiAgICAgICAgICAgIDogaXNUb3VjaGVkSW5wdXRcbiAgICAgICAgICAgIDogZ2V0U3VwZXJDb250cm9sPy52YWx1ZVxuICAgICAgXCJcbiAgICAgIFtzcmNdPVwiaW5wdXRTdmdSb3V0ZXMuaW5wdXREcm9wZG93bkFycm93U3ZnXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bk9wdGlvbnMoKVwiXG4gICAgPjwvc3ZnLWljb24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgUGxhY2Vob2xkZXIgSWNvbiAtLT5cbiAgPG5nLWNvbnRhaW5lciBcbiAgICAqbmdJZj1cIlxuICAgICAgaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uIHx8XG4gICAgICBpbnB1dENvbmZpZy5uYW1lID09PSAnZGF0ZXBpY2tlcicgfHxcbiAgICAgIGlucHV0Q29uZmlnLm5hbWUgPT09ICd0aW1lcGlja2VyJ1xuICAgIFwiXG4gID5cbiAgICA8YXBwLWNhLWlucHV0LXBsYWNlaG9sZGVyLWljb25cbiAgICAgIFtpbnB1dENvbmZpZ109XCJpbnB1dENvbmZpZ1wiXG4gICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICBbaXNUb3VjaGVkSW5wdXRdPVwiaXNUb3VjaGVkSW5wdXRcIlxuICAgICAgW3NlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXT1cInNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXCJcbiAgICAgIFtpc0VkaXRJbnB1dF09XCJpc0VkaXRJbnB1dFwiXG4gICAgICBbZGF0ZVRpbWVQb3BvdmVyXT1cImRhdGVUaW1lUG9wb3ZlclwiXG4gICAgICAob25Qb3BvdmVyU2hvd25FbWl0dGVyKT1cIm9uUG9wb3ZlclNob3duKClcIlxuICAgICAgKG9uUG9wb3ZlckhpZGRlbkVtaXR0ZXIpPVwib25Qb3BvdmVySGlkZGVuKClcIlxuICAgICAgKG9uUGxhY2Vob2xkZXJJY29uRXZlbnRFbWl0dGVyKT1cIm9uUGxhY2Vob2xkZXJJY29uRXZlbnQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYXBwLWNhLWlucHV0LXBsYWNlaG9sZGVyLWljb24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgUGxhY2Vob2xkZXIgVGV4dCAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICBpbnB1dENvbmZpZyB8IHNob3dQbGFjZWhvbGRlclRleHQgOiBnZXRTdXBlckNvbnRyb2wgOiBcbiAgICAgIGlzVmlzaWJsZUNvbW1hbmRzIDogZ2V0U3VwZXJDb250cm9sPy52YWx1ZVxuICAgIFwiXG4gID5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJjYS1wbGFjZWhvbGRlci10ZXh0IHt7IGlucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgIFtuZ0NsYXNzXT1cIiAgICAgIFxuICAgICAgaXNGb2N1c0lucHV0IHwgaW5wdXRQbGFjZWhvbGRlclRleHRDbGFzc1xuICAgICAgICA6IGlzVG91Y2hlZElucHV0IDogZ2V0U3VwZXJDb250cm9sIDogaW5wdXRDb25maWdcbiAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kcyA6IGdldFN1cGVyQ29udHJvbD8udmFsdWVcbiAgICAgIFwiXG4gICAgICBbc3R5bGUubGVmdF09XCJcbiAgICAgICAgaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpID09PSBpbnB1dFN0cmluZ0VudW0uUEVSU09OUyB8fFxuICAgICAgICBpbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgPT09IGlucHV0U3RyaW5nRW51bS5WRUhJQ0xFU1xuICAgICAgICAgID8gMzAgK1xuICAgICAgICAgICAgKGdldFN1cGVyQ29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCArIDEpICogOSArXG4gICAgICAgICAgICAncHgnXG4gICAgICAgICAgOiBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgICAgIGlucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSAhPT0gaW5wdXRDb21tYW5kc1R5cGUuTU9OVEhTXG4gICAgICAgICAgPyAnYXV0bydcbiAgICAgICAgICA6IChnZXRTdXBlckNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpPy5sZW5ndGggKyAxKSAqIDggKyAncHgnXG4gICAgICBcIlxuICAgICAgW3N0eWxlLnJpZ2h0XT1cIlxuICAgICAgICBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpICE9PSBpbnB1dENvbW1hbmRzVHlwZS5NT05USFNcbiAgICAgICAgICA/ICcyOHB4J1xuICAgICAgICAgIDogJ2F1dG8nXG4gICAgICBcIlxuICAgICAgPlxuICAgICAgICB7eyBpbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQgfX1cbiAgICA8L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuICBcbiAgPCEtLSBJbnB1dCBMYWJlbCBDb3VudGVyIC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIHNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yICYmXG4gICAgICBnZXRTdXBlckNvbnRyb2w/LnZhbHVlICYmXG4gICAgICAhaXNGb2N1c0lucHV0ICYmXG4gICAgICAhaW5wdXRDb25maWcuaXNEaXNhYmxlZCAmJlxuICAgICAgaW5wdXRDb25maWcuc2hvd0NvdW50XG4gICAgXCJcbiAgPlxuICAgIDxwXG4gICAgICBbc3R5bGUudG9wXT1cIic0cHgnXCJcbiAgICAgIFtzdHlsZS5sZWZ0XT1cIlxuICAgICAgICAoZ2V0U3VwZXJDb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoICsgNi41KSAqIDggKyAncHgnXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJpbnB1dC1sYWJlbC1jb3VudGVyXCJcbiAgICA+XG4gICAgICB7eyBzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvci5jb3VudCB9fVxuICAgIDwvcD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBTcGVjaWFsIERyb3Bkb3duIFNlbGVjdGVkIFNWRyB3aXRoIG9yIFdpdGhvdXQgVGV4dCAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICBpbnB1dENvbmZpZz8uZHJvcGRvd25JbWFnZUlucHV0Py5zdmcgJiZcbiAgICAgICFpbnB1dENvbmZpZz8uaGlkZUFsbEl0ZW1zSW5JbnB1dERyb3Bkb3duICYmXG4gICAgICAhKCFpbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LndpdGhUZXh0ICYmIGlzRm9jdXNJbnB1dCkgJiZcbiAgICAgICEoXG4gICAgICAgICAgWyd0cnVjaycsICd0cmFpbGVyJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgIGlucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8udGVtcGxhdGUhXG4gICAgICAgICAgKSAmJlxuICAgICAgICAgIGlzRm9jdXNJbnB1dCAmJlxuICAgICAgICAgIGlucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8ucmVtb3ZlXG4gICAgICApICYmXG4gICAgICAhaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8ubmFtZUluaXRpYWxzSW5zdGVhZFVybFxuICAgIFwiXG4gID5cbiAgICA8c3ZnLWljb25cbiAgICAgICAgW3NyY109XCJpbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LnVybCFcIlxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLXNlbGVjdGVkLWltYWdlIHt7XG4gICAgICAgICAgaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jbGFzc1xuICAgICAgICB9fVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAndW5zZXQtY29sb3InOiBpc0ZvY3VzSW5wdXQgJiYgaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jbGFzc1xuICAgICAgICB9XCJcbiAgICAgICAgW3N2Z1N0eWxlXT1cIntcbiAgICAgICAgICBmaWxsOlxuICAgICAgICAgICAgaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jb2xvciAmJiAhaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgID8gaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jb2xvclxuICAgICAgICAgICAgICA6ICcjZmZmZmZmJ1xuICAgICAgICB9XCJcbiAgICA+XG4gICAgPC9zdmctaWNvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBTcGVjaWFsIERyb3Bkb3duIFNlbGVjdGVkIEltYWdlIFdpdGggVGV4dCBXaXRoIEluaXRpYWxzIG5hbWUgLS0+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8uaW1hZ2UgJiZcbiAgICAgICFpbnB1dENvbmZpZz8uaGlkZUFsbEl0ZW1zSW5JbnB1dERyb3Bkb3duICYmXG4gICAgICBpbnB1dENvbmZpZz8uZHJvcGRvd25JbWFnZUlucHV0Py51cmwgJiZcbiAgICAgICFpbnB1dENvbmZpZz8uZHJvcGRvd25JbWFnZUlucHV0Py5uYW1lSW5pdGlhbHNJbnN0ZWFkVXJsXG4gICAgXCJcbiAgPlxuICAgIDxpbWdcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24tc2VsZWN0ZWQtaW1hZ2UgbmFtZS1pbml0aWFscy1pbnN0ZWFkLXVybFwiXG4gICAgICBbc3JjXT1cImlucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8udXJsXCJcbiAgICAgIFthbHRdPVwiJ0lucHV0IEltYWdlJ1wiXG4gICAgLz5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8ubmFtZUluaXRpYWxzSW5zdGVhZFVybCAmJlxuICAgICAgIWlucHV0Q29uZmlnPy5oaWRlQWxsSXRlbXNJbklucHV0RHJvcGRvd24gJiZcbiAgICAgICEoIWlucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8ud2l0aFRleHQgJiYgaXNGb2N1c0lucHV0KVxuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm5vLXByb2ZpbGUtaW1hZ2UgZHJvcGRvd24tc2VsZWN0ZWQtaW1hZ2UgbmFtZS1pbml0aWFscy1pbnN0ZWFkLXVybFwiXG4gICAgPlxuICAgICAgPGFwcC1jYS1wcm9maWxlLWltYWdlXG4gICAgICAgICAgW2luZHhdPVwiMFwiXG4gICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW3R5cGVdPVwiJ3VzZXInXCJcbiAgICAgICAgICBbbmFtZV09XCJpbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/Lm5hbWVJbml0aWFsc0luc3RlYWRVcmwhXCJcbiAgICAgID5cbiAgICAgIDwvYXBwLWNhLXByb2ZpbGUtaW1hZ2U+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gTXVsdGlwbGUgSW5wdXQgVmFsdWVzIC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIGlucHV0Q29uZmlnPy5tdWx0aXBsZUlucHV0VmFsdWVzPy5vcHRpb25zPy5sZW5ndGggJiYgIWlzRm9jdXNJbnB1dFxuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImlucHV0LWNvbnRyb2wge3tcbiAgICAgICAgaW5wdXRDb25maWcubXVsdGlwbGVJbnB1dFZhbHVlcz8uY3VzdG9tQ2xhc3NcbiAgICAgIH19XCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bk9wdGlvbnMoKVwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgYWxpZ24taXRlbXM6IGNlbnRlclwiXG4gICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgIGxldCBpdGVtIG9mIGlucHV0Q29uZmlnLm11bHRpcGxlSW5wdXRWYWx1ZXM/Lm9wdGlvbnM7XG4gICAgICAgICAgbGV0IGluZHggPSBpbmRleDtcbiAgICAgICAgICB0cmFja0J5OiB0cmFja0lkZW50aXR5XG4gICAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgICA8IS0tIEltYWdlIC8gU1ZHIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5sb2dvTmFtZSAmJiBpdGVtPy5pc0ltZ1wiPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5sb2dvTmFtZSAhPT0gJ25vLXVybCdcIj5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMThweCcsXG4gICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nOiAxLFxuICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLXJhZGlzJzogJzJweCdcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtLmxvZ29OYW1lXCJcbiAgICAgICAgICAgICAgICAgIFthbHRdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmxvZ29OYW1lID09PSAnbm8tdXJsJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuby1wcm9maWxlLWltYWdlXCI+XG4gICAgICAgICAgICAgICAgICA8YXBwLWNhLXByb2ZpbGUtaW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgW2luZHhdPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJpdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgID48L2FwcC1jYS1wcm9maWxlLWltYWdlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgXG4gICAgICAgICAgICAgIDwhLS0gT3duZXIgRmxhZyAtLT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0/LmlzT3duZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZC1kaXNwYXRjaGVzLXR0ZC1vd25lclwiPlxuICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaW5wdXRTdmdSb3V0ZXMub3duZXJCYWRnZUJsdWVTdmdcIlxuICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICBcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8ubG9nb05hbWUgJiYgaXRlbT8uaXNTdmdcIj5cbiAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3BheXJvbGwtZGVkdWN0aW9uLXRydWNrLXN2Zyc6IHRlbXBsYXRlID09PSBkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uUEFZUk9MTF9UUlVDS1NcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwie3sgaXRlbT8uc3ViRm9sZGVyIH19XCJcbiAgICAgICAgICAgICAgW3NyY109XCJpdGVtPy5sb2dvTmFtZSFcIlxuICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gIFxuICAgICAgICAgIDwhLS0gVGV4dCAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0/LmlzUHJvZ3Jlc3NCYXJcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwibXVsdGlwbGUtaW5wdXQtdGV4dFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICBjb2xvcjogJyMyRjJGMkYnXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgY291bnRlcjogaXRlbT8uaXNDb3VudGVyLFxuICAgICAgICAgICAgICAgICdjb3VudGVyLW9uZSc6IGl0ZW0/LnZhbHVlID09PSAxXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5zZWNvbmRfdmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogJyM5MTkxOTEnIH1cIlxuICAgICAgICAgICAgICAgICAgPnt7IGl0ZW0uc2Vjb25kX3ZhbHVlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgXG4gICAgICAgICAgPCEtLSBMb2FkIEJyb2tlciBQcm9ncmVzc0JhciAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8uaXNQcm9ncmVzc0JhclwiPlxuICAgICAgICAgICAgPGNhLWxvYWQtbW9kYWwtcHJvZ3Jlc3MtYmFyXG4gICAgICAgICAgICAgIFt0b3RhbEFtb3VudF09XCJpdGVtLnNlY29uZF92YWx1ZSFcIlxuICAgICAgICAgICAgICBbYXZhaWxhYmxlQ3JlZGl0XT1cIml0ZW0udmFsdWUgPyBpdGVtLnZhbHVlIDogMFwiXG4gICAgICAgICAgICA+PC9jYS1sb2FkLW1vZGFsLXByb2dyZXNzLWJhcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgXG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gTXVsdGlwbGUgSW5wdXQgUGxhY2Vob2xkZXIgLS0+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgaW5wdXRDb25maWc/Lm11bHRpcGxlSW5wdXRWYWx1ZXM/Lm9wdGlvbnM/Lmxlbmd0aCAmJlxuICAgICAgaXNGb2N1c0lucHV0ICYmXG4gICAgICAhZ2V0U3VwZXJDb250cm9sPy52YWx1ZVxuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImlucHV0LWNvbnRyb2wgbXVsdGlwbGUtaW5wdXQtcGxhY2Vob2xkZXIge3tcbiAgICAgICAgaW5wdXRDb25maWcubXVsdGlwbGVJbnB1dFZhbHVlcz8uY3VzdG9tQ2xhc3NcbiAgICAgIH19XCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgXG4gICAgICAgIGZvY3VzOiBpc0ZvY3VzSW5wdXQsXG4gICAgICAgICdwYXlyb2xsLWRlZHVjdGlvbi10cnVjayc6IHRlbXBsYXRlID09PSBkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uUEFZUk9MTF9UUlVDS1NcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiA2cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIlxuICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICBsZXQgaXRlbSBvZiBpbnB1dENvbmZpZy5tdWx0aXBsZUlucHV0VmFsdWVzPy5vcHRpb25zO1xuICAgICAgICAgIGxldCBpbmR4ID0gaW5kZXg7XG4gICAgICAgICAgdHJhY2tCeTogdHJhY2tJZGVudGl0eVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8IS0tIEltYWdlIC8gU1ZHIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8ubG9nb05hbWUgJiYgaXRlbT8uaXNJbWdcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZm9jdXNhYmxlLWltYWdlJzogaXNGb2N1c0lucHV0IH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5sb2dvTmFtZSAhPT0gJ25vLXVybCdcIj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMThweCcsXG4gICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJzogMSxcbiAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXMnOiAnMnB4J1xuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5sb2dvTmFtZVwiXG4gICAgICAgICAgICAgICAgW2FsdF09XCJpdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubG9nb05hbWUgPT09ICduby11cmwnXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuby1wcm9maWxlLWltYWdlXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1jYS1wcm9maWxlLWltYWdlXG4gICAgICAgICAgICAgICAgICAgIFtpbmR4XT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiaXRlbS52YWx1ZSFcIlxuICAgICAgICAgICAgICAgID48L2FwcC1jYS1wcm9maWxlLWltYWdlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIFxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8ubG9nb05hbWUgJiYgaXRlbT8uaXNTdmdcIj5cbiAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgXG4gICAgICAgICAgICAgICdmb2N1c2FibGUtc3ZnJzogaXNGb2N1c0lucHV0LFxuICAgICAgICAgICAgICAncGF5cm9sbC1kZWR1Y3Rpb24tdHJ1Y2stc3ZnJzogdGVtcGxhdGUgPT09IGRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5QQVlST0xMX1RSVUNLU1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBjbGFzcz1cInt7IGl0ZW0/LnN1YkZvbGRlciB9fSB7e1xuICAgICAgICAgICAgICBpdGVtPy5sb2dvVHlwZT8udHJpbSgpPy5yZXBsYWNlKCcgJywgJycpPy50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICBbc3JjXT1cIml0ZW0/LmxvZ29OYW1lIVwiXG4gICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICBcbiAgICAgICAgPCEtLSBUZXh0IC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0/LmlzUHJvZ3Jlc3NCYXJcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJtdWx0aXBsZS1pbnB1dC10ZXh0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ2ZvY3VzYWJsZS10ZXh0JzogaXNGb2N1c0lucHV0LFxuICAgICAgICAgICAgICBjb3VudGVyOiBpdGVtPy5pc0NvdW50ZXIsXG4gICAgICAgICAgICAgICdjb3VudGVyLWZvY3VzJzogaXRlbT8uaXNDb3VudGVyICYmIGlzRm9jdXNJbnB1dCxcbiAgICAgICAgICAgICAgJ2NvdW50ZXItb25lJzogaXRlbT8udmFsdWUgPT09IDEsXG4gICAgICAgICAgICAgICdjYS1hZGQtZG90JzogdGVtcGxhdGUgPT09IGRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5MT0FEX0RJU1BBVENIRVJcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICBjb2xvcjogJyM2RjlFRTAnXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8uc2Vjb25kX3ZhbHVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0uc2Vjb25kX3ZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgXG4gICAgICAgIDwhLS0gTG9hZCBCcm9rZXIgUHJvZ3Jlc3NCYXIgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtPy5pc1Byb2dyZXNzQmFyXCI+XG4gICAgICAgICAgPGNhLWxvYWQtbW9kYWwtcHJvZ3Jlc3MtYmFyXG4gICAgICAgICAgICBbdG90YWxBbW91bnRdPVwiaXRlbS5zZWNvbmRfdmFsdWUhXCJcbiAgICAgICAgICAgIFthdmFpbGFibGVDcmVkaXRdPVwiaXRlbS52YWx1ZSA/IGl0ZW0udmFsdWUgOiAwXCJcbiAgICAgICAgICAgIFtpbnB1dEZvY3VzXT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICAgICAgPjwvY2EtbG9hZC1tb2RhbC1wcm9ncmVzcy1iYXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8aW5wdXRcbiAgICAjaW5wdXRcbiAgICBbdHlwZV09XCJpbnB1dENvbmZpZy50eXBlIHwgaW5wdXRUeXBlOiBpc1RvZ2dsZVBhc3N3b3JkXCJcbiAgICBbaWRdPVwiaW5wdXRDb25maWcuaWQgPyBpbnB1dENvbmZpZy5pZCA6IGlucHV0Q29uZmlnLm5hbWVcIlxuICAgIFtuYW1lXT1cImlucHV0Q29uZmlnLm5hbWVcIlxuICAgIFtkaXNhYmxlZF09XCJpbnB1dENvbmZpZy5pc0Rpc2FibGVkIVwiXG4gICAgW2F1dG9jb21wbGV0ZV09XCJpbnB1dENvbmZpZy5hdXRvY29tcGxldGUgPyBpbnB1dENvbmZpZy5hdXRvY29tcGxldGUgOiAnb2ZmJ1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgKGlucHV0Q29uZmlnLnBsYWNlaG9sZGVySW5zdGVhZE9mTGFiZWwgJiZcbiAgICAgIGlucHV0Q29uZmlnLnBsYWNlaG9sZGVyICYmXG4gICAgICBpc0ZvY3VzSW5wdXRcbiAgICAgICAgPyBpbnB1dENvbmZpZy5wbGFjZWhvbGRlclxuICAgICAgICA6ICcnKSB8fFxuICAgICAgKGlucHV0Q29uZmlnLnBsYWNlaG9sZGVyICYmIGlzRm9jdXNJbnB1dCA/IGlucHV0Q29uZmlnLnBsYWNlaG9sZGVyIDogJycpXG4gICAgXCJcbiAgICBbbWluTGVuZ3RoXT1cImlucHV0Q29uZmlnLm1pbkxlbmd0aCA/IGlucHV0Q29uZmlnLm1pbkxlbmd0aCA6IDBcIlxuICAgIFttYXhMZW5ndGhdPVwiaW5wdXRDb25maWcubWF4TGVuZ3RoID8gaW5wdXRDb25maWcubWF4TGVuZ3RoIDogOTk5XCJcbiAgICBbbWFza109XCJpbnB1dENvbmZpZy5tYXNrXCJcbiAgICBbbWluXT1cImlucHV0Q29uZmlnLm1pbiA/IGlucHV0Q29uZmlnLm1pbiA6IDBcIlxuICAgIFttYXhdPVwiaW5wdXRDb25maWcubWF4XCJcbiAgICBbc3RlcF09XCJpbnB1dENvbmZpZy5zdGVwID8gaW5wdXRDb25maWcuc3RlcCA6IG51bGxcIlxuICAgIFtyZWFkT25seV09XCJpbnB1dENvbmZpZy5yZWFkT25seVwiXG4gICAgYXBwTWluTWF4VmFsdWVcbiAgICBbbWluVmFsdWVdPVwiaW5wdXRDb25maWcubWluIVwiXG4gICAgW21heFZhbHVlXT1cImlucHV0Q29uZmlnLm1heCFcIlxuICAgIGlucHV0Zm9ybWF0PVwiZGQtbW0teXlcIlxuICAgIGNsYXNzPVwiaW5wdXQtY29udHJvbFxuICB7eyBpbnB1dENvbmZpZy50ZXh0VHJhbnNmb3JtIH19XG4gIHt7IGlucHV0Q29uZmlnLnRleHRBbGlnbiB9fVxuICB7eyBpbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVxuICBcIlxuICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgZ2V0U3VwZXJDb250cm9sXG4gICAgICAgIHwgaW5wdXRDbGFzc1xuICAgICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgICAgOiBpc1RvdWNoZWRJbnB1dFxuICAgICAgICAgIDogaW5wdXRDb25maWdcbiAgICAgICAgICA6IGlucHV0XG4gICAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kc1xuICAgICAgICAgIDogZ2V0U3VwZXJDb250cm9sPy52YWx1ZVxuICAgICAgICAgIDogZ2V0U3VwZXJDb250cm9sPy5pbnZhbGlkXG4gICAgICAgICAgOiBnZXRTdXBlckNvbnRyb2w/LnRvdWNoZWRcbiAgICAgICAgICA6IGlzRHJvcGRvd25Ub2dnbGVyXG4gICAgICAgICAgOiBpc0VkaXRJbnB1dFxuICAgICAgICAgIDogdGVtcGxhdGVcbiAgICBcIlxuICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxuICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAoa2V5dXApPVwib25LZXl1cCgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgKHNlbGVjdCk9XCJzZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGlucHV0KT1cIm9uQ2hhbmdlKCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpOyB0cmFuc2Zvcm1UZXh0KCRldmVudClcIlxuICAgIFsobmdNb2RlbCldPVwiaW5wdXQudmFsdWVcIlxuICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgaW5wdXRDb25maWcuc3RhdHVzU3R5bGUgPyAoaW5wdXQudmFsdWUgfCBsb2FkU3RhdHVzQ29sb3IpIDogJydcbiAgICBcIlxuICAvPlxuXG4gIDwhLS0gUGxhY2Vob2xkZXIgSWNvbiBvbiBSaWdodCBTaWRlIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlXCI+XG4gICAgPHN2Zy1pY29uXG4gICAgICBjbGFzcz1cInBsYWNlaG9sZGVyLWljb24tcmlnaHQtc2lkZSB7e1xuICAgICAgICBpbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25Db2xvclxuICAgICAgfX1cIlxuICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgIGlzRm9jdXNJbnB1dFxuICAgICAgICAgIHwgaW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzXG4gICAgICAgICAgICA6IGdldFN1cGVyQ29udHJvbFxuICAgICAgICAgICAgOiBpbnB1dENvbmZpZ1xuICAgICAgICAgICAgOiBpc1RvdWNoZWRJbnB1dFxuICAgICAgICAgICAgOiBnZXRTdXBlckNvbnRyb2w/LnZhbHVlXG4gICAgICBcIlxuICAgICAgW3NyY109XCJcbiAgICAgICAgaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICB8IGNhU3ZnIDogJ2NvbW1vbidcbiAgICAgIFwiXG4gICAgPjwvc3ZnLWljb24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgRXJyb3IgTWVzc2FnZSAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICAhKCFnZXRTdXBlckNvbnRyb2w/LnZhbHVlICYmIGlzRm9jdXNJbnB1dCkgJiZcbiAgICAgIChpc1RvdWNoZWRJbnB1dCB8fCBnZXRTdXBlckNvbnRyb2w/LnRvdWNoZWQgfHwgZ2V0U3VwZXJDb250cm9sPy52YWx1ZSkgJiZcbiAgICAgIGdldFN1cGVyQ29udHJvbD8uaW52YWxpZCAmJlxuICAgICAgIWlucHV0Q29uZmlnLmlzSW52YWxpZFNlYXJjaEluRHJvcGRvd24gJiZcbiAgICAgICFpbnB1dENvbmZpZy5pc0Rpc2FibGVkXG4gICAgXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGlucHV0Q29uZmlnLmhpZGVFcnJvck1lc3NhZ2UgfHwgaW5wdXRDb25maWcuZXJyb3JJbnNpZGVJbnB1dClcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZXJyb3Ige3sgaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIj5cbiAgICAgICAge3sgZ2V0U3VwZXJDb250cm9sPy5lcnJvcnMgfCBpbnB1dEVycm9yOiBpbnB1dENvbmZpZy5uYW1lIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEVycm9yIE1lc3NhZ2UgSW5zaWRlIElucHV0IC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnB1dENvbmZpZy5lcnJvckluc2lkZUlucHV0XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImVycm9yLWluc2lkZS1pbnB1dCB7eyBpbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiPlxuICAgICAgICB7eyBnZXRTdXBlckNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IGlucHV0Q29uZmlnLm5hbWUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Q29uZmlnLmZpeGVkUGxhY2hvbGRlciAmJiBpbnB1dC52YWx1ZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZml4ZWQtcGxhY2Vob2Rlci1sYWJlbFwiPlxuICAgICAge3sgaW5wdXRDb25maWcuZml4ZWRQbGFjaG9sZGVyIH19XG4gICAgPC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48IS0tIFBvcG92ZXIgZm9yIERhdGVUaW1lIFBpY2tlcnMgLS0+XG48bmctdGVtcGxhdGUgI2RhdGVUaW1lUG9wb3ZlciBsZXQtZGF0YT1cImRhdGFcIj5cbiAgPGRpdiBjbGFzcz1cImRhdGV0aW1lLWRyb3Bkb3duLWhvbGRlclwiPlxuICAgIDxhcHAtY2EtY3VzdG9tLWRhdGV0aW1lLXBpY2tlcnNcbiAgICAgIFtjYWxlbmRhclR5cGVdPVwiXG4gICAgICAgIGlucHV0Q29uZmlnLm5hbWUgPT09ICdkYXRlcGlja2VyJyB8fFxuICAgICAgICBpbnB1dENvbmZpZy5uYW1lID09PSAnZGF0ZXBpY2tlckJhbmtDYXJkJ1xuICAgICAgICAgID8gJ2RhdGUnXG4gICAgICAgICAgOiAndGltZSdcbiAgICAgIFwiXG4gICAgICBbaW5wdXRDb25maWddPVwiaW5wdXRDb25maWdcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidNTS9ERC9ZWSdcIlxuICAgICAgW2RhdGVUaW1lXT1cImRhdGVUaW1lSW5wdXREYXRlXCJcbiAgICAgIChjbG9zZVBvcG92ZXIpPVwiY2xvc2VQb3BvdmVyKClcIlxuICAgID48L2FwcC1jYS1jdXN0b20tZGF0ZXRpbWUtcGlja2Vycz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
|