ca-components 1.3.95 → 1.3.97
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-map/ca-map.component.mjs +6 -6
- package/esm2022/lib/components/ca-map/enums/map-marker-string.enum.mjs +5 -1
- package/esm2022/lib/components/ca-map/models/map.model.mjs +1 -1
- package/esm2022/lib/components/ca-map/utils/constants/map-options.constants.mjs +27 -18
- package/esm2022/lib/components/ca-map/utils/helpers/map-marker-icon.helper.mjs +51 -10
- package/esm2022/lib/components/ca-period-content/ca-period-content.component.mjs +3 -3
- package/esm2022/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.mjs +3 -3
- package/esm2022/lib/components/ca-progress-bar/ca-progress-bar.component.mjs +4 -5
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/ca-upload-file.component.mjs +3 -3
- package/fesm2022/ca-components.mjs +94 -41
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-map/ca-map.component.d.ts +1 -15
- package/lib/components/ca-map/enums/map-marker-string.enum.d.ts +4 -0
- package/lib/components/ca-map/models/map.model.d.ts +14 -0
- package/lib/components/ca-map/utils/constants/map-options.constants.d.ts +15 -68
- package/lib/components/ca-map/utils/helpers/map-marker-icon.helper.d.ts +1 -0
- package/package.json +1 -1
|
@@ -81,9 +81,8 @@ export class ProgressBarComponent {
|
|
|
81
81
|
path: [],
|
|
82
82
|
decodedShape: loadStop.routeShape,
|
|
83
83
|
strokeColor: index === 1
|
|
84
|
-
? MapOptionsConstants.
|
|
85
|
-
|
|
86
|
-
: MapOptionsConstants.routingPathColors.default,
|
|
84
|
+
? MapOptionsConstants.ROUTING_PATH_COLORS['currentLocation']
|
|
85
|
+
: MapOptionsConstants.ROUTING_PATH_COLORS['default'],
|
|
87
86
|
strokeOpacity: 1,
|
|
88
87
|
strokeWeight: 4,
|
|
89
88
|
};
|
|
@@ -91,7 +90,7 @@ export class ProgressBarComponent {
|
|
|
91
90
|
if (index === 1) {
|
|
92
91
|
routePaths.push({
|
|
93
92
|
...routePath,
|
|
94
|
-
strokeColor: MapOptionsConstants.
|
|
93
|
+
strokeColor: MapOptionsConstants.ROUTING_PATH_COLORS['deadhead'],
|
|
95
94
|
strokeOpacity: 1,
|
|
96
95
|
strokeWeight: 2,
|
|
97
96
|
});
|
|
@@ -170,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
170
169
|
}], onOpenMap: [{
|
|
171
170
|
type: Output
|
|
172
171
|
}] } });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLXByb2dyZXNzLWJhci9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtcHJvZ3Jlc3MtYmFyL2NhLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxVQUFVO0FBQ1YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUvRSxhQUFhO0FBQ2IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLFlBQVk7QUFDWixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU1oRSxhQUFhO0FBQ2IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUQsUUFBUTtBQUNSLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVwRCxRQUFR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c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBOZ2JNb2R1bGUsIE5nYlBvcG92ZXIsIE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbi8vIENvbXBvbmVudHNcbmltcG9ydCB7IENhTWFwQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtbWFwL2NhLW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuXG4vLyBDb25zdGFudHNcbmltcG9ydCB7IFByb2dyZXNzQmFyQ29uc3RhbnRzIH0gZnJvbSAnLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWFwT3B0aW9uc0NvbnN0YW50cyB9IGZyb20gJy4uL2NhLW1hcC91dGlscy9jb25zdGFudHMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IElHcHNQcm9ncmVzcyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IElDYU1hcFByb3BzLCBJTWFwTWFya2VycywgSU1hcFJvdXRlUGF0aCB9IGZyb20gJy4uL2NhLW1hcC9tb2RlbHMnO1xuXG4vLyBzdmctcm91dGVzXG5pbXBvcnQgeyBQcm9ncmVzc0JhclN2Z1JvdXRlcyB9IGZyb20gJy4vdXRpbHMvc3ZnLXJvdXRlcyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBUaG91c2FuZFNlcGFyYXRvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90aG91c2FuZC1zZXBhcmF0b3IucGlwZSc7XG5pbXBvcnQgeyBDb252ZXJ0TWludXRlc1RvSG91cnNQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5cbi8vIEVudW1zXG5pbXBvcnQgeyBQcm9ncmVzc0JhclN0cmluZ0VudW0gfSBmcm9tICcuL2VudW1zJztcblxuLy8gU2VydmljZXNcbmltcG9ydCB7IE1hcE1hcmtlckljb25TZXJ2aWNlIH0gZnJvbSAnLi4vY2EtbWFwL3V0aWxzL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtcHJvZ3Jlc3MtYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy8gTW9kdWxlc1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgICAgICBOZ2JNb2R1bGUsXG4gICAgICAgIE5nYlRvb2x0aXAsXG4gICAgICAgIC8vIENvbXBvbmVudHNcbiAgICAgICAgQ2FNYXBDb21wb25lbnQsXG4gICAgICAgIENhQXBwVG9vbHRpcFYyQ29tcG9uZW50LFxuICAgICAgICAvLyBQaXBlc1xuICAgICAgICBUaG91c2FuZFNlcGFyYXRvclBpcGUsXG4gICAgICAgIENvbnZlcnRNaW51dGVzVG9Ib3Vyc1BpcGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NCYXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHNldCBncHNQcm9ncmVzcyh2YWx1ZXM6IElHcHNQcm9ncmVzc1tdKSB7XG4gICAgICAgIHRoaXMuc2V0R3BzUHJvZ3Jlc3ModmFsdWVzKTtcbiAgICB9XG4gICAgQElucHV0KCkgY3VycmVudFN0b3AhOiBJR3BzUHJvZ3Jlc3M7XG4gICAgQElucHV0KCkgY3VycmVudFBvc2l0aW9uITogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHRvdGFsTWlsZXMhOiBudW1iZXI7XG4gICAgQElucHV0KCkgbWlsZWFnZUluZm8hOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZ3BzVGl0bGU6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIGdwc0ljb24hOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZ3BzSW5mbyE6IHtcbiAgICAgICAgZ3BzaGVhZGluZzogc3RyaW5nO1xuICAgICAgICBncHNUaW1lOiBzdHJpbmc7XG4gICAgICAgIGdwc2hlYWRpbmdDb2xvcj86IHN0cmluZztcbiAgICB9O1xuICAgIEBJbnB1dCgpIG1pbGVhZ2VzUGVyY2VudCE6IHN0cmluZztcbiAgICBASW5wdXQoKSBncHNMb2NhdGlvbkljb24hOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGlzcGF0Y2hTdGF0dXMhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNEcm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIG9uT3Blbk1hcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBfZ3BzUHJvZ3Jlc3M6IElHcHNQcm9ncmVzc1tdID0gW107XG5cbiAgICBwdWJsaWMgZ3BzSWNvblRvcFBvc2l0aW9uOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIGhvdmVyZWRHcHNJY29uOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGhvdmVyZWRHcHNUaXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGhvdmVyZWRNaWxlYWdlSW5mbzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgc3RhdGljQ29uc3RhbnQgPSBQcm9ncmVzc0JhckNvbnN0YW50cztcbiAgICBwdWJsaWMgcHJvZ3Jlc3NCYXJTdmdSb3V0ZXMgPSBQcm9ncmVzc0JhclN2Z1JvdXRlcztcblxuICAgIHB1YmxpYyBtYXBEYXRhOiBJQ2FNYXBQcm9wcyA9IHtcbiAgICAgICAgbWFya2VyczogW10sXG4gICAgICAgIGNsdXN0ZXJNYXJrZXJzOiBbXSxcbiAgICAgICAgcm91dGluZ01hcmtlcnM6IFtdLFxuICAgICAgICByb3V0ZVBhdGhzOiBbXSxcbiAgICAgICAgZGFya01vZGU6IHRydWUsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbWFya2VySWNvblNlcnZpY2U6IE1hcE1hcmtlckljb25TZXJ2aWNlKSB7fVxuXG4gICAgcHVibGljIGhvdmVyU3RvcChzdG9wOiBJR3BzUHJvZ3Jlc3MsIGk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdmVyZWRHcHNUaXRsZSA9IHN0b3A/LmlzQXRTdG9wXG4gICAgICAgICAgICA/IFByb2dyZXNzQmFyU3RyaW5nRW51bS5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICAgICAgICA6IHN0b3A/LmhlYWRpbmcgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5ob3ZlcmVkTWlsZWFnZUluZm8gPSAhc3RvcD8uaXNBdFN0b3AgPyBzdG9wPy5taWxlYWdlIDogJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGxlYXZlU3RvcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3ZlcmVkR3BzVGl0bGUgPSBudWxsO1xuICAgICAgICB0aGlzLmhvdmVyZWRNaWxlYWdlSW5mbyA9IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dEcm9wZG93bk1hcCh0MjogTmdiUG9wb3Zlcik6IHZvaWQge1xuICAgICAgICB0Mi5vcGVuKCk7XG5cbiAgICAgICAgdGhpcy5vbk9wZW5NYXAuZW1pdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0R3BzUHJvZ3Jlc3MoZ3BzUHJvZ3Jlc3NEYXRhOiBJR3BzUHJvZ3Jlc3NbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9ncHNQcm9ncmVzcyA9IGdwc1Byb2dyZXNzRGF0YTtcblxuICAgICAgICB0aGlzLnNldE1hcE1hcmtlcnMoKTtcblxuICAgICAgICB0aGlzLmNhbGN1bGF0ZUdwc0ljb25Qb3NpdGlvbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TWFwTWFya2VycygpOiB2b2lkIHtcbiAgICAgICAgbGV0IHJvdXRlTWFya2VyczogSU1hcE1hcmtlcnNbXSA9IFtdO1xuICAgICAgICBsZXQgcm91dGVQYXRoczogSU1hcFJvdXRlUGF0aFtdID0gW107XG5cbiAgICAgICAgdGhpcy5fZ3BzUHJvZ3Jlc3MuZm9yRWFjaCgobG9hZFN0b3AsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXJrZXJEYXRhID0ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiB7IGxhdDogbG9hZFN0b3AubGF0aXR1ZGUsIGxuZzogbG9hZFN0b3AubG9uZ2l0dWRlIH0sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCByb3V0ZU1hcmtlcjogSU1hcE1hcmtlcnMgPSB7XG4gICAgICAgICAgICAgICAgLi4ubWFya2VyRGF0YSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLm1hcmtlckljb25TZXJ2aWNlLmdldFJvdXRpbmdNYXJrZXJJY29uKFxuICAgICAgICAgICAgICAgICAgICBtYXJrZXJEYXRhLFxuICAgICAgICAgICAgICAgICAgICBsb2FkU3RvcC5zdG9wTnVtYmVyID8/IDAsXG4gICAgICAgICAgICAgICAgICAgIGxvYWRTdG9wLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFBvc2l0aW9uID49IGxvYWRTdG9wLnBvc2l0aW9uXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJvdXRlTWFya2VycyA9IFsuLi5yb3V0ZU1hcmtlcnMsIHJvdXRlTWFya2VyXTtcblxuICAgICAgICAgICAgaWYgKGxvYWRTdG9wLnJvdXRlU2hhcGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZVBhdGg6IElNYXBSb3V0ZVBhdGggPSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IFtdLFxuICAgICAgICAgICAgICAgICAgICBkZWNvZGVkU2hhcGU6IGxvYWRTdG9wLnJvdXRlU2hhcGUsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZUNvbG9yOlxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IE1hcE9wdGlvbnNDb25zdGFudHMucm91dGluZ1BhdGhDb2xvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3VycmVudExvY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBNYXBPcHRpb25zQ29uc3RhbnRzLnJvdXRpbmdQYXRoQ29sb3JzLmRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZVdlaWdodDogNCxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcm91dGVQYXRocyA9IFsuLi5yb3V0ZVBhdGhzLCByb3V0ZVBhdGhdO1xuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlUGF0aHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5yb3V0ZVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VDb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLnJvdXRpbmdQYXRoQ29sb3JzLmRlYWRoZWFkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdlaWdodDogMixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm1hcERhdGEgPSB7XG4gICAgICAgICAgICAuLi50aGlzLm1hcERhdGEsXG4gICAgICAgICAgICBpc1pvb21TaG93bjogdHJ1ZSxcbiAgICAgICAgICAgIGlzVmVydGljYWxab29tOiB0cnVlLFxuICAgICAgICAgICAgcm91dGluZ01hcmtlcnM6IHJvdXRlTWFya2VycyxcbiAgICAgICAgICAgIHJvdXRlUGF0aHM6IHJvdXRlUGF0aHMsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVHcHNJY29uUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGxldCB0b3BQb3NpdGlvbiA9IDA7XG4gICAgICAgIGxldCBjdXJyZW50U3RvcFBlcmNlbnRhZ2UgPSBudWxsO1xuICAgICAgICBjb25zdCBzdG9wUGVyY2VudGFnZSA9IDEwMCAvICh0aGlzLl9ncHNQcm9ncmVzcy5sZW5ndGggLSAxKTtcblxuICAgICAgICB0aGlzLl9ncHNQcm9ncmVzcy5mb3JFYWNoKChzdG9wLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNBdERlYWRoZWFkID0gc3RvcC5pc0F0U3RvcCAmJiAhaW5kZXg7XG5cbiAgICAgICAgICAgIGlmIChzdG9wLmlzVmlzaXRlZCAmJiAhaXNBdERlYWRoZWFkKVxuICAgICAgICAgICAgICAgIHRvcFBvc2l0aW9uICs9IGluZGV4ID8gc3RvcFBlcmNlbnRhZ2UgOiBzdG9wUGVyY2VudGFnZSAvIDI7XG5cbiAgICAgICAgICAgIGlmIChzdG9wLmlzQXRTdG9wKSBjdXJyZW50U3RvcFBlcmNlbnRhZ2UgPSBzdG9wUGVyY2VudGFnZSAqIGluZGV4O1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmdwc0ljb25Ub3BQb3NpdGlvbiA9IGN1cnJlbnRTdG9wUGVyY2VudGFnZSA/PyB0b3BQb3NpdGlvbjtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3BzLXByb2dyZXNzLWJhclwiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncHMtcHJvZ3Jlc3MtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAjdDI9XCJuZ2JQb3BvdmVyXCJcbiAgICAgICAgW25nYlBvcG92ZXJdPVwiZ3BzRHJvcGRvd25Qb3BvdmVyXCJcbiAgICAgICAgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxuICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgW3BsYWNlbWVudF09XCInYm90dG9tLXJpZ2h0J1wiXG4gICAgICAgIHBvcG92ZXJDbGFzcz1cImdwc19kcm9wZG93bl9wb3BvdmVyXCJcbiAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIlxuICAgICAgICAoY2xpY2spPVwic2hvd0Ryb3Bkb3duTWFwKHQyKVwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cImhvdmVyZWRHcHNJY29uID0gdHJ1ZVwiXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJob3ZlcmVkR3BzSWNvbiA9IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHN2Zy1pY29uIGNsYXNzPVwic3ZnLXNpemUtMjJcIiBbc3JjXT1cImdwc0ljb25cIj48L3N2Zy1pY29uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKCFob3ZlcmVkR3BzSWNvbikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwcy1wcm9ncmVzcy10ZXh0IGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWxlYWdlLWdwcyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLXNlbGVjdC1ub25lIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLWJsYWNrLTIgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaG92ZXJlZEdwc1RpdGxlID8/IGdwc1RpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItc2VsZWN0LW5vbmUgdGV4dC1zaXplLTExIHRleHQtY29sb3ItYmxhY2stMiBjYS1mb250LXJlZ3VsYXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBob3ZlcmVkTWlsZWFnZUluZm8gPz8gbWlsZWFnZUluZm8gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbGVhZ2UtZ3BzIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzLXRpbWVsaW5lIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzLXRpbWVsaW5lLWFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyB3aWR0aDogY3VycmVudFBvc2l0aW9uICsgJyUnIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChzdG9wIG9mIF9ncHNQcm9ncmVzczsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzLXN0b3AgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlclN0b3Aoc3RvcCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJsZWF2ZVN0b3AoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwaWNrdXAtc3RvcCc6IHN0b3AudHlwZSA9PT0gJ3BpY2t1cCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsaXZlcnktc3RvcCc6IHN0b3AudHlwZSA9PT0gJ2RlbGl2ZXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2aXNpdGVkLXN0b3AnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA+PSBzdG9wLnBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBsZWZ0OiBzdG9wLnBvc2l0aW9uICsgJyUnIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwQmFja2dyb3VuZF09XCInIzQyNDI0MidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkNhVG9vbHRpcF09XCJzdG9wPy5sb2NhdGlvbiA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnJlbnQtcG9zIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlclN0b3AoY3VycmVudFN0b3AsIC0yKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwibGVhdmVTdG9wKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgbGVmdDogY3VycmVudFBvc2l0aW9uICsgJyUnIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyM0MjQyNDInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkNhVG9vbHRpcF09XCJjdXJyZW50U3RvcD8ubG9jYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlVG9vbHRpcF09XCIhY3VycmVudFN0b3BcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctc2l6ZS0xMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ3BzTG9jYXRpb25JY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItc2VsZWN0LW5vbmUgdGV4dC1zaXplLTExIHRleHQtY29sb3ItYmxhY2stMiBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBtaWxlYWdlc1BlcmNlbnQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSBpZiAoZ3BzSW5mbykge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzX2luZm9faG9sZCBkLWZsZXggZmxleC1jb2x1bW4gZmxleC0xIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb3Zpbmdfc2lkZSB0ZXh0LXNpemUtMTEgY2EtZm9udC1ib2xkIHVzZXItc2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBncHNJbmZvLmdwc2hlYWRpbmdDb2xvciB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdwc0luZm8uZ3BzaGVhZGluZyB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vdmluZ190aW1lIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLWJsYWNrLTIgY2EtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZ3BzSW5mby5ncHNUaW1lIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNncHNEcm9wZG93blBvcG92ZXIgbGV0LWRhdGE9XCJkYXRhXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluX2Ryb3Bkb3duX2hvbGRlciBkLWZsZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICA8YXBwLWNhLW1hcCBbZGF0YV09XCJtYXBEYXRhXCI+PC9hcHAtY2EtbWFwPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfYWxsX2hvbGRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzX2hlYWRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJlZEdwc0ljb24gPSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaG92ZXJlZEdwc0ljb24gPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLXNpemUtMjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ3BzSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncHNfaW5mb19ob2xkIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW92aW5nX3NpZGUgdGV4dC1zaXplLTExIGNhLWZvbnQtYm9sZCB1c2VyLXNlbGVjdC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBncHNJbmZvLmdwc2hlYWRpbmdDb2xvciB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBncHNJbmZvLmdwc2hlYWRpbmcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfaW5mb19ib3JkZXJcIj48L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfcHJvZ3Jlc3NfaG9sZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdwc19wcm9ncmVzc19ob2xkX2lubmVyIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc19saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX2lubmVyX2xpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGdwc0ljb25Ub3BQb3NpdGlvbiArICclJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghY3VycmVudFN0b3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncHNMb2NhdGlvbkljb25UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcFBvc2l0aW9uOiBncHNJY29uVG9wUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wIG9mIF9ncHNQcm9ncmVzcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RvcEluZGV4ID0gJGluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrIHN0b3BJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX2lubmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc19oZWFkZXIgZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc19oZWFkZXJfaW5zaWRlIGQtZmxleCBmbGV4LTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc19pY29uIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFzdG9wLmlzQXRTdG9wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA+PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AucG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1zaXplLTE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGlja3VwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N2Zy1maWxsLWdyZWVuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3RvcC50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsaXZlcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdzdmctZmlsbC1yZWQtMTAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdzdmctZmlsbC1ncmV5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3NCYXJTdmdSb3V0ZXMuY2hlY2tSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLXN0b3AtbnVtYmVyIHRleHQtc2l6ZS0xNCB0ZXh0LWNlbnRlciB1c2VyLXNlbGVjdC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGlja3VwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RleHQtY29sb3ItZ3JlZW4tNCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICd0ZXh0LWNvbG9yLXJlZC0xMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b3Auc3RvcE51bWJlciB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncHNMb2NhdGlvbkljb25UZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc19pbmZvX2hvbGQgZC1mbGV4IGZsZXgtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfbmFtZSB0ZXh0LXNpemUtMTEgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AuaXNBdFN0b3AgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gPFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLnBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc3RvcC50eXBlID09PSAncGlja3VwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAndGV4dC1jb2xvci1ncmVlbi00J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAndGV4dC1jb2xvci1yZWQtMTMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RleHQtY29sb3ItZ3JleSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b3A/LmxvY2F0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIXN0b3AuaXNBdFN0b3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3RvcC5kYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX3RpbWUgdGV4dC1zaXplLTExIHRleHQtY29sb3Itd2hpdGUtMiBjYS1mb250LXJlZ3VsYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dC1jb2xvci1ncmV5JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gPj1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC5wb3NpdGlvbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzdG9wLmlzQXRTdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b3AuZGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHN0b3AudGltZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc190aW1lIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlLTIgY2EtZm9udC1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQtY29sb3ItZ3JleSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uID49XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AucG9zaXRpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhc3RvcC5pc0F0U3RvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdG9wLnRpbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc190aW1lIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlLTIgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkaXNwYXRjaFN0YXR1cyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3RvcC5jdXJyZW50V2FpdFRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfdGltZSB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci13aGl0ZS0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLmN1cnJlbnRXYWl0VGltZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY29udmVydE1pbnV0ZXNUb0hvdXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1sZWctbWlsZXMtdGV4dCB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci13aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dC1jb2xvci1ncmV5JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA+PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AucG9zaXRpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzdG9wLmlzQXRTdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2EtZm9udC1ib2xkJzogc3RvcEluZGV4ID09PSAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3BJbmRleCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnTEVHIG1pJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdG9wPy5sZWdNaWxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcrJyArIHN0b3AubGVnTWlsZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnKycgKyAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2luZm9fYm9yZGVyXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2NvbXBsZXRlX2hvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19jb21wbGV0ZV9yb3cgZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RhdGljQ29uc3RhbnQuY29tcGxldGVkIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RhdGljQ29uc3RhbnQudG90YWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2NvbXBsZXRlX3NlY29uZF9yb3cgZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LTEgdGV4dC1zaXplLTExIHRleHQtY29sb3ItYmx1ZS0xOSBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGN1cnJlbnRQb3NpdGlvbiB9fXt7IHN0YXRpY0NvbnN0YW50LnBlcmNlbnRhZ2UgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zaXplLTExIHRleHQtY29sb3Itd2hpdGUgY2EtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdG90YWxNaWxlcyB8IHRob3VzYW5kU2VwYXJhdG9yIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RhdGljQ29uc3RhbnQubWlsZXMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZ3BzTG9jYXRpb25JY29uVGVtcGxhdGUgbGV0LXRvcFBvc2l0aW9uPVwidG9wUG9zaXRpb25cIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgW2NsYXNzLm1vdmluZy1ncHNdPVwiISF0b3BQb3NpdGlvblwiXG4gICAgICAgIFtzdHlsZS50b3BdPVwidG9wUG9zaXRpb24gKyAnJSdcIlxuICAgID5cbiAgICAgICAgPHN2Zy1pY29uIGNsYXNzPVwiZC1mbGV4IHN2Zy1zaXplLTEwXCIgW3NyY109XCJncHNMb2NhdGlvbkljb25cIj48L3N2Zy1pY29uPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLXByb2dyZXNzLWJhci9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtcHJvZ3Jlc3MtYmFyL2NhLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxVQUFVO0FBQ1YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUvRSxhQUFhO0FBQ2IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLFlBQVk7QUFDWixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU1oRSxhQUFhO0FBQ2IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUQsUUFBUTtBQUNSLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVwRCxRQUFR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S0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBtb2R1bGVzXG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuaW1wb3J0IHsgTmdiTW9kdWxlLCBOZ2JQb3BvdmVyLCBOZ2JUb29sdGlwIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG4vLyBDb21wb25lbnRzXG5pbXBvcnQgeyBDYU1hcENvbXBvbmVudCB9IGZyb20gJy4uL2NhLW1hcC9jYS1tYXAuY29tcG9uZW50JztcbmltcG9ydCB7IENhQXBwVG9vbHRpcFYyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtYXBwLXRvb2x0aXAtdjIvY2EtYXBwLXRvb2x0aXAtdjIuY29tcG9uZW50JztcblxuLy8gQ29uc3RhbnRzXG5pbXBvcnQgeyBQcm9ncmVzc0JhckNvbnN0YW50cyB9IGZyb20gJy4vdXRpbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IE1hcE9wdGlvbnNDb25zdGFudHMgfSBmcm9tICcuLi9jYS1tYXAvdXRpbHMvY29uc3RhbnRzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBJR3BzUHJvZ3Jlc3MgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBJQ2FNYXBQcm9wcywgSU1hcE1hcmtlcnMsIElNYXBSb3V0ZVBhdGggfSBmcm9tICcuLi9jYS1tYXAvbW9kZWxzJztcblxuLy8gc3ZnLXJvdXRlc1xuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJTdmdSb3V0ZXMgfSBmcm9tICcuL3V0aWxzL3N2Zy1yb3V0ZXMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHsgVGhvdXNhbmRTZXBhcmF0b3JQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdGhvdXNhbmQtc2VwYXJhdG9yLnBpcGUnO1xuaW1wb3J0IHsgQ29udmVydE1pbnV0ZXNUb0hvdXJzUGlwZSB9IGZyb20gJy4vcGlwZXMnO1xuXG4vLyBFbnVtc1xuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJTdHJpbmdFbnVtIH0gZnJvbSAnLi9lbnVtcyc7XG5cbi8vIFNlcnZpY2VzXG5pbXBvcnQgeyBNYXBNYXJrZXJJY29uU2VydmljZSB9IGZyb20gJy4uL2NhLW1hcC91dGlscy9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWNhLXByb2dyZXNzLWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2EtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vIE1vZHVsZXNcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgTmdiTW9kdWxlLFxuICAgICAgICBOZ2JUb29sdGlwLFxuICAgICAgICAvLyBDb21wb25lbnRzXG4gICAgICAgIENhTWFwQ29tcG9uZW50LFxuICAgICAgICBDYUFwcFRvb2x0aXBWMkNvbXBvbmVudCxcbiAgICAgICAgLy8gUGlwZXNcbiAgICAgICAgVGhvdXNhbmRTZXBhcmF0b3JQaXBlLFxuICAgICAgICBDb252ZXJ0TWludXRlc1RvSG91cnNQaXBlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBzZXQgZ3BzUHJvZ3Jlc3ModmFsdWVzOiBJR3BzUHJvZ3Jlc3NbXSkge1xuICAgICAgICB0aGlzLnNldEdwc1Byb2dyZXNzKHZhbHVlcyk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGN1cnJlbnRTdG9wITogSUdwc1Byb2dyZXNzO1xuICAgIEBJbnB1dCgpIGN1cnJlbnRQb3NpdGlvbiE6IG51bWJlcjtcbiAgICBASW5wdXQoKSB0b3RhbE1pbGVzITogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1pbGVhZ2VJbmZvITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGdwc1RpdGxlOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBncHNJY29uITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGdwc0luZm8hOiB7XG4gICAgICAgIGdwc2hlYWRpbmc6IHN0cmluZztcbiAgICAgICAgZ3BzVGltZTogc3RyaW5nO1xuICAgICAgICBncHNoZWFkaW5nQ29sb3I/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBASW5wdXQoKSBtaWxlYWdlc1BlcmNlbnQhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZ3BzTG9jYXRpb25JY29uITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRpc3BhdGNoU3RhdHVzITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGlzRHJvcGRvd246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBvbk9wZW5NYXAgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgX2dwc1Byb2dyZXNzOiBJR3BzUHJvZ3Jlc3NbXSA9IFtdO1xuXG4gICAgcHVibGljIGdwc0ljb25Ub3BQb3NpdGlvbjogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBob3ZlcmVkR3BzSWNvbjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBob3ZlcmVkR3BzVGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBob3ZlcmVkTWlsZWFnZUluZm86IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIHN0YXRpY0NvbnN0YW50ID0gUHJvZ3Jlc3NCYXJDb25zdGFudHM7XG4gICAgcHVibGljIHByb2dyZXNzQmFyU3ZnUm91dGVzID0gUHJvZ3Jlc3NCYXJTdmdSb3V0ZXM7XG5cbiAgICBwdWJsaWMgbWFwRGF0YTogSUNhTWFwUHJvcHMgPSB7XG4gICAgICAgIG1hcmtlcnM6IFtdLFxuICAgICAgICBjbHVzdGVyTWFya2VyczogW10sXG4gICAgICAgIHJvdXRpbmdNYXJrZXJzOiBbXSxcbiAgICAgICAgcm91dGVQYXRoczogW10sXG4gICAgICAgIGRhcmtNb2RlOiB0cnVlLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hcmtlckljb25TZXJ2aWNlOiBNYXBNYXJrZXJJY29uU2VydmljZSkge31cblxuICAgIHB1YmxpYyBob3ZlclN0b3Aoc3RvcDogSUdwc1Byb2dyZXNzLCBpOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3ZlcmVkR3BzVGl0bGUgPSBzdG9wPy5pc0F0U3RvcFxuICAgICAgICAgICAgPyBQcm9ncmVzc0JhclN0cmluZ0VudW0uQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgICAgICAgOiBzdG9wPy5oZWFkaW5nIHx8IG51bGw7XG4gICAgICAgIHRoaXMuaG92ZXJlZE1pbGVhZ2VJbmZvID0gIXN0b3A/LmlzQXRTdG9wID8gc3RvcD8ubWlsZWFnZSA6ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBsZWF2ZVN0b3AoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG92ZXJlZEdwc1RpdGxlID0gbnVsbDtcbiAgICAgICAgdGhpcy5ob3ZlcmVkTWlsZWFnZUluZm8gPSBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93RHJvcGRvd25NYXAodDI6IE5nYlBvcG92ZXIpOiB2b2lkIHtcbiAgICAgICAgdDIub3BlbigpO1xuXG4gICAgICAgIHRoaXMub25PcGVuTWFwLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEdwc1Byb2dyZXNzKGdwc1Byb2dyZXNzRGF0YTogSUdwc1Byb2dyZXNzW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ3BzUHJvZ3Jlc3MgPSBncHNQcm9ncmVzc0RhdGE7XG5cbiAgICAgICAgdGhpcy5zZXRNYXBNYXJrZXJzKCk7XG5cbiAgICAgICAgdGhpcy5jYWxjdWxhdGVHcHNJY29uUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE1hcE1hcmtlcnMoKTogdm9pZCB7XG4gICAgICAgIGxldCByb3V0ZU1hcmtlcnM6IElNYXBNYXJrZXJzW10gPSBbXTtcbiAgICAgICAgbGV0IHJvdXRlUGF0aHM6IElNYXBSb3V0ZVBhdGhbXSA9IFtdO1xuXG4gICAgICAgIHRoaXMuX2dwc1Byb2dyZXNzLmZvckVhY2goKGxvYWRTdG9wLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyRGF0YSA9IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogeyBsYXQ6IGxvYWRTdG9wLmxhdGl0dWRlLCBsbmc6IGxvYWRTdG9wLmxvbmdpdHVkZSB9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3Qgcm91dGVNYXJrZXI6IElNYXBNYXJrZXJzID0ge1xuICAgICAgICAgICAgICAgIC4uLm1hcmtlckRhdGEsXG4gICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5tYXJrZXJJY29uU2VydmljZS5nZXRSb3V0aW5nTWFya2VySWNvbihcbiAgICAgICAgICAgICAgICAgICAgbWFya2VyRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgbG9hZFN0b3Auc3RvcE51bWJlciA/PyAwLFxuICAgICAgICAgICAgICAgICAgICBsb2FkU3RvcC50eXBlLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRQb3NpdGlvbiA+PSBsb2FkU3RvcC5wb3NpdGlvblxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByb3V0ZU1hcmtlcnMgPSBbLi4ucm91dGVNYXJrZXJzLCByb3V0ZU1hcmtlcl07XG5cbiAgICAgICAgICAgIGlmIChsb2FkU3RvcC5yb3V0ZVNoYXBlKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVQYXRoOiBJTWFwUm91dGVQYXRoID0ge1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgZGVjb2RlZFNoYXBlOiBsb2FkU3RvcC5yb3V0ZVNoYXBlLFxuICAgICAgICAgICAgICAgICAgICBzdHJva2VDb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfUEFUSF9DT0xPUlNbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRMb2NhdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19QQVRIX0NPTE9SU1tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZVdlaWdodDogNCxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcm91dGVQYXRocyA9IFsuLi5yb3V0ZVBhdGhzLCByb3V0ZVBhdGhdO1xuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlUGF0aHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5yb3V0ZVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VDb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfUEFUSF9DT0xPUlNbJ2RlYWRoZWFkJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VPcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2VpZ2h0OiAyLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubWFwRGF0YSA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMubWFwRGF0YSxcbiAgICAgICAgICAgIGlzWm9vbVNob3duOiB0cnVlLFxuICAgICAgICAgICAgaXNWZXJ0aWNhbFpvb206IHRydWUsXG4gICAgICAgICAgICByb3V0aW5nTWFya2Vyczogcm91dGVNYXJrZXJzLFxuICAgICAgICAgICAgcm91dGVQYXRoczogcm91dGVQYXRocyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUdwc0ljb25Qb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgbGV0IHRvcFBvc2l0aW9uID0gMDtcbiAgICAgICAgbGV0IGN1cnJlbnRTdG9wUGVyY2VudGFnZSA9IG51bGw7XG4gICAgICAgIGNvbnN0IHN0b3BQZXJjZW50YWdlID0gMTAwIC8gKHRoaXMuX2dwc1Byb2dyZXNzLmxlbmd0aCAtIDEpO1xuXG4gICAgICAgIHRoaXMuX2dwc1Byb2dyZXNzLmZvckVhY2goKHN0b3AsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0F0RGVhZGhlYWQgPSBzdG9wLmlzQXRTdG9wICYmICFpbmRleDtcblxuICAgICAgICAgICAgaWYgKHN0b3AuaXNWaXNpdGVkICYmICFpc0F0RGVhZGhlYWQpXG4gICAgICAgICAgICAgICAgdG9wUG9zaXRpb24gKz0gaW5kZXggPyBzdG9wUGVyY2VudGFnZSA6IHN0b3BQZXJjZW50YWdlIC8gMjtcblxuICAgICAgICAgICAgaWYgKHN0b3AuaXNBdFN0b3ApIGN1cnJlbnRTdG9wUGVyY2VudGFnZSA9IHN0b3BQZXJjZW50YWdlICogaW5kZXg7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZ3BzSWNvblRvcFBvc2l0aW9uID0gY3VycmVudFN0b3BQZXJjZW50YWdlID8/IHRvcFBvc2l0aW9uO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJncHMtcHJvZ3Jlc3MtYmFyXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdwcy1wcm9ncmVzcy1ob2xkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICN0Mj1cIm5nYlBvcG92ZXJcIlxuICAgICAgICBbbmdiUG9wb3Zlcl09XCJncHNEcm9wZG93blBvcG92ZXJcIlxuICAgICAgICBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXG4gICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICBbcGxhY2VtZW50XT1cIidib3R0b20tcmlnaHQnXCJcbiAgICAgICAgcG9wb3ZlckNsYXNzPVwiZ3BzX2Ryb3Bkb3duX3BvcG92ZXJcIlxuICAgICAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiXG4gICAgICAgIChjbGljayk9XCJzaG93RHJvcGRvd25NYXAodDIpXCJcbiAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJlZEdwc0ljb24gPSB0cnVlXCJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImhvdmVyZWRHcHNJY29uID0gZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3ZnLWljb24gY2xhc3M9XCJzdmctc2l6ZS0yMlwiIFtzcmNdPVwiZ3BzSWNvblwiPjwvc3ZnLWljb24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAoIWhvdmVyZWRHcHNJY29uKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzLXByb2dyZXNzLXRleHQgZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbGVhZ2UtZ3BzIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItc2VsZWN0LW5vbmUgdGV4dC1zaXplLTExIHRleHQtY29sb3ItYmxhY2stMiBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBob3ZlcmVkR3BzVGl0bGUgPz8gZ3BzVGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1zZWxlY3Qtbm9uZSB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci1ibGFjay0yIGNhLWZvbnQtcmVndWxhclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGhvdmVyZWRNaWxlYWdlSW5mbyA/PyBtaWxlYWdlSW5mbyB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlsZWFnZS1ncHMgZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHMtdGltZWxpbmUgZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncHMtdGltZWxpbmUtYWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBjdXJyZW50UG9zaXRpb24gKyAnJScgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHN0b3Agb2YgX2dwc1Byb2dyZXNzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncHMtc3RvcCBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cImhvdmVyU3RvcChzdG9wLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImxlYXZlU3RvcCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BpY2t1cC1zdG9wJzogc3RvcC50eXBlID09PSAncGlja3VwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxpdmVyeS1zdG9wJzogc3RvcC50eXBlID09PSAnZGVsaXZlcnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Zpc2l0ZWQtc3RvcCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uID49IHN0b3AucG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGxlZnQ6IHN0b3AucG9zaXRpb24gKyAnJScgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBCYWNrZ3JvdW5kXT1cIicjNDI0MjQyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYWluQ2FUb29sdGlwXT1cInN0b3A/LmxvY2F0aW9uID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VycmVudC1wb3MgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cImhvdmVyU3RvcChjdXJyZW50U3RvcCwgLTIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJsZWF2ZVN0b3AoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBsZWZ0OiBjdXJyZW50UG9zaXRpb24gKyAnJScgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiVG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwQmFja2dyb3VuZF09XCInIzQyNDI0MidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYWluQ2FUb29sdGlwXT1cImN1cnJlbnRTdG9wPy5sb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVUb29sdGlwXT1cIiFjdXJyZW50U3RvcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1zaXplLTEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJncHNMb2NhdGlvbkljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1zZWxlY3Qtbm9uZSB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci1ibGFjay0yIGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1pbGVhZ2VzUGVyY2VudCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIGlmIChncHNJbmZvKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJncHNfaW5mb19ob2xkIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LTEganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vdmluZ19zaWRlIHRleHQtc2l6ZS0xMSBjYS1mb250LWJvbGQgdXNlci1zZWxlY3Qtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGdwc0luZm8uZ3BzaGVhZGluZ0NvbG9yIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZ3BzSW5mby5ncHNoZWFkaW5nIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW92aW5nX3RpbWUgdGV4dC1zaXplLTExIHRleHQtY29sb3ItYmxhY2stMiBjYS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBncHNJbmZvLmdwc1RpbWUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2dwc0Ryb3Bkb3duUG9wb3ZlciBsZXQtZGF0YT1cImRhdGFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5fZHJvcGRvd25faG9sZGVyIGQtZmxleFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPlxuICAgICAgICAgICAgICAgIDxhcHAtY2EtbWFwIFtkYXRhXT1cIm1hcERhdGFcIj48L2FwcC1jYS1tYXA+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19hbGxfaG9sZFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncHNfaGVhZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlcmVkR3BzSWNvbiA9IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJob3ZlcmVkR3BzSWNvbiA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctc2l6ZS0yMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJncHNJY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdwc19pbmZvX2hvbGQgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb3Zpbmdfc2lkZSB0ZXh0LXNpemUtMTEgY2EtZm9udC1ib2xkIHVzZXItc2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGdwc0luZm8uZ3BzaGVhZGluZ0NvbG9yIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdwc0luZm8uZ3BzaGVhZGluZyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19pbmZvX2JvcmRlclwiPjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19wcm9ncmVzc19ob2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzX3Byb2dyZXNzX2hvbGRfaW5uZXIgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX2xpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfaW5uZXJfbGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogZ3BzSWNvblRvcFBvc2l0aW9uICsgJyUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFjdXJyZW50U3RvcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwc0xvY2F0aW9uSWNvblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wUG9zaXRpb246IGdwc0ljb25Ub3BQb3NpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3Agb2YgX2dwc1Byb2dyZXNzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdG9wSW5kZXggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgc3RvcEluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NfaW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX2hlYWRlciBkLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX2hlYWRlcl9pbnNpZGUgZC1mbGV4IGZsZXgtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX2ljb24gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIXN0b3AuaXNBdFN0b3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uID49XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC5wb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLXNpemUtMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AudHlwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwaWNrdXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3ZnLWZpbGwtZ3JlZW4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdG9wLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxpdmVyeSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N2Zy1maWxsLXJlZC0xMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3N2Zy1maWxsLWdyZXknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzc0JhclN2Z1JvdXRlcy5jaGVja1JvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3Mtc3RvcC1udW1iZXIgdGV4dC1zaXplLTE0IHRleHQtY2VudGVyIHVzZXItc2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AudHlwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwaWNrdXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAndGV4dC1jb2xvci1ncmVlbi00J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RleHQtY29sb3ItcmVkLTEzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcC5zdG9wTnVtYmVyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwc0xvY2F0aW9uSWNvblRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX2luZm9faG9sZCBkLWZsZXggZmxleC1jb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc19uYW1lIHRleHQtc2l6ZS0xMSBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC5pc0F0U3RvcCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AucG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzdG9wLnR5cGUgPT09ICdwaWNrdXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICd0ZXh0LWNvbG9yLWdyZWVuLTQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICd0ZXh0LWNvbG9yLXJlZC0xMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAndGV4dC1jb2xvci1ncmV5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcD8ubG9jYXRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghc3RvcC5pc0F0U3RvcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdG9wLmRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfdGltZSB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci13aGl0ZS0yIGNhLWZvbnQtcmVndWxhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0LWNvbG9yLWdyZXknOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA+PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLnBvc2l0aW9uICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXN0b3AuaXNBdFN0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcC5kYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3RvcC50aW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX3RpbWUgdGV4dC1zaXplLTExIHRleHQtY29sb3Itd2hpdGUtMiBjYS1mb250LXJlZ3VsYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dC1jb2xvci1ncmV5JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gPj1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC5wb3NpdGlvbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzdG9wLmlzQXRTdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b3AudGltZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX3RpbWUgdGV4dC1zaXplLTExIHRleHQtY29sb3Itd2hpdGUtMiBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpc3BhdGNoU3RhdHVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdG9wLmN1cnJlbnRXYWl0VGltZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc190aW1lIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AuY3VycmVudFdhaXRUaW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjb252ZXJ0TWludXRlc1RvSG91cnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWxlZy1taWxlcy10ZXh0IHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0LWNvbG9yLWdyZXknOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uID49XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC5wb3NpdGlvbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXN0b3AuaXNBdFN0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjYS1mb250LWJvbGQnOiBzdG9wSW5kZXggPT09IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcEluZGV4ID09PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdMRUcgbWknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHN0b3A/LmxlZ01pbGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJysnICsgc3RvcC5sZWdNaWxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcrJyArIDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfaW5mb19ib3JkZXJcIj48L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfY29tcGxldGVfaG9sZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2NvbXBsZXRlX3JvdyBkLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgdGV4dC1zaXplLTExIHRleHQtY29sb3Itd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdGF0aWNDb25zdGFudC5jb21wbGV0ZWQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zaXplLTExIHRleHQtY29sb3Itd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdGF0aWNDb25zdGFudC50b3RhbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfY29tcGxldGVfc2Vjb25kX3JvdyBkLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtMSB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci1ibHVlLTE5IGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY3VycmVudFBvc2l0aW9uIH19e3sgc3RhdGljQ29uc3RhbnQucGVyY2VudGFnZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci13aGl0ZSBjYS1mb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0b3RhbE1pbGVzIHwgdGhvdXNhbmRTZXBhcmF0b3IgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdGF0aWNDb25zdGFudC5taWxlcyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNncHNMb2NhdGlvbkljb25UZW1wbGF0ZSBsZXQtdG9wUG9zaXRpb249XCJ0b3BQb3NpdGlvblwiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICBbY2xhc3MubW92aW5nLWdwc109XCIhIXRvcFBvc2l0aW9uXCJcbiAgICAgICAgW3N0eWxlLnRvcF09XCJ0b3BQb3NpdGlvbiArICclJ1wiXG4gICAgPlxuICAgICAgICA8c3ZnLWljb24gY2xhc3M9XCJkLWZsZXggc3ZnLXNpemUtMTBcIiBbc3JjXT1cImdwc0xvY2F0aW9uSWNvblwiPjwvc3ZnLWljb24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|