tnx-shared 5.2.9 → 5.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/gulpfile.js +10 -2
- package/bundles/tnx-shared.umd.js +471 -163
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/classes/base/component-base.d.ts +3 -0
- package/classes/base/component-base.d.ts.map +1 -1
- package/classes/base/list-base.d.ts +2 -0
- package/classes/base/list-base.d.ts.map +1 -1
- package/classes/environment-schema.d.ts +13 -4
- package/classes/environment-schema.d.ts.map +1 -1
- package/classes/form-schema.d.ts +4 -0
- package/classes/form-schema.d.ts.map +1 -1
- package/components/common-app-component/app-topbar-v1/app-topbar-v1.component.d.ts +4 -2
- package/components/common-app-component/app-topbar-v1/app-topbar-v1.component.d.ts.map +1 -1
- package/components/common-app-component/default-setting-form/default-data-settings.component.d.ts +20 -0
- package/components/common-app-component/default-setting-form/default-data-settings.component.d.ts.map +1 -0
- package/components/common-app-component/default-setting-form/default-data-settings.component.ngfactory.d.ts.map +1 -0
- package/components/common-app-component/default-setting-form/default-data-settings.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/components/crud/advance-search/advance-search.component.d.ts +2 -2
- package/components/crud/advance-search/advance-search.component.d.ts.map +1 -1
- package/components/crud/crud-form/crud-form.component.d.ts.map +1 -1
- package/components/datetime-picker/datetime-picker.component.d.ts.map +1 -1
- package/components/workflow/services/workflow-settings.service.d.ts +2 -0
- package/components/workflow/services/workflow-settings.service.d.ts.map +1 -1
- package/esm2015/app-context/application-context.service.js +2 -1
- package/esm2015/classes/base/component-base.js +26 -10
- package/esm2015/classes/base/list-base.js +31 -2
- package/esm2015/classes/environment-schema.js +4 -4
- package/esm2015/classes/form-schema.js +2 -1
- package/esm2015/components/common-app-component/app-root-menu/app-root-menu.component.js +2 -2
- package/esm2015/components/common-app-component/app-topbar-v1/app-topbar-v1.component.js +24 -18
- package/esm2015/components/common-app-component/default-setting-form/default-data-settings.component.js +209 -0
- package/esm2015/components/crud/advance-search/advance-search.component.js +24 -21
- package/esm2015/components/crud/crud-form/crud-form.component.js +4 -2
- package/esm2015/components/datetime-picker/datetime-picker.component.js +7 -4
- package/esm2015/components/workflow/services/workflow-settings.service.js +6 -1
- package/esm2015/services/environment.service.js +25 -6
- package/esm2015/tnx-shared.js +89 -88
- package/esm2015/tnx-shared.module.js +3 -1
- package/fesm2015/tnx-shared.js +348 -61
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
- package/services/environment.service.d.ts +19 -4
- package/services/environment.service.d.ts.map +1 -1
- package/tnx-shared.d.ts +88 -87
- package/tnx-shared.d.ts.map +1 -1
- package/tnx-shared.metadata.json +1 -1
- package/tnx-shared.module.d.ts +2 -1
- package/tnx-shared.module.d.ts.map +1 -1
- package/tnx-shared.module.ngfactory.d.ts.map +1 -1
- package/assets/Dockerfile.ci +0 -5
- package/assets/deploy.client.ci +0 -42
- package/assets/gulpfile.js.bak +0 -703
|
@@ -195,6 +195,7 @@ export class CrudFormCustomFunction {
|
|
|
195
195
|
export class CrudFormSetting {
|
|
196
196
|
constructor(init) {
|
|
197
197
|
this.disableCaching = false;
|
|
198
|
+
this.disableDefaultSettingCache = false;
|
|
198
199
|
this.hiddenTrinhKy = true;
|
|
199
200
|
this.schema = [];
|
|
200
201
|
this.buildInSchema = [];
|
|
@@ -1164,4 +1165,4 @@ export var ExportAllMode;
|
|
|
1164
1165
|
ExportAllMode[ExportAllMode["ManualGetData"] = 0] = "ManualGetData";
|
|
1165
1166
|
ExportAllMode[ExportAllMode["AutoGetData"] = 1] = "AutoGetData";
|
|
1166
1167
|
})(ExportAllMode || (ExportAllMode = {}));
|
|
1167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjbGFzc2VzL2Zvcm0tc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFLQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQWNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsOEJBQThCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2pILE1BQU0sT0FBTyxXQUFXO0lBT3BCLFlBQVksSUFBa0I7UUFGOUIsYUFBUSxHQUFpRixRQUFRLENBQUM7UUFHOUYsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxRQUFRO0lBSWpCLFlBQVksSUFBZTtRQUgzQixvR0FBb0c7UUFDcEcsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRy9CLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sZUFBZTtJQTJGeEIsWUFBWSxJQUFzQjtRQXhGbEMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGlCQUFZLEdBQW1CLEVBQUUsQ0FBQztRQUNsQyxTQUFJLEdBQXdCLEVBQUUsQ0FBQztRQUMvQixrQkFBYSxHQUFtQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3BELGdCQUFXLEdBQWlCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDOUMsZUFBVSxHQUFnQixVQUFVLENBQUMsT0FBTyxDQUFDLENB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QUN6QixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3RCLDZEQUEyQyxDQUFBO0lBQzNDLHVEQUFxQyxDQUFBO0FBQ3pDLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQUVELE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIsbUNBQWlCLENBQUE7SUFDakIscURBQW1DLENBQUE7SUFDbkMsK0JBQWEsQ0FBQTtJQUNiLG1DQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDakIseUNBQVEsQ0FBQTtJQUNSLDZDQUFVLENBQUE7SUFDViw0Q0FBVSxDQUFBO0FBQ2QsQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN2Qiw2REFBWSxDQUFBO0lBQ1osdUVBQWlCLENBQUE7SUFDakIsbUVBQWUsQ0FBQTtBQUNuQixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLG1FQUFpQixDQUFBO0lBQ2pCLCtEQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9hcGknO1xuXG5pbXBvcnQgeyBBdXRvQ29tcGxldGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1waWNrZXIvYXV0b2NvbXBsZXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW51bUxvYWlWYW5CYW5CYXNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb25ndmllYy1waWNrZXIvbW9kZWxzL2VudW1zJztcbmltcG9ydCB7IENydWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jcnVkL2NydWQtbGlzdC9jcnVkLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEVudGl0eVBpY2tlckRhdGFDb21wb25lbnQsIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci1kYXRhL2VudGl0eS1waWNrZXItZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQsIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci1zZWxlY3RlZC9lbnRpdHktcGlja2VyLXNlbGVjdGVkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbnRpdHlQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZU1hbmFnZXJTZXR0aW5nLCBGaWxlVXBsb2FkU2V0dGluZyB9IGZyb20gJy4uL2NvbXBvbmVudHMvZmlsZS1leHBsb3Jlci9tb2RlbHMvZmlsZS1zZXR0aW5ncyc7XG5pbXBvcnQgeyBGaWxlRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvc2VydmljZXMvZmlsZS1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVyLCBTb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBFbnRpdHlNZXRhZGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lbnRpdHktbWV0YWRhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBNYXN0ZXJEYXRhU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21hc3Rlci1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udHJvbFRyZWVOb2RlLCBDcnVkRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vLi4vY29tcG9uZW50cy9jcnVkL2NydWQtZm9ybS9jcnVkLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IElDb3JyZWN0b3IgfSBmcm9tICcuL2Jhc2UvY29ycmVjdG9ycyc7XG5pbXBvcnQgeyBJVmFsaWRhdG9yIH0gZnJvbSAnLi9iYXNlL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgRW51bUNvbnRyb2xQaWNrZXJUeXBlLCBFbnVtV29ya2Zsb3dDb3JlQ29kZVNldHRpbmdLZXksIEZvcm1TdGF0ZSwgU2hhcmVkRm9sZGVyVHlwZSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFdvcmtmbG93U2V0dGluZywgV29ya2Zsb3dTZXR0aW5nTmV3IH0gZnJvbSAnLi93b3JrZmxvdy1zY2hlbWEnO1xuXG5leHBvcnQgY2xhc3MgTW9kZWxTY2hlbWEge1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGZ1bGxOYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBkYXRhVHlwZT86ICdpbnQnIHwgJ2RlY2ltYWwnIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICdzdHJpbmcnIHwgJ2Jvb2xlYW4nIHwgJ3RpbWVzcGFuJyA9ICdzdHJpbmcnO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE1vZGVsU2NoZW1hKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRCYXNlIHtcbiAgICAvLyBDb21wb25lbnQgc3Vic2NyaWJlIC0gS2hpIHN1YmNyaWJlIG3hu5l0IGNvbXBvbmVudCB0aMOsIGFkZCB2w6BvIGFycmF5IMSR4buDIGtoaSBkZXN0cm95IHRow6wgdW5zdWJzY3JpYmVcbiAgICBjb21wb25lbnRTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRCYXNlKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRMaXN0U2V0dGluZyB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB0YXJnZXRQYXRoPzogc3RyaW5nO1xuICAgIG9iamVjdE5hbWUgPSAnJztcbiAgICBlbnRpdHlLZXkgPSAnaWQnO1xuICAgIHNldHRpbmdLZXk/OiBzdHJpbmc7XG4gICAgZW50aXR5TWV0YWRhdGFTZXJ2aWNlPzogRW50aXR5TWV0YWRhdGFTZXJ2aWNlO1xuICAgIG1vZGVsU2NoZW1hcz86IE1vZGVsU2NoZW1hW10gPSBbXTtcbiAgICBjb2xzPzogQ29sdW1uU2NoZW1hQmFzZVtdID0gW107XG4gICAgY29sdW1uU2V0dGluZz86IENvbHVtblNldHRpbmcgPSBuZXcgQ29sdW1uU2V0dGluZygpO1xuICAgIHBhZ2VTZXR0aW5nPzogUGFnZVNldHRpbmcgPSBuZXcgUGFnZVNldHRpbmcoKTtcbiAgICBoZWlnaHRUeXBlPzogSGVpZ2h0VHlwZSA9IEhlaWdodFR5cGUuZGVmYXVsdDsgLy8gQ8OzIGN1c3RvbSBjaGnhu4F1IGNhbyBraMO0bmc6IFRoxrDhu51uZyBz4butIGThu6VuZyB0cm9uZyBkaWFsb2dcbiAgICBmaXhIZWlnaHRUeXBlSW5EaWFsb2c/ID0gdHJ1ZTtcbiAgICBtdWx0aXBsZUNoZWNrV2hlbkNsaWNrUm93ID0gdHJ1ZTtcbiAgICBjdXN0b21Xb3JrZmxvd0NvZGVUcmluaEt5OiBFbnVtV29ya2Zsb3dDb3JlQ29kZVNldHRpbmdLZXkgPSBFbnVtV29ya2Zsb3dDb3JlQ29kZVNldHRpbmdLZXkuTUFDX0RJTkg7XG4gICAgc3RpY2t5Q29sdW1uID0gZmFsc2U7XG4gICAgdGFibGVOYW1lPzogc3RyaW5nO1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2U7XG4gICAgcmVTZWxlY3RMYXN0SXRlbT8gPSB0cnVlOyAvLyBTZWxlY3QgbOG6oWkgaXRlbSBjdeG7kWkgY8O5bmcgxJHDoyBjaOG7jW4gY+G7p2EgZ3JpZFxuICAgIGZpcmVFdmVudFdoZW5SZVNlbGVjdD8gPSBmYWxzZTtcbiAgICBhZHZhbmNlRGF0YT86IGFueSA9IHt9O1xuICAgIHdvcmtmbG93U2V0dGluZz86IFdvcmtmbG93U2V0dGluZztcbiAgICB3b3JrZmxvd1NldHRpbmdOZXc/OiBXb3JrZmxvd1NldHRpbmdOZXc7XG4gICAgaXNXb3JrZmxvd1RyZWU/OiBib29sZWFuID0gZmFsc2U7XG4gICAgd29ya2Zsb3dDb25maWdBZHZhbmNlPzogV29ya2Zsb3dDb25maWdBZHZhbmNlO1xuICAgIGRpc3BsYXlGaWVsZDogc3RyaW5nIHwgKChpdGVtKSA9PiBzdHJpbmcpOyAvLyB0csaw4budbmcgxJHhuqFpIGRp4buHbiBjaG8gYuG6o24gZ2hpIGzDoG0gdGnDqnUgxJHhu4EgaGnhu4NuIHRo4buLIChwaOG7pWMgduG7pSBjaG8gY8OhYyBk4buLY2ggduG7pSBraMOhYyBraGFpIHRow6FjKVxuICAgIGhhc0N1c3RvbUhhbmRsZUNsaWNrUm93ID0gZmFsc2U7XG4gICAgY2hlY2tBbGxvd1RyaW5oS3k6IChyb3dEYXRhKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIGNoZWNrQWxsb3dTZWxlY3RSb3c6IChyb3dEYXRhLCBldnQ/KSA9PiBib29sZWFuO1xuICAgIGdldEl0ZW1TdGF0ZTogKGxzdFJvd0RhdGE6IGFueVtdKSA9PiB7W2tleTogc3RyaW5nXTogYW55O307XG4gICAgZ2V0RGF0YUZvck5leHRGaXJzdFN0ZXBUYXNrPzogKHJvd0RhdGEpID0+ICh7fSk7XG4gICAgY2hlY2tQZXJtaXNpb25UcmluaEt5ID0gZmFsc2U7XG5cbiAgICBzaG93RWRpdExpbmsgPSB0cnVlO1xuXG4gICAgaGlkZGVuSGVhZGVyID0gZmFsc2U7XG4gICAgaGlkZGVuUGFnZVNldHRpbmcgPSBmYWxzZTtcbiAgICBoaWRkZW5UZXh0UGFnZSA9IGZhbHNlO1xuICAgIGhpZGRlblRvb2xiYXIgPSBmYWxzZTtcbiAgICBoaWRkZW5CdXR0b25zID0gZmFsc2U7XG4gICAgaGlkZGVuQWR2YW5jZVNlYXJjaCA9IGZhbHNlO1xuICAgIGhpZGRlblNhdmVTZXR0aW5nID0gZmFsc2U7XG4gICAgaGlkZGVuU2V0dGluZyA9IGZhbHNlO1xuICAgIGhpZGRlblNldHRpbmdQZXJtaXNzaW9uID0gZmFsc2U7XG4gICAgaGlkZGVuU2V0dGluZ1dvcmtmbG93ID0gZmFsc2U7XG4gICAgaGlkZGVuUGFnZVRpdGxlID0gZmFsc2U7XG5cbiAgICBoaWRkZW5DaGVja2JveCA9IGZhbHNlO1xuICAgIGhpZGRlbk9yZGVyQ29sdW1uID0gZmFsc2U7XG4gICAgaGlkZGVuV29ya2Zsb3dDb2x1bW4gPSBmYWxzZTtcbiAgICBhbGxvd0ZpbHRlcldvcmtmbG93Q29sdW1uID0gZmFsc2U7XG4gICAgaGlkZGVuRnVuY3Rpb25Db2x1bW4gPSBmYWxzZTtcbiAgICBoaWRkZW5SZWZyZXNoID0gZmFsc2U7XG4gICAgaGlkZGVuRmlsdGVyUm93ID0gZmFsc2U7XG4gICAgaGlkZGVuVHJpbmhLeSA9IHRydWU7XG4gICAgdXNlQmFzZVRyaW5oS3kgPSB0cnVlO1xuICAgIGRpc2FibGVTaGFyZSA9IGZhbHNlO1xuICAgIGhpZGRlbldvcmtmbG93Q29yZVN0YXR1cyA9IHRydWU7XG4gICAgcmVxdWlyZWRWYW5CYW5EaUFmdGVyVHJpbmhLeSA9IGZhbHNlO1xuXG4gICAgZ3JvdXBDb2x1bW4/OiBDb2x1bW5TY2hlbWFCYXNlO1xuXG4gICAgc2hvd0V4cG9ydEFsbCA9IGZhbHNlO1xuICAgIHNob3dFeHBvcnRTZWxlY3RlZEl0ZW1zID0gdHJ1ZTtcbiAgICBleHBvcnRBbGxNb2RlbDogRXhwb3J0QWxsTW9kZSA9IEV4cG9ydEFsbE1vZGUuQXV0b0dldERhdGE7XG4gICAgZXhwb3J0SXRlbXNNb2RlOiBFeHBvcnRJdGVtc01vZGUgPSBFeHBvcnRJdGVtc01vZGUuRnJvbUh0bWw7XG5cbiAgICBlbmFibGVWZXJzaW9uID0gZmFsc2U7XG4gICAgc2hvd1ZlcnNpb25CdXR0b24gPSBmYWxzZTtcbiAgICB2ZXJzaW9uTW9kZWw/OiB7W2tleTogc3RyaW5nXTogYW55O30gPSB7fTtcbiAgICBzaG93SGlzdG9yeSA9IGZhbHNlO1xuICAgIGhpc3Rvcnk/OiBhbnk7XG5cbiAgICBjb2xvckZpbHRlckZpZWxkID0gJyc7XG4gICAgY29sb3JGaWx0ZXJUYWJsZT86IFJvd0NvbG9yT3B0aW9uW10gPSBbXTtcblxuICAgIGVudGl0eU1ldGFkYXRhU2V0dGluZz86IENydWRGb3JtU2V0dGluZyA9IG5ldyBDcnVkRm9ybVNldHRpbmcoKTtcblxuICAgIGZpZWxkU2VhcmNoVGV4dD86IHN0cmluZ1tdID0gW107XG4gICAgZmlsdGVyVGVtcGxhdGVBZHZzPzogRmlsdGVyW107XG5cbiAgICBmdW5jdGlvbjogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKCk7XG5cbiAgICBwb3B1cEhlYWRlcj8gPSAnJztcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKCk7XG4gICAgbWFza0NsYXNzPzogc3RyaW5nO1xuXG4gICAgZ2V0Q3VzdG9tRGF0YVRyaW5oS3k6IChyb3dEYXRhKSA9PiBhbnkgPSAocm93RGF0YSkgPT4gKHt9KTtcbiAgICBnZXRMYWJlbEJ1dHRvblRyaW5oS3k6IChyb3dEYXRhKSA9PiBzdHJpbmcgPSAocm93RGF0YSkgPT4gJ1Ryw6xuaCBrw70nO1xuICAgIGNoZWNrUmVhZHlUb1RyaW5oS3k6ICgpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0U2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0NvbmZpZ0FkdmFuY2Uge1xuICAgIGdldFdvcmtmbG93U2V0dGluZzogKHJvd0RhdGEpID0+IFdvcmtmbG93U2V0dGluZ05ldztcbn1cblxuZXhwb3J0IGNsYXNzIENydWRMaXN0Q3VzdG9tRnVuY3Rpb24ge1xuICAgIC8vIEN1c3RvbWl6ZVxuICAgIGdldFNlYXJjaENvbnRyb2w/OiAoZmllbGQ6IHN0cmluZykgPT4gRm9ybVNjaGVtYUJhc2VbXSA9IChmaWVsZDogc3RyaW5nKSA9PiBudWxsO1xuICAgIC8vIEFzeW5jIGZ1bmN0aW9uXG4gICAgbW9kaWZ5QWR2YW5jZVNlYWNoTW9kZWw/OiAoZGF0YTogQWR2YW5jZVNlYXJjaERhdGEsIHNldHRpbmc6IEFkdmFuY2VTZWFyY2hTZXR0aW5nKSA9PiBQcm9taXNlPHZvaWQ+ID0gYXN5bmMgKGRhdGEpID0+IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJzb25hbFNldHRpbmcge1xuICAgIGNvbHVtblNldHRpbmc/OiBDb2x1bW5TZXR0aW5nID0gbmV3IENvbHVtblNldHRpbmcoKTtcbiAgICBwYWdlU2V0dGluZz86IFBhZ2VTZXR0aW5nID0gbmV3IFBhZ2VTZXR0aW5nKCk7XG4gICAgY29sb3JGaWx0ZXJGaWVsZCA9ICcnO1xuICAgIGNvbG9yRmlsdGVyVGFibGU/OiBSb3dDb2xvck9wdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUGVyc29uYWxTZXR0aW5nKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRMaXN0RGF0YSBleHRlbmRzIENydWRCYXNlIHtcbiAgICBsb2FkaW5nID0gZmFsc2U7XG4gICAgcmVhZHkgPSB0cnVlO1xuICAgIC8vIGJhc2UgcmVhZHkgbMOgIGNo4bupYyBuxINuZyBraeG7g20gdHJhIHJlYWR5IGPhu6dhIHJpw6puZyB0cm9uZyBiYXNlLiBrIGdp4buRbmcgduG7m2kgcmVhZHkg4bufIHRyw6puXG4gICAgLy8gRMO5bmcgxJHhu4Mga2nhu4NtIHRyYSBu4bq/dSBjw7Mgd29ya2Zsb3cgdGjDrCB04bqhbSB0aOG7nWkgY2jGsGEgY2hvIOG6pW4gdGjDqm0gbeG7m2kgbuG6v3UgY2jGsGEgbG9hZCB4b25nIGThu68gbGnhu4d1IGPhuqduIHRoaeG6v3RcbiAgICBiYXNlUmVhZHkgPSBmYWxzZTtcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZEl0ZW1zPzogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZEl0ZW0/OiBhbnk7XG4gICAgc2VsZWN0ZWRJdGVtTGFzdD86IGFueTtcbiAgICBzZWxlY3RlZElkPzogbnVtYmVyO1xuICAgIHRvdGFsID0gMDtcbiAgICBpdGVtRGF0YT86IGFueTtcbiAgICBhZHZhbmNlRGF0YTogYW55ID0ge307XG5cbiAgICAvLyBDw6FjIHRodeG7mWMgdMOtbmggYuG7lSBzdW5nIGRvIGLhu4sgbOG7l2kga2hpIHBhY2thZ2VcbiAgICBzdWJtaXR0aW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgLy8gRW5kIEPDoWMgdGh14buZYyB0w61uaCBi4buVIHN1bmcgZG8gYuG7iyBs4buXaSBraGkgcGFja2FnZVxuXG4gICAgZXhwYW5kZWRSb3dLZXlzPzoge1trZXk6IHN0cmluZ106IGJvb2xlYW47fSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0RGF0YSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlNZWRhdGFEYXRhU2V0dGluZyB7XG4gICAgZGF0YT86IGFueSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eU1lZGF0YURhdGFTZXR0aW5nKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvd0NvbG9yT3B0aW9uIHtcbiAgICBmaWx0ZXJWYWx1ZSA9ICcnO1xuICAgIGNvbXBhcmVUeXBlID0gJyc7XG4gICAgY29sb3IgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSb3dDb2xvck9wdGlvbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQYWdlU2V0dGluZyB7XG4gICAgcGFnZSA9IDE7XG4gICAgcGFnZVNpemUgPSAxNTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQYWdlU2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nIHtcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD86IHN0cmluZztcbiAgICBzb3J0RGlyPzogLTEgfCAwIHwgMSB8IDIgPSAtMTtcbiAgICBncm91cEZpZWxkID0gJyc7XG4gICAgZGV0YWlscz86IENvbHVtblNldHRpbmdEZXRhaWxbXSA9IFtdO1xuICAgIGNvbHVtblJlb3JkZXI/O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29sdW1uU2V0dGluZ0RldGFpbCB7XG4gICAgb3JkZXI/OiBudW1iZXI7XG4gICAgY29sdW1uQ29kZT86IHN0cmluZztcbiAgICBjb2x1bW5OYW1lPzogc3RyaW5nO1xuICAgIHZpc2libGU/OiBib29sZWFuO1xuICAgIHRleHRBbGlnbj86IFRleHRBbGlnbjtcbiAgICB3aWR0aD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIENydWRGb3JtRGF0YSBleHRlbmRzIENydWRCYXNlIHtcbiAgICBkYXRhPzogYW55ID0ge307XG4gICAgc3VibWl0dGluZz8gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBUcuG6oW5nIHRow6FpIGPhu6dhIGZvcm0gxJFhbmcgxJHGsOG7o2MgbeG7nzogTMOgIGZvcm0gdGjDqm0gbeG7m2ksIGhheSBmb3JtIHPhu61hLCBoYXkgZm9ybSB4w7NhXG4gICAgICovXG4gICAgZm9ybVN0YXRlPzogRm9ybVN0YXRlID0gRm9ybVN0YXRlLkFERDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkRm9ybURhdGEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiB7XG4gICAgLy8gQ3VzdG9taXplXG4gICAgbW9kaWZ5RGF0YUFmdGVyR2V0Q2FjaGU/OiAoZGF0YTogYW55KSA9PiB2b2lkID0gKGRhdGE6IGFueSkgPT4gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRGb3JtU2V0dGluZyB7XG4gICAgZGlzYWJsZUNhY2hpbmcgPSBmYWxzZTtcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcbiAgICBzY2hlbWE/OiBGb3JtU2NoZW1hQmFzZVtdID0gW107XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcbiAgICBidWlsZEluU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZ1tdIHwgc3RyaW5nW11bXSA9IFtdO1xuICAgIGZpZWxkRHJvcGRvd24/OiB7W2tleTogc3RyaW5nXTogRHJvcGRvd25Db250cm9sU2NoZW1hO30gPSB7fTtcbiAgICBmaWVsZE5lZWRHZXRSZWY/OiB7W2tleTogc3RyaW5nXTogVGV4dENvbnRyb2xTY2hlbWE7fSA9IHt9O1xuICAgIGRpc3BsYXlGaWVsZD86IHN0cmluZyB8ICgoaXRlbSkgPT4gc3RyaW5nKTtcbiAgICBmaXJzdEZvY3VzQ29udHJvbD86IHN0cmluZztcbiAgICBmaWx0ZXJDaGVja0V4aXN0QnlWZXJzaW9uPzogRmlsdGVyW107XG4gICAgZGVmYXVsdEZpbHRlckNoZWNrRXhpc3Q/OiBGaWx0ZXJbXSB8ICgoKSA9PiBGaWx0ZXJbXSk7XG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xuICAgIGVudGl0eU1ldGFkYXRhRGF0YT86IENydWRGb3JtRGF0YTtcbiAgICBlbnRpdHlNZXRhZGF0YVNldHRpbmc/OiBDcnVkRm9ybVNldHRpbmc7XG4gICAgZnVuY3Rpb24/OiBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uID0gbmV3IENydWRGb3JtQ3VzdG9tRnVuY3Rpb24oKTtcbiAgICBnZXRDdXN0b21EYXRhVHJpbmhLeTogKHJvd0RhdGEpID0+IGFueSA9IChyb3dEYXRhKSA9PiAoe30pO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRGb3JtU2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZHZhbmNlU2VhcmNoRGF0YSBleHRlbmRzIENydWRGb3JtRGF0YSB7XG4gICAgaW5pdERhdGE/OiBhbnkgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZHZhbmNlU2VhcmNoRGF0YSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZHZhbmNlU2VhcmNoU2V0dGluZyBleHRlbmRzIENydWRGb3JtU2V0dGluZyB7XG4gICAgZmllbGRLZXkgPSAnX2snO1xuICAgIGVudGl0eVBlcm1pc3Npb25TY2hlbWE/OiBGb3JtQ29udHJvbEJhc2VbXSA9IFtdO1xuICAgIGtlZXBJbml0U2VhcmNoRGF0YU5vdE51bGwgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFkdmFuY2VTZWFyY2hTZXR0aW5nKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNjaGVtYUJhc2Uge1xuICAgIGZpZWxkPzogc3RyaW5nO1xuICAgIHVuaXF1ZUZpZWxkPzogc3RyaW5nO1xuICAgIHR5cGU/OiAnYm9vbGVhbicgfCAnaW50JyB8ICdkZWNpbWFsJyB8ICdkYXRldGltZScgfCAnc3RyaW5nJyA9ICdzdHJpbmcnO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFNjaGVtYUJhc2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRm9ybVNjaGVtYUJhc2UgZXh0ZW5kcyBTY2hlbWFCYXNlIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmdWxsTGFiZWw/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgc2hvd0xhYmVsPyA9IHRydWU7XG4gICAgZ1dpZHRoPyA9IDEyO1xuICAgIG1kV2lkdGg/ID0gNjtcbiAgICB3aWR0aD86IHN0cmluZztcbiAgICBjbGFzcz8gPSAnJztcbiAgICBzdHlsZT86IGFueSA9IHt9O1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBoaWRkZW4/ID0gZmFsc2U7XG4gICAgaGlkZGVuQ2hlY2s/OiAocm9vdE1vZGVsOiBhbnksIGN1cnJlbnROb2RlOiBDb250cm9sVHJlZU5vZGUpID0+IGJvb2xlYW47XG4gICAgaGlkZGVuT25WaWV3PyA9IGZhbHNlO1xuICAgIHZpc2libGVJbkxpc3Q/ID0gdHJ1ZTtcbiAgICBvcGVyYXRvcj86IE9wZXJhdG9yO1xuICAgIGdyb3VwQ29kZT8gPSAnJztcbiAgICBkZWZhdWx0VmFsdWU/OiBhbnk7XG4gICAgZmllbGRBbGlhcz8gPSAnJztcbiAgICBkYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybVNjaGVtYUJhc2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIGNvbnRyb2xzOiBGb3JtU2NoZW1hQmFzZVtdO1xuICAgIHNob3dJbkJveD8gPSB0cnVlO1xuICAgIGJveFN0eWxlPzogYW55O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbnRhaW5lclNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIC8vIFVybCDEkeG7gyBs4bqleSBk4buvIGxp4buHdSAqKiogS0jDlE5HIFPhu6wgROG7pE5HIFRST05HIEPDgUMgQ0FTRSBQSOG7lCBCSeG6vk4sIENI4buIIFPhu6wgROG7pE5HIMSQ4buQSSBW4buaSSBGT1JNIEtI4bqiTyBTw4FUICoqKlxuICAgIHNlcnZpY2VVcmk/ID0gJyc7XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcblxuICAgIGlzU2VydmVyTG9hZD8gPSBmYWxzZTtcbiAgICBzZWFyY2hGaWVsZD86IHN0cmluZ1tdO1xuXG4gICAgaXNUcmVlPyA9IGZhbHNlO1xuICAgIGZpZWxkVHJlZT86IHN0cmluZztcbiAgICB2YWx1ZVBhcmVudFJvb3Q/OiBhbnkgPSBudWxsOyAvLyBHacOhIHRy4buLIHRyxrDhu51uZyBbZmllbGRUcmVlXSBj4bunYSBpdGVtIHRyZWUgcm9vdFxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/ID0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxuICAgIHNlbGVjdENoaWxkSXRlbT8gPSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgc2VsZWN0RGVzY2VuZGFudD8gPSBmYWxzZTsvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG5cbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPyA9ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz8gPSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+OyAvLyB0dW5ndHMgdGjDqm0ga2nhu4N1IGThu68gbGnhu4d1IGRlZmF1bHRGaWx0ZXJzIGzDoCBwcm9taXNlXG4gICAgYWZ0ZXJHZXREYXRhPzogRnVuY3Rpb247XG5cbiAgICBmdW5jU2V0RGVmYXVsdFZhbHVlPzogRnVuY3Rpb247XG5cbiAgICBmaWVsZFZhbHVlUGFyZW50PyA9ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cblxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBtb2RpZnlGaWx0ZXI/OiBGdW5jdGlvbjtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExhYmVsU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIGZvcj8gPSAnJztcbiAgICBpc0h0bWw/ID0gZmFsc2U7XG4gICAgbWRXaWR0aD8gPSAxMjtcbiAgICBpbmRleExhYmVsPzogbnVtYmVyO1xuICAgIHRleHQ/ID0gJyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTGFiZWxTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGl0bGVTY2hlbWEgZXh0ZW5kcyBMYWJlbFNjaGVtYSB7XG4gICAgY2xhc3M/ID0gJ3RpdGxlLWdyb3VwIHRleHQtYm9sZCc7XG4gICAgbWRXaWR0aD8gPSAxMjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUaXRsZVNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGb3JtQ29udHJvbEJhc2UgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XG4gICAgX2NvbXBvbmVudD86IGFueTsgLy8gQ29tcG9uZW50IGPhu6dhIHNjaGVtYSBraGkga2jhu59pIHThuqFvXG4gICAgdW5pcXVlRmllbGQ/OiBzdHJpbmc7IC8vIFPhu60gZOG7pW5nIHRyb25nIHRhYmxlIHNjaGVtYVxuICAgIGF1dG9mb2N1cz8gPSBmYWxzZTtcbiAgICB2YWxpZGF0b3JzPzogSVZhbGlkYXRvcltdID0gW107XG4gICAgY29ycmVjdG9ycz86IElDb3JyZWN0b3JbXSA9IFtdO1xuICAgIHJlcXVpcmVkPyA9IGZhbHNlO1xuICAgIGVuYWJsZUNhY2hpbmc/ID0gZmFsc2U7XG4gICAgb25DaGFuZ2VkPzogRnVuY3Rpb247XG4gICAgdHJpZ2dlckxvYWRDaGlsZD86IEZ1bmN0aW9uO1xuICAgIGhhc09wZXJhdG9yQ2FuQm8/ID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybUNvbnRyb2xCYXNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICAvKiogQ29weSB04burIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgKi9cbiAgICAgICAgLy8gVXJsIMSR4buDIGzhuqV5IGThu68gbGnhu4d1ICoqKiBLSMOUTkcgU+G7rCBE4bukTkcgVFJPTkcgQ8OBQyBDQVNFIFBI4buUIEJJ4bq+TiwgQ0jhu4ggU+G7rCBE4bukTkcgxJDhu5BJIFbhu5pJIEZPUk0gS0jhuqJPIFPDgVQgKioqXG4gICAgc2VydmljZVVyaT8gPSAnJztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XG4gICAgcmVmRmllbGRzPzogUmVmRmllbGRbXSA9IFtdO1xuICAgIGdyb3VwQ29kZT86IHN0cmluZztcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuXG4gICAgaXNTZXJ2ZXJMb2FkPyA9IGZhbHNlO1xuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XG5cbiAgICBpc1RyZWU/ID0gZmFsc2U7XG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT8gPSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXG4gICAgZmllbGRNYVBoYW5DYXA/ID0gJ21hUGhhbkNhcCc7IC8vIEZpZWxkIG3DoyBwaMOibiBj4bqlcFxuICAgIHNlbGVjdENoaWxkSXRlbT8gPSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgc2VsZWN0RGVzY2VuZGFudD8gPSBmYWxzZTsvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG5cbiAgICBwYWdlU2l6ZT86IG51bWJlciA9IDE1OyAvLyBEw7luZyBjaG8gZHJvcGRvd24gc2VydmVyIGxvYWRcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPyA9ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz8gPSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+OyAvLyB0dW5ndHMgdGjDqm0ga2nhu4N1IGThu68gbGnhu4d1IGRlZmF1bHRGaWx0ZXJzIGzDoCBwcm9taXNlXG4gICAgZmlsdGVyV2hpbGVQcm9jZXNzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+OyAvLyB0dW5ndHMgdGjDqm0ga2nhu4N1IGThu68gbGnhu4d1IGRlZmF1bHRGaWx0ZXJzIGzDoCBwcm9taXNlXG4gICAgYmluZGluZ0ZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBhZnRlckdldERhdGE/OiBGdW5jdGlvbjtcblxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcblxuICAgIHBhcmVudEZpZWxkPzogc3RyaW5nOyAvLyBDb2x1bW4gdMawxqFuZyDhu6luZyB0cm9uZyB0YWJsZSBzcWwgc2VydmVyLlxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/ID0gJ3ZhbHVlJzsgLy8gVHLGsOG7nW5nIHPhu60gZOG7pW5nIMSR4buDIGzhuqV5IGThu68gbGnhu4d1IGzDoG0ga2jDs2EgdOG7qyBi4bqjbmcgY2hhIGPhu6dhIGl0ZW0gZHJvcCBkb3duIMSRxrDhu6NjIGNo4buNblxuXG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIGZpcmVDYWxsQmFja0luc2lkZT8gPSB0cnVlO1xuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xuXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XG5cbiAgICAvKiogRW5kIGNvcHkgdOG7qyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlICovXG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGV4dENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHNlbGVjdEFsbFRleHQ/ID0gZmFsc2U7IC8vIENo4buNbiB04bqldCBj4bqjIHRleHQga2hpIGZvY3VzXG5cbiAgICBwbGFjZWhvbGRlcj8gPSAnJztcbiAgICBkYXRhRm9ybWF0PzogJ3RleHQnIHwgJ3Bhc3N3b3JkJyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdwaG9uZScgfCAnZmF4JyB8ICdtb25leScgfCAnbW9uZXlpbnQnIHwgJ2Ftb3VudCcgPSAndGV4dCc7XG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAgIG1pbj8gPSAwO1xuICAgIG1heD8gPSA5OTk5OTk5OTtcblxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcblxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/ID0gJyc7XG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XG4gICAgZmllbGRQbHVzPyA9ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGV4dENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGV4dENvbnRyb2xTY2hlbWFXaXRoU2VydmljZSBleHRlbmRzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIHtcbiAgICBwbGFjZWhvbGRlcj8gPSAnJztcbiAgICBkYXRhRm9ybWF0PzogJ3RleHQnIHwgJ251bWJlcicgfCAnZW1haWwnIHwgJ3Bob25lJyB8ICdmYXgnIHwgJ21vbmV5JyB8ICdtb25leWludCcgfCAnYW1vdW50JyA9ICd0ZXh0JztcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGV4dENvbnRyb2xTY2hlbWFXaXRoU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNYXNrQ29udHJvbFNjaGVtYSBleHRlbmRzIFRleHRDb250cm9sU2NoZW1hIHtcbiAgICBtYXNrVHlwZT86ICdkZWNpbWFsJyB8ICdpbnQnID0gJ2ludCc7XG4gICAgbWluPyA9IDA7XG4gICAgbWF4PyA9IDk5OTk5OTk5OTk7XG4gICAgcHJlZml4PyA9ICcnO1xuICAgIHN1ZmZpeD8gPSAnJztcbiAgICBkZWNpbWFsUGxhY2VzPyA9IDI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTWFza0NvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTnVtYmVyUmFuZ2VDb250cm9sU2NoZW1hIGV4dGVuZHMgVGV4dENvbnRyb2xTY2hlbWEge1xuICAgIG1hc2tUeXBlPzogJ2RlY2ltYWwnIHwgJ2ludCc7XG4gICAgbWluPyA9IDA7XG4gICAgbWF4PyA9IDk5OTk5OTk5OTk7XG4gICAgcHJlZml4PyA9ICcnO1xuICAgIHN1ZmZpeD8gPSAnJztcbiAgICBkZWNpbWFsUGxhY2VzPyA9IDI7XG4gICAgLy8gU+G7rSBk4bulbmcgxJHhu4Mga2hhaSBiw6FvIG9wZXJhdG9yIGNobyBjb250cm9sIHRyb25nIHF1ZXJ5LWJ1aWxkZXIgdGhheSBjaG8gY8OhYyBvcGVyYXRvciBt4bq3YyDEkeG7i25oIMSRxrDhu6NjIHThuqFvIHThu6sgcXVlcnktYnVpbGRlclxuICAgIG9wZXJhdG9ycz86IGFueVtdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE51bWJlclJhbmdlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGFwcGVuZFRvPyA9ICdib2R5JztcbiAgICBwYW5lbENsYXNzPyA9ICcnO1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIHNob3dUaW1lPyA9IGZhbHNlO1xuICAgIHNob3dJY29uPyA9IHRydWU7XG4gICAgZm9ybWF0PzogJ25vcm1hbCcgfCAnZnJvbU5vdycgPSAnZnJvbU5vdyc7XG4gICAgc2hvd09uRm9jdXM/ID0gdHJ1ZTtcbiAgICBtaW5EYXRlPzogRGF0ZSA9IG51bGw7XG4gICAgbWF4RGF0ZT86IERhdGUgPSBudWxsO1xuICAgIHRpbWVPbmx5PyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERhdGVUaW1lQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnNob3dUaW1lID8gJ2RkL01NL3l5eXkgaGg6bW0nIDogJ2RkL01NL3l5eXknO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVSYW5nZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRlVGltZUNvbnRyb2xTY2hlbWEge1xuICAgIHNob3dJY29uPyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERhdGVUaW1lQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xuXG4gICAgLy8gI1Byb3BlcnR5IG92ZXJyaWRlXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcbiAgICAvLyAjRW5kIHByb3BlcnR5IG92ZXJyaWRlXG5cbiAgICByZXR1cm5UeXBlPzogJ3ZhbHVlJyB8ICdvYmplY3QnID0gJ3ZhbHVlJztcblxuICAgIG11bHRpcGxlPyA9IHRydWU7XG4gICAgbGltaXQ/ID0gMTAwMDtcbiAgICB0aXRsZT8gPSAnICc7XG4gICAgY29sdW1ucz86IEVudGl0eVBpY2tlckNvbHVtbltdO1xuICAgIGZpZWxkU2VhcmNoVGV4dD86IHN0cmluZ1tdID0gW107XG4gICAgZGF0YUluaXQ/OiBhbnkgPSB7fTtcbiAgICBhZHZhbmNlU2VhcmNoTW9kZWw/OiBhbnkgPSB7fTtcbiAgICBvblNlYXJjaEZvcm1Jbml0aWFsaXplZD86IEZ1bmN0aW9uO1xuICAgIG9uRm9ybUV2ZW50PzogRnVuY3Rpb247XG4gICAgb25TZWxlY3RFbnRpdHk/OiBGdW5jdGlvbjsgLy8gbuG6v3UgZnVuY3Rpb24ga2jDoWMgbnVsbCB2w6AgcmV0dXJuIHRydWUgc+G6vSBjaG8gcGjDqXAgbeG7nyBkaWFsb2dcbiAgICBhZnRlckNvbnRlbnRMZWZ0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcbiAgICBhZnRlckNvbnRlbnRSaWdodEluaXQ/OiAoY3J1ZExpc3Q6IENydWRMaXN0Q29tcG9uZW50KSA9PiB2b2lkOyAvLyBTYXUga2hpIGPDoWMgdGVtcGxhdGUgY29udGVudCBpbml0XG4gICAgYWZ0ZXJHZXREYXRhPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBFbnRpdHlQaWNrZXJDb21wb25lbnQpID0+IHZvaWQ7XG4gICAgYWZ0ZXJHZXREYXRhVW5QaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckRhdGFDb21wb25lbnQpID0+IHZvaWQ7XG4gICAgYWZ0ZXJHZXREYXRhUGlja2VkPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBFbnRpdHlQaWNrZXJTZWxlY3RlZENvbXBvbmVudCkgPT4gdm9pZDtcblxuICAgIC8vIEPDsyBz4butIGThu6VuZyBwbHVzVXJsIOG7nyBtw6BuIGjDrG5oIGNow61uaCBFbnRpdHlQaWNrZXIgaGF5IGtow7RuZy5cbiAgICB1c2VEZWZhdWx0UGx1c2xVcmxJbkxpc3Q/ID0gZmFsc2U7XG5cbiAgICAvLyBDw7Mgc+G7rSBk4bulbmcgZGVmYXVsdEZpbHRlciBraGkgdMOsbSBraeG6v20gZGFuaCBzw6FjaCDhu58gbcOgbiBow6xuaCBjaMOtbmggRW50aXR5UGlja2VyLlxuICAgIHVzZURlZmF1bHRGaWx0ZXJJbkxpc3Q/ID0gZmFsc2U7XG5cbiAgICBoaWRkZW5BZHZhbmNlU2VhcmNoPyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEge1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGRhdGFUeXBlPzogRW51bUNvbnRyb2xQaWNrZXJUeXBlID0gRW51bUNvbnRyb2xQaWNrZXJUeXBlLlVTRVI7XG4gICAgYXBwZW5kVG8/ID0gJ2JvZHknO1xuICAgIG1vZGlmeUluaXRTZWFyY2hEYXRhPzogRnVuY3Rpb247IC8vIFPhu60gZOG7pW5nIMSR4buDIG1vZGlmeSBkYXRhIGPhu6dhIHBo4bqnbiBzZWFyY2gsIHRoxrDhu51uZyDEkeG7gyBzZXQgaW5pdCBkYXRhIGR5bmFtaWMgdGhlbyBuaHUgY+G6p3VcbiAgICBjYWxsQmFjaz86IHtba2V5OiBzdHJpbmddOiBGdW5jdGlvbjt9O1xuICAgIG9uUmVhZHk/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XG4gICAgbW9kaWZ5Q29udHJvbD86IEZ1bmN0aW9uOyAvLyBT4butIGThu6VuZyDEkeG7gyBtb2RpZnkgc2NoZW1hIGJhc2VcbiAgICBuZWVkQ2xvbmU/ID0gZmFsc2U7IC8vIFPhu60gZOG7pW5nIHRyb25nIHRhYmxlIHNjaGVtYSwga2hpIGRhdGFzb3VyY2UgY+G7p2EgbeG7mXQgY+G7mXQgdHLDqm4gbeG7l2kgZMOybmcgbMOgIGtow6FjIG5oYXUgY+G6p24gc2V0IG5lZWRDbG9uZSA9IHRydWVcXFxuICAgIGFmdGVyR2V0RGF0YURyb3Bkb3duPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBBdXRvQ29tcGxldGVQaWNrZXJDb21wb25lbnQpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXcmFwUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEge1xuICAgIGRhdGFUeXBlPzogRW51bUNvbnRyb2xQaWNrZXJUeXBlID0gRW51bUNvbnRyb2xQaWNrZXJUeXBlLlVTRVI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgLy8gU+G7rSBk4bulbmcgxJHhu4Mga2hhaSBiw6FvIG9wZXJhdG9yIGNobyBjb250cm9sIHRyb25nIHF1ZXJ5LWJ1aWxkZXIgdGhheSBjaG8gY8OhYyBvcGVyYXRvciBt4bq3YyDEkeG7i25oIMSRxrDhu6NjIHThuqFvIHThu6sgcXVlcnktYnVpbGRlclxuICAgIG9wZXJhdG9ycz86IGFueVtdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEN1c3RvbUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29sb3JQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sb3JQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgU3BhbkNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHNvdXJjZUZpZWxkPzogc3RyaW5nO1xuICAgIGlzaHRtbD8gPSBmYWxzZTtcbiAgICBlZGl0YWJsZT8gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTcGFuQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2xvckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHNvdXJjZUZpZWxkPzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbG9yQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBLZXlWYWx1ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBLZXlWYWx1ZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICAvLyBlbWl0IGV2ZW50IGtoaSBjaOG7jW4gbeG7mXQgcm93IHRyb25nIGZpbGUgbWFuYWdlclxuICAgIG9uU2VsZWN0ZWQ/OiBGdW5jdGlvbiA9ICgpID0+IHtcbiAgICB9O1xuICAgIG1kV2lkdGg/ID0gMTI7XG4gICAgYWNjZXB0Pzogc3RyaW5nO1xuICAgIG1heEZpbGVTaXplPyA9IDEwMDAwMDAwMDtcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT8gPSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbD8gPSAnZHVuZyBsxrDhu6NuZyB04buRaSDEkWEgbMOgIHswfS4nO1xuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5PyA9ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPyA9ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5PyA9ICdRdcOhIHPhu5EgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWw/ID0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xuICAgIG1vZGU/OiBGaWxlTWFuYWdlck1vZGUgfCBGaWxlVXBsb2FkTW9kZSA9IEZpbGVNYW5hZ2VyTW9kZS5tdWx0aXBsZTtcbiAgICBsYXlvdXQ/OiBFbnVtRmlsZUxheW91dCA9IEVudW1GaWxlTGF5b3V0LkxJU1Q7XG4gICAgcmVhZG9ubHk/ID0gZmFsc2U7XG5cbiAgICAvLyBTZXJ2aWNlIGTDuW5nIMSR4buDIGzhuqV5IGRhdGFzb3VyY2UgY+G7p2Egbmhp4buBdSBjb250cm9sIG3hu5l0IGzhuqduLlxuICAgIGZpbGVEYXRhU2VydmljZT86IEZpbGVEYXRhU2VydmljZTtcblxuICAgIC8vIELhu5kgMyBrZXkgxJHhu4MgbOG6pXkgdGjGsCBt4bulYyBn4buRYy5cbiAgICBzZXJ2aWNlQ29kZT86IHN0cmluZztcbiAgICBlbnRpdHk/OiBzdHJpbmc7XG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xuXG4gICAgLy8gVMOqbiB0aMawIG3hu6VjIGfhu5FjIGtoaSBoaeG7g24gdGjhu4sgdHLDqm4gYnJlYWRjcnVtYnMuXG4gICAgcm9vdEZvbGRlck5hbWU/OiBzdHJpbmc7XG5cbiAgICAvLyBUcsaw4budbmcgaOG7o3Ag4bufIHRyb25nIGZvcm0sIGTDuW5nIHRyxrDhu51uZyBuw6B5IMSR4buDIGzhuqV5XG4gICAgLy8gZW50aXR5S2V5IHThu6sgbW9kZWwuZGF0YSB0aGF5IHbDrCB0cnV54buBbiB2w6BvIGVudGl0eUtleVxuICAgIGVudGl0eUtleUZpZWxkPyA9ICdpZCc7XG4gICAgZGF0YUt5U29Eb25WaT86IEZ1bmN0aW9uO1xuXG4gICAgaW5UYWlMaWV1PyA9IGZhbHNlO1xuICAgIGluVGFpTGlldUNodW5nPyA9IGZhbHNlO1xuICAgIGNvcHlUb0ZvbGRlcklkPyA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29udHJvbFNjaGVtYSBleHRlbmRzIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSB7XG4gICAgbW9kZT8gPSBGaWxlVXBsb2FkTW9kZS51c2luZ1NlcnZpY2VGaWxlO1xuICAgIG1kV2lkdGg/ID0gNjtcbiAgICBzaGFyZWRGb2xkZXJUeXBlPzogU2hhcmVkRm9sZGVyVHlwZSA9IFNoYXJlZEZvbGRlclR5cGUuVGVtcHQ7XG5cbiAgICBoaWRkZW5CdXR0b25zPyA9IGZhbHNlO1xuICAgIGRpc2FibGVkPyA9IGZhbHNlO1xuICAgIHJlYWRvbmx5PyA9IGZhbHNlO1xuICAgIGF1dG9TYXZlZD8gPSB0cnVlO1xuXG4gICAgZW5hYmxlU2Nhbj8gPSBmYWxzZTtcbiAgICBleHRyYWN0WmlwRmlsZT8gPSBmYWxzZTtcbiAgICBlbmFibGVEcml2ZUZpbGU/ID0gZmFsc2U7XG5cbiAgICBzaG93RG93bmxvYWRGaWxlPyA9IHRydWU7XG4gICAgc2hvd0RlbGV0ZUZpbGU/ID0gdHJ1ZTtcbiAgICBzaG93UHJpbnRGaWxlPyA9IHRydWU7XG4gICAgbWF4RmlsZVNpemU/ID0gMTAwMDAwMDAwOyAvLyAxMDAgTUJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT8gPSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbD8gPSAnZHVuZyBsxrDhu6NuZyB04buRaSDEkWEgbMOgIHswfS4nO1xuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5PyA9ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPyA9ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5PyA9ICdRdcOhIHPhu5EgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWw/ID0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpbGVVcGxvYWRDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IFN3aXRjaENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XG4gICAgaGlkZGVuTGFiZWw/ID0gZmFsc2U7IC8vIFNldCA9IHRydWUgY2jhu6cgeeG6v3Uga2hpIGTDuW5nIHRyb25nIHRhYmxlIHNjaGVtYSDEkeG7gyDhuqluIGxhYmVsIMSRaSwgdsOsIGxhYmVsIMSRw6MgY8OzIHRyw6puIHRpw6p1IMSR4buBIGPhu5l0XG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoZWNrYm94Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCdXR0b25Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIHNob3dMYWJlbD8gPSBmYWxzZTtcbiAgICBidENsYXNzPyA9ICdwLWJ1dHRvbi10ZXh0JztcbiAgICBpY29uPztcbiAgICBidFN0eWxlPyA9IHsgd2lkdGg6ICdhdXRvJyB9O1xuICAgIG9uQ2xpY2s/OiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBCdXR0b25Db250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICB0ZW1wbGF0ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRlbXBsYXRlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0QXJlYUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIHJvd3M/ID0gNTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0QXJlYUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXNlclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGFwcGVuZFRvPyA9ICdib2R5JztcbiAgICBtdWx0aXBsZT8gPSB0cnVlO1xuICAgIGxpbWl0PyA9IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBuZ8aw4budaSBkw7luZyB04buRaSDEkWEgxJHGsOG7o2MgcGlja1xuICAgIHRpdGxlPyA9ICdDaOG7jW4gbmfGsOG7nWkgZMO5bmcnO1xuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xuICAgIGZpbHRlcldoaWxlUHJvY2Vzcz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcbiAgICBlbmFibGVDYWNoaW5nPyA9IHRydWU7XG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcj8gPSAnJztcbiAgICBsYXp5TG9hZE9yZ2FuaXphdGlvbj8gPSBmYWxzZTtcbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICdmdWxsTmFtZU5ldyc7XG4gICAgZmllbGRQbHVzPyA9ICcnO1xuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgcmV0dXJuVHlwZT86ICd2YWx1ZScgfCAnb2JqZWN0JyA9ICd2YWx1ZSc7XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcbiAgICBnZXREaXNwbGF5TmFtZT86IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFVzZXJQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvQ2F1VG9DaHVjUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgYXBwZW5kVG8/ID0gJ2JvZHknO1xuICAgIG11bHRpcGxlPyA9IHRydWU7XG4gICAgbGltaXQ/ID0gMjA7IC8vIEdp4bubaSBo4bqhbiBz4buRIGLhuqNuIGdoaSB04buRaSDEkWEgxJHGsOG7o2MgcGlja1xuICAgIHRpdGxlPyA9ICdDaOG7jW4gxJHGoW4gduG7iyc7XG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47XG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XG4gICAgZmllbGRQbHVzPyA9ICcnO1xuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPcmdhbml6YXRpb25QaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBmaWx0ZXI/ID0gdHJ1ZTtcbiAgICBtdWx0aXBsZT8gPSB0cnVlO1xuICAgIHBhcmVudE9yZ0lkPzogbnVtYmVyO1xuICAgIHBhcmVudE9yZ0NvZGU/OiBzdHJpbmc7XG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xuICAgIGlzVXNpbmdJZD8gPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE9yZ2FuaXphdGlvblBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29DYXVUb0NodWNDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBmaWx0ZXI/ID0gdHJ1ZTtcbiAgICBtdWx0aXBsZT8gPSB0cnVlO1xuICAgIHBhcmVudE9yZ0lkPzogbnVtYmVyO1xuICAgIHBhcmVudE9yZ0NvZGU/OiBzdHJpbmc7XG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xuICAgIGlzVXNpbmdJZD8gPSB0cnVlO1xuICAgIGRpc2FibGVkUGFyZW50SXRlbT8gPSB0cnVlO1xuICAgIHJvb3RQYXJlbnRJZD86IHN0cmluZyA9IG51bGw7XG4gICAgZGlzYWJsZWQ/ID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29DYXVUb0NodWNDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIG1vZGU/OiAnYmFzaWMnIHwgJ21lZGl1bScgfCAnZnVsbCcgfCAnc2ltcGxlJyA9ICdiYXNpYyc7XG4gICAgaGVpZ2h0PyA9IDI1MDtcbiAgICBpbml0PzogYW55O1xuICAgIGxhbmd1YWdlQ29kZT86ICd2aScgfCAnZW4nO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVkaXRvckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD8gPSAndGVuJztcbiAgICByZXR1cm5UeXBlPzogJ3ZhbHVlJyB8ICdvYmplY3QnID0gJ3ZhbHVlJztcbiAgICBkYXRhU291cmNlPzogYW55IHwgRnVuY3Rpb247XG4gICAgLy8gU+G7rSBk4bulbmcgxJHhu4Mga2hhaSBiw6FvIG9wZXJhdG9yIGNobyBjb250cm9sIHRyb25nIHF1ZXJ5LWJ1aWxkZXIgdGhheSBjaG8gY8OhYyBvcGVyYXRvciBt4bq3YyDEkeG7i25oIMSRxrDhu6NjIHThuqFvIHThu6sgcXVlcnktYnVpbGRlclxuICAgIG9wZXJhdG9ycz86IGFueVtdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERhdGFTb3VyY2VDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcbiAgICBhcHBlbmRUbz8gPSAnYm9keSc7XG4gICAgcGFuZWxDbGFzcz8gPSAnJztcbiAgICBwbGFjZWhvbGRlcj8gPSAnQ2jhu41uJztcbiAgICBzZWxlY3RlZEl0ZW1zTGFiZWw/ID0gJ8SQw6MgY2jhu41uIHswfSBt4bulYyc7XG4gICAgc2VsZWN0ZWRBbGxJdGVtTGFiZWw/ID0gJ8SQw6MgY2jhu41uIHThuqV0IGPhuqMnO1xuICAgIHNob3dDbGVhcj8gPSB0cnVlO1xuICAgIGZpbHRlcj8gPSB0cnVlO1xuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xuICAgIGdlbmVyYXRlVG9vbHRpcD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgbWF4U2VsZWN0ZWRMYWJlbHM/PSA1O1xuICAgIG1heEl0ZW1EaXNwbGF5Pz0gNTA7XG4gICAgdmlydHVhbFNjcm9sbD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBmaXRQYW5lbD86IGJvb2xlYW4gPSB0cnVlO1xuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcbiAgICBuZWVkQ2xvbmU/ID0gZmFsc2U7IC8vIFPhu60gZOG7pW5nIHRyb25nIHRhYmxlIHNjaGVtYSwga2hpIGRhdGFzb3VyY2UgY+G7p2EgbeG7mXQgY+G7mXQgdHLDqm4gbeG7l2kgZMOybmcgbMOgIGtow6FjIG5oYXUgY+G6p24gc2V0IG5lZWRDbG9uZSA9IHRydWVcbiAgICB0ZW1wbGF0ZUl0ZW0/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHRlbXBsYXRlU2VsZWN0ZWRJdGVtPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBxdWlja0FkZD8gPSBmYWxzZTtcbiAgICBjb2xzPzogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICBpbml0RGF0YT86IGFueSA9IHt9O1xuICAgIGRlZmF1bHRJbmRleD8gPSAtMTtcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKHsgd2lkdGg6IDc1MCwgaGVpZ2h0OiA0MDAgfSk7XG5cbiAgICBsb2FkSW5GaXJzdERpc3BsYXk/ID0gdHJ1ZTtcblxuICAgIGF1dG9HZXREYXRhPyA9IHRydWU7XG5cbiAgICB2YWx1ZUZpZWxkPyA9ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPyA9ICd0ZW4nO1xuXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD8gPSBmYWxzZTtcbiAgICBub3RJbkNydWRGb3JtPyA9IGZhbHNlO1xuICAgIHNlYXJjaE11bHRpcGxlPyA9IHRydWU7XG4gICAgZGlzYWJsZURpc3BsYXlGaWVsZFNlcnZlclNlYXJjaD8gPSBmYWxzZTtcblxuICAgIGxvYWRPbkluaXQ/ID0gZmFsc2U7XG4gICAgYWxsb3dMb2FkRGF0YVdoZW5QYXJlbnROdWxsPyA9IGZhbHNlO1xuXG4gICAgZGlzYWJsZWRQYXJlbnRJdGVtPyA9IHRydWU7XG4gICAgb25BZGp1c3RlZFZhbHVlPzogRnVuY3Rpb247XG5cbiAgICAvLyBuZXdUcmVlRHJvcGRvd24/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25Db250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFkZHJlc3NDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBoaWRlTm8/ID0gZmFsc2U7XG4gICAgaGlkZVN0cmVldD8gPSBmYWxzZTtcbiAgICBoaWRlV2FyZD8gPSBmYWxzZTtcbiAgICBoaWRlRGlzdHJpY3Q/ID0gZmFsc2U7XG4gICAgcmVxdWlyZWRObz8gPSB0cnVlO1xuICAgIHJlcXVpcmVkU3RyZWV0PyA9IHRydWU7XG4gICAgcmVxdWlyZWRXYXJkPyA9IHRydWU7XG4gICAgcmVxdWlyZWREaXN0cmljdD8gPSB0cnVlO1xuICAgIHJlcXVpcmVkUHJvdmluY2U/ID0gdHJ1ZTtcbiAgICB3YXJkVG9Qcm92aW5jZT8gPSB0cnVlO1xuICAgIG5vV2lkdGg/ID0gMTtcbiAgICBzdHJlZXRXaWR0aD8gPSAzO1xuICAgIHdhcmRXaWR0aD8gPSAzO1xuICAgIGRpc3RyaWN0V2lkdGg/ID0gMjtcbiAgICBwcm92aW5jZVdpZHRoPyA9IDM7XG4gICAgc2hvd0luQm94PyA9IGZhbHNlO1xuXG4gICAgaGlkZUhvbGRlcj8gPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEFkZHJlc3NDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFZhbkJhblBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIG1kV2lkdGg/ID0gMTI7XG4gICAgdXNlVmJEZW4/ID0gdHJ1ZTtcbiAgICB1c2VWYkRpPyA9IHRydWU7XG4gICAgcmVhZG9ubHk/OiBib29sZWFuID0gZmFsc2U7XG4gICAgbG9haVZhbkJhbj86IEVudW1Mb2FpVmFuQmFuQmFzZSA9IEVudW1Mb2FpVmFuQmFuQmFzZS5WQl9ESTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBWYW5CYW5QaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbmdWaWVjUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgbWRXaWR0aD8gPSAxMjtcbiAgICBzZXJ2aWNlQ29kZT86IHN0cmluZztcbiAgICBlbnRpdHk/OiBzdHJpbmc7XG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xuICAgIHN0YXRlPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBlcmNlbnRDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBtZFdpZHRoPyA9IDEyO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBlcmNlbnRDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSB7XG4gICAgcGxhY2Vob2xkZXI/ID0gJyc7XG4gICAgbXVsdGlwbGU/ID0gZmFsc2U7XG4gICAgbWluTGVuZ3RoRmlsdGVyPyA9IDE7XG4gICAgYXBwZW5kVG8/OiBzdHJpbmcgPSAnYm9keSc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQXV0b0NvbXBsZXRlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XG4gICAgZW5hYmxlQ2FjaGluZz8gPSB0cnVlO1xuICAgIGxheW91dD86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAnaG9yaXpvbnRhbCc7XG4gICAgYWxpZ24/OiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCcgPSAnbGVmdCc7XG4gICAgb25BZGp1c3RlZFZhbHVlPzogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUmFkaW9CdXR0b25MaXN0Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDaGVja0JveExpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIGVuYWJsZUNhY2hpbmc/ID0gdHJ1ZTtcbiAgICBsYXlvdXQ/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xuICAgIGNsYXNzUGx1cz8gPSAnJztcbiAgICBmcmVlVGV4dD8gPSAnJztcbiAgICBwQ29sQ2xhc3M/OiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ2hlY2tCb3hMaXN0Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZVNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgcm93VGVtcGxhdGU6IEZvcm1TY2hlbWFCYXNlW107XG4gICAgcm93QnV0dG9ucz86IChyb3dEYXRhKSA9PiBNZW51SXRlbVtdO1xuICAgIGZvb3RlckJ1dHRvbnM/OiB7XG4gICAgICAgIGljb24/OiBzdHJpbmc7XG4gICAgICAgIGxhYmVsPzogc3RyaW5nO1xuICAgICAgICBjbGFzcz86IHN0cmluZztcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIH1bXTtcbiAgICBzaG93TnVtYmVyPyA9IHRydWU7XG4gICAgc2hvd0Z1bmN0aW9uPyA9IHRydWU7XG4gICAgc2hvd0Zvb3Rlcj8gPSB0cnVlO1xuICAgIHNob3dTYXZlPyA9IGZhbHNlO1xuICAgIHNob3dFZGl0PyA9IGZhbHNlO1xuICAgIHNob3dEZWxldGU/ID0gdHJ1ZTtcbiAgICBzaG93QWRkPyA9IHRydWU7XG4gICAgc2hvd0RpYWxvZz8gPSB0cnVlO1xuICAgIGVuYWJsZVJlb3JkZXJSb3c/ID0gZmFsc2U7XG4gICAgb25SZW9yZGVyZWQ/OiBGdW5jdGlvbjtcbiAgICBlbmFibGVBZGRNdWx0aT8gPSBmYWxzZTtcbiAgICBwaWNrZXJDb250cm9sRmllbGQ/OiBzdHJpbmc7XG4gICAgaXNVbmlxdWU/ID0gdHJ1ZTtcbiAgICBlbmFibGVQYWdpbmc/ID0gZmFsc2U7XG4gICAgbGltaXQ/ID0gNTA7XG4gICAgaW5pdFJvd0NvdW50PyA9IDE7XG4gICAgbWRXaWR0aD8gPSAxMjtcbiAgICByb3dCdXR0b25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuICAgIHN1bW1hcnlUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuICAgIGhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG5cbiAgICBvbkFkZGluZz86IEZ1bmN0aW9uO1xuICAgIG9uQWRkZWQ/OiBGdW5jdGlvbjtcbiAgICBvblNhdmU/OiBGdW5jdGlvbjtcbiAgICBvbk1lc3NhZ2U/OiBGdW5jdGlvbjtcbiAgICBvbkRlbGV0aW5nPzogRnVuY3Rpb247XG4gICAgb25EZWxldGVkPzogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGFibGVTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29sdW1uU2NoZW1hQmFzZSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2Uge1xuICAgIHdpZHRoPzogc3RyaW5nO1xuICAgIHNob3dFZGl0TGluaz8gPSBmYWxzZTtcbiAgICBzaG93VG9nZ2xlSWNvbj8gPSBmYWxzZTtcbiAgICBjb2xTcGFuPzogbnVtYmVyO1xuICAgIGdyb3VwPyA9IGZhbHNlO1xuICAgIHZpc2libGU/ID0gdHJ1ZTtcbiAgICByZW1vdmVPbkluaXQ/ID0gZmFsc2U7XG4gICAgYWxsb3dGaWx0ZXI/ID0gdHJ1ZTtcbiAgICB0ZXh0QWxpZ24/OiBUZXh0QWxpZ247XG4gICAgY2VsbENsYXNzPzogc3RyaW5nO1xuICAgIGZ1bGxUZXh0U2VhcmNoPyA9IGZhbHNlO1xuICAgIHJhd0NvbHVtbj86IENvbHVtblNjaGVtYUJhc2U7XG4gICAgc2VwYXJhdG9yPyA9ICcsICc7XG4gICAgbWF4SXRlbURpc3BsYXk/ID0gNTA7XG4gICAgcGFnZVNpemU/OiBudW1iZXIgPSAxNTsgLy8gUHJvcCBwaOG6o2kgZ2nhu5FuZyB24bubaSBkcm9wZG93blxuXG4gICAgZmlsZVNldHRpbmc/OiBGaWxlVXBsb2FkU2V0dGluZyB8IEZpbGVNYW5hZ2VyU2V0dGluZztcbiAgICBkYXRhVHlwZVJlZkZpZWxkPzogRGF0YVR5cGUgfCBzdHJpbmc7XG4gICAgZm9yY2VHZXREYXRhPyA9IGZhbHNlO1xuICAgIGRpc3BsYXlGaWVsZEluR3JpZD86IHN0cmluZztcbiAgICBmdW5jR2V0UmVmRGF0YVJvdz86IChyZWZJdGVtcykgPT4ge307XG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XG4gICAgcm93U3Bhbj8gPSAxO1xuICAgIGZvcm1hdD86IHN0cmluZztcbiAgICBkYXRhVHlwZT86IERhdGFUeXBlIHwgc3RyaW5nO1xuICAgIGNvbnRyb2xUeXBlPzogQ29udHJvbFR5cGUgPSBDb250cm9sVHlwZS50ZXh0Ym94O1xuICAgIHRlbXBsYXRlRmlsdGVyPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBmaWVsZEZpbHRlcj86IHN0cmluZztcbiAgICBkaXNhYmxlQ2hlY2tCb3g/ID0gdHJ1ZTtcbiAgICAvLyBUaOG7qSB04buxIMawdSB0acOqbiBnZXQgcmVmIGRhdGEgY+G7p2EgY3J1ZC1saXN0XG4gICAgLy8gTuG6v3UgY8OzIHZhbHVlIG5naMSpYSBsw6Agbmjhu69uZyBj4buZdCBuw6B5IGPhuqduIHBo4bqjaSBs4bqleSBk4buvIGxp4buHdSB4b25nIHLhu5NpIG3hu5tpIMSR4bq/biBj4buZdCBraMOhY1xuICAgIG9yZGVyPzogbnVtYmVyO1xuICAgIG1heFdvcmREaXNwbGF5PzogbnVtYmVyO1xuICAgIG1heExlbmd0aERpc3BsYXk/OiBudW1iZXI7XG5cbiAgICBtZFdpZHRoSW5TZWFyY2g/ID0gMTI7XG5cbiAgICBtaW4/ID0gMDtcbiAgICBtYXg/ID0gOTk5OTk5O1xuXG4gICAgc2hvd0NsZWFyPyA9IHRydWU7XG4gICAgbXVsdGlwbGU/ID0gZmFsc2U7XG5cbiAgICBwaXBlPzogUGlwZVRyYW5zZm9ybTtcbiAgICBhc3luY1BpcGU/ID0gdHJ1ZTtcbiAgICBzb3J0PyA9IHRydWU7XG4gICAgZXh0ZW5kRGF0YT86IGFueSA9IHt9O1xuXG4gICAgZ2VuZXJhdGVkUmVmQ29sdW1uPzogYW55OyAvLyBUT0RPOiBOYW1OSCB0aMOqbSB04bqhbSB0aGVvIHnDqnUgY+G6p3UgY+G7p2EgTGluaCwgTGluaCBjaGVjayBs4bqhaSBzYXVcbiAgICBoYXNPcGVyYXRvckNhbkJvPyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNjaGVtYUJhc2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHJvcGRvd25PcHRpb25zIHtcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGZpZWxkVHJlZT8gPSAnJztcbiAgICBzZWxlY3RDaGlsZEl0ZW0/ID0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxuICAgIHNlbGVjdERlc2NlbmRhbnQ/ID0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiwgY2jDoXUgbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPyA9ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD8gPSAnJztcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcbiAgICBmaWVsZFBsdXM/ID0gJyc7XG4gICAgcGx1c1VybD86IHN0cmluZztcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XG4gICAgcGFnZT86IG51bWJlciA9IDE7XG4gICAgcGFnZVNpemU/ID0gNjY2O1xuICAgIGlzU2VydmVyTG9hZD8gPSBmYWxzZTtcbiAgICByZWZGaWVsZHM/OiBSZWZGaWVsZFtdID0gW107XG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25PcHRpb25zKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlZkZpZWxkIHtcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xuICAgIHNlcGFyYXRvcj8gPSAnLCAnO1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XG4gICAgdmFsdWVGaWVsZD8gPSAnaWQnO1xuICAgIGZpZWxkUGx1cz8gPSAnJztcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgZGF0YVNvdXJjZT86IGFueVtdO1xuICAgIG9yZGVyPzogbnVtYmVyO1xuXG4gICAgaXNUcmVlPyA9IGZhbHNlO1xuICAgIGZpZWxkVHJlZT86IHN0cmluZztcbiAgICB2YWx1ZVBhcmVudFJvb3Q/OiBhbnkgPSBudWxsOyAvLyBHacOhIHRy4buLIHRyxrDhu51uZyBbZmllbGRUcmVlXSBj4bunYSBpdGVtIHRyZWUgcm9vdFxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/ID0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPyA9ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XG4gICAgZnVuY0dldFJlZkRhdGFSb3c/OiAocmVmSXRlbXMpID0+IHt9O1xuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSZWZGaWVsZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNsYXNzIFByb3BGb3JEcm9wZG93biB7XG4gICAgc2VydmVyRmlsdGVyVXJpPzogc3RyaW5nO1xuICAgIGxvYWRJbkZpcnN0RGlzcGxheT8gPSB0cnVlO1xuICAgIGRpc3BsYXlGaWVsZFNlcnZlcj8gPSAndGVuJztcbiAgICB2YWx1ZUZpZWxkU2VydmVyPyA9ICdpZCc7XG5cbiAgICBkYXRhU291cmNlPzogYW55O1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb247XG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xuICAgIG11bHRpcGxlPyA9IGZhbHNlO1xuICAgIHNlcGFyYXRvcj8gPSAnLCAnO1xuICAgIHNlYXJjaE11bHRpcGxlPyA9IHRydWU7XG4gICAgaXNUcmVlPyA9IGZhbHNlO1xuICAgIGZpZWxkVHJlZT86IHN0cmluZztcbiAgICBzZWxlY3RDaGlsZEl0ZW0/ID0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxuICAgIHNlbGVjdERlc2NlbmRhbnQ/ID0gZmFsc2U7Ly8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uLCBjaMOhdSBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT8gPSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXG4gICAgZ3JvdXBDb2RlPzogc3RyaW5nO1xuICAgIHZhbHVlRmllbGQ/ID0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/ID0gJ3Rlbic7XG4gICAgc2VhcmNoRmllbGQ/OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZpZWxkUGx1cz8gPSAnJztcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD8gPSAnJztcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuXG4gICAgZmllbGRWYWx1ZVBhcmVudD8gPSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXG5cbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQcm9wRm9yRHJvcGRvd24pIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW50aXR5UGlja2VyQ29sdW1uIGV4dGVuZHMgQ29sdW1uU2NoZW1hQmFzZSB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgY29kZT86IHN0cmluZztcbiAgICBkaXNhYmxlZD8gPSBmYWxzZTtcbiAgICBpc1NlYXJjaGFibGU/ID0gdHJ1ZTtcbiAgICBpc0Rpc3BsYXk/ID0gdHJ1ZTtcbiAgICBkYXRhVHlwZT86IERhdGFUeXBlIHwgc3RyaW5nO1xuICAgIG9wZXJhdG9yPzogT3BlcmF0b3I7XG4gICAgd2lkdGg/ID0gJyc7XG4gICAgbm90SW5GaWVsZHM/ID0gZmFsc2U7IC8vIEPDoWMgdHLGsOG7nW5nIGThu68gbGnhu4d1IMSRxrDhu6NjIHThu5VuZyBo4bujcCBs4bqhaSBoaeG7g24gdGjhu4sgbMOqbiBncmlkIG3DoCBraMO0bmcgcGjhuqNpIGzhuqV5IHThu6sgdHJvbmcgdGFibGUgcmEuXG5cbiAgICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRW50aXR5UGlja2VyQ29sdW1uKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldFJlZkRhdGFTY2hlbWEgZXh0ZW5kcyBQcm9wRm9yRHJvcGRvd24ge1xuICAgIGZpZWxkPzogc3RyaW5nO1xuICAgIGZ1bmNTZXRWYWx1ZVJvdz86IChyb3dJdGVtLCBkYXRhKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEdldFJlZkRhdGFTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RDb25maWcge1xuICAgIHRvb2x0aXBWaWV3Pzogc3RyaW5nO1xuICAgIG9uVmlldz86IEZ1bmN0aW9uO1xuICAgIGRpc2FibGVSb3dTZWxlY3RXaGVuQ2xpY2tBY3Rpb24/ID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdENvbmZpZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmVlRGF0YU9wdGlvbiB7XG4gICAgZGlzcGxheUZpZWxkID0gJ3Rlbic7XG4gICAgc2hvcnREaXNwbGF5RmllbGQgPSAndGVuJztcbiAgICBleHBhbmRlZEljb24gPSAncGkgcGktZm9sZGVyLW9wZW4nO1xuICAgIGNvbGxhcHNlZEljb24gPSAncGkgcGktZm9sZGVyJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUcmVlRGF0YU9wdGlvbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RlbCB7XG4gICAgc2hvd0VkaXRGb3JtPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGhlYWRlcj86IHN0cmluZyA9ICcnO1xuICAgIHBvcHVwU2l6ZT86IFBvcHVwU2l6ZSA9IG5ldyBQb3B1cFNpemUoeyBtYXhpbWl6ZTogdHJ1ZSB9KTtcbiAgICBkYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGlhbG9nTW9kZWwpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUG9wdXBTaXplIHtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgbWF4aW1pemU/ID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUG9wdXBTaXplKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV2ZW50RGF0YSB7XG4gICAgY3VycmVudE5vZGU6IENvbnRyb2xUcmVlTm9kZTtcbiAgICBzb3VyY2VOb2RlPzogQ29udHJvbFRyZWVOb2RlO1xuICAgIHNvdXJjZUV2ZW50PzogYW55O1xuICAgIGV2ZW50VHlwZT86IGFueTtcbiAgICBkYXRhPzogYW55O1xuICAgIHByaXZhdGUgX2NydWRGb3JtOiBDcnVkRm9ybUNvbXBvbmVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbml0Pzoge1xuICAgICAgICAgICAgY3VycmVudE5vZGU6IENvbnRyb2xUcmVlTm9kZSxcbiAgICAgICAgICAgIHNvdXJjZU5vZGU/OiBDb250cm9sVHJlZU5vZGUsXG4gICAgICAgICAgICBzb3VyY2VFdmVudD86IGFueSxcbiAgICAgICAgICAgIGV2ZW50VHlwZT86IGFueSxcbiAgICAgICAgICAgIGRhdGE/OiBhbnksXG4gICAgICAgICAgICBjcnVkRm9ybT86IENydWRGb3JtQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5tb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgbW9kZWwoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUubW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudE1vZGVsKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLnBhcmVudE1vZGVsO1xuICAgIH1cblxuICAgIGdldCBwYXJlbnRQYXRoKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLnBhcmVudE1vZGVsUGF0aDtcblxuICAgIH1cblxuICAgIGdldCByb290TW9kZWwoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucm9vdE5vZGUubW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRyb2woKTogRm9ybVNjaGVtYUJhc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5jb250cm9sO1xuICAgIH1cblxuICAgIGdldCBwYXJlbnRDb250cm9sKCk6IEZvcm1TY2hlbWFCYXNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50Q29udHJvbDtcbiAgICB9XG5cbiAgICBnZXQgZm9ybUNvbnRyb2xzKCk6IEZvcm1TY2hlbWFCYXNlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5mb3JtQ29udHJvbHM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGFiVmlld0RhdGEge1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gICAgaGlkZGVuPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgaGVhZGVyU3R5bGVDbGFzcz86IHN0cmluZztcbiAgICBhY3RpdmU/OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRhYlZpZXdEYXRhKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gRGF0YVR5cGUge1xuICAgIGRhdGUgPSAnZGF0ZScsXG4gICAgZGF0ZXRpbWUgPSAnZGF0ZXRpbWUnLFxuICAgIGh0bWwgPSAnaHRtbCcsXG4gICAgc3RyaW5nID0gJ3N0cmluZycsXG4gICAgaW50ID0gJ2ludCcsXG4gICAgZGVjaW1hbCA9ICdkZWNpbWFsJyxcbiAgICBib29sZWFuID0gJ2Jvb2xlYW4nLFxuICAgIGVudW0gPSAnZW51bScsXG4gICAgZmlsZVVwbG9hZCA9ICdmaWxlVXBsb2FkJyxcbiAgICBmaWxlTWFuYWdlciA9ICdmaWxlTWFuYWdlcicsXG59XG5cbmV4cG9ydCBlbnVtIENvbnRyb2xUeXBlIHtcbiAgICBkcm9wZG93biA9ICdkcm9wZG93bicsXG4gICAgZGF0ZXRpbWUgPSAnZGF0ZXRpbWUnLFxuICAgIGRhdGUgPSAnZGF0ZScsXG4gICAgdGltZSA9ICd0aW1lJyxcbiAgICBudW1iZXIgPSAnbnVtYmVyJyxcbiAgICB0ZXh0Ym94ID0gJ3RleHRib3gnLFxuICAgIGNoZWNrYm94ID0gJ2NoZWNrYm94JyxcbiAgICBzd2l0Y2ggPSAnc3dpdGNoJ1xufVxuXG5leHBvcnQgZW51bSBPcGVyYXRvciB7XG4gICAgZXF1YWwgPSAnZXEnLFxuICAgIG5vdEVxdWFsID0gJ25lcScsXG4gICAgZ3JlYXRlciA9ICdndCcsXG4gICAgZ3JlYXRlclRoYW5FcXVhbCA9ICdndGUnLFxuICAgIGxvd2VyID0gJ2x0JyxcbiAgICBsb3dlclRoYW5FcXVhbCA9ICdsdGUnLFxuXG4gICAgY29udGFpbiA9ICdjb250YWlucycsXG4gICAgbm90Q29udGFpbiA9ICduY29udGFpbnMnLFxuICAgIHN0YXJ0V2l0aCA9ICdzdGFydHN3aXRoJyxcbiAgICBub3RTdGFydFdpdGggPSAnbnN0YXJ0c3dpdGgnLFxuICAgIGVuZFdpdGggPSAnZW5kc3dpdGgnLFxuICAgIG5vdEVuZFdpdGggPSAnbmVuZHN3aXRoJyxcblxuICAgIGluID0gJ2luJyxcbiAgICBub3RJbiA9ICduaW4nLFxuXG4gICAgaXNOdWxsID0gJ2lzbnVsbCcsXG4gICAgaXNOb3ROdWxsID0gJ2lzbm90bnVsbCcsXG5cbiAgICBpblJvbGUgPSAnaGFzUm9sZScsXG4gICAgbm90SW5Sb2xlID0gJ25vdEhhc1JvbGUnLFxuICAgIGluQ2F0ZWdvcnkgPSAnaW5DYXRlZ29yeScsXG4gICAgbm90SW5DYXRlZ29yeSA9ICdub3RJbkNhdGVnb3J5JyxcbiAgICBpblBvc2l0aW9uID0gJ2luUG9zaXRpb24nLFxuICAgIG5vdEluUG9zaXRpb24gPSAnbm90SW5Qb3NpdGlvbicsXG4gICAgaW5MaXN0VXNlciA9ICdpbkxpc3RVc2VyJyxcbiAgICBub3RJbkxpc3RVc2VyID0gJ25vdEluTGlzdFVzZXInLFxuICAgIGluTGlzdEdyb3VwID0gJ2luTGlzdEdyb3VwJyxcbiAgICBub3RJbkxpc3RHcm91cCA9ICdub3RJbkxpc3RHcm91cCcsXG4gICAgaXNDdXJyZW50VXNlciA9ICdpc0N1cnJlbnRVc2VyJyxcbiAgICBpc0N1cnJlbnRDYW5CbyA9ICdpc0N1cnJlbnRDYW5Cbydcbn1cblxuZXhwb3J0IGVudW0gSGVpZ2h0VHlwZSB7XG4gICAgZGVmYXVsdCA9IDAsXG4gICAgZHluYW1pYyA9IC0xLFxuICAgIGN1c3RvbSA9IDFcbn1cblxuZXhwb3J0IGVudW0gRmlsZU1hbmFnZXJNb2RlIHtcbiAgICBzaW5nbGUgPSAnc2luZ2xlJyxcbiAgICBtdWx0aXBsZSA9ICdtdWx0aXBsZSdcbn1cblxuZXhwb3J0IGVudW0gRmlsZVVwbG9hZE1vZGUge1xuICAgIHVzaW5nRmlsZUluc3RhbmNlSWQgPSAndXNpbmdGaWxlSW5zdGFuY2VJZCcsXG4gICAgdXNpbmdTZXJ2aWNlRmlsZSA9ICd1c2luZ1NlcnZpY2VGaWxlJ1xufVxuXG5leHBvcnQgZW51bSBFbnVtRmlsZUxheW91dCB7XG4gICAgU0lNUExFID0gJ1NJTVBMRScsXG4gICAgU0lNUExFX0ZPUl9MSVNUID0gJ1NJTVBMRV9GT1JfTElTVCcsXG4gICAgTElTVCA9ICdMSVNUJyxcbiAgICBJTkxJTkUgPSAnSU5MSU5FJ1xufVxuXG5leHBvcnQgZW51bSBUZXh0QWxpZ24ge1xuICAgIExlZnQgPSAwLFxuICAgIENlbnRlciA9IDEsXG4gICAgUmlnaHQgPSAtMVxufVxuXG5leHBvcnQgZW51bSBFeHBvcnRJdGVtc01vZGUge1xuICAgIEZyb21IdG1sID0gMCxcbiAgICBNYW51YWxHZXREYXRhID0gMSxcbiAgICBBdXRvR2V0RGF0YSA9IDJcbn1cblxuZXhwb3J0IGVudW0gRXhwb3J0QWxsTW9kZSB7XG4gICAgTWFudWFsR2V0RGF0YSA9IDAsXG4gICAgQXV0b0dldERhdGEgPSAxXG59XG4iXX0=
|
|
1168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjbGFzc2VzL2Zvcm0tc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFLQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQWNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsOEJBQThCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2pILE1BQU0sT0FBTyxXQUFXO0lBT3BCLFlBQVksSUFBa0I7UUFGOUIsYUFBUSxHQUFpRixRQUFRLENBQUM7UUFHOUYsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxRQUFRO0lBSWpCLFlBQVksSUFBZTtRQUgzQixvR0FBb0c7UUFDcEcsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRy9CLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sZUFBZTtJQThGeEIsWUFBWSxJQUFzQjtRQTNGbEMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGlCQUFZLEdBQW1CLEVBQUUsQ0FBQztRQUNsQyxTQUFJLEdBQXdCLEVBQUUsQ0FBQztRQUMvQixrQkFBYSxHQUFtQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3BELGdCQUFXLEdBQWlCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDOUMsZUFBVSxHQUFnQixVQUFVLENBQUMsT0FBTyxDQUFDLENB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QUFDekIsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCO0FBRUQsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN0Qiw2REFBMkMsQ0FBQTtJQUMzQyx1REFBcUMsQ0FBQTtBQUN6QyxDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekI7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3RCLG1DQUFpQixDQUFBO0lBQ2pCLHFEQUFtQyxDQUFBO0lBQ25DLCtCQUFhLENBQUE7SUFDYixtQ0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsY0FBYyxLQUFkLGNBQWMsUUFLekI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ2pCLHlDQUFRLENBQUE7SUFDUiw2Q0FBVSxDQUFBO0lBQ1YsNENBQVUsQ0FBQTtBQUNkLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsNkRBQVksQ0FBQTtJQUNaLHVFQUFpQixDQUFBO0lBQ2pCLG1FQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUNyQixtRUFBaUIsQ0FBQTtJQUNqQiwrREFBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAndG4tY3VzdG9tLXByaW1lbmcvYXBpJztcblxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdXRvY29tcGxldGUtcGlja2VyL2F1dG9jb21wbGV0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVudW1Mb2FpVmFuQmFuQmFzZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29uZ3ZpZWMtcGlja2VyL21vZGVscy9lbnVtcyc7XG5pbXBvcnQgeyBDcnVkTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY3J1ZC9jcnVkLWxpc3QvY3J1ZC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbnRpdHlQaWNrZXJEYXRhQ29tcG9uZW50LCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItZGF0YS9lbnRpdHktcGlja2VyLWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50LCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItc2VsZWN0ZWQvZW50aXR5LXBpY2tlci1zZWxlY3RlZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW50aXR5UGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVNYW5hZ2VyU2V0dGluZywgRmlsZVVwbG9hZFNldHRpbmcgfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvbW9kZWxzL2ZpbGUtc2V0dGluZ3MnO1xuaW1wb3J0IHsgRmlsZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbHRlciwgU29ydCB9IGZyb20gJy4uL21vZGVscy9ncmlkLWluZm8nO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LW1ldGFkYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFzdGVyRGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYXN0ZXItZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xUcmVlTm9kZSwgQ3J1ZEZvcm1Db21wb25lbnQgfSBmcm9tICcuLy4uL2NvbXBvbmVudHMvY3J1ZC9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ29ycmVjdG9yIH0gZnJvbSAnLi9iYXNlL2NvcnJlY3RvcnMnO1xuaW1wb3J0IHsgSVZhbGlkYXRvciB9IGZyb20gJy4vYmFzZS92YWxpZGF0b3JzJztcbmltcG9ydCB7IEVudW1Db250cm9sUGlja2VyVHlwZSwgRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5LCBGb3JtU3RhdGUsIFNoYXJlZEZvbGRlclR5cGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBXb3JrZmxvd1NldHRpbmcsIFdvcmtmbG93U2V0dGluZ05ldyB9IGZyb20gJy4vd29ya2Zsb3ctc2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIE1vZGVsU2NoZW1hIHtcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBmdWxsTmFtZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgZGF0YVR5cGU/OiAnaW50JyB8ICdkZWNpbWFsJyB8ICdkYXRlJyB8ICdkYXRldGltZScgfCAnc3RyaW5nJyB8ICdib29sZWFuJyB8ICd0aW1lc3BhbicgPSAnc3RyaW5nJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBNb2RlbFNjaGVtYSkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkQmFzZSB7XG4gICAgLy8gQ29tcG9uZW50IHN1YnNjcmliZSAtIEtoaSBzdWJjcmliZSBt4buZdCBjb21wb25lbnQgdGjDrCBhZGQgdsOgbyBhcnJheSDEkeG7gyBraGkgZGVzdHJveSB0aMOsIHVuc3Vic2NyaWJlXG4gICAgY29tcG9uZW50U3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkQmFzZSkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkTGlzdFNldHRpbmcge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdGFyZ2V0UGF0aD86IHN0cmluZztcbiAgICBvYmplY3ROYW1lID0gJyc7XG4gICAgZW50aXR5S2V5ID0gJ2lkJztcbiAgICBzZXR0aW5nS2V5Pzogc3RyaW5nO1xuICAgIGVudGl0eU1ldGFkYXRhU2VydmljZT86IEVudGl0eU1ldGFkYXRhU2VydmljZTtcbiAgICBtb2RlbFNjaGVtYXM/OiBNb2RlbFNjaGVtYVtdID0gW107XG4gICAgY29scz86IENvbHVtblNjaGVtYUJhc2VbXSA9IFtdO1xuICAgIGNvbHVtblNldHRpbmc/OiBDb2x1bW5TZXR0aW5nID0gbmV3IENvbHVtblNldHRpbmcoKTtcbiAgICBwYWdlU2V0dGluZz86IFBhZ2VTZXR0aW5nID0gbmV3IFBhZ2VTZXR0aW5nKCk7XG4gICAgaGVpZ2h0VHlwZT86IEhlaWdodFR5cGUgPSBIZWlnaHRUeXBlLmRlZmF1bHQ7IC8vIEPDsyBjdXN0b20gY2hp4buBdSBjYW8ga2jDtG5nOiBUaMaw4budbmcgc+G7rSBk4bulbmcgdHJvbmcgZGlhbG9nXG4gICAgZml4SGVpZ2h0VHlwZUluRGlhbG9nPz0gdHJ1ZTtcbiAgICBtdWx0aXBsZUNoZWNrV2hlbkNsaWNrUm93ID0gdHJ1ZTtcbiAgICBjdXN0b21Xb3JrZmxvd0NvZGVUcmluaEt5OiBFbnVtV29ya2Zsb3dDb3JlQ29kZVNldHRpbmdLZXkgPSBFbnVtV29ya2Zsb3dDb3JlQ29kZVNldHRpbmdLZXkuTUFDX0RJTkg7XG4gICAgc3RpY2t5Q29sdW1uID0gZmFsc2U7XG4gICAgdGFibGVOYW1lPzogc3RyaW5nO1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2U7XG4gICAgcmVTZWxlY3RMYXN0SXRlbT89IHRydWU7IC8vIFNlbGVjdCBs4bqhaSBpdGVtIGN14buRaSBjw7luZyDEkcOjIGNo4buNbiBj4bunYSBncmlkXG4gICAgZmlyZUV2ZW50V2hlblJlU2VsZWN0Pz0gZmFsc2U7XG4gICAgYWR2YW5jZURhdGE/OiBhbnkgPSB7fTtcbiAgICB3b3JrZmxvd1NldHRpbmc/OiBXb3JrZmxvd1NldHRpbmc7XG4gICAgd29ya2Zsb3dTZXR0aW5nTmV3PzogV29ya2Zsb3dTZXR0aW5nTmV3O1xuICAgIGlzV29ya2Zsb3dUcmVlPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHdvcmtmbG93Q29uZmlnQWR2YW5jZT86IFdvcmtmbG93Q29uZmlnQWR2YW5jZTtcbiAgICBkaXNwbGF5RmllbGQ6IHN0cmluZyB8ICgoaXRlbSkgPT4gc3RyaW5nKTsgLy8gdHLGsOG7nW5nIMSR4bqhaSBkaeG7h24gY2hvIGLhuqNuIGdoaSBsw6BtIHRpw6p1IMSR4buBIGhp4buDbiB0aOG7iyAocGjhu6VjIHbhu6UgY2hvIGPDoWMgZOG7i2NoIHbhu6Uga2jDoWMga2hhaSB0aMOhYylcbiAgICBoYXNDdXN0b21IYW5kbGVDbGlja1JvdyA9IGZhbHNlO1xuICAgIGNoZWNrQWxsb3dUcmluaEt5OiAocm93RGF0YSkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgICBjaGVja0FsbG93U2VsZWN0Um93OiAocm93RGF0YSwgZXZ0PykgPT4gYm9vbGVhbjtcbiAgICBnZXRJdGVtU3RhdGU6IChsc3RSb3dEYXRhOiBhbnlbXSkgPT4geyBba2V5OiBzdHJpbmddOiBhbnk7IH07XG4gICAgZ2V0RGF0YUZvck5leHRGaXJzdFN0ZXBUYXNrPzogKHJvd0RhdGEpID0+ICh7fSk7XG4gICAgY2hlY2tQZXJtaXNpb25UcmluaEt5ID0gZmFsc2U7XG4gICAgYWR2YW5jZVNlYXJjaEZpZWxkQ2FjaGU6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gICAgfTtcblxuICAgIHNob3dFZGl0TGluayA9IHRydWU7XG5cbiAgICBoaWRkZW5IZWFkZXIgPSBmYWxzZTtcbiAgICBoaWRkZW5QYWdlU2V0dGluZyA9IGZhbHNlO1xuICAgIGhpZGRlblRleHRQYWdlID0gZmFsc2U7XG4gICAgaGlkZGVuVG9vbGJhciA9IGZhbHNlO1xuICAgIGhpZGRlbkJ1dHRvbnMgPSBmYWxzZTtcbiAgICBoaWRkZW5BZHZhbmNlU2VhcmNoID0gZmFsc2U7XG4gICAgaGlkZGVuU2F2ZVNldHRpbmcgPSBmYWxzZTtcbiAgICBoaWRkZW5TZXR0aW5nID0gZmFsc2U7XG4gICAgaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSBmYWxzZTtcbiAgICBoaWRkZW5TZXR0aW5nV29ya2Zsb3cgPSBmYWxzZTtcbiAgICBoaWRkZW5QYWdlVGl0bGUgPSBmYWxzZTtcblxuICAgIGhpZGRlbkNoZWNrYm94ID0gZmFsc2U7XG4gICAgaGlkZGVuT3JkZXJDb2x1bW4gPSBmYWxzZTtcbiAgICBoaWRkZW5Xb3JrZmxvd0NvbHVtbiA9IGZhbHNlO1xuICAgIGFsbG93RmlsdGVyV29ya2Zsb3dDb2x1bW4gPSBmYWxzZTtcbiAgICBoaWRkZW5GdW5jdGlvbkNvbHVtbiA9IGZhbHNlO1xuICAgIGhpZGRlblJlZnJlc2ggPSBmYWxzZTtcbiAgICBoaWRkZW5GaWx0ZXJSb3cgPSBmYWxzZTtcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcbiAgICB1c2VCYXNlVHJpbmhLeSA9IHRydWU7XG4gICAgZGlzYWJsZVNoYXJlID0gZmFsc2U7XG4gICAgaGlkZGVuV29ya2Zsb3dDb3JlU3RhdHVzID0gdHJ1ZTtcbiAgICByZXF1aXJlZFZhbkJhbkRpQWZ0ZXJUcmluaEt5ID0gZmFsc2U7XG5cbiAgICBncm91cENvbHVtbj86IENvbHVtblNjaGVtYUJhc2U7XG5cbiAgICBzaG93RXhwb3J0QWxsID0gZmFsc2U7XG4gICAgc2hvd0V4cG9ydFNlbGVjdGVkSXRlbXMgPSB0cnVlO1xuICAgIGV4cG9ydEFsbE1vZGVsOiBFeHBvcnRBbGxNb2RlID0gRXhwb3J0QWxsTW9kZS5BdXRvR2V0RGF0YTtcbiAgICBleHBvcnRJdGVtc01vZGU6IEV4cG9ydEl0ZW1zTW9kZSA9IEV4cG9ydEl0ZW1zTW9kZS5Gcm9tSHRtbDtcblxuICAgIGVuYWJsZVZlcnNpb24gPSBmYWxzZTtcbiAgICBzaG93VmVyc2lvbkJ1dHRvbiA9IGZhbHNlO1xuICAgIHZlcnNpb25Nb2RlbD86IHsgW2tleTogc3RyaW5nXTogYW55OyB9ID0ge307XG4gICAgc2hvd0hpc3RvcnkgPSBmYWxzZTtcbiAgICBoaXN0b3J5PzogYW55O1xuXG4gICAgY29sb3JGaWx0ZXJGaWVsZCA9ICcnO1xuICAgIGNvbG9yRmlsdGVyVGFibGU/OiBSb3dDb2xvck9wdGlvbltdID0gW107XG5cbiAgICBlbnRpdHlNZXRhZGF0YVNldHRpbmc/OiBDcnVkRm9ybVNldHRpbmcgPSBuZXcgQ3J1ZEZvcm1TZXR0aW5nKCk7XG5cbiAgICBmaWVsZFNlYXJjaFRleHQ/OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZpbHRlclRlbXBsYXRlQWR2cz86IEZpbHRlcltdO1xuXG4gICAgZnVuY3Rpb246IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24gPSBuZXcgQ3J1ZExpc3RDdXN0b21GdW5jdGlvbigpO1xuXG4gICAgcG9wdXBIZWFkZXI/PSAnJztcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKCk7XG4gICAgbWFza0NsYXNzPzogc3RyaW5nO1xuXG4gICAgZ2V0Q3VzdG9tRGF0YVRyaW5oS3k6IChyb3dEYXRhKSA9PiBhbnkgPSAocm93RGF0YSkgPT4gKHt9KTtcbiAgICBnZXRMYWJlbEJ1dHRvblRyaW5oS3k6IChyb3dEYXRhKSA9PiBzdHJpbmcgPSAocm93RGF0YSkgPT4gJ1Ryw6xuaCBrw70nO1xuICAgIGNoZWNrUmVhZHlUb1RyaW5oS3k6ICgpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0U2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0NvbmZpZ0FkdmFuY2Uge1xuICAgIGdldFdvcmtmbG93U2V0dGluZzogKHJvd0RhdGEpID0+IFdvcmtmbG93U2V0dGluZ05ldztcbn1cblxuZXhwb3J0IGNsYXNzIENydWRMaXN0Q3VzdG9tRnVuY3Rpb24ge1xuICAgIC8vIEN1c3RvbWl6ZVxuICAgIGdldFNlYXJjaENvbnRyb2w/OiAoZmllbGQ6IHN0cmluZykgPT4gRm9ybVNjaGVtYUJhc2VbXSA9IChmaWVsZDogc3RyaW5nKSA9PiBudWxsO1xuICAgIC8vIEFzeW5jIGZ1bmN0aW9uXG4gICAgbW9kaWZ5QWR2YW5jZVNlYWNoTW9kZWw/OiAoZGF0YTogQWR2YW5jZVNlYXJjaERhdGEsIHNldHRpbmc6IEFkdmFuY2VTZWFyY2hTZXR0aW5nKSA9PiBQcm9taXNlPHZvaWQ+ID0gYXN5bmMgKGRhdGEpID0+IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJzb25hbFNldHRpbmcge1xuICAgIGNvbHVtblNldHRpbmc/OiBDb2x1bW5TZXR0aW5nID0gbmV3IENvbHVtblNldHRpbmcoKTtcbiAgICBwYWdlU2V0dGluZz86IFBhZ2VTZXR0aW5nID0gbmV3IFBhZ2VTZXR0aW5nKCk7XG4gICAgY29sb3JGaWx0ZXJGaWVsZCA9ICcnO1xuICAgIGNvbG9yRmlsdGVyVGFibGU/OiBSb3dDb2xvck9wdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUGVyc29uYWxTZXR0aW5nKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRMaXN0RGF0YSBleHRlbmRzIENydWRCYXNlIHtcbiAgICBsb2FkaW5nID0gZmFsc2U7XG4gICAgcmVhZHkgPSB0cnVlO1xuICAgIC8vIGJhc2UgcmVhZHkgbMOgIGNo4bupYyBuxINuZyBraeG7g20gdHJhIHJlYWR5IGPhu6dhIHJpw6puZyB0cm9uZyBiYXNlLiBrIGdp4buRbmcgduG7m2kgcmVhZHkg4bufIHRyw6puXG4gICAgLy8gRMO5bmcgxJHhu4Mga2nhu4NtIHRyYSBu4bq/dSBjw7Mgd29ya2Zsb3cgdGjDrCB04bqhbSB0aOG7nWkgY2jGsGEgY2hvIOG6pW4gdGjDqm0gbeG7m2kgbuG6v3UgY2jGsGEgbG9hZCB4b25nIGThu68gbGnhu4d1IGPhuqduIHRoaeG6v3RcbiAgICBiYXNlUmVhZHkgPSBmYWxzZTtcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZEl0ZW1zPzogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZEl0ZW0/OiBhbnk7XG4gICAgc2VsZWN0ZWRJdGVtTGFzdD86IGFueTtcbiAgICBzZWxlY3RlZElkPzogbnVtYmVyO1xuICAgIHRvdGFsID0gMDtcbiAgICBpdGVtRGF0YT86IGFueTtcbiAgICBhZHZhbmNlRGF0YTogYW55ID0ge307XG5cbiAgICAvLyBDw6FjIHRodeG7mWMgdMOtbmggYuG7lSBzdW5nIGRvIGLhu4sgbOG7l2kga2hpIHBhY2thZ2VcbiAgICBzdWJtaXR0aW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgLy8gRW5kIEPDoWMgdGh14buZYyB0w61uaCBi4buVIHN1bmcgZG8gYuG7iyBs4buXaSBraGkgcGFja2FnZVxuXG4gICAgZXhwYW5kZWRSb3dLZXlzPzogeyBba2V5OiBzdHJpbmddOiBib29sZWFuOyB9ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3REYXRhKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVudGl0eU1lZGF0YURhdGFTZXR0aW5nIHtcbiAgICBkYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRW50aXR5TWVkYXRhRGF0YVNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm93Q29sb3JPcHRpb24ge1xuICAgIGZpbHRlclZhbHVlID0gJyc7XG4gICAgY29tcGFyZVR5cGUgPSAnJztcbiAgICBjb2xvciA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJvd0NvbG9yT3B0aW9uKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBhZ2VTZXR0aW5nIHtcbiAgICBwYWdlID0gMTtcbiAgICBwYWdlU2l6ZSA9IDE1O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBhZ2VTZXR0aW5nKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbHVtblNldHRpbmcge1xuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPzogc3RyaW5nO1xuICAgIHNvcnREaXI/OiAtMSB8IDAgfCAxIHwgMiA9IC0xO1xuICAgIGdyb3VwRmllbGQgPSAnJztcbiAgICBkZXRhaWxzPzogQ29sdW1uU2V0dGluZ0RldGFpbFtdID0gW107XG4gICAgY29sdW1uUmVvcmRlcj87XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sdW1uU2V0dGluZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nRGV0YWlsIHtcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBjb2x1bW5Db2RlPzogc3RyaW5nO1xuICAgIGNvbHVtbk5hbWU/OiBzdHJpbmc7XG4gICAgdmlzaWJsZT86IGJvb2xlYW47XG4gICAgdGV4dEFsaWduPzogVGV4dEFsaWduO1xuICAgIHdpZHRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1EYXRhIGV4dGVuZHMgQ3J1ZEJhc2Uge1xuICAgIGRhdGE/OiBhbnkgPSB7fTtcbiAgICBzdWJtaXR0aW5nPz0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogVHLhuqFuZyB0aMOhaSBj4bunYSBmb3JtIMSRYW5nIMSRxrDhu6NjIG3hu586IEzDoCBmb3JtIHRow6ptIG3hu5tpLCBoYXkgZm9ybSBz4butYSwgaGF5IGZvcm0geMOzYVxuICAgICAqL1xuICAgIGZvcm1TdGF0ZT86IEZvcm1TdGF0ZSA9IEZvcm1TdGF0ZS5BREQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZEZvcm1EYXRhKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRGb3JtQ3VzdG9tRnVuY3Rpb24ge1xuICAgIC8vIEN1c3RvbWl6ZVxuICAgIG1vZGlmeURhdGFBZnRlckdldENhY2hlPzogKGRhdGE6IGFueSkgPT4gdm9pZCA9IChkYXRhOiBhbnkpID0+IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcnVkRm9ybVNldHRpbmcge1xuICAgIGRpc2FibGVDYWNoaW5nID0gZmFsc2U7XG4gICAgZGlzYWJsZURlZmF1bHRTZXR0aW5nQ2FjaGUgPSBmYWxzZTtcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcbiAgICBzY2hlbWE/OiBGb3JtU2NoZW1hQmFzZVtdID0gW107XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcbiAgICBidWlsZEluU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZ1tdIHwgc3RyaW5nW11bXSA9IFtdO1xuICAgIGZpZWxkRHJvcGRvd24/OiB7IFtrZXk6IHN0cmluZ106IERyb3Bkb3duQ29udHJvbFNjaGVtYTsgfSA9IHt9O1xuICAgIGZpZWxkTmVlZEdldFJlZj86IHsgW2tleTogc3RyaW5nXTogVGV4dENvbnRyb2xTY2hlbWE7IH0gPSB7fTtcbiAgICBkaXNwbGF5RmllbGQ/OiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7XG4gICAgZmlyc3RGb2N1c0NvbnRyb2w/OiBzdHJpbmc7XG4gICAgZmlsdGVyQ2hlY2tFeGlzdEJ5VmVyc2lvbj86IEZpbHRlcltdO1xuICAgIGRlZmF1bHRGaWx0ZXJDaGVja0V4aXN0PzogRmlsdGVyW10gfCAoKCkgPT4gRmlsdGVyW10pO1xuICAgIGN1c3RvbVdvcmtmbG93Q29kZVRyaW5oS3k6IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleSA9IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleS5NQUNfRElOSDtcbiAgICBlbnRpdHlNZXRhZGF0YURhdGE/OiBDcnVkRm9ybURhdGE7XG4gICAgZW50aXR5TWV0YWRhdGFTZXR0aW5nPzogQ3J1ZEZvcm1TZXR0aW5nO1xuICAgIGZ1bmN0aW9uPzogQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uKCk7XG4gICAgZ2V0Q3VzdG9tRGF0YVRyaW5oS3k6IChyb3dEYXRhKSA9PiBhbnkgPSAocm93RGF0YSkgPT4gKHt9KTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkRm9ybVNldHRpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaERhdGEgZXh0ZW5kcyBDcnVkRm9ybURhdGEge1xuICAgIGluaXREYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWR2YW5jZVNlYXJjaERhdGEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaFNldHRpbmcgZXh0ZW5kcyBDcnVkRm9ybVNldHRpbmcge1xuICAgIGZpZWxkS2V5ID0gJ19rJztcbiAgICBlbnRpdHlQZXJtaXNzaW9uU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcbiAgICBrZWVwSW5pdFNlYXJjaERhdGFOb3ROdWxsID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZHZhbmNlU2VhcmNoU2V0dGluZykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTY2hlbWFCYXNlIHtcbiAgICBmaWVsZD86IHN0cmluZztcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZztcbiAgICB0eXBlPzogJ2Jvb2xlYW4nIHwgJ2ludCcgfCAnZGVjaW1hbCcgfCAnZGF0ZXRpbWUnIHwgJ3N0cmluZycgPSAnc3RyaW5nJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTY2hlbWFCYXNlKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1TY2hlbWFCYXNlIGV4dGVuZHMgU2NoZW1hQmFzZSB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgZnVsbExhYmVsPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHNob3dMYWJlbD89IHRydWU7XG4gICAgZ1dpZHRoPz0gMTI7XG4gICAgbWRXaWR0aD89IDY7XG4gICAgd2lkdGg/OiBzdHJpbmc7XG4gICAgY2xhc3M/PSAnJztcbiAgICBzdHlsZT86IGFueSA9IHt9O1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBoaWRkZW4/PSBmYWxzZTtcbiAgICBoaWRkZW5DaGVjaz86IChyb290TW9kZWw6IGFueSwgY3VycmVudE5vZGU6IENvbnRyb2xUcmVlTm9kZSkgPT4gYm9vbGVhbjtcbiAgICBoaWRkZW5PblZpZXc/PSBmYWxzZTtcbiAgICB2aXNpYmxlSW5MaXN0Pz0gdHJ1ZTtcbiAgICBvcGVyYXRvcj86IE9wZXJhdG9yO1xuICAgIGdyb3VwQ29kZT89ICcnO1xuICAgIGRlZmF1bHRWYWx1ZT86IGFueTtcbiAgICBmaWVsZEFsaWFzPz0gJyc7XG4gICAgZGF0YT86IGFueSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1TY2hlbWFCYXNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbnRhaW5lclNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICBjb250cm9sczogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICBzaG93SW5Cb3g/PSB0cnVlO1xuICAgIGJveFN0eWxlPzogYW55O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbnRhaW5lclNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIC8vIFVybCDEkeG7gyBs4bqleSBk4buvIGxp4buHdSAqKiogS0jDlE5HIFPhu6wgROG7pE5HIFRST05HIEPDgUMgQ0FTRSBQSOG7lCBCSeG6vk4sIENI4buIIFPhu6wgROG7pE5HIMSQ4buQSSBW4buaSSBGT1JNIEtI4bqiTyBTw4FUICoqKlxuICAgIHNlcnZpY2VVcmk/PSAnJztcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XG4gICAgcmVmRmllbGRzPzogUmVmRmllbGRbXSA9IFtdO1xuICAgIGdyb3VwQ29kZT86IHN0cmluZztcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcblxuICAgIGlzU2VydmVyTG9hZD89IGZhbHNlO1xuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XG5cbiAgICBpc1RyZWU/PSBmYWxzZTtcbiAgICBmaWVsZFRyZWU/OiBzdHJpbmc7XG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcbiAgICBzZWxlY3REZXNjZW5kYW50Pz0gZmFsc2U7Ly8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uLCBjaMOhdSBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxuXG4gICAgcGx1c1VybD86IHN0cmluZztcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD89ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz89ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBhZnRlckdldERhdGE/OiBGdW5jdGlvbjtcblxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcblxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/PSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXG5cbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XG4gICAgbW9kaWZ5RmlsdGVyPzogRnVuY3Rpb247XG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMYWJlbFNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICBmb3I/PSAnJztcbiAgICBpc0h0bWw/PSBmYWxzZTtcbiAgICBtZFdpZHRoPz0gMTI7XG4gICAgaW5kZXhMYWJlbD86IG51bWJlcjtcbiAgICB0ZXh0Pz0gJyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTGFiZWxTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGl0bGVTY2hlbWEgZXh0ZW5kcyBMYWJlbFNjaGVtYSB7XG4gICAgY2xhc3M/PSAndGl0bGUtZ3JvdXAgdGV4dC1ib2xkJztcbiAgICBtZFdpZHRoPz0gMTI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGl0bGVTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xuICAgIF9jb21wb25lbnQ/OiBhbnk7IC8vIENvbXBvbmVudCBj4bunYSBzY2hlbWEga2hpIGto4bufaSB04bqhb1xuICAgIHVuaXF1ZUZpZWxkPzogc3RyaW5nOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWFcbiAgICBhdXRvZm9jdXM/PSBmYWxzZTtcbiAgICB2YWxpZGF0b3JzPzogSVZhbGlkYXRvcltdID0gW107XG4gICAgY29ycmVjdG9ycz86IElDb3JyZWN0b3JbXSA9IFtdO1xuICAgIHJlcXVpcmVkPz0gZmFsc2U7XG4gICAgZW5hYmxlQ2FjaGluZz89IGZhbHNlO1xuICAgIG9uQ2hhbmdlZD86IEZ1bmN0aW9uO1xuICAgIHRyaWdnZXJMb2FkQ2hpbGQ/OiBGdW5jdGlvbjtcbiAgICBoYXNPcGVyYXRvckNhbkJvPz0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybUNvbnRyb2xCYXNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICAvKiogQ29weSB04burIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgKi9cbiAgICAvLyBVcmwgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgKioqIEtIw5RORyBT4busIEThu6RORyBUUk9ORyBDw4FDIENBU0UgUEjhu5QgQknhur5OLCBDSOG7iCBT4busIEThu6RORyDEkOG7kEkgVuG7mkkgRk9STSBLSOG6ok8gU8OBVCAqKipcbiAgICBzZXJ2aWNlVXJpPz0gJyc7XG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XG5cbiAgICBpc1NlcnZlckxvYWQ/PSBmYWxzZTtcbiAgICBzZWFyY2hGaWVsZD86IHN0cmluZ1tdO1xuXG4gICAgaXNUcmVlPz0gZmFsc2U7XG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT89ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cbiAgICBmaWVsZE1hUGhhbkNhcD89ICdtYVBoYW5DYXAnOyAvLyBGaWVsZCBtw6MgcGjDom4gY+G6pXBcbiAgICBzZWxlY3RDaGlsZEl0ZW0/PSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgc2VsZWN0RGVzY2VuZGFudD89IGZhbHNlOy8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiwgY2jDoXUgbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcblxuICAgIHBhZ2VTaXplPzogbnVtYmVyID0gMTU7IC8vIETDuW5nIGNobyBkcm9wZG93biBzZXJ2ZXIgbG9hZFxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcbiAgICBzb3J0RmllbGQ/PSAnJztcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcbiAgICBmaWVsZFBsdXM/PSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+OyAvLyB0dW5ndHMgdGjDqm0ga2nhu4N1IGThu68gbGnhu4d1IGRlZmF1bHRGaWx0ZXJzIGzDoCBwcm9taXNlXG4gICAgZmlsdGVyV2hpbGVQcm9jZXNzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+OyAvLyB0dW5ndHMgdGjDqm0ga2nhu4N1IGThu68gbGnhu4d1IGRlZmF1bHRGaWx0ZXJzIGzDoCBwcm9taXNlXG4gICAgYmluZGluZ0ZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcbiAgICBhZnRlckdldERhdGE/OiBGdW5jdGlvbjtcblxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcblxuICAgIHBhcmVudEZpZWxkPzogc3RyaW5nOyAvLyBDb2x1bW4gdMawxqFuZyDhu6luZyB0cm9uZyB0YWJsZSBzcWwgc2VydmVyLlxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/PSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXG5cbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XG4gICAgZmlyZUNhbGxCYWNrSW5zaWRlPz0gdHJ1ZTtcbiAgICBtb2RpZnlGaWx0ZXI/OiBGdW5jdGlvbjtcblxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xuXG4gICAgLyoqIEVuZCBjb3B5IHThu6sgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSAqL1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRleHRDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBzZWxlY3RBbGxUZXh0Pz0gZmFsc2U7IC8vIENo4buNbiB04bqldCBj4bqjIHRleHQga2hpIGZvY3VzXG5cbiAgICBwbGFjZWhvbGRlcj89ICcnO1xuICAgIGRhdGFGb3JtYXQ/OiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ251bWJlcicgfCAnZW1haWwnIHwgJ3Bob25lJyB8ICdmYXgnIHwgJ21vbmV5JyB8ICdtb25leWludCcgfCAnYW1vdW50JyA9ICd0ZXh0JztcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gICAgbWluPz0gMDtcbiAgICBtYXg/PSA5OTk5OTk5OTtcblxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XG5cbiAgICBwbHVzVXJsPzogc3RyaW5nO1xuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPz0gJyc7XG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XG4gICAgZmllbGRQbHVzPz0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0Q29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0Q29udHJvbFNjaGVtYVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xuICAgIHBsYWNlaG9sZGVyPz0gJyc7XG4gICAgZGF0YUZvcm1hdD86ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdwaG9uZScgfCAnZmF4JyB8ICdtb25leScgfCAnbW9uZXlpbnQnIHwgJ2Ftb3VudCcgPSAndGV4dCc7XG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRDb250cm9sU2NoZW1hV2l0aFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWFza0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBUZXh0Q29udHJvbFNjaGVtYSB7XG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JyA9ICdpbnQnO1xuICAgIG1pbj89IDA7XG4gICAgbWF4Pz0gOTk5OTk5OTk5OTtcbiAgICBwcmVmaXg/PSAnJztcbiAgICBzdWZmaXg/PSAnJztcbiAgICBkZWNpbWFsUGxhY2VzPz0gMjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBNYXNrQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOdW1iZXJSYW5nZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBUZXh0Q29udHJvbFNjaGVtYSB7XG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JztcbiAgICBtaW4/PSAwO1xuICAgIG1heD89IDk5OTk5OTk5OTk7XG4gICAgcHJlZml4Pz0gJyc7XG4gICAgc3VmZml4Pz0gJyc7XG4gICAgZGVjaW1hbFBsYWNlcz89IDI7XG4gICAgLy8gU+G7rSBk4bulbmcgxJHhu4Mga2hhaSBiw6FvIG9wZXJhdG9yIGNobyBjb250cm9sIHRyb25nIHF1ZXJ5LWJ1aWxkZXIgdGhheSBjaG8gY8OhYyBvcGVyYXRvciBt4bq3YyDEkeG7i25oIMSRxrDhu6NjIHThuqFvIHThu6sgcXVlcnktYnVpbGRlclxuICAgIG9wZXJhdG9ycz86IGFueVtdO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE51bWJlclJhbmdlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIHBhbmVsQ2xhc3M/PSAnJztcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBzaG93VGltZT89IGZhbHNlO1xuICAgIHNob3dJY29uPz0gdHJ1ZTtcbiAgICBmb3JtYXQ/OiAnbm9ybWFsJyB8ICdmcm9tTm93JyA9ICdmcm9tTm93JztcbiAgICBzaG93T25Gb2N1cz89IHRydWU7XG4gICAgbWluRGF0ZT86IERhdGUgPSBudWxsO1xuICAgIG1heERhdGU/OiBEYXRlID0gbnVsbDtcbiAgICB0aW1lT25seT89IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERhdGVUaW1lQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnNob3dUaW1lID8gJ2RkL01NL3l5eXkgaGg6bW0nIDogJ2RkL01NL3l5eXknO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVSYW5nZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRlVGltZUNvbnRyb2xTY2hlbWEge1xuICAgIHNob3dJY29uPz0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XG5cbiAgICAvLyAjUHJvcGVydHkgb3ZlcnJpZGVcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xuICAgIC8vICNFbmQgcHJvcGVydHkgb3ZlcnJpZGVcblxuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuXG4gICAgbXVsdGlwbGU/PSB0cnVlO1xuICAgIGxpbWl0Pz0gMTAwMDtcbiAgICB0aXRsZT89ICcgJztcbiAgICBjb2x1bW5zPzogRW50aXR5UGlja2VyQ29sdW1uW107XG4gICAgZmllbGRTZWFyY2hUZXh0Pzogc3RyaW5nW10gPSBbXTtcbiAgICBkYXRhSW5pdD86IGFueSA9IHt9O1xuICAgIGFkdmFuY2VTZWFyY2hNb2RlbD86IGFueSA9IHt9O1xuICAgIG9uU2VhcmNoRm9ybUluaXRpYWxpemVkPzogRnVuY3Rpb247XG4gICAgb25Gb3JtRXZlbnQ/OiBGdW5jdGlvbjtcbiAgICBvblNlbGVjdEVudGl0eT86IEZ1bmN0aW9uOyAvLyBu4bq/dSBmdW5jdGlvbiBraMOhYyBudWxsIHbDoCByZXR1cm4gdHJ1ZSBz4bq9IGNobyBwaMOpcCBt4bufIGRpYWxvZ1xuICAgIGFmdGVyQ29udGVudExlZnRJbml0PzogKGNydWRMaXN0OiBDcnVkTGlzdENvbXBvbmVudCkgPT4gdm9pZDsgLy8gU2F1IGtoaSBjw6FjIHRlbXBsYXRlIGNvbnRlbnQgaW5pdFxuICAgIGFmdGVyQ29udGVudFJpZ2h0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcbiAgICBhZnRlckdldERhdGE/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckNvbXBvbmVudCkgPT4gdm9pZDtcbiAgICBhZnRlckdldERhdGFVblBpY2tlZD86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudCkgPT4gdm9pZDtcbiAgICBhZnRlckdldERhdGFQaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50KSA9PiB2b2lkO1xuXG4gICAgLy8gQ8OzIHPhu60gZOG7pW5nIHBsdXNVcmwg4bufIG3DoG4gaMOsbmggY2jDrW5oIEVudGl0eVBpY2tlciBoYXkga2jDtG5nLlxuICAgIHVzZURlZmF1bHRQbHVzbFVybEluTGlzdD89IGZhbHNlO1xuXG4gICAgLy8gQ8OzIHPhu60gZOG7pW5nIGRlZmF1bHRGaWx0ZXIga2hpIHTDrG0ga2nhur9tIGRhbmggc8OhY2gg4bufIG3DoG4gaMOsbmggY2jDrW5oIEVudGl0eVBpY2tlci5cbiAgICB1c2VEZWZhdWx0RmlsdGVySW5MaXN0Pz0gZmFsc2U7XG5cbiAgICBoaWRkZW5BZHZhbmNlU2VhcmNoPz0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSB7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgZGF0YVR5cGU/OiBFbnVtQ29udHJvbFBpY2tlclR5cGUgPSBFbnVtQ29udHJvbFBpY2tlclR5cGUuVVNFUjtcbiAgICBhcHBlbmRUbz89ICdib2R5JztcbiAgICBtb2RpZnlJbml0U2VhcmNoRGF0YT86IEZ1bmN0aW9uOyAvLyBT4butIGThu6VuZyDEkeG7gyBtb2RpZnkgZGF0YSBj4bunYSBwaOG6p24gc2VhcmNoLCB0aMaw4budbmcgxJHhu4Mgc2V0IGluaXQgZGF0YSBkeW5hbWljIHRoZW8gbmh1IGPhuqd1XG4gICAgY2FsbEJhY2s/OiB7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uOyB9O1xuICAgIG9uUmVhZHk/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XG4gICAgbW9kaWZ5Q29udHJvbD86IEZ1bmN0aW9uOyAvLyBT4butIGThu6VuZyDEkeG7gyBtb2RpZnkgc2NoZW1hIGJhc2VcbiAgICBuZWVkQ2xvbmU/PSBmYWxzZTsgLy8gU+G7rSBk4bulbmcgdHJvbmcgdGFibGUgc2NoZW1hLCBraGkgZGF0YXNvdXJjZSBj4bunYSBt4buZdCBj4buZdCB0csOqbiBt4buXaSBkw7JuZyBsw6Aga2jDoWMgbmhhdSBj4bqnbiBzZXQgbmVlZENsb25lID0gdHJ1ZVxcXG4gICAgYWZ0ZXJHZXREYXRhRHJvcGRvd24/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEF1dG9Db21wbGV0ZVBpY2tlckNvbXBvbmVudCkgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFdyYXBQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSB7XG4gICAgZGF0YVR5cGU/OiBFbnVtQ29udHJvbFBpY2tlclR5cGUgPSBFbnVtQ29udHJvbFBpY2tlclR5cGUuVVNFUjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBXcmFwUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXG4gICAgb3BlcmF0b3JzPzogYW55W107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3VzdG9tQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2xvclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbG9yUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFNwYW5Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBzb3VyY2VGaWVsZD86IHN0cmluZztcbiAgICBpc2h0bWw/PSBmYWxzZTtcbiAgICBlZGl0YWJsZT89IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFNwYW5Db250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbG9yQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgc291cmNlRmllbGQ/OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sb3JDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEtleVZhbHVlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IEtleVZhbHVlQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIC8vIGVtaXQgZXZlbnQga2hpIGNo4buNbiBt4buZdCByb3cgdHJvbmcgZmlsZSBtYW5hZ2VyXG4gICAgb25TZWxlY3RlZD86IEZ1bmN0aW9uID0gKCkgPT4ge1xuICAgIH07XG4gICAgbWRXaWR0aD89IDEyO1xuICAgIGFjY2VwdD86IHN0cmluZztcbiAgICBtYXhGaWxlU2l6ZT89IDEwMDAwMDAwMDtcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT89ICd7MH06IFF1w6EgZHVuZyBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsPz0gJ2R1bmcgbMaw4bujbmcgdOG7kWkgxJFhIGzDoCB7MH0uJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeT89ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPz0gJ8SR4buLbmggZOG6oW5nIGZpbGUgY2hvIHBow6lwOiB7MH0uJztcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk/PSAnUXXDoSBz4buRIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlRGV0YWlsPz0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xuICAgIG1vZGU/OiBGaWxlTWFuYWdlck1vZGUgfCBGaWxlVXBsb2FkTW9kZSA9IEZpbGVNYW5hZ2VyTW9kZS5tdWx0aXBsZTtcbiAgICBsYXlvdXQ/OiBFbnVtRmlsZUxheW91dCA9IEVudW1GaWxlTGF5b3V0LkxJU1Q7XG4gICAgcmVhZG9ubHk/PSBmYWxzZTtcblxuICAgIC8vIFNlcnZpY2UgZMO5bmcgxJHhu4MgbOG6pXkgZGF0YXNvdXJjZSBj4bunYSBuaGnhu4F1IGNvbnRyb2wgbeG7mXQgbOG6p24uXG4gICAgZmlsZURhdGFTZXJ2aWNlPzogRmlsZURhdGFTZXJ2aWNlO1xuXG4gICAgLy8gQuG7mSAzIGtleSDEkeG7gyBs4bqleSB0aMawIG3hu6VjIGfhu5FjLlxuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xuICAgIGVudGl0eT86IHN0cmluZztcbiAgICBlbnRpdHlLZXk/OiBzdHJpbmc7XG5cbiAgICAvLyBUw6puIHRoxrAgbeG7pWMgZ+G7kWMga2hpIGhp4buDbiB0aOG7iyB0csOqbiBicmVhZGNydW1icy5cbiAgICByb290Rm9sZGVyTmFtZT86IHN0cmluZztcblxuICAgIC8vIFRyxrDhu51uZyBo4bujcCDhu58gdHJvbmcgZm9ybSwgZMO5bmcgdHLGsOG7nW5nIG7DoHkgxJHhu4MgbOG6pXlcbiAgICAvLyBlbnRpdHlLZXkgdOG7qyBtb2RlbC5kYXRhIHRoYXkgdsOsIHRydXnhu4FuIHbDoG8gZW50aXR5S2V5XG4gICAgZW50aXR5S2V5RmllbGQ/PSAnaWQnO1xuICAgIGRhdGFLeVNvRG9uVmk/OiBGdW5jdGlvbjtcblxuICAgIGluVGFpTGlldT89IGZhbHNlO1xuICAgIGluVGFpTGlldUNodW5nPz0gZmFsc2U7XG4gICAgY29weVRvRm9sZGVySWQ/PSAnJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEge1xuICAgIG1vZGU/PSBGaWxlVXBsb2FkTW9kZS51c2luZ1NlcnZpY2VGaWxlO1xuICAgIG1kV2lkdGg/PSA2O1xuICAgIHNoYXJlZEZvbGRlclR5cGU/OiBTaGFyZWRGb2xkZXJUeXBlID0gU2hhcmVkRm9sZGVyVHlwZS5UZW1wdDtcblxuICAgIGhpZGRlbkJ1dHRvbnM/PSBmYWxzZTtcbiAgICBkaXNhYmxlZD89IGZhbHNlO1xuICAgIHJlYWRvbmx5Pz0gZmFsc2U7XG4gICAgYXV0b1NhdmVkPz0gdHJ1ZTtcblxuICAgIGVuYWJsZVNjYW4/PSBmYWxzZTtcbiAgICBleHRyYWN0WmlwRmlsZT89IGZhbHNlO1xuICAgIGVuYWJsZURyaXZlRmlsZT89IGZhbHNlO1xuXG4gICAgc2hvd0Rvd25sb2FkRmlsZT89IHRydWU7XG4gICAgc2hvd0RlbGV0ZUZpbGU/PSB0cnVlO1xuICAgIHNob3dQcmludEZpbGU/PSB0cnVlO1xuICAgIG1heEZpbGVTaXplPz0gMTAwMDAwMDAwOyAvLyAxMDAgTUJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT89ICd7MH06IFF1w6EgZHVuZyBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsPz0gJ2R1bmcgbMaw4bujbmcgdOG7kWkgxJFhIGzDoCB7MH0uJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeT89ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPz0gJ8SR4buLbmggZOG6oW5nIGZpbGUgY2hvIHBow6lwOiB7MH0uJztcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk/PSAnUXXDoSBz4buRIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlRGV0YWlsPz0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpbGVVcGxvYWRDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgY29uc3RydWN0b3IoaW5pdD86IFN3aXRjaENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcbiAgICBoaWRkZW5MYWJlbD89IGZhbHNlOyAvLyBTZXQgPSB0cnVlIGNo4bunIHnhur91IGtoaSBkw7luZyB0cm9uZyB0YWJsZSBzY2hlbWEgxJHhu4Mg4bqpbiBsYWJlbCDEkWksIHbDrCBsYWJlbCDEkcOjIGPDsyB0csOqbiB0acOqdSDEkeG7gSBj4buZdFxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDaGVja2JveENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1TY2hlbWFCYXNlIHtcbiAgICBzaG93TGFiZWw/PSBmYWxzZTtcbiAgICBidENsYXNzPz0gJ3AtYnV0dG9uLXRleHQnO1xuICAgIGljb24/O1xuICAgIGJ0U3R5bGU/PSB7IHdpZHRoOiAnYXV0bycgfTtcbiAgICBvbkNsaWNrPzogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQnV0dG9uQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XG4gICAgdGVtcGxhdGU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICByb3dzPz0gNTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0QXJlYUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXNlclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIG11bHRpcGxlPz0gdHJ1ZTtcbiAgICBsaW1pdD89IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBuZ8aw4budaSBkw7luZyB04buRaSDEkWEgxJHGsOG7o2MgcGlja1xuICAgIHRpdGxlPz0gJ0No4buNbiBuZ8aw4budaSBkw7luZyc7XG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47XG4gICAgZmlsdGVyV2hpbGVQcm9jZXNzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xuICAgIHBhcmVudE9yZ0NvZGU/OiBzdHJpbmc7XG4gICAgcGxhY2Vob2xkZXI/PSAnJztcbiAgICBsYXp5TG9hZE9yZ2FuaXphdGlvbj89IGZhbHNlO1xuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD89ICdmdWxsTmFtZU5ldyc7XG4gICAgZmllbGRQbHVzPz0gJyc7XG4gICAgcGx1c1VybD86IHN0cmluZztcbiAgICByZXR1cm5UeXBlPzogJ3ZhbHVlJyB8ICdvYmplY3QnID0gJ3ZhbHVlJztcbiAgICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgICBvblJlYWR5PzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xuICAgIGdldERpc3BsYXlOYW1lPzogZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVXNlclBpY2tlckNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29DYXVUb0NodWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBhcHBlbmRUbz89ICdib2R5JztcbiAgICBtdWx0aXBsZT89IHRydWU7XG4gICAgbGltaXQ/PSAyMDsgLy8gR2nhu5tpIGjhuqFuIHPhu5EgYuG6o24gZ2hpIHThu5FpIMSRYSDEkcaw4bujYyBwaWNrXG4gICAgdGl0bGU/PSAnQ2jhu41uIMSRxqFuIHbhu4snO1xuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xuICAgIGZpZWxkUGx1cz89ICcnO1xuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPcmdhbml6YXRpb25QaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBmaWx0ZXI/PSB0cnVlO1xuICAgIG11bHRpcGxlPz0gdHJ1ZTtcbiAgICBwYXJlbnRPcmdJZD86IG51bWJlcjtcbiAgICBwYXJlbnRPcmdDb2RlPzogc3RyaW5nO1xuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xuICAgIGlzVXNpbmdJZD89IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogT3JnYW5pemF0aW9uUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIGZpbHRlcj89IHRydWU7XG4gICAgbXVsdGlwbGU/PSB0cnVlO1xuICAgIHBhcmVudE9yZ0lkPzogbnVtYmVyO1xuICAgIHBhcmVudE9yZ0NvZGU/OiBzdHJpbmc7XG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XG4gICAgaXNVc2luZ0lkPz0gdHJ1ZTtcbiAgICBkaXNhYmxlZFBhcmVudEl0ZW0/PSB0cnVlO1xuICAgIHJvb3RQYXJlbnRJZD86IHN0cmluZyA9IG51bGw7XG4gICAgZGlzYWJsZWQ/PSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XG4gICAgbW9kZT86ICdiYXNpYycgfCAnbWVkaXVtJyB8ICdmdWxsJyB8ICdzaW1wbGUnID0gJ2Jhc2ljJztcbiAgICBoZWlnaHQ/PSAyNTA7XG4gICAgaW5pdD86IGFueTtcbiAgICBsYW5ndWFnZUNvZGU/OiAndmknIHwgJ2VuJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFZGl0b3JDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xuICAgIGRhdGFTb3VyY2U/OiBhbnkgfCBGdW5jdGlvbjtcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXG4gICAgb3BlcmF0b3JzPzogYW55W107XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xuICAgIHBhbmVsQ2xhc3M/PSAnJztcbiAgICBwbGFjZWhvbGRlcj89ICdDaOG7jW4nO1xuICAgIHNlbGVjdGVkSXRlbXNMYWJlbD89ICfEkMOjIGNo4buNbiB7MH0gbeG7pWMnO1xuICAgIHNlbGVjdGVkQWxsSXRlbUxhYmVsPz0gJ8SQw6MgY2jhu41uIHThuqV0IGPhuqMnO1xuICAgIHNob3dDbGVhcj89IHRydWU7XG4gICAgZmlsdGVyPz0gdHJ1ZTtcbiAgICBtdWx0aXBsZT89IGZhbHNlO1xuICAgIGdlbmVyYXRlVG9vbHRpcD86IChpdGVtKSA9PiBzdHJpbmc7XG4gICAgbWF4U2VsZWN0ZWRMYWJlbHM/PSA1O1xuICAgIG1heEl0ZW1EaXNwbGF5Pz0gNTA7XG4gICAgdmlydHVhbFNjcm9sbD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBmaXRQYW5lbD86IGJvb2xlYW4gPSB0cnVlO1xuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xuICAgIG5lZWRDbG9uZT89IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXG4gICAgdGVtcGxhdGVJdGVtPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICB0ZW1wbGF0ZVNlbGVjdGVkSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcXVpY2tBZGQ/PSBmYWxzZTtcbiAgICBjb2xzPzogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICBpbml0RGF0YT86IGFueSA9IHt9O1xuICAgIGRlZmF1bHRJbmRleD89IC0xO1xuICAgIHBvcHVwU2l6ZT86IFBvcHVwU2l6ZSA9IG5ldyBQb3B1cFNpemUoeyB3aWR0aDogNzUwLCBoZWlnaHQ6IDQwMCB9KTtcblxuICAgIGxvYWRJbkZpcnN0RGlzcGxheT89IHRydWU7XG5cbiAgICBhdXRvR2V0RGF0YT89IHRydWU7XG5cbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcblxuICAgIGF1dG9EaXNwbGF5Rmlyc3Q/PSBmYWxzZTtcbiAgICBub3RJbkNydWRGb3JtPz0gZmFsc2U7XG4gICAgc2VhcmNoTXVsdGlwbGU/PSB0cnVlO1xuICAgIGRpc2FibGVEaXNwbGF5RmllbGRTZXJ2ZXJTZWFyY2g/PSBmYWxzZTtcblxuICAgIGxvYWRPbkluaXQ/PSBmYWxzZTtcbiAgICBhbGxvd0xvYWREYXRhV2hlblBhcmVudE51bGw/PSBmYWxzZTtcblxuICAgIGRpc2FibGVkUGFyZW50SXRlbT89IHRydWU7XG4gICAgb25BZGp1c3RlZFZhbHVlPzogRnVuY3Rpb247XG5cbiAgICAvLyBuZXdUcmVlRHJvcGRvd24/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25Db250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFkZHJlc3NDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBoaWRlTm8/PSBmYWxzZTtcbiAgICBoaWRlU3RyZWV0Pz0gZmFsc2U7XG4gICAgaGlkZVdhcmQ/PSBmYWxzZTtcbiAgICBoaWRlRGlzdHJpY3Q/PSBmYWxzZTtcbiAgICByZXF1aXJlZE5vPz0gdHJ1ZTtcbiAgICByZXF1aXJlZFN0cmVldD89IHRydWU7XG4gICAgcmVxdWlyZWRXYXJkPz0gdHJ1ZTtcbiAgICByZXF1aXJlZERpc3RyaWN0Pz0gdHJ1ZTtcbiAgICByZXF1aXJlZFByb3ZpbmNlPz0gdHJ1ZTtcbiAgICB3YXJkVG9Qcm92aW5jZT89IHRydWU7XG4gICAgbm9XaWR0aD89IDE7XG4gICAgc3RyZWV0V2lkdGg/PSAzO1xuICAgIHdhcmRXaWR0aD89IDM7XG4gICAgZGlzdHJpY3RXaWR0aD89IDI7XG4gICAgcHJvdmluY2VXaWR0aD89IDM7XG4gICAgc2hvd0luQm94Pz0gZmFsc2U7XG5cbiAgICBoaWRlSG9sZGVyPz0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZGRyZXNzQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWYW5CYW5QaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBtZFdpZHRoPz0gMTI7XG4gICAgdXNlVmJEZW4/PSB0cnVlO1xuICAgIHVzZVZiRGk/PSB0cnVlO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGxvYWlWYW5CYW4/OiBFbnVtTG9haVZhbkJhbkJhc2UgPSBFbnVtTG9haVZhbkJhbkJhc2UuVkJfREk7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVmFuQmFuUGlja2VyQ29udHJvbFNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb25nVmllY1BpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xuICAgIG1kV2lkdGg/PSAxMjtcbiAgICBzZXJ2aWNlQ29kZT86IHN0cmluZztcbiAgICBlbnRpdHk/OiBzdHJpbmc7XG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xuICAgIHN0YXRlPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBlcmNlbnRDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICBtZFdpZHRoPz0gMTI7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUGVyY2VudENvbnRyb2xTY2hlbWEpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlQ29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcbiAgICBwbGFjZWhvbGRlcj89ICcnO1xuICAgIG11bHRpcGxlPz0gZmFsc2U7XG4gICAgbWluTGVuZ3RoRmlsdGVyPz0gMTtcbiAgICBhcHBlbmRUbz86IHN0cmluZyA9ICdib2R5JztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBdXRvQ29tcGxldGVDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uTGlzdENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSB7XG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XG4gICAgbGF5b3V0PzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICdob3Jpem9udGFsJztcbiAgICBhbGlnbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENoZWNrQm94TGlzdENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSB7XG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XG4gICAgbGF5b3V0PzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICdob3Jpem9udGFsJztcbiAgICBhbGlnbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcbiAgICBjbGFzc1BsdXM/PSAnJztcbiAgICBmcmVlVGV4dD89ICcnO1xuICAgIHBDb2xDbGFzcz86IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDaGVja0JveExpc3RDb250cm9sU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcbiAgICByb3dUZW1wbGF0ZTogRm9ybVNjaGVtYUJhc2VbXTtcbiAgICByb3dCdXR0b25zPzogKHJvd0RhdGEpID0+IE1lbnVJdGVtW107XG4gICAgZm9vdGVyQnV0dG9ucz86IHtcbiAgICAgICAgaWNvbj86IHN0cmluZztcbiAgICAgICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgICAgIGNsYXNzPzogc3RyaW5nO1xuICAgICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgfVtdO1xuICAgIHNob3dOdW1iZXI/PSB0cnVlO1xuICAgIHNob3dGdW5jdGlvbj89IHRydWU7XG4gICAgc2hvd0Zvb3Rlcj89IHRydWU7XG4gICAgc2hvd1NhdmU/PSBmYWxzZTtcbiAgICBzaG93RWRpdD89IGZhbHNlO1xuICAgIHNob3dEZWxldGU/PSB0cnVlO1xuICAgIHNob3dBZGQ/PSB0cnVlO1xuICAgIHNob3dEaWFsb2c/PSB0cnVlO1xuICAgIGVuYWJsZVJlb3JkZXJSb3c/PSBmYWxzZTtcbiAgICBvblJlb3JkZXJlZD86IEZ1bmN0aW9uO1xuICAgIGVuYWJsZUFkZE11bHRpPz0gZmFsc2U7XG4gICAgcGlja2VyQ29udHJvbEZpZWxkPzogc3RyaW5nO1xuICAgIGlzVW5pcXVlPz0gdHJ1ZTtcbiAgICBlbmFibGVQYWdpbmc/PSBmYWxzZTtcbiAgICBsaW1pdD89IDUwO1xuICAgIGluaXRSb3dDb3VudD89IDE7XG4gICAgbWRXaWR0aD89IDEyO1xuICAgIHJvd0J1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG4gICAgc3VtbWFyeVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG4gICAgaGVhZGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcblxuICAgIG9uQWRkaW5nPzogRnVuY3Rpb247XG4gICAgb25BZGRlZD86IEZ1bmN0aW9uO1xuICAgIG9uU2F2ZT86IEZ1bmN0aW9uO1xuICAgIG9uTWVzc2FnZT86IEZ1bmN0aW9uO1xuICAgIG9uRGVsZXRpbmc/OiBGdW5jdGlvbjtcbiAgICBvbkRlbGV0ZWQ/OiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUYWJsZVNjaGVtYSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TY2hlbWFCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSB7XG4gICAgd2lkdGg/OiBzdHJpbmc7XG4gICAgc2hvd0VkaXRMaW5rPz0gZmFsc2U7XG4gICAgc2hvd1RvZ2dsZUljb24/PSBmYWxzZTtcbiAgICBjb2xTcGFuPzogbnVtYmVyO1xuICAgIGdyb3VwPz0gZmFsc2U7XG4gICAgdmlzaWJsZT89IHRydWU7XG4gICAgcmVtb3ZlT25Jbml0Pz0gZmFsc2U7XG4gICAgYWxsb3dGaWx0ZXI/PSB0cnVlO1xuICAgIHRleHRBbGlnbj86IFRleHRBbGlnbjtcbiAgICBjZWxsQ2xhc3M/OiBzdHJpbmc7XG4gICAgZnVsbFRleHRTZWFyY2g/PSBmYWxzZTtcbiAgICByYXdDb2x1bW4/OiBDb2x1bW5TY2hlbWFCYXNlO1xuICAgIHNlcGFyYXRvcj89ICcsICc7XG4gICAgbWF4SXRlbURpc3BsYXk/PSA1MDtcbiAgICBwYWdlU2l6ZT86IG51bWJlciA9IDE1OyAvLyBQcm9wIHBo4bqjaSBnaeG7kW5nIHbhu5tpIGRyb3Bkb3duXG5cbiAgICBmaWxlU2V0dGluZz86IEZpbGVVcGxvYWRTZXR0aW5nIHwgRmlsZU1hbmFnZXJTZXR0aW5nO1xuICAgIGRhdGFUeXBlUmVmRmllbGQ/OiBEYXRhVHlwZSB8IHN0cmluZztcbiAgICBmb3JjZUdldERhdGE/PSBmYWxzZTtcbiAgICBkaXNwbGF5RmllbGRJbkdyaWQ/OiBzdHJpbmc7XG4gICAgZnVuY0dldFJlZkRhdGFSb3c/OiAocmVmSXRlbXMpID0+IHt9O1xuICAgIGZ1bmNTZXRWYWx1ZVJvdz86IChyb3dJdGVtLCBkYXRhKSA9PiB2b2lkO1xuICAgIHJvd1NwYW4/PSAxO1xuICAgIGZvcm1hdD86IHN0cmluZztcbiAgICBkYXRhVHlwZT86IERhdGFUeXBlIHwgc3RyaW5nO1xuICAgIGNvbnRyb2xUeXBlPzogQ29udHJvbFR5cGUgPSBDb250cm9sVHlwZS50ZXh0Ym94O1xuICAgIHRlbXBsYXRlRmlsdGVyPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBmaWVsZEZpbHRlcj86IHN0cmluZztcbiAgICBkaXNhYmxlQ2hlY2tCb3g/PSB0cnVlO1xuICAgIC8vIFRo4bupIHThu7EgxrB1IHRpw6puIGdldCByZWYgZGF0YSBj4bunYSBjcnVkLWxpc3RcbiAgICAvLyBO4bq/dSBjw7MgdmFsdWUgbmdoxKlhIGzDoCBuaOG7r25nIGPhu5l0IG7DoHkgY+G6p24gcGjhuqNpIGzhuqV5IGThu68gbGnhu4d1IHhvbmcgcuG7k2kgbeG7m2kgxJHhur9uIGPhu5l0IGtow6FjXG4gICAgb3JkZXI/OiBudW1iZXI7XG4gICAgbWF4V29yZERpc3BsYXk/OiBudW1iZXI7XG4gICAgbWF4TGVuZ3RoRGlzcGxheT86IG51bWJlcjtcblxuICAgIG1kV2lkdGhJblNlYXJjaD89IDEyO1xuXG4gICAgbWluPz0gMDtcbiAgICBtYXg/PSA5OTk5OTk7XG5cbiAgICBzaG93Q2xlYXI/PSB0cnVlO1xuICAgIG11bHRpcGxlPz0gZmFsc2U7XG5cbiAgICBwaXBlPzogUGlwZVRyYW5zZm9ybTtcbiAgICBhc3luY1BpcGU/PSB0cnVlO1xuICAgIHNvcnQ/PSB0cnVlO1xuICAgIGV4dGVuZERhdGE/OiBhbnkgPSB7fTtcblxuICAgIGdlbmVyYXRlZFJlZkNvbHVtbj86IGFueTsgLy8gVE9ETzogTmFtTkggdGjDqm0gdOG6oW0gdGhlbyB5w6p1IGPhuqd1IGPhu6dhIExpbmgsIExpbmggY2hlY2sgbOG6oWkgc2F1XG4gICAgaGFzT3BlcmF0b3JDYW5Cbz89IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNjaGVtYUJhc2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHJvcGRvd25PcHRpb25zIHtcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBmaWVsZFRyZWU/PSAnJztcbiAgICBzZWxlY3RDaGlsZEl0ZW0/PSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgc2VsZWN0RGVzY2VuZGFudD89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT89ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD89ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIGZpZWxkUGx1cz89ICcnO1xuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIHBhZ2U/OiBudW1iZXIgPSAxO1xuICAgIHBhZ2VTaXplPz0gNjY2O1xuICAgIGlzU2VydmVyTG9hZD89IGZhbHNlO1xuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEcm9wZG93bk9wdGlvbnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVmRmllbGQge1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcbiAgICBzZXBhcmF0b3I/PSAnLCAnO1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcbiAgICBmaWVsZFBsdXM/PSAnJztcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgZGF0YVNvdXJjZT86IGFueVtdO1xuICAgIG9yZGVyPzogbnVtYmVyO1xuXG4gICAgaXNUcmVlPz0gZmFsc2U7XG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT89ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xuICAgIHNvcnRGaWVsZD89ICcnO1xuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xuICAgIHBsdXNVcmw/OiBzdHJpbmc7XG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XG4gICAgZnVuY0dldFJlZkRhdGFSb3c/OiAocmVmSXRlbXMpID0+IHt9O1xuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSZWZGaWVsZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNsYXNzIFByb3BGb3JEcm9wZG93biB7XG4gICAgc2VydmVyRmlsdGVyVXJpPzogc3RyaW5nO1xuICAgIGxvYWRJbkZpcnN0RGlzcGxheT89IHRydWU7XG4gICAgZGlzcGxheUZpZWxkU2VydmVyPz0gJ3Rlbic7XG4gICAgdmFsdWVGaWVsZFNlcnZlcj89ICdpZCc7XG5cbiAgICBkYXRhU291cmNlPzogYW55O1xuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb247XG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xuICAgIG11bHRpcGxlPz0gZmFsc2U7XG4gICAgc2VwYXJhdG9yPz0gJywgJztcbiAgICBzZWFyY2hNdWx0aXBsZT89IHRydWU7XG4gICAgaXNUcmVlPz0gZmFsc2U7XG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcbiAgICBzZWxlY3REZXNjZW5kYW50Pz0gZmFsc2U7Ly8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uLCBjaMOhdSBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT89ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cbiAgICBncm91cENvZGU/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XG4gICAgc2VhcmNoRmllbGQ/OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZpZWxkUGx1cz89ICcnO1xuICAgIHNvcnRzPzogU29ydFtdID0gW107XG4gICAgc29ydEZpZWxkPz0gJyc7XG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XG4gICAgcGx1c1VybD86IHN0cmluZztcblxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/PSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXG5cbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQcm9wRm9yRHJvcGRvd24pIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW50aXR5UGlja2VyQ29sdW1uIGV4dGVuZHMgQ29sdW1uU2NoZW1hQmFzZSB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgY29kZT86IHN0cmluZztcbiAgICBkaXNhYmxlZD89IGZhbHNlO1xuICAgIGlzU2VhcmNoYWJsZT89IHRydWU7XG4gICAgaXNEaXNwbGF5Pz0gdHJ1ZTtcbiAgICBkYXRhVHlwZT86IERhdGFUeXBlIHwgc3RyaW5nO1xuICAgIG9wZXJhdG9yPzogT3BlcmF0b3I7XG4gICAgd2lkdGg/PSAnJztcbiAgICBub3RJbkZpZWxkcz89IGZhbHNlOyAvLyBDw6FjIHRyxrDhu51uZyBk4buvIGxp4buHdSDEkcaw4bujYyB04buVbmcgaOG7o3AgbOG6oWkgaGnhu4NuIHRo4buLIGzDqm4gZ3JpZCBtw6Aga2jDtG5nIHBo4bqjaSBs4bqleSB04burIHRyb25nIHRhYmxlIHJhLlxuXG4gICAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eVBpY2tlckNvbHVtbikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRSZWZEYXRhU2NoZW1hIGV4dGVuZHMgUHJvcEZvckRyb3Bkb3duIHtcbiAgICBmaWVsZD86IHN0cmluZztcbiAgICBmdW5jU2V0VmFsdWVSb3c/OiAocm93SXRlbSwgZGF0YSkgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBHZXRSZWZEYXRhU2NoZW1hKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENydWRMaXN0Q29uZmlnIHtcbiAgICB0b29sdGlwVmlldz86IHN0cmluZztcbiAgICBvblZpZXc/OiBGdW5jdGlvbjtcbiAgICBkaXNhYmxlUm93U2VsZWN0V2hlbkNsaWNrQWN0aW9uPz0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdENvbmZpZykge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmVlRGF0YU9wdGlvbiB7XG4gICAgZGlzcGxheUZpZWxkID0gJ3Rlbic7XG4gICAgc2hvcnREaXNwbGF5RmllbGQgPSAndGVuJztcbiAgICBleHBhbmRlZEljb24gPSAncGkgcGktZm9sZGVyLW9wZW4nO1xuICAgIGNvbGxhcHNlZEljb24gPSAncGkgcGktZm9sZGVyJztcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUcmVlRGF0YU9wdGlvbikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RlbCB7XG4gICAgc2hvd0VkaXRGb3JtPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGhlYWRlcj86IHN0cmluZyA9ICcnO1xuICAgIHBvcHVwU2l6ZT86IFBvcHVwU2l6ZSA9IG5ldyBQb3B1cFNpemUoeyBtYXhpbWl6ZTogdHJ1ZSB9KTtcbiAgICBkYXRhPzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGlhbG9nTW9kZWwpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUG9wdXBTaXplIHtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgbWF4aW1pemU/PSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQb3B1cFNpemUpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXZlbnREYXRhIHtcbiAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlO1xuICAgIHNvdXJjZU5vZGU/OiBDb250cm9sVHJlZU5vZGU7XG4gICAgc291cmNlRXZlbnQ/OiBhbnk7XG4gICAgZXZlbnRUeXBlPzogYW55O1xuICAgIGRhdGE/OiBhbnk7XG4gICAgcHJpdmF0ZSBfY3J1ZEZvcm06IENydWRGb3JtQ29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluaXQ/OiB7XG4gICAgICAgICAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlLFxuICAgICAgICAgICAgc291cmNlTm9kZT86IENvbnRyb2xUcmVlTm9kZSxcbiAgICAgICAgICAgIHNvdXJjZUV2ZW50PzogYW55LFxuICAgICAgICAgICAgZXZlbnRUeXBlPzogYW55LFxuICAgICAgICAgICAgZGF0YT86IGFueSxcbiAgICAgICAgICAgIGNydWRGb3JtPzogQ3J1ZEZvcm1Db21wb25lbnQ7XG4gICAgICAgIH1cbiAgICApIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLm1vZGVsO1xuICAgIH1cblxuICAgIGdldCBtb2RlbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5tb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50TW9kZWwoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudFBhdGgoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWxQYXRoO1xuXG4gICAgfVxuXG4gICAgZ2V0IHJvb3RNb2RlbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5yb290Tm9kZS5tb2RlbDtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpOiBGb3JtU2NoZW1hQmFzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudENvbnRyb2woKTogRm9ybVNjaGVtYUJhc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5wYXJlbnRDb250cm9sO1xuICAgIH1cblxuICAgIGdldCBmb3JtQ29udHJvbHMoKTogRm9ybVNjaGVtYUJhc2VbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmZvcm1Db250cm9scztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJWaWV3RGF0YSB7XG4gICAgY29kZT86IHN0cmluZztcbiAgICBoaWRkZW4/OiBib29sZWFuID0gZmFsc2U7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBoZWFkZXJTdHlsZUNsYXNzPzogc3RyaW5nO1xuICAgIGFjdGl2ZT86IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGFiVmlld0RhdGEpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZW51bSBEYXRhVHlwZSB7XG4gICAgZGF0ZSA9ICdkYXRlJyxcbiAgICBkYXRldGltZSA9ICdkYXRldGltZScsXG4gICAgaHRtbCA9ICdodG1sJyxcbiAgICBzdHJpbmcgPSAnc3RyaW5nJyxcbiAgICBpbnQgPSAnaW50JyxcbiAgICBkZWNpbWFsID0gJ2RlY2ltYWwnLFxuICAgIGJvb2xlYW4gPSAnYm9vbGVhbicsXG4gICAgZW51bSA9ICdlbnVtJyxcbiAgICBmaWxlVXBsb2FkID0gJ2ZpbGVVcGxvYWQnLFxuICAgIGZpbGVNYW5hZ2VyID0gJ2ZpbGVNYW5hZ2VyJyxcbn1cblxuZXhwb3J0IGVudW0gQ29udHJvbFR5cGUge1xuICAgIGRyb3Bkb3duID0gJ2Ryb3Bkb3duJyxcbiAgICBkYXRldGltZSA9ICdkYXRldGltZScsXG4gICAgZGF0ZSA9ICdkYXRlJyxcbiAgICB0aW1lID0gJ3RpbWUnLFxuICAgIG51bWJlciA9ICdudW1iZXInLFxuICAgIHRleHRib3ggPSAndGV4dGJveCcsXG4gICAgY2hlY2tib3ggPSAnY2hlY2tib3gnLFxuICAgIHN3aXRjaCA9ICdzd2l0Y2gnXG59XG5cbmV4cG9ydCBlbnVtIE9wZXJhdG9yIHtcbiAgICBlcXVhbCA9ICdlcScsXG4gICAgbm90RXF1YWwgPSAnbmVxJyxcbiAgICBncmVhdGVyID0gJ2d0JyxcbiAgICBncmVhdGVyVGhhbkVxdWFsID0gJ2d0ZScsXG4gICAgbG93ZXIgPSAnbHQnLFxuICAgIGxvd2VyVGhhbkVxdWFsID0gJ2x0ZScsXG5cbiAgICBjb250YWluID0gJ2NvbnRhaW5zJyxcbiAgICBub3RDb250YWluID0gJ25jb250YWlucycsXG4gICAgc3RhcnRXaXRoID0gJ3N0YXJ0c3dpdGgnLFxuICAgIG5vdFN0YXJ0V2l0aCA9ICduc3RhcnRzd2l0aCcsXG4gICAgZW5kV2l0aCA9ICdlbmRzd2l0aCcsXG4gICAgbm90RW5kV2l0aCA9ICduZW5kc3dpdGgnLFxuXG4gICAgaW4gPSAnaW4nLFxuICAgIG5vdEluID0gJ25pbicsXG5cbiAgICBpc051bGwgPSAnaXNudWxsJyxcbiAgICBpc05vdE51bGwgPSAnaXNub3RudWxsJyxcblxuICAgIGluUm9sZSA9ICdoYXNSb2xlJyxcbiAgICBub3RJblJvbGUgPSAnbm90SGFzUm9sZScsXG4gICAgaW5DYXRlZ29yeSA9ICdpbkNhdGVnb3J5JyxcbiAgICBub3RJbkNhdGVnb3J5ID0gJ25vdEluQ2F0ZWdvcnknLFxuICAgIGluUG9zaXRpb24gPSAnaW5Qb3NpdGlvbicsXG4gICAgbm90SW5Qb3NpdGlvbiA9ICdub3RJblBvc2l0aW9uJyxcbiAgICBpbkxpc3RVc2VyID0gJ2luTGlzdFVzZXInLFxuICAgIG5vdEluTGlzdFVzZXIgPSAnbm90SW5MaXN0VXNlcicsXG4gICAgaW5MaXN0R3JvdXAgPSAnaW5MaXN0R3JvdXAnLFxuICAgIG5vdEluTGlzdEdyb3VwID0gJ25vdEluTGlzdEdyb3VwJyxcbiAgICBpc0N1cnJlbnRVc2VyID0gJ2lzQ3VycmVudFVzZXInLFxuICAgIGlzQ3VycmVudENhbkJvID0gJ2lzQ3VycmVudENhbkJvJ1xufVxuXG5leHBvcnQgZW51bSBIZWlnaHRUeXBlIHtcbiAgICBkZWZhdWx0ID0gMCxcbiAgICBkeW5hbWljID0gLTEsXG4gICAgY3VzdG9tID0gMVxufVxuXG5leHBvcnQgZW51bSBGaWxlTWFuYWdlck1vZGUge1xuICAgIHNpbmdsZSA9ICdzaW5nbGUnLFxuICAgIG11bHRpcGxlID0gJ211bHRpcGxlJ1xufVxuXG5leHBvcnQgZW51bSBGaWxlVXBsb2FkTW9kZSB7XG4gICAgdXNpbmdGaWxlSW5zdGFuY2VJZCA9ICd1c2luZ0ZpbGVJbnN0YW5jZUlkJyxcbiAgICB1c2luZ1NlcnZpY2VGaWxlID0gJ3VzaW5nU2VydmljZUZpbGUnXG59XG5cbmV4cG9ydCBlbnVtIEVudW1GaWxlTGF5b3V0IHtcbiAgICBTSU1QTEUgPSAnU0lNUExFJyxcbiAgICBTSU1QTEVfRk9SX0xJU1QgPSAnU0lNUExFX0ZPUl9MSVNUJyxcbiAgICBMSVNUID0gJ0xJU1QnLFxuICAgIElOTElORSA9ICdJTkxJTkUnXG59XG5cbmV4cG9ydCBlbnVtIFRleHRBbGlnbiB7XG4gICAgTGVmdCA9IDAsXG4gICAgQ2VudGVyID0gMSxcbiAgICBSaWdodCA9IC0xXG59XG5cbmV4cG9ydCBlbnVtIEV4cG9ydEl0ZW1zTW9kZSB7XG4gICAgRnJvbUh0bWwgPSAwLFxuICAgIE1hbnVhbEdldERhdGEgPSAxLFxuICAgIEF1dG9HZXREYXRhID0gMlxufVxuXG5leHBvcnQgZW51bSBFeHBvcnRBbGxNb2RlIHtcbiAgICBNYW51YWxHZXREYXRhID0gMCxcbiAgICBBdXRvR2V0RGF0YSA9IDFcbn1cbiJdfQ==
|
|
@@ -10,7 +10,7 @@ export class AppRootMenuComponent extends ComponentBase {
|
|
|
10
10
|
AppRootMenuComponent.decorators = [
|
|
11
11
|
{ type: Component, args: [{
|
|
12
12
|
selector: 'app-root-menu',
|
|
13
|
-
template: "<span class=\"rootMenu\" *ngIf=\"rootModel.currentAppMetadata\">\n <i class=\"pi pi-slack\" style=\"margin-right: 5px;\"></i>\n {{rootModel.currentAppMetadata.
|
|
13
|
+
template: "<span class=\"rootMenu\" *ngIf=\"rootModel.currentAppMetadata\">\n <i class=\"pi pi-slack\" style=\"margin-right: 5px;\"></i>\n {{rootModel.currentAppMetadata.longtitle | translate}}</span>\n ",
|
|
14
14
|
providers: [ComponentContextService],
|
|
15
15
|
styles: [""]
|
|
16
16
|
},] }
|
|
@@ -18,4 +18,4 @@ AppRootMenuComponent.decorators = [
|
|
|
18
18
|
AppRootMenuComponent.ctorParameters = () => [
|
|
19
19
|
{ type: Injector }
|
|
20
20
|
];
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXJvb3QtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvbW1vbi1hcHAtY29tcG9uZW50L2FwcC1yb290LW1lbnUvYXBwLXJvb3QtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBUXJFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO0lBRW5ELFlBQ2MsU0FBbUI7UUFFN0IsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRlAsY0FBUyxHQUFULFNBQVMsQ0FBVTtJQUdqQyxDQUFDOzs7WUFaSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLHFOQUE2QztnQkFFN0MsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7O2FBQ3ZDOzs7WUFUbUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWNvbnRleHQvY29tcG9uZW50LWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2NvbXBvbmVudC1iYXNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcm9vdC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwLXJvb3QtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXBwLXJvb3QtbWVudS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0NvbXBvbmVudENvbnRleHRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwUm9vdE1lbnVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xuICAgIH1cbn1cbiJdfQ==
|