tnx-shared 5.1.458 → 5.1.459
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.
|
@@ -1313,4 +1313,4 @@ export var EventType;
|
|
|
1313
1313
|
EventType["ROW_FINISH_INIT"] = "rowFinishInit";
|
|
1314
1314
|
EventType["TABLE_FINISH_INIT"] = "tableFinishInit";
|
|
1315
1315
|
})(EventType || (EventType = {}));
|
|
1316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY2xhc3Nlcy9mb3JtLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFpQmhGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsOEJBQThCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2pILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWSxFQUFFLEtBQWE7SUFDbkQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7UUFDcEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMxQjtBQUNMLENBQUM7QUFFRCxNQUFNLE9BQU8sV0FBVztJQU9wQixZQUFZLElBQWtCO1FBRjlCLGFBQVEsR0FBaUYsUUFBUSxDQUFDO1FBRzlGLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sUUFBUTtJQUlqQixZQUFZLElBQWU7UUFIM0Isb0dBQW9HO1FBQ3BHLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUcvQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGVBQWU7SUFnSHhCLFlBQVksSUFBc0I7UUE1R2xDLGVBQVUsR0FBRyxFQUFFLENBQUM7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LFNBd0JYO0FBeEJELFdBQVksU0FBUztJQUNqQiw4QkFBaUIsQ0FBQTtJQUNqQix5Q0FBNEIsQ0FBQTtJQUM1QiwyQ0FBOEIsQ0FBQTtJQUM5QixxQ0FBd0IsQ0FBQTtJQUN4Qiw0QkFBZSxDQUFBO0lBQ2YsMEJBQWEsQ0FBQTtJQUNiLHVDQUEwQixDQUFBO0lBQzFCLDBCQUFhLENBQUE7SUFDYiw0QkFBZSxDQUFBO0lBQ2YsbURBQXNDLENBQUE7SUFDdEMsNEJBQWUsQ0FBQTtJQUNmLHlDQUE0QixDQUFBO0lBQzVCLGtDQUFxQixDQUFBO0lBQ3JCLDBCQUFhLENBQUE7SUFDYiw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0lBQ2Ysa0NBQXFCLENBQUE7SUFDckIsZ0NBQW1CLENBQUE7SUFDbkIsMkNBQThCLENBQUE7SUFDOUIsMEJBQWEsQ0FBQTtJQUNiLGdDQUFtQixDQUFBO0lBQ25CLDhDQUFpQyxDQUFBO0lBQ2pDLGtEQUFxQyxDQUFBO0FBQ3pDLENBQUMsRUF4QlcsU0FBUyxLQUFULFNBQVMsUUF3QnBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9hcGknO1xuXG5pbXBvcnQgeyBBdXRvQ29tcGxldGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1waWNrZXIvYXV0b2NvbXBsZXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW51bUxvYWlWYW5CYW5CYXNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb25ndmllYy1waWNrZXIvbW9kZWxzL2VudW1zJztcbmltcG9ydCB7IENydWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jcnVkL2NydWQtbGlzdC9jcnVkLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudFxufSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLWRhdGEvZW50aXR5LXBpY2tlci1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50XG59IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItc2VsZWN0ZWQvZW50aXR5LXBpY2tlci1zZWxlY3RlZC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBFbnRpdHlQaWNrZXJUcmVlRGF0YUNvbXBvbmVudFxufSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLXRyZWUtZGF0YS9lbnRpdHktcGlja2VyLXRyZWUtZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBFbnRpdHlQaWNrZXJUcmVlU2VsZWN0ZWRDb21wb25lbnRcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci10cmVlLXNlbGVjdGVkL2VudGl0eS1waWNrZXItdHJlZS1zZWxlY3RlZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW50aXR5UGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVNYW5hZ2VyU2V0dGluZywgRmlsZVVwbG9hZFNldHRpbmcgfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvbW9kZWxzL2ZpbGUtc2V0dGluZ3MnO1xuaW1wb3J0IHsgRmlsZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVUeXBlRmxhZyB9IGZyb20gJy4uL21vZGVscy9maWxlLXR5cGUnO1xuaW1wb3J0IHsgRmlsdGVyLCBTb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XG5pbXBvcnQgeyBLZXlWYWx1ZVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LW1ldGFkYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFzdGVyRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYXN0ZXItZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xUcmVlTm9kZSwgQ3J1ZEZvcm1Db21wb25lbnQgfSBmcm9tICcuLy4uL2NvbXBvbmVudHMvY3J1ZC9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ29ycmVjdG9yIH0gZnJvbSAnLi9iYXNlL2NvcnJlY3RvcnMnO1xuaW1wb3J0IHsgSVZhbGlkYXRvciB9IGZyb20gJy4vYmFzZS92YWxpZGF0b3JzJztcbmltcG9ydCB7IEVudW1Db250cm9sUGlja2VyVHlwZSwgRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5LCBGb3JtU3RhdGUsIFNoYXJlZEZvbGRlclR5cGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBXb3JrZmxvd1NldHRpbmcsIFdvcmtmbG93U2V0dGluZ05ldyB9IGZyb20gJy4vd29ya2Zsb3ctc2NoZW1hJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFByb3BlcnR5KGluaXQ6IG9iamVjdCwgdG9NYXA6IG9iamVjdCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgdG9NYXBba2V5XSA9IGluaXRba2V5XTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RlbFNjaGVtYSB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZnVsbE5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGRhdGFUeXBlPzogJ2ludCcgfCAnZGVjaW1hbCcgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ3N0cmluZycgfCAnYm9vbGVhbicgfCAndGltZXNwYW4nID0gJ3N0cmluZyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTW9kZWxTY2hlbWEpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZEJhc2Uge1xuICAgIC8vIENvbXBvbmVudCBzdWJzY3JpYmUgLSBLaGkgc3ViY3JpYmUgbeG7mXQgY29tcG9uZW50IHRow6wgYWRkIHbDoG8gYXJyYXkgxJHhu4Mga2hpIGRlc3Ryb3kgdGjDrCB1bnN1YnNjcmliZVxuICAgIGNvbXBvbmVudFN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZEJhc2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RTZXR0aW5nIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHRhcmdldFBhdGg/OiBzdHJpbmc7XG4gICAgb2JqZWN0TmFtZSA9ICcnO1xuICAgIGVudGl0eUtleSA9ICdpZCc7XG4gICAgc2V0dGluZ0tleT86IHN0cmluZztcbiAgICBlbnRpdHlNZXRhZGF0YVNlcnZpY2U/OiBFbnRpdHlNZXRhZGF0YVNlcnZpY2U7XG4gICAgbW9kZWxTY2hlbWFzPzogTW9kZWxTY2hlbWFbXSA9IFtdO1xuICAgIGNvbHM/OiBDb2x1bW5TY2hlbWFCYXNlW10gPSBbXTtcbiAgICBjb21tb25TY2hlbWFzPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICBjb2x1bW5TZXR0aW5nPzogQ29sdW1uU2V0dGluZyA9IG5ldyBDb2x1bW5TZXR0aW5nKCk7XG4gICAgcGFnZVNldHRpbmc/OiBQYWdlU2V0dGluZyA9IG5ldyBQYWdlU2V0dGluZygpO1xuICAgIGhlaWdodFR5cGU/OiBIZWlnaHRUeXBlID0gSGVpZ2h0VHlwZS5kZWZhdWx0OyAvLyBDw7MgY3VzdG9tIGNoaeG7gXUgY2FvIGtow7RuZzogVGjGsOG7nW5nIHPhu60gZOG7pW5nIHRyb25nIGRpYWxvZ1xuICAgIGZpeEhlaWdodFR5cGVJbkRpYWxvZz89IHRydWU7XG4gICAgbXVsdGlwbGVDaGVja1doZW5DbGlja1JvdyA9IHRydWU7XG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xuICAgIHN0aWNreUNvbHVtbiA9IGZhbHNlO1xuICAgIHRhYmxlTmFtZT86IHN0cmluZztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xuICAgIHJlU2VsZWN0TGFzdEl0ZW0/PSB0cnVlOyAvLyBTZWxlY3QgbOG6oWkgaXRlbSBjdeG7kWkgY8O5bmcgxJHDoyBjaOG7jW4gY+G7p2EgZ3JpZFxuICAgIGZpcmVFdmVudFdoZW5SZVNlbGVjdD89IGZhbHNlO1xuICAgIGFkdmFuY2VEYXRhPzogYW55ID0ge307XG4gICAgZmllbGROZWVkR2V0UmVmPzogUmVmRmllbGRbXSA9IFtdO1xuICAgIHdvcmtmbG93U2V0dGluZz86IFdvcmtmbG93U2V0dGluZztcbiAgICB3b3JrZmxvd1NldHRpbmdOZXc/OiBXb3JrZmxvd1NldHRpbmdOZXc7XG4gICAgaXNXb3JrZmxvd1RyZWU/OiBib29sZWFuID0gZmFsc2U7XG4gICAgd29ya2Zsb3dDb25maWdBZHZhbmNlPzogV29ya2Zsb3dDb25maWdBZHZhbmNlO1xuICAgIGlnbm9yZVdvcmtmbG93PzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlGaWVsZDogc3RyaW5nIHwgKChpdGVtKSA9PiBzdHJpbmcpOyAvLyB0csaw4budbmcgxJHhuqFpIGRp4buHbiBjaG8gYuG6o24gZ2hpIGzDoG0gdGnDqnUgxJHhu4EgaGnhu4NuIHRo4buLIChwaOG7pWMgduG7pSBjaG8gY8OhYyBk4buLY2ggduG7pSBraMOhYyBraGFpIHRow6FjKVxuICAgIGdldERpc3BsYXlOYW1lSW5TZXJ2ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBoYXNDdXN0b21IYW5kbGVDbGlja1JvdyA9IGZhbHNlO1xuICAgIGNoZWNrQWxsb3dUcmluaEt5OiAocm93RGF0YSkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgICBjaGVja0FsbG93U2VsZWN0Um93OiAocm93RGF0YSwgZXZ0PykgPT4gYm9vbGVhbjtcbiAgICBnZXRJdGVtU3RhdGU6IChsc3RSb3dEYXRhOiBhbnlbXSkgPT4geyBba2V5OiBzdHJpbmddOiBhbnk7IH07XG4gICAgZ2V0RGF0YUZvck5leHRGaXJzdFN0ZXBUYXNrPzogKHJvd0RhdGEpID0+ICh7fSk7XG4gICAgY2hlY2tQZXJtaXNpb25UcmluaEt5ID0gZmFsc2U7XG4gICAgdXNlV29ya2Zsb3dCdXR0b24/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBzaG93RWRpdExpbmsgPSB0cnVlO1xuICAgIG1kV2lkdGhDb21tb25TZWFyY2ggPSAzO1xuICAgIHVzZUNvbW1vblNlYXJjaCA9IGZhbHNlO1xuICAgIHVzZUNvbW1vbkZ1bGxUZXh0U2VhcmNoID0gdHJ1ZTtcblxuICAgIGhpZGRlbkhlYWRlciA9IGZhbHNlO1xuICAgIGhpZGRlblBhZ2VTZXR0aW5nID0gZmFsc2U7XG4gICAgaGlkZGVuVGV4dFBhZ2UgPSBmYWxzZTtcbiAgICBoaWRkZW5Ub29sYmFyID0gZmFsc2U7XG4gICAgaGlkZGVuQnV0dG9ucyA9IGZhbHNlO1xuICAgIGhpZGRlbkFkdmFuY2VTZWFyY2ggPSBmYWxzZTtcbiAgICBoaWRkZW5TYXZlU2V0dGluZyA9IGZhbHNlO1xuICAgIGhpZGRlblNldHRpbmcgPSBmYWxzZTtcbiAgICBoaWRkZW5TZXR0aW5nUGVybWlzc2lvbiA9IGZhbHNlO1xuICAgIGhpZGRlblNldHRpbmdXb3JrZmxvdyA9IGZhbHNlO1xuICAgIGhpZGRlblBhZ2VUaXRsZSA9IGZhbHNlO1xuXG4gICAgaGlkZGVuQ2hlY2tib3ggPSBmYWxzZTtcbiAgICBoaWRkZW5PcmRlckNvbHVtbiA9IGZhbHNlO1xuICAgIGhpZGRlbldvcmtmbG93Q29sdW1uID0gZmFsc2U7XG4gICAgYWxsb3dGaWx0ZXJXb3JrZmxvd0NvbHVtbiA9IGZhbHNlO1xuICAgIGhpZGRlbkZ1bmN0aW9uQ29sdW1uID0gZmFsc2U7XG4gICAgaGlkZGVuUmVmcmVzaCA9IGZhbHNlO1xuICAgIGhpZGRlbkZpbHRlclJvdyA9IGZhbHNlO1xuICAgIGhpZGRlblRyaW5oS3kgPSB0cnVlO1xuICAgIHVzZUJhc2VUcmluaEt5ID0gdHJ1ZTtcbiAgICBkaXNhYmxlU2hhcmUgPSBmYWxzZTtcbiAgICBkaXNhYmxlVmlld1dvcmtmbG93QXR0YWNoID0gZmFsc2U7XG4gICAgaGlkZGVuV29ya2Zsb3dDb3JlU3RhdHVzID0gdHJ1ZTtcbiAgICByZXF1aXJlZFZhbkJhbkRpQWZ0ZXJUcmluaEt5ID0gZmFsc2U7XG5cbiAgICBncm91cENvbHVtbj86IENvbHVtblNjaGVtYUJhc2U7XG5cbiAgICBzaG93RXhwb3J0QWxsID0gZmFsc2U7XG4gICAgc2hvd0V4cG9ydFNlbGVjdGVkSXRlbXMgPSB0cnVlO1xuICAgIHNob3dFeHBvcnRXb3JkU2VsZWN0ZWRJdGVtcyA9IGZhbHNlO1xuICAgIGV4cG9ydEFsbE1vZGVsOiBFeHBvcnRBbGxNb2RlID0gRXhwb3J0QWxsTW9kZS5BdXRvR2V0RGF0YTtcbiAgICBleHBvcnRJdGVtc01vZGU6IEV4cG9ydEl0ZW1zTW9kZSA9IEV4cG9ydEl0ZW1zTW9kZS5Gcm9tSHRtbDtcblxuICAgIGVuYWJsZVZlcnNpb24gPSBmYWxzZTtcbiAgICBzaG93VmVyc2lvbkJ1dHRvbiA9IGZhbHNlO1xuICAgIHZlcnNpb25Nb2RlbD86IHsgW2tleTogc3RyaW5nXTogYW55OyB9ID0ge307XG4gICAgc2hvd0hpc3RvcnkgPSBmYWxzZTtcbiAgICBoaXN0b3J5PzogYW55O1xuXG4gICAgY29sb3JGaWx0ZXJGaWVsZCA9ICcnO1xuICAgIGNvbG9yRmlsdGVyVGFibGU/OiBSb3dDb2xvck9wdGlvbltdID0gW107XG5cbiAgICBlbnRpdHlNZXRhZGF0YVNldHRpbmc/OiBDcnVkRm9ybVNldHRpbmcgPSBuZXcgQ3J1ZEZvcm1TZXR0aW5nKCk7XG5cbiAgICBmaWVsZFNlYXJjaFRleHQ/OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZpbHRlclRlbXBsYXRlQWR2cz86IEZpbHRlcltdO1xuXG4gICAgZnVuY3Rpb246IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24gPSBuZXcgQ3J1ZExpc3RDdXN0b21GdW5jdGlvbigpO1xuXG4gICAgcG9wdXBIZWFkZXI/PSAnJztcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKCk7XG4gICAgbWFza0NsYXNzPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQXV0byBnZW5lcmF0ZSBncmlkSW5mby5maWVsZHMgdXNpbmcgc2V0dGluZy5jb2xzICsgZGF0YUxpc3QuYWRkdGlvbmFsRmllbGRzXG4gICAgICogQGRhdGUgMTEvNC8yMDIyIC0gMjowNDozMSBQTVxuICAgICAqXG4gICAgICogQHR5cGUgez9ib29sZWFufVxuICAgICAqL1xuICAgIGF1dG9HZW5lcmF0ZVNlbGVjdEZpZWxkcz89IGZhbHNlO1xuXG4gICAgbW9kaWZ5Um93RGF0YUZvclRhc2s6IChyb3dEYXRhKSA9PiB2b2lkID0gKHJvd0RhdGEpID0+ICh7fSk7XG4gICAgbW9kaWZ5SXRlbVRhc2s6IChtb2RlbFRhc2ssIHJvd0RhdGEpID0+IHZvaWQgPSAobW9kZWxUYXNrLCByb3dEYXRhKSA9PiAoe30pO1xuICAgIGdldEN1c3RvbURhdGFUcmluaEt5OiAocm93RGF0YSkgPT4gYW55ID0gKHJvd0RhdGEpID0+ICh7fSk7XG4gICAgZ2V0TGFiZWxCdXR0b25UcmluaEt5OiAocm93RGF0YSkgPT4gc3RyaW5nID0gKHJvd0RhdGEpID0+ICdUcsOsbmgga8O9JztcbiAgICBjaGVja1JlYWR5VG9UcmluaEt5OiAoKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdFNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dDb25maWdBZHZhbmNlIHtcbiAgICBnZXRXb3JrZmxvd1NldHRpbmc6IChyb3dEYXRhKSA9PiBXb3JrZmxvd1NldHRpbmdOZXc7XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uIHtcbiAgICAvLyBDdXN0b21pemVcbiAgICBnZXRTZWFyY2hDb250cm9sPzogKGZpZWxkOiBzdHJpbmcpID0+IEZvcm1TY2hlbWFCYXNlW10gPSAoZmllbGQ6IHN0cmluZykgPT4gbnVsbDtcbiAgICAvLyBBc3luYyBmdW5jdGlvblxuICAgIG1vZGlmeUFkdmFuY2VTZWFjaE1vZGVsPzogKGRhdGE6IEFkdmFuY2VTZWFyY2hEYXRhLCBzZXR0aW5nOiBBZHZhbmNlU2VhcmNoU2V0dGluZykgPT4gUHJvbWlzZTx2b2lkPiA9IGFzeW5jIChkYXRhKSA9PiBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24pIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVyc29uYWxTZXR0aW5nIHtcbiAgICBjb2x1bW5TZXR0aW5nPzogQ29sdW1uU2V0dGluZyA9IG5ldyBDb2x1bW5TZXR0aW5nKCk7XG4gICAgcGFnZVNldHRpbmc/OiBQYWdlU2V0dGluZyA9IG5ldyBQYWdlU2V0dGluZygpO1xuICAgIGNvbG9yRmlsdGVyRmllbGQgPSAnJztcbiAgICBjb2xvckZpbHRlclRhYmxlPzogUm93Q29sb3JPcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBlcnNvbmFsU2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkTGlzdERhdGEgZXh0ZW5kcyBDcnVkQmFzZSB7XG4gICAgbG9hZGluZyA9IGZhbHNlO1xuICAgIGFkanVzdGVkUG9zaXRpb25Mb2FkaW5nID0gZmFsc2U7XG4gICAgcmVhZHkgPSB0cnVlO1xuICAgIC8vIGJhc2UgcmVhZHkgbMOgIGNo4bupYyBuxINuZyBraeG7g20gdHJhIHJlYWR5IGPhu6dhIHJpw6puZyB0cm9uZyBiYXNlLiBrIGdp4buRbmcgduG7m2kgcmVhZHkg4bufIHRyw6puXG4gICAgLy8gRMO5bmcgxJHhu4Mga2nhu4NtIHRyYSBu4bq/dSBjw7Mgd29ya2Zsb3cgdGjDrCB04bqhbSB0aOG7nWkgY2jGsGEgY2hvIOG6pW4gdGjDqm0gbeG7m2kgbuG6v3UgY2jGsGEgbG9hZCB4b25nIGThu68gbGnhu4d1IGPhuqduIHRoaeG6v3RcbiAgICBiYXNlUmVhZHkgPSBmYWxzZTtcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcbiAgICAvLyDEkOG7kWkgduG7m2kgbGlzdCBk4bqhbmcgdHJlZSB0aMOsIHJhdyBkYXRhc291cmNlIGzDoCBsaXN0IGRhdGEga2hpIGNoxrBhIHTDoWkgY+G6pXUgdHLDumMgdGjDoG5oIGThu68gbGnhu4d1IHRyZWVcbiAgICBhbGxEYXRhU291cmNlPzogeyByYXc6IGFueVtdLCBkYXRhOiBhbnlbXTsgfSA9IHsgcmF3OiBbXSwgZGF0YTogW10gfTtcbiAgICBzZWxlY3RlZEl0ZW1zPzogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZEl0ZW0/OiBhbnk7XG4gICAgc2VsZWN0ZWRJdGVtTGFzdD86IGFueTtcbiAgICBzZWxlY3RlZElkPzogbnVtYmVyO1xuICAgIHRvdGFsID0gMDtcbiAgICBpdGVtRGF0YT86IGFueTtcbiAgICBhZHZhbmNlRGF0YTogYW55ID0ge307XG5cbiAgICAvLyBDw6FjIHRodeG7mWMgdMOtbmggYuG7lSBzdW5nIGRvIGLhu4sgbOG7l2kga2hpIHBhY2thZ2VcbiAgICBzdWJtaXR0aW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgLy8gRW5kIEPDoWMgdGh14buZYyB0w61uaCBi4buVIHN1bmcgZG8gYuG7iyBs4buXaSBraGkgcGFja2FnZVxuXG4gICAgZXhwYW5kZWRSb3dLZXlzPzogeyBba2V5OiBzdHJpbmddOiBib29sZWFuOyB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3REYXRhKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVudGl0eU1lZGF0YURhdGFTZXR0aW5nIHtcbiAgICBkYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRW50aXR5TWVkYXRhRGF0YVNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm93Q29sb3JPcHRpb24ge1xuICAgIGZpbHRlclZhbHVlID0gJyc7XG4gICAgY29tcGFyZVR5cGUgPSAnJztcbiAgICBjb2xvciA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJvd0NvbG9yT3B0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBhZ2VTZXR0aW5nIHtcbiAgICBwYWdlID0gMTtcbiAgICBwYWdlU2l6ZSA9IDE1O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBhZ2VTZXR0aW5nKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtblNldHRpbmcge1xuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPzogc3RyaW5nO1xuICAgIHNvcnREaXI/OiAtMSB8IDAgfCAxIHwgMiA9IC0xO1xuICAgIGdyb3VwRmllbGQgPSAnJztcbiAgICBncm91cEluQ2xpZW50Pz0gZmFsc2U7XG4gICAgc2hvd0dyb3VwU2l6ZTogYm9vbGVhbiA9IHRydWU7XG4gICAgZGV0YWlscz86IENvbHVtblNldHRpbmdEZXRhaWxbXSA9IFtdO1xuICAgIGNvbHVtblJlb3JkZXI/O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29sdW1uU2V0dGluZ0RldGFpbCB7XG4gICAgb3JkZXI/OiBudW1iZXIgPSAxO1xuICAgIGNvbHVtbkNvZGU/OiBzdHJpbmc7XG4gICAgY29sdW1uTmFtZT86IHN0cmluZztcbiAgICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgICB0ZXh0QWxpZ24/OiBUZXh0QWxpZ247XG4gICAgd2lkdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkRm9ybURhdGEgZXh0ZW5kcyBDcnVkQmFzZSB7XG4gICAgZGF0YT86IGFueSA9IHt9O1xuICAgIHN1Ym1pdHRpbmc/PSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBUcuG6oW5nIHRow6FpIGPhu6dhIGZvcm0gxJFhbmcgxJHGsOG7o2MgbeG7nzogTMOgIGZvcm0gdGjDqm0gbeG7m2ksIGhheSBmb3JtIHPhu61hLCBoYXkgZm9ybSB4w7NhXG4gICAgICovXG4gICAgZm9ybVN0YXRlPzogRm9ybVN0YXRlID0gRm9ybVN0YXRlLkFERDtcbiAgICB3b3JrZmxvd0J1dHRvbnM/OiBhbnlbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkRm9ybURhdGEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiB7XG4gICAgLy8gQ3VzdG9taXplXG4gICAgbW9kaWZ5RGF0YUFmdGVyR2V0Q2FjaGU/OiAoZGF0YTogYW55KSA9PiB2b2lkID0gKGRhdGE6IGFueSkgPT4gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRGb3JtU2V0dGluZyB7XG4gICAgZGlzYWJsZUNhY2hpbmcgPSBmYWxzZTtcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcbiAgICBzY2hlbWE/OiBGb3JtU2NoZW1hQmFzZVtdID0gW107XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcbiAgICBidWlsZEluU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZ1tdIHwgc3RyaW5nW11bXSA9IFtdO1xuICAgIGZpZWxkRHJvcGRvd24/OiB7IFtrZXk6IHN0cmluZ106IERyb3Bkb3duQ29udHJvbFNjaGVtYTsgfSA9IHt9O1xuICAgIGZpZWxkTmVlZEdldFJlZj86IHsgW2tleTogc3RyaW5nXTogVGV4dENvbnRyb2xTY2hlbWE7IH0gPSB7fTtcbiAgICBkaXNwbGF5RmllbGQ/OiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7XG4gICAgZmlyc3RGb2N1c0NvbnRyb2w/OiBzdHJpbmc7XG4gICAgZmlsdGVyQ2hlY2tFeGlzdEJ5VmVyc2lvbj86IEZpbHRlcltdO1xuICAgIGRlZmF1bHRGaWx0ZXJDaGVja0V4aXN0PzogRmlsdGVyW10gfCAoKCkgPT4gRmlsdGVyW10pO1xuICAgIGN1c3RvbVdvcmtmbG93Q29kZVRyaW5oS3k6IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleSA9IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleS5NQUNfRElOSDtcbiAgICBlbnRpdHlNZXRhZGF0YURhdGE/OiBDcnVkRm9ybURhdGE7XG4gICAgZW50aXR5TWV0YWRhdGFTZXR0aW5nPzogQ3J1ZEZvcm1TZXR0aW5nO1xuICAgIGZ1bmN0aW9uPzogQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uKCk7XG4gICAgZ2V0Q3VzdG9tRGF0YVRyaW5oS3k6IChyb3dEYXRhKSA9PiBhbnkgPSAocm93RGF0YSkgPT4gKHt9KTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkRm9ybVNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaERhdGEgZXh0ZW5kcyBDcnVkRm9ybURhdGEge1xuICAgIGluaXREYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWR2YW5jZVNlYXJjaERhdGEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaFNldHRpbmcgZXh0ZW5kcyBDcnVkRm9ybVNldHRpbmcge1xuICAgIGZpZWxkS2V5ID0gJ19rJztcbiAgICBlbnRpdHlQZXJtaXNzaW9uU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICBrZWVwSW5pdFNlYXJjaERhdGFOb3ROdWxsID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZHZhbmNlU2VhcmNoU2V0dGluZykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTY2hlbWFCYXNlIHtcbiAgICBmaWVsZD86IHN0cmluZztcbiAgICBmaWVsZEZpbHRlcj86IHN0cmluZztcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZztcbiAgICB0eXBlPzogJ2Jvb2xlYW4nIHwgJ2ludCcgfCAnZGVjaW1hbCcgfCAnZGF0ZXRpbWUnIHwgJ3N0cmluZycgPSAnc3RyaW5nJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTY2hlbWFCYXNlKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1TY2hlbWFCYXNlIGV4dGVuZHMgU2NoZW1hQmFzZSB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgZnVsbExhYmVsPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgbWVzc2FnZUNsYXNzPzogc3RyaW5nO1xuICAgIHNob3dMYWJlbD89IHRydWU7XG4gICAgZ1dpZHRoPz0gMTI7XG4gICAgbWRXaWR0aD89IDY7XG4gICAgcm93U3Bhbj89IDE7XG4gICAgd2lkdGg/OiBzdHJpbmc7XG4gICAgY2xhc3M/PSAnJztcbiAgICBzdHlsZT86IGFueSA9IHt9O1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBoaWRkZW4/PSBmYWxzZTtcbiAgICBoaWRkZW5DaGVjaz86IChyb290TW9kZWw6IGFueSwgY3VycmVudE5vZGU6IENvbnRyb2xUcmVlTm9kZSkgPT4gYm9vbGVhbjtcbiAgICBoaWRkZW5PblZpZXc/PSBmYWxzZTtcbiAgICB2aXNpYmxlSW5MaXN0Pz0gdHJ1ZTtcbiAgICBvcGVyYXRvcj86IE9wZXJhdG9yO1xuICAgIGdyb3VwQ29kZT89ICcnO1xuICAgIGRlZmF1bHRWYWx1ZT86IGFueTtcbiAgICBmaWVsZEFsaWFzPz0gJyc7XG4gICAgZGF0YT86IGFueSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1TY2hlbWFCYXNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbnRhaW5lclNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICBjb250cm9sczogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICBzaG93SW5Cb3g/PSB0cnVlO1xuICAgIGJveFN0eWxlPzogYW55O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbnRhaW5lclNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIC8vIFVybCDEkeG7gyBs4bqleSBk4buvIGxp4buHdSAqKiogS0jDlE5HIFPhu6wgROG7pE5HIFRST05HIEPDgUMgQ0FTRSBQSOG7lCBCSeG6vk4sIENI4buIIFPhu6wgROG7pE5HIMSQ4buQSSBW4buaSSBGT1JNIEtI4bqiTyBTw4FUICoqKlxuICAgIHNlcnZpY2VVcmk/PSAnJztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XG4gICAgcmVmRmllbGRzPzogUmVmRmllbGRbXSA9IFtdO1xuICAgIGdyb3VwQ29kZT86IHN0cmluZztcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcblxuICAgIGlzU2VydmVyTG9hZD89IGZhbHNlO1xuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XG5cbiAgICBpc1RyZWU/PSBmYWxzZTtcbiAgICBpc1RyZWVCYXNlTW9kZWw/PSBmYWxzZTtcbiAgICBmaWVsZFRyZWU/OiBzdHJpbmc7XG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcbiAgICBzZWxlY3REZXNjZW5kYW50Pz0gZmFsc2U7Ly8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uLCBjaMOhdSBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxuXG4gICAgcGx1c1VybD86IHN0cmluZztcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD89ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz89ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBhZnRlckdldERhdGE/OiBGdW5jdGlvbjtcblxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcblxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/PSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXG5cbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XG4gICAgbW9kaWZ5RmlsdGVyPzogRnVuY3Rpb247XG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMYWJlbFNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICBmb3I/PSAnJztcbiAgICBpc0h0bWw/PSBmYWxzZTtcbiAgICBtZFdpZHRoPz0gMTI7XG4gICAgaW5kZXhMYWJlbD86IG51bWJlcjtcbiAgICB0ZXh0Pz0gJyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTGFiZWxTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGl0bGVTY2hlbWEgZXh0ZW5kcyBMYWJlbFNjaGVtYSB7XG4gICAgY2xhc3M/PSAndGl0bGUtZ3JvdXAgdGV4dC1ib2xkJztcbiAgICBtZFdpZHRoPz0gMTI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGl0bGVTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIF9jb21wb25lbnQ/OiBhbnk7IC8vIENvbXBvbmVudCBj4bunYSBzY2hlbWEga2hpIGto4bufaSB04bqhb1xuICAgIHVuaXF1ZUZpZWxkPzogc3RyaW5nOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWFcbiAgICBhdXRvZm9jdXM/PSBmYWxzZTtcbiAgICB2YWxpZGF0b3JzPzogSVZhbGlkYXRvcltdID0gW107XG4gICAgY29ycmVjdG9ycz86IElDb3JyZWN0b3JbXSA9IFtdO1xuICAgIHJlcXVpcmVkPz0gZmFsc2U7XG4gICAgZW5hYmxlQ2FjaGluZz89IGZhbHNlO1xuICAgIG9uQ2hhbmdlZD86IEZ1bmN0aW9uO1xuICAgIG9uQWZ0ZXJDaGFuZ2VkPzogRnVuY3Rpb247XG4gICAgb25Jbml0PzogRnVuY3Rpb247XG4gICAgb25Sb3dOb2RlRmluaXNoSW5pdD86IEZ1bmN0aW9uO1xuICAgIHRyaWdnZXJMb2FkQ2hpbGQ/OiBGdW5jdGlvbjtcbiAgICBoYXNPcGVyYXRvckNhbkJvPz0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybUNvbnRyb2xCYXNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICAvKiogQ29weSB04burIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgKi9cbiAgICAvLyBVcmwgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgKioqIEtIw5RORyBT4busIEThu6RORyBUUk9ORyBDw4FDIENBU0UgUEjhu5QgQknhur5OLCBDSOG7iCBT4busIEThu6RORyDEkOG7kEkgVuG7mkkgRk9STSBLSOG6ok8gU8OBVCAqKipcbiAgICBzZXJ2aWNlVXJpPz0gJyc7XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XG5cbiAgICBpc1NlcnZlckxvYWQ/PSBmYWxzZTtcbiAgICBwcmV2ZW50U2VydmVyTG9hZE9uSW5pdD89IGZhbHNlO1xuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XG5cbiAgICBpc1RyZWU/PSBmYWxzZTtcbiAgICBpc1RyZWVCYXNlTW9kZWw/PSBmYWxzZTtcbiAgICBmaWVsZFRyZWU/OiBzdHJpbmc7XG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxuICAgIGZpZWxkTWFQaGFuQ2FwPz0gJ21hUGhhbkNhcCc7IC8vIEZpZWxkIG3DoyBwaMOibiBj4bqlcFxuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcbiAgICBzZWxlY3REZXNjZW5kYW50Pz0gZmFsc2U7Ly8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uLCBjaMOhdSBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxuXG4gICAgcGFnZVNpemU/OiBudW1iZXIgPSAxNTsgLy8gRMO5bmcgY2hvIGRyb3Bkb3duIHNlcnZlciBsb2FkXG4gICAgcGx1c1VybD86IHN0cmluZztcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD89ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz89ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBmaWx0ZXJXaGlsZVByb2Nlc3M/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBiaW5kaW5nRmlsdGVycz86IEZpbHRlcltdO1xuICAgIGFmdGVyR2V0RGF0YT86IEZ1bmN0aW9uO1xuXG4gICAgZnVuY1NldERlZmF1bHRWYWx1ZT86IEZ1bmN0aW9uO1xuXG4gICAgcGFyZW50RmllbGQ/OiBzdHJpbmc7IC8vIENvbHVtbiB0xrDGoW5nIOG7qW5nIHRyb25nIHRhYmxlIHNxbCBzZXJ2ZXIuXG4gICAgZmllbGRWYWx1ZVBhcmVudD89ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cblxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmaXJlQ2FsbEJhY2tJbnNpZGU/PSB0cnVlO1xuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uIHwgKChmaWx0ZXJzOiBGaWx0ZXJbXSwgY29tcG9uZW50PzogYW55LCB0cmVlTm9kZT86IENvbnRyb2xUcmVlTm9kZSkgPT4gdm9pZCk7XG5cbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNHZXRWYWx1ZT86IChpdGVtKSA9PiBhbnk7XG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xuXG4gICAgLyoqIEVuZCBjb3B5IHThu6sgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSAqL1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRleHRDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBzZWxlY3RBbGxUZXh0Pz0gZmFsc2U7IC8vIENo4buNbiB04bqldCBj4bqjIHRleHQga2hpIGZvY3VzXG5cbiAgICBwbGFjZWhvbGRlcj89ICcnO1xuICAgIGRhdGFGb3JtYXQ/OiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ251bWJlcicgfCAnZW1haWwnIHwgJ3Bob25lJyB8ICdmYXgnIHwgJ21vbmV5JyB8ICdtb25leWludCcgfCAnYW1vdW50JyA9ICd0ZXh0JztcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgbWluPz0gMDtcbiAgICBtYXg/PSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcblxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XG5cbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPz0gJyc7XG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XG4gICAgZmllbGRQbHVzPz0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZWZlcmVuY2VUZXh0Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgcGxhY2Vob2xkZXI/PSAnJztcbiAgICBzdWZmaXg/OiBzdHJpbmc7XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xuICAgIGdyb3VwQ29kZT86IHN0cmluZztcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICBkYXRhU291cmNlPzogYW55W107XG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcblxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/PSAnJztcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcbiAgICBmaWVsZFBsdXM/PSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSZWZlcmVuY2VUZXh0Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0Q29udHJvbFNjaGVtYVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xuICAgIHBsYWNlaG9sZGVyPz0gJyc7XG4gICAgZGF0YUZvcm1hdD86ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdwaG9uZScgfCAnZmF4JyB8ICdtb25leScgfCAnbW9uZXlpbnQnIHwgJ2Ftb3VudCcgPSAndGV4dCc7XG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRDb250cm9sU2NoZW1hV2l0aFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWFza0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBUZXh0Q29udHJvbFNjaGVtYSB7XG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JyA9ICdpbnQnO1xuICAgIGF1dG9Gb3JtYXQ/PSB0cnVlO1xuICAgIG1pbj89IDA7XG4gICAgbWF4Pz0gOTk5OTk5OTk5OTtcbiAgICBwcmVmaXg/PSAnJztcbiAgICBzdWZmaXg/PSAnJztcbiAgICBkZWNpbWFsUGxhY2VzPz0gMjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBNYXNrQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOdW1iZXJSYW5nZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBUZXh0Q29udHJvbFNjaGVtYSB7XG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JztcbiAgICBtaW4/PSAwO1xuICAgIG1heD89IDk5OTk5OTk5OTk7XG4gICAgcHJlZml4Pz0gJyc7XG4gICAgc3VmZml4Pz0gJyc7XG4gICAgZGVjaW1hbFBsYWNlcz89IDI7XG4gICAgLy8gU+G7rSBk4bulbmcgxJHhu4Mga2hhaSBiw6FvIG9wZXJhdG9yIGNobyBjb250cm9sIHRyb25nIHF1ZXJ5LWJ1aWxkZXIgdGhheSBjaG8gY8OhYyBvcGVyYXRvciBt4bq3YyDEkeG7i25oIMSRxrDhu6NjIHThuqFvIHThu6sgcXVlcnktYnVpbGRlclxuICAgIG9wZXJhdG9ycz86IGFueVtdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE51bWJlclJhbmdlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIHBhbmVsQ2xhc3M/PSAnJztcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBzaG93QnV0dG9uQmFyPz0gZmFsc2U7XG4gICAgc2hvd1RpbWU/PSBmYWxzZTtcbiAgICBzaG93SWNvbj89IHRydWU7XG4gICAgZm9ybWF0PzogJ25vcm1hbCcgfCAnZnJvbU5vdycgPSAnbm9ybWFsJztcbiAgICBzaG93T25Gb2N1cz89IHRydWU7XG4gICAgbWluRGF0ZT86IERhdGUgPSBudWxsO1xuICAgIG1heERhdGU/OiBEYXRlID0gbnVsbDtcbiAgICB0aW1lT25seT89IGZhbHNlO1xuICAgIGRhdGVGb3JtYXQ/PSAnZGQvbW0veXknO1xuICAgIHZpZXc/OiAnZGF0ZScgfCAnbW9udGgnID0gJ2RhdGUnO1xuICAgIHllYXJSYW5nZT86IHN0cmluZyA9ICcxOTUwOjIwNTAnO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERhdGVUaW1lQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnNob3dUaW1lID8gJ2RkL01NL3l5eXkgaGg6bW0nIDogJ2RkL01NL3l5eXknO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVSYW5nZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRlVGltZUNvbnRyb2xTY2hlbWEge1xuICAgIHNob3dJY29uPz0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XG5cbiAgICAvLyAjUHJvcGVydHkgb3ZlcnJpZGVcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xuICAgIC8vICNFbmQgcHJvcGVydHkgb3ZlcnJpZGVcblxuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuXG4gICAgbXVsdGlwbGU/PSB0cnVlO1xuICAgIGxpbWl0Pz0gMTAwMDtcbiAgICB0aXRsZT89ICcgJztcbiAgICBjb2x1bW5zPzogRW50aXR5UGlja2VyQ29sdW1uW107XG4gICAgZmllbGRTZWFyY2hUZXh0Pzogc3RyaW5nW10gPSBbXTtcbiAgICBkYXRhSW5pdD86IGFueSA9IHt9O1xuICAgIGFkdmFuY2VTZWFyY2hNb2RlbD86IGFueSA9IHt9O1xuICAgIG9uU2VhcmNoRm9ybUluaXRpYWxpemVkPzogRnVuY3Rpb247XG4gICAgb25Gb3JtRXZlbnQ/OiBGdW5jdGlvbjtcbiAgICBvblNlbGVjdEVudGl0eT86IEZ1bmN0aW9uOyAvLyBu4bq/dSBmdW5jdGlvbiBraMOhYyBudWxsIHbDoCByZXR1cm4gdHJ1ZSBz4bq9IGNobyBwaMOpcCBt4bufIGRpYWxvZ1xuICAgIGFmdGVyQ29udGVudExlZnRJbml0PzogKGNydWRMaXN0OiBDcnVkTGlzdENvbXBvbmVudCkgPT4gdm9pZDsgLy8gU2F1IGtoaSBjw6FjIHRlbXBsYXRlIGNvbnRlbnQgaW5pdFxuICAgIGFmdGVyQ29udGVudFJpZ2h0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcbiAgICBhZnRlckdldERhdGE/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckNvbXBvbmVudCkgPT4gdm9pZDtcbiAgICBhZnRlckdldERhdGFVblBpY2tlZD86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudCB8IEVudGl0eVBpY2tlclRyZWVEYXRhQ29tcG9uZW50KSA9PiB2b2lkO1xuICAgIGFmdGVyR2V0RGF0YVBpY2tlZD86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQgfCBFbnRpdHlQaWNrZXJUcmVlU2VsZWN0ZWRDb21wb25lbnQpID0+IHZvaWQ7XG5cbiAgICAvLyBDw7Mgc+G7rSBk4bulbmcgcGx1c1VybCDhu58gbcOgbiBow6xuaCBjaMOtbmggRW50aXR5UGlja2VyIGhheSBraMO0bmcuXG4gICAgdXNlRGVmYXVsdFBsdXNsVXJsSW5MaXN0Pz0gZmFsc2U7XG5cbiAgICAvLyBDw7Mgc+G7rSBk4bulbmcgZGVmYXVsdEZpbHRlciBraGkgdMOsbSBraeG6v20gZGFuaCBzw6FjaCDhu58gbcOgbiBow6xuaCBjaMOtbmggRW50aXR5UGlja2VyLlxuICAgIHVzZURlZmF1bHRGaWx0ZXJJbkxpc3Q/PSBmYWxzZTtcblxuICAgIGhpZGRlbkFkdmFuY2VTZWFyY2g/PSBmYWxzZTtcbiAgICByZWFkT25seT89IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEge1xuICAgIHNwbGl0Y2hhcj86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBkYXRhVHlwZT86IEVudW1Db250cm9sUGlja2VyVHlwZSA9IEVudW1Db250cm9sUGlja2VyVHlwZS5VU0VSO1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIG1vZGlmeUluaXRTZWFyY2hEYXRhPzogRnVuY3Rpb247IC8vIFPhu60gZOG7pW5nIMSR4buDIG1vZGlmeSBkYXRhIGPhu6dhIHBo4bqnbiBzZWFyY2gsIHRoxrDhu51uZyDEkeG7gyBzZXQgaW5pdCBkYXRhIGR5bmFtaWMgdGhlbyBuaHUgY+G6p3VcbiAgICBjYWxsQmFjaz86IHsgW2tleTogc3RyaW5nXTogRnVuY3Rpb247IH07XG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcbiAgICBtb2RpZnlDb250cm9sPzogRnVuY3Rpb247IC8vIFPhu60gZOG7pW5nIMSR4buDIG1vZGlmeSBzY2hlbWEgYmFzZVxuICAgIG5lZWRDbG9uZT89IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXFxcbiAgICBhZnRlckdldERhdGFEcm9wZG93bj86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogQXV0b0NvbXBsZXRlUGlja2VyQ29tcG9uZW50KSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hIHtcbiAgICBkYXRhVHlwZT86IEVudW1Db250cm9sUGlja2VyVHlwZSA9IEVudW1Db250cm9sUGlja2VyVHlwZS5VU0VSO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFdyYXBQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXG4gICAgb3BlcmF0b3JzPzogYW55W107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3VzdG9tQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2xvclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbG9yUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFNwYW5Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBzb3VyY2VGaWVsZD86IHN0cmluZztcbiAgICBpc2h0bWw/PSBmYWxzZTtcbiAgICBlZGl0YWJsZT89IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFNwYW5Db250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbG9yQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgc291cmNlRmllbGQ/OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sb3JDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEtleVZhbHVlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IEtleVZhbHVlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbWFnZVVwbG9hZGVyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgaXNBdmF0YXI/OiBib29sZWFuID0gZmFsc2U7XG4gICAgbXVsdGlwbGU/OiBib29sZWFuID0gdHJ1ZTtcbiAgICBsb2FkQnlFbnRpdHlLZXk/OiBib29sZWFuID0gZmFsc2U7XG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xuICAgIHRlbXBsYXRlSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgdGVtcGxhdGVJdGVtcz86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogSW1hZ2VVcGxvYWRlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICAvLyBlbWl0IGV2ZW50IGtoaSBjaOG7jW4gbeG7mXQgcm93IHRyb25nIGZpbGUgbWFuYWdlclxuICAgIG9uU2VsZWN0ZWQ/OiBGdW5jdGlvbiA9ICgpID0+IHtcbiAgICB9O1xuICAgIG1kV2lkdGg/PSAxMjtcbiAgICAvKipcbiAgICAgKiDEkOG7i25oIGThuqFuZyBmaWxlIGNvbnRyb2wgc+G6vSBuaOG6rW4sIGThuqFuZyBjaHXhu5dpIGPDoWNoIG5oYXUgYuG7n2kgZOG6pXUgJywnXG4gICAgICogc+G6vSBvdmVycmlkZSBhY2NlcHRGaWxlVHlwZXMuXG4gICAgICogVkQ6ICcuZG9jLC5kb2N4LC5wZGYnXG4gICAgICovXG4gICAgYWNjZXB0Pzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEZsYWcgZGUgYmlldCBmaWxlIHVwbG9hZCBuaGFuIG5odW5nIGxvYWkgZmlsZSBuYW8uXG4gICAgICogVkQ6IEZpbGVUeXBlRmxhZy5BVURJTyB8IEZpbGVUeXBlRmxhZy5WSURFT1xuICAgICAqL1xuICAgIGFjY2VwdEZpbGVUeXBlcz86IEZpbGVUeXBlRmxhZyA9IEZpbGVUeXBlRmxhZy5WSURFTyB8IEZpbGVUeXBlRmxhZy5JTUFHRSB8IEZpbGVUeXBlRmxhZy5ET0MgfCBGaWxlVHlwZUZsYWcuQVVESU8gfCBGaWxlVHlwZUZsYWcuQ09NUFJFU1NFRDtcbiAgICBtYXhGaWxlU2l6ZT89IDEwMDAwMDAwMDtcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT89ICd7MH06IFF1w6EgZHVuZyBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsPz0gJ2R1bmcgbMaw4bujbmcgdOG7kWkgxJFhIGzDoCB7MH0uJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeT89ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPz0gJ8SR4buLbmggZOG6oW5nIGZpbGUgY2hvIHBow6lwOiB7MH0uJztcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk/PSAnUXXDoSBz4buRIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlRGV0YWlsPz0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xuICAgIG1vZGU/OiBGaWxlTWFuYWdlck1vZGUgfCBGaWxlVXBsb2FkTW9kZSA9IEZpbGVNYW5hZ2VyTW9kZS5tdWx0aXBsZTtcbiAgICBsYXlvdXQ/OiBFbnVtRmlsZUxheW91dCA9IEVudW1GaWxlTGF5b3V0LkxJU1Q7XG4gICAgcmVhZG9ubHk/PSBmYWxzZTtcblxuICAgIC8vIFNlcnZpY2UgZMO5bmcgxJHhu4MgbOG6pXkgZGF0YXNvdXJjZSBj4bunYSBuaGnhu4F1IGNvbnRyb2wgbeG7mXQgbOG6p24uXG4gICAgZmlsZURhdGFTZXJ2aWNlPzogRmlsZURhdGFTZXJ2aWNlO1xuXG4gICAgLy8gQuG7mSAzIGtleSDEkeG7gyBs4bqleSB0aMawIG3hu6VjIGfhu5FjLlxuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xuICAgIGVudGl0eT86IHN0cmluZztcbiAgICBlbnRpdHlLZXk/OiBzdHJpbmc7XG4gICAgLy8gVHLGsOG7nW5nIGjhu6NwIOG7nyB0cm9uZyBmb3JtLCBkw7luZyB0csaw4budbmcgbsOgeSDEkeG7gyBs4bqleVxuICAgIC8vIGVudGl0eUtleSB04burIG1vZGVsLmRhdGEgdGhheSB2w6wgdHJ1eeG7gW4gdsOgbyBlbnRpdHlLZXlcbiAgICBlbnRpdHlLZXlGaWVsZD89ICdpZCc7XG4gICAgcm9vdEZvbGRlcklkPzogc3RyaW5nOyAvLyBjaG8gdHLGsOG7nW5nIGjhu6NwIHThuqFvIGZvbGRlciBiw6puIG5nb8OgaSBjb21wb25lbnRcblxuICAgIC8vIFTDqm4gdGjGsCBt4bulYyBn4buRYyBraGkgaGnhu4NuIHRo4buLIHRyw6puIGJyZWFkY3J1bWJzLlxuICAgIHJvb3RGb2xkZXJOYW1lPzogc3RyaW5nO1xuXG4gICAgZGF0YUt5U29Eb25WaT86IEZ1bmN0aW9uO1xuXG4gICAgaW5UYWlMaWV1Pz0gZmFsc2U7XG4gICAgaW5UYWlMaWV1Q2h1bmc/PSBmYWxzZTtcbiAgICBjb3B5VG9Gb2xkZXJJZD89ICcnO1xuICAgIG11bHRpcGxlPz0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb250cm9sU2NoZW1hIGV4dGVuZHMgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hIHtcbiAgICBtb2RlPz0gRmlsZVVwbG9hZE1vZGUudXNpbmdTZXJ2aWNlRmlsZTtcbiAgICBtZFdpZHRoPz0gNjtcbiAgICBzaGFyZWRGb2xkZXJUeXBlPzogU2hhcmVkRm9sZGVyVHlwZSA9IFNoYXJlZEZvbGRlclR5cGUuVGVtcHQ7XG5cbiAgICBoaWRkZW5CdXR0b25zPz0gZmFsc2U7XG4gICAgZGlzYWJsZWQ/PSBmYWxzZTtcbiAgICByZWFkb25seT89IGZhbHNlO1xuICAgIGF1dG9TYXZlZD89IHRydWU7XG5cbiAgICBlbmFibGVTY2FuPz0gZmFsc2U7XG4gICAgZXh0cmFjdFppcEZpbGU/PSBmYWxzZTtcbiAgICBlbmFibGVEcml2ZUZpbGU/PSBmYWxzZTtcblxuICAgIHNob3dEb3dubG9hZEZpbGU/PSB0cnVlO1xuICAgIHNob3dEZWxldGVGaWxlPz0gdHJ1ZTtcbiAgICBzaG93UHJpbnRGaWxlPz0gdHJ1ZTtcbiAgICBtYXhGaWxlU2l6ZT89IDEwMDAwMDAwMDsgLy8gMTAwIE1CXG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZVN1bW1hcnk/PSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbD89ICdkdW5nIGzGsOG7o25nIHThu5FpIMSRYSBsw6AgezB9Lic7XG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZVN1bW1hcnk/PSAnezB9OiBLaMO0bmcgxJHDum5nIMSR4buLbmggZOG6oW5nIGZpbGUsICc7XG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZURldGFpbD89ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5Pz0gJ1F1w6Egc+G7kSBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZURldGFpbD89ICd04buRaSDEkWEgezB9IGZpbGUuJztcblxuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpbGVVcGxvYWRDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IFN3aXRjaENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcbiAgICBoaWRkZW5MYWJlbD89IGZhbHNlOyAvLyBTZXQgPSB0cnVlIGNo4bunIHnhur91IGtoaSBkw7luZyB0cm9uZyB0YWJsZSBzY2hlbWEgxJHhu4Mg4bqpbiBsYWJlbCDEkWksIHbDrCBsYWJlbCDEkcOjIGPDsyB0csOqbiB0acOqdSDEkeG7gSBj4buZdFxuICAgIGRlZmF1bHRWYWx1ZT89IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoZWNrYm94Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCdXR0b25Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIHNob3dMYWJlbD89IGZhbHNlO1xuICAgIGJ0Q2xhc3M/PSAncC1idXR0b24tdGV4dCc7XG4gICAgaWNvbj87XG4gICAgYnRTdHlsZT89IHsgd2lkdGg6ICdhdXRvJyB9O1xuICAgIG9uQ2xpY2s/OiBGdW5jdGlvbjtcbiAgICBidXR0b25UZXh0Pzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEJ1dHRvbkNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMubGFiZWw7XG4gICAgICAgIHRoaXMubGFiZWwgPSAnJztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XG4gICAgdGVtcGxhdGU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICByb3dzPz0gNTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0QXJlYUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXNlclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIG11bHRpcGxlPz0gdHJ1ZTtcbiAgICB1c2VyVHlwZT89IFVzZXJUeXBlLkNhbkJvO1xuICAgIGxpbWl0Pz0gMjA7IC8vIEdp4bubaSBo4bqhbiBz4buRIG5nxrDhu51pIGTDuW5nIHThu5FpIMSRYSDEkcaw4bujYyBwaWNrXG4gICAgdGl0bGU/PSAnQ2jhu41uIG5nxrDhu51pIGTDuW5nJztcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcbiAgICBmaWx0ZXJXaGlsZVByb2Nlc3M/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47XG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcj89ICcnO1xuICAgIGxhenlMb2FkT3JnYW5pemF0aW9uPz0gZmFsc2U7XG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPz0gJ2Z1bGxOYW1lTmV3JztcbiAgICBmaWVsZFBsdXM/PSAnJztcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuICAgIHBhZ2VTaXplPzogbnVtYmVyO1xuICAgIG9uUmVhZHk/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XG4gICAgZ2V0RGlzcGxheU5hbWU/OiBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIG11bHRpcGxlPz0gdHJ1ZTtcbiAgICBsaW1pdD89IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBi4bqjbiBnaGkgdOG7kWkgxJFhIMSRxrDhu6NjIHBpY2tcbiAgICB0aXRsZT89ICdDaOG7jW4gxJHGoW4gduG7iyc7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnJztcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICBmaWVsZFBsdXM/PSAnJztcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIGlzVHJlZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBvblJlYWR5PzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvQ2F1VG9DaHVjUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWFOZXcgZXh0ZW5kcyBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWEge1xuICAgIGlzVHJlZT86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWFOZXcpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3JnYW5pemF0aW9uUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgZmlsdGVyPz0gdHJ1ZTtcbiAgICBtdWx0aXBsZT89IHRydWU7XG4gICAgcGFyZW50T3JnSWQ/OiBudW1iZXI7XG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcbiAgICBpc1VzaW5nSWQ/PSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE9yZ2FuaXphdGlvblBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29DYXVUb0NodWNDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBmaWx0ZXI/PSB0cnVlO1xuICAgIG11bHRpcGxlPz0gdHJ1ZTtcbiAgICBwYXJlbnRPcmdJZD86IG51bWJlcjtcbiAgICBwYXJlbnRPcmdDb2RlPzogc3RyaW5nO1xuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xuICAgIGlzVXNpbmdJZD89IHRydWU7XG4gICAgZGlzYWJsZWRQYXJlbnRJdGVtPz0gdHJ1ZTtcbiAgICByb290UGFyZW50SWQ/OiBzdHJpbmcgPSBudWxsO1xuICAgIGRpc2FibGVkPz0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29DYXVUb0NodWNDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIG1vZGU/OiAnYmFzaWMnIHwgJ21lZGl1bScgfCAnZnVsbCcgfCAnc2ltcGxlJyA9ICdiYXNpYyc7XG4gICAgaGVpZ2h0Pz0gMjUwO1xuICAgIGluaXQ/OiBhbnk7XG4gICAgbGFuZ3VhZ2VDb2RlPzogJ3ZpJyB8ICdlbic7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFZGl0b3JDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuICAgIGRhdGFTb3VyY2U/OiBhbnkgfCBGdW5jdGlvbjtcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXG4gICAgb3BlcmF0b3JzPzogYW55W107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIHBhbmVsQ2xhc3M/PSAnJztcbiAgICBwbGFjZWhvbGRlcj89ICdDaOG7jW4nO1xuICAgIHNlbGVjdGVkSXRlbXNMYWJlbD89ICfEkMOjIGNo4buNbiB7MH0gbeG7pWMnO1xuICAgIHNlbGVjdGVkQWxsSXRlbUxhYmVsPz0gJ8SQw6MgY2jhu41uIHThuqV0IGPhuqMnO1xuICAgIHNob3dDbGVhcj89IHRydWU7XG4gICAgZmlsdGVyPz0gdHJ1ZTtcbiAgICBtdWx0aXBsZT89IGZhbHNlO1xuICAgIGdlbmVyYXRlVG9vbHRpcD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgbWF4U2VsZWN0ZWRMYWJlbHM/PSA1O1xuICAgIG1heEl0ZW1EaXNwbGF5Pz0gNTA7XG4gICAgdmlydHVhbFNjcm9sbD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBmaXRQYW5lbD86IGJvb2xlYW4gPSB0cnVlO1xuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xuICAgIG5lZWRDbG9uZT89IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXG4gICAgdGVtcGxhdGVJdGVtPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICB0ZW1wbGF0ZVNlbGVjdGVkSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcXVpY2tBZGQ/PSBmYWxzZTtcbiAgICBjb2xzPzogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICBxdWlja0FkZFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBpbml0RGF0YT86IEtleVZhbHVlVHlwZSB8IEZ1bmN0aW9uID0ge307XG4gICAgZGVmYXVsdEluZGV4Pz0gLTE7XG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiA3NTAsIGhlaWdodDogNDAwIH0pO1xuXG4gICAgbG9hZEluRmlyc3REaXNwbGF5Pz0gdHJ1ZTtcblxuICAgIGF1dG9HZXREYXRhPz0gdHJ1ZTtcblxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xuXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD89IGZhbHNlO1xuICAgIG5vdEluQ3J1ZEZvcm0/PSBmYWxzZTtcbiAgICBzZWFyY2hNdWx0aXBsZT89IHRydWU7XG4gICAgZGlzYWJsZURpc3BsYXlGaWVsZFNlcnZlclNlYXJjaD89IGZhbHNlO1xuXG4gICAgbG9hZE9uSW5pdD89IGZhbHNlO1xuICAgIGFsbG93TG9hZERhdGFXaGVuUGFyZW50TnVsbD89IGZhbHNlO1xuXG4gICAgZGlzYWJsZWRQYXJlbnRJdGVtPz0gdHJ1ZTtcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEcm9wZG93bkNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkcmVzc0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGhpZGVObz89IGZhbHNlO1xuICAgIGhpZGVTdHJlZXQ/PSBmYWxzZTtcbiAgICBoaWRlV2FyZD89IGZhbHNlO1xuICAgIGhpZGVEaXN0cmljdD89IGZhbHNlO1xuICAgIHJlcXVpcmVkTm8/PSB0cnVlO1xuICAgIHJlcXVpcmVkU3RyZWV0Pz0gdHJ1ZTtcbiAgICByZXF1aXJlZFdhcmQ/PSB0cnVlO1xuICAgIHJlcXVpcmVkRGlzdHJpY3Q/PSB0cnVlO1xuICAgIHJlcXVpcmVkUHJvdmluY2U/PSB0cnVlO1xuICAgIHdhcmRUb1Byb3ZpbmNlPz0gdHJ1ZTtcbiAgICBub1dpZHRoPz0gMTtcbiAgICBzdHJlZXRXaWR0aD89IDM7XG4gICAgd2FyZFdpZHRoPz0gMztcbiAgICBkaXN0cmljdFdpZHRoPz0gMjtcbiAgICBwcm92aW5jZVdpZHRoPz0gMztcbiAgICBzaG93SW5Cb3g/PSBmYWxzZTtcblxuICAgIGhpZGVIb2xkZXI/PSB0cnVlO1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWRkcmVzc0NvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVmFuQmFuUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgbWRXaWR0aD89IDEyO1xuICAgIHVzZVZiRGVuPz0gdHJ1ZTtcbiAgICB1c2VWYkRpPz0gdHJ1ZTtcbiAgICByZWFkT25seT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICByZWFkb25seT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBsb2FpVmFuQmFuPzogRW51bUxvYWlWYW5CYW5CYXNlID0gRW51bUxvYWlWYW5CYW5CYXNlLlZCX0RJO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFZhbkJhblBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBtZFdpZHRoPz0gMTI7XG4gICAgc2VydmljZUNvZGU/OiBzdHJpbmc7XG4gICAgZW50aXR5Pzogc3RyaW5nO1xuICAgIGVudGl0eUtleT86IHN0cmluZztcbiAgICBzdGF0ZT86IGFueSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbmdWaWVjUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJjZW50Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgbWRXaWR0aD89IDEyO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBlcmNlbnRDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENoaXBzQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoaXBzQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIHBsYWNlaG9sZGVyPz0gJyc7XG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcbiAgICBtaW5MZW5ndGhGaWx0ZXI/PSAxO1xuICAgIGFwcGVuZFRvPzogc3RyaW5nID0gJ2JvZHknO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEF1dG9Db21wbGV0ZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25MaXN0Q29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcbiAgICBsYXlvdXQ/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xuICAgIG9uQWRqdXN0ZWRWYWx1ZT86IEZ1bmN0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJhZGlvQnV0dG9uTGlzdENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hlY2tCb3hMaXN0Q29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcbiAgICBsYXlvdXQ/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xuICAgIGNsYXNzUGx1cz89ICcnO1xuICAgIGZyZWVUZXh0Pz0gJyc7XG4gICAgcENvbENsYXNzPzogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoZWNrQm94TGlzdENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGFibGVTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHJvd1RlbXBsYXRlOiBGb3JtU2NoZW1hQmFzZVtdO1xuICAgIGF1dG9HZW5lcmF0ZUlkPz0gZmFsc2U7XG4gICAgcm93QnV0dG9ucz86IChyb3dEYXRhKSA9PiBNZW51SXRlbVtdO1xuICAgIGZvb3RlckJ1dHRvbnM/OiB7XG4gICAgICAgIGljb24/OiBzdHJpbmc7XG4gICAgICAgIGxhYmVsPzogc3RyaW5nO1xuICAgICAgICBjbGFzcz86IHN0cmluZztcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIH1bXTtcbiAgICBzaG93TnVtYmVyPz0gdHJ1ZTtcbiAgICBzaG93RnVuY3Rpb24/PSB0cnVlO1xuICAgIHNob3dGb290ZXI/PSB0cnVlO1xuICAgIHNob3dTYXZlPz0gZmFsc2U7XG4gICAgc2hvd0VkaXQ/PSBmYWxzZTtcbiAgICBzaG93RGVsZXRlPz0gdHJ1ZTtcbiAgICBzaG93QWRkPz0gdHJ1ZTtcbiAgICBzaG93RGlhbG9nPz0gdHJ1ZTtcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKHsgd2lkdGg6IDExMDAsIGhlaWdodDogNjUwIH0pO1xuICAgIGVuYWJsZVJlb3JkZXJSb3c/PSBmYWxzZTtcbiAgICBlbmFibGVBZGRNdWx0aT89IGZhbHNlO1xuICAgIHBpY2tlckNvbnRyb2xGaWVsZD86IHN0cmluZztcbiAgICBpc1VuaXF1ZT89IHRydWU7XG4gICAgZW5hYmxlUGFnaW5nPz0gZmFsc2U7XG4gICAgbGltaXQ/PSA1MDtcbiAgICBpbml0Um93Q291bnQ/PSAxO1xuICAgIG1kV2lkdGg/PSAxMjtcbiAgICB3aWR0aEZ1bmN0aW9uQ29sdW1uPzogc3RyaW5nO1xuICAgIHJvd0J1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG4gICAgc3VtbWFyeVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG4gICAgaGVhZGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcblxuICAgIG9uUmVvcmRlcmVkPzogRnVuY3Rpb247XG4gICAgb25UYWJsZUZpbmlzaEluaXQ/OiBGdW5jdGlvbjtcbiAgICBvbkFkZGluZz86IEZ1bmN0aW9uO1xuICAgIG9uQWRkZWQ/OiBGdW5jdGlvbjtcbiAgICBvblNhdmU/OiBGdW5jdGlvbjtcbiAgICBvbk1lc3NhZ2U/OiBGdW5jdGlvbjtcbiAgICBvbkRlbGV0aW5nPzogRnVuY3Rpb247XG4gICAgb25EZWxldGVkPzogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGFibGVTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzYWJsZUNvbnRyb2w/KCkge1xuICAgICAgICB0aGlzLmRpc2FibGVDaGlsZHJlbkNvbnRyb2wodGhpcy5yb3dUZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlQ2hpbGRyZW5Db250cm9sPz0gKHNjaGVtYXM6IEZvcm1Db250cm9sQmFzZVtdKSA9PiB7XG4gICAgICAgIHNjaGVtYXMuZm9yRWFjaChzY2hlbWEgPT4ge1xuICAgICAgICAgICAgc2NoZW1hLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBUYWJsZVNjaGVtYSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUNoaWxkcmVuQ29udHJvbChzY2hlbWEucm93VGVtcGxhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoc2NoZW1hIGluc3RhbmNlb2YgQ29udGFpbmVyU2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlQ2hpbGRyZW5Db250cm9sKHNjaGVtYS5jb250cm9scyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TY2hlbWFCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSB7XG4gICAgaXNBcnJheUZpZWxkPzogYm9vbGVhbjsgLy8gTMOgIGZpZWxkIGNo4bupYSBjw6FjIHZhbHVlIGPDoWNoIG5oYXUgYuG6sW5nIGThuqV1ICxcbiAgICB3aWR0aD86IHN0cmluZztcbiAgICBzaG93RWRpdExpbms/PSBmYWxzZTtcbiAgICBzaG93VG9nZ2xlSWNvbj89IGZhbHNlO1xuICAgIGNvbFNwYW4/OiBudW1iZXI7XG4gICAgZ3JvdXA/PSBmYWxzZTtcbiAgICB2aXNpYmxlPz0gdHJ1ZTtcbiAgICByZW1vdmVPbkluaXQ/PSBmYWxzZTtcbiAgICBhbGxvd0ZpbHRlcj89IHRydWU7XG4gICAgdGV4dEFsaWduPzogVGV4dEFsaWduO1xuICAgIGNlbGxDbGFzcz86IHN0cmluZztcbiAgICBmdWxsVGV4dFNlYXJjaD89IGZhbHNlO1xuICAgIGlzSW5UYWJsZT89IHRydWU7XG4gICAgcmF3Q29sdW1uPzogQ29sdW1uU2NoZW1hQmFzZTtcbiAgICBzZXBhcmF0b3I/PSAnLCAnO1xuICAgIG1heEl0ZW1EaXNwbGF5Pz0gNTA7XG4gICAgcGFnZVNpemU/OiBudW1iZXIgPSAxNTsgLy8gUHJvcCBwaOG6o2kgZ2nhu5FuZyB24bubaSBkcm9wZG93blxuXG4gICAgZmlsZVNldHRpbmc/OiBGaWxlVXBsb2FkU2V0dGluZyB8IEZpbGVNYW5hZ2VyU2V0dGluZztcbiAgICBkYXRhVHlwZVJlZkZpZWxkPzogRGF0YVR5cGUgfCBzdHJpbmc7XG4gICAgZm9yY2VHZXREYXRhPz0gZmFsc2U7XG4gICAgZGlzcGxheUZpZWxkSW5HcmlkPzogc3RyaW5nO1xuICAgIGZ1bmNHZXRSZWZEYXRhUm93PzogKHJlZkl0ZW1zKSA9PiB7fTtcbiAgICBmdW5jU2V0VmFsdWVSb3c/OiAocm93SXRlbSwgZGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jU2V0VmFsdWVSb3dXaGVuTnVsbE9yRW1wdHk/OiAocm93SXRlbSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0VmFsdWVPZkZpZWxkPzogRnVuY3Rpb24gPSAocm93SXRlbSkgPT4gcm93SXRlbVt0aGlzLmZpZWxkXTtcbiAgICByb3dTcGFuPz0gMTtcbiAgICBmb3JtYXQ/OiBzdHJpbmc7XG4gICAgZGF0YVR5cGU/OiBEYXRhVHlwZSB8IHN0cmluZztcbiAgICBjb250cm9sVHlwZT86IENvbnRyb2xUeXBlID0gQ29udHJvbFR5cGUudGV4dGJveDtcbiAgICB0ZW1wbGF0ZUZpbHRlcj86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZGlzYWJsZUNoZWNrQm94Pz0gdHJ1ZTtcbiAgICAvLyBUaOG7qSB04buxIMawdSB0acOqbiBnZXQgcmVmIGRhdGEgY+G7p2EgY3J1ZC1saXN0XG4gICAgLy8gTuG6v3UgY8OzIHZhbHVlIG5naMSpYSBsw6Agbmjhu69uZyBj4buZdCBuw6B5IGPhuqduIHBo4bqjaSBs4bqleSBk4buvIGxp4buHdSB4b25nIHLhu5NpIG3hu5tpIMSR4bq/biBj4buZdCBraMOhY1xuICAgIG9yZGVyPzogbnVtYmVyID0gMTtcbiAgICBtYXhXb3JkRGlzcGxheT86IG51bWJlcjtcbiAgICBtYXhMZW5ndGhEaXNwbGF5PzogbnVtYmVyO1xuICAgIG1kV2lkdGhJblNlYXJjaD89IDEyO1xuXG4gICAgbWluPz0gMDtcbiAgICBtYXg/PSA5OTk5OTk7XG5cbiAgICBzaG93Q2xlYXI/PSB0cnVlO1xuICAgIG11bHRpcGxlPz0gZmFsc2U7XG4gICAgc2luZ2xlPz0gZmFsc2U7XG5cbiAgICBwaXBlPzogUGlwZVRyYW5zZm9ybTtcbiAgICBhc3luY1BpcGU/PSB0cnVlO1xuICAgIHNvcnQ/PSB0cnVlO1xuICAgIGV4dGVuZERhdGE/OiBhbnkgPSB7fTtcblxuICAgIC8qKlxuICAgICAqIElzIHRoaXMgY29sdW1uIHJlZiBhIHJlZiBjb2x1bW4gZ2VuZXJhdGVkIGJ5IGJhc2VcbiAgICAgKiBAZGF0ZSAxMS80LzIwMjIgLSAyOjA1OjU1IFBNXG4gICAgICpcbiAgICAgKiBAdHlwZSB7P2Jvb2xlYW59XG4gICAgICovXG4gICAgaXNSZWZGaWVsZD89IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogc2hvdWxkIGluY2x1ZGUgdGhpcyBjb2wgaW4gdGhlIGdyaWRJbmZvLmZpZWxkc1xuICAgICAqIEBkYXRlIDExLzQvMjAyMiAtIDI6MDY6MTYgUE1cbiAgICAgKlxuICAgICAqIEB0eXBlIHs/Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBpbmNsdWRlU2VsZWN0Pz0gdHJ1ZTtcblxuICAgIGhhc09wZXJhdG9yQ2FuQm8/PSBmYWxzZTtcbiAgICBtaW5pbWl6ZUZpbHRlcj86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBiaW5kaW5nRmlsdGVycz86IEZpbHRlcltdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNjaGVtYUJhc2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHJvcGRvd25PcHRpb25zIHtcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBmaWVsZFRyZWU/PSAnJztcbiAgICBzZWxlY3RDaGlsZEl0ZW0/PSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgc2VsZWN0RGVzY2VuZGFudD89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT89ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD89ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz89ICcnO1xuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIHBhZ2U/OiBudW1iZXIgPSAxO1xuICAgIHBhZ2VTaXplPz0gNjY2O1xuICAgIGlzU2VydmVyTG9hZD89IGZhbHNlO1xuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcbiAgICBpc1RyZWVCYXNlTW9kZWw/PSBmYWxzZTtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEcm9wZG93bk9wdGlvbnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVmRmllbGQge1xuICAgIGZpZWxkPzogc3RyaW5nO1xuICAgIG11bHRpcGxlPz0gZmFsc2U7XG4gICAgc2VwYXJhdG9yPz0gJywgJztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XG4gICAgaXNDaGlsZE9iamVjdD89IGZhbHNlO1xuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xuICAgIGRpc3BsYXlGaWVsZEluR3JpZD86IHN0cmluZztcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBmaWVsZFBsdXM/PSAnJztcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgZGF0YVNvdXJjZT86IGFueVtdO1xuICAgIG9yZGVyPzogbnVtYmVyID0gMTtcblxuICAgIGlzVHJlZT89IGZhbHNlO1xuICAgIGZpZWxkVHJlZT86IHN0cmluZztcbiAgICB2YWx1ZVBhcmVudFJvb3Q/OiBhbnkgPSBudWxsOyAvLyBHacOhIHRy4buLIHRyxrDhu51uZyBbZmllbGRUcmVlXSBj4bunYSBpdGVtIHRyZWUgcm9vdFxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/PSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/PSAnJztcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuXG4gICAgZnVuY0dldFZhbHVlT2ZGaWVsZD86IEZ1bmN0aW9uID0gKGl0ZW0pID0+IGl0ZW1bdGhpcy5maWVsZF07XG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XG4gICAgZnVuY1NldFZhbHVlUm93V2hlbk51bGxPckVtcHR5PzogKHJvd0l0ZW0pID0+IHZvaWQ7XG4gICAgZnVuY0dldFJlZkRhdGFSb3c/OiAocmVmSXRlbXMpID0+IHt9O1xuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSZWZGaWVsZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlQaWNrZXJDb2x1bW4gZXh0ZW5kcyBDb2x1bW5TY2hlbWFCYXNlIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIGRpc2FibGVkPz0gZmFsc2U7XG4gICAgaXNTZWFyY2hhYmxlPz0gdHJ1ZTtcbiAgICBpc0Rpc3BsYXk/PSB0cnVlO1xuICAgIGRhdGFUeXBlPzogRGF0YVR5cGUgfCBzdHJpbmc7XG4gICAgb3BlcmF0b3I/OiBPcGVyYXRvcjtcbiAgICB3aWR0aD89ICcnO1xuICAgIG5vdEluRmllbGRzPz0gZmFsc2U7IC8vIEPDoWMgdHLGsOG7nW5nIGThu68gbGnhu4d1IMSRxrDhu6NjIHThu5VuZyBo4bujcCBs4bqhaSBoaeG7g24gdGjhu4sgbMOqbiBncmlkIG3DoCBraMO0bmcgcGjhuqNpIGzhuqV5IHThu6sgdHJvbmcgdGFibGUgcmEuXG5cbiAgICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRW50aXR5UGlja2VyQ29sdW1uKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRMaXN0Q29uZmlnIHtcbiAgICB0b29sdGlwVmlldz86IHN0cmluZztcbiAgICBvblZpZXc/OiBGdW5jdGlvbjtcbiAgICBkaXNhYmxlUm93U2VsZWN0V2hlbkNsaWNrQWN0aW9uPz0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdENvbmZpZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmVlRGF0YU9wdGlvbiB7XG4gICAgZGlzcGxheUZpZWxkID0gJ3Rlbic7XG4gICAgc2hvcnREaXNwbGF5RmllbGQgPSAndGVuJztcbiAgICBleHBhbmRlZEljb24gPSAncGkgcGktZm9sZGVyLW9wZW4nO1xuICAgIGNvbGxhcHNlZEljb24gPSAncGkgcGktZm9sZGVyJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUcmVlRGF0YU9wdGlvbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RlbCB7XG4gICAgc2hvd0VkaXRGb3JtPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGhlYWRlcj86IHN0cmluZyA9ICcnO1xuICAgIHBvcHVwU2l6ZT86IFBvcHVwU2l6ZSA9IG5ldyBQb3B1cFNpemUoeyBtYXhpbWl6ZTogdHJ1ZSB9KTtcbiAgICBkYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGlhbG9nTW9kZWwpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUG9wdXBTaXplIHtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgbWF4aW1pemU/PSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQb3B1cFNpemUpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXZlbnREYXRhIHtcbiAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlO1xuICAgIHNvdXJjZU5vZGU/OiBDb250cm9sVHJlZU5vZGU7XG4gICAgc291cmNlRXZlbnQ/OiBhbnk7XG4gICAgZXZlbnRUeXBlPzogYW55O1xuICAgIGRhdGE/OiBhbnk7XG4gICAgcHJpdmF0ZSBfY3J1ZEZvcm06IENydWRGb3JtQ29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluaXQ/OiB7XG4gICAgICAgICAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlLFxuICAgICAgICAgICAgc291cmNlTm9kZT86IENvbnRyb2xUcmVlTm9kZSxcbiAgICAgICAgICAgIHNvdXJjZUV2ZW50PzogYW55LFxuICAgICAgICAgICAgZXZlbnRUeXBlPzogYW55LFxuICAgICAgICAgICAgZGF0YT86IGFueSxcbiAgICAgICAgICAgIGNydWRGb3JtPzogQ3J1ZEZvcm1Db21wb25lbnQ7XG4gICAgICAgIH1cbiAgICApIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLm1vZGVsO1xuICAgIH1cblxuICAgIGdldCBtb2RlbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5tb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50TW9kZWwoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudFBhdGgoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWxQYXRoO1xuXG4gICAgfVxuXG4gICAgZ2V0IHJvb3RNb2RlbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5yb290Tm9kZS5tb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpOiBGb3JtU2NoZW1hQmFzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudENvbnRyb2woKTogRm9ybVNjaGVtYUJhc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5wYXJlbnRDb250cm9sO1xuICAgIH1cblxuICAgIGdldCBmb3JtQ29udHJvbHMoKTogRm9ybVNjaGVtYUJhc2VbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmZvcm1Db250cm9scztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJWaWV3RGF0YSB7XG4gICAgY29kZT86IHN0cmluZztcbiAgICBoaWRkZW4/OiBib29sZWFuID0gZmFsc2U7XG4gICAgYWx3YXlSZW5kZXI/OiBib29sZWFuID0gZmFsc2U7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBoZWFkZXJTdHlsZUNsYXNzPzogc3RyaW5nO1xuICAgIGFjdGl2ZT86IGJvb2xlYW47XG4gICAgZG9Ob3RSZWxvYWQ/PSB0cnVlO1xuICAgIHVzZVNjcm9sbGJhcj89IHRydWU7IC8vIENvbmZpZyDEkeG7gyB4w6FjIMSR4buLbmggY8OzIHPhu60gZOG7pW5nIGN1c3RvbS1zY3JvbGxiYXIga2jDtG5nLCBu4bq/dSBraMO0bmcgdGjDrCBkw7luZyBzY3JvbGxiYXIgbeG6t2MgxJHhu4tuaCBj4bunYSB0csOsbmggZHV54buHdFxuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRhYlZpZXdEYXRhKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpZWxkUm93U3BhbiB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBmdW5jR2V0VmFsdWU/OiAoaXRlbSkgPT4gYW55O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpZWxkUm93U3Bhbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcbiAgICBkYXRlID0gJ2RhdGUnLFxuICAgIGRhdGV0aW1lID0gJ2RhdGV0aW1lJyxcbiAgICBodG1sID0gJ2h0bWwnLFxuICAgIHN0cmluZyA9ICdzdHJpbmcnLFxuICAgIGludCA9ICdpbnQnLFxuICAgIGludFdpdGhvdXRNYXNrID0gJ2ludFdpdGhvdXRNYXNrJyxcbiAgICBjdXJyZW5jeSA9ICdjdXJyZW5jeScsXG4gICAgZGVjaW1hbCA9ICdkZWNpbWFsJyxcbiAgICBib29sZWFuID0gJ2Jvb2xlYW4nLFxuICAgIGVudW0gPSAnZW51bScsXG4gICAgZmlsZVVwbG9hZCA9ICdmaWxlVXBsb2FkJyxcbiAgICBmaWxlTWFuYWdlciA9ICdmaWxlTWFuYWdlcicsXG59XG5cbmV4cG9ydCBlbnVtIENvbnRyb2xUeXBlIHtcbiAgICBkcm9wZG93biA9ICdkcm9wZG93bicsXG4gICAgZGF0ZXRpbWUgPSAnZGF0ZXRpbWUnLFxuICAgIGRhdGUgPSAnZGF0ZScsXG4gICAgdGltZSA9ICd0aW1lJyxcbiAgICBudW1iZXIgPSAnbnVtYmVyJyxcbiAgICB0ZXh0Ym94ID0gJ3RleHRib3gnLFxuICAgIGNoZWNrYm94ID0gJ2NoZWNrYm94JyxcbiAgICBzd2l0Y2ggPSAnc3dpdGNoJ1xufVxuXG5leHBvcnQgZW51bSBPcGVyYXRvciB7XG4gICAgZXF1YWwgPSAnZXEnLFxuICAgIG5vdEVxdWFsID0gJ25lcScsXG4gICAgZ3JlYXRlciA9ICdndCcsXG4gICAgZ3JlYXRlclRoYW5FcXVhbCA9ICdndGUnLFxuICAgIGxvd2VyID0gJ2x0JyxcbiAgICBsb3dlclRoYW5FcXVhbCA9ICdsdGUnLFxuXG4gICAgcmVsYXRpb25hbERhdGEgPSAncmVsYXRpb25hbGRhdGEnLFxuICAgIGNvbnRhaW4gPSAnY29udGFpbnMnLFxuICAgIG5vdENvbnRhaW4gPSAnbmNvbnRhaW5zJyxcbiAgICBzdGFydFdpdGggPSAnc3RhcnRzd2l0aCcsXG4gICAgbm90U3RhcnRXaXRoID0gJ25zdGFydHN3aXRoJyxcbiAgICBlbmRXaXRoID0gJ2VuZHN3aXRoJyxcbiAgICBub3RFbmRXaXRoID0gJ25lbmRzd2l0aCcsXG5cbiAgICBpbiA9ICdpbicsXG4gICAgbm90SW4gPSAnbmluJyxcblxuICAgIGlzTnVsbCA9ICdpc251bGwnLFxuICAgIGlzTm90TnVsbCA9ICdpc25vdG51bGwnLFxuXG4gICAgaW5Sb2xlID0gJ2hhc1JvbGUnLFxuICAgIG5vdEluUm9sZSA9ICdub3RIYXNSb2xlJyxcbiAgICBpbkNhdGVnb3J5ID0gJ2luQ2F0ZWdvcnknLFxuICAgIG5vdEluQ2F0ZWdvcnkgPSAnbm90SW5DYXRlZ29yeScsXG4gICAgaW5Qb3NpdGlvbiA9ICdpblBvc2l0aW9uJyxcbiAgICBub3RJblBvc2l0aW9uID0gJ25vdEluUG9zaXRpb24nLFxuICAgIGluTGlzdFVzZXIgPSAnaW5MaXN0VXNlcicsXG4gICAgbm90SW5MaXN0VXNlciA9ICdub3RJbkxpc3RVc2VyJyxcbiAgICBpbkxpc3RHcm91cCA9ICdpbkxpc3RHcm91cCcsXG4gICAgbm90SW5MaXN0R3JvdXAgPSAnbm90SW5MaXN0R3JvdXAnLFxuICAgIGlzQ3VycmVudFVzZXIgPSAnaXNDdXJyZW50VXNlcicsXG4gICAgaXNDdXJyZW50Q2FuQm8gPSAnaXNDdXJyZW50Q2FuQm8nXG59XG5cbmV4cG9ydCBlbnVtIEhlaWdodFR5cGUge1xuICAgIGRlZmF1bHQgPSAwLFxuICAgIGR5bmFtaWMgPSAtMSxcbiAgICBjdXN0b20gPSAxXG59XG5cbmV4cG9ydCBlbnVtIEZpbGVNYW5hZ2VyTW9kZSB7XG4gICAgc2luZ2xlID0gJ3NpbmdsZScsXG4gICAgbXVsdGlwbGUgPSAnbXVsdGlwbGUnXG59XG5cbmV4cG9ydCBlbnVtIEZpbGVVcGxvYWRNb2RlIHtcbiAgICB1c2luZ0ZpbGVJbnN0YW5jZUlkID0gJ3VzaW5nRmlsZUluc3RhbmNlSWQnLFxuICAgIHVzaW5nU2VydmljZUZpbGUgPSAndXNpbmdTZXJ2aWNlRmlsZSdcbn1cblxuZXhwb3J0IGVudW0gRW51bUZpbGVMYXlvdXQge1xuICAgIFNJTVBMRSA9ICdTSU1QTEUnLFxuICAgIFNJTVBMRV9GT1JfTElTVCA9ICdTSU1QTEVfRk9SX0xJU1QnLFxuICAgIExJU1QgPSAnTElTVCcsXG4gICAgSU5MSU5FID0gJ0lOTElORSdcbn1cblxuZXhwb3J0IGVudW0gVGV4dEFsaWduIHtcbiAgICBMZWZ0ID0gMCxcbiAgICBDZW50ZXIgPSAxLFxuICAgIFJpZ2h0ID0gLTFcbn1cblxuZXhwb3J0IGVudW0gRXhwb3J0SXRlbXNNb2RlIHtcbiAgICBGcm9tSHRtbCA9IDAsXG4gICAgTWFudWFsR2V0RGF0YSA9IDEsXG4gICAgQXV0b0dldERhdGEgPSAyXG59XG5cbmV4cG9ydCBlbnVtIEV4cG9ydEFsbE1vZGUge1xuICAgIE1hbnVhbEdldERhdGEgPSAwLFxuICAgIEF1dG9HZXREYXRhID0gMVxufVxuXG5leHBvcnQgZW51bSBVc2VyVHlwZSB7XG4gICAgQ2FuQm8sXG4gICAgTm9ybWFsXG59XG5cbmV4cG9ydCBlbnVtIEV2ZW50VHlwZSB7XG4gICAgQ0hBTkdFID0gJ2NoYW5nZScsXG4gICAgQURKVVNUX1ZBTFVFID0gJ2FkanVzdFZhbHVlJyxcbiAgICBNT0RFTF9DSEFOR0VEID0gJ21vZGVsQ2hhbmdlZCcsXG4gICAgRk9STV9SRUFEWSA9ICdmb3JtUmVhZHknLFxuICAgIEVOVEVSID0gJ2VudGVyJyxcbiAgICBISURFID0gJ2hpZGUnLFxuICAgIFJPV19SRU9SREVSID0gJ3Jvd1Jlb3JkZXInLFxuICAgIEJMVVIgPSAnYmx1cicsXG4gICAgUkVBRFkgPSAnUkVBRFknLFxuICAgIERBVEFTT1VSQ0VfTE9BREVEID0gJ2RhdGFTb3VyY2VMb2FkZWQnLFxuICAgIENMSUNLID0gJ2NsaWNrJyxcbiAgICBBVVRPX0NPUlJFQ1QgPSAnYXV0b0NvcnJlY3QnLFxuICAgIFZBTElEQVRFID0gJ3ZhbGlkYXRlJyxcbiAgICBJTklUID0gJ2luaXQnLFxuICAgIEFERElORyA9ICdhZGRpbmcnLFxuICAgIEFEREVEID0gJ2FkZGVkJyxcbiAgICBERUxFVElORyA9ICdkZWxldGluZycsXG4gICAgREVMRVRFRCA9ICdkZWxldGVkJyxcbiAgICBUQUJMRV9DSEFOR0VEID0gJ3RhYmxlQ2hhbmdlZCcsXG4gICAgU0FWRSA9ICdzYXZlJyxcbiAgICBNRVNTQUdFID0gJ21lc3NhZ2UnLFxuICAgIFJPV19GSU5JU0hfSU5JVCA9ICdyb3dGaW5pc2hJbml0JyxcbiAgICBUQUJMRV9GSU5JU0hfSU5JVCA9ICd0YWJsZUZpbmlzaEluaXQnLFxufVxuIl19
|
|
1316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY2xhc3Nlcy9mb3JtLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFpQmhGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsOEJBQThCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2pILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWSxFQUFFLEtBQWE7SUFDbkQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7UUFDcEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMxQjtBQUNMLENBQUM7QUFFRCxNQUFNLE9BQU8sV0FBVztJQU9wQixZQUFZLElBQWtCO1FBRjlCLGFBQVEsR0FBMEYsUUFBUSxDQUFDO1FBR3ZHLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sUUFBUTtJQUlqQixZQUFZLElBQWU7UUFIM0Isb0dBQW9HO1FBQ3BHLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUcvQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGVBQWU7SUFnSHhCLFlBQVksSUFBc0I7UUE1R2xDLGVBQVUsR0FBRyxFQUFFLENBQUM7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LFNBd0JYO0FBeEJELFdBQVksU0FBUztJQUNqQiw4QkFBaUIsQ0FBQTtJQUNqQix5Q0FBNEIsQ0FBQTtJQUM1QiwyQ0FBOEIsQ0FBQTtJQUM5QixxQ0FBd0IsQ0FBQTtJQUN4Qiw0QkFBZSxDQUFBO0lBQ2YsMEJBQWEsQ0FBQTtJQUNiLHVDQUEwQixDQUFBO0lBQzFCLDBCQUFhLENBQUE7SUFDYiw0QkFBZSxDQUFBO0lBQ2YsbURBQXNDLENBQUE7SUFDdEMsNEJBQWUsQ0FBQTtJQUNmLHlDQUE0QixDQUFBO0lBQzVCLGtDQUFxQixDQUFBO0lBQ3JCLDBCQUFhLENBQUE7SUFDYiw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0lBQ2Ysa0NBQXFCLENBQUE7SUFDckIsZ0NBQW1CLENBQUE7SUFDbkIsMkNBQThCLENBQUE7SUFDOUIsMEJBQWEsQ0FBQTtJQUNiLGdDQUFtQixDQUFBO0lBQ25CLDhDQUFpQyxDQUFBO0lBQ2pDLGtEQUFxQyxDQUFBO0FBQ3pDLENBQUMsRUF4QlcsU0FBUyxLQUFULFNBQVMsUUF3QnBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9hcGknO1xuXG5pbXBvcnQgeyBBdXRvQ29tcGxldGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1waWNrZXIvYXV0b2NvbXBsZXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW51bUxvYWlWYW5CYW5CYXNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb25ndmllYy1waWNrZXIvbW9kZWxzL2VudW1zJztcbmltcG9ydCB7IENydWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jcnVkL2NydWQtbGlzdC9jcnVkLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudFxufSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLWRhdGEvZW50aXR5LXBpY2tlci1kYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50XG59IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItc2VsZWN0ZWQvZW50aXR5LXBpY2tlci1zZWxlY3RlZC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBFbnRpdHlQaWNrZXJUcmVlRGF0YUNvbXBvbmVudFxufSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLXRyZWUtZGF0YS9lbnRpdHktcGlja2VyLXRyZWUtZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBFbnRpdHlQaWNrZXJUcmVlU2VsZWN0ZWRDb21wb25lbnRcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci10cmVlLXNlbGVjdGVkL2VudGl0eS1waWNrZXItdHJlZS1zZWxlY3RlZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW50aXR5UGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVNYW5hZ2VyU2V0dGluZywgRmlsZVVwbG9hZFNldHRpbmcgfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvbW9kZWxzL2ZpbGUtc2V0dGluZ3MnO1xuaW1wb3J0IHsgRmlsZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVUeXBlRmxhZyB9IGZyb20gJy4uL21vZGVscy9maWxlLXR5cGUnO1xuaW1wb3J0IHsgRmlsdGVyLCBTb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XG5pbXBvcnQgeyBLZXlWYWx1ZVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LW1ldGFkYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFzdGVyRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYXN0ZXItZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xUcmVlTm9kZSwgQ3J1ZEZvcm1Db21wb25lbnQgfSBmcm9tICcuLy4uL2NvbXBvbmVudHMvY3J1ZC9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ29ycmVjdG9yIH0gZnJvbSAnLi9iYXNlL2NvcnJlY3RvcnMnO1xuaW1wb3J0IHsgSVZhbGlkYXRvciB9IGZyb20gJy4vYmFzZS92YWxpZGF0b3JzJztcbmltcG9ydCB7IEVudW1Db250cm9sUGlja2VyVHlwZSwgRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5LCBGb3JtU3RhdGUsIFNoYXJlZEZvbGRlclR5cGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBXb3JrZmxvd1NldHRpbmcsIFdvcmtmbG93U2V0dGluZ05ldyB9IGZyb20gJy4vd29ya2Zsb3ctc2NoZW1hJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFByb3BlcnR5KGluaXQ6IG9iamVjdCwgdG9NYXA6IG9iamVjdCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgdG9NYXBba2V5XSA9IGluaXRba2V5XTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RlbFNjaGVtYSB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZnVsbE5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGRhdGFUeXBlPzogJ2ludCcgfCAnZGVjaW1hbCcgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ3N0cmluZycgfCAnYm9vbGVhbicgfCAndGltZXNwYW4nIHwgJ2h0bWwnID0gJ3N0cmluZyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTW9kZWxTY2hlbWEpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZEJhc2Uge1xuICAgIC8vIENvbXBvbmVudCBzdWJzY3JpYmUgLSBLaGkgc3ViY3JpYmUgbeG7mXQgY29tcG9uZW50IHRow6wgYWRkIHbDoG8gYXJyYXkgxJHhu4Mga2hpIGRlc3Ryb3kgdGjDrCB1bnN1YnNjcmliZVxuICAgIGNvbXBvbmVudFN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZEJhc2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RTZXR0aW5nIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHRhcmdldFBhdGg/OiBzdHJpbmc7XG4gICAgb2JqZWN0TmFtZSA9ICcnO1xuICAgIGVudGl0eUtleSA9ICdpZCc7XG4gICAgc2V0dGluZ0tleT86IHN0cmluZztcbiAgICBlbnRpdHlNZXRhZGF0YVNlcnZpY2U/OiBFbnRpdHlNZXRhZGF0YVNlcnZpY2U7XG4gICAgbW9kZWxTY2hlbWFzPzogTW9kZWxTY2hlbWFbXSA9IFtdO1xuICAgIGNvbHM/OiBDb2x1bW5TY2hlbWFCYXNlW10gPSBbXTtcbiAgICBjb21tb25TY2hlbWFzPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICBjb2x1bW5TZXR0aW5nPzogQ29sdW1uU2V0dGluZyA9IG5ldyBDb2x1bW5TZXR0aW5nKCk7XG4gICAgcGFnZVNldHRpbmc/OiBQYWdlU2V0dGluZyA9IG5ldyBQYWdlU2V0dGluZygpO1xuICAgIGhlaWdodFR5cGU/OiBIZWlnaHRUeXBlID0gSGVpZ2h0VHlwZS5kZWZhdWx0OyAvLyBDw7MgY3VzdG9tIGNoaeG7gXUgY2FvIGtow7RuZzogVGjGsOG7nW5nIHPhu60gZOG7pW5nIHRyb25nIGRpYWxvZ1xuICAgIGZpeEhlaWdodFR5cGVJbkRpYWxvZz89IHRydWU7XG4gICAgbXVsdGlwbGVDaGVja1doZW5DbGlja1JvdyA9IHRydWU7XG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xuICAgIHN0aWNreUNvbHVtbiA9IGZhbHNlO1xuICAgIHRhYmxlTmFtZT86IHN0cmluZztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xuICAgIHJlU2VsZWN0TGFzdEl0ZW0/PSB0cnVlOyAvLyBTZWxlY3QgbOG6oWkgaXRlbSBjdeG7kWkgY8O5bmcgxJHDoyBjaOG7jW4gY+G7p2EgZ3JpZFxuICAgIGZpcmVFdmVudFdoZW5SZVNlbGVjdD89IGZhbHNlO1xuICAgIGFkdmFuY2VEYXRhPzogYW55ID0ge307XG4gICAgZmllbGROZWVkR2V0UmVmPzogUmVmRmllbGRbXSA9IFtdO1xuICAgIHdvcmtmbG93U2V0dGluZz86IFdvcmtmbG93U2V0dGluZztcbiAgICB3b3JrZmxvd1NldHRpbmdOZXc/OiBXb3JrZmxvd1NldHRpbmdOZXc7XG4gICAgaXNXb3JrZmxvd1RyZWU/OiBib29sZWFuID0gZmFsc2U7XG4gICAgd29ya2Zsb3dDb25maWdBZHZhbmNlPzogV29ya2Zsb3dDb25maWdBZHZhbmNlO1xuICAgIGlnbm9yZVdvcmtmbG93PzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlGaWVsZDogc3RyaW5nIHwgKChpdGVtKSA9PiBzdHJpbmcpOyAvLyB0csaw4budbmcgxJHhuqFpIGRp4buHbiBjaG8gYuG6o24gZ2hpIGzDoG0gdGnDqnUgxJHhu4EgaGnhu4NuIHRo4buLIChwaOG7pWMgduG7pSBjaG8gY8OhYyBk4buLY2ggduG7pSBraMOhYyBraGFpIHRow6FjKVxuICAgIGdldERpc3BsYXlOYW1lSW5TZXJ2ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBoYXNDdXN0b21IYW5kbGVDbGlja1JvdyA9IGZhbHNlO1xuICAgIGNoZWNrQWxsb3dUcmluaEt5OiAocm93RGF0YSkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgICBjaGVja0FsbG93U2VsZWN0Um93OiAocm93RGF0YSwgZXZ0PykgPT4gYm9vbGVhbjtcbiAgICBnZXRJdGVtU3RhdGU6IChsc3RSb3dEYXRhOiBhbnlbXSkgPT4geyBba2V5OiBzdHJpbmddOiBhbnk7IH07XG4gICAgZ2V0RGF0YUZvck5leHRGaXJzdFN0ZXBUYXNrPzogKHJvd0RhdGEpID0+ICh7fSk7XG4gICAgY2hlY2tQZXJtaXNpb25UcmluaEt5ID0gZmFsc2U7XG4gICAgdXNlV29ya2Zsb3dCdXR0b24/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBzaG93RWRpdExpbmsgPSB0cnVlO1xuICAgIG1kV2lkdGhDb21tb25TZWFyY2ggPSAzO1xuICAgIHVzZUNvbW1vblNlYXJjaCA9IGZhbHNlO1xuICAgIHVzZUNvbW1vbkZ1bGxUZXh0U2VhcmNoID0gdHJ1ZTtcblxuICAgIGhpZGRlbkhlYWRlciA9IGZhbHNlO1xuICAgIGhpZGRlblBhZ2VTZXR0aW5nID0gZmFsc2U7XG4gICAgaGlkZGVuVGV4dFBhZ2UgPSBmYWxzZTtcbiAgICBoaWRkZW5Ub29sYmFyID0gZmFsc2U7XG4gICAgaGlkZGVuQnV0dG9ucyA9IGZhbHNlO1xuICAgIGhpZGRlbkFkdmFuY2VTZWFyY2ggPSBmYWxzZTtcbiAgICBoaWRkZW5TYXZlU2V0dGluZyA9IGZhbHNlO1xuICAgIGhpZGRlblNldHRpbmcgPSBmYWxzZTtcbiAgICBoaWRkZW5TZXR0aW5nUGVybWlzc2lvbiA9IGZhbHNlO1xuICAgIGhpZGRlblNldHRpbmdXb3JrZmxvdyA9IGZhbHNlO1xuICAgIGhpZGRlblBhZ2VUaXRsZSA9IGZhbHNlO1xuXG4gICAgaGlkZGVuQ2hlY2tib3ggPSBmYWxzZTtcbiAgICBoaWRkZW5PcmRlckNvbHVtbiA9IGZhbHNlO1xuICAgIGhpZGRlbldvcmtmbG93Q29sdW1uID0gZmFsc2U7XG4gICAgYWxsb3dGaWx0ZXJXb3JrZmxvd0NvbHVtbiA9IGZhbHNlO1xuICAgIGhpZGRlbkZ1bmN0aW9uQ29sdW1uID0gZmFsc2U7XG4gICAgaGlkZGVuUmVmcmVzaCA9IGZhbHNlO1xuICAgIGhpZGRlbkZpbHRlclJvdyA9IGZhbHNlO1xuICAgIGhpZGRlblRyaW5oS3kgPSB0cnVlO1xuICAgIHVzZUJhc2VUcmluaEt5ID0gdHJ1ZTtcbiAgICBkaXNhYmxlU2hhcmUgPSBmYWxzZTtcbiAgICBkaXNhYmxlVmlld1dvcmtmbG93QXR0YWNoID0gZmFsc2U7XG4gICAgaGlkZGVuV29ya2Zsb3dDb3JlU3RhdHVzID0gdHJ1ZTtcbiAgICByZXF1aXJlZFZhbkJhbkRpQWZ0ZXJUcmluaEt5ID0gZmFsc2U7XG5cbiAgICBncm91cENvbHVtbj86IENvbHVtblNjaGVtYUJhc2U7XG5cbiAgICBzaG93RXhwb3J0QWxsID0gZmFsc2U7XG4gICAgc2hvd0V4cG9ydFNlbGVjdGVkSXRlbXMgPSB0cnVlO1xuICAgIHNob3dFeHBvcnRXb3JkU2VsZWN0ZWRJdGVtcyA9IGZhbHNlO1xuICAgIGV4cG9ydEFsbE1vZGVsOiBFeHBvcnRBbGxNb2RlID0gRXhwb3J0QWxsTW9kZS5BdXRvR2V0RGF0YTtcbiAgICBleHBvcnRJdGVtc01vZGU6IEV4cG9ydEl0ZW1zTW9kZSA9IEV4cG9ydEl0ZW1zTW9kZS5Gcm9tSHRtbDtcblxuICAgIGVuYWJsZVZlcnNpb24gPSBmYWxzZTtcbiAgICBzaG93VmVyc2lvbkJ1dHRvbiA9IGZhbHNlO1xuICAgIHZlcnNpb25Nb2RlbD86IHsgW2tleTogc3RyaW5nXTogYW55OyB9ID0ge307XG4gICAgc2hvd0hpc3RvcnkgPSBmYWxzZTtcbiAgICBoaXN0b3J5PzogYW55O1xuXG4gICAgY29sb3JGaWx0ZXJGaWVsZCA9ICcnO1xuICAgIGNvbG9yRmlsdGVyVGFibGU/OiBSb3dDb2xvck9wdGlvbltdID0gW107XG5cbiAgICBlbnRpdHlNZXRhZGF0YVNldHRpbmc/OiBDcnVkRm9ybVNldHRpbmcgPSBuZXcgQ3J1ZEZvcm1TZXR0aW5nKCk7XG5cbiAgICBmaWVsZFNlYXJjaFRleHQ/OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZpbHRlclRlbXBsYXRlQWR2cz86IEZpbHRlcltdO1xuXG4gICAgZnVuY3Rpb246IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24gPSBuZXcgQ3J1ZExpc3RDdXN0b21GdW5jdGlvbigpO1xuXG4gICAgcG9wdXBIZWFkZXI/PSAnJztcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKCk7XG4gICAgbWFza0NsYXNzPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQXV0byBnZW5lcmF0ZSBncmlkSW5mby5maWVsZHMgdXNpbmcgc2V0dGluZy5jb2xzICsgZGF0YUxpc3QuYWRkdGlvbmFsRmllbGRzXG4gICAgICogQGRhdGUgMTEvNC8yMDIyIC0gMjowNDozMSBQTVxuICAgICAqXG4gICAgICogQHR5cGUgez9ib29sZWFufVxuICAgICAqL1xuICAgIGF1dG9HZW5lcmF0ZVNlbGVjdEZpZWxkcz89IGZhbHNlO1xuXG4gICAgbW9kaWZ5Um93RGF0YUZvclRhc2s6IChyb3dEYXRhKSA9PiB2b2lkID0gKHJvd0RhdGEpID0+ICh7fSk7XG4gICAgbW9kaWZ5SXRlbVRhc2s6IChtb2RlbFRhc2ssIHJvd0RhdGEpID0+IHZvaWQgPSAobW9kZWxUYXNrLCByb3dEYXRhKSA9PiAoe30pO1xuICAgIGdldEN1c3RvbURhdGFUcmluaEt5OiAocm93RGF0YSkgPT4gYW55ID0gKHJvd0RhdGEpID0+ICh7fSk7XG4gICAgZ2V0TGFiZWxCdXR0b25UcmluaEt5OiAocm93RGF0YSkgPT4gc3RyaW5nID0gKHJvd0RhdGEpID0+ICdUcsOsbmgga8O9JztcbiAgICBjaGVja1JlYWR5VG9UcmluaEt5OiAoKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdFNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dDb25maWdBZHZhbmNlIHtcbiAgICBnZXRXb3JrZmxvd1NldHRpbmc6IChyb3dEYXRhKSA9PiBXb3JrZmxvd1NldHRpbmdOZXc7XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uIHtcbiAgICAvLyBDdXN0b21pemVcbiAgICBnZXRTZWFyY2hDb250cm9sPzogKGZpZWxkOiBzdHJpbmcpID0+IEZvcm1TY2hlbWFCYXNlW10gPSAoZmllbGQ6IHN0cmluZykgPT4gbnVsbDtcbiAgICAvLyBBc3luYyBmdW5jdGlvblxuICAgIG1vZGlmeUFkdmFuY2VTZWFjaE1vZGVsPzogKGRhdGE6IEFkdmFuY2VTZWFyY2hEYXRhLCBzZXR0aW5nOiBBZHZhbmNlU2VhcmNoU2V0dGluZykgPT4gUHJvbWlzZTx2b2lkPiA9IGFzeW5jIChkYXRhKSA9PiBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24pIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVyc29uYWxTZXR0aW5nIHtcbiAgICBjb2x1bW5TZXR0aW5nPzogQ29sdW1uU2V0dGluZyA9IG5ldyBDb2x1bW5TZXR0aW5nKCk7XG4gICAgcGFnZVNldHRpbmc/OiBQYWdlU2V0dGluZyA9IG5ldyBQYWdlU2V0dGluZygpO1xuICAgIGNvbG9yRmlsdGVyRmllbGQgPSAnJztcbiAgICBjb2xvckZpbHRlclRhYmxlPzogUm93Q29sb3JPcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBlcnNvbmFsU2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkTGlzdERhdGEgZXh0ZW5kcyBDcnVkQmFzZSB7XG4gICAgbG9hZGluZyA9IGZhbHNlO1xuICAgIGFkanVzdGVkUG9zaXRpb25Mb2FkaW5nID0gZmFsc2U7XG4gICAgcmVhZHkgPSB0cnVlO1xuICAgIC8vIGJhc2UgcmVhZHkgbMOgIGNo4bupYyBuxINuZyBraeG7g20gdHJhIHJlYWR5IGPhu6dhIHJpw6puZyB0cm9uZyBiYXNlLiBrIGdp4buRbmcgduG7m2kgcmVhZHkg4bufIHRyw6puXG4gICAgLy8gRMO5bmcgxJHhu4Mga2nhu4NtIHRyYSBu4bq/dSBjw7Mgd29ya2Zsb3cgdGjDrCB04bqhbSB0aOG7nWkgY2jGsGEgY2hvIOG6pW4gdGjDqm0gbeG7m2kgbuG6v3UgY2jGsGEgbG9hZCB4b25nIGThu68gbGnhu4d1IGPhuqduIHRoaeG6v3RcbiAgICBiYXNlUmVhZHkgPSBmYWxzZTtcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcbiAgICAvLyDEkOG7kWkgduG7m2kgbGlzdCBk4bqhbmcgdHJlZSB0aMOsIHJhdyBkYXRhc291cmNlIGzDoCBsaXN0IGRhdGEga2hpIGNoxrBhIHTDoWkgY+G6pXUgdHLDumMgdGjDoG5oIGThu68gbGnhu4d1IHRyZWVcbiAgICBhbGxEYXRhU291cmNlPzogeyByYXc6IGFueVtdLCBkYXRhOiBhbnlbXTsgfSA9IHsgcmF3OiBbXSwgZGF0YTogW10gfTtcbiAgICBzZWxlY3RlZEl0ZW1zPzogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZEl0ZW0/OiBhbnk7XG4gICAgc2VsZWN0ZWRJdGVtTGFzdD86IGFueTtcbiAgICBzZWxlY3RlZElkPzogbnVtYmVyO1xuICAgIHRvdGFsID0gMDtcbiAgICBpdGVtRGF0YT86IGFueTtcbiAgICBhZHZhbmNlRGF0YTogYW55ID0ge307XG5cbiAgICAvLyBDw6FjIHRodeG7mWMgdMOtbmggYuG7lSBzdW5nIGRvIGLhu4sgbOG7l2kga2hpIHBhY2thZ2VcbiAgICBzdWJtaXR0aW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgLy8gRW5kIEPDoWMgdGh14buZYyB0w61uaCBi4buVIHN1bmcgZG8gYuG7iyBs4buXaSBraGkgcGFja2FnZVxuXG4gICAgZXhwYW5kZWRSb3dLZXlzPzogeyBba2V5OiBzdHJpbmddOiBib29sZWFuOyB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3REYXRhKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVudGl0eU1lZGF0YURhdGFTZXR0aW5nIHtcbiAgICBkYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRW50aXR5TWVkYXRhRGF0YVNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm93Q29sb3JPcHRpb24ge1xuICAgIGZpbHRlclZhbHVlID0gJyc7XG4gICAgY29tcGFyZVR5cGUgPSAnJztcbiAgICBjb2xvciA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJvd0NvbG9yT3B0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBhZ2VTZXR0aW5nIHtcbiAgICBwYWdlID0gMTtcbiAgICBwYWdlU2l6ZSA9IDE1O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBhZ2VTZXR0aW5nKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtblNldHRpbmcge1xuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPzogc3RyaW5nO1xuICAgIHNvcnREaXI/OiAtMSB8IDAgfCAxIHwgMiA9IC0xO1xuICAgIGdyb3VwRmllbGQgPSAnJztcbiAgICBncm91cEluQ2xpZW50Pz0gZmFsc2U7XG4gICAgc2hvd0dyb3VwU2l6ZTogYm9vbGVhbiA9IHRydWU7XG4gICAgZGV0YWlscz86IENvbHVtblNldHRpbmdEZXRhaWxbXSA9IFtdO1xuICAgIGNvbHVtblJlb3JkZXI/O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29sdW1uU2V0dGluZ0RldGFpbCB7XG4gICAgb3JkZXI/OiBudW1iZXIgPSAxO1xuICAgIGNvbHVtbkNvZGU/OiBzdHJpbmc7XG4gICAgY29sdW1uTmFtZT86IHN0cmluZztcbiAgICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgICB0ZXh0QWxpZ24/OiBUZXh0QWxpZ247XG4gICAgd2lkdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkRm9ybURhdGEgZXh0ZW5kcyBDcnVkQmFzZSB7XG4gICAgZGF0YT86IGFueSA9IHt9O1xuICAgIHN1Ym1pdHRpbmc/PSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBUcuG6oW5nIHRow6FpIGPhu6dhIGZvcm0gxJFhbmcgxJHGsOG7o2MgbeG7nzogTMOgIGZvcm0gdGjDqm0gbeG7m2ksIGhheSBmb3JtIHPhu61hLCBoYXkgZm9ybSB4w7NhXG4gICAgICovXG4gICAgZm9ybVN0YXRlPzogRm9ybVN0YXRlID0gRm9ybVN0YXRlLkFERDtcbiAgICB3b3JrZmxvd0J1dHRvbnM/OiBhbnlbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkRm9ybURhdGEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiB7XG4gICAgLy8gQ3VzdG9taXplXG4gICAgbW9kaWZ5RGF0YUFmdGVyR2V0Q2FjaGU/OiAoZGF0YTogYW55KSA9PiB2b2lkID0gKGRhdGE6IGFueSkgPT4gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRGb3JtU2V0dGluZyB7XG4gICAgZGlzYWJsZUNhY2hpbmcgPSBmYWxzZTtcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcbiAgICBzY2hlbWE/OiBGb3JtU2NoZW1hQmFzZVtdID0gW107XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcbiAgICBidWlsZEluU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZ1tdIHwgc3RyaW5nW11bXSA9IFtdO1xuICAgIGZpZWxkRHJvcGRvd24/OiB7IFtrZXk6IHN0cmluZ106IERyb3Bkb3duQ29udHJvbFNjaGVtYTsgfSA9IHt9O1xuICAgIGZpZWxkTmVlZEdldFJlZj86IHsgW2tleTogc3RyaW5nXTogVGV4dENvbnRyb2xTY2hlbWE7IH0gPSB7fTtcbiAgICBkaXNwbGF5RmllbGQ/OiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7XG4gICAgZmlyc3RGb2N1c0NvbnRyb2w/OiBzdHJpbmc7XG4gICAgZmlsdGVyQ2hlY2tFeGlzdEJ5VmVyc2lvbj86IEZpbHRlcltdO1xuICAgIGRlZmF1bHRGaWx0ZXJDaGVja0V4aXN0PzogRmlsdGVyW10gfCAoKCkgPT4gRmlsdGVyW10pO1xuICAgIGN1c3RvbVdvcmtmbG93Q29kZVRyaW5oS3k6IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleSA9IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleS5NQUNfRElOSDtcbiAgICBlbnRpdHlNZXRhZGF0YURhdGE/OiBDcnVkRm9ybURhdGE7XG4gICAgZW50aXR5TWV0YWRhdGFTZXR0aW5nPzogQ3J1ZEZvcm1TZXR0aW5nO1xuICAgIGZ1bmN0aW9uPzogQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uKCk7XG4gICAgZ2V0Q3VzdG9tRGF0YVRyaW5oS3k6IChyb3dEYXRhKSA9PiBhbnkgPSAocm93RGF0YSkgPT4gKHt9KTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkRm9ybVNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaERhdGEgZXh0ZW5kcyBDcnVkRm9ybURhdGEge1xuICAgIGluaXREYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWR2YW5jZVNlYXJjaERhdGEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaFNldHRpbmcgZXh0ZW5kcyBDcnVkRm9ybVNldHRpbmcge1xuICAgIGZpZWxkS2V5ID0gJ19rJztcbiAgICBlbnRpdHlQZXJtaXNzaW9uU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICBrZWVwSW5pdFNlYXJjaERhdGFOb3ROdWxsID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZHZhbmNlU2VhcmNoU2V0dGluZykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTY2hlbWFCYXNlIHtcbiAgICBmaWVsZD86IHN0cmluZztcbiAgICBmaWVsZEZpbHRlcj86IHN0cmluZztcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZztcbiAgICB0eXBlPzogJ2Jvb2xlYW4nIHwgJ2ludCcgfCAnZGVjaW1hbCcgfCAnZGF0ZXRpbWUnIHwgJ3N0cmluZycgPSAnc3RyaW5nJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTY2hlbWFCYXNlKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1TY2hlbWFCYXNlIGV4dGVuZHMgU2NoZW1hQmFzZSB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgZnVsbExhYmVsPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgbWVzc2FnZUNsYXNzPzogc3RyaW5nO1xuICAgIHNob3dMYWJlbD89IHRydWU7XG4gICAgZ1dpZHRoPz0gMTI7XG4gICAgbWRXaWR0aD89IDY7XG4gICAgcm93U3Bhbj89IDE7XG4gICAgd2lkdGg/OiBzdHJpbmc7XG4gICAgY2xhc3M/PSAnJztcbiAgICBzdHlsZT86IGFueSA9IHt9O1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBoaWRkZW4/PSBmYWxzZTtcbiAgICBoaWRkZW5DaGVjaz86IChyb290TW9kZWw6IGFueSwgY3VycmVudE5vZGU6IENvbnRyb2xUcmVlTm9kZSkgPT4gYm9vbGVhbjtcbiAgICBoaWRkZW5PblZpZXc/PSBmYWxzZTtcbiAgICB2aXNpYmxlSW5MaXN0Pz0gdHJ1ZTtcbiAgICBvcGVyYXRvcj86IE9wZXJhdG9yO1xuICAgIGdyb3VwQ29kZT89ICcnO1xuICAgIGRlZmF1bHRWYWx1ZT86IGFueTtcbiAgICBmaWVsZEFsaWFzPz0gJyc7XG4gICAgZGF0YT86IGFueSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1TY2hlbWFCYXNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbnRhaW5lclNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICBjb250cm9sczogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICBzaG93SW5Cb3g/PSB0cnVlO1xuICAgIGJveFN0eWxlPzogYW55O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbnRhaW5lclNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIC8vIFVybCDEkeG7gyBs4bqleSBk4buvIGxp4buHdSAqKiogS0jDlE5HIFPhu6wgROG7pE5HIFRST05HIEPDgUMgQ0FTRSBQSOG7lCBCSeG6vk4sIENI4buIIFPhu6wgROG7pE5HIMSQ4buQSSBW4buaSSBGT1JNIEtI4bqiTyBTw4FUICoqKlxuICAgIHNlcnZpY2VVcmk/PSAnJztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XG4gICAgcmVmRmllbGRzPzogUmVmRmllbGRbXSA9IFtdO1xuICAgIGdyb3VwQ29kZT86IHN0cmluZztcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcblxuICAgIGlzU2VydmVyTG9hZD89IGZhbHNlO1xuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XG5cbiAgICBpc1RyZWU/PSBmYWxzZTtcbiAgICBpc1RyZWVCYXNlTW9kZWw/PSBmYWxzZTtcbiAgICBmaWVsZFRyZWU/OiBzdHJpbmc7XG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcbiAgICBzZWxlY3REZXNjZW5kYW50Pz0gZmFsc2U7Ly8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uLCBjaMOhdSBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxuXG4gICAgcGx1c1VybD86IHN0cmluZztcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD89ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz89ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBhZnRlckdldERhdGE/OiBGdW5jdGlvbjtcblxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcblxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/PSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXG5cbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XG4gICAgbW9kaWZ5RmlsdGVyPzogRnVuY3Rpb247XG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMYWJlbFNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICBmb3I/PSAnJztcbiAgICBpc0h0bWw/PSBmYWxzZTtcbiAgICBtZFdpZHRoPz0gMTI7XG4gICAgaW5kZXhMYWJlbD86IG51bWJlcjtcbiAgICB0ZXh0Pz0gJyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTGFiZWxTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGl0bGVTY2hlbWEgZXh0ZW5kcyBMYWJlbFNjaGVtYSB7XG4gICAgY2xhc3M/PSAndGl0bGUtZ3JvdXAgdGV4dC1ib2xkJztcbiAgICBtZFdpZHRoPz0gMTI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGl0bGVTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIF9jb21wb25lbnQ/OiBhbnk7IC8vIENvbXBvbmVudCBj4bunYSBzY2hlbWEga2hpIGto4bufaSB04bqhb1xuICAgIHVuaXF1ZUZpZWxkPzogc3RyaW5nOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWFcbiAgICBhdXRvZm9jdXM/PSBmYWxzZTtcbiAgICB2YWxpZGF0b3JzPzogSVZhbGlkYXRvcltdID0gW107XG4gICAgY29ycmVjdG9ycz86IElDb3JyZWN0b3JbXSA9IFtdO1xuICAgIHJlcXVpcmVkPz0gZmFsc2U7XG4gICAgZW5hYmxlQ2FjaGluZz89IGZhbHNlO1xuICAgIG9uQ2hhbmdlZD86IEZ1bmN0aW9uO1xuICAgIG9uQWZ0ZXJDaGFuZ2VkPzogRnVuY3Rpb247XG4gICAgb25Jbml0PzogRnVuY3Rpb247XG4gICAgb25Sb3dOb2RlRmluaXNoSW5pdD86IEZ1bmN0aW9uO1xuICAgIHRyaWdnZXJMb2FkQ2hpbGQ/OiBGdW5jdGlvbjtcbiAgICBoYXNPcGVyYXRvckNhbkJvPz0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybUNvbnRyb2xCYXNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICAvKiogQ29weSB04burIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgKi9cbiAgICAvLyBVcmwgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgKioqIEtIw5RORyBT4busIEThu6RORyBUUk9ORyBDw4FDIENBU0UgUEjhu5QgQknhur5OLCBDSOG7iCBT4busIEThu6RORyDEkOG7kEkgVuG7mkkgRk9STSBLSOG6ok8gU8OBVCAqKipcbiAgICBzZXJ2aWNlVXJpPz0gJyc7XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XG5cbiAgICBpc1NlcnZlckxvYWQ/PSBmYWxzZTtcbiAgICBwcmV2ZW50U2VydmVyTG9hZE9uSW5pdD89IGZhbHNlO1xuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XG5cbiAgICBpc1RyZWU/PSBmYWxzZTtcbiAgICBpc1RyZWVCYXNlTW9kZWw/PSBmYWxzZTtcbiAgICBmaWVsZFRyZWU/OiBzdHJpbmc7XG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxuICAgIGZpZWxkTWFQaGFuQ2FwPz0gJ21hUGhhbkNhcCc7IC8vIEZpZWxkIG3DoyBwaMOibiBj4bqlcFxuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcbiAgICBzZWxlY3REZXNjZW5kYW50Pz0gZmFsc2U7Ly8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uLCBjaMOhdSBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxuXG4gICAgcGFnZVNpemU/OiBudW1iZXIgPSAxNTsgLy8gRMO5bmcgY2hvIGRyb3Bkb3duIHNlcnZlciBsb2FkXG4gICAgcGx1c1VybD86IHN0cmluZztcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD89ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz89ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBmaWx0ZXJXaGlsZVByb2Nlc3M/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBiaW5kaW5nRmlsdGVycz86IEZpbHRlcltdO1xuICAgIGFmdGVyR2V0RGF0YT86IEZ1bmN0aW9uO1xuXG4gICAgZnVuY1NldERlZmF1bHRWYWx1ZT86IEZ1bmN0aW9uO1xuXG4gICAgcGFyZW50RmllbGQ/OiBzdHJpbmc7IC8vIENvbHVtbiB0xrDGoW5nIOG7qW5nIHRyb25nIHRhYmxlIHNxbCBzZXJ2ZXIuXG4gICAgZmllbGRWYWx1ZVBhcmVudD89ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cblxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmaXJlQ2FsbEJhY2tJbnNpZGU/PSB0cnVlO1xuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uIHwgKChmaWx0ZXJzOiBGaWx0ZXJbXSwgY29tcG9uZW50PzogYW55LCB0cmVlTm9kZT86IENvbnRyb2xUcmVlTm9kZSkgPT4gdm9pZCk7XG5cbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNHZXRWYWx1ZT86IChpdGVtKSA9PiBhbnk7XG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xuXG4gICAgLyoqIEVuZCBjb3B5IHThu6sgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSAqL1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRleHRDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBzZWxlY3RBbGxUZXh0Pz0gZmFsc2U7IC8vIENo4buNbiB04bqldCBj4bqjIHRleHQga2hpIGZvY3VzXG5cbiAgICBwbGFjZWhvbGRlcj89ICcnO1xuICAgIGRhdGFGb3JtYXQ/OiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ251bWJlcicgfCAnZW1haWwnIHwgJ3Bob25lJyB8ICdmYXgnIHwgJ21vbmV5JyB8ICdtb25leWludCcgfCAnYW1vdW50JyA9ICd0ZXh0JztcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgbWluPz0gMDtcbiAgICBtYXg/PSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcblxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XG5cbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPz0gJyc7XG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XG4gICAgZmllbGRQbHVzPz0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZWZlcmVuY2VUZXh0Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgcGxhY2Vob2xkZXI/PSAnJztcbiAgICBzdWZmaXg/OiBzdHJpbmc7XG4gICAgcHJlZml4Pzogc3RyaW5nO1xuXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xuICAgIGdyb3VwQ29kZT86IHN0cmluZztcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICBkYXRhU291cmNlPzogYW55W107XG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcblxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/PSAnJztcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcbiAgICBmaWVsZFBsdXM/PSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSZWZlcmVuY2VUZXh0Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0Q29udHJvbFNjaGVtYVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xuICAgIHBsYWNlaG9sZGVyPz0gJyc7XG4gICAgZGF0YUZvcm1hdD86ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdwaG9uZScgfCAnZmF4JyB8ICdtb25leScgfCAnbW9uZXlpbnQnIHwgJ2Ftb3VudCcgPSAndGV4dCc7XG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRDb250cm9sU2NoZW1hV2l0aFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWFza0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBUZXh0Q29udHJvbFNjaGVtYSB7XG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JyA9ICdpbnQnO1xuICAgIGF1dG9Gb3JtYXQ/PSB0cnVlO1xuICAgIG1pbj89IDA7XG4gICAgbWF4Pz0gOTk5OTk5OTk5OTtcbiAgICBwcmVmaXg/PSAnJztcbiAgICBzdWZmaXg/PSAnJztcbiAgICBkZWNpbWFsUGxhY2VzPz0gMjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBNYXNrQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOdW1iZXJSYW5nZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBUZXh0Q29udHJvbFNjaGVtYSB7XG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JztcbiAgICBtaW4/PSAwO1xuICAgIG1heD89IDk5OTk5OTk5OTk7XG4gICAgcHJlZml4Pz0gJyc7XG4gICAgc3VmZml4Pz0gJyc7XG4gICAgZGVjaW1hbFBsYWNlcz89IDI7XG4gICAgLy8gU+G7rSBk4bulbmcgxJHhu4Mga2hhaSBiw6FvIG9wZXJhdG9yIGNobyBjb250cm9sIHRyb25nIHF1ZXJ5LWJ1aWxkZXIgdGhheSBjaG8gY8OhYyBvcGVyYXRvciBt4bq3YyDEkeG7i25oIMSRxrDhu6NjIHThuqFvIHThu6sgcXVlcnktYnVpbGRlclxuICAgIG9wZXJhdG9ycz86IGFueVtdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE51bWJlclJhbmdlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIHBhbmVsQ2xhc3M/PSAnJztcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBzaG93QnV0dG9uQmFyPz0gZmFsc2U7XG4gICAgc2hvd1RpbWU/PSBmYWxzZTtcbiAgICBzaG93SWNvbj89IHRydWU7XG4gICAgZm9ybWF0PzogJ25vcm1hbCcgfCAnZnJvbU5vdycgPSAnbm9ybWFsJztcbiAgICBzaG93T25Gb2N1cz89IHRydWU7XG4gICAgbWluRGF0ZT86IERhdGUgPSBudWxsO1xuICAgIG1heERhdGU/OiBEYXRlID0gbnVsbDtcbiAgICB0aW1lT25seT89IGZhbHNlO1xuICAgIGRhdGVGb3JtYXQ/PSAnZGQvbW0veXknO1xuICAgIHZpZXc/OiAnZGF0ZScgfCAnbW9udGgnID0gJ2RhdGUnO1xuICAgIHllYXJSYW5nZT86IHN0cmluZyA9ICcxOTUwOjIwNTAnO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERhdGVUaW1lQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnNob3dUaW1lID8gJ2RkL01NL3l5eXkgaGg6bW0nIDogJ2RkL01NL3l5eXknO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVSYW5nZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRlVGltZUNvbnRyb2xTY2hlbWEge1xuICAgIHNob3dJY29uPz0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XG5cbiAgICAvLyAjUHJvcGVydHkgb3ZlcnJpZGVcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xuICAgIC8vICNFbmQgcHJvcGVydHkgb3ZlcnJpZGVcblxuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuXG4gICAgbXVsdGlwbGU/PSB0cnVlO1xuICAgIGxpbWl0Pz0gMTAwMDtcbiAgICB0aXRsZT89ICcgJztcbiAgICBjb2x1bW5zPzogRW50aXR5UGlja2VyQ29sdW1uW107XG4gICAgZmllbGRTZWFyY2hUZXh0Pzogc3RyaW5nW10gPSBbXTtcbiAgICBkYXRhSW5pdD86IGFueSA9IHt9O1xuICAgIGFkdmFuY2VTZWFyY2hNb2RlbD86IGFueSA9IHt9O1xuICAgIG9uU2VhcmNoRm9ybUluaXRpYWxpemVkPzogRnVuY3Rpb247XG4gICAgb25Gb3JtRXZlbnQ/OiBGdW5jdGlvbjtcbiAgICBvblNlbGVjdEVudGl0eT86IEZ1bmN0aW9uOyAvLyBu4bq/dSBmdW5jdGlvbiBraMOhYyBudWxsIHbDoCByZXR1cm4gdHJ1ZSBz4bq9IGNobyBwaMOpcCBt4bufIGRpYWxvZ1xuICAgIGFmdGVyQ29udGVudExlZnRJbml0PzogKGNydWRMaXN0OiBDcnVkTGlzdENvbXBvbmVudCkgPT4gdm9pZDsgLy8gU2F1IGtoaSBjw6FjIHRlbXBsYXRlIGNvbnRlbnQgaW5pdFxuICAgIGFmdGVyQ29udGVudFJpZ2h0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcbiAgICBhZnRlckdldERhdGE/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckNvbXBvbmVudCkgPT4gdm9pZDtcbiAgICBhZnRlckdldERhdGFVblBpY2tlZD86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudCB8IEVudGl0eVBpY2tlclRyZWVEYXRhQ29tcG9uZW50KSA9PiB2b2lkO1xuICAgIGFmdGVyR2V0RGF0YVBpY2tlZD86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQgfCBFbnRpdHlQaWNrZXJUcmVlU2VsZWN0ZWRDb21wb25lbnQpID0+IHZvaWQ7XG5cbiAgICAvLyBDw7Mgc+G7rSBk4bulbmcgcGx1c1VybCDhu58gbcOgbiBow6xuaCBjaMOtbmggRW50aXR5UGlja2VyIGhheSBraMO0bmcuXG4gICAgdXNlRGVmYXVsdFBsdXNsVXJsSW5MaXN0Pz0gZmFsc2U7XG5cbiAgICAvLyBDw7Mgc+G7rSBk4bulbmcgZGVmYXVsdEZpbHRlciBraGkgdMOsbSBraeG6v20gZGFuaCBzw6FjaCDhu58gbcOgbiBow6xuaCBjaMOtbmggRW50aXR5UGlja2VyLlxuICAgIHVzZURlZmF1bHRGaWx0ZXJJbkxpc3Q/PSBmYWxzZTtcblxuICAgIGhpZGRlbkFkdmFuY2VTZWFyY2g/PSBmYWxzZTtcbiAgICByZWFkT25seT89IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEge1xuICAgIHNwbGl0Y2hhcj86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBkYXRhVHlwZT86IEVudW1Db250cm9sUGlja2VyVHlwZSA9IEVudW1Db250cm9sUGlja2VyVHlwZS5VU0VSO1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIG1vZGlmeUluaXRTZWFyY2hEYXRhPzogRnVuY3Rpb247IC8vIFPhu60gZOG7pW5nIMSR4buDIG1vZGlmeSBkYXRhIGPhu6dhIHBo4bqnbiBzZWFyY2gsIHRoxrDhu51uZyDEkeG7gyBzZXQgaW5pdCBkYXRhIGR5bmFtaWMgdGhlbyBuaHUgY+G6p3VcbiAgICBjYWxsQmFjaz86IHsgW2tleTogc3RyaW5nXTogRnVuY3Rpb247IH07XG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcbiAgICBtb2RpZnlDb250cm9sPzogRnVuY3Rpb247IC8vIFPhu60gZOG7pW5nIMSR4buDIG1vZGlmeSBzY2hlbWEgYmFzZVxuICAgIG5lZWRDbG9uZT89IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXFxcbiAgICBhZnRlckdldERhdGFEcm9wZG93bj86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogQXV0b0NvbXBsZXRlUGlja2VyQ29tcG9uZW50KSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hIHtcbiAgICBkYXRhVHlwZT86IEVudW1Db250cm9sUGlja2VyVHlwZSA9IEVudW1Db250cm9sUGlja2VyVHlwZS5VU0VSO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFdyYXBQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXG4gICAgb3BlcmF0b3JzPzogYW55W107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3VzdG9tQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2xvclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbG9yUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFNwYW5Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBzb3VyY2VGaWVsZD86IHN0cmluZztcbiAgICBpc2h0bWw/PSBmYWxzZTtcbiAgICBlZGl0YWJsZT89IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFNwYW5Db250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbG9yQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgc291cmNlRmllbGQ/OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sb3JDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEtleVZhbHVlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IEtleVZhbHVlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbWFnZVVwbG9hZGVyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgaXNBdmF0YXI/OiBib29sZWFuID0gZmFsc2U7XG4gICAgbXVsdGlwbGU/OiBib29sZWFuID0gdHJ1ZTtcbiAgICBsb2FkQnlFbnRpdHlLZXk/OiBib29sZWFuID0gZmFsc2U7XG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xuICAgIHRlbXBsYXRlSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgdGVtcGxhdGVJdGVtcz86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogSW1hZ2VVcGxvYWRlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICAvLyBlbWl0IGV2ZW50IGtoaSBjaOG7jW4gbeG7mXQgcm93IHRyb25nIGZpbGUgbWFuYWdlclxuICAgIG9uU2VsZWN0ZWQ/OiBGdW5jdGlvbiA9ICgpID0+IHtcbiAgICB9O1xuICAgIG1kV2lkdGg/PSAxMjtcbiAgICAvKipcbiAgICAgKiDEkOG7i25oIGThuqFuZyBmaWxlIGNvbnRyb2wgc+G6vSBuaOG6rW4sIGThuqFuZyBjaHXhu5dpIGPDoWNoIG5oYXUgYuG7n2kgZOG6pXUgJywnXG4gICAgICogc+G6vSBvdmVycmlkZSBhY2NlcHRGaWxlVHlwZXMuXG4gICAgICogVkQ6ICcuZG9jLC5kb2N4LC5wZGYnXG4gICAgICovXG4gICAgYWNjZXB0Pzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEZsYWcgZGUgYmlldCBmaWxlIHVwbG9hZCBuaGFuIG5odW5nIGxvYWkgZmlsZSBuYW8uXG4gICAgICogVkQ6IEZpbGVUeXBlRmxhZy5BVURJTyB8IEZpbGVUeXBlRmxhZy5WSURFT1xuICAgICAqL1xuICAgIGFjY2VwdEZpbGVUeXBlcz86IEZpbGVUeXBlRmxhZyA9IEZpbGVUeXBlRmxhZy5WSURFTyB8IEZpbGVUeXBlRmxhZy5JTUFHRSB8IEZpbGVUeXBlRmxhZy5ET0MgfCBGaWxlVHlwZUZsYWcuQVVESU8gfCBGaWxlVHlwZUZsYWcuQ09NUFJFU1NFRDtcbiAgICBtYXhGaWxlU2l6ZT89IDEwMDAwMDAwMDtcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT89ICd7MH06IFF1w6EgZHVuZyBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsPz0gJ2R1bmcgbMaw4bujbmcgdOG7kWkgxJFhIGzDoCB7MH0uJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeT89ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPz0gJ8SR4buLbmggZOG6oW5nIGZpbGUgY2hvIHBow6lwOiB7MH0uJztcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk/PSAnUXXDoSBz4buRIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlRGV0YWlsPz0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xuICAgIG1vZGU/OiBGaWxlTWFuYWdlck1vZGUgfCBGaWxlVXBsb2FkTW9kZSA9IEZpbGVNYW5hZ2VyTW9kZS5tdWx0aXBsZTtcbiAgICBsYXlvdXQ/OiBFbnVtRmlsZUxheW91dCA9IEVudW1GaWxlTGF5b3V0LkxJU1Q7XG4gICAgcmVhZG9ubHk/PSBmYWxzZTtcblxuICAgIC8vIFNlcnZpY2UgZMO5bmcgxJHhu4MgbOG6pXkgZGF0YXNvdXJjZSBj4bunYSBuaGnhu4F1IGNvbnRyb2wgbeG7mXQgbOG6p24uXG4gICAgZmlsZURhdGFTZXJ2aWNlPzogRmlsZURhdGFTZXJ2aWNlO1xuXG4gICAgLy8gQuG7mSAzIGtleSDEkeG7gyBs4bqleSB0aMawIG3hu6VjIGfhu5FjLlxuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xuICAgIGVudGl0eT86IHN0cmluZztcbiAgICBlbnRpdHlLZXk/OiBzdHJpbmc7XG4gICAgLy8gVHLGsOG7nW5nIGjhu6NwIOG7nyB0cm9uZyBmb3JtLCBkw7luZyB0csaw4budbmcgbsOgeSDEkeG7gyBs4bqleVxuICAgIC8vIGVudGl0eUtleSB04burIG1vZGVsLmRhdGEgdGhheSB2w6wgdHJ1eeG7gW4gdsOgbyBlbnRpdHlLZXlcbiAgICBlbnRpdHlLZXlGaWVsZD89ICdpZCc7XG4gICAgcm9vdEZvbGRlcklkPzogc3RyaW5nOyAvLyBjaG8gdHLGsOG7nW5nIGjhu6NwIHThuqFvIGZvbGRlciBiw6puIG5nb8OgaSBjb21wb25lbnRcblxuICAgIC8vIFTDqm4gdGjGsCBt4bulYyBn4buRYyBraGkgaGnhu4NuIHRo4buLIHRyw6puIGJyZWFkY3J1bWJzLlxuICAgIHJvb3RGb2xkZXJOYW1lPzogc3RyaW5nO1xuXG4gICAgZGF0YUt5U29Eb25WaT86IEZ1bmN0aW9uO1xuXG4gICAgaW5UYWlMaWV1Pz0gZmFsc2U7XG4gICAgaW5UYWlMaWV1Q2h1bmc/PSBmYWxzZTtcbiAgICBjb3B5VG9Gb2xkZXJJZD89ICcnO1xuICAgIG11bHRpcGxlPz0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb250cm9sU2NoZW1hIGV4dGVuZHMgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hIHtcbiAgICBtb2RlPz0gRmlsZVVwbG9hZE1vZGUudXNpbmdTZXJ2aWNlRmlsZTtcbiAgICBtZFdpZHRoPz0gNjtcbiAgICBzaGFyZWRGb2xkZXJUeXBlPzogU2hhcmVkRm9sZGVyVHlwZSA9IFNoYXJlZEZvbGRlclR5cGUuVGVtcHQ7XG5cbiAgICBoaWRkZW5CdXR0b25zPz0gZmFsc2U7XG4gICAgZGlzYWJsZWQ/PSBmYWxzZTtcbiAgICByZWFkb25seT89IGZhbHNlO1xuICAgIGF1dG9TYXZlZD89IHRydWU7XG5cbiAgICBlbmFibGVTY2FuPz0gZmFsc2U7XG4gICAgZXh0cmFjdFppcEZpbGU/PSBmYWxzZTtcbiAgICBlbmFibGVEcml2ZUZpbGU/PSBmYWxzZTtcblxuICAgIHNob3dEb3dubG9hZEZpbGU/PSB0cnVlO1xuICAgIHNob3dEZWxldGVGaWxlPz0gdHJ1ZTtcbiAgICBzaG93UHJpbnRGaWxlPz0gdHJ1ZTtcbiAgICBtYXhGaWxlU2l6ZT89IDEwMDAwMDAwMDsgLy8gMTAwIE1CXG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZVN1bW1hcnk/PSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbD89ICdkdW5nIGzGsOG7o25nIHThu5FpIMSRYSBsw6AgezB9Lic7XG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZVN1bW1hcnk/PSAnezB9OiBLaMO0bmcgxJHDum5nIMSR4buLbmggZOG6oW5nIGZpbGUsICc7XG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZURldGFpbD89ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5Pz0gJ1F1w6Egc+G7kSBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZURldGFpbD89ICd04buRaSDEkWEgezB9IGZpbGUuJztcblxuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpbGVVcGxvYWRDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IFN3aXRjaENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcbiAgICBoaWRkZW5MYWJlbD89IGZhbHNlOyAvLyBTZXQgPSB0cnVlIGNo4bunIHnhur91IGtoaSBkw7luZyB0cm9uZyB0YWJsZSBzY2hlbWEgxJHhu4Mg4bqpbiBsYWJlbCDEkWksIHbDrCBsYWJlbCDEkcOjIGPDsyB0csOqbiB0acOqdSDEkeG7gSBj4buZdFxuICAgIGRlZmF1bHRWYWx1ZT89IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoZWNrYm94Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCdXR0b25Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIHNob3dMYWJlbD89IGZhbHNlO1xuICAgIGJ0Q2xhc3M/PSAncC1idXR0b24tdGV4dCc7XG4gICAgaWNvbj87XG4gICAgYnRTdHlsZT89IHsgd2lkdGg6ICdhdXRvJyB9O1xuICAgIG9uQ2xpY2s/OiBGdW5jdGlvbjtcbiAgICBidXR0b25UZXh0Pzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEJ1dHRvbkNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnV0dG9uVGV4dCA9IHRoaXMubGFiZWw7XG4gICAgICAgIHRoaXMubGFiZWwgPSAnJztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XG4gICAgdGVtcGxhdGU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICByb3dzPz0gNTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0QXJlYUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXNlclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIG11bHRpcGxlPz0gdHJ1ZTtcbiAgICB1c2VyVHlwZT89IFVzZXJUeXBlLkNhbkJvO1xuICAgIGxpbWl0Pz0gMjA7IC8vIEdp4bubaSBo4bqhbiBz4buRIG5nxrDhu51pIGTDuW5nIHThu5FpIMSRYSDEkcaw4bujYyBwaWNrXG4gICAgdGl0bGU/PSAnQ2jhu41uIG5nxrDhu51pIGTDuW5nJztcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcbiAgICBmaWx0ZXJXaGlsZVByb2Nlc3M/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47XG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcj89ICcnO1xuICAgIGxhenlMb2FkT3JnYW5pemF0aW9uPz0gZmFsc2U7XG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPz0gJ2Z1bGxOYW1lTmV3JztcbiAgICBmaWVsZFBsdXM/PSAnJztcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuICAgIHBhZ2VTaXplPzogbnVtYmVyO1xuICAgIG9uUmVhZHk/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XG4gICAgZ2V0RGlzcGxheU5hbWU/OiBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIG11bHRpcGxlPz0gdHJ1ZTtcbiAgICBsaW1pdD89IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBi4bqjbiBnaGkgdOG7kWkgxJFhIMSRxrDhu6NjIHBpY2tcbiAgICB0aXRsZT89ICdDaOG7jW4gxJHGoW4gduG7iyc7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnJztcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICBmaWVsZFBsdXM/PSAnJztcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIGlzVHJlZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBvblJlYWR5PzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvQ2F1VG9DaHVjUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWFOZXcgZXh0ZW5kcyBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWEge1xuICAgIGlzVHJlZT86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWFOZXcpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3JnYW5pemF0aW9uUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgZmlsdGVyPz0gdHJ1ZTtcbiAgICBtdWx0aXBsZT89IHRydWU7XG4gICAgcGFyZW50T3JnSWQ/OiBudW1iZXI7XG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcbiAgICBpc1VzaW5nSWQ/PSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE9yZ2FuaXphdGlvblBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29DYXVUb0NodWNDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBmaWx0ZXI/PSB0cnVlO1xuICAgIG11bHRpcGxlPz0gdHJ1ZTtcbiAgICBwYXJlbnRPcmdJZD86IG51bWJlcjtcbiAgICBwYXJlbnRPcmdDb2RlPzogc3RyaW5nO1xuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xuICAgIGlzVXNpbmdJZD89IHRydWU7XG4gICAgZGlzYWJsZWRQYXJlbnRJdGVtPz0gdHJ1ZTtcbiAgICByb290UGFyZW50SWQ/OiBzdHJpbmcgPSBudWxsO1xuICAgIGRpc2FibGVkPz0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29DYXVUb0NodWNDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIG1vZGU/OiAnYmFzaWMnIHwgJ21lZGl1bScgfCAnZnVsbCcgfCAnc2ltcGxlJyA9ICdiYXNpYyc7XG4gICAgaGVpZ2h0Pz0gMjUwO1xuICAgIGluaXQ/OiBhbnk7XG4gICAgbGFuZ3VhZ2VDb2RlPzogJ3ZpJyB8ICdlbic7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFZGl0b3JDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuICAgIGRhdGFTb3VyY2U/OiBhbnkgfCBGdW5jdGlvbjtcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXG4gICAgb3BlcmF0b3JzPzogYW55W107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIHBhbmVsQ2xhc3M/PSAnJztcbiAgICBwbGFjZWhvbGRlcj89ICdDaOG7jW4nO1xuICAgIHNlbGVjdGVkSXRlbXNMYWJlbD89ICfEkMOjIGNo4buNbiB7MH0gbeG7pWMnO1xuICAgIHNlbGVjdGVkQWxsSXRlbUxhYmVsPz0gJ8SQw6MgY2jhu41uIHThuqV0IGPhuqMnO1xuICAgIHNob3dDbGVhcj89IHRydWU7XG4gICAgZmlsdGVyPz0gdHJ1ZTtcbiAgICBtdWx0aXBsZT89IGZhbHNlO1xuICAgIGdlbmVyYXRlVG9vbHRpcD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgbWF4U2VsZWN0ZWRMYWJlbHM/PSA1O1xuICAgIG1heEl0ZW1EaXNwbGF5Pz0gNTA7XG4gICAgdmlydHVhbFNjcm9sbD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBmaXRQYW5lbD86IGJvb2xlYW4gPSB0cnVlO1xuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xuICAgIG5lZWRDbG9uZT89IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXG4gICAgdGVtcGxhdGVJdGVtPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICB0ZW1wbGF0ZVNlbGVjdGVkSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcXVpY2tBZGQ/PSBmYWxzZTtcbiAgICBjb2xzPzogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICBxdWlja0FkZFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBpbml0RGF0YT86IEtleVZhbHVlVHlwZSB8IEZ1bmN0aW9uID0ge307XG4gICAgZGVmYXVsdEluZGV4Pz0gLTE7XG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiA3NTAsIGhlaWdodDogNDAwIH0pO1xuXG4gICAgbG9hZEluRmlyc3REaXNwbGF5Pz0gdHJ1ZTtcblxuICAgIGF1dG9HZXREYXRhPz0gdHJ1ZTtcblxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xuXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD89IGZhbHNlO1xuICAgIG5vdEluQ3J1ZEZvcm0/PSBmYWxzZTtcbiAgICBzZWFyY2hNdWx0aXBsZT89IHRydWU7XG4gICAgZGlzYWJsZURpc3BsYXlGaWVsZFNlcnZlclNlYXJjaD89IGZhbHNlO1xuXG4gICAgbG9hZE9uSW5pdD89IGZhbHNlO1xuICAgIGFsbG93TG9hZERhdGFXaGVuUGFyZW50TnVsbD89IGZhbHNlO1xuXG4gICAgZGlzYWJsZWRQYXJlbnRJdGVtPz0gdHJ1ZTtcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEcm9wZG93bkNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkcmVzc0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGhpZGVObz89IGZhbHNlO1xuICAgIGhpZGVTdHJlZXQ/PSBmYWxzZTtcbiAgICBoaWRlV2FyZD89IGZhbHNlO1xuICAgIGhpZGVEaXN0cmljdD89IGZhbHNlO1xuICAgIHJlcXVpcmVkTm8/PSB0cnVlO1xuICAgIHJlcXVpcmVkU3RyZWV0Pz0gdHJ1ZTtcbiAgICByZXF1aXJlZFdhcmQ/PSB0cnVlO1xuICAgIHJlcXVpcmVkRGlzdHJpY3Q/PSB0cnVlO1xuICAgIHJlcXVpcmVkUHJvdmluY2U/PSB0cnVlO1xuICAgIHdhcmRUb1Byb3ZpbmNlPz0gdHJ1ZTtcbiAgICBub1dpZHRoPz0gMTtcbiAgICBzdHJlZXRXaWR0aD89IDM7XG4gICAgd2FyZFdpZHRoPz0gMztcbiAgICBkaXN0cmljdFdpZHRoPz0gMjtcbiAgICBwcm92aW5jZVdpZHRoPz0gMztcbiAgICBzaG93SW5Cb3g/PSBmYWxzZTtcblxuICAgIGhpZGVIb2xkZXI/PSB0cnVlO1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWRkcmVzc0NvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVmFuQmFuUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgbWRXaWR0aD89IDEyO1xuICAgIHVzZVZiRGVuPz0gdHJ1ZTtcbiAgICB1c2VWYkRpPz0gdHJ1ZTtcbiAgICByZWFkT25seT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICByZWFkb25seT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBsb2FpVmFuQmFuPzogRW51bUxvYWlWYW5CYW5CYXNlID0gRW51bUxvYWlWYW5CYW5CYXNlLlZCX0RJO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFZhbkJhblBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBtZFdpZHRoPz0gMTI7XG4gICAgc2VydmljZUNvZGU/OiBzdHJpbmc7XG4gICAgZW50aXR5Pzogc3RyaW5nO1xuICAgIGVudGl0eUtleT86IHN0cmluZztcbiAgICBzdGF0ZT86IGFueSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbmdWaWVjUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJjZW50Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgbWRXaWR0aD89IDEyO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBlcmNlbnRDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENoaXBzQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoaXBzQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIHBsYWNlaG9sZGVyPz0gJyc7XG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcbiAgICBtaW5MZW5ndGhGaWx0ZXI/PSAxO1xuICAgIGFwcGVuZFRvPzogc3RyaW5nID0gJ2JvZHknO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEF1dG9Db21wbGV0ZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25MaXN0Q29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcbiAgICBsYXlvdXQ/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xuICAgIG9uQWRqdXN0ZWRWYWx1ZT86IEZ1bmN0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJhZGlvQnV0dG9uTGlzdENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hlY2tCb3hMaXN0Q29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcbiAgICBsYXlvdXQ/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xuICAgIGNsYXNzUGx1cz89ICcnO1xuICAgIGZyZWVUZXh0Pz0gJyc7XG4gICAgcENvbENsYXNzPzogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoZWNrQm94TGlzdENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGFibGVTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHJvd1RlbXBsYXRlOiBGb3JtU2NoZW1hQmFzZVtdO1xuICAgIGF1dG9HZW5lcmF0ZUlkPz0gZmFsc2U7XG4gICAgcm93QnV0dG9ucz86IChyb3dEYXRhKSA9PiBNZW51SXRlbVtdO1xuICAgIGZvb3RlckJ1dHRvbnM/OiB7XG4gICAgICAgIGljb24/OiBzdHJpbmc7XG4gICAgICAgIGxhYmVsPzogc3RyaW5nO1xuICAgICAgICBjbGFzcz86IHN0cmluZztcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIH1bXTtcbiAgICBzaG93TnVtYmVyPz0gdHJ1ZTtcbiAgICBzaG93RnVuY3Rpb24/PSB0cnVlO1xuICAgIHNob3dGb290ZXI/PSB0cnVlO1xuICAgIHNob3dTYXZlPz0gZmFsc2U7XG4gICAgc2hvd0VkaXQ/PSBmYWxzZTtcbiAgICBzaG93RGVsZXRlPz0gdHJ1ZTtcbiAgICBzaG93QWRkPz0gdHJ1ZTtcbiAgICBzaG93RGlhbG9nPz0gdHJ1ZTtcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKHsgd2lkdGg6IDExMDAsIGhlaWdodDogNjUwIH0pO1xuICAgIGVuYWJsZVJlb3JkZXJSb3c/PSBmYWxzZTtcbiAgICBlbmFibGVBZGRNdWx0aT89IGZhbHNlO1xuICAgIHBpY2tlckNvbnRyb2xGaWVsZD86IHN0cmluZztcbiAgICBpc1VuaXF1ZT89IHRydWU7XG4gICAgZW5hYmxlUGFnaW5nPz0gZmFsc2U7XG4gICAgbGltaXQ/PSA1MDtcbiAgICBpbml0Um93Q291bnQ/PSAxO1xuICAgIG1kV2lkdGg/PSAxMjtcbiAgICB3aWR0aEZ1bmN0aW9uQ29sdW1uPzogc3RyaW5nO1xuICAgIHJvd0J1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG4gICAgc3VtbWFyeVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG4gICAgaGVhZGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcblxuICAgIG9uUmVvcmRlcmVkPzogRnVuY3Rpb247XG4gICAgb25UYWJsZUZpbmlzaEluaXQ/OiBGdW5jdGlvbjtcbiAgICBvbkFkZGluZz86IEZ1bmN0aW9uO1xuICAgIG9uQWRkZWQ/OiBGdW5jdGlvbjtcbiAgICBvblNhdmU/OiBGdW5jdGlvbjtcbiAgICBvbk1lc3NhZ2U/OiBGdW5jdGlvbjtcbiAgICBvbkRlbGV0aW5nPzogRnVuY3Rpb247XG4gICAgb25EZWxldGVkPzogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGFibGVTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzYWJsZUNvbnRyb2w/KCkge1xuICAgICAgICB0aGlzLmRpc2FibGVDaGlsZHJlbkNvbnRyb2wodGhpcy5yb3dUZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlQ2hpbGRyZW5Db250cm9sPz0gKHNjaGVtYXM6IEZvcm1Db250cm9sQmFzZVtdKSA9PiB7XG4gICAgICAgIHNjaGVtYXMuZm9yRWFjaChzY2hlbWEgPT4ge1xuICAgICAgICAgICAgc2NoZW1hLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChzY2hlbWEgaW5zdGFuY2VvZiBUYWJsZVNjaGVtYSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUNoaWxkcmVuQ29udHJvbChzY2hlbWEucm93VGVtcGxhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoc2NoZW1hIGluc3RhbmNlb2YgQ29udGFpbmVyU2NoZW1hKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlQ2hpbGRyZW5Db250cm9sKHNjaGVtYS5jb250cm9scyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TY2hlbWFCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSB7XG4gICAgaXNBcnJheUZpZWxkPzogYm9vbGVhbjsgLy8gTMOgIGZpZWxkIGNo4bupYSBjw6FjIHZhbHVlIGPDoWNoIG5oYXUgYuG6sW5nIGThuqV1ICxcbiAgICB3aWR0aD86IHN0cmluZztcbiAgICBzaG93RWRpdExpbms/PSBmYWxzZTtcbiAgICBzaG93VG9nZ2xlSWNvbj89IGZhbHNlO1xuICAgIGNvbFNwYW4/OiBudW1iZXI7XG4gICAgZ3JvdXA/PSBmYWxzZTtcbiAgICB2aXNpYmxlPz0gdHJ1ZTtcbiAgICByZW1vdmVPbkluaXQ/PSBmYWxzZTtcbiAgICBhbGxvd0ZpbHRlcj89IHRydWU7XG4gICAgdGV4dEFsaWduPzogVGV4dEFsaWduO1xuICAgIGNlbGxDbGFzcz86IHN0cmluZztcbiAgICBmdWxsVGV4dFNlYXJjaD89IGZhbHNlO1xuICAgIGlzSW5UYWJsZT89IHRydWU7XG4gICAgcmF3Q29sdW1uPzogQ29sdW1uU2NoZW1hQmFzZTtcbiAgICBzZXBhcmF0b3I/PSAnLCAnO1xuICAgIG1heEl0ZW1EaXNwbGF5Pz0gNTA7XG4gICAgcGFnZVNpemU/OiBudW1iZXIgPSAxNTsgLy8gUHJvcCBwaOG6o2kgZ2nhu5FuZyB24bubaSBkcm9wZG93blxuXG4gICAgZmlsZVNldHRpbmc/OiBGaWxlVXBsb2FkU2V0dGluZyB8IEZpbGVNYW5hZ2VyU2V0dGluZztcbiAgICBkYXRhVHlwZVJlZkZpZWxkPzogRGF0YVR5cGUgfCBzdHJpbmc7XG4gICAgZm9yY2VHZXREYXRhPz0gZmFsc2U7XG4gICAgZGlzcGxheUZpZWxkSW5HcmlkPzogc3RyaW5nO1xuICAgIGZ1bmNHZXRSZWZEYXRhUm93PzogKHJlZkl0ZW1zKSA9PiB7fTtcbiAgICBmdW5jU2V0VmFsdWVSb3c/OiAocm93SXRlbSwgZGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jU2V0VmFsdWVSb3dXaGVuTnVsbE9yRW1wdHk/OiAocm93SXRlbSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0VmFsdWVPZkZpZWxkPzogRnVuY3Rpb24gPSAocm93SXRlbSkgPT4gcm93SXRlbVt0aGlzLmZpZWxkXTtcbiAgICByb3dTcGFuPz0gMTtcbiAgICBmb3JtYXQ/OiBzdHJpbmc7XG4gICAgZGF0YVR5cGU/OiBEYXRhVHlwZSB8IHN0cmluZztcbiAgICBjb250cm9sVHlwZT86IENvbnRyb2xUeXBlID0gQ29udHJvbFR5cGUudGV4dGJveDtcbiAgICB0ZW1wbGF0ZUZpbHRlcj86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZGlzYWJsZUNoZWNrQm94Pz0gdHJ1ZTtcbiAgICAvLyBUaOG7qSB04buxIMawdSB0acOqbiBnZXQgcmVmIGRhdGEgY+G7p2EgY3J1ZC1saXN0XG4gICAgLy8gTuG6v3UgY8OzIHZhbHVlIG5naMSpYSBsw6Agbmjhu69uZyBj4buZdCBuw6B5IGPhuqduIHBo4bqjaSBs4bqleSBk4buvIGxp4buHdSB4b25nIHLhu5NpIG3hu5tpIMSR4bq/biBj4buZdCBraMOhY1xuICAgIG9yZGVyPzogbnVtYmVyID0gMTtcbiAgICBtYXhXb3JkRGlzcGxheT86IG51bWJlcjtcbiAgICBtYXhMZW5ndGhEaXNwbGF5PzogbnVtYmVyO1xuICAgIG1kV2lkdGhJblNlYXJjaD89IDEyO1xuXG4gICAgbWluPz0gMDtcbiAgICBtYXg/PSA5OTk5OTk7XG5cbiAgICBzaG93Q2xlYXI/PSB0cnVlO1xuICAgIG11bHRpcGxlPz0gZmFsc2U7XG4gICAgc2luZ2xlPz0gZmFsc2U7XG5cbiAgICBwaXBlPzogUGlwZVRyYW5zZm9ybTtcbiAgICBhc3luY1BpcGU/PSB0cnVlO1xuICAgIHNvcnQ/PSB0cnVlO1xuICAgIGV4dGVuZERhdGE/OiBhbnkgPSB7fTtcblxuICAgIC8qKlxuICAgICAqIElzIHRoaXMgY29sdW1uIHJlZiBhIHJlZiBjb2x1bW4gZ2VuZXJhdGVkIGJ5IGJhc2VcbiAgICAgKiBAZGF0ZSAxMS80LzIwMjIgLSAyOjA1OjU1IFBNXG4gICAgICpcbiAgICAgKiBAdHlwZSB7P2Jvb2xlYW59XG4gICAgICovXG4gICAgaXNSZWZGaWVsZD89IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogc2hvdWxkIGluY2x1ZGUgdGhpcyBjb2wgaW4gdGhlIGdyaWRJbmZvLmZpZWxkc1xuICAgICAqIEBkYXRlIDExLzQvMjAyMiAtIDI6MDY6MTYgUE1cbiAgICAgKlxuICAgICAqIEB0eXBlIHs/Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBpbmNsdWRlU2VsZWN0Pz0gdHJ1ZTtcblxuICAgIGhhc09wZXJhdG9yQ2FuQm8/PSBmYWxzZTtcbiAgICBtaW5pbWl6ZUZpbHRlcj86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBiaW5kaW5nRmlsdGVycz86IEZpbHRlcltdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNjaGVtYUJhc2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHJvcGRvd25PcHRpb25zIHtcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBmaWVsZFRyZWU/PSAnJztcbiAgICBzZWxlY3RDaGlsZEl0ZW0/PSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgc2VsZWN0RGVzY2VuZGFudD89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT89ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD89ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz89ICcnO1xuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIHBhZ2U/OiBudW1iZXIgPSAxO1xuICAgIHBhZ2VTaXplPz0gNjY2O1xuICAgIGlzU2VydmVyTG9hZD89IGZhbHNlO1xuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcbiAgICBpc1RyZWVCYXNlTW9kZWw/PSBmYWxzZTtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEcm9wZG93bk9wdGlvbnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVmRmllbGQge1xuICAgIGZpZWxkPzogc3RyaW5nO1xuICAgIG11bHRpcGxlPz0gZmFsc2U7XG4gICAgc2VwYXJhdG9yPz0gJywgJztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XG4gICAgaXNDaGlsZE9iamVjdD89IGZhbHNlO1xuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xuICAgIGRpc3BsYXlGaWVsZEluR3JpZD86IHN0cmluZztcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBmaWVsZFBsdXM/PSAnJztcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgZGF0YVNvdXJjZT86IGFueVtdO1xuICAgIG9yZGVyPzogbnVtYmVyID0gMTtcblxuICAgIGlzVHJlZT89IGZhbHNlO1xuICAgIGZpZWxkVHJlZT86IHN0cmluZztcbiAgICB2YWx1ZVBhcmVudFJvb3Q/OiBhbnkgPSBudWxsOyAvLyBHacOhIHRy4buLIHRyxrDhu51uZyBbZmllbGRUcmVlXSBj4bunYSBpdGVtIHRyZWUgcm9vdFxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/PSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/PSAnJztcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuXG4gICAgZnVuY0dldFZhbHVlT2ZGaWVsZD86IEZ1bmN0aW9uID0gKGl0ZW0pID0+IGl0ZW1bdGhpcy5maWVsZF07XG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XG4gICAgZnVuY1NldFZhbHVlUm93V2hlbk51bGxPckVtcHR5PzogKHJvd0l0ZW0pID0+IHZvaWQ7XG4gICAgZnVuY0dldFJlZkRhdGFSb3c/OiAocmVmSXRlbXMpID0+IHt9O1xuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSZWZGaWVsZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlQaWNrZXJDb2x1bW4gZXh0ZW5kcyBDb2x1bW5TY2hlbWFCYXNlIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIGRpc2FibGVkPz0gZmFsc2U7XG4gICAgaXNTZWFyY2hhYmxlPz0gdHJ1ZTtcbiAgICBpc0Rpc3BsYXk/PSB0cnVlO1xuICAgIGRhdGFUeXBlPzogRGF0YVR5cGUgfCBzdHJpbmc7XG4gICAgb3BlcmF0b3I/OiBPcGVyYXRvcjtcbiAgICB3aWR0aD89ICcnO1xuICAgIG5vdEluRmllbGRzPz0gZmFsc2U7IC8vIEPDoWMgdHLGsOG7nW5nIGThu68gbGnhu4d1IMSRxrDhu6NjIHThu5VuZyBo4bujcCBs4bqhaSBoaeG7g24gdGjhu4sgbMOqbiBncmlkIG3DoCBraMO0bmcgcGjhuqNpIGzhuqV5IHThu6sgdHJvbmcgdGFibGUgcmEuXG5cbiAgICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRW50aXR5UGlja2VyQ29sdW1uKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRMaXN0Q29uZmlnIHtcbiAgICB0b29sdGlwVmlldz86IHN0cmluZztcbiAgICBvblZpZXc/OiBGdW5jdGlvbjtcbiAgICBkaXNhYmxlUm93U2VsZWN0V2hlbkNsaWNrQWN0aW9uPz0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdENvbmZpZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmVlRGF0YU9wdGlvbiB7XG4gICAgZGlzcGxheUZpZWxkID0gJ3Rlbic7XG4gICAgc2hvcnREaXNwbGF5RmllbGQgPSAndGVuJztcbiAgICBleHBhbmRlZEljb24gPSAncGkgcGktZm9sZGVyLW9wZW4nO1xuICAgIGNvbGxhcHNlZEljb24gPSAncGkgcGktZm9sZGVyJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUcmVlRGF0YU9wdGlvbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RlbCB7XG4gICAgc2hvd0VkaXRGb3JtPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGhlYWRlcj86IHN0cmluZyA9ICcnO1xuICAgIHBvcHVwU2l6ZT86IFBvcHVwU2l6ZSA9IG5ldyBQb3B1cFNpemUoeyBtYXhpbWl6ZTogdHJ1ZSB9KTtcbiAgICBkYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGlhbG9nTW9kZWwpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUG9wdXBTaXplIHtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgbWF4aW1pemU/PSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQb3B1cFNpemUpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXZlbnREYXRhIHtcbiAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlO1xuICAgIHNvdXJjZU5vZGU/OiBDb250cm9sVHJlZU5vZGU7XG4gICAgc291cmNlRXZlbnQ/OiBhbnk7XG4gICAgZXZlbnRUeXBlPzogYW55O1xuICAgIGRhdGE/OiBhbnk7XG4gICAgcHJpdmF0ZSBfY3J1ZEZvcm06IENydWRGb3JtQ29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluaXQ/OiB7XG4gICAgICAgICAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlLFxuICAgICAgICAgICAgc291cmNlTm9kZT86IENvbnRyb2xUcmVlTm9kZSxcbiAgICAgICAgICAgIHNvdXJjZUV2ZW50PzogYW55LFxuICAgICAgICAgICAgZXZlbnRUeXBlPzogYW55LFxuICAgICAgICAgICAgZGF0YT86IGFueSxcbiAgICAgICAgICAgIGNydWRGb3JtPzogQ3J1ZEZvcm1Db21wb25lbnQ7XG4gICAgICAgIH1cbiAgICApIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLm1vZGVsO1xuICAgIH1cblxuICAgIGdldCBtb2RlbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5tb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50TW9kZWwoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudFBhdGgoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWxQYXRoO1xuXG4gICAgfVxuXG4gICAgZ2V0IHJvb3RNb2RlbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5yb290Tm9kZS5tb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpOiBGb3JtU2NoZW1hQmFzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudENvbnRyb2woKTogRm9ybVNjaGVtYUJhc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5wYXJlbnRDb250cm9sO1xuICAgIH1cblxuICAgIGdldCBmb3JtQ29udHJvbHMoKTogRm9ybVNjaGVtYUJhc2VbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmZvcm1Db250cm9scztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJWaWV3RGF0YSB7XG4gICAgY29kZT86IHN0cmluZztcbiAgICBoaWRkZW4/OiBib29sZWFuID0gZmFsc2U7XG4gICAgYWx3YXlSZW5kZXI/OiBib29sZWFuID0gZmFsc2U7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBoZWFkZXJTdHlsZUNsYXNzPzogc3RyaW5nO1xuICAgIGFjdGl2ZT86IGJvb2xlYW47XG4gICAgZG9Ob3RSZWxvYWQ/PSB0cnVlO1xuICAgIHVzZVNjcm9sbGJhcj89IHRydWU7IC8vIENvbmZpZyDEkeG7gyB4w6FjIMSR4buLbmggY8OzIHPhu60gZOG7pW5nIGN1c3RvbS1zY3JvbGxiYXIga2jDtG5nLCBu4bq/dSBraMO0bmcgdGjDrCBkw7luZyBzY3JvbGxiYXIgbeG6t2MgxJHhu4tuaCBj4bunYSB0csOsbmggZHV54buHdFxuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRhYlZpZXdEYXRhKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpZWxkUm93U3BhbiB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBmdW5jR2V0VmFsdWU/OiAoaXRlbSkgPT4gYW55O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpZWxkUm93U3Bhbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcbiAgICBkYXRlID0gJ2RhdGUnLFxuICAgIGRhdGV0aW1lID0gJ2RhdGV0aW1lJyxcbiAgICBodG1sID0gJ2h0bWwnLFxuICAgIHN0cmluZyA9ICdzdHJpbmcnLFxuICAgIGludCA9ICdpbnQnLFxuICAgIGludFdpdGhvdXRNYXNrID0gJ2ludFdpdGhvdXRNYXNrJyxcbiAgICBjdXJyZW5jeSA9ICdjdXJyZW5jeScsXG4gICAgZGVjaW1hbCA9ICdkZWNpbWFsJyxcbiAgICBib29sZWFuID0gJ2Jvb2xlYW4nLFxuICAgIGVudW0gPSAnZW51bScsXG4gICAgZmlsZVVwbG9hZCA9ICdmaWxlVXBsb2FkJyxcbiAgICBmaWxlTWFuYWdlciA9ICdmaWxlTWFuYWdlcicsXG59XG5cbmV4cG9ydCBlbnVtIENvbnRyb2xUeXBlIHtcbiAgICBkcm9wZG93biA9ICdkcm9wZG93bicsXG4gICAgZGF0ZXRpbWUgPSAnZGF0ZXRpbWUnLFxuICAgIGRhdGUgPSAnZGF0ZScsXG4gICAgdGltZSA9ICd0aW1lJyxcbiAgICBudW1iZXIgPSAnbnVtYmVyJyxcbiAgICB0ZXh0Ym94ID0gJ3RleHRib3gnLFxuICAgIGNoZWNrYm94ID0gJ2NoZWNrYm94JyxcbiAgICBzd2l0Y2ggPSAnc3dpdGNoJ1xufVxuXG5leHBvcnQgZW51bSBPcGVyYXRvciB7XG4gICAgZXF1YWwgPSAnZXEnLFxuICAgIG5vdEVxdWFsID0gJ25lcScsXG4gICAgZ3JlYXRlciA9ICdndCcsXG4gICAgZ3JlYXRlclRoYW5FcXVhbCA9ICdndGUnLFxuICAgIGxvd2VyID0gJ2x0JyxcbiAgICBsb3dlclRoYW5FcXVhbCA9ICdsdGUnLFxuXG4gICAgcmVsYXRpb25hbERhdGEgPSAncmVsYXRpb25hbGRhdGEnLFxuICAgIGNvbnRhaW4gPSAnY29udGFpbnMnLFxuICAgIG5vdENvbnRhaW4gPSAnbmNvbnRhaW5zJyxcbiAgICBzdGFydFdpdGggPSAnc3RhcnRzd2l0aCcsXG4gICAgbm90U3RhcnRXaXRoID0gJ25zdGFydHN3aXRoJyxcbiAgICBlbmRXaXRoID0gJ2VuZHN3aXRoJyxcbiAgICBub3RFbmRXaXRoID0gJ25lbmRzd2l0aCcsXG5cbiAgICBpbiA9ICdpbicsXG4gICAgbm90SW4gPSAnbmluJyxcblxuICAgIGlzTnVsbCA9ICdpc251bGwnLFxuICAgIGlzTm90TnVsbCA9ICdpc25vdG51bGwnLFxuXG4gICAgaW5Sb2xlID0gJ2hhc1JvbGUnLFxuICAgIG5vdEluUm9sZSA9ICdub3RIYXNSb2xlJyxcbiAgICBpbkNhdGVnb3J5ID0gJ2luQ2F0ZWdvcnknLFxuICAgIG5vdEluQ2F0ZWdvcnkgPSAnbm90SW5DYXRlZ29yeScsXG4gICAgaW5Qb3NpdGlvbiA9ICdpblBvc2l0aW9uJyxcbiAgICBub3RJblBvc2l0aW9uID0gJ25vdEluUG9zaXRpb24nLFxuICAgIGluTGlzdFVzZXIgPSAnaW5MaXN0VXNlcicsXG4gICAgbm90SW5MaXN0VXNlciA9ICdub3RJbkxpc3RVc2VyJyxcbiAgICBpbkxpc3RHcm91cCA9ICdpbkxpc3RHcm91cCcsXG4gICAgbm90SW5MaXN0R3JvdXAgPSAnbm90SW5MaXN0R3JvdXAnLFxuICAgIGlzQ3VycmVudFVzZXIgPSAnaXNDdXJyZW50VXNlcicsXG4gICAgaXNDdXJyZW50Q2FuQm8gPSAnaXNDdXJyZW50Q2FuQm8nXG59XG5cbmV4cG9ydCBlbnVtIEhlaWdodFR5cGUge1xuICAgIGRlZmF1bHQgPSAwLFxuICAgIGR5bmFtaWMgPSAtMSxcbiAgICBjdXN0b20gPSAxXG59XG5cbmV4cG9ydCBlbnVtIEZpbGVNYW5hZ2VyTW9kZSB7XG4gICAgc2luZ2xlID0gJ3NpbmdsZScsXG4gICAgbXVsdGlwbGUgPSAnbXVsdGlwbGUnXG59XG5cbmV4cG9ydCBlbnVtIEZpbGVVcGxvYWRNb2RlIHtcbiAgICB1c2luZ0ZpbGVJbnN0YW5jZUlkID0gJ3VzaW5nRmlsZUluc3RhbmNlSWQnLFxuICAgIHVzaW5nU2VydmljZUZpbGUgPSAndXNpbmdTZXJ2aWNlRmlsZSdcbn1cblxuZXhwb3J0IGVudW0gRW51bUZpbGVMYXlvdXQge1xuICAgIFNJTVBMRSA9ICdTSU1QTEUnLFxuICAgIFNJTVBMRV9GT1JfTElTVCA9ICdTSU1QTEVfRk9SX0xJU1QnLFxuICAgIExJU1QgPSAnTElTVCcsXG4gICAgSU5MSU5FID0gJ0lOTElORSdcbn1cblxuZXhwb3J0IGVudW0gVGV4dEFsaWduIHtcbiAgICBMZWZ0ID0gMCxcbiAgICBDZW50ZXIgPSAxLFxuICAgIFJpZ2h0ID0gLTFcbn1cblxuZXhwb3J0IGVudW0gRXhwb3J0SXRlbXNNb2RlIHtcbiAgICBGcm9tSHRtbCA9IDAsXG4gICAgTWFudWFsR2V0RGF0YSA9IDEsXG4gICAgQXV0b0dldERhdGEgPSAyXG59XG5cbmV4cG9ydCBlbnVtIEV4cG9ydEFsbE1vZGUge1xuICAgIE1hbnVhbEdldERhdGEgPSAwLFxuICAgIEF1dG9HZXREYXRhID0gMVxufVxuXG5leHBvcnQgZW51bSBVc2VyVHlwZSB7XG4gICAgQ2FuQm8sXG4gICAgTm9ybWFsXG59XG5cbmV4cG9ydCBlbnVtIEV2ZW50VHlwZSB7XG4gICAgQ0hBTkdFID0gJ2NoYW5nZScsXG4gICAgQURKVVNUX1ZBTFVFID0gJ2FkanVzdFZhbHVlJyxcbiAgICBNT0RFTF9DSEFOR0VEID0gJ21vZGVsQ2hhbmdlZCcsXG4gICAgRk9STV9SRUFEWSA9ICdmb3JtUmVhZHknLFxuICAgIEVOVEVSID0gJ2VudGVyJyxcbiAgICBISURFID0gJ2hpZGUnLFxuICAgIFJPV19SRU9SREVSID0gJ3Jvd1Jlb3JkZXInLFxuICAgIEJMVVIgPSAnYmx1cicsXG4gICAgUkVBRFkgPSAnUkVBRFknLFxuICAgIERBVEFTT1VSQ0VfTE9BREVEID0gJ2RhdGFTb3VyY2VMb2FkZWQnLFxuICAgIENMSUNLID0gJ2NsaWNrJyxcbiAgICBBVVRPX0NPUlJFQ1QgPSAnYXV0b0NvcnJlY3QnLFxuICAgIFZBTElEQVRFID0gJ3ZhbGlkYXRlJyxcbiAgICBJTklUID0gJ2luaXQnLFxuICAgIEFERElORyA9ICdhZGRpbmcnLFxuICAgIEFEREVEID0gJ2FkZGVkJyxcbiAgICBERUxFVElORyA9ICdkZWxldGluZycsXG4gICAgREVMRVRFRCA9ICdkZWxldGVkJyxcbiAgICBUQUJMRV9DSEFOR0VEID0gJ3RhYmxlQ2hhbmdlZCcsXG4gICAgU0FWRSA9ICdzYXZlJyxcbiAgICBNRVNTQUdFID0gJ21lc3NhZ2UnLFxuICAgIFJPV19GSU5JU0hfSU5JVCA9ICdyb3dGaW5pc2hJbml0JyxcbiAgICBUQUJMRV9GSU5JU0hfSU5JVCA9ICd0YWJsZUZpbmlzaEluaXQnLFxufVxuIl19
|